SW LIFE -CYCLE MODELS.

Slides:



Advertisements
Similar presentations
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Advertisements

2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.
Slide 3.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Ch2: Software Life Cycles Housekeeping  Feedback from Wednesday  Structured vs. Object Oriented Paradigm Structured: Data is an argument, functions separate,
CHAPTER 3 SOFTWARE LIFE-CYCLE MODELS.
SOFTWARE PROCESS MODELS. Software Process Models  Process model (Life-cycle model) -steps through which the product progresses Requirements phase Specification.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Software Project Management
Software Life-Cycle Models
1 Chapter 3 Prescriptive Process Models Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Alternate Software Development Methodologies
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall B.1.
Introduction to Software Engineering Lecture 3 André van der Hoek.
Introduction to Software Engineering Lecture 4 André van der Hoek.
Gu & Maher University of Sydney, October 2004 DECO2005 Monitoring Team Process.
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
Software Engineering.
Object-oriented Analysis and Design
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Chapter 2A 1 Software Engineering CHAPTER 2 SOFTWARE LIFE CYCLE MODELS by Farhad Mavaddat CS430 Notes Modified from the notes of Jerry Breecher of Clark.
Incremental Model Requirements phase Verify Specification phase Verify
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Software Development Life Cycle (SDLC)
Ch 2: Software Life-Cycle Models CSCI Ideal Software Development.
CST 316 Process. Junior Project Process Provide necessary points of communication for individual effort. Allow a controllable division of labor. Divide.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
1 e X treme P rogramming D. Dranidis September 2000 CITY College.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
CSE 308 Software Engineering Software Engineering Strategies.
SOFTWARE ENGINEERING MCS-2 LECTURE # 3. SOFTWARE PROCESS  A software development process, also known as a software development life- cycle (SDLC), is.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
XP – Extreme Programming
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Software Engineering process models
XP Overview Short Life cycle Risky / Dynamic Requirements Increase developer productivity.
SOFTWARE LIFE-CYCLE MODELS
Slide 3.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Software Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.
Software Development Life Cycle (SDLC)
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
Software Engineering Zhang Shuang
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Slide 3.1 © The McGraw-Hill Companies, 2002 SOFTWARE LIFE-CYCLE MODELS.
Project Management Software development models & methodologies
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Software Development - Methodologies
Methodologies and Algorithms
Appendix B Agile Methodologies
Extreme Programming.
Software Engineering Lecture 09 & 10.
Software Engineering Lecture 18.
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Software Engineering CHAPTER 2 SOFTWARE LIFE CYCLE MODELS
Software Engineering Lecture 17.
Appendix B Agile Methodologies
Presentation transcript:

SW LIFE -CYCLE MODELS

Overview The Product Progresses Steps, Build-and-fix (model?), Waterfall model, Rapid prototyping model, Incremental model, Synchronize-and-stabilize model, Spiral model, Object-oriented life-cycle models, Comparison of life-cycle models, Open Source , Extreme Programming.

The Product Progresses Steps, Build-and-fix (model?), Waterfall model, Rapid prototyping model, Incremental model, Synchronize-and-stabilize model, Spiral model, Object-oriented life-cycle models, Comparison of life-cycle models, Open Source, Extreme Programming.

The Product Progresses Phases: Requirements, Specification, Design, Implementation, Integration, Maintenance, Retirement , כל דבר חי גדל או קמל (...וגם מוצרי תכנה, גם קבוצות עבודה...)

The Product Progresses Steps, Build-and-fix (model?), Waterfall model, Rapid prototyping model, Incremental model, Synchronize-and-stabilize model, Spiral model, Object-oriented life-cycle models, Comparison of life-cycle models, Open Source, Extreme Programming.

Build and Fix (Model?) – בנה ותקן … בנה גרסה ראשונה ערוך שינויים, עד שהלקוח מרוצה הפעלה מבצעית פרישה פיתוח אחזקה

Build and Fix (Model?) …

Build and Fix (Model?) (Cont’d) Problems: No specifications, No design, Totally unsatisfactory, Need life-cycle model: “Game plan”, Phases, Milestones, Good for: Tiny programs! ,

The Product Progresses Steps, Build-and-fix (model?), Waterfall model, Rapid prototyping model, Incremental model, Synchronize-and-stabilize model, Spiral model, Object-oriented life-cycle models, Comparison of life-cycle models, !Open Source, !Extreme Programming.

Waterfall Model …

Waterfall Model – מודל מפל המים … אימות דרישות אימות שינוי בדרישות אימות אפיון אימות תכנון אימות תכן אימות מימוש אישור שילוב פיתוח הפעלה מבצעית אחזקה פרישה

Waterfall Model (Cont’d) … Until the early 1980s, the waterfall model was the only widely accepted life-cycle model, Characterized by: Feedback loops, Documentation-driven , Advantages: Documentation, a lot of documentation, Maintenance is much easier, Clear milestones.

Waterfall Model (Cont’d) Disadvantages: Specification documents are long, detailed, and boring, Specifications, no prototype!. Words VS picture, The first time that the client sees a working product is only after the entire product has been coded, Will you buy a product by its detailed specification? What about a suit? What about a house? What about an ice-cream?

The Product Progresses Steps, Build-and-fix (model?), Waterfall model, Rapid prototyping model, Incremental model, Synchronize-and-stabilize model, Spiral model, Object-oriented life-cycle models, Comparison of life-cycle models, Open Source, Extreme Programming.

Rapid Prototyping Model … Planning

Three Key Points … Do not turn prototype into product, demonstration only!, Rapid prototyping may replace specification phase — never the design phase, Comparison: Waterfall model — try to get it right first time, Rapid prototyping — frequent change, then discard!

Rapid Prototype – מודל אב טיפוס מהיר … אימות שינוי בדרישות אימות אב-טיפוס הפעלה מבצעית פרישה אימות אפיון תכן מימוש אישור שילוב תכנון פיתוח אחזקה

Rapid Prototyping Model (Cont’d) … Linear model, “Rapid”, Phases shift is more smooth , The existence of the rapid prototype can help the team throughout the whole development process (even gaining the “how not to do it” insight.)

Rapid Prototyping Model (Cont’d) Will you live in a rapid prototyping model?,

Waterfall VS Rapid Prototyping Models Waterfall model: Many successes, Client needs, Rapid prototyping model: Not proved, Has own problems, Suggestion: Rapid prototyping for requirements phase, Waterfall for rest of life cycle , In waterfall, rapid prototyping models: Operational quality complete product at end.

The Product Progresses Steps, Build-and-fix (model?), Waterfall model, Rapid prototyping model, Incremental model, Synchronize-and-stabilize model, Spiral model, Object-oriented life-cycle models, Comparison of life-cycle models, Open Source, Extreme Programming.

Incremental Model …

Incremental Model – מודל הדרגתי א' … אימות דרישות אפיון תכנון הנדסת מערכת ארכיטקטורה הפעלה מבצעית פרישה מימוש הקמת מבנה (build) 1,2,...,n תכן מפורט שילוב בדיקות מסירה פיתוח אחזקה

Incremental Model (Cont’d) … Divide project into: builds_01, build_02, … build_n, For example, the first build of a nuclear submarine control system, can be the navigation system, the second will include weapons control system and so on ,

Incremental Model (Cont’d) … The developer is free to break up the target product into builds as he or she sees fit, subject only to the constraint that as each build is integrated into the existing SW, the resulting product must be testable.

Incremental Model (Cont’d) … Advantages: Operational quality portion of product within weeks, Less disappointment, Provides time for the client to adjust to the new product, No difference between development and maintenance phase, Smaller capital outlay, rapid return on investment , No need to complete the product in order to get ROI.

Incremental Model (Cont’d) … Problems: Need open architecture — maintenance implications, Each new build is to be integrated into a working model, Build-and-fix danger , Vague terms: whole product VS. Build sequences.

Incremental Model (Cont’d) … More risky version — pieces may not fit.

מודל אינקרמנטלי ב' … מבנה 1 מבנה 2 מבנה n קבוצת אפיון קבוצת תכן מימוש ושילוב מסירה מבנה 1 אפיון תכן מימוש ושילוב מסירה מבנה 2 אפיון תכן מימוש ושילוב מסירה מבנה n קבוצת אפיון קבוצת תכן קבוצת מימוש

Incremental Model (Cont’d) Advantages: One may start implementation before system engineering is over, Parallel teamwork , Problems: Risky, Harder to manage and synchronize, Degradation into Build-and-fix.

The Product Progresses Steps, Build-and-fix (model?), Waterfall model, Rapid prototyping model, Incremental model, Synchronize-and-stabilize model, Spiral model, Object-oriented life-cycle models, Comparison of life-cycle models, Open Source, Extreme Programming.

Synchronize-and Stabilize Model … Microsoft’s life-cycle model, Requirements analysis — interview potential customers, Draw up specifications, Divide project into 3 or 4 builds , Each build is carried out by small teams working in parallel.

Synchronize-and Stabilize Model (Cont’d) … At the end of the day — synchronize (test and debug), At the end of the build — stabilize (freeze build), Components always work together , Developers get early insights into operation of product and might change the requirements.

The Product Progresses Steps, Build-and-fix (model?), Waterfall model, Rapid prototyping model, Incremental model, Synchronize-and-stabilize model, Spiral model, Object-oriented life-cycle models, Comparison of life-cycle models, Open Source, Extreme Programming.

Spiral Model … Motivation – reduce risks , Possible risks: Employees turnover, Dependency upon HW delivery , Lower-priced product might appear.

Spiral Model (Cont’d) … Simplified form: Waterfall model plus risk analysis, Precede each phase by: Define alternatives, Risk analysis , Follow each phase by: Evaluation, Planning of next phase.

Spiral Model (Cont’d) …

Simplified Spiral Model … Address the top risks at each phase (VS “solve what we already know” approach) , If risks cannot be resolved, project is immediately terminated.

Spiral Model – מודל הספירלה … תכנון planning ניתוח סיכונים risk analysis תוצרים הערכת לקוח customer evaluation הנדסה engineering

Full Spiral Model (Next Slide) … Radial dimension: cumulative cost to date, (L), Angular dimension: progress through the spiral (a) , L a

Full Spiral Model (Cont'd) …

Analysis of the Spiral Model Strengths: Risk driven – “Tackle the worst first”, Emphasis on alternatives and constrains, Easy to judge how much to test, No distinction between development, maintenance – maintenance is simply another cycle of the spiral , Weaknesses: For large-scale software only (how much does it cost to perform risk analysis?), For internal (in-house) software only (what if risk-analysis shows that project should be terminated…).

The Product Progresses Steps, Build-and-fix (model?), Waterfall model, Rapid prototyping model, Incremental model, Synchronize-and-stabilize model, Spiral model, Object-oriented life-cycle models, Comparison of life-cycle models, Open Source, Extreme Programming.

Object-Oriented Life-Cycle Models Need for iteration within and between phases: Fountain model, Recursive/parallel life cycle, Round-trip gestalt, All incorporate some form of: Iteration, Parallelism, Incremental development, Danger: CABTAB – Code A Bit Test A Bit ,

Fountain Model …

Fountain model – מודל המזרקה … תחזוקה מאמץ התחזוקה קטן יותר פיתוח המשך הפעלה מבצעית כל שלב הוא איטרטיבי בעצמו שילוב התוצרים מכל שלב ניתנים לשימוש-חוזר (reuse) בכל השלבים מימוש תכן מונחה-עצמים ניתוח מונחה-עצמים דרישות “מאגר” התוכנה

The Product Progresses Steps, Build-and-fix (model?), Waterfall model, Rapid prototyping model, Incremental model, Synchronize-and-stabilize model, Spiral model, Object-oriented life-cycle models, Comparison of life-cycle models, Open Source, Extreme Programming.

Life-Cycle Models Comparison Strengths Weaknesses Fine for short programs that will not require any maintenance Totally unsatisfactory for nontrivial projects Build & Fix Discipline approach Document Driven Product may not meet client’s needs Waterfall Rapid Prototype Ensures that delivered product meet client’s needs Requires focus-orientation programmers Maximizes early ROI Promotes maintainability Increment. Requires open architecture May fall into build-and-fix Future users’ needs are met Ensures components can be successfully integrated Synch. & Stabilize Lack of wide experience can be used only for large-scale, in house products, Developers have to be competent in risk analysis and risk resolution Incorporate features of all the above models Spiral Object Oriented Supports iteration within phases, Parallelism between phases May degenerate into CABTAB

Conclusions Different life-cycle models, Each with own strengths, Each with own weaknesses, Criteria for deciding on a model include: The organization, Its management, Skills of the employees, The nature of the product, Budget , Best suggestion: “Mix-and-match” life-cycle model.

The Product Progresses Steps, Build-and-fix (model?), Waterfall model, Rapid prototyping model, Incremental model, Synchronize-and-stabilize model, Spiral model, Object-oriented life-cycle models, Comparison of life-cycle models, Open Source, Extreme Programming.

Open Source … The basic idea behind open source is very simple: When programmers can read, redistribute, and modify the source code, the SW evolves. People improve it, people adapt it, people fix bugs. And this can happen at a speed that, if one is used to the slow pace of conventional SW development, seems astonishing.

Open Source Products (Cont’d) … Building and porting more and better applications all the time at a pace closed developers cannot match, The open source community have learned that this rapid evolutionary process produces better SW than the traditional closed model, in which only a very few programmers can see the source and everybody else must blindly use an opaque block of bits , Oracle, Informix, and InterBase databases. Word Perfect and the Corel office suite, ApplixWare and StarOffice suites.

Open Source Products (Cont’d) Go to the Linux Mall, for example, to learn about the wide selection of office suites and productivity tools now available under Linux , The Linux Business Solutions Project maintains a list of mainstream business applications available under Linux.

The Product Progresses Steps, Build-and-fix (model?), Waterfall model, Rapid prototyping model, Incremental model, Synchronize-and-stabilize model, Spiral model, Object-oriented life-cycle models, Comparison of life-cycle models, Open Source, Extreme Programming.

Extreme Programming – XP … XP has four main strands: listening, testing, coding, and designing, in no special order for they all happen in parallel, Controversial new approach, Stories (features client wants), Estimate duration and cost of each story, Select stories for next build, Each build is divided into tasks, Test cases for task are drawn up first, Pair programming , Continuous integration of tasks.

XP (Cont’d) … "Find the essential elements of creating good software, do them all of the time, and discard everything else."

XP Practices … Planning Game: Small releases: Metaphor: Customers decide the scope and timing of releases based on estimates provided by programmers. Programmers implement only the functionality demanded by the stories in this iteration, Small releases: The system is put into production in a few months, before solving the whole problem. New releases are made often-anywhere from daily to monthly , Metaphor: The shape of the system is defined by a metaphor or set of metaphors shared between the customer and programmers. For example the Chrysler payroll system was built as a production line.

XP Practices (Cont’d) … Simple design: At every moment, the design runs all the tests, communicates everything the programmers want to communicate, contains no duplicate code, and has the fewest possible classes and methods. This rule can be summarized as, “Say everything once and only once.” , Tests: Programmers write unit tests minute by minute. These tests are collected and they must all run correctly. Customers write functional tests for the stories in an iteration. These tests should also all run, although practically speaking, sometimes a business decision must be made comparing the cost of shipping a known defect and the cost of delay.

XP Practices (Cont’d) … Re-factoring: (פירוק לגורמים חוזר) The design of the system is evolved through transformations of the existing design that keep all the tests running, Pair programming: All production code is written by two people at one screen/keyboard/mouse , Continuous integration: New code is integrated with the current system after no more than a few hours. When integrating, the system is built from scratch and all tests must pass or the changes are discarded.

XP Practices (Cont’d) … Collective ownership: Every programmer improves any code anywhere in the system at any time if they see the opportunity, On-site customer: customer sits with the team full-time, 40-hour weeks: No one can work a second consecutive week of over-time. Even isolated overtime used too frequently is a sign of deeper problems that must be addressed , Open workspace: The team works in a large room with small cubicles around the periphery. Pair programmers work on computers set up in the center.

XP Practices (Cont’d) Just rules: By being part of an Extreme team, you sign up to follow the rules. But they're just the rules. The team can change the rules at any time as long as they agree on how they will assess the effects of the change.

Evaluating XP XP has had some successes, Risky projects with dynamic requirements are perfect for XP , Too soon to evaluate XP.

Summary The Product Progresses Steps, Build-and-fix (model?), Waterfall model, Rapid prototyping model, Incremental model, Synchronize-and-stabilize model, Spiral model, Object-oriented life-cycle models, Comparison of life-cycle models, Open Source, Extreme Programming.

SW LIFE-CYCLE MODELS The End

Disappointment…