南昌工程学院《软件工程》实验指导书专业:09信息管理与信息系统余振华编2011年9月1目录实验一模块化程序设计(一)实验二模块化程序设计(二)实验三白盒测试实验四黑盒测试实验五用例图的设计与制作实验六活动图的设计与制作实验七类图的制作实验八状态图的制作2实验一模块化程序设计(一)一、实验目的1、掌握程序设计语言、程序设计语言分类、程序设计语言特点、程序设计语言选择及编程风格。2、熟练掌握模块化程序设计的基本原理,设计结构清晰的程序。3、明确详细设计的任务、详细设计的原则。4、掌握详细设计的方法。包括程序流程图PFC、N-S图、PAD图、HIPO图二、实验设备和仪器电脑、VC++开发环境三、实验内容及要求1、按照模块化程序设计的准则,设计一程序,实现如下功能:给定数组a[]={32,35,3,89,13,434,54,656,2}(1)模块一:实现对数组的排序。(2)模块二:找出数组中最大的数。(3)模块三:找出数组中所有的素数。(4)模块四:计算数组各元素之和。2、认真学习程序处理过程的各种设计工具。包括程序流程图PFC、N-S图、PAD图。四、实验原理及步骤1.实验原理结构化程序设计采用的主要方法就是模块化程序设计,其思想基于分解、独立、信息隐藏等2.步骤用程序流程图PFC、N-S图、PAD图画出程序的控制流程。五、实验结果分析及实验报告要求要求给出整个程序的控制流程3实验二模块化程序设计(二)一、实验目的1、掌握程序设计语言、程序设计语言分类、程序设计语言特点、程序设计语言选择及编程风格。2、熟练掌握模块化程序设计的基本原理,设计结构清晰的程序。3、明确详细设计的任务、详细设计的原则。4、掌握详细设计的方法。包括程序流程图PFC、N-S图、PAD图、HIPO图二、实验设备和仪器电脑、VC++开发环境三、实验内容及要求1、按照模块化程序设计的准则,设计一程序,实现如下功能:给定数组a[]={32,35,3,89,13,434,54,656,2}(1)模块一:实现对数组的排序。(2)模块二:找出数组中最大的数。(3)模块三:找出数组中所有的素数。(4)模块四:计算数组各元素之和。2、认真学习程序处理过程的各种设计工具。包括程序流程图PFC、N-S图、PAD图。四、实验原理及步骤1.实验原理结构化程序设计采用的主要方法就是模块化程序设计,其思想基于分解、独立、信息隐藏等2.步骤根据上次实验给出程序的代码五、实验结果分析及实验报告要求4实验三:白盒测试一、实验目的了解测试的目的和任务。熟练掌握各种不同的白盒测试技术。二、实验设备和仪器电脑、VC++开发环境三、实验内容及要求求1-50之间的整数的级乘的和。(例如:在提示输入之间的整数_时,输入5,即求1!+2!+3!+4!+5!的和)四、实验原理及步骤1.实验原理白盒测试是一种结构化测试,基于程序的结构来设计测试方案。2.步骤(1)准备:阅读课本有关章节,了解各种不同的白盒测试技术,如逻辑覆盖和控制结构测试等;初步编制好程序;准备好多组测试数据(2)上课上机:将源代码拷贝到机上调试,发现错误,再修改完善。第二次上机调试通过。(3)实验要求用逻辑覆盖法来设计测试用例。语句覆盖,判定覆盖,条件覆盖,路径覆盖五、实验结果分析及实验报告要求5实验四黑盒测试一、实验目的1、了解测试的目的和任务。2、熟练掌握各种不同的黑盒测试技术。二、实验设备和仪器电脑、VC++开发环境三、实验内容及要求输入1800-2004年,判断是否为润年。测试用例分析,此程序有哪些错误。Main(){intyear,leap;printf(“输入年份:\n”)scanf(“%d”,&year);if(year%4==0){if(year%100==0){if(year%400==0)leap=1;elseleap=0;}elseleap=0;}if(leap=0)printf(“%d是”,year);elseprintf(“%d不是”,year);printf(“润年\n”);}四、实验原理及步骤1.实验原理黑盒测试是一种功能测试,基于程序的整体功能来设计测试方案。2.步骤(1)准备:阅读课本有关章节,掌握黑盒测试技术,用等价类划分法,边界值分析法来设计测试用例.准备若干组测试数据。(2)上课上机:将源代码拷贝到机上调试,发现错误,再修改完善。五、实验结果分析及实验报告要求6实验五用例图的设计与制作一、实验目的了解掌握用例图的设计与制作。通过学习,要求能够掌握以下内容:给定系统的功能描述,能够分析系统的用例、活动者以及它们之间的关系。设计的目的是:(1)能够根据系统的功能分析系统的用例组成;(2)正确确定用例图中的角色;(3)根据需求文档确定每个用例的事件流;(完成以上步骤可获得75分以上的成绩)(4)使用rose正确画出用例图,并说明每个用例的事件流;(完成以上步骤可获得85分以上的成绩)(5)如果能够进一步修改用例图和事件流,可以获得更好的结果或增加功能,则可以考虑给予高分。二、实验设备和仪器电脑、RationalRose三、实验内容及要求:1、网上选课系统的用例图的设计网上选课系统主要包括以下功能:管理员通过系统管理界面进入,建立本学期要开的各种课程、将课程信息保存在数据库中并可以对课程进行改动和删除。学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行三种操作:查询已选课程、选课以及付费。分析:用户:管理员、学生、数据库管理系统管理员,学生两个活动者主要特征相似,可以抽象出“基”活动者“人”事件流:添加课程事件流;(1)管理员选择进入管理界面,用例开始。(2)系统提示输入管理员密码(3)管理员输入密码(4)系统验证密码A1:密码错误(5)进入管理界面,系统显示目前所建立的全部课程信息。(6)管理员选择添加课程(7)系统提示输入新课程信息(8)管理员输入信息(9)系统验证是否和已有课程冲突A2:有冲突(10)系统添加新课程,提示课程添加成功(11)系统重新进入管理主界面,显示所有课程。(12)用例结束其他事件流A1:密码错误(1)系统提示再次输入(2)用户确认(3)三次错误,拒绝再次访问(4)否则进入添加课程事件流第五步。7A2:有冲突(1)系统提示冲突,显示冲突课程信息(2)用户重新输入(3)继续验证直到无冲突(4)进入添加课程事件流第十步删除课程事件流(与修改课程事件流类似)选课事件流:(1)学生进入选课登录界面,用例开始(2)系统提示输入学号和密码(3)学生输入学号和密码(4)系统验证A1:验证失败(5)进入选课主界面(6)学生点击选课(7)系统显示所有课程信息(8)学生选择课程(9)系统验证是否可选A2:不可选(10)系统提示课程选择成功(11)用例结束错误流:A1:验证失败(1)系统提示验证失败,提示重新输入(2)三次失败,拒绝访问(3)成功,转选课事件流第五步A2:课程不可选(1)系统提示课程不可选及原因(2)学生重新选课(3)重新验证直到成功(4)转选课事件流第十步查询课程事件流比较简单,这里就不详细叙述了。四、实验原理及步骤1.实验原理用例图记录用户或外界环境从头到尾使用系统的一系列事件。显示了用例和活动者之间、用例之间以及活动者之间的关系。2.步骤根据以上的分析,可以绘制出系统用例图如下:8peoplesteudentSelectCourseQueryCoursePayforCourseAddCourseModifyCourseregistrarDeleteCourseDatabase在rationalrose2003中建立选课系统的用例图的步骤如下。(1)点击浏览器中的usecaseview包并右击,在弹出的快捷菜单中选择New→UseCasediagram选项,将NewDiagram更名为“用例图的设计与制作”。(2)将光标置于工具栏的Actor图标上,按下左键并将光标拖曳到用例图窗口中,放开左键,用例图窗口内出现一个活动者的图标,其名字是“Newclass”9(3)修改元素的名字的方法有两种;①在用例图窗口中双击Newclass图标,弹出如图所示的窗口。然后再选择“general”选项卡,将Name修改为“people”,最后按下“确定”按钮。②在用例图窗口将光标置于“Newclass”处,直接将其修改为“people”(4)采用同样的方法,在用例图中添加register和student图标。(5)点击用例窗口工具栏中的图标“generalization”,在用例图窗口中,将光标从student移动到people,在student与people之间添加概括(generalization)关系。(6)同样在register与people之间添加概括(generalization)关系。(7)点击工具栏中Usecase的图标,将光标移动到用例图窗口,窗口内显示用例的椭圆图标,采用和(3)同样的方法,将图标名称改为“SelectCourse”(8)点击工具栏中的UndirectionalRelation图标(表示通讯关系),将光标从student指向SelectCourse,在student和SelectCourse之间添加关系。(9)重复以上步骤,完成用例图。(10)然后再指定活动者和用例的属性。在浏览器中选择活动者people,按下鼠标右键,在弹出的菜单中选择“openspecification”,弹出下列对话框,在对话框中定义活动者和用例的属性及说明文档。(11)双击selectcourse用例,弹出usecasespecification对话框,在对话框中书写该用例的事件流。(12)完成以上步骤,可以看到rose在浏览器中自动标出了各种关系。五、实验结果分析及实验报告要求10实验六活动图的制作一、实验目的了解掌握活动图的设计与制作。二、实验设备和仪器电脑、RationalRose三、实验内容及要求:选课系统中添加课程用例来学习设计和制作活动图1、分析添加课程事件流;(13)管理员选择进入管理界面,用例开始。(14)系统提示输入管理员密码(15)管理员输入密码(16)系统验证密码A1:密码错误(17)进入管理界面,系统显示目前所建立的全部课程信息。(18)管理员选择添加课程(19)系统提示输入新课程信息(20)管理员输入信息(21)系统验证是否和已有课程冲突A2:有冲突(22)系统添加新课程,提示课程添加成功(23)系统重新进入管理主界面,显示所有课程。(24)用例结束在这里,我们把管理员验证密码过程抽取出来,作为通用地流程。将管理员输入课程信息作为起始的活动,内容如下:(1)管理员输入信息(2)系统验证是否和已有课程冲突A2:有冲突(3)系统添加新课程,提示课程添加成功(4)系统重新进入管理主界面,显示所有课程。(5)用例结束四、实验原理及步骤1.实验原理活动图是一种描述工作流的方式,可以形象地描述各项活动之间地顺序关系,描述采取何种动作、做什么(对象状态改变)、何时发生(动作序列)以及何处发生(泳道)。活动图由起始状态、终止状态、状态转移、决策、守护条件、同步棒和泳道组成。起始状态表示活动图一个工作流的开始,用实心圆点来表示。在一个活动图中,只有一个起始状态。终止状态表示活动图地终结状态,一个活动图可以有多个终止状态,终止状态用实心原点加一个小圆圈来表示。动作用一个圆角四边形来表示,其内部的文本串用来说明采用的动作。动作之间的转移用箭头来表示,箭头上可能还带有守护条件、发送短句和动作表达式。守护条件用来约束转移,守护条件为真时转移才开始。用菱形表示决策点,决策符号可以有一个或11多个进入转移,两个或更多的带有守护条件的发出转移。泳道分割活动图,有助于更好地理解执行活动的场所。2.步骤创建添加课程的活动图的步骤如下:(1)在浏览器中,使用鼠标右键点击UseCaseView,在弹出的菜单中选择“New”→“ActivityDiagram”,则在UseCaseView中添加了一项“State/ActivityModel”,该项产生一个名为“NewDiagram