案例分析案例1:仓库信息管理系统•一、需求分析•二、系统用例模型•三、系统动态模型•四、创建系统包图•五、系统类模型•六、系统部署系统总体功能需求一个功能完全的仓库信息管理系统,必须包括以下的几个管理系统:•(1)用户登录•(2)仓库管理•(3)业务查询•(4)系统设置一、需求分析•系统总体结构图仓库信息系统用户登录仓库管理系统设置业务查询•用户登录功能模块用户登录用户登录用户注销用户退出•仓库管理功能模块仓库管理仓库退货仓库领料商品调拨仓库退料仓库进货仓库盘点•系统设置功能模块二、系统用例模型创建用例图分为以下几个步骤:•确定角色•创建用例•创建角色—用例关系图1、确定角色2、创建用例仓库信息系统根据业务流程可以分为以下的几个用例(UseCases):•仓库进货•仓库退货•仓库领料•仓库退料•商品调拨•仓库盘点•库存查询•业务分析•仓库历史记录查询•供应商信息维护•仓库信息维护•用户登录•用户注销•退出系统建立用例图3、创建角色—用例关系图历史记录查询(fromUseCases)库存查询(fromUseCases)仓库信息维护(fromUseCases)业务分析(fromUseCases)用户登录(fromUseCases)仓库盘点(fromUseCases)退出系统(fromUseCases)供应商信息维护(fromUseCases)商品退料人(fromActors)商品领料人(fromActors)仓库退料(fromUseCases)仓库领料(fromUseCases)商品调拨(fromUseCases)用户注销(fromUseCases)仓库退货(fromUseCases)管理员(fromActors)操作员(fromActors)仓库进货(fromUseCases)商品供应商(fromActors)三、系统动态模型动态模型包括许多图:活动图(Activity)、时序图(Sequence)、协作图(Collaboration)等。•业务用例能够采用语言描述的形式,但是对于复杂的业务处理流程,最好采用活动图的形式。•进货的活动图•仓库盘点过程时序图•仓库盘点过程协作图四、创建系统包图包是模型的一部分,模型的每一部分必须属于某个包。建模者可以将模型的内容分配到包中。UML对如何组包并不强制使用什么规则,但是良好的分组会很大的增强模型的可维护性。•系统包图•人员信息包内的类•事务包内的类五、系统类模型•类图是面向对象系统的建模中最常见的图。类图显示了一组类、接口、协作以及他们之间的关系。•类图不仅对结构模型的可视化、详述和文档化很重要,而且对通过正向与逆向工程构造可执行的系统也很重要。•Logical视图•类图六、系统部署仓库管理系统部署是整个项目实施过程中最后的阶段,就是把该系统中涉及到的硬件软件、整合到一起,并且可以让系统运行起来。•组件图•配置图案例2:ATM系统•建立一个具有基本功能的ATM机软件客户可以存钱,取钱客户可以查询节余客户可以修改密码客户可以使用信用卡付帐需求建模—用例图•需求分析的第一步是确定系统能够做什么?谁来使用这个系统?•用例图显示用例(表示系统功能)与角色(表示提供或者接收系统信息的人或系统)之间的交互。•用户,项目管理员,分析人员,开发人员,质保人员都可以通过用例图了解系统功能。需求建模—用例图建立用例图分为以下几个步骤:•确定角色(Actors)•创建用例(UseCase)•创建角色(UseCases)—用例(UseCase)关系图角色•系统用户•与本系统交互的其他系统•时间•确定角色(Actor)用例•描述一个系统(或一个子系统)做什么,而不是说明怎么做.创建用例(UseCase)用例是角色启动的,基于这样的考虑,ATM系统根据业务流程大致可以分为以下的几个用例:客户取钱客户存钱客户查询余额客户转帐客户更改密码客户通过信用系统付款•建立用例图创建角色—用例关系图客户的角色—用例关系图一共有6个用例:•转账•查询余额•存钱•付款•取钱•修改密码•客户的用例关系图建立事件流•事件流的目的是建档使用案例中的逻辑流程,详细描述系统的工作。用例“取钱”的事件流(1)•简要说明:客户可以从ATM机上取出自己帐目上的部分或者全部存款。•前提条件:无•主事件流:1.客户将卡插入ATM机,开始用例。2.ATM显示欢迎消息并提示客户输入密码。3.客户输入密码。4.ATM确认密码有效。如果无效则执行其他事件流A1。如果与主机联接有问题,则执行异常事件流E1。5.ATM提供以下选项:存钱,取钱,查询。6.用户选择取钱选项。7.ATM提示输入所取金额。8.用户输入所取金额。9.ATM确定该帐户是否有足够的金额。如果余额不够,则执行A2,如果与主机联接有问题,则执行异常事件流E1。10.ATM从客户帐户中减去所取金额。11.ATM向客户提供要取的钱。12.ATM打印清单。13.ATM退出客户的卡,用例结束。•其他事件流A1:输入无效密码1.ATM告诉客户该密码错误。2.ATM退出客户的卡,用例结束。•其他事件流A2:余额不足1.ATM告诉客户该帐户余额不足。2.ATM退出客户的卡,用例结束。•异常事件流E1:联接主机出现错误1.ATM告诉客户联接主机出现错误。2.ATM在错误日志记下错误。3.ATM退出客户的卡,用例结束。•事后条件:无对象交互—交互图•交互图显示一组对象以及它们之间传送的消息寻找对象•研究事件流及情景文档中的名词•分辨对象和对象属性•不在事件流中的控制对象时序图-按时间顺序对控制流建模•用户从中看到业务过程的细节•分析人员从中看到处理流程•开发人员看到需要开发的对象和它们的操作•质保人员看到过程细节,并根据这个过程开发测试案例客户李明取20元钱的顺序图协作图-按对象的组织对控制流建模•质保人员和系统分析员用协作图显示对象间处理过程的责任分布和数据流。客户李明取20元钱的协作图对象结构—类图•显示系统中类与类之间的交互•分析员用类图显示系统细节。类图可以显示每个用例中类的相互作用,也可以显示整个系统或子系统ATM系统“取钱”用例的类图读卡机类ATM屏幕类帐户类取钱机类创建系统包图•包将具有一些共性的类组合在一起.•一个包形成一个命名空间。通过包组织大系统模型,减少复杂性•结构良好的包是松耦合,高内聚的,对其类容的访问具有严密的控制ATM系统的包图对象行为——状态图•显示一个对象从生成到删除的生命周期中相应事件所经历的状态序列以及它们对哪些事件的相应。•分析人员和开发人员通过状态图更好的了解类的动态行为,使编码前能讨论和建立复杂逻辑。Account对象的状态图构造程序——组件图•表示一组组件之间的组织和依赖关系•编译和部署系统的人员需要使用组件图。显示了类与实现组件之间的映射,组件按什么顺序编译,编译时生成哪些运行组件•构件图对于通过正向工程和逆向工程构造可执行系统是重要的组件图ATM客户机的C++组件图ATM服务器的C++组件图ATM客户机的Java组件图项目部署——实施图•建模系统的实际部署•项目管理员,用户,分析员和部署人员通过实施图了解,显示网络的实际布局和网络节点上组件的配置ATM系统的实施图