Evolving Software with an Application-Specific Language

msra(1999)

引用 24|浏览14
暂无评分
摘要
Software systems can be developed through evolution (gradual change) or revolution (reimplementation from scratch). Both approaches have advantages and disad- vantages. An evolutionary approach keeps the system working throughout, allowing early problem detection, but tends to retain ingrained design flaws and can result in complex, ad hoc systems. A revolutionary approach is required to change the basic architecture of a system, but many more resources must be invested before the system can be evaluated. In this paper, we describe how we used a little application-specific language to combine these approaches' advantages. The context of our work is CTAS (2), the next- generation air traffic control automation system devel- oped originally by NASA. The overall goal was to re- design and reimplement one of the CTAS processes in Java, while retaining its ability to communicate with un- modified processes—a project complicated by CTAS's ad hoc message formats. To address this, we designed a lan- guage that combines C code copied from CTAS source, to express the message formats, with new Java code for message actions. A compiler then automatically gener- ates code for marshalling and unmarshalling. The result is a system with both evolutionary and revolutionary properties, exemplified by the use of both old CTAS code and new Java code in the message language. This paper discusses the language and compiler and evaluates some of the engineering tradeoffs inherent in their design.
更多
查看译文
关键词
specification language,air traffic control,software systems
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要