37
Software Processes Naveed Arshad Assistant Professor LUMS [email protected]

Software Processes Naveed Arshad Assistant Professor LUMS [email protected]

Embed Size (px)

Citation preview

Page 1: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

Software Processes

Naveed ArshadAssistant [email protected]

Page 2: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

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?

Page 3: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

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

Page 4: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

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 processstandardization, predictability, productivity,

high product quality, ability to plan time and budget requirements

Page 5: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

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

Page 6: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

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

Page 7: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

Models are needed Symptoms of inadequacy: the software

crisisscheduled time and cost exceededuser expectations not metpoor quality

The size and economic value of software applications required appropriate "process models"

Page 8: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

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?"

Page 9: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

Process as a "black box"

Product

Process

Informal Requirements

Page 10: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

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

Page 11: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

Process as a "white box"

Product

Process

Informal Requirements

feedback

Page 12: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

Advantages

Reduce risks by improving visibility Allow project changes as the project

progressesbased on feedback from the customer

Page 13: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

The main activities

They must be performed independently of the model

The model simply affects the flow among activities

Page 14: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

Feasibility study

Why a new project? cost/benefits tradeoffs buy vs make

Requires to perform preliminary requirements analysis

Produces a Feasibility Study Document1. Definition of the problem2. Alternative solutions and their expected benefits3. Required resources, costs, and delivery dates in each

proposed alternative solution

Page 16: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

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.

Page 17: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

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.

Page 18: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

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

Page 19: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

V Model

Page 20: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

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

Page 21: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

Prototyping

Page 22: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

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 functionality

Other technical risks – e.g. performance, using a new technology, alternative algorithms, etc.

Prototype may be thrown away or evolve into product

Page 23: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

Incremental Development

Page 25: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

Iterative Model

Page 26: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

Trivia Quiz

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

Page 27: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

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

Page 28: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

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

Page 29: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

Spiral Model

Page 30: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

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

Page 31: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

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

Page 32: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

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.)

Page 33: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

How do traditional stages iterate?

Workflows look traditional, but they iterate in four phases

Page 34: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

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

Page 35: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

… 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

Page 36: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

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

Page 37: Software Processes Naveed Arshad Assistant Professor LUMS naveedarshad@lums.edu.pk

Group Discussion?

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