2.6.1 Waterfall Model
- Description: Sequential, linear approach where each phase must be completed before the next begins.
- Key Characteristics:
- Sequential phases with limited overlap.
- Heavy emphasis on planning, schedules, budgets, and documentation.
- Formal sign-offs after each phase.
- Strengths:
- Suitable for less experienced teams.
- Easy to track progress.
- Ensures quality, reliability, and maintainability.
- Weaknesses:
- Inflexible and costly to make changes later.
- Problems often detected late (during testing).
- Poor handling of requirement changes.
2.6.2 Incremental Model
- Description: System is developed in small, functional increments.
- Key Characteristics:
- Combines Waterfall with iterative prototyping.
- Delivers system in mini-waterfalls (increments).
- Strengths:
- Early delivery of working components.
- Easier risk management and flexibility.
- Weaknesses:
- System architecture issues may arise.
- Rigid phase boundaries.
- Interfaces must be well-defined.
2.6.3 Software Reengineering and Reverse Engineering
- Software Reengineering: Restructures and updates existing systems without changing functionality.
- Activities:
- Inventory Analysis
- Document Restructuring
- Design Recovery
- Code Restructuring
- Data Restructuring
- Forward Engineering
- Reverse Engineering: Analyzes software to understand functionality for rebuilding or improvement.
2.6.4 Object-Oriented Software Development (OOSD)
- Description: Organizes software around objects that represent real-world entities.
- Key Concepts:
- Classes and Objects
- Inheritance
- Polymorphism
- Advantages:
- Handles diverse data types.
- Models complex relationships.
- Scalable and flexible.
- Applications: Web applications, AI, CAM.
2.6.5 Component-Based Development
- Description: Uses pre-built software components to build applications.
- Types of Components:
- In-Process Client Components
- Stand-Alone Client Components
- Stand-Alone Server Components
- In-Process Server Components
- Strengths:
- Reduces development time.
- Encourages modularity and reusability.
- Weaknesses:
- Requires continuous integration.
- Poorly defined requirements can cause failure.
2.6.6 Web-Based Application Development
- Description: Uses web technologies for lightweight, scalable applications.
- Technologies:
- SOAP (Simple Object Access Protocol)
- WSDL (Web Services Description Language)
- Advantages:
- Platform independence.
- Real-time integration.
- Challenges:
- Risk of redundant tasks.
- Complexity in integration across APIs.
2.7 Selection of SDLC Model
- Factors for Selection:
- Team size and skills.
- Technology constraints.
- Project size and complexity.
- Stakeholder priorities.
2.8 Iterative Development Models
2.8.1 Prototyping Methodology
- Description: Builds a quick prototype for user feedback before full-scale development.
- Phases:
- Identify Requirements
- Develop Initial Prototype
- Test and Revise
- Obtain User Signoff
- Strengths:
- Early detection of issues.
- Improves user participation.
- Weaknesses:
- Inadequate analysis.
- Frequent requirement changes.
2.8.2 Spiral Model
- Description: Iterative model focusing on risk management.
- Key Characteristics:
- Iterative prototyping and refinement.
- Risk analysis at each phase.
- Strengths:
- Risk-focused.
- Flexible for large projects.
- Weaknesses:
- Complex management.
- Skilled project management required.
2.8.3 Rapid Application Development (RAD)
- Description: Focuses on quick development through iterative prototyping and user involvement.
- Strengths:
- Fast delivery.
- Encourages user feedback.
- Weaknesses:
- Quality may be compromised.
- Poor documentation.
2.8.4 Agile Software Development
- Description: Iterative approach with a focus on collaboration, flexibility, and customer feedback.
- Key Characteristics:
- Time-boxed iterations.
- Close team collaboration.
- Continuous feedback loops.
- Strengths:
- Quick response to changing requirements.
- High-quality outcomes.
- Weaknesses:
- Poor documentation.
- Lack of long-term planning.
2.8.5 DevOps
- Description: Integrates development and operations teams for seamless delivery.
- Strengths:
- Faster delivery cycles.
- Improved collaboration.
- Risks: Potential security vulnerabilities.
2.8.6 DevSecOps
- Description: Integrates security practices throughout the SDLC.
- Key Controls:
- Automated vulnerability scanning.
- Security training for developers.