Software engineering Study Guide
Study Guide
📖 Core Concepts
Software Engineering – systematic, disciplined, quantifiable approach to design, build, test, and maintain software (IEEE definition).
Requirements Engineering – eliciting, analyzing, specifying, and validating what the system must do (functional) and how it must behave (non‑functional).
Design Levels –
Architectural design: high‑level components, responsibilities, interfaces.
Detailed design: algorithms, data structures, internal relationships.
Construction – coding plus unit, integration, and debugging activities.
Testing – risk‑based evaluation of quality; aims to cover high‑risk areas with the fewest tests.
Maintenance – post‑release modifications (bug fixes, optimization, feature changes); consumes 40‑80 % of total project cost.
SWEBOK – IEEE‑published body of knowledge that defines the knowledge areas every graduate software engineer should master.
Code of Ethics – professional conduct guidelines for software engineers (IEEE/ACM).
---
📌 Must Remember
Functional vs Non‑functional Requirements
Functional → what the system does.
Non‑functional → how it does it (e.g., security, performance, maintainability).
Non‑functional categories: interface, performance, operating, life‑cycle, economic constraints.
Maintenance cost: up to 80 % of total project budget.
SWEBOK version 3.0 is the current reference for knowledge areas.
Ethics – follow the Software Engineering Code of Ethics for professional behavior.
---
🔄 Key Processes
Requirements Analysis
Elicit → Analyze → Specify → Validate.
Design
Architectural design (define components & interfaces) → Detailed design (choose algorithms & data structures).
Construction
Write code → Unit test → Integration test → Debug.
Testing (Risk‑Based)
Identify high‑risk modules → Prioritize tests → Execute minimal test set for maximal risk coverage.
Maintenance
Error correction → Optimization → Removal of obsolete features → Enhancement.
---
🔍 Key Comparisons
Functional vs Non‑functional Requirements
Purpose: behavior vs quality attributes.
Verification: functional → functional testing; non‑functional → performance/security/usability testing.
Architectural vs Detailed Design
Scope: system‑wide structure vs component‑level implementation.
Artifacts: component diagrams vs class/method specifications.
---
⚠️ Common Misunderstandings
“Testing = Debugging” – testing evaluates quality; debugging fixes defects found.
Non‑functional requirements are optional – they are mandatory constraints that often dominate success/failure.
Maintenance is low‑effort – actually consumes the majority of a system’s lifecycle cost.
---
🧠 Mental Models / Intuition
“Layers of abstraction” – think of software development as stacked layers: Requirements (what), Architecture (big picture), Detailed design (how), Code (concrete).
Risk‑Based Testing – treat tests like insurance: cover the most “expensive” (high‑risk) failures first with the smallest premium (fewest tests).
---
🚩 Exceptions & Edge Cases
Non‑functional requirements can become functional when a system must enforce a security policy (e.g., authentication).
Maintenance may involve redesign if a change impacts architectural constraints.
---
📍 When to Use Which
Choose Architectural Design when you need to define system boundaries, major components, and their interactions.
Use Detailed Design for implementing algorithms, selecting data structures, and specifying class interfaces.
Apply Risk‑Based Testing when time is limited; prioritize tests for modules with high failure impact or low reliability history.
Reference SWEBOK when designing curriculum or assessing competency gaps.
---
👀 Patterns to Recognize
“Requirement → Design → Code → Test → Maintain” loop appears in most project descriptions.
Non‑functional requirement clusters (e.g., security + performance) often dictate technology choices (encryption algorithms, caching).
High maintenance cost signals likely architectural deficiencies (tight coupling, poor modularity).
---
🗂️ Exam Traps
Choosing “testing = debugging” – exam may list this as a false statement.
Confusing functional with non‑functional – answer choices may swap definitions.
Under‑estimating maintenance cost – some questions give 10 % figure; correct answer is 40‑80 %.
SWEBOK version – ensure you pick version 3.0 (latest) not an earlier edition.
Ethics vs Legal requirements – ethics guidelines are professional standards, not statutory laws.
or
Or, immediately create your own study flashcards:
Upload a PDF.
Master Study Materials.
Master Study Materials.
Start learning in seconds
Drop your PDFs here or
or