Unformatted text preview:

September 3, 2008 Lecture 4 1CS 390 – Lecture 4Other Software Life Cycle ModelsCode-and-fix life-cycle modelWaterfall life-cycle modelRapid prototyping life-cycle modelOpen-source life-cycle modelAgile processesSynchronize-and-stabilize life-cycle modelSpiral life-cycle modelSeptember 3, 2008 Lecture 4 2Code-and-Fix Model (Figure 2.8)No designNo specifi-cationsMaintenance nightmareThe easiest way to develop softwareThe most expensive waySeptember 3, 2008 Lecture 4 3Full Waterfall Model (Figure 2.9)Characterized byFeedback loopsDocumentation-drivenAdvantages DocumentationMaintenance is easier DisadvantagesSpecification documentSeptember 3, 2008 Lecture 4 4Rapid Prototyping Model (Figure 2.10)Linear modelAnalysis after prototype“Rapid”September 3, 2008 Lecture 4 5Open-Source Life-Cycle ModelTwo informal phases. First, one individual builds an initial versionMade available via the Internet (e.g., SourceForge.net) Then, if there is sufficient interest in the projectThe initial version is widely downloadedUsers become co-developersThe product is extendedKey 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 defectsCorrective maintenanceAdd additional functionalityPerfective maintenancePort the program to a new environmentAdaptive maintenanceThis phase consists solely of postdelivery maintenanceThe 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 SoftwareClosed-source software is maintained and tested by employeesUsers can submit failure reports but never fault reports (the source code is not available)Open-source software is generally maintained by unpaid volunteersUsers 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 groupSmall number of dedicated maintainers with the inclination, the time, and the necessary skills to submit fault reports (“fixes”)They take responsibility for managing the projectThey have the authority to install fixesPeripheral groupUsers 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 yearAfter careful testing by the SQA groupThe core group releases a new version of an open-source product as soon as it is readyPerhaps a month or even a day after the previous version was releasedThe core group performs minimal testingExtensive 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 usingThe rapid-prototyping model;The code-and-fix model; and The open-source life-cycle modelThen:Rapid-prototyping modelThe initial version is discardedCode-and-fix model and open-source life-cycle modelThe 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 designHow 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 expertsThey can function effectively without specifications or designsHowever, 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 applicabilityIt 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 organizationMembers of both the core group and the periphery are invariably users of the software being developedThe 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 projectEven where work has started, the overwhelming preponderance will never be completedBut when the open-source model has worked, it has sometimes been incredibly successfulThe 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 approachStories (features client wants)Estimate duration and cost of each storyClient selects stories for next buildEach build is divided into tasksTest cases for a task are drawn up firstPair programmingContinuous integration of tasksSeptember 3, 2008 Lecture 4 18Unusual Features of XPThe computers are put in the center of a large room lined with cubiclesA client representative is always presentSoftware professionals cannot work overtime for 2 successive weeksNo specializationRefactoring (design modification)September 3, 2008 Lecture 4 19Agile ProcessesXP is one of a number of new paradigms collectively referred to as agile processesSeventeen 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 modelInstead, they laid out a group of underlying principlesSeptember 3, 2008


View Full Document
Download LECTURE NOTES
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view LECTURE NOTES and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view LECTURE NOTES 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?