信息产业培训网
[当前位置]:首页--专家点评--温昱RSS订阅按钮

细化架构设计

http://www.miiceic.org.cn   2008-9-25 15:56:15   中程在线   浏览数:
关键字:细化架构设计

  多视图的方法不仅仅是架构归档技术,更是指导我们进行架构设计的思维方法。

  越是复杂的系统,越是需要从多个方面进行架构设计,这样才能把问题研究和表达清楚,而提供不同的软件架构视图也便于交流和传递设计思想。

  关键需求是对软件架构设计起关键作用的需求子集,包括功能需求、质量需求和商业需求三种,架构细化必须注意满足这些需求。

  领域模型是以面向对象方式对问题领域的模型的模拟和抽象,它揭示了重要的业务领域概念,并建立业务领域概念之间的关系,领域模型被不断精化后成为最终软件系统的问题领域层,它决定了软件系统的功能范围,并影响着软件系统的可扩展性。

  概念性架构是对系统设计的最初构想,通过主要的设计元素及它们之间的关系来描述系统,这些高层次的设计选择对未来软件系统的质量和功能都有关键作用。

  约束可以视为一特殊的需求,它们具有强制性,规定了业务和技术上的标准和限制。

  我们利用架构视图的方法,从逻辑架构、开发架构、运行架构、物理架构和数据架构五个方面来进行架构设计。

  设计逻辑架构:使用UML来描述,静态方面包括包图类图对象图;动态方面包括序列图协作图状态图活动图

  逻辑架构的设计应该完成的工作:

  细化功能单元

  发现通用机制

  细化领域模型

  确定子系统接口和交互机制

  因为软件架构的重点在于‘软件系统的各部分是如何相关的’,那么我们可以经过适度的抽象分析,将几组协作中的公共行为提取出来成为‘通用机制’,这样用利于所有涉众对软件架构的共同认识——即提高了系统的概念完整性。

  什么是机制?所谓机制,是模式的实例,机制必须进一步细化才能成为特定模型中的协作,因此,机制是独特上下文中重复出现的问题的特定解决方案。可以说,机制符合模式的定义,任何协作都可以被称为机制,但通常,机制仅表示‘软件应用系统中重复出现的问题的解决方案’的协作,例如可以采用模式的持久化处理等等。

  具有良好架构的系统具备概念完整性,它通过对系统架构建立一种清晰的认识来发现通用的抽闲机制,利用这种共性使得最终产生的系统结构更加简单,因而规模更小且更可靠。一个系统使用10000行代码实现远比1000000行代码好的多。

  一流是每个程序设计人员向往并为之奋斗却又无法具体说出的、难以达到的境界。一流的软件非常简明,它灵活而清晰,能通过创造性的机制解决复杂的问题,这些机制语义丰富,可以应用于其他可能完全无关的问题。一流意味着寻求恰当的抽象,意味着通过新的途径合理利用有限的资源。

  设计开发架构:着重考虑开发期间的质量属性,例如可扩展性、可重用性、可移植性等,开发架构的关注点是在软件开发环境中软件模块的实际组织方式,具体涉及源程序文件、配置文件、源程序包、编译后的目标文件、第三方库文件等。使用UML进行描述的话,涉及到包图、类图、组件图等。

  开发架构的设计工作包括:

  确定要开发或直接利用的程序包之间的依赖关系

  确定采用的技术

  确定采用的框架

  设计数据架构:着重考虑‘数据需求’,系统=程序+数据+硬件。数据架构的关注点是持久化数据的组织,对于很多集成系统,数据需要在不同系统之间传递、复制、暂存等,这往往涉及到不同的物理机器。数据架构的描述一般采用E-R图和数据流图来表示,采用UML时,涉及到类图和活动图。

  数据架构的设计工作包括:

  持久化数据存储方案

  数据传递、数据复制、数据同步等策略

  设计运行架构:着重考虑运行期间质量属性,例如性能、可伸缩性、持续可用性等。运行架构关注进程、线程对象等运行时概念,以及相关的并发、同步、通信等问题。采用UML图,静态方面涉及包图、类图、对象图;动态方面涉及序列图、协作图等。

  开发架构一般偏重于程序包在编译时期的静态依赖关系,而这些程序运行起来之后会表现为对象、线程、进程,运行架构比较关注的是这些运行时单元的交互问题,运行架构是在开发架构的基础上,从宏观上规划多条控制流的并发和同步。

  运行架构的设计工作包括:

  确定引入哪些进程和线程

  确定主动对象、被动对象、以及控制流关系

  处理相关问题:进程线程的创建、销毁、通信机制、资源争用等。

  协议设计,例如基于TCP/IP协议定义本系统的‘应用协议’。

  运用主动类规划并发

  进行并发设计的原因:1. 软件系统要支持的业务本身可能是并发的。2. 处于对性能和伸缩性的考虑。3. 在某种情况下,并发性设计是最直观的。

  实现并发的两种方法:进程和线程。在面向对象方法中,线程也应通过对象来封装,这包括两个概念:主动对象和主动类。主动对象是一组属性和服务的封装体,其中至少由一个服务是主动服务,主动服务不需要接收‘消息’就能主动执行。与主动对象相对的概念是被动对象,它的所有服务都是被动服务,需要被调用才能执行。主动类则是描述主动对象的类。

  主动对象对于并发性设计之所以重要,是因为它是控制流的驱动者,主动对象的主动服务是控制流的源头,该主动服务被创建成进程或线程,从而它可以获得处理机资源并开始活动。从主动对象的主动服务开发,层层调用其他对象的服务,形成一个控制流。把系统中的所有主动对象表示清楚,就抓住了系统中每个控制流的源头,就可以吧并发执行的所有控制流梳理清楚。

  设计物理架构:着重考虑‘安装和部署需求’,物理视图描述了运行软件的计算机网络、硬件设施等情况。还包括如何将软件包部署到这些硬件资源上,以及它们运行时的配置情况。相对于运行架构,物理架构重视目标程序的静态位置问题。如果采用UML,涉及到部署图组件图。

  物理架构的设计工作包括:

  确定物理配置方案

  确定如何将目标程序映射到物理节点

  进行架构设计时,还需要注意要满足所有约束性的软件需求,忽视它们可能导致架构设计的失败。

来源:中程在线
相关连接
最新评论
*以下网友发言不代表中程在线网站的观点和看法
    我要评论

    请您注意
    1、遵守中华人民共和国的各项有关法律规定
    2、承担一切因您的行为而导致的法律责任
    3、本网留言管理人员有权删除其管辖留言内容
    4、您在本网的留言本网有权在网站内转载和引用
    5、参与本留言即表明您已经阅读并接受上述条款
    我爱研发网中电华信阿里西西JAVA爱好者北京英才网全球大学查询网
    中国人的网站导航中国电脑论坛信息产业部新浪科技搜狐IT信息产业部电子教育与考试中心
    IT世界网软件项目交易网中国软件交易网国信培训网亚远景科技....[更多]
    关于我们 | 网站地图 | 周边住宿 | 行车路线 | 联系我们 | 网站律师 | 意见反馈 | 虚位以待 | 友情链接
    中程在线(北京)科技有限公司 版权所有
    总 部:北京市海淀区青东商务楼A座西四层
    企业培训部:010-52636110 52636106 就业培训部:010-68716925 68716926
    邮 件:training@miiceic.org.cn
    京ICP备06053134号
    Copyright © 2005-2008 Miiceic.org.cn All Rights Reserved