第八章软件工程环境与工具

    本文由01小景01贡献

    ppt1。

    21世纪高职高专计算机专业教材 21世纪高职高专计算机专业教材

    软件工程

    主讲教师:宫明明 主讲教师: 13854278403 gongmm@qtc.edu.cn

    1

    现代建筑业中,为了提高生产率、改进建 提高生产率、 现代建筑业中,为了提高生产率 筑质量,会不断发明使用新工具、 筑质量,会不断发明使用新工具、完善建 筑环境。 筑环境。 现代软件产业中也是如此。 现代软件产业中也是如此。    2

    第八章 软件工程环境与工具

    8.1 软件开发工具 8.2 CASE技术 CASE技术 8.3 软件开发环境 8.4 小结 8.5 课外习题

    3

    软件开发工具是指支持软件生存期中某一阶段 软件开发工具是指支持软件生存期中某一阶段(如 是指支持软件生存期中某一阶段( 需求分析、设计、编码、测试或运行维护等) 需求分析、设计、编码、测试或运行维护等)的任 务实现而使用的计算机程序 务实现而使用的计算机程序。 计算机程序。 软件开发环境是一组相关的软件工具的集合, 软件开发环境是一组相关的软件工具的集合, 是一组相关的软件工具的集合 软件系统的开发是一种劳力密集的活动。 软件系统的开发是一种劳力密集的活动。 劳力密集的活动 为了减少或取消软件生产过程中的劳力密集活动, 为了减少或取消软件生产过程中的劳力密集活动, 提高软件生产率和改进软件质量, 提高软件生产率和改进软件质量,需要有一些支 持开发方法的自动化工具和环境 持开发方法的自动化工具和环境。 自动化工具和环境。

    4

    目前, 目前,一些专门用于支持软件开发的工具 陆续问世,近年发展起来的计算机辅助软 陆续问世,近年发展起来的计算机辅助软 件工程( 件工程(Computer Aided Software Engineering 简称CASE)技术正在成为一 简称CASE)技术正在成为一 种最有力的软件开发技术。 种最有力的软件开发技术。 本章介绍软件开发工具、CASE技术和集 本章介绍软件开发工具、CASE技术和集 成化环境。 成化环境。    5

    第八章 软件工程环境与工具

    ※ 知识点

    软件开发工具的基本概念与特点; 软件开发工具的基本概念与特点; 软件开发工具的分类; 软件开发工具的分类; CASE 定义与分类; 定义与分类; 软件开发环境。 软件开发环境。

    6

    第八章 软件工程环境与工具

    ※ 重点 软件开发工具的分类 软件开发工具的分类; 分类; CASE 定义与分类。 定义与分类。 ※ 难点

    软件开发环境

    7

    第八章 软件工程环境与工具

    ※ 要求

    ★ 掌握

    软件开发工具的基本概念与特点 软件开发工具的基本概念与特点; 基本概念与特点; 软件开发工具的分类 软件开发工具的分类; 分类;

    ★ 了解

    CASE 定义与分类; 定义与分类; 软件开发环境。 软件开发环境。

    8

    8.1 软件开发工具

    软件开发工具是指为支持计算机软件及其文档的 开发、维护、模拟、移植或管

理而研制的程序系 开发、维护、模拟、移植或管理而研制的程序系 统, 是一种软件 是一种软件, 软件, 它是辅助和支援其他软件研制和维护的工具, 它是辅助和支援其他软件研制和维护的工具, 其他软件研制和维护的工具 研制软件开发工具的主要目的是为了提高软件生 研制软件开发工具的主要目的是为了提高软件生 主要目的是为了提高软件 产率和改进软件的质量。 产率和改进软件的质量。 和改进软件的质量

    9

    1.软件开发工具的范围 1.软件开发工具的 软件开发工具的范围

    传统工具:文本编辑程序、汇编程序、解释程 传统工具:文本编辑程序、汇编程序、 序和编译程序等; 序和编译程序等; 支持软件生存周期各阶段的需求分析、设计、 支持软件生存周期各阶段的需求分析、设计、 需求分析 编码、测试、维护等工具和管理工具。 编码、测试、维护等工具和管理工具。

    10

    2.软件开发工具提高了工作效率 2.软件开发工具提高了 软件开发工具提高了工作效率 好的软件开发工具应该为软件人员所乐 意使用。 意使用。 有时候并不在于功能如何齐全, 有时候并不在于功能如何齐全, 而在于能减轻开发人员的劳动 而在于能减轻开发人员的劳动,提高效 能减轻开发人员的劳动, 率和质量,方便用户,工作可靠。 率和质量,方便用户,工作可靠。

    11

    软件开发工具的发展极大地推动了软件生产率 软件开发工具的发展极大地推动了软件生产率的提 软件生产率的提 缩短了开发周期。 高.缩短了开发周期。 例如有关多窗口环境的工具、 例如有关多窗口环境的工具、用于软件测试的工具 都给软件生产率的提高带来很大的影响。 等,都给软件生产率的提高带来很大的影响。 软件开发工具提高了软件的可移植性 软件开发工具提高了软件的可移植性和标准化程 可移植性和 便于相互借鉴和推广。 度.便于相互借鉴和推广。 用它可以开发方便的图形用户界面 使用户喜欢、 用它可以开发方便的图形用户界面,使用户喜欢、 图形用户界面, 爱用。 爱用。 用它可以降低学习计算机软件的难度 用它可以降低学习计算机软件的难度,便于更多不 难度, 懂计算机的人员使用计算机。 懂计算机的人员使用计算机。 软件工具是推广应用、开发应用的重要手段。 重要手段。 软件工具是推广应用、开发应用的重要手段

    12

    3.软件开发工具的分类 3.软件开发工具的 软件开发工具的分类 目前,软件开发工具种类繁多,按功能可 目前,软件开发工具种类繁多, 将软件开发工具分为8 将软件开发工具分为8类。 ① 业务系统规划工具。 业务系统规划工具 工具。    通过将企业的策略性信息需求模型化, 通过将企业的策略性信息需求模型化, 模型化 这类工具提供一个可导出特定信息系统 这类工具提供一个可导出特定信息系统的基本 可导出特定信息系统的基本 模型, 模型, 这样可使业务信息运行于企业的各个部门。 这样可使业务信息运行于企业的各个部门。

    13

    ② 项目管理工具。 项目管理工具 工具。

    借助这类工具,项目管理者可以有效地估算软件项目 估算软件项目 借助这类工具,项目管理者可以有效地估算 所需的工作量、成本和研制周期等, 所需的工作量、成本和研制周期等,可以定义一个功 能分解结构WBS,并制定可行的项目开发计划 能分解结构WBS,并制定可行的项目开发计划; 项目开发计划; 基于需求跟踪项目的开发情况; 基于需求跟踪项目的开发情况; 跟踪项目的开发情况 可采集度量数据,以此评价软件开发效率和产品质量。 采集度量数据,以此评价软件开发效率和产品质量。 度量数据 由此可见,这类工具义可详细分为项目计划工具、需 由此可见,这类工具义可详细分为项目计划工具、 求跟踪工具及度量和管理工具等。 求跟踪工具及度量和管理工具等。

    14

    ③ 支持工具 支持工具 这类工具用于支持软件工程过程 这类工具用于支持软件工程过程, 过程, 具体包括文档编制工具、系统软件工具、 具体包括文档编制工具

、系统软件工具、 质量保证工具、数据库管理工具和软件配 质量保证工具、 置管理工具等。 置管理工具等。

    15

    ④ 分析和设计工具 分析和设计工具 这类工具是用于建立待开发系统的模型, 这类工具是用于建立待开发系统的模型, 建立待开发系统的模型 并评价模型的质量, 并评价模型的质量, 通过对模型进行一致性和有效性检查 通过对模型进行一致性和有效性检查,保 检查, 证分析与设计的完整性。 证分析与设计的完整性。 它除包括支持某种开发方法的工具外, 它除包括支持某种开发方法的工具外, 还包括基于规则体系的分析与设计机 还包括基于规则体系的分析与设计机,它 分析与设计机, 可使工具适用于各种分析和设计力法。 可使工具适用于各种分析和设计力法。    16

    ⑤ 编程工具 编程工具 这类工具包括用于支持大多数传统编程语 言的编译器、编辑器和调试器等, 言的编译器、编辑器和调试器等, 从工具输出来看,4GL(Fourth从工具输出来看,4GL(Fourthgeneration language )也属于这一类。 也属于这一类。

    17

    ⑥ 测试与分析工具 测试与分析工具 常用的测试与分析工具包括静态分析工具和动态 常用的测试与分析工具包括静态分析工具和动态 静态分析工具和 测试工具 工具, 测试工具, 前者是在不执行任何测试用例的前提下分析源程 前者是在不执行任何测试用例的前提下分析源程 不执行任何测试用例的前提下 序的内部结构, 序的内部结构, 后者则通过执行测试用例 后者则通过执行测试用例对被测程序进行覆盖测 执行测试用例对被测程序进行覆盖测 支持语句、分支和逻辑路径覆盖, 试,支持语句、分支和逻辑路径覆盖,以发现程 序的结构和逻辑错误。 序的结构和逻辑错误。 多数情况下是两种工具配合使用 多数情况下是两种工具配合使用. 配合使用.    18

    既用静态分析工具提供足够的信息 既用静态分析工具提供足够的信息,又用 信息, 动态测试工具执行测试用例并监视其运行。 动态测试工具执行测试用例并监视其运行。 将两种工具有效地结合起来的是测试管理 将两种工具有效地结合起来的是测试管理 工具, 工具, 它用于控制和协调每一主要测试步骤, 它用于控制和协调每一主要测试步骤,辅 控制和协调每一主要测试步骤 助进行回归测试和测试结果评价。 助进行回归测试和测试结果评价。

    19

    ⑦ 原型工具。 原型工具。 工具 作为除瀑布式开发模式以外的另一主要开发模式的原型开 发模式, 发模式, 因其运用的灵活性和用户需求反应的快捷性越来越受到重 视, 特别是随着软件构件重用研究的深入,更增强了这种开发 特别是随着软件构件重用研究的深入, 模式的实用价值。 模式的实用价值。 但原型的构造离不开经验信息 但原型的构造离不开经验信息, 经验信息, 所以支持原型开发模式的原型工具的发展日趋专用化 所以支持原型开发模式的原型工具的发展日趋专用化, 专用化, 诸如用于用户界面设计的原型工具可利用图形包快速构造 出应用系统的界面,供用户评价, 出应用系统的界面,供用户评价,以确定最终产品的界面 形式。 形式。    20

    ⑧ 维护工具。 维护工具 工具。 用于协助维护活动的完成, 用于协助维护活动的完成, 维护活动的完成 包括当运行发现问题时, 包括当运行发现问题时,定位到相应的软 件开发基线 件开发基线; 基线; 软件配置不完备时由源程序到分析与设计 模型的逆转换工具 模型的逆转换工具等。 逆转换工具等

    21

    综上所述,软件开发工具种类繁多 种类繁多, 综上所述,软件开发工具种类繁多,各类 工具又因支持不同方法和应用的不同领域 而明显具有不容性 而明显具有不容性。 不容性。 这些工具如何协调高效地支持整个软件开 发过程,必须引入完善的集成机制 集成机制, 发过程,必须引入完善的集成机制,来使 多个工具有效地结合而形成功能强大的软 件开发环境。 件开发环境。

    22

    4.软件开发工具的特点 4.软件开发工具的 软件开发工具的特点 用户易于操作,功能强大,覆盖面大, 用户易于操作,功能强大,覆盖面大,可 靠性高,其本身可修改、可扩充等。 靠性高,其本身可修改、可扩充等。

    23

    5.软件开发工具的功能 5.软件开发工具的 软件开发工具的功能 软件开发工具为软件开发提供的支持有以下5 软件开发工具为软件开发提供的支持有以下5个 主要方面。 主要方面。 (1)描述客观系统 在软件开发的前期 在软件开发的前期, 前期, 在明确需求、形成软件功能说明书方面提供支持。 在明确需求、形成软件功能说明书方面提供支持。 在描述客观系统的基础上抽象出信息与信息流程。 在描述客观系统的基础上抽象出信息与信息流程。

    24

    (2)存储和管理开发过程中的信息 在软件开发的各个阶段都要产生及使用许多信息。 在软件开发的各个阶段都要产生及使用许多信息。 各个阶段都要产生及使用许多信息 例如,需求分析阶段要收集大量的客观系统信息,从而 例如,需求分析阶段要收集大量的客观系统信息, 形成系统功能说明书, 形成系统功能说明书, 而这些信息在测试阶段要用来对已编制好的软件进行检 而这些信息在测试阶段要用来对已编制好的软件进行检 测。 在总体设计阶段形成的对各模块要求的信息,要在模块 总体设计阶段形成的对各模块要求的信息,要在模块 阶段形成的对各模块要求的信息 时使用。 测试时使用 测试时使用。 当软件规模较大时,这些信息的一致性是十分重要、十 当软件规模较大时,这些信息的一致性是十分重要、 分困难的问题。 分困难的问题。 若是软件版本更新,则有关的信息管理问题更为突出。 若是软件版本更新,则有关的信息管理问题更为突出。

    25

    (3)代码的编写与生成 编写程序的工作在整个软件开发过程中占了相当比例的 人力、物力和时间, 人力、物力和时间, 提高编制代码的速度与效率显然是改进软件开发工作的 一个重要方面。 一个重要方面。 这样的改进主要从代码自动生成 软件模块重用两方面 这样的改进主要从代码自动生成和软件模块重用两方面 代码自动生成和 去考虑。 去考虑。 许多软件开发工具都在一定程度上实现自动生成代码。 许多软件开发工具都在一定程度上实现自动生成代码。 而软件重用,要从软件开发的方法、标准进行的改进, 而软件重用,要从软件开发的方法、标准进行的改进, 来形成不同范围的软件重用库。 来形成不同范围的软件重用库。

    26

    (4)文档的编制或生成 软件开发中文档编写工作费时费力, 软件开发中文档编写工作费时费力,且很 难保持一致。 难保持一致。 已有不少软件开发工具提供了这方面的支 持。 但要与程序保持一致性是有困难的。 但要与程序保持一致性是有困难的。

    27

    (5)软件工程管理 软件工程项目管理包括进度管理、资源与费用管理 软件工程项目管理包括进度管理、资源与费用管理、 进度管理 管理、 质量管理三个基本内容 管理三个基本内容。 质量管理三个基本内容。 软件质量管理包括测试工作管理和版本管理。 软件质量管理包括测试工作管理和版本管理。 测试工作管理和版本管理 需要根据设计任务书提出测试方案、 需要根据设计任务书提出测试方案、需要测试的条件 与测试数据。 与测试数据。 当软件规模较大时,版本的更新对各模块之间及模块 当软件规模较大时, 与使用说明之间的一致性控制等都是十分复杂的。 与使用说明之间的一致性控制等都是十分复杂的。 软件开发工具若能在这些方面给予支持将有利于软件 开发工作的进行。 开发工作的进行。 以上是人们对软件开发工具所寄予的希望。 以上是人们对软件开发工具所寄予的希望。

    28

    6.软件开发工具的评价 6.软件开发工具的评价 软件工具的评价原则: 软件工具的评价原则: ① 易用性:友好的用户界面,用户乐于使用。 易用性:友好的用户界面,用户乐于使用。 ② 对开发方法的支持:能满足预期的任务和功能需求, 对开

发方法的支持:能满足预期的任务和功能需求, 且能支持完成该任务所遵循的方法学。 且能支持完成该任务所遵循的方法学。 ③ 稳健性:具备自检测机制,即使在故障情况下也不会导 稳健性:具备自检测机制, 致严重后果。 致严重后果。 ④ 性能:能使资源得到充分有效的利用。 性能:能使资源得到充分有效的利用。 ⑤ 工具结构柔性:工具结构是柔软的、可修改的和可扩 工具结构柔性:工具结构是柔软的、 充的。 充的。

    29

    目前,用客观、 目前,用客观、定量的方法来统计软件开发工具 对软件生产的效果还比较困难 对软件生产的效果还比较困难。 比较困难。 一般只采用对若干软件项目在使用或不使用 一般只采用对若干软件项目在使用或不使用工具 使用或不使用工具 时,比较两者的效率的方法。 比较两者的效率的方法。 软件开发工具的广泛使用,也促进了软件理论方 软件开发工具的广泛使用,也促进了软件理论方 法的发展,这是因为人们在大量的软件实践中, 法的发展,这是因为人们在大量的软件实践中, 积累了经验,找出了问题,促进了理论和方法的 积累了经验,找出了问题, 发展。 发展。

    30

    8.2 CASE技术 CASE技术

    CASE是一组工具和方法的集合, CASE是一组工具和方法的集合, 是一组工具和方法的集合 可以辅助软件开发生命周期各阶段进行软件开发, 可以辅助软件开发生命周期各阶段进行软件开发, 软件开发 在软件开发和/或维护过程中提供计算机辅助支持 在软件开发和/或维护过程中提供计算机辅助支持, 计算机辅助支持, 在软件开发和/或维护中引入工程化方法 在软件开发和/或维护中引入工程化方法。 引入工程化方法。 CASE技术有 CASE技术有两类, 技术有两

    一类是支持软件开发过程本身的技术 一类是支持软件开发过程本身的技术, 本身的技术, 另一类是支持软件开发过程管理的技术 另一类是支持软件开发过程管理的技术。 管理的技术。

    31

    一个完整的CASE系统支持全部的软件系统开发 一个完整的CASE系统支持全部的软件系统开发 系统支持全部 工作, 工作, 它可驻留在多种硬件平台上。 它可驻留在多种硬件平台上。 多种硬件平台上 如何在这些硬件平台之间共享信息和工具 如何在这些硬件平台之间共享信息和工具,是使 共享信息和工具, 得CASE技术成为实用和有效的一个主要问题。 CASE技术成为实用和有效的一个主要问题。 技术成为实用和有效的一个主要问题 硬件系统之间的连接性和工具之间的接口 硬件系统之间的连接性和工具之间的接口则是选 连接性和工具之间的接口则是选 择和评价CASE系统时要考虑的一个重要指标。 择和评价CASE系统时要考虑的一个重要指标。 系统时要考虑的一个重要指标

    32

    1. CASE的基本组成部分 CASE的基本组成部分 CASE的实质是为软件人员提供一组能大 CASE的实质是为软件人员提供一组能大 量节省人力的软件开发工具 量节省人力的软件开发工具, 软件开发工具, 实现软件生存期各阶段的自动化 实现软件生存期各阶段的自动化并使其成 自动化并使其成 为一个整体 为一个整体。 整体。 CASE系统可分为 个基本部分, CASE系统可分为3个基本部分, 系统可分为3

    33

    (1) 前端 前端CASE工具提供了支持软件生存周期 前端CASE工具提供了支持软件生存周期 的前端(或前期), 前端(或前期) 即系统分析和设计的功能, 即系统分析和设计的功能, 分析和设计的功能 如绘图、建立原型和检查规格说明等。 如绘图、建立原型和检查规格说明等。

    34

    (2) 后端 后端CASE工具支持软件生存周期的 后端CASE工具支持软件生存周期的后端 工具支持软件生存周期的后端 (或后期), 或后期) 即系统的实现和维护阶段的功能。 即系统的实现和维护阶段的功能。 实现和维护阶段的功能 后端CASE工具自动实现编码、测试、 后端CASE工具自动实现编码、测试、数 工具自动实现编码 据库生

成、系统效果分析等。 据库生成、系统效果分析等。

    35

    (3) 中心信息库 中心信息库把CASE的前端和后端连结起来, 中心信息库把CASE的前端和后端连结起来,对 的前端和后端连结起来 软件生存周期收集到的所有系统信息 所有系统信息进行管理共 软件生存周期收集到的所有系统信息进行管理共 享。 CASE技术是系统开发工具与方法的结合 CASE技术是系统开发工具与方法的结合, 技术是系统开发工具与方法的结合, 着眼于系统分析、设计以及软件实现和维护各个 着眼于系统分析、 环节的自动化,并使之成为一个整体。 环节的自动化,并使之成为一个整体。 CASE是一个完整的环境,包括硬件和软件 CASE是一个完整的环境,包括硬件和软件两部 硬件和软件两部 是一个完整的环境 分。

    36

    2. CASE的软件平台 CASE的软件平台 CASE的软件平台包括图形功能、查错功 CASE的软件平台包括图形功能、查错功 的软件平台包括图形功能 能、中心信息库、建立系统的原型、代码 中心信息库、建立系统的原型 原型、 的自动生成、支持结构化的方法论。 的自动生成、支持结构化的方法论。 的方法论

    37

    (1) 图形功能

    用来定义软件系统的规格说明 用来定义软件系统的规格说明,表示软件系统 规格说明, 的设计方案。是软件文档的重要形式。 设计方案。是软件文档的重要形式。 文档的重要形式

    (2) 查错功能

    自动错误检查能帮助开发人员早期 自动错误检查能帮助开发人员早期发现更多的 早期发现更多的 错误。 错误。

    38

    (3) 中心信息库 中心信息库是存储和组织 中心信息库是存储和组织所有与软件系统有关信 存储和组织所有与软件系统有关信 息的机构 息的机构, 机构, 包括系统的规划 分析、设计、实现和 包括系统的规划、分析、设计、实现和计划管理 规划、 等信息。 等信息。 例如,数据信息、图形(数据流图、结构图、数据 例如,数据信息、图形(数据流图、结构图、 模型图、实体关系图) 屏幕与菜单的定义、 模型图、实体关系图)、屏幕与菜单的定义、报告 的模式、处理逻辑、源代码、项目管理形式、 的模式、处理逻辑、源代码、项目管理形式、系 统模块及其相互关系。 统模块及其相互关系。

    39

    中心信息库在逻辑上可以分为项目 系统模型; 中心信息库在逻辑上可以分为项目和系统模型; 逻辑上可以分为项目和 在物理上则分成对应于CASE系统每个硬件平台 物理上则分成对应于 上则分成对应于CASE系统每个 系统每个硬件平台 的若干层; 的若干层; 在工作站级上,用一个局部的中心库支持单个的 工作站级上 用一个局部的中心库支持单个 单个的 开发人员; 开发人员; 在主机层上,用基于主机的中心库保存所有的系 主机层上 用基于主机的中心库保存所有的系 中心库保存所有的 统信息; 统信息; 在部门或项目级上,用一个中型的中心库保存所 部门或项目级上 用一个中型 中心库保存所 中型的 有的项目信息 项目信息。 有的项目信息。    40

    3. CASE的硬件平台 CASE的硬件平台 CASE有 CASE有3种可供选择的硬件平台 (1) 独立的工作站, 为系统开发人员提供一个高度交叉,快速响应的专 为系统开发人员提供一个高度交叉,快速响应的专 用工作平台, 工作平台, 在该平台上可执行各种软件生存周期的任务 在该平台上可执行各种软件生存周期的任务, 任务, 尤其是强大的图形功能 尤其是强大的图形功能,使用户可建立系统说明文 图形功能, 档,能快速地建立系统原型, 快速地建立系统原型, 地建立系统原型 是一个完整的分析和设计的工作平台。 是一个完整的分析和设计的工作平台。 完整的分析和设计的工作平台

    41

    (2) 一台主机和若干工作站组成的两层 一台主机和若干工作站组成的 组成的两

层 结构。 结构。 (3) 一台中央主机,中型的部门级或项 一台中央主机,中型的部门级或项 目级的主机 若干工作站的三层结构。 目级的主机和若干工作站的三层结构。 主机和 结构

    42

    CASE的最终目标是通过一组集成的软 CASE的最终目标是通过一组集成的软 的最终目标是通过一组集成 件工具, 件工具, 实现整个软件生存期的自动化 实现整个软件生存期的自动化。 自动化。 目前还没达到这一目标, 目前还没达到这一目标, 没达到这一目标 只能实现局部的功能, 只能实现局部的功能, 局部的功能 因而称为软件开发工具或集成化环境。 因而称为软件开发工具或集成化环境。

    43

    课堂练习(单选题) 课堂练习(单选题) 1.CASE工具的作用是( CASE工具的作用是 工具的作用是( (C)提高软件通用性 )。 )。 (B)提高软件生产率和软件质量 (D)最终用户使用方便 (A)使管理人员便于管理

    2.支持计算机软件的开发、维护、模拟、移植或管理而研制的程序 支持计算机软件的开发、维护、模拟、 系统称为( )。 系统称为( )。 (A)软件工具 (C)软件过程 (B)软件环境 (D)软件模型

    3.支持计算机软件的开发、维护、模拟、移植或管理而研制的程序 支持计算机软件的开发、维护、模拟、 系统称为( )。 系统称为( )。 (A)软件工程 (C)软件工具 (B)项目管理工具 (D)需求分析工具

    44

    8.3 软件开发环境

    软件开发环境( 软件开发环境(Software Development Environment,SDE) Environment,SDE)是一组相关的软件工具的 集合, 集合, 将它们组织在一起,支持某种软件开发方法, 软件开发方法, 将它们组织在一起,支持某种软件开发方法 是支持软件系统/产品开发的软件系统 是支持软件系统/产品开发的软件系统。 软件系统。 软件开发环境又称之为集成式项目支持环境 软件开发环境又称之为集成式项目支持环境 (Integrated Project Support Environment, Environment, IPSE) IPSE)。

    45

    IPSE由环境数据库、 成化的工具集、 IPSE由环境数据库、集成化的工具集、统一的界 面(包括用户界面和工具与系统之间的界面)、 包括用户界面和工具与系统之间的界面)、 以及基本环境语言等组成。 以及基本环境语言等组成。 基本环境语言等组成 图8.1显示了IPSE的典型结构, 8.1显示了 显示了IPSE的典型结构 的典型结构, 由图可见,IPSE是一种多级的层次结构 是一种多级的层次结构, 由图可见,IPSE是一种多级的层次结构, 一般应包括宿主 一般应包括宿主层、核心层、基本层、应用层等 宿主层 核心层 基本层 应用层等 至少四个层次。 至少四个层次。    46

    47

    (1) 软件开发环境的特性 软件开发环境的具体组成可能千姿百态,但都包 软件开发环境的具体组成可能千姿百态, 含交互系统、工具集和环境数据库,并具备下列 交互系统、工具集和环境数据库, 特性: 特性: ① 可用性:用户友好性、易学、对项目工作人员 可用性:用户友好性、易学、 的实际支持等。 的实际支持等。 ② 自动化程度:在软件开发过程小,对用户所进 自动化程度:在软件开发过程小, 行的频繁的、 行的频繁的、耗时的或困难的活动提供自动化的 程度 。

    48

    ③ 公共性:公共性是指覆盖各种类型用户(如程 公共性:公共性是指覆盖各种类型用户 类型用户( 序员、设计人员、项目经理和质量保证工作人员 序员、设计人员、 等)的程度。或者指覆盖软件开发过程中的各种活 的程度。或者指覆盖软件开发过程中的各种活 动(如体系结构设计、程序设计、测试和维护等) 如体系结构设计、程序设计、测试和维护等) 的程度。 的程度。 ④ 集成化程度:集成化程度是指用户接口一致性 集成化程度:集成化程度是指用户接口一致性 和信息共享的程度。 信息共享的程度 的程度。

    49

    ⑤ 适应性:适应性是指环境被定制、剪裁 适应性:适应性是指环境被定制 定制、 符合用户要求的程度。 或扩展时符合用户要求的程度 或扩展时符合用户要求的程度。

    对定制而言,是指环境符合项目的特性、过程 定制而言 是指环境符合项目的特性、 而言, 环境符合项目的特性 或各个用户的爱好等的程度。 或各个用户的爱好等的程度。 对剪裁而言,是指提供有效能力的程度。 剪裁而言 是指提供有效能力的程度。 而言, 有效能力的程度 对扩展而言,是指适合改变后的需求的程度。 扩展而言 是指适合改变后的需求的程度。 而言, 需求的程度

    50

    ⑥ 价值:得益和成本的比率。 价值:得益和成本的比率 的比率。

    得益是指生产率的增长,产品质量的提高、目 得益是指生产率的增长,产品质量的提高、 标应用开发时间/成本的降低等。 标应用开发时间/成本的降低等。 成本是指投资、开发所需的时间, 成本是指投资、开发所需的时间,培训使用人 员到一定水平所需要的时间等。 员到一定水平所需要的时间等。

    51

    (2) 软件开发环境的结构 一般说来,软件开发环境都具有层次式的结构,可分为4 一般说来,软件开发环境都具有层次式的结构,可分为4 层: ① 宿主层:基本宿主硬件+基本宿主软件。 宿主层 基本宿主硬件 基本宿主软件 硬件+ 软件。 ② 核心层:工具组+环境数据库+会话系统。 核心层 工具组+环境数据库+会话系统。 ③ 基本层:一般包括最少限度的一组工具,如编译工具、 基本层 一般包括最少限度的一组工具,如编译工具、 最少限度的一组工具 编连接程序和装配程序等。这些工具都是由核心层来支 核心层来支 编连接程序和装配程序等。这些工具都是由核心层 援的。 援的。 ④ 应用层:以特定的基本层为基础,但可包括一些补充 应用层 以特定的基本层为基础, 工具,借以更好地支援各种应用软件的研制 应用软件的研制。 工具,借以更好地支援各种应用软件的研制。

    52

    (3) 软件开发工具与环境的关系 任何软件的开发工作都是处于某种环境中, 任何软件的开发工作都是处于某种环境中,软件开发环 境的主要组成成分是软件工具 境的主要组成成分是软件工具。 主要组成成分是软件工具。 为了提高软件本身的质量和软件开发的生产率, 为了提高软件本身的质量和软件开发的生产率,人们开 发了不少工具为软件开发服务 为软件开发服务。 发了不少工具为软件开发服务。 例如,最基本的文本编辑程序、编译程序、 例如,最基本的文本编辑程序、编译程序、调试程序和 连接程序; 连接程序; 进一步还有数据流分析程序、测试覆盖分析程序和配置 进一步还有数据流分析程序、 管理系统等自动化工具。 管理系统等自动化工具。

    53

    面对众多的工具,开发人员会感到眼花缭 面对众多的工具, 难于熟练地使用它们 它们。 乱,难于熟练地使用它们。 针对这种情况,从用户的角度考虑,不仅 针对这种情况, 用户的角度考虑, 考虑 需要有众多的工具来辅助软件的开发, 需要有众多的工具来辅助软件的开发,还 希望它们能有一个统一的界面,以便于掌 希望它们能有一个统一的界面, 握和使用。 握和使用。

    54

    另外, 提高工具之间信息传递的角度来 另外,从提高工具之间信息传递的角度来 考虑,希望对共享的信息能有一个统一的 考虑, 内部结构,并且存放在一个信息库中,以 内部结构,并且存放在一个信息库中, 便于各个工具去存取。 便于各个工具去存取。 因此,软件开发环境的基本组成有3个部分: 因此,软件开发环境的基本组成有3个部分: 交互系统、工具集和环境数据库。 交互系统、工具集和环境数据库。

    55

    软件工具在软件开发环境中已不是 软件工具在软件开发环境中已不是各自封 不是各自封 相分离的了, 闭相分离的了, 的了 而是以综合 而是以综合、一致和整体

连贯的形态来支 综合、 持软件的开发, 持软件的开发, 它们是与某种软件开发方法或者与某种软 件加上模式相适应的。 件加上模式相适应的。 模式相适应的    56

    (4) 软件开发环境的分类 目前世界上已有近百个 目前世界上已有近百个大小不同的程序设 近百个大小不同的程序设 计环境系统在使用, 计环境系统在使用, 这些环境系统相互之间的差别很大 这些环境系统相互之间的差别很大。 差别很大。 根据各种软件环境的特点,软件开发环境 根据各种软件环境的特点, 的类型有如下几种。 的类型有如下几种。

    57

    ① 按研制目标分类:针对各个不同应用领域的程 研制目标分类 分类: 序设计环境,如开发环境、项目管理环境、 序设计环境,如开发环境、项目管理环境、质量 保证环境和维护环境等。 保证环境和维护环境等。 ② 按环境结构来分类:基于语言的环境,基于操 环境结构来分类 基于语言的环境,基于操 来分类: 语言的环境 作系统的环境和基于方法论的环境。 作系统的环境和基于方法论的环境。 环境和基于方法论的环境 ③ 按工作模式分类:交互式软件环境,批处理软 工作模式分类 交互式软件环境 批处理软 分类: 软件环境, 件开发环境和个人分布式的环境等。 件开发环境和个人分布式的环境等。 个人分布式的环境等

    58

    8.4 小结

    在现代的软件开发中, 在现代的软件开发中 , 良好的软件支持环 境 , 已成为提高软件开发效率和软件质量 的重要条件。 的重要条件。 本章主要介绍了软件开发工具和环境的概 特点和分类, 念 、 特点和分类 , 也对计算机辅助软件工 程(CASE)做了概括性的介绍。 做了概括性的介绍。 做了概括性的介绍

    59

    8.5 课外习题

    1. CASE的含义是什么? CASE的含义是什么? 的含义是什么 2. 软件开发工具的主要功能是什么? 软件开发工具的主要功能是什么? 3. 说明软件开发工具的分类。 说明软件开发工具的分类。 4. 简述CASE的基本组成部分。 简述CASE的基本组成部分。 的基本组成部分 5. 集成化项目支持环境IPSE的主要特征是什么? 集成化项目支持环境IPSE的主要特征是什么? 的主要特征是什么 6. 说明软件开发环境的分类。 说明软件开发环境的分类。

    60

    本文由01小景01贡献

    ppt1。

    21世纪高职高专计算机专业教材 21世纪高职高专计算机专业教材

    软件工程

    主讲教师:宫明明 主讲教师: 13854278403 gongmm@qtc.edu.cn

    1

    现代建筑业中,为了提高生产率、改进建 提高生产率、 现代建筑业中,为了提高生产率 筑质量,会不断发明使用新工具、 筑质量,会不断发明使用新工具、完善建 筑环境。 筑环境。 现代软件产业中也是如此。 现代软件产业中也是如此。    2

    第八章 软件工程环境与工具

    8.1 软件开发工具 8.2 CASE技术 CASE技术 8.3 软件开发环境 8.4 小结 8.5 课外习题

    3

    软件开发工具是指支持软件生存期中某一阶段 软件开发工具是指支持软件生存期中某一阶段(如 是指支持软件生存期中某一阶段( 需求分析、设计、编码、测试或运行维护等) 需求分析、设计、编码、测试或运行维护等)的任 务实现而使用的计算机程序 务实现而使用的计算机程序。 计算机程序。 软件开发环境是一组相关的软件工具的集合, 软件开发环境是一组相关的软件工具的集合, 是一组相关的软件工具的集合 软件系统的开发是一种劳力密集的活动。 软件系统的开发是一种劳力密集的活动。 劳力密集的活动 为了减少或取消软件生产过程中的劳力密集活动, 为了减少或取消软件生产过程中的劳力密集活动, 提高软件生产率和改进软件质量, 提高软件生产率和改进软件质量,需要有一些支 持开发方法的自动化工具和环境 持开发方法的自动化工具和环境。 自动化工具和环境。

    4

    目前, 目前,一些专门用于支持软件开发的工具 陆续问世,近年发展起来的计算机辅助软 陆续问世,近年发展起来的计算机辅助软 件工程( 件工程(Computer Aided Software Engineering 简称CASE)技术正在成为一 简称CASE)技术正在成为一 种最有力的软件开发技术。 种最有力的软件开发技术。 本章介绍软件开发工具、CASE技术和集 本章介绍软件开发工具、CASE技术和集 成化环境。 成化环境。    5

    第八章 软件工程环境与工具

    ※ 知识点

    软件开发工具的基本概念与特点; 软件开发工具的基本概念与特点; 软件开发工具的分类; 软件开发工具的分类; CASE 定义与分类; 定义与分类; 软件开发环境。 软件开发环境。

    6

    第八章 软件工程环境与工具

    ※ 重点 软件开发工具的分类 软件开发工具的分类; 分类; CASE 定义与分类。 定义与分类。 ※ 难点

    软件开发环境

    7

    第八章 软件工程环境与工具

    ※ 要求

    ★ 掌握

    软件开发工具的基本概念与特点 软件开发工具的基本概念与特点; 基本概念与特点; 软件开发工具的分类 软件开发工具的分类; 分类;

    ★ 了解

    CASE 定义与分类; 定义与分类; 软件开发环境。 软件开发环境。

    8

    8.1 软件开发工具

    软件开发工具是指为支持计算机软件及其文档的 开发、维护、模拟、移植或管

理而研制的程序系 开发、维护、模拟、移植或管理而研制的程序系 统, 是一种软件 是一种软件, 软件, 它是辅助和支援其他软件研制和维护的工具, 它是辅助和支援其他软件研制和维护的工具, 其他软件研制和维护的工具 研制软件开发工具的主要目的是为了提高软件生 研制软件开发工具的主要目的是为了提高软件生 主要目的是为了提高软件 产率和改进软件的质量。 产率和改进软件的质量。 和改进软件的质量

    9

    1.软件开发工具的范围 1.软件开发工具的 软件开发工具的范围

    传统工具:文本编辑程序、汇编程序、解释程 传统工具:文本编辑程序、汇编程序、 序和编译程序等; 序和编译程序等; 支持软件生存周期各阶段的需求分析、设计、 支持软件生存周期各阶段的需求分析、设计、 需求分析 编码、测试、维护等工具和管理工具。 编码、测试、维护等工具和管理工具。

    10

    2.软件开发工具提高了工作效率 2.软件开发工具提高了 软件开发工具提高了工作效率 好的软件开发工具应该为软件人员所乐 意使用。 意使用。 有时候并不在于功能如何齐全, 有时候并不在于功能如何齐全, 而在于能减轻开发人员的劳动 而在于能减轻开发人员的劳动,提高效 能减轻开发人员的劳动, 率和质量,方便用户,工作可靠。 率和质量,方便用户,工作可靠。

    11

    软件开发工具的发展极大地推动了软件生产率 软件开发工具的发展极大地推动了软件生产率的提 软件生产率的提 缩短了开发周期。 高.缩短了开发周期。 例如有关多窗口环境的工具、 例如有关多窗口环境的工具、用于软件测试的工具 都给软件生产率的提高带来很大的影响。 等,都给软件生产率的提高带来很大的影响。 软件开发工具提高了软件的可移植性 软件开发工具提高了软件的可移植性和标准化程 可移植性和 便于相互借鉴和推广。 度.便于相互借鉴和推广。 用它可以开发方便的图形用户界面 使用户喜欢、 用它可以开发方便的图形用户界面,使用户喜欢、 图形用户界面, 爱用。 爱用。 用它可以降低学习计算机软件的难度 用它可以降低学习计算机软件的难度,便于更多不 难度, 懂计算机的人员使用计算机。 懂计算机的人员使用计算机。 软件工具是推广应用、开发应用的重要手段。 重要手段。 软件工具是推广应用、开发应用的重要手段

    12

    3.软件开发工具的分类 3.软件开发工具的 软件开发工具的分类 目前,软件开发工具种类繁多,按功能可 目前,软件开发工具种类繁多, 将软件开发工具分为8 将软件开发工具分为8类。 ① 业务系统规划工具。 业务系统规划工具 工具。    通过将企业的策略性信息需求模型化, 通过将企业的策略性信息需求模型化, 模型化 这类工具提供一个可导出特定信息系统 这类工具提供一个可导出特定信息系统的基本 可导出特定信息系统的基本 模型, 模型, 这样可使业务信息运行于企业的各个部门。 这样可使业务信息运行于企业的各个部门。

    13

    ② 项目管理工具。 项目管理工具 工具。

    借助这类工具,项目管理者可以有效地估算软件项目 估算软件项目 借助这类工具,项目管理者可以有效地估算 所需的工作量、成本和研制周期等, 所需的工作量、成本和研制周期等,可以定义一个功 能分解结构WBS,并制定可行的项目开发计划 能分解结构WBS,并制定可行的项目开发计划; 项目开发计划; 基于需求跟踪项目的开发情况; 基于需求跟踪项目的开发情况; 跟踪项目的开发情况 可采集度量数据,以此评价软件开发效率和产品质量。 采集度量数据,以此评价软件开发效率和产品质量。 度量数据 由此可见,这类工具义可详细分为项目计划工具、需 由此可见,这类工具义可详细分为项目计划工具、 求跟踪工具及度量和管理工具等。 求跟踪工具及度量和管理工具等。

    14

    ③ 支持工具 支持工具 这类工具用于支持软件工程过程 这类工具用于支持软件工程过程, 过程, 具体包括文档编制工具、系统软件工具、 具体包括文档编制工具

、系统软件工具、 质量保证工具、数据库管理工具和软件配 质量保证工具、 置管理工具等。 置管理工具等。

    15

    ④ 分析和设计工具 分析和设计工具 这类工具是用于建立待开发系统的模型, 这类工具是用于建立待开发系统的模型, 建立待开发系统的模型 并评价模型的质量, 并评价模型的质量, 通过对模型进行一致性和有效性检查 通过对模型进行一致性和有效性检查,保 检查, 证分析与设计的完整性。 证分析与设计的完整性。 它除包括支持某种开发方法的工具外, 它除包括支持某种开发方法的工具外, 还包括基于规则体系的分析与设计机 还包括基于规则体系的分析与设计机,它 分析与设计机, 可使工具适用于各种分析和设计力法。 可使工具适用于各种分析和设计力法。    16

    ⑤ 编程工具 编程工具 这类工具包括用于支持大多数传统编程语 言的编译器、编辑器和调试器等, 言的编译器、编辑器和调试器等, 从工具输出来看,4GL(Fourth从工具输出来看,4GL(Fourthgeneration language )也属于这一类。 也属于这一类。

    17

    ⑥ 测试与分析工具 测试与分析工具 常用的测试与分析工具包括静态分析工具和动态 常用的测试与分析工具包括静态分析工具和动态 静态分析工具和 测试工具 工具, 测试工具, 前者是在不执行任何测试用例的前提下分析源程 前者是在不执行任何测试用例的前提下分析源程 不执行任何测试用例的前提下 序的内部结构, 序的内部结构, 后者则通过执行测试用例 后者则通过执行测试用例对被测程序进行覆盖测 执行测试用例对被测程序进行覆盖测 支持语句、分支和逻辑路径覆盖, 试,支持语句、分支和逻辑路径覆盖,以发现程 序的结构和逻辑错误。 序的结构和逻辑错误。 多数情况下是两种工具配合使用 多数情况下是两种工具配合使用. 配合使用.    18

    既用静态分析工具提供足够的信息 既用静态分析工具提供足够的信息,又用 信息, 动态测试工具执行测试用例并监视其运行。 动态测试工具执行测试用例并监视其运行。 将两种工具有效地结合起来的是测试管理 将两种工具有效地结合起来的是测试管理 工具, 工具, 它用于控制和协调每一主要测试步骤, 它用于控制和协调每一主要测试步骤,辅 控制和协调每一主要测试步骤 助进行回归测试和测试结果评价。 助进行回归测试和测试结果评价。

    19

    ⑦ 原型工具。 原型工具。 工具 作为除瀑布式开发模式以外的另一主要开发模式的原型开 发模式, 发模式, 因其运用的灵活性和用户需求反应的快捷性越来越受到重 视, 特别是随着软件构件重用研究的深入,更增强了这种开发 特别是随着软件构件重用研究的深入, 模式的实用价值。 模式的实用价值。 但原型的构造离不开经验信息 但原型的构造离不开经验信息, 经验信息, 所以支持原型开发模式的原型工具的发展日趋专用化 所以支持原型开发模式的原型工具的发展日趋专用化, 专用化, 诸如用于用户界面设计的原型工具可利用图形包快速构造 出应用系统的界面,供用户评价, 出应用系统的界面,供用户评价,以确定最终产品的界面 形式。 形式。    20

    ⑧ 维护工具。 维护工具 工具。 用于协助维护活动的完成, 用于协助维护活动的完成, 维护活动的完成 包括当运行发现问题时, 包括当运行发现问题时,定位到相应的软 件开发基线 件开发基线; 基线; 软件配置不完备时由源程序到分析与设计 模型的逆转换工具 模型的逆转换工具等。 逆转换工具等

    21

    综上所述,软件开发工具种类繁多 种类繁多, 综上所述,软件开发工具种类繁多,各类 工具又因支持不同方法和应用的不同领域 而明显具有不容性 而明显具有不容性。 不容性。 这些工具如何协调高效地支持整个软件开 发过程,必须引入完善的集成机制 集成机制, 发过程,必须引入完善的集成机制,来使 多个工具有效地结合而形成功能强大的软 件开发环境。 件开发环境。

    22

    4.软件开发工具的特点 4.软件开发工具的 软件开发工具的特点 用户易于操作,功能强大,覆盖面大, 用户易于操作,功能强大,覆盖面大,可 靠性高,其本身可修改、可扩充等。 靠性高,其本身可修改、可扩充等。

    23

    5.软件开发工具的功能 5.软件开发工具的 软件开发工具的功能 软件开发工具为软件开发提供的支持有以下5 软件开发工具为软件开发提供的支持有以下5个 主要方面。 主要方面。 (1)描述客观系统 在软件开发的前期 在软件开发的前期, 前期, 在明确需求、形成软件功能说明书方面提供支持。 在明确需求、形成软件功能说明书方面提供支持。 在描述客观系统的基础上抽象出信息与信息流程。 在描述客观系统的基础上抽象出信息与信息流程。

    24

    (2)存储和管理开发过程中的信息 在软件开发的各个阶段都要产生及使用许多信息。 在软件开发的各个阶段都要产生及使用许多信息。 各个阶段都要产生及使用许多信息 例如,需求分析阶段要收集大量的客观系统信息,从而 例如,需求分析阶段要收集大量的客观系统信息, 形成系统功能说明书, 形成系统功能说明书, 而这些信息在测试阶段要用来对已编制好的软件进行检 而这些信息在测试阶段要用来对已编制好的软件进行检 测。 在总体设计阶段形成的对各模块要求的信息,要在模块 总体设计阶段形成的对各模块要求的信息,要在模块 阶段形成的对各模块要求的信息 时使用。 测试时使用 测试时使用。 当软件规模较大时,这些信息的一致性是十分重要、十 当软件规模较大时,这些信息的一致性是十分重要、 分困难的问题。 分困难的问题。 若是软件版本更新,则有关的信息管理问题更为突出。 若是软件版本更新,则有关的信息管理问题更为突出。

    25

    (3)代码的编写与生成 编写程序的工作在整个软件开发过程中占了相当比例的 人力、物力和时间, 人力、物力和时间, 提高编制代码的速度与效率显然是改进软件开发工作的 一个重要方面。 一个重要方面。 这样的改进主要从代码自动生成 软件模块重用两方面 这样的改进主要从代码自动生成和软件模块重用两方面 代码自动生成和 去考虑。 去考虑。 许多软件开发工具都在一定程度上实现自动生成代码。 许多软件开发工具都在一定程度上实现自动生成代码。 而软件重用,要从软件开发的方法、标准进行的改进, 而软件重用,要从软件开发的方法、标准进行的改进, 来形成不同范围的软件重用库。 来形成不同范围的软件重用库。

    26

    (4)文档的编制或生成 软件开发中文档编写工作费时费力, 软件开发中文档编写工作费时费力,且很 难保持一致。 难保持一致。 已有不少软件开发工具提供了这方面的支 持。 但要与程序保持一致性是有困难的。 但要与程序保持一致性是有困难的。

    27

    (5)软件工程管理 软件工程项目管理包括进度管理、资源与费用管理 软件工程项目管理包括进度管理、资源与费用管理、 进度管理 管理、 质量管理三个基本内容 管理三个基本内容。 质量管理三个基本内容。 软件质量管理包括测试工作管理和版本管理。 软件质量管理包括测试工作管理和版本管理。 测试工作管理和版本管理 需要根据设计任务书提出测试方案、 需要根据设计任务书提出测试方案、需要测试的条件 与测试数据。 与测试数据。 当软件规模较大时,版本的更新对各模块之间及模块 当软件规模较大时, 与使用说明之间的一致性控制等都是十分复杂的。 与使用说明之间的一致性控制等都是十分复杂的。 软件开发工具若能在这些方面给予支持将有利于软件 开发工作的进行。 开发工作的进行。 以上是人们对软件开发工具所寄予的希望。 以上是人们对软件开发工具所寄予的希望。

    28

    6.软件开发工具的评价 6.软件开发工具的评价 软件工具的评价原则: 软件工具的评价原则: ① 易用性:友好的用户界面,用户乐于使用。 易用性:友好的用户界面,用户乐于使用。 ② 对开发方法的支持:能满足预期的任务和功能需求, 对开

发方法的支持:能满足预期的任务和功能需求, 且能支持完成该任务所遵循的方法学。 且能支持完成该任务所遵循的方法学。 ③ 稳健性:具备自检测机制,即使在故障情况下也不会导 稳健性:具备自检测机制, 致严重后果。 致严重后果。 ④ 性能:能使资源得到充分有效的利用。 性能:能使资源得到充分有效的利用。 ⑤ 工具结构柔性:工具结构是柔软的、可修改的和可扩 工具结构柔性:工具结构是柔软的、 充的。 充的。

    29

    目前,用客观、 目前,用客观、定量的方法来统计软件开发工具 对软件生产的效果还比较困难 对软件生产的效果还比较困难。 比较困难。 一般只采用对若干软件项目在使用或不使用 一般只采用对若干软件项目在使用或不使用工具 使用或不使用工具 时,比较两者的效率的方法。 比较两者的效率的方法。 软件开发工具的广泛使用,也促进了软件理论方 软件开发工具的广泛使用,也促进了软件理论方 法的发展,这是因为人们在大量的软件实践中, 法的发展,这是因为人们在大量的软件实践中, 积累了经验,找出了问题,促进了理论和方法的 积累了经验,找出了问题, 发展。 发展。

    30

    8.2 CASE技术 CASE技术

    CASE是一组工具和方法的集合, CASE是一组工具和方法的集合, 是一组工具和方法的集合 可以辅助软件开发生命周期各阶段进行软件开发, 可以辅助软件开发生命周期各阶段进行软件开发, 软件开发 在软件开发和/或维护过程中提供计算机辅助支持 在软件开发和/或维护过程中提供计算机辅助支持, 计算机辅助支持, 在软件开发和/或维护中引入工程化方法 在软件开发和/或维护中引入工程化方法。 引入工程化方法。 CASE技术有 CASE技术有两类, 技术有两

    一类是支持软件开发过程本身的技术 一类是支持软件开发过程本身的技术, 本身的技术, 另一类是支持软件开发过程管理的技术 另一类是支持软件开发过程管理的技术。 管理的技术。

    31

    一个完整的CASE系统支持全部的软件系统开发 一个完整的CASE系统支持全部的软件系统开发 系统支持全部 工作, 工作, 它可驻留在多种硬件平台上。 它可驻留在多种硬件平台上。 多种硬件平台上 如何在这些硬件平台之间共享信息和工具 如何在这些硬件平台之间共享信息和工具,是使 共享信息和工具, 得CASE技术成为实用和有效的一个主要问题。 CASE技术成为实用和有效的一个主要问题。 技术成为实用和有效的一个主要问题 硬件系统之间的连接性和工具之间的接口 硬件系统之间的连接性和工具之间的接口则是选 连接性和工具之间的接口则是选 择和评价CASE系统时要考虑的一个重要指标。 择和评价CASE系统时要考虑的一个重要指标。 系统时要考虑的一个重要指标

    32

    1. CASE的基本组成部分 CASE的基本组成部分 CASE的实质是为软件人员提供一组能大 CASE的实质是为软件人员提供一组能大 量节省人力的软件开发工具 量节省人力的软件开发工具, 软件开发工具, 实现软件生存期各阶段的自动化 实现软件生存期各阶段的自动化并使其成 自动化并使其成 为一个整体 为一个整体。 整体。 CASE系统可分为 个基本部分, CASE系统可分为3个基本部分, 系统可分为3

    33

    (1) 前端 前端CASE工具提供了支持软件生存周期 前端CASE工具提供了支持软件生存周期 的前端(或前期), 前端(或前期) 即系统分析和设计的功能, 即系统分析和设计的功能, 分析和设计的功能 如绘图、建立原型和检查规格说明等。 如绘图、建立原型和检查规格说明等。

    34

    (2) 后端 后端CASE工具支持软件生存周期的 后端CASE工具支持软件生存周期的后端 工具支持软件生存周期的后端 (或后期), 或后期) 即系统的实现和维护阶段的功能。 即系统的实现和维护阶段的功能。 实现和维护阶段的功能 后端CASE工具自动实现编码、测试、 后端CASE工具自动实现编码、测试、数 工具自动实现编码 据库生

成、系统效果分析等。 据库生成、系统效果分析等。

    35

    (3) 中心信息库 中心信息库把CASE的前端和后端连结起来, 中心信息库把CASE的前端和后端连结起来,对 的前端和后端连结起来 软件生存周期收集到的所有系统信息 所有系统信息进行管理共 软件生存周期收集到的所有系统信息进行管理共 享。 CASE技术是系统开发工具与方法的结合 CASE技术是系统开发工具与方法的结合, 技术是系统开发工具与方法的结合, 着眼于系统分析、设计以及软件实现和维护各个 着眼于系统分析、 环节的自动化,并使之成为一个整体。 环节的自动化,并使之成为一个整体。 CASE是一个完整的环境,包括硬件和软件 CASE是一个完整的环境,包括硬件和软件两部 硬件和软件两部 是一个完整的环境 分。

    36

    2. CASE的软件平台 CASE的软件平台 CASE的软件平台包括图形功能、查错功 CASE的软件平台包括图形功能、查错功 的软件平台包括图形功能 能、中心信息库、建立系统的原型、代码 中心信息库、建立系统的原型 原型、 的自动生成、支持结构化的方法论。 的自动生成、支持结构化的方法论。 的方法论

    37

    (1) 图形功能

    用来定义软件系统的规格说明 用来定义软件系统的规格说明,表示软件系统 规格说明, 的设计方案。是软件文档的重要形式。 设计方案。是软件文档的重要形式。 文档的重要形式

    (2) 查错功能

    自动错误检查能帮助开发人员早期 自动错误检查能帮助开发人员早期发现更多的 早期发现更多的 错误。 错误。

    38

    (3) 中心信息库 中心信息库是存储和组织 中心信息库是存储和组织所有与软件系统有关信 存储和组织所有与软件系统有关信 息的机构 息的机构, 机构, 包括系统的规划 分析、设计、实现和 包括系统的规划、分析、设计、实现和计划管理 规划、 等信息。 等信息。 例如,数据信息、图形(数据流图、结构图、数据 例如,数据信息、图形(数据流图、结构图、 模型图、实体关系图) 屏幕与菜单的定义、 模型图、实体关系图)、屏幕与菜单的定义、报告 的模式、处理逻辑、源代码、项目管理形式、 的模式、处理逻辑、源代码、项目管理形式、系 统模块及其相互关系。 统模块及其相互关系。

    39

    中心信息库在逻辑上可以分为项目 系统模型; 中心信息库在逻辑上可以分为项目和系统模型; 逻辑上可以分为项目和 在物理上则分成对应于CASE系统每个硬件平台 物理上则分成对应于 上则分成对应于CASE系统每个 系统每个硬件平台 的若干层; 的若干层; 在工作站级上,用一个局部的中心库支持单个的 工作站级上 用一个局部的中心库支持单个 单个的 开发人员; 开发人员; 在主机层上,用基于主机的中心库保存所有的系 主机层上 用基于主机的中心库保存所有的系 中心库保存所有的 统信息; 统信息; 在部门或项目级上,用一个中型的中心库保存所 部门或项目级上 用一个中型 中心库保存所 中型的 有的项目信息 项目信息。 有的项目信息。    40

    3. CASE的硬件平台 CASE的硬件平台 CASE有 CASE有3种可供选择的硬件平台 (1) 独立的工作站, 为系统开发人员提供一个高度交叉,快速响应的专 为系统开发人员提供一个高度交叉,快速响应的专 用工作平台, 工作平台, 在该平台上可执行各种软件生存周期的任务 在该平台上可执行各种软件生存周期的任务, 任务, 尤其是强大的图形功能 尤其是强大的图形功能,使用户可建立系统说明文 图形功能, 档,能快速地建立系统原型, 快速地建立系统原型, 地建立系统原型 是一个完整的分析和设计的工作平台。 是一个完整的分析和设计的工作平台。 完整的分析和设计的工作平台

    41

    (2) 一台主机和若干工作站组成的两层 一台主机和若干工作站组成的 组成的两

层 结构。 结构。 (3) 一台中央主机,中型的部门级或项 一台中央主机,中型的部门级或项 目级的主机 若干工作站的三层结构。 目级的主机和若干工作站的三层结构。 主机和 结构

    42

    CASE的最终目标是通过一组集成的软 CASE的最终目标是通过一组集成的软 的最终目标是通过一组集成 件工具, 件工具, 实现整个软件生存期的自动化 实现整个软件生存期的自动化。 自动化。 目前还没达到这一目标, 目前还没达到这一目标, 没达到这一目标 只能实现局部的功能, 只能实现局部的功能, 局部的功能 因而称为软件开发工具或集成化环境。 因而称为软件开发工具或集成化环境。

    43

    课堂练习(单选题) 课堂练习(单选题) 1.CASE工具的作用是( CASE工具的作用是 工具的作用是( (C)提高软件通用性 )。 )。 (B)提高软件生产率和软件质量 (D)最终用户使用方便 (A)使管理人员便于管理

    2.支持计算机软件的开发、维护、模拟、移植或管理而研制的程序 支持计算机软件的开发、维护、模拟、 系统称为( )。 系统称为( )。 (A)软件工具 (C)软件过程 (B)软件环境 (D)软件模型

    3.支持计算机软件的开发、维护、模拟、移植或管理而研制的程序 支持计算机软件的开发、维护、模拟、 系统称为( )。 系统称为( )。 (A)软件工程 (C)软件工具 (B)项目管理工具 (D)需求分析工具

    44

    8.3 软件开发环境

    软件开发环境( 软件开发环境(Software Development Environment,SDE) Environment,SDE)是一组相关的软件工具的 集合, 集合, 将它们组织在一起,支持某种软件开发方法, 软件开发方法, 将它们组织在一起,支持某种软件开发方法 是支持软件系统/产品开发的软件系统 是支持软件系统/产品开发的软件系统。 软件系统。 软件开发环境又称之为集成式项目支持环境 软件开发环境又称之为集成式项目支持环境 (Integrated Project Support Environment, Environment, IPSE) IPSE)。

    45

    IPSE由环境数据库、 成化的工具集、 IPSE由环境数据库、集成化的工具集、统一的界 面(包括用户界面和工具与系统之间的界面)、 包括用户界面和工具与系统之间的界面)、 以及基本环境语言等组成。 以及基本环境语言等组成。 基本环境语言等组成 图8.1显示了IPSE的典型结构, 8.1显示了 显示了IPSE的典型结构 的典型结构, 由图可见,IPSE是一种多级的层次结构 是一种多级的层次结构, 由图可见,IPSE是一种多级的层次结构, 一般应包括宿主 一般应包括宿主层、核心层、基本层、应用层等 宿主层 核心层 基本层 应用层等 至少四个层次。 至少四个层次。    46

    47

    (1) 软件开发环境的特性 软件开发环境的具体组成可能千姿百态,但都包 软件开发环境的具体组成可能千姿百态, 含交互系统、工具集和环境数据库,并具备下列 交互系统、工具集和环境数据库, 特性: 特性: ① 可用性:用户友好性、易学、对项目工作人员 可用性:用户友好性、易学、 的实际支持等。 的实际支持等。 ② 自动化程度:在软件开发过程小,对用户所进 自动化程度:在软件开发过程小, 行的频繁的、 行的频繁的、耗时的或困难的活动提供自动化的 程度 。

    48

    ③ 公共性:公共性是指覆盖各种类型用户(如程 公共性:公共性是指覆盖各种类型用户 类型用户( 序员、设计人员、项目经理和质量保证工作人员 序员、设计人员、 等)的程度。或者指覆盖软件开发过程中的各种活 的程度。或者指覆盖软件开发过程中的各种活 动(如体系结构设计、程序设计、测试和维护等) 如体系结构设计、程序设计、测试和维护等) 的程度。 的程度。 ④ 集成化程度:集成化程度是指用户接口一致性 集成化程度:集成化程度是指用户接口一致性 和信息共享的程度。 信息共享的程度 的程度。

    49

    ⑤ 适应性:适应性是指环境被定制、剪裁 适应性:适应性是指环境被定制 定制、 符合用户要求的程度。 或扩展时符合用户要求的程度 或扩展时符合用户要求的程度。

    对定制而言,是指环境符合项目的特性、过程 定制而言 是指环境符合项目的特性、 而言, 环境符合项目的特性 或各个用户的爱好等的程度。 或各个用户的爱好等的程度。 对剪裁而言,是指提供有效能力的程度。 剪裁而言 是指提供有效能力的程度。 而言, 有效能力的程度 对扩展而言,是指适合改变后的需求的程度。 扩展而言 是指适合改变后的需求的程度。 而言, 需求的程度

    50

    ⑥ 价值:得益和成本的比率。 价值:得益和成本的比率 的比率。

    得益是指生产率的增长,产品质量的提高、目 得益是指生产率的增长,产品质量的提高、 标应用开发时间/成本的降低等。 标应用开发时间/成本的降低等。 成本是指投资、开发所需的时间, 成本是指投资、开发所需的时间,培训使用人 员到一定水平所需要的时间等。 员到一定水平所需要的时间等。

    51

    (2) 软件开发环境的结构 一般说来,软件开发环境都具有层次式的结构,可分为4 一般说来,软件开发环境都具有层次式的结构,可分为4 层: ① 宿主层:基本宿主硬件+基本宿主软件。 宿主层 基本宿主硬件 基本宿主软件 硬件+ 软件。 ② 核心层:工具组+环境数据库+会话系统。 核心层 工具组+环境数据库+会话系统。 ③ 基本层:一般包括最少限度的一组工具,如编译工具、 基本层 一般包括最少限度的一组工具,如编译工具、 最少限度的一组工具 编连接程序和装配程序等。这些工具都是由核心层来支 核心层来支 编连接程序和装配程序等。这些工具都是由核心层 援的。 援的。 ④ 应用层:以特定的基本层为基础,但可包括一些补充 应用层 以特定的基本层为基础, 工具,借以更好地支援各种应用软件的研制 应用软件的研制。 工具,借以更好地支援各种应用软件的研制。

    52

    (3) 软件开发工具与环境的关系 任何软件的开发工作都是处于某种环境中, 任何软件的开发工作都是处于某种环境中,软件开发环 境的主要组成成分是软件工具 境的主要组成成分是软件工具。 主要组成成分是软件工具。 为了提高软件本身的质量和软件开发的生产率, 为了提高软件本身的质量和软件开发的生产率,人们开 发了不少工具为软件开发服务 为软件开发服务。 发了不少工具为软件开发服务。 例如,最基本的文本编辑程序、编译程序、 例如,最基本的文本编辑程序、编译程序、调试程序和 连接程序; 连接程序; 进一步还有数据流分析程序、测试覆盖分析程序和配置 进一步还有数据流分析程序、 管理系统等自动化工具。 管理系统等自动化工具。

    53

    面对众多的工具,开发人员会感到眼花缭 面对众多的工具, 难于熟练地使用它们 它们。 乱,难于熟练地使用它们。 针对这种情况,从用户的角度考虑,不仅 针对这种情况, 用户的角度考虑, 考虑 需要有众多的工具来辅助软件的开发, 需要有众多的工具来辅助软件的开发,还 希望它们能有一个统一的界面,以便于掌 希望它们能有一个统一的界面, 握和使用。 握和使用。

    54

    另外, 提高工具之间信息传递的角度来 另外,从提高工具之间信息传递的角度来 考虑,希望对共享的信息能有一个统一的 考虑, 内部结构,并且存放在一个信息库中,以 内部结构,并且存放在一个信息库中, 便于各个工具去存取。 便于各个工具去存取。 因此,软件开发环境的基本组成有3个部分: 因此,软件开发环境的基本组成有3个部分: 交互系统、工具集和环境数据库。 交互系统、工具集和环境数据库。

    55

    软件工具在软件开发环境中已不是 软件工具在软件开发环境中已不是各自封 不是各自封 相分离的了, 闭相分离的了, 的了 而是以综合 而是以综合、一致和整体

连贯的形态来支 综合、 持软件的开发, 持软件的开发, 它们是与某种软件开发方法或者与某种软 件加上模式相适应的。 件加上模式相适应的。 模式相适应的    56

    (4) 软件开发环境的分类 目前世界上已有近百个 目前世界上已有近百个大小不同的程序设 近百个大小不同的程序设 计环境系统在使用, 计环境系统在使用, 这些环境系统相互之间的差别很大 这些环境系统相互之间的差别很大。 差别很大。 根据各种软件环境的特点,软件开发环境 根据各种软件环境的特点, 的类型有如下几种。 的类型有如下几种。

    57

    ① 按研制目标分类:针对各个不同应用领域的程 研制目标分类 分类: 序设计环境,如开发环境、项目管理环境、 序设计环境,如开发环境、项目管理环境、质量 保证环境和维护环境等。 保证环境和维护环境等。 ② 按环境结构来分类:基于语言的环境,基于操 环境结构来分类 基于语言的环境,基于操 来分类: 语言的环境 作系统的环境和基于方法论的环境。 作系统的环境和基于方法论的环境。 环境和基于方法论的环境 ③ 按工作模式分类:交互式软件环境,批处理软 工作模式分类 交互式软件环境 批处理软 分类: 软件环境, 件开发环境和个人分布式的环境等。 件开发环境和个人分布式的环境等。 个人分布式的环境等

    58

    8.4 小结

    在现代的软件开发中, 在现代的软件开发中 , 良好的软件支持环 境 , 已成为提高软件开发效率和软件质量 的重要条件。 的重要条件。 本章主要介绍了软件开发工具和环境的概 特点和分类, 念 、 特点和分类 , 也对计算机辅助软件工 程(CASE)做了概括性的介绍。 做了概括性的介绍。 做了概括性的介绍

    59

    8.5 课外习题

    1. CASE的含义是什么? CASE的含义是什么? 的含义是什么 2. 软件开发工具的主要功能是什么? 软件开发工具的主要功能是什么? 3. 说明软件开发工具的分类。 说明软件开发工具的分类。 4. 简述CASE的基本组成部分。 简述CASE的基本组成部分。 的基本组成部分 5. 集成化项目支持环境IPSE的主要特征是什么? 集成化项目支持环境IPSE的主要特征是什么? 的主要特征是什么 6. 说明软件开发环境的分类。 说明软件开发环境的分类。

    60


    相关文章

    中小企业服务云平台建设项目设计方案

    XX 软件园中小微企业公共服务平台 暨XX 软件园中小企业服务云平台 设计方案 目 录 第1章 项目概述 . ................................................................. ...

    2014年自考软件开发工具资料笔记

    软件开发工具资料笔记 第1章 绪论 1.1 软件开发工具的由来 1.软件产品的(质量)(效率)(价格)已成为各方面关注的十分重要的问题.(多选题) 2.名词解释:软件开发工具 在高级程序设计语言的基础上,为提高软件的质量和效率,从规划.分析 ...

    软件工程导论(第五版)课后习题答案

    <软件工程导论>课后习题答案 第一章 软件工程概论 1.什么是软件危机? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题.这些问题表现在以下几个方面: (1)用户对开发出的软件很难满意. (2)软件产品的质量往 ...

    [××项目数据采集需求说明书]

    版 本 号: 数据采集需求说明书 项目名称: 变更记录 变更审阅 一.引言 1.编写目的 这部分说明文档编写目的,描述本系统特点及使用数据仓库技术实现的业务目标. 2.背景 这部分是项目背景描述. 3.参考资料 这部分列出本文档引用资料的名 ...

    软件开发设计步骤

    软件开发设计步骤 软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程.软件开发是一项包括需求捕捉,需求分析,设计,实现和测试的系统工程.软件一般是用某种程序设计语言来实现的.通常采用软件开发工具可以进行开发.软件分为系统软件和应 ...

    Java软件工程师转正申请书

    第1篇第2篇第3篇第4篇第5篇更多顶部 目录 第一篇:Java软件工程师转正申请书 第二篇:it员工和Java软件工程师转正申请书 第三篇:Java软件工程师介绍 第四篇:Java软件工程师如何学习 第五篇:Java软件工程师 更多相关范文 ...

    绿色建筑软件分类详解

    绿色建筑软件分类介绍 一.IES分析软件的介绍 IES是总部在英国的Integrated Environmental Solutions 公司的缩写,IES 是旗下建筑性能模拟和分析的软件.IES用来在建筑前期对建筑的光照,太阳能,及温度效 ...

    写论文,常用工具简介

    [阅读制作]visual chm-制作chm文件的工具[阅读制作]ssreader 3.8简体中文增强版 3.8[阅读制作]ssreader 3.8简体中文标准版 3.8[制图软件]数学公式编辑器mathtype v5.2[综合工具]not ...

    房建施工投标工具使用手册

    乌鲁木齐房建施工电子投标工具 使用手册 广联达软件股份有限公司 2015-9-1 一.概述 1.本使用手册编写目的 本手册的阅读对象为:投标人. 请各制作人认真阅读,以便能够准确高效的完成标书制作. 系统功能和模块在不同时期可能略有差别,请 ...

    软件工程填空题

    1. 可行性研究从技术可行性.经济可行性.___三方面进行分析.答案:社会可行性 2. .IDEF0方法用来描述系统的功能活动及其联系,建立系统的___模型.答案:功能 3. 结构化方法总的指导思想是___逐层分解.答案:自顶向下 4. 在 ...