版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 有关概念有关概念 ABSD ABSD方法为产生软件系统的概念体系结构提供构造方法为产生软件系统的概念体系结构提供构造, ,概念体系结构概念体系结构 是由是由HofimeisterHofimeister、NordNord和和SoniSoni提出的四种不同的体系结构中的一种提出的四种不同的体系结构中的一种, , 它描述了系统的主要设计元素及其关系。概念体系结构代表了在开发它描述了系统的主要设计元素及其关系。概念体系结构代表了在开发 过程中作出的第一个选择,相应地,它是达到系统质量和
2、商业目标的过程中作出的第一个选择,相应地,它是达到系统质量和商业目标的 关键,为达到预定功能提供了一个基础。关键,为达到预定功能提供了一个基础。 体系结构驱动,是指构成体系结构的商业、质量和功能需求的组体系结构驱动,是指构成体系结构的商业、质量和功能需求的组 合。合。 使用使用ABSDABSD方法,设计活动可以在体系结构驱动一决定就开始,这方法,设计活动可以在体系结构驱动一决定就开始,这 意味着需求抽取和分析还没有完成,就开始了软件设计。设计活动的意味着需求抽取和分析还没有完成,就开始了软件设计。设计活动的 开始并不意味着需求抽取和分析活动就可以终止,而是应该与设计活开始并不意味着需求抽取和分
3、析活动就可以终止,而是应该与设计活 动并行。特别是在不可能预先决定所有需求时,例如产品线系统或长动并行。特别是在不可能预先决定所有需求时,例如产品线系统或长 期运行的系统,快速开始设计是至关重要的。期运行的系统,快速开始设计是至关重要的。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 有关概念有关概念 ABSD ABSD方法有三个基础方法有三个基础: : (1 1)功能的分解。使用已有的基于模块的内)功能的分解。使用已有的基于模块的内 聚和耦合技术。聚和耦合技术。 (2 2)通过选择体系结构风格来实现质量和商)通过选择体系结
4、构风格来实现质量和商 业需求。业需求。 (3 3)软件模板的使用。)软件模板的使用。 ABSDABSD方法是递归的方法是递归的, ,且迭代的每一个步骤都是且迭代的每一个步骤都是 清晰地定义的。因此清晰地定义的。因此, ,不管设计是否完成,体系结不管设计是否完成,体系结 构总是清晰的,这有助于降低体系结构设计的随构总是清晰的,这有助于降低体系结构设计的随 意性。意性。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 有关概念有关概念 软件模板软件模板是一个特殊类型的软件元素是一个特殊类型的软件元素, ,包括描述所有这包括描述所有
5、这 种类型的元素在共享服务和底层构造的基础上如何进行交种类型的元素在共享服务和底层构造的基础上如何进行交 互。软件模板还包括属于这种类型的所有元素的功能互。软件模板还包括属于这种类型的所有元素的功能, ,这些这些 功能的例子有功能的例子有: :每个元素必须记录某些重大事件,每个元素每个元素必须记录某些重大事件,每个元素 必须为运行期间的外部诊断提供测试点等。必须为运行期间的外部诊断提供测试点等。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 有关概念有关概念 设计元素设计元素 系统 模板 概念构件 概念子系统 模板 实际构件
6、 图图示示 聚合 继承 进化 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 有关概念有关概念 考虑体系结构时考虑体系结构时, ,重要的是从不同的视角来检查重要的是从不同的视角来检查, ,这这 促使软件设计师考虑体系结构的不同属性。促使软件设计师考虑体系结构的不同属性。 如如: :静态视角静态视角/ /动态视角动态视角 选择的特定视角或视图也就是逻辑视图、进程视图、选择的特定视角或视图也就是逻辑视图、进程视图、 实现视图和配置视图。实现视图和配置视图。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于
7、体系结构的设计方法基于体系结构的设计方法 有关概念有关概念 在使用用例捕获功能需求的同时在使用用例捕获功能需求的同时, ,我们通过定义特定场景来捕获我们通过定义特定场景来捕获 质量需求质量需求, ,并称这些场景为质量场景。这样一来,在一般的软件开发并称这些场景为质量场景。这样一来,在一般的软件开发 过程中,我们使用质量场景捕获变更、性能、可靠性和交互性,分过程中,我们使用质量场景捕获变更、性能、可靠性和交互性,分 别称之为变更场景、性能场景、可靠性场景和交互性场景。质量场别称之为变更场景、性能场景、可靠性场景和交互性场景。质量场 景必须包括预期的和非预期的刺激。景必须包括预期的和非预期的刺激。
8、 例如,一个预期的性能场景是估计每年用户数量增加例如,一个预期的性能场景是估计每年用户数量增加10%10%的影响,的影响, 一个非预期的场景是估计每年用户数量增加一个非预期的场景是估计每年用户数量增加100%100%的影响。非预期场的影响。非预期场 景可能不能真正实现,但它们在决定设计的边界条件时很有用。景可能不能真正实现,但它们在决定设计的边界条件时很有用。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 ABSD ABSD方法与生命周期方法与生命周期 商业用例 软件设计师的经验 遗留系统 抽象构件 软件模板 约束 需求 功
9、功能能需需求求 抽象 用例 质质量量需需求求 抽象 质量因素 体系结构选项 约约束束 需求分析 ABSD方法 实际构件设计 ABSD方法的输入由下列部分组成方法的输入由下列部分组成: 抽象功能需求抽象功能需求,包括变化的需求和通包括变化的需求和通 用的需求。用的需求。 用例(实际功能需求)。用例(实际功能需求)。 抽象的质量和商业需求。抽象的质量和商业需求。 质量因素(实际质量和商业需求)。质量因素(实际质量和商业需求)。 体系结构选项。体系结构选项。 约束。约束。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 ABSD A
10、BSD方法的步骤方法的步骤 1 1、ABSDABSD方法定义的设计元素方法定义的设计元素 系统 模板 概念构件 概念子系统 模板 实际构件 图图示示 聚合 继承 进化 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 ABSD ABSD方法的步骤方法的步骤 2 2、设计元素的产生顺序、设计元素的产生顺序 A BC 设计元素的产生顺序可以看设计元素的产生顺序可以看 作是对元素树的遍历过程。作是对元素树的遍历过程。 树的遍历过程树的遍历过程: : 深度优先深度优先/ /广度优先广度优先 对于一个特定开发来说对于一个特定开发来说, ,
11、决定决定 遍历设计元素树的考虑有:遍历设计元素树的考虑有: 1. 1. 领域知识领域知识 2. 2. 新技术的融合新技术的融合 3. 3. 体系结构设计团队的个人经验体系结构设计团队的个人经验 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 ABSD ABSD方法的步骤方法的步骤 3 3、设计元素的活动、设计元素的活动 定义逻辑视图 校验质 量因素 和约束 定义配置视图 定义 并发 视图 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 ABSD ABSD方法的
12、步骤方法的步骤 定义逻辑视图定义逻辑视图 功能分解 选择基本体 系结构风格 为体系结构 分配功能 提炼模板 用用例和变化 因素进行校验 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 ABSD ABSD方法的步骤方法的步骤 某系统的逻辑视图某系统的逻辑视图 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 ABSD ABSD方法的步骤方法的步骤 (1 1)功能分解)功能分解 一个设计元素有一组功能一个设计元素有一组功能, ,这些功能必须分组。分解的目的是使这些功
13、能必须分组。分解的目的是使 每个组在体系结构内代表独立的元素。分解可以进一步细化。这种分每个组在体系结构内代表独立的元素。分解可以进一步细化。这种分 解的标准取决于对一个特定的设计元素来说是很重要的性能。在不同解的标准取决于对一个特定的设计元素来说是很重要的性能。在不同 的性能基础上的性能基础上, ,可以进行多重分解。可以进行多重分解。 如果象通常的产品一样,在分解中起关键作用的性能要求是可修如果象通常的产品一样,在分解中起关键作用的性能要求是可修 改的,则功能的分组可选择几个标准改的,则功能的分组可选择几个标准: : (1 1)功能聚合。功能聚合。 (2 2)数据或计算行为的类似模式。数据或
14、计算行为的类似模式。 (3 3)类似的抽象级别。类似的抽象级别。 (4 4)功能的局部性。功能的局部性。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 ABSD ABSD方法的步骤方法的步骤 (2 2)选择体系结构风格)选择体系结构风格 每个设计元素有一个主要的体系结构风格或模式每个设计元素有一个主要的体系结构风格或模式, ,这是设计元素如何这是设计元素如何 完成它的功能的基础。主要风格并不是唯一风格完成它的功能的基础。主要风格并不是唯一风格, ,为了达到特定目的,为了达到特定目的, 可以进行修改。可以进行修改。 体系结构风
15、格的选择建立在设计元素的体系结构驱动基础上。体系结构风格的选择建立在设计元素的体系结构驱动基础上。 在软件设计过程中,并不总是有现成的体系结构风格可供选择为主在软件设计过程中,并不总是有现成的体系结构风格可供选择为主 要的体系结构风格。要的体系结构风格。 一旦选定了一个主要的体系结构风格,该风格必须适应基于属于这一旦选定了一个主要的体系结构风格,该风格必须适应基于属于这 个设计元素的质量需求,体系结构选择必须满足质量需求。个设计元素的质量需求,体系结构选择必须满足质量需求。 为设计元素选择体系结构风格是一个重要的选择,这种选择在很大为设计元素选择体系结构风格是一个重要的选择,这种选择在很大 程
16、度上依赖于软件设计师的个人设计经验。程度上依赖于软件设计师的个人设计经验。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 ABSD ABSD方法的步骤方法的步骤 (3 3)为风格分配功能)为风格分配功能 选择体系结构风格时产生了一组构件类型选择体系结构风格时产生了一组构件类型, ,我们必须决定这些类型的数我们必须决定这些类型的数 量和每个类型的功能量和每个类型的功能, ,这就是分配的目的。在功能分解时产生的功能组,这就是分配的目的。在功能分解时产生的功能组, 应该分配给选择体系结构风格时产生的构件类型,这包括决定将存在应该分
17、配给选择体系结构风格时产生的构件类型,这包括决定将存在 多少个每个构件类型的实例,每个实例将完成什么功能。这样分配后多少个每个构件类型的实例,每个实例将完成什么功能。这样分配后 产生的构件将作为设计元素分解的子设计元素。产生的构件将作为设计元素分解的子设计元素。 每个设计元素的概念接口也必须得到标识,这个接口包含了设计元素每个设计元素的概念接口也必须得到标识,这个接口包含了设计元素 所需的信息和在已经定义了的体系结构风格内的每个构件类型所需要所需的信息和在已经定义了的体系结构风格内的每个构件类型所需要 的数据和控制流。的数据和控制流。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开
18、发 7.2 基于体系结构的设计方法基于体系结构的设计方法 ABSD ABSD方法的步骤方法的步骤 (4 4)细化模板)细化模板 被分解的设计元素有一组属于它的模板。在被分解的设计元素有一组属于它的模板。在ABSDABSD方法的初期方法的初期, ,系统没有系统没有 模板。当模板细化了以后模板。当模板细化了以后, ,就要把功能增加上去。这些功能必须由实际就要把功能增加上去。这些功能必须由实际 构件在设计过程中加以实现。构件在设计过程中加以实现。 最后,需要检查模板的功能,以判断是否需要增加附加功能到系统任何最后,需要检查模板的功能,以判断是否需要增加附加功能到系统任何 地方的设计元素中。也就是说,
19、要识别在该级别上已经存在的任何横向地方的设计元素中。也就是说,要识别在该级别上已经存在的任何横向 服务。模板包括了什么是一个好的设计元素和那些应该共享的功能。每服务。模板包括了什么是一个好的设计元素和那些应该共享的功能。每 种类型的功能可以需要附加支持功能,这种附加功能一旦得到识别,就种类型的功能可以需要附加支持功能,这种附加功能一旦得到识别,就 要进行分配。要进行分配。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 ABSD ABSD方法的步骤方法的步骤 (5 5)功能校验)功能校验 用例用来验证他们通过有目的的结构能够达
20、到。子设计元素的附加功用例用来验证他们通过有目的的结构能够达到。子设计元素的附加功 能将可能通过用例的使用得到判断。然而能将可能通过用例的使用得到判断。然而, ,如果用例被广泛地使用于功如果用例被广泛地使用于功 能分解的过程中能分解的过程中, ,将几乎不能发现附加功能。将几乎不能发现附加功能。 也可以使用变化因素,因为执行一个变化的难点取决于功能的分解。也可以使用变化因素,因为执行一个变化的难点取决于功能的分解。 从这种类型的校验出发,设计就是显示需求(通过用例)和支持修改从这种类型的校验出发,设计就是显示需求(通过用例)和支持修改 (通过变化因素)。(通过变化因素)。 第第7 7章章 基于体
21、系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 ABSD ABSD方法的步骤方法的步骤 (6 6)创建并发视图)创建并发视图 检查并发视图的目的是判断哪些活动是可以并发执行的。这些活动必检查并发视图的目的是判断哪些活动是可以并发执行的。这些活动必 须得到识别须得到识别, ,产生进程同步和资源竞争。产生进程同步和资源竞争。 对并发视图的检查是通过虚拟进程来实现的。虚拟进程是通过程序、对并发视图的检查是通过虚拟进程来实现的。虚拟进程是通过程序、 动态模块或一些其他的控制流执行的一条单独路径。虚拟进程与操作动态模块或一些其他的控制流执行的一条单独路径。虚
22、拟进程与操作 系统的进程概念不一样系统的进程概念不一样, ,操作系统的进程包括了额外的地址空间的分配操作系统的进程包括了额外的地址空间的分配 和调度策略。一个操作系统进程是几个虚拟进程的连接点,但每个虚和调度策略。一个操作系统进程是几个虚拟进程的连接点,但每个虚 拟进程不一定都是操作系统进程。虚拟进程用来描述活动序列,使同拟进程不一定都是操作系统进程。虚拟进程用来描述活动序列,使同 步或资源竞争可以在多个虚拟进程之间进行。步或资源竞争可以在多个虚拟进程之间进行。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 ABSD ABS
23、D方法的步骤方法的步骤 (6 6)创建并发视图)创建并发视图 图注:控制线程 开始 诊断例程 命令服务1 用户界面处理 (服务2) 计时服务 初始化 用户界面处理 (服务1) 命令服务2 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 ABSD ABSD方法的步骤方法的步骤 (7 7)创建配置视图)创建配置视图 如果在一个系统中如果在一个系统中, ,使用了多个处理器使用了多个处理器, ,则需要对不同的处理器配置设则需要对不同的处理器配置设 计元素,这种配置通过配置视图来进行检查。计元素,这种配置通过配置视图来进行检查。 例如,
24、我们检查网络对虚拟线程的影响,一个虚拟线程可以通过网络例如,我们检查网络对虚拟线程的影响,一个虚拟线程可以通过网络 从一个处理器传递到另一个处理器。我们使用物理线程来描述在某个从一个处理器传递到另一个处理器。我们使用物理线程来描述在某个 特定处理器中的线程。也就是说,一个虚拟线程是由若干个物理线程特定处理器中的线程。也就是说,一个虚拟线程是由若干个物理线程 串联而成的。通过这种视图,我们可以发现一个单一的处理器上的同串联而成的。通过这种视图,我们可以发现一个单一的处理器上的同 步的物理线程和把一个虚拟线程从一个处理器传递到其他处理器上的步的物理线程和把一个虚拟线程从一个处理器传递到其他处理器上
25、的 需求。需求。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 ABSD ABSD方法的步骤方法的步骤 (7 7)创建配置视图)创建配置视图 服务1子系统 用户界面页服务1 用户界面页服务2 服务2子系统 操作系统子系统操作系统子系统 网络子系统 图注:控制线程 操作系统 服务2 服务1 用户界面页服务2 用户界面页服务1 概念子系统配置单元 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 ABSD ABSD方法的步骤方法的步骤 (8 8)验证质量场景)验证
26、质量场景 一旦创建了三个视图一旦创建了三个视图, ,就要把质量场景应用到所创建的子设计元素上。就要把质量场景应用到所创建的子设计元素上。 对每个质量场景对每个质量场景, ,都要考虑是否仍然满足需求,每个质量场景包括了都要考虑是否仍然满足需求,每个质量场景包括了 一个质量属性刺激和所期望的响应。考虑到目前为止所作出的设计决一个质量属性刺激和所期望的响应。考虑到目前为止所作出的设计决 策,看其是否能够达到质量属性的要求。策,看其是否能够达到质量属性的要求。 如果不能达到,则需重新考虑设计决策,或者设计师必须接受创建质如果不能达到,则需重新考虑设计决策,或者设计师必须接受创建质 量场景失败的现实。量
27、场景失败的现实。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.2 基于体系结构的设计方法基于体系结构的设计方法 ABSD ABSD方法的步骤方法的步骤 (9 9)验证约束)验证约束 最后一步就是要验证所有的约束没有互相矛盾的地方最后一步就是要验证所有的约束没有互相矛盾的地方, ,对每一个约对每一个约 束束, ,都需提问都需提问“该约束是否有可能实现该约束是否有可能实现? ?”。一个否定的回答就意味。一个否定的回答就意味 着对应的质量场景也不能满足。这时,需要把问题记录进文档,对着对应的质量场景也不能满足。这时,需要把问题记录进文档,对 导致约束的决策进行重新验证。导致约束
28、的决策进行重新验证。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与演化 设计和演化过程设计和演化过程 实验原型阶段实验原型阶段 演化开发阶段演化开发阶段 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与演化 设计和演化过程设计和演化过程 (1 1)实验原型阶段。这一阶段考虑的首要问题是要获得对)实验原型阶段。这一阶段考虑的首要问题是要获得对 系统支持的问题域的理解。为了达到这个目的系统支持的问题域的理解。为了达到这个目的, ,软件开发组软件开发组 织需要构建一系列原型织需要构
29、建一系列原型, ,与实际的最终用户一起进行讨论和与实际的最终用户一起进行讨论和 评审,这些原型应该演示和支持全局改进的实现。但是,评审,这些原型应该演示和支持全局改进的实现。但是, 来自用户的最终需求是很模糊的,因此,整个第一个阶段来自用户的最终需求是很模糊的,因此,整个第一个阶段 的作用是使最终系统更加精确化,有助于决定实际开发的的作用是使最终系统更加精确化,有助于决定实际开发的 可行性。可行性。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与演化 设计和演化过程设计和演化过程 (2 2)演化开发阶段。实验原型阶段的结果可以决定是否
30、开)演化开发阶段。实验原型阶段的结果可以决定是否开 始实现最终系统始实现最终系统, ,如果可以如果可以, ,开发将进入第二个阶段。与实开发将进入第二个阶段。与实 验原型阶段相比,演化开发阶段的重点放在最终产品的开验原型阶段相比,演化开发阶段的重点放在最终产品的开 发上。这时,原型即被当作系统的规格说明,又可当作系发上。这时,原型即被当作系统的规格说明,又可当作系 统的演示版本。这意味着演化开发阶段的重点将转移到构统的演示版本。这意味着演化开发阶段的重点将转移到构 件的精确化。件的精确化。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与
31、演化 实验原型阶段实验原型阶段 第一个开发周期没有具体的、明确的目标。此时第一个开发周期没有具体的、明确的目标。此时, ,为了提高为了提高 开发效率开发效率, ,缩短开发周期,所有开发人员可以分成了两个小组,缩短开发周期,所有开发人员可以分成了两个小组, 一个小组创建图形用户界面,另一个小组创建一个问题域模型。一个小组创建图形用户界面,另一个小组创建一个问题域模型。 两个小组要并行地工作,尽量不要发生相互牵制的现象。两个小组要并行地工作,尽量不要发生相互牵制的现象。 在第一个周期结束时,形成了两个版本,一个是图形用户界在第一个周期结束时,形成了两个版本,一个是图形用户界 面的初始设计,另一个是
32、问题域模型,该模型覆盖了问题域的子面的初始设计,另一个是问题域模型,该模型覆盖了问题域的子 集。用户界面设计由水平原型表示,也就是说,运行的程序只是集。用户界面设计由水平原型表示,也就是说,运行的程序只是 实现一些用户界面控制,没有实现真正的系统功能。实现一些用户界面控制,没有实现真正的系统功能。 第一个开发周期第一个开发周期 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与演化 第二个开发周期第二个开发周期 第二个开发周期的任务是设计和建立一个正交软件体第二个开发周期的任务是设计和建立一个正交软件体 系结构系结构, ,该结构不但应具有
33、第该结构不但应具有第2 2节中描述的特征节中描述的特征, ,还应具有以还应具有以 下特征下特征: : (1 1)必须足够灵活,不但能包含现有的元素,而且能包含)必须足够灵活,不但能包含现有的元素,而且能包含 新增的功能。新增的功能。 (2 2)必须提供一个相当稳定的结构,在这个结构中,原型)必须提供一个相当稳定的结构,在这个结构中,原型 能在实验原型阶段进行演化。能在实验原型阶段进行演化。 (3 3)必须支持一个高效的开发组织,允许所有开发人员并)必须支持一个高效的开发组织,允许所有开发人员并 行低在原型的基础上进行开发。行低在原型的基础上进行开发。 实验原型阶段实验原型阶段 第第7 7章章
34、基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与演化 第二个开发周期第二个开发周期 标识构件标识构件 提出软件体系结构模型提出软件体系结构模型 把已标识的构件映射到软件体系结构中把已标识的构件映射到软件体系结构中 分析构件之间的相互作用分析构件之间的相互作用 产生软件体系结构产生软件体系结构 软件体系结构正交化软件体系结构正交化 实验原型阶段实验原型阶段 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与演化 (1 1)标识构件)标识构件: :为系统生成初始的逻辑结构。为系统生成初始的逻辑结构。
35、第一步第一步, ,生成类图生成类图 第二步第二步, ,对类进行分组对类进行分组 第三步,把类打包成构件第三步,把类打包成构件 第二个开发周期第二个开发周期 实验原型阶段实验原型阶段 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与演化 (2 2)提出软件体系结构模型)提出软件体系结构模型 在建立体系结构的初期在建立体系结构的初期, ,选择一个合适的体系结构风选择一个合适的体系结构风 格是首要的。在这个风格基础上格是首要的。在这个风格基础上, ,开发人员通过体系结构开发人员通过体系结构 模型,可以获得关于体系结构属性的理解。模型,可以获得
36、关于体系结构属性的理解。 此时,虽然这个模型是理想化的此时,虽然这个模型是理想化的( (其中的某些部分可其中的某些部分可 能错误地表示了应用的特征能错误地表示了应用的特征) ),但是,该模型为将来的调,但是,该模型为将来的调 整和演化过程建立了目标。整和演化过程建立了目标。 第二个开发周期第二个开发周期 实验原型阶段实验原型阶段 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与演化 (3 3)把已标识的构件映射到软件体系结构中)把已标识的构件映射到软件体系结构中 把在第(把在第(1 1)阶段已标识的构件映射到体系结构中)阶段已标识的构件
37、映射到体系结构中, , 将产生一个中间结构将产生一个中间结构, ,这个中间结构只包含那些能明确适这个中间结构只包含那些能明确适 合体系结构模型的构件。合体系结构模型的构件。 第二个开发周期第二个开发周期 实验原型阶段实验原型阶段 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与演化 (4 4)分析构件之间的相互作用)分析构件之间的相互作用 为了把所有已标识的构件集成到体系结构中为了把所有已标识的构件集成到体系结构中, ,必须认必须认 真分析这些构件的相互作用和关系。我们可以使用真分析这些构件的相互作用和关系。我们可以使用UMLUML的的
38、 顺序图来完成这个任务。顺序图来完成这个任务。 第二个开发周期第二个开发周期 实验原型阶段实验原型阶段 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与演化 (5 5)产生软件体系结构)产生软件体系结构 一旦决定了关键的构件之间的关系和相互作用一旦决定了关键的构件之间的关系和相互作用, ,就可就可 以在第(以在第(3 3)阶段得到的中间结构的基础上进行精化。可)阶段得到的中间结构的基础上进行精化。可 以利用顺序图标识中间结构中的构件和剩下的构件之间以利用顺序图标识中间结构中的构件和剩下的构件之间 的依赖关系的依赖关系, ,分析第(分析第
39、(2 2)阶段模型的不一致性)阶段模型的不一致性( (例如丢失例如丢失 连接等连接等) )。 第二个开发周期第二个开发周期 实验原型阶段实验原型阶段 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与演化 (6 6)软件体系结构正交化)软件体系结构正交化 在(在(1 1)- -(5 5)) )阶段产生的软件体系结构不一定满足阶段产生的软件体系结构不一定满足 正交性(例如正交性(例如: :同一层次的构件之间可能存在相互调用)。同一层次的构件之间可能存在相互调用)。 整个正交化过程以原体系结构的线索和构件为单位整个正交化过程以原体系结构的线索
40、和构件为单位, ,自顶自顶 向下、由左到右进行。通过对构件的新增、修改或删除向下、由左到右进行。通过对构件的新增、修改或删除, , 调整构件之间的相互作用,把那些不满足正交性的线索调整构件之间的相互作用,把那些不满足正交性的线索 进行正交化。进行正交化。 第二个开发周期第二个开发周期 实验原型阶段实验原型阶段 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与演化 演化开发阶段演化开发阶段 一旦软件的正交体系结构得以确定一旦软件的正交体系结构得以确定, ,就可以开始正式的就可以开始正式的 构件开发工作构件开发工作, ,由于体系结构的正交性
41、,可以把开发人员分由于体系结构的正交性,可以把开发人员分 成若干个小组进行并行开发,视开发难度情况,每个小组成若干个小组进行并行开发,视开发难度情况,每个小组 负责一条或数条线索。由于各条线索之间没有相互调用,负责一条或数条线索。由于各条线索之间没有相互调用, 所以各小组工作不会相互牵制。这样,可大大提高编程的所以各小组工作不会相互牵制。这样,可大大提高编程的 效率,缩短开发周期。效率,缩短开发周期。 在构件开发过程中,最终用户的需求可能还有变动。在构件开发过程中,最终用户的需求可能还有变动。 在软件开发完毕,正常运行后,由一个单位移植到另一个在软件开发完毕,正常运行后,由一个单位移植到另一个
42、 单位,需求也会发生变化。在这两种情况下,就必须使用单位,需求也会发生变化。在这两种情况下,就必须使用 系统演化步骤去修改应用,以满足新的需求。系统演化步骤去修改应用,以满足新的需求。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与演化 演化开发阶段演化开发阶段 需求变动归类需求变动归类 制订体系结构演化计划制订体系结构演化计划 修改、增加或删除构件修改、增加或删除构件 更新构件的相互作用更新构件的相互作用 产生演化后的体系结构产生演化后的体系结构 迭代迭代 对以上步骤进行确认对以上步骤进行确认, ,进行阶段性技术评审进行阶段性技术评
43、审 对所做的标记进行处理对所做的标记进行处理 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与演化 演化开发阶段演化开发阶段 (1 1)需求变动归类。)需求变动归类。 首先必须对用户需求的变化进行归类首先必须对用户需求的变化进行归类, ,使变化的需求与使变化的需求与 已有构件和线索对应。对找不到对应构件和线索的变动已有构件和线索对应。对找不到对应构件和线索的变动, ,也也 要做好标记,在后续工作中,将创建新的构件或线索,以对要做好标记,在后续工作中,将创建新的构件或线索,以对 应这部分变化的需求。应这部分变化的需求。 第第7 7章章 基
44、于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与演化 演化开发阶段演化开发阶段 (2 2)制订体系结构演化计划。)制订体系结构演化计划。 在改变原有结构之前在改变原有结构之前, ,开发组必须制订一个周密的体系开发组必须制订一个周密的体系 结构演化计划结构演化计划, ,作为后续演化开发工作的指南。作为后续演化开发工作的指南。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与演化 演化开发阶段演化开发阶段 (3 3)修改、增加或删除构件。)修改、增加或删除构件。 在演化计划的基础上在演化计划的基础上,
45、 ,开发人员可根据在第(开发人员可根据在第(1 1)步得到)步得到 的需求变动的归类情况的需求变动的归类情况, ,决定是否修改或删除存在的构件、决定是否修改或删除存在的构件、 增加新构件。增加新构件。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与演化 演化开发阶段演化开发阶段 (4 4)更新构件的相互作用。)更新构件的相互作用。 随着构件的增加、删除和修改随着构件的增加、删除和修改, ,构件之间的控制流必须构件之间的控制流必须 得到更新。得到更新。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计
46、与演化体系结构的设计与演化 演化开发阶段演化开发阶段 (5 5)产生演化后的体系结构。)产生演化后的体系结构。 在原来系统上所作的所有修改必须集成到原来的体系结在原来系统上所作的所有修改必须集成到原来的体系结 构中。这个体系结构将作为改变的详细设计和实现的基础。构中。这个体系结构将作为改变的详细设计和实现的基础。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与演化 演化开发阶段演化开发阶段 (6 6)迭代。)迭代。 如果在第(如果在第(5 5)步得到的体系结构还不够详细)步得到的体系结构还不够详细, ,不能实现不能实现 改变的需求改变
47、的需求, ,可以把第(可以把第(3 3)()(5 5)步再迭代一次。)步再迭代一次。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与演化 演化开发阶段演化开发阶段 (7 7)对以上步骤进行确认)对以上步骤进行确认, ,进行阶段性技术评审。进行阶段性技术评审。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.3 体系结构的设计与演化体系结构的设计与演化 演化开发阶段演化开发阶段 (8 8)对所做的标记进行处理。)对所做的标记进行处理。 重新开发新线索中的所有构件重新开发新线索中的所有构件, ,对已有构件按照标记的对已有构件按照标记的 要求进行修改、删除或更换。完成一次演化过程。要求进行修改、删除或更换。完成一次演化过程。 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.4 基于体系结构的软件开发模型基于体系结构的软件开发模型 ABSDM ABSDM 第第7 7章章 基于体系结构的软件开发基于体系结构的软件开发 7.4 基于体系结构
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度个人二手房交易定金保障合同3篇
- 二零二五版集团车辆购置与环保配套设施建设合同3篇
- 2025版美容院连锁加盟管理与服务合同范本4篇
- 二零二五年度门窗安装工程工期延误补偿合同4篇
- 二零二五年度房地产开发合同法风险防范策略4篇
- 二零二五年度摩托车驾驶培训服务合同4篇
- 二零二五年度智能电网建设合同:典型合同“电力安全保证合同”4篇
- 二零二五年度中小企业融资租赁借款合同8篇
- 二零二五年度个人间知识产权转让合同3篇
- 2025年度农业废弃物处理农资化肥原料采购合同4篇
- 2025-2030年中国草莓市场竞争格局及发展趋势分析报告
- 第二章《有理数的运算》单元备课教学实录2024-2025学年人教版数学七年级上册
- 华为智慧园区解决方案介绍
- 奕成玻璃基板先进封装中试线项目环评报告表
- 广西壮族自治区房屋建筑和市政基础设施全过程工程咨询服务招标文件范本(2020年版)修订版
- 人教版八年级英语上册期末专项复习-完形填空和阅读理解(含答案)
- 2024新版有限空间作业安全大培训
- GB/T 44304-2024精细陶瓷室温断裂阻力试验方法压痕(IF)法
- 年度董事会工作计划
- 《退休不褪色余热亦生辉》学校退休教师欢送会
- 02R112拱顶油罐图集
评论
0/150
提交评论