This role leads the design of a part of the system, within the constraints of the requirements, architecture, and development process for the project.
Role Sets: Developers
Relationships
Modifies
Analysis Class
Analysis Model
Design Class
Design Model
Design Subsystem
Interface
Use-Case Realization
Process Usage
Analysis & Design > Define a Candidate Architecture > Designer
Analysis & Design > Refine the Architecture > Designer
Analysis & Design > Design the Database > Designer
Analysis & Design > Analyze Behavior > Designer
Analysis & Design > Design Components > Designer
Main Description
The designer identifies and defines the responsibilities, operations, attributes, and relationships of design elements.
The designer ensures that the design is consistent with the software architecture, and is detailed to a point where
implementation can proceed.
Staffing
Skills
The designer must have a solid working knowledge of:
system requirements
the architecture of the system
software design techniques, including object-oriented analysis and design techniques, and the Unified Modeling
Language
technologies with which the system will be implemented
project guidelines on how the design relates to the implementation, including the level of detail expected in the
design before implementation should proceed.
Assignment Approaches
A designer may be assigned responsibility for implementing a structural part of the system (such as a class or
implementation subsystem), or a functional part of the system, such as a use-case realization or feature that crosses
classes/subsystems.
It is common for a person to act as both implementer and designer, taking on the responsibilities of both roles.
It is possible for design responsibilities to be divided, such that a high level sketch of the design is the
responsibility of one designer, while detailed design (such as details of operation signatures, or the identification
and design of helper classes) is deferred to another designer who also acts as the implementer.
More Information
Checklists
Analysis Class
Design Class
Design Package
Design Subsystem
Use-Case Realization
Guidelines
Aggregation
Association
Class Diagram
Design Class
Design Package
Design Subsystem
Generalization
Interface
Subscribe-Association
Use-Case-Analysis Workshop
Use-Case Realization
Whitepapers
Developing Large-Scale Systems with the Rational Unified Process
RUP/XP Guidelines: Test-first Design and Refactoring