第 十 章 软 件 开 发 工 具 与 环 境 1 计 算 机 辅 助 软 件 工 程 CASE (Computer-Aided Software Engineering) CASE = 软 件 工 程 + 自 动 化 工 具 CASE 是 一 组 工 具 和 方 法 的 集 合 是 辅 助 软 件 开 发 的 任 何 计 算 机 技 术, 其 含 义 为 : 在 软 件 开 发 和 / 或 维 护 中, 提 供 计 算 机 辅 助 支 持 ; 在 软 件 开 发 和 / 或 维 护 中, 引 入 工 程 化 方 法
2 CASE 工 具 狭 义 地 说, 是 一 类 特 殊 的 软 件 工 具, 用 于 辅 助 开 发 分 析 测 试 维 护 另 一 计 算 机 程 序 和 / 或 文 档 广 义 地 说, 是 除 了 OS 之 外 的 所 有 软 件 工 具 的 总 称
1993 年,Alfonso Fuggetta 依 据 CASE 工 具 对 软 件 过 程 的 支 持 范 围, 将 其 分 为 三 类, 如 下 图 所 示 : 支 持 单 个 任 务 支 持 某 一 软 件 过 程 或 一 个 过 程 中 的 某 些 活 动 CASE 工 具 工 具 工 作 台 环 境 支 持 某 些 软 件 过 程 以 及 相 关 的 大 部 分 活 动 编 辑 器 编 译 器 文 件 比 较 器 分 析 和 设 计 编 程 测 试 多 方 法 工 作 台 单 方 法 工 作 台 多 语 言 工 作 台 特 定 语 言 工 作 台 集 成 环 境 以 过 程 为 中 心 的 环 境 3
3 CASE 工 作 台 CASE 工 作 台 是 一 组 工 具, 支 持 像 分 析 设 计 或 测 试 等 特 定 软 件 开 发 阶 段 工 作 台 将 一 组 工 具 组 装 ( 通 过 共 享 文 件 数 据 结 构 和 / 或 数 据 仓 库 等 实 现 集 成 ), 并 使 这 组 工 具 可 以 协 同 工 作 开 放 式 工 作 台 与 封 闭 式 工 作 台 开 放 式 工 作 台 : 提 供 集 成 机 制 公 有 数 据 集 成 标 准 或 协 议
(1) 程 序 设 计 工 作 台 : 将 编 辑 器 编 译 器 和 调 试 器 等 集 成 在 一 个 宿 主 机 上 源 程 序 调 用 语 言 编 译 器 程 序 库 结 构 化 编 辑 器 编 辑 语 法 树 符 号 表 已 编 译 代 码 交 叉 引 用 调 用 按 格 式 打 印 静 态 分 析 器 格 式 化 文 件 列 表 程 序 报 告 连 接 器 可 执 行 程 序 交 互 式 调 试 器 用 户 加 载 器 可 执 行 程 序 执 行 报 告 动 态 分 析 器
语 言 编 译 器 : 将 源 代 码 程 序 转 换 为 目 标 码 期 间, 创 建 一 个 抽 象 语 法 树 ( AST ) 和 一 个 符 号 表 结 构 化 编 辑 器 : 结 合 嵌 入 的 程 序 设 计 语 言 知 识, 对 AST 中 的 程 序 语 法 进 行 编 辑 连 接 器 : 将 已 编 译 的 程 序 目 标 码 模 块 连 接 起 来 加 载 器 : 在 可 执 行 程 序 执 行 之 前, 将 之 加 载 计 算 机 内 存 交 叉 引 用 : 产 生 一 个 交 叉 引 用 表, 显 示 所 有 程 序 名 是 在 哪 里 声 名 和 引 用 的 按 格 式 打 印 : 扫 描 AST, 根 据 嵌 入 的 格 式 规 则, 打 印 源 文 件 程 序
静 态 分 析 器 : 分 析 源 文 件 代 码, 找 到 诸 如 未 初 始 化 的 变 量, 不 能 执 行 的 代 码, 未 调 用 的 函 数 和 过 程 等 异 常 动 态 分 析 器 : 产 生 带 附 注 的 一 个 源 文 件 代 码 列 表, 标 有 程 序 运 行 时 每 个 语 句 执 行 的 次 数, 以 及 有 关 程 序 分 支 和 循 环 的 信 息, 并 统 计 CPU 的 使 用 情 况 等 交 互 式 调 试 器 : 允 许 用 户 来 控 制 程 序 的 执 行 次 序, 并 显 示 执 行 期 间 的 程 序 状 态
(2) 一 个 设 计 和 分 析 工 作 台 可 以 支 持 基 于 特 定 方 法 的 设 计 和 分 析, 如 结 构 化 分 析 和 设 计 或 面 向 对 象 分 析 和 设 计 数 据 字 典 结 构 化 图 表 制 作 工 具 报 告 生 成 设 施 代 码 生 成 器 中 央 信 息 仓 库 查 询 语 言 设 施 图 表 创 建 工 具 设 计 分 析 和 检 查 工 具 移 入 / 移 出 设 施
数 据 字 典 : 维 护 系 统 设 计 中 所 用 的 实 体 信 息 代 码 生 成 器 : 从 中 央 信 息 仓 库 中 获 取 设 计 信 息, 自 动 生 成 代 码 或 代 码 框 架 结 构 化 图 表 制 作 工 具 : 用 来 创 建 数 据 流 图 结 构 图 实 体 关 系 图 等 它 们 不 仅 是 绘 图 工 具, 而 且 可 以 确 认 图 表 中 各 实 体 的 类 型 ; 并 获 取 实 体 的 有 关 信 息, 存 放 于 中 央 信 息 仓 库 中 设 计 分 析 和 检 查 工 具 : 分 析 设 计 信 息, 并 报 告 错 误 和 异 常 情 况 报 告 定 义 和 生 成 工 具 : 从 中 央 信 息 仓 库 中 获 取 信 息, 并 自 动 生 成 系 统 文 档 移 入 / 移 出 设 施 : 支 持 中 央 信 息 仓 库 和 其 它 软 件 开 发 工 具 交 换 信 息 仓 库 查 询 语 言 : 允 许 设 计 人 员 查 询 中 央 信 息 仓 库, 找 到 与 设 计 有 关 的 设 计 信 息
(3) 测 试 工 作 台 测 试 数 据 生 成 器 规 约 源 代 码 测 试 管 理 器 测 试 数 据 预 测 器 动 态 分 析 器 被 测 试 的 程 序 测 试 结 果 测 试 预 估 执 行 报 告 模 拟 器 文 件 比 较 器 报 告 生 成 器 测 试 结 果 报 告
测 试 数 据 生 成 器 : 生 成 被 测 程 序 的 测 试 数 据 这 可 以 是 从 一 个 数 据 库 中 选 取 数 据, 也 可 能 是 使 用 模 式 来 生 成 正 确 格 式 的 随 机 数 据 测 试 管 理 器 : 管 理 程 序 测 试 的 运 行 和 测 试 结 果 的 报 告 其 中 包 含 对 测 试 数 据 的 跟 踪, 对 预 期 结 果 的 跟 踪, 对 被 测 程 序 的 跟 踪 等 预 测 器 : 生 成 对 所 期 待 的 测 试 结 果 的 预 测 报 告 生 成 器 : 提 供 报 告 定 义, 以 及 测 试 结 果 的 生 成 设 施
文 件 比 较 器 : 比 较 程 序 测 试 的 结 果 和 预 期 的 结 果, 并 报 告 它 们 之 间 的 差 异 动 态 分 析 器 : 计 算 每 条 语 句 的 执 行 次 数, 生 成 被 测 程 序 执 行 轮 廓, 特 定 点 程 序 状 态, 语 句 覆 盖 情 况 等 模 拟 器 : 目 标 模 拟 器 : 是 脚 本 驱 动 的 程 序, 模 拟 多 个 同 时 进 行 的 用 户 交 互 I/O 模 拟 器 : 模 拟 程 序 的 输 入 和 输 出, 这 意 味 着 事 务 次 序 的 时 标 是 可 重 复 再 现 的
From: 计 算 机 科 学 技 术 百 科 全 书 ( 第 二 4 软 件 开 发 环 境 版 ), 张 效 祥 主 编, 清 华 大 学 出 版 社, 2005. 定 义 : 软 件 开 发 环 境 (software development environment) 支 持 软 件 产 品 开 发 的 软 件 系 统, 简 称 SDE 它 由 软 件 工 具 和 环 境 集 成 机 制 构 成, 前 者 用 以 软 件 开 发 的 相 关 过 程 活 动 和 任 务, 后 者 为 工 具 集 成 和 软 件 开 发 维 护 及 管 理 提 供 统 一 的 支 持 定 义 : 软 件 工 程 环 境 (Software engineering environment) 以 软 件 工 程 为 依 据, 支 持 大 型 软 件 生 产 的 系 统, 简 称 SEE 具 有 以 下 特 征 : SEE 强 调 支 持 软 件 生 产 的 全 过 程 ; SEE 强 调 大 型 软 件 的 工 业 化 生 产 ; SEE 以 集 成 和 剪 裁 作 为 主 要 技 术 途 径 ; 标 准 化
5 工 具 集 成 模 型 (1) Wasserman 五 级 模 型 (1990) 平 台 集 成 : 工 具 运 行 在 相 同 的 硬 件 / 操 作 系 统 平 台 上 数 据 集 成 : 工 具 使 用 共 享 数 据 结 构, 工 具 之 间 可 以 交 换 数 据 数 据 集 成 的 方 式 有 : 共 享 文 件 : 所 有 工 具 识 别 一 个 单 一 的 文 件 格 式 例 如 字 符 流 文 件 工 具 1 转 换 过 滤 器 工 具 2 共 享 文 件
共 享 数 据 结 构 : 工 具 使 用 一 个 认 可 的 数 据 结 构, 即 各 工 具 应 将 该 数 据 结 构 的 细 节 硬 化 到 工 具 中 词 法 语 法 分 析 器 代 码 生 成 器 调 用 动 态 分 析 器 更 新 结 构 编 辑 器 更 新 被 使 用 被 使 用 被 使 用 语 法 树 符 号 表 交 互 调 试 器 被 使 用 被 使 用 被 使 用 被 使 用 静 态 分 析 器 按 格 式 打 印 交 叉 引 用 通 过 共 享 数 据 结 构 的 集 成
共 享 数 据 仓 库 : 工 具 围 绕 一 个 对 象 管 理 系 统 进 行 集 成 该 OMS 包 含 描 述 实 体 和 关 系 的 共 享 数 据 模 型 OMS 模 式 工 具 1 工 具 2 工 具 3 对 象 管 理 系 统 通 过 OMS 集 成
表 示 集 成 ( 用 户 界 面 集 成 ): 意 指 系 统 中 的 工 具 使 用 共 同 的 风 格 以 及 采 用 共 同 的 用 户 交 互 标 准 集 实 现 表 示 集 成 的 方 式 : 窗 口 系 统 集 成 : 工 具 使 用 相 同 的 窗 口 系 统 从 而, 具 有 一 致 的 窗 口 外 观, 以 及 一 致 的 窗 口 操 作 命 令 命 令 集 成 : 各 工 具 对 相 似 的 功 能 使 用 同 样 格 式 的 命 令 包 括 : 文 本 命 令 格 式 与 参 数, 菜 单 格 式 和 位 置, 图 符 样 式 等 交 互 集 成 : 意 指 在 所 有 子 系 统 中 提 供 相 同 的 直 接 操 纵 界 面 的 操 作, 如 选 择 删 除 等
控 制 集 成 : 支 持 环 境 中 的 一 个 工 具 对 另 一 工 具 的 访 问 包 括 : 启 动 停 止 以 及 调 用 另 一 工 具 提 供 的 服 务 工 具 1 工 具 2 工 具 3 控 制 接 口 控 制 接 口 控 制 接 口 消 息 服 务 器 通 过 消 息 传 递 的 控 制 集 成 -- 每 一 个 工 具 提 供 一 个 控 制 接 口, 通 过 该 接 口 可 以 访 问 该 工 具 -- 当 一 个 工 具 需 要 与 另 一 工 具 通 信 时, 构 造 一 个 消 息, 并 发 送 到 消 息 服 务 器 -- 消 息 服 务 器 将 这 一 消 息 传 送 给 被 调 用 的 工 具
过 程 集 成 : 意 指 CASE 系 统 嵌 入 了 关 于 过 程 活 动 约 束 以 及 支 持 这 些 活 动 所 需 的 工 具 等 知 识 CASE 系 统 可 以 辅 助 用 户 调 用 相 应 工 具 完 成 有 关 活 动, 并 检 查 活 动 的 结 果 CASE 工 具 调 用 活 动 过 程 翻 译 机 提 议 用 户 结 果 过 程 模 型 过 程 集 成
(2)APSE 模 型 软 件 工 程 环 境 这 一 概 念 首 先 是 由 Buxton 于 1980 年 提 出 的 在 美 国 国 防 部 支 持 下, 提 交 了 一 组 支 持 Ada 程 序 设 计 环 境 (APSE) 的 需 求 连 接 加 载 器 测 试 器 MAPSE KAPSE 编 译 器 APSE APSE 模 型 外 壳 配 置 管 理
其 中 :KAPSE 是 核 心 扩 展 OS, 提 供 环 境 的 基 础 设 施 ; 并 有 一 个 公 共 的 工 具 接 口, 支 持 增 量 开 发 一 个 完 整 的 SEE APSE 是 环 境 的 一 个 最 小 集, 即 基 本 上 是 一 个 程 序 设 计 工 作 台
(3) 一 个 环 境 的 层 次 模 型 为 了 使 软 件 工 程 环 境 可 以 根 据 项 目 需 要, 提 供 不 同 的 支 持, 则 环 境 必 须 能 够 接 纳 更 多 的 CASE 工 具 必 须 能 够 按 需 要 增 加 新 的 设 施 这 意 味 着 : 环 境 是 一 组 服 务 的 集 合 工 具 ( 工 作 台 ) 应 用 框 架 服 务 平 台 服 务
其 中 : 平 台 服 务 包 括 文 件 服 务 : 文 件 命 名, 创 建, 存 储, 删 除, 文 件 按 目 录 结 构 组 织 进 程 管 理 服 务 : 进 程 创 建, 开 启, 停 止, 挂 起 等 网 络 通 信 服 务 : 数 据 传 输, 消 息 发 送, 程 序 下 载 等 窗 口 管 理 服 务 : 窗 口 创 建, 移 动, 删 除, 改 变 窗 口 大 小 等 打 印 服 务 : 信 息 打 印, 信 息 转 存 ( 永 久 性 媒 体 ) 等
框 架 服 务 -- 建 立 在 平 台 服 务 之 上, 专 用 于 支 持 CASE 工 具 的 集 成 数 据 仓 库 服 务 数 据 集 成 服 务 工 具 插 槽 任 务 管 理 服 务 用 户 界 面 服 务 消 息 服 务 SEE 基 准 模 型
其 中 : 数 据 仓 库 服 务 : 对 数 据 实 体 及 其 关 系 进 行 管 理 服 务 描 述 数 据 存 储 关 系 命 名 定 位 数 据 事 务 并 发 进 程 支 持 文 档 备 份 支 持 实 体 的 创 建 读 取 更 新 和 删 除 定 义 管 理 环 境 实 体 之 间 的 关 系 支 持 实 体 命 名 - 唯 一 的 标 识 符 支 持 在 网 络 上 分 派 实 体 支 持 原 子 事 务, 允 许 发 生 失 败 事 件 的 数 据 恢 复 支 持 多 个 事 务 处 理 同 时 进 行 提 供 开 启 停 止 挂 起 进 程 等 操 作 支 持 实 体 的 脱 机 存 储 和 恢 复 支 持 系 统 发 生 失 败 事 件 的 数 据 恢 复
数 据 集 成 服 务 : 扩 展 基 本 数 据 仓 库 服 务 服 务 描 述 版 本 管 理 配 置 管 理 查 询 元 - 数 据 状 态 控 制 子 环 境 数 据 互 换 支 持 实 体 多 版 本 管 理 配 置 项 命 名 以 及 配 置 变 化 控 制 提 供 访 问 和 更 新 版 本 服 务 提 供 数 据 模 式 定 义 和 管 理 提 供 触 发 机 制, 当 数 据 库 达 到 特 定 状 态 时, 初 始 化 特 定 操 作 支 持 定 义 管 理 环 境 中 数 据 和 操 作 的 一 个 子 集 - 作 为 一 个 单 一 的 命 名 环 境 支 持 从 环 境 中 移 入 / 移 出 数 据
任 务 管 理 服 务 : 支 持 环 境 中 的 过 程 集 成 服 务 描 述 任 务 定 义 任 务 执 行 提 供 任 务 定 义 机 制, 包 括 : 前 置 条 件 / 后 置 条 件, 输 入 / 输 出, 需 要 的 资 源, 涉 及 的 角 色 提 供 支 持 任 务 执 行 的 设 施, 也 许 包 含 用 过 程 语 言 所 描 述 的 任 务 交 互 操 作 任 务 事 务 提 供 对 事 务 的 支 持, 这 些 事 务 在 相 当 一 段 时 间 内 与 一 个 或 多 个 任 务 执 行 有 关 任 务 历 史 提 供 记 录 任 务 执 行 查 询 以 前 执 行 的 设 施 事 件 监 控 支 持 事 件 或 引 起 某 任 务 执 行 的 触 发 定 义 记 帐 与 查 帐 记 录 做 了 什 么, 以 及 环 境 资 源 的 使 用 角 色 管 理 提 供 定 义 和 管 理 环 境 中 角 色 的 设 施
消 息 服 务 : 支 持 工 具 与 框 架 服 务 通 讯 在 SEE 中 定 义 了 两 种 消 息 服 务 : - 消 息 发 派 : 支 持 工 具 到 工 具 服 务 到 服 务 框 架 到 框 架 之 间 的 消 息 传 送 相 关 的 操 作 有 : 发 送, 接 受, 应 答 等 - 工 具 注 册 : 允 许 一 个 工 具 或 服 务, 作 为 某 种 类 型 的 消 息 接 受 者, 登 记 到 消 息 服 务 器 上 用 户 界 面 服 务 : 支 持 表 示 集 成
环 境 中 的 工 具 集 成 在 SEE 中, 有 关 工 具 的 集 成, 存 在 三 个 级 别 : 半 分 离 工 具 集 成 工 具 外 来 工 具 平 台 服 务 框 架 服 务 软 件 工 程 环 境 的 工 具 集 成 集 成 工 具 : 使 用 框 架 服 务, 管 理 它 们 所 有 的 数 据 半 分 离 工 具 : 与 框 架 服 务 的 集 成 不 如 集 成 工 具 那 么 紧 密, 它 们 管 理 自 己 的 数 据 结 构, 但 用 框 架 服 务 管 理 文 件 外 来 工 具 : 仅 使 用 平 台 服 务
(4) PCTE APSE 的 出 现, 引 起 了 美 国 和 欧 洲 的 高 度 重 视, 均 在 有 关 机 构 支 持 下, 开 展 了 软 件 开 发 环 境 通 用 框 架 服 务 集 的 研 究 美 国 国 防 部 基 于 APSE 的 提 案, 设 立 了 CAIS(Common APSE Interface Set) 项 目, 通 过 研 制 一 个 Ada 环 境 核 心 APSE, 开 发 了 一 个 环 境 通 用 工 具 接 口 集 CAIS CAIS 是 面 向 Ada 的 与 CAIS 项 目 进 行 的 同 时, 在 欧 洲 信 息 技 术 研 究 战 略 计 划 (ESPRIT) 中, 设 立 了 PCTE (Portable Common Tool Environment) 项 目 其 中, 采 用 了 SEE 基 准 模 型, 开 发 了 软 件 开 发 环 境 通 用 的 工 具 接 口 PCTE 第 一 版, 成 为 欧 洲 计 算 机 制 造 商 协 会 (ECMA) 的 标 准, 并 于 1984 年 发 布 PCTE 标 准 是 面 向 UNIX 和 C 的, 旨 在 标 准 的 通 用 性, 而 并 非 支 持 面 向 语 言 的 环 境
针 对 当 时 PCTE 标 准 存 在 的 一 些 技 术 缺 陷, 例 如 : 缺 乏 对 安 全 性 和 访 问 控 制 的 支 持, 与 UNIX 平 台 联 系 过 于 紧 密 等 为 了 解 决 PCTE 标 准 中 的 问 题, 国 防 部 门 又 设 立 新 的 项 目, 资 助 开 发 PCTE+; 欧 洲 计 算 机 行 业 协 会 (ECME) 也 设 立 项 目, 支 持 开 发 ECMA PCTE 由 于 PCTE 和 CAIS 这 两 个 提 案 有 许 多 重 复 交 叉 之 处, 因 此 美 欧 双 方 共 同 对 之 进 行 了 综 合, 并 开 发 出 一 个 称 之 为 PCIS (Portable Common Interface Standerd) 标 准 ( 可 移 植 通 用 接 口 标 准 ) 并 予 以 PCIS 发 布, 还 进 行 了 原 型 化 实 际 情 况 : 欧 洲 和 美 国 还 是 普 遍 接 受 ECMA PCTE, 已 成 为 当 时 软 件 开 发 环 境 框 架 的 事 实 标 准
综 上 : 围 绕 环 境 通 用 接 口 的 研 究 及 成 果 之 间 的 关 系, 可 概 括 为 : 项 PCIS(1994 V1.0) 目 对 CAIS 和 PCTE 进 行 综 合 与 PCTE+ ECMA PCTE 成 针 对 存 在 的 缺 陷 果 CAIS PCTE 开 发 开 发 基 础 APSE SEE PCTE 的 研 究 历 程
ECMA PCTE 的 主 要 特 征 可 概 括 为 : 基 于 ERA( 实 体 - 关 系 - 属 性 ) 模 型, 实 现 对 象 的 管 理 包 括 支 持 对 象 之 间 的 连 接, 对 象 类 与 子 对 象 的 定 义 提 供 数 据 恢 复 复 原 能 力, 即 通 过 控 制 事 务 ( 一 个 事 务 是 原 子 动 作 的 一 个 集 合 ) 中 动 作 的 执 行 方 式 ( 或 全 部 执 行, 或 一 个 也 不 执 行 ), 当 事 务 处 理 中 发 生 错 误 时, 可 以 将 数 据 库 恢 复 到 一 个 一 致 的 状 态 提 供 事 务 执 行 的 管 理, 即 支 持 进 程 之 间 的 通 信, 支 持 进 程 的 启 动 终 止 和 存 储 支 持 进 程 和 数 据 在 网 络 上 的 分 派 采 用 了 一 个 比 较 复 杂 的 安 全 模 型, 其 中 提 供 了 不 同 的 安 全 级 别, 控 制 对 OMS 中 对 象 的 访 问
1992 年 以 后,Brown 等 人 介 绍 了 ECMA PCTE, 并 根 据 SEE 基 准 模 型 对 ECMA PCTE 进 行 了 评 估, 如 下 所 示 : 服 务 描 述 数 据 仓 库 数 据 集 成 任 务 管 理 消 息 用 户 界 面 除 备 份 外,PCTE 提 供 了 所 有 数 据 仓 库 服 务 除 通 用 查 询 服 务 外,PCTE 提 供 了 所 有 数 据 仓 库 服 务 除 查 帐 和 记 帐 服 务 外, 没 有 提 供 其 它 服 务 提 供 消 息 分 派 服 务, 但 没 有 消 息 注 册 服 务 建 议 基 于 PCTE 的 环 境, 都 采 用 X-Window 实 现 其 用 户 界 面 没 有 强 制 采 用 哪 些 特 定 的 库
由 此 可 以 看 出 : ECMA PCTE 提 供 了 一 个 相 当 完 整 的 低 层 框 架 服 务 集 与 SEE 基 准 模 型 相 比, 还 需 进 一 步 进 行 扩 充 例 如, 在 美 国 DoD 环 境 框 架 服 务 的 提 案 中,: 采 用 PCTE 提 供 数 据 仓 库 和 数 据 集 成 服 务 ; 采 用 HP 的 SoftBench 提 供 控 制 服 务 ; 采 用 X/Motif 提 供 用 户 界 面 服 务 ; 采 用 Process Weaver 提 供 任 务 管 理 服 务
6 大 型 软 件 开 发 环 境 青 鸟 系 统 (1) 提 供 了 支 持 数 据 集 成 控 制 集 成 和 界 面 集 成 的 开 放 性 环 境 集 成 机 制 以 对 象 管 理 系 统 为 核 心 的 数 据 集 成 部 件 以 消 息 服 务 器 和 过 程 控 制 系 统 作 为 控 制 集 成 部 件 以 界 面 类 库 和 界 面 辅 助 生 成 器 作 为 界 面 集 成 部 件 (2) 设 计 了 符 合 开 放 性 要 求 的 工 具 结 构 模 型, 并 提 供 了 相 应 的 工 具 插 槽 (3) 提 供 了 一 套 支 持 面 向 对 象 分 析 和 设 计 结 构 化 分 析 和 设 计 及 其 编 程 的 系 列 工 具
目 前 流 行 的 软 件 开 发 工 具 和 环 境
主 流 的 应 用 ( 软 件 ) 类 型 桌 面 应 用 WEB 应 用 移 动 应 用 其 他 工 程 领 域, 如 嵌 入 式 系 统 应 用 主 流 的 开 发 平 台 类 型 windows 系 列 Linux 系 列 Android 等 手 机 苹 果 的 MAC,iOS 38
主 流 的 开 发 语 言 2011 年 12 月,Tiobe 发 布 的 编 程 语 言 排 行 榜 39
Java Eclipse Eclipse 是 跨 平 台 的 自 由 集 成 开 发 环 境 (IDE) 最 初 主 要 用 来 Java 语 言 开 发, 但 是 目 前 亦 有 人 通 过 插 件 使 其 作 为 其 他 计 算 机 语 言 比 如 C++ 和 Python 的 开 发 工 具 Eclipse 的 设 计 思 想 是 : 一 切 皆 插 件 Eclipse 核 心 很 小, 其 它 所 有 功 能 都 以 插 件 的 形 式 附 加 于 Eclipse 核 心 之 上 Eclipse 基 本 内 核 包 括 : 图 形 API (SWT/Jface), Java 开 发 环 境 插 件 (JDT ), 插 件 开 发 环 境 (PDE) 等 40
Java MyEclipse MyEclipse 企 业 级 工 作 平 台 (MyEclipse Enterprise Workbench, 简 称 MyEclipse) 是 对 Eclipse IDE 的 扩 展, 利 用 它 我 们 可 以 在 数 据 库 和 JavaEE 的 开 发 发 布 以 及 应 用 程 序 服 务 器 的 整 合 方 面 极 大 的 提 高 工 作 效 率 它 是 功 能 丰 富 的 JavaEE 集 成 开 发 环 境, 包 括 了 完 备 的 编 码 调 试 测 试 和 发 布 功 能, 完 整 支 持 HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate 41
NetBeans Java NetBeans 由 Sun 公 司 (2009 年 被 甲 骨 文 收 购 ) 在 2000 年 创 立, 目 前 可 以 方 便 的 在 Windows,Mac,Linux 和 Solaris 中 运 行 NetBeans 包 括 开 源 的 开 发 环 境 和 应 用 平 台,NetBeans IDE 可 以 使 开 发 人 员 利 用 Java 平 台 能 够 快 速 创 建 Web 企 业 桌 面 以 及 移 动 的 应 用 程 序,NetBeans IDE 目 前 支 持 PHP Ruby JavaScript Ajax Groovy Grails 和 C /C + + 等 开 发 语 言 42
Java JDK Java Development Kit (JDK) 是 Sun 公 司 针 对 Java 开 发 员 的 软 件 开 发 工 具 包 JDK 简 单 易 学, 可 以 通 过 任 何 文 本 编 辑 器 ( 如 :Windows 记 事 本 等 ) 编 写 Java 源 文 件, 然 后 在 DOS 状 况 下 利 通 过 javac 命 令 将 Java 源 程 序 编 译 成 字 节 码, 通 过 Java 命 令 来 执 行 编 译 后 的 Java 文 件, 这 能 带 给 DOS 时 代 程 序 员 美 好 的 回 忆 Java 初 学 者 一 般 都 采 用 这 种 开 发 工 具 43
Java Jbuilder JBuilder 是 Borland 公 司 开 发 的 针 对 java 的 开 发 工 具, 使 用 JBuilder 可 以 快 速 有 效 的 开 发 各 类 java 应 用, 它 使 用 的 JDK 与 sun 公 司 标 准 的 JDK 不 同, 它 经 过 了 较 多 的 修 改, 以 便 开 发 人 员 能 够 像 开 发 Delphi 应 用 那 样 开 发 java 应 用 JBuilder 的 核 心 有 一 部 分 采 用 了 VCL 技 术, 使 得 程 序 的 条 理 非 常 清 晰, 就 算 是 初 学 者, 也 能 完 整 的 看 完 整 个 代 码 JBuilder 另 一 个 特 点 是 简 化 了 团 队 合 作, 它 采 用 的 互 联 网 工 作 室 技 术 使 不 同 地 区, 甚 至 不 同 国 家 的 人 联 合 开 发 一 个 项 目 成 为 了 可 能 44
Java 其 他 开 发 工 具 或 环 境 IntelliJ IDEA jedit OpenJDK WindowBuilder Pro JRockit GWT Designer EasyEclipse JRebel IBM RAD JBoss Developer Studio Oracle JDeveloper 45
Visual Studio C/C++ /.net Visual Studio 是 微 软 公 司 推 出 的 开 发 环 境,Visual Studio 可 以 用 来 创 建 Windows 平 台 下 的 Windows 应 用 程 序 和 网 络 应 用 程 序, 也 可 以 用 来 创 建 网 络 服 务 智 能 设 备 应 用 程 序 和 Office 插 件 Visual Studio 是 一 套 完 整 的 开 发 工 具, 用 于 生 成 ASP.NET Web 应 用 程 序 XML Web services 桌 面 应 用 程 序 和 移 动 应 用 程 序 Visual Basic Visual C# 和 Visual C++ 都 使 用 相 同 的 集 成 开 发 环 境 (IDE), 这 样 就 能 够 进 行 工 具 共 享, 并 能 够 轻 松 地 创 建 混 合 语 言 解 决 方 案 另 外, 这 些 语 言 使 用.NET Framework 的 功 能, 它 提 供 了 可 简 化 ASP Web 应 用 程 序 和 XML Web services 开 发 的 关 键 技 术 46
C/C++ C/C++ 编 译 器 GCC GCC(GNU Compiler Collection,GNU 编 译 器 套 装 ), 是 一 套 由 GNU 开 发 的 编 程 语 言 编 译 器 它 是 一 套 以 GPL 及 LGPL 许 可 证 所 发 行 的 自 由 软 件, 也 是 GNU 计 划 的 关 键 部 分, 亦 是 自 由 的 类 Unix 及 苹 果 计 算 机 Mac OS X 操 作 系 统 的 标 准 编 译 器 GCC( 特 别 是 其 中 的 C 语 言 编 译 器 ) 也 常 被 认 为 是 跨 平 台 编 译 器 的 事 实 标 准 GCC 原 名 为 GNU C 语 言 编 译 器 (GNU C Compiler), 因 为 它 原 本 只 能 处 理 C 语 言 GCC 很 快 地 扩 展, 变 得 可 处 理 C++ 之 后 也 变 得 可 处 理 Fortran Pascal Objective-C Java, 以 及 Ada 与 其 他 语 言 47
C/C++ Xcode Xcode 是 苹 果 公 司 向 开 发 人 员 提 供 的 集 成 开 发 环 境 ( 非 开 源 ), 用 于 开 发 iphone OS 及 Mac OS X 的 应 用 程 序 Xcode 是 Apple 的 开 发 工 具 套 件, 支 持 项 目 管 理 编 辑 代 码 构 建 可 执 行 程 序 代 码 级 调 试 代 码 的 版 本 管 理 性 能 调 优 等 等 48
C/C++ QT 集 成 开 发 环 境 Qt Creator Qt Creator 是 Qt 被 Nokia 收 购 后 推 出 的 一 款 新 的 轻 量 级 集 成 开 发 环 境 (IDE) 此 IDE 能 够 跨 平 台 运 行, 支 持 的 系 统 包 括 Linux (32 位 及 64 位 ) Mac OS X 以 及 Windows 在 功 能 方 面,Qt Creator 包 括 项 目 生 成 向 导 高 级 的 C++ 代 码 编 辑 器 浏 览 文 件 及 类 的 工 具 集 成 了 Qt Designer 图 形 化 的 GDB 调 试 前 端, 集 成 qmake 构 建 工 具 等 49
C/C++ 其 他 C/C++ 语 言 开 发 工 具 Turbo C Borland C++ CodeLite IDE Intel C++ Compiler KDevelop Anjuta Dev C++ 50
MyEclipse Visual Studio NetBeans Dreamweaver PHP 开 发 工 具 Web PHPEclipse:Eclipse 的 一 个 插 件, 包 括 的 功 能 有 :PHP 语 法 分 析, 调 试, 代 码 格 式 化, 大 纲 视 图, 代 码 模 板 定 制 等 Zend Studio:Zend Technologies 开 发 的 PHP 语 言 集 成 开 发 环 境, 具 备 功 能 强 大 的 专 业 编 辑 工 具 和 调 试 工 具, 支 持 PHP 语 法 加 亮 显 示, 支 持 语 法 自 动 填 充 功 能, 支 持 书 签 功 能, 支 持 语 法 自 动 缩 排 和 代 码 复 制 功 能, 内 置 一 个 强 大 的 PHP 代 码 调 试 工 具, 支 持 本 地 和 远 程 两 种 调 试 模 式, 支 持 多 种 高 级 调 试 功 能 51
移 动 应 用 iphone iphone SDK iphone SDK 是 苹 果 公 司 提 供 的 iphone 开 发 工 具 包, 包 括 了 界 面 开 发 工 具 集 成 开 发 工 具 框 架 工 具 编 译 器 分 析 工 具 开 发 样 本 和 一 个 模 拟 器 Xcode Android Xcode 2.0 是 开 发 人 员 建 立 Mac OS X 的 最 快 捷 方 式, 也 是 利 用 新 的 苹 果 电 脑 公 司 技 术 的 最 简 单 的 途 径 Xcode 2.0 将 Mac OS X 的 轻 松 使 用 UNIX 能 量 以 及 高 性 能 的 开 发 技 术 集 合 在 一 起 Android SDK Eclipse+ADT 插 件 52
移 动 应 用 Windows Mobile Visual Studio Symbian S60 SDK 53