Role: System Designer
This role defines refines the design of the system.
Role Sets: Developers
Relationships
Main Description

The System Designer role defines the details of interactions between the subsystems that are initially defined by the System Architect, to deliver the desired behavior specified in the System Use-Case Model. In doing so, the System Designer might make changes to the subsystem structure, which are subsequently validated by the System Architect. Having established the responsibilities and operations required of each subsystem, the System Designer aggregates these and abstracts them back to a specification of required behavior for each subsystem, in a Subsystem Use-Case Model. Concurrently, the non-functional requirements and constraints are flowed down to the subsystems by the System Designer, in the Subsystem Supplementary Requirements. Thus, while designer at the system level, the System Designer becomes the Requirements Specifier for the next level.

Staffing
Skills

The performance of the System Designer role requires skills that bridge design and requirements specification, accordingly the System Designer, like the System Architect, must have strong skills in analysis and synthesis. The System Designer engages in detailed modeling, and so must have a good grounding in UML. Required to work from system requirements, and empowered to do subsystem refactoring if required, the system designer needs good domain knowledge, and also good knowledge of the likely target technologies for the system.

The System Designer also brings systems engineering skills to bear in the synthesis and comparison of various design choices and the determination of how well they meet non-functional requirements.

The System Designer and System Architect must work in a complementary way, with the System Designer actively supporting the realization of the System Architect's vision, so the communication between these roles must be effective.

Assignment Approaches

A larger project might have a team performing the System Designer role; one way to divide the work is to distribute responsibility for subsystems throughout the team, although this can require high-bandwidth communication (in joint design sessions) within the team while the subsystem interactions are being detailed.