Final Exam Roadmap

Main Points

  • Basic Design Principles
    • Concepts
      • Modularity
      • Cohesion
      • Coupling
      • Encapsulation
      • Information hiding
    • Precondition & Postcondition
      • Options for Precondition Design: Validated and Assumed Precondition
    • Design By Contract: Pre/Postcondition as a Contract
      • Assumed Precondition (Non-Redundancy) Principle
      • Pre/Postcondition Violation Rules
      • Reasonable Precondition Principle
      • Precondition Availability Rule
      • Understanding Pre/Postcondition Assertions
    • Change of Contract (Pre/Postcondition)
      • Rule of Contract Change, Stronger/weaker conditions
  • Object-oriented design
    • Class Diagrams
    • ADTs vs classes
    • Inheritance
      • Overriding, Polymorphism/Dynamic Binding
      • Module View vs Type View
      • Method Overriding: Pre/Postconditions
      • Design By Contract vs Subcontracting
      • Method Overriding: Co-variance and contra-variance
    • Design Heuristics
      • Cohesive Abstraction
      • Encapsulation and Information Hiding
      • Accessors and Mutators
      • Classes as Data Types
      • Inheritance
      • Abstract properties
    • Agile Design Principles
      • Single Responsibility Principle
      • Open-Closed Principle
  • Refactoring
    • What Is Refactoring?
    • Why Refactoring
    • Code smells
    • Refactoring methods
    • Refactoring vs design principles
  • Quality Assurance
    • What Is Quality Assurance
    • Static Code Analysis
    • Testing:
      • What is software testing
      • Agile Testing Quadrants
      • Black-Box, White-Box, Gray-Box
      • Testing Stages in Waterfall
  • Code Coverage
    • Statement Coverage
    • Decision coverage
    • Branch coverage
    • Decision vs condition
    • Condition coverage
    • Condition/decision coverage
    • Modified condition/decision coverage
    • Multi-condition coverage
    • Subsumption Relationship
    • Coverage tool: EclEmma

Optional

  • Quiz 3-7 questions with explanations
  • List of relevant midterm questions