23、面向对象软件工程中的定量方法研究进展

面向对象软件工程中的定量方法研究进展

在软件工程领域,面向对象(OO)软件的度量和评估一直是重要的研究方向。本次活动聚焦于度量定义、评估模型和预测模型等方面,展现了众多创新的研究成果和工作进展。

1. 活动概况

活动于6月19日继续进行度量定义环节,由Fernando Brito e Abreu进行了关于使用对象约束语言(OCL)定义OO软件度量的教程讲解。这也是该活动首次延长至一天半的时间。在展示环节,要求每位参与者总结所展示立场文件的新观点和局限性,这一传统有助于激发讨论。为便于比较不同贡献,将内容分为两个子部分:一是关于度量定义的元模型、新度量套件提案等;二是关于度量在描述性或预测性模型中的应用及模型开发。

2. 度量定义

目前可用的OO软件度量工具存在一些问题,许多OO度量套件在定义上缺乏精确性,导致度量难以广泛应用。为保证度量定义的精确性,需要一种形式化语言,且该语言应与被测量实体的描述语言一致。当前的度量套件大多未基于形式化元模型进行定义。

今年活动中,有两个基于形式化元模型的度量定义提案:
- Ralf Reissing的对象导向设计模型(ODEM) :基于UML元模型,用于高级设计度量的定义。它借鉴了UML元模型中与类和包图相关的部分,并在其基础上定义了一层抽象,包含形式化定义的集合、关系和属性,可用于度量定义。Reissing还通过定义示例类、包和系统度量,以及重新定义现有度量,验证了该模型的可行性。
- Fernando Brito e Abreu的OCL方法 :不额外定义抽象层,而是使用OCL将度量定义为元模型操作,通过OCL前置条件和后置条件分别定义度量的适用限制和结果。该方法的优点是标准化程度高,且具有灵活性,可用于不同的元模型。缺点是需要用户掌握OCL语言。

除了上述对现有度量套件的形式化工作,还有一些新的度量提案:
- Michel Dao等人的新度量套件 :提出了18个用于评估类层次结构中分解和泛化的新度量,适用于特征、通用特征、类和类层次结构四个粒度级别。这些度量可用于识别设计缺陷,帮助工程师选择最佳设计。
- Marcela Genero的结构复杂度度量 :提出了10个UML类图的结构复杂度度量,并重点验证了这些度量作为可维护性指标的有效性。
- Ram和Raju的方法点度量 :用于估计由设计模式组成的软件设计的大小,特别适用于比较不同设计模式产生的替代设计。
- Olaf Herden的数据库模式质量审查框架 :包含一个形式化的UML元模型和一个过程模型,用于数据库模式的质量审查,并已实现部分工具基础设施。
- Hind Kabaili的变更影响模型扩展 :考虑了涟漪效应和回归测试,可识别C++系统中受类变更影响的类。

以下是部分度量提案的对比表格:
| 提案者 | 度量类型 | 特点 |
| ---- | ---- | ---- |
| Ralf Reissing | ODEM元模型 | 基于UML,有抽象层,可重新定义现有度量 |
| Fernando Brito e Abreu | OCL方法 | 标准化高,灵活,需掌握OCL |
| Michel Dao等人 | 类层次结构度量 | 评估分解和泛化,适用于多粒度 |
| Marcela Genero | 结构复杂度度量 | 用于UML类图,验证可维护性 |
| Ram和Raju | 方法点度量 | 估计设计大小,适用于替代设计比较 |
| Olaf Herden | 数据库模式审查框架 | 形式化元模型和过程模型 |
| Hind Kabaili | 变更影响模型扩展 | 考虑涟漪效应和回归测试 |

3. 度量使用

活动中有五个贡献涉及OO度量的使用,应用范围从典型的度量验证研究到描述性或预测性模型的构建,部分贡献还采用了人工智能和机器学习技术。
- Marcela Genero的度量验证研究 :通过控制实验评估了10个UML类图结构复杂度度量与可维护性子特征(可理解性、可分析性和可修改性)之间的相关性。结果表明,大多数度量与可维护性评级存在显著相关性。讨论主要集中在评估设计表示而非系统本身,以及类图可维护性与软件可维护性的关系。
- Hind Kabaili的未来实验计划 :将研究知名OO设计度量作为OO软件可变更性指标的能力,使用扩展的变更影响模型。
- Marcela Genero的模糊原型知识发现(FPKD)技术 :扩展了传统的数据库知识发现(KDD)过程,用于构建可预测UML类图可维护性评级的模型。
- Houari Sahraoui的预测模型改进方案 :针对当前软件质量预测模型存在的问题,提出将精确阈值映射为模糊阈值,并将领域知识明确纳入预测模型。通过模糊化技术和规则分解,提高模型的可解释性和有效性。讨论主要集中在因果模型的构建,子规则的推导难以自动化,需要领域特定的公共存储库支持。
- Poels等人和Michel Dao等人的评估应用 :Poels等人将简单复杂度度量应用于存在依赖图,以确定最佳服务定制级别;Michel Dao等人将特征分解度量应用于多个JAVA包,验证了这些包中存在的分解问题。

以下是度量使用相关贡献的流程图:

graph LR
    A[Marcela Genero度量验证研究] --> B[评估结构复杂度度量与可维护性相关性]
    C[Hind Kabaili未来实验计划] --> D[研究OO设计度量作为可变更性指标]
    E[Marcela Genero FPKD技术] --> F[构建可维护性预测模型]
    G[Houari Sahraoui预测模型改进方案] --> H[模糊阈值与领域知识纳入模型]
    I[Poels等人评估应用] --> J[确定最佳服务定制级别]
    K[Michel Dao等人评估应用] --> L[验证JAVA包分解问题]

本次活动展示了面向对象软件工程中定量方法的丰富研究成果,包括新的度量定义提案和度量应用案例。然而,活动也指出了当前研究存在的一些问题,如内聚性度量缺乏精确性、度量的理论验证不足等。未来的研究需要在这些方面进一步努力,同时加强数据共享和工具集成,以推动面向对象软件工程的发展。后续我们将继续探讨活动中讨论的其他重要问题和未来研究方向。

面向对象软件工程中的定量方法研究进展

4. 讨论总结

活动在第一天结束时安排了单独的讨论环节,第二天也有简短的讨论来结束活动。参与者提出了一些适用于所有研究以及整个相关领域的一般性意见:
- 内聚性度量问题 :大多数已发表的面向对象软件工件的内聚性度量,如Chidamber和Kemerer的LCOM,缺乏精确的定义,导致计算方式不明确。此前的活动也有相同的反馈,希望本次活动提出的度量标准化提案能缓解这一问题。同时,评估内聚性不仅要考虑语法层面的软件度量,还需考虑语义方面。
- 度量的理论验证不足 :面向对象软件工件的度量缺乏理论验证,这一研究领域需要更多关注。只有明确度量所测量的内容,才能推动基于度量的评估和预测工具在行业中的广泛应用。
- 数据分析技术需求 :非常需要对不同的数据分析技术(包括机器学习技术)进行比较分析,贝叶斯网络或许能提供部分解决方案。通过比较分析,能找到最适合构建描述性和预测性软件质量与工作量模型的技术。
- 集成到软件开发过程 :当对测量工具的有效性以及基于这些工具的质量或工作量模型的有用性和有效性有足够信心后,需要研究如何将这些工具和模型集成到软件开发、维护和再工程过程中。
- 设计模式的度量验证 :探讨是否可以使用度量来验证关于设计模式的主张,例如研究使用设计模式是否真的能提高软件系统的质量,采用定量方法研究这个问题似乎是合适的。
- 其他需求 :再次强调了对动态设计图以及面向对象模式、组件和架构的度量需求,同时呼吁建立更多公共的软件工程数据、度量值、阈值和基准存储库,这需要国际间的共同努力。

以下是这些讨论问题的总结表格:
| 问题类型 | 具体问题 | 期望解决方案 |
| ---- | ---- | ---- |
| 度量定义 | 内聚性度量缺乏精确性 | 度量标准化提案,考虑语义方面 |
| 理论验证 | 度量缺乏理论验证 | 加强该领域研究,明确度量内容 |
| 数据分析 | 缺乏数据分析技术比较 | 比较不同技术,考虑贝叶斯网络 |
| 过程集成 | 如何集成到开发过程 | 开展相关研究 |
| 模式验证 | 能否用度量验证设计模式 | 采用定量方法研究 |
| 数据需求 | 缺乏动态设计等度量及公共存储库 | 开展相关研究,国际合作建立存储库 |

5. 结论

本次活动取得了圆满成功,展示了许多创新的提案和正在进行的工作。特别是在度量标准化方面的研究努力,以及对早期面向对象工件(如UML类图和面向对象概念数据库模式)测量的关注,令人鼓舞。这些研究方向在之前的活动中就被确定为待解决的问题,这也证明了该活动系列的重要性和影响力。

活动组织者承诺将继续举办该活动系列,并进一步改进。上述讨论中提出的问题为未来的研究提供了思考方向,未来需要在以下方面开展工作:
1. 解决内聚性度量问题 :进一步完善内聚性度量的定义,使其更加精确,同时考虑语义因素,提高评估的准确性。
2. 加强度量的理论验证 :深入研究度量的理论基础,明确每个度量所测量的内容,为度量的广泛应用提供理论支持。
3. 开展数据分析技术比较 :对不同的数据分析技术(包括机器学习技术)进行系统的比较分析,找出最适合构建软件质量和工作量模型的技术。
4. 集成到软件开发过程 :研究如何将测量工具和质量、工作量模型有效地集成到软件开发、维护和再工程过程中,提高软件开发的效率和质量。
5. 验证设计模式 :通过定量方法研究设计模式对软件质量的影响,为设计模式的选择和应用提供科学依据。
6. 建立公共存储库 :国际间共同努力,建立更多公共的软件工程数据、度量值、阈值和基准存储库,促进研究成果的共享和交流。

以下是未来研究方向的流程图:

graph LR
    A[解决内聚性度量问题] --> B[完善定义,考虑语义]
    C[加强度量理论验证] --> D[明确度量内容]
    E[开展数据分析技术比较] --> F[找出最佳技术]
    G[集成到软件开发过程] --> H[提高开发效率和质量]
    I[验证设计模式] --> J[提供科学依据]
    K[建立公共存储库] --> L[促进成果共享交流]

总之,面向对象软件工程中的定量方法研究前景广阔,但也面临着诸多挑战。通过持续的研究和合作,有望解决当前存在的问题,推动该领域的不断发展。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值