UML大作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程名称:UML系统分析与设计
姓名:
班级:软件132班
学号: ************ 指导老师:***
作业一:绘制q q群的基础用例图QQ群操作主用例图(高层用例图)
QQ群用户组成用例图
查找添加群用例图
进入群空间操作用例图对qq群进行操作的用例图
查看QQ群资的用例图QQ群消息设置的用例图
qq群内成员管理的用例图
作业二:类图及其关系
下面是系统分析员和一名篮球教练的谈话,用以建立一个篮球比赛的模型,谈话过程如下:分析员:教练,请大致介绍一下篮球比赛?
教练员:比赛的目标是要把篮球投入篮框并且要尽量比对手得更多的分。
每个篮球队由5名队员组成,两名后卫、两名前锋和一名中锋。
每个队要将球推进到篮筐附近,将篮球投中篮筐。
分析员:如何将球推进?
教练员:通过传球和运球。
但是某一方必须在规定的进攻时间内投篮。
分析员:进攻的时间是多少呢!?
教练员:在某一方获得球权之后,必须在规定的进攻时间内投篮,否则犯规。
美国职业篮球比赛规定的进攻时间是24秒,国际篮球比赛的规定是30秒。
分析员:如果计算篮球比赛得分呢?
教练员:在三分线之内没投入篮框一个球得两分,三分线外投入一次得三分,一次罚球得一分。
顺便说一下,罚球是对方犯规之后裁判判罚的投球,如果某个队员犯规了,裁判暂停比赛,由被侵犯的队员在罚球线处罚球
分析员:能够详细说一下每个篮球队员在比赛中的情况好吗!?
教练员:后卫队员通常主要是运球和传球,他们一般比前锋队员要矮小,前锋队员通常又比中锋矮。
所有队员都必须能够运球、传球、投球和抢篮板球,大部分抢篮板球和中距离投篮的工作都有前锋队员完成,中锋通常距离篮框最近,通常由他来进行篮下进攻
分析员:篮球比赛的场地大小是怎么样的呢!?另外,每场比赛的时间是多少?
教练员:国际比赛场地是28米长、15米宽。
篮框离地面3.05米高。
在职业篮球比赛中,一场比赛48分钟,分为四节,每节12分钟。
在国际篮联的比赛中,一场比赛40分钟,分为上下半场,各20分钟,有专门的比赛时钟记录比赛的剩余时间还有多少
…
上述只是部分谈话记录,但是已经涵盖了基本的信息,现在作业要求完成以下内容:
•确定你设计的篮球比赛系统模型的类以及它们包含的信息(名称、属性和方法)
•分析系统并确定这些类之间的关系(依赖、泛化、实现、关联),如果是关联关系还需要给出关联的属性
作业三:顺序图
•顾客购买一罐饮料的时序图(投入的钱数不正确)•投钱少
•投钱多
•顾客购买一罐饮料的时序图(没有所选择类型的商品)
作业四:状态建模
事件是指在某个时刻发生的事情,如本篮球赛比赛系统中,初始化时间(TimerInit)、开始计时(TimerBegin)、时间暂停(TimerPause)、进球(shot_in)、未进球(shot_out)、犯规(foul)、换人(exchangeplayer)等。
状态是对象取值和链接的抽象。
根据对象的总体行为,将取值和链接的集合组成一个状态。
在UML中,状态的表示方法——其中包含可选状态名的圆角方框,现在设计约定是黑体在方框中部列出状态名,首字母大写。
如本蓝球比赛系统设计中出现的状态:ReceivingBall(接球)、DrivingBall(运球)、PassingBall (传球)、ShottingBall(投球)、shotting_in(进球)、Shotting_out(未进球)、FreeShotting(任意球)等。
状态图的结点是状态,有向弧式状态间的迁移。
状态图详细说明了由事件序列引起的状态序列。
状态名在状态图的作用域内必须是唯一的。
类中所有的对象都执行该类的状态图,状态图会建模对象的公共行为。
可以通过直接解释实现状态图,或通过将语义转换成等效的程序代码来实现状态图。
状态模型包含了多个状态图,每个类一个状态图(当然是关键的类),状态体建模重要的时序行为。
状态图必须匹配他们的接口——事件和警戒条件。
单独的状态图可以通过传达事件,以及通过警戒条件的副作用进行交互。
事件和状态两者都依赖于抽象的层次。
可以用不同的方法刻画状态,这个状态有一个提示性的名称,并用自然语言描述其意图。
进入和退出活动,作为候选方法,要现实在前以上的活动,可以把活动绑定到某状态的入口和出口。
两者表示法的表达能力没有太大的差异,所有进入某种状态的迁移经常会执行相同的活动,在这种情况下,更简洁的做法是把活动链接在状态上。
根据图3.2,下面我们继续研究一下状态与状态间转变的事件关系图:
从图3.5我们可以清晰的认识到,“接球”状态的状态转换关系,比赛开始通过“发球”事件或是这个时刻计时器TimerInit()信号,状态会进入接球状态(RecivingBall);比赛过程中,队员与队员间有“传球”,也会自然进入“接球状态”
作业五:基于W E B的办公自动化系统
一:系统功能描述
办公自动化系统,简称OA-Office Automation系统,它是指一切可满足于企事业单位的、综合型的、能够提高单位内部信息交流、共享、流转处理的和实现办公自动化和提高工作效率的各种信息化设备和应用软件
部分功能的详细描述:
发文管理:用于处理各级单位发文,实现草拟、审核、复核、签发及分发的发文过程和发文存档。
收文管理:提供外部单位来文的处理,完成来文的登记、录入、审核、拟办、批办及承办过程和收文存档。
会议管理:实现对电子公告平台的通知、海报、新闻、简报的编辑、发布、等功能。
二:建立用况及用况图
在系统顶层可以识别出以下7个活动者:发文办理人、收文办理人、会议管理人、档案管理员、借阅人、公告管理员、系统管理员、用户。
1.系统层的用况图如下:
(二)对应的建立了如下的活动图:
1.发文办理活动图;
2.收文办理活动图;
3.会议管理活动图;
大作业《医药公司进销存管理信息系统分析
与设计》
1.1问题定义:
设计某医药公司进销存管理信息系统的进货、库存、销售三个组成部分。
进货子系统有
药品验收处理活动图
1 产生进货传票(进货传票编码、商品编码、品名、规格、厂商、有效期、进价、进货数量)。
2进货传票将被打印给供货商作为收货凭证。
一次进货可有多项药品,由进货传票编码唯一标识;一种药品由商品编码唯一标识。
系统设有一个商品目录(商品编码、品名、规格、厂商、有效期、销售价格)。
3当进货的药品是新药品(商品目录中没有的药品)时,进货子系统自动把新药品写入商品目录。
库存子系统有
1进货入库
2销售出库
处理维护库存帐(商品编码、品名、规格、厂商、有效期、进货量、进价、出库量、销售价、库存数量、库存下限量、库存上限量),库存帐不能做修改操作,
当进货入库时,根据进货传票产生一条新记录,库存数量加上进货量;当销售出库时,根据销售传票产生一条新记录,库存数量减去出库量;商品编码是各药品的唯一标识字。
库存子系统设库存自动报警,当库存数量大于库存上限量或者小于库存下限量时,给出警告信息。
销售子系统有
定价处理和销售处理。
1定价处理有一个商品价格表(商品编码、品名、规格、厂商、有效期、建议价格、销售价格、批准责任人)首先由销售管理员定建议价格,经过经理批准后确定销售价,并自动更新商品目录的销售价;
2销售处理在公司的销售窗口,售货员根据顾客要求查找商品目录和库存帐,如果有货(库存数量满足顾客要求),一项销售成立,产生销售传票的一条记录,一次销售可有多项记录,由销售传票唯一标识。
销售传票的数据结构是(销售传票编码、商品编码、品名、规格、厂商、有效期、销售价、销售数量)。
销售传票是库存子系统记录库存帐的依据。
销售传票将被打印给顾客作为提货凭证。
N
1.2分析领域
1.21 备选类
商品编码、品名、规格、厂商、有效期、进货量、进价、出库量、销售
价、库存数量、库存下限量、库存上限量、商品编码、品名、规格、厂
商、有效期、建议价格、销售价格、批准责任人、销售传票编码、销售
数量、进货传票、传票编码、售货员、顾客、销售传票、仓库管理员、
药品
1.22决定候选类
进货传票、供应商、商品目录、库存帐、商品价格表、批准负责人,
售货员,顾客,销售传票,药品
1.3确定系统完全需求(生成包图和高层用例图)
1.31 生成包图
1.3.2 高层用例图
人员资料
2.1系统u s e c a s e模型
2.1.1用例1:进货
场景1 当医药公司的库存药品数量小于库存下限量时,系统会发出警报,表明需要进货,列出需要进货的药品和数量,打印进货传票给药品供应商供应药品。
场景2:医药公司为了适应市场需求,需要引进新药品,根据高层的研究结果,列出需要进货的新药品和数量,打印进货传票给药品供应商进货。
2.1.2 用例2:进货入库,销售出库
场景1:医药公司的仓库根据进货传票产生的新记录,库存量加上进货
量,查看警告信,若库存量小于库存上限,货物入库。
场景2:医药公司的仓库根据销售传票产生的新纪录,库存数量加上进货量,查看警告信息,若库存数量大于库存下限,货物出库。
2.1.3 用例3:销售
场景一:顾客提出购物需求,医药公司在有货的情况下,售货员把药品销售给顾客。
售货员将给顾客提货凭证,输入销售药品的相关信息,并给顾客打印销售传票。
场景2:当有新药入库时,销售管理员拟定销售建议价格,向经理提交议价审批,确定最后销售价格,修改商品目录销售价格,开始销售新药。
2.2角色定义
2.3U S E C A S E工作描述
U C D
2.31进货的
2.32U C:进货入库,销售出库的U C D
2.3.3U C:销售的U C D
2.4U S E C A S E视图
3.1系统逻辑结构设计
3.1 进货系统
3.1.1 事件流过程
(1)进货经理通过系统输入要进货的药品
(2)进货经理输入进货药品的信息,生成进货传票
(3)判断是否有新药,修改商品目录
(4) 进货经理将进货传票发给供应商
3.12 时序图
3.13 状态图
3.2 事件流过程
(1)销售系统模块——定价处理 事件流
1)销售管理员向系统发出“定价处理”请求。
2)销售管理员输入议定的销售建议价格 3)销售管理员提交,上交给经理审批。
4)经理审批后,确定最后的药品销售价格,更新商品目录销售价 (2)销售系统模块——销售处理 1)顾客呼入买药
2)售货员根据顾客要求查找商品目录 3)销售成功打印销售传票
4)顾客领取销售传票和商品
3.
21
时序图
(1)销售系统模块——定价处理
(2)销售处理
3.22 (1)定价处理状态图
(2)销售处理状态图
3.3库存系统
3.3.1事件流过程
(1)进货入库模块
1)仓库管理员向系统发出“进货入库”请求;
2)仓库管理员接到供应商的进货传票的信息:
3)仓库管理员根据进货数量,加到库存帐上;
4)系统检查库存量是否超过上限,发出警报;
5)从售货员获取销售传票信息;
6)根据销售传票出库数量,从库存帐减去出库量
7)系统检查库存量是否超过上限,发出警报。
3.32时序图
3.3.2库存系统状态图
4.1生成程序框架
4.1.1 药品类 Drugs
4.1.2商品目录类Catalogue
4.1.3经理类Manager
4.1.4顾客类Customer
4.1.5供应商类Supplier
4.1.6销售管理员类SaleManager
4.1.7售货员类 Saler
4.1.8库存类 Stock
4.1.9销售传票类SellTicket
4.1.10商品价格类PriceList
4.10.11进货传票类StockTicket
4.10.12仓库管理员类StockManager
生成代码4.21药品类 Drugs
public class Druges
{
private int Druges_ID;
private int Druges_Name;
private int Specification;
private int Company;
private int Price;
/**
public Druges()
{
}
public void Set_Druges()
{
}
public void Get_Druges()
{
}
}
4.2.2商品目录类Catalogue
public class Catalogue extends Druges {
private int SalePrice;
public Catalogue()
{
}
public void Set_Catalogue()
{
}
public void Get_Catalogue()
{
}
public void set_SalePrice()
{
}
}
4.2.3经理类Manager
public class Manager
{
private int ManagerID;
private int name;
private int title;
public StockTicket theStockTicket; public Manager()
{
}
public void Audit()
{
}
}
4.2.4顾客类Customer
public class Customer
{
private int ID;
public Druges theDruges;
public Customer()
{
}
}
4.2.5供应商类Supplier
public class Supplier
{
private int Company;
private int Address;
private int tel;
public Druges theDruges;
public Supplier()
{
}
public void PurchaseSummons() {
}
}
4.2.6销售管理员类SaleManager
public class SaleManager
{
private int ID;
private int name;
private int sex;
public PriceList thePriceList; public SaleManager()
{
}
}
4.2.7售货员类 Saler
public class Saler
{
private int ID;
private int name;
private int sex;
public SellTicket theSellTicket; public Saler()
{
}
public void ProntSummons()
{
}
}
4.2.8库存类 Stock
public class Stock extends Druges
{
private int Purchasevolume;
private int purchsaseprice;
private int outstocknum;
private int sateproce;
private int stocknumber;
private int lowerlimit;
private int uplinit;
public Stock()
{
}
public void add()
{
}
public void get_Stock()
{
}
public void reduce()
{
}
public void checknumber()
{
}
}
4.2.9销售传票类SellTicket
public class SellTicket extends Druges {
private int ID;
private int SalePrice;
private int Number;
public SellTicket()
{
}
public void set_sellTicker()
{
}
public void get_sellTicker()
{
}
}
4.2.10商品价格类PriceList
public class PriceList extends Druges {
private int SuggestedPrice;
private int SalePrice;
private int charger;
public PriceList()
{
}
public void set_PriceList()
{
}
public void get_PriceLIst()
{
}
public void set_SuggestdPrice()
{
}
}
4.2.11进货传票类StockTicket
public class StockTicket extends Druges {
private int SalesID;
private int SalePrice;
private int number;
public StockTicket()
{
}
public void set_sellticket()
{
}
public void get_sellticker()
{
}
}
4.2.12仓库管理员类StockManager
public class StockManager
{
private int ID;
private int name;
private int sex;
public Stock theStock;
public StockManager()
{
}
}
七个人总结
这个UML课虽然现在对于我们的作用不是很大但是以后我们在经过一段时间之后要成为产品尽量是必须要学会的,所以这个对于我们很有用,经过这次实验让我实际操作了一次UML的分析过程,让我学到了很多,但是有很多是经过问同学,和百度才弄明白的,还要继续学习。
欢迎您的下载,
资料仅供参考!
致力为企业和个人提供合同协议,策划案计划书,学习资料等等
打造全网一站式需求。