Lecture-01

advertisement
CEN 4010
Introduction to Software Engineering
Spring 2005
Instructor: Masoud Sadjadi
http://www.cs.fiu.edu/~sadjadi/Classes/CEN-4010/
CEN 4010
First Lecture
January 10, 2005
Acknowledgements
Overview:
Introduction
Evaluation

Dr. Peter Clarke

Dr. Betty Cheng

Dr. Bernd Bruegge

Dr. Allen Dutoit
SW Life Cycle
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
2
Agenda
Overview:
Introduction

Course Introduction

Initial Evaluation

Software Life Cycle
Evaluation
SW Life Cycle
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
3
Course Home Page
Overview:
Introduction

Web Page
– http://www.cs.fiu.edu/~sadjadi/Classes/CEN-4010/
Home Page
SE Overview
Course Outcome
Evaluation

General Information:
– Office Hours: ECS 212C, M/W 17:00 – 18:00 or by
appointment.
SW Life Cycle

Important Links:
– Course Syllabus
– Project
– Class Schedule, Reading Assignments, and Lecture
Notes

Class Notices
– Please read your textbook before coming to class.
– Pay attention to the reading assignments.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
4
Prerequisite and References
Overview:
Introduction

Prerequisite
– COP 3530 - Data Structures
– Familiarity with
Home Page
Syllabus
Project

SE Overview

Course Outcome
At least two higher level languages
The foundations of computing
Evaluation
SW Life Cycle

Required Text
– Bernd Bruegge and Allen H Dutoit, “Object-Oriented
Software Engineering: Using UML, Patterns, and
Java.”

Other reading material
– Class notes.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
5
Grading
Overview:
Introduction

Grading Policy
–
–
–
–
–
Home Page
Syllabus
Project
SE Overview
Course Outcome
Class Attendance and Participation: 10%.
Homework: 20%.
Term Project: 30%.
Mid-Term Exam: 20%.
Final Exam: 20%.
Evaluation
SW Life Cycle

Grading Standard
– The grading scale is: A: 90 | A-:87 | B+:84 | B: 80 |
B-:77 | C+:74 | C: 70 | C-:65 | D+:60 | D: 55 | D-:50.
– Note that a C- is not a C.

Attendance
– Attendance will be taken during each class meeting.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
6
Tentative Course Schedule
Overview:
Introduction
Home Page
Syllabus
Project
SE Overview
Course Outcome
Evaluation
Refer to the Course Syllabus
SW Life Cycle
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
7
Project Objective and Grading
Overview:
Introduction

Objective
– The primary objective of the projects is to give you
practice in applying the phases of the software
development process to a "real" software project.
Home Page
Syllabus
Project
SE Overview
Course Outcome
Evaluation
SW Life Cycle

Grading Scheme
– The grade for the projects is based on three
deliverables and class presentations, representing
30% of the final grade.
– Each student in a project team will be evaluated
separately and may receive a different grade.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
8
Deliverables and Presentation
Overview:
Deliverable 1
Introduction
Requirements Analysis Document (RAD)
RAD Template
(5%)
Home Page
Syllabus
Project
Presentation 1
Deliverable 2
SE Overview
A brief description of SRD. Details will follow. (5%)
5 mins presentation for each group member.
Design Document (DD)
SDD Template
ODD Template
3/28
Due at the beginning of the
class.
Presentation 2
A brief description of DD. Details will follow. (5%)
5 mins presentation for each group member.
Deliverable 3
Software documentation consisting of:
Requirements Analysis Document,
Design Document,
Implementation i.e. code design, and
Test Cases
User's Guide
A CD with all project material.
SW Life Cycle
Presentation 3
3/28
(5%)
4/18
Due at the beginning of the
class.
A brief description of the software system - (5%)
requirements, design, implementation and test cases.
5 mins presentation for each group member.
CEN 4010: Introduction to Software Engineering
2/14
(5%)
Course Outcome
Evaluation
2/14
Due at the beginning of the
class.
4/18
First Lecture on Jan. 10, 2005
9
Project and Team Selection
Overview:
Introduction

Selection of Project:
– Each group is responsible for selecting a project.
– Before starting work on the project you must come
and see me during my office hours so that we can
decide on the scope of your project.
– Project selection should be finalized by the end of
Week 2 (Wednesday, Jan. 19). This means you
have to come and see me before Jan. 19.
– If you have difficulty in selecting a project I will
assist you.
Home Page
Syllabus
Project
SE Overview
Course Outcome
Evaluation
SW Life Cycle

Project Teams
– Each team shall consist of 5 to 6 students.
– Let us decide on team members.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
10
What is Software Engineering? (1)
Overview:
Introduction

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]
Home Page
SE Overview
Definition
How to apply?
Course Outcome
Evaluation
SW Life Cycle

“Software engineering is an engineering
discipline which is concerned with all
aspects of software production.”
[Sommerville]
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
11
What is Software Engineering? (2)
Overview:
Introduction

“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]
Home Page
SE Overview
Definition
How to apply?
Course Outcome
Evaluation
SW Life Cycle
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
12
Questions Addressed by SE
Overview:
Introduction

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?
Home Page
SE Overview
Definition
How to apply?
Course Outcome
Evaluation
SW Life Cycle
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
13
Why apply SE to Systems?
Overview:
Introduction

Provide an understandable process for
system development.

Develop systems and software that are
maintainable and easily changed.
Home Page
SE Overview
Definition
How to apply?
Course Outcome
Evaluation
SW Life Cycle


Develop robust software and system.
Allow the process of creating computingbased systems to be repeatable and
manageable.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
14
How can we apply SE?
Overview:
Introduction

Modeling

Problem-solving

Knowledge acquisition

Rationale-driven
Home Page
SE Overview
Definition
How to apply?
Course Outcome
Evaluation
SW Life Cycle
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
15
Modeling
Overview:
Introduction

“A model is an abstract representation of a
system that enables us to answer questions
about the system.”

Why use a model?
Home Page
SE Overview
Definition
How to apply?
Course Outcome
Evaluation
– Systems are too large, too small, too complicated,
or too expensive, to experience firsthand.
SW Life Cycle

Models allow
– Visualization
– Comprehension
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
16
Problem Solving
Overview:
Introduction
Home Page
SE Overview
Definition
How to apply?
Course Outcome
Evaluation
SW Life Cycle

Steps in problem solving:
– Formulate the problem
– Analyze the problem
– Search for solutions
– Decide on the appropriate solution
– Specify the solution
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
17
Knowledge Acquisition
Overview:
Introduction

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.
Home Page
SE Overview
Definition
How to apply?
Course Outcome
Evaluation
SW Life Cycle
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
18
Rationale Management
Overview:
Introduction

Assumptions made about systems change
constantly.

Application domain models stabilize, solution
domain models are in constant flux.
Home Page
SE Overview
Definition
How to apply?
Course Outcome
Evaluation
– Changes to the solution models due to:
SW Life Cycle



design and implementation faults
new technology
Need to understand the context in which each
design decision was made.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
19
Course Outcomes
Overview:
Introduction

Home Page
SE Overview

Course Outcome
Evaluation
SW Life Cycle






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.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
20
Initial Evaluation
Overview:
Introduction

Background Survey
– To get familiar with your interests in the course.
– To understand what topics should be covered.
– To get familiar with your research interests.
Evaluation
SW Life Cycle

Initial Assessment
–
–
–
–
No grading value.
To assess the initial level of your knowledge.
To teach the course at an acceptable level.
To help you fulfill the course requirements.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
21
Agenda
Overview:
Introduction

Course Introduction

Initial Evaluation

Software Life Cycle
Evaluation
SW Life Cycle
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
22
Our Intention
Overview:
Introduction
Evaluation
SW Life Cycle
Motivation
Requirements
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Software
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
23
Our plan of attack
Overview:
Introduction
Evaluation
SW Life Cycle
Requirements
Analysis
Motivation
Terminology
SW Processes
Design
SW Life Cycle
Cap. Maturity
Implementation
Testing
Delivery and Installation
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
24
How it often goes
Overview:
Introduction
Evaluation
SW Life Cycle
Requirements
Analysis
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
D
E
L
A
Y
CEN 4010: Introduction to Software Engineering
Vaporware
First Lecture on Jan. 10, 2005
25
Inherent Problems
Overview:
Introduction

Requirements are complex
– The client does not know the functional requirements in
advance.
Evaluation
SW Life Cycle
Motivation

– Technology enablers introduce new possibilities to deal
with nonfunctional requirements.
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
Requirements may be changing

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
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
26
Terminology (1)
Overview:
Introduction

Evaluation
SW Life Cycle
e.g., developers, project manager, client, end users.
Motivation
Terminology

SW Processes
SW Life Cycle
Cap. Maturity
participants – all persons involved in a
project.
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.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
27
Terminology (2)
Overview:
Introduction

Evaluation
SW Life Cycle
Motivation

Terminology
SW Processes
SW Life Cycle

Cap. Maturity


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.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
28
Terminology (3)
Overview:
Introduction

Evaluation
SW Life Cycle
Motivation

Terminology
SW Processes
SW Life Cycle

Cap. Maturity

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).
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
29
Software Processes
Overview:
Introduction
1.
Specification
– requirements elicitation and analysis.
Evaluation
SW Life Cycle
Motivation
Terminology
2.
Development
– systems design, detailed design (OO design),
implementation.
SW Processes
SW Life Cycle
Cap. Maturity
3.
Validation
– validating system against requirements (testing).
4.
Evolution
– meet changing customer needs and error
correction (maintenance).
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
30
1. Software Specification (1)
Overview:
Introduction

Functionality of the software and constraints
(non-functional requirements) on its operation
must be defined.

Involves:
Evaluation
SW Life Cycle
Motivation
Terminology
SW Processes
Specification
Development
Validation
Evolution
SW Life Cycle
Cap. Maturity
– 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.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
31
1. Software Specification (2)
Overview:
Introduction

Evaluation
SW Life Cycle
Uses cases are general sequences of events that
describe all possible actions between actor and the
system for a given piece of functionality.
Motivation
Terminology
SW Processes
Specification
Analysis

Development
Validation
Evolution

SW Life Cycle
Cap. Maturity


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.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
32
2. Software Development (1)
Overview:
Introduction

Evaluation
SW Life Cycle
Producing the software that meets the
specification.
Motivation
Terminology
SW Processes
System Design
Specification

Development

Validation
Evolution

SW Life Cycle
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.
Cap. Maturity

Output: model describing subsystem decomposition
and system strategies.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
33
2. Software Development (2)
Overview:
Introduction
Evaluation
Object Design

SW Life Cycle
Motivation
Terminology
SW Processes
Specification

Development
Validation
Evolution
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.
SW Life Cycle
Cap. Maturity
Implementation
 Translation of the object model into source code.
 No general process followed.
 There are tools to assists the programmer such as
CASE tools.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
34
Software Development Activities
Overview:
Introduction
Evaluation
Requirements Analysis
What is the problem?
System Design
What is the solution?
SW Life Cycle
Motivation
Terminology
SW Processes
Specification
Development
Validation
Evolution
SW Life Cycle
Object Design
What is the solution in
a specific context?
Implementation
How is the solution
constructed?
Problem
Domain
Implementation
Domain
Cap. Maturity
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
35
3. Software Validation (1)
Overview:
Introduction

Evaluation
SW Life Cycle
Motivation
Terminology

Ensures the software does what the customer
want.
The software conforms to its specification and
meets the expectations of the customer.
SW Processes
Specification
Development
Validation
Evolution
SW Life Cycle
Cap. Maturity
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.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
36
3. Software Validation (2)
Overview:
Introduction

Techniques
– Software inspections (static):
Evaluation
SW Life Cycle

Motivation
Terminology
Analyze and check system representations (e.g.,
requirements documents, design diagrams, and
program source code).
– Software testing (dynamic):
SW Processes
Specification

Development
Validation
Executing an implementation of the software with test
data and examining the outputs against expected
results.
Evolution
SW Life Cycle
Cap. Maturity

V&V process establishes the existence of
defects.

Debugging is a process that locates and
corrects these defects.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
37
4. Software Evolution
Overview:
Introduction

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
Evaluation
SW Life Cycle
Motivation
Terminology
SW Processes
Specification
Development
Validation
Evolution
SW Life Cycle
Cap. Maturity
– To repair faults.
– To adapt the software to a different operating
environment.
– To add to or modify system’s functionality.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
38
Attributes of Good Software
Overview:
Introduction

Maintainability
– Ease of changing the software to meets the
changing needs of the customer.
Evaluation
SW Life Cycle
Motivation
Terminology
SW Processes

Dependability
– Reliability, security and safety.
Specification
Development
Validation
Evolution

Efficiency
– Responsiveness, processing time, and memory
usage.
SW Life Cycle
Cap. Maturity

Usability
– Appropriate user interface and adequate
documentation.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
39
Software Life Cycle
Overview:
Introduction

Software life cycle modeling
– Attempt to deal with complexity and change.
Evaluation
SW Life Cycle
Motivation
Terminology

Software life cycle
– Set of activities and their relationships to each other
to support the development of a software system .
SW Processes
SW Life Cycle
Cap. Maturity

Software development methodology
– A collection of techniques for building models,
which are applied across the software lifecycle.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
40
Software Life Cycle
Overview:
Introduction
Evaluation

Software construction goes through a
progression of states
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Conception
Childhood
Adulthood
Retirement
Cap. Maturity
PreDevelopment
Development
CEN 4010: Introduction to Software Engineering
PostDevelopment
First Lecture on Jan. 10, 2005
41
Software Life Cycle Models
Overview:
Introduction

Waterfall model and its problems
– Pure Waterfall Model
– V-Model
Evaluation
SW Life Cycle
Motivation
Terminology
SW Processes

Iterative process models
– Boehm’s Spiral Model
– Unified Process Model
SW Life Cycle
Waterfall
Iterative
Entity-Based
Cap. Maturity

Entity-based models
– Issue-based Development Model
– Concurrent Development
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
42
Waterfall Model (1)
Overview:
Introduction

– First described by Royce in 1970
Evaluation
SW Life Cycle
Motivation
Terminology
The waterfall model

There seem to be at least as many versions
as there are authorities - perhaps more
SW Processes
SW Life Cycle
Waterfall
Iterative
Requirements
Definition
System and
software design
Entity-Based
Cap. Maturity
Implementation
and unit testing
Integration and
system testing
Operation and
maintenance
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
43
Waterfall Model (2)
Overview:
Introduction

One or more documents are produced after
each phase and “signed off”.

Points to note:
Evaluation
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Waterfall
Iterative
Entity-Based
Cap. Maturity
– “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.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
44
From Waterfall to V Model
Overview:
Introduction
Evaluation

Horizontal lines denote the information flow
between activities at the same abstraction level.
SW Life Cycle
Motivation
Terminology
Requirements
Specification
Acceptance
test
SW Processes
SW Life Cycle
Waterfall
System and
integration test
System design
Iterative
Entity-Based
Cap. Maturity
Detailed Design
Unit Test
Implementation
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
45
V Model
Overview:
Introduction

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
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Waterfall
Iterative
Entity-Based
Cap. Maturity
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
46
Spiral Model (1)
Overview:
Introduction

Basic Idea
– develop initial implementation, expose it to user,
and refine it until an adequate system is produced.
Evaluation
SW Life Cycle
Motivation
Terminology
SW Processes

Two types:
– Exploratory
– Throw-away prototyping
SW Life Cycle
Waterfall
Iterative
Entity-Based
Cap. Maturity

Advantages
– model used when problem is not clearly defined.

Disadvantages
– Process not visible, systems are poorly constructed,
may require special tools and techniques.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
47
Spiral Model (2)
Overview:
Introduction
Design objectives,
alternatives, and constraints
Evaluate alternatives,
identify and resolve risks
Evaluation
Risk
analysis
SW Life Cycle
Risk
analysis
Motivation
Terminology
Risk
analysis
SW Processes
Prototype
3
Prototype
Prototype
2
1
SW Life Cycle
Waterfall
Requirements Concept of
plan operation S/w
Reqs.
Iterative
Entity-Based
Development
Plan
Cap. Maturity
Integration
Plan
Design
Validation
Acceptance
Test
Plan next phase
CEN 4010: Introduction to Software Engineering
Detailed
Design
Sys.
Product
Design
Reqs.
Validation
Not shown
in detail
Code
Unit Test
Integration &
Test
Develop and verify
next level product
First Lecture on Jan. 10, 2005
48
Spiral Model (3)
Overview:
Introduction

Tries to accommodate infrequent change
during development.

Each round of the spiral involves:
Evaluation
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Waterfall
Iterative
Entity-Based
Cap. Maturity
–
–
–
–
–
–
–
Determine objectives
Specify constraints
Generate alternatives
Identify risks
Resolve risks
Develop and verify next level product
Plan
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
49
Incremental Development (1)
Overview:
Introduction

Mills et al. 1980
Evaluation
SW Life Cycle
Motivation
Terminology
SW Processes
Define outline
requirements
Assign requirements
to increments
Design system
architecture
SW Life Cycle
Waterfall
Iterative
Entity-Based
Cap. Maturity
Develop system
increment
Validate
increment
Integrate
increment
Validate
system
Final
system
System incomplete
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
50
Incremental Development (2)
Overview:
Introduction

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
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Waterfall
Iterative
Entity-Based
Cap. Maturity
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
51
Incremental Development (3)
Overview:
Introduction
Evaluation
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Waterfall
Iterative
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.
Entity-Based
Cap. Maturity
Disadvantages:
– May be difficult to map meaningful functionality into
small increments.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
52
Extreme Programming
Overview:
Introduction

The incremental approach has evolved to
‘extreme programming’ (Beck 1988).

Extreme programming:
Evaluation
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Waterfall
Iterative
Entity-Based
Cap. Maturity
–
–
–
–
Development and delivery of very small increments.
Customer involvement in the process.
Constant code improvement.
Egoless programming

Programs are regarded as group property!
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
53
Unified Software Development Process (1)
Overview:
Introduction

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:
Evaluation
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Waterfall
Iterative
–
–
–
–
Entity-Based
Cap. Maturity

Inception
Elaboration
Construction
Transition
Each phase consists of a number of iterations.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
54
Unified Software Development Process (2)
Overview:
Introduction

Inception ends with
– commitment from the project sponsor to go ahead.
Evaluation
SW Life Cycle
Motivation
Terminology

Elaboration ends with
–
–
–
–
SW Processes
SW Life Cycle
Waterfall
Iterative
Entity-Based
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.
Cap. Maturity

Construction ends with
– a beta-release system.

Transition
– is the process of introducing the system to it users.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
55
Unified Software Development Process (2)
Overview:
System
Development
Introduction
Evaluation
SW Life Cycle
Analysis model
specified by
Motivation
Terminology
realized by
SW Processes
Design model
SW Life Cycle
Waterfall
Iterative
Use case
model
Entity-Based
distributed by
Deployment model
implemented by
Cap. Maturity
Requirements
captured as a
set of use cases.
verified by
Implementation
model
Test model
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
56
Unified Software Development Process (3)
Overview:
Introduction

– physical communication links between hardware
items.
Evaluation
SW Life Cycle
Motivation
– relationships between physical machines and
processes.
Terminology
SW Processes
SW Life Cycle
Deployment model

Waterfall
Iterative
The models in the Unified Process are
traceable
– A model element can be traced to at least one
element in an associated model.
Entity-Based
Cap. Maturity

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.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
57
Issue-Based Development
Overview:

Introduction
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!).
Evaluation
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Waterfall

The set of closed issues is the basis of the
system model
Iterative
Entity-Based
I1:Open
Cap. Maturity
SD.I1:Closed
A.I1:Open
SD.I3:Closed
I2:Closed
I3:Closed
Planning
A.I2:Open
SD.I2:Closed
Requirements Analysis
CEN 4010: Introduction to Software Engineering
System Design
First Lecture on Jan. 10, 2005
58
What to Choose?
Overview:
Introduction

PT = Project Time, MTBC = Mean Time Between Change

Change rarely occurs (MTBC >> PT):
Evaluation
SW Life Cycle
– Waterfall Model
– All issues in one phase are closed before proceeding to the
next phase
Motivation
Terminology
SW Processes
SW Life Cycle

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
Cap. Maturity

“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.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
59
IEEE 1074
Overview:
Introduction

Standard for Developing Life Cycle Processes

Describes the set of activities and processes
that are mandatory for the development and
maintenance of software.
Evaluation
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity


Process is a set of activities that is performed
towards a specific purpose.
Processes are grouped into higher
abstractions called process groups.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
60
Software Processes
Overview:
Introduction
Evaluation
SW Life Cycle
Motivation
Process Group
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
Terminology
SW Processes
SW Life Cycle
Processes
Cap. Maturity
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
61
Capability Maturity Model (CMM)
Overview:
Introduction
Evaluation
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
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.
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
62
State of the Software Industry in 1995
Overview:
Introduction
Evaluation

Maturity Level
Frequency
SW Life Cycle
Motivation
Terminology
SW Processes
SW Life Cycle
Cap. Maturity
1. Initial
2. Repeatable
3. Defined
4. Managed
5. Optimizing
70%
15%
< 10%
< 5%
< 1%
Source: Royce, Project Management, P. 364
CEN 4010: Introduction to Software Engineering
First Lecture on Jan. 10, 2005
63
Download