September 3, 2008 Lecture 4 1CS 390 – Lecture 4Other Software Life Cycle ModelsCode-and-fix life-cycle modelWaterfall life-cycle modelRapid prototyping life-cycle modelOpen-source life-cycle modelAgile processesSynchronize-and-stabilize life-cycle modelSpiral life-cycle modelSeptember 3, 2008 Lecture 4 2Code-and-Fix Model (Figure 2.8)No designNo specifi-cationsMaintenance nightmareThe easiest way to develop softwareThe most expensive waySeptember 3, 2008 Lecture 4 3Full Waterfall Model (Figure 2.9)Characterized byFeedback loopsDocumentation-drivenAdvantages DocumentationMaintenance is easier DisadvantagesSpecification documentSeptember 3, 2008 Lecture 4 4Rapid Prototyping Model (Figure 2.10)Linear modelAnalysis after prototype“Rapid”September 3, 2008 Lecture 4 5Open-Source Life-Cycle ModelTwo informal phases. First, one individual builds an initial versionMade available via the Internet (e.g., SourceForge.net) Then, if there is sufficient interest in the projectThe initial version is widely downloadedUsers become co-developersThe product is extendedKey point: Individuals generally work voluntarily on an open-source project mostly in their spare timeSeptember 3, 2008 Lecture 4 6Open-Source Life-Cycle Model (2)In the second informal phase, report and correct defectsCorrective maintenanceAdd additional functionalityPerfective maintenancePort the program to a new environmentAdaptive maintenanceThis phase consists solely of postdelivery maintenanceThe word “co-developers” on the previous slide really should be “co-maintainers”September 3, 2008 Lecture 4 7Open-Source Life-Cycle Model (3)Could be called the postdelivery maintenance life-cycle model (Figure 2.11)September 3, 2008 Lecture 4 8Compare Open-Source Life-Cycle with Closed-Source SoftwareClosed-source software is maintained and tested by employeesUsers can submit failure reports but never fault reports (the source code is not available)Open-source software is generally maintained by unpaid volunteersUsers are strongly encouraged to submit defect reports, both failure reports and fault reportsSeptember 3, 2008 Lecture 4 9Compare Open-Source Life-Cycle with Closed-Source Software (2)Two types of maintainers. Core groupSmall number of dedicated maintainers with the inclination, the time, and the necessary skills to submit fault reports (“fixes”)They take responsibility for managing the projectThey have the authority to install fixesPeripheral groupUsers who choose to submit defect reports from time to time September 3, 2008 Lecture 4 10Compare Open-Source Life-Cycle with Closed-Source Software (3)New versions of closed-source software are typically released roughly once a yearAfter careful testing by the SQA groupThe core group releases a new version of an open-source product as soon as it is readyPerhaps a month or even a day after the previous version was releasedThe core group performs minimal testingExtensive testing is performed by the members of the peripheral group in the course of utilizing the software“Release early and often”September 3, 2008 Lecture 4 11Open-Source Life-Cycle Model (4)An initial working version is produced when usingThe rapid-prototyping model;The code-and-fix model; and The open-source life-cycle modelThen:Rapid-prototyping modelThe initial version is discardedCode-and-fix model and open-source life-cycle modelThe initial version becomes the target productSeptember 3, 2008 Lecture 4 12Open-Source Life-Cycle Model (5)Consequently, in an open-source project, there are generally no specifications and no designHow have some open-source projects been so successful without specifications or designs?September 3, 2008 Lecture 4 13Open-Source Life-Cycle Model (6)Open-source software production has attracted some of the world’s finest software expertsThey can function effectively without specifications or designsHowever, eventually a point will be reached when the open-source product is no longer maintainableSeptember 3, 2008 Lecture 4 14Open-Source Life-Cycle Model (7)The open-source life-cycle model is restricted in its applicabilityIt can be extremely successful for infrastructure projects, such as Operating systems (Linux, OpenBSD, Mach, Darwin)Web browsers (Firefox, Netscape)Compilers (gcc)Web servers (Apache)Database management systems (MySQL)September 3, 2008 Lecture 4 15Open-Source Life-Cycle Model (8)There cannot be open-source development of a software product to be used in just one commercial organizationMembers of both the core group and the periphery are invariably users of the software being developedThe open-source life-cycle model is inapplicable unless the target product is viewed by a wide range of users as useful to themSeptember 3, 2008 Lecture 4 16Open-Source Life-Cycle Model (9)About half of the open-source projects on the Web have not attracted a team to work on the projectEven where work has started, the overwhelming preponderance will never be completedBut when the open-source model has worked, it has sometimes been incredibly successfulThe open-source products previously listed have been utilized on a regular basis by millions of usersSeptember 3, 2008 Lecture 4 17Extreme Programming (XP)Somewhat controversial new approachStories (features client wants)Estimate duration and cost of each storyClient selects stories for next buildEach build is divided into tasksTest cases for a task are drawn up firstPair programmingContinuous integration of tasksSeptember 3, 2008 Lecture 4 18Unusual Features of XPThe computers are put in the center of a large room lined with cubiclesA client representative is always presentSoftware professionals cannot work overtime for 2 successive weeksNo specializationRefactoring (design modification)September 3, 2008 Lecture 4 19Agile ProcessesXP is one of a number of new paradigms collectively referred to as agile processesSeventeen software developers (later dubbed the “Agile Alliance”) met at a Utah ski resort for two days in February 2001 and produced the Manifesto for Agile Software Development The Agile Alliance did not prescribe a specific life-cycle modelInstead, they laid out a group of underlying principlesSeptember 3, 2008
View Full Document