Task: Specify Logical Architecture
Specify the organization of things that exist at design-time.
Disciplines: Architecture
Purpose
The purpose of this task is to specify the organization and structure of things that exist at design-time.
Relationships
RolesPrimary Performer: Additional Performers:
InputsMandatory:
    Optional:
    • None
    Outputs
      Main Description

      The logical architecture is the set of organizing principles and structures for the development project. The largest single aspect of this is the organization of the system model(s). The goals of a good logical architecture are to:

      • allow team members to complete their work as efficiently as possible
      • minimize interactions between teams
      • maximize access to the parts of the model they need but don't have control of
      • maximize ease of sharing parts when needed
      • minimize rework and independent recreation of the same elements
      • maximize the ease of system construction (compilation and deployment on target platforms)
      Steps
      Identify the team structure
      One of the model structure attempts to optimize is the collaboration within and between teams. The best model structures take into account the set and structure of the teams that will work on the models. The teams need to be clarified as to their responsibility (e.g. work on a subsystem, define requirements, manage assets between teams, etc.).
      Identify the elements that must be shared among teams
      Elements to be shared among different teams are normally stored in a model or package shared among the different teams. The identifying the set of such elements can lead to a better understanding of the organization of the shared model.
      Construct the set of models
      It is common that each team will work on one or more models that they own and use models developed by other teams. This step identifies what models are needed.
      Identify the structure of each model
      Each model is organized by packages. Each model structure must be specified so that each of the model elements has a defined home.
      Key Considerations
      • How large is the project?
      • How many development teams are involved?
      • How large is each team?
      • Are the teams colocated?
      • How will the teams collaborate and share model artifacts?
      • What is the degree of interaction among the models or portions of the models?
      • Are there architectural design patterns, guidelines, or principles to be shared across models?
      • Will the team be receiving a handoff model from system engineering?
      • Are there legacy components, libraries, or source files to be shared among the teams?
      • Is the hardware platform available to all team members for integration?
      • How will integration occur, who will do it, and when and where will this take place?