Software Life-Cycle Models Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University

Slides:



Advertisements
Similar presentations
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 12, Software Life Cycle.
Advertisements

Computer Science Department
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.
CHAPTER 3 SOFTWARE LIFE-CYCLE MODELS.
Object-Oriented Software Development CS 3331 Fall 2009.
Unit 2. Software Lifecycle
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Project Management
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
 2004 by SEC Chapter 2 Software Development Process Models.
CSE 470 : Software Engineering The Software Process.
CSC 480 Software Engineering
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Using UML, Patterns, and Java Object-Oriented Software Engineering 15. Software Life Cycle.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Chapter 2 The Software Process
CH02: Modeling the process and life cycle Process of developing software (organization and discipline in the activities) contribute to the quality of the.
Introduction to Software Engineering Dr. Basem Alkazemi
Object-oriented Analysis and Design
03/12/2001 © Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
CSC Software Engineering I 1 Overview - Software Lifecycles, Processes, Methods and Tools Software lifecycle basics Software lifecycles – build-and-fix.
Incremental Model Requirements phase Verify Specification phase Verify
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Software Process CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 17, 2002.
Chapter 3 Software Processes.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Chapter 2 The Process.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
Software Engineering II Lecture 3 Fakhar Lodhi. Software Life-Cycle Steps Life-cycle model (formerly, process model) –Requirements phase –Specification.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
SOFTWARE LIFE-CYCLE MODELS
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 1: Introduction to Systems Analysis and Design Alan.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Software Engineering Lecture # 1.
1 - 1 Systems Analysis and Design, Key Ideas Many failed systems were abandoned because analysts tried to build wonderful systems without understanding.
© Bennett, McRobb and Farmer 2005
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Didik Dwi h t t p : / / b l o g. e l e k t r o. u m. a c. i d / d i d i k Object Oriented Software Engineering.
CS3320-Chap21 Office Hours TR 1:00-2:15 PM W 2:30-3:30 PM By appointment.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Methodology Review Chapter 7 Part 2: Design Methodology Object-Oriented Modeling and Design Byung-Hyun Ha
Chapter 2 Software Development Model and 1. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
A framework that describes the activities performed at each stage of a software development project. A life-cycle or a software process is the organisational.
Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software.
Systems Development Process and Methodologies Dr. T. Ravichandran.
Software engineering Software Processes.
Object-Oriented Analysis & Design
Software Life Cycle “What happens in the ‘life’ of software”
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Introduction to Software Engineering
Software life cycle models
CS101 Introduction to Computing Lecture 20 SW Development Methodology
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
Software Engineering Lecture 17.
Software Systems Engineering
Presentation transcript:

Software Life-Cycle Models Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University URL:

2 Outline of this presentation Software Process Object-Oriented Software Development Software Life-Cycle Models Object Orientation Software Quality Assessment Reference to Chapter 2/3 of “Software Engineering with JAVA”, S.R. Schach, McGraw-Hill, 1997.

3 Software Process The software process is the way we produce software. It incorporates the software life-cycle model, the tools we use, and the individuals building the software.

4 Object-Oriented Software Development Three key words. –Software –Development –Object Orientation Let us look at each in turn

5 Software Programs Documentation during the development of programs (e.g. specification) Primary aids for running the programs (e.g. user manuals) Secondary aids for running the programs (e.g. key boards overlays) Software is not just programs!

6 Software Life Cycle Software is like humans. It has a life cycle. Software in a system is conceptualized first. It becomes obsolescent at the end. The period in between is called the software life cycle.

7 Software Life Cycle Models Build-and-Fix Model Waterfall Model Rapid prototyping model Incremental Model Spiral Model Concurrent Development Model Formal Methods Model For the first four items, please refer to Chapter 3 of “Software Engineering with JAVA”, S.R. Schach, McGraw-Hill, 1997.

8 Built-and-Fix Model Unfortunately, many s/w products are developed with built-and-fix model. Without specification or any attempt in design, just build a product, and reworked as many times needed to satisfy the customer. Unsatisfactory for any size of s/w development, we better specify the various phases of software process.

9 Why use a life cycle model? Life cycle model breaks down the development process into phases or stages. This is because software development is complex. Breaking down the development process makes it easier to manage. Each phase can be performed in various ways.

10 Waterfall Model Requirement Verify Implementation Testing Planning Verify Retirement Design Verify Integration Testing Operation Mode Specification Verify Development Maintenance Changed Requirements verify

11 Rapid Prototyping Model A rapid prototype is a working model that is functionally equivalent to a subset of the product (internal structure is not concerned yet). The sole use of rapid prototyping is to determine what the client’s real needs are, construct the rapid prototype as rapidly as possible to speed up the s/w development process.

12 Rapid Prototyping Model Rapid Prototype Verify Implementation Testing Planning Verify Retirement Design Verify Integration Testing Operation Mode Specification Verify Development Maintenance Changed Requirements verify

13 Incremental Model The s/w product is designed, implemented, integrated, and tested as a series of incremental builds, where a build consists of code pieces from various modules interacting to provide a specific functional capability. It is sometimes necessary to re-specify, re- design, re-code, or at worst, throw away what has already been completed and start again.

14 Incremental Model Requirement Verify Planning Verify Retirement Architectural Design Verify Operation Mode Specification Verify Development Maintenance For each build: Perform detailed design, implementation, and integration. Test. Deliver to client.

15 Spiral Model The idea of minimizing risk via the use of prototypes and other means is the concept underlying the spiral model. A simplified spiral model is as a waterfall model with each phase preceded by risk analysis. –Before commencing each phase, an attempt is made to control (resolve) the risks. If it is impossible to resolve all the significant risks at a stage, then the project is immediately terminated.

16 Full Spiral Model [Boehm, IEEE 1998] Review Commitment Partition Determine objectives, alternatives, constraints Progress through steps Cumulative cost Plan next phase Develop, verify next-level product Evaluate alternatives, identify, resolve risks Risk Analysis Concept of Operation Requirement plan life-cycle plan Prototype 1Prototype 2Prototype 3 Operational Prototype Risk Analysis Risk Analysis Risk Analysis Simulations, models, benchmarks Software Requirements Software Product Design Detailed Design Development Plan Integration and Test Plan Implementation Acceptance Test Integration Test Unit Test Code Requirement Validation Design validation and verification

17 Software Development Software is developed using a life cycle model. Just a life cycle model is insufficient for development. We need: –A broad philosophy –A set of tools which support the philosophy. –A language which supports the philosophy.

18 Software Development Paradigm A paradigm provides a general approach to work during each phase of the life cycle model. A paradigm is a broad philosophy. A paradigm is not a specific model.

19 Some Software Development Paradigms Functional Composition Logic Programming Structured Development Object Orientation

20 Functional Development A problem is expressed in termed of a set of mathematical functions. –e.g. Double(x) = Add(x, x). An algorithm is not specified. Language such as Miranda, Gofer, Haskell support this paradigm. Poor execution speed.

21 Logic Programming Consists of a problem description only. –e.g. Factorial(0) = 1. Factorial(N) = N x Factorial(N -1). Doesn’t describe how to solve the problem. Languages Prolog & Lisp support this paradigm.

22 Structured Development Also called SASD, SADT & Functional Decomposition. Breaks the system into processes & decomposes them. Languages C, Fortran, Pascal, Cobol, Basic and a lot more support this paradigm. By far the most popular paradigm.

23 Object Orientation Most recent paradigm. Treats a problem as a collection of objects. Becoming very popular now. More and more languages support this paradigm now.

24 Tools for Object Orientation Rambaugh (OMT) Coad-Yourdon Booch UML

25 Languages for OO C++ Smalltalk Eiffel Object C Object Pascal Java

26 Software Quality Assessment Capability Maturity Model –a strategy for improving the software process, irrespective of the actual life-cycle model used. ISO 9000 –ISO 9000 is a series of five related standards that are applicable to a wide variety of industrial activities, including design, development, production, installation, and servicing. –Standard ISO 9001 for quality systems is the standard that is most applicable to software development. –ISO gives specific guidelines to assist in applying ISO 9001 to software development.

27 Capability Maturity Model (CMM) Proposed by W. Humphrey (1986), Software Engineering Institute (SEI), CMU The strategy of CMM is to improve organizational-wide management of software process. The improved process should result in better quality software, then less suffering from time and cost overrun. Maturity Level 1. Initial Level 2. Repeatable Level 3. Defined Level 4. Managed Level 5. Optimizing Level Characterization Ad hoc process Basic project management Process definition Process measurement Process control