Process Models
Presented By
Md. Fazle Hasan Mihad
Lecturer, Department of CSE & CSIT
Welcome Everyone
Course Code: CSE 3297
Course Title: Software Engineering
Lecture-03
Lecture Overview:
❑ Software Development Life Cycle (SDLC)
❑ Software Process vs SDLC
❑ Generic Process Model
❑ Process Flow Variations
❑ Umbrella Activities
❑ Cost of Software Engineering
❑ Types of Software Process Model
❑ Waterfall Model
Software Development Life Cycle:
SDLC is a well-defined, structured
sequence of stages in software
engineering to develop the intended
software product.
SDLC provides a series of steps to
design and develop a software
product efficiently.
H.W: Need to learn details of every
step.
Software Process vs SDLC:
Aspect Software Process Software Development Life Cycle
(SDLC)
Definition Approach or model to Phases to build and maintain
develop software. software.
Focus How software is developed. What steps to follow in development.
Examples Waterfall, Agile, Spiral, Requirement, Design, Coding,
V-Model etc. Testing, Maintenance.
Purpose Manage and organize Deliver a high-quality software
development efficiently. product.
Generic Process Model
A software process model is a structured approach to software development that
defines a set of activities, actions, and tasks required to build a software product.
Framework activities of the model:
• Communication
o Involves discussions with stakeholders to gather and define requirements.
o Can range from simple phone calls (for small projects) to detailed
elicitation, negotiation, and validation (for complex projects).
• Planning
o Defines the scope, resources, timeline, and risks of the project.
o Creates schedules, cost estimates, and work breakdown structures.
Generic Process Model
• Modeling
o Focuses on software design and system architecture.
o Uses diagrams and models to visualize requirements, data flow, and system
components.
• Construction
o Involves coding, testing, and debugging to develop a functional software
system.
o Uses unit, integration, and validation testing to ensure quality.
• Deployment
o Delivers the software to users and collects feedback for future
improvements.
o Includes maintenance and updates based on user needs.
Process Flow Variations
The sequence and timing of activities can vary based on the software development
approach:
• Linear Process Flow: Activities are executed sequentially from Communication to
Deployment.
• Iterative Process Flow: Some activities are repeated before moving forward.
Process Flow Variations
• Evolutionary Process Flow:
Software evolves through multiple
cycles, refining the product in each
iteration.
• Parallel Process Flow: Different
activities occur simultaneously, such
as designing one module while
another is being implemented.
Umbrella Activities
Umbrella activities are supporting activities that span across the entire software
development process. They do not belong to a single phase but are carried out
throughout the project to ensure quality, control, and smooth management.
Umbrella Activities
1. Software Project Tracking & Control
• Monitors progress of the project.
• Ensures that deadlines, cost, and resources are under control.
• Example: Using JIRA or Trello to track progress.
2. Risk Management
• Identifies, analyzes, and plans for potential risks.
• Example: Backup plans if server crashes or developer leaves.
3. Measurement & Metrics
• Collects and analyzes data (e.g., defect rate, productivity).
• Helps improve future projects by using measurable insights.
4. Reusability Management
• Encourages reuse of software components, modules, or libraries.
• It saves cost and effort.
• Example: Reusing login authentication module across multiple projects.
Umbrella Activities
5. Document Preparation & Production
• Prepares technical documents, manuals, user guides.
• Ensures proper communication between developers, testers, and clients.
6. Software Configuration Management (SCM)
• Manages the changes in software (version control, updates, patches).
• Example: Git, SVN.
7. Software Quality Assurance (SQA)
• Ensures software meets quality standards.
• Example: Code reviews, testing, and audits.
8. Formal Technical Reviews
• Systematic evaluation of design, code, or documents.
• Finds errors early and improves quality.
Cost of Software Engineering
The cost of software engineering refers to the total expenditure required to develop, deliver, and
maintain a software system. It includes everything from people, tools, and processes to deployment
and support.
Major Components of Software Costs:
• Development Costs (30-35%)
• Salaries of developers, designers, testers.
• Cost of tools, programming environments, and hardware.
• Example: Payment for IDEs, cloud servers, GitHub Enterprise.
• Quality Assurance & Testing Costs (20–25%)
• Unit testing, integration testing, system testing.
• Automated testing tools and bug-fixing efforts.
• Project Management Costs (10%)
• Efforts in planning, monitoring, reporting.
• Communication and coordination across teams.
Cost of Software Engineering
• Documentation Costs (5%)
• Technical documentation, user manuals, installation guides.
• Deployment Costs (5%)
• Installing the software at the client site.
• Training users and IT staff.
• Maintenance and Support Costs (40-60%)
• Corrective maintenance → fixing bugs after release.
• Adaptive maintenance → updating for new OS/hardware.
• Perfective maintenance → adding new features.
• Preventive maintenance → avoiding future issues.
• Customer support, helpdesk, FAQs, and issue resolution.
Cost of Software Engineering
Standard Distribution (Approx.):
• Development → 30%
• Testing & QA → 20%
• Management → 10%
• Documentation/Training → 5%
• Deployment → 5%
• Maintenance & Support → 30–40%
H.W: Cost Estimation Models
Types of Software Process Model
Software process models define structured approaches to software development. The choice of a
model depends on project complexity, stability of requirements, and risk factors.
The types of models are:
• Waterfall Model
• RAD (Rapid Application Development) Model
• Spiral Model
• V-Model (Validation and Verification Model)
• Incremental Model
• Agile Model
• Iterative Model
• Big-Bang Model
• Prototype Model
Waterfall Model
The Waterfall Model is a sequential and linear software development process where each
phase flows into the next, like a waterfall. That means when the first phase is finished,
then only the second phase will start, and so on.
The phases of the model are:
Waterfall Model
1. Requirement Gathering:
• Collect all customer and stakeholder requirements.
• Document them in a Software Requirement Specification (SRS).
• Discuss what to be produced.
2. System Analysis (Design):
• Analyze the requirements for feasibility and technical constraints.
• Define the system architecture and data models.
• Enter all the information in the Software Design Documentation(SDD) file.
3. Coding (Implementation):
• Developers write the actual source code.
• Follow the design documents to build individual modules.
Waterfall Model
4. Testing:
• Test the software for bugs, functionality, and performance issues.
• Perform unit testing, integration testing, system testing, and acceptance testing.
5. Implementation:
• Deploy the software to the production environment or deliver it to the client.
• Train end-users if necessary.
6. Operations and Maintenance:
• Monitor the software in the live environment.
• Provide bug fixes, updates, and feature enhancements.
This model is best suited when developers already have designed and developed similar
software in the past and are aware of all its domains.
Waterfall Model
When to use SDLC Waterfall Model?
Some Circumstances where the use of the Waterfall model is most suited are:
• When the requirements are constant and not changed regularly.
• A project is short
• The situation is calm
• Where the tools and technology used is consistent and is not changing
• When resources are well prepared and are available to use.
Waterfall Model
Strengths of the model:
• Simple and Easy to Use: Clear structure with well-defined phases.
• Well-Documented Process: Detailed documentation at every stage.
• Easy to Manage: Phases are sequential and straightforward to track.
• Clear Milestones: Progress is easy to measure with distinct phase transitions.
• Good for Small, Stable Projects: Works well when requirements are fixed and
well-understood.
• Early Planning: Helps with budgeting and scheduling since everything is planned
upfront.
• Works well when quality is more important than cost or schedule.
Waterfall Model
Deficiencies of the Waterfall Model:
1. Inflexible to Change: Hard to go back and modify requirements.
2. Late Testing: Bugs are found late, making fixes costly.
3. High Risk & Uncertainty: Project failure risk if initial requirements are unclear.
4. Slow Feedback: No working software until the end.
5. Heavy Documentation: Time-consuming and resource-intensive.
6. Not Suitable for Evolving Projects: Struggles with dynamic requirements.
Waterfall Model
Scenario-Based Questions (Answer → Waterfall Model)
1. Military Project
A defense organization is developing a missile control system where requirements are well-defined, stable, and
not expected to change over time.
Question: Which SDLC model is most suitable here, and why?
Expected Answer: Waterfall Model → because requirements are fixed, the system is safety-critical, and
thorough documentation with strict sequential phases is necessary.
2. Banking System
A central bank is creating a core banking transaction processing system. The scope is very clear, regulations
are fixed, and accuracy is critical.
Question: Which development model would be best suited, and justify your choice?
Expected Answer: Waterfall Model → because changes are unlikely, documentation and correctness are more
important than flexibility, and testing can be planned after coding.
Waterfall Model
3. Payroll System
A company wants to build a payroll processing system that calculates salaries, taxes, and deductions.
Requirements are simple, fixed, and fully known in advance.
Question: Identify the best SDLC model for this project and explain why.
Expected Answer: Waterfall Model → because the project requirements are stable, straightforward, and
unlikely to change. Sequential development is cost-effective here.
4. Educational Software
A university wants a system to generate student report cards. The requirements are simple, well-understood,
and not expected to change for years.
Question: Which software development model is most appropriate here, and why?
Expected Answer: Waterfall Model → because the project scope is small, requirements are stable, and
sequential phases will work efficiently.
Thank You