meljun cortes software eng'g chapter3

32
Software Engineering 1 Introduction to Software Engineering Software Process MELJUN P. CORTES,MBA,MPA,BSCS

Upload: meljun-cortes

Post on 18-Nov-2014

482 views

Category:

Documents


1 download

DESCRIPTION

MELJUN CORTES Software Eng'g Chapter3

TRANSCRIPT

Page 1: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 1

Introduction to Software Engineering

Software ProcessMELJUN P.

CORTES,MBA,MPA,BSCS

Page 2: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 2

Software Process provides the

framework from which a comprehensive plan for software development can be established

Common Process Framework

Umbrella Activities

Framework Activity n

Framework Activity 2Framework Activity 1

Task Set 1:TasksMilestonesDeliverablesSQA Points

Task Set 1:TasksMilestonesDeliverablesSQA Points

Task Set 1:TasksMilestonesDeliverablesSQA Points

Page 3: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 3

Software Process It consists of:

– framework activities that are applicable to all

software projects regardless of size or complexity

– tasks sets, which consists of tasks, milestones,

deliverables and SQA points that enable the

framework activities to be adapted to the

characteristics of the software projects and the

requirements of the project team

Page 4: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 4

Software Process It consists of:

– umbrella activities such as software project

management, formal technical reviews, quality

assurance, configuration management,

documentation, risk management and

measurement

Page 5: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 5

Software Process Model Is a strategy that a software development team

incorporates in order to build software projects. Is chosen based on the nature of the project and

application, methods and tools to be used, and the controls and deliverables that are required.

Page 6: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 6

Types of Software Process Models

• Linear Sequential Model• Prototyping Model• The RAD Model• The Evolutionary Software Process Models– The Incremental Model– The Spiral Model– The Component-based Assembly Model– The Concurrent Development Model

• The Formal Methods Model• Fourth Generation Techniques

Page 7: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 7

Linear Sequential Model also known as the classic life cycle or waterfall

model suggests a systematic, sequential approach to

software development that begins at the system level and progresses through analysis, design, coding, testing and maintenance

Page 8: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 8

Linear Sequential ModelRequirementsEngineering

DesignEngineering

Coding

Testing

Operationand

Maintenance

Page 9: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 9

Linear Sequential Model• Advantages:– Better than nothing– Provides a basis for other Software Engineering

Models• Disadvantages:– Real projects rarely follow the sequential flow.– Customers have difficulty stating all requirements.– Customer involvement occurs during beginning

and end of the project.– Customers must have patience.– Developers are often delayed unnecessarily.

Page 10: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 10

Prototyping Model best approach for the following situations:

– a customer defines a set of general objectives for the software but does not identify detailed input, processing, or output requirements

– the developer may be unsure of the efficiency of an algorithm, the adaptability of an operating system or the form that human-machine interaction should take

Page 11: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 11

Prototyping ModelListen

toCustomers

Build or RevisePrototype byDevelopers

Test-drive thePrototype by

Customer

Page 12: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 12

Prototyping Model• Advantages:- Users get a feel of actual system

Disadvantages: Customers see what appears to be working

version of the software unaware that the prototype is held together “with chewing gum and baling wire” without consideration on software quality and long-term maintainability.

Developers make implementation compromises in order to have a working prototype.

Page 13: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 13

Rapid Application Development (RAD)

Model is a linear sequential software development process

model that emphasizes an extremely short development cycle

is achieved through component-based construction approach

best if all requirements are well-understood and project scope constrained

Page 14: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 14

RAD Model

RequirementsEngineering

DesignEngineering

Coding

Testing

Turn-over

Functional Partition 1- Team

60 – 90 Days

RequirementsEngineering

DesignEngineering

Coding

Testing

Turn-over

Functional Partition 2- Team RequirementsEngineering

DesignEngineering

Coding

Testing

Turn-over

Functional Partition 3- Team

Page 15: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 15

RAD Model• Advantages:– A fully functional system is created within a

short span of time.

Page 16: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 16

RAD Model• Disadvantage

For large, but scalable projects, RAD requires sufficient human resources to create the right number of RAD teams

RAD requires developers and customers who are committed to the rapid-fire activities necessary to complete a system in a much-abbreviated time frame.

It is not a good software process model for systems that cannot be modularized.

It is also not a good software process model for systems that require high performance.

It is not appropriate when new technology is used or software requires high degree of inter-operability with existing computer programs.

Page 17: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 17

Evolutionary Software Process Model

recognizes that software evolves over a period of time

are iterative in nature enables the development of an increasingly more

complicated versions of software Examples:

1. Incremental Model2. Spiral Model3. Component-based Assembly Model4. Concurrent Development Model

Page 18: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 18

Incremental Model

combines elements of the linear sequential model with the iterative philosophy of prototyping

linear sequences are defined, that is, each sequence produces a deliverable “increment” of the software

unlike prototyping, at each increment an operational product is delivered

Page 19: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 19

Incremental ModelRequirementsEngineering

DesignEngineering

Coding

Testing

Deliveryof the 1stIncrement

First Increment

RequirementsEngineering

DesignEngineering

Coding

Testing

Turn-over

Second Increment

RequirementsEngineering

DesignEngineering

Coding

Testing

Turn-over

Third Increment

FirstSW Increment

Second SWIncrement

FirstSW Increment

ThirdSW

Increment

FirstSW Increment

Second SWIncrement

Page 20: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 20

Spiral Model

originally proposed by Boehm is an evolutionary software process model

that couples the iterative nature of prototyping with the controlled and systematic aspects of linear sequential model

provides the potential for rapid development of incremental versions of the software

Page 21: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 21

Spiral Model is divided into framework models also known as tasks

regions:1. Customer Communication

2. Planning

3. Risk Analysis

4. Engineering

5. Construction and Release

6. Customer Evaluation

Page 22: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 22

Spiral Model

Risk Analysis

Planning

Communication

Analysis & Design

Coding & Release

Evaluation

ABCD

A. Initial Software ProjectB. Maintenance of New SoftwareC. Enhancement of SoftwareD. Development of another interrelated system

Page 23: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 23

Spiral Model

• Disadvantage– Demands considerable risk assessment expertise; not

widely used

Page 24: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 24

Component-Based Assembly Model

makes use of object technologies emphasizes the creation of classes that

encapsulate both data and the algorithms that are used to manipulate data

OO classes are reusable across different applications and computer-based system architectures

incorporates many of the characteristics of the Spiral Model

Page 25: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 25

Component-based Assembly

Risk Analysis

Planning

Communication

OO Analysis & Design

Coding & Release

EvaluationABCD

A. Initial Software ProjectB. Maintenance of New SoftwareC. Enhancement of SoftwareD. Development of another interrelated system

DetermineCandidate

Classes

Look for theClasses inthe Library

Get theClasses

Build New Class

Put NewClasses in

Library

Build the nthIteration ofSoftware

Page 26: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 26

Component-Based Assembly Model

• Advantage:– Good software process model if reusability is a development

objective.

Page 27: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 27

Concurrent Development Model

also known as concurrent engineering makes use of state charts to represent the

concurrent relationship existent among activities associated with a specific event

can be represented schematically as a series of major technical activities, tasks, and their associated states

driven by user needs, management decisions, and review results

Page 28: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 28

Concurrent Development Model

StartDevelopModel

ReviewModel

Enteras NewBaseline

ReviseModel

Wait forChanges

End

AnalysisActivity

Page 29: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 29

Formal Methods

encompasses a set of activities that lead to mathematical specification of computer software

provides a mechanism for eliminating many of the problems that are difficult to overcome using other software engineering paradigm

serves as program verification and enable to discover and correct errors that might otherwise go undetected

Page 30: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 30

Factors Affecting the Choice of Process Model• Type of Project

• Methods and Tools to be Used

• Requirements of the Stakeholders

• Common sense and Judgement

Page 31: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 31

Summary Software Process Types of Software Process

Linear Sequential Model

Prototyping Model

Rapid Application Development (RAD) Model

Evolutionary Process Model Incremental Process Model Spiral Process Model Component-based Assembly Concurrent Development Model

Page 32: MELJUN CORTES Software Eng'g Chapter3

Software Engineering 32

Summary Types of Software Process Model

Formal Methods

Factors that affect the choice of software development process