软件复杂性——处理复杂性
随着软件系统的规模和复杂性不断增加,对系统的全局结构设计和规划变得比算法的选择和数据结构的设计明显重要得多。
软件体系结构概念
软件体系结构(Software Architecture)包括构成系统的设计元素的描述、设计元素之间的交互、设计元素的组合模式以及在这些模式中的约束。
软件体系结构= 构件+ 连接件+ 约束
构件是具有某种功能的可复用的软件结构单元,表示系统中主要的计算元素和数据存储。
eg.程序函数、模块对象、类文件相关功能的集合......
连接是构件间建立和维护行为关联与信息传递的途径。
连接件表示构件之间的交互并实现构件之间的连接。
软件体系结构的目标
风格、模式和框架
•体系结构风格:用于描述某一特定应用领域中系统组织的惯用模式,反映了领域中众多系统所共有的结构和语义特性。
•设计模式:描述了软件系统设计过程中常见问题的一些解决方案,通常是从大量的成功实践中总结出来的且被广泛公认的实践和知识。
•软件框架:软件框架是由开发人员定制的应用系统的骨架,是整个或部分系统的可重用设计,由一组抽象构件和构件实例间的交互方式组成。
框架和体系结构的关系:
•体系结构的呈现形式是一个设计规约,而框架则是“半成品”的软件;
•体系结构的目的是指导软件系统的开发,而框架的目的是设计复用。
框架和设计模式的关系:
•框架给出的是整个应用的体系结构;而设计模式则给出了单一设计问题的解决方案,且可以在不同的应用程序或者框架中进行应用。
•举例:一个网络游戏可以基于网易的Pomelo框架开发,这是一个基于Node.js的高性能、分布式游戏服务器框架;在实现某个动画功能时,可能会使用观察者模式实现自动化的通知更新。
•设计模式的目标是改善代码结构,提高程序的结构质量;框架强调的是设计的重用性和系统的可扩展性,以缩短开发周期,提高开发质量。