click to reveal definition
click to flip back
You know 0 of 24 cards in current set.
Ready to get certified?
Get CertifiedNeed this expertise applied inside your organization?
Explore Our ServicesFull Glossary
Foundations
- Object-Oriented Design (OOD)
- Deciding how a system will be built as collaborating objects, refining analysis with implementation and technology decisions.
- Design vs. Analysis
- Analysis clarifies what to build in the problem domain; design decides how to build it in the solution domain.
- UML for Design
- Using UML structural and behavioral diagrams to specify the design precisely enough to implement.
- Design Model
- A refinement of the analysis model that includes architecture, interfaces, and details needed to build the system.
Principles
- Encapsulation
- Hiding internal data behind interfaces so implementation can change without affecting clients.
- Cohesion and Coupling
- Good design maximizes cohesion within components and minimizes coupling between them.
- Abstraction
- Exposing essential behavior through interfaces while hiding detail, managing complexity.
- SOLID Principles
- Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion — guidelines for robust OO design.
- Separation of Concerns
- Dividing a system into parts that each address a distinct concern, improving clarity and maintainability.
Patterns
- Design Patterns
- Proven, reusable solutions to recurring design problems, described by intent, structure, and consequences.
- Creational Patterns
- Patterns like Factory and Singleton that manage object creation flexibly.
- Structural Patterns
- Patterns like Adapter and Composite that organize classes and objects into larger structures.
- Behavioral Patterns
- Patterns like Strategy and Observer that manage collaboration and responsibility among objects.
Architecture
- Software Architecture
- The high-level structure of components and their relationships that frames detailed design.
- Layering
- Organizing the system into layers to separate concerns and control dependencies.
- Interfaces and Contracts
- Defining the operations a component exposes so parts can be developed and tested independently.
Diagrams
- Class Diagram (Design)
- A detailed class diagram specifying attributes, operations, visibility, and relationships for implementation.
- Component Diagram
- Shows software components, their interfaces, and dependencies at the design level.
- Deployment Diagram
- Shows how software artifacts are deployed onto hardware nodes in the runtime environment.
- Sequence Diagram
- Specifies how objects interact over time via messages to realize designed behavior.
- State Machine Diagram
- Models states and transitions for objects with significant lifecycle behavior.
- Package Diagram
- Organizes design elements into packages to manage large models and dependencies.
Quality
- Design for Change
- Structuring the design so likely changes are localized and inexpensive to make.
- Traceability to Requirements
- Ensuring the design demonstrably satisfies the requirements and use cases it supports.