Software Engineering

1. Software Engineering Basics

  • Definition: The application of systematic, disciplined, and quantifiable approaches to the development, operation, and maintenance of software.
  • Key Models:
    • Waterfall
    • Agile
    • Spiral
    • Incremental

2. Software Development Life Cycle (SDLC)

  1. Requirement Analysis: Understand and document what the client needs.
  2. Design: Create system architecture and design specifications.
  3. Implementation: Code the software.
  4. Testing: Check for bugs and verify functionality.
  5. Deployment: Install the software in the client environment.
  6. Maintenance: Fix issues and improve features over time.

3. Software Development Models

  • Waterfall Model: Sequential stages; simple but inflexible.
  • Agile Model: Iterative; continuous feedback and improvement.
  • Spiral Model: Combines prototyping and iterative design; risk-focused.
  • V-Model: Verification and Validation model; testing occurs parallel to development.

4. Software Design Principles

  1. Modularity: Divide into small parts.
  2. Abstraction: Focus on essential details.
  3. Encapsulation: Bundle data and operations together.
  4. Cohesion: High cohesion means related functions are grouped.
  5. Coupling: Low coupling ensures minimal interdependency.

5. Software Testing

  • Levels:
    1. Unit Testing: Tests individual modules.
    2. Integration Testing: Checks combined parts.
    3. System Testing: Tests the whole system.
    4. Acceptance Testing: Validates against requirements.
  • Types:
    • Manual vs. Automated
    • Black Box (no code knowledge)
    • White Box (code knowledge)

6. Software Metrics and Quality

  • Metrics: Measure performance (e.g., lines of code, defects per KLOC).
  • Quality Factors:
    1. Correctness: Meet requirements.
    2. Reliability: Error-free.
    3. Maintainability: Easy to update.
    4. Usability: User-friendly.

7. Software Maintenance

  • Types:
    1. Corrective: Fix bugs.
    2. Adaptive: Adapt to new environments.
    3. Perfective: Improve performance/features.
    4. Preventive: Avoid future issues.

8. Agile Methodologies

  • Scrum: Uses sprints; involves Product Owner, Scrum Master, and Team.
  • Kanban: Visual workflow with “To Do,” “In Progress,” “Done.”
  • Extreme Programming (XP): Focus on frequent releases and customer feedback.

9. Software Configuration Management (SCM)

  • Definition: Tracks and controls changes to the software.
  • Components:
    1. Version Control: Git, SVN.
    2. Change Management: Handling updates systematically.

10. Software Risk Management

  • Types of Risks:
    • Project Risks: Budget, schedule overruns.
    • Technical Risks: Tech failures.
    • Business Risks: Market changes.
  • Risk Mitigation Steps:
    1. Identify
    2. Analyze
    3. Plan
    4. Monitor

11. Software Project Management

  • Key Activities:
    1. Planning
    2. Scheduling
    3. Resource Allocation
    4. Monitoring
  • Tools: Gantt Chart, PERT, CPM

12. Software Design Patterns

  1. Creational: e.g., Singleton (one instance of a class).
  2. Structural: e.g., Adapter (match interfaces).
  3. Behavioral: e.g., Observer (notify when data changes).

13. Software Reliability and Fault Tolerance

  • Reliability: Probability of functioning without failure.
  • Fault Tolerance: System’s ability to continue operating during faults.

14. Emerging Trends

  • DevOps: Integrating development and operations.
  • Microservices: Small, independent services.
  • Cloud Computing: On-demand resources (AWS, Azure).
  • AI in SE: Automating testing, debugging.

15. Software Ethics

  • Respect user privacy.
  • Deliver high-quality software.
  • Avoid plagiarism and copyright violations.

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