版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章 特定领域的软件体系结构 2/35本章内容o 4.1特定领域软件体系结构概述特定领域软件体系结构概述o 4.2 DSSA的定义及组成的定义及组成o 4.3 特定领域软件体系结构的领域工程特定领域软件体系结构的领域工程o 4.4 特定领域软件体系结构的应用工程特定领域软件体系结构的应用工程o 4.5 DSSA的生命周期o 4.6 特定领域软件体系结构的建立o 4.7 基于特定领域软件体系结构的开发过程o 4.9 特定领域软件体系结构对软件开发的意义3/354.1 特定领域软件体系结构概述o 随着软件重用技术的不断发展和成熟,软件重用已经从代码级重用逐步上升到系统级重用。特定领域软件体系结构
2、(DSSA)的设计是系统级软件重用的主要研究内容之一。特定领域软件体系结构不以实现某个特定应用为目标,而是关注整个领域。针对领域分析模型中的需求,DSSA给出了相应的解决方案,该解决方案不仅满足单个系统,而且也适应领域中的其他系统需求,是领域范围内的一个更高层次设计框架。4/354.2 DSSA的定义及组成o 简单地说,DSSA就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件框架。美国国防部和美国空军非常重视对特定领域软件体系结构的研究,并给出了两个关于DSSA的定义:o 定义1:DSSA是软件构件的集合,以标准结构组合而成,对于一种特殊类型的任务具有通用性,可以有效地、成功地用于
3、新应用系统的构建。在该定义中,构件是指一个抽象的具有特征的软件单元,它能为其他单元提供相应的服务。o 定义2:DSSA是问题元素和解元素的样本,同时给出了问题元素和解元素之间的映射关系。5/35 通过分析DSSA的定义和描述,可以看出,DSSA具有如下特征:o 是对整个领域适度的抽象;o 具有严格定义的问题域或解决方案域;o 具备该领域固有的、典型的在开发过程中可重用元素;o 具有普遍性,即可用于领域中某个特定应用的开发。6/35o 一般而言,DSSA由可重用构件、参考需求工程、参考体系结构3个主要信息元素以及框架/环境支持工具、抽取和评估工具组成。o 其中,领域模型是DSSA的关键部分,它描
4、述了领域内系统需求上的共性。领域模型所描述的需求称为参考需求或领域需求,它是通过考察领域中已有系统的参考需求获得的。参考体系结构则是一个统一的、相关的、多级的软件体系结果规范。7/35o DSSA结构如下图所示。8/35o DSSA包含两个过程,即领域工程和应用工程。领域工程是为一组相近或相似的应用建立基本能力与必备基础的过程,它覆盖了建立可重用软件元素的所有活动。o 应用工程是通过重用软件资源,以领域通用体系结构为框架,开发出满足用户需求的一系列应用软件的过程。o DSSA的参与者包括领域工程人员和应用工程人员。按照其所承担的任务不同,参与领域工程的人员可以划分为四种角色:领域专家、领域分析
5、员、领域设计员和领域实现员。o 按照其所承担的任务不同,参与应用工程的人员可以划分为三种角色,系统分析人员、系统设计人员和系统实现人员。 9/354.3 特定领域软件体系结构的领域工程o 领域工程有助于解决可重用信息的识别、组织和利用的问题,有助于产生具有较高可重用性的构件,对开发者重用构件提供了有力的支持。o 对特定领域的应用系统实施领域工程必须具备一些基本的前提,只有这样,领域工程的实施才能顺利,才能更具有意义。o 可重用信息的领域特定性。可重用性不是信息的一种孤立的属性,它依赖于特定的问题和特定问题的解决方法。当某信息具有可重用性时,是指当使用特定的方法解决特定的问题时,它是可重用的。基
6、于这一基本认识,在识别、获取和表示可重用信息时,应采用面向领域的策略。10/35o 问题领域的内聚性和稳定性。关于现实世界问题领域的解决方法的知识是充分内聚和稳定的,这才能使得获取和表示这些知识的努力是有意义的,这一基本认识是实际观察的结果。一个问题领域的规约和实现知识的内聚性,便得可以通过一组有限的、相对较少的可重用信息来把握这些可以解决大量问题的知识。领域的稳定性,使得获取和表示这些信息所付出的代价可以通过在一段较长的时间内多次重用它们来得到补偿。11/35领域分析o 领域分析(Domain Analysis) 含义是指识别、捕获和组织特定领域中一类相似系统的对象及操作等可重用信息的过程,
7、其目标是支持系统化的软件重用。 o 领域分析是领域工程的第一个阶段,这个阶段的主要目标是产生领域模型,进行的两项活动包括领域定义和建立领域模型。主要有以下几点:n进行需求分析。需求分析的内容主要有服务分析、功能分析、行为特点分析、共性变化性分析、质量需求分析、领域术语分析和规约及交互析活动。12/35n确定用领域工程的方法进行系统设计和实施过程中的主要参者和利用的主要资源。n在需求分析的基础上,区分领域中模块的共性和特性,以便用来组装完成特定功能的业务构件。n确定领域中变化的部分和不变的部分。提取领域中共性的模块进行处理,用来构建领域知识库和构件库。用户可以调整领域的知识结构,从而系统化的管理
8、和存放领域知识,以适应知识的变化。n建立领域模型。领域模型是一个半形式化的领域描述,它创建一个综合知识库并影响领域中的所有开发和集成的结果。n在已经建立起来的领域模型的基础上,建立参考需求。13/35领域设计o领域设计是领域工程的第二个阶段,此阶段的主要目标是针对领域分析阶段获得的对目标领域的问题域系统责任的认识,开发出相应的设计模型。与领域分析模型一样,领域设计框架必须被一般化、标准化和文档化,使之能够在创建多个软件产品时被使用。领域设计框架一般化处理的步骤:n(1)从实现中分离依赖关系,使之容易辨认和修改,以适应特定软件产品的需求,或者满足新应用环境与技术的需要。n(2)将框架分层,使软件
9、资源(诸如过程和服务)可以按照特定应用、特定操作系统以及特定硬件平台的要求进行分层。这样,将使领域设计框架更容易适应特定领域软件开发的需求。n(3)在每一层上,寻找适合领域设计框架的通用软件资源;然后以此为基础,寻找适合框架的其他基础性资源。14/35o 在领域工程中,重用应该挑选那些具有最高重用潜力的软件资源,对其进行开发和自动抽取。重用元素的选择原则是:n 在软件开发和维护过程中,最频繁使用的软件元素。n 提供最大利益的软件元素,例如:节省费用、节省时间、减少项目失败的风险、以及强化重用标准等。n 用于创建和维护对本公司具有重要意义的策略性软件元素。n 是重用消费者(例如领域专家、系统框架
10、设计人员、软件开发人员和软件维护人员)所需要的软件元素。15/35o 领域分析的主要输出结果就是领域模型。领域模型跟它所源自的领域有着密切的关联关系。领域设计应该紧紧地围绕着领域模型展开,领域模型自身也会基于领域设计的决定而有所增进。脱离了领域模型的设计会导致软件不能反映它所服务的领域,甚至可能得不到期望的行为。领域建模如果得不到领域设计的反馈或者缺少了开发人员的参与,将会导致必须实现模型的人很难理解它,并且可能找不到适合的实现技术。16/35领域实现o 领域实现的主要目标是根据领域模型、DSSA来开发和组织可重用软件元素。领域实现的主要活动包括:n 开发可重用软件元素;n 对可重用软件元素进
11、行组织,一种重要的方法是将可重用构件加入可重用构件库中。这些可重用软件元素可能是利用再工程技术从现有系统中提取得到的,也可能是在新开发过程中获取的。17/35o DSSA重用的特征包括:n 为了决定不同粒度部件的最佳重用集,对于领域必须有透彻的了解。对域的了解是通过领域模型的建立与分析。n 领域模型和参考体系结构清楚地定义了领域的共同特性。由于领域是特定的,使用参考体系结构,为重用提供了最大的可能性。n 参考体系结构的重用驱动了共同领域设计的重用。n 参考体系结构提供重用部件的通用框架,因而避免了在集成重用部件时通常遇到的组合问题。n 重用部件库的建立必须以领域模型和参考体系结构为依据。n 领
12、域模型、参考体系结构和部件库都将随着领域的应用需求的演变而不断地演变。18/354.4 特定领域软件体系结构的应用工程o 应用工程是在领域工程基础上,针对某一具体应用所实施的开发过程。应用工程是对领域模型的实例化过程,可以为单个应用设计提供最佳的解决方案。 o 与一般的软件开发过程类似,应用工程可以划分为应用系统分析、应用系统设计和应用系统实现与测试3个阶段。在每一阶段中,都可以从构件库中获得可重用的领域工程结果,将其作为本阶段集成与开发的基础。在应用系统设计阶段,领域体系结构模型为应用的设计提供了相关的参考模板;在应用系统实现与测试阶段,软件工程师可以直接使用构件库中的构件来进行新应用的开发
13、,而无需关心构件的内部实现细节。19/35领域工程与应用工程的关系o 领域工程与应用工程二者之间是有区别的。在应用工程中,软件开发人员的任务是以领域工程的成果为基础,针对一组特定的需求产生一组特定的设计和实现。其中的行为和行为产生的结果基本上是针对当前开发的特定系统的。与此相对,在领域工程中,领域工程人员的基本任务是对一个领域中的所有系统进行抽象,而不再局限于个别的系统。因此,与应用工程相比,领域工程处于一个较高的抽象级别上。在领域工程中,对领域中相似系统的共同特征进行了抽象,并通过领域模型和DSSA表示了这些共同特征之间的关系。20/35o 领域工程和应用工程之间又是互相联系的。n 一方面,
14、通过应用工程得到的现有系统(包括需求规约、设计、实现等)是领域工程的主要信息来源,领域工程的各个阶段主要是对应用工程中相应阶段的产品进行抽象。领域工程的产品-领域模型、DSSA、可重用构件等,又对本领域中新系统的应用工程提供了支持。n 另一方面,领域工程和应用工程需要解决一些相似的问题,例如怎样从各种信息源中获取用户的需求,如何表示需求规约,如何进行设计,如何表示设计模型,如何进行构件开发,如何在需求规约、设计和实现间保持逻辑联系,如何对需求规约、设计和实现进行演化等。因此,领域工程的步骤、行为、产品等很多方面都可以和应用工程进行类比。21/354.5 DSSA的生命周期o 与传统的软件工程一
15、样,基于特定领域的软件体系结构DSSA的开发也存在着生命周期。RBalzer提出一个基于DSSA的软件开发生命周期,如图所示。22/35o 在开发实际的软件系统时,要从领域工程和应用工程两个角度进行考虑,可给出特定领域软件体系结构的双生命周期模型,从而使特定领域软件体系结构的各个研究方向和内容有机的统一在一起,使特定领域软件体系结构既具有严格的理论基础,又具有严格的工程原则。23/35其双周期生命周期模型如下图所示24/354.6 特定领域软件体系结构的建立o DSSA是一种软件构件的集合,它采用标准的结构和协议来进行描述,是专门针对某一类特定任务所设计的。将DSSA在整个领域中进行推广,可以
16、解决具有类似功能的应用问题。在较大的范围内,DSSA为某一类问题提供了一个总括的软件设计方法。o 基于DSSA的软件开发方法将设计者的注意力完全集中在当前问题的个性化需求上,而不必考虑那些被DSSA认为是普遍的、公共的需求,节省了设计的时间与成本。参考DSSA的相关内容,软件工程师提供该问题的特定需求描述。综合领域模型和应用的个性化需求,根据DSSA的设计框架,就可以生成该问题的解决方案。25/35o Arango和Prieto-Diaz在总结各种领域分析方法的基础之上,提出了DSSA领域分析的过程框架,如图所示。26/354.7 基于特定领域软件体系结构的开发过程o 通常所说的基于DSSA的
17、应用开发是指在DSSA开发环境下进行的应用系统的开发。一个应用系统是特定领域内的系统实例。基于DSSA的应用开发步骤及其相关的支持工具如下图所示。27/35o 从上图可以看出,基于DSSA的应用开发过程分为两个步骤:应用需求分析和应用设计与开发。可以根据系统不同角色的观点,来描述基于DSSA的应用开发环境如下图所示,它是一个三层视图。28/35o DSSA开发方法的重点不是应用,而是重用,最终目的是开发领域中的一族应用程序。使用这种方法,有助于对问题有一个更广泛、更深刻的理解,有助于开发面向重用的领域框架和构件,同时有助于提高软件的生产效率。DSSA和应用系统架构之间的关系如下图所示。29/3
18、5o 从应用开发者的角度来看,软件分析阶段和软件设计阶段的主要任务是从DSSA中导出特定应用的体系结构框架。软件实现阶段的主要任务则是根据系统体系结构框架来选择构件,以实现该应用系统。因此,在整个生命周期中,特定领域软件体系结构和可重用构件始终是开发过程中的核心内容。30/35o 基于DSSA的开发过程如图所示。31/35o 特定领域体系结构DSSA的演化过程描述如下:根据领域需求确定DSSA。描述满足领域需求的由构件、构件之间的连接以及约束所表示的系统体系结构。n DSSA的规范说明。运用合适的形式化数学理论对DSSA模型进行规范定义,得到DSSA的规范描述,以使其创建过程更加精确并且无歧义。n DSSA的求精及验证。DSSA是通过从抽象到具体,逐步求精而得到的。在DSSA的求精过程中,需要对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 精美设计的货物运输合同
- 海运出口货物运输代理契约
- 繁华商业圈店面转租合同
- 无限期劳动合同样本
- 高速公路泥水平衡盾构隧道专项预算定额
- 建筑行业合同模板
- 租赁会议室需要注意的事项
- 房产抵押贷款合同的申请条件
- 生物中图版自主训练:第四单元第一章第二节自然选择对基因频率的影响
- 彻砖劳务分包合同2024年
- 模拟电子技术课程思政教学案例探究
- 中职班级精细化管理的实践探究
- 消防安全操作规程(20211127050648)
- 设备包机制度
- 大体积混凝土养护方案
- 1803综采工作面供电设计
- 胎心听诊技术PPT参考课件
- 卵巢畸胎瘤PPT优秀课件
- 《三只小猪》剧本
- 药厂生产过程中的危险有害因素分析及安全对策
- 从轨道电路的运用看区间信号的发展
评论
0/150
提交评论