本书讲解软件工程中的典型CASE工具,将概念和理论融入实践,引导读者深入理解软件开发各个阶段的技术,掌握工具的使用方法。本书共10章,设计了47个实验,覆盖了软件工程文档、软件分析与设计建模工具MicrosoftVisio、面向对象建模工具RationalRose、软件配置管理工具MicrosoftVisualSourceSafe、功能测试工具WinRunner、压力测试工具LoadRunner、单元测试工具JUnit、软件代码测试工具PurifyPlus、测试管理工具TestDirector和软件项目管理工具MicrosoftProject等。每章既包含对工具功能的介绍,也安排了针对不同侧重点的实验,以便教师根据课时灵活选取。本书适合作为高等院校软件工程课程的实验教材,也可供工程技术人员阅读参考。
前 言
软件工程学是一门综合性应用科学,它将计算机科学理论与现代工程方法论相结合,着重研究软件过程模型、设计方法以及工程开发技术和工具,以指导软件的生产和管理。随着计算机科学和软件产业的迅猛发展,软件工程学已成为一个重要的计算机分支学科,也是一个异常活跃的研究领域,新方法、新技术不断涌现。软件工程是计算机科学与技术专业学生必修的一门专业课程,也是工科各专业学生在计算机应用方面的一门重要选修课程。
软件工程理论与技术的发展和多种多样的CASE(计算机辅助软件工程)工具的不断涌现,加快了软件开发效率并节约了成本,同时也对软件及其相关行业的从业人员提出了更高的要求。为培养高素质的专业人才,应充分重视软件工程课程的实验教学,因此迫切需要优秀的软件工程课程实验教材。
为编写本书,我们在实验内容的选择、实验步骤的设计以及实验方法和文档的组织等方面做了精心的考虑和安排,结合长期的教学经验、工程项目实践经验以及各种CASE工具的使用经验,并与实验教学人员和专业老师反复讨论,最终才有了本书的诞生。我们参考了国内外大量的实验教材,并结合软件课程教学的特点,注重基础性、系统性、实用性和新颖性,充分体现实验的可操作性。这对推动软件工程课程的教学发展、帮助学生切实掌握软件工程课程的知识、理论与实践具有重要意义。
通过对CASE工具的学习和使用,软件工程实验将概念和理论知识融入实践,帮助学生深入理解软件开发中各个阶段的技术、方法和工具的基本使用方法。实验内容几乎包含了软件生存周期的各个阶段,包括软件分析与设计、软件测试和软件项目管理。全书共设计了47个实验,涵盖软件工程标准文档、软件分析与设计建模工具Microsoft Visio、面向对象建模工具Rational Rose、软件配置管理工具Microsoft Visual SourceSafe、功能测试工具WinRunner、压力测试工具LoadRunner、单元测试工具JUnit、软件代码测试工具PurifyPlus、测试管理工具TestDirector和软件项目管理工具Microsoft Project等。部分章节安排了多个实验,目的是便于教师合理安排实验时间,也便于学生练习和操作。为了帮助学生充分理解每个实验,掌握主流软件工程工具的基本使用方法,我们给出了相关背景知识,包括实验工具的特点、功能、安装方法等。
实验内容和教学目标第1章介绍软件工程CASE工具与标准化文档。通过学习本章,学生应熟悉软件生存周期模型及各个阶段的过程;熟悉软件工程的技术支持环境、软件工程工具以及支持环境对于软件开发和开展软件工程实践的意义;了解软件开发过程对软件工程工具和支持环境的要求;了解现有的主流软件工具及其基本功能、用途、发展与应用状况;掌握软件过程的阶段划分和各个阶段的任务;了解软件工程国家标准和其他相关技术标准的专业网站;熟悉软件工程标准化的概念、内容及意义;重点熟悉国家标准GB/T 8567—2006及其相关软件文档的目的、基本内容、编写要求、管理要求和适用阶段。本章安排了2个实验,内容涵盖软件工程CASE工具和软件工程标准化文档。
第2章介绍软件分析与设计工具Microsoft Visio。通过学习本章,学生应了解Visio工具的功能特色和工作环境;掌握Visio工具的基本使用方法和基本绘图操作;了解Visio图形应用的基本概念;重点掌握Visio提供的网络图、流程图、数据流图和UML模型图的绘制方法;熟悉Visio工具的绘图操作以及如何将其与Microsoft Office文档结合使用。本章安排了4个实验,内容涵盖数据流图、状态模型、程序流程图和实体关系模型。
第3章介绍面向对象建模工具Rational Rose。通过学习本章,学生应熟悉面向对象技术和面向对象软件工程模型与建模技术;掌握面向对象的统一过程模型和基本模型视图;熟悉UML的各种模型视图及其表示;了解面向对象建模工具Rational Rose的基本使用方法;了解Rational Rose的双向工程,包括正向工程和逆向工程,正向工程是从模型到代码,逆向工程是从代码到模型。本章安排了10个实验,内容涵盖创建用例模型、逻辑模型、动态行为模型、组件模型、部署模型、数据库模型以及正向工程和逆向工程等。
第4章介绍软件配置管理工具Microsoft Visual SourceSafe。通过学习本章,学生应了解软件配置管理的基本概念、分类、工具集成和相关技术;了解配置管理工具VSS的功能和基本使用方法。本章安排了1个实验,即使用VSS构建项目配置环境。
第5章介绍功能测试工具WinRunner。通过学习本章,学生应熟悉软件测试的测试任务、测试原理、常用测试策略、测试方法和测试技术;熟悉一些特定应用系统软件(面向对象软件、人机界面软件、分布式软件、实时系统软件)的测试要点;了解软件自动化测试的原理和方法;了解自动测试工具的类型、测试步骤和自动测试用例设计基础;了解测试自动化的优点和限制;掌握WinRunner功能测试工具的基本使用方法;使用WinRunner测试一个小软件并学习同步点测试;使用WinRunner进行多项数据驱动测试;了解WinRunner检查点测试;了解手工和自动合并脚本文件。本章安排了9个实验,内容涵盖录制脚本、学习GUI对象、同步点测试、数据驱动测试、GUI对象检查点、图像检查点、文字检查点和批处理测试等。
第6章介绍性能测试工具LoadRunner。通过学习本章,学生应了解如何定义性能测试要求,例如并发用户的数量、典型业务流程和所需响应时间;学会创建Vuser脚本,将最终用户活动捕获到自动脚本中;使用 LoadRunner Controller设置测试环境和定义场景;通过LoadRunner Controller驱动和管理测试场景;通过LoadRunner Controller 监控测试场景;使用LoadRunner Analysis创建图和报告并评估性能;使用LoadRunner联机图,指定场景执行期间Controller将监控的计算机,并查看监控器收集的数据;了解在场景执行期间如何监控资源,确定特定计算机上出现瓶颈的原因;学会使用LoadRunner的服务器资源监控器,跟踪场景执行期间使用的资源等。本章安排了8个实验,包括录制脚本、脚本回放、增强脚本、内容检查、场景设置、运行场景和结果分析等。
第7章介绍单元测试工具JUnit。通过学习本章,学生应理解JUnit的目的、概念和设计模式;学会在Eclipse环境中加载Junit;了解Junit的测试原理和测试框架;掌握Junit的测试方法和过程。本章安排了1个实验,即类的测试。
第8章介绍代码测试工具PurifyPlus。通过学习本章,学生应学会使用PureCoverage检测代码覆盖程度,自动检测测试完整性和那些无法达到的部分;学会使用Purify检测内存错误和内存泄漏,以确保整个应用程序的质量和可靠性;学会使用Quantify检测代码性能瓶颈,自动检测出影响程序段执行速度的瓶颈,获取参数分析表;学会利用PurifyPlus强有力的数据收集和分析能力,最大化地利用测试生成的数据,更好地辅助测试人员进行决策。本章安排了6个实验,内容涵盖PureCoverage单元测试、Purify单元测试、Quantify单元测试、精确粒度数据采集、可定制过滤器的生成和数据的合并与比较等。
第9章介绍测试管理工具TestDirector。通过学习本章,学生应了解测试管理的概念和目的;了解测试项目环境的构建、用户添加和授权;掌握测试需求定义、计划测试、定义测试和执行测试。本章安排了5个实验,内容涵盖创建测试项目、定制测试项目、创建项目需求大纲、创建测试集合和执行测试。
第10章介绍软件项目管理工具Microsoft Project。通过学习本章,学生应了解IT项目管理的基本概念、意义和作用;熟悉项目管理的核心思想和基本知识;掌握项目管理软件Microsoft Project的功能、用途和基本操作。本章安排了1个实验,即构建项目计划。
实验安排本书适合作为高等院校软件工程课程的实验辅助教材,也可以作为独立开设的软件工程学实验课程的教材。本书实验内容的基本概念来自软件工程课程,应与之结合学习。本书内容结构合理,章节组织有特色,应用指导性强,在实施过程中可以结合一些应用实例,以达到更好的教学效果。
本实验教程的47个实验可以根据课时需要任意组合,建议总课时为32课时。对于初级教学目标,可选每个工具的基本实验,共计36个实验,总计18课时。对于课时紧张的情况,我们在每个实验中安排了基本实例和综合应用,教师可以灵活选用。
本书第1~5章由窦万峰编写,第6章由蒋锁良编写,第7~8章由潘媛媛和窦万峰编写,第8章由杨俊编写,第9~10章由汤傲和窦万峰编写。全书由窦万峰统稿,由潘媛媛和汤傲校对。
限于编者水平,书中难免有疏漏和不当之处,敬请广大读者不吝赐教。
编者2016年10月