bc0f4fad9d6f701bec5bf757d2b78dbd.ppt
- Количество слайдов: 33
An Overview of Software Process
Objectives n n To introduce the general phases of the software development life cycle (SDLC) To describe various generic software process models and discuss their pros and cons To introduce some specific software processes To discuss software process assessment and improvement CMSC 345, Version 1/11 2
Generalizing the Software Development Life Cycle (SDLC) Requirements n n n n system services and constraints “What” Specify system scope Elicit and specify system services Elicit and specify system constraints Begin designing the user interface (isn’t this design? !) Establish deliverables Discuss open issues Document Verify CMSC 345, Version 1/11 3
Generalizing the Software Development Life Cycle (SDLC) Requirements intended system structure “How” system services and constraints “What” n n n n n CMSC 345, Version 1/11 Design Overall architectural design Component interface design Algorithm design Data structure design Hardware and software decisions Discuss open issues Document Verify 4
Generalizing the Software Development Life Cycle (SDLC) Requirements intended system structure “How” n n Design “What” Implementation n CMSC 345, Version 1/11 system services and constraints code Coding Successful compilation of code units Unit testing Code inspection Document 5
Generalizing the Software Development Life Cycle (SDLC) Requirements intended system structure “How” system services and constraints “What” code Implementation n final product n n n CMSC 345, Version 1/11 Design n Testing Component testing Integration testing ¨ Subsystem testing ¨ System testing Acceptance testing Document Deployment (actually its own phase) 6
Generalizing the Software Development Life Cycle (SDLC) Requirements intended system structure “How” system services and constraints Design “What” Implementation code Testing n final product Maintenance n n n CMSC 345, Version 1/11 Bug fixes Refactoring Upgrades Document 7
Software Process Models An abstract representation of how the SDLC phases can be addressed n Major models: n ¨ Waterfall ¨ Spiral ¨ Iterative and Incremental Development (IID) ¨ Prototyping Evolutionary n Throwaway n CMSC 345, Version 1/11 8
Waterfall Model Requirements Design Implementation Testing Winston Royce, 1970 CMSC 345, Version 1/11 Maintenance 9
Observations Contains all phases of the SDLC n May have to return to the previous phase n Still widely used, especially on very large projects n Requirements Design Implementation Testing Maintenance CMSC 345, Version 1/11 10
Spiral Model CMSC 345, Version 1/11 Barry Boehm, 1988 11
Observations n n Each loop in the spiral represents a phase in the process. Is iterative Risks are explicitly assessed and resolved throughout the process. Uses prototyping CMSC 345, Version 1/11 12
Iterative and Incremental Development (IID) Requirements Determine the “pieces” Design Develop each “piece, ” adding to the previous ones Implementation Final system emerges Testing Maintenance CMSC 345, Version 1/11 13
Observations n n n Contains all phases of the SDLC Development and delivery is broken down into functional increments (“pieces”) The increments are prioritized Is an iterative, incremental process Common to deploy at the end of each iteration Requirements Determine the “pieces” Design Develop each “piece, ” adding to the previous ones Implementation Final system emerges Testing Maintenance CMSC 345, Version 1/11 14
Prototyping Requirements Throw prototype away? Design Prototyping (waterfall, spiral, IID, etc. ) Implementation Testing Final System Development (waterfall, spiral, IID, etc. ) Testing Maintenance CMSC 345, Version 1/11 15
Observations n n n Contains all phases of the SDLC Terrific requirements elicitation and validation technique There is always a “working” model (prototype) of the final system Is an iterative process Prototype can be thrown away (throwaway prototyping) or evolved into the final system (evolutionary prototyping) Requirements Throw prototype away? Design Prototyping (waterfall, spiral, IID, etc. ) Implementation Testing Maintenance CMSC 345, Version 1/11 Final System Development (waterfall, spiral, IID, etc. ) 16
Software Processes Rational Unified Process (RUP) (’ 90’s) n Agile processes (late ’ 90’s) n ¨ Scrum ¨ Extreme n Programming (XP) Customized CMSC 345, Version 1/11 17
Rational Unified Process (3) n Rational Unified Process (RUP) ¨ Rational Software Corporation, now owned by IBM n “Three Amigos” Grady Booch ¨ James Rumbaugh ¨ Ivar Jacobson ¨ ¨A popular type of Unified Process (UP) CMSC 345, Version 1/11 18
Rational Unified Process (1) CMSC 345, Version 1/11 Rational Unified Process 19
Rational Unified Process (UP) (2) n n Set of activities (workflows), artifacts (e. g. , documents, diagrams, code), and roles (e. g. , architect, code reviewer, tester) Customizable generic process framework Characteristics ¨ Use case driven (functional requirements) ¨ Architecture-centric (system structure) ¨ Iterative (cycles through “workflows”) ¨ Incremental (incremental deliveries of a specified set of use cases) Makes extensive use of the Unified Modeling Language (UML) CMSC 345, Version 1/11 20
Agile Processes n Agile Manifesto (2001) ¨ Emphasizes “lightweight” processes ¨ Values n Individuals and interactions over processes and tools n Working software over comprehensive documentation n Customer collaboration over contract negotiation n Responding to change over following a plan ¨ www. agilemanifesto. org ¨ SD n Magazine, The Agile Manifesto, August 2001 Some agile processes Scrum ¨ Extreme Programming (XP) (Is it a process? ) ¨ CMSC 345, Version 1/11 21
Scrum (1) Rugby – A way of restarting the game after an infringement or after the ball goes out of play CMSC 345, Version 1/11 22
Scrum (2) n n [Reference: Schwaber & Beedle] “Scrum is superimposed on and encapsulates whatever engineering practices already exist. ” Roles ¨ Scrum Master n n n ¨ Product Owner n ¨ Solely controls the Product Backlog Scrum Team n n ¨ Responsible for ensuring that Scrum values, practices, and rules are enacted and enforced Represents management and the team to each other Responsible for the success of the Scrum Commits to achieving a Sprint goal Accorded full authority to do whatever it decides is necessary to achieve the goal Responsible for doing all of the analysis, design, coding, testing, and user documentation Self-organizing, cross-functional Stakeholders n Customers, vendors, others CMSC 345, Version 1/11 23
Scrum (3) n Some Tasks ¨ Daily Scrums n n n ¨ 30 -day Sprints n n What the team has accomplished since the last meeting What it is going to do before the next meeting What obstacles are in its way Sprint planning meeting Sprint goal End-of-Sprint review Some Artifacts ¨ Product Backlog n ¨ Release Backlog n ¨ An evolving, prioritized queue of business and technical functionality that needs to be developed into a system. The subset of the Product Backlog that is selected for a release. Sprint Backlog n Tasks that the Scrum Team has devised for a Sprint. CMSC 345, Version 1/11 24
Extreme Programming (XP) (1) n Basic principles (Beck) ¨ Rapid feedback ¨ Assume simplicity ¨ Incremental change ¨ Embracing change ¨ Quality work CMSC 345, Version 1/11 25
Extreme Programming (XP) (2) n Practices ¨ The planning game ¨ Small releases ¨ Metaphor ¨ Simple design ¨ Testing ¨ Refactoring ¨ Pair programming ¨ Collective ownership ¨ Continuous integration ¨ 40 -hour week ¨ On-site customer ¨ Coding standards CMSC 345, Version 1/11 26
Customized Processes Sometimes (usually? ) it’s best to “pick and choose” n Questions to ask: n ¨ Is there a required process? ¨ Are the requirements well-understood? ¨ What else? (Think about this on your own. ) CMSC 345, Version 1/11 27
Assessing Process (1) n Software “crisis” in the 1960’s, ’ 70’s, ’ 80’s ¨ Over budget ¨ Over schedule ¨ Poor quality n Software Engineering Institute (SEI) ¨ Carnegie Mellon University ¨ Federally-funded, non-profit research and development center ¨ Consortium of academia, government, and industry ¨ Mission: to “advance the practice of software engineering” (from www. sei. cmu. org) CMSC 345, Version 1/11 28
Assessing Process (2) n SEI Capability Maturity Model (CMM), 1991 ¨ ¨ n Provides guidance for software process improvement Also a method for assessing the maturity of an organization’s software process Capability Maturity Model Integration (CMMI), 2002 ¨ ¨ ¨ Successor to CMM Version 1. 2, released August 2006 Five levels of process “maturity” • 1. 2. 3. 4. 5. ¨ ¨ Incomplete Initial (ad hoc) Managed (can repeat earlier successes) Defined (standardized and documented process) Quantitatively Managed (software process metrics gathered) Optimizing (continuous process improvement) Is not a specific process Is process-independent CMSC 345, Version 1/11 29
Assessing Process (3) n n Some government agencies and other organizations require contractors to have achieved a specific minimal CMMI level Other standards and certifications: ¨ ISO 9000 (International Organization for Standardization) n n A family of standards Can be certified as “ISO 9000 compliant” ¨ Six Sigma n Originally developed by Motorola n Origins in quality (defect) control in manufacturing n Various certifications CMSC 345, Version 1/11 30
CMSC 345 Process (1) n Basically, waterfall. Why? ¨ First time through the entire life cycle ¨ Semester is very short ¨ I must give you hard deadlines n n Probably will have to integrate some iteration into the process Prototyping strongly recommended ¨ For requirements elicitation ¨ Keep your customer informed (and happy!) n Take a look at our. CMSC 345 Process_S 11. ppt CMSC 345, Version 1/11 31
References (1) n n n Boehm, Barry, A Spiral Model of Software Development and Enhancement, IEEE Computer, 21(5): 61 -72, May 1988. Beck, K. , Extreme Programming Explained. 2000, New York: Addison-Wesley. Capability Maturity Model: Guidelines for Improving the Software Process, ed. C. M. U. Software Engineering Institute. 1995, New York: Addison-Wesley. Fowler, M. and J. Highsmith, The Agile Manifesto, in Software Development Magazine, August 2001. International Organization for Standardization, http: //www. iso. ch/iso/en/ISOOnline. frontpage Jacobson, I. , G. Booch, and J. Rumbaugh, The Unified Software Development Process 1999, New York: Addison-Wesley. CMSC 345, Version 1/11 32
References (2) n n n n Kruchten, P. , The Rational Unified Process: An Introduction. 3 rd ed. 2003, New York: Addison-Wesley. Manifesto for Agile Software Development, www. agilemanifesto. org Royce, Winston, Managing the Development of Large Software Systems: Concepts and Techniques, in WESCON Technical Papers, 1970, reprinted in The Proceedings of the Ninth International Conference on Software Engineering, 1987, pp. 328338. Scott, K. , The Unified Process Explained 2001, New York: Addison. Wesley. Schwaber, K. and M. Beedle, Agile Software Development with SCRUM. 2001, Prentice Hall. Software Engineering Institute (SEI), www. sei. cmu. edu Software Engineering Institute CMMI Website, http: //www. sei. cmu. edu/cmmi/ CMSC 345, Version 1/11 33
bc0f4fad9d6f701bec5bf757d2b78dbd.ppt