基于ide的面向对象软件模式演化解决方案

M. Piccioni, M. Oriol, B. Meyer, T. Schneider
{"title":"基于ide的面向对象软件模式演化解决方案","authors":"M. Piccioni, M. Oriol, B. Meyer, T. Schneider","doi":"10.3929/ETHZ-A-006733700","DOIUrl":null,"url":null,"abstract":"Most large software systems rely on extensive amounts of persistent data — objects. Most large software systems last a long time, over which they need to change program elements — classes. Inevitably, these two characteristics clash: how do we retrieve previously “persisted” objects when the classes that describe them have changed? Naive solutions, such as initializing new fields to default values, are dangerous, since they risk invalidating the consistency of objects. For example it would be wrong for a bank account class to initialize a newly added “balance” field, in every retrieved object, to zero. Practical considerations also apply: we cannot force the code for each class to retain all its previous versions. The ESCHER framework addresses these theoretical and practical issues through an IDE-based approach, guiding the developers interactively in the process of defining object adaptation on a class-by-class basis, respecting consistency requirements expressed by class invariants. Based on the conversions specified in this process, an algorithm will transform objects as needed, enforcing class invariants to prevent the creation of any corrupt objects. The presentation describes the principles behind invariant-safe schema evolution, the design and implementation of the ESCHER system, and the experience so far.","PeriodicalId":10841,"journal":{"name":"CTIT technical reports series","volume":"13 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2009-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"An IDE-based Solution for Schema Evolution of Object-Oriented Software\",\"authors\":\"M. Piccioni, M. Oriol, B. Meyer, T. Schneider\",\"doi\":\"10.3929/ETHZ-A-006733700\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Most large software systems rely on extensive amounts of persistent data — objects. Most large software systems last a long time, over which they need to change program elements — classes. Inevitably, these two characteristics clash: how do we retrieve previously “persisted” objects when the classes that describe them have changed? Naive solutions, such as initializing new fields to default values, are dangerous, since they risk invalidating the consistency of objects. For example it would be wrong for a bank account class to initialize a newly added “balance” field, in every retrieved object, to zero. Practical considerations also apply: we cannot force the code for each class to retain all its previous versions. The ESCHER framework addresses these theoretical and practical issues through an IDE-based approach, guiding the developers interactively in the process of defining object adaptation on a class-by-class basis, respecting consistency requirements expressed by class invariants. Based on the conversions specified in this process, an algorithm will transform objects as needed, enforcing class invariants to prevent the creation of any corrupt objects. The presentation describes the principles behind invariant-safe schema evolution, the design and implementation of the ESCHER system, and the experience so far.\",\"PeriodicalId\":10841,\"journal\":{\"name\":\"CTIT technical reports series\",\"volume\":\"13 1\",\"pages\":\"\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2009-01-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"CTIT technical reports series\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.3929/ETHZ-A-006733700\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"CTIT technical reports series","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.3929/ETHZ-A-006733700","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

摘要

大多数大型软件系统依赖于大量的持久数据对象。大多数大型软件系统运行时间很长,在此期间,它们需要更改程序元素——类。这两个特征不可避免地会发生冲突:当描述它们的类发生变化时,我们如何检索以前“持久化”的对象?幼稚的解决方案,例如将新字段初始化为默认值,是危险的,因为它们有使对象的一致性失效的风险。例如,银行帐户类在每个检索对象中将新添加的“balance”字段初始化为零是错误的。实际的考虑也适用:我们不能强制每个类的代码保留所有以前的版本。ESCHER框架通过基于ide的方法解决了这些理论和实践问题,以交互方式指导开发人员在逐个类的基础上定义对象适应的过程中,尊重由类不变量表达的一致性要求。基于此过程中指定的转换,算法将根据需要转换对象,实施类不变量以防止创建任何损坏的对象。该演讲描述了不变安全模式演变背后的原则、ESCHER系统的设计和实现,以及到目前为止的经验。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
An IDE-based Solution for Schema Evolution of Object-Oriented Software
Most large software systems rely on extensive amounts of persistent data — objects. Most large software systems last a long time, over which they need to change program elements — classes. Inevitably, these two characteristics clash: how do we retrieve previously “persisted” objects when the classes that describe them have changed? Naive solutions, such as initializing new fields to default values, are dangerous, since they risk invalidating the consistency of objects. For example it would be wrong for a bank account class to initialize a newly added “balance” field, in every retrieved object, to zero. Practical considerations also apply: we cannot force the code for each class to retain all its previous versions. The ESCHER framework addresses these theoretical and practical issues through an IDE-based approach, guiding the developers interactively in the process of defining object adaptation on a class-by-class basis, respecting consistency requirements expressed by class invariants. Based on the conversions specified in this process, an algorithm will transform objects as needed, enforcing class invariants to prevent the creation of any corrupt objects. The presentation describes the principles behind invariant-safe schema evolution, the design and implementation of the ESCHER system, and the experience so far.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Costs and Benefits of Electric Vehicles and District Cooling Systems: A case study in Singapore Towards a Digital Urban Climate Twin: Simulation-as-a-Service (SaaS) for Model Integration Microscale Assessment of the Anthropogenic Heat Mitigation Strategies Decision Support System: User research, usability analysis and computational build Analysis of climatic variables in different urban sites of Singapore and evaluation of strategies to improve the outdoor thermal environment
×
引用
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