Software Engineering process models

Slides:



Advertisements
Similar presentations
Basic SDLC Models.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Slide 3.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Software Development Life-Cycle Models
Ch2: Software Life Cycles Housekeeping  Feedback from Wednesday  Structured vs. Object Oriented Paradigm Structured: Data is an argument, functions separate,
CHAPTER 3 SOFTWARE LIFE-CYCLE MODELS.
SOFTWARE PROCESS MODELS. Software Process Models  Process model (Life-cycle model) -steps through which the product progresses Requirements phase Specification.
Unit 2. Software Lifecycle
Software Engineering Saeed Akhtar The University of Lahore Lecture 4 Originally shared for: mashhoood.webs.com.
Software Project Management
Software Life-Cycle Models
CS487 Software Engineering Omar Aldawud
Software Engineering Software Engineering is the science and art of building significant software systems that are: 1) on time 2) on budget 3) with acceptable.
1 Chapter 7 Lifecycle Planning. 2 Lifecycles - Introduction A lifecycle model is a prescriptive model of what should happen between the first glimmer.
29 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
 © Ian Sommerville A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.
ISNE101 Dr. Ken Cosh. Recap  We’ve been talking about Software…  Application vs System Software  Programming Languages  Vs Natural Languages  Syntax,
RUP/UP Software Development Method Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
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.
Software Engineering.
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 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Incremental Model Requirements phase Verify Specification phase Verify
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
ECE 355: Software Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©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 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.
CSE 308 Software Engineering Software Engineering Strategies.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Software Engineering II Lecture 3 Fakhar Lodhi. Software Life-Cycle Steps Life-cycle model (formerly, process model) –Requirements phase –Specification.
The Confounding World of Process Methodologies By Thelma Hataria.
SOFTWARE LIFE-CYCLE MODELS
Slide 3.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Software Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.
Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:
Software Engineering Zhang Shuang
CC20O7N Software Engineering 1 CC2007N Software Engineering 1 Part 1 Introduction to Software Engineering.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
CSE 403, Spring 2008, Alverson Software Development Lifecycle The Power of Process.
Software Lifecycle Models A software lifecycle model is a standardised format for planning organising, and running a new development project.
Software Lifecycle Models Place of Testing in Software Lifecycle 1.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
RATIONAL UNIFIED PROCESS PROCESS FRAMEWORK OVERVIEW.
Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software.
SOFTWARE DEVELOPMENT Presented By : Emporiumtech This presentation is brought you by
Slide 3.1 © The McGraw-Hill Companies, 2002 SOFTWARE LIFE-CYCLE MODELS.
Process 4 Hours.
Software Processes (a)
CS 425/625 Software Engineering Software Processes
Software Process Models
Chapter 2 SW Process Models
Software Processes.
Software Engineering Lecture 09 & 10.
Requirements and the Software Lifecycle
Introduction to Software Engineering
Software Lifecycle Models
Chapter 2 Software Processes
Chapter 2 – Software Processes
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
Presentation transcript:

Software Engineering process models Hamza Mohammed Naji 120090117

What Is a Software Engineering Process? It can be very difficult to explain what a process is, if people aren’t already familiar with it. An informal example most people can relate to is the process of balancing a checkbook at the end of the month. Most of us have developed a process we use - the same steps every month. It shortens the time required to accomplish the task and ensures that we don’t forget any steps. The same applies to a software engineering process. We want it to be repeatable and ensure that all required tasks are accomplished when required. Of course, a software engineering process is much more complex than balancing a checkbook and there is a tremendous amount of information contained in the RUP. A process defines Who is doing What, When and How in the development of a software system Roles and workflows Work products Milestones Guideline … The UML is a generic modeling language. With UML, you can produce blueprints for any kind of software system. The Rational Unified Process (RUP) is a generic process that uses UML as a modeling language. RUP can be used for any kind of software system. New or changed requirements system Software Engineering Process

Process & Product Process model Tools People Project Product Automation Tools Template Participants People Project Result Product

An Effective Process ... This is a good opportunity to contrast the RUP with old-fashioned processes. RUP is meant to be used on a daily basis. It is relevant because it is integrated with the tools the developer is using. It is easy to access since it is on the desktop. Emphasize that the process contains far more information than any one person can remember. It is not intended that they learn it all at once. The best approach is to first get an overview so that they understand how it is organized and where to look for things. Then access the online process to learn the details of each task as they need to perform the task. Provides guidelines for efficient development of quality software Reduces risk and increases predictability Captures and presents best practices Learn from other’s experiences Mentor on your desktop Extension of training material Promotes common vision and culture Provides roadmap for applying tools Delivers information on-line, at your finger tips The focus of the process is the production of high-quality executables with a minimum of overhead, rather than what documents to produce. By providing a “written-down”, very detailed set of procedures for developing software according to Rational’s six best practices, the process is easier to apply and repeatable. This results in software projects that are more predicable and successful. Another feature of the Rational Unified Process is that it is not just theory. It instructs the developer on how to implement the activities using the tools the developer is using. Finally, the process is available on-line as a Website. While hardcopy books have their place, most developers prefer to reference the process from their desktops when they need help. Both hardcopy and on-line versions are available.

Lightweight vs. Heavyweight Processes e.g., V-Process Customizable Framework e.g., Rational Unified Process (RUP) Agile (Lightweight) e.g., eXtreme Programming (XP) Document driven Elaborate workflow definitions Many different roles Many checkpoints High management overhead Highly bureaucratic Focus on working code rather than documentation Focus on direct communication (between developers and between developers and the customer) Low management overhead

Process choice Process used should depend on type of product which is being developed For large systems, management is usually the principal problem so you need a strictly managed process. For smaller systems, more informality is possible. High costs may be incurred if you force an inappropriate process on a development team

Build and Fix Model Properties Advantage Disadvantage No planning or analysis The working program is the only workproduct Advantage Appropriate for small programs written by one person Disadvantage Understandability and maintainability decrease rapidly with increasing program size Totally unsatisfactory Need a life-cycle model “Game plan” Phases Milestones

Waterfall Model Characterized by Advantages Disadvantages Sequential steps (phases) Feedback loops (between two phases in development) Documentation-driven Advantages Documentation Maintenance easier Disadvantages Complete and frozen specification document up-front often not feasible in practice Customer involvement in the first phase only Sequential and complete execution of phases often not desirable Process difficult to control The product becomes available very late in the process

Rapid Prototyping Model Rapid prototyping phase followed by waterfall Do not turn the rapid prototype into the product Rapid prototyping may replace the specification phase—never the design phase Comparison: Waterfall model—try to get it right the first time Rapid prototyping—frequent change, then discard

Advantages and Disadvantages Requirements better specified and validated Early feasibility analysis Strong involvement of the customer in the prototyping phase Disadvantage Higher development effort Danger that due to schedule slip, the prototype becomes part of the product

Incremental Release 1 Design Coding Test Deployment Release 2 Requirements Design Coding Test Deployment Release 3 Design Coding Test Deployment

Incremental Model (contd) Waterfall, rapid prototyping models Operational quality complete product at end Incremental model Operational quality portion of product within weeks Less traumatic Smaller capital outlay, rapid return on investment

Evolutionary Version 1 Design Coding Test Deployment Requirements Feedback Design Coding Test Deployment Requirements

Evolutionary Model (contd) Advantages Constant customer involvement and validation Allows for good risk management Disadvantages Build-and-fix danger Contradiction in terms

Spiral model Waterfall model plus risk analysis preceding each phase and evaluation following each phase Prototyping for high-risk specifications Radial dimension: cumulative cost to date Angular dimension: progress through the spiral If all risks cannot be resolved, the project is immediately terminated Appropriate only for big projects (high management overhead)

Spiral model

Process model risk problems Waterfall High risk for new systems because of specification and design problems Low risk for well-understood developments using familiar technology Prototyping Low risk for new applications because specification and program stay in step High risk because of lack of process visibility Evolutionary and Spiral Middle ground between waterfall and prototyping

Hybrid process models Large systems are usually made up of several sub-systems The same process model need not be used for all subsystems Prototyping for high-risk specifications Waterfall model for well-understood developments Taylor the process to a problem

Use of the Models in Practice

Process improvement The fundamental problem with software The software process is badly managed Understanding existing processes Introducing process changes to achieve organisational objectives which are usually focused on quality improvement, cost reduction and schedule acceleration