structure, architecture, view

structures 和 architecture的关系:
Architecture Is a Set of Software Structures

Which Structures are Architectural?:
A structure is architectural if it supports reasoning about the system and the system’s properties.
Reasoning: an attribute of the system that is important to some stakeholder.
当一个structure支撑一个对于涉众关心的属性时,这个structure时architecture,如:功能性,可用性

许多架构决策都是很早做出的,但并非都是如此。
许多决策都是在早期做出的,不是架构性的。
很难判断一个决策是否是“major”。

Software systems are composed of many structures, and no single structure holds claim to being the architecture.

三类architectural structures:
• Module(模块,一个功能)
• Component and Connector(组件连接件,系统间交互)
• Allocation(分配,系统的安装,执行)

Module Structures:将系统划分成实现单元
分配给每个模块的主要职责是什么?
模块允许使用哪些其他软件元素?
它实际使用和依赖什么其他软件?
哪些模块通过泛化或专门化(即继承)关系与其他模块相关?
Component-and-connector Structures((C&C) structures.):关注运行时元素间的交互

Component: runtime entity
主要的执行组件是什么,以及它们在运行时如何交互?
主要的共享数据存储是什么?
系统的哪些部分被复制?
数据如何通过系统进行呢?
系统的哪些部分可以并行运行?
当系统执行时,它的结构会改变吗?如果是,如何改变?

Allocation Structures:
将软件structure映射到系统环境(as CPUs, file systems, networks, development teams)
每个软件元素在什么处理器上执行?
在开发、测试和系统构建期间,每个元素都存储在哪些目录或文件中?
每个软件元素分配给开发团队的是什么?

view is a representation of a structure:
a module structure is the set of the system’s modules and their organization.
A module view is the representation of that structure, documented according to a template in a chosen notation, and used by some system stakeholders.

Architecture is an Abstraction:使得我们从更高的层面(its elements, how they arranged, how they interact, how they composed)去看system,减少负复杂性

你可能感兴趣的:(structure, architecture, view)