Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

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]


Download ppt "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."

Similar presentations


Ads by Google