DOC PREVIEW
Toronto CSC 302 - Lecture 7 - Software Processes"

This preview shows page 1-2-3 out of 10 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 10 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 10 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 10 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 10 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

1!University of Toronto Department of Computer Science © 2012 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 1 Lecture 7:!Software Processes"" What is a Software Development Process?" The Lifecycle of a Software Project" Agile vs. Disciplined" Some common approaches: " RUP, SCRUM, XP, ICONIX,…" Where UML fits in (next lecture)"University of Toronto Department of Computer Science © 2012 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 2 Source: xkcd 844"2!University of Toronto Department of Computer Science © 2012 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 3 Project Types"Reasons for initiating a software development project"Problem-driven: competition, crisis,…"Change-driven: new needs, growth, change in business or environment,…"Opportunity-driven: exploit a new technology,…"Legacy-driven: part of a previous plan, unfinished work, …"Relationship with Customer(s):"Customer-specific - one customer with specific problem"May be another company, with contractual arrangement"May be a division within the same company"Market-based - system to be sold to a general market"In some cases the product must generate customers"Marketing team may act as substitute customer"Community-based - intended as a general benefit to some community"E.g. open source tools, tools for scientific research"Usually: funder ≠ customer (if funder has no stake in the outcome) "Hybrid (a mix of the above)"University of Toronto Department of Computer Science © 2012 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 4 Project Context"What is the current (old) system?"There is *always* an existing system!"May just be a set of ad hoc workarounds for the problem"Studying it is important:"If we want to avoid the weaknesses of the old system…"…while preserving what the stakeholders like about it"Use pre-existing components?"Benefits:"Can dramatically reduce development cost"Easier to decompose the problem if some sub-problems are already solved"Tension:"Solving the real problem vs. solving a known problem (with ready solution)"Will it be part of a product family?"Vertical families: e.g. ʻbasicʼ, ʻdeluxeʼ and ʻproʼ versions of a system"Horizontal families: similar systems used in related domains"Typically based on a common architecture (or just shared software assets)"3!University of Toronto Department of Computer Science © 2012 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 5 Lifecycle of an Engineering Project"Lifecycle models"Useful for comparing projects in general terms"Not enough detail for project planning"Examples:"Sequential models: Waterfall, V model"Phased Models: Incremental, Evolutionary"Iterative Models: Spiral"Process Models"Used for capturing and improving the development process"Detailed guidance on steps and products of each step"Process Frameworks"Patterns and principles for designing a specific process for your project"University of Toronto Department of Computer Science © 2012 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 6 Waterfall Model"requirements design code integrate test perceived need View of development:"• a process of stepwise refinement"• largely a high level management view"Problems:"• Static view of requirements - ignores volatility"• Lack of user involvement once specification is written"• Unrealistic separation of specification from design"• Doesnʼt accommodate prototyping, reuse, etc."4!University of Toronto Department of Computer Science © 2012 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 7 V-Model"system requirements software requirements preliminary design detailed design code and debug unit test component test software integration acceptance test system integration “analyse and design” “test and integrate” time Level of abstraction University of Toronto Department of Computer Science © 2012 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 8 Prototyping lifecycle"Specify fullrequirementsdesign code test integratePreliminaryrequirementsdesignprototypebuildprototypeevaluateprototypePrototyping is used for:"understanding the requirements for the user interface"examining feasibility of a proposed design approach"exploring system performance issues"Problems:"users treat the prototype as the solution"a prototype is only a partial specification"5!University of Toronto Department of Computer Science © 2012 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 9 design code test integrate O&M reqts Phased Lifecycle Models "Requirements design code test integrate O&M Source: Adapted from Dorfman, 1997, p10 design code test integrate O&M design code test integrate O&M design code test integrate O&M design code test integrate O&M reqts design code test integrate reqts version 1 version 2 version 3 Release 1 release 2 release 3 release 4 lessons learnt lessons learnt Incremental development (each release adds more functionality) Evolutionary development (each version incorporates new requirements) University of Toronto Department of Computer Science © 2012 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 10 The Spiral Model"Determine goals, alternatives, constraints Evaluate alternatives and risks Plan Develop and test budget1 budget2 budget3 budget4 prototype1 prototype2 prototype3 prototype4 alternatives4 alternatives3 Altern- atives2 constraints4 constraints3 Constr- aints2 alternatives constraints risk analysis4 risk analysis3 risk analysis2 risk analysis1 concept of operation software requirements validated requirements software design validated, verified design detailed design code unit test system test acceptance test requirements,


View Full Document

Toronto CSC 302 - Lecture 7 - Software Processes"

Documents in this Course
Load more
Download Lecture 7 - Software Processes"
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 7 - Software Processes" 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 7 - Software Processes" 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?