软件工程:捕获实现需求与生存周期过程

需积分: 42 14 下载量 104 浏览量 更新于2024-08-15 收藏 3.53MB PPT 举报
"最后,还要捕获实现需求-软件工程自学考试(全程学习版)" 本文主要探讨了软件工程的关键概念,特别是在自学考试中需要掌握的核心知识点。软件工程是一门科学,旨在有效地进行软件开发和质量评估,强调理解原理并掌握实践方法。北京大学软件工程国家工程研究中心的王立福教授提出了软件生存周期过程的重要性,该过程涵盖了从需求分析到系统确认的全部阶段。 一、软件开发的本质 软件开发的本质是将问题域的概念和逻辑映射到不同的抽象层,包括数据抽象和过程抽象。例如,对象是问题空间概念与模型化概念之间的映射,而处理逻辑则是问题空间逻辑与解空间逻辑之间的转换。这需要通过需求分析来理解和确定,可以采用面向对象方法、结构化方法等不同开发策略。 二、软件过程 软件过程涵盖了开发活动及其组织,它定义了软件生命周期中的各个阶段,如需求获取、系统设计、实现、测试和维护。每个阶段都有明确的任务和交付物,比如需求规格说明书是产品/系统确认(测试)的标准。 三、软件需求及系统/产品需求规约 软件开发始于需求,需求是软件开发的起点。需求分析不仅要关注功能需求,还要捕获非功能需求,例如在上述例子中提到的,Payment Request Processing 类应能处理多个买家请求而不会对任何单个买家造成明显延迟。系统/产品需求规约是测试和验证的基础。 四、软件开发方法学 软件开发方法学包括结构化方法、面向对象方法、面向数据结构方法等,每种方法学提供了不同的实现途径。结构化方法侧重于过程的分解和控制,而面向对象方法则强调对象的封装和继承。开发者需要根据项目特点选择合适的方法。 五、CMM(Capability Maturity Model for software) CMM 是软件过程成熟度模型,旨在提升软件开发过程的能力,确保产出正确的产品或系统。它提供了一套逐步改进的框架,通过评估和改进过程,提高软件质量和效率。 软件工程是一门综合性学科,它要求开发者具备深厚的理论知识,熟练掌握各种工具和技术,并能够有效管理整个软件开发过程。通过自学考试,学生需要全面理解这些核心概念,才能在实践中成功地进行软件开发。