软件工程设计原则与CMM:北大王立福教授讲解

需积分: 32 23 下载量 75 浏览量 更新于2024-08-20 收藏 3.86MB PPT 举报
"设计原则-北大王立福教授 软件工程2012研修班课件" 本文档是北京大学软件工程国家工程研究中心王立福教授在2012年的软件工程研修班中关于设计原则的讲解。王教授强调了软件工程的核心理念,并阐述了在软件开发过程中应遵循的设计准则,旨在支持敏捷设计,防止软件腐化。 首先,王教授介绍了软件工程的基础,指出其试图回答软件开发的本质、基本手段以及结果形态。软件工程是一个综合运用计算机科学理论、技术以及工程管理原则和方法,按照预算和时间表来实现满足用户需求的软件产品的过程。这个过程涵盖了需求分析、设计、实现、集成、部署和维护等多个阶段。 在软件开发的本质部分,王教授提到软件开发是一个将问题域的概念和处理逻辑映射到不同抽象层的过程,包括问题空间、需求、设计、实现和部署等阶段。每个阶段都有其特定的模型,如概念模型、设计模型、实现模型和部署模型。软件模型反映了问题域到不同抽象层之间的映射,强调了理解和解决不同领域问题时的思维逻辑差异。 接下来,文档提出了11条设计行为准则,其中5条为核心设计原则。这些原则虽是指导性的,但并不意味着应该无条件地遵循。过度依赖这些原则可能导致不必要的复杂性,因此在实践中需要灵活运用。具体的设计原则包括但不限于: 1. 模块化:将软件分解为可管理的模块,以便于理解、测试和修改。 2. 抽象:隐藏实现细节,只对外暴露必要的接口,降低耦合度。 3. 开闭原则:软件实体(类、模块、函数等)应对于扩展开放,对于修改关闭。 4. 单一职责原则:每个模块或组件应有且只有一个主要功能。 5. 接口分离原则:避免一个模块过于依赖其他模块,确保接口的专一性。 此外,针对包的设计,又提出了6条额外的原则,这些原则可能涉及包的组织、封装和交互等方面,旨在优化代码结构和提高代码质量。 在软件过程部分,王教授讨论了软件开发所涉及的活动及其组织方式,包括软件需求的获取和表达、软件开发方法的选择(如结构化方法、面向对象方法等),以及通过能力成熟度模型(CMM)来提升开发过程的可靠性和效率。 这份资料提供了软件工程的核心概念和设计原则,对于理解和实践软件开发具有重要的指导价值。通过深入理解和应用这些原则,开发者可以更好地进行软件设计,确保软件的质量、可用性、经济性和功能性。