Software evolution and 'light' semantics

D. Perry
{"title":"Software evolution and 'light' semantics","authors":"D. Perry","doi":"10.1109/icse.1999.841049","DOIUrl":null,"url":null,"abstract":"The motivation for Inscape came from my experience as a programmer, designer and architect. There were two major (and inter-related) problems that I encountered while building software systems where I had to use components built by other people: the pieces often did not fit when I put them together and changing code often produced surprising and unexpected results. The first problem was due primarily to the informality and often incompleteness of component interfaces. The second problem was due ultimately to the complexity of the software and an inability to foresee or determine the consequences of changes. These problems result from three essential and intertwined properties of building software systems: composition, evolution and complexity. In coming to grips with the problem of composition, using formal interface specifications is the obvious choice. Enhancing the syntactic interfaces with semantic information is one way of expressing the intent of the interface provider and enabling the user to have all the information necessary to its correct and effective use. How to attack the problem of evolution is not as obvious. The approach I took in the Inscape experiment was to use the specifications constructively in order to determine and maintain semantic dependencies. Keeping track semantically as to how the interfaces are used is the analog of expressing the interface creator's intent: it is capturing the users intent. Given that both interfaces and implementations evolve, keeping track of the dependencies enables the environment to help in understanding the effects of changes and where those effects take place.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1999-05-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"9","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/icse.1999.841049","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 9

Abstract

The motivation for Inscape came from my experience as a programmer, designer and architect. There were two major (and inter-related) problems that I encountered while building software systems where I had to use components built by other people: the pieces often did not fit when I put them together and changing code often produced surprising and unexpected results. The first problem was due primarily to the informality and often incompleteness of component interfaces. The second problem was due ultimately to the complexity of the software and an inability to foresee or determine the consequences of changes. These problems result from three essential and intertwined properties of building software systems: composition, evolution and complexity. In coming to grips with the problem of composition, using formal interface specifications is the obvious choice. Enhancing the syntactic interfaces with semantic information is one way of expressing the intent of the interface provider and enabling the user to have all the information necessary to its correct and effective use. How to attack the problem of evolution is not as obvious. The approach I took in the Inscape experiment was to use the specifications constructively in order to determine and maintain semantic dependencies. Keeping track semantically as to how the interfaces are used is the analog of expressing the interface creator's intent: it is capturing the users intent. Given that both interfaces and implementations evolve, keeping track of the dependencies enables the environment to help in understanding the effects of changes and where those effects take place.
软件进化和“轻”语义
制作《Inscape》的动机来自于我作为程序员、设计师和建筑师的经历。在构建软件系统时,我不得不使用其他人构建的组件,我遇到了两个主要的(并且相互关联的)问题:当我把这些组件放在一起时,它们经常不匹配,并且更改代码经常产生令人惊讶和意想不到的结果。第一个问题主要是由于组件接口的非正式性和不完整性。第二个问题最终是由于软件的复杂性和无法预见或确定变更的后果。这些问题源于构建软件系统的三个基本且相互交织的属性:组合、演化和复杂性。在处理组合问题时,使用正式的接口规范是显而易见的选择。用语义信息增强语法接口是表达接口提供者意图并使用户能够获得正确有效使用语法接口所需的所有信息的一种方式。如何解决进化问题就不那么明显了。我在Inscape实验中采用的方法是建设性地使用规范,以便确定和维护语义依赖。从语义上跟踪接口的使用方式与表达接口创建者的意图类似:它是在捕捉用户的意图。考虑到接口和实现都在发展,跟踪依赖关系使环境能够帮助理解变化的影响以及这些影响发生的位置。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信