Professional Documents
Culture Documents
3/13/2022
Lecture outlines:
• Software process
• Software process model
• Generic software process models
• Agile development model
3/13/2022
3 Software Process
Process
is a collection of activities, that are performed when some work product is to be
created.
In the context of software engineering, it is an adaptable approach that enables
the people doing the work (the software team) to pick and choose the appropriate
set of work actions and tasks.
Coherent sets of activities for
specifying,
designing,
implementing and testing software systems
3/13/2022
4
Software Process…
3/13/2022
5
Software Process…
3/13/2022
6
Software Process…
3/13/2022
7 Software Process Model
3/13/2022
8 Generic software process models
The waterfall model
Separate and distinct phases of specification and development
Evolutionary development
They are characterized in a manner that enables you to develop
increasingly more complete versions of the software
Formal systems development
A mathematical system model is formally transformed to an
implementation
Reuse-based development
The system is assembled from existing components
3/13/2022
9 Waterfall model
waterfall
3/13/2022
10 Waterfall model
3/13/2022
Waterfall model…
11
Waterfall…
if a fault is found during the design that was caused by a fault in the
requirements
the software developers can backtrack from the design to the requirements and
make the necessary corrections there.
Design activities can now resume where they were suspended when the fault was
discovered
activities can now resume where they were suspended when the fault was
discovered
3/13/2022
Waterfall model…
12
Waterfall…
The drawback of the waterfall model is the difficulty of accommodating change after
the process is underway
Waterfall Model Problems:
Inflexible partitioning of the project into distinct stages
This makes it difficult to respond to changing customer requirements
Therefore, this model is only appropriate when the requirements are well-
understood
3/13/2022
13
Incremental Process Models
process model that is designed to produce the software in increments.
applies linear sequences in a staggered fashion as calendar time
progresses.
Each linear sequence produces deliverable “increments” of the
software
The first increment is often a core product.
basic requirements are addressed but many supplementary features (some
known, others unknown) remain undelivered.
The core product is used by the customer(undergoes detailed evaluation).
As a result of use and/ or evaluation, a plan is developed for the next
increment
The plan addresses the modification of the core product
to better meet the needs of the customer and the delivery of additional features
and functionality
3/13/2022
14 Incremental Process Models…
3/13/2022
15 Incremental Process Models…
Customer value can be delivered with each increment so system functionality
is available earlier
Early increments act as a prototype to help elicit requirements for later
increments
Lower risk of overall project failure
The highest priority system services tend to receive the most testing
3/13/2022
16
Evolutionary Models
you need a process model that has been explicitly designed to
accommodate a product that grows and changes.
Iterative model characterized in a manner that enables you to develop
increasingly more complete versions of the software.
Used situations where requirements is well understood, but the details of
product or system extensions have yet to be defined.
3/13/2022
17 Evolutionary Models…
Prototyping
Used in situations such as
when customers define the general objective of the software which needs
further explanation
When the developers are not sure on the efficiency of
methods(algorithms) they use
It can be applied on other models such as incremental(in each
increment)
assists you and other stakeholders to better understand what is to be
built when requirements are unclear
3/13/2022
18 Evolutionary Models…
Prototyping…
The prototyping begins with
communication
Meet stakeholder to define the
General objective, identify known
requirements, outline further
requirement
Take quick plan and design(modeling)
The design should focus on parts that are
Visible for end users
Construct a prototype for the designed parts
prototype is deployed and evaluated by stakeholders
Stakeholder now will give feedbacks
3/13/2022
19 Evolutionary Models…
Prototyping…
Problems
Stakeholders see what appears to be a working version of the software
They become unaware that it is a prototype
Developers tend to continue with the inefficient methods(algorithms ,OS, and other
tools)
But still it is an effective approach, only needed to be aware that the prototype is not
the final.
3/13/2022
20 Evolutionary Models…
Spiral model
Using this model , software is developed in a series of evolutionary 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
A spiral model is divided into a set of framework activities defined by the
software engineering team
3/13/2022
Evolutionary Models…
21 Spiral model…
Each of the framework activities represent one segment of the spiral path illustrated on the
figure below
Risk analysis is considered as
each revolution is made
The first circuit around the
spiral might result in the
development of a product
specification
Each pass through the
planning region results in adjustments
to the project plan
3/13/2022
Evolutionary Models…
22 Spiral model…
Cost and schedule are adjusted based on feedbacks
3/13/2022
Evolutionary Models…
23
Spiral model…
Problems:
It may be difficult to convince customers that the evolutionary approach is controllable
demands considerable risk assessment expertise and relies on this expertise for success
3/13/2022
24 Formal systems development
Based on the transformation of a mathematical specification through different
representations to an executable program
Transformations are ‘correctness-preserving’ so it is straightforward to show that the
program conforms to its specification
Embodied in the ‘Cleanroom’ approach to software development
3/13/2022
25 Formal systems development…
3/13/2022
26
Formal systems development…
Problems
Need for specialised skills and training to apply the technique
Difficult to formally specify some aspects of the system such as the user interface
Applicability
Critical systems especially those where a safety or security case must be made before
the system is put into operation
3/13/2022
27 Reuse-oriented development
Based on systematic reuse where systems are integrated from existing components
Process stages
Component analysis
The candidate components are researched and evaluated
Requirements modification
System design with reuse
Development and integration
Benefits in terms of time and cost
This approach is becoming more important but still limited experience with it
3/13/2022
28
Reuse-oriented development…
Development System
and integration validation
3/13/2022
29
Agile developments
3/13/2022
30
Agile developments…
Characteristics
Frequent delivery
Good ROI for clients
Collaborative approach
Test early and frequently
3/13/2022
31
Agile developments…
Widely used methodologies based on the agile philosophy
extreme programming(XP)
Scrum
3/13/2022
32
Agile…
Extreme programming(XP)
Focuses on development rather than managerial
aspects or processes
Focuses on customer satisfaction
delivers the software you need as you need it
Implements a simple, yet effective environment enabling teams to become
highly productive.
3/13/2022
33
Agile…
Extreme programming(XP)…
Values
Communication
Simplicity
Feedback
Respect and courage
Advocates
constant communication,
rapid feedback,
assuming simplicity of design,
changing incrementally,
encouraging quality work, respect for unique contribution of each team member, and
courageously respond to changing requirements
3/13/2022
34
Agile…
Extreme programming(XP)…
XP: Rules and Concepts
Integrate often
Continuous integration
Project velocity
How much work is getting done
Pair programming
Two people coding together
User story
Describes problems to be solved by the system being built
Should be written by the customer
3/13/2022
35
Agile…
Extreme programming(XP)…
XP Phases
Exploration
Customer write out story cards
Each story card describes a feature to be added into the program
Planning
Sets priority order for the user stories
Iterations to release phase
Productionizing phase
Maintenance phase
3/13/2022
36
Agile…
Scrum
An agile approach that has an emphasis on teamwork
Unlike XP, Scrum methodology includes both managerial and development processes
Team success is of primary importance
Individual success is secondary
It talks about the iterations planning, release planning and solely lies in the real of
management practices
Scrum emphasizes the management side of a project and does not define a detail
engineering practice.
3/13/2022
37
Agile…
Summary:
Use XP if you are more focused on creating clean, stable code.
Use Scrum If you are more focused on successfully managing your project
But recommended to be combined
Use both in a harmonized manner as a form of agile development methodology
3/13/2022