Software Process Models Software The software process Software Process lifecycle Models.

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Lecture # 2 : Process Models
Object-Oriented Software Development CS 3331 Fall 2009.
Software Process Models
Software Project Management
CS487 Software Engineering Omar Aldawud
CSE 470 : Software Engineering The Software Process.
CHAPTER TWO Object Oriented System Analysis and Design 1.
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.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Chapter 2 – Software Processes
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 Process Models
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Object-oriented Analysis and Design
CS 501: Software Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Life Cycle Model
Chapter 3 Software Processes.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
1 CMPT 275 Software Engineering Software life cycle.
CSI315 Web Applications and Technology Overview of Systems Development (342)
Lecture 2 Software Processes CSC301-Winter 2011 Hesam C. Esfahani
Chapter 2 The process Process, Methods, and Tools
Software Processes Sumber dari : cc.ee.ntu.edu.tw/~farn/courses/SE/ch4.ppt.
©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.
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,
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem Darwish.
Lecture 3 Software Engineering Models (Cont.)
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Engineering MCS-2 Lecture # 6
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
An Introduction to Software Engineering
Software Engineering II Lecture 3 Fakhar Lodhi. Software Life-Cycle Steps Life-cycle model (formerly, process model) –Requirements phase –Specification.
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Introduction to Software Development (Software Engineering - I)
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Development Life Cycle (SDLC)
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
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.
Systems Development Life Cycle
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.
Lecture 3 Prescriptive Process Models
Chapter 2 SW Process Models
Software Process Models
Software Life Cycle Models
Software Processes.
Software Engineering Lecture 18.
Software life cycle models
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Engineering Lecture 17.
Presentation transcript:

Software Process Models Software The software process Software Process lifecycle Models

Software life cycle2 What is Software? vAnticipated answer:  Software refers to the instructions (or programs) executed by a computer vActual answer:  The product that software engineers design and build. It includes the executable programs, documentation (both electronic and hard copy). In addition, it may also include data in the form of numbers and text, or even pictorial and multimedia formats.

Software life cycle3 What is the software process? vThe set of activities whose goal is the development or evolution of software. vThe process may be viewed as:  a road map,  a series of predictable steps eventually leading to the timely delivery of a high quality software product.

Software life cycle4 What is a Software Process Model ? vThe software process model - simplified description of a software process, presented from a particular perspective (e.g. workflow model, the data-flow model, and the role model).  The workflow model shows the sequence of activities in the process along with their inputs, outputs and dependencies. The activities in the model represent human actions.  The dataflow model represents the process as a set of activities each of which carries out some data transformation.  The role model represents the roles of people involved in the software process and the activities for which they are responsible

Software life cycle5 Software Process Models II vThis section of the course focuses on the traditional generic software process models to highlight how they effectively demonstrate the different approaches to software development. Such models include the:  Build-And-Fix  Waterfall Model  Formal  Prototyping Model  Rapid Application Development (RAD) Model Evolutionary Process Models  Incremental Model  Spiral Model

Software life cycle6 Build-And-Fix Model v This model is the worst model for developing a project. v The product is built without proper specifications and design steps. v In essence, the product is built and modified as many times as possible until it satisfies the client. v The cost of using this approach is greater than if specifications are drawn up and a design is carefully developed. Build First version Modify until client is satisfied Maintenance Development Maintenance Build-And-Fix Model

Software life cycle7 vAlso referred to as the linear sequential model or the software life cycle. vDerives its name due to the cascading effect from one phase to the other. vModel consist of six distinct stages:  requirements analysis  Specification  Design  Implementation  Integration  Maintenance The Waterfall Model Requirements Verify Specification Verify Design Verify Implementation Test Integration Test Product Deliverable Maintenance Updated Requirements Verify Development Maintenance Waterfall Model

Software life cycle8 Waterfall Model II vRequirements analysis phase  The problem is specified along with the desired service objectives (goals)  The constraints are identified vSpecification phase - the system specification is produced from the detailed definitions above vSystem and software design phase - the system specifications are translated into a software representation. The software engineer at this stage is concerned with:  Data structure  Software architecture  Algorithmic detail and  Interface representations

Software life cycle9 Waterfall Model III vImplementation and testing phase stage  the designs are translated into the software domain  Testing at this stage focuses on making sure that any errors are identified and that the software meets its required specification. vMaintenance phase The software is updated to  Meet the changing customer needs  Adapted to accommodate changes in the external environment  Correct errors and oversights previously undetected in the testing phases  Enhancing the efficiency of the software vIntegration and system testing phase  the program units are integrated and tested to ensure that the complete system meets the software requirements. After this stage the software is delivered to the customer

Software life cycle10 Waterfall Model IV vAdvantages  Testing is inherent to every phase of the waterfall model  It is an enforced disciplined approach  It is documentation driven, that is, documentation (/ a deliverable) is produced at every stage vDisadvantages  The model has difficulty accommodating the natural uncertainty that exists at the beginning of the project.  The customer only sees a working version of the product after it has been coded.  It only incorporates iteration indirectly, thus changes may cause considerable confusion as the project progresses.

Software life cycle11 Prototyping Model A prototype is a working model that is functionally equivalent to a component of the product. vVersion I: Prototyping is used as a requirements technique. vVersion II: Prototype is used as the specifications or a major part thereof. vThis model reflects an attempt to increase the flexibility of the development process by allowing the client to interact and experiment with a working representation of the product.

Software life cycle12 Prototyping Version I  Uses the prototype as a means of quickly determining the needs of the client.  The prototype is discarded once the specifications have been agreed on.  Emphasis is on representing those aspects of the software that will be visible to the client/user.  Thus it does not matter if the prototype hardly works.  Note that if the first version of the prototype does not meet the client’s needs, then it must be rapidly converted into a second version.

Software life cycle13 Prototyping Model Version I Requirements Maintenance Development Maintenance Rapid Prototyping Verify Specifications (written) Verify Design Verify Implementation Test Integration Test Changed requirements Verify

Software life cycle14 Prototyping Version II vThe prototype is actually used as the specifications for the design phase. vThe advantage of this approach is speed and accuracy, as no time is spent on drawing up written specifications.  Avoids inherent difficulties associated with:  Incompleteness  contradictions  ambiguities

Software life cycle15 Prototyping Model Version II Requirements Maintenance Development Maintenance Rapid Prototyping Verify Design Verify Implementation Test Integration Test Changed requirements Verify

Software life cycle16 Disadvantages of prototyping vClient expectations  Few minor changes to the prototype will more than suffice their needs.  They fail to realise that no consideration was given to the overall quality of the software in the rush to develop the prototype. vDeveloper shortcuts  employ some of the inefficient algorithms or inappropriate programming languages used in developing the prototype. vLegal issues  A prototype will hardly be acceptable in court in the event that the client does not agree that the developer has discharged his/her obligations. For this reason using the prototype as the software specification is normally reserved for software development within an organisation.

Software life cycle17 Incremental Model (IM) vDerives its name from the way in which the software is built. vThe model is designed, implemented and tested as a series of incremental builds until the product is finished. vA build consists of pieces of code from various modules that interact together to provide a specific function. vAt each stage of the IM a new build is coded and then integrated into the structure, which is tested as a whole. vNote that the product is only defined as finished when it satisfies all of its requirements.

Software life cycle18 Implement and test first build Implement, integrate and test successive builds until product is complete Maintenance Development Maintenance Incremental Model vThis model combines the elements of the waterfall model with the iterative philosophy of prototyping. vUnlike prototyping the IM focuses on the delivery of an operational product at the end of each increment. vThe first increment is usually the core product which addresses the basic requirements of the system. vSubsequent increments provide additional functionality. Incremental Model II

Software life cycle19 Incremental Model III - value-to-cost ratio vUsed to determine the developmental plan for the next increment  The client assigns a value to each build not yet implemented  The developer estimates cost of developing each build  The resulting value-to-cost ratio is the criterion used for selecting which build is delivered next What are the advantages of this method?

Software life cycle20 Evolutionary Process Models vThe idea is evolutionary development using the waterfall model for each step is intended to help manage risks. vCharacteristics  Don’t define the entire system in detail initially.  The developers should only define the highest priority features.  Define and implement those, then get feedback from users/customers  With this knowledge, they should then go back to define and implement more features in smaller chunks.

Summary  All these different models have their own advantages and disadvantages. Nevertheless, in the contemporary commercial software development world, the fusion of all these methodologies is incorporated.  Timing is very crucial in software development. If a delay happens in the development phase, the market could be taken over by the competitor.  Also if a 'bug' filled product is launched in a short period of time (quicker than the competitors), it may affect the reputation of the company.  So, there should be a trade-off between the development time and the quality of the product. Customers don't expect a bug free product but they expect a user-friendly product. That results in Customer Ecstasy!

Task Using the Spiral model as an example an evolutionary process model, make the crucial distinction between the incremental models and the Evolutionary Model(s). You may use the online course notes for assistance.