《软件工程实验》实验指导书2016
《软件工程》实验指导书

《软件工程》实验讲义一、实验的性质、目的与任务1、实验性质《软件工程》实验是一门专业课实验,是软件工程专业学生接收软件开发实践能力培养的开端,要求学生通过本课程实验,了解从事软件开发的基本过程及基本方法,从而具有从事软件开发的基本技能。
2、实验的目的培养与提高学生从事软件开发的基本技能、独立思考以及分析问题和解决问题的能力,提高系统设计的能力。
3、实验的任务通过实验,使学生进一步掌握《软件工程》课程的基本原理和方法,加深对《软件工程》理论知识的理解和掌握。
二、实验内容与学时分配三、实验内容与实验要求实验一需求分析实验目的:会写需求说明;熟悉数据流图;熟悉数据库设计实验内容:假设某美国大学共有200名教师,校方与教师工会签定了一项协议。
按照协议,所有年工资超过$26,000(包含26,000)的教师工资保持不变,少于$26,000的教师将增加工资,给每个由此教师所赡养的人(包括教师本人)每年补助$100,此外,教师有一年工龄每年再多补助$50,但是增加后的年工资总额不能多于$26,000。
假设教师的工资档案已经存在,其中有目前的年工资,赡养的人数,雇佣日期等信息。
需要一个计算机程序计算并打印出每名教师的原工资和调整后的工资。
实验要求:(1)画出此系统的数据流图(2)写出需求说明(3)写出上述的工资调整程序设计时请分别采用下属两种算法,并比较二者的优缺点:a搜索工资档案数据,找出年工资少于$26,000的教师,计算新工资,校核是否超过$26,000,存储新工资,印出新旧工资对照表b把工资档案数据按工资从最低到最高的次序排列,当工资数额超过$26,000时即停止排序,计算新工资,校核是否超过$26,000,存储新工资,印出新旧工资对照表(4)你所画出的数据流图适用于哪种算法?实验二设计实验目的:熟悉结构化程序设计中“自顶向下,逐步求精“方法实验内容:设计一程序,要求用筛选法求100以内的素数,筛选法就是从2到100中去掉2,3,……9,10的倍数,剩下的就是100以内的素数,已知该程序的功能框架如下:main( ){建立2到100的数组A[],其中A[i]=i;建立2到10的素数表B[],其中存放2到10以内的素数;若A[i]=i是B[]中任一数的倍数,则剔除A[i];输出A[]中所有没有被剔除的数;实验要求:(1)将上述框架中的每一个加工语句进一步细化成一个循环语句,并直接用程序设计语言表示出来;(2)画出程序流程图;(3)说明“自顶向下,逐步求精“方法的优点实验三:编码实验目的:非结构化程序改为结构化程序;流程图;伪代码实验内容:研究下面的伪码程序:loop: set i to (start+finish)/2if table(i)=item goto foundif table(i)<item set start to (i+1)if table(i)>item set finish to (i-1)if (finish-start)>1 goto loopif table(start)=item goto foundif table(finish)=item goto foundset flag to 0goto donefound :set flag to 1done:exit实验要求:(1)画出程序流程图(2)程序是结构化的吗?说明理由(3)若程序是非结构化的,请设计一个等价的结构化程序且画出流程图(4)此程序的功能是什么?它完成预定功能需要什么隐含的前提条件吗?(5)上机实践并进行测试实验四黑盒测试实验目的:了解黑盒测试方法实验内容:输入三个正整数,判断他们是否构成三角形,如果构成进一步判断三角形的性质:等边,等腰或者一般。
软件工程实验指导书

软件工程实验指导书1. 实验目的本实验旨在帮助学生掌握软件工程的基本概念和方法,并能够运用这些知识解决实际问题。
通过完成本实验,学生应能够:•理解软件工程的基本原理和目标•掌握软件开发过程的各个阶段和相关工具•学会使用常见的软件工程技术和方法•进行基于实际问题的软件开发和测试2. 实验环境为了完成本实验,你需要具备以下环境和工具:•一台安装了操作系统的计算机•编程工具,如IDE(集成开发环境)或文本编辑器•版本控制工具,如Git•软件测试工具,如Junit3. 实验内容本实验共分为以下几个部分:3.1 实验准备在开始实验之前,你需要做一些准备工作:1.设置实验环境:确保你的计算机环境已经设置,包括操作系统、开发工具和测试工具。
2.下载实验资料:从实验指导书所提供的资源中下载所需的实验资料,包括代码模板和测试数据。
3.2 需求分析在本部分,你将对所给定的问题进行需求分析。
需求分析是软件工程中非常重要的一步,它有助于我们理解问题的本质、用户的需求以及系统的功能需求。
你需要仔细阅读问题描述,将问题抽象成准确的需求描述,并将其写入需求文档中。
3.3 系统设计在本部分,你将根据需求文档进行系统设计。
系统设计是将需求转化为可执行代码的关键步骤。
你需要确定系统的整体架构、模块划分和接口设计。
3.4 编码和测试在本部分,你将根据系统设计进行编码,并进行相应的测试。
编码是将系统设计转化为实际代码的过程,测试是确保代码的正确性和可靠性的重要手段。
3.5 系统部署与维护在本部分,你将完成系统的部署和维护工作。
系统部署是将开发完成的系统部署到实际运行环境中的过程,维护是保证系统正常运行并及时修复可能存在的问题。
4. 实验报告完成实验后,你需要撰写一个实验报告,报告内容需要包括以下几个方面:•实验目的和背景•实验环境和工具•实验步骤和结果•实验心得和体会请使用Markdown格式撰写实验报告,并附上相应的代码和测试结果。
《软件工程》实验指导书

《软件工程》实验指导书一.内容提要《软件工程》课程是一门非常重要的专业课,它的任务是培养学生计算机软件开发与应用的综合能力。
通过实验课程的嵌入使本课程不在枯燥乏味,学生们在课上学习的理论知识可以通过实验课进行吸收和升华。
实验教学主要让学生采用面向对象的软件开发方法,通过对所选系统进行分析、设计使学生理解并运用面向对象的思想开发软件,学会使用UML 统一建模语言进行面向对象分析和设计阶段的模型开发。
二.实验题目运用UML进行系统分析与设计—图书管理系统的分析与设计。
三.实验内容实验一需求分析【实验目的】熟悉和掌握需求规格说明书所包含的内容。
【实验要求】根据所给的文档,结合我校的图书管理系统,写需求规格说明书。
项目背景编写目的可行性分析系统需求:主要体现功能需求(涉及到的模型(用例图等)等到学完该知识点之后再补充上)。
【设计重点】按照论文要求排版(字体、段落的格式)实验二面向对象分析与设计(一)【实验目的】1.学会运用UML进行软件系统的分析与设计。
2.熟悉和掌握Rose软件。
【实验要求】建立图书管理系统的功能性分析模型(即建立用例模型):用例图、活动图。
用例图:系统的完整用例图。
活动图:建立关键用例的活动图。
实验三面向对象分析与设计(二)【实验目的】1.学会运用UML进行软件系统的分析与设计。
2.熟悉和掌握Rose软件。
【实验要求】建立图书管理系统的对象分析模型(发现定义类对象):类图、状态图、顺序图或协作图。
类图:系统的完整类图。
状态图:建立对复杂对象的状态图。
顺序图或协作图:对类中的某些方法建立顺序图或协作图。
实验四面向对象分析与设计(三)【实验目的】1.学会运用UML进行软件系统的分析与设计。
2.熟悉Rose的双向工程:正向工程和逆向工程。
【实验要求】建立图书管理系统的实现模型:部署图。
使用Rose的正向工程将系统中的类图生成Java代码。
附:参考文档。
《软件工程》实验指导书(软件操作类)

《—软件工程—》实验指导书编写适用专业:计算机科学与技术网络工程湖南人文科技学院计算机科学技术系年月前言《软件工程》是计算机科学与技术专业本科生的一门实践性较强的专业必修课程。
软件工程实验是验证,巩固和补充课堂讲授的理论知识,是《软件工程》课程中一个重要的,不可或缺的实践环节。
其目的是使学生能够针对具体软件工程项目,全面掌握软件工程管理,软件需求分析,软件初步设计,软件详细设计等阶段的方法和技术。
通过实验训练,达到以下目的:使学生进一步了解和掌握软件工程原理,提高对实际项目的分析和设计能力,通过实验课程,熟悉和基本掌握软件工程方法学,软件开发的过程,文档资料的编写格式及规范,全面领会和贯通所学习的理论知识,从而培养学生综合运用所学课程知识,分析解决问题的能力,培养学生进行软件开发的能力,培养学生的合作意识和团队精神,培养学生对技术文档的编写能力, 从而使学生提高软件工程的综合能力,提高软件项目的管理能力.实验总体要求软件工程实验要求学生采用"项目小组"的形式,结合具体的开发项目进行设计。
具体要求如下:1.班级按项目小组进行分组,每组不得超过6人2.每个项目小组选出项目负责人或项目经理,由项目经理召集项目组成员讨论,选定开发项目3.项目中的每项任务要落实到人且规定该任务的起止日期和时间4.题目自定或由教师提供相关课题目录实验一:项目可行性分析 (1)实验二:项目需求分析 (2)实验三:项目总体设计 (3)实验四:项目详细设计及编码实现 (4)实验五:软件测试 (6)实验一:项目可行性分析实验学时:2实验类型:设计实验要求:必修一、实验目的通过对待实施项目进行全面分析,撰写项目的可行性分析报告,掌握可行性研究的有关概念和具体分析过程,并明确从哪些方面进行可行性分析;掌握软件项目成本效益分析的常用手段;使学生掌握可行性研究报告的书写格式、注意事项和研究内容。
二、实验内容布置“运动会信息管理系统可行性分析”或其它类似题目,到应用现场进行实际调查,了解用户业务情况、数据、网络和需求情况,对问题进行可行性分析,开展可行性研究,并编写出可行性分析报告。
软件工程试验指导书

软件工程试验指导书1. 实验目的本实验旨在通过实践,让学生们了解和掌握软件工程的基本概念、原理和方法,培养学生们的软件开发和项目管理能力。
2. 实验前准备2.1 软件工具安装在进行本实验之前,需要安装以下软件工具:•IDE(集成开发环境): 推荐使用Eclipse、Visual Studio Code等流行的开发工具。
•版本控制工具:Git。
2.2 实验材料准备在实验开始之前,需要准备以下材料:•一台个人电脑;•一个Github账号;•需求文档或项目需求说明书。
3. 实验步骤3.1 创建项目1.在Github上创建一个新的仓库,用于存放本次实验的代码和文档。
2.将该仓库Clone到本地计算机。
3.2 进行需求分析1.根据实验的要求和提示,详细阅读需求文档或项目需求说明书。
2.理解并分析需求,确定项目的功能和范围。
3.3 设计系统架构1.根据需求分析的结果,设计系统的基本架构。
2.利用UML语言或其他适当的方式,绘制系统的概念模型、用例图等。
3.4 编写代码1.根据需求和设计,编写代码实现项目的功能。
2.在代码中遵循软件工程的相关规范和最佳实践。
3.5 进行单元测试1.编写测试用例,对项目的各个模块进行单元测试。
2.测试用例覆盖率应尽可能高,并覆盖边界情况。
3.6 代码审查和修改1.邀请同组同学或其他学生进行代码审查。
2.对审查结果进行对比和分析,进行代码修改和优化。
3.7 完成项目文档1.根据实验要求,编写完整的项目文档,包括系统设计、实施计划、测试报告等。
2.将文档保存到Github仓库的相应目录下。
3.8 提交代码和文档1.将代码和文档Commit到本地仓库。
2.将本地仓库的修改Push到Github仓库。
4. 实验注意事项•在进行实验前,务必仔细阅读实验要求和提示。
•在实验过程中,遇到问题请及时向教师或助教寻求帮助。
•实验结束后,务必按时提交实验报告,否则将扣分。
5. 实验总结通过本次实验,学生们能够学习到软件工程的基本概念、原理和方法,并能通过实践应用到实际项目中。
软件工程实验指导书

软件工程实验指导书实验一软件的问题定义及可行性分析一、实验类型:验证二、实验目的与任务:通过本次实验,掌握需求调查与可行性研究的方法、过程和步骤,加深对可行性分析有关理论的理解,为学习后面的需求分析与软件设计打下一个良好的基础。
三、预习要求:要求学生实验前要认真消化书本和课堂教学内容,精心准备本次实验。
四、实验基本原理:可行性研究任务和过程,学生掌握可行性研究的有关概念和具体分析过程,并明确从哪些方面进行可行性分析,成本效益分析的技术,掌握软件项目成本效益分析的常用手段。
五、实验仪器及设备(或工具软件):1. 硬件环境 :PC 机2. 软件环境 :Windows环境,C语言系统或其它语言工具六、实验内容:1、选定需模拟开发的软件课题。
2、对选定的课题进行问题定义。
3、对选定的课题进行可行性分析。
七、实验步骤:(1) 围绕题目独立进行需求收集、分析(2) 提出解决问题的初步方案(3) 从技术、操作、经济等方面进行可行性分析(4) 独立写出需求调查与可行性分析报告八、注意事项:注意软件的使用,保护电脑九、实验报告要求:条理清晰,字迹工整实验二软件的需求分析一、实验类型:验证性实验二、实验目的与任务:要求学生熟练掌握MATLAB最优化工具箱函数的选用,学会函数linprog的调用格式。
并根据算法步骤设计计算程序以求解具体问题。
三、预习要求:掌握软件的需求分析报告的书写方法和技术要求。
四、实验基本原理:需求分析的基本过程和分析建模方法,数据流图、数据字典软件结构图等概念,软件设计的具体过程和原理五、实验仪器及设备(或工具软件):1 硬件环境 :PC2 软件环境 : Windows环境,C语言系统或其它语言工具六、实验内容:1、实现实验一选定的课题的进行需求分析。
2、实现最后的分析报告,主要是数据流图和数据字典。
七、实验步骤:1.围绕指定的题目到相关单位进行需求分析;2.综合利用Internet网和相关书籍整理并完善需求分析;3.画出系统数据流图(分清系统是事务型还是加工型);4.得出系统数据字典;5.写出需求分析说明书和软件设计说明书。
软件工程实验指导书_2

软件工程实验指导书一、实验的目的与要求开设“软件工程实验”的主要目的是培养学生综合应用所学专业知识及计算机知识的能力,训练和提高软件开发技能。
要求每个学生在规定时间内必须完成一个规模适当的应用软件系统;在教师的指导下以软件设计为中心,布置大型模拟案例,将学生划分为若干组,分工合作,共同完成该模拟项目,独立地完成从需求分析、软件设计、编码到软件测试运行的软件开发全过程。
训练学生的分析能力、开发能力、组织能力、表达能力,以及培养团队精神。
通过软件开发的实践实现以下基本目标:1.深化已学的知识,完成从理论到实践的转化通过软件开发的实践,进一步加深对软件工程方法和技术的了解,将软件工程的理论知识运用于开发的实践,并在实践中逐步掌握软件工具的使用。
2. 提高分析和解决实际问题的能力实验不仅是软件工程实践的一次模拟训练,同时通过软件开发的实践,积累经验,提高分析和解决问题的能力。
3.培养“开拓创新”能力大力提倡和鼓励在开发过程中使用新方法,新技术。
激发学生实践的积极性与创造性,开拓思路,设计新算法,进行新创意,培养创造性的工程设计能力。
二、参加实验的学生应具备的条件参加实验的学生应当具备计算机软件设计的一些基础的知识。
即学生应当熟练掌握和使用一种计算机操作系统(windows操作系统等)、一种程序设计语言(vb、vc、pb、delphi, 数据库管理系统:Access,SQL Server,visio软件等)。
三、实验要求实验的要求体现于整个工作的各个阶段中,可根据所选课题的特点而有所侧重,但应达到如下的基本要求:(1) 根据课题任务制定合理、可行的工作计划任务;(2) 制定适当的技术方案;(3) 学生在老师的指导下独立完成设计过程;(4) 撰写实验报告(包括实验内容中各个阶段所要求的文字材料);(5) 通过实验检查评定;四、实验项目与内容提要五、实验课程考核办法1、该实验课程考核成绩按百分制计算,满分为100分,60分为及格,60分以上者可获取该学分。
《软件工程》实验指导书

《软件工程》实验指导书《软件工程》试验指导序论软件工程是对软件开发、运作、维护、退役的系统研究方法。
在整个计算机科学中占有举足轻重的地位。
软件工程试验将软件工程的概念和理论知识融入到实践当中,从而加深对软件工程知识的认识和理解。
本指导书内容包含了软件生命周期中的各个阶段,内容设计软件工程计算环境、软件工程国家标准、软件开发绘图工具Microsoft Visio、软件分析建模工具Sybase Powerdesinger、软件自动化测试Mercury Interactive WinRunner、软件项目管理Microsoft Project 和软件配置管理软件Microsoft Visual SourceSafe等。
整个指导书共含7试验,其中每一个试验都包含背景知识介绍、所需工具、准备工作和试验步骤等。
第一种软件工程工具以环境一、试验目的1.理解软件工程的基本概念,熟悉软件,软件生命周期,软件生存周期过程和软件生命周期各阶段的定义和内容2.通过Internet搜索与浏览,了解网络环境中主流的软件工程技术网站,掌握通过专业网站不断丰富软件工程最新知识的学习方法,尝试通过专业网站的辅助与支持开展软件工程应用实践。
3.熟悉软件工具、软件开发环境和CASE工具4.了解GB/T15853-1995《软件支持环境》相关内容二、试验内容与步骤1.查阅有关资料,给出“软件”的权威定义2.查阅有关资料,给出“软件生命周期”的权威定义3.查阅有关资料,给出“软件生存周期过程”的权威定义4.上网搜索和浏览,了解软件工程技术的应用情况,记录所浏览网站的技术支持工作。
5.查阅有关资料,给出“软件工具”、“软件开发环境”、“CASE工具”的权威定义6.填写下列学术术语的英文简写,并思考、理解其含义7.软件开发环境8.软禁工程环境9.软件支持环境10.软件项目支持环境11.软件自动开发环境12.集成化程序设计环境13.通过查阅资料给出GB/T15853-1995《软件支持环境》规定的软件支持环境的基本要求14.了解Microsoft Visio的应用状况15.了解Rational Rose的应用状况16.了解Oralce Designer的应用状况17.了解Together Soft的应用状况18.了解CASE Studio的应用状况19.了解Sybase PowerDesigner的应用状况20.了解Microsoft Visual SourceSafe的应用状况三、学时分配2学时四、要求必做五、性质验证六、所需仪器设备微机、网络七、试验总结八、试验评价(教师)第二章软件工程标准化一、试验目的1.熟悉和掌握软件工程标准化的概念、内容和意义2.了解那些支持国家标准和其他标准信息的专业网站3.较为系统全面的了解软件工程相关的国家标准1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、20、一、二、三、四、五、六、七、八、九二、试验内容与步骤1.上网浏览和检索标准化专业网站,并记录标准化专业网址,网站名称,内容描述2.了解软件工程标准化的概念3.了解软件工程的国家标准1)GB/T8566-20012)GB/T8567-19883)GB/T9385-19884)GB/T9386-19885)GB/T1526-19896)GB/T11547-19897)GB/T12504-19908)GB/T12505-19909)GB/T14079-199310)GB/T16680-199611)GB/T15532-199512)GB/T14394-199313)其他三、学时分配2学时必做五、性质验证六、所需仪器设备微机、网络七、试验总结八、试验评价(教师)第三章软件开发绘图工具Visio一、试验目的1.了解Visio工具软件的功能特色、安装、工作环境和基本操作等各方面的基本知识2.掌握应用Visio工具绘制软件开发图形的基本操作3.了解开发Visio解决方案的基本概念4.学习应用Visio工具绘制UML模型图、网络图、网站图等图形二、试验内容与步骤与步骤1.了解Visio的工作环境1)工作窗口2)视窗调整3)任务窗口4)小视窗2.了解菜单项3.了解定位工具4.了解工具栏5.了解文件操作6.了解绘图页面操作7.绘制一个C程序流程图8.针对一个实际网络开发,部署,维护过程建立:1)用例图2)类图4)状态图5)时序图6)协作图7)活动图8)构件图9)部署图10)用例视图11)逻辑视图12)构件视图13)并发视图14)部署视图九、学时分配4学时十、要求必做十一、性质验证、设计十二、所需仪器设备微机、网络、Microsoft Visio十三、试验总结十四、试验评价(教师)第四章系统分析与建模工具PowerDesigner一、试验目的1.初步了解系统分析与建模工具PowerDesinger的基本概念和操作界面2.了解PowerDesigner的四个模型:业务处理模型、概念数据模型、物理数据模型和面向对象模型及相互关系3.用PowerDesinger工具进行简单系统分析建模操作二、试验内容与步骤与步骤1.启动PowerDesinger2.建立新项目3.建立概念数据模型4.定义实体5.定义属性、属性的约束和算法6.定义关系7.保存并使用Check Model检查E-R图8.使用Generate Physical Data Model选择生成物理数据模型9.建立业务处理模型10.建立面向对象模型三、学时分配4学时四、课程作用――物业管理系统1.需求分析该物业管理系统包含三个核心模块:物业基础资料模块、业主变动处理和物业费用处理模块1)物业基础资料模块是物业系统最基本的部分,此模块包含了如下功能:物业基本信息、维修项目定义、费用定义、小区管理、业主基本信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
了一些 Bug 用于演示,这些 Bug 在注释中都有说明。该类代码如下:
public class Calculator{
private static int result;
// 静态变量,用于存储运行结果
public void add(int n) { result = result + n; }
public void substract(int n) {
实验一 结对编程
一、实验目的
1)体验敏捷开发中的两人合作。 2)进一步提高个人编程技巧与实践。
二、实验内容及要求
1)选择一个程序实例,练习结对编程(pair programming)实践; 2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。 3)要求在结对编程工作期间,两人的角色至少切换 4 次; 4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。
用安装就可以在项目中测试相关的类,并且可以调试测试用例和被测类。下面以实例说明,如
何建立一个基于 JUnit4 的测试项目,对一个类当中的多个方法进行单元测试。
(1)新建一个名为 JUnitTest 的项目,在其中编写一个 Calculator 类,这是一个能够简单实
现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。这个类中我们故意保留
“Run As ——>JUnit Test”来运行我们的测试,运行结果如下:
进度条是红颜色表示发现错误,具体的测试结果在进度条上面有表示“共进行了 4 个测试, 其中 1 个测试被忽略,一个测试失败”。
游戏在一个类似于围棋棋盘一样的,可以无限延伸的二维方格网中进行。例如,设想每个 方格中都可放置一个生命细胞,生命细胞只有两种状态:“生”或“死”。图中,用黑色的方 格表示该细胞为“死”, 其它颜色表示该细胞为“生” 。游戏开始时, 每个细胞可以随机地(或 给定地)被设定为“生”或“死”之一的某个状态, 然后,再根据如下生存定律计算下一代每 个细胞的状态:
5 考核方式
结合平时考查,以实验实际操作的优劣、提交的文档和程序等作为考核依据。 实验成绩按五级制评分,课程结束,以学生实际实验工作能力的强弱作为评定成绩 的主要依据。
最终成绩 100% = 平时成绩 10% + 实验成绩 70% + 课程总结(含案例)20%
6 推荐教材及参考资料
1)《软件工程基础实验指导书》 自编 2)《构建之法:现代软件工程》,邹欣,人民邮电出版社,2015 3)《UML 与 Enterprise Architect 7.5 团队开发实务手册》,赖信仁著,UMLChina 改 编,电子工业出版社,2010 4)《零成本实现 Web 性能测试:基于 Apache JMeter 》温素剑编,电子工业出版 社,2012
每个细胞的状态由该细胞及周围 8 个细胞上一次的状态所决定; 如果一个细胞周围有 3 个细胞为生,则该细胞为生,即该细胞若原先为死则转为生, 若原先为生则保持不变; 如果一个细胞周围有 2 个细胞为生,则该细胞的生死状态保持不变; 在其它情况下,该细胞为死,即该细胞若原先为生则转为死,若原先为死则保持不变。 (2)推箱子游戏 在一个 M*N 的房间里有一个箱子和一个搬运工,搬运工的工作就 是把箱子推到指定的位置。注意:搬运工只能推,不能拉。因此,如右 图所示,箱子被推到一个角上,那么就不能再被移动了,如果箱子被推 到一面墙上,那么箱子只能沿着墙移动。 要求:现在给定房间的结构、箱子的位置、搬运工的位置和箱子要 被推去的位置,请计算出搬运工至少要推动箱子多少格? 输入:输入数据的第一行是一个整数 T(1<=T<=20),代表测试数据 的数量。然后是 T 组测试数据,每组测试数据的第一行是两个正整数 M,N(2<=M,N<=7),代表房间的大小。然后是一个 M 行 N 列的矩阵,代表房间的布局,其 中 0 代表空的地板,1 代表墙,2 代表箱子的起始位置,3 代表箱子要被推去的位置,4 代表搬 运工的起始位置。 输出:对于每组测试数据,输出搬运工最少需要推动箱子多少格才能帮箱子推到指定位置, 如果不能推到指定位置则输出-1。
@RunWith(TestClassRunner.class) public class CalculatorTest {
private static Calculator calculator=new Calculator(); @Before public void setUp() throws Exception {
(3)生成 JUnit 测试框架:在 Eclipse 的 Package Explorer 中用右键点击该类弹出菜单,选 择“JUnit 测试用例”。在弹出的对话框中,进行相应的选择,如下图所示:
点击“下一步”后,系统会自动列出你 这个类中包含的方法,选择你要进行测试的 方法。此例中,我们仅对“加、减、乘、除” 四个方法进行测试。如右图所示:
2 实验项目及学时分配
序号
实验项 目 名称
1 结对编程
2 单元测试
3 代码评审与程序性能优化
4 UML 建模工具的安装与使用
5 UML 系统分析与设计
6 系统测试
7 Git 实战
实验学时 每组人数 实验类别 实验类型
4
2
专业基础 验证与设计
4
2
专业基础 验证与设计
4
2
专业基础 验证与设计
4
1
专业基础 验证与设计
result = result - 1; //故意的 Bug,应该是 result =result-n
}
public void multiply(int n) { } // 假设此方法在项目完成过程中尚未写好
public void divide(int n) { result = result / n; }
calculator.clear(); } @After public void tearDown() throws Exception { } @Test(timeout=1000) public void testAdd() {
calculator.add(2); calculator.add(3); assertEquals(5, calculator.getResult()); } @Test public void testSubstract() { calculator.add(10); calculator.substract(2); assertEquals(8,calculator.getResult()); } @Ignore("Multiply() Not yet implemented") @Test public void testMultiply() { } @Test(expected =ArithmeticException.class) public void testDivide() { calculator.add(8); calculator.divide(0); assertEquals(4,calculator.getResult()); } } (4)运行测试代码:按照上述代码修改完毕后,我们在 CalculatorTest 类上点右键,选择
之后系统会自动生成一个新类 CalculatorTest,里面包含一些空的测试用例。 你只需要将这些测试用例稍作修改即可使 用。
完整代码如下: package andycpp; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.junit.internal.runners.TestClassRunner; import org.junit.runner.RunWith;
三、示例程序问题描述
(1)生命游戏 生命游戏是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机,它包括一个二维矩
形世界,这个世界中的每个方格居住着一个活着的或死亡的细胞。一个细胞在下一个时刻生死 取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个 细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因太孤单 而死去。
4 实验组织
所有实验均以个人独立完成,或两人结对协作的方式展开,在实验室环境下进 行。实验指导教师帮助学生熟悉各类软件工具,培养符合软件工程方法的软件开发 技能;督促学生在正式实验前进行适当的预习或准备,在实验过程中按照实验步骤 积极动手进行实验操作,深入思考、分析和讨论,在课堂外再进行一定时间的练习, 按各个实验的具体要求完成和提交实验成果,增强解决实际问题的能力。
个项目:在该项目上点右键,点“属性”,
如右图所示:
(3)在弹出的属性窗口中,首先在左边选择“Java Build Path”,然后到右上选择“Libraries” 标签,之后在最右边点击“Add Library…”按钮,如下图所示:
然后在新弹出的对话框中选择 JUnit4 并点击确定,如上图所示,JUnit4 软件包就被包含进 我们这个项目了。
public void square(int n) { result = n * n; }
public void squareRoot(int n) { //求平方根
for (; ) //Bug : 死循环
}
public void clear() { // 将结果清零
result = 0;
}
}
(2)将 JUnit4 单元测试包引入这
实验六:系统测试 实验七:Git 实战
在初步掌握 JMeter 系统测试工具的使用方法之后,通过 对一个软件实例来组织测试,以进一步熟悉 JMeter; 通过分析和采用适当的测试用例去发现程序中的错误, 提高软件测试的实践能力。 学习软件配置管理工具 Git 的相关内容;我们知道版本 控制,对于大中型软件系统的开发;利用假想的 IT 项 目,介绍该软件的使用方法。