`
softstone
  • 浏览: 476561 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
阅读更多

软部件库的构造

(本文转载自软件工程专家网www.21cmm.com

域分析

  从软件工程的观点看,域就是向目标软件系统提出应用要求的问题及背景知识。域分析的主要任务是针对单个或一族相似的域,以软件重用为目标,探寻并挖掘域或域族中能够为多个目标软件系统共用的软部件,并对它们进行结构化组织以备重用。域分析与需求分析活动相似之处,它们都是软件项目中直接基于应用领域的开发活动,并且要完成程度不同的域建模任务。但是,域分析必须具有比需求更为广阔的视角:不仅要服务于当前软件项目,而且要从域的历史项目中发现软件项目之间的共同性和差异点,并放眼于同类或相似应用领域的未来软件项目。

  上图显示了域分析活动的主要输入、输出项目、参与人员及控制。域分析的输入信息可以从多种渠道获得:技术文献,已完成的同类软件项目(其中包括源代码、设计文档、测试方案、用户手册等),用户述评,专家建议,用户需求,以及当前软件项目反馈过来的域特征信息。域分析活动一般由域分析师、分析辅助人员和领域专家协同完成。它们在域分析方法和管理机制的控制下提交域分析活动的结果信息——一般化的域结构模型(包裹域中概念和实体分类方法),软件开发标准(包括需求分析与软件的方法框架、软件开发过程标准、编码标准、界面标准等),以及用于刻画域的特征、域中对象、操作及其关系的域语言。

  由于域分析与需求分析都以构筑应用领域的模型为主要任务,因此,某些需求分析技术可以在域分析过程中发挥作用,需求描述语言(数据流图、实体—关系图,面向对象的需求描述机制等)也可作为域语言的基础。但是,域分析必须进行一般化、抽象化和参数化,以抽象后的域模型元素表示同类域中不同软件项目之间的相似性,通过参数实例化刻画差异性,从而实现域模型元素面向不同软件项目的可适应性和灵活性。于是,在省略有关建模的技术细节之后,域分析过程可大致归纳以下步骤:
  (1) 发现并描述可重用的实体;
  (2) 对这些试题及它们之间的关系进行抽象化、一般化和参数化;
  (3) 对可重用的实体进行分类、归并,以备日后重用。

  除上图所示的域分析结果外,域分析还可产生一种重用超结构,以管理在后续软件项目的各个开发阶段的软件重用的可能性,以及收集有关重用活动的各类统计数据。这些数据可反馈至域分析方法,以便不断改进之。在重用超结构中,软部件库管理人员负责软部件的检索和提取,软部件人员负责软部件的质量控制和标准化,重用管理员则收集与重用有关的统计数据,协调所有的重用活动。

软部件的开发

  域分析的结果为软部件的选取提供了指导原则。一旦确定某些软件应该作为重用部件加入部件库,开发人员就必须实际构造它们。由于软部件的生命周期将跨越开发项目甚至应用领域,因此,软部件的开发具有相当的特殊性,即如何使软部件更为通用,更易于组装为新的软件系统,以及在新的运行环境下表现出更好的强壮性?

  代码级重用是最简单、也是最流行的。但是,本书的软部件不仅包括代码级部件,也涵盖域知识、需求分析文档、设计文档、测试方案、测试用例等软件元素,因为这些级别上的软部件可望更好的发挥重用技术的潜力,同时也是代码级重用的必要补充。

1. 需求及设计级软部件

  需求级软部件通常包括问题(及子问题)描述、有关域知识以及相应的需求规格说明。问题描述及域知识说明均用域语言表示,必要时可辅以结果化的自然语言。
  类似地,设计级软件部件包括设计规格说明(片段)、设计决策描述以及相应的设计文档(例如总体设计方案,抽象算法)。于是,设计级软件与需求级软部件相结合,使需求级部件和设计级部件的重用同时发生,简化了对这些软部件的理解和组装过程。
  需求级与设计级软件部件的开发必须遵循下列两项原则:
  (1) 将软部件应用的上下文与软部件严格分离;
  (2) 利用抽象化、参数化等手段提取公共性,增强软部件对未来不同应用项目的适应能力。
  需求级、设计级与代码级软部件相结合,有助于代码级软部件的提取和理解。借助较高抽象级别的软部件可望提高重用效能,因为这样不仅可以重用代码,而且可以重用需求模型和设计方案。

2.代码级软部件

  代码级重用是迄今为止研究最深入、应用最广泛的重用技术。代码级软部件除包含通常的代码段外,还必须辅以相应的解释和上下文说明。这些辅助说明可以用结构化自然语言或其他表示机制描述,但最好以相应的需求或设计软部件的形式出现。传统上,代码级软部件的主体是子程序(函数或过程)。现在,由于基于对象和面向对象的程序设计语言及相应开发环境的发展,软部件还可以用Ada程序及C++类实现。
  开发代码级软部件与通常的程序设计活动的主要区别在于,开发人员必须使用各种抽象化手段,以发觉公共性,分离软部件的应用上下文、功能及行为,从而提高可重用性。可以用下列三种抽象方法开发软部件:
  (1) 功能抽象:软部件的功能由接口说明中的输入-输出关系确定,实现细节对软部件使用者透明。
  (2) 数据透明:在功能抽象的基础上进一步隐藏除界面参数之外的所有数据。

分享到:
评论

相关推荐

    安徽工程科技学院计算机系.pptx

    17.2 软部件库的构造 软部件库的构建涉及域分析、软部件开发和质量控制以及库的组织。域分析是识别和提取可重用软部件的关键步骤,需要从历史项目中找出共性和差异,为未来项目做好准备。软部件的开发和质量控制确保...

    汽车构造(上)试题(库).doc

    《汽车构造(上)》试题库涉及到的知识点涵盖了汽车的基础构造和主要系统,以及相关的工作原理。以下是这些知识点的详细解析: 1. **汽车的基本组成**:汽车主要由发动机、底盘、车身和电气设备四大部分构成。...

    C++实现的软键盘

    接着,在构造函数中,创建QGridLayout对象并设置为主窗口的中央部件。然后,为每个按键创建QPushButton实例,并将它们添加到布局中。每个按钮应关联一个槽函数,当用户点击时触发相应事件,例如: ```cpp ...

    2023年软考系统架构设计师考点难点.docx

    本文档主要讲解了信息系统架构设计师的考试难点,涵盖了信息系统的基本概念、信息化的定义、信息化的内容、企业资源规划的构造和功能、 ERP 概念、生产预测、销售管理、物料需求计划、能力需求计划、车间作业计划、...

    计算机标准体系结构试题库填空题.doc

    21. **软硬件功效分配**:性能价格比是决定软硬件功能分配的重要因素。 22. **Cache与主存层次目标**:Cache-主存层次是为了提升速度,主存-辅存层次是为了扩大容量。 23. **向量数据参数**:向量起始地址、向量...

    2021年PLC可编程技术题库.doc

    4. PLC根据构造形式分为整体式(集成所有部件在一个外壳内)和组合式(模块化,可根据需求扩展)。 5. 根据输入点数和存储容量,PLC可分为微型、小型、中型、大型和巨型五类。 6. CJ系列PLC具有模块化结构,包括CPU...

    机械基础知识综合试题[试题库].doc

    36. **滚子链构造**:不同部件间采用过盈配合和间隙配合。 37. **链传动动载荷**:链轮转速高、节距大、齿数少则动载荷增大。 38. **链传动安装**:两链轮轴线在同一平面内,可保证平稳运行。 这些知识点涵盖了机械...

    奇瑞汽车供应链.pptx

    1. **汽车构造**:汽车主要由四大部分组成,包括发动机、底盘、车身和电子电器设备。这些部分的供应商选择直接影响到汽车的性能、质量和成本。 2. **发动机**:发动机是汽车的心脏,提供动力。奇瑞汽车可能与多家...

    手工木工理论题试题库小.doc

    21. **传动部件选择**:如果需要在转动过程中随时结合或脱开传动,应选用离合器。 22. **水平尺应用**:水平尺用于检查表面是否水平,确保木工作品的精确度。 这些知识点涵盖了手工木工的基础理论和实践技巧,对于...

    KIVA机器人解析.pdf

    KIVA机器人的构造设计考虑了高负荷和安全性的需求。它们使用二维码导航,每40英寸读取一次地板上的条码,从云端接收行动指令。机器人具有升降机构,能将重达1000磅的货架抬起。为了防止碰撞,机器人装有红外传感器和...

    水泵检修工试题库完整.doc

    6. **叶轮构造**:离心泵叶轮由叶片、轮毂和盖板三部分组成,叶片负责推动液体,轮毂支撑叶片,盖板则封闭叶轮。 7. **转子质量**:水泵检修时要确保转子的晃度和动静配合间隙符合要求,以保证稳定运行。 8. **泵...

    灭火救援员初级技能相关知识题库及答案.docx

    12. **进行消防员呼救器点验时,应主要了解消防员呼救器的分类、功能、构造、性能、操作方法等内容** - 正确。这些内容对于理解和掌握呼救器的使用至关重要。 13. **无线通信消防员呼救器的无线发射接收距离大于...

    计算机系统的组成计算机系统的组成.doc

    - **中央处理器(CPU)**:是计算机的核心部件,它由运算器和控制器组成。运算器负责执行算术和逻辑运算,控制器则负责指令的解释和执行。 - **内存储器**:通常指随机访问存储器(RAM),用于暂时存储运行时的...

    BIM技术概论考试题库完整[参照].pdf

    9. "软碰撞"通常指的是设计阶段可能出现的问题,如建筑与结构标高冲突,而不是设备与室内装修冲突或结构与机电预留预埋冲突。 10. BIM目标的第二类通常与具体任务的效率相关,如成本控制、进度管理等。 11. 不正确...

    数据挖掘论文合集-242篇(part1)

    SDSS中空间数据挖掘部件的设计与实现.kdh swlms.pdf Web上的数据挖掘技术和工具设计.kdh Web使用模式研究中的数据挖掘.caj Web数据挖掘技术及工具研究.kdh Web数据挖掘技术探讨.kdh Web数据挖掘的BN实现方案.kdh XML...

    数据挖掘在各行业的应用论文

    SDSS中空间数据挖掘部件的设计与实现.kdh 数据挖掘技术在网络广告定制中的应用.kdh 模糊数据挖掘.caj 基于数据挖掘建立动态人事管理决策系统.kdh 粗集数据挖掘方法MIE-RS的设计与实现.caj 数据挖掘、OLAP在决策支持...

    数据挖掘论文合集-242篇(part2)

    SDSS中空间数据挖掘部件的设计与实现.kdh swlms.pdf Web上的数据挖掘技术和工具设计.kdh Web使用模式研究中的数据挖掘.caj Web数据挖掘技术及工具研究.kdh Web数据挖掘技术探讨.kdh Web数据挖掘的BN实现方案.kdh XML...

    数据挖掘论文合集-242篇(part3)

    SDSS中空间数据挖掘部件的设计与实现.kdh swlms.pdf Web上的数据挖掘技术和工具设计.kdh Web使用模式研究中的数据挖掘.caj Web数据挖掘技术及工具研究.kdh Web数据挖掘技术探讨.kdh Web数据挖掘的BN实现方案.kdh XML...

    Fisher 电磁阀参考手册.pdf

    它们之所以设计得便于选型和维护,是因为许多内部结构部件可以互换使用,并且维护程序类似。这一点极大地减少了备件库存并简化了维护培训。 知识点八:电磁阀的噪声降低设计 为了解决流体动力学噪声问题,Fisher...

Global site tag (gtag.js) - Google Analytics