软件构架包含大型软件系统的结构,是软件系统之间进行交流、推理、分析和扩张的重要工具。它是技术、商业和社会等诸多因素作用的结果,而它的存在反过来又会影响技术商业和社会环境,从而影响到未来的构架;这种相互影响的周期就是软件构架商业周期(ABC)。构架受诸多因素的影响,这些因素包括系统涉众、开发组织、设计师的素质和经验、技术环境以及其他隐含因素;同时构架对于这些因素又具有反作用
软件过程是对软件开发活动的组织、规范和管理。在创建软件构架,使用该构架实现设计,然后实现或管理目标系统或应用软件的演变过程中,涉及到以下活动:为系统构建一个商业案例、理解系统需求、创建或选择构架、将构架编成文档并与有关各方进行交流、对此构架进行分析和评价、根据此构架实现系统、保证系统实现符合构架的要求。
构架并没有绝对意义上的好和坏,每个构架都能或多或少地满足某些系统的需求,对于构架的评估也要在针对某些特定目标情况下进行评估,在设计构架的过程中也要遵守一些准则,可以提高构架的设计技巧,而且可以避免一些危害,使得构架更加完善。
软件构架的定义:某个软件或计算机系统的软件构架是该系统的一个或多个结构,它们由软件元素、这些元素的外部可见属性以及这些元素之间的关系组成。软件构架之所以重要有以下三个原因:1.是涉众之间的交流的手段;2.是早期设计决策的体现;3.是可传递、可重用的模型。
软件构架的结构大致分为三组:1、模块结构;2、组件-连接器结构;3、分配结构。模块结构包括分解、使用、分层、类或泛化;组件-连接器结构包括进程或通信进程、并发、共享数据或存储库、客户机服务器;分配结构包括部署、实现、工作分配。所以在软件构架过程中选择哪些结构也很重要,尽管大多数的结构都存在于构建的系统中,但不应该使用所有的结构,设计师应该做的是理解各种结构如何帮助实现质量属性,然后选择能够最佳地提供这些质量属性的结构。
总体来说,读完这两章对于软件构架有了基础的认识,它对于一个系统的开发起着至关重要的作用,它除了描述系统构成以及结构关系外,还表达了系统关键需求及系统构成之间对应关系,为系统的设计提供了分析以及评价的依据,相比需求更进一步的面对或满足系统的非功能性需求。它还可以使系统达到为用户提供最佳功能以及服务状态,在软件开发、部署、运行、维护、升级换代上提供了最大的灵活性;为系统提供最大安全性、稳定性以及可靠性。所以对于软件构架的设计一定要遵循实践准则,尽量避免因为不规范带来的不确定的危害。