"程序设计方法学是研究程序设计的原理、原则与技术的学科,旨在提高软件生产率。它包括程序的性质与特征、功能描述、正确性验证、推导与综合、结构分析、语义描述、设计策略和技术,以及程序研制工具和环境。课程涵盖了程序的基本结构、数据结构、正确性证明、形式推导方法、形式化方法和并行程序设计等内容。"
在程序设计方法学中,计算机辅助软件工程(CASE)是一种重要的工程化方法,CASE工具如Unix工具箱、Ada的开发环境和程序综合器,以及软件工具,旨在提高软件开发的效率和质量。CASE工具通常提供自动化或半自动化的支持,帮助开发者进行需求分析、设计、编码、测试和维护等阶段的工作。
基于构件(Component-Based Software Engineering, CBSE)的软件工程是另一种工程化方法,它利用预先构建的软件组件(如COM/COM+、CORBA、EJB)来快速构建复杂的软件系统。这些组件能够跨平台交互,降低了软件开发的复杂性和成本,同时也提高了重用性和可维护性。
设计模式,由Gamma等人提出的概念,是解决常见软件设计问题的成熟解决方案,被誉为软件工程的重要里程碑。设计模式提供了可复用的设计模式模板,有助于提升代码的可读性和可维护性,是软件开发者实现面向对象设计的关键工具。
课程中详细讲解了程序的基本结构,包括Prime程序、复合程序、结构定理和递归结构定理,这些都是理解程序执行逻辑的基础。数据结构部分,如类型与类型系统、数据抽象、抽象数据类型(ADT)、面向对象方法和面向方面编程,这些都是构建高效且可维护软件的核心。
程序的正确性证明是保证软件质量的关键,课程介绍了规范与正确性的定义,以及部分正确性和完全正确性的证明方法,如最弱前置谓词(WP)。形式推导方法,如面向目标的程序设计和不变式推导,有助于确保程序的逻辑正确性。形式化方法,如OBJ和VDM,为软件开发提供严谨的数学基础。
并行程序设计方法,包括基本概念、并行系统、并行程序设计语言和通讯顺序进程(CSP),是应对多核处理器和分布式计算环境的重要知识,为开发者提供了处理高性能计算和实时系统的工具。
学习程序设计方法学的基本要求包括理解其在软件开发中的地位,掌握基本的程序结构和控制流程,理解数据类型和抽象在设计中的作用,能够进行程序正确性证明,熟悉形式化开发方法,以及具备初步的并行程序设计能力。通过这些知识的学习,开发者可以更有效地构建、验证和维护高质量的软件系统。