软件工程:本质与开发方法探索-王立福讲义

需积分: 31 73 下载量 192 浏览量 更新于2024-08-20 收藏 3.53MB PPT 举报
"北大王立福《软件工程》自考课件" 王立福教授的《软件工程》课程探讨了软件开发的核心概念、过程以及不同方法学。课程旨在帮助学习者理解软件开发的本质,掌握基本的软件工程知识,并通过具体实例阐述了软件生存周期中的关键活动。 1. 软件开发的本质 软件开发的本质在于将问题域中的客观事物系统转化为不同抽象层的概念和计算逻辑。这一转化过程包括数据抽象和过程抽象。数据抽象是将问题空间的概念转化为模型化概念,如面向对象方法中的对象创建;而过程抽象则是将问题空间的处理逻辑转化为解空间的处理逻辑,如结构化方法中的流程设计。 2. 软件生存周期过程 软件开发遵循一定的生存周期模型,包括软件需求分析、设计、实现、测试和维护等阶段。这些阶段是有序组织的,目的是确保软件产品的质量和满足用户需求。在这个过程中,需求规约是产品确认和测试的重要依据。 3. 软件开发方法学 课程提到了多种软件开发方法,如结构化方法、面向对象方法、面向数据结构方法以及维也纳开发方法(VDM)。每种方法都有其适用场景和优势,选择合适的方法对于软件开发的成功至关重要。 4. CMM(Capability Maturity Model for software) CMM模型用于评估和改进软件开发过程的能力,以确保能够生产出高质量的产品。它强调过程的成熟度和组织能力的提升,是软件开发过程能力保障的关键。 5. 子系统与接口设计 在自顶向下的开发过程中,有时需要在设计子系统和接口之前先捕获需求。此外,可能需要提供替代设计以优化子系统。例如,用况细化的子系统及其接口设计可以在层次体系的不同层上进行,以适应不同的需求和场景。 6. 需求分析与设计 需求分析是软件开发的起点,它涉及到数据抽象和过程抽象的运用。例如,面向对象方法用于创建对象模型,结构化方法则用于构建处理逻辑。同时,交互图在设计阶段扮演重要角色,帮助描绘系统组件间的交互。 通过这个课程,学习者可以深入理解软件工程的基础知识,包括软件开发的本质、过程、需求管理和不同方法学的应用,从而能更有效地开展软件开发和测评工作。