软件工程:本质与开发方法-王立福解析

需积分: 31 73 下载量 29 浏览量 更新于2024-08-20 收藏 3.53MB PPT 举报
"属性和操作的可见性是软件工程中重要的概念,主要涉及软件开发的各个方面,包括软件的本质、过程、需求、开发方法学以及能力成熟度模型。本课件由北京大学软件工程国家工程研究中心的王立福教授讲解,旨在帮助自学者深入理解软件开发的核心理念和实践手段。" 在软件开发中,属性和操作的可见性是指在面向对象编程中,类的成员(如变量和函数)对外界的访问权限。这是面向对象设计原则的关键部分,有助于维护代码的封装性和安全性。 1. **软件开发的本质**: 软件开发的本质是将问题域(即现实世界的问题和需求)映射到解域(即软件系统),这涉及到数据抽象和过程抽象。数据抽象关注问题空间的概念如何转化为模型化的概念,而过程抽象则关注问题的处理逻辑如何转化为可执行的代码逻辑。 2. **软件过程**: 软件过程是指从需求收集、分析、设计、实现、测试到维护等一系列活动的组织和管理。在这一过程中,属性和操作的可见性决定了哪些功能可以被外部类或模块访问,哪些应当保持私有,以保护内部数据的完整性和防止不必要的干扰。 3. **软件需求及系统/产品(需求)规约**: 需求是软件开发的起点,规约是需求的书面表达,是测试和确认产品的标准。属性的可见性在此阶段就应当被考虑,以确保设计和实现能准确反映用户的需求,并限制对这些需求的不必要修改。 4. **软件开发方法学**: 结构化方法、面向对象方法、面向数据结构方法等都是软件开发的不同路径。在这些方法中,属性和操作的可见性是设计模式和类结构的关键元素,它们指导如何创建可维护和扩展的软件系统。 5. **CMM(Capability Maturity Model for software)**: CMM模型关注的是软件开发过程的能力和成熟度,确保过程的质量和效率。在CMM框架下,属性和操作的可见性管理是过程质量控制的一部分,有助于提高软件开发的规范化和可靠性。 6. **抽象过程**: - 数据抽象(如例子1):通过需求分析,将问题空间的概念(如学生张山)转化为模型化的对象,形成计算的客体,限定外界对内部数据的访问。 - 过程抽象(如例子2):通过结构化方法,将处理逻辑(计算学生平均成绩)规约,形成可构造的计算逻辑,控制流程的执行方式。 - 交互图设计(如例子3):面向对象方法在需求分析和设计阶段用于构建交互模型,明确操作的可见性,定义对象间的通信规则。 属性和操作的可见性在软件工程的每个环节都发挥着至关重要的作用,它关乎软件的结构、功能、可维护性和安全性。理解和掌握这一概念对于高效、高质量的软件开发至关重要。