Software Engineering Study Notes
Exam-focused coverage of all 5 units — software process models, requirements engineering, design concepts, testing, quality, and maintenance.
- 1-Mark Qs
- 52 Definitions
- 5-Mark Qs
- 32 Explanations
- 15-Mark Qs
- 13 Detailed answers
- PYQs
- 2021–24 Previous years
Software Process & Process Models
Software Characteristics · Software Crisis · Process Framework · CMMI · Waterfall · Incremental · Spiral · V-Model · RAD · Agile · DevOps
(b) Intangibility: Cannot be seen or touched.
(c) Evolvability: Software can be updated and modified.
(d) No wear-out: Software does not degrade with time like hardware.
Validation: "Are we building the right product?" — checks the product meets user needs.
(a) Complexity: Large programs may have millions of lines of code with intricate interdependencies.
(b) Intangibility: Cannot be physically touched; exists as logical entities.
(c) Conformance: Must conform precisely to user requirements — even small errors can cause major failures.
(d) No physical wear-out: Does not degrade with use; defects are caused by design errors, not aging.
(e) Ease of change: Can be easily modified to adapt to new requirements or environments.
(f) Reusability: Components can be reused across different systems.
(g) Continuous development: Software evolves throughout its lifetime.
(a) Communication: Understanding requirements from stakeholders.
(b) Planning: Estimating cost, schedule, and resources.
(c) Modeling: Creating representations of the system (requirements, design models).
(d) Construction: Coding, testing, and integration.
(e) Deployment: Delivering the software to users.
Umbrella Activities support the framework throughout the process:
(a) Software Configuration Management (SCM)
(b) Project Tracking & Management
(c) Risk Management
(d) Formal Technical Reviews
(e) Software Quality Assurance
(f) Measurement
Level 1 — Initial: Process is unpredictable, poorly controlled, reactive. Success depends on individual effort.
Level 2 — Managed: Projects are planned, performed, measured, and controlled. Requirements are managed, and processes are institutionalized.
Level 3 — Defined: Processes are well-characterized and understood, described in standards and procedures. Organization has a set of standard processes.
Level 4 — Quantitatively Managed: The organization and projects establish quantitative objectives for quality and process performance. Processes are measured and controlled using statistical techniques.
Level 5 — Optimizing: Continuous process improvement is enabled by quantitative feedback and from piloting innovative ideas and technologies.
| Aspect | Waterfall | Agile |
|---|---|---|
| Approach | Sequential / Linear | Iterative / Incremental |
| Flexibility | Rigid — changes are costly | Flexible — changes welcome |
| Customer Involvement | At beginning and end only | Continuous throughout |
| Delivery | Single release at end | Frequent small releases |
| Risk Management | Late risk identification | Early and continuous risk mgmt |
| Documentation | Heavy documentation | Minimal, just enough |
| Testing | After development | Continuous testing |
| Suitability | Well-understood requirements | Evolving requirements |
(1) Determine Objectives: Identify objectives and alternatives for the current phase.
(2) Identify & Resolve Risks: Identify risks and strategies to resolve them.
(3) Develop & Test: Develop and test the deliverables (prototype, design, code).
(4) Review & Plan: Review results with customer, plan next phase.
Advantages: Risk handling, flexibility, suitability for large projects.
Disadvantages: Complex, requires risk expertise, can be expensive.
Scrum: Work is divided into 2-4 week Sprints. Roles: Product Owner, Scrum Master, Development Team. Ceremonies: Sprint Planning, Daily Stand-up, Sprint Review, Retrospective.
Kanban: Visual workflow management using a Kanban board with columns (To Do, In Progress, Done). Focus on continuous delivery without fixed iterations. Limits Work In Progress (WIP).
XP (Extreme Programming): Engineering-focused agile. Practices include: Test-Driven Development (TDD), Pair Programming, Continuous Integration, Refactoring, Simple Design, On-site Customer, Small Releases.
(a) CI/CD: Continuous Integration and Continuous Deployment pipelines.
(b) Infrastructure as Code (IaC): Managing infrastructure through code (Terraform, Ansible).
(c) Monitoring & Logging: Real-time monitoring (Prometheus, ELK stack).
(d) Microservices: Decentralized architecture enabling independent deployments.
(e) Containerization: Using Docker and Kubernetes for consistent environments.
Left side (Development): Requirements → System Design → Architecture Design → Module Design
Right side (Testing): Acceptance Testing → System Testing → Integration Testing → Unit Testing
For each level: Unit Test ↔ Module Design, Integration Test ↔ Architecture Design, System Test ↔ System Design, Acceptance Test ↔ Requirements.
Advantages: Early test planning, high success rate, clear deliverables.
Disadvantages: Still rigid, no early prototype, not suitable for changing requirements.
Incremental Model: Software is designed, implemented, and tested incrementally. The product is delivered in increments, each adding functionality. Reduces early project risk and allows partial utilization.
Spiral Model: Risk-driven iterative model. Each loop goes through: Objective setting → Risk analysis → Development & testing → Planning next loop. Best for large, complex, high-risk projects.
Comparison:
| Feature | Waterfall | Incremental | Spiral |
|---|---|---|---|
| Approach | Sequential | Incremental | Iterative + Risk-driven |
| Flexibility | Low | Medium | High |
| Risk Management | Late | Partial | Continuous |
| Customer Feedback | End only | After each increment | Each iteration |
| Cost | Lower initially | Distributed | Higher (risk analysis) |
| Best For | Stable requirements | Evolving requirements | High-risk projects |
Scrum Framework:
• Roles: Product Owner (defines backlog), Scrum Master (facilitates), Team (developers).
• Sprint: 2-4 week time-boxed iteration.
• Ceremonies: Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective.
• Artifacts: Product Backlog, Sprint Backlog, Increment.
Extreme Programming (XP):
Values: Communication, Simplicity, Feedback, Courage, Respect.
Practices: TDD, Pair Programming, Continuous Integration, Refactoring, Small Releases, On-site Customer, Collective Ownership.
Kanban:
Visualize workflow, limit WIP, manage flow, make policies explicit, implement feedback loops, improve collaboratively. Uses Kanban board with columns.
DevOps:
A cultural and technical movement that unifies software development (Dev) and software operation (Ops). Key aspects: CI/CD pipelines, Infrastructure as Code, Automated testing, Monitoring, Cloud-native deployment, Microservices architecture.
(1) Communication: Requirements gathering and stakeholder communication.
(2) Planning: Estimation, scheduling, risk management.
(3) Modeling: Requirements and design modeling.
(4) Construction: Coding, testing, integration.
(5) Deployment: Delivery and feedback.
Umbrella Activities:
(1) Software Configuration Management (SCM): Manages changes, versions, baselines.
(2) Project Tracking & Management: Monitors progress against plan.
(3) Risk Management: Identifies, analyzes, mitigates risks.
(4) Formal Technical Reviews: Peer reviews of work products.
(5) Software Quality Assurance (SQA): Audits and ensures quality standards.
(6) Measurement: Collects metrics for process improvement.
(7) Reuse: Identifies reusable components.
(8) Tool Support: Uses CASE tools for automation.
CMMI 5 Levels: (1) Initial (unpredictable) → (2) Managed (planned) → (3) Defined (standardized) → (4) Quantitatively Managed (measured) → (5) Optimizing (continuously improving).
- Software crisis and characteristics are guaranteed 1-mark questions.
- CMMI levels (5) and process framework are frequently asked.
- Waterfall vs Agile comparison table is a very common 5-mark question [2023].
- Spiral model with its 4 quadrants is a favorite 5/15 mark topic [2022, 2023].
- Agile (Scrum, XP, Kanban) comparison is often asked for 15 marks.
- DevOps is a newer but increasingly important topic.
Software Requirements Engineering
Requirements Engineering Process · Functional/Non-functional · Elicitation · SRS Document · Validation · Use Case Diagrams · RTM
Non-functional: Describe how the system should be (e.g., performance, security, reliability).
(2) Analysis: Refining, resolving conflicts, prioritizing, and modeling requirements. Checks for consistency, completeness, and correctness.
(3) Specification: Documenting requirements in the SRS document. Can be formal or informal.
(4) Validation: Ensuring the requirements are valid, complete, consistent, and testable. Uses reviews, prototyping, and test case generation.
(5) Management: Tracking and controlling changes to requirements throughout the project. Uses RTM and change control processes.
Non-functional Requirements: Define how the system should behave. Examples:
• Performance: Response time < 2 seconds
• Security: Passwords must be encrypted
• Reliability: 99.9% uptime
• Usability: System shall be learnable in 2 hours
• Portability: System shall run on Windows and Linux
(2) Questionnaires/Surveys: Structured questions sent to many stakeholders. Advantage: wide coverage. Disadvantage: limited depth.
(3) Observation (Job Shadowing): Watching users perform their tasks. Advantage: reveals unstated needs. Disadvantage: may affect behavior.
(4) Prototyping: Building a working model to clarify requirements. Advantage: users see concrete output. Disadvantage: may create unrealistic expectations.
(5) Workshops (JAD): Structured group meetings with all stakeholders. Advantage: rapid consensus. Disadvantage: requires skilled facilitator.
(2) Overall Description: Product perspective, functions, user characteristics, constraints, assumptions.
(3) Specific Requirements: Functional requirements, interface requirements (user, hardware, software, communication), performance requirements, design constraints, software system attributes.
(4) Appendix: Analysis models, issue lists, requirements cross-reference.
A good SRS is Correct, Unambiguous, Complete, Consistent, Ranked, Verifiable, Modifiable, Traceable.
Elements:
• Actor: External entity (stick figure icon).
• Use Case: Oval shape representing a function.
• System Boundary: Rectangle enclosing use cases.
• Associations: Lines connecting actors to use cases.
• Include/Extend: Relationships between use cases.
Example (Online Library):
Actors: Student, Librarian
Use Cases: Search Books, Borrow Books, Return Books, Add Books (Librarian only), View History
(1) Forward Traceability: Requirements → Design → Code → Test Cases.
(2) Backward Traceability: Code → Design → Requirements.
(3) Bidirectional: Both directions.
RTM columns typically include: Req ID, Req Description, Design Element, Code Module, Test Case ID, Test Status. RTM helps identify missing test cases, measure project progress, and ensure compliance.
(1) Elicitation: Collecting requirements from stakeholders using interviews, questionnaires, observation, prototyping, workshops, and brainstorming. Focus on understanding the problem domain and stakeholder needs.
(2) Analysis: Classifying requirements, resolving conflicts, prioritizing (MoSCoW method: Must, Should, Could, Won't), and modeling. Produces use case models, data flow diagrams.
(3) Specification: Writing the formal SRS document. SRS must be: Correct, Unambiguous, Complete, Consistent, Ranked, Verifiable, Modifiable, Traceable.
(4) Validation: Reviewing SRS for correctness through reviews, prototyping, and test case derivation. Ensures the SRS is what the customer wants.
(5) Management: Managing requirement changes using RTM, change control boards, and version control.
SRS Structure (IEEE 830-1998):
(1) Introduction: Purpose, Scope, Definitions, References, Overview
(2) Overall Description: Product Perspective, Functions, User Characteristics, Constraints, Assumptions
(3) Specific Requirements: Functional, Interface, Performance, Design Constraints, Attributes
(4) Appendices: Analysis models, Issue list
Components:
• Actors: People, hardware, or other systems that interact with the system.
• Use Cases: Specific functionality the system provides.
• System Boundary: Rectangle separating the system from external actors.
• Relationships: Association, Include, Extend, Generalization.
Example — ATM System:
Actors: Customer, Bank
Use Cases: Authenticate User, Withdraw Cash, Deposit Cash, Check Balance, Change PIN, Print Receipt
RTM (Requirement Traceability Matrix):
A matrix that maps each requirement to its corresponding design, code, and test elements.
| Req ID | Requirement | Design Element | Code Module | Test Case | Status |
|---|---|---|---|---|---|
| REQ-01 | User login | Login screen | auth.js | TC-01 | Pass |
| REQ-02 | Password reset | Reset form | reset.js | TC-02 | Pass |
| REQ-03 | Profile update | Profile page | profile.js | TC-03 | Pending |
- RE process (5 phases) is a guaranteed question — learn in sequence.
- Functional vs Non-functional requirements distinction is frequently tested [2022, 2023].
- SRS structure (IEEE 830) — know all 8 characteristics of a good SRS.
- Use case diagrams: draw and label properly; actors and use cases.
- RTM format and types (forward/backward/bidirectional) are common [2021].
- Requirement elicitation techniques with pros/cons.
Software Design & Architecture
Design Concepts · Abstraction · Modularity · Cohesion · Coupling · Architecture Styles · Design Patterns · Documentation
Refinement: A top-down approach where a high-level abstraction is progressively elaborated into more detailed specifications. Each refinement step adds detail while preserving the overall structure.
Modularity: The software is decomposed into manageable modules, each with a single responsibility. Benefits: easier development, testing, maintenance, and understanding.
| Type | Description | Example |
|---|---|---|
| Functional | All elements contribute to one task | CalculateSalary module |
| Sequential | Output of one feeds input of next | ReadFile → ProcessData |
| Communicational | Elements operate on same data | ReadEmployee, UpdateEmployee |
| Procedural | Elements called in sequence | Initialize → Process → Cleanup |
| Temporal | Elements activated at same time | openFile, closeFile, errorHandler |
| Logical | Related logically but not functionally | All input functions grouped |
| Coincidental | No meaningful relationship | Unrelated functions in one module |
Coupling (intermodule): Degree of interdependence between modules.
| Type | Description | Example |
|---|---|---|
| Data | Modules share data via parameters | Passing a data structure |
| Stamp | Share data structure (only parts used) | Passing a record, using only some fields |
| Control | One module controls flow of another | Passing a control flag |
| External | Share external data format/device | Shared global variable |
| Common | Share global data area | Global variables |
| Content | One module modifies internal data of another | Branching into another module |
3-Tier Architecture: Three layers:
(1) Presentation Layer: UI, user interaction.
(2) Business Logic Layer: Application logic, validation.
(3) Data Layer: Database management.
Advantages: Scalability, maintainability, security, reusability.
n-Tier Architecture: Extension of 3-tier with more layers. Distributes processing across multiple tiers for scalability and maintainability. Used in enterprise applications.
Implementation: Private constructor, static instance variable, public getInstance() method.
Factory Pattern: Creates objects without specifying the exact class. A factory method returns an object of one of several possible classes based on input parameters. Use: When the exact type of object to create is determined at runtime. Promotes loose coupling between creator and products.
Strategy Pattern: Defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from the clients that use it. Use: Different sorting algorithms, payment methods, compression algorithms.
(2) System Documentation: Technical documents for developers/maintainers (architecture, design, code, algorithms, data structures).
(3) Technical Documentation: API documentation, database schema, system requirements, network diagrams.
(4) Marketing Documentation: Product descriptions, market analysis, product positioning.
Design Process: Architectural design → Database design → Interface design → Component-level design.
Cohesion (within modules) — types from lowest to highest:
1. Coincidental (no relation) → 2. Logical → 3. Temporal → 4. Procedural → 5. Communicational → 6. Sequential → 7. Functional (all elements contribute to single well-defined task).
Coupling (between modules) — types from lowest to highest:
1. Data (independent, share data) → 2. Stamp → 3. Control → 4. External → 5. Common → 6. Content (one module directly references content of another).
Design Principle: Aim for high cohesion and low coupling.
Problem: Need to create objects but want to decouple creation from usage.
Solution: A Factory class has a method that creates and returns objects based on input.
Example: A NotificationFactory that creates Email, SMS, or Push notification objects based on user preference.
Singleton Pattern:
Problem: Need exactly one instance of a class.
Solution: Restrict instantiation, provide global access point.
Example: Database connection pool — only one pool needed, shared by entire application.
Observer Pattern:
Problem: Need to notify multiple objects when one object changes.
Solution: Subject maintains list of observers; notifies on state change.
Example: YouTube channel (subject) + Subscribers (observers). When a video is uploaded, all subscribers are notified.
Strategy Pattern:
Problem: Need to select an algorithm at runtime.
Solution: Define interface, implement algorithms as separate classes, choose at runtime.
Example: E-commerce payment — CreditCard, PayPal, UPI strategies. Customer selects payment method at checkout.
- Design concepts (abstraction, refinement, modularity) are common 1-mark questions.
- Cohesion types (7) and Coupling types (6) are frequently asked — draw comparison tables [2023, 2021].
- 3-tier architecture diagram is important for 5 and 15 marks.
- Design patterns with real examples are commonly tested [2022, 2023].
- Software documentation types — know all four categories.
Software Testing
Testing Objectives · Principles · Test Levels · White Box vs Black Box · Test Case Design · Cyclomatic Complexity · McCabe · Mutation Testing · Regression Testing
Black Box: Tests functionality without knowing internal code. Tests inputs and outputs. (Functional testing).
(1) Finding defects: Primary objective — discover errors, bugs, and flaws.
(2) Establishing confidence: Show that software meets requirements and is reliable.
(3) Preventing defects: Early testing reveals design issues before they become expensive.
(4) Providing information: Status reports, quality metrics.
Testing Principles:
(1) All tests should be traceable to customer requirements.
(2) Tests should be planned before testing begins.
(3) The Pareto principle applies — 80% of errors come from 20% of modules.
(4) Start testing "in small" and progress toward "in large".
(5) Exhaustive testing is impossible — use intelligent testing.
(6) Testing should be conducted by an independent third party for effectiveness.
(2) Integration Testing: Tests interfaces between modules. Approaches: Big Bang, Top-down (stubs), Bottom-up (drivers), Sandwich (combination).
(3) System Testing: Tests the complete system against requirements. Includes functional, performance, security, usability testing.
(4) Acceptance Testing: Final testing to confirm system is ready for deployment.
• Alpha Testing: Done at developer's site by internal users.
• Beta Testing: Done at customer's site by external users.
If valid range is [1, 100], test values: 1, 2 (min boundary), 50 (nominal), 99, 100 (max boundary), 0 and 101 (out of range).
Steps: (1) Identify input boundaries from specification. (2) Create test cases for each boundary (just below, on, just above). (3) Apply to output boundaries too.
Example: Field accepts age 18–60.
Valid class: 18–60 → test with 30
Invalid class 1: < 18 → test with 15
Invalid class 2: > 60 → test with 65
Steps: (1) Identify input conditions. (2) Partition into valid/invalid equivalence classes. (3) Select one representative from each class.
Example — Login System:
Conditions: C1 = Valid Username, C2 = Valid Password
Actions: A1 = Show Home, A2 = Show Error, A3 = Lock Account
| Rules | R1 | R2 | R3 | R4 |
|---|---|---|---|---|
| C1 (Valid User) | T | T | F | F |
| C2 (Valid Pass) | T | F | T | F |
| A1 (Home) | X | |||
| A2 (Error) | X | X | ||
| A3 (Lock) | X |
Example — ATM PIN Verification:
States: Idle → Entering PIN → Authenticated → Blocked
Transitions:
• Entering PIN + Correct → Authenticated
• Entering PIN + Wrong → Idle (retry count −)
• 3 Wrong attempts → Blocked
• Blocked + Admin Reset → Idle
Test cases: Correct PIN on 1st try, Wrong PIN then Correct, 3 consecutive wrong PINs, etc.
Tests the internal structure and code. Requires knowledge of the code. Techniques:
• Statement Coverage: Every statement executed at least once.
• Branch Coverage: Every branch (if/else) taken both ways.
• Path Coverage: Every possible path through the code tested.
• Condition Coverage: Every boolean condition tested for true and false.
Black Box Testing (Functional/Specification-based):
Tests functionality without knowledge of internal code. Based on requirements/specifications. Techniques:
1. Boundary Value Analysis (BVA): Tests at boundary values. If range is [a, b], test: a, a+1, b-1, b, a-1, b+1.
2. Equivalence Partitioning (ECP): Divide input into valid/invalid classes. One test from each class.
3. Decision Table Testing: Table format for combinations of conditions → actions. Useful for business rules with many condition combinations.
4. State Transition Testing: Tests state changes triggered by events. Useful for systems with well-defined states (ATM, vending machine).
| Aspect | White Box | Black Box |
|---|---|---|
| Focus | Internal code structure | External functionality |
| Knowledge | Requires code knowledge | No code knowledge needed |
| Tester perspective | Developer / Tester | End user / Tester |
| Techniques | Path, branch, statement coverage | BVA, ECP, Decision table, STT |
| When performed | Unit, Integration level | System, Acceptance level |
| Testing basis | Program logic, code | Requirements specification |
Measures the number of linearly independent paths through a program. Used to determine the minimum number of test cases needed for complete branch coverage.
Formula: V(G) = E − N + 2P
where E = number of edges, N = number of nodes, P = number of connected components.
Alternative formulas:
V(G) = Number of regions (closed areas) in the flow graph
V(G) = Number of predicate nodes + 1
Example — Flow Graph:
Consider a program with:
Nodes N = 5 (Start, Condition1, Condition2, Action1, End)
Edges E = 6
Components P = 1
V(G) = E − N + 2P = 6 − 5 + 2(1) = 3
Meaning: The program has 3 independent paths. We need at least 3 test cases for complete path coverage.
Significance: V(G) > 10 indicates high complexity and risk. Good modules have V(G) between 3–10.
int max(int a, int b) {
if (a > b) {
return a;
} else {
return b;
}
}Flow Graph:
Nodes (N): Start, Condition, Return a, Return b, End = 5 nodes
Edges (E): Start→Condition, Condition→Return a, Condition→Return b, Return a→End, Return b→End = 5 edges
P = 1
V(G) = E − N + 2P = 5 − 5 + 2(1) = 2
Test Cases (Path Coverage):
Path 1: Start → Condition(a>b=T) → Return a → End [test: a=5, b=3]
Path 2: Start → Condition(a>b=F) → Return b → End [test: a=2, b=4]
Also: Mutation testing creates mutants (e.g., change > to <, change a to b). Good test suite kills all mutants. Regression testing ensures new code doesn't break existing tests.
- Testing objectives and principles are guaranteed 1-mark questions.
- Test levels with descriptions — very commonly asked [2022, 2023].
- White Box vs Black Box comparison table — almost always asked.
- BVA and ECP with examples — frequently asked for 5 marks [2021, 2023].
- Cyclomatic complexity calculation — learn the formula V(G) = E − N + 2P and practice with flow graphs [2021, 2022].
- Decision table and State transition testing with examples.
- Mutation testing and Regression testing definitions.
Software Quality & Maintenance
McCall's Quality Factors · SQA · FTR · Software Reliability · Maintenance Types · Re-engineering · Reverse Engineering · CASE Tools · Configuration Mgmt · COCOMO
| Category | Quality Factors | Metrics |
|---|---|---|
| Product Operation (How well it works) | Correctness, Reliability, Efficiency, Integrity, Usability | MTBF, Response time, Storage, Security violations |
| Product Revision (How well it changes) | Maintainability, Flexibility, Testability | Time to fix, Modules affected, Test coverage |
| Product Transition (How well it adapts) | Portability, Reusability, Interoperability | Platforms supported, Code reuse ratio, Interface compatibility |
FTR (Formal Technical Reviews): Peer review where engineers examine work products to uncover errors. Types: Walkthroughs, Inspections, Code Reviews, Technical Reviews. Benefits: Improved quality, reduced testing cost, better team communication.
Formulas:
R(t) = e−λt
MTBF = 1 / λ
where λ = failure rate (failures per unit time)
Improving reliability: Fault tolerance, defensive programming, thorough testing, code reviews, automated regression testing.
| Type | Purpose | Example |
|---|---|---|
| Corrective | Fix bugs after delivery | Patching a login vulnerability |
| Adaptive | Adapt to environment changes | Updating app for new OS |
| Perfective | Add features / improve performance | Adding dark mode, optimizing queries |
| Preventive | Prevent future problems | Refactoring code, updating docs |
Maintenance accounts for 40–80% of total software cost.
(1) Upper-CASE: Analysis & design support (requirements tools, diagramming, prototyping).
(2) Lower-CASE: Coding, testing, maintenance support (debuggers, test generators).
(3) Integrated-CASE: Combine both, maintaining consistency across phases (e.g., IBM Rational Rose).
Benefits: Improved quality, reduced development time, better documentation, standardization.
(1) Configuration Identification: Naming and numbering items (baselines, versions).
(2) Version Control: Tracking changes (Git, SVN).
(3) Change Control: Evaluating, approving, tracking changes.
(4) Configuration Auditing: Verifying conformity to requirements.
(5) Status Accounting: Recording and reporting change status.
Basic COCOMO:
Effort (PM) = a × (KLOC)b
Tdev (months) = c × (Effort)d
| Mode | a | b | c | d | Typical Project |
|---|---|---|---|---|---|
| Organic | 2.4 | 1.05 | 2.5 | 0.38 | Small, familiar (20 KLOC) |
| Semi-detached | 3.0 | 1.12 | 2.5 | 0.35 | Medium, mixed (50 KLOC) |
| Embedded | 3.6 | 1.20 | 2.5 | 0.32 | Large, complex (300 KLOC) |
Numerical Example — Organic Mode:
Project size: 50 KLOC, Organic mode
Step 1 — Effort:
Effort = 2.4 × (50)1.05
= 2.4 × 54.8 ≈ 131.5 PM
Step 2 — Development Time:
Tdev = 2.5 × (131.5)0.38 ≈ 2.5 × 7.9 ≈ 19.75 months
Step 3 — Average Staff:
Staff = 131.5 / 19.75 ≈ 7 persons
Intermediate (Detailed) COCOMO:
Effort = Basic COCOMO × EAF
EAF = product of 15 cost driver ratings (Required Reliability, DB Size, Complexity, Time Constraint, Memory, VM Volatility, etc.)
Cost driver ratings: Very Low (0.75), Low (0.88), Nominal (1.00), High (1.15), Very High (1.40), Extra High (1.60–1.65).
Forward Engineering: Traditional approach from high-level abstraction to implementation.
Re-engineering: Combines reverse and forward engineering. System is examined, redesigned, and re-implemented. Activities: inventory analysis, document restructuring, reverse engineering, forward engineering.
Software Migration: Moving from one platform to another (COBOL → Java, on-premises → cloud).
Maintenance types and costs: Corrective (fixing bugs), Adaptive (environment changes), Perfective (new features), Preventive (prevent future issues). Maintenance = 40–80% of total software cost.
CASE tools: Upper-CASE (analysis/design), Lower-CASE (coding/testing), Integrated-CASE (both). Examples: Rational Rose, Enterprise Architect, Eclipse IDE, JIRA.
(1) Correctness: Does exactly what it is specified to do.
(2) Reliability: Performs as required over time.
(3) Efficiency: Minimal resource usage for functionality.
(4) Integrity: Controls access to data, security.
(5) Usability: Easy to learn and operate.
(6) Maintainability: Easy to identify and fix errors.
(7) Flexibility: Easy to adapt to new requirements.
(8) Testability: Easy to test and validate.
(9) Portability: Easy to transfer to different environments.
(10) Reusability: Modules usable in other systems.
(11) Interoperability: Ability to interface with other systems.
SQA Activities: SQA plan → Quality audits → Work product reviews → Deviation management → Management reporting.
SCM: Configuration Identification → Version Control → Change Control → Auditing → Status Accounting.
- McCall's quality factors table is very common [2022].
- COCOMO numerical calculation is a must-practice topic [2022, 2023].
- SQA and FTR are frequently asked 5-mark questions [2023].
- Maintenance types with examples — learn all four [2022].
- Re-engineering vs Reverse Engineering distinction [2021].
- SCM activities — 5 activities, remember all.
- Software reliability formula and MTBF.