第2章过程( Process) 软件工程的工具层对过程和方法提供了自动 的和半自动的支持。当这些工具被集成起来 使得一个工具的输出信息是另一个工具的输 入信息时,一个支持软件开发的系统就建立 了,称为计算机辅助软件工程(CASE)。 CASE集成了软件、硬件和一个软件工程数据 库(一个仓库包含了关于分析、设计、编程 和测试等的重要信息),从而形成了一个软 件工程
第2章 过程(Process) • 软件工程的工具层对过程和方法提供了自动 的和半自动的支持。当这些工具被集成起来 使得一个工具的输出信息是另一个工具的输 入信息时,一个支持软件开发的系统就建立 了,称为计算机辅助软件工程(CASE)。 CASE集成了软件、硬件和一个软件工程数据 库(一个仓库 包含了关于分析、设计、编程 和测试等的重要信息),从而形成了一个软 件工程
第2章过程( Process) 212软件工程的一般视图( A Generic View of software Engineering 工程是对技术实体的分析、设计、建造、验证和 管理 ·要解决的问题是什么? 要用于解决该问题的实体具有什么特点? 如何实现该实体(解决方案)? 如何建造该实体? 采用什么方法去发现该实体设计和建造过程中产生的 错误? 当该实体的用户要求修改、适应和增强
第2章 过程(Process) 2.1.2 软件工程的一般视图(A Generic View of Software Engineering) 工程是对技术实体的分析、设计、建造、验证和 管理。 • 要解决的问题是什么? • 要用于解决该问题的实体具有什么特点? • 如何实现该实体(解决方案)? • 如何建造该实体? • 采用什么方法去发现该实体设计和建造过程中产生的 错误? • 当该实体的用户要求修改、适应和增强
第2章过程( Process) 般来说,一个软件项目的开发过程主要分 为三个阶段: (1)定义阶段主要集中于“做什么”。主要工 作是,需求分析、软件项目计划和信息工程。 定义系统或软件的关键需求,建立什么样的 软件界面,搞清楚要处理的信息,预期完成 什么样的软件功能。 (2)开发阶段集中于“如何做”。定乂数据如 何结构化,功能如何转换为软件体系结构, 过程细节如何实现,界面如何表示,设计如 何转换为程序代码,测试如何执行
第2章 过程(Process) 一般来说,一个软件项目的开发过程主要分 为三个阶段: (1)定义阶段主要集中于“做什么”。主要工 作是,需求分析、软件项目计划和信息工程。 定义系统或软件的关键需求,建立什么样的 软件界面,搞清楚要处理的信息,预期完成 什么样的软件功能。 (2)开发阶段集中于“如何做”。定义数据如 何结构化,功能如何转换为软件体系结构, 过程细节如何实现,界面如何表示,设计如 何转换为程序代码,测试如何执行
第2章过程( Process) 3)维护阶段集中于“改变”。软件开发过程中出现 的错误需要剔除,由于软件环境的变化而要求的适应 性修改,以及由于用户需求的变化而带来的增强性修 改。维护阶段重复定义和开发阶段的步骤。在维护阶 段可能遇到四类修改: ·纠错:改正已发现的软件错误。 ·适应:适应软件外部环境的变化而修改软件。 增强:为适应用户提出的更好需求而修改软件 预防:更好地提高软件的适应性和增强软件的需求
第2章 过程(Process) (3)维护阶段集中于“改变”。软件开发过程中出现 的错误需要剔除,由于软件环境的变化而要求的适应 性修改,以及由于用户需求的变化而带来的增强性修 改。维护阶段重复定义和开发阶段的步骤。在维护阶 段可能遇到四类修改: • 纠错:改正已发现的软件错误。 • 适应:适应软件外部环境的变化而修改软件。 • 增强:为适应用户提出的更好需求而修改软件。 • 预防:更好地提高软件的适应性和增强软件的需求
第2章过程( Process) 软件工程活动还包括: (1)软件项目追踪和控制; (2)正式的技术复审; (3)软件质量保证; (4)软件配置管理; (5)文档的准备和产生; (6)可复用管理; (7)测试; (8)风险管理
第2章 过程(Process) 软件工程活动还包括: (1)软件项目追踪和控制; (2)正式的技术复审; (3)软件质量保证; (4)软件配置管理; (5)文档的准备和产生; (6)可复用管理; (7)测试; (8)风险管理