Software Engineering Notes
Comprehensive Exam Preparation Guide
Section A: Key Definitions (2-3 Marks)
1. Software Engineering
The systematic, disciplined, and quantifiable approach to the development, operation, and
maintenance of software.
2. Generic View of Software Process
A common framework of activities followed in all software projects:
• Communication: Requirements gathering.
• Planning: Task scheduling and resource estimation.
• Modeling: Design and architecture.
• Construction: Coding and testing.
• Deployment: Delivery and feedback.
3. CMMI (Capability Maturity Model Integration)
A process improvement framework that helps organizations improve development processes to
achieve higher quality, efficiency, and predictability.
4. Requirements Analysis
The process of gathering, analyzing, and defining user needs and system constraints for software
development.
5. Feasibility Study
Evaluation of whether a project is practical. Key aspects:
• Technical: Available technology and expertise.
• Economic: Cost vs. Benefit.
• Operational: Support and usability.
• Legal: Compliance and copyright.
Section B: Detailed Concepts (5 Marks)
1. Software Myths
Customer Myths: Requirements can be changed easily anytime. Reality: Changes late in the
cycle increase costs and delays significantly.
Developer Myths: The job is done once the code works. Reality: Maintenance and evolution
account for 60-80% of the software lifecycle.
Management Myths: Adding more people to a late project speeds it up. Reality: Communication
overhead actually slows it down (Brooks' Law).
2. Layered Technology
Software Engineering is viewed as a layered technology:
• Quality Focus: The foundation and organizational commitment to quality.
• Process: The glue that holds layers together; defines the framework.
• Methods: Provide technical "how-to's" for building software.
• Tools: Automated support for process and methods (CASE tools).
3. Spiral Model & Risk Analysis
An evolutionary model that couples iterative nature with systematic risk assessment. Phases:
Planning, Risk Analysis, Engineering, and Evaluation. Risk Analysis involves identifying and
mitigating technical or budget risks before they become issues.
4. Functional vs Non-Functional Requirements
Type Focus Example
Functional System behavior/services "User can generate a PDF report."
Non-Functional System qualities/constraints "The report must generate within 5 seconds."
5. User vs System Requirements
Aspect User Requirements System Requirements
Language Natural Language Technical Specifications
Audience End-users, Managers Developers, Testers
Level High-level goals Detailed descriptions
6. Software Requirements Document (SRD)
The SRD is the official statement of system requirements. It includes an Introduction, Overall
Description, Functional/Non-functional details, and System Models. It serves as a baseline for
validation and a contract between client and developer.
Software Engineering Study Notes | Created for Educational Use