Lectue 3 - Process and Waterfall
Lectue 3 - Process and Waterfall
1
Types of
Software
Application
2
Types of Software
3
Software
Application
Types
4
Stand-alone applications
◦ These are application systems that run on a local
computer, such as a PC. do not need to be
connected to a network.
5
Batch processing systems
◦ These are business systems that are
designed to process data in large batches.
E.g Credit card companies process bill
Entertainment systems
Application ◦ Media players etc.
types
Systems for modeling and simulation
◦ These are systems that are developed by
scientists and engineers to model
physical processes or situations, which
include many, separate, interacting
objects.
6
Data collection systems
◦ These are systems that collect data from
their environment using a set of sensors
and send that data to other systems for
Application processing. e.g. RTU in SCADA systems
types
Systems of systems
◦ These are systems that are composed of
a number of other software systems. e.g.
Electric/power grid systems
7
Software Processes
8
What is a software process?
A set of activities whose goal is the development or evolution of
software
9
Software Process
Fundamental Assumption:
12
Software
Lifecycle
Activities
13
Basic Process Steps in all Software
Development
⚫ Feasibility and planning
⚫ Requirements
These steps may be repeated
⚫ System and program design many times during the
development cycle.
⚫ Implementation
⚫ Acceptance and release
Program testing
Program testing by the development staff is an integral part of implementation.
Individual components are tested against the design.
The components are integrated and tested against the design as a complete system.
Process Step: Acceptance and Release
Acceptance testing
The system is tested against the requirements by the client, often with selected
customers and users.
Delivery and release
After successful acceptance testing, the system is delivered to the client and
released into production or marketed to customers.
Process Step: Operation and Maintenance
Operation:
The system is put into practical use.
Maintenance:
Errors and problems are identified and fixed.
Evolution:
The system evolves over time as requirements change, to add new functions, or adapt
to a changing technical environment.
Phase out:
The system is withdrawn from service.
This is sometimes called the Software Life Cycle
Sequence of Process Steps
Iterative:
Go quickly through all process steps to create a rough system, then repeat them to improve the system.
Iterative refinement.
Incremental:
A variant of iterative refinement in which small increments of software are placed in production
(sprints). Agile development.
Heavyweight and Lightweight Software
Development
In a heavyweight process, the development team works through the process
steps slowly and systematically, with the aim of fully completing each process step
and deliverables for that step that will need minimal changes and revision.
Example: Modified Waterfall Model
In Waterfall model, very less customer interaction is involved during the development of the
product. Once the product is ready then only it can be demonstrated to the end users.
Once the product is developed and if any failure occurs then the cost of fixing such issues are
very high, because we need to update everything from document till the logic.
33
Summary Waterfall
Advantages of waterfall model
•This model is simple and easy to understand and use.
•It is easy to manage due to the rigidity of the model – each phase has specific
deliverables and a review process.
•In this model phases are processed and completed one at a time. Phases do not
overlap.
•Waterfall model works well for smaller projects where requirements are clearly
defined and very well understood.
34
Summary Waterfall
Disadvantages of waterfall model
▪Once an application is in the testing stage, it is very difficult to go back and
change something that was not well-thought out in the concept stage.
▪No working software is produced until late during the life cycle.
▪High amounts of risk and uncertainty.
▪Not a good model for complex and object-oriented projects.
▪Poor model for long and ongoing projects.
▪Not suitable for the projects where requirements are at a moderate to high risk
of changing.
35
36