Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.

Slides:



Advertisements
Similar presentations
Software Processes.
Advertisements

©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.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Lecture # 2 : Process Models
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
Chap 2. Software Processes
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
CSE 470 : Software Engineering The Software Process.
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.
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
ISNE101 Dr. Ken Cosh. Recap  We’ve been talking about Software…  Application vs System Software  Programming Languages  Vs Natural Languages  Syntax,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Alternate Software Development Methodologies
SYSC System Analysis and Design
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
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.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CMSC 345, Version 1/03 An Overview of Software Processes Reference: Software Engineering, by Ian Sommerville, 6 th edition, Chapter 3.
CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi
Chapter 3 Software Processes.
S/W Project Management
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
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.
Instructor: Peter Clarke
©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,
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
1 Instructor: S. Masoud Sadjadi sadjadi At cs Dot fiu Dot edu Software Engineering and Project Communications.
1 SWE Introduction to Software Engineering Lecture 4.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CEN nd Lecture CEN 5011 Advanced Software Engineering Instructor: Masoud Sadjadi Software Life Cycle.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
An Introduction to Software Engineering
September 30, 2010COMS W41561 COMS W4156: Advanced Software Engineering Prof. Gail Kaiser
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
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.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Software Processes (a)
Introduction to Software Engineering
Chapter 2 – Software Processes
An Overview of Software Processes
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
CEN 5011 Advanced Software Engineering
Software Processes.
Presentation transcript:

Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12

CEN 4021 Class /122 What is Software Project Management (SPM)? Software project management is concerned with ensuring that, for a software project, the most appropriate process and methodologies are chosen, the desired internal product structure is attained and the external product properties are achieved. In addition, the project management constraints of schedule and resources must be met. [Tsui ’04] (5/5 points)

CEN 4021 Class /123 Software Development Process Software development process: An ordered set of defined activities that describe the defining of requirements, designing, coding, and release for a software artifact. A process may contain some subprocesses, such as the design subprocess within the software development process.

CEN 4021 Class /124 Software Development Process Software methodology: A set of rules and principles defined to achieve a specific goal and to accomplish a specific task in the development or support of software.

CEN 4021 Class /125 Software Process S/w Specification – requirements elicitation (func. & non-func.) and analysis. S/w Development – systems design, detailed design (OO design), implementation. S/w Validation – validating system against requirements (testing). S/w Evolution – meets changing customer needs and error correction (maintenance).

CEN 4021 Class /126 Software Specification Reqs elicitation Reqs analysis Reqs prototyping Reqs documentation Reqs review Reqs sign-off Reqs change and impact management

CEN 4021 Class /127 Software Development Design: Architectural design –Overall system, external subsystems Application-specific high-level design –App specific subsystems Application-specific low-level design –Object design Design analysis Design review Design change and impact management

CEN 4021 Class /128 Software Development Implementation: Programming standards definition User documentation, help text, and other information standards definitions Software code acquisition and reuse management Program documentation Program and information review Program unit testing

CEN 4021 Class /129 Software Validation (or V&V) Test planning Test scenario development Test case and test script development Test scenario and test case review Test result tracking and analysis Test execution, problem reporting, resolution, and fix-integration management

CEN 4021 Class /1210 Software Evolution Software must evolve to meet the customer needs. Software maintenance is the process of changing a system after it has been delivered. Reasons for maintenance: –to repair faults, –to adapt the software to a different operating environment, and –to add to or modify system’s functionality. What are the four types of maintenance activities?

Software Process Models –Waterfall Model –V-Model –Evolutionary Model –Boehm’s Spiral –Incremental model –Unified Development Software Process

CEN 4021 Class /1212 Waterfall Model (Royse 1970) Requirements Definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance

CEN 4021 Class /1213 Waterfall Model cont One or more documents are produced after each phase and “signed off”. Points to note: –“Water does not flow up” i.e., it is difficult to change artifact produced in the previous phase. –This model should be used only when the requirements are well understood. –Reflects engineering practice. –Simple management model.

CEN 4021 Class /1214 V-Model (Jensen & Tonies 1979) Requirements Specification System design Detailed Design Implementation Unit Test System and integration test Acceptance test Horizontal lines denote The information flow between activities at the same abstraction level.

CEN 4021 Class /1215 V-Model cont Similar to waterfall model but makes explicit the dependency between development and V&V activities. The left half of the V represents development and the right half system validation. Note the requirements specification includes systems reqs. analysis, s/w reqs. elicitation, and reqs. analysis.

CEN 4021 Class /1216 Evolutionary Model Development Specification Validation Concurrent activities IntermediateVersions IntermediateVersions OutlineDescription OutlineDescription InitialVersion InitialVersion FinalVersion FinalVersion

CEN 4021 Class /1217 Evolutionary Model cont Idea – develop initial implementation, expose it to user, and refine it until an adequate system is produced. Two types: –Exploratory –Throw-away prototyping Adv. – model used when problem is not clearly defined. Disadv. – process not visible, systems are poorly constructed, may require special tools and techniques.

CEN 4021 Class /1218 Boehm’s Spiral Model (Boehm 1987) Requirements plan Concept of operation Risk analysis Prototype 1 Prototype 2 Prototype 3 Risk analysis Risk analysis S/w Reqs. Validation Development Plan Integration Plan Design Validation Acceptance Test Sys. Product Design Integration & Test Unit Test Code Detailed Design Design objectives, alternatives, & constraints Plan next phase Evaluate alternatives, identify & resolve risks Develop & verify next level product Not shown in detail

CEN 4021 Class /1219 Boehm’s Spiral Model cont Tries to accommodate infrequent change during development. Each round of the spiral involves: –Determine objectives –Specify constraints –Generate alternatives –Identify risks –Resolve risks –Develop and verify next level product –Plan

CEN 4021 Class /1220 Incremental Development (Mills et al. 1980) Define outline requirements Assign requirements to increments Design system architecture Develop system increment Validate increment Integrate increment Validate system System incomplete Final system

CEN 4021 Class /1221 Incremental Development cont S/w specification, design and implementation is broken down into a series of increments which are developed in turn. Gives customers some opportunities to delay decisions on the detailed requirements of the system. Services are identified and a priority allocated. Each increment provides a subset of the system’s functionality.

CEN 4021 Class /1222 Incremental Development cont Advantages: –Customers do not have to wait for the entire system. –Customers gain experience using early increments of the system. –Lowers the risk of overall project failure. –Most important system services receives the most testing. Disadvantages: –May be difficult to map meaningful functionality into small increments.

CEN 4021 Class /1223 Incremental Development cont The incremental approach has evolved to ‘extreme programming’ (Beck 1988). One of the Agile Process Models. Extreme programming: –Development & delivery of very small increments. –Customer involvement in the process. –Constant code improvement. –Egoless programming – programs are regarded as group property!

CEN 4021 Class /1224 Unified Software Development Process (Booch, Jacobson and Rumbaugh, 1999) Similar to Boehm’s spiral model. A project consists of several cycles, each ends with the delivery of a product to the customer. Each cycle consists of four phases: –Inception –Elaboration –Construction –Transition Each phase consists of a number of iterations. These phases differ wildly between projects i.e., time and deliverables.

CEN 4021 Class /1225 Unified Software Development Process cont Inception ends with commitment from the project sponsor to go ahead. Elaboration ends with: –basic architecture of the system in place, –a plan for construction agreed, –all significant risks identified, –major risks understood enough not to be too worried. Construction ends with a beta-release system Transition is the process of introducing the system to it users.

CEN 4021 Class /1226 Unified Software Development Process cont Note that the activities Requirements, Analysis, Design, Implementation, and Testing participate in each iteration of the Unified Process. Activities have differing phase-specific needs e.g., during elaboration phase, the requirements and analysis activities are allocated most of the resources.

CEN 4021 Class /1227 Unified Software Development Process cont Analysis model Use case model Design model Deployment model Implementation model Test model specified by realized by distributed by verified by implemented by Process is use case driven! Requirements captured as a set of use cases. All models are related through traceability dependencies. System Development