SlideShare a Scribd company logo
1 of 13
CMP-3310 Software Engineering - Handouts
1 | P a g e
Chapter No 2
Software Process Models - 1
1. Software Development:
Software engineering is nothing but a disciplined approach to develop software.
Now we will look at some of the activities involved in the course of software
development. The activities involved in software development can broadly be
divided into two major categories first is construction and second is management.
The construction activities are those that are directly related to the construction or
development of the software. While the management activities are those that
complement the process of construction in order to perform construction
activities smoothly and effectively. A greater detail of the activities involved in the
construction and management categories is presented below.
1.1 Construction:
The construction activities are those that directly related to the development of
software, e.g. gathering the requirements of the software, develop design,
implement and test the software etc. Some of the major construction activities are
listed below.
 Requirement Gathering
 Design Development
 Coding
 Testing
1.2 Management:
Management activities are kind of umbrella activities that are used to
smoothly and successfully perform the construction activities e.g. Project planning,
Software quality assurance etc. Some of the major management activities are listed
below.
 Project Planning and Management
 Configuration Management
 Software Quality Assurance
 Installation and Training
CMP-3310 Software Engineering - Handouts
2 | P a g e
Fig. 1: Software Development Activities
2. System Development Life Cycle:
The traditional methodology used in an organization to develop, maintain and
replace the software systems. Each methodology has its own SDLC.
Criteria for the Selection of Process Model to Develop a Project:
All process models have few common frameworks activities (Pressman 2005). The
problem is to select the most suitable model to be used for a particular project. These
are the criteria on the basis of which Project Manager selects the appropriate model for
a particular project.
 Customer: Customer sometimes imposes the software house to follow a specific
model for his project.
 Team Size: Team size is very critical factor that forces the software house to select a
specific model that suits to their team available for the project to be developed.
 Technology: Technology in terms of development tool, platform and technical
capabilities to develop the project is also an important factor for the selection of
process model.
 Reuse of the Existing Components: Object Oriented or Component-Based
Development process model helps to reuse the existing components.
 Characteristics of the System: The main characteristics of a project also help a
project manager to select the best suitable process model for the current project.
i. Linear Sequential model is the best choice for a new project having
functionality similar to the previously completed projects.
ii. Rapid Application Development model is the appropriate choice for a
project having very tight deadlines.
iii. Evolutionary model are the best choice for a project having impossible
deadlines.
Justification of the Above Mentioned Criteria: The advantages and disadvantages of the
main process models are discussed in upcoming articles to justify the above mentioned
criteria.
CMP-3310 Software Engineering - Handouts
3 | P a g e
3. Software Processes:
A software process is a road map that helps you create a timely, high quality
result. It is the way we produce software and it provides stability and control. Each
process defines certain deliverables known as the work products. These include
programs, documents, and data produced as a consequence of the software engineering
activities.
A lifecycle model is a series of steps through which the product progresses.
These include requirements phase, specification phase, design phase,
implementation phase, integration phase, maintenance phase, and retirement.
Software Development Lifecycle Models depict the way you organize your activities.
There are a number of Software Development Lifecycle Models, each having its
strengths and weaknesses and suitable in different situations and project types.
The list of models includes the following:
 Build-and-Fix Model
 Waterfall Model
 CBD Process Model
 Rapid Prototyping Model
 Rapid Application Development Model
 Spiral Model
 Rational Unified Process Model
4. Build-and-Fix Model:
It is unfortunate that many products are developed using what is known as the
build-and-fix model. In this model the product is constructed without specification or
any attempt at design. The developers simply build a product that is reworked as
many times as necessary to satisfy the client. This model may work for small
projects but is totally unsatisfactory for products of any reasonable size. The cost of
build-and fix is actually far greater than the cost of properly specified and carefully
designed product. Maintenance of the product can be extremely in the absence of any
documentation. It is depicted in Fig. 2.
In the build and fix model (also referred to as an ad hoc model), the software is
developed without any specification or design. An initial product is built, which is then
repeatedly modified until it (software) satisfies the user. That is, the software is
developed and delivered to the user. The user checks whether the desired functions 'are
present. If not, then the software is changed according to the needs by adding,
modifying or deleting functions. This process goes on until the user feels that the
software can be used productively. However, the lack of design requirements and
repeated modifications result in loss of acceptability of software. Thus, software
engineers are strongly discouraged from using this development approach.
This model includes the following two phases.
 Build: In this phase, the software code is developed and passed on to the next
phase.
 Fix: In this phase, the code developed in the build phase is made error free. Also, in
addition to the corrections to the code, the code is modified according to the user's
requirements.
CMP-3310 Software Engineering - Handouts
4 | P a g e
Fig. 2: Build-and-Fix Model
Advantages:
 Requires less experience to execute or manage other than the ability to
program
 Suitable for smaller software
 Requires less project planning
Disadvantages:
 No real means is available of assessing the progress, quality, and risks
 Cost of using this process model is high as it requires rework until user's
requirements are accomplished
 Informal design of the software as it involves unplanned procedure
 Maintenance of these models is problematic
5. Waterfall Model:
The first published model of the software development process was
derived from other engineering processes. Because of the cascade from one phase
to another, this model is known as the waterfall model. This model is also known as
linear sequential model. This model is depicted in the following diagram.
The principal stages of the model map directly onto fundamental development
activities. It suggests a systematic, sequential approach to software development
that begins at the system level and progresses through the analysis, design,
coding, testing, and maintenance. In the literature, people have identified from 5 to 8
stages of software development. The five stages of waterfall model are as follows:
Requirement Analysis and Definition: Its focus is on What. The systems services,
constraints and goals are established by consultation with system users. They are then
defined in detail and serve as a system specification.
System and Software Design: Its focus is on How. The system design process
partitions the requirements to either hardware of software systems. It establishes
and overall system architecture. Software design involves fundamental system
abstractions and their relationships.
Implementation and Unit Testing: Its main focus is on How. During this stage the
software design is realized as a set of programs or program units. Unit testing involves
verifying that each unit meets its specifications.
CMP-3310 Software Engineering - Handouts
5 | P a g e
Integration and System Testing: The individual program unit or programs are
integrated and tested as a complete system to ensure that the software
requirements have been met. After testing, the software system is delivered to the
customer.
Operation and Maintenance: Normally this is the longest phase of the software life
cycle. The system is installed and put into practical use. Maintenance involves
correcting errors which were not discovered in earlier stages of the life-cycle,
improving the implementation of system units and enhancing the system’s services
as new requirements are discovered.
Fig. 3: Waterfall Model
In principle, the result of each phase is one or more documents which are
approved. No phase is complete until the documentation for that phase has been
completed and products of that phase have been approved. The following phase should
not start until the previous phase has finished.
Real projects rarely follow the sequential flow that the model proposes. In
general these phases overlap and feed information to each other. Hence there should be
an element of iteration and feedback. A mistake caught any stage should be referred
back to the source and all the subsequent stages need to be revisited and corresponding
documents should be updated accordingly. This feedback path is shown in Fig. 4.
Because of the costs of producing and approving documents, iterations are
costly and require significant rework. The Waterfall Model is a documentation-driven
model. It therefore generates complete and comprehensive documentation and hence
makes the maintenance task much easier. It however suffers from the fact that the
client feedback is received when the product is finally delivered and hence any
errors in the requirement specification are not discovered until the product is sent to
the client after completion. This therefore has major time and cost related
consequences.
CMP-3310 Software Engineering - Handouts
6 | P a g e
Fig. 4: Feedback Path in Waterfall Model
Advantages:
 A complete comprehensive understanding regarding system development
 Suitable for research projects
Disadvantages:
 Not feasible for real life commercial projects because of phase organization
 More time is required to develop a software
 Working version of the software is available late in the project at the start of
the sixth phase during implementation phase. This can result in a total
disaster if the customer requirements are vague
 It is not practically possible to collect complete requirements initially at the
start of the project that is fundamental requirement of this model
6. CBD Model:
 The CBSE process is used to:
o Identify desirable components;
o Qualify each component’s interface;
o Adapt components to remove architectural mismatches;
o Assembles components into a selected architectural style;
o Update components as requirements changes.
 The process model for CBSE emphasizes parallel tracks in which domain
engineering occurs concurrently with CBD.
 The main phases of CBD process model are as follows.
a. Communication
b. Planning
c. Analysis, component selection and Risk Management
d. Engineering and testing
e. Evaluation
 The customer is communicated at the start of the project to gather basic
requirements. Initial use cases are developed at this stage.
CMP-3310 Software Engineering - Handouts
7 | P a g e
 Project specification or proposal document is prepared during the planning phase.
 Project specification or proposal document is composed of feasibility and risk
assessments that are performed to prepare a cost benefits analysis (CBA) sheet.
Fig. 5: CBD Process Model
 CBA sheet helps to estimate that whether the SW project is feasible for the customer
or not.
 Analysis phase is only started if the customer approves the proposal.
 Risk Analysis, Component Selection and Risk Management phase- It is the phase
where an analyst gathers detailed requirements and tries to identify and select
those components that can be reused from the components repository.
 Risks regarding the use of existing components are evaluated and managed. The
relationships among components are identified.
 The properties and behaviors of the components are identified as well.
 Core objective of this phase is to reuse maximum components, rather than
reinventing the wheel.
 It will also improve productivity and efficiency of software engineers.
 Engineering and testing phase- the selected components are modified (customized)
according to the requirements of new system to be developed and tested.
 The new components are designed, developed and tested on unit basis.
 Integration and system tests of the newly developed and of the reused components
are performed.
 Evaluation phase- Customer is requested to evaluate and verify SW that whether it
meets his/her requirements or not.
CMP-3310 Software Engineering - Handouts
8 | P a g e
7. Rapid Prototyping Model:
A cyclic diagram can show the phases of the rapid prototyping model.
Fig. 6: Rapid Prototyping Process Model
This model has three main phases.
 Listen (to the customer)
 Develop A Demo Version of Software
 Evaluate (by the customer)
The customer is called at the Software Engineer/Developer`s site or he/she visited
to customer in order to gather the main requirements of the software. The software
engineer developed a demo version of the software and called the customer at his/her site
to evaluate the demo. The customer and software engineer sits together. The customer
feed-back about the demo is again listened by the developer. The developer rebuilds the
demo according to the changes and new requirements inquired by the customer. The
customer is again called to re-evaluate the demo and this process continues until the final
version of the customer satisfaction. Prototype model provides no documentation for the
software as in the case of waterfall model. There are two main types of prototype model
known as Throwaway and Evolutionary Prototype.
The developer throws the demo software after every evaluation by the customer and
develops the new demo version or evaluation in Throwaway Prototype. The evolutionary
approach is used to develop the first demo and make further changes or maintenance in it
until the customer approved the final version of demo software.
Advantages:
 Best suitable to integrate with other methodologies such as waterfall to make
them more effective
 Faster development results in dramatic time and cost saving
Disadvantages:
 No proper documentation to be used for current and future projects
 Faster development often results in poor quality software
 Never used alone to develop software
CMP-3310 Software Engineering - Handouts
9 | P a g e
 Relies heavily on end user in terms of functionalities and interfaces can result
in a less efficient software. End users sometimes do not want to make the
software project successful having the threat of job risk or due to their
easiness in terms of software usage causing the removal of some key features
or functions of the software that may be hard to use. Is it possible that CEO of
any organization can have so much time to evaluate the software again and
again? No, therefore he will send the end user; who can become a source of
software project failure in terms of software implementation.
8. Rapid ApplicationDevelopment (RAD) Model:
The main phases of RAD model are as follows.
 Requirements & Planning
 User Design
 Development
 Cutover
Fig. 6: Rapid Application Development Process Model
As the figure indicates that RAD model is compressed, modified and improved
version of the actual waterfall model. The project identification & selection, project
initiation & planning and analysis phase of the waterfall model have been merged into first
phase of the RAD model called Requirements & Planning, It means the feasibility
assessments and gathering requirements are done in parallel. The logical design and
physical design are being merged in the User Design phase. The prototype model is heavily
used during the user design and development phases to finalize the interfaces and verify
the requirements in terms of functionalities. This can be seen by a back arrow indicated
from the development to design phase. The cutover phase indicates the maintenance and
testing of the software.
CMP-3310 Software Engineering - Handouts
10 | P a g e
Fig. 7: Waterfall Model – Another Phase List
Advantages:
 Best suitable for real life small scale commercial projects
 Faster development results in time and cost saving
 More complete user requirements because of use of prototype approach
 Focuses on the main features of the software from the user`s point of view
 Cover all phases of the waterfall model, but at a rapid rate
Disadvantages:
 Faster development results in poor quality software
 Use of the prototype approach incorporates all its disadvantages into RAD
model
 Not suitable for safety critical projects where life risks are involved
9. Spiral/Evolutionary/Incremental Model:
The main phases of Evolutionary model are as follows.
 Communication with the customer
 Planning
 Risk Analysis
 Engineering
 Testing
 Customer Evaluation
Customer is communicated during the first phase to gather the basis
specification of the software project. The planning phase is composed of developing
a feasibility report in terms of schedule, economic, technical and operation
CMP-3310 Software Engineering - Handouts
11 | P a g e
feasibilities. The schedule feasibility reflects the start and finishing duration of each
phase. Microsoft Project or Microsoft Excel is used to draw Gantt Charts. The
economic feasibility has the monetary figures indicating that how much a project is
feasible and the benefits can be gained by using the project. The technical feasibility
show that the desired hardware and software are available for development of that
project and how much are the costs. The operational feasibility has the measures
that how much operational costs are required and what will be the operational
benefits.
The approvals of this phase by the customer pass the developers to move to the
risk analysis phase. The developer of the project gathers the detailed requirements
and calculates all the potential risks involved. The engineering phase has three main
activities. The logical design, physical design and coding of the project. The
developer tests the project for debugging in testing phase. There are two main
approaches available for testing of any software. The software application is tested
and evaluated by the customer during customer evaluation phase. The first round of
spiral may just help us to complete the project specification of the project. During
the next cycle we may develop the first part or module of the software that is
normally core part of the software. After its evaluation and approval by the
customer it is delivered to customer for usage. For example, in Microsoft Word,
writing area is the core part. If the customer approved the core part then we start
working on other parts. For example, spell checker, formatting and drawing
modules. The evolutionary process can be used for the entire life of the software to
add new parts. Unlike waterfall model that can be used only to work on the software
as a whole. The planning, analysis, engineering, testing and customer evaluation is
done for each new part. The increments are continuously added according to the
requirements of customer and this evolutionary process continues up to entire life
of the software. Spiral model is depicted in the following figure.
Fig. 8: Spiral Model
Advantages:
 Using this approach, more complete software could be developed
 Best suitable for modular development
CMP-3310 Software Engineering - Handouts
12 | P a g e
 Best suitable if you have less number of developers. You can hire more staff if
your core has been accepted
 Best suitable for web projects because web applications are continuously
evolving according to the business or customer needs
Disadvantages:
 Not suitable for developing artificial intelligence and neural networks
software where more detailed activities are required during each phase of
the SDLC and modified waterfall model is used
10. Rational Unified Process Model:
The Rational Unified Process (RUP) is an example of a modern process model
that has been derived from work on the UML and the associated Unified Software
Development Process. It is a good example of hybrid process model that brings
together elements from all generic process models, iterations and illustrates good
practices of specification and design.
The RUP recognizes that conventional process models present a single view
of the process. In contrast, the RUP is normally described from three perspectives:
 A dynamic perspective that shows the phases of the model over time
 A static perspective that shows the process activities that are enacted
 A practice perspective that suggests good practices to be used during
the process
The RUP is a phased model that identifies four discrete phases in the
software process. However, unlike the waterfall model where phases are equated
with process activities, the phases in the RUP are more closely related to business
rather than technical concerns. Fig. 9 shows the phases in the RUP.
Fig. 9: Rational Unified Process Model
Inception: The goal of the inception phase is to establish a business case for the system.
You should identify all external entities (people and systems) that will interact with the
system and define these interactions. You then use this information to assess the
contribution that the system makes to the business. If this contribution is minor, then the
project may be cancelled after this phase.
Elaboration: The goals of the elaboration phase are to develop an understanding of the
problem domain, establish an architectural framework for the system, develop the project
plan and identify key project risks. On completion of this phase. You should have a
CMP-3310 Software Engineering - Handouts
13 | P a g e
requirements model for the system (UML use cases are specified), an architectural
description and a development plan for the software.
Construction: The construction phase is essentially concerned with system design,
programming and testing. Parts of the system are developed in parallel and integrated
during this phase. On completion of this phase, you should have a working software system
and associated documentation that is ready for delivery to users.
Transition: The final phase of the RUP is concerned with moving the system from the
development community to the user community and making it work in a real environment.
This is something that is ignored in most software process models but is, in fact, an
expensive and sometimes problematic activity. On completion of this phase, you should
have a documented software system that is working correctly in its operational
environment.
Iteration within the RUP is supported in two ways as shown in Fig. 9. Each phase may be
enacted in an iterative way with the results developed incrementally. In addition, the whole
set of phases may also be enacted incrementally, as shown by the looping arrow from
Transition to Inception in Fig. 9.
End of Chapter 2

More Related Content

What's hot

Prototype model
Prototype modelPrototype model
Prototype model
sadhana8
 
Comparison of Software Engineering Models
Comparison of Software Engineering  ModelsComparison of Software Engineering  Models
Comparison of Software Engineering Models
tahir iqbal
 
S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)
Jayesh Buwa
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
Slideshare
 

What's hot (20)

Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
 
Spiral model
Spiral modelSpiral model
Spiral model
 
Evolutionary Software Process Module in Easy Terminology by Taha Shahid
Evolutionary Software Process Module in Easy Terminology by Taha ShahidEvolutionary Software Process Module in Easy Terminology by Taha Shahid
Evolutionary Software Process Module in Easy Terminology by Taha Shahid
 
Evolutionary process models se.ppt
Evolutionary process models se.pptEvolutionary process models se.ppt
Evolutionary process models se.ppt
 
Waterfall Model
Waterfall ModelWaterfall Model
Waterfall Model
 
SDLC
SDLCSDLC
SDLC
 
Spiral model
Spiral modelSpiral model
Spiral model
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
Software engineering model
Software engineering modelSoftware engineering model
Software engineering model
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)
 
Software process Models
Software process ModelsSoftware process Models
Software process Models
 
software project management Waterfall model
software project management Waterfall modelsoftware project management Waterfall model
software project management Waterfall model
 
Prototype model
Prototype modelPrototype model
Prototype model
 
Software Development Life Cycle-SDLC
Software Development Life Cycle-SDLCSoftware Development Life Cycle-SDLC
Software Development Life Cycle-SDLC
 
Evolutionary models
Evolutionary modelsEvolutionary models
Evolutionary models
 
Waterfall Model PPT in Software Engineering
Waterfall Model PPT in Software EngineeringWaterfall Model PPT in Software Engineering
Waterfall Model PPT in Software Engineering
 
Comparison of Software Engineering Models
Comparison of Software Engineering  ModelsComparison of Software Engineering  Models
Comparison of Software Engineering Models
 
S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Software life cycle models
Software life cycle modelsSoftware life cycle models
Software life cycle models
 

Similar to Ch 02 s.e software process models 1

Chapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdfChapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdf
VikasRai405977
 
Sdlc process document
Sdlc process documentSdlc process document
Sdlc process document
Pesara Swamy
 
unit2.pdfJgkcGkgcjkGKCJGgscdGSADKJgjsdkgKJAGSDJK
unit2.pdfJgkcGkgcjkGKCJGgscdGSADKJgjsdkgKJAGSDJKunit2.pdfJgkcGkgcjkGKCJGgscdGSADKJgjsdkgKJAGSDJK
unit2.pdfJgkcGkgcjkGKCJGgscdGSADKJgjsdkgKJAGSDJK
AvijitChaudhuri3
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineering
Arun Nair
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
smumbahelp
 

Similar to Ch 02 s.e software process models 1 (20)

Chapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdfChapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdf
 
3. ch 2-process model
3. ch 2-process model3. ch 2-process model
3. ch 2-process model
 
Sdlc process document
Sdlc process documentSdlc process document
Sdlc process document
 
Software Maintenance
Software MaintenanceSoftware Maintenance
Software Maintenance
 
Develop a process model
Develop a process modelDevelop a process model
Develop a process model
 
System Development
System  DevelopmentSystem  Development
System Development
 
Presentation of waterfall model
Presentation of waterfall modelPresentation of waterfall model
Presentation of waterfall model
 
SE-03.pptx
SE-03.pptxSE-03.pptx
SE-03.pptx
 
Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptx
 
SE-Lecture-2.pptx
SE-Lecture-2.pptxSE-Lecture-2.pptx
SE-Lecture-2.pptx
 
unit2.pdfJgkcGkgcjkGKCJGgscdGSADKJgjsdkgKJAGSDJK
unit2.pdfJgkcGkgcjkGKCJGgscdGSADKJgjsdkgKJAGSDJKunit2.pdfJgkcGkgcjkGKCJGgscdGSADKJgjsdkgKJAGSDJK
unit2.pdfJgkcGkgcjkGKCJGgscdGSADKJgjsdkgKJAGSDJK
 
SE UNIT-1 Revised.pdf
SE UNIT-1 Revised.pdfSE UNIT-1 Revised.pdf
SE UNIT-1 Revised.pdf
 
Computer1
Computer1Computer1
Computer1
 
The process
The processThe process
The process
 
Software engineering the process
Software engineering the processSoftware engineering the process
Software engineering the process
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineering
 
Sdpl1
Sdpl1Sdpl1
Sdpl1
 
Software engineering (Unit-1 Introduction)
Software engineering (Unit-1 Introduction)Software engineering (Unit-1 Introduction)
Software engineering (Unit-1 Introduction)
 
Chapter 2.pptx
Chapter 2.pptxChapter 2.pptx
Chapter 2.pptx
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
 

More from Badar Waseer

More from Badar Waseer (20)

Ch 03 s.e agile development
Ch 03 s.e agile developmentCh 03 s.e agile development
Ch 03 s.e agile development
 
Ch 01 s.e introduction
Ch 01 s.e introductionCh 01 s.e introduction
Ch 01 s.e introduction
 
Ch 14 s.e use case diagrams
Ch 14 s.e use case diagramsCh 14 s.e use case diagrams
Ch 14 s.e use case diagrams
 
Ch 13 s.e cmmi
Ch 13 s.e cmmiCh 13 s.e cmmi
Ch 13 s.e cmmi
 
Lec 1.9 oop
Lec 1.9 oopLec 1.9 oop
Lec 1.9 oop
 
Lec 1.8 Object Oriented Programming
Lec 1.8 Object Oriented ProgrammingLec 1.8 Object Oriented Programming
Lec 1.8 Object Oriented Programming
 
Lec 1.7 Object Oriented Programming
Lec 1.7 Object Oriented ProgrammingLec 1.7 Object Oriented Programming
Lec 1.7 Object Oriented Programming
 
Lec 1.6 Object Oriented Programming
Lec 1.6 Object Oriented ProgrammingLec 1.6 Object Oriented Programming
Lec 1.6 Object Oriented Programming
 
Lec 1.5 Object Oriented Programming
Lec 1.5 Object Oriented ProgrammingLec 1.5 Object Oriented Programming
Lec 1.5 Object Oriented Programming
 
Lec 1.4 Object Oriented Programming
Lec 1.4 Object Oriented ProgrammingLec 1.4 Object Oriented Programming
Lec 1.4 Object Oriented Programming
 
Lec 1.3 Object Oriented Programming
Lec 1.3 Object Oriented ProgrammingLec 1.3 Object Oriented Programming
Lec 1.3 Object Oriented Programming
 
Lec 1.1 Object Oriented Programming
Lec 1.1 Object Oriented ProgrammingLec 1.1 Object Oriented Programming
Lec 1.1 Object Oriented Programming
 
Lec 1.10 Object Oriented Programming
Lec 1.10 Object Oriented ProgrammingLec 1.10 Object Oriented Programming
Lec 1.10 Object Oriented Programming
 
Multimedia System & Design Ch 7 multimedia skills
Multimedia System & Design Ch 7 multimedia skillsMultimedia System & Design Ch 7 multimedia skills
Multimedia System & Design Ch 7 multimedia skills
 
Multimedia System & Design Ch 6 animation
Multimedia System & Design Ch 6 animationMultimedia System & Design Ch 6 animation
Multimedia System & Design Ch 6 animation
 
Multimedia System & Design Ch 5 video
Multimedia System & Design Ch 5 videoMultimedia System & Design Ch 5 video
Multimedia System & Design Ch 5 video
 
Multimedia System & Design Ch 4 Audio
Multimedia System & Design Ch 4 AudioMultimedia System & Design Ch 4 Audio
Multimedia System & Design Ch 4 Audio
 
Multimedia System & Design Ch 1, 2, 3 Multimedia
Multimedia System & Design Ch 1, 2, 3 MultimediaMultimedia System & Design Ch 1, 2, 3 Multimedia
Multimedia System & Design Ch 1, 2, 3 Multimedia
 
Multimedia System & Design Ch 8 delivering
Multimedia System & Design Ch 8 deliveringMultimedia System & Design Ch 8 delivering
Multimedia System & Design Ch 8 delivering
 
Agriculture Information System (AIS)
Agriculture Information System (AIS)Agriculture Information System (AIS)
Agriculture Information System (AIS)
 

Recently uploaded

Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
AnaAcapella
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
negromaestrong
 

Recently uploaded (20)

ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
Asian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptxAsian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptx
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 

Ch 02 s.e software process models 1

  • 1. CMP-3310 Software Engineering - Handouts 1 | P a g e Chapter No 2 Software Process Models - 1 1. Software Development: Software engineering is nothing but a disciplined approach to develop software. Now we will look at some of the activities involved in the course of software development. The activities involved in software development can broadly be divided into two major categories first is construction and second is management. The construction activities are those that are directly related to the construction or development of the software. While the management activities are those that complement the process of construction in order to perform construction activities smoothly and effectively. A greater detail of the activities involved in the construction and management categories is presented below. 1.1 Construction: The construction activities are those that directly related to the development of software, e.g. gathering the requirements of the software, develop design, implement and test the software etc. Some of the major construction activities are listed below.  Requirement Gathering  Design Development  Coding  Testing 1.2 Management: Management activities are kind of umbrella activities that are used to smoothly and successfully perform the construction activities e.g. Project planning, Software quality assurance etc. Some of the major management activities are listed below.  Project Planning and Management  Configuration Management  Software Quality Assurance  Installation and Training
  • 2. CMP-3310 Software Engineering - Handouts 2 | P a g e Fig. 1: Software Development Activities 2. System Development Life Cycle: The traditional methodology used in an organization to develop, maintain and replace the software systems. Each methodology has its own SDLC. Criteria for the Selection of Process Model to Develop a Project: All process models have few common frameworks activities (Pressman 2005). The problem is to select the most suitable model to be used for a particular project. These are the criteria on the basis of which Project Manager selects the appropriate model for a particular project.  Customer: Customer sometimes imposes the software house to follow a specific model for his project.  Team Size: Team size is very critical factor that forces the software house to select a specific model that suits to their team available for the project to be developed.  Technology: Technology in terms of development tool, platform and technical capabilities to develop the project is also an important factor for the selection of process model.  Reuse of the Existing Components: Object Oriented or Component-Based Development process model helps to reuse the existing components.  Characteristics of the System: The main characteristics of a project also help a project manager to select the best suitable process model for the current project. i. Linear Sequential model is the best choice for a new project having functionality similar to the previously completed projects. ii. Rapid Application Development model is the appropriate choice for a project having very tight deadlines. iii. Evolutionary model are the best choice for a project having impossible deadlines. Justification of the Above Mentioned Criteria: The advantages and disadvantages of the main process models are discussed in upcoming articles to justify the above mentioned criteria.
  • 3. CMP-3310 Software Engineering - Handouts 3 | P a g e 3. Software Processes: A software process is a road map that helps you create a timely, high quality result. It is the way we produce software and it provides stability and control. Each process defines certain deliverables known as the work products. These include programs, documents, and data produced as a consequence of the software engineering activities. A lifecycle model is a series of steps through which the product progresses. These include requirements phase, specification phase, design phase, implementation phase, integration phase, maintenance phase, and retirement. Software Development Lifecycle Models depict the way you organize your activities. There are a number of Software Development Lifecycle Models, each having its strengths and weaknesses and suitable in different situations and project types. The list of models includes the following:  Build-and-Fix Model  Waterfall Model  CBD Process Model  Rapid Prototyping Model  Rapid Application Development Model  Spiral Model  Rational Unified Process Model 4. Build-and-Fix Model: It is unfortunate that many products are developed using what is known as the build-and-fix model. In this model the product is constructed without specification or any attempt at design. The developers simply build a product that is reworked as many times as necessary to satisfy the client. This model may work for small projects but is totally unsatisfactory for products of any reasonable size. The cost of build-and fix is actually far greater than the cost of properly specified and carefully designed product. Maintenance of the product can be extremely in the absence of any documentation. It is depicted in Fig. 2. In the build and fix model (also referred to as an ad hoc model), the software is developed without any specification or design. An initial product is built, which is then repeatedly modified until it (software) satisfies the user. That is, the software is developed and delivered to the user. The user checks whether the desired functions 'are present. If not, then the software is changed according to the needs by adding, modifying or deleting functions. This process goes on until the user feels that the software can be used productively. However, the lack of design requirements and repeated modifications result in loss of acceptability of software. Thus, software engineers are strongly discouraged from using this development approach. This model includes the following two phases.  Build: In this phase, the software code is developed and passed on to the next phase.  Fix: In this phase, the code developed in the build phase is made error free. Also, in addition to the corrections to the code, the code is modified according to the user's requirements.
  • 4. CMP-3310 Software Engineering - Handouts 4 | P a g e Fig. 2: Build-and-Fix Model Advantages:  Requires less experience to execute or manage other than the ability to program  Suitable for smaller software  Requires less project planning Disadvantages:  No real means is available of assessing the progress, quality, and risks  Cost of using this process model is high as it requires rework until user's requirements are accomplished  Informal design of the software as it involves unplanned procedure  Maintenance of these models is problematic 5. Waterfall Model: The first published model of the software development process was derived from other engineering processes. Because of the cascade from one phase to another, this model is known as the waterfall model. This model is also known as linear sequential model. This model is depicted in the following diagram. The principal stages of the model map directly onto fundamental development activities. It suggests a systematic, sequential approach to software development that begins at the system level and progresses through the analysis, design, coding, testing, and maintenance. In the literature, people have identified from 5 to 8 stages of software development. The five stages of waterfall model are as follows: Requirement Analysis and Definition: Its focus is on What. The systems services, constraints and goals are established by consultation with system users. They are then defined in detail and serve as a system specification. System and Software Design: Its focus is on How. The system design process partitions the requirements to either hardware of software systems. It establishes and overall system architecture. Software design involves fundamental system abstractions and their relationships. Implementation and Unit Testing: Its main focus is on How. During this stage the software design is realized as a set of programs or program units. Unit testing involves verifying that each unit meets its specifications.
  • 5. CMP-3310 Software Engineering - Handouts 5 | P a g e Integration and System Testing: The individual program unit or programs are integrated and tested as a complete system to ensure that the software requirements have been met. After testing, the software system is delivered to the customer. Operation and Maintenance: Normally this is the longest phase of the software life cycle. The system is installed and put into practical use. Maintenance involves correcting errors which were not discovered in earlier stages of the life-cycle, improving the implementation of system units and enhancing the system’s services as new requirements are discovered. Fig. 3: Waterfall Model In principle, the result of each phase is one or more documents which are approved. No phase is complete until the documentation for that phase has been completed and products of that phase have been approved. The following phase should not start until the previous phase has finished. Real projects rarely follow the sequential flow that the model proposes. In general these phases overlap and feed information to each other. Hence there should be an element of iteration and feedback. A mistake caught any stage should be referred back to the source and all the subsequent stages need to be revisited and corresponding documents should be updated accordingly. This feedback path is shown in Fig. 4. Because of the costs of producing and approving documents, iterations are costly and require significant rework. The Waterfall Model is a documentation-driven model. It therefore generates complete and comprehensive documentation and hence makes the maintenance task much easier. It however suffers from the fact that the client feedback is received when the product is finally delivered and hence any errors in the requirement specification are not discovered until the product is sent to the client after completion. This therefore has major time and cost related consequences.
  • 6. CMP-3310 Software Engineering - Handouts 6 | P a g e Fig. 4: Feedback Path in Waterfall Model Advantages:  A complete comprehensive understanding regarding system development  Suitable for research projects Disadvantages:  Not feasible for real life commercial projects because of phase organization  More time is required to develop a software  Working version of the software is available late in the project at the start of the sixth phase during implementation phase. This can result in a total disaster if the customer requirements are vague  It is not practically possible to collect complete requirements initially at the start of the project that is fundamental requirement of this model 6. CBD Model:  The CBSE process is used to: o Identify desirable components; o Qualify each component’s interface; o Adapt components to remove architectural mismatches; o Assembles components into a selected architectural style; o Update components as requirements changes.  The process model for CBSE emphasizes parallel tracks in which domain engineering occurs concurrently with CBD.  The main phases of CBD process model are as follows. a. Communication b. Planning c. Analysis, component selection and Risk Management d. Engineering and testing e. Evaluation  The customer is communicated at the start of the project to gather basic requirements. Initial use cases are developed at this stage.
  • 7. CMP-3310 Software Engineering - Handouts 7 | P a g e  Project specification or proposal document is prepared during the planning phase.  Project specification or proposal document is composed of feasibility and risk assessments that are performed to prepare a cost benefits analysis (CBA) sheet. Fig. 5: CBD Process Model  CBA sheet helps to estimate that whether the SW project is feasible for the customer or not.  Analysis phase is only started if the customer approves the proposal.  Risk Analysis, Component Selection and Risk Management phase- It is the phase where an analyst gathers detailed requirements and tries to identify and select those components that can be reused from the components repository.  Risks regarding the use of existing components are evaluated and managed. The relationships among components are identified.  The properties and behaviors of the components are identified as well.  Core objective of this phase is to reuse maximum components, rather than reinventing the wheel.  It will also improve productivity and efficiency of software engineers.  Engineering and testing phase- the selected components are modified (customized) according to the requirements of new system to be developed and tested.  The new components are designed, developed and tested on unit basis.  Integration and system tests of the newly developed and of the reused components are performed.  Evaluation phase- Customer is requested to evaluate and verify SW that whether it meets his/her requirements or not.
  • 8. CMP-3310 Software Engineering - Handouts 8 | P a g e 7. Rapid Prototyping Model: A cyclic diagram can show the phases of the rapid prototyping model. Fig. 6: Rapid Prototyping Process Model This model has three main phases.  Listen (to the customer)  Develop A Demo Version of Software  Evaluate (by the customer) The customer is called at the Software Engineer/Developer`s site or he/she visited to customer in order to gather the main requirements of the software. The software engineer developed a demo version of the software and called the customer at his/her site to evaluate the demo. The customer and software engineer sits together. The customer feed-back about the demo is again listened by the developer. The developer rebuilds the demo according to the changes and new requirements inquired by the customer. The customer is again called to re-evaluate the demo and this process continues until the final version of the customer satisfaction. Prototype model provides no documentation for the software as in the case of waterfall model. There are two main types of prototype model known as Throwaway and Evolutionary Prototype. The developer throws the demo software after every evaluation by the customer and develops the new demo version or evaluation in Throwaway Prototype. The evolutionary approach is used to develop the first demo and make further changes or maintenance in it until the customer approved the final version of demo software. Advantages:  Best suitable to integrate with other methodologies such as waterfall to make them more effective  Faster development results in dramatic time and cost saving Disadvantages:  No proper documentation to be used for current and future projects  Faster development often results in poor quality software  Never used alone to develop software
  • 9. CMP-3310 Software Engineering - Handouts 9 | P a g e  Relies heavily on end user in terms of functionalities and interfaces can result in a less efficient software. End users sometimes do not want to make the software project successful having the threat of job risk or due to their easiness in terms of software usage causing the removal of some key features or functions of the software that may be hard to use. Is it possible that CEO of any organization can have so much time to evaluate the software again and again? No, therefore he will send the end user; who can become a source of software project failure in terms of software implementation. 8. Rapid ApplicationDevelopment (RAD) Model: The main phases of RAD model are as follows.  Requirements & Planning  User Design  Development  Cutover Fig. 6: Rapid Application Development Process Model As the figure indicates that RAD model is compressed, modified and improved version of the actual waterfall model. The project identification & selection, project initiation & planning and analysis phase of the waterfall model have been merged into first phase of the RAD model called Requirements & Planning, It means the feasibility assessments and gathering requirements are done in parallel. The logical design and physical design are being merged in the User Design phase. The prototype model is heavily used during the user design and development phases to finalize the interfaces and verify the requirements in terms of functionalities. This can be seen by a back arrow indicated from the development to design phase. The cutover phase indicates the maintenance and testing of the software.
  • 10. CMP-3310 Software Engineering - Handouts 10 | P a g e Fig. 7: Waterfall Model – Another Phase List Advantages:  Best suitable for real life small scale commercial projects  Faster development results in time and cost saving  More complete user requirements because of use of prototype approach  Focuses on the main features of the software from the user`s point of view  Cover all phases of the waterfall model, but at a rapid rate Disadvantages:  Faster development results in poor quality software  Use of the prototype approach incorporates all its disadvantages into RAD model  Not suitable for safety critical projects where life risks are involved 9. Spiral/Evolutionary/Incremental Model: The main phases of Evolutionary model are as follows.  Communication with the customer  Planning  Risk Analysis  Engineering  Testing  Customer Evaluation Customer is communicated during the first phase to gather the basis specification of the software project. The planning phase is composed of developing a feasibility report in terms of schedule, economic, technical and operation
  • 11. CMP-3310 Software Engineering - Handouts 11 | P a g e feasibilities. The schedule feasibility reflects the start and finishing duration of each phase. Microsoft Project or Microsoft Excel is used to draw Gantt Charts. The economic feasibility has the monetary figures indicating that how much a project is feasible and the benefits can be gained by using the project. The technical feasibility show that the desired hardware and software are available for development of that project and how much are the costs. The operational feasibility has the measures that how much operational costs are required and what will be the operational benefits. The approvals of this phase by the customer pass the developers to move to the risk analysis phase. The developer of the project gathers the detailed requirements and calculates all the potential risks involved. The engineering phase has three main activities. The logical design, physical design and coding of the project. The developer tests the project for debugging in testing phase. There are two main approaches available for testing of any software. The software application is tested and evaluated by the customer during customer evaluation phase. The first round of spiral may just help us to complete the project specification of the project. During the next cycle we may develop the first part or module of the software that is normally core part of the software. After its evaluation and approval by the customer it is delivered to customer for usage. For example, in Microsoft Word, writing area is the core part. If the customer approved the core part then we start working on other parts. For example, spell checker, formatting and drawing modules. The evolutionary process can be used for the entire life of the software to add new parts. Unlike waterfall model that can be used only to work on the software as a whole. The planning, analysis, engineering, testing and customer evaluation is done for each new part. The increments are continuously added according to the requirements of customer and this evolutionary process continues up to entire life of the software. Spiral model is depicted in the following figure. Fig. 8: Spiral Model Advantages:  Using this approach, more complete software could be developed  Best suitable for modular development
  • 12. CMP-3310 Software Engineering - Handouts 12 | P a g e  Best suitable if you have less number of developers. You can hire more staff if your core has been accepted  Best suitable for web projects because web applications are continuously evolving according to the business or customer needs Disadvantages:  Not suitable for developing artificial intelligence and neural networks software where more detailed activities are required during each phase of the SDLC and modified waterfall model is used 10. Rational Unified Process Model: The Rational Unified Process (RUP) is an example of a modern process model that has been derived from work on the UML and the associated Unified Software Development Process. It is a good example of hybrid process model that brings together elements from all generic process models, iterations and illustrates good practices of specification and design. The RUP recognizes that conventional process models present a single view of the process. In contrast, the RUP is normally described from three perspectives:  A dynamic perspective that shows the phases of the model over time  A static perspective that shows the process activities that are enacted  A practice perspective that suggests good practices to be used during the process The RUP is a phased model that identifies four discrete phases in the software process. However, unlike the waterfall model where phases are equated with process activities, the phases in the RUP are more closely related to business rather than technical concerns. Fig. 9 shows the phases in the RUP. Fig. 9: Rational Unified Process Model Inception: The goal of the inception phase is to establish a business case for the system. You should identify all external entities (people and systems) that will interact with the system and define these interactions. You then use this information to assess the contribution that the system makes to the business. If this contribution is minor, then the project may be cancelled after this phase. Elaboration: The goals of the elaboration phase are to develop an understanding of the problem domain, establish an architectural framework for the system, develop the project plan and identify key project risks. On completion of this phase. You should have a
  • 13. CMP-3310 Software Engineering - Handouts 13 | P a g e requirements model for the system (UML use cases are specified), an architectural description and a development plan for the software. Construction: The construction phase is essentially concerned with system design, programming and testing. Parts of the system are developed in parallel and integrated during this phase. On completion of this phase, you should have a working software system and associated documentation that is ready for delivery to users. Transition: The final phase of the RUP is concerned with moving the system from the development community to the user community and making it work in a real environment. This is something that is ignored in most software process models but is, in fact, an expensive and sometimes problematic activity. On completion of this phase, you should have a documented software system that is working correctly in its operational environment. Iteration within the RUP is supported in two ways as shown in Fig. 9. Each phase may be enacted in an iterative way with the results developed incrementally. In addition, the whole set of phases may also be enacted incrementally, as shown by the looping arrow from Transition to Inception in Fig. 9. End of Chapter 2