关于细化架构的相关内容的阅读总结和个人理解
1. 细化架构区别于概念架构的地方
概念架构是细化到层与层之间的关系,而细化架构则是在此基础上的进一步的拓展,例如:实现这个功能,A层与B层通过什么接口进行数据的传输?
2. 方案与架构之间的关系
方案的制定需要项目中各个阶层的人,共同参与,而不是单单的由架构师一人独断,架构在整个方案中只是子集的关系,方案=“项目+需求+架构”。
3. 何为贴近实践的多视图方法
这种架构的思想,是指将架构师的各种工作具体化。例如:用什么服务器?数据格式如何?计算机网络的各层应该如何适配开发出来的软件,开发出来的软件对于计算机系统的适配又是如何的?
4. 如何区分多视图观念到底是阶段还是视图
显然,阶段不是并行的,而视图可以并行开发,多视图可以并行开发,所以多视图是架构理念而不是开发的某一阶段。
5. 面向对象编程理念在架构中的立场
在物理视图劣势,在逻辑视图可以采用,单不是必须
6. 逻辑架构的设计应该完成的工作
- 细化功能单元
- 发现通用机制
- 细化领域模型
- 确定子系统接口和交互机制
7. 因为软件架构的重点在于‘软件系统的各部分是如何相关的’,那么我们可以经过适度的抽象分析,将几组协作中的公共行为提取出来成为‘通用机制’,这样用利于所有涉众对软件架构的共同认识——即提高了系统的概念完整性。
8. 什么是机制
所谓机制,是模式的实例,机制必须进一步细化才能成为特定模型中的协作,因此,机制是独特上下文中重复出现的问题的特定解决方案。可以说,机制符合模式的定义,任何协作都可以被称为机制,但通常,机制仅表示‘软件应用系统中重复出现的问题的解决方案’的协作,例如可以采用模式的持久化处理等等。
9. 开发架构的设计工作包括哪些内容
- 确定要开发或直接利用的程序包之间的依赖关系
- 确定采用的技术
- 确定采用的框架
10. 数据架构的设计工作包括哪些内容
- 持久化数据存储方案
- 数据传递、数据复制、数据同步等策略
11. 设计运行架构的思想
着重考虑运行期间质量属性,例如性能、可伸缩性、持续可用性等。运行架构关注进程、线程、对象等运行时概念,以及相关的并发、同步、通信等问题。采用UML图,静态方面涉及包图、类图、对象图;动态方面涉及序列图、协作图等。
12. 设计开发架构的思想
开发架构一般偏重于程序包在编译时期的静态依赖关系,而这些程序运行起来之后会表现为对象、线程、进程,运行架构比较关注的是这些运行时单元的交互问题,运行架构是在开发架构的基础上,从宏观上规划多条控制流的并发和同步。
13. 运行架构包括的一些内容
- 确定引入哪些进程和线程
- 确定主动对象、被动对象、以及控制流关系
- 处理相关问题:进程线程的创建、销毁、通信机制、资源争用等。
- 协议设计,例如基于TCP/IP协议定义本系统的‘应用协议’。
14. 实现并发的两种方式
进程和线程。在面向对象方法中,线程也应通过对象来封装,这包括两个概念:主动对象和主动类。主动对象是一组属性和服务的封装体,其中至少由一个服务是主动服务,主动服务不需要接收‘消息’就能主动执行。与主动对象相对的概念是被动对象,它的所有服务都是被动服务,需要被调用才能执行。主动类则是描述主动对象的类。
15. 如何设计物理架构?
着重考虑‘安装和部署需求’,物理视图描述了运行软件的计算机、网络、硬件设施等情况。还包括如何将软件包部署到这些硬件资源上,以及它们运行时的配置情况。相对于运行架构,物理架构重视目标程序的静态位置问题。如果采用UML,涉及到部署图和组件图。
16. 物理架构包含的主要内容
- 确定物理配置方案
- 确定如何将目标程序映射到物理节点
——————参考文献:《软件架构设计》 温昱
——————参考文章:http://wing011203.cnblogs.com/