太原理工大学系统分析实验报告-20xx

本科实验报告

课程名称:     系统分析与设计          

实验项目:   《网上书店系统》实验     

实验地点:    逸夫楼402              

专业班级:            学号:          

学生姓名:                           

指导教师:                            

20##年 11月 18 日

目   录

1.      实验准备:熟悉UML建模环境

2.      实验一 用例图

3.      实验二 类图

4.      实验三 顺序图及通信图

5.      实验四 活动图、状态图、组件图及部署图

实验一  用例图

一、        实验目的

初步掌握UML用例图的创建方法及其用例的描述。

二、实验要求

1.结合工具StartUML,熟悉UML用例图的模型元素。

2.使用StartUML工具建模网上书店系统的用例图。

实验主要设备:台式或笔记本计算机

四、实验内容:

根据下面给出的网上书店问题陈述,分析该系统总体需求,建模网上书店系统的用例图并提供一个主要用例的事件流文档。

网上书店陈述:

书店经理:我们原本是一个传统的实体书店,顾客要买书都是亲自到书店里来的,这样挺不方便。面且随着书店销售图书种类和数量的增加以及顾客的增长,尤其是大量顾客到书店选购图书,使得书店场地不足,工作人员也很忙碌。其实,还有一点就是,有不少人进入书店后并不买书,只是查找一些资料。有的甚至会在这呆上很长的时间直到把书免费看完。这种行为,工作人员一般是不阻止的,结果最后这些被看过的书会因为有阅读过的痕迹而影响销售。而且现在电子商务已经发展起来了,所以我们想到借助网络,让顾客通过网上书店购买图书。这样我们书店可以省掉大量的场地维护和工作人员成本支出,同时计算机可以方便的检索图书信息,让顾客可以足不出户以更优惠的价格买到需要的书。

系统分析员:能谈谈您对网上书店的要求吗?

书店经理:网上书店要能实现对外和对内的功能,对外是顾客能在网上书店订购图书,提交订单。对内,书店工作人员能够通过网上书店及时的看到这些订单,并进行处理。为了把书送到顾客手里,我们已经联系了快递公司,初步达成协议,由他们往返场客和书店之间把图书送到顾客手里。书店管理员受理订单后,就会通知快递公司送货。当然,书店的图书上架和下架也应该由网上书店完成了。

工作人员甲:实体店中,图书是按照不同种类放置的,方便顾客挑选。网上书店的图书也应该能够按照这种模式分类显示。这样,图书的信息和种类要由网上书店设置和管理。已有种类的新书或新种类的图书上架,网上书店能够保存这些信息。如果信息输入错误,能够进行修改。

工作人员乙:另外书店会搞一些促销,推出一些特价图书。以前这些特价书的信息,都是我们根据促销活动整理出来,贴在书店的醒目位置。促销活动过后,特价图书会恢复原来的价格。希望网上书店也能够管理这些特价图书。

系统分析员:能谈谈平时买书的经过吗?

顾客甲:一般都是先在书店里看看图书的简要介绍,或者先找找看有没有自己需要的书,有时是没有目标的寻找,有时直奔一类图书而去。找到我想买的书或者觉得看的书不错,就会去柜台结帐。

工作人员丙:不过有时在结帐的时候,顾客会突然改变主意,不买一些书或者又回去挑选图书了。

顾客甲:有时好像是这样的。要是网上书店在结帐前能方便管理我所选购的图书就好了,这样通过计算机直接操作,就不用跑来跑去了。

系统分析员:可以使用虚拟的购物车。

工作人员丙:对,这样在用户确认购买前可自行管理选购的图书,决定要不要购买还有的购买的数量。

系统分析员:顾客先使用虚拟的购物车选购管理图书,然后提交订单给书店处理,是这样吧。

书店经理:没错,就这样办。另外最好顾客能够留下自己的信息,方便以后的购买。

顾客:你们可以实行会员制啊。就像我们在网上逛论坛一样,会员才能发言,普通游客只能看。这样我们平时就在网上书店查查资料什么的,只在购买图书的时候才使用会员身份。

书店经理:嗯,这样不仅可以保留你们的信息,也可以保留购买记录。

系统分析员:会员提交购买订单后,书店打算如何收取或者说用户怎么付款?

书店经理:我们可以接受货到付款,顾客也可以使用网上银行、汇款等方式付款。

顾客:这样我们就方便多了。对了那是不是付款前,我还多了一次“反悔”的机会啊。

书店经理:在我们书店没有受理订单之前,你们可以取消交易。不过受理后就不行了。

……

通过几次这样的访谈(限于篇幅,在此并未列出所有访谈内容),可以获得网上书店的需求信息,确定系统范围。网上书店是实现对实体书店内部图书商品和顾客购买图书的综合管理系统。

1.用例图:

2.网上书店用例事件流

2.1 前置条件

在用例网上书店购书之前,用例“浏览图书”和“图书信息”更新的分支流必须完成。

2.2 后置条件

如果用例成功,顾客会收到网上选购的图书,并且货物的款会到达书店。

2.3 扩充点

在购买的过程中,顾客可以和书店的人员进行电话或者网络聊天,了解图书的具体信息,然后确认订单。

2.4 事件流

2.4.1 基流

  当顾客在网上浏览图书有想购买的图书时,需要将图书放入虚拟购物车,并且需要登录会员账号,提交订单,确认订单,书店发送货物,书店把图书交给快递公司,快递公司送给顾客,确认收货,钱打到书店的账户上,整个交易完成。

如果所选的活动是登陆,执行s-1:登陆会员账户

如果所选的活动是普通用户,执行s-2:可以进行图书的浏览资料的查询。

2.4.2分支流

s-1:会员登陆:会员有喜欢的图书放入虚拟购物车,按照基流顺序执行。

s-2:非会员:只能进行图书的浏览和资料的查询。

2.4.3 替代流

E—1:如果输入会员密码无效,用户可以重新输入或者终止用例。

E—2:如果在虚拟购物车中,顾客不想要的图书可以删除。

E—3:在订单提交后,顾客可以取消订单。

E—4:收到货物后,顾客不满意可以联系客服,退货进行售后处理。

五、分析与讨论

1.建模用例图的步骤、方法?  

  首先掌握用例图中的参与者,每个参与者的用例,明白它们之间的关系。

2.如何识别系统的参与者?

   首先明白参与者的定义,参与者是代表与系统交互的人,硬件设备或另一个系统,尽管在模型中可以使用参与者,但参与者并不是软件系统的组成部分参与者只存在于系统的外部。一个参与者可进行:只向系统输入信息;只从系统接收信息;既可以输入信息给系统,也可以接收系统的输出信息。

3. 应该如何划分用例,应注意哪些问题?

   用例规定了系统或部分系统的行为,它描述了系统所执行的动作序列集,并为执行者产生了一个可供观察的结果。

4..心得

在得到实验后,我们首先绘制的是用例图,用例图帮助我们能够更加清晰快捷了解系统的构成和功能,在绘制用例图时,首先我们需要明白的是系统有几个活动者,他们完成的功能是什么,其次描述他们之间的关系,每个活动者可以实现的功能的细致划分,对于系统的整体把握是用例图的关键。我们需要认真仔细的分析系统。

实验二  类图

一、        实验目的

了解类图的基本用法;初步掌握UML类图的创建及其方法。

二、实验要求

1、结合工具StartUML,熟悉UML类图的模型元素。

2、建模网上书店类图。

实验主要设备:台式或笔记本计算机

四、实验内容:

创建类图的步骤如下:

(1)使用名词识别法识别类。

(2)建模类与类之间的关系。

(3)为类图中的关联关系添加合适的角色名。

(4)为已被封装到类中的独立功能建模类。

(5)为类图中的类添加必要的特性和操作。

(6)迭代并细化该模型

1.识别类: ---顾客,虚拟购物车,订单,图书,书店,快递公司,网上银行。

2. 定义类:

五、分析与讨论

1. 如何使用文本分析技术从问题陈述中识别对象和类?

   把一个文本中的实体即简单的先把名次标出来,然后进行筛选,重复的删除,不需要的删除,最终确定下自己要的对象和类。

2. 心得

   类图我个人认为比用例图难,用例图只需要了解每个活动者实现的功能就行,但是类图更需要了解他们之间的关系,需要更多功能的实现,类图增加了更多的复杂性,更加需要对系统错综复杂的关系进行整理抽象和选择,选择自己认为重要的关系,并把它在图上表现出来。

实验三  顺序图及通信图

一、        实验目的

初步掌握UML顺序图的建模及其思想。

二、实验要求

1、结合工具StartUML和Rose,熟悉UML顺序图的模型元素。

2、建模网上书店交互图。

实验主要设备:台式或笔记本计算机

四、实验内容:

1. 给出网上书店的一个用例的顺序图,例如,书店管理员登录顺序图、会员添加图书到购物车顺序图或其他用例的顺序图。

2. 把以上顺序图转换为通信图。

五、分析与讨论

1. 如何从用例图建模顺序图?

顺序图首先要建立obj对象,对象我们从用例图中选择,按照每个用例的功能,系统要实现的作用画顺序图。

2. 顺序图和通信图的比较?

   顺序图和通信图都用来描述对象间交互作用,顺序图着重体现交互的时间顺序,通信图则着重体现交互作用的对象间的静态连接关系。

3. 心得

   画顺序图中,我们按照事件发展的时间顺序,找出时间对象,水平轴表示不同的对象,垂直轴表示时间,顺序图中的对象用一个带有垂直虚线的矩形框表示,并标有对象名和类名,对象间的通信通过在对象的生命线间花消息来表示。

实验四 活动图、状态图、组件及部署图

一、实验目的

1. 了解活动图、状态图、组件及部署图的基本用法;

2.  初步掌握活动图、状态图、组件及部署图建模方法。

二、实验要求

1、结合工具StartUML,熟悉UML活动图、状态图、组件及部署图的基本模型元素。

2、建模网上书店的活动图、状态图、组件及部署图。

实验主要设备:台式或笔记本计算机

四、实验内容:

  

五、分析与讨论

1. 什么情况下适合引入状态图进行建模?

   状态图描述单个对象在它的整个生命周期的行为,描述了从时间到事件的控制流,状态机图用来模拟系统的动态方面,这些动态方面是指系统对象按事件发生来排序的行为,状态机图可以用来描述整个系统,子系统或类的动态方面,还可以用来描述用例的脚本。

2. 心得

   通过整个实验,我对这个系统有了深刻的理解和掌握,在画图的过程中,是通过不同的方面对系统进行分析解剖,并且注入自己的理解。

 

第二篇:太原理工大学分治法实现归并排序算法算法设计与分析实验报告

算法设计与分析实验报告

实验名称            分治法实现归并排序算法            评分              实验日期  年月 日      指导教师  姓名                 专业班级                 学号

一.实验要求

1.了解用分治法求解的问题:当要求解一个输入规模为n,且n的取值相当大的问题时, 如果问题可以分成k个不同子集合,得到k个不同的可独立求解的子问题,其中1<k≤n,而且子问题与原问题性质相同,原问题的解可由这些子问题的解合并得出。那末,对于这类问题分治法是十分有效的。

2.掌握分治法的一般控制流程。

DanC(p,q)

global n,A[1:n]; integer m,p,q;  // 1?p?q?n

if Small(p,q) then return G(p,q);

else m=Divide(p,q); // p?m<q

return Combine(DanC(p,m),DanC(m+1,q));

endif

end DanC

3.实现典型的分治算法的编程与上机实验,验证算法的时间复杂性函数。

二.实验内容

1.编程实现归并排序算法,程序中加入比较次数的计数功能,输出排序结果和比较次数。

2.输入10组相同的数据,验证排序结果和完成排序的比较次数。

3.与复杂性函数所计算的比较次数比较。

4.用表格列出比较结果。

5.给出文字分析。

三.程序算法

1. 归并排序算法

procedure MERGESORT(low,high)

//A(low;high)是一个全程数组,它含

有high-low+1≥0个待排序的元素//

integer low,high;

if low<high;