Lecture 3 - Process and Waterfall
Lecture 3 - Process and Waterfall
L EC TU RE 3 : SO FT WA RE A P PL I C AT I O N TY P E S A N D SO FT WA R E PR O CE S SE S
1
Types of
Software
Application
2
Types of Software
3
Software
Applicatio
n 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. MS Office, Compiler etc.
5
Batch processing systems
◦ These are business systems that are
designed to process data in large batches.
E.g Credit card companies process bill,
generate payroll, generate SMS for clients.
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:
Good processes lead to good software
Good processes reduce risk
Good processes enhance visibility
Good processes enable teamwork
Variety of Software
Processes
Software products are very varied...
Therefore, there is no standard process for all
software engineering projects
BUT successful software development projects
all need to address similar issues.
This creates a number of process steps that
should be part of all software projects.
What is a software process model?
A simplified representation of a software process, presented from a specific
perspective
Examples of process perspectives are
◦ Workflow perspective - sequence of activities
◦ Data-flow perspective - information flow
◦ Role/action perspective - who does what
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
Operation and maintenance
It is essential to distinguish among these process steps and to be clear which
you are are doing at any given moment.
Quality Control Steps in all Software
Development
Validating the requirements
Validating the system and program design
Usability testing
Program testing
Acceptance testing
Bug fixing and maintenance
Some of these steps will be repeated many times during the
life of the system
Process Step: Feasibility
A feasibility study precedes the decision to begin a project.
• What is the scope of the proposed project?
• Is the project technically feasible?
• What are the projected benefits?
• What are the costs, Nmetable?
• Are the resources available?
• What are the risks and how can they be managed?
A feasibility study leads to a decision: go or no-‐go.
Process Step: Requirements
Requirements define the function of the system from the
client's viewpoint.
The requirements establish the system's functionality,
constraints, and goals by consultation with the client,
customers, and users.
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