0% found this document useful (0 votes)
13 views31 pages

Chpt1_IntroductionToSE&ProcessModels

The document provides an overview of software engineering, highlighting the characteristics of software, its application domains, and the changing nature of software. It discusses the need for software engineering due to the dynamic nature of software, complexity, quality management, and the production of reliable software. Additionally, it outlines the software process, including key activities and characteristics, as well as the advantages of process models and umbrella activities in software development.

Uploaded by

ashwini biradar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views31 pages

Chpt1_IntroductionToSE&ProcessModels

The document provides an overview of software engineering, highlighting the characteristics of software, its application domains, and the changing nature of software. It discusses the need for software engineering due to the dynamic nature of software, complexity, quality management, and the production of reliable software. Additionally, it outlines the software process, including key activities and characteristics, as well as the advantages of process models and umbrella activities in software development.

Uploaded by

ashwini biradar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

Introduction to Software Engineering and Process Models

Characteristics of software

Software is defined as the tool with designated order of instructions,


performing tasks to provide the desired results after obtaining the
requirements of the users.
Software has characteristics that are considerably different than those of
hardware:
1. Software is developed or engineered; it is not manufactured in the
Classical Sense:
● Although some similarities exist between software development
and hardware manufacture, the two activities are fundamentally
different.
● In both activities, high quality is achieved through good design, but
the manufacturing phase for hardware can introduce quality
problems that are nonexistent or easily corrected for software.
● Both the activities are dependent on people, but the relationship
between people is totally varying.
● These two activities require the construction of a "product" but the
approaches are different.

2. Software does not “Wear Out”:


● Hardware components suffer from the growing effects of many
other environmental factors. Stated simply, the hardware begins
to wear out.
● As time goes the failure rate rises again and this may be caused
by excessive temperature, dust, vibration, improper use and so
on and at one time it becomes totally unusable.
● Software is not susceptible to the environmental maladies that
cause hardware to wear out.
● When a hardware component wears out, it is replaced by a spare
part.
● There are no software spare parts.
● Every software failure indicates an error in design or in the
process through which design was translated into machine-
executable code. Therefore, the software maintenance tasks that
accommodate requests for change involve considerably more
complexity than hardware maintenance. However, the
implication is clear—the software doesn’t wear out.

An undiscovered defect will cause high failure rates in the life of the
program. Software does not wear out during its life; software will
undergo maintenance.
As changes are made, it is likely that some new defects will be
recognized, causing the failure rate curve to spike.
3. The software continues to be custom-built, rather than being
assembled from existing components:

● A software part should be planned and carried out with the


goal that it tends to be reused in various projects.
● Current reusable segments encapsulate the two information
and the preparation that is applied to the information,
empowering the programmer to make new applications from
reusable parts.
● In the hardware world, component reuse is a natural part of
the engineering process.
Software Application Domains

There are seven broad categories of computer software having different


forms, uses and challenges to software engineers.
1. System Software:
● It is a collection of programs written to service other programs.
● Some system software are compilers, editors, file management
utilities,device drivers, editors and operating systems. These
programs heavily interact with hardware components.
2. Application software:
● These consist of standalone programs that solve a specific business
need. Applications in this area process business or technical data in
a way that facilitates business operations or management/technical
decision making.
● These are used to control business functions in real time. For
example real-time manufacturing process control, payroll system
etc.
3.Engineering/scientific software:
● This software uses various number crunching algorithms.
● These software range from astronomy to volcanology, from
automotive stress analysis to space shuttle orbital dynamics and
from molecular biology to automated manufacturing.
● For example System simulation, Computer Aided Design(CAD)
4. Embedded software:
● This software resides within a product or system and is used to
implement and control features and functions for the end user and
for the system itself.
● These software can perform limited and esoteric functions or
provide significant function and control capability.
● For example Keypad control for refrigerator or oven
5. Product line software:
These are designed to provide a specific capability for use by many
different customers.
They focus on a limited and esoteric market place. These software
addresses mass consumer markets.
For example Computer graphics, Multimedia, DBMS
6. Web-applications:
Web apps or web applications are evolving into sophisticated computing
environments that not only provide standalone features, computing
functions and content to the end user but also integrated with corporate
databases and business applications.
7. Artificial intelligence software:
● It makes use of non numerical algorithms to solve complex
problems that are not amenable(not easily controlled) to
computations or straightaway analysis.
● Applications within this area include robotics, expert systems
pattern recognition, artificial neural networks, theorem proving and
game playing.

Changing Nature of Software


● The role of computer software has undergone a significant change
over the last half-century.
● Day by day software needs to be modified or redesigned according
to the change in user requirement, latest technologies, business
rules and strategies.
● Based on the complex growth of software it can be classified into
the following four categories.
1. WebApps
A web application (web app) is an application program that is stored on
a remote server and delivered over the internet through a browser
interface.
Developers design web applications for a wide variety of uses and users,
from an organization to an individual for numerous reasons.
Commonly used web applications can include webmail, online
calculators or e-commerce shops. While users can only access some web
apps by a specific browser, most are available no matter the browser.
Web applications do not need to be downloaded since they are accessed
through a network. Users can access a web application through a web
browser, such as Google Chrome, Mozilla Firefox or Safari.
2. Mobile Applications
● A mobile app is the most common type of app. Also known as a
native app, a mobile app is built for specific platforms, which
dictates what languages they’re written in.
● Native iOS apps, for example, are written in Swift and Objective-C
and native Android apps are written in Java or Kotlin.
● A mobile application, most commonly referred to as an app, is a
type of application software designed to run on a mobile device,
such as a smartphone or tablet computer.
● Mobile applications frequently serve to provide users with similar
services to those accessed on PCs.
● Apps are generally small, individual software units with limited
function. This use of app software was originally popularized by
Apple Inc. and its App Store, which offers thousands of
applications for the iPhone, iPad and iPod Touch.
● A mobile application also may be known as an app, web app,
online app, iPhone app or smartphone app.

Distinction between Mobile Web Applications and Mobile Apps

● Mobile applications are specifically created to be operated from


mobile. In contrast, web applications are created with the purpose
of the content and services being browsed by the user from any
device via browsers.
● Mobile applications need to be installed from the app store, while
web applications can be easily viewed from any browser and thus
do not need to be installed.
● Mobile applications can be accessed even offline, and that’s not
the case with web applications since browsers do not work without
a proper internet connection.
● Mobile applications are faster to browse, while web applications
may take a while to load.
● Mobile applications need to be approved by the app store. Since
web applications are browsed through browsers, they need not
require approval from the app store.
● Mobile applications have more sophisticated security, while web
applications may not have that level of heightened security
compared to mobile applications.
● Mobile apps need to be updated frequently. Web apps will take
care of updates themselves.

3. Cloud Computing
● Cloud computing provides us means of accessing the applications
as utilities over the internet. It allows us to create, configure and
customize the applications online.
● Cloud computing encompasses an infrastructure that enables any
user anywhere, to use a computing device to share the computing
resources on a broad scale.
● Cloud refers to a network or the internet.It is a technology that uses
remote servers on the internet to store, manage and access data
online rather than local drives. The data can be anything such as
files, images, documents, audio, video and more.
● Cloud computing refers to manipulating, configuring and accessing
the hardware and software resources remotely. It offers online data
storage, infrastructure and applications.
Computing devices reside outside the cloud and have access to a variety
of resources within the cloud.
There are the following operations that we can do using cloud
computing:

○ Developing new applications and services


○ Storage, back up, and recovery of data
○ Hosting blogs and websites
○ Delivery of software on demand
○ Analysis of data
○ Streaming videos and audios

4. Product Line Software


● A software product line is a set of software-intensive systems that
share a common, managed set of features satisfying the specific
needs of a particular market segment or mission and that are
developed from a common set of core assets in a prescribed way.
● Software product lines (SPLs), or software product line
development, refers to software engineering methods, tools and
techniques for creating a collection of similar software systems
from a shared set of software assets using a common means of
production.

Nature of Software Engineering

● A primary goal of software engineering is to improve the quality of


software products and to increase productivity.
● Software engineering encompasses every concept and standards of
the disciplines in relation to design, coding and developing
maintainable software complying with the available resources and
budget constraints.

Software engineering - Layered technology

● Software engineering is a fully layered technology.


● To develop software, we need to go from one layer to another.
● All these layers are related to each other and each layer demands
the fulfillment of the previous layer
The layered technology consists of:
1. Quality focus
The characteristics of good quality software are:
● Correctness of the functions required to be performed by the
software.
● Integrity i.e. providing security so that the unauthorized user
cannot access information or data.
● Usability i.e. the efforts required to use or operate the software.
2. Process
● It is the base layer or foundation layer for software engineering. It
covers all activities, actions and tasks required to be carried out for
software development.
3. Methods
● It provides the technical way to implement the software. It includes
a collection of tasks starting from communication, requirement
analysis, analysis and design modeling, program construction,
testing and support.
4. Tools
● The software engineering tool is an automated support for the
software development. The tools are integrated i.e the information
created by one tool can be used by the other tool

Need of Software Engineering

The need for software engineering arises because of a higher rate of


change in the user requirements and environment on which the software
is working.
Following points explain the need of software engineering:
1. Use of Resources
As software development is expensive, proper measures are
required, so that resources are used efficiently.
2. Dynamic Nature of Software
If the nature of software is always changing, new enhancements
need to be done in the existing ones. This is where software
engineering plays an important role.
3. Reduce complexity
Today the complexity of software projects has increased. The
problem of software complexity can be easily solved with the help
of software engineering.
4. Quality management
Better process of software development provides better quality
software products.
5. Reduction of cost and time
Cost and time considerations are another factor which arises the
need for software engineering.
6. Maintain effectiveness of software
Effectiveness comes if anything has been made according to
standard. Software standards are the big focus of companies to
make it more effective. So software becomes more effective in
performance with the help of software engineering.
7. Production of reliable software
Software should be reliable means the delivered software should
work as per user’s expectation without any errors.
8. Production of large software
As the size of software becomes large engineering has to step in to
give it a scientific process.
9. Improve scalability
Software scalability is the ability to grow or shrink a piece of
software to meet changing demands on a business. Scaling
software is a necessity for many seasonal industries.
10. Increase productivity
Software engineering is needed for developing complex and
critical software systems in a timely manner, with high quality and
low cost.
Software Process
The term software refers to the set of computer programs, procedures
and associated documents (Flowcharts, manuals, etc.) that describe the
program and how they are to be used.
A software process is the set of activities and associated outcomes that
produce a software product. Software engineers mostly carry out these
activities. There are four key process activities, which are common to all
software processes. These activities are:

1. Software specifications: The functionality of the software and


constraints on its operation must be defined.

2. Software development: The software to meet the requirement


must be produced.

3. Software validation: The software must be validated to ensure


that it does what the customer wants.

4. Software evolution: The software must evolve to meet changing


client needs.

Characteristics of Software Process

Functionality:

It refers to the suitability, accuracy, interoperability, compliance, and


security of software which is measured as the degree of performance of
the software against its intended purpose.

Reliability:
Refers to the recoverability, fault tolerance, maturity of software, which
is basically a capability of the software that provides required
functionality under the given situations.

Efficiency:

It is the ability of the software to use resources of the system in the most
effective and efficient manner. Software must make effective use of
system storage and execute commands as per required timing.

Usability:

It is the extent to which the software can be utilized with ease and the
amount of effort or time required to learn how to use the software.

Maintainability:

It is the ease with which modifications can be made in a software to


extend or enhance its functionality, improve its performance, or resolve
bugs.

Portability:

It is the ease with which software developers can relaunch software from
one platform to another, without (or with minimum) changes. In simple
terms, software must be made in a way that it should be platform
independent.

The Process Framework


The process of framework defines a small set of activities that are
applicable to all types of projects.
● The software process framework is a collection of task sets.
● Task sets consist of a collection of small work tasks, project
milestones, work productivity and software quality assurance
points.
A software process is a collection of various activities.
Generic Process Model

There are five generic process framework activities:


1. Communication:
The software development starts with the communication between
customer and developer.
2. Planning:
It consists of complete estimation, scheduling for project development
and tracking.
3. Modeling:
● Modeling consists of complete requirement analysis and the
design of the project like algorithm, flowchart etc.
● The algorithm is the step-by-step solution of the problem and the
flow chart shows a complete flow diagram of a program.

4. Construction:
● Construction consists of code generation and the testing part.
● Coding part implements the design details using an appropriate
programming language.
● Testing is to check whether the flow of coding is correct or not.
● Testing also checks that the program provides desired output.

5. Deployment:
● Deployment step consists of delivering the product to the
customer and taking feedback from them.
● If the customer wants some corrections or demands for the
additional capabilities, then the change is required for
improvement in the quality of the software.

Advantages of Process Models:

1. A process model enables effective communication which enhances


understanding and provides a specific basis for process execution.
2. A process model facilitates process reuse.
3. A process model also facilitates process management.

Umbrella activities

Typical umbrella activities are:

1. Software project tracking and control

● In this activity, the developing team accesses the project plan and
compares it with the predefined schedule.
● If these project plans do not match with the predefined schedule,
then the required actions are taken to maintain the schedule.
2. Risk management

● Risk is an event that may or may not occur.


● If the event occurs, then it causes some unwanted outcome.
Hence, proper risk management is required.

3. Software Quality Assurance (SQA)

● SQA is the planned and systematic pattern of activities which are


required to give a guarantee of software quality.
For example, during the software development meetings are
conducted at every stage of development to find out the defects
and suggest improvements to produce good quality software.

4. Formal Technical Reviews (FTR)

● FTR is a meeting conducted by the technical staff.


● The motive of the meeting is to detect quality problems and
suggest improvements.
● The technical person focuses on the quality of the software from
the customer point of view.

5. Measurement

● Measurement consists of the effort required to measure the


software.
● The software cannot be measured directly. It is measured by direct
and indirect measures.
● Direct measures like cost, lines of code, size of software etc.
● Indirect measures such as quality of software which is measured
by some other factor. Hence, it is an indirect measure of software.

6. Software Configuration Management (SCM)

● It manages the effect of change throughout the software process.


7. Reusability management

● It defines the criteria for reuse of the product.


● The quality of software is good when the components of the
software are developed for certain applications and are useful for
developing other applications.

8. Work product preparation and production

● It consists of the activities that are needed to create the documents,


forms, lists, logs and user manuals for developing a software.

Prescriptive Process Models


● Defines a distinct set of activities, actions, tasks, milestones, and
work products that are required to engineer high-quality software
● The activities may be linear, incremental, or evolutionary

Various prescriptive models are Waterfall model, Incremental model and


Evolutionary model.

1. Waterfall model
● The waterfall model is also called 'Linear sequential model' or
'Classic life cycle model'.
● In this model, each phase is fully completed before the beginning
of the next phase.
● This model is used for small projects.
● In this model, feedback is taken after each phase to ensure that the
project is on the right path.
● Testing part starts only after the development is complete.
1. Communication: The major task performed is requirement
gathering which helps in finding out the exact need of the
customer.
2. Planning: Describes how technical tasks are going to take place
and what resources are needed and how to use them.
3. Modeling; This is one of the important phase as the architecture of
the system is designed in this phase. Analysis is carried out and
depending on the analysis a software model is designed. Different
models for developing software are created depending on the
requirements gathered in the first phase and the planning done in
the second phase.
4. Construction: The actual coding is done in this phase. This coding
is done on the basis of the model designed in the modeling phase.
So in this phase software is actually developed and tested.
5. Deployment: In this last phase the product is actually delivered at
customer’s end and support is given if required. Feedback is taken
from the customer to ensure the quality of the product.

Advantages of Waterfall Model:

● Simple and easy to understand and use


● Easy to manage due to the rigidity of the model. Each phase
has specific deliverables and a review process.
● Phases are processed and completed one at a time.
● Works well for smaller projects where requirements are very
well understood.
● Clearly defined stages.
● Well understood milestones.
● Easy to arrange tasks.
● Process and results are well documented.

Disadvantages of Waterfall Model:

● The Waterfall model is unsuitable for projects with changing


requirements, as it is a linear, sequential approach that does not
allow changes once a phase is complete.
● Requires customer patience because a working version of the
program does not occur until the final phase.
● It is a poor model for long and ongoing projects.

2. Incremental Model

● The incremental model is a software development methodology


that can be used to build large and complex systems. It's based on
the idea of adding new features, or “increments,” to an existing
system instead of building the entire thing from scratch at once.
● In this model, each module goes through the requirements, design,
implementation and testing phases. Every subsequent release of the
module adds function to the previous release. The process
continues until the complete system is achieved.
● The incremental process model is also known as the Successive
version
Advantages of Incremental model:

● Generates working software quickly and early during the software


life cycle.
● This model is more flexible – less costly to change scope and
requirements.
● It is easier to test and debug during a smaller iteration.
● In this model customers can respond to each build.
● Lowers initial delivery cost.

Disadvantages of Incremental model:

● Needs good planning and design.


● Needs a clear and complete definition of the whole system before
it can be broken down and built incrementally.
● Total cost is higher than the waterfall model.

3. RAD Model

● Rapid application development is a software development


methodology that uses minimal planning in favor of rapid
prototyping. A prototype is a working model that is functionally
equivalent to a component of the product.
● In the RAD model, the functional modules are developed in
parallel as prototypes and are integrated to make the complete
product for faster product delivery. Since there is no detailed
preplanning, it makes it easier to incorporate the changes within
the development process.
● RAD projects follow an iterative and incremental model and have
small teams of developers, domain experts, customer
representatives and other IT resources working progressively on
their component or prototype.
● The most important aspect for this model to be successful is to
make sure that the prototypes developed are reusable.
The advantages of the RAD Model are as follows −
1. Changing requirements can be accommodated.
2. Progress can be measured.
3. Iteration time can be short with use of powerful RAD tools.
4. Productivity with fewer people in a short time.
5. Reduced development time.
6. Increases reusability of components.
7. Quick initial reviews occur.
8. Encourages customer feedback.
9. Integration from the very beginning solves a lot of integration
issues.

The disadvantages of the RAD Model are as follows −


1. Dependency on technically strong team members for identifying
business requirements.
2. Only systems that can be modularized can be built using RAD.
3. Requires highly skilled developers/designers.
4. High dependency on modeling skills.
5. Inapplicable to cheaper projects as cost of Modeling and
automated code generation is very high.
6. Management complexity is more.
7. Suitable for systems that are component based and scalable.
8. Requires user involvement throughout the life cycle.

Evolutionary Process Models

● Evolutionary models are iterative type models.


● They allow developers to develop more complete versions of the
software.

Evolutionary models are useful in many cases. Two most important


cases are mentioned below;

1. It is very useful in a large project where you can easily find a


module for step by step implementation. The evolutionary model is
used when the users need to start using the many features instead
of waiting for the complete software.
2. The evolutionary model is also very useful in object-oriented
software development because all the development is divided into
different units.
Evolutionary models have basic two models namely prototyping and
spiral model.
1. The Prototyping model

Prototype is a working model of software with some limited


functionality. A prototype gives the user an actual view and feel of the
system. Prototyping is used when requirements are not well understood.

● Prototype is defined as the first or preliminary form using which


other forms are copied or derived.
● Prototype model is a set of general objectives for software.
● It does not identify the requirements like detailed input, output.
● In this model, working programs are quickly produced.

The different phases of Prototyping model are:

1. Communication
In this phase, developer and customer meet and discuss the overall
objectives of the software.

2. Quick design

● Quick design is implemented when requirements are known.


● It includes only the important aspects like input and output format
of the software.
● It focuses on those aspects which are visible to the user rather than
the detailed plan.
● It helps to construct a prototype.

3. Modeling quick design

● This phase gives a clear idea about the development of software


because the software is now built.
● It allows the developer to better understand the exact
requirements.

4. Construction of prototype

The prototype is evaluated by the customer itself. Their comments


will be used to refine requirements.

5. Deployment, delivery, feedback

● If the user is not satisfied with the current prototype then it refines
according to the requirements of the user.
● The process of refining the prototype is repeated until all the
requirements of users are met.
● When the users are satisfied with the developed prototype then the
system is developed on the basis of the final prototype.

Advantages of Prototyping Model

● Prototype model need not know the detailed input, output,


processes, adaptability of the operating system and full machine
interaction.
● In the development process of this model users are actively
involved.
● The development process is the best platform to understand the
system by the user.
● Errors are detected much earlier.
● Gives quick user feedback for better solutions.
● It identifies the missing functionality easily. It also identifies the
confusing or difficult functions.

Disadvantages of Prototyping Model:

● The client involvement is more and it is not always considered by


the developer.
● It is a slow process because it takes more time for development.
● Many changes can disturb the rhythm of the development team.
● It is a thrown away prototype when the users are confused with it.

Spiral Model

The spiral model, initially proposed by Boehm, is an evolutionary


software process model that couples the iterative feature of prototyping
with the controlled and systematic aspects of the linear sequential model.
It implements the potential for rapid development of new versions of the
software.
Using the spiral model, the software is developed in a series of
incremental releases.
During the early iterations, the additional release may be a paper model
or prototype.
During later iterations, more and more complete versions of the
engineered system are produced.
Different phases in spiral model are

1. Communication: tasks required to establish effective


communication between developer and customer.
2. Planning: tasks required to define resources, timelines and other
project related information.
3. Risk Analysis: tasks required to assess both technical and
management risks.
4. Engineering: tasks required to build one or more representations of
the application.
5. Construction and release: tasks required to construct, test, install
and provide user support.(documentation, training)
6. Customer Evaluation: tasks required to obtain customer feedback
based on evaluation of the software representations created during
the engineering stage and implemented during the installation
stage.

Advantages of Spiral Model

● It reduces a high amount of risk.


● It is good for large and critical projects.
● It gives strong approval and documentation control.
● In the spiral model, the software is produced early in the life cycle
process.

Disadvantages of Spiral Model

● It can be costly to develop a software model.


● It is not used for small projects.

Concurrent Models
● The concurrent development model is called a concurrent model.
● The communication activity has completed in the first iteration
and exits in the awaiting changes state.
● The modeling activity completed its initial communication and
then went to the underdevelopment state.
● If the customer specifies the change in the requirement, then the
modeling activity moves from the under development state into
the awaiting change state.
● The concurrent process model activities moving from one state to
another state.
Advantages of the concurrent development model

● This model is applicable to all types of software development


processes.
● It is easy for understanding and use.
● It gives immediate feedback from testing.
● It provides an accurate picture of the current state of a project.

Disadvantages of the concurrent development model

● It needs better communication between the team members. This


may not be achieved all the time.
● It requires us to remember the status of the different activities.

The Unified Process

● Unified process (UP) is an architecture centric, use case driven,


iterative and incremental development process. UP is also referred
to as the unified software development process.
● The Unified Process recognizes the importance of customer
communication and streamlined methods for describing the
customer’s view of a system. It emphasizes the important role of
software architecture and “helps the architect focus on the right
goals, such as understandability, reliance on future changes, and
reuse”.
● It suggests a process flow that is iterative and incremental,
providing the evolutionary feel that is essential in modern
software development.

Key Characteristics of the Unified Process:

1. It is an iterative and incremental development framework.


2. It is architecture-centric with major work being done to define and
validate an architectural design for most coding.
3. It is risk-focused and emphasizes that highest risk factors be
addressed in the earliest deliverable possible.
4. It is a use-case and UML model driven with nearly all
requirements being documented in one of those forms.
Various phases in Unified Process are as:

1. Inception Phase:
● The inception phase of the UP encompasses both customer
communication and planning activities.
● By collaborating with stakeholders, business requirements for the
software are identified; a rough architecture for the system is
proposed; and a plan for the iterative, incremental nature of the
ensuing project is developed.
2. The elaboration phase
● The elaboration phase encompasses the communication and
modeling activities of the generic process model.
● Elaboration refines and expands the preliminary use cases that
were developed as part of the inception phase and expands the
architectural representation to include five different views of the
software the use case model, the requirements model, the design
model, the implementation model, and the deployment model.
● Elaboration creates an “executable architectural baseline” that
represents a “first cut” executable system.
3. Construction phase
● The construction phase of the UP is identical to the construction
activity defined for the generic software process. Using the
architectural model as input, the construction phase develops or
acquires the software components that will make each use case
operational for end users.
● To accomplish this, requirements and design models that were
started during the elaboration phase are completed to reflect the
final version of the software increment.
● All necessary and required features and functions for the software
increment (the release) are then implemented in source code.

4. Transition phase

● The transition phase of the UP encompasses the latter stages of the


generic construction activity and the first part of the generic
deployment (delivery and feedback) activity.
● Software is given to end users for beta testing and user feedback
reports both defects and necessary changes.
● At the conclusion of the transition phase, the software increment
becomes a usable software release.

5. Production phase

● The production phase of the UP coincides with the deployment


activity of the generic process.
● During this phase, the ongoing use of the software is monitored,
support for the operating environment (infrastructure) is provided,
and defect reports and requests for changes are submitted and
evaluated.
● It is likely that at the same time the construction, transition, and
production phases are being conducted, work may have already
begun on the next software increment.
● This means that the five UP phases do not occur in a sequence, but
rather with staggered concurrency.

You might also like