Software Processes Naveed Arshad Assistant Professor LUMS

Slides:



Advertisements
Similar presentations
Software Processes.
Advertisements

Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.
Prescriptive Process models
Software process life cycles CSE 432: Object-Oriented Software Engineering.
©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.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
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
1 EE29B Feisal Mohammed Modeling the Process and Life Cycle Software development usually involves the following stages: Requirements analysis and definition.
1 Chapter 3 Prescriptive Process Models Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
CSE 470 : Software Engineering The Software Process.
 Dr. Syed Noman Hasany.  Review of known methodologies  Analysis of software requirements  Real-time software  Software cost, quality, testing and.
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.
Introduction to UML: Structural &Use Case Modeling
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
CH02: Modeling the process and life cycle Process of developing software (organization and discipline in the activities) contribute to the quality of the.
1 SOFTWARE LIFE-CYCLES Beyond the Waterfall. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance The WATERFALL.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Extreme Programming Software Development Written by Sanjay Kumar.
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.
Lecture 2 Software Processes CSC301-Winter 2011 Hesam C. Esfahani
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
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.
 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.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Rational Unified Process Mr Hisham AlKhawar. Iterative versus Waterfall  We need to use a life cycle model in order to approach developing a system easily,
An Introduction to Software Engineering
Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
 Dr. Syed Noman Hasany.  Review of known methodologies  Analysis of software requirements  Real-time software  Software cost, quality, testing and.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
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.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Software Processes (a)
Chapter :Software Process Model
Life Cycle Models PPT By :Dr. R. Mall.
Software Processes.
Requirements and the Software Lifecycle
Introduction to Software Engineering
Software process life cycles
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger Joanne M. Atlee 4th Edition.
Chapter 2 – Software Processes
Software engineering -1
Presentation transcript:

Software Processes Naveed Arshad Assistant Professor LUMS

Question Suppose you get a set of requirements to develop a product from customer.  What should you do?  How should you start?  How to make sure that the product is delivered in the given cost and time estimates?

Life cycle The life cycle of a software product  from inception of an idea for a product through requirements gathering and analysis architecture design and specification coding and testing delivery and deployment maintenance and evolution retirement

Software Process Model Attempt to organize the software life cycle by defining activities involved in software production order of activities and their relationships Goals of a software process  standardization, predictability, productivity, high product quality, ability to plan time and budget requirements

A software life cycle is a process A process involves activities, constraints and resources that produce an intended output. Each process activity, e.g., design, must have entry and exit criteria—why? A process uses resources, subject to constraints (e.g., a schedule or a budget) A process is organized in some order or sequence, structuring activities as a whole A process has a set of guiding principles or criteria that explain the goals of each activity

Earliest Software Process: Code & Fix The earliest approach Write code Fix it to eliminate any errors that have been detected, to enhance existing functionality, or to add new features Source of difficulties and deficiencies  impossible to predict  impossible to manage

Models are needed Symptoms of inadequacy: the software crisis  scheduled time and cost exceeded  user expectations not met  poor quality The size and economic value of software applications required appropriate "process models"

Process model goals (B. Boehm 1988) "determine the order of stages involved in software development and evolution, and to establish the transition criteria for progressing from one stage to the next. These include completion criteria for the current stage plus choice criteria and entrance criteria for the next stage. Thus a process model addresses the following software project questions: What shall we do next? How long shall we continue to do it?"

Process as a "black box"

Problems The assumption is that requirements can be fully understood prior to development Interaction with the customer occurs only at the beginning (requirements) and end (after delivery) Unfortunately the assumption almost never holds

Process as a "white box"

Advantages Reduce risks by improving visibility Allow project changes as the project progresses  based on feedback from the customer

The main activities They must be performed independently of the model The model simply affects the flow among activities

Feasibility study Why a new project?  cost/benefits tradeoffs  buy vs make Requires to perform preliminary requirements analysis Produces a Feasibility Study Document 1. Definition of the problem 2. Alternative solutions and their expected benefits 3. Required resources, costs, and delivery dates in each proposed alternative solution

Waterfall Model

Cascades from one stage down to the next, in stately, lockstep, glorious order.  Gravity only allows the waterfall to go downstream;  it’s very hard to swim upstream US Department of Defense contracts prescribed this model for software deliverables for many years, in DOD Standard 2167-A.

Why would corporate manager types like the waterfall life cycle model? Minimizes change, maximizes predictability Costs and risks are more predictable Each stage has milestones and deliverables: project managers can use to gauge how close project is to completion Sets up division of labor: many software shops associate different people with different stages:  Systems analyst does analysis,  Architect does design,  Programmers code,  Testers validate, etc.

More drawbacks of the waterfall model Offers no insight into how how does each activity transform one artifacts (documents) of one stage into another  For example, requirements specification  design documents? Fails to treat software a problem-solving process  Unlike hardware, software development is not a manufacturing but a creative process  Manufacturing processes really can be linear sequences, but creative processes usually involve back-and-forth activities such as revisions  Software development involves a lot of communication between various human stakeholders Nevertheless, more complex models often embellish the waterfall,  incorporating feedback loops and additional activities

V Model

Developed by the German Ministry of Defense What does this model highlight?  Unit and system testing verify the program design, ensuring that parts and whole work correctly  Acceptance testing, conducted by the customer rather than developers, validates the requirements, tying each system function meets a particular requirement in the specification How does this model account for cycles?  If problems are found during verification or validation, then re- execute left side of V to make fixes and improvements  While the waterfall emphasizes documents and artifacts, the V model emphasizes activities and correctness

Prototyping

This model adds prototyping as sub-process A prototype is a partially developed product that enables customers and developers to examine some aspect of a proposed system and decide if it is suitable for a finished product Why add prototypes to the life cycle? Used to explore the risky aspects of the system:  Risk of developing the “wrong” system (what customer doesn’t want), can be a user interface without functionalityuser interface  Other technical risks – e.g. performance, using a new technology, alternative algorithms, etc. Prototype may be thrown away or evolve into product

Incremental Development

Iterative Model

Trivia Quiz What are the differences between Incremental and Iterative models of software development?

Iterative and Incremental Process Incremental development partitions a system by functionality  Early release starts with small, functional subsystem, later releases add functionality  Top part of this figure shows how incremental development builds up to full functionality Iterative development improves overall system in each release  Delivers a full system in the first release, then changes the functionality of each subsystem with each new release Suppose a customer wants to develop a word processing package  Incremental approach: provide just Creation functions in Release 1, then both Creation and Organization in Release 2, finally add Formatting in Release 3, …  Iterative approach: provide primitive forms of all three functions in Release 1, then enhance (making them faster, improving the interface, etc.) in subsequent releases  Pros and cons of these two approaches? Many organizations combine iterative and incremental approaches

Spiral development Process is represented as a spiral rather than as a sequence of activities with backtracking Each loop in the spiral represents a phase in the process. No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required Risks are explicitly assessed and resolved throughout the process

Spiral Model

Spiral model sectors Objective setting  Specific objectives for the phase are identified Risk assessment and reduction  Risks are assessed and activities put in place to reduce the key risks Development and validation  A development model for the system is chosen which can be any of the generic models  Develop and validate the system in the current phase Planning  The project is reviewed and the next phase of the spiral is planned

Spiral model… Identifies probable risks in advance and tries to minimize them  e.g. if it is decided to use a new programming language, the compilers available may not be reliable Occurrence of a risk item could result in project delay, exceeding cost or even failure Different processes maybe used for different loops in the spiral

Rational Unified Process (RUP) Developed by “three amigos” at Rational Software (IBM)  Grady Booch, Ivar Jacobson, and Jim Rumbaugh  Unified Modeling Language (UML) is a set of graphical and linguistic notations for modeling systems, not a process or method  The three amigos also developed Rational Unified Process (RUP)  You don’t have to use RUP to use UML  Interestingly different from the traditional waterfall model Highly iterative and incremental process  Software product is not released in one big bang at end of project  Instead, developed and released in pieces (prototypes, partial releases, beta, etc.)

How do traditional stages iterate? Workflows look traditional, but they iterate in four phases

Inception  Elaboration  … During inception, establish business rationale and scope for project  Business case considers how much it will cost and ROI  Scope tries to get sense of size of the project and whether it’s doable In elaboration phase, collect more detailed requirements and do high-level analysis and design  Inception gives you the go-ahead to start a project, elaboration determines the risks  Requirements risks: Big danger is that you may build the wrong system  Technological risks: Can the technology actually do the job? Will the pieces fit together?  Skills risks: Can you get the staff and expertise you need?  Political risks: Can political forces get in the way? Use cases are good starting point for determining what user wants

…  Construction  Transition Construction phase builds production-quality software in many increments, tested and integrated, each satisfying a subset of the requirements of the project  Delivery may be to external, early users, or purely internal  Each iteration contains usual life-cycle activities (workflows): analysis, design, implementation and testing  Planning is crucial: use cases and other UML documents Transition phase activities include beta testing, performance tuning (optimization) and user training  No new functionality unless it’s small and essential  Bug fixes are OK

Choose RUP When.. …you need a process framework that has everything ever possible already in it …you can resist the temptation to adopt too much of it …you want well-defined roles …it’s important to have a well-documented process that new hires may be familiar with …you do not have emergent requirements

Group Discussion? Which model (or combination of models) might you use in a project? Why?