Computer systems are so complex, so they are usually designed and analyzed in terms of layers of abstraction. Complexity is still a challenge facing logical reasoning tools that are used to find software design flaws and implementation bugs. Abstraction is also a common technique for scaling those tools to more complex systems. However, the abstractions used in the design phase of systems are in many cases different from those used for assurance. In this paper we argue that different software quality assurance techniques operate on different aspects of software systems. To facilitate assurance, and for a smooth integration of assurance tools into the Software Development Lifecycle (SDLC), we present a 4-dimensional meta-architecture that separates computational, coordination, and stateful software artifacts early on in the design stage. We enumerate some of the design and assurance challenges that can be addressed by this meta-architecture, and demonstrate it on the high-level design of a simple file system.
翻译:计算机系统非常复杂,因此通常是从抽象层面来设计和分析的。复杂性仍然是一项挑战,它面临着逻辑推理工具,用来找出软件设计缺陷和实施错误。抽象性也是将这些工具推广到更复杂的系统的一种常见技术。然而,系统设计阶段使用的抽象性在许多情况下不同于用于保证的抽象性。在本文中,我们认为不同的软件质量保证技术在软件系统的不同方面运作。为了便利保证,并且为了将保证工具顺利地纳入软件开发生命周期(SDLC),我们提出了一个四维元元结构,在设计阶段早期就将计算、协调和标定软件工艺分离出来。我们列举了这一元结构可以解决的一些设计和保证性挑战,并展示了简单文件系统的高级别设计。