Presentation on theme: "The Software Process ECE 417/617: Elements of Software Engineering"— Presentation transcript:
1 The Software Process ECE 417/617: Elements of Software Engineering Stan BirchfieldClemson University
2 Life cycle phases 5 phases of every S/W life cycle: Communication – requirements gathering, project initiationPlanning – determine tasks, risks, resources, work products, schedule; estimate, schedule, trackModeling – create models to facilitate more precise communication and planning; includes analysis and designConstruction – code generation and testingDeployment – delivery, feedback, supportTwo approaches: prescriptive and agile
3 Waterfall model [adapted from Royce (1970)] Requirements Analysis SystemDesignObjectDesignCodingTestingInstallationMaintenance[adapted from Royce (1970)]
4 What is wrong with waterfall? RequirementsAnalysisMaintenanceSystemDesignInstallationObjectDesignTestingCodingInterrelated nonlinear, sequential
5 V-model is validated by less detail more detail build system RequirementsAnalysisAcceptanceTestingis validated byless detailSystemDesignSystemTestingObjectDesignUnitTestingmore detailCodingbuild systemvalidate system
6 Incremental model features time increment #3 version #3 increment #2 #1ADCTMtime
7 Rapid application development (RAD) Team #1ModelingCommunicationConstructionPlanningDeploymentTeam #NModelingConstructionDeveloped by James Martin at IBM in 1980sRAD has largely been discredited because it has not proved successful"RAD is back", says IBM, Information Age, Feb. 10, 200660 – 90 days
8 Prototyping Enables faster feedback CommunicationFeedbackQuick planDeliveryQuick modelingConstructPrototypeEnables faster feedbackCan be incorporated into other modelsBut what is the danger?
10 Spiral model “Risk-driven approach” Deployment Communication startConstructionPlanningModeling“Risk-driven approach”[developed by Barry Boehm, 1988]
11 Concurrent Each activity can be in a different state: none under developmentawaiting changesunder reviewunder revisionbaselineddone
12 Unified process inception elaboration transition construction software incrementinceptionCommunicationDeploymentPlanningtransitionelaborationConstructionModelingconstructionIncremental, iterative“Unified” same originators as UMLAlso called Rational Unified Process (RUP)Based on spiral model, developed at Rational Software, a division of IBM since 2003
13 Unified process work products Inception phasevision documentinitial use-case modelinitial business caseinitial risk listproject planprototype(s)...Elaboration phaseuse-case modelrequirementsanalysis modelpreliminary modelrevised risk listpreliminary manual...Construction phasedesign modelSW componentstest plantest proceduretest casesuser manualinstallation manual...Transition phaseSW incrementbeta test reportsuser feedback...
14 Agile development S/W development is unpredictable requirements will change (which ones?)design and construction are interleaved (how much design is needed?)analysis and testing, tooSolution: Use an adaptable processincremental development strategy
15 Agile principles Agile Manifesto (2001) values Agile principles: individuals and interactions over processes and toolsworking software over comprehensive documentationcustomer collaboration over contract negotiationresponding to change over following a planAgile principles:satisfy customer (highest priority)early and frequent S/W deliverywelcome changing requirementswork daily with business people and developersbuild projects around motivated individualssimplicity: maximize the amount of work NOT doneself-organizing teamsregular reflection to adjust behavior to improve effectiveness
16 Extreme programming (XP) Kent Beck became project leader of Chrysler’s payroll project in 1996 Project canceled in 2000[Kent Beck, Extreme Programming Explained, 1999][from extremeprogramming.org]
17 A simpler view of XP design planning coding test spike solutions (prototypes)CRC cardsdesignplanningcodingrefactoringtestunit testacceptance testcontinuous integrationS/W increment
18 XP principles Pros and cons? Test-driven development The planning game On-site customerPair programmingContinuous integrationRefactoringSmall releasesSimple designSystem metaphorCollective code ownershipCoding standards40-hour work weekPros and cons?
19 Adaptive S/W development (ASD) ASD focuses on human collaboration and team self-organizationcollaborationspeculationlearningS/W increment[Highsmith 2000]
20 Scrum Backlog – prioritized list of project requirements or features Sprints – work units required to achieve a requirementdeliver within fixed time (30 days)no changes to requirement allowed during that timeDaily meetings (15 min.)What did you do?What obstacles are you encountering?What is your plan?Demos – S/W increments delivered to customer (can ship final product upon demand)
21 BDUF controversy BDUF – Big design up front Proponents claim that planning up front saves lots of time in the endMuch faster to fix a bug in the spec than in the codeAn ounce of prevention is worth a pound of cureWho is right? Both. Strive for balance.
22 Model summary Prescriptive models Waterfall Incremental RAD Spiral Concurrent developmentComponent-based developmentFormal methodsAspect orientedUnified process (RUP)Agile modelsExtreme programming (XP)Adaptive software development (ASD)Dynamic systems development (DSDM)ScrumCrystalFeature driven development (FDD)Agile model
23 Synch-and-stabilize How to balance structure and flexibility? Solution:Plan product with vision statementTranslate into specification document with enough detail to divide the workDivide into parts and assign to teamsTeams are free to implement, innovate as they wishTeams work under common environmentTeams check-in work frequentlyFrequent (daily) buildsAlways a working systemEasy to test, see defects, measure progress continually[from “How Microsoft Builds Software”, Cusumano and Selby]
24 Personal software process (PSP) Individual developers shouldmeasure the quality of outputplan (estimate and schedule work)identify likely and actual errorsuse metrics to improve processActivities: (1) planning, (2) high-level design, (3) high-level design review, (4) development, (5) postmortemDisciplined metrics-based approach to software engineeringRequires significant trainingImproves productivity and quality, but resisted by many developers (culture shock)[SEI’s Watts Humphreys]
25 Team software process (TSP) Project team shouldbe self-directed, able to plan and track their work, establish goals, and own their processes and planshave consistent understanding of its overall goals and objectivesdefine roles and responsibilitiestrack quantitative project dataidentify and implement an appropriate process for the projectdefine local standardscontinually assess and respond to riskstrack, manage, and report project statusActivities: (1) launch, (2) high-level design, (3) implementation, (4) integration and test, (5) postmortemRigorous approach that requires a full commitment from the teamRequires thorough trainingImproves productivity and quality[SEI’s Watts Humphreys]