Download presentation
Presentation is loading. Please wait.
1
1 CS 691z/791z Topics on Software Engineering CS 691z/791z Topics on Software Engineering Software Processes Based on Chapter 4 of the book [SE-8] Ian Sommerville, Software Engineering, 8 th Ed., Addison-Wesley, 2006 and on Ch4 PPT presentation from http://www.software-engin.com/http://www.software-engin.com/ Jim Arlow and Ila Neustadt, Also, on Jim Arlow and Ila Neustadt, UML and the Unified Process: Practical Object-Oriented Analysis and Design, Addison Wesley, 2002. [Arlow and Neustadt, 2002] January 30, 2007
2
2 Outline n n Software Process Models u u Waterfall model u u Evolutionary development u u Component-based software engineering u u Incremental model u u Spiral model n n Software Process Activities u u Specification u u Design and implementation u u Validation u u Evolution n n The Unified Process
3
3 Software Process Models n Software process = organized set of activities aimed at building a software system n Software process model = an abstract representation of a software process n Fundamental software process activities: u Software specification u Software design u Software implementation u Software validation u Software evolution
4
4 Software Process Models: Waterfall.. n The Waterfall model [SE-8, Fig 4.1]
5
5 Software Process Models:.Waterfall. n n Main characteristics: u u Also called classic software life cycle or sequential model u u Process activities (phases/stages) are clearly separated u u After a number of iterations, phases of the life cycle (such as specification and design) are “frozen”
6
6 Software Process Models:..Waterfall n n Advantages: u u Organized approach, provides robust separation of phases u u Reflects common engineering practice n n Disadvantages: u u Doesn’t cope well with changes required by the client u u Development teams might wait for each other u u A working version of the product is available only late n n Applicability: u u When requirements are well known and few changes are likely to be needed u u Can be used also for parts of larger software systems
7
7 Software Process Models: Evolutionary Development… n Evolutionary Development model [SE-8, Fig 4.2]
8
8 Software Process Models:.Evolutionary Development.. n n Main characteristics: u u The phases of the software construction are interleaved u u Feedback from the user is used throughout the entire process u u The software product is refined through many versions n n Types of evolutionary development: u u Exploratory development u u Throw-away prototyping
9
9 Software Process Models:..Evolutionary Development. n n Advantages: u u Deals constantly with changes u u Provides quickly an initial version of the system u u Involves all development teams n n Disadvantages: u u Quick fixes may be involved u u “Invisible” process, not well-supported by documentation u u The system’s structure can be corrupted by continuous change
10
10 Software Process Models: …Evolutionary Development n n Disadvantages [cont’d]: u u Special tools and techniques may be necessary u u The client may have the impression the first version is very close to the final product and thus be less patient n n Applicability: u u When requirements are not well understood u u When the client and the developer agree on a “rapid prototype” that will be thrown away u u Good for small and medium-sized software systems
11
11 Software Process Models: Component-based Software Engineering… n CBSE process model [SE-8, Fig 4.3]
12
12 Software Process Models:.Component-based Software Engineering.. n n Main characteristics: u u Makes intensive use of existing reusable components u u The focus is on integrating the components rather than on creating them from the scratch
13
13 Software Process Models:..Component-based Software Engineering. n Advantages: u Reduces considerably the software to be developed “in-house” u Allows faster delivery u In principle, more reliable systems, due to using previously tested components
14
14 Software Process Models: …Component-based Software Engineering n n Disadvantages: u u Compromises in requirements are needed u u Less control over the system’s evolution n n Applicability: u u When there is a pool of existing components that could satisfy the requirements of the new product u u Emerging trend: integration of web services from a range of suppliers
15
15 Software Process Models: Incremental Development… n The Incremental model [SE-8, Fig 4.4]
16
16 Software Process Models:.Incremental.. n n Main characteristics: u u Hybrid model that combines elements of the waterfall and evolutionary paradigms u u The specification, design, and implementation phases are broken in smaller increments
17
17 Software Process Models:... Software Process Models:..Incremental. n n Advantages: u u Provides better support for process iteration u u Reduces rework in the software construction process u u Some decisions on requirements may be delayed u u Allows early delivery of parts of the system u u Supports easier integration of sub-systems u u Lower risk of project failure u u Delivery priorities can be more easily set
18
18 Software Process Models:...Incremental n n Disadvantages: u u Increments need be relatively small u u Mapping requirements to increments may not be easy u u Common software facilities may be difficult to identify n n Applicability: u u When it is possible to deliver the system “part-by-part”
19
19 Software Process Models: Spiral Model.. n n Boehm’s Spiral Model [SE-8, Fig 4.5]
20
20 Software Process Models:.Spiral Model. n Main characteristics: u Also a hybrid model that support process iteration u The process is represented as a spiral, each loop in the spiral representing a process phase u Four sectors per loop: objective setting, risk assessment and reduction, development and validation, planning u Risk is explicitly taken into consideration
21
21 Software Process Models:..Spiral Model n n Advantages: u u Risk reduction mechanisms are in place u u Supports iteration and reflects real-world practices u u Systematic approach n n Disadvantages: u u Requires expertise in risk evaluation and reduction u u Complex, relatively difficult to follow strictly u u Applicable only to large systems n n Applicability: u u Internal development of large systems
22
22 Process Activities: Specification n Requirements engineering [SE-8, Fig. 4.6]
23
23 Process Activities: Design & Implementation n A general model for design [SE-8, Fig 4.7]
24
24 Process Activities: Testing.. n The debugging process [SE-8, Fig 4.8]
25
25 Process Activities:.Testing. n The testing process [SE-8, Fig 4.0] n Testing phases in the sw. process [SE-7, Fig. 4.10]
26
26 Process Activities:..Testing n Testing phases in the sw. process [SE-8, Fig. 4.10]
27
27 Process Activities: Evolution n System evolution [SE-8, Fig 4.11]
28
28 What is UP? n n A software development process (SDP) or software engineering process (SEP) defines the who, what, when, and how of developing software n n The Unified Software Development Process (USDP) or, in short, the Unified Process (UP) is an industry standard process created by the authors of UML Fig 2.2 [Arlow & Neustadt, 2002]
29
29 UP History UP evolution, Fig. 2.3 [Arlow & Neustadt, 2002]
30
30 UP Axioms n n Use case and risk driven n n Architecture centric n n Iterative and incremental u u Each iteration contains all the elements of a regular software development project: planning, analysis, design, construction, integration, testing, internal or external release
31
31 UP Core Workflows. n n Requirements: Determining what the system should do n n Analysis: Refining and structuring the requirements n n Design: Defining system architecture to satisfy requirements n n Implementation: Building the software n n Testing: Verifying that the implementation is correct A baseline is the result of an iteration, a partially complete version of the final system. An iteration is the difference between two consecutive baselines.
32
32.UP Core Workflows Fig.2.5, Arlow 2002
33
33 UP Structure. Fig.2.6 [Arlow 2002]
34
34.UP Structure Fig.2.7 [Arlow 2002]
35
35 UP: Details on Phases. n n Each of the four phases of UP (inception, elaboration, construction, transition) has: u u A goal u u A focus of activity u u One or more core workflows u u A milestone, with a number of conditions of satisfaction n n Details of the above for Inception are given next. The remaining three phases are described in Subsection 2.9 of the textbook
36
36 UP:.Details on Phases n n Inception u u Goal: Get the project off the ground u u Tasks: Assess feasibility Create a strong business case Capture essential requirements Identify critical tasks u u Focus: Requirements specification and analysis u u Milestone: Life-cycle objectives - see conditions of satisfaction n Table 2.1 of [Arlow & Neustadt 2002]
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.