《软件工程导论》实验教学大纲一、实验课程性质、目的与任务《软件工程导论》是计算机各专业本科生的一门重要的专业课程,主要包括主要内容包括可行性分析、需求分析、概要设计、详细设计、面向对象分析与设计、编码、软件质量、项目计划与管理、软件维护等内容。通过学习,学生将掌握软件工程的基本概念和基础理论知识,能够熟练地运用各种实用开发方法和基本技术方法从事各种类型软件项目的工程化开发、了解软件工程各领域的发展动向,成为具有独立工作能力的高素质高水平的软件人才。按该课程的特点,实验内容包括软件开发的两大方法学的专题训练,即结构化(生命周期学)的方法学和面向对象的方法学,通过对一个简单项目,要求学生利用结构化软件开发技术或面向对象的软件开发技术完成对该项目的开发。通过本实验课程,应达到以下几个教学目的1.进一步了解和掌握软件工程原理,提高对实际项目的分析和设计能力;2.熟悉和基本掌握软件工程方法学、软件开发的过程;3.掌握文档资料的编写格式及规范,全面领会和贯通所学习的理论知识;4.培养学生综合运用所学课程知识,分析解决问题的能力;5.培养学生理论联系实际作风,实事求是,严肃认真的科学态度和良好的工作作风,为今后从事科学研究工作打下基础。二、实验教学基本要求采取学生单独分组实验,教师临场指导的实验方式,在计算机上通过编程进行实验。完成对每个知识点知识验证和设计完成规定的实验内容,能运用所学根据算法思想独立设计程序。要求掌握流行操作系统的基本使用与管理操作,并学会用高级程序设计语言设计有关进程创建、进程调度、进程通信、死锁以及存储管理、设备管理、文件管理等主要算法的模拟程序。上机实验要求:1、做好实验预习,编写源代码。2、认真撰写实验报告。实验报告应包括以下内容:实验项目名称;算法分析;程序清单;运行结果;对运行情况所作的分析以及本次调试程序所取得的经验,如果程序未能通过,应分析其原因。3、按指定时间上机,不得无故缺席。4、严格遵守校校规校纪和实验室规章制度。三、实验项目与类型:序号实验项目学时实验性质备注验证综合设计研究探索必做选做1项目可行性分析2√√2Visio软件的使用2√√序号实验项目学时实验性质备注验证综合设计研究探索必做选做3项目需求分析2√√4项目总体设计2√√5项目详细设计及编码实现2√√6软件测试和调试2√√7综合实验4√√√四、实验教学内容实验一:分配项目进行可行性分析1、实验目的了解课题的基本框架;分析和澄清问题的定义;进一步研究探讨问题定义阶段所确定的问题是否有可行的解。2、方法原理用word写文档、用visio画图。3、主要实验仪器及材料计算机、Windows系列操作系统、Office软件、RationalRose或Visio等分析建模工具。4、实验内容查看提供的资料,各小组在组长的带领下讨论问题的可行性,书写项目的可行性分析报告。实验二:MicrosoftVisio软件的使用1.实验目的:1)熟悉Visio的工作环境及组成;2)掌握用Visio软件绘制图表的基本操作;3)能熟练全用Visio软件绘制各种较复杂的专业图表;4)掌握各种图表文档创建方法.2.实验要求:要求能够熟练运用Visio软件所提供的菜单、工具、模型等制作图形或图表;能用Visio软件所提供专业图形模板,来自行绘制出专业化、高质量的图形或图表。3.实验内容:使用MicrosoftVisio2003来设计一个基本流程图模型。4.实验步骤:1)通过打开模板并向图表添加形状来开始创建图表。2)在图表中移动形状并调整形状的大小。3)向图表添加文本。4)连接图表中的形状。5)设置图表中形状的格式。6)保存图表以示完成,并向演示图表。5.实验学时:2学时。6.实验结果:上交所制作的流程图文件和实验报告。实验三:项目需求分析1.实验目的:1)根据所选定题目进行需求分析工作;2)通过实例掌握结构化数据流分析技术;3)进行业务需求分析、用户需求、功能需求、非功能需求分析;4)写出需求规格说明书(含数据流图)2.实验要求:要求做到使用结构化数据流分析技术分析课题需求,写出详细的数据流图和数据字典,数据流图的基本处理的个数不得少与5个。3.实验内容:用结构化数据流分析技术进行软件系统需求分析,得出系统得数据流图和数据字典。4.实验步骤:1)到相关单位进行需求分析。2)综合利用Internet网和相关书籍整理并完善需求分析。3)画出系统数据流图(分清系统是事务型还是加工型)。4)得出系统数据字典。5.实验学时:2学时。6.实验结果:上交实验报告。7.报告内容除了实验项目名称、实验目的、实验内容、实验步骤外,还应该有以下内容:�软件系统需求描述:(从功能,性能上进行描述)�软件系统数据流图(由加工、数据流、文件、源点和终点四种元素组成):�顶层数据流图�1层数据流图�2层数据流图�软件系统数据字典:�数据流条目�加工条目�文件条目�实验小结实验四:项目总体设计1、实验目的用比较抽象概括的方式确定系统如何完成预定的任务;确定组成系统的每个程序结构。2、方法原理用word写文档、用visio画图。3、主要实验仪器及材料计算机、Windows系列操作系统、Office软件、RationalRose或Visio等分析建模工具。4、实验内容首先进行系统设计,从数据流图出发设想完成系统功能的合理物理方案;软件结构设计,确定软件由哪些模块组成以及这些模块之间的动态调用关系;利用层次图和结构图描绘软件结构。实验五:软件详细设计1.实验目的:1)完成系统的总体设计;2)完成系统的详细设计工作;3)完成主要程序(标识符)设计说明;4)写出详细设计说明书;2.实验要求:确定应该如何具体地实现所要求的系统,从而在编码阶段可以把这个描述直接翻译成用具体的程序语言书写的程序。3.实验内容:进行软件系统的结构设计、逐个模块的程序描述(包括各模块的功能、性能、输入、输出、算法、程序逻辑、接口等等)4.实验步骤:1)首先进行程序系统的结构设计。2)然后对主要程序进行描述。注:应该同时进行用户界面设计。5.实验学时:4学时。6.实验结果:上交实验报告。7.报告内容除了实验项目名称、实验目的、实验内容、实验步骤外,还应该有以下内容:�软件系统其中的3个模块的详细设计(画程序流程图)�程序描述�实验小结实验六:软件测试1、实验目的了解软件测试的重要性和目的;通过软件测试诊断并改正错误,开发出高质量的完全符合用户需要的软件。2、方法原理用word写文档、用VC调试程序。3、主要实验仪器及材料计算机、Windows系列操作系统、Office软件、RationalRose或Visio等分析建模工具。4、实验内容设计测试方案单元测试集成测试软件调试编码实现该程序。1.实验目的:1)通过实例使同学们掌握软件测试的一般步骤。2)进行黑盒、白盒测试试用例设计,形成测试用例表;3)进行黑盒测试,得出测试记录;4)进行白盒测试,得出测试记录;5)写出测试报告。2.实验要求:要求掌握如何设计测试方案、撰写测试说明书,并掌握程序修改的常用技术。要求对上一实验所编的程序进行测试,要分步进行,要有较详细的测试说明书,要测试通过。3.实验内容:用课堂上介绍的方法,对上一实验的程序,进行测试,并要测试通过,然后撰写软件测试说明书。4.实验步骤:1)首先设计测试方案(分别采用白盒法和黑盒法)。2)进行测试。3)对于出错的程序进行修改。4)并不断循环直至程序符合要求。5)写出测试说明书。6)软件使用手册。5.实验学时:2学时。6.实验结果:上交内容有:程序源代码、编译打包后系统、软件使用手册等所有软件成份。7.报告内容除了实验项目名称、实验目的、实验内容、实验步骤外,还应该有以下内容:�测试项目�设计测试用例15个(白盒法10个,黑盒法5个)�对所开发软件测试结果的评介�实验小结实验七:软件开发1.实验目的:1)熟练使用一种高级语言进行软件开发实习。2)本部门主要是编码。2.实验要求:要求掌握使用一种高级语言进行软件开发,掌握程序编写、调试、修改等常用技术。要求对所编的程序进行测试,要分步进行。3.实验内容:用自己熟悉的高级语言开发一个小型软件。4.实验步骤:1)完成前面所有实验2)数据库建立3)程序代码编写4)系统运行。5.实验学时:8学时。6.实验结果:本课不交作业,最后形成一个完整软件上交。五、考核方法1.教师对学生实验过程完成情况进行详细登记,记入实验成绩中。2.学生完成实验后按要求撰写实验报告,根据实验报告确定每次实验的等级。3.实验成绩按20%比例计入课程期评总成绩中。六、实验指导书及主要参考书目自编实验指导书[1]殷人昆等编著,《实用软件工程》,q清华大学出版社,20111年11月第3版[2]张海藩编著,《软件工程》(第二版),人民邮电出版社,2006年1月第2版[3]郑人杰等编著,《实用软件工程》(第二版),清华大学出版社,1997年4月第2版[4]MarkFewster&DorothyGraham著,舒智勇等译,《软件测试自动化技术与实例详解》,电子工业出版社,2000年1月主撰人:审核人:附录一:实验题目(1)学生管理系统(2)图书借阅系统(3)人事管理系统(4)汽车导航系统(5)机房管理系统(6)工资管理系统(7)银行储蓄管理系统(8)商店管理系统(9)机票订购系统(10)图书分销系统(11)网络书店(12)网络商店(13)客户管理系统(14)设备管理系统(15)科研成果管理系统(16)大学排课系统(17)网络消息发布系统(18)电子表决系统(19)网上掀起系统(20)试题管理系统附录二:软件开发文档指南1可行性研究报告可行性研究报告的编写目的是:说明该软件开发项目的实现在技术、经济和社会条件方面的可行性;评述为了合理地达到开发目标而可能先择的各种方案;说明论证所选定的方案。可行性研究报告的编写内容要求如下:1.1引言1.1.1编写目的1.1.2背景1.1.3定义1.1.4参考资料1.2可行性研究的前提1.2.1要求1.2.2目标1.2.3条件、假定和限制1.2.4进行可行性研究的方法1.2.5评价尺度1.3对现有系统的分析1.3.1数据流程和处理流程1.3.2工作负荷1.3.3费用开支1.3.4人员1.3.5设备1.3.6局限性1.4所建议的系统1.4.1对所建议系统的说明1.4.2数据流程各处理流程1.4.3改进之处1.4.4影响1.4.4.1对象设备的影响1.4.4.2对软件的影响1.4.4.3对用户单位机构的影响1.4.4.4对系统动行的影响1.4.4.5对开发的影响1.4.4.6对地点和设施的影响1.4.4.7对经费开支的影响1.4.5局限性1.4.6技术条件方面的可行性1.5可选择其他系统方案1.5.1可选择的系统方案11.5.2可选择的系统方案2……1.6投资及收益分析1.6.1支出1.6.1.1基本建设投资1.6.1.2其他一次性支出1.6.1.3非一次性支出1.6.2收益1.6.2.1一次性收益1.6.2.2非一次性收益1.6.2.3不可定量的收益1.6.3收益/投资比1.6.4投资回收周期1.6.5敏感性分析1.7社会条件方面的可行性1.7.1法律方面的可行性1.7.2使用方面的可行性1.8结论2项目开发计划编制项目开发计划的目的是用文件的形式,把对于在开发过程中各项工作的负责人员、开发进度所需经费预算、所需软、硬件条件等问题作出安排记载下来,以便根据本计划开展和检查本项目的开发工作。编制内容要求如下:2.1引言2.1.1编写目的2.1.2背景2.1.3定义2.1.4参考资料2.2项目概述2.2.1工作内容2.2.2主要参加人员2.2.3产品及成果2.2.3.1程序2.2.3.2文件2.2.3.3服务2.2.3.4非移交产品2.2.4验收标准2.2.5完成项目的最迟期限2.2.6本计划的审查者与批准者2.3实施总计划2.3.1工作任务的分解2.3.2接口人员2.3.3进度2.3.4预算2.3.5关键问题2.4支持条件2.4.1计算机系统支持2.4.2需要用户承担的工作2.4.3需由外单位