Software Architecture & Design¶
Notes from Software Architecture and Design Course. These contain links to Piazza forums, and private Google Drive. If you are not a student of this course during this duration, you won’t be able to access them.
If you find some link is exposed, which should not be, please report it.
- Setup Instructions
- Office Hours Videos
- Projects And Assignments
- External Resources
- P1L1 Introduction
- P1L2 Text Browser Exercise (Analysis)
- 01 - Introduction
- 02 - Text Browser Exercise
- 03 - GUI Elements Quiz
- 04 - GUI Elements Solution
- 05 - FileManager
- 06 - ViewPort
- 07 - ScrollBar
- 08 - Use Cases
- 09 - Use Cases Quiz
- 10 - Use Cases Quiz Solution
- 11 - Analysis Model
- 12 - Classes Quiz
- 13 - Classes Quiz Solution
- 14 - Operations
- 15 - Operations Quiz
- 16 - Operations Quiz Solution
- 17 - Visible Attributes Quiz
- 18 - Visible Attributes Quiz Solution
- 19 - FileManager
- 20 - Relationships
- 21 - Relationships Quiz
- 22 - Relationships Quiz Solution
- 23 - Number of Lines Quiz
- 24 - Number of Lines Quiz Solution
- 25 - LinesVisible Association
- 26 - Another Association Quiz
- 27 - Another Association Quiz Solution
- 28 - Explanation
- 29 - Displays Diagram
- 30 - Handle Association Quiz
- 31 - Handle Association Quiz Solution
- 32 - HandleProportion
- 33 - Subtleties
- 34 - Summary
- P1L3 Design Concepts
- 01 - Design Concepts
- 02 - Terms Quiz
- 03 - Terms Quiz Solution
- 04 - Programming or Design Quiz
- 05 - Programming or Design Quiz Solution
- 06 - Software Design
- 07 - Design Notation
- 08 - Weather Quiz
- 09 - Weather Quiz Solution
- 10 - Approaches to Software Design
- 11 - Issues with Design
- 12 - Design Review Quiz
- 13 - Design Review Quiz Solution
- 14 - Design Validation
- 15 - Other Design Issues
- 16 - Design Documentation
- 17 - Documentation Quiz
- 18 - Documentation Quiz Solution
- 19 - Traditional Design Documentation
- 20 - Leonardo Objects
- 21 - Design Rationale
- 22 - Coupling and Cohesion
- 23 - Java Quiz 1
- 24 - Java Quiz 1 Solution
- 25 - Java Quiz 2
- 26 - Java Quiz 2 Solution
- 27 - Information Hiding
- 28 - Abstraction and Refinement
- 29 - Aesthetics
- 30 - Design Philosophy
- 31 - Metaphors Quiz
- 32 - Metaphors Quiz Solution
- 33 - Summary
- P2L1 Review of UML
- Student Provided Notes
- 01 - Diagrams
- 02 - OMT
- 03 - UML
- 04 - Diagram Types
- 05 - Diagram Quiz
- 06 - Diagram Quiz Solution
- 07 - Class Models
- 08 - UML Classes
- 09 - UML Relationships
- 10 - Example Class Diagram
- 11 - Object Diagram
- 12 - Composite Structure Diagram
- 13 - Component Diagram
- 14 - Example Component Diagram
- 15 - Deployment Diagram
- 16 - Example Deployment Diagram
- 17 - Packages
- 18 - Example Class Diagram with Packages
- 19 - Example Package Diagram
- 20 - Profile Diagram
- 21 - Example Profile Diagram
- 22 - UML Structure Diagram Quiz
- 23 - UML Structure Diagram Quiz Solution
- 24 - UML Quiz
- 25 - UML Quiz Solution
- 26 - Behavior Diagrams
- 27 - Use Case Diagram
- 28 - Use Case Diagrams
- 29 - Example of Use Case Diagrams
- 30 - Individual Use Cases
- 31 - Tabular Version of Example
- 32 - Context Diagrams
- 33 - Example Context Diagrams
- 34 - Sequence Diagram
- 35 - Example Sequence Diagram
- 36 - Communication Diagram
- 37 - Example Communication Diagram
- 38 - Activity Diagram
- 39 - Example Activity Diagram
- 40 - Interaction Overview Diagram
- 41 - Timing Diagram
- 42 - State Diagrams
- 43 - Example State Machine Diagrams
- 44 - Behavior Diagram Quiz
- 45 - Behavior Diagram Quiz Solution
- 46 - Object Constraint Language
- 47 - Example OCL
- 48 - UML MetaModel
- 49 - Class Model of UML MetaModel
- 50 - Summary
- P2L10 Clock Radio Exercise
- 01 - Modeling with Statecharts
- 02 - Description
- 03 - Exercise Introduction
- 04 - Percepts Quiz
- 05 - Percepts Quiz Solution
- 06 - Percept States Quiz
- 07 - Percept States Quiz Solution
- 08 - Display FSM
- 09 - Mode Switch Quiz
- 10 - Mode Switch Quiz Solution
- 11 - Station Indicator
- 12 - Station Indicator FSM
- 13 - Speaker
- 14 - So Far
- 15 - External Controls and Stimuli
- 16 - From Actions to Events
- 17 - Outermost Layer StateChart Quiz
- 18 - Outermost Layer StateChart Quiz Solution
- 19 - Adding Events
- 20 - Event Allocation
- 21 - New Sub-Machines
- 22 - Setting the Time
- 23 - Responses to Events
- 24 - Stimulus Response Table Quiz
- 25 - Stimulus Response Table Quiz Solution
- 26 - Stimulus Response Table
- 27 - Timer Events Quiz
- 28 - Timer Events Quiz Solution
- 29 - Internal States
- 30 - Other Internal Events
- 31 - Guarded Transitions
- 32 - Cascaded Events
- 33 - Example
- 34 - Still To Do
- 35 - Validation
- 36 - Statechart Modeling Method
- 37 - Conclusion
- P2L2 Object Oriented Analysis Exercise
- 01 - Analysis
- 02 - Object Oriented Analysis OOA
- 03 - Object Quiz
- 04 - Object Quiz Solution
- 05 - Object Oriented Analysis and Design
- 06 - OOA
- 07 - Steps in OOA
- 08 - Technique
- 09 - Step 1 Locate Nouns Quiz
- 10 - Step 1 Locate Nouns Quiz Solution
- 11 - Issues
- 12 - Step 2 Candidate Classes Quiz
- 13 - Step 2 Candidate Classes Quiz Solution
- 14 - Initial Class Model Diagram
- 15 - Caveats
- 16 - Step 3 Adjectives Quiz
- 17 - Step 3 Adjectives Quiz Solution
- 18 - Adjective Issues
- 19 - Updated Class Model
- 20 - Step 4 Operations
- 21 - Action Verbs Quiz
- 22 - Action Verbs Quiz Solution
- 23 - Operations in Class Quiz
- 24 - Operations in Class Quiz Solution
- 25 - Operations in Classes
- 26 - Operation Issues
- 27 - Step 5 Relationships
- 28 - Generalizations
- 29 - Generalization Quiz
- 30 - Generalization Quiz Solution
- 31 - Aggregations
- 32 - Aggregation Quiz
- 33 - Aggregation Quiz Solution
- 34 - Associations
- 35 - Associations Quiz
- 36 - Associations Quiz Solution
- 37 - Relationship Issues
- 38 - Summary
- P2L3 UML Class Models
- 01 - Introduction
- 02 - Classes
- 03 - Name Compartment
- 04 - Class Features
- 05 - Attributes Compartment
- 06 - Operations Compartment
- 07 - Abstract Class Quiz
- 08 - Abstract Class Quiz Solution
- 09 - More Example Classes
- 10 - Class Description Quiz
- 11 - Class Description Quiz Solution
- 12 - Advanced Features
- 13 - Relationships
- 14 - Associations
- 15 - Assocation Class
- 16 - Aggregation Composition
- 17 - Aggregation Composition Quiz
- 18 - Aggregation Composition Quiz Solution
- 19 - Qualifiers
- 20 - Links
- 21 - Generalizations
- 22 - Constraints Quiz
- 23 - Constraints Quiz Solution
- 24 - Superclass Subclass Quiz
- 25 - Superclass Subclass Quiz Solution
- 26 - Summary Quiz
- 27 - Summary Quiz Solution
- 28 - Summary
- P2L4 Design Studies
- 01 - Design
- 02 - Design Studies
- 03 - Definition
- 04 - Design Spaces
- 05 - Design Factors Quiz
- 06 - Design Factors Quiz Solution
- 07 - Teaching and Learning
- 08 - Projects
- 09 - Experiments
- 10 - Report
- 11 - 1 Context
- 12 - 2 Research Questions
- 13 - 3 Subject
- 14 - 4 Experimental Conditions
- 15 - 5 Variables
- 16 - 6 Method
- 17 - 7 Results
- 18 - 8 Discussion
- 19 - 9 Conclusions
- 20 - Deliverables
- 21 - Wrap Up
- P2L5 Library Exercise (UML)
- P2L6 Formal Specification Exercise
- 01 - Specification
- 02 - FOL
- 03 - OCL
- 04 - Sorting
- 05 - Exercise Introduction
- 06 - Input Type
- 07 - Output Type
- 08 - Ordering
- 09 - Sensitivity to Input
- 10 - Circularity
- 11 - SORT in English
- 12 - Process
- 13 - Signature
- 14 - Comments on Signatures
- 15 - SQRT Signature Quiz
- 16 - SQRT Signature Quiz Solution
- 17 - SQRT Preconditions
- 18 - SORT Preconditions
- 19 - Postconditions
- 20 - SQRT Postcondition Quiz
- 21 - SQRT Postcondition Quiz Solution
- 22 - Comments on Postconditions
- 23 - Postconditions for SORT
- 24 - Ordered
- 25 - Elements
- 26 - ORDERED Precondition Quiz
- 27 - ORDERED Precondition Quiz Solution
- 28 - ORDERED Postcondition
- 29 - RORDERED Spec and Pre Quiz
- 30 - RORDERED Spec and Pre Quiz Solution
- 31 - RORDERED Postcondition
- 32 - SAME-ELEMENTS-AS Signature
- 33 - SAME-ELEMENTS-AS in English
- 34 - Permutation
- 35 - PERMUTATION Signature Quiz
- 36 - PERMUTATION Signature Quiz Solution
- 37 - PERMUTATION Postcondition
- 38 - Non Empty Case
- 39 - Non Matching Case
- 40 - Recursion
- 41 - Pasting
- 42 - Third Case
- 43 - All Together
- 44 - Some Questions
- 45 - OCL
- 46 - Notes
- 47 - Summary
- P2L7 OCL
- 01 - OCL
- 02 - Why Do We Need OCL
- 03 - OCL Overview
- 04 - Uses of OCL
- 05 - Syntax
- 06 - Invariants
- 07 - Role of Invariants
- 08 - Invariant Constraint Quiz
- 09 - Invariant Constraint Quiz Solution
- 10 - Pre and Post Conditions
- 11 - Pre and Post Conditions Example
- 12 - Changes to Attribute Values
- 13 - Post Condition Quiz
- 14 - Post Condition Quiz Solution
- 15 - OCL Built in Types
- 16 - OCL Keywords
- 17 - Let Clause
- 18 - Navigation
- 19 - Navigation Example
- 20 - Navigation Multiplicity
- 21 - Bank ID Quiz
- 22 - Bank ID Quiz Solution
- 23 - Collections
- 24 - Other OCL Features
- 25 - Summary
- P2L8 Library Exercise (OCL)
- 01 - Library Exercise
- 02 - Library Problem Requirements
- 03 - Class Model Diagram
- 04 - Requirements Quiz
- 05 - Requirements Quiz Solution
- 06 - Limitations
- 07 - Requirement 6
- 08 - Requirement 6 Quiz
- 09 - Requirement 6 Quiz Solution
- 10 - Checked Out Quiz
- 11 - Checked Out Quiz Solution
- 12 - Requirement 6 OCL
- 13 - Explanation
- 14 - Requirement 7 OCL Quiz
- 15 - Requirement 7 OCL Quiz Solution
- 16 - Operations
- 17 - CheckedOut Operation
- 18 - Explanation
- 19 - Requirement 4 OCL Quiz
- 20 - Requirement 4 OCL Quiz Solution
- 21 - Requirement 4 Explanation
- 22 - Side Effects
- 23 - Requirement 5 Signature
- 24 - Checkout Preconditions Quiz
- 25 - Checkout Preconditions Quiz Solution
- 26 - Requirement 5
- 27 - Checkout Postconditions
- 28 - Further Checkout Explanation
- 29 - Postconditions
- 30 - Derived Data Quiz
- 31 - Derived Data Quiz Solution
- 32 - Missing Pieces
- 33 - Observations
- P2L9 Behavior Modeling
- 01 - Behavior Modeling
- 02 - States
- 03 - Tic Tac Toe Quiz
- 04 - Tic Tac Toe Quiz Solution
- 05 - Events
- 06 - UML Event Taxonomy
- 07 - State vs Event Quiz
- 08 - State vs Event Quiz Solution
- 09 - Modeling Techniques
- 10 - Combinatorial Modeling
- 11 - Decision Tables
- 12 - Decision Trees
- 13 - Sequential Systems
- 14 - State Transition Table STT
- 15 - Garage Door Quiz 1
- 16 - Garage Door Quiz 1 Solution
- 17 - Garage Door Quiz 2
- 18 - Garage Door Quiz 2 Solution
- 19 - STT for Garage Door System
- 20 - State Transition Diagrams
- 21 - Example Garage Door
- 22 - Example Telephone
- 23 - Problems with State Transition Diagrams
- 24 - State Charts
- 25 - State Chart Icons
- 26 - State Chart Extensions to FSMs
- 27 - State Chart Nesting
- 28 - State Chart Nesting UML Example
- 29 - UML Example Harels Notation
- 30 - Concurrency
- 31 - Synchronization
- 32 - Broadcast Cascade Events
- 33 - Data Conditions
- 34 - Special Transitions
- 35 - History States
- 36 - Complete UML State Description
- 37 - Complete UML Transition Description
- 38 - Relationship to Class Diagram
- 39 - Harels Digital Watch
- 40 - Harels Digital Watch Quiz
- 41 - Harels Digital Watch Quiz Solution
- 42 - Summary
- P3L1 KWIC Exercise
- 01 - Software Architecture
- 02 - Key Word in Context
- 03 - Example of Circular Shifts
- 04 - Example with Multiple Titles
- 05 - KWIC Exercise
- 06 - Diagramming KWIC Quiz
- 07 - Diagramming KWIC Quiz Solution
- 08 - Components
- 09 - Shared Data
- 10 - Pipe and Filter
- 11 - Pipe and Filter Diagram
- 12 - Abstract Data Types
- 13 - Abstract Data Type Diagram
- 14 - Implicit Invocation
- 15 - Implicit Invocation Diagram
- 16 - Shared Data Approach Quiz
- 17 - Shared Data Approach Quiz Solution
- 18 - Evaluation
- 19 - Enhancements Quiz
- 20 - Enhancements Quiz Solution
- 21 - Reusability Quiz
- 22 - Reusability Quiz Solution
- 23 - Data Change Resilience Quiz
- 24 - Data Change Resilience Quiz Solution
- 25 - Deletion Quiz
- 26 - Deletion Quiz Solution
- 27 - Lessons
- P3L10 Guest Interview- LayerBlox
- P3L2 Overview of Architectural Styles
- 01 - Introduction
- 02 - Informal Definition
- 03 - Analysis to Components Quiz
- 04 - Analysis to Components Quiz Solution
- 05 - USP Definition
- 06 - Other Definitions
- 07 - Components
- 08 - Selecting Components
- 09 - APIs
- 10 - Connectors
- 11 - Example Connector
- 12 - Configuration
- 13 - Terminology
- 14 - Architectural Views
- 15 - UML Diagram Quiz
- 16 - UML Diagram Quiz
- 17 - Architectural Styles
- 18 - Arch Style Quiz
- 19 - Arch Style Solution
- 20 - Architectural Styles cont
- 21 - Catalog of Styles
- 22 - More Styles
- 23 - Style Issues
- 24 - Architecture Description Language
- 25 - Architectural Evaluation
- 26 - SAAM
- 27 - Summary
- P3L3 Architectural Views
- 01 - Architectural Views
- 02 - Logical View
- 03 - Developmental View
- 04 - Diagram Types Quiz
- 05 - Diagram Types Quiz
- 06 - Process View
- 07 - Physical View
- 08 - Use Case View
- 09 - Context View
- 10 - Individual Use Cases
- 11 - Feature View
- 12 - Feature Diagram Quiz 1
- 13 - Feature Diagram Quiz 1
- 14 - Feature Diagram Quiz 2
- 15 - Feature Diagram Quiz 2
- 16 - Non Functional View
- 17 - Non Functional Requirements Quiz
- 18 - Non Functional Requirements Quiz
- 19 - Bug Reporting View
- 20 - Utility Views
- 21 - Conclusion
- P3L4 Text Browser Exercise (Arch)
- 01 - Text Browser Case Study
- 02 - Text Browser
- 03 - Exercise
- 04 - Phase 0 Preparation
- 05 - Phase 0 Summary
- 06 - Phase 1
- 07 - Phase 1 Steps
- 08 - Decomposition
- 09 - Phase 1 Diagram
- 10 - OCL Postcondition Constraint
- 11 - Another Postcondition
- 12 - Third OCL Constraint
- 13 - Phase 1 Summary
- 14 - Phase 2
- 15 - Phase 2 Steps
- 16 - Text Browser Arch Quiz
- 17 - Text Browser Arch Quiz Solution
- 18 - Layered Implicit Invocation
- 19 - Benefits and Costs
- 20 - Assigning Components to Layers
- 21 - Phase 2 Diagram
- 22 - OCL Updates
- 23 - Resize Window Quiz
- 24 - Resize Window Quiz Solution
- 25 - Constraint Placement
- 26 - Invariant Maintenance Quiz
- 27 - Invariant Maintenance Quiz
- 28 - Invariant Maintenance Strategies
- 29 - Centralized Strategy Quiz
- 30 - Centralized Strategy Quiz Solution
- 31 - Decentralized Strategy Quiz
- 32 - Decentralized Strategy Quiz Solution
- 33 - Tradeoff Between Locality and Complexity
- 34 - Example Continued
- 35 - Aggregation
- 36 - Aggregated Responsibility Quiz
- 37 - Aggregated Responsibility Quiz Solution
- 38 - Distributed Responsibility
- 39 - Distributed Responsibility Quiz
- 40 - Distributed Responsibility Quiz Solution
- 41 - Mediators
- 42 - Mediated Responsibility Quiz
- 43 - Mediated Responsibility Quiz Solution
- 44 - Summary of Process
- 45 - Conclusion
- P3L5 Non-Functional Reqs & Arch Styles
- 01 - Non-Functional Reqs Arch Styles
- 02 - Qualities
- 03 - Non Functional Qualities Quiz
- 04 - Non Functional Qualities Solution
- 05 - Functional and Non Functional Requirements Quiz
- 06 - Functional and Non Functional Requirements Solution
- 07 - Quality Catalog
- 08 - Applications Quiz
- 09 - Applications Quiz
- 10 - Architectural Styles
- 11 - Review of Architectural Styles
- 12 - Pipe and Filter Performance
- 13 - Pipe and Filter Maintainability
- 14 - Pipe and Filter Other Qualities
- 15 - Layering Qualities
- 16 - Blackboard Reliability and Security
- 17 - Other Blackboard Qualities
- 18 - Object Orientation Maintainability
- 19 - Object Orientation Security
- 20 - Other Object Orientation Qualities
- 21 - Implicit Invocation Qualities
- 22 - Side Effects Quiz 1
- 23 - Side Effects Quiz 1 Solution
- 24 - Side Effects Quiz 2
- 25 - Side Effects Quiz 2 Solution
- 26 - Summary
- P3L6 Connectors
- 01 - Connectors
- 02 - Atomic Elements
- 03 - Pipe and Filter Quiz
- 04 - Pipe and Filter Quiz
- 05 - Service Categories
- 06 - Services Quiz
- 07 - Services Quiz
- 08 - Variety of Connectors
- 09 - Procedure Call Connectors
- 10 - Event Connectors
- 11 - Data Access Connectors
- 12 - Linkage Connectors
- 13 - Stream Connectors
- 14 - Arbitrator Connectors
- 15 - Adaptor Connectors
- 16 - Distributor Connectors
- 17 - Summary of Connector Types
- 18 - Connector Type Quiz
- 19 - Connector Type Quiz
- 20 - Composite Connector Examples
- 21 - Connector Design
- 22 - Validation Rules
- 23 - Linux Case Study
- 24 - Summary
- P3L7 Acme
- 01 - ADLs
- 02 - ACME
- 03 - ACME Features
- 04 - Architecture Vocabulary
- 05 - Simple Architecture Example
- 06 - ACME Quiz
- 07 - ACME Quiz
- 08 - ACME Graphical View
- 09 - Decomposition
- 10 - Representations
- 11 - Example Representation
- 12 - Extending ACME
- 13 - Properties
- 14 - Properties Example
- 15 - Families
- 16 - Example Family
- 17 - Open Semantic Framework
- 18 - Acme Features Quiz 1
- 19 - Acme Features Quiz 1 Solution
- 20 - Acme Features Quiz 2
- 21 - Acme Features Quiz 2
- 22 - ACME Limitations
- P3L8 Refinement
- 01 - Complexity Abstraction
- 02 - Levels of Abstraction
- 03 - Divide Conquer
- 04 - Horizontal Decomposition
- 05 - Vertical Decomposition
- 06 - Proper Refinements
- 07 - Property 1
- 08 - Bank Account
- 09 - Bank Account Class
- 10 - Bank Account Quiz 1
- 11 - Bank Account Quiz 1 Solution
- 12 - Property 2
- 13 - Notation
- 14 - Valid Operations
- 15 - Implications of Property 2
- 16 - Property 3
- 17 - Bank Account Refinement
- 18 - Bank Account Quiz 2
- 19 - Bank Account Quiz 2 Solution
- 20 - Property 3 Details
- 21 - More Notation
- 22 - Adequate Representation
- 23 - Note on the Exercise
- 24 - Adequacy Quiz
- 25 - Adequacy Quiz
- 26 - Total Representation
- 27 - Totality Quiz
- 28 - Totality Quiz
- 29 - Models
- 30 - Operation Inputs
- 31 - Interpretation
- 32 - Inputs Quiz
- 33 - Inputs Quiz
- 34 - Outputs
- 35 - Outputs Quiz
- 36 - Outputs Quiz
- 37 - Satisfy Property 2
- 38 - Summary
- P3L9 Middleware
- 01 - Architecture of Distributed Systems
- 02 - Middleware
- 03 - Context
- 04 - Needs
- 05 - Exercise Application
- 06 - Characteristic Issues
- 07 - Network Communication
- 08 - Data Transportability
- 09 - Voting Application Quiz 1
- 10 - Voting Application Quiz 1 Solution
- 11 - Transactions ACID
- 12 - Voting Application Quiz 2
- 13 - Voting Application Quiz 2 Solution
- 14 - Coordination
- 15 - Voting Application Quiz 3
- 16 - Voting Application Quiz 3 Solution
- 17 - Reliability
- 18 - Voting Application Quiz 4
- 19 - Voting Application Quiz 4 Solution
- 20 - Voting Application Quiz 5
- 21 - Voting Application Quiz 5 Solution
- 22 - Scalablity
- 23 - Kinds of Transparancy
- 24 - Heterogeneity
- 25 - Implications of Heterogeneity
- 26 - LAMP Quiz
- 27 - LAMP Quiz Solution
- 28 - Other Non Functional Issues
- 29 - Challenges
- 30 - Kinds of Middleware
- 31 - Transactional Middleware
- 32 - Message Oriented Middleware
- 33 - Procedural Middleware
- 34 - Object and Component Middleware
- 35 - Middleware Quiz
- 36 - Middleware Quiz Solution
- 37 - Software Engineering Issues
- 38 - Research Questions
- 39 - Examples
- 40 - Service Oriented Quiz
- 41 - Service Oriented Quiz Solution
- 42 - Web Services
- 43 - Web Services Protocols
- 44 - J2EE System
- 45 - SOA
- 46 - SOA Services
- 47 - Characteristics of Services
- 48 - SOA Rearchitecting
- 49 - Summary
- P4L1 Components
- 01 - Bottom Up Design
- 02 - Components
- 03 - Buy vs Build
- 04 - Buy Quiz
- 05 - Buy Quiz Solution
- 06 - Build
- 07 - The Third Way
- 08 - Third Party Quiz
- 09 - Third Party Quiz Solution
- 10 - Characterizations of Components
- 11 - Component Life Cycle
- 12 - Component Models
- 13 - Component Models Quiz
- 14 - Component Models Quiz Solution
- 15 - Examples of Component Models
- 16 - Issues
- 17 - Issue 1 Configuration
- 18 - Issue 2 Versioning
- 19 - Versioning Strategy
- 20 - Automobile Components Quiz
- 21 - Automobile Components Quiz Solution
- 22 - Issue 3 Extensions
- 23 - Issue 4 Callbacks
- 24 - Invariants
- 25 - Callback Example
- 26 - Callbacks Quiz
- 27 - Callbacks Quiz Solution
- 28 - Callback Summary
- 29 - Issue 5 Contracts and Guarantees
- 30 - Level 1 Signature Contracts
- 31 - Level 2 Correctness Contract
- 32 - Level 3 Collaboration Contracts
- 33 - Level 4 Quality of Service Contracts
- 34 - Guarantees Quiz
- 35 - Guarantees Quiz Solution
- 36 - Summary of Contracts
- 37 - Issue 6 Objects as Components
- 38 - Object as Component Problems
- 39 - Inheritance Dangers
- 40 - Fragile Base Class Problem
- 41 - Issue 7 Industry Scaling
- 42 - Issue 8 Domain Standards
- 43 - Proprietary or Domain Quiz
- 44 - Proprietary or Domain Quiz Solution
- 45 - Component Framework
- 46 - Shared Attributes
- 47 - Comparison of Differences
- 48 - Comparison of Supported Variability
- 49 - Future Directions
- 50 - Summary
- P4L2 Coffee Maker Exercise
- 01 - Status
- 02 - Robert Martins Coffee Maker
- 03 - The Mark IV Special Coffee Maker
- 04 - Hardware Quiz
- 05 - Hardware Quiz Solution
- 06 - Hardware
- 07 - Hardware Design
- 08 - Two Approaches
- 09 - Traditional Approach Quiz
- 10 - Traditional Approach Quiz Solution
- 11 - Class Model Diagram
- 12 - Limitations Quiz
- 13 - Limitations Quiz Solution
- 14 - Use Cases
- 15 - Brew Button Quiz
- 16 - Brew Button Quiz Solution
- 17 - Brew Button
- 18 - Collaboration Diagram 1
- 19 - Containment Vessel
- 20 - Collaboration Diagram 2
- 21 - Use Case Addition
- 22 - Brewing
- 23 - Collaboration Diagram 3
- 24 - Collaboration Quiz
- 25 - Collaboration Diagram 4
- 26 - Alternative to OOA
- 27 - Role Based Design
- 28 - Hardware API Quiz
- 29 - Hardware API Quiz Solution
- 30 - Dependency Inversion Principle
- 31 - Example
- 32 - Realization
- 33 - Abstract Classes
- 34 - Refinement
- 35 - Solution
- 36 - Summary
- P4L3 Object Design
- 01 - From OOA to OOD
- 02 - OOD
- 03 - 1 Intermodel Consistency
- 04 - OOA to OOD Quiz
- 05 - OOA to OOD Quiz Solution
- 06 - 2 From Analysis to Design
- 07 - 3 System Design
- 08 - 4 Abstraction Mechanisms
- 09 - 5 Collaboration Based Design
- 10 - Object Design
- 11 - 1 Sources for Methods
- 12 - 2 New Classes
- 13 - 3 Generalization
- 14 - Generalization Example
- 15 - Generalization Advice
- 16 - Generalization Quiz
- 17 - Generalization Quiz Solution
- 18 - Implementing Generalization
- 19 - 4 Implementing Assocations
- 20 - One Way Assocations
- 21 - Pointers
- 22 - Two Way Associations
- 23 - Associations as Objects
- 24 - Tables for Assocations
- 25 - Associations Quiz
- 26 - Associations Quiz Solution
- 27 - 5 Implementing Dependencies
- 28 - 6 Implementing Control
- 29 - 7 Abstract Classes
- 30 - Modeling to Implementation Quiz
- 31 - Modeling to Implementation Quiz Solution
- 32 - Summary
- P4L4 Design Patterns
- 01 - Design Experience
- 02 - Architectural Patterns
- 03 - The Gang of Four
- 04 - Definition
- 05 - The Composite Pattern
- 06 - Composite Classes
- 07 - Composite Client Class
- 08 - Composite Component Class
- 09 - Leafs and Composites
- 10 - Aggregation
- 11 - Textual Content
- 12 - Intent and Motivation
- 13 - Applicability and Structure
- 14 - Participants
- 15 - Collaborations
- 16 - Consequences
- 17 - Implementation Alternatives
- 18 - Patterns and UML Quiz
- 19 - Patterns and UML Quiz Solution
- 20 - Code, Uses, and Related Patterns
- 21 - Composite Pattern Quiz
- 22 - Composite Pattern Quiz Solution
- 23 - Categories
- 24 - Creational Patterns
- 25 - Example Creational Pattern Singleton
- 26 - Applicability and Structure
- 27 - Participants and Collaborations
- 28 - Consequences
- 29 - Implementation
- 30 - Implementation Issues
- 31 - Singleton Quiz
- 32 - Singleton Quiz Solution
- 33 - Structural Patterns
- 34 - Behavioral Patterns
- 35 - Catalog of Behavioral Patterns
- 36 - Visitor Pattern
- 37 - Vistor Pattern Description
- 38 - Visitor Applicability
- 39 - Structure
- 40 - Comments on Structure
- 41 - Visitor Participants
- 42 - Visitor Behavior
- 43 - Visitor Collaborations
- 44 - Visitor Consequences
- 45 - Visitor Implementation
- 46 - Pattern Quiz 1
- 47 - Pattern Quiz 1 Solution
- 48 - Pattern Quiz 2
- 49 - Pattern Quiz 2 Solution
- 50 - Pattern Quiz 3
- 51 - Pattern Quiz 3 Solution
- 52 - Problems with Patterns
- 53 - Problem Area Object Schizophrenia
- 54 - Problem Area Preplanning Problem
- 55 - Problem Area Traceability Problem
- 56 - Summary
- P4L5 Design Principles
- 01 - Design Guidelines
- 02 - Design Quality
- 03 - Design Guidelines
- 04 - Coupling
- 05 - Cohesion
- 06 - Orthogonality
- 07 - Information Hiding Principle
- 08 - Foundational Concepts Quiz
- 09 - Foundational Concepts Quiz Solution
- 10 - Design Principles Catalog
- 11 - Liskov Substitution Principle
- 12 - Law of Demeter
- 13 - Hollywood Principle
- 14 - Dependency Inversion Principle
- 15 - Open Closed Principle
- 16 - Design Principle Quiz
- 17 - Design Principle Quiz Solution
- 18 - Interface Segregation Principle
- 19 - Reuse Equivalency Principles
- 20 - Common Closure Principle
- 21 - Dependency Structure Matrix
- 22 - Lattix Image
- 23 - Acyclic Dependency Principle
- 24 - Stability
- 25 - Bad Smells
- 26 - Design Heuristics Riel
- 27 - Single Choice Principle
- 28 - Transparency and Intentionality
- 29 - Transparency
- 30 - Intentionality
- 31 - Principles and Heuristics Quiz
- 32 - Principles and Heuristics Quiz Solution
- 33 - Summary
- P4L6 Design Reviews
- 01 - Introduction
- 02 - Exercise Intro
- 03 - Defects Quiz 1
- 04 - Defects Quiz 2
- 05 - Defects Quiz 2 Solution
- 06 - Observations
- 07 - Reviews
- 08 - Step 1 Planning
- 09 - Step 2 Preperation
- 10 - Step 3 Review
- 11 - Step 4 Rework
- 12 - Step 5 Follow Up
- 13 - Roles
- 14 - Moderator Responsibilities
- 15 - Recorder
- 16 - Recording Form
- 17 - Severity Classification
- 18 - Reader
- 19 - Reviewers
- 20 - Review Meeting
- 21 - Thoroughness
- 22 - Metrics
- 23 - Process Data
- 24 - Alternative Review Styles
- 25 - Guidelines Participants
- 26 - Guidelines Content
- 27 - Guidelines Process
- 28 - Effectiveness
- 29 - Other Costs and Benefits
- 30 - Summary
- Geeks in Black- The Code Review