1软件工程实验指导书前言软件工程实验是为计算机相关专业本科《软件工程》课程配套设置的,是《软件工程》课程讲授中一个重要的、不可或缺的实践环节。其目的是使学生能够针对具体软件工程项目,全面掌握软件工程管理、软件需求分析、软件初步设计、软件详细设计、软件测试等阶段的方法和技术,通过该课程设计使学生进一步理解和掌握软件开发模型、软件生命周期、软件过程等理论在软件项目开发过程中的意义和作用,培养学生按照软件工程的原理、方法、技术、标准和规范,进行软件开发的能力,培养学生的合作意识和团队精神,培养学生对技术文档的编写能力,从而使学生提高软件工程的综合能力,提高软件项目的管理能力。按该课程的特点,实验内容包括软件开发的两大方法学的专题训练,即结构化(生命周期学)的方法学和面向对象的方法学,通过对一个简单项目,要求学生利用结构化软件开发技术或面向对象的软件开发技术完成对该项目的开发。因此设置五个实验项目,从项目发的准备工作,系统分析过程,系统设计过程,软件测试到系统实施,覆盖软件开发的整个过程,此外又引入我国国家《计算机开发规范》,以规范技术文档的书写标准,提高实验教学质量。通过实验训练,达到如下目的:使学生进一步了解和掌握软件工程原理,提高对实际项目的分析和设计能力,通过实验课程,熟悉和基本掌握软件工程方法学、软件开发的过程,文档资料的编写格式及规范,全面领会和贯通所学习的理论知识,从而培养学生综合运用所学课程知识,分析解决问题的能力,培养学生理论联系实际作风,实事求是,严肃认真的科学态度和良好的工作作风,为今后从事科学研究工作打下基础。2软件工程实验报告专业:班级:学号:姓名:指导老师:3实验一:软件开发的过程计划实验课时:4课时一、实验目的项目计划的目的是为项目的研发和管理工作制定合理的行动纲领,以便所有相关人员按照计划有条不紊地开展工作。⑴估计项目的总体规模、工作量和成本。⑵制定项目计划,重点放在产品生命周期中的主要关键任务。⑶制定项目时间表和预算。二、实验环境1.硬件环境P4以上的个人计算机环境,要求内存不少于512MB,硬盘不小于20G.。2.软件环境操作系统:WindowsXP数据库:SqlServer2000以上或Access2003以上3.通用工具软件通用绘图工具:MicroSoftVisio2003以上文本编辑工具:MicroSoftWord2003以上4.CASE工具UML建模工具:RationalRose2000三、实验要求、实验内容1、实验要求:在进行实验之前,必须掌握软件开发过程的一些基础知识,准备参考资料和阅读相关的过程模型的文档。2、实验内容熟悉RUP(RationalUnifiedProcess)软件开发统一过程的思想,RUP(RationalUnifiedProcess)是由Rational公司(现已是IBM公司的一部分)提出的过程模型,它软件工程史上最完整、最成熟、最优秀的过程模型之一。学习软件开发的组织和管理,将项目开发各阶段的任务明确,掌握各阶段的里程碑,并熟悉相应的工具。4四、思考题1、项目开发首先要做的事是什么?2、你认为该软件应具备的最重要的特性是什么。3、你认为怎样分工是最合理的?五、实验内容:项目背景项目进度:项目资源管理:风险管理:项目后期管理:六、实验小结:5实验二:软件开发可行性分析实验学时:4课时一、实验目的确定所开发项目的可行性和必要性,在此基础上完成系统的数据流图和数据字典文档。给出系统的可行性分析文档。二、实验要求、实验内容1、实验要求⑴实验之前学生应了解本项目的业务流程。⑵学生基本掌握MicrosoftVisio建模工具。2、实验内容:分析项目的业务流程图,掌握用MicrosoftVisio进行功能分析和建模,并绘制数据流图、系统流程图和状态图等。三、思考题1、可行性分析在软件开发中真的有那么重要吗?2、针对所开发项目的数据流图,谈谈数据流图设计的原则。3.怎样组织对可行性分析阶段工作的评审?四、实验内容:1要求1.1功能1.2性能62.目标3.进行可行性研究的方法4.决定可行性的主要因素5.可行性研究5.1技术可行性5.2经济可行性5.3操作可行性五、实验小结:7实验三:软件开发需求分析实验学时:4课时一、实验目的确定所开发项目的需求,在此基础上完善和细化可行性分析中数据流图的功能,可以采用不同的分析工具(如Rose或Visio),完成对项目的分析过程,给出系统的需求分析文档。二、实验要求、实验内容1、实验要求⑴实验之前学生应熟悉本项目的业务流程。⑵学生熟练掌握MicrosoftVisio或RationalRose建模工具。2、实验内容:分析项目的业务流程图,掌握用MicrosoftVisio及RationalRose工具进行功能分析和建模,并绘制数据流图、系统流程图、状态图、用例图、类图、顺序图等。三、思考题1、需求分析在软件开发中真的有那么重要吗?2、怎样组织对需求分析阶段工作的评审?四、实验内容:1.确定对系统的综合要求1.功能需求:2.性能需求:3.接口要求:4.输入要求:5.输出要求:82.分析建模1.数据对象E-R图2.数据流图:3.状态转换图五、实验小结:通过此实验,了解了软件工程中需求分析的知识。9实验四:软件开发系统设计实验学时:4课时一、实验目的⑴掌握体系结构设计的方法。⑵了解用户界面设计的方法。⑶了解数据库设计的方法。⑷了解模块设计的方法。二、实验要求、实验内容1、实验要求在实验之前要求学生掌握关系数据库的数据库设计知识。在实验二、三基础上完成系统的体系结构的建立和系统详细设计,并给出规格说明书。2、实验内容系统设计过程是软件工程的重要组成部分。系统设计是指设计软件系统的体系结构、用户界面、数据库、模块等,指导开发人员去实现能满足用户需求的软件产品。认真分析实验三的结果,给出系统合理的体系结构,描绘系统结构图,合理分工,并合理划分系统的各组成模块,最后给出系统的各部分设计规格说明书。三、思考题1.系统设计和需求分析的关系是什么?两者必须先后关联吗?2.怎样描绘系统的体系结构?3.怎样绘制符合规范的类图?4.怎样组织对设计阶段工作的评审?四、实验内容:1.系统设计目标2.总体设计103.详细设计主要模块设计说明4.功能概要设计五、实验小结:11实验五:软件开发编码与测试实验学时:4课时实验类型:综合性一、目的与任务目的:在实验四的基础上,完成对系统的编码和测试。任务:编码实现软件。正确运用软件测试技术和方法,完成系统的单元测试、综合测试、确认测试、系统测试,掌握测试用例的设计方法,并给出测试报告。二、内容、要求1、实验内容与要求:(1)能够选用合适的编程语言,编码实现实验三中设计的软件功能。(2)熟悉单元测试、综合测试、确认测试、系统测试的方法,掌握测试用例设计方法。(3)树立正确的软件测试思想,培养分析问题、解决问题的能力,提高查询资料和撰写书面文件的能力。三、思考题1.怎样看待测试的重要性。2.怎样选择测试的技术和方案。3.比较逻辑测试和基本路径测试的不同和联系。4.怎样组织对测试阶段工作的评审?四、实验内容:1.软件的界面122.软件的模块代码3.系统测试3.1白盒测试的内容3.2使用白盒测试的情况分析五、实验小结:13附录一:实验要求软件工程实验要求学生采用“项目小组”的形式,结合具体的开发项目进行设计。具体要求如下:1.班级按项目小组进行分组,每组不得超过6人2.每个项目小组选出项目负责人或项目经理,由项目经理召集项目组成员讨论、选定开发项目3.项目中的每项任务要落实到人且规定该任务的起止日期和时间4.每个项目小组必须按照《软件工程实验指导书》附录中给定的文档规范标准提供项目文档5.题目自定或采用附录二中的题目6.软件开发的方法自定(结构化或面向对象的方法学)附录二:实验题目题目一:“教务管理系统之子系统——学院课程安排”1.系统简介每个学期的期中,学校教务处向各个学院发出下各学期的教学计划,包括课程名称、课程代码、课时、班级类别(本科、专科、成人教育、研究生)、班号等;学院教学主管人员根据教学任务和要求给出各个课程的相关限制(如:任课教师的职称、上课的班数、最高和最低周学时数等);任课教师自报本人授课计划,经所在教研室协调任可,将教学计划上交学院主管教学计划的人员,批准后上报学校教务处,最终由教务处给出下个学期全学院教师的教学任务书。假设上述排课过程全部由人工操作,现要求为上述过程实现计算机自动处理过程。2.限定条件(1)每位教师的主讲课程门数不超过2门/学期:讲师以下职称的教师不能承担学院定主课的主讲任务。(2)学院中层干部的主讲课时不能超过4学时/周。14(3本学期出现严重教学事故的教师不能承担下各学期的主讲任务。(4)本系统的输入项至少包括:教务处布置的教学计划,学院教师自报的授课计划和学院定的有关授课限制条件。(5)本系统的输出项至少包括:教务处最终下达全院教师的教学任务书和学院各个班级下各学期的课程表(可以不含上课地点)。题目二:“学校教材定购系统”1.系统简介本系统可以细化为两个子系统:销售系统和采购系统销售系统的主要工作过程为:首先由教师或学生提交购书单,经教材发行人员审核是有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生可以到书库领书。采购系统的主要工作过程为:若是教材脱销,则登记缺书,发缺书单给书库采购人员;一旦新书入库后,即发进书通知给教材发行人员。以上功能要求在计算机上实现。2.技术要求和限制条件(1)当书库中的各种书籍数量发生变化(包括进书和出书)时,都应修改相关的书库记录,如库存表或进/出库表。(2)在实现上述销售和采购的工作过程时,需考虑有关的合法性验证。(3)系统的外部项至少包括:教师、学生和教材工作人员。(4)系统的相关数据存储至少包括:购书表、库存表、缺书登记表、待购教材表、进库表和出库表。题目三:“机票预定系统”1.系统简介航空公司为给旅客乘机提供方便,需要开发一个机票预定系统。各个旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码(护照号码)、旅行时间、旅行始发地和目的地,航班舱位要求等)输入到系统中,系统为旅客安排航班。当旅客交付了预订金后,系统打印出取票通知和帐单给旅客,旅客在飞机起飞前一天凭取票通知和帐单交款取票,系统核对无误即打印出机票给旅客。此外航空公司为随时掌握各个航班飞机的乘载情况,需要定期进行查询统计,以便适当调整。2.技术要求和限制条件15(1)在分析系统功能时要考虑有关证件的合法性验证(如身份证、取票通知和交款发票)等。(2)对于本系统还应补充一下功能:1.旅客延误了取票时间的处理2.航班取消后的处理3.旅客临时更改航班的处理(3)系统的外部输入项至少包括:旅客、旅行社和航空公司。题目四:“学校内部工资管理系统”1.系统简介假设学校共有教职工约1000人,10个行政部门和8个系。每个月20日前各个部门(包括系和部门)要将出勤情况上报人事处,23日前人事处将出勤工资、奖金及扣款清单送到财务处。财务处于每个月月底将教职工的工资表做好并将数据送银行。每个月3日将工资条发给每个单位。若由员工调入或调出、校内调动、离退休变化,则由人事处通知相关部门和财务处。2.技术要求和限制条件(1)本系统的数据存储至少包括:工资表、部门汇总表、扣税款表、银行发放表等。(2)除人事处、财务处外,其他职能部门和系名称可以简化表示。(3)工资、奖金、扣款细节由学生自定义。题目五:“实验室设备管理系统”1.系统简介每学年要对实验室设备使用情况进行统计、更新。其中:(1)对于已彻底损坏的做报废处理,同时详细记录有关信息。(2)对于由严重问题(故障)的要及时修理,并记录修理日期、设备名、编号、修理厂家、修理费用、责任人等。(3)对于急需修改但又缺少的设备,需以“申请表”的形式送交上级领导请求批准购买。新设备购入后要立即进行设备登记(包括类别、设备名、编号、型号、规格、单价、数量、购置日期、生产厂家、保质期和经办人等信息),同时更新申请表的内容。(4)随时对现有设备及其修理、报废情