软件工程实验教学大纲 前 言
软件工程实验是为计算机相关专业本科《软件工程》课程 配套设置的,是《软件工程》课程讲授中一个重要的、不可或 缺的实践环节。其目的是使学生能够针对具体软件工程项目, 全面掌握软件工程管理、软件需求分析、软件初步设计、软件 详细设计、软件测试等阶段的方法和技术,通过该课程设计使 学生进一步理解和掌握软件开发模型、软件生命周期、软件过 程等理论在软件项目开发过程中的意义和作用,培养学生按照 软件工程的原理、方法、技术、标准和规范,进行软件开发的 能力,培养学生的合作意识和团队精神,培养学生对技术文档 的编写能力,从而使学生提高软件工程的综合能力,提高软件 项目的管理能力。
按该课程的特点,实验内容包括软件开发的两大方法学的 专题训练,即结构化(生命周期学的方法学和面向对象的方 法学,通过对一个简单项目,要求学生利用结构化软件开发技 术或面向对象的软件开发技术完成对该项目的开发。因此设置 五个实验项目,从项目发的准备工作,系统分析过程,系统设 计过程,软件测试到系统实施,覆盖软件开发的整个过程,此 外又引入我国国家《计算机开发规范》,以规范技术文档的书 写标准,提高实验教学质量。
通过实验训练,达到如下目的:
使学生进一步了解和掌握软件工程原理,提高对实际项目 的分析和设计能力,通过实验课程,熟悉和基本掌握软件工 程方法 学、 软件 开发 的过 程, 文档 资料 的编 写格式 及规 范,全面领会和贯通所学习的理论知识,从而培养学生综合 运用所学课程知识,分析解决问题的能力,培养学生理论联系 实际作风,实事求是,严肃认真的科学态度和良好的工作作 风,为今后从事科学研究工作打下基础。
实验一:项目开发的准备工作 实验学时:2 实验类型:验证性
一、目的与任务
目的:确定课题,组织组员,合理分工,熟悉软件开发环 境,培养团队精神。 任务:学习软件开发小组的组织和管理,合理分工,将项目 开发各阶段的任务明确,并熟悉相应的软件开发环境。
二、内容、要求与安排方式 1、实验内容与要求:
根据各组选择的课题,实行项目经理制,各组推荐一名组 长,统一管理整个项目的实施过程,并合理调整资源和负责项目 全局;根据项目的难易合理分配组员的任务,对问题达成一致的 看法;针对项目的实施,熟悉相应的软件开发工具的使用环境。 2、实验安排方式:
本实验为开放实验,各组可同时进行实验,每组 8-10人。 3.准备参考资料和阅读相关的国家有关软件开发的标准文档。 三、思考题
1、项目开发首先要做的事是什么 ?
2、你认为该软件应具备的最重要的特性是什么。 3、你认为怎样分工是最合理的? 实验二:系统分析过程 实验学时:4 实验类型:验证性 一、目的与任务
目的:确定项目的可实施性,在此基础上完成系统的逻辑功 能模型的建立。 任务:采用不同的软件开发技术,完成对项目的分析过程, 给出系统的逻辑功能模型,数据字典以及规格说明书。
二、内容、要求与安排方式 1、实验内容与要求:
明白项目的业务流程图,绘制数据流程图,功能分析图,编 写数据字典,数据加工处理的描述,软件系统流程设想图(新系 统模型,需求规格说明书。
2、实验安排方式:
本实验为开放实验,各组可同时进行实验,每组 8-10人。 三、思考题 1、需求分析在软件开发中真的有那么重要吗?
2、分析系统流程图,流程图和数据流图的区别和各自的特点。 3、怎样写合乎规范的数据流图和数据词典? 4、怎样组织对该工作的评审? 实验三:系统设计过程 实验学时:4 实验类型:设计性 一、目的与任务
目的:在实验二基础上完成系统的体系结构的建立和系统详 细设计,并给出相应的规格说明书。
任务:认真分析实验二的结果,给出系统合理的体系结构, 描绘系统结构图,并合理划分系统的各组成模块,最后给出系统 的各部分设计规格说明书。
二、内容、要求与安排方式 1、实验内容与要求:
功能结构图设计,软件处理流程设计,输出设计(主要指打 印输出设计,存储文件格式设计(数据库结构设计,输入设 计(主要指数据录入卡设计,代码设计,程序设计说明书 2、实验安排方式:
本实验为开放实验,各组可同时进行实验,每组 8-10人。 三、思考题 1.系统设计和需求分析的关系是什么?两者必须先后关联吗? 2.怎样描绘系统的体系结构? 3.怎样绘制复合规范的流程图。 4.怎样组织对设计阶段工作的评审? 实验四:系统实现
实验学时:4 实验类型:设计性 一、目的与任务
目的 :系统运行和软件后期制作,了解程序设计的风格。 任务:编写源程序,正确书写软件说明书和用户手册,总结 软件开发中的得失。
二、内容、要求与安排方式 1、实验内容与要求:
完善系统所涉及的程序框图,源程序,模拟运行数据, 打印报表,软件使用说明书和用户手册等。
2、验安排方式:
本实验为开放实验,各组可同时进行实验,每组 8-10人。 三、思考题 1、怎样合理选择软件开发的工具?

