The process and product of building and designing structures. Architecture should have:

  • Durability
  • Utility
  • Beauty

In general, architecture focuses on stakeholder needs, representations, and establishes certain patterns to be reused.

Building vs Software Architecture

There is a large difference between the maturity between software and building architecture as well as the materials used for either and the delivery of both products’

Architects

An architect makes decisions. This requires broad knowledge / training:

  • Implementation skills

  • Domain understanding

  • Cross-team communications Primary dimensions:

  • Structure

  • Communication

  • Non-functional requirements Entities:

  • Subsystem

    • The larger component
    • Explicit interface
    • Has modules and a set of packages
  • Component

    • A smaller component that composes a subsystem
    • Is a package with a set of classes
  • Connector

    • Interaction mechanisms between subsystems
    • These are things like method calls, RPC, networking, etc
  • Configuration

    • A set of specific associations between the subsystem and connectors
  • Software Architecture