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.

Slides:



Advertisements
Similar presentations
Software Processes.
Advertisements

Prescriptive Process models
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
SE Fundamentals: 1. Software Processes
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
Unit 2. Software Lifecycle
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
CS487 Software Engineering Omar Aldawud
CSE 470 : Software Engineering The Software Process.
Arlow and Neustadt ch.21 What is the unified process? People are more important than any process. Good people with a good process will outperform good.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
29 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
CS3773 Software Engineering Lecture 01 Introduction.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.
1 SOFTWARE LIFE-CYCLES Beyond the Waterfall. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance The WATERFALL.
Object-oriented Analysis and Design
CS 425/625 Software Engineering Software Processes
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 3 Software Processes.
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
Software Processes Sumber dari : cc.ee.ntu.edu.tw/~farn/courses/SE/ch4.ppt.
Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
1 SWE Introduction to Software Engineering Lecture 4.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Engineering MCS-2 Lecture # 6
1/23 Prescriptive Process Models. 2/23 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
An Introduction to Software Engineering
Chapter 2 Software Processes (2/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
CC20O7N Software Engineering 1 CC2007N Software Engineering 1 Part 1 Introduction to Software Engineering.
Software Model Process
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 389 – Software Engineering Lecture 2 – Part 2 Chapter 2 – Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Software Processes (a)
CS 425/625 Software Engineering Software Processes
Chapter 2 SW Process Models
Life Cycle Models PPT By :Dr. R. Mall.
Software Processes.
Chapter 2 – Software Processes
An Overview of Software Processes
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes.
Presentation transcript:

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 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, [Arlow and Neustadt, 2002] January 30, 2007

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 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 Software Process Models: Waterfall.. n The Waterfall model [SE-8, Fig 4.1]

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 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 Software Process Models: Evolutionary Development… n Evolutionary Development model [SE-8, Fig 4.2]

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 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 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 Software Process Models: Component-based Software Engineering… n CBSE process model [SE-8, Fig 4.3]

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 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 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 Software Process Models: Incremental Development… n The Incremental model [SE-8, Fig 4.4]

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 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 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 Software Process Models: Spiral Model.. n n Boehm’s Spiral Model [SE-8, Fig 4.5]

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 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 Process Activities: Specification n Requirements engineering [SE-8, Fig. 4.6]

23 Process Activities: Design & Implementation n A general model for design [SE-8, Fig 4.7]

24 Process Activities: Testing.. n The debugging process [SE-8, Fig 4.8]

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 Process Activities:..Testing n Testing phases in the sw. process [SE-8, Fig. 4.10]

27 Process Activities: Evolution n System evolution [SE-8, Fig 4.11]

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 UP History UP evolution, Fig. 2.3 [Arlow & Neustadt, 2002]

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 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.UP Core Workflows Fig.2.5, Arlow 2002

33 UP Structure. Fig.2.6 [Arlow 2002]

34.UP Structure Fig.2.7 [Arlow 2002]

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 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]