SE - UNIT-1 - Introduction To Software Engineering (DH SIRS CLASSROOM)
SE - UNIT-1 - Introduction To Software Engineering (DH SIRS CLASSROOM)
SOFTWARE ENGINEERING
UNIT 1: Introduction to Software Engineering
………………………………………………………………………
CONTENTS:
The evolving Role of software & changing nature of software.
Software Engineering –A layered Technology approach.
A process framework & software project tracking & control.
The Capability Maturity Model Integration technique.
Process patterns, process Assessment, personal & Team Process models & Process
Technology Theories.
Process Models –Waterfall, Incremental, RAD, Prototype, Spiral
..........................................................................................................................................................................
Software has evolved from basic computing tasks to becoming the core of modern technology. It plays a
vital role in every industry, from healthcare and finance to entertainment and artificial intelligence (AI).
1. Healthcare
Software has evolved from simple, standalone programs to complex, intelligent, and interconnected
systems. The way software is developed, deployed, and used has changed dramatically due to
advancements in cloud computing, artificial intelligence, automation, and security.
✔ Earlier: Software was released with fixed versions (e.g., Windows XP, Windows 7).
✔ Now: Agile and DevOps models enable frequent updates and bug fixes.
✔ Example: Mobile apps get automatic updates via app stores.
Software Engineering follows a layered approach to ensure the systematic development of high-quality
software. Each layer provides structured guidelines and best practices to manage complexity and
improve maintainability.
Layer Purpose
Quality Focus Ensures software reliability, security, and maintainability.
Process Layer Defines the framework for managing software development.
Methods Layer Includes techniques for designing, coding, testing, and debugging.
Tools Layer Provides software development and automation tools.
Software Project Tracking & Control is a process that ensures a project stays on schedule, within
budget, and meets quality requirements. It helps identify deviations from the plan and take corrective
actions to keep the project on track.
1. Milestone Tracking
2. Gantt Charts
5. Risk Tracking
1. Change Control
2. Defect Tracking
4. Scope Control
The Capability Maturity Model Integration (CMMI) is a process improvement framework that helps
organizations enhance software development, project management, and service delivery. It provides a
structured approach to improve quality, efficiency, and risk management in software engineering.
2. Objectives of CMMI
CMMI defines five maturity levels, each representing a degree of process improvement:
🔹 Example:
A company at Level 1 (Initial) has unstructured software development. At Level 5 (Optimizing), the
company follows best practices, uses automation, and continuously improves processes.
4. CMMI Models
🔹 Example:
CMMI defines Process Areas (PAs) that help organizations improve performance.
6. Benefits of CMMI
1. Process Patterns
What are Process Patterns?
✔ Process patterns are repeatable best practices that solve common problems in software development.
✔ They help improve efficiency, consistency, and quality in software engineering.
🔹 Example: A code review process pattern helps identify bugs early and improve code quality.
2. Process Assessment
What is Process Assessment?
🔹 Example: A company using CMMI Level 3 has standardized processes for software development and
testing.
✔ PSP is a structured approach to improve individual software developers’ productivity and quality.
✔ Encourages planning, tracking, and self-assessment.
🔹 Example: A developer logs time spent on coding and testing to improve personal efficiency.
🔹 Example: A software development team uses TSP to plan sprints, assign tasks, and review quality
metrics.
🔹 Example: In a banking system, all requirements (e.g., account creation, transactions, security) must be
finalized before development begins.
Incremental Model
Incremental Model in Software Engineering
1. What is the Incremental Model?
✔ The Incremental Model is a software development approach where the system is built in small parts
(increments).
✔ Each increment adds functionality, and the software gradually evolves into a complete system.
✔ It is an alternative to the Waterfall Model, offering more flexibility and early user feedback.
🔹 Example: A banking application starts with basic account management. In subsequent increments,
features like fund transfers, bill payments, and mobile banking are added.
✔ Rapid Application Development (RAD) is an agile-based software development model that focuses
on quick prototyping and iterative development.
✔ It emphasizes user feedback and fast delivery, making it ideal for projects where requirements may
evolve.
✔ Instead of following a strict sequential approach (like the Waterfall model), RAD allows continuous
refinement and updates.
🔹 Example: A food delivery app like Swiggy/Zomato starts with a basic prototype (ordering & payment).
Later, features like real-time tracking, reviews, and restaurant recommendations are added based on
feedback.
3. Advantages of the RAD Model
Prototype MODEL
Prototype Model in Software Engineering
1. What is the Prototype Model?
✔ The Prototype Model is a software development approach where an initial working model
(prototype) of the system is built and refined based on user feedback.
✔ It helps clarify requirements when they are not well-defined at the start.
✔ The prototype is continuously improved until it becomes the final system.
🔹 Example: A healthcare appointment system starts with a basic prototype for booking appointments.
Based on feedback, features like doctor availability, patient history, and notifications are added.
✔ Improves requirement clarity – Users can see and refine requirements early.
✔ Reduces risk of failure – Issues are detected early in development.
✔ Enhances user satisfaction – Users can provide feedback and suggest changes.
✔ Faster development – Helps speed up system understanding and design.
Spiral MODEL
Spiral Model in Software Engineering
1. What is the Spiral Model?
✔ The Spiral Model is a risk-driven, iterative software development model that combines elements of
the Waterfall and Prototyping models.
✔ It focuses on risk analysis and repeated refinement of the software through multiple development
cycles (spirals).
✔ Suitable for large, high-risk projects where requirements change frequently.
Each spiral consists of four major phases, repeated for each development cycle:
Phase Description
1. Planning Gather requirements and identify objectives.
2. Risk Analysis Identify and address potential risks.
3. Development & Testing Design, develop, test, and refine the system.
4. Review & Evaluation Get feedback and prepare for the next spiral.
🔹 Example: In air traffic control software, the Spiral Model helps identify risks at each stage (safety,
performance) and improve the system gradually.
The Waterfall, Incremental, RAD, Prototype, and Spiral models are different Software Development
Life Cycle (SDLC) models used for software engineering projects. Below is a detailed comparison of these
models based on key factors.
Comparison Table:
Incremental
Feature Waterfall Model RAD Model Prototype Model Spiral Model
Model
Develops a
Divided into Rapid
Development Linear and prototype before Iterative with risk
multiple small application
Approach sequential full analysis
releases development
implementation
Requirements → Planning → Risk
Design → Analysis →
Multiple small Rapid Prototype → User
Implementation → Development →
Phases cycles of prototyping + Feedback →
Testing → Evaluation
Waterfall user feedback Final Product
Deployment → (repeats in
Maintenance spirals)
Highly flexible
Moderately Highly
Flexibility Rigid, no flexibility Highly flexible with risk
flexible flexible
management
Low risk due Low risk since
Risk High risk, no early Strong risk
Moderate risk to user early feedback is
Handling risk evaluation management
involvement received
Time to
Long Moderate Short Moderate Long
Market
Low for small
Cost projects, high for Moderate High Moderate High
large ones
User
Low Moderate High High Moderate to High
Involvement
Incremental
Feature Waterfall Model RAD Model Prototype Model Spiral Model
Model
Rapid Projects with Large, complex
Best Suited Small, well-defined Medium-sized
development unclear projects with high
For projects projects
needs requirements risks
E-commerce Web AI projects, Aerospace,
Banking systems,
Examples websites, applications, UI/UX-heavy defense, high-risk
military projects
CRM systems mobile apps applications software
1. Waterfall Model
o Best for: Small projects with well-defined requirements.
o Weakness: Rigid; changes are difficult to accommodate.
o Strength: Simple and easy to manage.
2. Incremental Model
o Best for: Projects that require gradual improvements.
o Weakness: Requires good planning and modular design.
o Strength: Delivers a working product faster than Waterfall.
3. RAD (Rapid Application Development) Model
o Best for: Time-sensitive projects with evolving requirements.
o Weakness: Not suitable for large, complex systems.
o Strength: Fast development, high user involvement.
4. Prototype Model
o Best for: Projects where requirements are unclear.
o Weakness: Prototypes can lead to misinterpretation.
o Strength: Early feedback helps refine requirements.
5. Spiral Model
o Best for: High-risk, complex projects.
o Weakness: Expensive due to repeated risk analysis.
o Strength: Risk management is built-in.
A: Software has evolved from being a tool for simple computations to a critical component of modern
society, impacting industries such as healthcare, finance, defense, and entertainment. The key stages of
software evolution include:
Early Computing (1950s-1970s) – Software was developed mainly for scientific and military applications.
Commercial Software (1980s-1990s) – Rise of personal computers and enterprise software.
Internet & Web Applications (2000s-Present) – Cloud computing, mobile apps, AI-driven applications, and IoT.
A:
✔ Ensures consistency and reliability in software development.
✔ Allows for scalability and maintainability.
✔ Facilitates process improvement and quality control.
A: A software process framework is a structured approach defining phases, activities, and workflows for
software development.
A: It involves monitoring the project’s progress, identifying risks, and ensuring it stays on schedule and
within budget. Common techniques include:
✔ Milestone tracking – Ensuring project goals are met at different phases.
✔ Burn-down charts – Measuring work progress.
✔ Earned Value Analysis (EVA) – Comparing planned vs. actual progress.
A:
✔ Helps organizations improve software quality.
✔ Reduces development costs and defects.
✔ Ensures standardization and process efficiency.
5. Process Patterns, Process Assessment, Personal & Team Process Models, and Process
Technology Theories
A: Process patterns are repeatable best practices that solve common problems in software development.
Example: Code review, version control, and risk assessment.
A: Process assessment evaluates a software organization’s development practices and identifies areas for
improvement (e.g., using CMMI, ISO 9001).
A: Process technology theories focus on automating and optimizing software processes using tools like:
✔ AI-driven testing
✔ Automated deployment tools
✔ DevOps and CI/CD pipelines
A: A linear, sequential model where each phase (Requirements → Design → Implementation → Testing
→ Deployment) must be completed before the next begins.
✔ Best for: Small projects with well-defined requirements.
✖ Disadvantage: Rigid, no flexibility for changes.
Q16: What is the Incremental Model?
A: Combines iterative development with risk analysis. Each cycle (Planning → Risk Analysis →
Development → Evaluation) refines the product.
✔ Best for: High-risk projects (e.g., defense, aerospace).
✖ Disadvantage: Expensive due to risk management.
Q1: What is the primary reason for the evolving role of software in modern technology?
A) Increased complexity
B) High reliability and security
C) Decreasing dependency on the internet
D) Rapid development cycles
Q3: Which field has seen significant changes due to evolving software applications?
A) Healthcare
B) Agriculture
C) Education
D) All of the above
A) Methods
B) Process
C) Tools
D) Quality Focus
Q5: Which layer of the software engineering approach includes modeling techniques and
design methodologies?
A) Tools
B) Methods
C) Process
D) Quality Focus
Answer: B) Methods
A) Waterfall Model
B) Burn-down charts
C) Debugging
D) White-box testing
Q10: How many maturity levels are there in the CMMI model?
A) 3
B) 4
C) 5
D) 6
Answer: C) 5
Q11: Which of the following is the highest level in the Capability Maturity Model
(CMMI)?
A) Defined
B) Managed
C) Optimizing
D) Initial
Answer: C) Optimizing
5. Process Patterns, Process Assessment, Personal & Team Process Models, and Process
Technology Theories
Q15: What does the Personal Software Process (PSP) focus on?
Q16: Which process model follows a strict linear approach with defined phases?
A) Waterfall Model
B) Incremental Model
C) Agile Model
D) Spiral Model
Q17: In which process model is the software developed and released in small, incremental
parts?
A) Waterfall Model
B) Incremental Model
C) RAD Model
D) Prototype Model
Q18: The Rapid Application Development (RAD) model is best suited for which type of
projects?
Q19: Which model is most suitable when requirements are unclear and evolving?
A) Waterfall Model
B) Prototype Model
C) Incremental Model
D) Spiral Model
Q20: The Spiral Model is best suited for which type of projects?