LEHIGH CSE 432 - Software process life cycles

Unformatted text preview:

Software process life cyclesSoftware and entropyPlanning for changeA software process requires resources…A software life cycle is a processWaterfall model of software processWhy would corporate manager types like the waterfall life cycle model?Testing in the waterfall modelMore drawbacks of the waterfall modelPrototypingV modelBalzer’s transformational modelPhased developmentIterative and incremental processSlide 15Rational Unified Process (RUP)Agile MethodsHow do traditional stages iterate?Slide 19Inception  Elaboration  ……  Construction  TransitionUP phases are iterative & incrementalUP artifactsSlide 24Slide 25What does diagram imply about UP?Slide 27Software process life cyclesCSE 432: Object-Oriented Software EngineeringSoftware and entropyA virtue of software: relatively easy to changeOtherwise it might as well be hardwareNevertheless, the more complex a software system gets, the harder it is to change--why?Larger software systems are harder to understandThe more changes get introduced into a system, the more it tends toward entropy I.e., its internal order breaks downMultimedia: http://www.cse.lehigh.edu/~cimel/prototype.htmlPlanning for changeHow can good comments facilitate and reduce the cost of software maintenance?Hint: think about invariants, things that don’t change.Comments describe meaning of codeAssuming programmers maintain comments when they change the code!How can modularity help manage change?Modules help to isolate and localize changeA software process requires resources…A software life cycle is a processA process involves activities, constraints and resources that produce an intended output.Each process activity, e.g., design, must have entry and exit criteria—why?A process uses resources, subject to constraints (e.g., a schedule or a budget)A process is organized in some order or sequence, structuring activities as a whole A process has a set of guiding principles or criteria that explain the goals of each activityWaterfall model of software processMultimedia: stages in the processCascades from one stage down to the next, in stately, lockstep, glorious order.Gravity only allows the waterfall to go downstream;it’s very hard to swim upstreamDepartment of Defense contracts prescribed this model for software deliverables for many years, in DOD Standard 2167-A.Why would corporate manager types like the waterfall life cycle model?Minimizes change, maximizes predictabilityCosts and risks are more predictableEach stage has milestones and deliverables: project managers can use to gauge how close project is to completionSets up division of labor: many software shops associate different people with different stages:Systems analyst does analysis, Architect does design, Programmers code, Testers validate, etc.Testing in the waterfall modelLet’s look at more Pfleeger’s version of waterfall modelMany waterfall models show 5 stages—why more here?What’s the difference between unit and system testing?Between system and acceptance testing?What kind of arrows are missing?Is this diagram a more realistic picture?Is this view of the process a good idea?The reality is that not only does software change, but change happens during the processRealistic models are not strictly linear, but allow for cyclesBear in mind, however, that more cycles mean more costsMore drawbacks of the waterfall modelOffers no insight into how how does each activity transform one artifacts (documents) of one stage into anotherFor example, requirements specification  design documents?Fails to treat software a problem-solving processUnlike hardware, software development is not a manufacturing but a creative processManufacturing processes really can be linear sequences, but creative processes usually involve back-and-forth activities such as revisionsSoftware development involves a lot of communication between various human stakeholdersNevertheless, more complex models often embellish the waterfall, incorporating feedback loops and additional activitiesPrototypingThis model adds prototyping as sub-processA prototype is a partially developed product that enables customers and developers to examine some aspect of a proposed system and decide if it is suitable for a finished productWhy add prototypes to the life cycle?Used to explore the risky aspects of the system:Risk of developing the “wrong” system (what customer doesn’t want), can be a user interface without functionalityOther technical risks – e.g. performance, using a new technology, alternative algorithms, etc.Prototype may be thrown away or evolve into productV modelDeveloped by the German Ministry of DefenseWhat does this model highlight?Unit and system testing verify the program design, ensuring that parts and whole work correctlyAcceptance testing, conducted by the customer rather than developers, validates the requirements, tying each system function meets a particular requirement in the specificationHow does this model account for cycles?If problems are found during verification or validation, then re-execute left side of V to make fixes and improvementsWhile the waterfall emphasizes documents and artifacts, the V model emphasizes activities and correctnessBalzer’s transformational modelTries to reduce error in most software processes by:eliminating development steps, emphasizing formal specifications, and using automated support to facilitate transformations from specification to deliverable systemHitch: the need for a formal specification precise enough for automated transformationsWe’ll see that even semi-formal specifications can help with other software life cyclesPhased developmentNowadays, customers are less willing to wait years for a software system to be readySo it’s necessary to reduce the cycle time of software productsIn 1996, 80% of HP’s revenues derived from products developed in previous two yearsHow is this accelerated cycle time made possible?Phased development reduces cycle timeDesign a system so it can be delivered in pieces, letting users have some functionality while the rest is under developmentSo there are usually two or more systems in parallel: The operational or production system in use by customers The development system which will


View Full Document

LEHIGH CSE 432 - Software process life cycles

Download Software process life cycles
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 Software process life cycles 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 Software process life cycles 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?