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

需积分: 37 19 下载量 52 浏览量 更新于2024-08-15 收藏 3.61MB PPT 举报
"王立福2011版软件工程自学考试课件,涵盖了软件工程的基础、软件过程、需求分析、开发方法学以及CMM等内容,强调了软件开发的本质是问题域到不同抽象层的概念和计算逻辑的映射。" 在软件工程中,变换设计是一种重要的方法,它涉及到软件开发过程的多个环节。根据提供的描述,变换模块的流程展示了一种数据处理的顺序,从输入获取数据(get a, get b),通过一系列转换(b->d, a->c, c,d->e等),最终得出结果并输出(put z)。这个过程体现了软件开发中的数据抽象和过程抽象。 一、软件工程基础 软件工程不仅仅是编写代码,而是包括了软件开发的整个生命周期,从需求分析到系统测试。它强调以系统化、规范化的方式进行软件开发,确保软件的质量、可维护性和可靠性。王立福教授指出,理解软件开发的本质和手段是做好软件工程工作的基础。 二、软件过程 软件过程涵盖了软件开发的各个阶段,包括需求获取、系统设计、编码、测试和维护。每个阶段都有其特定的活动和组织方式,这些活动需要按照一定的顺序执行,以确保软件产品的质量。 三、软件需求及系统/产品规约 软件需求是软件开发的起点,定义了软件应满足的功能和非功能特性。系统/产品需求规约是这些需求的正式文档,用于指导开发工作,并作为测试的基准。 四、软件开发方法学 软件开发方法学是实现软件过程的途径,包括结构化方法、面向对象方法、面向数据结构方法等。这些方法提供了不同的思路和工具,帮助开发者将问题域映射到解决方案空间。 1. 结构化方法:以逐步求精和模块化为核心,强调程序的结构清晰和控制流的清晰性。 2. 面向对象方法:以对象为中心,通过封装、继承和多态性来抽象和组织系统。 3. 面向数据结构方法:关注数据结构和算法的结合,适用于数据密集型的问题。 4. 维也纳开发方法(VDM):一种形式化方法,用于规格说明和软件验证。 五、CMM(Capability Maturity Model for software) CMM是一种评估和改进软件开发过程成熟度的框架,它提供了从初始级到优化级的五个等级,旨在提高软件开发的效率和质量。 通过以上分析,我们可以看到软件工程不仅仅是一系列的技术操作,更是一种思维方式,要求开发者能够理解问题域,进行有效的抽象,并通过合适的方法学实现解决方案。在实际工作中,开发者需要灵活运用各种方法和工具,遵循软件工程的最佳实践,确保软件项目能够成功地从需求到交付。