论文标题
可执行抽象程序在软件开发和文档中的作用
The Role of Executable Abstract Programs in Software Development and Documentation
论文作者
论文摘要
我们介绍可执行的抽象程序,并分析其在软件开发和文档中的作用。对这些程序的直观理解符合软件系统工程师的计算思维方式,并得到了简单但精确的行为定义的支持。因此,可以将它们顺利地集成到从业人员的日常工作中,以严格地制定从可执行的抽象程序到针对目标且有效运行的代码的路径上采取的每个设计和实施决策。 生成系统文档的可执行抽象程序表示实现步骤的定义,可以通过测试(由于其可执行角色)或通过推理(由于其行为的数学定义)来检查和证明合理性。对于复杂的系统,实现涉及多个(正交或连续的)实现步骤,这些步骤代表实用的计算改进概念的实例。这样的系统开发过程是由计算改进驱动的,并且严格限于明确提出和证明(除要求之外)仅是必要的实施步骤。因此,它作为副作用的文档语料库产生,从而有助于最终代码的可理解性并提高其可靠性和弹性;它还增强了维护过程(包括重复使用和更改抽象程序和代码),并降低维护成本。
We present Executable Abstract Programs and analyse their role for software development and documentation. The intuitive understanding of these programs fits the computational mindset of software system engineers and is supported by a simple but precise behavioural definition. Therefore, they can be smoothly integrated in the practitioner's daily work to rigorously formulate every design and implementation decision taken on the path from the Executable Abstract Program for the requirements to the targeted and efficiently runnable code. The Executable Abstract Programs of the resulting system documentation represent definitions of implementation steps one can check and justify by testing (due to their executable character) or by reasoning (due to the mathematical definition of their behaviour). For complex systems the implementation involves multiple (orthogonal or successive) implementation steps which represent instances of a practical computational refinement concept. Such a system development process is driven by computational refinements and is strictly limited to explicitly formulate and justify -- besides the requirements -- only the necessary implementation steps. As a consequence, it produces as side-effect a corpus of documentation that facilitates the understandability of the final code and improves its reliability and resilience; it also enhances the maintenance process (including reuse and change of abstract programs and code) and reduces maintenance cost.