本节书摘来自华章计算机《软件建模与设计: UML、用例、模式和软件体系结构》一书中的第1章,第1.3节,作者:(美)Hassan Gomaa,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.3 软件体系结构设计
软件体系结构(Bass,Clements,and Kazman 2003;Shaw and Garlan 1996)将系统的总体结构(包括构件及其连接关系)与各个构件的内部细节相分离。对于构件及其连接关系的强调有时被称为全局性的编程,而单个构件的详细设计被称为局部性的编程。
软件体系结构可以在不同的细节层次上进行描述。在较高的细节层次上,体系结构可以描述软件系统是如何分解为子系统的。在较低的细节层次上,体系结构可以描述子系统是如何分解为模块或构件的。这些不同层次上的体系结构强调的都是子系统/构件的外部视图,即子系统/构件所提供和需要的接口以及与其他子系统/构件的连接关系。
设计软件体系结构的时候应当考虑系统的软件质量属性。这些属性与体系结构如何满足重要的非功能性需求相关,例如性能、安全性和可维护性等。
软件体系结构有时被称为高层设计。软件体系结构可以从不同的视图进行描述(见1.7节),重要的是保证体系结构同时满足功能性(软件必须做什么)和非功能性(软件应当做得多好)软件需求。软件体系结构同时也是详细设计和实现(此时开发团队一般会变得更大)的出发点。