《UML系统分析和设计》Word下载.docx
《《UML系统分析和设计》Word下载.docx》由会员分享,可在线阅读,更多相关《《UML系统分析和设计》Word下载.docx(22页珍藏版)》请在冰豆网上搜索。
销售传票是库存子系统记录库存帐的依据。
销售传票将被打印给顾客作为提货凭证。
以上为本次试题的基本部分(称基本系统),为必做部分。
事实上的进销存系统还有其它组成,例如“退货处理”、“客户管理”、“供货商管理”、“定价管理”等,有兴趣的同学可以选做或者补充某些附加内容。
作业要求:
1.针对上述需求,请用面向对象的系统分析和设计方法完成附件中作业要求;
2.解答时可以查询资料、可以讨论、可以使用建模工具(如Rose、together等),必须用打印文档交卷,注明姓名、学号;
3.提交的文档格式如附件所示,需要提交设计的视图,此处所占的分数比重较大,没有的话扣分。
4.自己在完成课程设计的心得体会(个人总结)一定要写,所占的分数比重较大。
5.根据基本系统的静态模型利用工具导出各子系统的java或者c++程序结构。
6.完成时间:
各班学习委员收集后统一于17周的星期一上午缴给我。
附件:
(选择1)
(选择2)
选择1:
1、需求收集、描述
1.1:
发掘业务过程:
药品验收处理:
处理维护库存帐:
、
定价处理和销售处理:
1.2领域分析
备选类:
商品编码、品名、规格、厂商、有效期、进价、出库量、销售价、进货数量、销售价格、出库量、库存数量、库存下限量、库存上限量、建议价格、销售价格、批准责任人、销售数量、销售传票编码、顾客、销售员、销售传票、进货传票、进货传票编码、仓库管理员、药品
确定候选类:
进货传票、商品目录、供应商、药品、售货员、顾客、库存帐、商品价格表、批准责任人、销售传票
1.3确定系统完全需求
生成包图:
高层用例图:
2.系统USECASE模型
2.1分析(按照需求设计用例)
用例1:
进货
场景1:
药品库存量低于库存下限量时候,系统会自动发出警报,表示需要进货,就会列出需要进货的药品名和药品数量,然后产生进货传票,打印进货传票给供应商供应药品。
场景2:
当有新药品的时候,公司会会为了适应顾客的需求,就会引进新药品。
根据高层的研究,列出药品名和数量,产生打印传票给供应商供应药品。
用例2:
进货入库、销售出库
医药公司根据进货传票产生的新记录,目前库存量加上进货库存量,查看警告信息,如果库存量低于下限量,就会进货入库。
医药公司根据销售传票产生的新记录,目前库存量加上进货库存量,查看警告信息,如果库存量高于上限量,就会销售出库。
用例3:
销售
公司根据顾客的需求,在库存量满足顾客的需求时,售货员就把药品销售给顾客,售货员将给顾客提货凭证,输入药品的相关信息,产生销售传票并打印给顾客。
当有新药品进货时,销售管理员定建议价格,经过经理批准后确定销售价,并自动更新商品目录的销售价,开始销售。
2.2角色定义
参与者
功能描述
进货负责人
负责进货管理、引进新药品
仓库管理员
负责管理进货入库和销售出库
销售管理员
负责定销售药品的建议价格
销售经理
负责审核确定销售价、更新药品的价格
售货员
负责根据顾客要求查找药品目录和库存帐
供应商
负责供应药品
顾客
购买药品
2.3USECASE工作描述
2.3.1进货:
USECASE名称
目的
医药公司
系统名称
进货子系统
主程序:
进货负责人根据不同场景,打印进货传票,传给供应商,供应商根据传票供应药品给医药公司。
2.3.2进货入库,销售出库:
进货入库,销售出库
药品入库、药品销售出库
库存子系统
仓库管理员根据进货传票产生的新记录,目前库存量加上进货库存量,查看警告信息,如果库存量低于下限量,就会进货入库;
如果库存量高于上限量,就会销售出库。
2.3.3销售:
销售药品
销售子系统
当有新药品进货时,销售管理员定建议价格,经过经理批准后确定销售价,并自动更新商品目录的销售价,开始销售给顾客。
2.4USECASE视图
3.系统逻辑结构设计
3.1进货系统(描述涉及概念、映射对象、涉及角色)
3.1.1事件流过程(主要事件流脚本)
1)进货负责人通过系统发出的警告确定进货药名和数量
2)进货负责人通过系统输入进货药名和数量
3)系统产生进货传票
4)判断是否有新药品,是否修改商品目录
5)进货负责人把进货传票发给供应商
3.1.2时序图
3.1.3状态图(主要类的状态图)
3.2销售系统(SaleSystem)
3.2.1事件流过程(主要事件流脚本)
定价处理事件流:
1)销售管理员向系统发出“定价处理”请求
2)销售管理员输入拟定的建议价格
3)销售管理员将拟定的建议价格发给销售经理
4)销售经理审核并确定销售价格,修改商品目录
销售处理事件流:
1)顾客买药品
2)售货员根据顾客要求查看库存帐和商品目录
3)销售成功并打印销售传票
4)顾客拿到销售传票和领取药品
3.2.2时序图
定价处理时序图:
销售处理时序图:
3.2.3状态图(主要类的状态图)
定价处理状态图:
销售处理状态图:
3.3库存系统(ValueManager)(主要事件流脚本)
3.3.1事件流过程
1)仓库管理员向系统发出“进货入库”请求
2)仓库管理员接到供应商发送的进货传票的信息
3)仓库管理员根据进货传票产生一条新记录,库存数量加上进货量
4)仓库管理员检查库存帐,是否超过上限量。
5)仓库管理员收到售货员销售传票
6)仓库管理员据销售传票产生一条新记录,库存数量减去出库量
7)仓库管理员检查库存帐,是否低于下限量。
3.3.2时序图
3.3.3状态图(主要类的状态图)
3.4系统整体的类的组织结构
4.完成系统组件图设计
5.完成正向工程实现代码框架
4.1设计完成系统详细类图(系统静态结构,应该包含类及之间的详细信息)
4.1.1药品类Drugs
4.1.2供应商类Supplier
4.1.3进货传票类StockTicket
4.1.4仓库管理员类StockMan
4.1.5库存帐类StockAccount
4.1.6销售管理员类SaleManager
4.1.7销售经理类Manager
4.1.8顾客类Customer
4.1.9销售传票类SaleTicket
4.1.10商品目录类Catalogue
4.1.11商品价格类PriceList
4.1.12售货员类SaleMan
4.2生成代码框架(参照自己设计的4.1)
4.2.1药品类Drugs
publicclassDrugs{
privateintDrugs_code;
privateintDrugs_name;
privateintSpecifications;
privateintManufacturer;
privateintDate;
privateintPrice;
publicDrugs(){}
publicvoidSet_Druge(){}
publicvoidGet_Druge(){}
}
4.2.2供应商类Supplier
publicclassSupplier{
privateintSupplier_name;
privateintAddress;
privateintTel;
publicDrugstheDrugs;
publicSupplier(){}
publicvoidPurchaseVoucher(){}
4.2.3进货传票类StockTicket
publicclassStockTicketextendsDrugs{
privateintStock_name;
privateintStock_price;
privateintAmount;
publicStockTicket(){}
publicvoidset_saleticket(){}
publicvoidget_saleticker(){}
4.2.4仓库管理员类StockMan
publicclassStockMan{
privateintID;
privateintname;
privateintsex;
publicStockAccounttheStockAccount;
publicStockMan(){}
}
4.2.5库存帐类StockAccount
publicclassStockAccountextendsDrugs{
privateintPurchase_ticket;
privateintpurchase_price;
privateintpurchase_amount;
privateintSale_ticket;
privateintSale_price;
privateintSale_amount
privateintupperLimit;
privateintlowerLimit;
publicStockAccount(){}
publicvoidAdd(){}
publicvoidget_Stock(){}
publicvoidSub(){}
publicvoidset_Stock(){}
4.2.6销售管理员类SaleManager
publicclassSaleManager{
publicPriceListthePriceList;
publicSaleManager(){}
4.2.7销售经理类Manager
publicclassManager{
privateintManagerID;
privateinttitle;
publicStockTickettheStockTicket;
publicManager(){}
publicvoidExamine(){}
4.2.8顾客类Customer
publicclassCustomer{
publicCustomer(){}
4.2.9销售传票类SaleTicket
publicclassSaleTicketextendsDrugs{
privateintSale_name;
privateintSale_amount;
publicSaleTicket(){}
publicvoidset_SaleTicker(){}
publicvoidget_SaleTicker(){}
4.2.10商品目录类Catalogue
publicclassCatalogueextendsDrugs{
privateintsale_Price;
publicCatalogue(){}
publicvoidset_Catalogue(){}
publicvoidget_Catalogue(){}
publicvoidSet_CataloguePrice(){}
4.2.11商品价格类PriceList
publicclassPriceListextendsDrugs{
privateintsuggested_price;
privateintsale_price;
privateintcharge_price;
publicPriceList(){}
publicvoidset_Price(){}
publicvoidget_Price(){}
publicvoidset_suggestedPrice(){}
4.2.12售货员类SaleMan
publicclassSaleMan{
publicSaleTickettheSaleTicket;
publicSaleMan(){}
publicvoidSale_ticket(){}
6.个人总结
这次作业。
我用到RationalRose2003版本的,几次作业下来弄懂了Rose大部分功能了,可以绘制一些图了。
通过这些作业中,我学到了蛮多的,对书本的知识有了更深的理解,初步对UML建模系统的理解,掌握一些相关图的画法。
趁自己还年轻,因为我必须给自己一个交代。
我特别喜欢这句话,因为人生就是这样,不逼自己一把永远都不知道自己能做得多好。
通过这次的设计,我对Rose有了更深的了解,慢慢用起来也顺畅了许多,重要的是自己肯努力去,能够用心去完成,觉得万事开头难,但最后都可以克服的。
我还明白了,未来的路还很长。
很长。