Download - CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1
![Page 1: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/1.jpg)
S
CS 5380Software
Engineering
Chapter 2 – Software Processes
Chapter 2 Software Processes1
![Page 2: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/2.jpg)
Processes and Process Models
Software processes Activities involved in producing a software
system.
Software process models abstract representations of these processes.
Chapter 2 Software Processes2
![Page 3: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/3.jpg)
Software processes
Processes Specification Design Implementation Validation Evolution
Occur in all process models
Chapter 2 Software Processes3
![Page 4: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/4.jpg)
Process Models
Describe the organization of software processes.
Key Examples Waterfall model Incremental development Reuse-oriented development.
Chapter 2 Software Processes4
![Page 5: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/5.jpg)
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
![Page 6: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/6.jpg)
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
![Page 7: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/7.jpg)
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
![Page 8: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/8.jpg)
The Waterfall Model(1970)
Chapter 2 Software Processes8
![Page 9: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/9.jpg)
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
![Page 10: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/10.jpg)
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
![Page 11: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/11.jpg)
Waterfall Applications
Large systems, developed at several sites. Space Shuttle control system
Integration with many physical components
Chapter 2 Software Processes11
![Page 12: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/12.jpg)
Incremental Development
Initial Requirements, Design, Development…
Learn from usage
Modify requirements, design, redevelop
Chapter 2 Software Processes12
![Page 13: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/13.jpg)
Incremental development
Chapter 2 Software Processes13
![Page 14: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/14.jpg)
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
![Page 15: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/15.jpg)
Generic Products
Inherently incremental
Initial phase to Get customers Get feedback Drive direction
Subsequent phases Stay competitive Meet changing needs
Chapter 2 Software Processes15
![Page 16: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/16.jpg)
Incremental development problems
The process is not visible. Design documents not at extensive Design documents not final
System structure tends to degrade as new increments are added. New features may not fit initial structure
Chapter 2 Software Processes16
![Page 17: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/17.jpg)
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
![Page 18: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/18.jpg)
Reuse-oriented software engineering
Chapter 2 Software Processes18
![Page 19: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/19.jpg)
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
![Page 20: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/20.jpg)
Discussion
Identify 2 highly likely projects for each of the following Waterfall Incremental Component
Chapter 2 Software Processes20
![Page 21: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/21.jpg)
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
![Page 22: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/22.jpg)
The requirements engineering process
Chapter 2 Software Processes22
![Page 23: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/23.jpg)
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
![Page 24: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/24.jpg)
A general model of the design process
Chapter 2 Software Processes24
![Page 25: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/25.jpg)
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
![Page 26: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/26.jpg)
Software verificationand 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
![Page 27: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/27.jpg)
Stages of testing
Chapter 2 Software Processes27
![Page 28: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/28.jpg)
Testing stages
Development or component testing
System testing
Acceptance testing
Chapter 2 Software Processes28
![Page 29: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/29.jpg)
Testing phases in a plan-driven software process
Chapter 2 Software Processes29
![Page 30: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/30.jpg)
Software evolution
Software is inherently flexible.
Software changes to meet Changing business model New applications
Chapter 2 Software Processes30
![Page 31: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/31.jpg)
System evolution
Chapter 2 Software Processes31
![Page 32: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/32.jpg)
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
![Page 33: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/33.jpg)
Reducing the Costs of Rework
Change avoidance Start with a prototype
Change tolerance Incremental tolerance Architecture
Chapter 2 Software Processes33
![Page 34: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/34.jpg)
Software prototyping
Prototype initial version demonstrate concepts try out design options.
Uses: requirements elicitation and validation; UI design;
Chapter 2 Software Processes34
![Page 35: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/35.jpg)
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
![Page 36: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/36.jpg)
The process of prototype development
Chapter 2 Software Processes36
![Page 37: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/37.jpg)
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
![Page 38: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/38.jpg)
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
![Page 39: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/39.jpg)
Discussion
Describe a prototype for Web application Mobile app Air traffic control system Integrated controller in a printer
Chapter 2 Software Processes39
![Page 40: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/40.jpg)
Incremental delivery
Multiple deliveries
Phased functionality
Requirements prioritization
Requirements frozen at beginning of incremental phase
Chapter 2 Software Processes40
![Page 41: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/41.jpg)
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
![Page 42: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/42.jpg)
Incremental delivery
Chapter 2 Software Processes42
![Page 43: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/43.jpg)
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
![Page 44: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/44.jpg)
Incremental Delivery Problems
Common facilities. Not fully thought out Poorly architected
Conflicts with procurement processes Companies require full specification
Chapter 2 Software Processes44
![Page 45: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/45.jpg)
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
![Page 46: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/46.jpg)
Boehm’s spiral model of the software process
Chapter 2 Software Processes46
![Page 47: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/47.jpg)
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
![Page 48: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/48.jpg)
Spiral model usage
Rarely used as published for practical software development.
Chapter 2 Software Processes48
![Page 49: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/49.jpg)
The Rational Unified Process
IBM 2003
Combination of other models Largely iterative Documentation Prototyping
Chapter 2 Software Processes49
![Page 50: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/50.jpg)
Phases in the Rational Unified Process
Chapter 2 Software Processes50
![Page 51: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/51.jpg)
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
![Page 52: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/52.jpg)
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
![Page 53: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/53.jpg)
RUP 6 Best Practices(continued)
Visually model software UML.
Verify software quality
Control changes to software change management system tools
Chapter 2 Software Processes53
![Page 54: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1](https://reader035.vdocuments.us/reader035/viewer/2022081519/56649ea85503460f94bab8c5/html5/thumbnails/54.jpg)
Discussion
Chapter 2 Software Processes54