Software Engineering Paradigms
What happens in the life of software
Software Engineering Layers
tools methods process model a quality focus
22
The Primary Goal: High Quality
Remember: High quality = project timeliness Why? Less rework!
33
Classic Life Cycle\Waterfall Model
System Engineering Analysis Design Code Testing Maintenance
44
Waterfall Model Characteristics
The classic life cycle - oldest and most widely used paradigm Activities flow from one phase to another If there are corrections, return to a previous phase and flow from there again Major advantages: Good for planning and welldefined/repeated projects
55
Problems of Waterfall Model
Real projects often follow the sequence All requirements may not be stated explicitly by customer Customer only sees the results after some time Developers are often delayed at certain phases
66
Prototyping Model
Start
Requirements gathering and refinement
Quick design
Building prototype
listen to customer
build/revise mock-up
Engineer product
Refining Customer prototype evaluation
customer test-drives mock-up
Stop
77
Prototyping Model Characteristics Developer and customer determine
objectives and draft requirements Prototype quickly produced and evaluated by customer Prototype then refined, and re-evaluated Process iterated, before final product development Advantages: Customer participation and better requirements
88
Problems of Prototyping Model
Problem 1: Customer may see prototype as working model and expects fast results Problem 2: Developer compromised when producing prototype quickly, e.g. different operating system or programming language
99
Spiral Model
Planning
Risk Analysis
Customer Communication
Engineering
Customer Evaluation
Construction & Release
10
Six Task Region
Spiral Model
11
Customer Communication-tasks required to establish effective communication between developer and customer.
12
Planning-tasks required to define resources, timelines, and other project related information.
13
Risk analysis-tasks required to assess both technical and management risks
14
Engineering-Tasks required to build one or more representations of the application
15
Construction & Release-Tasks required to construct, test, install and provide user support (e.g., documentation and training)
16
Customer Evaluation-Tasks required to obtain customer feedback based on evaluation of the software representations created during the engineering stage and implementation during the installation stage
17
Spiral Model Characteristics
Originally proposed by Boehm, couples iterative nature of prototyping and the systematic aspects of waterfall model Software is developed in series of incremental releases Each iteration produces a more complete product Better management through risk analysis
18
Problems of Spiral Model
May be difficult to convince customers that evolution is controllable Demands risk assessment expertise major risk will cause problems if not identified Relatively new and not widely used cannot determine performance
19
Fourth Generation Techniques (4GT)
20
4GT Characteristics
Use of software tools that allow software engineer to specify s/w characteristics at higher level The tools generate codes based on specification More time in design and testing increase productivity Tools may not be easy to use, codes generated may not be efficient
21
Conclusion
The paradigm used for development of software depends on a number of factors People - staff & users Software product Tools available Environment Existing models makes development process clearer, but they can be evolved to become new paradigms
22
References
Software Engineering: A Practitioners Approach 5th Ed. by Roger S. Pressman, Mc-Graw-Hill, 2001 Software Engineering by Ian Sommerville, Addison-Wesley, 2001
23