1. Basics
- Definition: Systematic, disciplined, measurable approach to developing, operating, and maintaining software.
- Key Models:
Waterfall, Agile, Spiral, Incremental
2. Software Development Life Cycle (SDLC)
| Phase | Description |
|---|---|
| Requirement Analysis | Gather and document client needs. |
| Design | Build architecture and design specs. |
| Implementation | Code the solution. |
| Testing | Detect and fix bugs. |
| Deployment | Release the software. |
| Maintenance | Update, fix, and improve. |
3. Software Development Models
A. Waterfall – “One-Way Street”
- Key Features: Sequential, linear, documentation-heavy, testing late, rigid (no easy changes).
- Pros: Simple, clear milestones, good for fixed requirements.
- Cons: Inflexible, bugs found late, little customer feedback.
- Best For: Small, stable projects.
- Memory Hook: Waterfall = One-Way, Rigid.
B. Agile – “Adapt & Deliver”
- Key Features: Iterative, incremental, flexible, customer collaboration, continuous testing.
- Pros: Handles changes well, frequent feedback, early working software, early bug detection.
- Cons: Less predictable, needs active customer input, less documentation, requires skilled team.
- Best For: Dynamic, complex, customer-driven projects.
- Memory Hook: Agile = Sprints + Flexibility.
C. Spiral – “Iterative + Risk Management”
- Key Features: Iterative cycles (spirals), risk analysis in every phase, combines Waterfall + Agile elements.
- Pros: Excellent risk control, good for large/complex systems, allows early feedback, flexible.
- Cons: Complex, expensive, needs experienced teams, no fixed timeline.
- Best For: High-risk, evolving, complex projects.
- Memory Hook: Spiral = Cycles + Risk Checks.
D. V-Model – “Test as You Go”
- Key Features: Each dev phase has a matching test phase; Verification & Validation (V&V); testing planned early.
- Pros: High quality, early bug detection, clear structure.
- Cons: Inflexible, no early working version.
- Best For: Critical systems (defense, medical).
- Memory Hook: V = Verify & Validate.
4. Software Design Principles
- Modularity: Divide system into independent parts.
- Abstraction: Focus on essentials, hide complexity.
- Encapsulation: Bundle data and methods together.
- Cohesion: Group related functionalities (high = good).
- Coupling: Minimize interdependency (low = good).
5. Software Testing
| Level | Purpose |
|---|---|
| Unit | Test individual modules. |
| Integration | Test module interactions. |
| System | Validate the full system. |
| Acceptance | Verify it meets requirements. |
Types:
- Manual vs Automated
- Black Box: Test without knowing internal code.
- White Box: Test with internal code knowledge.
6. Metrics & Quality
- Metrics: LOC, defects per KLOC, productivity measures.
- Quality Factors:
- Correctness – Meets requirements.
- Reliability – Works without errors.
- Maintainability – Easy to update.
- Usability – User-friendly.
7. Software Maintenance
| Type | Purpose |
|---|---|
| Corrective | Fix bugs. |
| Adaptive | Adjust to new environments. |
| Perfective | Add features, improve performance. |
| Preventive | Prevent future issues. |
8. Agile Methodologies
- Scrum: Uses sprints; roles: Product Owner, Scrum Master, Team.
- Kanban: Visual task boards with To-Do, In Progress, Done.
- Extreme Programming (XP): Frequent releases, heavy customer feedback.
9. Software Configuration Management (SCM)
- Definition: Tracking and controlling software changes.
- Components:
- Version Control: Git, SVN.
- Change Management: Structured update handling.
10. Risk Management
- Types:
- Project Risks (budget, schedule).
- Technical Risks (failures, incompatibilities).
- Business Risks (market shifts).
- Steps: Identify → Analyze → Plan → Monitor.
11. Project Management
- Key Activities: Planning, Scheduling, Resource Allocation, Monitoring.
- Tools: Gantt Chart, PERT, CPM.
12. Design Patterns
- Creational: Singleton (one instance).
- Structural: Adapter (interface matching).
- Behavioral: Observer (notify on changes).
13. Reliability & Fault Tolerance
- Reliability: Probability of error-free operation.
- Fault Tolerance: Ability to function during failures.
14. Emerging Trends
- DevOps: Combines development and operations.
- Microservices: Small, independent services.
- Cloud Computing: On-demand platforms (AWS, Azure).
- AI in SE: Automated testing, debugging.
15. Software Ethics
- Respect user privacy.
- Deliver quality software.
- Avoid plagiarism and copyright issues.
MCQ
Q1. What is the primary goal of software engineering?
a) Reliable software
b) Economical software
c) Efficient software
d) All of the above
d
Q2. Which of the following is NOT a characteristic of software?
a) Software does not wear out
b) Software is reusable
c) Software is free from defects
d) Software is intangible
c
Q3. Which is the first step in the software development life cycle?
a) Testing
b) Requirement analysis
c) Design
d) Implementation
b
Q4. Which SDLC model is best suited for projects with unclear requirements?
a) Waterfall
b) Spiral
c) Agile
d) V-Model
c
Q5. The primary advantage of the Spiral model is:
a) Low cost
b) Risk management
c) Linear structure
d) High speed
b
Q6. Which principle emphasizes dividing a program into independent modules?
a) Modularity
b) Cohesion
c) Encapsulation
d) Abstraction
a
Q7. Which design principle focuses on keeping the interaction between modules minimal?
a) Coupling
b) Cohesion
c) Polymorphism
d) Inheritance
a
Q8. Which of these ensures high cohesion?
a) Functions of a module are closely related.
b) Modules are loosely connected.
c) Data and functions are hidden.
d) Modules have high dependencies.
a
Q9. Which type of testing is performed without knowledge of the internal code?
a) Black box testing
b) White box testing
c) Unit testing
d) Integration testing
a
Q10. What is the purpose of regression testing?
a) Verify individual components
b) Test performance under load
c) Ensure new changes do not break existing functionality
d) Check compliance with requirements
c
Q11. In which testing phase do developers perform code testing?
a) System testing
b) Acceptance testing
c) Unit testing
d) Integration testing
c
Q12. In the Waterfall model, testing is performed:
a) After each phase
b) Only after implementation
c) During implementation
d) Parallel to design
b
Q13. What is a key feature of the Agile model?
a) Fixed requirements
b) Iterative and incremental approach
c) Strict documentation
d) Sequential phases
b
Q14. Which of the following is NOT a phase in the V-Model?
a) Validation
b) Deployment
c) Testing
d) Design
b
Q15. Fixing bugs in the software after delivery is called:
a) Preventive maintenance
b) Adaptive maintenance
c) Corrective maintenance
d) Perfective maintenance
c
Q16. Modifying the software to support a new operating system is an example of:
a) Corrective maintenance
b) Adaptive maintenance
c) Perfective maintenance
d) Preventive maintenance
b
Q17. Which metric measures the number of defects per KLOC (thousand lines of code)?
a) Defect density
b) Cyclomatic complexity
c) Function points
d) Code coverage
a
Q18. What does maintainability measure in software?
a) Usability
b) Performance
c) Ease of making changes
d) Efficiency
c
Q19. Which quality factor ensures software meets user requirements?
a) Correctness
b) Portability
c) Reliability
d) Scalability
a
Q20. Which chart is commonly used for project scheduling?
a) Pie chart
b) Gantt chart
c) Line chart
d) Bar chart
b
Q21. The critical path in project management is:
a) The longest sequence of tasks
b) The shortest path to completion
c) The path with minimal resources
d) Tasks completed in parallel
a
Q22. What is the primary artifact used to manage work in Scrum?
a) Product roadmap
b) Backlog
c) Sprint goal
d) Burn-down chart
b
Q23. Which practice is NOT part of DevOps?
a) Continuous integration
b) Continuous delivery
c) Manual deployments
d) Infrastructure as code
c
Q24. Singleton design pattern ensures:
a) Multiple instances of a class
b) Only one instance of a class
c) No dependency between classes
d) Polymorphism
b
Q25. Which pattern is used to convert one interface to another?
a) Adapter
b) Observer
c) Builder
d) Proxy
a
Q26. Which of the following is NOT a benefit of microservices?
a) Scalability
b) Independent deployment
c) Centralized architecture
d) Fault isolation
c
Q27. Which technology supports on-demand computing resources?
a) Blockchain
b) Cloud computing
c) Big data
d) Edge computing
b
Q1. Which of the following is the correct sequence of steps in the SDLC?
a) Coding → Design → Requirement Analysis → Testing → Maintenance
b) Requirement Analysis → Design → Coding → Testing → Maintenance
c) Design → Coding → Requirement Analysis → Maintenance → Testing
d) Testing → Design → Coding → Maintenance → Requirement Analysis
b
Q2. In the Agile methodology, work is divided into:
a) Modules
b) Iterations or sprints
c) Waterfalls
d) Gantt charts
b
Q3. What is the primary purpose of integration testing?
a) To test individual modules
b) To verify the interfaces between modules
c) To test the entire system
d) To test user acceptance
b
Q4. In which phase of SDLC does user acceptance testing occur?
a) Design
b) Implementation
c) Testing
d) Maintenance
c
Q5. Which software development model is best suited for projects with high risk and complex requirements?
a) Waterfall model
b) Agile model
c) Spiral model
d) V-Model
c
Q6. The V-Model is also known as:
a) Linear sequential model
b) Verification and validation model
c) Prototype model
d) Incremental model
b
Q7. Which of the following metrics measures software complexity?
a) Function points
b) Cyclomatic complexity
c) Defect density
d) Productivity
b
Q8. Reliability in software is measured in terms of:
a) Mean Time Between Failures (MTBF)
b) Mean Time to Repair (MTTR)
c) Both MTBF and MTTR
d) Lines of code
c
Q9. Which of the following design principles minimizes the interdependencies between modules?
a) Modularity
b) Abstraction
c) Cohesion
d) Coupling
d
Q10. What is the primary goal of abstraction in software design?
a) To hide unnecessary details from the user
b) To combine data and functions
c) To reduce the size of the software
d) To ensure portability
a
Q11. Fixing errors found in software after delivery is referred to as:
a) Adaptive maintenance
b) Perfective maintenance
c) Corrective maintenance
d) Preventive maintenance
c
Q12. Adding new functionality to software after deployment is an example of:
a) Corrective maintenance
b) Adaptive maintenance
c) Perfective maintenance
d) Preventive maintenance
c
Q13. Which of the following tools is used for project scheduling?
a) Gantt chart
b) Flowchart
c) Histogram
d) Pie chart
a
Q14. The critical path in project management is:
a) The shortest path to completion
b) The longest path in terms of time
c) The path with the highest costs
d) The path with the most resources
b
Q15. In Scrum, who is responsible for removing obstacles faced by the team?
a) Product Owner
b) Scrum Master
c) Development Team
d) Stakeholders
b
Q16. Which of the following is NOT a principle of DevOps?
a) Continuous Integration
b) Continuous Deployment
c) Manual Code Review
d) Infrastructure as Code
c
Q17. Risk mitigation involves:
a) Identifying risks only
b) Analyzing and prioritizing risks
c) Reducing the impact of risks
d) All of the above
d
Q18. Business risks in software engineering include:
a) Schedule slippage
b) Budget overruns
c) Changing market conditions
d) Technical feasibility issues
c
Q19. What is the primary benefit of microservices architecture?
a) Centralized architecture
b) Independent and scalable services
c) High dependency between modules
d) Minimal fault tolerance
b
Q20. Continuous Delivery ensures that:
a) Software is always production-ready
b) All manual testing is eliminated
c) Software design is completely automated
d) Only deployment is automated
a
