第2章过程( Process) ·软件工程是过去十年中人们普遍关注的焦点。软件过 →程与软件工程不完全同义。 2. 1 Software Engineering Layered Technology 软件工程定义 (1)是为了经济地获得可靠的和能在实际机器上高 效运行的软件而建立和使用的好的工程原则。这是 Fritz bauer在NATO会议上给出的定义。 (2)将系统化的、规范的、可度量的方法应用于软 件的开发、运行和维护的过程,即将工程化应用于软 件中,以及对这些方法的研究。这是EEE[EE93给 出的一个综合的定义
第2章 过程(Process) • 软件工程是过去十年中人们普遍关注的焦点。软件过 程与软件工程不完全同义。 2.1 Software Engineering—A Layered Technology 软件工程定义 (1) 是为了经济地获得可靠的和能在实际机器上高 效运行的软件而建立和使用的好的工程原则。 这是 Fritz Bauer在NATO会议上给出的定义。 (2)将系统化的、规范的、可度量的方法应用于软 件的开发、运行和维护的过程,即将工程化应用于软 件中,以及对这些方法的研究。这是IEEE[IEE93]给 出的一个综合的定义
第2章过程( Process) ·2.1.1过程、方法和工具 (Process Methods and Tools 软件工程是一种层次化的技术。支 持软件工程的根基就在于对质量的关注 任何工程方法都必须是以有组织的质量 保证为基础
第2章 过程(Process) • 2.1.1 过程、方法和工具 (Process,Methods,and Tools) 软件工程是一种层次化的技术。支 持软件工程的根基就在于对质量的关注。 任何工程方法都必须是以有组织的质量 保证为基础
第2章过程( Process) 。软件工程层次 软件工程 工具 方法 过程 质量焦点
第2章 过程(Process) • 软件工程层次 软件工程 质量焦点 过程 方法 工具
第2章过程( Process) 软件工程的基层是过程层。过程与技术 结合在一起,使得软件能够被合理地和 及时有效地开发出来。过程定义了一组 关键过程区域的框架,它构成了软件项 目的管理控制基础,规定了技术方法的 采用、工程产品(模型、文档、数据 报告和表格等)的产生、里程碑的建立 质量的保证及变化的适当管理
第2章 过程(Process) • 软件工程的基层是过程层。过程与技术 结合在一起,使得软件能够被合理地和 及时有效地开发出来。过程定义了一组 关键过程区域的框架,它构成了软件项 目的管理控制基础,规定了技术方法的 采用、工程产品(模型、文档、数据、 报告和表格等)的产生、里程碑的建立、 质量的保证及变化的适当管理
第2章过程( Process) 软件工程的方法层提供了开发软件在技 术上需要“如何做”。方法涵盖了一系 列的任务:需求分析、概要设计、详细 设计、编程、测试和维护。软件工程方 法依赖于一组基本原则,这些原则控制 了每一个技术区域,且包含建摸活动和 其它描述技术
第2章 过程(Process) • 软件工程的方法层提供了开发软件在技 术上需要“如何做”。方法涵盖了一系 列的任务:需求分析、概要设计、详细 设计、编程、测试和维护。软件工程方 法依赖于一组基本原则,这些原则控制 了每一个技术区域,且包含建摸活动和 其它描述技术
第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)风险管理