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

需积分: 23 15 下载量 103 浏览量 更新于2024-08-15 收藏 3.53MB PPT 举报
"2011 王立福 软件工程 自考" 软件工程是一门复杂的学科,旨在系统性地开发、维护和改进软件。2011年王立福教授的讲解中,他强调了理解软件开发的本质和采用有效的方法学的重要性。软件生存周期过程是软件工程的核心,它涵盖了从需求分析到软件交付的各个阶段。 首先,软件开发的本质在于将问题域中的客观事物系统转化为不同抽象层的概念和计算逻辑。这包括数据抽象,如在需求分析阶段,将现实世界中的对象(如“张山”)映射为模型化概念。这一过程利用面向对象方法,基于数据抽象原理,目的是创建可以计算的客体。 其次,过程抽象也是软件开发的关键,它涉及到将问题空间的处理逻辑转化为解空间的计算逻辑。这通常通过结构化方法实现,基于过程抽象的原理,以构建可执行的计算逻辑。例如,计算学生的平均成绩,就需要将原始数据(如科目、年级和成绩)转换为处理逻辑,并形成可执行的算法。 此外,软件开发还包括用户界面和交互的设计,这可能涉及到交互图的创建。在需求分析和设计阶段,使用面向对象方法来表达用户与系统之间的交互方式,确保软件能够符合用户的需求和期望。 软件过程是软件工程的另一个重要方面,它定义了开发活动及其组织方式。这一过程包括了从初步的需求收集,到软件规格说明,再到开发、测试和维护。软件需求及系统/产品(需求)规约作为开发的起点,是后续所有工作的基础,同时也是测试和验证软件是否满足预期的标尺。 软件开发方法学的选择直接影响开发效率和软件质量。常见的方法有结构化方法、面向对象方法、面向数据结构方法以及维也纳开发方法等。每种方法都有其适用的场景和优势,开发者需要根据项目特性和团队技能来选择合适的方法。 CMM(Capability Maturity Model for software)能力成熟度模型则关注如何确保开发过程的质量和可靠性。通过提升软件开发过程的能力等级,可以降低风险,提高产品的质量和一致性。 软件工程涉及多方面的知识和技能,包括但不限于软件的本质理解、开发过程的管理、需求的捕捉与规约、开发方法的选择以及过程成熟度的提升。掌握这些核心概念和实践,对于成功地进行软件开发至关重要。