知识卡片
SEI软件架构定义
内容
SEI(卡内基·梅隆大学软件工程研究所)把软件架构定义为”解释系统所需的结构体集合,包括软件元素、元素间的相互关系,以及各自的属性”。关键在”解释系统所需”——不是罗列结构信息就算架构,而要能据此推理分析,就像理解美国架构不能只背州名,还要懂各州面积如何影响议席分配。另一常见定义(Fowler&Johnson)把架构等同于”项目早期须做出、后期难改的设计决策”,强调时机而非结构。
参考来源
- 位置:《恰如其分的软件架构》第2章《软件架构》2.1节《何为软件架构?》、2.11节《延伸阅读》(源文件:_epub-src/OEBPS/text00015.html, text00025.html)
- 结论依据:原文引用SEI定义并用"理解美国架构"类比说明结构信息本身不足以理解系统,还需理解要素间关系的意义;2.11节补充了Fowler与Johnson"项目早期设计决策"的替代定义作为对比。
- 原始内容:计算系统的软件架构是解释该系统所需的结构体的集合,其中包括:软件元素、元素之间的相互关系,以及二者各自的属性。……"架构是必须在项目早期作出的一组设计决策"……非正式地称为"那些在项目后期难以改变的内容"。