55
CEN 4010 Second Lecture January 23, 2006 CEN 4010 CEN 4010 Introduction to Software Introduction to Software Engineering Engineering Spring 2006 Instructor: Masoud Sadjadi http://www.cs.fiu.edu/~sadjadi/Teaching

CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Embed Size (px)

Citation preview

Page 1: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

CEN 4010 Second Lecture January 23, 2006

CEN 4010 CEN 4010 Introduction to Software Introduction to Software

EngineeringEngineering

Spring 2006

Instructor: Masoud Sadjadi

http://www.cs.fiu.edu/~sadjadi/Teaching

Page 2: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 2CEN 4010: Introduction to Software Engineering

AcknowledgementsAcknowledgements

Dr. Peter Clarke

Dr. Betty Cheng

Dr. Bernd Bruegge

Dr. Allen Dutoit

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Page 3: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 3CEN 4010: Introduction to Software Engineering

What is Software Engineering? What is Software Engineering? (1)(1)

Systematic approach for developing software

“Methods and techniques to develop and maintain quality software to solve problems.”

[Pfleeger, 1990]

“Study of the principles and methodologies for developing and maintaining software systems.” [Zelkowitz, 1978]

“Software engineering is an engineering discipline which is concerned with all aspects of software production.” [Sommerville]

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Home Page

SE Overview

Definition

Course Outcome

How to apply?

Page 4: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 4CEN 4010: Introduction to Software Engineering

What is Software Engineering? What is Software Engineering? (2)(2)

“Practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate, and maintain them.” [Boehm, 1976]

“Deals with establishment of sound engineering principles and methods in order to economically obtain software that is reliable and works on real machines.” [Bauer, 1972]

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Home Page

SE Overview

Definition

Course Outcome

How to apply?

Page 5: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 5CEN 4010: Introduction to Software Engineering

Questions Addressed by SEQuestions Addressed by SE

How do we ensure the quality of the software that we produce?

How do we meet growing demand and still maintain budget control?

How do we avoid disastrous time delays?

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Home Page

SE Overview

Definition

Course Outcome

How to apply?

Page 6: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 6CEN 4010: Introduction to Software Engineering

Why apply SE to Systems?Why apply SE to Systems?

Provide an understandable process for system development.

Develop systems and software that are maintainable and easily changed.

Develop robust software and system.

Allow the process of creating computing-based systems to be repeatable and manageable.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Home Page

SE Overview

Definition

Course Outcome

How to apply?

Page 7: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 7CEN 4010: Introduction to Software Engineering

How can we apply SE? How can we apply SE?

Modeling

Problem-solving

Knowledge acquisition

Rationale-driven

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Home Page

SE Overview

Definition

Course Outcome

How to apply?

Page 8: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 8CEN 4010: Introduction to Software Engineering

ModelingModeling

“A model is an abstract representation of a system that enables us to answer questions about the system.”

Why use a model? – Systems are too large, too small, too complicated,

or too expensive, to experience firsthand.

Models allow– Visualization– Comprehension

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Home Page

SE Overview

Definition

Course Outcome

How to apply?

Page 9: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 9CEN 4010: Introduction to Software Engineering

Problem SolvingProblem Solving

Steps in problem solving:– Formulate the problem– Analyze the problem– Search for solutions– Decide on the appropriate solution– Specify the solution

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Home Page

SE Overview

Definition

Course Outcome

How to apply?

Page 10: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 10CEN 4010: Introduction to Software Engineering

Knowledge AcquisitionKnowledge Acquisition

Domain specific knowledge.

New knowledge can affect the development process.

Knowledge acquisition is nonlinear – affects several of the software development models.

Risk assessment is important.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Home Page

SE Overview

Definition

Course Outcome

How to apply?

Page 11: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 11CEN 4010: Introduction to Software Engineering

Rationale ManagementRationale Management

Assumptions made about systems change constantly.

Application domain models stabilize, solution domain models are in constant flux.– Changes to the solution models due to:

design and implementation faults new technology

Need to understand the context in which each design decision was made.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Home Page

SE Overview

Definition

Course Outcome

How to apply?

Page 12: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 12CEN 4010: Introduction to Software Engineering

Course OutcomesCourse Outcomes

Familiarity with the Software Development Life Cycle.

Mastering the techniques to gather and specify the requirements of a medium-size software system using UML.

Mastering the techniques to design and implement a medium-size software system.

Familiarity with software testing techniques. Familiarity with software documentation. Familiarity with working in a small software

development team. Familiarity with system walkthroughs. Familiarity with maintaining software and

managing change.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Home Page

SE Overview

Course Outcome

Page 13: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 13CEN 4010: Introduction to Software Engineering

EvaluationEvaluation

What is Software Engineering?

What questions are answered by Software Engineering?

How can we apply Software Engineering?

What should you expect from this class? What are the outcomes?

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Page 14: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 14CEN 4010: Introduction to Software Engineering

AgendaAgenda

Course Introduction

Evaluation

Software Life Cycle

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Page 15: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 15CEN 4010: Introduction to Software Engineering

Our IntentionOur Intention

Requirements

Software

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Page 16: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 16CEN 4010: Introduction to Software Engineering

Our plan of attackOur plan of attack

RequirementsAnalysis

Design

Implementation

Testing

Delivery and Installation

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Page 17: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 17CEN 4010: Introduction to Software Engineering

How it often goesHow it often goes

RequirementsAnalysis

D

E

L

A

YVaporware

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Page 18: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 18CEN 4010: Introduction to Software Engineering

Inherent ProblemsInherent Problems

Requirements are complex– The client does not know the functional requirements in

advance.

Requirements may be changing– Technology enablers introduce new possibilities to deal

with nonfunctional requirements.

Frequent changes are difficult to manage – Identifying milestones and cost estimation are difficult.

There is more than one software system– Backward compatible with existing systems

Let’s view these problems as the nonfunctional requirements for a system that supports software development! – This leads us to software life cycle modeling

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Page 19: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 19CEN 4010: Introduction to Software Engineering

Terminology Terminology (1)(1)

participants – all persons involved in a project.

e.g., developers, project manager, client, end users.

role – associated with a set of tasks assigned to a participant.

system – underlying reality. model – abstraction of the reality. work product – an artifact produced during

development. deliverable – work product for client.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Page 20: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 20CEN 4010: Introduction to Software Engineering

Terminology Terminology (2)(2)

activity – a set of tasks performed toward a specific purpose.

milestone – end-point of a software process activity.

task – an atomic unit of work that can be managed and that consumes resources.

goal – high-level principle used to guide the project.

functional requirement – an area of functionality that the system must have.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Page 21: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 21CEN 4010: Introduction to Software Engineering

Terminology Terminology (3)(3)

nonfunctional requirement – a constraint on the system.

notation – is a graphical or textual set of rules representing a model (e.g., UML)

method – a repeatable technique for solving a specific problem e.g. sorting algorithm

methodology – a collection of methods for solving a class of problems (e.g., Unified Software Development Process).

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Page 22: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 22CEN 4010: Introduction to Software Engineering

Software ProcessesSoftware Processes

1. Specification – requirements elicitation and analysis.

2. Development – systems design, detailed design (OO design),

implementation.

3. Validation – validating system against requirements (testing).

4. Evolution – meet changing customer needs and error

correction (maintenance).

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Page 23: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 23CEN 4010: Introduction to Software Engineering

1. Software Specification 1. Software Specification (1)(1)

Functionality of the software and constraints (non-functional requirements) on its operation must be defined.

Involves:– Requirements elicitation– The client and developers define the purpose of the

system. – Output is a description of the system in terms of

actors and uses cases.– Actors include roles such as end users and other

computers the system needs.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Specification

Development

Validation

Evolution

Page 24: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 24CEN 4010: Introduction to Software Engineering

1. Software Specification 1. Software Specification (2)(2)

Uses cases are general sequences of events that describe all possible actions between actor and the system for a given piece of functionality.

Analysis Objective: produce a model of the system that is

correct, complete, consistent, unambiguous, realistic, and verifiable.

Developers transform the use cases into an object model that completely describes the system.

Model is checked for ambiguities and inconsistencies. Output: Object model annotated with attributes,

operations, and associations.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Specification

Development

Evolution

Validation

Page 25: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 25CEN 4010: Introduction to Software Engineering

2. Software Development 2. Software Development (1)(1)

Producing the software that meets the specification.

System Design Goals of the project are defined. System decomposed into smaller subsystems

(architectural model). Strategies to build system identified

– HW and SW platform, data management, control flow, and security.

Output: model describing subsystem decomposition and system strategies.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Specification

Development

Evolution

Validation

Page 26: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 26CEN 4010: Introduction to Software Engineering

2. Software Development 2. Software Development (2)(2)

Object Design Bridges the gap between analysis model and the strategies

identified in the system design.Includes:– Describing object and subsystem interfaces– Selecting off–the-shelf components– Restructure object model to attain design goals

e.g., extensibility, understandability, and required performance.

Output: detailed object model annotated with constraints and supporting documentation.

Implementation Translation of the object model into source code. No general process followed. There are tools to assists the programmer such as

CASE tools.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Specification

Development

Evolution

Validation

Page 27: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 27CEN 4010: Introduction to Software Engineering

Software Development Software Development ActivitiesActivities

ProblemDomain

ImplementationDomain

Requirements Analysis What is the problem?

System Design What is the solution?

Object DesignWhat is the solution in a specific context?

ImplementationHow is the solution constructed?

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Specification

Development

Evolution

Validation

Page 28: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 28CEN 4010: Introduction to Software Engineering

3. Software Validation 3. Software Validation (1)(1)

Ensures the software does what the customer want.

The software conforms to its specification and meets the expectations of the customer.

Validation: ‘Are we building the right product?’Ensures the software meets the expectations of the

customer.

Verification: ‘Are we building the product right?’Ensures the software conforms to the specification.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Specification

Development

Validation

Evolution

Page 29: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 29CEN 4010: Introduction to Software Engineering

3. Software Validation 3. Software Validation (2)(2)

Techniques– Software inspections (static):

Analyze and check system representations (e.g., requirements documents, design diagrams, and program source code).

– Software testing (dynamic): Executing an implementation of the software with test

data and examining the outputs against expected results.

V&V process establishes the existence of defects.

Debugging is a process that locates and corrects these defects.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Specification

Development

Evolution

Validation

Page 30: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 30CEN 4010: Introduction to Software Engineering

4. Software Evolution4. Software Evolution

Software must evolve to meet the customer needs.

Software maintenance is the process of changing a system after it has been delivered.

Reasons for maintenance– To repair faults.– To adapt the software to a different operating

environment.– To add to or modify system’s functionality.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Specification

Development

Evolution

Validation

Page 31: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 31CEN 4010: Introduction to Software Engineering

Attributes of Good SoftwareAttributes of Good Software

Maintainability– Ease of changing the software to meets the

changing needs of the customer.

Dependability– Reliability, security and safety.

Efficiency– Responsiveness, processing time, and memory

usage.

Usability– Appropriate user interface and adequate

documentation.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Specification

Development

Evolution

Validation

Page 32: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 32CEN 4010: Introduction to Software Engineering

Software Life CycleSoftware Life Cycle

Software life cycle modeling – Attempt to deal with complexity and change.

Software life cycle– Set of activities and their relationships to each other

to support the development of a software system .

Software development methodology– A collection of techniques for building models,

which are applied across the software lifecycle.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Page 33: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 33CEN 4010: Introduction to Software Engineering

Software Life CycleSoftware Life Cycle

Software construction goes through a progression of states

DevelopmentDevelopment Post- Development

Pre- Development

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Conception ChildhoodChildhood Adulthood Retirement

Page 34: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 34CEN 4010: Introduction to Software Engineering

Software Life Cycle ModelsSoftware Life Cycle Models

Waterfall model and its problems– Pure Waterfall Model– V-Model

Iterative process models– Boehm’s Spiral Model– Unified Process Model

Entity-based models– Issue-based Development Model – Concurrent Development

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Waterfall

Iterative

Entity-Based

Page 35: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 35CEN 4010: Introduction to Software Engineering

Waterfall Model Waterfall Model (1)(1)

The waterfall model– First described by Royce in 1970

There seem to be at least as many versions as there are authorities - perhaps more

Requirements Definition

System and software design

Implementation and unit testing

Integration and system testing

Operation and maintenance

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Waterfall

Iterative

Entity-Based

Page 36: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 36CEN 4010: Introduction to Software Engineering

Waterfall Model Waterfall Model (2)(2)

One or more documents are produced after each phase and “signed off”.

Points to note:– “Water does not flow up”.

it is difficult to change artifact produced in the previous phase.

– This model should be used only when the requirements are well understood.

– Reflects engineering practice.– Simple management model.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Waterfall

Iterative

Entity-Based

Page 37: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 37CEN 4010: Introduction to Software Engineering

From Waterfall to V ModelFrom Waterfall to V Model

Horizontal lines denote the information flow between activities at the same abstraction level.

Requirements Specification

System design

Detailed Design

Implementation

Unit Test

System and integration test

Acceptancetest

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Waterfall

Iterative

Entity-Based

Page 38: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 38CEN 4010: Introduction to Software Engineering

V ModelV Model

Similar to pure waterfall model but makes explicit the dependency between development and verification activities.

The left half of the V represents development and the right half system validation.

Note the requirements specification includes requirements elicitation and analysis.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Waterfall

Iterative

Entity-Based

Page 39: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 39CEN 4010: Introduction to Software Engineering

Spiral Model Spiral Model (1)(1)

Basic Idea – develop initial implementation, expose it to user,

and refine it until an adequate system is produced.

Two types:– Exploratory– Throw-away prototyping

Advantages– model used when problem is not clearly defined.

Disadvantages– Process not visible, systems are poorly

constructed, may require special tools and techniques.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Waterfall

Iterative

Entity-Based

Page 40: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 40CEN 4010: Introduction to Software Engineering

Spiral Model Spiral Model (2)(2)

Requirementsplan

Concept ofoperation

Riskanalysis

Prototype1

Prototype2

Prototype3

Riskanalysis

Riskanalysis

S/wReqs.

Reqs.Validation

DevelopmentPlan

IntegrationPlan

DesignValidation

AcceptanceTest

Sys.ProductDesign

Integration &Test

Unit Test

Code

DetailedDesign

Design objectives,alternatives, and constraints

Plan next phase

Evaluate alternatives,identify and resolve risks

Develop and verifynext level product

Not shown in detail

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Waterfall

Iterative

Entity-Based

Page 41: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 41CEN 4010: Introduction to Software Engineering

Spiral Model Spiral Model (3)(3)

Tries to accommodate infrequent change during development.

Each round of the spiral involves:– Determine objectives– Specify constraints– Generate alternatives– Identify risks– Resolve risks– Develop and verify next level product– Plan

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Waterfall

Iterative

Entity-Based

Page 42: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 42CEN 4010: Introduction to Software Engineering

Incremental Development Incremental Development (1)(1)

Mills et al. 1980

Define outlinerequirements

Assign requirementsto increments

Design systemarchitecture

Develop systemincrement

Validateincrement

Integrateincrement

Validatesystem

System incomplete

Finalsystem

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Waterfall

Iterative

Entity-Based

Page 43: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 43CEN 4010: Introduction to Software Engineering

Incremental Development Incremental Development (2)(2)

Software specification, design and implementation is broken down into a series of increments which are developed in turn.

Gives customers some opportunities to delay decisions on the detailed requirements of the system.

Services are identified and a priority allocated.

Each increment provides a subset of the system’s functionality.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Waterfall

Iterative

Entity-Based

Page 44: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 44CEN 4010: Introduction to Software Engineering

Incremental Development Incremental Development (3)(3)

Advantages:– Customers do not have to wait for the entire

system.– Customers gain experience using early increments

of the system.– Lowers the risk of overall project failure.– Most important system services receives the most

testing.

Disadvantages:– May be difficult to map meaningful functionality into

small increments.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Waterfall

Iterative

Entity-Based

Page 45: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 45CEN 4010: Introduction to Software Engineering

Extreme ProgrammingExtreme Programming

The incremental approach has evolved to ‘extreme programming’ (Beck 1988).

Extreme programming:– Development and delivery of very small increments.– Customer involvement in the process.– Constant code improvement.– Egoless programming

Programs are regarded as group property!

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Waterfall

Iterative

Entity-Based

Page 46: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 46CEN 4010: Introduction to Software Engineering

Unified Software Development Unified Software Development Process Process (1)(1)

Similar to Boehm’s spiral model.

A project consists of several cycles, each ends with the delivery of a product to the customer.

Each cycle consists of four phases:– Inception– Elaboration– Construction– Transition

Each phase consists of a number of iterations.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Waterfall

Iterative

Entity-Based

Page 47: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 47CEN 4010: Introduction to Software Engineering

Unified Software Development Unified Software Development Process Process (2)(2)

Inception ends with – commitment from the project sponsor to go ahead.

Elaboration ends with– basic architecture of the system in place,– a plan for construction agreed,– all significant risks identified, and– major risks understood enough not to be too

worried.

Construction ends with – a beta-release system.

Transition – is the process of introducing the system to it users.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Waterfall

Iterative

Entity-Based

Page 48: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 48CEN 4010: Introduction to Software Engineering

Unified Software Development Unified Software Development Process Process (2)(2)

Analysis model

Use case model

Design model

Deployment model

Implementation model

Test model

specified by

realized by

distributed by

verified by

implemented by

Requirementscaptured as a set of use cases.

System Development

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Waterfall

Iterative

Entity-Based

Page 49: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 49CEN 4010: Introduction to Software Engineering

Unified Software Development Unified Software Development Process Process (3)(3)

Deployment model– physical communication links between hardware

items.

– relationships between physical machines and processes.

The models in the Unified Process are traceable – A model element can be traced to at least one

element in an associated model.

Transition between models are seamless – we can tell in a foreseeable way how to get from an

element in one model to one/more elements in an associated model.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Waterfall

Iterative

Entity-Based

Page 50: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 50CEN 4010: Introduction to Software Engineering

Issue-Based DevelopmentIssue-Based Development

A system is described as a collection of issues– Issues are either closed or open.– Closed issues have a resolution.– Closed issues can be reopened (Iteration!).

The set of closed issues is the basis of the system model

I1:Open

I2:Closed I3:Closed

A.I1:Open

A.I2:Open

SD.I1:Closed

SD.I2:Closed

SD.I3:Closed

Planning Requirements Analysis System Design

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Waterfall

Iterative

Entity-Based

Page 51: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 51CEN 4010: Introduction to Software Engineering

What to Choose?What to Choose?

PT = Project Time, MTBC = Mean Time Between Change

Change rarely occurs (MTBC >> PT):– Waterfall Model– All issues in one phase are closed before proceeding to the

next phase Change occurs sometimes (MTBC = PT):

– Boehm’s Spiral Model– Change occurring during a phase might lead to an iteration of

a previous phase or cancellation of the project “Change is constant” (MTBC << PT)

– Issue-based Development (Concurrent Development Model)– Phases are never finished, they all run in parallel

Decision when to close an issue is up to management.

The set of closed issues form the basis for the system to be developed.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Page 52: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 52CEN 4010: Introduction to Software Engineering

IEEE 1074IEEE 1074

Standard for Developing Life Cycle Processes

Describes the set of activities and processes that are mandatory for the development and maintenance of software.

Process is a set of activities that is performed towards a specific purpose.

Processes are grouped into higher abstractions called process groups.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Page 53: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 53CEN 4010: Introduction to Software Engineering

Software ProcessesSoftware Processes

Process Group Processes

Project Management Project Initiation

Project Management and Control

Software Quality Management

Pre-development Concept Exploration

System Allocation

Development Requirements

Design

Implementation

Post-development Installation

Operation and Support

Maintenance

Retirement

Integral Processes Verification and Validation

Software Configuration Management

Document Development

Training

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Page 54: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 54CEN 4010: Introduction to Software Engineering

Capability Maturity Model Capability Maturity Model (CMM)(CMM)

1. Initial Level– ad hoc, no feedback from user, black box.

2. Repeatable Level – Each project has a well-defined sw life cycle model.

3. Defined Level– A document sw life cycle model for all managerial

and technical activities across the org. exists.

4. Managed Level– Metrics for activities and deliverables are defined.

5. Optimizing Level– Process allows feedback of information to change

process itself.

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity

Page 55: CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi sadjadi/Teaching

Second Lecture on Jan. 23, 2006 55CEN 4010: Introduction to Software Engineering

State of the Software Industry State of the Software Industry in 1995in 1995

Maturity Level Frequency

1. Initial 70%

2. Repeatable 15%

3. Defined < 10%

4. Managed < 5%

5. Optimizing < 1%

Source: Royce, Project Management, P. 364

Evaluation

OvervieOverview:w:Introduction

SW Life Cycle

Motivation

Terminology

SW Processes

SW Life Cycle

Cap. Maturity