软件工程自学全攻略:从基础到CMM

3星 · 超过75%的资源 需积分: 50 76 下载量 155 浏览量 更新于2024-07-21 2 收藏 4.36MB PDF 举报
"这份资料是关于‘软件工程’的自学考试课件,由北京大学软件工程国家工程研究中心的王立福提供。内容涵盖了软件工程的基础、软件过程、需求分析、开发方法学以及软件成熟度模型CMM等关键知识点,旨在帮助学习者全面理解并掌握软件开发的核心原理和实践方法。" 在软件工程中,了解软件开发的本质至关重要。软件开发的本质是将问题域中的客观事物系统转化为不同抽象层的概念和计算逻辑映射。这个过程涉及到数据抽象和过程抽象,是需求分析、设计和实现的基础。 数据抽象是将问题空间中的概念转化为解空间的模型化概念,例如,通过面向对象方法,将现实世界中的对象(如人名)转化为程序中的对象。这个过程的目标是形成计算的客体,使得计算机可以处理和理解。 过程抽象则是将问题空间的处理逻辑转化为解空间的处理逻辑,这通常采用结构化方法来实现。它旨在构建一种可构造的计算逻辑,以便编程实现。例如,将计算学生成绩的过程规约和设计,确保程序能够正确执行。 软件过程包括了一系列开发活动及其组织方式,从需求获取、需求分析、设计、编码、测试到维护,每个阶段都有其特定的任务和产出物。软件需求及系统/产品需求规约是软件开发的起点,它们定义了产品的功能和性能,也是后续测试和验证的标准。 软件开发方法学是指导开发活动的理论和实践框架,包括结构化方法、面向对象方法、面向数据结构方法以及维也纳开发方法等多种方法。每种方法都有其适用场景和优势,选择合适的方法对于项目的成功至关重要。 CMM(软件能力成熟度模型)则关注软件开发过程的能力保障,通过五个成熟度级别来评估和改进组织的软件开发能力,以提高产品质量和项目成功率。 这份课件深入浅出地讲解了软件工程的各个方面,不仅涵盖了理论基础,还强调了实践应用,是自学者理解软件工程、准备相关考试的宝贵资源。通过学习,学习者可以掌握软件开发的全生命周期,从需求分析到软件测试,再到质量保证,从而具备独立进行软件项目开发的能力。