Software engineering is a systematic, disciplined and measurable approach to the development, operation, maintenance and evolution of software.
Software engineering applies engineering principles, methods and tools to create
reliable, maintainable and economical software. It covers the complete software life cycle,
including requirements, design, coding, testing, deployment and maintenance.
User Need
|
v
Requirement Analysis
|
v
Software Design
|
v
Coding
|
v
Testing
|
v
Deployment
|
v
Maintenance
Objectives of Software Engineering
Develop high-quality software.
Complete the project within time and budget.
Reduce development and maintenance cost.
Improve reliability, security and performance.
Manage software complexity.
Make software easy to modify and maintain.
Provide a systematic development process.
Importance
Modern software systems are large and complex.
Many developers work together on one product.
Software must satisfy changing user needs.
Failure may cause financial, operational or safety loss.
Formal methods improve predictability and control.
2. Characteristics of Software 7 Marks
Intangible: Software has no physical form.
Developed, not manufactured: Most cost occurs during design and development.
Does not wear out physically: It deteriorates mainly because of changes and defects.
Highly complex: Large software contains many interacting components.
Easy to reproduce: Copying cost is very low.
Continuously changing: Requirements, technology and environment evolve.
Custom-built or configurable: Software often needs adaptation to user needs.
3. Software Crisis 14 Marks
Software crisis refers to the difficulties faced in developing large software systems within expected cost, time and quality limits.
Major Symptoms
Projects completed late.
Budget overruns.
Unreliable software.
Poor performance.
Difficult maintenance.
Incomplete or incorrect requirements.
Low user satisfaction.
High number of defects.
Causes
Rapid increase in software size and complexity.
Lack of proper development methods.
Poor requirement analysis.
Unrealistic planning and estimation.
Weak communication between users and developers.
Insufficient testing.
Frequent requirement changes.
Lack of skilled project management.
Solutions
Use defined software process models.
Apply proper requirements engineering.
Use modular and structured design.
Perform systematic testing and reviews.
Use project planning, metrics and quality assurance.
Adopt suitable tools and automation.
4. Software Problems and Prospects 7 Marks
Common Problems
Changing requirements
Cost and time estimation errors
Communication gaps
Security threats
Integration difficulties
Technical debt
Maintenance complexity
Quality inconsistency
Future Prospects
Artificial intelligence assisted development
Cloud-native software
DevOps and continuous delivery
Low-code and no-code platforms
Reusable components and services
Automated testing
Secure software engineering
Data-driven project management
5. Software Development Process 14 Marks
A software development process is a structured set of activities used to specify, design, implement, test, deploy and maintain a software system.
Fundamental Activities
Specification: Define services, constraints and requirements.
Design and implementation: Convert requirements into software.
Validation: Check that the software satisfies requirements.
Evolution: Modify software according to changing needs.
Supporting Activities
Project management
Risk management
Quality assurance
Configuration management
Documentation
Measurement and review
6. System Development Life Cycle 14 Marks
SDLC is a systematic sequence of phases used to plan, create, test, deploy and maintain an information system.
Planning
|
v
Feasibility Study
|
v
Requirement Analysis
|
v
System Design
|
v
Implementation
|
v
Testing
|
v
Deployment
|
v
Maintenance
Phases of SDLC
1. Planning
Identify project goals, scope, resources, schedule and major risks.
2. Feasibility Study
Evaluate technical, economic, operational, legal and schedule feasibility.
3. Requirement Analysis
Collect and document functional and non-functional requirements.
4. System Design
Create architecture, data design, interfaces and component design.
5. Implementation
Develop the software according to design specifications.
6. Testing
Identify defects and verify that requirements are satisfied.
7. Deployment
Install the system in the operational environment.
8. Maintenance
Correct defects, improve performance and adapt to changes.
Advantages
Provides a clear development framework.
Improves project control and documentation.
Supports quality assurance.
Helps assign responsibilities.
Reduces uncertainty.
7. Waterfall Model 14 Marks
The Waterfall Model is a linear sequential model in which each development phase is completed before the next phase begins.
Requirements
|
v
System Design
|
v
Implementation
|
v
Integration & Testing
|
v
Deployment
|
v
Maintenance
Working
Requirements are collected and finalized.
System and software design are prepared.
Developers implement the design.
Modules are integrated and tested.
The system is delivered.
Maintenance is performed after deployment.
Advantages
Simple and easy to understand.
Clear phases and documentation.
Easy to manage.
Suitable for stable requirements.
Useful for small and well-defined projects.
Disadvantages
Difficult to handle requirement changes.
Working software appears late.
High risk for complex projects.
Customer feedback is limited during development.
Defects may be discovered late.
Suitable When
Requirements are complete and stable.
Technology is well understood.
Project is short and low risk.
Strict documentation is required.
8. Spiral Model 14 Marks
The Spiral Model is a risk-driven iterative process model that combines systematic development with repeated risk analysis and prototyping.
Planning
|
v
Customer Evaluation <--- Engineering
^ |
| v
Risk Analysis
Each loop of the spiral produces
a more complete version of software.
Four Main Activities
Planning: Define objectives, alternatives and constraints.
Risk analysis: Identify and resolve technical and management risks.
Engineering: Design, develop and test the next version.
Customer evaluation: Review results and plan the next cycle.
Advantages
Strong risk management.
Supports changing requirements.
Customer feedback is obtained repeatedly.
Suitable for large and complex systems.
Prototypes reduce uncertainty.
Disadvantages
Expensive and complex.
Requires risk-analysis expertise.
Difficult to define project completion.
Not suitable for small projects.
Management overhead is high.
9. Prototype Model 7 Marks
The Prototype Model creates an early working model of the system to understand and refine user requirements.
Initial Requirements
|
v
Quick Design
|
v
Build Prototype
|
v
User Evaluation
|
v
Refine Requirements
|
v
Develop Final System
Types
Throwaway prototype: Discarded after requirements become clear.
Evolutionary prototype: Continuously improved into the final system.
Advantages
Clarifies unclear requirements.
Improves user involvement.
Detects missing features early.
Useful for user-interface development.
Limitations
Users may consider the prototype as the final product.
Quick design may create poor architecture.
Frequent changes may increase cost.
10. Incremental Model 7 Marks
The Incremental Model develops and delivers the software in a series of small functional increments.
RAD is an incremental development model that emphasizes very short development cycles, reusable components, prototyping and strong user participation.
Phases
Business modeling
Data modeling
Process modeling
Application generation
Testing and turnover
Advantages
Fast development and delivery.
High user involvement.
Reuse reduces effort.
Changes can be incorporated quickly.
Limitations
Requires skilled teams.
Needs modular projects.
Not suitable for high technical risk.
Requires continuous user availability.
12. Unified Process 14 Marks
The Unified Process is an iterative and incremental software development framework that is use-case driven, architecture-centric and risk-focused.
Main Characteristics
Iterative and incremental
Use-case driven
Architecture-centric
Risk-focused
Component-based
Inception
|
v
Elaboration
|
v
Construction
|
v
Transition
Phases
1. Inception
Define scope, business case, important requirements and feasibility.
2. Elaboration
Refine requirements, establish architecture and resolve major risks.
3. Construction
Develop the complete system through multiple iterations.
4. Transition
Deploy the software, train users and correct remaining problems.
Advantages
Early risk reduction.
Supports changing requirements.
Continuous testing and integration.
Architecture is established early.
Regular working releases.
13. Agile Software Development 14 Marks
Agile development is an iterative and incremental approach that delivers working software frequently and responds quickly to changing requirements.
Agile Manifesto Values
Individuals and interactions over processes and tools.
Working software over comprehensive documentation.
Customer collaboration over contract negotiation.
Responding to change over following a fixed plan.
Plan Small Iteration
|
v
Design
|
v
Develop
|
v
Test
|
v
Deliver Working Software
|
v
Customer Feedback
|
+------> Next Iteration
Features
Short development iterations
Frequent delivery
Continuous customer involvement
Adaptive planning
Cross-functional teams
Continuous testing and integration
Simple design
Advantages
Handles requirement changes.
Delivers value early.
Improves customer satisfaction.
Reduces project risk.
Defects are detected early.
Team communication improves.
Disadvantages
Less predictability for fixed scope.
Needs active customer involvement.
Documentation may be limited.
Requires experienced and disciplined teams.
Can be difficult in very large distributed projects.
14. Important Agile Principles 7 Marks
Deliver valuable software early and continuously.
Welcome changing requirements.
Deliver working software frequently.
Business people and developers should collaborate daily.
Build projects around motivated individuals.
Prefer direct communication.
Working software is the main measure of progress.
Maintain a sustainable development pace.
Focus on technical excellence and good design.
Keep solutions simple.
Use self-organizing teams.
Regularly improve the development process.
15. Extreme Programming (XP) 14 Marks
Extreme Programming is an agile method that emphasizes frequent releases, customer involvement, simple design, continuous testing and close team collaboration.
XP Values
Communication
Simplicity
Feedback
Courage
Respect
Major Practices
Planning game: Customers and developers decide release priorities.
Small releases: Working software is released frequently.
Simple design: Implement only what is currently needed.
Test-driven development: Tests are written before or with code.
Refactoring: Improve code structure without changing behavior.
Pair programming: Two programmers work together at one computer.
Continuous integration: Code is integrated and tested frequently.
Collective ownership: Any developer can improve any part of the code.
Coding standards: The team follows common coding rules.
On-site customer: A customer representative remains available.
Sustainable pace: Avoid excessive overtime.
User Stories
|
v
Release Planning
|
v
Small Iteration
|
+--> Write Test
+--> Pair Programming
+--> Simple Design
+--> Refactoring
+--> Continuous Integration
|
v
Small Release
Advantages
High software quality.
Fast feedback.
Easy handling of changes.
Reduced defect rate.
Strong team communication.
Limitations
Requires continuous customer involvement.
Pair programming may appear costly.
Less suitable for large distributed teams.
Needs disciplined developers.
16. Scrum Model 7 Marks
Scrum is an agile framework in which a team develops a product through short, fixed-length iterations called sprints.
Scrum Roles
Product Owner: Manages and prioritizes the product backlog.
Scrum Master: Facilitates Scrum and removes obstacles.
Development Team: Builds the product increment.
Scrum Events
Sprint planning
Daily Scrum
Sprint review
Sprint retrospective
Scrum Artifacts
Product backlog
Sprint backlog
Product increment
Product Backlog
|
v
Sprint Planning
|
v
Sprint Backlog
|
v
1-4 Week Sprint
|
+--> Daily Scrum
|
v
Working Increment
|
v
Review + Retrospective
17. Other Agile Process Models 14 Marks
1. Dynamic Systems Development Method
Focuses on rapid delivery and active user involvement.
Uses timeboxing and prioritized requirements.
Emphasizes fitness for business purpose.
2. Crystal Methods
Family of lightweight methods.
Process is selected according to team size and system criticality.
Focuses on people and communication.
3. Feature-Driven Development
Development is organized around small client-valued features.
Uses domain modeling and short feature iterations.
Suitable for larger teams.
4. Lean Software Development
Eliminate waste.
Build quality into the process.
Deliver quickly.
Respect people.
Optimize the whole system.
5. Kanban
Visualizes work using a board.
Limits work in progress.
Supports continuous flow.
Improves delivery time and process visibility.
18. Comparison of Software Process Models 14 Marks
Basis
Waterfall
Spiral
Incremental
Agile
Approach
Linear sequential
Risk-driven iterative
Multiple increments
Short adaptive iterations
Requirement changes
Difficult
Supported
Supported between increments
Welcomed
Risk analysis
Limited
Very strong
Moderate
Continuous practical risk reduction
Customer involvement
Low
High
Moderate to high
Very high
Delivery
At the end
Each spiral may create a version
Incremental releases
Frequent working releases
Suitable for
Stable small projects
Large high-risk projects
Modular projects
Changing and dynamic projects
19. Selection of a Suitable Process Model 7 Marks
Selection Factors
Requirement stability
Project size and complexity
Risk level
Customer availability
Team experience
Technology familiarity
Required delivery speed
Documentation and regulatory needs
Budget and schedule
Stable requirements and strict documentation may favour Waterfall.
High-risk development may favour Spiral.
A modular system may use Incremental development.
Frequently changing requirements may favour Agile.
Unit 1 Quick Revision
Software engineering applies systematic engineering principles to software development.
Software crisis means failure to deliver reliable software within cost and time limits.
SDLC covers planning, requirements, design, coding, testing, deployment and maintenance.
Waterfall is linear and suitable for stable requirements.
Spiral is risk-driven and suitable for large high-risk projects.
Prototype model helps clarify unclear requirements.
Incremental model delivers the system in small releases.
Unified Process is iterative, use-case driven and architecture-centric.
Agile delivers working software frequently and welcomes change.
XP uses pair programming, testing, refactoring and continuous integration.
Scrum organizes work into sprints.
Model selection depends on size, risk, requirements and customer involvement.
Important RGPV Exam Questions
Long Answer Questions
Define software engineering and explain its objectives and importance.
What is software crisis? Explain its causes and solutions.
Explain the phases of System Development Life Cycle with a diagram.
Explain the Waterfall Model with advantages and disadvantages.
Explain the Spiral Model and its major activities.
Compare Waterfall and Spiral models.
Explain the Prototype Model with its types, merits and limitations.
Explain the Incremental and RAD models.
Describe the Unified Process and its phases.
Define Agile development and explain Agile Manifesto values.
Explain important principles of agile software development.
Explain Extreme Programming and its major practices.
Explain Scrum roles, events and artifacts.
Discuss other agile process models.
Compare Waterfall, Spiral, Incremental and Agile models.
Explain the factors used to select a software process model.
Short Answer Questions
Define software engineering.
What is software crisis?
Define SDLC.
What is the Waterfall Model?
What is risk analysis in the Spiral Model?
Define prototype.
What is RAD?
State the phases of Unified Process.
Define Agile development.
State the four Agile Manifesto values.
What is pair programming?
What is refactoring?
Define Scrum sprint.
What is a product backlog?
Exam Tip: Process-model answers should always contain a definition,
neat diagram, phase-wise working, advantages, disadvantages and suitable applications.
Download Study Resources
Unit 1 PDF
Printable Unit 1 notes will be available soon.
Coming Soon
Important Questions
Expected Unit 1 questions will be available soon.
Coming Soon
Model Diagrams
Exam-ready process model diagrams will be available soon.
Coming Soon
Frequently Asked Questions
Software engineering is a systematic and disciplined approach to developing, operating and maintaining software.
Software crisis refers to project delays, cost overruns, poor quality and maintenance problems in large software systems.
It is suitable when requirements are complete, stable and well understood.
The main focus of the Spiral Model is identification and reduction of project risks.
Waterfall follows fixed sequential phases, while Agile uses short iterations, frequent releases and continuous feedback.
Important XP practices include pair programming, test-driven development, simple design, refactoring, continuous integration and small releases.
A sprint is a short fixed-duration development iteration in which the Scrum team creates a usable product increment.