Download presentation
Presentation is loading. Please wait.
Published byChester Miles Modified over 9 years ago
1
CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1
2
Processes and Process Models Software processes A ctivities involved in producing a software system. Software process models abstract representations of these processes. Chapter 2 Software Processes2
3
Software processes Processes Specification Design Implementation Validation Evolution Occur in all process models Chapter 2 Software Processes3
4
Process Models Describe the organization of software processes. Key Examples Waterfall model Incremental development Reuse-oriented development. Chapter 2 Software Processes4
5
Software Process Pescriptions Activities of the process Specifying a data model Designing a user interface Also Outcomes of a process Roles of people involved in the process Pre- and post-conditions Chapter 2 Software Processes5
6
Software process models Waterfall model Plan-driven model. Separate and distinct processes specification development. Incremental development Interleaved processes Specification, development and validation Reuse-oriented software engineering The system is assembled from existing components. Chapter 2 Software Processes6
7
Development in Civil Engineering Build a bridge Requirements Site Analysis Design Review/Approval Schedule Construction Testing Maintenance Discussion Requirements Overlap of phases Dependency of Phases Chapter 2 Software Processes7
8
The Waterfall Model (1970) Chapter 2 Software Processes8
9
Waterfall Model Phases There are separate identified phases in the waterfall model: Requirements analysis and definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance Chapter 2 Software Processes9
10
Waterfall Model Problems Responding to changing customer requirements. Appropriate requirements are well-understood Changes will be fairly limited Few business systems have stable requirements. Chapter 2 Software Processes10
11
Waterfall Applications Large systems, developed at several sites. Space Shuttle control system Integration with many physical components Chapter 2 Software Processes11
12
Incremental Development Initial Requirements, Design, Development… Learn from usage Modify requirements, design, redevelop Chapter 2 Software Processes12
13
Incremental development Chapter 2 Software Processes13
14
Incremental development benefits Lower cost of accommodating changing customer requirements Better customer feedback Customers understand working system better than design More rapid delivery Partial delivery at beginning is useful Chapter 2 Software Processes14
15
Generic Products Inherently incremental Initial phase to Get customers Get feedback Drive direction Subsequent phases Stay competitive Meet changing needs Chapter 2 Software Processes15
16
Incremental development problems The process is not visible. Design documents not at extensive Design documents not final System structure tends to degrad e as new increments are added. New features may not fit initial structure Chapter 2 Software Processes16
17
Reuse-Oriented Software Engineering Systematic reuse COTS (Commercial-off-the-shelf) systems. Process stages Component analysis; Requirements modification; System design with reuse; Development and integration. Standard approach for building many systems SAS Chapter 2 Software Processes17
18
Reuse-oriented software engineering Chapter 2 Software Processes18
19
Types of software components Web services Standard specification Remote invocation Calendar, weather, scheduling, RSS,… Collections of objects - framework .NET User interface Configurable software systems COTS – Commercial Off The Shelf software SAS Chapter 2 Software Processes19
20
Discussion Identify 2 highly likely projects for each of the following Waterfall Incremental Component Chapter 2 Software Processes20
21
Software Specification Process of establishing Services required Constraints on the system Requirements engineering process Feasibility study Requirements elicitation and analysis Requirements specification Requirements validation Chapter 2 Software Processes21
22
The requirements engineering process Chapter 2 Software Processes22
23
Software design and implementation Design Creation of design documents From requirements Implementation Creation of running program From design documents Design and implementation Closely related May be inter-leaved. Chapter 2 Software Processes23
24
A general model of the design process Chapter 2 Software Processes24
25
Design activities Architectural design, overall structure principal components (sub-systems or modules) component relationships Interface design interfaces between system components Interface with user Component design Individual component Database design, Tables, queries, interaction Chapter 2 Software Processes25
26
Software verification and validation Show that system conforms to its specification meets the real needs of customer Testing is a key approach Code reviews Chapter 2 Software Processes26
27
Stages of testing Chapter 2 Software Processes27
28
Testing stages Development or component testing System testing Acceptance testing Chapter 2 Software Processes28
29
Testing phases in a plan-driven software process Chapter 2 Software Processes29
30
Software evolution Software is inherently flexible. Software changes to meet Changing business model New applications Chapter 2 Software Processes30
31
System evolution Chapter 2 Software Processes31
32
Nature of Change Change is inevitable in all large software projects. Business changes New technologies Changing platforms Changing Customer Base Chaging usage Chapter 2 Software Processes32
33
Reducing the Costs of Rework Change avoidance Start with a prototype Change tolerance Incremental tolerance Architecture Chapter 2 Software Processes33
34
Software prototyping Prototype initial version demonstrate concepts try out design options. Uses: requirements elicitation and validation; UI design; Chapter 2 Software Processes34
35
Benefits of prototyping Improved system usability. A closer match to users’ real needs. Improved design quality. Improved maintainability. Reduced development effort. Chapter 2 Software Processes35
36
The process of prototype development Chapter 2 Software Processes36
37
Prototype development Tools rapid prototyping languages Leave out functionality Focus on areas that are not well-understood No error checking and recovery Focus on functional requirements not reliability and security Different architecture Chapter 2 Software Processes37
38
Throw-away prototypes Discard prototype: Can’t be modified for all requirements; Prototypes are undocumented; Poor internal structure; Poor quality standard Chapter 2 Software Processes38
39
Discussion Describe a prototype for Web application Mobile app Air traffic control system Integrated controller in a printer Chapter 2 Software Processes39
40
Incremental delivery Multiple deliveries Phased functionality Requirements prioritization Requirements frozen at beginning of incremental phase Chapter 2 Software Processes40
41
Incremental development and delivery Incremental development Evaluate each increment before creating next Normal approach used in agile methods; Evaluation done by user/customer proxy. May not require incremental delivery Incremental delivery Deploy to end-users More realistic evaluation by users; Chapter 2 Software Processes41
42
Incremental delivery Chapter 2 Software Processes42
43
Incremental delivery advantages Partially usable system available earlier. Early versions elicit further requirements Lower risk of overall project failure. Most important features get tested more Chapter 2 Software Processes43
44
Incremental Delivery Problems Common facilities. Not fully thought out Poorly architected Conflicts with procurement processes Companies require full specification Chapter 2 Software Processes44
45
Boehm’s spiral model (1988) Spiral diagram rather than process diagram Each loop in the spiral represents a phase in the process. Chapter 2 Software Processes45
46
Boehm’s spiral model of the software process Chapter 2 Software Processes46
47
Spiral model sectors Objective setting Specific objectives for the phase are identified. Risk assessment and reduction Risks are assessed and activities put in place to reduce the key risks. Development and validation A development model for the system is chosen which can be any of the generic models. Planning The project is reviewed and the next phase of the spiral is planned. Chapter 2 Software Processes47
48
Spiral model usage Rarely used as published for practical software development. Chapter 2 Software Processes48
49
The Rational Unified Process IBM 2003 Combination of other models Largely iterative Documentation Prototyping Chapter 2 Software Processes49
50
Phases in the Rational Unified Process Chapter 2 Software Processes50
51
RUP phases Inception Establish the business case for the system. Elaboration Develop an understanding of the problem domain and the system architecture. Construction System design, programming and testing. Transition Deploy the system in its operating environment. Chapter 2 Software Processes51
52
RUP 6 Best Practices Iterative development Prioritized phases. Manage requirements Document requirements. Use component-based architectures Structure the system to be reusable. Chapter 2 Software Processes52
53
RUP 6 Best Practices (continued) Visually model software UML. Verify software quality Control changes to software change management system tools Chapter 2 Software Processes53
54
Discussion Chapter 2 Software Processes54
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.