Card 1 of 24 Known: 0 / 24
click to reveal definition
click to flip back
You know 0 of 24 cards in current set.

Ready to get certified?

Get Certified

Need this expertise applied inside your organization?

Explore Our Services

Full 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.
Get started with ICON, today.
Book a consultation