0% found this document useful (0 votes)
16 views

Software Process and Models

Here are my suggestions for the most appropriate process model for each system, along with a brief rationale: For an anti-lock braking system in a car: - The waterfall model would be suitable as the requirements are well-defined and unlikely to change. Safety is critical so a structured approach is needed. For a virtual reality game: - An iterative or agile method would work best to support frequent changes and refinements based on user testing/feedback. Prototyping could help explore design options early on. In both cases, the chosen model may still need tailoring to the specific project, but these generic models provide a reasonable starting point based on the characteristics of the system and project goals. The
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

Software Process and Models

Here are my suggestions for the most appropriate process model for each system, along with a brief rationale: For an anti-lock braking system in a car: - The waterfall model would be suitable as the requirements are well-defined and unlikely to change. Safety is critical so a structured approach is needed. For a virtual reality game: - An iterative or agile method would work best to support frequent changes and refinements based on user testing/feedback. Prototyping could help explore design options early on. In both cases, the chosen model may still need tailoring to the specific project, but these generic models provide a reasonable starting point based on the characteristics of the system and project goals. The
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

Module: B7IS127 - Software Engineering

2023-24

Software Process and


Models
PhD Luciana Nascimento
[email protected]
Acknowledgements: All the material in these slides is mainly taken from the Software
Engineering books; most of the books are mentioned in the module descriptor.
Objective
• What we mean by a “process”

• Software development products,


processes, and resources

• Several models of the software


development process
The Meaning of Process

A process: a series of steps involving activities, constraints, resources, tools


and techniques that produce an intended output of some kind
Process
Controls (guide) Policies, Standards, Regulations,
Instructions, Procedures, etc.

PROCESS
Create
Transform
Input Output
Control
Maintain

Resources
(they restrict and are controlled)

Human Materials Budget Schedule


Resources and Tools
Process Characteristics
Prescribes all major process activities
Uses resources, subject to set of constraints (such as schedule)
Produces intermediate and final products
May be composed of subprocesses with hierarchy or links
Each process activity has entry and exit criteria
Activities are organized in sequence, so timing is clear
Each process has guiding principles, including goals of each activity
Constraints may apply to an activity, resource or product
Software process descriptions
When we describe and discuss processes, we usually talk about the activities in
these processes such as specifying a data model, designing a user interface,
etc. and the ordering of these activities.

Process descriptions may also include:


● Products, which are the outcomes of a process activity;
● Roles, which reflect the responsibilities of the people involved in the process;
● Pre- and post-conditions, which are statements that are true before and after a process
activity has been enacted or a product produced.
The importance of Process Reasons for Process Modelling

Impose consistency and structure on To form a common understanding


a set of activities To find inconsistencies,
Guide us to understand, control, redundancies, omissions
examine, and improve the activities To find and evaluate appropriate
Enable us to capture our experiences activities for reaching process goals
and pass them along To tailor a general process for a
particular situation in which it will be
used
Software Life Cycle
When a process involves building a software, the process may be referred to as
software life cycle
Requirements analysis and definition
System (architecture) design
Program (detailed/procedural) design
Writing programs (coding/implementation)
Testing: unit, integration, system, …
System delivery (deployment)
Maintenance
Software Process Models
• Waterfall model
• V model
• Prototyping model
• Phased development: increments and iteration
• Spiral model
• Agile methods (Will be covered next class)
The Waterfall Model
Plan-driven model. Separate and
distinct phases of specification and
development.

In principle, a phase has to be


complete before moving onto the
next phase.
The Waterfall Model

The reality:

There is no iteration in waterfall


model
but…
Most software developments
apply a great many iterations
Drawbacks of The Waterfall Model
Provides no guidance how to handle changes to products and activities during
development (assumes requirements can be frozen)
Views software development as manufacturing process rather than as creative
process
There is no iterative activities that lead to creating a final product
Long wait before a final product
Waterfall methodology in IT?
Waterfall Model with Prototype
A prototype is a partially developed product

Prototyping helps developers assess alternative


design strategies (design prototype)

Users understand what the system will be like


(user interface prototype)

Prototyping is useful for verification and


validation
The Waterfall Model
Pros: Suitable for:
Easy to understand and manage Small, straightforward projects with
Well-defined stages and deliverables well-defined requirements
Projects where requirements are unlikely to
change during the development process
Cons:
Not suitable for complex projects or projects with evolving
requirements
Changes can be challenging to implement once a phase is
complete
Can lead to delays if requirements are not clear or change
throughout the project
The V-Model
A variation of the waterfall model
Uses unit testing to verify procedural design
Uses integration testing to verify architectural
(system) design
Uses acceptance testing to validate the
requirements
If problems are found during verification and
validation, the left side of the V can be re-executed
before testing on the right side is re-enacted
The Prototyping Model
Allows repeated investigation of the requirements or design
Reduces risk and uncertainty in the development
The Prototyping Model
Pros: Suitable for:
Provides a basic working version of the software Projects with high levels of user
Helps to clarify and refine requirements involvement
Projects with unclear or vague requirements
Cons: Projects where a working prototype is
necessary to clarify the requirements
Can be time-consuming and expensive
May require additional resources and expertise to
build the prototypes
Can lead to a lack of focus on non-functional
requirements
Sometimes we refer to the prototype as "Throw-away"
prototype
Phased Development: Increments and
Iterations
• Shorter cycle time
• System delivered in pieces
• enables customers to have some functionality while
the rest is being developed
• Allows two systems functioning in parallel
• the production system (release n): currently
being used
• the development system (release n+1): the
next version
Phased Development: Increments and
Iterations

Incremental development: starts with


small functional subsystem and adds
functionality with each new release

Iterative development: starts with full


system, then changes functionality of
each subsystem with each new release
The Incremental and Iterative Models
Pros:
The delivery of working software at the end of each iteration
Provides opportunities for feedback and improvement throughout the development process
The development team can focus on different areas of expertise with different releases
Training can begin early, even though some functions are missing

Cons: Suitable for:


Can be time-consuming Projects with changing requirements
Requires a high level of involvement of the Projects where feedback and improvement
teams throughout the development process are desirable
May require frequent updates to Projects where flexibility is critical
documentation and project plans
Spiral Model
Combines development activities with risk
management to minimize and control risks

The model is presented as a spiral in which


each iteration is represented by a circuit
around four major activities
• Plan
• Determine goals, alternatives and
constraints
• Evaluate alternatives and risks
• Develop and test
The Spiral Model
Pros: Suitable for:
Focuses on risk management and Projects with high levels of risk and uncertainty
evaluation throughout the project
Projects where risk management and evaluation are
Flexible and adaptable to changing critical
requirements
Projects where flexibility and adaptability are
necessary

Cons:
Can be time-consuming and expensive
May not be suitable for small projects and
projects with well-defined requirements
Requires a high level of expertise in risk
management
Others…
Practice: Critical Thinking about Process
Giving reasons for your answer based on the type of system being developed, suggest the
most appropriate generic software process model that might be used as a basis for managing
the development of the following systems:
• A system to control anti-lock braking in a car
• A virtual reality system to support software maintenance
• A university accounting system that replaces an existing system
• An interactive travel planning system that helps users plan journeys with the lowest
environmental impact

- Group of 3, max 4
- Prepare to present the reasoning for your choices

You might also like