Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
54 views79 pages

Software Engineering Process Models Overview

The document provides an overview of software engineering, including definitions, application domains, and various process models such as Waterfall, V-Model, Incremental, Evolutionary, Spiral, Concurrent, and Agile. It discusses the importance of structured approaches in software development, highlighting the Capability Maturity Model (CMM) and the significance of different phases and activities in the software process. Each model is evaluated for its advantages and disadvantages, emphasizing the need for appropriate selection based on project requirements and complexity.

Uploaded by

23krishjain
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)
54 views79 pages

Software Engineering Process Models Overview

The document provides an overview of software engineering, including definitions, application domains, and various process models such as Waterfall, V-Model, Incremental, Evolutionary, Spiral, Concurrent, and Agile. It discusses the importance of structured approaches in software development, highlighting the Capability Maturity Model (CMM) and the significance of different phases and activities in the software process. Each model is evaluated for its advantages and disadvantages, emphasizing the need for appropriate selection based on project requirements and complexity.

Uploaded by

23krishjain
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

Unit - 1

Introduction to Software
Engineering and Process models
Software – A problem solving tool
►Software is a set of instructions, data or programs
used to operate computers and execute specific
tasks.
►Examples: Office suites, database programs, web
browsers, word processors, software development
tools, image editors and communication platforms.
►Work Product: It is a beginning stage of the
project. It is computer program that run on specific
environment and provide service to end users.
Software Application Domain
1. System software
2. Application software
3. Engineering / scientific software
4. Embedded software
5. Product-line software
6. Web / Mobile application
7. Artificial intelligence software
Software Engineering – Evolution of software

product
►It is the application of a systematic, disciplined,
quantifiable approach to the development,
operation, and maintenance of software.
►It includes the development and building of
computer systems software and application
software.
Software Engineering – A layered technology.
► Quality focus layer – a bedrock that supports software
engineering
► Process layer – a foundation of software engineering that
enables rational and timely development of software
► Methods – An array of task for building software
► Tools – Automated or semi-automated support for the process
and methods.
Software process
►A process is a collection of activities, actions,
and tasks that are performed when some work
product is to be created.
►It is an adaptable approach that enables software
team to choose appropriate set of actions and
tasks.
►Intent is to deliver the software in a timely
manner.
Process framework
► It establishes the foundation for a complete software
engineering process by identifying a small number of
framework activities that are applicable to all software
projects, regardless of their size or complexity.
► It
encompasses five activities: Communication, Planning,
Modelling, Construction and Deployment.
► These five generic framework activities can be used
during the development of small, simple programs, the
creation of Web applications and for the engineering of
large, complex computer-based systems.
Process framework activities
1. Communication
2. Planning
3. Modelling
4. Construction
5. Deployment
Umbrella activities

► Umbrella activities are applied throughout a software


project.
► It helps a software team to manage and control
progress, quality, change, and risk.
► Typical umbrella activities include: Software project
tracking and control, Risk management, Software
quality assurance, Technical reviews, reusability
management and work product preparation &
production
Software process
framework
Process flow
Process flow
Capability Maturity Model (CMM)
► CMM was developed by the Software Engineering Institute
(SEI) at Carnegie Mellon University in 1987.
► It is a framework which is used to analyze the approach and
techniques followed by any organization to develop
software products.
► It provides guidelines to develop software product but it is
not a process model.
► This model describes a strategy for software process
improvement that should be followed by moving through 5
different levels.
The Five Maturity Levels of CMM
►A maturity level is a well-defined evolutionary
plateau toward achieving a mature software
process.
► These five levels define a scale to measure the
maturity of software process and to evaluate the
capability of these processes.
► Each maturity level consist of a set of process goals
The Five Maturity Levels of CMM
1. Initial: Processes are
unpredictable, poorly controlled
and reactive.
2. Repeatable: Processes are
planned, documented,
performed, monitored and
controlled at project level.
3. Defined: Processes are well
characterized and understood.
Processes, procedure and tools
are defined at organization level.
The Five Maturity Levels of CMM
4. Managed: Processes are
controlled using statistical and
other quantitative techniques.
5. Optimizing: Process performance
is improved through incremental
and innovative technological
improvement.
Prescriptive Process Models
►A process model provides a specific roadmap for software
engineering work.
► Prescriptive process models are sometimes referred to as
“traditional” process models.
► Itdefines the flow of all activities, actions and tasks, the
degree of iteration, the work products, and the organization
of the work that must be done.
►A prescriptive process model strives for structure and order
in software development. Activities and tasks occur
sequentially with defined guidelines for progress.
1. Waterfall Model
► Thewaterfall model is also called as 'Linear sequential
model' or 'Classic life cycle model’.
1. Waterfall Model
► Alternative representation of this model is:
1. Waterfall Model
Advantages of waterfall model
• It is simple and easy to understand, implement, and use.
• All the requirements are known at the beginning of the
project, hence it is easy to manage.
• It avoids overlapping of phases because each phase is
completed at once.
• This model works for small projects because the requirements
are understood very well.
• This model is preferred for those projects where the quality is
more important as compared to the cost of the project.
1. Waterfall Model
Disadvantages of the waterfall model
• This model is not good for complex and object oriented
projects.
• It is a poor model for long projects.
• The problems with this model are uncovered, until the
software testing.
• The amount of risk is high.

The linear sequential model is the oldest and the most


widely used paradigm for software engineering.
2. V-Model
►A variation in the representation of the waterfall model is
called the V-model.
► It provides a way of visualizing how verification and
validation actions are applied to engineering work.
► V-Model also referred to as the Verification and
Validation Model.
► In this, each phase of SDLC must complete before the next
phase starts. It follows a sequential design process same as the
waterfall model.
2. V-Model
► In this, testing of the
device is planned in
parallel with a
corresponding stage
of development.
► Verification and
Validation process is
joined by coding
phase in V-shape.
Thus it is known as
V-Model.
2. V-Model
► 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.
2. V-Model
The various phases of Verification Phase of V-model:
1. Business requirement analysis
2. System Design
3. Architecture Design
4. Module Design
5. Coding Phase
2. V-Model
The various phases of Validation Phase of V-model:
1. Unit Testing: Unit Test Plans (UTPs) are developed during the module
design phase. These UTPs are executed to eliminate errors at code level or
unit level.
2. 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.
3. System Testing: System Tests Plans are developed during System Design
Phase. System Tests Plans are composed by the clients business team.
System Test ensures that expectations from an application developer are
met.
4. Acceptance Testing: Acceptance testing is related to the business
requirement analysis. 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.
2. V-Model
Advantage of V-Model:
1. Easy to Understand.
2. Testing Methods like planning, test designing
happens well before coding.
3. This saves a lot of time. Hence a higher chance of
success over the waterfall model.
4. Avoids the downward flow of the defects.
5. Works well for small plans where requirements are
easily understood.
2. V-Model
Disadvantage of V-Model:
1. Not a good for a complex project.
2. Software is developed during the implementation
stage, so no early prototypes of the software are
produced.
3. If any changes happen in the midway, then the test
documents along with the required documents, has
to be updated.
4. Costly and required more time, in addition to a
detailed plan
2. V-Model
When to use V-Model?
• When the requirement is well defined and
known.
• This model should be used for small to medium-
sized projects where requirements are clearly
defined and fixed.
• This model should be chosen when sample
technical resources are available with essential
technical expertise.
3. Incremental Process Model
► The incremental model delivers a series of releases, called
increments, that provide progressively more functionality for the
customer as each increment is delivered.
► It is also know as Successive version model.

► A, B, C are modules of Software Product that are incrementally


developed and delivered.
3. Incremental Process Model
3. Incremental Process Model
This process model is used when :
• Requirements of the system are clearly understood
• When demand for an early release of a product arises
• When software engineering team are not very well
skilled or trained
• When high-risk features and goals are involved
3. Incremental Process Models
Advantages:
• The software will be generated quickly during the
software life cycle
• It is flexible and less expensive to change
requirements and scope
• Throughout the development stages changes can be
done
• A customer can respond to each building.
3. Incremental Process Models

Disadvantages:
• Requires good planning and design.
• Well defined module interfaces are required.
• Total Cost is high.
Evolutionary Process model
► Evolutionarymodel is a combination of Iterative
and Incremental model of software development
life cycle.
► Evolutionary models are iterative type models.
► They allow to develop more complete versions of
the software.
► Itis normally useful for very large products, where
it is easier to find modules for incremental
implementation.
Evolutionary Process model
Following are the evolutionary process models.
1. The prototyping model
2. The spiral model
1. Prototyping model
The prototyping paradigm begins with communication.
1. Prototyping model

1. Communication
2. Quick Design
3. Modeling quick design
4. Construction of prototype
5. Deployment, delivery , feedback
1. Prototyping model
Advantages:
• Prototype model need not know the detailed input,
output, processes, adaptability of operating system and
full machine interaction.
• Users are actively involved in development process .
• Errors are detected much earlier.
• Gives quick user feedback for better solutions.
• It identifies the missing functionality easily.
1. Prototyping model
Disadvantages:
• 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.
2. Spiral model
► Originally proposed by Barry Boehm, the spiral model is an
evolutionary software process model that couples the
iterative nature of prototyping with the controlled and
systematic aspects of the waterfall model.
► It provides the potential for rapid development of
increasingly more complete versions of the software.
► Using the spiral model, software is developed in a series
of releases. During early iterations, the release might be a
model or prototype. During later iterations, increasingly more
complete versions of the engineered system are produced.
2. Spiral model
► The spiral model has five phases. A software project repeatedly
passes through these phases in iterations called Spirals.
2. Spiral model
►A spiral model is divided into a set of framework
activities defined by the software engineering team.
Each framework activities represent one segment of
the spiral path.
► It provides support for Risk Handling.
► The Spiral model is called as a Meta Model because it
subsumes all the other SDLC models.
► Itis a realistic approach to the development of large-
scale systems and software.
2. Spiral model
Spiral Model is used when:
• When deliverance is required to be frequent.
• When the project is large and have high budget
• When requirements are unclear and complex
• When changes may require at any time
2. Spiral model
Advantages:
• It reduces high amount of risk.
• It is good for large and critical projects.
• It gives strong approval and documentation control.
• In spiral model, the software is produced early in the life cycle
process.
Disadvantages:
• It can be costly to develop a software model.
• It is not used for small projects.
The concurrent model
► The concurrent development model is also called
as called concurrent engineering.
► Itallows a software team to represent iterative
and concurrent elements of any of the process
models.
► The concurrent model is often more appropriate
for product engineering projects where different
engineering teams are involved.
The concurrent model
The concurrent model
► The modeling activity completed its initial
communication and then go to the under development
state.
► Ifthe customer specifies the change in the requirement,
then the modeling activity moves from the under
development state into awaiting change state.
► During early stage of requirement, if inconsistency in
requirement model is uncovered then it will trigger the
requirements analysis action from the done state into the
awaiting changes state.
The concurrent model
► Concurrent modeling defines a series of events that will
trigger transitions from state to state for each of the
software engineering activities, actions, or tasks.
► Itis applicable to all types of software development and
provides an accurate picture of the current state of a
project.
The concurrent model
Advantages:
• 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.
The concurrent model
Disadvantages:
• It needs better communication between the
team members. This may not be achieved all
the time.
• It requires to remember the status of the
different activities.
Agility
► Agilityis the ability to both create and respond to
change in order to profit in a turbulent business
environment.
► Agilityis dynamic, content specific, aggressively change
embracing, and growth oriented.
► It helps software team provide quick and unpredictable
responses to the feedback that they receive on their
project.
Agile Process
► Agile process refers to a software development approach
based on iterative development.
► Agile methods break tasks into smaller iterations or parts
do not directly involve long term planning.
► Each iteration is considered as a short time "frame" in
the Agile process model, which typically lasts from one
to four weeks.
► The division of the entire project into smaller parts helps
to minimize the project risk and to reduce the overall
project delivery time requirements.
Agile Process

► An agile process
reduces the cost of
change because
software is released
in increments and
change can be better
controlled within an
increment.
Agile Process Model phases
1. Requirements gathering: In this phase, you must
define the requirements, explain business opportunities,
plan the time and effort needed to build the project.
2. Design the requirements: In this, You can use the user
flow diagram or the high-level UML diagram to show
the new features and show how it will apply to your
existing system.
3. Construction: When the team defines the requirements,
the work begins. Designers and developers start working
on their project, which aims to deploy a working
product.
Agile Process Model phases

4. Testing: In this, the Quality Assurance team


examines the product's performance and looks for the
bug.
5. Deployment: In this phase, the team issues a product
for the user's work environment.
6. Feedback: After releasing the product, the last step is
feedback. In this, the team receives feedback about
the product and works through the feedback.
Agile Process Model

Agile Model can be used when:


• When frequent changes are required.
• When a highly qualified and experienced team is
available.
• When a customer is ready to have a meeting with a
software team all the time.
Agile Process Model
Benefits of using agile model is summarized as follows:
1. Frequent Delivery
2. Face-to-Face Communication with clients.
3. Efficient design and fulfils the business requirement.
4. Anytime changes are acceptable.
5. It reduces total development time.
6. It allows for a greater level of control around the
software that is delivered.
Agile principles
1. Satisfy the customer through early and continuous
delivery
2. Welcome changing requirements, even late in
development
3. Deliver working software frequently
4. Business people and developers must work together
daily throughout the project
5. Build projects around motivated individuals
6. Face-to-face conversations
Agile principles
7. Working software is the primary measure of progress
8. Agile processes promote sustainable development
9. Continuous attention to technical excellence and
good design enhances agility
10. Simplicity
11. Self-organizing teams
12. Adjust ways of working in regular intervals to be
more effective
Extreme Programming (XP)
► It is the most widely used approach to agile
software development.
► XP is a lightweight, efficient, low-risk, flexible,
predictable, scientific, and fun way to develop a
software.
► This type of methodology is used when customers
are constantly changing demands or requirements,
or when they are not sure about the system's
performance.
The XP Process

XP contains a set
of rules and
practices that occur
within the context
of four framework
activities:
Planning, Design,
Coding, Testing
The XP Process
Key XP activities are summarized as follow:
1. Planning: In this, the customer meets the
development team and presents
the requirements in the form of user stories to
describe the desired result. The team then
estimates the stories and creates a release plan
broken down into iterations. If one or more of the
stories can’t be estimated, so-called spikes can be
introduced which means that further research is
needed.
The XP Process
2. Design: XP encourages the use of CRC cards
which identify and organize the object oriented
classes that are relevant to the current software
increment. If a difficult design problem is
encountered as part of the design of a story, XP
recommends the immediate creation of an
operational prototype of that portion of the
design. Called a spike solution, the design
prototype is implemented and evaluated.
The XP Process
3. Coding: A key concept during the coding activity is pair
programming. XP recommends that two people work
together at one computer workstation to create code for
a story. This provides a mechanism for real-time
problem solving and real-time quality assurance.
4. Testing: The unit tests that are created should be
implemented using a framework that enables them to be
automated. XP acceptance tests, also called customer
tests, are specified by the customer and focus on overall
system features and functionality that are visible and
reviewable by the customer.
Scrum

► SCRUM is an agile development process focused


primarily on ways to manage tasks in team-based
development conditions.
► Scrum is broken into small consistent time intervals
called Sprint.
► Sprint can be as short as a few days and generally no
longer than 3 – 4 weeks.
Scrum Framework

Roles
•Product owner
•Scrum Master
•Team Ceremonies
•Sprint planning
•Sprint review
•Daily scrum meeting

Artifacts
•Product backlog
•Sprint backlog
Scrum Roles
Product Owner
► Possibly a Product Manager or Project Sponsor
► Decides features, release date, prioritization, $$$

Scrum Master
► Typically a Project Manager or Team Leader
► Responsible for enacting Scrum values and practices
► Remove impediments / politics, keeps everyone productive

Project Team
► 5-10 members; Teams are self-organizing
► Cross-functional: QA, Programmers, UI Designers, etc.
► Membership should change only between sprints
Scrum
There are three roles in it, and their responsibilities are:
• Scrum Master: The scrum can set up the master
team, arrange the meeting and remove obstacles for
the process
• Product owner: The product owner makes the
product backlog, prioritizes the delay and is
responsible for the distribution of functionality on
each repetition.
• Scrum Team: The team manages its work and
organizes the work to complete the sprint or cycle.
Scrum meeting
► Scrum meetings are short (typically 15-minute)
meetings held daily by the Scrum team.
► Scrum meeting helps the team to uncover potential
problems as early as possible.
► Three key questions are asked and answered by all
team members:
• What did you do since the last team meeting?
• What obstacles are you encountering?
• What do you plan to accomplish by the next team
meeting?
Kanban model
► Kanban - which is the Japanese word for
“billboard” - was developed by Toyota in the
1940s.
► Agile Kanban is Agile Software Development
with Kanban approach.
► In Agile Kanban, Kanban board is used to
depict the flow of tasks across the value stream.
Kanban model
► The Kanban board −
• Provides easy access to everyone involved in the
project.
• Facilitates communication as and when necessary.
• Progress of the tasks are visually displayed.
• Bottlenecks are visible as soon as they occur.
► Today, kanban boards are used in nearly every
industry, most notably software development.
Kanban model
The aim is to
control and
manage the flow of
features
(represented by
Kanban cards) so
that the number of
features entering
the process
matches those
being completed.
[Link]

You might also like