Presentation on theme: "Computer Science Department"— Presentation transcript:
1Computer Science Department Software EngineeringNovember 28, 2001Software Life CycleJoseph ConronComputer Science DepartmentNew York University
2DefinitionsSoftware lifecycle modeling: Attempt to deal with complexity and changeSoftware lifecycle:Set of activities and their relationships to each other to support the development of a software systemSoftware development methodology:A collection of techniques for building models - applied across the software lifecycle
3Software Life CycleSoftware construction goes through a progression of statesConceptionChildhoodAdulthoodRetirementPost- DevelopmentPre- DevelopmentDevelopment
4Typical Software Lifecycle Questions Which activities should I select for the software project?What are the dependencies between activities?Does system design depend on analysis? Does analysis depend on design?How should I schedule the activities?Should analysis precede design?Can analysis and design be done in parallel?Should they be done iteratively?
5Possible Identification of Software Development Activities Requirements AnalysisWhat is the problem?ProblemDomainSystem DesignWhat is the solution?Program DesignWhat are the mechanisms that best implement thesolution?ImplementationDomainProgram ImplementationHow is the solution constructed?TestingIs the problem solved?DeliveryCan the customer use the solution?MaintenanceAre enhancements needed?
6Alternative Identification of Software Development Activities Requirements AnalysisWhat is the problem?ProblemDomainSystem DesignWhat is the solution?Object DesignWhat is the solution in the contextof an existing hardware system?ImplementationDomainImplementationHow is the solution constructed?
7IEEE Std 1074: Standard for Software Lifecycle Process GroupIEEE Std 1074ProjectManagementPre-DevelopmentDevelop-mentPost-DevelopmentCross-Development(Integral Processes)> Project Initiation>Project Monitoring&Control> Software QualityManagement> RequirementsAnalysis> Design> Implemen-tation> ConceptExploration> SystemAllocation> Installation> Operation &Support> Maintenance> Retirement> V & V> ConfigurationManagement> Documen-tation> TrainingProcesses
8Processes, Activities and Tasks Process Group: Consists of Set of ProcessesProcess: Consists of ActivitiesActivity: Consists of sub activities and tasksDevelopmentProcessGroupProcessDesignActivityDesignDatabaseTaskMake aPurchaseRecommendation
9Example The Design Process is part of Development The Design Process consists of the following ActivitiesPerform Architectural DesignDesign Database (If Applicable)Design InterfacesSelect or Develop Algorithms (If Applicable)Perform Detailed Design (= Object Design)The Design Database Activity has the following TasksReview Relational DatabasesReview Object-Oriented DatabasesMake a Purchase recommendation....
10Modeling Dependencies in a Software Lifecycle Note that the dependency association can mean one of two things:Activity B depends on Activity AActivity A must temporally precede Activity BWhich one is right?
11Life-Cycle Model: Variations on a Theme Many models have been proposed to deal with the problems of defining activities and associating them with each otherThe waterfall modelFirst described by Royce in 1970There seem to be at least as many versions as there are authorities - perhaps more
13Problems with Waterfall Model Managers love waterfall models:Nice milestonesNo need to look back (linear system), one activity at a timeEasy to check progress : 90% coded, 20% testedDifferent stakeholders need different abstractions=> V-ModelSoftware development is iterativeDuring design problems with requirements are identifiedDuring coding, design and requirement problems are foundDuring testing, coding, design& requirement errors are found=> Spiral ModelSystem development is a nonlinear activity=> Issue-Based ModelIn practice, software development is not sequentialThe development stages overlapThe tendency to freeze parts of the development leads to systems the client does not want and which are badly structured as design problems are circumvented by tricky coding
14V Model: Distinguishes between Development and Verification Activities Problem with V-Model:Client’s Perception is the same as theDeveloper’s PerceptionClient’s UnderstandingDeveloper’s UnderstandingLevel of DetailRequirementsElicitationAcceptanceTestingLowSystemTestingAnalysisThe V-model is a variation of the waterfall model that makes explicit the dependency between development activities and verification activities. The difference between the waterfall model and the V model is that the latter makes explicit the notion of level of abstraction. All activities from requirements to implementation focus on building more and more detailed representation of the system, whereas all activities from implementation to operation focus on validating the system.DesignIntegration TestingObject DesignUnit TestingHighProject Time
15V Model - Example Validation step Validation step Validation step
17Sharktooth Model User’s Understanding Manager’s Understanding Developer’s Understanding
18Problems with V ModelThe V model and its variants do not distinguish temporal and logical dependencies, but fold them into one type of associationIn particular, the V model does not model iteration
19Spiral Model (Boehm) Deals with Iteration 18Identify risksAssign priorities to risksDevelop a series of prototypes for the identified risks starting with the highest risk.Use a waterfall model for each prototype development (“cycle”)If a risk has successfully been resolved, evaluate the results of the “cycle” and plan the next roundIf a certain risk cannot be resolved, terminate the project immediately
21Activities (“Rounds”) in Boehm’s Spiral Model Concept of OperationsSoftware RequirementsSoftware Product DesignDetailed DesignCodeUnit TestIntegration and TestAcceptance TestImplementationFor each cycle go through these stepsDefine objectives, alternatives, constraintsEvaluate alternative, identify and resolve risksDevelop, verify prototypePlan next “cycle”
22Determine Objectives, Alternatives and Constraints ProjectStart
24Develop & Verify Product Concept of OperationActivity
25Prepare for Next Activity Lifecycle ModelingProcess
26Start of Software Requirements Activity of Round 2
27Types of Prototypes used in the Spiral Model Illustrative PrototypeDevelop the user interface with a set of storyboardsImplement them on a napkin or with a user interface builder (Visual C++, ....)Good for first dialog with clientFunctional PrototypeImplement and deliver an operational system with minimum functionalityThen add more functionalityOrder identified by riskExploratory Prototype ("Hacking")Implement part of the system to learn more about the requirements.Good for paradigm breaks
28Types of Prototyping (Continued) Revolutionary PrototypingAlso called specification prototypingGet user experience with a throwaway version to get the requirements right, then build the whole systemDisadvantage: Users may have to accept that features in the prototype are expensive to implementUser may be disappointed when some of the functionality and user interface evaporates because it can not be made available in the implementation environmentEvolutionary PrototypingThe prototype is used as the basis for the implementation of the final systemAdvantage: Short time to marketDisadvantage: Can be used only if target system can be constructed in prototyping language
29Prototyping vs Rapid Development Revolutionary prototyping is sometimes called rapid prototypingRapid Prototyping is not a good term because it confuses prototyping with rapid developmentPrototyping is a technical issue: It is a particular model in the life cycle processRapid development is a management issue. It is a particular way to control a projectPrototyping can go on forever if it is not restricted“Time-boxed” prototyping
30The Limitations of the Waterfall and Spiral Models Neither of these model deals well with frequent changeThe Waterfall model assume that once you are done with a phase, all issues covered in that phase are closed and cannot be reopenedThe Spiral model can deal with change between phases, but once inside a phase, no change is allowedWhat do you do if change is happening more frequently? (“The only constant is the change”)
31An Alternative: Issue-Based Development A system is described as a collection of issuesIssues are either closed or openClosed issues have a resolutionClosed issues can be reopened (Iteration!)The set of closed issues is the basis of the system modelSD.I1:ClosedI1:OpenA.I1:OpenSD.I3:ClosedI3:ClosedI2:ClosedA.I2:OpenSD.I2:ClosedPlanningRequirements AnalysisSystem Design
32Frequency Change and Software Lifeycle PT = Project Time, MTBC = Mean Time Between ChangeChange rarely occurs (MTBC >> PT):Waterfall ModelAll issues in one phase are closed before proceeding to the next phaseChange occurs sometimes (MTBC = PT):Boehm’s Spiral ModelChange occuring during a phase might lead to an iteration of a previous phase or cancellation of the project“Change is constant” (MTBC << PT):Issue-based Development (Concurrent Development Model)Phases are never finished, they all run in parallelDecision when to close an issue is up to managementThe set of closed issues form the basis for the system to be developed
40Issue-Based Model: Project is Done I1:ClosedA.I1:ClosedI2:ClosedI3:OpenA.I2:ClosedAnalysis:0%SD.I1:OpenSD.I3:ClosedSD.I2:ClosedDesign: 0%Implemen-tation: 0%
41Process MaturityA software development process is mature if the development activities are well defined and if management has some control over the management of the projectProcess maturity is described with a set of maturity levels and the associated measurements (metrics) to manage the processAssumption: With increasing maturity the risk of project failure decreases.Process maturity describes a set of maturity levels at which an organizations' development process takes place. Onle when the development process possesses sufficient structure and procedures does it make sense to collect certain kind of metricsWhy do we care about process maturity? Well, with increasing maturity we assume that the risk of project failure decreases. For example, with FRIEND
42Capability maturity levels 1. Initial Levelalso called ad hoc or chaotic2. Repeatable LevelProcess depends on individuals ("champions")3. Defined LevelProcess is institutionalized (sanctioned by management)4. Managed LevelActivities are measured and provide feedback for resource allocation (process itself does not change)5. Optimizing LevelProcess allows feedback of information to change process itself
43SummaryA Software Life Cycle Model is a representation of the development process (as opposed to the system).Reviewed software life cyclesWaterfall modelV-ModelSawtooth ModelBoehm’s Spiral ModelIssue-based Development Model (Concurrent Development)The maturity of a development process can be assessed using a process maturity model, such as the SEI’s CMM.