《软件工程导论》实验指导书Word格式.docx

上传人:b****2 文档编号:5129266 上传时间:2023-05-04 格式:DOCX 页数:20 大小:201.20KB
下载 相关 举报
《软件工程导论》实验指导书Word格式.docx_第1页
第1页 / 共20页
《软件工程导论》实验指导书Word格式.docx_第2页
第2页 / 共20页
《软件工程导论》实验指导书Word格式.docx_第3页
第3页 / 共20页
《软件工程导论》实验指导书Word格式.docx_第4页
第4页 / 共20页
《软件工程导论》实验指导书Word格式.docx_第5页
第5页 / 共20页
《软件工程导论》实验指导书Word格式.docx_第6页
第6页 / 共20页
《软件工程导论》实验指导书Word格式.docx_第7页
第7页 / 共20页
《软件工程导论》实验指导书Word格式.docx_第8页
第8页 / 共20页
《软件工程导论》实验指导书Word格式.docx_第9页
第9页 / 共20页
《软件工程导论》实验指导书Word格式.docx_第10页
第10页 / 共20页
《软件工程导论》实验指导书Word格式.docx_第11页
第11页 / 共20页
《软件工程导论》实验指导书Word格式.docx_第12页
第12页 / 共20页
《软件工程导论》实验指导书Word格式.docx_第13页
第13页 / 共20页
《软件工程导论》实验指导书Word格式.docx_第14页
第14页 / 共20页
《软件工程导论》实验指导书Word格式.docx_第15页
第15页 / 共20页
《软件工程导论》实验指导书Word格式.docx_第16页
第16页 / 共20页
《软件工程导论》实验指导书Word格式.docx_第17页
第17页 / 共20页
《软件工程导论》实验指导书Word格式.docx_第18页
第18页 / 共20页
《软件工程导论》实验指导书Word格式.docx_第19页
第19页 / 共20页
《软件工程导论》实验指导书Word格式.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《软件工程导论》实验指导书Word格式.docx

《《软件工程导论》实验指导书Word格式.docx》由会员分享,可在线阅读,更多相关《《软件工程导论》实验指导书Word格式.docx(20页珍藏版)》请在冰点文库上搜索。

《软件工程导论》实验指导书Word格式.docx

(2)对本系统的用例、活动者进行分析:

本系统拟使用Java语言通过三层模型实现:

数据核心层、业务逻辑层和接入层。

数据核心层包括对于数据库的操作;

业务逻辑层作为中间层对用户输入进行逻辑处理,再映射到相应的数据层操作;

接入层包括用户界面、系统登录界面、管理界面、用户选课界面等。

本系统涉及的用户包括管理员和学生,他们是用例图中的活动者,他们的主要特征相似,都具有学号和姓名等信息,可抽象出“基”活动者people,而registrar和student则从people继承诞生,数据库管理系统是另外一个活动者。

(3)写出系统中出现的一些事件流,如添加课程事件流、删除课程事件流、修改课程事件流、选课事件流。

下面是系统中出现的一些事件流。

添加课程事件流:

a)管理员选择进入管理界面,用例开始。

b)系统提示输入管理员密码。

c)管理员输入密码。

d)系统验证密码。

A1:

密码正确

e)进入管理界面,系统显示目前所建立的全部课程信息。

f)管理员选择添加课程。

g)系统提示输入新课程信息。

h)管理员输入信息。

i)系统验证是否和已有课程冲突。

A2:

没有冲突

j)系统添加新课程,提示课程添加成功。

k)系统重新进入管理主界面,显示所有课程。

l)用例结束。

其他事件流:

密码错误

a)系统提示再次输入密码

b)用户确认。

c)三次错误,拒绝再次访问。

d)否则进入添加课程事件流第e)步。

A2:

有冲突

a)系统提示有冲突,显示冲突课程信息

b)用户重新输入

c)继续验证知道无冲突

d)进入添加课程事件流第j)步

删除课程事件流和修改课程事件流与此类似。

选课事件流:

a)学生进入选课登陆界面,用例开始。

b)系统提示输入学号和密码。

c)学生输入学号和密码。

d)系统验证课程是否可选。

A1:

验证通过

e)进入选课主界面。

f)学生点击选择课程。

g)系统显示所有课程信息。

h)学生选择课程。

i)系统验证课程是否可选。

课程可选

j)系统提示课程选择成功,提示学生交费。

k)用例结束。

错误流:

验证失败

a)系统提示验证失败,提示重新输入

b)三次错误,拒绝再次访问。

c)成功,转选课事件流第e)步

课程不可选

a)系统提示课程不可选以及原因。

b)学生重新选课。

c)重新验证直至成功。

d)转选课事件流第j)步。

因为付费方式多样,所以此处不必讨论费用例。

查询事件流比较简单,这里也不用详细描述。

(4)根据以上的分析,可以绘出如下图所示的系统用例图。

(5)在Rose2003中绘制系统用例图,具体步骤如下:

a)点击浏览器中的UseCaseView中的Main,弹出用例图窗口。

b)将光标置于工具栏的Actor图标上,按下左键并将光标拖拽到用例图窗口上,放开左右键,用例窗口内出现一个活动者的图标,将其命名为“People”

c)采用同样的方法,在用例图中添加Registrar和Student图标。

d)点击用例窗口工具栏中的图标“generalization”,在用例图窗口中,将光标从Student移动到People之间添加泛化(generalization)关系。

e)同样在Registrar和People之间添加泛化关系。

f)点击工具栏中UseCase但图标,将光标移到用例图窗口,窗口内显示用例的椭圆图标,将其命名为“SelectCourse”。

g)点击工具栏中的UndirectionalRelation图标,将光标从Student指向SelectCourse,在Student和SelectCourse之间添加关联关系。

h)重复以上步骤,完成(4)中所示的用例图。

i)然后再指定活动者和用例的属性。

在浏览器中选择活动者People,按下鼠标右键,在弹出的菜单中选择“OpenSpecification”,可以看到People的版型(Stereotype)是Actor。

j)双击SelectCourse用例,弹出UseCaseSpecification对话框。

k)在Documentation文本框中书写该用例的事件流。

l)在完成以上步骤,可以看到Rose在浏览器中自动标出了各种关系。

 

实验二面向对象分析-类图和对象图的绘制(2学时)

通过实验,熟悉并掌握面向对象软件开发中类图和对象图的绘制。

设计绘制选课系统中的类图和对象图。

3、实验要求

(1)分析实验一中,有以下名词:

课程、界面和控制对象。

从而抽象出三个类:

课程类、界面类和控制对象类。

(2)课程类应具有的属性有:

课程名称、开课教室、授课教师、选课的学生、开课起始时间、允许选课的学生人数。

方法有:

设置课程名称、设置开课教师、设置课程号、设置授课教师信息、设置开课起始时间、设置允许选课的学生人数、查询课程名称、查询开课教师、查询授课教师信息、查询开课起始时间、查询允许选课的学生人数。

(3)在Rose中创建Course类的类图,具体步骤如下:

a)选择浏览器中的“LogicalView”,按下鼠标右键,在弹出的菜单中选择“New”,再在下一级菜单中选择“Class”,创建一个新的Course类。

b)添加属性。

在浏览器中选择“Course”,按下鼠标右键,在弹出的菜单中选择“New”,再选择“Attribute”,则一个新的属性被添加,将属性名字改成“name”。

c)选择“name”,按下鼠标右键,选择“OpenSpecification…”,则弹出“ClassAttributeSpecification…”对话框。

在这个对话框中有两个选项卡,一个用来设置属性的固有特性,比如类型(Type)、版型(Stereotype)、初始值(Initial)、存取控制(ExportControl)等,一个用来进一步指定属性是静态(Static)的还是继承(Derived)的等。

d)如果要删除属性,右键选择属性,在弹出的菜单中选择“Delete”即可。

e)添加操作。

选择浏览器中的“Course”,按下鼠标右键,在弹出的菜单中选择“New”,再在下一级菜单中选择“Operation”,则添加一个新的操作。

将添加操作的名字命名为“GetName”。

f)选择GetName,按下鼠标右键,选择“OpenSpecification…”,在弹出的对话框中可以设置操作的固有特性。

g)在Specification对话框中,操作或者属性都有存取控制的选项默认值是公有的,属性的存取控制的选项默认值是私有的。

不同的存取控制采取控制不同的标记表示。

h)重复以上步骤,完成Course类的设计。

(4)类似的,自己分析建立界面类(FromObject)和控制对象类(ControlObject),如后图所示。

(5)在选课系统中,涉及到的用户包括Student(学生)和Registrar(管理员),其主要特征相似,所以可以建立统一基类People,而Student和Registrar由People派生。

如下图所示:

(6)在Rose中实现(5)所述继承关系。

具体步骤如下:

a)右键单击浏览器中LogicalView,选择NEW,新建一个classdiagram,取名为Main,双击LogicalView下的Main图标,弹出类图窗口,从UseCaseView下将People、Register和Student拖到窗口中。

b)选择类图工具栏的“Generalization”图标,在类图窗口中,按下鼠标左键,将光标从角色Student移动到People,在二者之间出现一个表示继承关系的箭头标志。

c)同理添加Register与People之间的继承关系。

d)这时Register和Student都没有设置属性,给People增加一私有属性name。

在类图窗口中双击Student的图标,弹出“ClassSpecification”对话框,点击Attributes选项卡,注意这时Showinherite被选择,而Attributes列表中没有任何属性。

可以看到,父类中的私有属性没有被继承。

e)将People的name属性设置成保护属性,操作同d),可以看到Showinherite被选择时,Attributes列表中有一个属性name,父类中的保护属性被子类继承。

f)将People的name属性设置成公有属性,操作同d),可以看到Showinherite被选择时,Attributes列表中有一个属性name,父类中的公有属性被子类继承。

(7)在选课系统中,涉及到的角色包括学生Student、管理员Registrar、学生和管理员的父类People、数据库Database。

角色和类之间的关系如下所述:

角色Student、Registrar从People派生。

学生、管理员与系统交互时,都有一个界面与之对应。

一个界面可能和课程相关(0-多门)。

控制对象负责课程的处理,处理结果在界面上显示。

控制对象完成对数据库的操作。

界面请求控制对象的服务。

进一步分析如下:

一个用户界面对象和0个或多个学生相关。

一个用户界面对象和0个或多个管理员相关。

一个用户界面对象和0个或多个课程信息相关。

一个控制对象和0个或多个课程信息相关。

一个用户界面对象和一个控制对象相关。

一个控制对象和一个用户界面对象相关。

(8)利用Rose绘制完整的类图。

a)在“课程设计”模型的LogicalView中,选择“Main”类图,将定义的类或角色从浏览器中拖至“Main”类窗口。

b)在类图的工具栏中选择“unidirectionalassociation”图标,在类图窗口中,按下鼠标左键,从Student指向FromObject类,则在Student和FromObject之间添加了关联,然后调整一下类的位置。

为了显示方便,将类的属性和操作的“ShowAllAttributes”和“ShowAllOperations”设置为不选,将类的属性和操作隐藏起来。

c)可以给新添加的关联命名。

在类图窗口中,选择Student和FromObject之间的关联,按下鼠标右键,在弹出的菜单中选择“OpenSpecification”,则弹出一个对话框。

d)在该对话框中可以设置关联的属性。

关联两端的对象,箭头指向的称为“RoleA”,另一端称为“RoleB”。

e)在“AssociationSpecificationFor…”对话框中点击“RoleBDetail”选项卡,将Multiplic设置成1,再点击“RoleADetail”选项卡,将Multiplic设置成0..n。

f)使用类似的方法,完成选课系统的完整类图,如下图所示。

实验三面向对象分析-顺序图的绘制(2学时)

通过实验,熟悉并掌握面向对象软件开发中顺序图的绘制。

以选课系统中的选课用例(SelectCourse)为例,设计和实现顺序图。

(1)假设学生已经成功登录系统,分析选课的事件流。

a)学生进入选课主界面。

b)学生点击选课。

c)系统显示所有课程信息。

d)学生选择课程。

e)系统验证课程是否可选。

f)系统提示课程选择成功,提示学生交费。

g)用例结束。

a)系统提示课程不可选及原因。

d)转选课事件流第f)步。

序列图描述的是对象与对象的交互,创建序列图的步骤如下:

a)寻找对象。

b)寻找角色。

c)将消息加进图中。

首先,查找SelectCourse用例的对象。

从实践流中发现涉及以下对象:

a)界面。

b)课程。

c)对于业务层的操作,也应该有对象进行处理。

d)实践流中设计的角色有:

学生、数据库。

(2)然后,分析对象、交色之间交互的消息。

本用例主要有以下交互:

a)学生通过界面发送选课命令。

b)界面向控制对象请求课程信息。

c)控制对象向数据库发送查询数据消息。

d)控制对象暂存数据库的查询结果。

e)界面对象从控制对象中取得所有的课程信息。

f)在界面上显示所有的课程信息。

g)界面对象发送命令要求控制对象删除课程信息。

i)界面对象要求学生输入学号。

j)界面对象向控制对象发送信息,查询该生是否可以选择选定的课程。

k)控制对象从数据库查询关联信息。

l)控制对象判断是否可以选课。

m)如果可以选课,则向数据库中添加关联信息。

n)向界面对象返回信息。

(3)根据以上分析,整理得出最终SelectCourse的顺序图。

(4)在Rose2003中绘制系统顺序图。

a)在浏览器中右键点击“UseCaseView”,在弹出的菜单中选择“New”,再在下一级菜单中选择“SequenceDiagram”,则UseCaseView中显示一个新创建的顺序图图标,将其命名为SelectCourse。

b)在浏览器中选择角色,将其从浏览器中拖到顺序图中,图窗口中显示角色:

Student,Student对象下有虚线条。

c)选择CreateaObject工具栏按钮,光标变成十字形状,将光标移到图窗口中,按下鼠标左键,则顺序图窗口中添加了一个无名对象,窗口的顶部也出现了一个无名泳道。

d)选择新创建的对象,按下鼠标右健,在弹出的菜单种选择“OpenSpecification”,弹出“ObjectSpecification”对话框,选择对象的类,这是个界面对象,这里选择FromObject。

并将其命名为Form。

e)选择对象类且输入对象名称后,按下“OK”按钮。

此时,顺序图窗口中显示已经命名的标有类(型)的对象。

f)用同样的方法在顺序图中添加对象courses和control,添加活动者Database。

g)下面在顺序图中增加消息。

选择工具栏中的“objectmessage”图标,在顺序图中将光标从stu指向From,释放鼠标右键,则stu和From之间添加了一个消息,标有序号1,在其后添加消息名称:

SelectCommand()。

h)重复以上过程,完成整个顺序图。

实验四面向对象软件开发—状态图、活动图的绘制(2学时)

通过实验,熟悉并掌握面向对象软件开发中状态图、活动图的绘制。

设计和制作选课系统中课程类(对象)(Course)的状态图、AddCourse(添加课程)活动图。

(1)考察课程类(对象)(Course)的状态变化过程。

课程对象被创建,添加到数据库中,管理员可以删除、修改课程信息,在某个学期,开设该课程,如果选修人数超过指定人数,就不再允许学生选这门课。

学期结束,课程的状态终止。

课程对象的状态图如下图所示:

(2)在Rose2003中创建此课程对象的状态图。

a)在浏览器中选择“LogicalView”,按下鼠标右键,在弹出的菜单中选择“New”,再选择“StateChartDiagram”,创建一个新的状态图,命名为“Course”。

b)在工具栏中选择起始状态图标(StartState),放到状态图窗口中,在选择一个状态框图标(State),放到状态图中,将其命名为“Created”。

c)使用同样的方法,添加“InDatabase”状态和“InSchedule”状态。

d)选择“Created”状态,双击,探出对话框,在其Documentation文本框中键入“创建课程对象”。

e)在工具栏中选择“StateTransition”图标,在状态图中从起始状态指向“Created”状态,在二者之间建立一个转移。

f)双击转移,弹出“StateTransitionSpecification”对话框中,点击Detail选项卡,可以在其中输入转移的其他信息。

g)按下“OK”,返回到状态图窗口。

h)用鼠标双击“Created”状态,弹出“StateSpecification”对话框中,点击Actions选项卡,设置这个状态下的Activity。

将光标置于列表框中,按下鼠标右键,在弹出的菜单中选择Insert。

列表中添加了一个Activity。

i)双击刚才添加的Activity,弹出ActionSpecification对话框,在Name文本框中输入GetCourseInfo。

j)按下“OK”按钮。

k)采用同样的方法,在“InDatabase”和“InSchedule”之间添加转移,双击该转移,在弹出的对话框中点击Detail选项卡,设置守护条件。

图过选修某门课的学生树梢与最大可选学生数,则这门课程的状态可以从“InDatabase”转移到“InSchedule”。

l)按下“OK”按钮,返回到状态图窗口。

m)重复以上过程,既可以作成Course状态图。

(3)分析AddCourse用例的事件流,画出AddCourse用例的活动图。

在用例图中分析过,AddCourse用例的事件流为:

A1:

f)管理与那选择添加课程。

j)系统添加新课程,提示添加成功。

因为管理员密码验证过程可以抽取出来,作为通用的流程,所以这里对AddCourse事件流稍作修改,将管理员输入课程信息作为起始的活动,内容如下:

a)管理员输入信息。

b)系统能够验证是否和已有课程冲突。

c)系统添加新课程提示课程添加成功。

d)系统重新进入管理主界面,显示所有课程。

e)用例结束。

根据以上描述并进一步细化,画出下图所示的AddCourse用例的活动图。

(4)在Rose2003中创建此课程对象的活动图。

a)在浏览器中,使用鼠标右键点击UseCaseView,在弹出的菜单中选择“New”“ActivityDiagram”,则在UseCaseView中添加一项“Sate/ActivityModel”,该项产生一个名为“NewDiagram”的活动图,将其命名为“AddCourse”。

b)在浏览器中选择活动图“AddCourse”,双击,弹出活动图窗口。

c)点击工具拦的“Swimlane”工具,在右边活动图窗口点击鼠标左键,即可增加一个新的泳道“NewSwimlane”,同时左边的活动图“AddCourse”之下,也出现一个泳道“NewCourse”标志。

d)双击浏览器窗口中的“NewSwimlane”处,弹出“SwimlaneSpecification”对话框,将泳道名修改为“用户接口”。

e)使用同样的方法增加“业务逻辑接口”和“数据库接口”泳道。

f)在工具栏中选择“StartState”图标,放置到“用户接口”泳道内。

g)选择工具栏中的“Activity”图标,在用户接口泳道内增加一个新的活动。

h)在浏览器中双击“NewActivity”,弹出“ActivitySpecification”对话框,将活动的名称修改为“输入课程各项信息”。

i)在工具栏中选择“Transition”图标,在活动窗口中,将光标从起始状态指向“输入课程各项信息”,则从起始状态到“输入课程各项信息”之间添加了一条带箭头的实线,这就是转移。

j)输入课程以后,还要判断输入的课程是否合法,即需要进行课程验证。

这个工作要提交到“业务逻辑接口”中进行,采用前述的方法,在业务逻辑接口泳道中添加“验证课程”活动,并在“输入课程各项信息”和“验证课程”之间添加转移。

k)为了进行课程信息的验证,需要在业务逻辑接口中依据已有的课程信息,创建课程对象,提交到数据库中,进行信息的验证。

l)依据课程对象的信息,在数据库中查找课程信息。

为了完成这个功能,在“数据库接口中”泳道中添加“在数据库中查询课程”活动,并在“创建课程对象”和“在数据库中查询课程”之间添加转移关系。

m)查询结果将被返回到业务逻辑接口,由业务逻辑接口判断查询结果的信息,以确认添加的课程是否合法。

n)被添加的课程有可能是合法的,也有可能是不合法的,所以要增加一个决策(decision)进行判断。

将光标移到活动图窗口的工具栏上,选择“Decision”图标,然后将光标移动到活动图窗口的“业务逻辑接口”泳道,按下鼠标键添加一个决策,在“判断添加课程是否合法”和决策之间添加转移。

o)如果输入的信息合法,则将在数据库中添加输入的课程信息。

如果不合法,则提示重新输入课程信息。

在“数据库接口”泳道中添加“在数据库中添加该课程”活动。

在决策标记和“在数据库中添加该课程”活动之间添加转移。

p)这个转移发生的条件事课程是合法,所以,要在转移上添加守护条件“合法”。

添加守护条件的方法是:

双击刚才添加的转移,在弹出对话框中选择“Detail”选项卡,在“GuardCondition”栏中输入转移条件“合法”。

q)如果课程输入不合法,则提示重新输入,重新输入“输入课程各项信息”活动。

在决策和“输入课程各项信息”之间添加转移,守护条件是“不合法”。

r)如果课程信息合法,则在数据库中添加课程,然后判断添加课程是否成功。

增加一个决策,如果添加课程成功,则显示添加成功信息,过程结束。

s)如果添加课程失败,则显示失败,则显示添加信息错误,过程结束

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2