You are on page 1of 37

Lec2

Software Processes Models

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…

 The Process Framework


 A process framework establishes the foundation for a complete software
engineering process.
 this is done by identifying a small number of framework activities that are
applicable to all software projects, regardless of their size or complexity.
 A generic process framework for software engineering encompasses five
activities:
Communication
communicate and collaborate with the customer
The intent is to understand stakeholders’ objectives for the project and
to gather requirements that help define software features and functions.

3/13/2022
5
Software Process…

 The Process Framework…


 Planning
 defines the software engineering work by describing:
 the technical tasks to be conducted,
 the risks that are likely,
 the resources that will be required,
 The work products to be produced, and a work schedule

3/13/2022
6
Software Process…

 The Process Framework…


 Modeling
 Simplified representation for better understanding of the problem and how you’re going
to solve it.
 A software engineer does the same thing by creating models to better
understand software requirements and the design that will achieve those
requirements
 Construction
 What you design must be built
 combines code generation and the testing that is required to uncover errors in the code.
 Deployment.
 Delivering to customers

3/13/2022
7 Software Process Model

 A software process model is an abstract representation of a process


 It presents a description of a process from some particular perspective

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

 This model suggests a systematic, sequential approach to software


development that begins with
 customer specification of requirements and progresses through planning, modeling,
construction, and deployment, culminating in ongoing support of the completed
software

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.

 Two common evolutionary process models are discussed below


 Prototyping
 Spiral model

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

 This model can be adapted to apply


throughout the life of software

 The spiral model is a realistic


approach to the development of
large-scale systems and software

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…

Requirements Formal Formal Integration and


definition specification transformation system testing

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…

Requirements Component Requirements System design


specification analysis modification with reuse

Development System
and integration validation

3/13/2022
29
Agile developments

 Methodology based on iterative and incremental development


 Requirements and solutions evolve through collaboration between self-
organizing, cross-functional teams.
 Small teams work together with stakeholders
 Define requirements for the iteration
 Develop the code
 Define and run integrated test script
 The agile methodology is people oriented

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

You might also like