2015年软考系统架构设计师学习笔记第六章(4)
发布时间:2010/12/4 22:19:03 来源:城市学习网 编辑:ziteng
6.4.1 模型概述
以精心选择的形式 将若干结构元素进行装配。
软件架构 = { 元素,形式,关系/约束 }
逻辑视图(logical view)对象模型。
过程视图(process view)并发和同步特征。
物理视图(physical view)分布式。
开发视图(development view)静态组织结构。
Rational 4.1 视图模型。
每个视图上均独立地应用 Perry&Wolf 软件架构公式。
对每种视图选用特定的 架构风格(architectural style)。
6.4.2 逻辑结构
逻辑架构主要支持功能性需求,系统分解为一系列的关键抽象,(大多数)来自于问题域,表现为对象或对象类的形式。
抽象、封装、继承。
对于数据驱动程度高的应用程序,可以使用其他形式的逻辑视图,如 E-R图 代替面向对象的方法。
1、逻辑视图的风格
采用面向对象的风格,试图在整个系统中 保持 单一的、一致的 对象模型。
6.4.3 进程架构
进程架构考虑一些非功能性的需求,并发性、分布性、系统完整性、容错性,以及逻辑视图的主要抽象如何与进程结构相配合在一起。
进程是 构成可执行单元任务的分组。
区分主要次要任务:主要任务是 可以唯一处理的架构元素;次要任务是 由于实施原因而引入的局部附加任务。
6.4.4 开发架构
开发架构关注软件开发环境下实际模块的组织。
开发架构用模块和子系统图来表达,显示了“输出”和“输入”关系。
考虑因素:开发难度、软件管理、重用性、通用性、由工具集、语言 所带来的限制。
开发视图 是建立产品线的 基础。
推荐使用分层(layered)的风格,每层具有良好定义的职责。某层子系统依赖同一层或低一层的子系统,最大程度地减少了具有复杂模块依赖关系的 网络的开发量。 [NextPage] 6.4.5 物理架构
物理架构主要关注系统非功能性的需求,可用性、可靠性(容错性),性能(吞吐量)、可伸缩性。
软件至节点的映射需要高度的灵活性 及 对源代码产生最小的影响。
6.4.6 场景
4种视图的元素通过数量比较少的一组重要场景(更常见的是用例)进行无缝协同工作,我们为场景描述相应的脚本(对象之间和过程之间的交互序列)。
在某种意义上 场景是最重要的 需求抽象。
4+1 的 +1 起到了两个作用:
作为一项驱动因素 来发现架构设计过程中的 架构元素。
作为架构原型测试的出发点。
场景表示法与组件逻辑视图非常相似,但它使用过程视图的连接符来表示对象之间的交互。
6.4.7 迭代过程
在进行文档化时,提倡一种更具有迭代性质的方法——架构先被原型化、测试、估量、分析,然后在一系列的迭代过程中被细化。
除了减少 风险之外,还有其他优点:团队合作、培训、加深对架构的理解、深入程序和工具 等。使 需求被细化、成熟化。
系统大多数关键的功能以场景的形式被捕获,关键意味着:最重要的功能、系统存在的理由、使用频率最高的功能、必须减轻的一些重要技术风险。