1、软件工程实验指导书计算机软件工程教研室江苏大学计算机学院2014 年 5 月实验一数据流图与数据字典实验目的1 掌握数据流图2 掌握功能结构图3 掌握数据字典实验内容通过绘制数据流图、功能结构图、数据字典进一步掌握以上三种图形。绘制工具可以采用 WORD、等基本软件。实验要求选取一个实际系统如:学生学籍管理系统、图书管理系统等;先绘制数据流图,先画顶层数据流图、再画零层数据流图。举例如下(也可参照教材中的例子)实验报告1. 报告要求用专门的实验报告纸书写,字迹清晰,格式规范。2. 报告中写清姓名、学号、实验日期、实验题目、实验目的、实验要求。3. 按照上述要求画出数据流图。4. 报告最后包含实
2、验总结和体会。学生注册学生处 教务处学生证注册注册未注册录入成绩统计成绩总成绩奖惩排名名次划分名单查询结果成绩实验二 创建 Rational Rose 用例图实验目的熟悉 Rational Rose 集成环境;掌握 Rational Rose 创建用例图方法;通过实验实例理解利用 Rational Rose 创建系统功能模型带给项目开发的益处。实验内容一、熟悉 Rational Rose 集成环境、掌握创建用例图方法。二、创建学生选课、教师开课用例图。需求描述:每学期开始学生需要一份课程表,它包含本学期所提供的课程列表及每门课程的相关信息。比如:导师名称、科系、必要条件、课程时间、上课地点,可
3、以帮助学生作出合理的决定,系统规定学生可以选择四门必修课程。此外,他还要选择两门候补课程以防某门课程人员满额或被取消。每门课程人数不得多余 10 人或少余 3 人。一旦学生完成登记过程,登记系统将信息传入记费系统以便计算学生在本学期的学费数额.导师需要随时访问系统,知道有那一门课程需要任教。他也可以了解他的课有那些学生选修。每学期开始,学生有一段试听时间,学生可以改变所选课程内容。在这段时间学生必须可以访问系统随时更改课程选项。要求:1。对上述问题需求进行分析,确定系统的参与者(角色) ;2。对上述问题需求进行分析,确定系统的功能(用例) ;3。使用 Rational Rose 创建系统的用例
4、图(功能模型) ; 4。对模型中的用例,用自然语言(汉语)进行描述;5。建立角色和用例之间的关系。6。实验后,将上述设计过程与结果写出实验报告,交给任课教师。实验指导参考实验内容一:熟悉 Rational Rose 集成环境、掌握创建用例图方法。实验步骤:1 进入 Rose 环境,打开程序菜单,点击 Rational Rose 2000 Enterprise Edition.,出现 Rose 界面,点击 cancel 按钮,进入设计区。2 展开左侧窗口 use case 视图 , 双击 main 进入 use case 主图绘制画面,绘图时使用图形工具条中的工具进行绘制。3 选择角色加入到绘图
5、区,右击打开规格说明,加入角色描述。4 选择用例加入到绘图区,右击打开规格说明,加入用例描述。5 建立角色、用例之间的联系,右击连线打开规格说明,建立联系描述 集成环境说明:标准工具条浏览区文档描述窗口图形工具条 图形设计窗口标准工具条说明: 浏览区说明(左侧上部)浏览区中列出面向对象工程模型的 use case(用例视图) 、logic view(逻辑视图)、component view(组件视图) 、deployment(配置视图),每个视图可以包含多个图描述模型。用鼠标点击某个工具,在绘图区点击出现相应的图符,右击图符,弹出菜单中,单击 open specification 菜单项,出现
6、规格说明窗口。在此窗口建立新的模型存储模型或目录复制 打印浏览文档浏览交互图浏览拓扑图浏览前一幅图放大 取消操作打开已存在的模型剪切 粘贴 内容感知帮助浏览类图浏览组件图浏览双亲图缩小 缺省窗口工具选择按钮,按下是非工具选择状态。输入文本按钮,可以在用例图区适当地方加上文本说明注释说明。对某个角色或用例说明连线:角色或用例与其注释的连线,包:一个软件系统可以由若干个包构成。用例:对应系统的功能,经过需求分析获得功能,用该符号表示。角色:参与系统活动的人或事关联:建立角色或用例之间的关联关系依赖:建立角色或用例之间的依赖关系泛化:建立角色或用例之间的泛化关系中可以修改角色或用例的属性。实验内容二
7、: 创建学生选课、教师开课用例图。实验步骤:1 分析角色学生:是选课主体。教师:开课主体。操作员:负责进行系统中信息的维护。课表系统:用于保存学生登记选好的课程。2 分析用例课程登记:完成学生选课与查询、修改等功能。事件描述:当学生敲入学号时,Use Case 开始,系统检测学号是否合法并且提示学生选择本学期或下一学期。在学生选择完毕后,系统会提示学生其它选项:建立课程表;浏览课程表;修改课程表;删除课程;添加课程;学生表示选项均已完成。系统则打印学生课程表,通知学生登记完毕。其它流程:如果输入非法学号,系统不允许访问;如果企图建立的学期课程表已存在,系统将会提示进行其它选择;建立课程表,学生
8、输入 4 个主课程号和 2 个候补课程号。学生提出课程要求,然后系统.检查该课程是否满足学生要求,如果该课程开放,将学生加入课程名单浏览课程表:学生对学期所选课程的要求信息,以及学生所用例或角色名用例说明或描述选课程信息,包括:课程名称、课程号、每周上课次数、上课时间和上课地点等修改课程表删除所选课程,学生指示删除所选课程,系统检查是否超过最终修改日期。如果没有过期,则系统删除学生所选课程,系统通知学生处理完毕加入新课程: 学生指示要加入新的课程,系统检查是否超出最终修改日期,如果没有,系统则: .是否超过最大课程数量;.检查所选课程是否满足必要条件;.如果该课程开放,将学生加入课程名单中。教
9、师开课:教师获准开某门课程,通过该功能注册所开课程。课程目录:教师可以通过课程目录子系统获取所开课程选课情况。课程信息:建立、修改和删除学期提供的课程学生信息:建立、修改和删除学生信息教师信息:建立、修改和删除教师信息报表:产生各种报表。描述(略)3.下面是参考的顶层用例图,同学可以细化构造二级用例图,既对各个顶层用例分解。例如学生信息维护分解为建立、修改、删除等用例。实验三 创建 Rational Rose 静态模型实验目的熟悉 Rational Rose 集成环境;掌握 Rational Rose 创建类图方法;通过实验实例理解利用 Rational Rose 创建系统对象模型带给项目开发
10、的益处。实验内容一、熟悉 Rational Rose 集成环境、掌握创建类图方法。二、建立一个订单与客户的类图问题描述:一个企业生产多种产品,每种产品生产依据订单进行生产,一份定单可以包括多种产品,订单与客户签订的,客户可以是团体客户与个人客户,画出产品订单与客户类图要求: 1。对上述问题进行分析,确定系统由哪些类构成。2。对定义的类进行分析,确定每个类可能有的属性、方法。3。使用 Rational Rose 创建系统的类图(对象模型) 。4。对模型中的类,用自然语言(汉语)进行描述。5。建立类和类之间的关系。6。实验后,将上述设计过程与结果写出实验报告,交给任课教师。实验内容一:熟悉类图及类
11、图的画法1 进入 Rose 环境,打开程序菜单,点击 Rational Rose 2000 Enterprise Edition.2 展开左侧窗口 logical view 视图树, 双击 main 进入主图图绘制画面.3 在绘图区定义类,在工具栏中点击类加速键,在绘图区适当位置鼠标单击。4 对类符鼠标右击,打开规格说明,添加类描述(Document) ,定义类的属性及方法。5 建立类间关系,鼠标点击关系加速键,在绘图区对建立关系两个类的第一个类按鼠标左键拖曳到另一个类。对关系右击,可以打开关系的规格说明。实验内容二:建立一个订单与客户的类图1 该系统包含如下类客户类:属性:客户编号;客户类别
12、;客户信誉程度;方法:设置客户信息;提取客户信息;修改客户信息;删除客户信息。团体客户类:属性:单位名称;单位地址;联系电话;单位账号;单位欠款方法:建立团体客户;修改团体客户;删除团体客户;客户进款;统计欠款(账单)个人客户类:属性:客户名称;身份证号;信誉卡号;联系电话;个人账号方法:建立个人客户;修改个人客户;删除个人客户;订单类:属性:;订单编号;订单客户;预付款;付货日期; 订单状态方法:建立订单;修改订单;删除订单;发货;订单结束。订单条目:属性:订单编号;产品号;数量;单价; 工具选择按钮,按下是非工具选择状态。输入文本按钮,可以在类图适当地方加上文本说明注释说明。对某个类图元素
13、说明连线:类图元素与其注释的连线,类。接口:不同系统或子系统或外界连接桥梁关联:建立类图元素之间的关联关系依赖:建立类图元素之间的依赖关系泛化关系:建立类图元素之间的泛化关系包:一个软件系统可以由若干个包构成。关联类实现关系:建立类图元素之间的实现关系方法:建立订单条目;修改订单条目;订单条目。产品类:属性:产品编号;产品名称;产品型号;库存产品数量; 方法:新增产品;产品销毁;生产产品;售出产品。2 类间关系见下表:实验四 用 Ratioan Rose 建立动态模型实验目的熟悉 Rational Rose 集成环境;掌握 Rational Rose 创建活动图、序列图的方法;通过实验实例理解
14、利用 Rational Rose 创建系统动态模型带给项目开发的益处。实验内容 建立一个小型图书管理系统动态模型需求陈述:在图书管理系统中,要为每个借阅者建立一个账户,并给借阅者发放借阅证(提供借阅证号、借阅者名) ,账户中存储借阅者的个人信息、借阅信息以及预定信息。持有借阅证的借阅者可以借阅书刊、返还书刊、查询书刊信息、预定书刊并取消预定,在借阅书刊时,需要输入所借阅书刊的书刊名、输入借阅者的图书证号和借阅者的名字,完成后提交所填表格,系统检验借阅者是否有效,若有效,借阅请求被接受,系统查询数据库,看借阅者所借期刊是否存在,若存在,则借阅者可以借出期刊,建立并在系统中存储借阅纪录。借阅者还书
15、后,删除关于所还书刊的借阅纪录。如果借阅者所借的书刊已借出,借阅者还可预定该书刊,一旦预定者预定的书刊可以获得,就将书刊直接寄给预定人。另外,也可以通过网络或者图书馆的终端来查阅和预订书。当然,图书馆管理员也可以对图书进行管理。分析:在面向对象的系统中,业务流程表现为对象之间的交互。通过分析得到对象,就可以来描述他们是怎么进行交互和协作的了。在 UML 中,我们可以使用序列图、活动图或者状态图来建模这些动态的过程。分析过程中,消息的传递同后面的设计模型和实现模型相比,可能会有区别,也不太严密,例如,Borrow 的过程中,记录 BorrowInfo 的动作,到最后,可能不会是 BorrowIn
16、fo 这个实体类自己来记录,这取决于你采用的具体的技术框架,但是,在这里,我们可以这样来传递消息,表示需要记录这个信息。同样的,我们也可以为“所借图书超出最大借书数量”来作他的序列图,这个图相对简单一些:同样的,我们也可以为其他用例的其他事件流创建动态模型,在这里请同学自行画出。动态模型和静态模型的建立是一个交互的过程。在建立动态模型的过程中,我们会发现一些新的类,也会为已有的类找到一些新的属性和方法,这样,我们会需要去修改我们的类图。反之亦然。当分析模型完成后,我们就对系统需要完成的功能有了一个比较完整和清晰的认识,下面,就可以开始我们的设计工作了书书书书书书书书书书书书书书书书书书书书书书
17、书书书书 书书书书书书书书书书书书书书书书书:Borw :书书 :BorwInterface :Student :BorwInfo :SubscribrInfo :Bok3: 书书4: Borw( )5: 书书6: VALID7: 书书8: 书书9: 书书10: OK Mesage1: 书书1: 书书2: 书书: 书书书 : BorowInterface : Borow : Student3: 书书书8: 书书书1: 书书书2: 书书书4: Borow( )7: FAIL Mesage5: 书书书6: INVALID实验五 组件图和部署图实验目的1.理解组件图的基本概念2.理解组件图的应用:逻
18、辑部署3.理解部署图的基本概念4.理解部署图的应用:物理部署5.掌握组件图和部署图绘制的方法实验内容完成图书管理系统的组件图和部署图。实验步骤1. 绘制组件图分析:通过分析可以发现图书管理系统中的类应分为 4 个部分:1用户接口模块(UI) ,主要负责系统和用户的交互,包括 Frame类,Dialog 类等。2业务对象模块(BO) ,主要负责处理系统中的业务计算,如借书,还书等功能的具体操作。3数据存储模块(DB) ,主要负责处理对数据的存储。4通用工具模块(UTIL) ,包括系统中通用函数。通过一个主程序 StartClass 来启动。由于系统中的类较多,这里以业务对象模块(BO)为例来讲解
19、如何创建组件图,BO 模块中包括Item 类:书目类,表示一本实际存在的书籍或杂志Loan 类:借书业务类,将借阅者和图书馆关联起来,一个 Loan 对象表示借出的一本书BorrowerInfomation 类:借阅者信息类,表示一个借阅者。Title 类:表示一种书或一种杂志。如C+编程思想就是一种书,用 1 个 title 表示,如果有 2 本这样的书,则需要用 2 个 Item 表示。 Reservation 类:预定信息类,表示一个预定信息。Item 类和 Loan 类之间互相依赖,Loan 类和 BorrowerInfomation 类之间互相依赖,BorrowerInfomatio
20、n 类和 Reservation 类之间互相依赖,Reservation 类和 Title 之间互相依赖,Title 和 Item 类之间互相依赖。绘图步骤:(1)在组件视图中双击 Main 图,出现图 7.1,为编辑组件图做好准备,这时绘图工具栏中的图标如图中椭圆所示,其中具体含义可参看本节“补充图标”一段的介绍。(2)在组件视图中,从工具栏中选择 MainProgram 图标,在右边的绘图区中添加一个新组件,并取名 StartClass.java 表明新增一个主程序。(3)选择新创建的组件,点击鼠标右键,在弹出的菜单中选择“Open Sepcification”,弹出图 7.3 对话框。(
21、4)在对话框中,可以修改组件的名称,设置组件的类型,指定实现的语言。这里新组件的名称定为“StartClass.java” ,组件构型为 Main Program(Rose 中提供了多种构型,大部分在补充图标一段中均有简单的介绍) ,实现语言为 JAVA(Rose 中默认的是分析语言 Analysis) ,修改结果如图 7.4 所示。(5)组件图描述的是系统的实现视图,因此要指定实现组件功能的文件。点击 File 选项卡,在列表框中点击鼠标右键,在弹出的菜单中选择“Insert File”,弹出文件对话框。在对话框中,键入 StartClass.java,点击“打开”按键,这时对话框如图 7.
22、5 所示。(6)双击 StartClass.java,弹出是否创建对话框,询问是否创建文件,选择“YES”,弹出记事本,这时可输入相应的源程序(注意:如果这里选择的文件已经存在,则不会弹出创建文件对话框,而是直接显示相应文件内容) 。(7)创建相应的包。选择包图标,在右图中创建。这里同样需要对每个组件打开“Open Specification”对话框,设置具体的属性,对“包”组件来说需要在 Files 选项卡中指明与其对应的目录。创建完毕的组件图如图 7.6 所示。(8)选择业务对象包(BO) ,双击,打开业务对象包的详细组件图,这里根据分析的结果分别创建Title.java,Item.jav
23、a,Loan.java,BorrowerInfomation.java,Reservation.java 组件,并设置好每个组件的构型和对应的文件。创建好的 BO 包组件图如图 7.7。(9)创建依赖关系。在本节“关系”一段中,已经描述过依赖关系使用虚线表示,因此根据分析中的结果,在图中将相互依赖的组件连接即可。完成后的组件图如图2. 绘制部署图分析:图书管理系统目前开发的是一个单机版系统,其中所有的运算均在一台机器上完成,但是由于打印报表的需要,系统还应配备一台打印机。因此得出系统中存在 2 个节点: 一台主机,其类型是 Processor。 一台打印机,其类型是 Device。绘图步骤:(1)浏览窗口中选择“Deployment View”,弹出如图所示窗口:(2)在图中添加分别添加一个 Processer 和 Device,并分别命名为“computer with java support”和“Printer”,添加完毕后,其结果如图7.10 所示:(3)为节点添加连接关系。全图如图。实验报告要求 整理实验结果;小结实验心得体会。