NivaarExam PrepOfficial exam papers ↗

25-Comp-B11 Advanced Software Design: December 2018

Nivaar worked solution (AI-drafted; not reviewed by a licensed engineer)

  1. Question 1 Waterfall, Iterative & Incremental, and RUP Lifecycle Models
  2. Question 2 Functional, Quality, Process, Implementation, and Business Requirements
  3. Question 3 Why Quality Requirements Should Be Quantifiable
  4. Question 4 Deriving OOD Classes from a Use Case Diagram
  5. Question 5 Design Decisions, Design Alternatives, and Documented Rationale
  6. Question 6 Test Cases Developable Before vs. After Implementation
  7. Question 7 Two Major Tasks, Benefits, and Challenges of Software Reuse
  8. Question 8 Pros and Cons of Design by Contract vs. Defensive Programming
  9. Question 9 Verifying Contract Fulfillment — Assertions vs. Defensive Checks
  10. Question 10 Precondition, Postcondition, and the Importance of a Class Invariant
  11. Question 11 Implementing the Liskov Substitution Principle Without Knowing Subclasses
  12. Question 12 A Class Design Example With Class Invariants
  13. Question 13 Describing the Observer Pattern in Standard Pattern-Language Form
  14. Question 14 Creational, Structural, and Behavioural Patterns
  15. Question 15 Decorator vs. Proxy Design Patterns
  16. Question 16 Observer vs. Mediator Design Patterns
  17. Question 17 Credit-Card Validation — Template Method Pattern
  18. Question 18 MVC Class Design for a Stock Monitoring Application
  19. Question 19 Why Separate Entity, Control, and Boundary Classes
  20. Question 20 Command and Decorator Patterns for High-Quality GUI Design
  21. Question 21 Usability Goals for a Hospital Patient Registration System
  22. Question 22 Programming to an Interface, Not to an Implementation
  23. Question 23 Encapsulation, Information Hiding, and Message Passing
  24. Question 24 Polymorphism, Dynamic Binding, Overloading, and Overriding
  25. Question 25 Pros and Cons of Friend Functions and Friend Classes in C++
  26. Question 26 Favoring Object Composition Over Class Inheritance, via the Adapter Pattern
  27. Question 27 Multiple Class Inheritance via Single Inheritance and Interfaces in Java
  28. Question 28 Boundary Value Analysis for a Price Input

Start with Question 1 →

17-Comp-B11 Advanced Software Design — National Exams, December 2018. 3 hours, closed book exam with up to 2 aid sheets allowed (written on both sides), no calculator permitted. The paper is organized into five parts, and candidates were instructed to answer any five (5) questions in Part I, any three (3) in Part II, any four (4) in Part III, any two (2) in Part IV, and any five (5) in Part V — only the first questions answered, in each part, as they appear in the answer book are marked. All questions carry equal weight, so the 19 questions actually marked (5+3+4+2+5 of 28) each count for 100/19 ≈ 5.26% of the paper. All 28 questions are answered below for completeness.

Reference texts: Sommerville, Software Engineering (10th ed., Pearson) — software processes, requirements engineering, design principles, dependability; Pressman, Software Engineering: A Practitioner's Approach (9th ed.) — supplementary process and quality coverage; Gamma, Helm, Johnson & Vlissides (GoF), Design Patterns: Elements of Reusable Object-Oriented Software — creational/structural/behavioural pattern catalogue and the "program to an interface, not an implementation" / "favor object composition over class inheritance" principles; Sebesta, Concepts of Programming Languages (12th ed.) — polymorphism, dynamic binding, inheritance and language-level object semantics; Bertrand Meyer, Object-Oriented Software Construction — design by contract, preconditions/postconditions/invariants; Barbara Liskov's 1987 substitutability paper for Question 11; Karl Wiegers, Software Requirements (3rd ed.) — the functional/quality/process/implementation/business requirements taxonomy of Question 2; Kruchten, The Rational Unified Process: An Introduction, for Question 1; Myers, The Art of Software Testing, for Questions 6 and 28.

PART I — General Principles (answer any 5 of 7)