meljun cortes software eng'g chapter3
DESCRIPTION
MELJUN CORTES Software Eng'g Chapter3TRANSCRIPT
Software Engineering 1
Introduction to Software Engineering
Software ProcessMELJUN P.
CORTES,MBA,MPA,BSCS
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
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
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
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.
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
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
Software Engineering 8
Linear Sequential ModelRequirementsEngineering
DesignEngineering
Coding
Testing
Operationand
Maintenance
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.
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
Software Engineering 11
Prototyping ModelListen
toCustomers
Build or RevisePrototype byDevelopers
Test-drive thePrototype by
Customer
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.
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
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
Software Engineering 15
RAD Model• Advantages:– A fully functional system is created within a
short span of time.
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.
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
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
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
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
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
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
Software Engineering 23
Spiral Model
• Disadvantage– Demands considerable risk assessment expertise; not
widely used
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
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
Software Engineering 26
Component-Based Assembly Model
• Advantage:– Good software process model if reusability is a development
objective.
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
Software Engineering 28
Concurrent Development Model
StartDevelopModel
ReviewModel
Enteras NewBaseline
ReviseModel
Wait forChanges
End
AnalysisActivity
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
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
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
Software Engineering 32
Summary Types of Software Process Model
Formal Methods
Factors that affect the choice of software development process