第四章 特定领域的软件体系结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.2.3 领域工程与应用工程的关系
领域工程和应用工程是互相联系的:
应用工程所建立的系统,包含了需求规约、设计 方案和实现细节等多种信息,这些又是领域工程 的信息来源 领域工程负责对应用工程各个阶段中的产品进行 抽象 领域工程所获取的资源,将对本领域新应用的开 发提供支持 领域工程和应用工程都需要解决一些相似的问题 领域工程的步骤、行为和成果与应用工程是一一 对应的
4.2.3 领域工程与应用工程的关系
领域工程与应用工程二者之间是有区别的
在领域工程中,开发人员的基本任务是对领域中 所有应用的需求进行抽象,而不仅仅局限于个别 系统 在应用工程中,开发人员的主要任务是,以领域 工程的成果为基础,针对特定需求产生一系列的 具体设计方案 领域工程是在一个较高的层次上,对领域应用中 的共同特征进行抽象,并通过领域模型和DSSA 来表示这些共同特征之间的关联关系
4.2.1 DSSA的领域工程
领域分析是在一个特定的领域范围内,对一系列 共性、个性、以及动态元素进行识别、收集和组 织,并最终形成可指导的软件复用模型的过程 比较有影响的领域分析方法有:
面向特征的领域分析(FODA),包括上下文分析、 领域建模和体系结构建模3个不同的阶段 组织领域分析模型(ODM),包括领域规划、领域建 模和可复用资源的建设 基于DSSA的领域分析(DSSA Domain Analysis), 获取领域开发环境,设计DSSA和原型系统,利用 原型系统和DSSA来实现应用系统
4.2.1 DSSA的领域工程
领域的基本特征:
领域中的系统具有相关性,具体表现为:具有类 似的用户需求;共享领域范围内的数据;共同实 现一个目标;共同描述一个问题空间 对领域内各个系统所形成的问题空间进行求解, 可以导出新的应用系统 领域内的重要资源、资源的义务和资源之间的相 互关系是以一定的基础结构来进行表示的
在启动一个软件项目时,我们应该关注软件 涉及的领域 对领域的理解主要有如下三种观点:
一组或一族相关系统,所有这些系统具有一种能 力或共享同一数据集 具有相同需求的一个应用程序族所描述的问题空 间 一个问题或任务领域,在其中可以开发出多重高 度相似的应用系统,以满足各种不同用户的特定 需求
4.1 特定领域软件体系结构定义
DSSA是一个特定问题领域中,支持一组应用的 领域模型、参考需求和参考体系结构所形成的开 发基础
特定领域软件体系结构具有以下特征:
DSSA对整个领域进行适度抽象 DSSA具有严格定义的问题域和解决方案 在领域中,DSSA应该具有固有的、典型的可复 用软件元素,用于工程开发 DSSA具有普遍性,可用于开发领域中的某类特 定应用
4.2.1 DSSA的领域工程
JIAWG面向对象的领域分析(JODA),包括领域准 备、领域定义和领域建模 领域分析与设计过程(DADP),包括标识领域、界 定领域、分析领域和设计领域 动态领域分析(DDA),收集信息,确定领域范围, 区分共性、个性和动态元素,描述领域中的各类元 素
在应用工程中已经被广泛使用的各种方法、技术 和原则,经过补充和修改后,都可以在领域分析 过程中使用 领域分析依赖于领域工程、应用工程、知识工程、 人工智能和信息管理等学科的支撑
4.2.1 DSSA的领域工程
领域工程是识别和创建面向特定领域的可重 用软件资源的过程,是特定领域软件体系结 构的实现基础 领域工程主要包括三个部分,即领域分析、 领域设计和领域实现 领域分析
领域分析是在一个特定领域范围内开展的以领域 定义、共性抽象、特性描述、概念阐述、数据抽 取、功能分析、关系识别、以及结构框架开发为 目标的系统化分析过程
本章内容
4.6 4.7 4.8 4.9 基于DSSA的软件开发 DSSA与软件体系结构风格 DSSA对软件开发的意义 DSSA的应用实例
4.1 特定领域软件体系结构定义
目前,软件开发的总体趋势是领域驱动的设 计与实现 特定领域软件体系结构(Domain Specific Software Architecture,DSSA)代表了某 一特定领域中软件系统的整体框架结构 DSSA描述了领域中各个应用的公共特征和 动态行为 DSSA是作用于领域中不同应用的设计蓝图
4.2.1 DSSA的领域工程
领域模型描述领域中应用的共同需求,领域模型 所描述的需求经常被称为领域需求 领域模型是针对某一特定领域的需求规约模型 领域模型描述了多种不同的信息:
领域范围:领域定义和上下文分析 领域字典:定义领域内相关术语 符号标识:描述概念和概念模型,利用符号系统对 领域模型内的概念进行统一的说明 领域共性:领域内相似应用的共性需求和共同特征 特征模型:定义领域特征,描述领域特征之间的相 互关系
4.2.1 DSSA的领域工程
领域分析依赖于领域工程、应用工程、知识工程、 人工智能和信息管理等学科的支撑 领域建模过程必须以业务领域为中心
领域设计
领域设计的主要目标是创建特定领域软件体系结 构DSSA 与领域分析模型一样,领域设计框架必须被一般 化、标准化和文档化,使之能够在创建多个软件 产品时被使用
4.2.1 DSSA的领域工程
领域设计框架一般化处理的步骤:
将依赖关系从实现中分离出来,使之容易辨认和修 改,以适应特定软件产品的需求,或者满足新应用 环境与技术的需要 将框架分层,使软件资源可以按照特定应用、特定 操作系统、以及特定硬件平台的要求进行分层 在每一层上,寻找适合领域设计框架的通用软件资 源,然后以此为基础,寻找适合框架的其它基础性 资源
4.2.3 领域工程与应用工程的关系
领域中的共性部分是通过领域中的所有应用 来体现的,一旦得到实现之后,在应用工程 中便不再作为关注的重点 选择和配置不同抽象层次的变化性因素,将 成为贯穿应用工程全过程的主要活动 在领域设计阶段,建立比较合理、灵活的 DSSA,将系统中的可变部分与固定部分分 离开来,将系统成分在DSSA和构件之间进 行合理的分配,把变化性因素封装为构件
DSSA定义了可复用软件资源的重用时机,从而 支持了系统化的软件重用
4.2.2 DSSA的应用工程
应用工程是在领域工程基础上,针对某一具 体应用所实施的开发过程 应用工程是对领域模型的实例化过程,可以 为单个应用设计提供最佳的解决方案 应用工程可以划分为应用系统分析、应用系 统设计和应用系统实现与测试3个阶段 应用系统分析
针对领域模型所表示的需求,DSSA给出了相应 的解决方案,是适应领域中多个系统需求的高层 次设计框架
4.2.1 DSSA的领域工程
领域设计要满足的需求具有一定的变化性,因此 解决方案也应该是可变的 DSSA的各个组成部分应该是现有系统设计框架 的泛化,便于今后的实例化与信息参考 领域设计应该紧紧地围绕着领域模型展开
领域实现
领域实现的主要目标是根据领域模型、DSSA来 开发和组织可复用软件元素 其主要活动包括:开发可复用软件元素,对可复 用软件元素进行组织
4.2.1 DSSA的领域工程
领域实现阶段的重要产品就是与特定领域相关的 可复用构件库 复用构件库覆盖了领域模型、领域设计框架和源 代码多种抽象层次,体现为系统、框架以及类的 不同粒度和形态 可复用构件的组织也是根据领域模型和领域设计 框架来完成的 开发可复用构件的基本原则是:
4.1 特定领域软件体系结构定义
以DSSA为基础,通过大规模重用,可以快 速地、高效地实例化出一系列的软件产品, 提高软件开发的效率 DSSA的定义:
DSSA是软件构件的集合,以标准结构组合而成, 对于一种特殊类型的任务具有通用性,可以有效 地、成功地用于新应用系统的构建 DSSA是问题元素和解元素的样本,同时给出了 问题元素和解元素之间的映射关系
在领域工程中,可复用软件资源的选择是极为重 要的
4.2.1 DSSA的领域工程
复用元素的选择原则是:
在软件开发和维护过程中,最频繁使用的软件元素 提供最大利益的软件元素,例如:节省费用、节省 时间、减少项目失败的风险、以及强化重用标准等 用于创建和维护对本公司具有重要意义的策略性软 件元素 是复用消费者(例如:领域专家、系统框架设计人 员、软件开发人员和软件维护人员)所需要的软件 元素
根据领域工程所获取的分析模型,对照用户的实 际需求,确认领域分析模型中的变化性因素,或 者提出新的应用需求,以建立该系统的分析模型
4.2.2 DSSA的应用工程
应用系统设计
以领域工程所获得的DSSA为基础,对照应用的 具体分析模型,给出该系统的设计方案
应用系统实现与测试
以领域构架和构件为基础,对照具体应用的设计 模型,按照框架来集成组装构件,同时进行必要 的代码编写工作,以实现并测试最终的系统
4.2.1 DSSA的领域工程
领域分析所关心的是一个特定领域内所有相似系 统的对象和活动的共同特征与演化特性,所产生 的是支持系统化复用的基础设施 领域分析是DSSA开发的基础,是DSSA开发的 出发点,也是这种方法成败的关键 领域模型是领域分析过程中的一个重要概念,是 领域分析活动的输出结果 领域模Baidu Nhomakorabea是一组能够反映领域共性与变化特征 (例如:功能、对象、数据及其关系)的相关模型 和文档资料
从设计到编码必须遵循此前定义的DDSA,与 DDSA始终保持高度的一致
4.2.1 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.2.1 DSSA的领域工程
在软件工程中,领域是指一组具有相近或相 似需求的应用系统所覆盖的功能、问题、解 决方案以及知识区域 从软件复用角度出发,可以将领域划分为垂 直领域和水平领域
垂直领域是指具有相似需求的一系列应用所覆盖的 业务区域 水平领域则指根据应用系统内部模块的功能分类, 所得到的相似问题空间
4.2.3 领域工程与应用工程的关系
在应用工程中被广泛使用的方法、技术和原 则都可以在领域工程中加以利用
例如:结构化分析方法、面向对象设计技术、实 体-关系图、以及数据流图等
4.3 DSSA的参与者
DSSA的参与者包括领域工程人员和应用工 程人员 领域工程人员包括:领域专家、领域分析人 员、领域设计人员和领域实现人员 领域专家包括该领域中有经验的用户、从事 该领域系统需求分析、设计、实现以及项目 管理的软件工程师等
4.2 DSSA的基本活动
DSSA包含两个过程,即领域工程和应用工 程
领域工程是为一组相近或相似的应用建立基本能 力与必备基础的过程,它覆盖了建立可复用软件 元素的所有活动 应用工程是通过重用软件资源,以领域通用体系 结构为框架,开发出满足用户需求的一系列应用 软件的过程
4.2.1 DSSA的领域工程
4.2 DSSA的基本活动
基于DSSA的开发不以实现某个特定应用为 目标,而是关注整个领域
通过对某个特定领域进行分析,提出该领域的典 型需求,建立相应的领域模型,设计与之对应的 参考架构,进而实现各个组成模块 针对领域分析模型中的需求,DSSA给出了相应 的解决方案,该解决方案不仅满足单个系统,而 且也适应领域中的其它系统需求,是领域范围内 的一个高层次设计框架