软件架构为谁而设计?
1.为用户而设计。
不仅包括功能性需求,也包括非功能性需求,例如性能、稳定性、健壮性等。
2.为客户而设计。
用户和客户有时是不一样的,可以这样理解:客户是出钱的,用户是软件产品的直接使用者。
需要充分考虑客户的特点。业务目标、时间需求、预算限制以及集成需求。
3.为开发人员而设计。
主要关注软件的非功能性需求。
4.为管理人员设计。
为项目经理制定项目计划、管理项目分工和考核项目进度提供参考。
什么是软件架构视图?
一个架构视图是对于从某一视角或某一点上看到的系统所做的简化描述,描述中涵盖了系统中某一特定方面,而省略了与此方面无关的实体。
软件架构视图出现的原因:分治思想。
一方面,出于交流的考虑,架构师如果不采用视图的方式,那么和不同部分的人员交流就会产生困难。
另一方面,软件架构是一个非常复杂的事情,架构中,会牵扯到很多概念和技术,而利于软件架构视图的方法,使得问题得以清晰化和简单化。
传统意义上,架构可以分为物理架构和逻辑架构两部分。
软件的逻辑架构规定了软件系统由哪些逻辑元素组成以及这些逻辑元素之间的关系。
软件的逻辑架构的任务:
1.识别功能。
2.规划功能块的接口。
3.明确功能之间的使用关系和使用机制。
逻辑架构中关于职责划分的决策,体现为层、子系统和模块等的划分决定,从静态的视角为详细设计和编程实现提供实际的指导,有了分解就必须产生协作,逻辑架构还规定了不同逻辑单元之间的交互接口和交互机制。
一般的交互机制包括方法调用、基于RMI的远程方法调用和消息机制等。
【软件架构视图】软件的物理架构规定了组件系统的物理元素,这些物理元素之间的关系,以及它们部署到硬件上的策略。物理架构可以反映出软件系统动态运行时的组织情况。
物理架构规定了软件系统如何使用进程和线程完成期望的并发处理,进程线程这些主动对象会调用哪些被动对象参与处理,交互机制是怎样的等,从而为详细设计和编程提供了工作目标的动态视图。
参考文献
《软件架构设计》温昱