可重构组件系统规范与Petri网状态空间生成
在软件开发的漫长历程中,软件规范、验证和开发的形式化方面经历了显著的发展。早期,人们主要关注小规模编程,即对相对简单的(迭代)程序进行描述、分析和验证。像Hoare逻辑等成果,为迭代程序正确性证明的早期提议提供了形式化支持。而Parnas的早期工作则推动了大规模编程,涉及模块化和抽象等问题。Hoare的另一篇开创性论文探讨了数据抽象以及逐步程序开发的相关问题。
代数规范的研究最初聚焦于指定(抽象)数据类型,随后发展成为一种通用的软件系统规范和系统开发方法。然而,这种方法在处理相对简单的系统时效果最佳,这些系统是通过静态组合明确指定的分层模块构建而成。例如,CoFI小组最近开发的Casl就是适合这种方法的特定规范形式主义的典型例子。
但如今,构建复杂软件系统的标准实践发生了巨大变化。例如,面向对象技术引入了对象的局部状态、继承和对象间的动态通信等复杂编程特性,而像Casl这样的规范形式主义并未直接处理这些特性。尽管从原则上讲,上述通用方法可以处理面向对象范式,但面向对象设计和开发实践仍主要由UML等方法主导,尽管UML存在缺陷且最初缺乏形式基础。不过,UML通过数十种类型的图表,提供了多种方法来捕捉指定系统的各个方面。
之前倡导的方法自然会导致开发由多个相互独立、明确指定的模块静态组成的系统,这与当前面向服务计算等领域的发展方向截然不同。在这些领域中,系统是从可用组件集合中动态配置而成,以提供特定服务,并在达到目标后通常会进行分解。这种动态方面在面向代理的技术中也有所体现,但重点似乎更多在于寻找合适的服务,而非提供服务的模块的正确规范以及整个系统架构的系统设计。
我们期望追求一种用于分层系统的规范、设计和系统开发的方法,
超级会员免费看
订阅专栏 解锁全文
56

被折叠的 条评论
为什么被折叠?



