● 软件工程中的高级课题 李宣东 南京大学计算机科学与技术系
软件工程中的高级课题 李 宣 东 南京大学计算机科学与技术系
● ● Advanced Topics in SE Computer-Aided Software Engineering ·Formal Methods ·Software Reuse ·Reengineering Component-Based Software Engineering Cleanroom Software Engineering Client/Server Software Engineering 。 Web Engineering ● ●
Advanced Topics in SE • Computer-Aided Software Engineering • Formal Methods • Software Reuse • Reengineering • Component-Based Software Engineering • Cleanroom Software Engineering • Client/Server Software Engineering • Web Engineering
Computer -Aided Software Engineering (CASE ·支持软件开发生存期的集成化工具、技 术和方法 ●
Computer - Aided Software Engineering (CASE) • 支持软件开发生存期的集成化工具、技 术和方法
● CASE Concepts CASE技术 (technology):为软件开发、维护和项目 管理提供自动化、工程化准则的软件技术;包括自动 化结构化方法和自动化工具。 CASE工具(tool):支持特定的软件生存期活动自动 化(至少部分自动化)的软件工具。 CASE系统(system):能共享一个公用的用户界面、 并且在公用的计算机环境中运行的一组集成化的CASE 工具。 CASE工具箱 (toolkit):一组集成化的CASE工具,能 够使得软件生存期的一个阶段或一个特殊的软件工作 的活动自动化(或部分自动化) ● ●
CASE Concepts • CASE技术(technology):为软件开发、维护和项目 管理提供自动化、工程化准则的软件技术;包括自动 化结构化方法和自动化工具。 • CASE工具(tool):支持特定的软件生存期活动自动 化(至少部分自动化)的软件工具。 • CASE系统(system):能共享一个公用的用户界面、 并且在公用的计算机环境中运行的一组集成化的CASE 工具。 • CASE工具箱(toolkit):一组集成化的CASE工具,能 够使得软件生存期的一个阶段或一个特殊的软件工作 的活动自动化(或部分自动化)
● CASE Concepts CASE工作台(workbench): 一 组集成化的CASE工具 能够使得整个软件生存自动化( 或提供自动化辅助) 包括分析、设计、编码和测试。 CASE方法学(methodology):.一种“可自动化”的 方法学,它对软件开发和维护的所有方面或者某些方 面定义了严格的、类似工程的研究途径。 CASE方法学伙伴(methodology companior):一组 CASE工具,这些工具按某一种特殊的CASE方法学自 动完成一些任务,并且自动产生由该方法学所要求的 文档和其他交付的任务。 CASE工作站(workstation):为CASE工具提供操作 平台的一个一层、二层或三层的硬件系统体系结构
CASE Concepts • CASE工作台(workbench):一组集成化的CASE工具, 能够使得整个软件生存自动化(或提供自动化辅助), 包括分析、设计、编码和测试。 • CASE方法学(methodology):一种“可自动化”的 方法学,它对软件开发和维护的所有方面或者某些方 面定义了严格的、类似工程的研究途径。 • CASE方法学伙伴(methodology companior):一组 CASE工具,这些工具按某一种特殊的CASE方法学自 动完成一些任务,并且自动产生由该方法学所要求的 文档和其他交付的任务。 • CASE工作站(workstation):为CASE工具提供操作 平台的一个一层、二层或三层的硬件系统体系结构
● CASE Methodology 由于CASE工具对整个信息系统或软件工程开发过 程的全面支持,引起了系统开发方法学领域从技术、 方法到观念、认知体系的变化,方法学领域也受到了 冲击和挑战,从而使CASE演变成了一种独特的、以自 动化支持环境为基础的系统开发方法学。 ·结构化方法 面向对象方法 ·快速原型方法 ● ●
CASE Methodology 由于CASE工具对整个信息系统或软件工程开发过 程的全面支持,引起了系统开发方法学领域从技术、 方法到观念、认知体系的变化,方法学领域也受到了 冲击和挑战,从而使CASE演变成了一种独特的、以自 动化支持环境为基础的系统开发方法学。 • 结构化方法 • 面向对象方法 • 快速原型方法
● CASE Integration 集成化CASE环境的总体结构 界面集成层:用户界面开发工具包,界 面协议 ·工具集成层:触发执行机制,通信机制。 信息集成层:信息与CASE工具的集成 信息与信息的集成 软件工程信息库:元模型,软件开发信 息 ●
CASE Integration 集成化CASE环境的总体结构 • 界面集成层:用户界面开发工具包,界 面协议。 • 工具集成层:触发执行机制,通信机制。 • 信息集成层:信息与CASE工具的集成, 信息与信息的集成。 • 软件工程信息库:元模型,软件开发信 息
● Interface Integration CASE界面集成层 界面集成层主要由一个标准化的用户界面开发 工具包以及各CASE工具共同遵守的界面协议 组成。 。界面集成有两方面的目标: (1)开发人员可在统一而不是分离的界面框架下操作 所有的CASE工具,完成软件开发过程。 (2)所有CASE工具的用户界面和操作风格必须协调 一致。 ● ●
Interface Integration CASE界面集成层 • 界面集成层主要由一个标准化的用户界面开发 工具包以及各CASE工具共同遵守的界面协议 组成。 • 界面集成有两方面的目标: (1)开发人员可在统一而不是分离的界面框架下操作 所有的CASE工具,完成软件开发过程。 (2)所有CASE工具的用户界面和操作风格必须协调 一致
● Tool Integration CASE工具集成层 工具集成层负责管理所有的CASE工具并 协调它们的行为。在多任务操作系统中,开发 人员可以同时启动多个CASE工具,此时工具 集成层必须在CASE工具之间进行信息传递和 同步。协调CASE工具与软件工程信息库之间 的信息流,实施安全检查和审计功能。此外, 工具集成层往往还能够收集各CASE工具使用 情况的统计信息以便改进软件开发方法,提高 环境运行效率 ●
Tool Integration CASE工具集成层 工具集成层负责管理所有的CASE工具并 协调它们的行为。在多任务操作系统中,开发 人员可以同时启动多个CASE工具,此时工具 集成层必须在CASE工具之间进行信息传递和 同步。协调CASE工具与软件工程信息库之间 的信息流,实施安全检查和审计功能。此外, 工具集成层往往还能够收集各CASE工具使用 情况的统计信息以便改进软件开发方法,提高 环境运行效率
● Tool Integration 为了完成上述任务,工具集成层至少要具 备执行机制和通信机制: 执行机制是指环境能够根据某些软件开发触发CASE工 具的启动。此外,执行机制还包含对CASE工具执行过 程的其他控制手段,例如挂起、恢复和终止。 通信机制是指环境能够在CASE工具之间传递信息。 大型软件开发项目的众多开发人员往往是在网络环境 下协同完成开发任务的。这就对集成化环境提出了新 的要求。为此,工具集成层还应提供分布机制,以便 上述基本的执行和通信机制以用户透明的方式在网络 分布环境下运行。 ●
Tool Integration 为了完成上述任务,工具集成层至少要具 备执行机制和通信机制: • 执行机制是指环境能够根据某些软件开发触发CASE工 具的启动。此外,执行机制还包含对CASE工具执行过 程的其他控制手段,例如挂起、恢复和终止。 • 通信机制是指环境能够在CASE工具之间传递信息。 • 大型软件开发项目的众多开发人员往往是在网络环境 下协同完成开发任务的。这就对集成化环境提出了新 的要求。为此,工具集成层还应提供分布机制,以便 上述基本的执行和通信机制以用户透明的方式在网络 分布环境下运行