第四章 特定领域的软件体系结构
软件体系结构
7
践者提供设计体系结构更好的方法,以便设计人员相互交流,并可以使 用支持体系结构描述语言的工具来分析案例。 这些内容将在第5 章介绍。 第二类是体系结构领域知识的总结性研究。这一领域关心的是工程 师通过软件实践总结而来各种体系结构原则和模式的分类和阐释。 第三类是针对特定领域的框架 [SEI90,Tra94] 的研究。这类研究产生 了针对一类特殊软件的体系结构框架,比如,航空电子控制系统、移动 机器人、用户界面。这类研究一旦成功,这样的框架便可以被毫不费力 实例化来生产这一领域新的产品。这部分内容将在第 7 章介绍。 第四类是软件体系结构形式化支持的研究。随着新的符号的产生, 以及人们对体系结构设计实践的理解逐步深入,需要用一种严格的形式 化方法刻画软件体系结构及其相关性质。这些内容将在第 5 章介绍。
8
设计或实现中一种特殊的重复出现的问题。例如,Bridge 模式,它为解 决抽象部分和实现部分独立变化的问题提供了一种通用结构。因此,设 计模式更强调直接复用的程序结构。 3. 应用框架(Application Framework) 应用框架是整个或部分系统的可重用设计,表现为一组抽象构件的 集合以及构件实例间交互的方法。可以说,一个框架是一个可复用的设 计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的 依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协 作的方法,它为构件复用提供了上下文 (Context) 关系。在很多情况下, 框架通常以构件库的形式出现,但构件库只是框架的一个重要部分。框 架的关键还在于框架内对象间的交互模式和控制流模式 [2]。 设计模式是对在某种环境中反复出现的问题以及解决该问题的方 案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复 用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的 元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特 定应用领域,但同一模式却可适用于各种不同的应用。体系结构风格描 述了软件系统的整体组织结构,它独立于实际问题。而设计模式和应用 框架更加面向具体问题。 体系结构风格、设计模式和应用框架的概念是从不同的目的和出发 点讨论软件体系结构,它们之间的概念经常互相借鉴和引用。
软件体系结构
这种系统主要适用于控制系统,信息管理系 统,CAD系统,CASE工具集。
13
集成的CASE工具集的体系结构 以数据仓库为核心
设计编辑器
代码生成器
设计翻译器
项目数据仓库
程序编辑器
设计分析器
报告生成器
14
这种体系结构包括数据库、超文本系统及数 据黑板系统等。它包含两种成分:一是共享 的结构化数据;二是所有访问这些数据的操 作。
集中控制模型分为两类: 控制子系统顺序执行 控制子系统并发执行
作为集中控制器的子系统在将控制转交给另 一子系统后,该子系统完成它的功能后控制 权还要归还给集中控制器子系统。
33
(1)调用-返回模型 (Call-Return model)
此即熟悉的自顶向下的子程序模型。 控制始于子程序层次的顶部,通过子程序调
用,从层次结构较高层的程序向较低层的程 序传递控制信息。程序执行结束将向较高层 的父程序返回。 这种程序模型仅应用于顺序系统。 该模型可以在模块层使用,以控制函数或对 象。
34
控制的Call-Return模型
Main Program
Routine Routine Routine
1
2
3
Routine Routine
6
4) 控制构件: 管理其它构件运行的时间、时 机及次序。例如,调度器、同步器等。
5) 链接构件: 在实体之间传递信息。例如, 通信机制、用户界面等。
1.5 构件之间的连接方式
1) 过程调用: 在某一特定执行路径中传递执行 指针。如普通过程调用、远程过程调用。
2) 数据流: 相互独立的处理通过数据流进行交 互,在得到数据的同时被赋予控制权限。 如 UNIX 系统中的管道。
软件体系结构概述
软件体系结构概述软件体系结构是指软件系统的组织方式和结构框架,包括系统的组件、模块、连接方式以及它们之间的关系。
软件体系结构定义了系统的主要构成和交互方式,以及系统的整体特性和行为。
软件体系结构的设计和选择对于系统的可维护性、可扩展性、可靠性和性能等方面都有重要影响。
软件体系结构可以理解为一个软件系统的蓝图或者设计模板,它指导和限制了系统在开发和维护过程中的各个方面,并对系统的演化和重用性提供支持。
常见的软件体系结构包括客户端-服务器体系结构、分层体系结构、面向对象体系结构、面向服务体系结构等。
客户端-服务器体系结构是最常见的软件体系结构之一,它将软件系统划分为客户端和服务器两部分。
客户端负责用户界面和用户交互,服务器负责处理业务逻辑和数据存储。
这种体系结构可以提高系统的可伸缩性和可靠性,同时也增加了系统的复杂性和通信开销。
分层体系结构将软件系统划分为多个层次,每个层次具有特定的功能。
常见的层次包括表示层、业务逻辑层和数据访问层。
表示层负责用户界面的展示和交互,业务逻辑层负责系统的业务逻辑处理,数据访问层负责数据的存储和访问。
分层体系结构可以提高系统的可重用性和可维护性,同时也增加了系统的复杂性和通信开销。
面向对象体系结构利用面向对象的思想和技术进行软件系统的设计和实现。
它将软件系统划分为多个对象,每个对象具有特定的属性和方法,并通过消息传递进行交互。
面向对象体系结构可以提高系统的可重用性和可维护性,同时也增加了系统的复杂性和内存开销。
面向服务体系结构将软件系统划分为多个服务,每个服务具有特定的功能和接口。
这些服务通过网络进行通信和交互,从而实现系统的功能需求。
面向服务体系结构可以提高系统的可扩展性和跨平台性,同时也增加了系统的通信开销和服务管理的复杂性。
除了以上常见的软件体系结构外,还有其他一些特定领域的体系结构,如实时系统体系结构、并行系统体系结构等。
实时系统体系结构适用于对响应时间有严格要求的系统,它需要快速的响应和高可靠性。
第四章 特定领域的软件体系结构
4.2.3 领域工程与应用工程的关系
在应用工程中被广泛使用的方法、技术和原 则都可以在领域工程中加以利用
例如:结构化分析方法、面向对象设计技术、实 体-关系图、以及数据流图等
4.3 DSSA的参与者
DSSA的参与者包括领域工程人员和应用工 程人员 领域工程人员包括:领域专家、领域分析人 员、领域设计人员和领域实现人员 领域专家包括该领域中有经验的用户、从事 该领域系统需求分析、设计、实现以及项目 管理的软件工程师等
4.2.1 DSSA的领域工程
领域模型描述领域中应用的共同需求,领域模型 所描述的需求经常被称为领域需求 领域模型是针对某一特定领域的需求规约模型 领域模型描述了多种不同的信息:
领域范围:领域定义和上下文分析 领域字典:定义领域内相关术语 符号标识:描述概念和概念模型,利用符号系统对 领域模型内的概念进行统一的说明 领域共性:领域内相似应用的共性需求和共同特征 特征模型:定义领域特征,描述领域特征之间的相 互关系
4.2.3 领域工程与应用工程的关系
领域中的共性部分是通过领域中的所有应用 来体现的,一旦得到实现之后,在应用工程 中便不再作为关注的重点 选择和配置不同抽象层次的变化性因素,将 成为贯穿应用工程全过程的主要活动 在领域设计阶段,建立比较合理、灵活的 DSSA,将系统中的可变部分与固定部分分 离开来,将系统成分在DSSA和构件之间进 行合理的分配,把变化性因素封装为构件
在启动一个软件项目时,我们应该关注软件 涉及的领域 对领域的理解主要有如下三种观点:
一组或一族相关系统,所有这些系统具有一种能 力或共享同一数据集 具有相同需求的一个应用程序族所描述的问题空 间 一个问题或任务领域,在其中可以开发出多重高 度相似的应用系统,以满足各种不同用户的特定 需求
第4章 特定领域的软件体系结构
领域实现
领域实现的主要目标是根据领域模型、 DSSA来开发和组织可重用软件元素。领域 实现的主要活动包括:
开发可重用软件元素; 对可重用软件元素进行组织,一种重要的方法 是将可重用构件加入可重用构件库中。这些可 重用软件元素可能是利用再工程技术从现有系 统中提取得到的,也可能是在新开发过程中获 取的。
问题领域的内聚性和稳定性。关于现实世界问题领域的 解决方法的知识是充分内聚和稳定的,这才能使得获取 和表示这些知识的努力是有意义的,这一基本认识是实 际观察的结果。一个问题领域的规约和实现知识的内聚 性,便得可以通过一组有限的、相对较少的可重用信息 来把握这些可以解决大量问题的知识。领域的稳定性, 使得获取和表示这些信息所付出的代价可以通过在一段 较长的时间内多次重用它们来得到补偿。
4.5 DSSA的生命周期
与传统的软件工程一样,基于特定领域的软件体系结构 DSSA的开发也存在着生命周期。R· Balzer提出一个基 于DSSA的软件开发生命周期,如图所示。
领域需求 领域分析 领域模型 参考体系 结构规范 重用构件的 获取和生成
应用系 统需求
应用系统 需求分析
应用系 统规范
领域设计
领域设计是领域工程的第二个阶段,此阶段的主要目标是针对 领域分析阶段获得的对目标领域的问题域系统责任的认识,开 发出相应的设计模型。与领域分析模型一样,领域设计框架必 须被一般化、标准化和文档化,使之能够在创建多个软件产品 时被使用。领域设计框架一般化处理的步骤: (1)从实现中分离依赖关系,使之容易辨认和修改,以适应特定 软件产品的需求,或者满足新应用环境与技术的需要。 (2)将框架分层,使软件资源(诸如过程和服务)可以按照特定应 用、特定操作系统以及特定硬件平台的要求进行分层。这样, 将使领域设计框架更容易适应特定领域软件开发的需求。 (3)在每一层上,寻找适合领域设计框架的通用软件资源;然后 以此为基础,寻找适合框架的其他基础性资源。
DSSA特定领域软件体系结构
DSSA特定领域软件体系结构⼀、何为DSSA特定领域软件架构(Domain Specific Software Architecture,DSSA)是⼀种有效实现特定领域软件重⽤的⼿段。
简单地说,DSSA就是在⼀个特定应⽤领域为⼀组应⽤提供组织结构参考的标准软件体系结构。
按照Tracz的说法,DSSA就是⼀个特定的问题领域中由领域模型、参考需求、参考架构等组成的开发基础架构,其⽬标就是⽀持⼀个特定领域中多个应⽤的⽣成。
特定领域软件架构可以看作开发产品线的⼀个⽅法或理论,它的⽬标就是⽀持在⼀个特定领域中有多个应⽤的⽣成。
⼆、DSSA与体系结构之间有何关联?1、DSSA是以问题域为出发点,⽽软件体系结构是以解决域为出发点的;2、DSSA只对某⼀个领域进⾏设计专家知识的提取、存储和组织,但可以同时使⽤多种体系结构风格;⽽在某个体系结构风格中进⾏体系结构专家知识的组织时可以扩展到多个应⽤领域;3、DSSA的特定领域参考体系结构通常选⼀个或多个体系结构风格,并设计⼀个专⽤的体系结构分析设计⼯具;4、体系结构风格的定义和应⽤领域是直交的,提取的设计知识⽐⽤DSSA提取的设计专家知识的应⽤要⼴泛。
三、DSSA的特征(1)⼀个严格定义的问题域和问题解域。
(2)具有普遍性。
使其可以⽤于领域中某个特定应⽤的开发。
(3)对整个领域的构件组织模型的恰当抽象。
(4)具备该领域固定的、典型的在开发过程中可重⽤元素。
四、DSSA领域的含义从功能覆盖的范围⾓度通常有两种理解DSSA中领域的含义的⽅式。
(1)垂直域:定义了⼀个特定的系统族,包含整个系统族内的多个系统,结果是在该领域中可作为系统的可⾏解决⽅案的⼀个通⽤软件体系结构。
(2)⽔平域:定义了在多个系统和多个系统族中功能区域的共有部分。
在⼦系统级上涵盖多个系统族的特定部分功能。
在垂直域上定义的DSSA只能应⽤于⼀个成熟的、稳定的领域,但这个条件⽐较难以满⾜:若将领域分割成较⼩的范围,则更相对容易,也容易得到⼀个⼀致的解决⽅案。
软件体系结构的概念
软件体系结构的概念
软件体系结构指的是软件系统中各个部分之间的组织方式和相
互关系,并且对于软件系统的整体性能和质量具有重要影响。
软件体系结构可以分为多层次,包括应用程序、操作系统和硬件等多个层次。
软件体系结构具有以下几个方面的概念:
1. 模块化:将软件系统分解为多个模块,每个模块具有明确的
职责和功能,便于管理和维护。
2. 接口定义:模块之间通过明确的接口定义来进行通信和交互,从而实现系统的协作和集成。
3. 分层结构:软件体系结构可以分为多个层次,每个层次负责
不同的功能,便于组织和管理。
4. 过程控制:软件体系结构可以通过定义明确的流程和控制机
制来实现对软件系统开发和维护的有效控制。
5. 性能优化:软件体系结构的设计应该考虑系统的性能和效率,通过合理的设计和优化来提高系统的性能和质量。
软件体系结构的设计需要考虑到多个方面的因素,包括系统需求、硬件环境、软件技术等等,需要综合考虑并进行优化。
一个好的软件体系结构设计可以提高系统的可维护性、可扩展性和可重用性,从而降低开发和维护成本,提高软件系统的质量和效率。
- 1 -。
软件体系结构
1、MVC(模型-视图-控制):针对用户界面 模型:核心数据封装、逻辑和功能的计算,它独立于具体的界面表达和输入/输出操作。 视图:把模型数据等信息以特定形式展示给用户。 控制:处理用户与软件的交互操作。它接受用户的输入,将输入反馈给模型,进而实现对模 型的计算控制,是使模型和视图协调工作的部件。
2、软件重用的定义 软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。 可重用软件元素越大,重用粒度越大。
7、基于事件的隐式调用的定义 基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事 件。系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调 用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一个模块中过程的调用。
8、基于事件的隐式调用的优缺点 优点: (1)为软件重用提供了强大的支持。 (2)为系统带来了方便。
end Attendห้องสมุดไป่ตู้e;
16、C2 对体系结构的描述 architecture MeetingScheduler is
conceptual_components Attendee;ImportantAttendee;MeetingInitiator;
connector connector MainConn is message_filter no_filtering; connector AttConn is message_filter no filtering; connector ImportantAttConn is message_filter no filtering;
【软件体系结构】 复习
第一章1. 体系结构发现、演化、重用体系结构发现解决如何从已经存在的系统中提取软件的体系结构,属于逆向工程范畴。
由于系统需求、技术、环境、分布等因素的变化而最终导致软件体系结构的变动,称之为软件体系结构演化。
体系结构重用属于设计重用,比代码重用更抽象。
由于软件体系结构是系统的高层抽象,反映了系统的主要组成元素及其交互关系,因而较算法更稳定,更适合于重用。
2.基于软件体系结构的软件开发方法:问题定义—>软件需求—>软件体系结构—>软件设计—>软件实现3.评价软件体系结构的方法权衡分析方法(ATAM方法),软件体系结构分析方法(SAAM方法),中间设计的积极评审(ARID方法)第二章1. 建模结构模型:研究结构模型的核心是体系结构描述语言。
以体系结构的构件,连接件和其他概念来刻画结构。
并力图通过结构来反映系统的重要语义内容。
框架模型:与结构模型类似,但不太侧重细节,而侧重于整体结构。
动态模型:是对结构和框架模型的补充,研究系统大颗粒的行为性质。
过程模型:研究构造系统的步骤和过程,结构是遵循某些过程脚本的结果。
功能模型:认为体系结构是由一组功能构件按层次组成,下层向上层提供服务。
功能模型可以看作是一种特殊的框架模型。
4+1视图模型:逻辑视图、进程视图、物理视图、开发视图和场景视图逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。
在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题领域。
这种分解不但可以用来进行功能分析,而且可用作标识在整个系统的各个不同部分的通用机制和设计元素。
在面向对象技术中,通过抽象、封装和继承,可以用对象模型来代表逻辑视图,用类图来描述逻辑视图开发视图通过系统输入输出关系的模型图和子系统图来描述。
进程视图侧重于系统的运行特性,主要关注一些非功能性的需求。
物理视图主要考虑如何把软件映射到硬件上。
逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。
领域分析
二、领域模型
业务对象模型做为面 向对象分析时的领域 模型,是描述业务用 例实现的对象模型。
它是对业务角色和业 务实体之间应该如何 联系和协作以执行业 务的一种抽象
雇员
领位员
服务员
餐馆的业务对象模型
负责
1 1..*
厨师
菜肴
17
二、领域模型
业务用例实现的常用图:
➢ 类图:显示参与的业务角色和业务实体。 ➢ 活动图:其中泳道显示业务角色的职责,而对象流显示如何在工作流程中使用
37
三、面向特征的领域分析方法
FODM方法建模过程
③ 行为特点分析活动的主要工作是识别功能具有的行为特 点.
38
三、面向特征的领域分析方法
FODM方法建模过程
④ 领域术语分析活动的主要工作是发现和领域术语相关的 特征.
39
三、面向特征的领域分析方法
FODM方法建模过程
⑤ 共性变化性分析活动的主要工作是识别领域的共性和变 化性。
45
四、面向特征的复用方法
面向特征的软件复用在本质上即是一种领域知识驱动的软件复用,领域知 识体现为特征模型,其中包含了一组在特定领域中具有用户/客户价值的软 件特征。
领域工程是软件复用的核心思想。
46
他还比较了系统分析与领域分析的不同,并提出了“领域分析员”的概念 代表领域分析活动的实施人员。
5
发展历程
卡耐基.梅隆大学的软件工程研究所提出的面向特征的领域分析方法 (Feature一 oriented domain analysis),并作为FODA中的能力方面的特征 。
这也是面向特征的需求规约组织方式首次被引入领域工程的研究和实践中 。
12
一、领域工程
基于特定领域的构件软件体系结构复用
10 4
福
建
电
脑
2I 年第 8 01 期
语 言 中的对 象及 操作 的具 体实 现 .抽 象 和提取 该领 域 则 存 放应用 系统 运行 时产生 的业务 相关 的数 据 。 系 统 间的共 性 . 设计 出该领 域 的抽象语 法 结构树 。3领 () 域 实 现 :由领域 专家 参 与 .软件 工程 师 根据语 法 结构 树 , 用快 速原 型法构 造模 型 。 构造模 型 的交互 过程 采 在 中 .需 求获 取将 逐步 检查 形成 的需求 和 约束 之间 的相 容性 。 也指 导领域 专家 排 除不 完善 的考 虑 。 这种 阐 明需 求 的过 程 .通过 领域 专家 所熟 悉 的领 域概 念及 操作 来 表 达说 明及 约束 .将 产生 所需 要 的领 域模 型 的形式 规 格 说 明 。 通过 多个实 证 。 并 测试 模 型得 到 领域专 家 满意 的结 果 。
界表层 面 示 业逻 层 务辑 ( 二 二
域 2 — — I 务件 I— 1 — 业构 层 — 域 —/ — — I 础件 l 基构 层
数层 据
r/
— — ,
要 实现 软 件复 用 .除 了 要改 变传 统 的软件 开发 过
业 务 逻辑 层分 为基 础构 件 层 和业务 构 件 层 。基 础
2 1 年第 8期 01
福
建
电
脑
19 3
基 于特定领域 的构 件 软件体 系结构 复用
田 野
(太原 师 范学院 计 算机 中心 山西 太 0 0 1 3 0 2)
【 摘 要】 :特定领域软件体 系结构是在域分析上 , 以域模型为基础 而建立的 , 作用于某一特定领域 中
软件体系结构
软件体系结构
软件体系结构(Software architecture,软件架构)为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
对于软件项目的开发来说,一个清晰的软件体系结构是首要的。
传统的软件开发过程可以划分为从概念直到实现的若干个阶段,包括问题定义、需求分析、软件设计、软件实现及软件测试等。
软件体系结构的建立应位于需求分析之后,软件设计之前。
但在传统的软件工程方法中,需求和设计之间存在一条很难逾越的鸿沟,从而很难有效地将需求转换为相应的设计。
而软件体系结构就是试图在软件需求与软件设计之间架起一座桥梁,着重解决软件系统的结构和需求向实现平坦地过渡的问题。
软件体系结构是项目干系人进行交流的手段,明确了对系统实现的约束条件,决定了开发和维护组织的组织结构,制约着系统的质量属性。
软件体系结构使推理和控制更改更简单,有助于循序渐进的原型设计,可以作为培训的基础。
软件体系结构是可传递和可复用的模型,通过研究软件体系结构可能预测软件的质量。
软件设计与体系结构课后练习部分答案
答:
UML的发起者在最初制定UML时,充分考虑了各种需求、方法和语言的特点使UML在表达能力、对新技术的包容能力和扩张性等方面具有显著的优势:
(1)为使用者提供了统一的、表达能力强大的可视化建模语言,以描述应用问题的需求
模型、设计模型和实现模型。
(2)提供对核心概念的扩展机制,用户可加入核心概念中没有的概念和符号,可为特定
3、内聚度、耦合度分别指什么?为什么软件设计要追求高内聚、低耦合?
答:
内聚度是一个模块内部各成分之间关联程度的度量;耦合度是对模块间关联程度的度量。
软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分摸块的一个准则就是高内聚低耦合。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。降低模块间的耦合度能减少模块间的影响,防止对某一模块修改所引起的“牵一发动全身”的水波效应,同时每一个类完成特定的独立的功能,实现高内聚,保证系统设计顺利进行。内聚和耦合密切相关,同其它模块存在强耦合关系的模块常意味这弱内聚,强内聚常意味着弱耦合。
第一章作业
6、简要叙述软件设计在软件工程中所处的位置和重要性。
答:
所处的位置:软件需求分析需求规格说明软件设计设计文档软件编码。
重要性:
(1)是对软件需求的直接体现;
(2)为软件实现提供直接依据;
(3)将综合考虑软件系统的各种约束条件并给出相应方案;
(4)软件设计的质量将决定最终软件系统的质量;
(5)及早发现软件设计中存在的错误将极大减少软件修复和维护所需的成本。
13、什么是软件设计规格说明?它在软件开发中有何重要用途?
答:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.2.1 DSSA的领域工程
JIAWG面向对象的领域分析(JODA),包括领域准 备、领域定义和领域建模 领域分析与设计过程(DADP),包括标识领域、界 定领域、分析领域和设计领域 动态领域分析(DDA),收集信息,确定领域范围, 区分共性、个性和动态元素,描述领域中的各类元 素
在应用工程中已经被广泛使用的各种方法、技术 和原则,经过补充和修改后,都可以在领域分析 过程中使用 领域分析依赖于领域工程、应用工程、知识工程、 人工智能和信息管理等学科的支撑
4.2 DSSA的基本活动
DSSA包含两个过程,即领域工程和应用工 程
领域工程是为一组相近或相似的应用建立基本能 力与必备基础的过程,它覆盖了建立可复用软件 元素的所有活动 应用工程是通过重用软件资源,以领域通用体系 结构为框架,开发出满足用户需求的一系列应用 软件的过程
4.2.1 DSSA的领域工程
4.2.3 领域工程与应用工程的关系
领域中的共性部分是通过领域中的所有应用 来体现的,一旦得到实现之后,在应用工程 中便不再作为关注的重点 选择和配置不同抽象层次的变化性因素,将 成为贯穿应用工程全过程的主要活动 在领域设计阶段,建立比较合理、灵活的 DSSA,将系统中的可变部分与固定部分分 离开来,将系统成分在DSSA和构件之间进 行合理的分配,把变化性因素封装为构件
在领域工程中,可复用软件资源的选择是极为重 要的
4.2.1 DSSA的领域工程
复用元素的选择原则是:
在软件开发和维护过程中,最频繁使用的软件元素 提供最大利益的软件元素,例如:节省费用、节省 时间、减少项目失败的风险、以及强化重用标准等 用于创建和维护对本公司具有重要意义的策略性软 件元素 是复用消费者(例如:领域专家、系统框架设计人 员、软件开发人员和软件维护人员)所需要的软件 元素
领域实现
领域实现的主要目标是根据领域模型、DSSA来 开发和组织可复用软件元素 其主要活动包括:开发可复用软件元素,对可复 用软件元素进行组织
4.2.1 DSSA的领域工程
领域实现阶段的重要产品就是与特定领域相关的 可复用构件库 复用构件库覆盖了领域模型、领域设计框架和源 代码多种抽象层次,体现为系统、框架以及类的 不同粒度和形态 可复用构件的组织也是根据领域模型和领域设计 框架来完成的 开发可复用构件的基本原则是:
4.2.3 领域工程与应用工程的关系
领域工程和应用工程是互相联系的:
应用工程所建立的系统,包含了需求规约、设计 方案和实现细节等多种信息,这些又是领域工程 的信息来源 领域工程负责对应用工程各个阶段中的产品进行 抽象 领域工程所获取的资源,将对本领域新应用的开 发提供支持 领域工程和应用工程都需要解决一些相似的问题 领域工程的步骤、行为和成果与应用工程是一一 对应的
4.2.1 DSSA的领域工程
领域分析依赖于领域工程、应用工程、知识工程、 人工智能和信息管理等学科的支撑 领域建模过程必须以业务领域为中心
领域设计
领域设计的主要目标是创建特定领域软件体系结 构DSSA 与领域分析模型一样,领域设计框架必须被一般 化、标准化和文档化,使之能够在创建多个软件 产品时被使用
4.2.3 领域工程与应用工程的关系
在应用工程中被广泛使用的方法、技术和原 则都可以在领域工程中加以利用
例如:结构化分析方法、面向对象设计技术、实 体-关系图、以及数据流图等
4.3 DSSA的参与者
DSSA的参与者包括领域工程人员和应用工 程人员 领域工程人员包括:领域专家、领域分析人 员、领域设计人员和领域实现人员 领域专家包括该领域中有经验的用户、从事 该领域系统需求分析、设计、实现以及项目 管理的软件工程师等
根据领域工程所获取的分析模型,对照用户的实 际需求,确认领域分析模型中的变化性因素,或 者提出新的应用需求,以建立该系统的分析模型
4.2.2 DSSA的应用工程
应用系统设计
以领域工程所获得的DSSA为基础,对照应用的 具体分析模型,给出该系统的设计方案
应用系统实现与测试
以领域构架和构件为基础,对照具体应用的设计 模型,按照框架来集成组装构件,同时进行必要 的代码编写工作,以实现并测试最终的系统
针对领域模型所表示的需求,DSSA给出了相应 的解决方案,是适应领域中多个系统需求的高层 次设计框架
4.2.1 DSSA的领域工程
领域设计要满足的需求具有一定的变化性,因此 解决方案也应该是可变的 DSSA的各个组成部分应该是现有系统设计框架 的泛化,便于今后的实例化与信息参考 领域设计应该紧紧地围绕着领域模型展开
从设计到编码必须遵循此前定义的DDSA,与 DDSA始终保持高度的一致
4.2.1 DSSA的领域工程
应该采用适当的映射规则来指导设计元素到编程语 言的映射过程 采取模块化、信息隐蔽和分而治之等传统的软件工 程原则,来减少构件与外部环境之间的依赖关系 应为可复用构件建立良好的接口规约
4.2.1 DSSA的领域工程
领域分析是在一个特定的领域范围内,对一系列 共性、个性、以及动态元素进行识别、收集和组 织,并最终形成可指导的软件复用模型的过程 比较有影响的领域分析方法有:
面向特征的领域分析(FODA),包括上下文分析、 领域建模和体系结构建模3个不同的阶段 组织领域分析模型(ODM),包括领域规划、领域建 模和可复用资源的建设 基于DSSA的领域分析(DSSA Domain Analysis), 获取领域开发环境,设计DSSA和原型系统,利用 原型系统和DSSA来实现应用系统
4.1 特定领域软件体系结构定义
DSSA是一个特定问题领域中,支持一组应用的 领域模型、参考需求和参考体系结构所形成的开 发基础
特定领域软件体系结构具有以下特征:
DSSA对整个领域进行适度抽象 DSSA具有严格定义的问题域和解决方案 在领域中,DSSA应该具有固有的、典型的可复 用软件元素,用于工程开发 DSSA具有普遍性,可用于开发领域中的某类特 定应用
4.2.1 DSSA的领域工程
领域的基本特征:
领域中的系统具有相关性,具体表现为:具有类 似的用户需求;共享领域范围内的数据;共同实 现一个目标;共同描述一个问题空间 对领域内各个系统所形成的问题空间进行求解, 可以导出新的应用系统 领域内的重要资源、资源的义务和资源之间的相 互关系是以一定的基础结构来进行表示的
4.2.1 DSSA的领域工程
领域设计框架一般化处理的步骤:
将依赖关系从实现中分离出来,使之容易辨认和修 改,以适应特定软件产品的需求,或者满足新应用 环境与技术的需要 将框架分层,使软件资源可以按照特定应用、特定 操作系统、以及特定硬件平台的要求进行分层 在每一层上,寻找适合领域设计框架的通用软件资 源,然后以此为基础,寻找适合框架的其它基础性 资源
4.2.1 DSSA的领域工程
领域分析所关心的是一个特定领域内所有相似系 统的对象和活动的共同特征与演化特性,所产生 的是支持系统化复用的基础设施 领域分析是DSSA开发的基础,是DSSA开发的 出发点,也是这种方法成败的关键 领域模型是领域分析过程中的一个重要概念,是 领域分析活动的输出结果 领域模型是一组能够反映领域共性与变化特征 (例如:功能、对象、数据及其关系)的相关模型 和文档资料
第四章 特定领域的软件 体系结构
本章内容
4.1 特定领域软件体系结构定义 4.2 DSSA的基本活动
4.2.1 DSSA的领域工程 4.2.2 DSSA的应用工程 4.2.3 领域工程与应用工程的关系
4.3 DSSA的参与者 4.4 DSSA的生命周期 4.5 DSSA的建立
本章内容
4.6 4.7 4.8 4.9 基于DSSA的软件开发 DSSA与软件体系结构风格 DSSA对软件开发的意义 DSSA的应用实件开发的总体趋势是领域驱动的设 计与实现 特定领域软件体系结构(Domain Specific Software Architecture,DSSA)代表了某 一特定领域中软件系统的整体框架结构 DSSA描述了领域中各个应用的公共特征和 动态行为 DSSA是作用于领域中不同应用的设计蓝图
4.2.1 DSSA的领域工程
领域工程是识别和创建面向特定领域的可重 用软件资源的过程,是特定领域软件体系结 构的实现基础 领域工程主要包括三个部分,即领域分析、 领域设计和领域实现 领域分析
领域分析是在一个特定领域范围内开展的以领域 定义、共性抽象、特性描述、概念阐述、数据抽 取、功能分析、关系识别、以及结构框架开发为 目标的系统化分析过程
4.1 特定领域软件体系结构定义
以DSSA为基础,通过大规模重用,可以快 速地、高效地实例化出一系列的软件产品, 提高软件开发的效率 DSSA的定义:
DSSA是软件构件的集合,以标准结构组合而成, 对于一种特殊类型的任务具有通用性,可以有效 地、成功地用于新应用系统的构建 DSSA是问题元素和解元素的样本,同时给出了 问题元素和解元素之间的映射关系
4.2.3 领域工程与应用工程的关系
领域工程与应用工程二者之间是有区别的
在领域工程中,开发人员的基本任务是对领域中 所有应用的需求进行抽象,而不仅仅局限于个别 系统 在应用工程中,开发人员的主要任务是,以领域 工程的成果为基础,针对特定需求产生一系列的 具体设计方案 领域工程是在一个较高的层次上,对领域应用中 的共同特征进行抽象,并通过领域模型和DSSA 来表示这些共同特征之间的关联关系
4.2.1 DSSA的领域工程
在软件工程中,领域是指一组具有相近或相 似需求的应用系统所覆盖的功能、问题、解 决方案以及知识区域 从软件复用角度出发,可以将领域划分为垂 直领域和水平领域
垂直领域是指具有相似需求的一系列应用所覆盖的 业务区域 水平领域则指根据应用系统内部模块的功能分类, 所得到的相似问题空间