软件构架结构讲解

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

*
*Garlan和Shaw的定义
构架包括组件(Component)、连接器(Connector) 和约束(Constrain)三大要素
*Boehmn的定义
软件构架包括系统组件、连接件和约束的集合,反应 不同涉众需求的集合和原理的集合
*
*该定义属于组成派定义的范畴 *内容:构架是以组件、组件之间的
结构
*在基于组件开发的系统中错误处理和检测原则 *将每个程序都看做某一程序族的一员 *认识到系统的结构影响到系统的质量 *引入使用结构,该原则控制各个元素之间的连接,以增
强系统的可扩展性
控制处理 (CP)
特征损失 模型
(MODP)
回响模型 (MODR)
噪音模型 (MODN)
图1 未提供多少信息的软件构架的描述图
任何一个系统都有一个构架,并且可以独立于设计或 演变该构架的过程的知识对其进行探索和分析。
(4)构架是组件和连接器。 连接器:指的是系统运行时为传送控制和数据信息而采
用的机制。 该定义强调了系统运行时的构架。
源自文库
*
涉众
基本解释:涉众是与要建设的业务系统相关的一切人和事。
举例解释:例如修建一条公路,它预期的使用者是广大的司机; 监管方是交通管理局;出资方是国家财政;发展商是某某公司; 建筑商是某某工程公司等。显然他们都与此项目有利益关系,都 是涉众。这些都好理解。但是在某些情况下,看似与公路完全无 关的一些人和事却会成为重要涉众。例如当公路修建需要搬迁居 民时,被搬迁的居民就成为重要的涉众;当公路规划遇到历史建 筑时,文物管理局就成为重要的涉众。虽然软件项目开发与修建 公路相比涉及的人和事要少得多,但是也不能忽略系统使用者之 外的其他涉众。另外,当面对一个陌生的问题领域时,往往在项 目初期还不能够清楚的获悉究竟谁是系统的使用者,通常得随着 需求的深入逐步明确。但是最终的系统使用者将从涉众当中产生, 因此涉众分析显得尤为重要。
构架是一系列重要决策的集合,这些决策与以下 内容相关:软件的组织、构成系统的结构元素及其接口 的选择,这些元素在相互协作中明确表现的行为,这些 结构元素和行为元素进一步组合所构成的更大规模的子 系统,以及如何组织这些元素
*Woods的定义
软件构架是一系列设计决策,如果做了不正当的 决策,项目可能最终会被取消
软件构架实践之
*
软件构架概念 构架模式、参考模型和参考构架 软件构架的重要性 构架的结构和视图 小结
第一章阐述了构架在保证开发组织实现 其商业目标方面所起到的重要作用
软件 构架
需要付 出成本
提高开 发能力
那么软件构 架在项目开 发中又有什 么意义呢?
极重要 的资产
*
最早在软件开发 领域,构架这个 词用来指适用多 个系统的计算机 系统的描述
*
*系统是由4个元素组成 *其中的3个元素特征损失模型(MODP)、回响模
型(MODR)和噪音模型(MODN)可能有更多的 相似之处,但是他们与第4个元素控制处理(CP) 之间可能会有较大的差异,因为前三个元素在图 中处于同一层次上
*该图是完全连通的,因而所有的元素之间显然存
在着某种联系
这就是构架吗?如果构架真的是由若干组件及其之间的相互联系 组成,则用这样的图就足以表述构架,但是,从图中并不能得到以 下信息:
(4)从分布的角度上:各个元素在图中的分布表示什 么意义?为什么CP单独在一个层次上?是不是CP可以调 用其他元素反之不行呢?是不是仅仅因为受版面空间的 限制而没有将这4个元素排成一行。。。。。。。。。。
*
根据上面所提出的问题,必须知道以下几个方面,否则 这样的图是没有意义的
(1)准确的知道元素是什么,表示的是什么意思 (2)元素之间是如何协作来实现系统的目的的
(2)构架是系统的总体结构。
这个常见的说法是不正确的,其中暗含的意思是系 统只有一个结构。但是这种观点具有教学上的重要性, 因为后面可以看到,不同的结构提供了一个关键的工程 设计平衡点,这些平衡点使得系统中具有了导致系统成 功或者失败的质量属性,构架中的结构的多样性位于概 念的核心。
(3)构架是软件或者系统的组件、组件之间的相互关系以及 管理其设计和演变的原理和方针的结构。
(1)从元素的角度上:这些元素的实质是什么?划分成这样的元素 有何种意义?它们是否能运行在不同的处理器上?从运行时间上看, 是否相互独立?这些元素是由进程还是程序组成,或者是两者兼有? 这些元素是否反应了开发项目任务的划分?它们是否表示了运行时 独立性?这些组件是对象、任务、函数、进程、分布式程序,还是 其他?
(2)从职责的角度上:元素的职责是什么?它们在系统中做什么? 在系统中的功能是什么?
(3)从联系关系的角度上:图中的连线代表的意思是 什么?这些连线是表示这些元素相互通信、相互控制、 相互发送数据、相互作用、相互调用、保持同步、彼此 之间共享一些信息隐藏秘密,还是上述关系和其他关系 的组合?这种相互通信又是借助什么机制来实现的?在 机制之间流动的可能是什么信息
*
软件构架在不断的发展,但它仍然是一门尚不成 熟的学科,因此软件构架并没有一个统一的、公认 的定义。大多数常见的定义的要点都是一致的—结 构、元素以及各元素之间的关系。软件构架的定义 大体可以分为两类: 1、决策派的定义---一组决策的集合 2、组成派的定义—元素+元素的关系
*
*Booch、Rumbaugh和Jacobson的定义:
1969年
Fred Brooks和Ken Inverson等人相继 给出了描述,在 这之前Blaauw最 先提出了“构架”
70年代
David Parnas提出 了关于构架的许 多基本原则
构架实际上是同类系统的抽象
*
*信息隐藏原则 *关于只允许通过接口使用元素的原则 *强调对软件系统中的不同结构进行考察,不得混淆这些
这是许多以过程为中心的定义中的一种,也是属于组成 派的定义范畴,其中包括诸如原理和指导方针这样的辅助性 信息。许多人声称构架中包含对涉众需要以及如何满足这些 需要的基本原理的陈述。我们认为收集此类信息是基本的, 它是一个很好的专业实践,然而,从本质上来说它们并不是 构架的一部分,例如并不把汽车所有者的手册作为汽车的一 部分一样。
关系、组件与环境之间的关系为内 容的某一系统的基本组织结构,以 及指导上述内容涉及与演化的原理
*
(1)构架是一种高层设计。
从马是哺乳动物这个意义上来说,这种说法是正确的, 但是反过来说就不对了。与设计相关的其他任务并不属于 构架,如确定将要封装的重要的数据结构。访问数据结构 的接口肯定属于构架的范畴,但是实际做出的选择却不是。
相关文档
最新文档