IT 604(B) • Unit I

Software Process Models and Agile Development

Complete RGPV exam-oriented notes on software engineering introduction, software problems, SDLC, Waterfall Model, Spiral Model, Unified Process, Agile Process, Extreme Programming and other agile models.

Start Unit 1 Notes

1. Introduction to Software Engineering 14 Marks

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

  1. Specification: Define services, constraints and requirements.
  2. Design and implementation: Convert requirements into software.
  3. Validation: Check that the software satisfies requirements.
  4. 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

  1. Requirements are collected and finalized.
  2. System and software design are prepared.
  3. Developers implement the design.
  4. Modules are integrated and tested.
  5. The system is delivered.
  6. 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

  1. Planning: Define objectives, alternatives and constraints.
  2. Risk analysis: Identify and resolve technical and management risks.
  3. Engineering: Design, develop and test the next version.
  4. 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.
Core Requirements | +--> Increment 1 --> Working Release | +--> Increment 2 --> Improved Release | +--> Increment 3 --> Complete System

Advantages

  • Early delivery of useful software.
  • Changes can be handled between increments.
  • Lower initial cost.
  • Risk is distributed.
  • Customer feedback improves future releases.

Disadvantages

  • Requires good overall architecture.
  • Integration may become complex.
  • Not suitable when the system cannot be divided.

11. Rapid Application Development Model 7 Marks

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

  1. Define software engineering and explain its objectives and importance.
  2. What is software crisis? Explain its causes and solutions.
  3. Explain the phases of System Development Life Cycle with a diagram.
  4. Explain the Waterfall Model with advantages and disadvantages.
  5. Explain the Spiral Model and its major activities.
  6. Compare Waterfall and Spiral models.
  7. Explain the Prototype Model with its types, merits and limitations.
  8. Explain the Incremental and RAD models.
  9. Describe the Unified Process and its phases.
  10. Define Agile development and explain Agile Manifesto values.
  11. Explain important principles of agile software development.
  12. Explain Extreme Programming and its major practices.
  13. Explain Scrum roles, events and artifacts.
  14. Discuss other agile process models.
  15. Compare Waterfall, Spiral, Incremental and Agile models.
  16. Explain the factors used to select a software process model.

Short Answer Questions

  1. Define software engineering.
  2. What is software crisis?
  3. Define SDLC.
  4. What is the Waterfall Model?
  5. What is risk analysis in the Spiral Model?
  6. Define prototype.
  7. What is RAD?
  8. State the phases of Unified Process.
  9. Define Agile development.
  10. State the four Agile Manifesto values.
  11. What is pair programming?
  12. What is refactoring?
  13. Define Scrum sprint.
  14. 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.