《《软件工程导论》课程设计.doc》由会员分享,可在线阅读,更多相关《《软件工程导论》课程设计.doc(14页珍藏版)》请在三一文库上搜索。
1、软件工程.课程设计医药公司进销存管理信息系统专 业 : 计算机科学与技术 指导教师 : 欧 阳 浩 班 级 : 计071 班 学 号 : 200700401006 姓 名 : 苏 建 完成时间 : 2010年7月6日 广西工学院计算机工程系一、需求收集、描述1发掘业务过程(可用活动图描述)1.1进货系统活动图进货经理经理下进货单 选择支付方式经理取消进货或超时noyes 进程取消是否有新药品进货完成付 款产生进货传票产生进货传票写入新药品yes系统送货完成收取传票凭证yesno改进货单状态供货商送货供货商1.2库存系统活动图进货员工药品入库维护库存账警 告维护库存账维护库存账减去销售量增加进货
2、量获取出库信息获取入库信息系统销售药品售货员1.3销售子系统活动图公司员工 销售管理员定价经理审批定价系统修改数据打印销售传票判断库存是否有货no更新价格表系统进入买药yes收取提货单付 款客户2领域分析(确定候选类)2.1找到被选类根据题意得,将其中的所有名词及名词短语列出来可以得到如下的被选类列表:进货传票 进货传票编码 商品编码 品名 规格 厂商 有效期 进价 进货数量供货商 药品 商品目录 销售价格 库存帐 出库量 销售价 库存数量 库存下限量 库存上限量 商品价格表 建议价格 批准责任人 销售管理员售货员 顾客 销售传票编码 销售数量 2.2 决定候选类并不是每个被选类都是合适的候选
3、类,对其进行一番筛选后,将不合适的排除掉。(1)“进货传票”是个重要的类。进货传票编码 商品编码 品名 规格 厂商 有效期 进价 进货数量都是用来描述进货传票的,因此应该作为“进货传票”类的属性处理。(2)“供货商”也是该进销存系统的一个重要的类,应该对其进行建模。(3)“药品”、“库存帐”和“商品目录”都是一个类。其描述的性质是类似的,但是出库量、销售价、库存数量、库存上(下)量都是库存帐的属性,不需对其进行建模。(4)“商品价格表”也是一个类,建议价、销售价、批准责任人等都是它的属性。(5)“销售传票”是一个类。(6)“销售管理员和售货员”也都是类。事实上都是医药公司的下属员工,可以归纳为
4、一个“员工”类,而且他们都有性别、年龄、薪资、招聘日期等等的一些基本属性信息。 通过以上分析,可以得到一个候选列表:进货传票 供货商 药品 商品价格表 销售传票销售管理员 售货员 顾客3 确定系统完全需求(生成包图和高层用例图)3.1(包图)3.2 (高层用例图) 公司员工 维护基本资料 药品进货 库存 销售 定价系统维护include include 进货入库销售出库退货二、系统USE CASE模型1. 分析(按照需求设计用例)用例实例是在系统中执行的一系列动作,这些动作将生成特定参与者可见的价值结果,一个用例定义一组用例实例。1.1 用例1:“进货”业务场景:某医药公司呼入,当库存药品的数
5、量小于库存下限量时,系统发出警告信息,以示需要进货;或者为适应市场顾客需求,需要引进新药品。在这两种情况下,医药公司需要正确判断出要进货哪些药品及其数量等,当需求提出后,系统马上执行。1.2 用例2:“库存”业务场景:当进货入库时,系统根据进货传票产生的新纪录,库存数量需要加上进货量;当销售出库时,系统根据销售传票产生的新纪录,库存数量需要减去销售量。此时,系统要在维护其他库存帐的同时,更新库存数量值。当需求提出后,系统马上执行。1.3 用例3:“销售”业务场景:医药公司有顾客呼入。顾客提出购货需求,医药公司在有货的情况下,售货员成功的把药品销售给客户。售货员将要给客户提货凭证,输入销售药品的
6、相关信息,然后启动销售业务-“打印销售传票”任务。1.4 用例4:“定价”业务场景:某医药公司销售管理员呼入。销售管理员拟定销售建议价格,在正式销售之前,向经理提交议价审批,确定最后销售价格。在这种情况下,系统将要自动更新药品目录的销售价业务。当需求提出之后,系统必须马上执行。1.5 用例5:“退货”业务(以退货给供货商,供货商现金退给公司为例)场景:现金管理员检查供应商提交的退货单、还款或者应付票据,然后进行电子签名,系统自动生成红字分录。如果供应商没有付款,生成的红字分录是对冲应付账款;如果供应商已经付款,生成的红字分录是对冲现金。现金管理员打印签名后的退货单给供应商。验收员检查退货单,确
7、认现金管理员已签名,退货单流程已完成,然后将货物退还给供应商,并且进行电子签名。2. 角色定义参与者功能描述进货经理主要负责下进货单,验收药品处理库存经理主要负责药品入库和药品销售出库的操作销售经理主要宏观上负责确定最后的销售定价以及销售记录信息的处理销售管理员主要负责议定销售药品的建议价格售货员主要在公司的销售窗口销售药品供货商主要给药品公司提供药品货物客户主要买药品3. USE CASE工作描述以下是对各用例的工作进行简单的描述:“进货”业务用例:医药公司进货经理向供货商家购买药品,录入新药品的信息并自动存档。“库存”业务用例:系统根据进货传票或者销售传票信息记录自动更新库存信息,确保正确
8、的库存数量。“销售”业务用例:售货员向客户销售药品,满足客户的需求。“定价”业务用例:制定出合理的药品销售价格,并自动更新价格表、存档。“退货”业务用例:4. USE CASE视图本“医药公司进村小信息管理系统”的Use Case视图的模型如下图所示:三、系统逻辑结构设计1进货系统(描述涉及概念、映射对象、涉及角色)1.1事件流过程(操作描述映射成为方法的表示格式为类和方法)前置条件:进货经理登录进入进货子系统后置条件:玩家进货业务事件流1.1.1基本事件流 进货经理向系统发出“进货药品处理”请求。 系统响应请求后,显示相应的界面,让进货经理输入进货药品的信息,并根据进货传票规则自动生成进货传
9、票编码。 进货经理输入进货药品的相关信息,包括:商品编码、品名、规格、厂商、有效期、进价、进货数量。 系统确认算法已经按要求输入完全相关的药品信息。 系统确认输入的药品信息中是否有新药品。 系统将所信息存储建档,并产生进货传票。1.1.2扩展事件流a)如果药品输入中有相关的信息未输入,则弹出警告提示对话框,要求进货经理选择继续补充输入或取消输入。a1)进货经理选取取消输入,则用例结束,不产生进货传票。a1)选择继续补充输入,则转到。b)如果药品中有新药品,则自动把新药品写入商品目录。1.2 Sequence Diagram(顺序图)请求request() 验证数据:confirm() 验证成功
10、success() 验证失败 fail() 保存处理save()更新窗体Update()util(数据库处理)task(进货药品验收处理)validate(数据验证)form(用户窗体)Request()Confirm()Success()Fail()Save()Updare()1.3 Collaboration Diagram(协作图或者通信图)Submit是提交按钮,SystemContol是系统控制中心,IncomingTicket是进货传票,UpdateInfo是数据更新指令,Supplier是供货商,Dispatch是送货指令2销售系统(SaleSystem)2.1事件流过程2.1.
11、1(销售系统模块-定价处理)基本事件流销售管理员向系统发出“定价处理”请求。系统响应请求后,显示对应的界面,让销售管理员输入其议定的销售建议价格。销售管理员点提交,上交给经理审批。经理审批完毕,确定最后的药品销售价格。确定提交给系统。系统自动更新商品目录的销售价。扩展事件流:无2.1.2(销售系统模块-销售处理)基本事件流顾客呼入买药。售货员根据顾客要求查找商品目录和库存帐。销售成功,系统产生销售传票。打印销售传票。顾客领取销售才传票,取商品。扩展事件流:a)如果有货,库存数量符合顾客要求,则转下。b)如果无货,库存数量不符合顾客要求,则用例结束,不产生销售传票。2.2 Sequence Di
12、agram(顺序图)请求request() 验证数据: confirm() 验证成功success() 验证失败 fail() 保存处理save()更新窗体Update()Waring(警告)task(库存量判断)validate(数据验证)form(用户窗体)Request1()Request2( )2.3 Collaboration Diagram3库存系统(ValueManager)3.1事件流过程3.1.1(进货入库模块)基本事件流 进货经理向系统发出“进货入库”请求。 系统响应请求后,显示相应的界面,让进货经理导入入进货传票的信息。 系统接收到进货传票的信息。 系统启动程序自动将原库
13、存数加上进货量,更新库存数。 系统自动判断库存数是否大于库存上限量。 系统将所信息存储建档。扩展事件流a)系统如果判断出库存数已经大于库存上限量,则发出警告信息。3.1.2(销售出库模块)基本事件流 进货经理向系统发出“销售出库”请求。 系统响应请求后,显示相应的界面,让进货经理输入销售药品的信息。 系统自动产生销售传票。系统接收到销售传票的信息。 系统启动程序自动将原库存数减去销售量,更新库存数。 系统自动判断库存数是否小于库存下限量。 系统将所信息存储建档。扩展事件流a)系统如果判断出库存数已经小于库存下限量,则发出警告信息。3.2 Sequence Diagram3.3 Collabor
14、ation Diagram3.4系统整体类的组织结构销售时间系统整体结构类的组织结构-E-R图如下编号销售数量销售价姓名销售方式聘用日期工资性别地址销售编号姓名1销售顾客编号员 工MN厂商规格品名联系方式有效期定价进价进货进货数量商品编码管理进货传票编码商品编码商品编码单位名称品名M销售价供货商编号供应QP规格药 品地址商品编号厂商电话银行账号品名规格厂商责任人销售价有效期有效期编码建议价四、程序框架1详细类图详细类图如下图:公司员工(Employees):姓名(name)、性别(sex)、编号(no.)、工资(wage)、聘用日期(hiredate)。顾客(Customer):客户编号(cn
15、o.)、名字(name)、地址(address)、联系方式(telephone)。销售(Sales):销售编号(sno.)、销售价(price)、销售时间(saledate)、销售数量(quantity)、销售方式(saleway)。方法有:生成销售传票create()、完成销售close()药品(Drug):商品编码(number)、品名(name)、规格(specifications)、厂商(factory)、有效期(valid)、建议价格(p-price)、销售价格(s-price)、批准责任人(ower)。管理(Manager):定价(pricing)、编码商品(coding)。供货商
16、(Suplier):编号(no.)、单位名称(company)、地址(address)、银行账号(account)、联系电话(phone)。方法有:送货完成close()进货(Incoming):进货传票编码(no.)、商品编码(dno.)、品名(name)、规格(specifications)、厂商(factory)、有效期(valid)、进价(pricie)、进货数量(i-quantity)。方法有:生成进货传票dispach( )、完成进货close()供应(Supply):商品编码(no.)、品名(name)、规格(specifications)、厂商(factory)、有效期(val
17、id)、销售价格(s-price)。2生成程序框架(参照自己设计的4.1)2.1 类12.2 类22.3 类32.4 五、个人总结首先说一下对本系统从开始设计到完成过程中感觉比较深的三点:首先学了软件工程导论该课程后感觉几乎没有什么比较大的收获,这也是跟自己不认真上课有直接的关系的,所以一开始感觉还是很难的样子,幸亏在此的同时学习了UML面向对象建模基础虽然是基础,实际上帮了我好大的忙,几乎是通过学习此UML课程完成了任务-软件工程的课程设计。第二,因为本人是从易到难做起的,做到最后的时候,感觉“某医药公司进销存信息管理系统”最难建模的就是确定系统需求画包图,系统逻辑结构设计中各个子系统的顺序
18、图和协作图(通信图),对这些设计的逻辑很不理解,很难下手,卡住了很久,也觉得浪费了不少的时间。 第三,可以说是对该课程设计学习的一点收获。越往后面做任务的时候就感觉越对系统越了解,有时感觉自己似乎已经置身于此系统的设计与管理之中,好像自己也成了其中的一个参与者。所以总的来说不管是书本或者是现实管理中都已经增长知识不少,open我的眼界了些许。对于自己在使用软件工程建模工具进行系统分析、设计的体会。一看到这个就立马感觉到一个做的不好的地方,就是在安装微软的Rational Rose建模软件系统的时候,自己不会安装,已经下载好了软件和相关配置文件,操作了一个上午还是失败了,那时候想和同学们交流,无
19、奈我想合作的同学都没有一起装好,或许会装的还没开始做,所以最后自己搜索了一个StarUML建模软件,该软件后面还介绍了几个同学用,因为他们也不会安装Rational Rose建模软件(有的是嫌弃安装麻烦吧)。但是个人在使用StarUML后感觉,虽然这款软件没有Rose的功能强大,但是可绘制9款UML图:用例图、类图、序列图、状态图、活动图、通信图、模块图、部署图以及复合结构图等,这已经足矣。在使用StarUML设计系统过程中主要发现以下几点:第一,设计各种用例图、系统活动状态图很方便,也很快捷。因为建模软件中都有完整的模块控件,只需用鼠标拉动就可以了,而且文本的编辑性和可调性也很好,需要在什么
20、位置添加注释,想怎么调整位置都很容易实现。这也是软件的功能好吧。第二,感觉比较有系统性。这个好处的前提是在开始操作UML建模软件之前首先在纸上要有一个总体的大概的构想或者是设计,比如说需要建多少个类,有多少、哪些属性,它们之间的联系关系,在建模哪个系统之后最后接着建模哪个,我觉得都很重要,这样在使用UML建模的时候就很顺手了,设计出来的系统模型很具有客观性,当然要达到这个要求得先了解建模工具的操作基础,熟悉建模工具的界面操作功能。第三,需要学习的还有很多。用时下的一句话来说就是:革命尚未成功,还需继续努力。做完这个系统设计之后,也最后发现建模工具中的有很多功能还是没有怎么使用到的,比如接口类之
21、类的啊等等一些连自己都不是很清楚的工具,这点说来惭愧了,所以说还需要学习建模的很多知识。因为在我们以后的毕业设计中或者是下学期的课程设计上,都有可能会继续用到这个建模工具来完成我们的文档上的相关设计的,或者在其它课程的设计应用中也都会有可能使用到。第四,建议。一是“进货自系统”中的设计有“药品验收处理”模块,这点可以和“库存子系统”中的“入库处理”合并为一个子系统中去(个人觉得这两个不同系统中的模块放在一个系统比较更合理)。“进货系统”中就可以更改为“下进货单”。二是题意信息还不够明了,可以修改更明确些。比如:“进销存”各个子系统中是否都安排有一个部门经理,还是只要是公司的普通员工就可以都操作,用该系统的功能。这些没有说明参与者的明确角色,这样真的设计起来就很麻烦了,在没有充分了解全部需求的情况下设计出来的作品都不会是最好的。最后总结一下,本系统出于对个人方便以及学习的需要,在设计活动图中也使用了Word的画图软件工具,Word中的画图也是别有一番滋味。能用不用的方法实现一样的功能也一样可圈可点。但是对于系统设计的需要建议还是用专业的建模工具好。参考文献1.软件工程导论 张海藩 编著-清华大学出版社2.UML面向对象建模基础 徐峰 陈瑄 等编著 -中国水利水电出版社3.UML设计实作宝典 孙惠民 编著 -中国铁道出版社
链接地址:https://www.31doc.com/p-10532225.html