0% found this document useful (0 votes)
23 views63 pages

Chapter 2

Uploaded by

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

Chapter 2

Uploaded by

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

Fundamental of Software Engineering

SOEng2051

Chapter 2:Software processes & Software Process


models

12/28/2024 1

Department of Software Engineering


Outline
 Software process
 Process activities
 Software process models
 Coping with change
 Rational Unified Process

12/28/2024 2
Objectives
• The objective of this chapter is to introduce you to the idea of a software
process- a coherent set of activities for software production.
After this chapter you will:
• Understand the concepts of software processes and software process
models;
• Have been introduced some generic software process models and when
they might be used;
• Know about the fundamental process activities of software
requirements engineering, software development, testing, and
evolution
• Understand why processes should be organized to cope with changes in
the software requirements and design.
• Understand
12/28/2024 how the Rational Unified Process integrates good software 3

engineering practice to create adaptable software processes


Software Processes
• The set of activities and associated outcome that produce a software
product.
• Software engineers mostly carry out these activities.
• These are four key process activities(high level), which are common to
all software processes. These are:
• Software specification
• Software development
• Software validation
• Software evolution

12/28/2024 4
Software specifications
• The functionality of the software and constraints on its operation must be
defined.
• Detailed description of a software system to be developed with its
functional and non-functional requirements.
Software development
• The software to meet the requirement must be produced.
• Designing, programming, documenting, testing, and bug fixing is done.

Software validation
• The software must be validated to ensure that it does what the customer
wants.
• Evaluation software product is done to ensure that the software meets the business
requirements and users needs.
12/28/2024 5

Software evolution: The software must evolve to meet changing


client needs.
Software Process Model
• A software process model is an abstraction of the actual process, which
is being described.
• a simplified representation of a software process.
• Each model represents a process from a specific perspective.
• There are several various general models or paradigms of software
development
• Waterfall Model • Incremental
• RAD Model Model
• Spiral Model • Iterative Model
• V-Model • Big-bang Model
• Prototype Model • Agile Model

12/28/2024 6
Software Development Life Cycle
• Referred to as SDLC.
• Also termed process model is a pictorial and diagrammatic
representation of the software life cycle.
• A life cycle model represents all the methods required to make a
software product transit through its life cycle stages.
• It also captures the structure in which these methods are to be
undertaken.
• Defines the general steps that are take to build software
• Defines the responsibilities for team member during each step of
phase.
• Some of these steps may overlap, but generally define the phase of
the projects.
12/28/2024 7
• If the steps are not successful the project may fall back to an earlier
steps
SDLC Cycle
• SDLC Cycle represents the process of developing software.
• SDLC framework includes the following steps:
• Requirement analysis
• Defining
• Designing
• Coding
• Testing
• Deployment
• Maintenance

12/28/2024 8
Requirement analysis
• Requirement Analysis is the most important and necessary stage in
SDLC.
• The senior members of the team perform it with inputs from all the
stakeholders and domain experts.
• Planning for the quality assurance requirements and identifications
of the risks associated with the projects is also done at this stage.
• Business analyst and Project organizer set up a meeting with the
client to gather all the data like what the customer wants to
build, who will be the end user, what is the objective of the
product.
• Before creating a product, a core understanding or knowledge of
the product is very necessary.
12/28/2024 9
• For Example: A client wants to have an application which concerns
money transactions.
• In this method, the requirement has to be precise like what kind of
operations will be done, how it will be done, in which currency it will be
done, etc.
• Once the required function is done, an analysis is complete with
auditing the feasibility of the growth of a product.
• In case of any ambiguity, a signal is set up for further discussion.
• Once the requirement is understood, the SRS (Software
Requirement Specification) document is created.
• The developers should thoroughly follow this document and also
should be reviewed by the customer for future reference
12/28/2024 10
Defining Requirements
• Once the requirement analysis is done, the next stage is to
certainly represent and document the software requirements and
get them accepted from the project stakeholders.
• This is accomplished through "SRS"- Software Requirement
Specification document which contains all the product
requirements to be constructed and developed during the project
life cycle.

12/28/2024 11
Designing the Software
• The next phase is about to bring down all the knowledge of
requirements, analysis, and design of the software project. This
phase is the product of the last two, like inputs from the customer
and requirement gathering.

12/28/2024 12
Developing the project
• In this phase of SDLC, the actual development begins, and the
programming is built.
• The implementation of design begins concerning writing code.
• Developers have to follow the coding guidelines described by their
management and programming tools like compilers, interpreters,
debuggers, etc. are used to develop and implement the code.

12/28/2024 13
Testing
• After the code is generated, it is tested against the requirements to
make sure that the products are solving the needs addressed and
gathered during the requirements stage.
• During this stage, unit testing, integration testing, system
testing, acceptance testing is done.
Deployment
• Once the software is certified, and no bugs or errors are stated,
then it is deployed.
• Then based on the assessment, the software may be released as it
is or with suggested enhancement in the object segment. After the
software is deployed, then its maintenance begins.
12/28/2024 14
Maintenance
• Once when the client starts using the developed systems, then the
real issues come up and requirements to be solved from time to
time.
• This procedure where the care is taken for the developed product is
known as maintenance.

12/28/2024 15
Software process model||Waterfall model
• This model has five phases: Requirements analysis and specification,
design, implementation and unit testing, integration and system
testing, and operation and maintenance.
• The steps always follow in this order and do not overlap.
• The developer must complete every phase before the next phase
begins.
• This why it named Waterfall Model, because its diagrammatic
representation resembles a cascade of waterfalls.

12/28/2024 16
Waterfall model phases

Requirements analysis and specification phase


• The aim of this phase is to understand the exact requirements of
the customer and to document them properly.
• Both the customer and the software developer work together so as
to document all the functions, performance, and interfacing
requirement of the software.
• It describes the what of the system to be produced and not how.
• In this phase, a large document called Software Requirement
Specification (SRS) document is created which contained a
detailed description of what the system will do in the common
language.

12/28/2024 17
Waterfall model phases

Design Phase:
• This phase aims to transform the requirements gathered in the SRS
into a suitable form which permits further coding in a programming
language.
• It defines the overall software architecture together with high level
and detailed design.
• All this work is documented as a Software Design Document (SDD).

12/28/2024 18
Waterfall model phases

Implementation and unit testing:


• During this phase, design is implemented.
• If the SDD is complete, the implementation or coding phase
proceeds smoothly, because all the information needed by software
developers is contained in the SDD.
• During testing, the code is thoroughly examined and modified.
• Small modules are tested in isolation initially.
• After that these modules are tested by writing some overhead
code to check the interaction between these modules and the flow
of intermediate output.

12/28/2024 19
Waterfall model phases

Integration and System Testing:


• This phase is highly crucial as the quality of the end product is
determined by the effectiveness of the testing carried out.
• The better output will lead to satisfied customers, lower
maintenance costs, and accurate results.
• Unit testing determines the efficiency of individual modules.
However, in this phase, the modules are tested for their
interactions with each other and with the system.

12/28/2024 20
Waterfall model phases

Operation and maintenance phase: Maintenance is the task


performed by every user once the software has been delivered to the
customer, installed, and operational.
Discus
 When to use SDLC Waterfall Model?
 Advantages of Waterfall model?
 Disadvantages of Waterfall model?

12/28/2024 21
When to use SDLC Waterfall Model?
• Some Circumstances where the use of the Waterfall model is most
suited are:
• When the requirements are constant and not changed regularly.
• A project is short
• The situation is calm
• Where the tools and technology used is consistent and is not
changing
• When resources are well prepared and are available to use.

12/28/2024 22
Advantages of Waterfall model
• Simple to implement
• Number of resources that are required for it is minimal.
• The requirements are simple and explicitly declared;
• Requirements are remain unchanged during the entire project
development.
• The start and end points for each phase is fixed, which makes it
easy to cover progress.
• The release date for the complete product, as well as its final cost,
can be determined before development.
• It gives easy to control and clarity for the customer due to a strict
reporting system.
12/28/2024 23
Disadvantage of waterfall model
• The risk factor is higher, so this model is not suitable for more
significant and complex projects.
• This model cannot accept the changes in requirements during
development.
• It becomes dangerous to go back to the phase. For example, if the
application has now shifted to the coding phase, and there is a
change in requirement, It becomes tough to go back and change it.
• Since the testing done at a later stage, it does not allow identifying
the challenges and risks in the earlier phase, so the risk reduction
strategy is difficult to prepare.

12/28/2024 24
Software process model||RAD Model
• What is RAD?
• List and describe phase of RAD
• When to use RAD
• Pros and cons of RAD
• reading assignment [including in any means of questions]…

12/28/2024 25
Software process model|| Spiral Model
• It 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.

12/28/2024 26
Spiral Model

Each cycle in the spiral is divided into four parts:


12/28/2024 27
Four parts of spiral model

Objective setting:
• Each cycle in the spiral starts with the identification of purpose for
that cycle, the various alternatives that are possible for achieving the
targets, and the constraints that exists.
Risk Assessment and reduction:
• The next phase in the cycle is to calculate these various alternatives
based on the goals and constraints. The focus of evaluation in this
stage is located on the risk perception for the project.
• Development and validation:
The next phase is to develop strategies that resolve uncertainties and
risks. This process may include activities such as benchmarking,
simulation, and prototyping.
12/28/2024 28
Four parts of spiral model

Planning:
• Finally, the next step is planned. The project is reviewed, and a
choice made whether to continue with a further period of the spiral.
If it is determined to keep, plans are drawn up for the next step of
the project.

• The development phase depends on the remaining risks. For


example, if performance or user-interface risks are treated more
essential than the program development risks, the next phase may
be an evolutionary development that includes developing a more
detailed prototype for solving the risks.

12/28/2024 29
…continue
• The risk-driven feature of the spiral model allows it to
accommodate any mixture of a specification-oriented, prototype-
oriented, simulation-oriented, or another type of approach.
• An essential element of the model is that each period of the spiral
is completed by a review that includes all the products developed
during that cycle, including plans for the next cycle.
• The spiral model works for development as well as enhancement
projects.

12/28/2024 30
When to use Spiral Model?
• When deliverance is required to be frequent.
• When the project is large
• When requirements are unclear and complex
• When changes may require at any time
• Large and high budget projects

12/28/2024 31
Advantages and disadvantages of spiral
model
Advantages
• High amount of risk analysis
• Useful for large and mission-critical
projects.

Disadvantages
• Can be a costly model to use.
• Risk analysis needed highly particular
expertise
• Doesn't work well for smaller projects.

12/28/2024 32
Software process model|| V-Model
• V-Model also referred to as the Verification and Validation Model.
• Each phase of SDLC must complete before the next phase starts.
• It follows a sequential design process same as the waterfall model.
• Testing of the device is planned in parallel with a corresponding
stage of development.

12/28/2024 33
…continue
• Verification: It involves a static analysis method (review) done
without executing code.
• It is the process of evaluation of the product development process to
find whether specified requirements meet.
• Validation: It involves dynamic analysis method (functional, non-
functional), testing is done by executing code. Validation is the
process to classify the software after the completion of the
development process to determine whether the software meets the
customer expectations and requirements.
• So V-Model contains Verification phases on one side of the Validation
phases on the other side. Verification and Validation process is joined
by coding phase in V-shape. Thus it is known as V-Model.
12/28/2024 34
Verification Phase of V-model
• Business requirement analysis: This is the first step where
product requirements understood from the customer's side. This
phase contains detailed communication to understand customer's
expectations and exact requirements.
• System Design: In this stage system engineers analyze and
interpret the business of the proposed system by studying the user
requirements document.
• Architecture Design: The baseline in selecting the architecture is
that it should understand all which typically consists of the list of
modules, brief functionality of each module, their interface
relationships, dependencies, database tables, architecture
diagrams, technology detail, etc. The integration testing model is
carried
12/28/2024 out in a particular phase. 35
Verification Phase of V-model
• Module Design: In the module design phase, the system breaks
down into small modules. The detailed design of the modules is
specified, which is known as Low-Level Design
• Coding Phase: After designing, the coding phase is started. Based
on the requirements, a suitable programming language is decided.
There are some guidelines and standards for coding.
• Before checking in the repository, the final build is optimized for
better performance, and the code goes through many code reviews
to check the performance.

12/28/2024 36
Validation Phase of V-model
• Unit Testing: In the V-Model, Unit Test Plans (UTPs) are developed
during the module design phase. These UTPs are executed to
eliminate errors at code level or unit level. A unit is the smallest
entity which can independently exist, e.g., a program module. Unit
testing verifies that the smallest entity can function correctly when
isolated from the rest of the codes/ units.
• Integration Testing: Integration Test Plans are developed during
the Architectural Design Phase. These tests verify that groups
created and tested independently can coexist and communicate
among themselves.

12/28/2024 37
Validation Phase of V-model
• System Testing: System Tests Plans are developed during System
Design Phase. Unlike Unit and Integration Test Plans, System Tests
Plans are composed by the client? Business team. System Test
ensures that expectations from an application developer are met.
• Acceptance Testing: Acceptance testing is related to the business
requirement analysis part. It includes testing the software product
in user atmosphere. Acceptance tests reveal the compatibility
problems with the different systems, which is available within the
user atmosphere. It conjointly discovers the non-functional
problems like load and performance defects within the real user
atmosphere.

12/28/2024 38
When to use V-Model?
• When the requirement is well defined and not ambiguous.
• The V-shaped model should be used for small to medium-sized
projects where requirements are clearly defined and fixed.
• The V-shaped model should be chosen when sample technical
resources are available with essential technical expertise.

12/28/2024 39
Advantage (Pros) of V-Model:
• Easy to Understand.
• Testing Methods like planning, test designing happens well before
coding.
• This saves a lot of time. Hence a higher chance of success over the
waterfall model.
• Avoids the downward flow of the defects.
• Works well for small plans where requirements are easily
understood.

12/28/2024 40
Disadvantage (Cons) of V-Model
• Very rigid and least flexible.
• Not a good for a complex project.
• Software is developed during the implementation stage, so no early
prototypes of the software are produced.
• If any changes happen in the midway, then the test documents
along with the required documents, has to be updated.

12/28/2024 41
Incremental Model
• Incremental Model is a process of software development where
requirements divided into multiple standalone modules of the
software development cycle.
• Used to break down a project to smaller stages
• 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 achieved.
• Discus
 The various phases of incremental model
 When we use the Incremental Model
 Pros and cons of Incremental Model
12/28/2024 42
The various phases of incremental model

Requirement analysis:
• In the first phase of the incremental model, the product analysis
expertise identifies the requirements. And the system functional
requirements are understood by the requirement analysis team.
• To develop the software under the incremental model, this phase
performs a crucial role.
Design & Development:
• In this phase of the Incremental model of SDLC, the design of the
system functionality and the development method are finished with
success.
• When software develops new practicality, the incremental model uses
style and development phase.
12/28/2024 43

Testing:
• In the incremental model, the testing phase checks the performance
of each existing function as well as additional functionality. In the
testing phase, the various methods are used to test the behaviour of
each task.
Implementation:
• Implementation phase enables the coding phase of the development
system.
• It involves the final coding that design in the designing and
development phase and tests the functionality in the testing phase.
• After completion of this phase, the number of the product working is
enhanced and upgraded up to the final system product
12/28/2024 44
When we use the Incremental Model?
• When the requirements are not clear
• When time is to market is critical.
• A project has a lengthy development schedule.
• When Software team are not very well skilled or trained.
• When the customer demands a quick release of the product.
• You can develop prioritized requirements first.

12/28/2024 45
Pros
• Errors are easy to be recognized.
• Easier to test and debug
• More flexible.
• Simple to manage risk because it handled during its iteration.
• The Client gets important functionality early.

12/28/2024 46
cons
• Need for good planning
• Total Cost is high.
• Well defined module interfaces are needed

12/28/2024 47
Software process model|| Iterative Model
• In this Model, you can start with some of the software specifications
and develop the first version of the software. After the first version
if there is a need to change the software, then a new version of the
software is created with a new iteration. Every release of the
Iterative Model finishes in an exact and fixed period that is called
iteration.

• The Iterative Model allows the accessing earlier phases, in which


the variations made respectively. The final output of the project
renewed at the end of the Software Development Life Cycle (SDLC)
process.

12/28/2024 48
various phases of Iterative model

12/28/2024 49
various phases of Iterative model
• Requirement gathering & analysis: In this phase, requirements
are gathered from customers and check by an analyst whether
requirements will fulfil or not. Analyst checks that need will achieve
within budget or not. After all of this, the software team skips to the
next phase.
• Design: In the design phase, team design the software by the
different diagrams like Data Flow diagram, activity diagram, class
diagram, state transition diagram, etc.
• Implementation: In the implementation, requirements are written in
the coding language and transformed into computer programmes
which are called Software.
• Testing: After completing the coding phase, software testing starts
using
12/28/2024 different test methods. There are many test methods, but the
50

most common are white box, black box, and grey box test methods.
…continue
• Deployment: After completing all the phases, software is deployed
to its work environment.
• Review: In this phase, after the product deployment, review
phase is performed to check the behaviour and validity of the
developed product. And if there are any error found then the
process starts again from the requirement gathering.
• Maintenance: In the maintenance phase, after deployment of the
software in the working environment there may be some bugs,
some errors or new updates are required. Maintenance involves
debugging and new addition options.

12/28/2024 51
When to use the Iterative Model
• When requirements are defined clearly and easy to understand.
• When the software application is large.
• When there is a requirement of changes in future.
Advantage (Pros) of Iterative Model:
• Testing and debugging during smaller iteration is easy.
• A Parallel development can plan.
• It is easily acceptable to ever-changing needs of the project.
• Risks are identified and resolved during iteration.
• Limited time spent on documentation and extra time on designing.

12/28/2024 52
Disadvantage (Cons) of Iterative Model:
• It is not suitable for smaller projects.
• More Resources may be required.
• Design can be changed again and again because of imperfect
requirements.
• Requirement changes can cause over budget.
• Project completion date not confirmed because of changing
requirements.

12/28/2024 53
Coping with change
• Change is inevitable in all large software projects.
• The system requirements change as businesses respond to external
pressures, competition, and changed management priorities.
• As new technologies become available, new approaches to design and
implementation become possible.
• Therefore whatever software process model is used, it is essential that
it can accommodate changes to the software being developed.
• Change adds to the costs of software development because it usually
means that work that has been completed has to be redone.
• This is called rework.

12/28/2024 54
• For example, if the relationships between the requirements in a system
have been analysed and new requirements are then identified, some or
all of the requirements analysis has to be repeated.
• It may then be necessary to redesign the system to deliver the new
requirements, change any programs that have been developed, and
retest the system.
• Two related approaches may be used to reduce the costs of rework:

12/28/2024 55
• Change anticipation, where the software process includes
activities that can anticipate or predict possible changes before
significant rework is required. For example, a prototype system
may be developed to show some key features of the system to
customers. They can experiment with the prototype and refine their
requirements before committing to high software production costs.
• Change tolerance, where the process and software are designed
so that changes can be easily made to the system. This normally
involves some form of incremental development. Proposed changes
may be implemented in increments that have not yet been
developed. If this is impossible, then only a single increment (a
small part of the system) may have to be altered to incorporate the
change.

12/28/2024 56
• In this section, we discuss two ways of coping with change and
changing system requirements:
• System prototyping, where a version of the system or part of the
system is developed quickly to check the customer’s requirements
and the feasibility of design decisions. This is a method of change
anticipation as it allows users to experiment with the system before
delivery and so refine their requirements. The number of
requirements change proposals made after delivery is therefore
likely to be reduced.
• Incremental delivery, where system increments are delivered to
the customer for comment and experimentation. This supports both
change avoidance and change tolerance. It avoids the premature
commitment to requirements for the whole system and allows
changes to be incorporated into later increments at relatively low
cost.
12/28/2024 57

• The notion of refactoring, namely, improving the structure and


organization of a program, is also an important mechanism that
The Rational Unified Process
• Rational Unified Process (RUP) is a software development
process for object-oriented models.
• It is also known as the Unified Process Model.
• It is created by Rational corporation and is designed and
documented using UML (Unified Modelling Language).
• This process is included in IBM Rational Method Composer (RMC)
product.
• IBM (International Business Machine Corporation) allows us to
customize, design, and personalize the unified process.

12/28/2024 58
12/28/2024 59
The Rational Unified Process …cont’d
• RUP is proposed by Ivar Jacobson, Grady Bootch, and James
Rambaugh.
• Some characteristics of RUP include use-case driven, Iterative
(repetition of the process), and Incremental (increase in value) by
nature, delivered online using web technology, can be customized or
tailored in modular and electronic form, etc.
• RUP reduces unexpected development costs and prevents wastage of
resources.
• Phases of RUP :
• Inception –Communication and planning are main.
• Identifies Scope of the project using use-case model allowing
managers to estimate costs and time required.
• Customers
12/28/2024
requirements are identified and then it becomes easy to 60

make a plan of the project.


Phase of RUP

• Project plan, Project goal, risks, use-case model, Project


description, are made.
• Project is checked against the milestone criteria and if it couldn’t
pass these criteria then project can be either cancelled or
redesigned.
• Elaboration:
• Planning and modelling are main.
• Detailed evaluation, development plan is carried out and
diminish the risks.
• Revise or redefine use-case model (approx. 80%), business case,
risks.
•12/28/2024
Again, checked against milestone criteria and if it couldn’t pass 61
these criteria then again project can be cancelled or redesigned.
Phase of RUP
• Construction:
• Project is developed and completed.
• System or source code is created and then testing is done.
• Coding takes place.
• Transition:
• Final project is released to public.
• Transit the project from development into production.
• Update project documentation.
• Beta testing is conducted.
• Defects are removed from project based on feedback from
public.
12/28/2024 62
Phase of RUP
• Production:
• Final phase of the model.
• Project is maintained and updated accordingly.

12/28/2024 63

You might also like