OCLVerifer: Automated verification of OCL contracts in requirements models

IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Science of Computer Programming Pub Date : 2024-08-30 DOI:10.1016/j.scico.2024.103197
Peiye Yang , Li Zhang , Qin Li , Xiang Gao , Yilong Yang
{"title":"OCLVerifer: Automated verification of OCL contracts in requirements models","authors":"Peiye Yang ,&nbsp;Li Zhang ,&nbsp;Qin Li ,&nbsp;Xiang Gao ,&nbsp;Yilong Yang","doi":"10.1016/j.scico.2024.103197","DOIUrl":null,"url":null,"abstract":"<div><p>Object Constraint Language (OCL) is one lightweight formal specification. Integrated within the Unified Modeling Language (UML) standard, it serves as a cornerstone in requirements modeling, enjoying widespread adoption across various domains. OCL can precisely define the pre- and post-condition of system operations and system invariants. While OCL provides a simple yet expressive syntax, it lacks clarity in mapping Object-Oriented (OO) concepts, such as object states, object links, and object attributes. This ambiguity makes it challenging for OO developers to identify errors in requirements. In this paper, we propose an approach named OCLVerifier, which can automatically detect the requirements errors of OCL, such as conflict, redundancy, and failure error. OCLVerifier first transforms OO contracts and detection patterns into SMT formulas and then proves them by using a SMT solver. Finally, the results are mapped to the original OCL contracts to display detailed error type and location information. To evaluate OCLVerifier, we conducted a comprehensive evaluation of four case studies. Experimental results indicate that OCLVerifier successfully identifies 65.5% of error cases, with each identified case offering accurate error location information. Compared with human experts, OCLVerifier can reduce evaluation time by 80.8% while enhancing repair accuracy by 18%. The results are satisfactory, and the proposed approach can be further extended to the software industry for requirements verification.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"240 ","pages":"Article 103197"},"PeriodicalIF":1.5000,"publicationDate":"2024-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Science of Computer Programming","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S0167642324001205","RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q3","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
引用次数: 0

Abstract

Object Constraint Language (OCL) is one lightweight formal specification. Integrated within the Unified Modeling Language (UML) standard, it serves as a cornerstone in requirements modeling, enjoying widespread adoption across various domains. OCL can precisely define the pre- and post-condition of system operations and system invariants. While OCL provides a simple yet expressive syntax, it lacks clarity in mapping Object-Oriented (OO) concepts, such as object states, object links, and object attributes. This ambiguity makes it challenging for OO developers to identify errors in requirements. In this paper, we propose an approach named OCLVerifier, which can automatically detect the requirements errors of OCL, such as conflict, redundancy, and failure error. OCLVerifier first transforms OO contracts and detection patterns into SMT formulas and then proves them by using a SMT solver. Finally, the results are mapped to the original OCL contracts to display detailed error type and location information. To evaluate OCLVerifier, we conducted a comprehensive evaluation of four case studies. Experimental results indicate that OCLVerifier successfully identifies 65.5% of error cases, with each identified case offering accurate error location information. Compared with human experts, OCLVerifier can reduce evaluation time by 80.8% while enhancing repair accuracy by 18%. The results are satisfactory, and the proposed approach can be further extended to the software industry for requirements verification.

查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
OCLVerifer:自动验证需求模型中的 OCL 合约
对象约束语言(OCL)是一种轻量级的正式规范。它集成在统一建模语言(UML)标准中,是需求建模的基石,在各个领域得到广泛应用。OCL 可以精确定义系统操作的前置和后置条件以及系统不变式。虽然 OCL 提供了简单而富有表现力的语法,但它在映射面向对象(OO)概念(如对象状态、对象链接和对象属性)方面缺乏清晰度。这种模糊性使 OO 开发人员很难识别需求中的错误。在本文中,我们提出了一种名为 OCLVerifier 的方法,它可以自动检测 OCL 的需求错误,如冲突、冗余和失败错误。OCLVerifier 首先将 OO 契约和检测模式转换为 SMT 公式,然后使用 SMT 求解器证明这些公式。最后,将结果映射到原始 OCL 合约,以显示详细的错误类型和位置信息。为了评估 OCLVerifier,我们对四个案例研究进行了综合评估。实验结果表明,OCLVerifier 成功识别了 65.5% 的错误案例,每个识别出的案例都提供了准确的错误定位信息。与人类专家相比,OCLVerifier 可以减少 80.8% 的评估时间,同时提高 18% 的修复准确率。结果令人满意,建议的方法可进一步推广到软件行业的需求验证中。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
Science of Computer Programming
Science of Computer Programming 工程技术-计算机:软件工程
CiteScore
3.80
自引率
0.00%
发文量
76
审稿时长
67 days
期刊介绍: Science of Computer Programming is dedicated to the distribution of research results in the areas of software systems development, use and maintenance, including the software aspects of hardware design. The journal has a wide scope ranging from the many facets of methodological foundations to the details of technical issues andthe aspects of industrial practice. The subjects of interest to SCP cover the entire spectrum of methods for the entire life cycle of software systems, including • Requirements, specification, design, validation, verification, coding, testing, maintenance, metrics and renovation of software; • Design, implementation and evaluation of programming languages; • Programming environments, development tools, visualisation and animation; • Management of the development process; • Human factors in software, software for social interaction, software for social computing; • Cyber physical systems, and software for the interaction between the physical and the machine; • Software aspects of infrastructure services, system administration, and network management.
期刊最新文献
Verification of forward simulations with thread-local, step-local proof obligations API comparison based on the non-functional information mined from Stack Overflow An empirical evaluation of a formal approach versus ad hoc implementations in robot behavior planning View-based axiomatic reasoning for the weak memory models PSO and SRA Verifying chip designs at RTL level
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1