Software Engineering Notes
All Topics (14)
- 1. Software Engineering
- 2. Why We Need Software Engineering
- 3. Principles of Software Engineering (SE)
- 4. Software Product and Software Process
- 5. Program vs Software Product in Software Engineering
- 6. TYPES OF SOFTWARE
- 7. CHARACTERISTICS OF SOFTWARE ENGINEERING
- 8. SDLC β Software Development Life Cycle
- 9. Linear Sequential Model (Waterfall Model)
- 10. Prototyping Model
- 11. RAD (Rapid Application Development) Model
- 12. EVOLUTIONARY MODEL (Iterative Model)
- 13. Spiral Model
- 14. Agile Software Process
11. RAD (Rapid Application Development) Model
RAD is a software development methodology that focuses on rapid prototyping and fast delivery of software.
In RAD, a working model (prototype) is developed quickly and improved based on user feedback.
It is an incremental and high-speed version of the linear model, where development is done using component-based construction.
If requirements are well understood, RAD can deliver a fully functional system in a short time (about 60–90 days).
Phases of RAD Model
1. Requirement Planning
- Requirements are gathered using techniques like brainstorming.
- Strong communication between users and developers.
2. User Design / User Description
- Users and developers work together.
- Requirements are analyzed and refined.
3. Construction (Development Phase)
- System design, coding, and testing are done.
- Prototype is developed and refined repeatedly.
4. Cutover (Deployment)
- Final system is installed.
- Includes user acceptance testing and training.
RAD Model Flow
Requirement Planning → User Design → Construction → Cutover (Deployment)
Advantages of RAD Model
- Faster Development
- Reduces overall development time.
- Component Reusability
- Existing components can be reused.
- Customer Feedback
- Continuous user involvement improves quality.
- Early Integration
- Integration issues are solved early.
- Quick Results
- Working system is delivered quickly.
Disadvantages of RAD Model
- Requires Skilled Team
- Needs highly experienced developers.
- High Dependency on Modeling Skills
- Good design skills are necessary.
- Continuous Customer Involvement
- Customer must be available throughout the process.
- Not Suitable for All Projects
- Only works well for modular and well-defined systems.
12. EVOLUTIONARY MODEL (Iterative Model)
The Evolutionary Model is a software development process in which the system is developed in iterations (repeated cycles).
Each iteration produces an improved and more complete version of the software until the final product is achieved.
It is also called an Iterative Model because development happens step-by-step in cycles.
Key Concept
- Software is not built all at once.
- It is developed in small parts (increments).
- Each cycle improves the previous version.
- Feedback is taken after every iteration.
Working of Evolutionary Model
Step 1: Requirement
- Basic requirements are collected.
Iteration Cycle (Repeated Steps)
Each build goes through the same phases:
Build 1
- Design & Development
- Testing
- Implementation (Release of first version)
Build 2
- Improved Design & Development
- Testing
- Implementation (Improved version)
Build 3
- Further Design & Development
- Testing
- Implementation (Final improved version)
Final Product
- After multiple iterations, a complete and refined software system is produced.
Advantages of Evolutionary Model
- Early Delivery
- Working software is available early.
- Customer Feedback
- Users can give feedback after each iteration.
- Easy to Manage Changes
- Changes can be added in next cycle.
- Reduced Risk
- Problems are identified early.
- Better Quality
- Continuous improvement improves final product.
Disadvantages of Evolutionary Model
- Difficult to Manage
- Multiple iterations can be complex.
- Requires Strong Planning
- Needs proper control and scheduling.
- Not Suitable for Small Projects
- Can be time-consuming for simple systems.
- More Costly
- Repeated cycles increase cost.
13. Spiral Model
The Spiral Model is a software development process model that combines the features of:
- Iterative Model (repeated development cycles)
- Linear / Waterfall Model (step-by-step structured phases)
- Strong focus on risk analysis
It was proposed by Barry Boehm.
The model develops software in repeated loops (spirals), and each loop improves the product step by step.
Structure of Spiral Model
Each loop (cycle) in the spiral has 4 main phases:
A. Objective Identification (Planning Phase)
In this phase, we define:
- What is the goal of the project?
- What are the requirements?
- What are the alternatives?
- What are the constraints (budget, time, technology)?
Output: Clear objectives and plan for the iteration
B. Risk Analysis (Most Important Phase)
In this phase, we:
- Identify possible risks (cost, time, technical issues)
- Analyze how serious they are
- Find solutions to reduce risks
Example risks:
- Budget overrun
- Wrong requirements
- Technology failure
If risks are high, we may use prototyping to test ideas.
C. Development and Testing (Engineering Phase)
In this phase:
- Actual software is developed
- Coding is done
- Testing is performed
- Integration of modules happens
Output: Working version of software (increment)
D. Review & Planning Next Iteration
In this phase:
- Customer feedback is taken
- Product is evaluated
- Decision is made:
- Continue next spiral cycle OR
- Stop development if complete
Next loop is planned with improvements
Diagram Concept
Each loop of spiral = one development cycle:
Planning → Risk Analysis → Development → Testing → Review → Next Loop
Advantages of Spiral Model
a. Best for large and complex projects
b. Strong risk management
c. Early detection of problems
d. Software is developed in early stages (prototypes available)
e. Flexible to changes
Disadvantages of Spiral Model
a. Very costly model
b. Complex to manage
c. Not suitable for small projects
d. Requires expert risk analysis
e. Too much documentation and control
When to Use Spiral Model?
Use it when:
- Project is large and complex
- Risk is high
- Requirements are unclear
- Example: Banking systems, defense systems, aerospace software
Example of Spiral Model
Example: Online Banking System
A bank wants to build a secure mobile banking app.
Spiral Cycle 1:
- Plan: Basic login + account view
- Risk: Security issues in authentication
- Solution: Use OTP + encryption
- Develop: Simple login system
- Review: Customer testing
Spiral Cycle 2:
- Plan: Add money transfer feature
- Risk: Transaction failure, fraud risk
- Solution: Two-factor authentication
- Develop: Transfer module
- Review: Feedback collected
Spiral Cycle 3:
- Plan: Add bill payment system
- Risk: Payment gateway failure
- Solution: Backup gateway integration
- Develop & Test feature
14. Agile Software Process
Agile is not a single development model.
It is an umbrella term that includes several software development methods.
These methods follow a common philosophy:
a. Iterative development
b. Fast delivery of working software
c. Continuous customer feedback
d. High quality improvement
So, Agile = collection of lightweight development approaches.
Core Principles of Agile
- Iterative & incremental development
- Frequent delivery of software
- Strong customer collaboration
- Welcoming changing requirements
- Continuous improvement
Agile Methodologies
1. Scrum Methodology
Scrum is the most popular Agile method.
Team Structure
Scrum is a team-based approach, where everyone works together.
Roles in Scrum:
Scrum Master
- Acts like a coach
- Helps team follow Scrum rules
- Removes obstacles
Not a boss, just a guide
Product Owner (PO)
- Represents customer and business
- Defines requirements
- Prioritizes features
Development Team
- Developers, testers, designers
- Work together to build product
- No strict hierarchy
Scrum Process
- Product backlog (list of requirements)
- Sprint planning (short time cycle)
- Sprint (2–4 weeks development)
- Daily stand-up meeting
- Sprint review & feedback
Key Feature:
Fast development in small cycles called Sprints
2. XP (Extreme Programming)
XP is a highly customer-focused and quality-driven Agile method.
Key Features of XP:
- Continuous coding and testing
- Frequent releases
- Strong customer involvement
- Simple design
- Changing requirements accepted anytime
XP Practices:
- Pair Programming (2 developers on 1 system)
- Test Driven Development (TDD)
- Continuous Integration
- Refactoring (improving code regularly)
Goal of XP:
Deliver high-quality software that exactly matches customer needs
3. Crystal Methodology
Crystal is a family of Agile methods, not a single fixed model.
Key Idea:
- Focus depends on project size and complexity
- Different teams = different Crystal methods
Features:
- People-oriented
- Flexible process
- Less documentation
- Frequent communication
Types:
- Crystal Clear (small teams)
- Crystal Orange (medium projects)
- Crystal Red (large projects)
4. FDD (Feature Driven Development)
FDD focuses on features of the software.
Main Idea:
Build software feature by feature
FDD Process:
- Develop overall model
- Build feature list
- Plan by feature
- Design by feature
- Build by feature
Key Features:
- Works well for large projects
- Structured and disciplined
- Progress tracked by completed features
5. DSDM (Dynamic Systems Development Method)
DSDM is a business-focused Agile method.
Key Principles:
- Active user involvement
- Frequent delivery
- Fixed time and cost
- Prioritization of requirements
DSDM Phases:
- Feasibility study
- Business study
- Functional model iteration
- Design & build iteration
- Implementation
Key Feature:
Time and budget are fixed, but features can change
6. Lean Software Development
Lean is based on Lean Manufacturing principles (Toyota system).
Main Idea:
Deliver value to customer with minimum waste
Principles of Lean:
- Eliminate waste
- Build quality in
- Deliver fast
- Respect people
- Continuous improvement
Goal:
β Faster delivery
β Less waste
β Higher efficiency
Quick Comparison
| Method | Focus | Key Feature |
|---|---|---|
| Scrum | Team-based | Sprints |
| XP | Customer + quality | Pair programming, TDD |
| Crystal | People + flexibility | Different methods for different teams |
| FDD | Features | Feature-by-feature development |
| DSDM | Business + time control | Fixed time & cost |
| Lean | Efficiency | Waste reduction |