Software Engineering: A Practitioner’s Approach, 6/e Chapter 2, 3, &4 Process copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach. Any other reproduction or use is expressly prohibited. 1 Software Process A framework for the tasks that are required to build high-quality software. A process defines who is doing what, when, and how to reach a certain goal. 2 A Process Framework Process framework Framework activity #1 work tasks work products milestones & deliverables QA checkpoints … Framework activity #n … Umbrella Activities 3 Generic Framework Activities Communication: Communication and collaboration with the stakeholders and encompasses requirement gathering and other activities. Planning: Establishment of a plan: the technical tasks, risks, resources, work products, and a work schedule Modeling: Analysis of requirements: better understanding of requirements Design: that achieves the requirements Data design, architectural design, interface design, detailed design Construction Req. gathering, elaboration, negotiation, spec, and validation Code generation: manual or automated Testing: uncover errors. Deployment: Delivery of software for customer evaluation with feedback. 4 Communication: Requirements Gathering Task set: Simple Project Complex Project 1. 2. 1. 2. 3. 4. 5. 6. List stakeholders Informal meeting with stakeholders Ask each to list of features and functions Determine the final list of requirements Prioritize requirements Note areas of uncertainty 3. 4. 5. 6. 7. 8. 9. 10. 11. List stakeholders Meet stakeholders separately to determine overall wants and needs Build a preliminary list of functions and features Schedule and conduct a series of facilitated requirements gathering meetings Produce informal scenarios as part of each meeting Refine scenarios Build revised requirements Prioritize requirements Package requirements for incremental delivery Note constraints and restrictions Discuss methods for validating the system 5 Umbrella Activities Software project management Formal technical reviews Defines criteria for reuse and establishes mechanisms to achieve reusable components Measurement Activities required to create work products such as docs Reusability management Manages the effects of change throughout the process Work product preparation and production Defines/conducts activities to ensure quality Software configuration management Assess work products to uncover/remove errors before next action/activity Software quality assurance Assess progress and maintain schedule Defines/collects process, project, product measures that helps the project Risk management Assess risks that may affect the final system 6 The Process Model: Adaptability The framework activities will always be applied on every project ... BUT The tasks (and degree of rigor) for each activity will vary based on: the type of project characteristics of the project common sense judgment; concurrence of the project team 7 Process Patterns Process patterns define a set of activities, actions, work tasks, work products and/or related behaviors A template is used to define a pattern Typical examples: Customer communication (a process activity) Analysis (an action) Requirements gathering (a process task) Reviewing a work product (a process task) Design model (a work product) http://www.ambysoft.com/processPatternsPage.html 8 Process Patterns – An Example Pattern Name: Prototyping Intent: The objective is to build a model that can be assessed iteratively by stakeholders in an effort to identify or solidify sw requirements Type: Phase pattern Initial Context: The following preconditions must be met: 1. stakeholders have been identified; 2. a mode of communication b/w stakeholders and sw team has been established; 3. the overriding problem has been identified by stakeholders; 4. an initial understanding of proj. scope, basic requirements, and constraints has been developed. Problem: Requirements are hazy or nonexistent. Stakeholders are unsure that they need. Solution: A description of the prototyping process is presented. Resulting Context: A software prototype that identifies basic requirements is approved by stakeholders. Related Patterns: customer-communications; iterative design, … Known Uses/Examples: Prototyping is recommended when requirements are uncertain. 9 The Primary Goal of Any Software Process: High Quality Remember: High quality = project timeliness Why? Less rework! 10 Two Schools of Process Models Prescriptive process models advocate an orderly approach to software engineering Agile development Encourages early incremental delivery of software Stresses continuous communication between developers and customers 11 Prescriptive Process Models Define a distinct set of activities, actions, tasks, milestones, and work products. Software engineers and managers adapt a prescriptive process model to their need Guide a software team through a set of framework activities that organized into a linear, incremental, or evolutionary process flow The work products are the programs, documents, and data that are produced as a consequence of the activities. 12 The Waterfall Model Communicat ion project init iat ion requirement gat hering Planning estimating scheduling tracking Modeling analysis design Const ruct ion code t est Deployment delivery support f eedback 13 The Waterfall Model It suggests a systematic, sequential approach to software development. The oldest paradigm for software engineering Suitable for systems whose requirements are welldefined and reasonably stable. Drawbacks: Real projects rarely follow the sequential flow. It is often hard for the customer to state all requirements explicitly. A working product will not be available until late in the project time-span. Requirement errors may not be found until they are very costly to fix. 14 The Incremental Model increment # n Co m m u n i c a t i o n Pla nning M ode ling analy s is des ign Co n s t ru c t i o n c ode t es t De p l o y m e n t d e l i v e ry fe e dba c k deliv ery of nt h increment increment # 2 Co m m u n i c a t i o n Pla nning M ode ling analy s is des ign Co n s t ru c t i o n c ode De p l o y m e n t t es t d e l i v e ry fe e dba c k increment # 1 deliv ery of 2nd increment Co m m u n i c a t i o n Pla nning M ode ling analy s is des ign Co n s t ru c t i o n c ode De p l o y m e n t t es t d e l i v e ry fe e dba c k deliv ery of 1st increment project calendar t ime 15 The Incremental Model The waterfall model applied in an iterative fashion. Each linear sequence produces deliverable increments of the software. Normally core product is first delivered and supplementary features are incrementally added. Useful when staffing is unavailable for a complete implementation by the project deadline. Increments may be planned to manage technical risks 16 Rapid Application Development Team # n M o d e lin g busines s m odeling dat a m odeling process m odeling C o n s t r u c t io n com ponent reuse aut om at ic code generat ion t est ing Team # 2 Com m unicat ion Mo d eling b u si n e ss m o d e l i n g dat a m odeling p ro ce ss m o d e l i n g Planning Co nst r uct io n Team # 1 co m p o n e n t re u se a u t o m a t i c co d e g e n e ra t i o n t e st i n g Mode ling De ploym e nt int egrat ion deliv ery feedback business modeling dat a modeling process modeling Const r uct ion component reuse aut omat ic code generat ion t est ing 6 0 - 9 0 days 17 The RAD Model The incremental model with a short development cycle. Multiple RAD teams develop different components of the system in parallel. Short system development cycle is achieved by using a componentbased construction approach. Suitable for systems that can be modularized in a way that enables each major function to be completed in a short period of time. Drawbacks: For large systems, it requires sufficient people to form the RAD teams If developers and customers are not committed to the rapid-fire activities, the project would fail If the system cannot modularized properly, it can be problematic. It may be difficult to achieve high performance. It may not be appropriate if technical risks are high. 18 Evolutionary Models: Prototyping Qu ick p lan Quick Com m unicat ion plan communication Mo d e l in g Modeling Qu i ck d e sig n Quick design Deployment Deployment De live r y delivery & & Fe e dback feedback Const r uct ion Construction of of ot prototype pr ot ype 19 Evolutionary Models: Prototyping Assists the software developer and the customer to better understand what is to be built when requirements are fuzzy. "I know this is what I asked for, but it isn't really what I wanted." A quick throwaway prototype for users to experiment and the developer to understand and refine requirements based on users’ feedback.. The customer may falsely perceive the prototype as a working system, unwilling to continue for a complete system. Assumptions and design architecture of the prototype may influence implicitly the architecture of the real system. Rarely employed for complete development cycle. 20 Evolutionary Models: The Spiral planning estimation scheduling risk analysis communication modeling analysis design start deployment delivery feedback construction code test 21 Evolutionary Models: The Spiral Risk-driven process model. A cyclic approach for incrementally growing a system’s degree of definition and implementation. A set of anchor point milestones for ensuring stakeholder commitment for feasible and mutually satisfactory solutions. Prototyping can be employed as a risk reduction mechanism at any stage A good approach for large-scale systems. 22 Still Other Process Models Component based development—systems are built by integrating Commercial off-the-shelf (COTS) software components. Following the following steps: 1. 2. 3. 4. 5. Research and evaluate component-based products Resolve component integration issues A software architecture is designed to accommodate the components Components are integrated into the architecture Comprehensive testing is conducted. Formal methods—emphasizes the mathematical specification of requirements 23 Still Other Process Models Aspect-oriented software development (AOSD) Certain concerns span the whole system architecture High-level properties of the system: security, fault tolerance Application of business rules Systemic: task synchronization or memory management AOSD is a process and methodological approach for defining, specifying, designing, and constructing aspects. Unified Process—a “use-case driven, architecturecentric, iterative and incremental” software process closely aligned with the Unified Modeling Language (UML) – Details coming soon 24 The Unified Process (UP) Elab o r at io n elaboration Incep t io n inception inception co nst r uct io n Release soft ware increment t r ansit io n p r o d uct io n 25 UP Phases UP Phases Incept ion Elaborat ion Const ruct ion Transit ion Product ion Workflows Requirements Analysis Design Implementation Test Support Iterations #1 #2 #n-1 #n 26 UP Work Products Incept ion phase Vision document Init ial use-case model Init ial project glossary Init ial business case Init ial risk assessment . Project plan, phases and it erat ions. Business model, if necessary . One or more prot ot y pes I nc e pt i o n Elaborat ion phase Use-case model Supplement ary requirement s including non-funct ional Analy sis model Soft ware archit ect ure Descript ion. Execut able archit ect ural prot ot y pe. Preliminary design model Rev ised risk list Project plan including it erat ion plan adapt ed workflows milest ones t echnical work product s Preliminary user manual Const ruct ion phase Design model Sof t ware component s Int egrat ed soft ware increment Test plan and procedure Test cases Support document at ion user manuals inst allat ion manuals descript ion of current increment Transit ion phase Deliv ered soft ware increment Bet a t est report s General user feedback 27 The Manifesto for Agile Software Development “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: •Individuals and interactions over processes and tools •Working software over comprehensive documentation •Customer collaboration over contract negotiation •Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.” Kent Beck et al 28 What is “Agility”? Effective (rapid and adaptive) response to change Effective communication among all stakeholders Drawing the customer onto the team Organizing a team so that it is in control of the work performed Yielding … Rapid, incremental delivery of software 29 An Agile Process Is driven by customer descriptions of what is required (scenarios) Recognizes that plans are short-lived Develops software iteratively with a heavy emphasis on construction activities Delivers multiple ‘software increments’ Adapts as changes occur 30 Extreme Programming (XP) The most widely used agile process, originally proposed by Kent Beck XP Planning Begins with the creation of “user stories” Agile team assesses each story and assigns a cost Stories are grouped to for a deliverable increment A commitment is made on delivery date After the first increment “project velocity” is used to help define subsequent delivery dates for other increments 31 Extreme Programming (XP) XP Design XP Coding Follows the KIS principle (nothing less, nothing more.) Encourage the use of CRC cards for classes relevant to the current increment. For difficult design problems, suggests the creation of “spike solutions”—a design prototype Encourages “refactoring”—an iterative refinement of the internal program design Recommends the construction of a unit test for the stories before coding commences Encourages “pair programming” XP Testing All unit tests are executed daily “Acceptance tests” are defined by the customer and executed to assess customer visible functionality 32 Extreme Programming (XP) simple design CRC cards spike solut ions prot ot ypes user st ories values accept ance t est crit eria it erat ion plan ref act oring pair programming Release sof t ware increment project velocit y comput ed unit t est cont inuous int egrat ion accept ance t est ing 33 Adaptive Software Development Originally proposed for complex systems by Jim Highsmith ASD — distinguishing features Mission-driven planning Component-based focus Uses “time-boxing” (See Chapter 24) Explicit consideration of risks Emphasizes collaboration for requirements gathering Emphasizes “learning” throughout the process 34 Adaptive Software Development Speculation Collaboration Adaptive cycle planning uses initiation information to define the set of release cycles (increments) Team members multiply their talent and creative output with mutual trust. (1) criticize without animosity (2) assist without resentment (3) work as hard/harder as others Learning As development progresses members learn toward the complete cycle through focus groups, formal technical review, and postmortems. 35 Adaptive Software Development adapt ive cycle planning uses mission st at ement project const raint s basic requirement s Requirement s gat hering JAD mini-specs t ime-boxed release plan Release sof t ware increment adjust ment s f or subsequent cycles component s implement ed/ t est ed f ocus groups f or f eedback f ormal t echnical reviews post mort ems 36 Dynamic Systems Development Method Promoted by the DSDM Consortium (www.dsdm.org) DSDM—distinguishing features Similar in most respects to XP and/or ASD Nine guiding principles Active user involvement is imperative. DSDM teams must be empowered to make decisions. The focus is on frequent delivery of products. Fitness for business purpose is the essential criterion for acceptance of deliverables. Iterative and incremental development is necessary to converge on an accurate business solution. All changes during development are reversible. Requirements are baselined at a high level Testing is integrated throughout the life-cycle. 37 Scrum Originally proposed by Schwaber and Beedle Scrum—distinguishing features Development work is partitioned into “packets” Testing and documentation are on-going as the product is constructed Work occurs in “sprints” and is derived from a “backlog” of existing requirements Meetings are very short and sometimes conducted without chairs “demos” are delivered to the customer with the time-box allocated 38 Crystal Proposed by Cockburn and Highsmith Crystal—distinguishing features Actually a family of process models that allow “maneuverability” based on problem characteristics Face-to-face communication is emphasized Suggests the use of “reflection workshops” to review the work habits of the team 39 Feature Driven Development Originally proposed by Peter Coad et al FDD—distinguishing features Emphasis is on defining “features” Uses a feature template a feature “is a client-valued function that can be implemented in two weeks or less.” <action> the <result> <by | for | of | to> a(n) <object> Add the product to a shopping cart Display the technical spec of a product Store the shipping info for a customer A features list is created and “plan by feature” is conducted Design and construction merge in FDD 40
© Copyright 2026 Paperzz