Download Software Engineering Process Models: An Overview and more Study Guides, Projects, Research Software Engineering in PDF only on Docsity! 1 Slide 1CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 SOFTWARE PROCESS MODELS Slide 2CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Software Process Models • Process model (Life-cycle model) - steps through which the product progresses • Requirements phase • Specification phase • Design phase • Implementation phase • Integration phase • Maintenance phase • Retirement Slide 3CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Overview • Different process models • Build-and-fix model • Waterfall model • Incremental model • Evolutionary process models o Rapid prototyping model o Spiral model • Agile process models o Extreme programming • Synchronize-and-stabilize model • Object-oriented life-cycle models o Fountain Model o Unified Process 2 Slide 4CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Build-and-Fix Model • Problems • No specifications • No design • Totally unsatisfactory • High cost • Difficult maintenance Slide 5CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Waterfall Model • Only model widely used until early 1980s • Characterized by • Feedback loops • Documentation-driven Slide 6CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Waterfall Model (contd) • Advantages • Enforces disciplined approach o Documentation for each phase o Products of each phase checked by SQA group • Maintenance is easier o Every change reflected in the relevant documentation • Disadvantages • Working version of the software will not be available until late in the project time-span • Specifications are long, detailed, written in a style unfamiliar to the client • “Blocking states” – some project team members must wait for other team members to complete dependent tasks 5 Slide 13CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Simplified Spiral Model • If risks cannot be resolved, project may be terminated immediately Slide 14CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Full Spiral Model (contd) • Radial dimension - cumulative cost to date • Angular dimension - progress through the spiral Slide 15CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Analysis of Spiral Model • Strengths • Answers the question “How much to test ?” in terms of risk • No distinction between development and maintenance (another cycle of the model) • Weaknesses • Internal (in-house) development only o For contract software, all risk analysis must be performed before the contract is signed, not in the spiral model • Large-scale software only o For small software performing risk analysis would significantly affect the profit potential 6 Slide 16CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Agile Process Models • Agile software engineering combines a philosophy and a set of development guidelines • Philosophy o Encourages customer satisfaction and early incremental delivery of the software o Small highly motivated project teams o Informal methods o Minimal software engineering work products o Overall development simplicity • Development guidelines o Stress delivery over analysis and design o Active and continuous communication between developers and customers Slide 17CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Agile Process Models (contd) • There are many agile process models • Extreme Programming (XP) • Adaptive Software Development (ASD) • Dynamic System Development Method (DSDM) • Scrum • Crystal • Feature Driven Development (FDD) • Agile Modeling (AM) Reading: Choose “Agile Methods” from http://www.computer.org/portal/site/seportal/index.jsp Slide 18CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Extreme Programming (XP) • Somewhat controversial new approach; variation of the incremental model • First step • Determine features that client wants (stories) • Estimate duration and cost of each feature • Client selects stories for each successive build • Each build is divided into tasks • Test cases for a task are drawn up • Pair programming – working with a partner on one screen • Continuous integration of tasks 7 Slide 19CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Extreme Programming (contd) http://www.extremeprogramming.org/ Slide 20CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Features of XP • Computers are put in center of large room lined with cubicles • Client representative works with the XP team at all the times • Individual cannot work overtime for 2 successive weeks • There is no specialization • all members of the XP team work on specification, design, code, and testing • There is no overall design phase before various builds are constructed – refactoring Slide 21CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Features of XP • Advantages • Useful when requirements are vague or changing • Emphasis on teamwork and communication • Programmer estimates before committing to a schedule • Continuous measurement; frequent, extensive testing • Disadvantages • Limited to small products and small teams - can be disastrous when programs are larger than a few thousand lines of code or when the work involves more than a few people. • Lack of design documentation • Lack of a structured review process 10 Slide 28CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Unified Process: Phases • Transition phase • Software is given to end-users for beta testing • User report both defects and necessary changes • Support information is created (e.g., user manuals, installation procedures) • Software increment becomes usable software release • Production phase • Software use is monitored • Defect reports and requests for changes are submitted and evaluated Slide 29CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Unified Process: Major work products Inception phase Vision document Initial use-case model Initial project glossary Initial business case Initial risk assessment Project plan phases and iterations Business model if necessary One or more prototypes Elaboration phase Use-case model Supplementary requirements, including non-functional Analysis model Software architecture description Executable architectural prototype Preliminary design model Revised risk list Project plan including iteration plan adapted workflows milestones technical work products Preliminary user manual Slide 30CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Unified Process: Major work products Construction phase Design model Software components Integrated software increment Test plan and procedure Test cases Support documentation user manuals installation manuals description of current increment Transition phase Delivered software increment Beta test reports General user feedback 11 Slide 31CS 230 Introduction to Software EngineeringCopyright © K.Goseva 2006 Conclusions • Different process models, each with its own strengths and weaknesses • Criteria for deciding on a model include • Organization • Its management style • Skills of the employees • Product nature