软件工程基础与泛化概念解析

需积分: 42 14 下载量 110 浏览量 更新于2024-08-15 收藏 3.53MB PPT 举报
"标识泛化-软件工程自学考试(全程学习版)" 在软件工程中,标识泛化是一种重要的概念,它主要用于简化和清晰地表达分析模型。泛化的目的是提高模型的可理解性,通过将共性的元素归为一般类别,以此来减少冗余和复杂性。在描述中提到的例子中,`Trade Object` 被用作 `Order` 和 `Invoice` 的泛化,意味着 `Order` 和 `Invoice` 都是 `Trade Object` 的特殊情况。这种关系表示它们都具有与交易相关的一般性质和责任,但各自可能有特定的特性或行为。 软件工程基础涵盖了对软件开发的全面理解和实践。北京大学软件工程国家工程研究中心的王立福在2009年的讲座中强调了软件工程的几个关键方面: 1. 概论:这部分探讨软件开发的本质,即如何理解和掌握软件开发的基本原则和手段。软件开发不仅仅是编写代码,更包括理解问题域,建立正确的抽象层次,并选择合适的方法学。 2. 软件过程:这部分关注软件开发中的各项活动以及如何组织这些活动,形成有效的软件生命周期管理。 3. 软件需求及系统/产品(需求)规约:这是软件开发的起点,定义了产品的功能和非功能需求,为后续的测试和验证提供了基准。 4. 软件开发方法学:这部分介绍不同的开发方法,如结构化方法、面向对象方法、面向数据结构方法和维也纳开发方法等,这些方法提供了实现开发过程的路径。 5. CMM(Capability Maturity Model for software):CMM是一种评估和改进软件开发过程成熟度的模型,旨在确保能够持续产出高质量的软件产品。 在软件开发过程中,抽象是核心概念之一。抽象包括数据抽象和过程抽象,如例子所示: - 数据抽象:将问题空间中的概念映射到解空间的模型化概念,例如通过面向对象方法创建对象,如`对象=F(张山)`,将现实世界的人转化为计算模型。 - 过程抽象:映射问题空间的处理逻辑到解空间的计算逻辑,如使用结构化方法进行需求分析,确定如何计算学生的平均成绩。 - 交互设计:在需求分析和设计阶段,交互图有助于描绘用户与系统之间的交互,例如在计算学生成绩的场景中。 软件开发的本质在于从问题域到不同抽象层之间的映射,这涉及到对问题的理解、模型的构建以及计算逻辑的构造。通过有效的抽象和泛化,软件工程师能够创建出更易于理解、维护和扩展的系统。