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