Current software development is often quite code-centric and aimed at short-term deliverables, due to various contextual forces (such as the need for new revenue streams from many individual buyers). We're interested in software where different forces drive the development. \textbf{Well understood domains} and \textbf{long-lived software} provide one such context. A crucial observation is that software artifacts that are currently handwritten contain considerable duplication. By using domain-specific languages and generative techniques, we can capture the contents of many of the artifacts of such software. Assuming an appropriate codification of domain knowledge, we find that the resulting de-duplicated sources are shorter and closer to the domain. Our prototype, Drasil, indicates improvements to traceability and change management. We're also hopeful that this could lead to long-term productivity improvements for software where these forces are at play.
翻译:目前软件开发往往以代码为中心,并且由于各种背景力量(例如需要来自许多个人购买者的新的收入来源)而以短期的可交付成果为目标。我们感兴趣的是不同力量驱动开发的软件。\ textbf{很好理解的领域} 和\ textbf{长寿软件} 提供了这样的背景。一个关键的观察是,目前手写软件的工艺品存在相当大的重复。通过使用特定域名语言和基因化技术,我们可以捕捉到许多这类软件的艺术品的内容。假设对域知识进行适当编码,我们发现由此产生的已去除的源更短,更接近域。我们的原型Drasil指出了追踪和改变管理方面的改进。我们还希望这能够导致这些力量正在起作用的软件的长期生产力提高。