UML统一建模语言重点内容:需求分析创建系统用例模型创建系统静态模型创建系统动态模型创建系统部署模型第15章银行系统UML统一建模语言一、需求分析银行与我们的生活息息相关。它为每一个人提供了一系列的金融服务,比如存款、取款和转账等服务。实际生活中的银行业务功能及其复杂,这里所介绍的银行系统只涉及银行中最基本的功能。本银行系统的功能性需求包括以下内容:(1)客户可以在银行开立一个或多个账户。(2)客户能够将钱款存入已经开立的账号中。(3)客户可从自己的账户中进行提款。(4)客户能够将账户中的存款转账至另一个账户。(5)客户可以随时查询自己账户的情况包括以前进行的存款、取款等的交易记录。(6)客户也有权利要求取消账户。由于分析设计过程是个迭代的软件开发过程,所以需求也会再分析设计的过程中不断被细化。UML统一建模语言二、创建系统用例模型银行职员用例能够通过该系统进行如下活动:(1)登录银行系统。银行职员在登录系统时,必须通过系统的身份验证才能进入银行系统主界面进行下一步的操作。(2)对客户的账户进行管理,包括为客户创建新的账户、修改账户信息和删除账户。UML统一建模语言二、创建系统用例模型客户与银行职员之间是依赖的关系,客户必须依赖于职员才能完成各种用例。银行职员作为客户的代理完成与用例的交互。客户用例能完成的具体功能如下。(1)存款。用户通过银行职员将钱款存入的自己的账户中。(2)取款。用户通过银行职员从自己的账户中将钱款取出。(3)转账。用户通过银行职员将一个账户中的钱款转至其他的账户。由于转账既可以在同一银行之间进行,也可以在不同的银行之间进行,因此这里用了二个用例,使用本行转账和跨行转账来描述。本行转账和跨行转账是转账的子用例,它们之间是继承的关系。(UML统一建模语言三、创建系统静态模型根据系统需求,创建静态系统类图。我们可以识别系统中存在的主要实体类:银行(Bank)、账户(Account)和客户(Customer)。辅助类:存款(Deposit)、取款(Withdraw)和Transfer(转账),这三个类又可以抽象出父类Transaction。用户界面类:主界面类(MainForm),登录界面(LoginFrame),查询界面(QueryFormo),取款界面(WithdrawForm),账户界面(AccountForm)和转账界面(TransferForm)。UML统一建模语言三、创建系统动态模型1、银行职员登录银行系统的序列图和交互图创建序列图额协作图在银行系统中,通过系统用例的描述,可以获得以下交互行为。银行职员登录本系统。客户通过银行职员将钱款存入自己的账户。客户通过银行职员从自己的账户中将钱取出。客户通过银行职员在本银行进行转账。客户通过银行职员进行跨行转账。客户通过银行职员开立新账户。客户通过银行职员删除账户。客户通过银行职员修改账户信息。UML统一建模语言三、创建系统动态模型1、银行职员登录银行系统的序列图和交互图银行职员登录银行系统用例的工作流程:(1)银行职员想通过系统进行某一项操作。(2)银行职员启动系统,在登录页面LoginFrame输入自己的用户名和密码并提交。(3)系统验证银行职员的用户名和密码是否正确,如正确创建系统主界面。(5)如果身份验证未通过,返回错误提示信息。UML统一建模语言三、创建系统动态模型2、客户存款的序列图和交互图客户存款用例的具体工作流程如下:(1)客户向银行职员提出存款要求。(2)银行职员在系统主界面请求存款操作,系统创建存款界面。(3)银行职员添加存款信息后,提交至账户类。(4)账户类确认数据库是否存在该账户,如存在创建一个存款交易记录,再将记录保存到数据库。计算新账户的余额,最后更新数据库中该账户的信息。UML统一建模语言三、创建系统动态模型客户取款用例的工作流程描述如下:(1)客户向银行职员提出取款要求。(2)银行职员在系统主界面请求取款操作,系统创建取款界面。(3)银行职员添加取款信息后,提交至账户类。(4)账户类确认数据库是否存在该账户,并确认账户中的金额是否足够支付所取款项,如可足够支付则创建一个取款交易记录,再将记录保存到数据库。计算新账户的余额,最后更新数据库中该账户的信息。3、客户取款序列图和交互图UML统一建模语言三、创建系统动态模型客户进行本行转账的工作流程如下:(1)客户向银行职员提出本行转账的要求。(2)银行职员在系统主界面请求转账操作,系统创建转账界面。(3)银行职员添加转账款信息后,提交至账户类(转出)。(4)账户类确认是否存在该账户,并确认账户中的金额是否足够支付转账款项,如可足够支付则计算新的账户余额,更新数据库中该账户的信息,发送消息给转账类,创建转账交易记录,保存转账交易记录。(5)转账界面将转账信息传递给账户(转入),查询该账户是否存在。如存在计算账户余额,然后更新数据库的数据。发送消息给转账类,创建转账交易记录,保存转账交易记录。4、客户本行转账序列图和交互图UML统一建模语言三、创建系统动态模型客户进行跨行转账的基本工作流程如下:(1)客户向银行职员提出跨行转账的要求。(2)银行职员在系统主界面请求转账操作,系统创建转账界面。(3)银行职员添加转账款信息后,提交至账户类。(4)账户类确认是否存在该账户,并确认账户中的金额是否足够支付转账款项。(5)如可足够支付则计算新的账户余额,更新数据库中该账户的信息。(6)发送消息给转账类,创建转账交易记录,保存转账交易记录。(7)最后,发送转账通知到另一家银行。5、客户跨行转账的序列图和交互图UML统一建模语言三、创建系统动态模型客户开立新账户的基本工作流程如下:(1)客户向银行职员提出开立账户要求。(2)银行职员在系统主界面请求创建账户操作,系统创建账户界面。(3)银行职员添加账户信息后,提交至账户类。(4)账户类确认数据库是否已存在该客户的账户。如不存在,则创建新客户对象。(5)然后将客户信息保存到数据库中。6、客户开立账户序列图和协作图UML统一建模语言三、创建系统动态模型客户删除账户的基本工作流程如下:(1)客户向银行职员提出删除账户要求。(2)银行职员在系统主界面请求查询账户操作,系统创建查询界面。(3)银行职员在查询界面提交账号,从账户类中获得指定账户的信息,同时系统创建账户界面。(4)银行职员在账户界面确认删除,并将删除命令提交给账户类。(5)账户类结算账户金额,关闭账户,从数据库中删除账户,并更新数据库中客户的相关信息。(6)判断是否还有和客户相关的账户存在。如果没有,最后删除数据库中客户的信息。7、客户删除账户的序列图和协作图UML统一建模语言三、创建系统动态模型客户修改账户信息的工作流程如下:(1)客户向银行职员提出修改账户信息的要求。(2)银行职员在系统主界面请求查询账户操作,系统创建查询界面。(3)银行职员在查询界面提交账号,从账户类中获得指定账户的信息,同时系统创建账户界面。(4)银行职员修改账户信息后,提交给账户界面。(5)账户界面发送消息更新数据库中客户的信息,同时更新账户信息。8、客户修改账户信息序列图和协作图UML统一建模语言三、创建系统动态模型在银行系统中,有明确状态转换的类是账户。账户包含以下四种状态:被创建的新账户、被修改后账户、睡眠账户和被删除的账户。它们之间的转化规则是:(1)客户开立账户时,新的账户被创建。(2)客户要求变更原有账户信息时,账户内容被改变。(3)账户长期未使用,银行将其定义为睡眠账户的状态。(4)客户注销账户,账户被删除。9、银行账户状态图UML统一建模语言三、创建系统动态模型10、银行职员登录系统活动图银行职员登录系统的活动图中,创建了二个泳道,分别是银行职员对象和系统对象,具体的活动过程描述如下:(1)系统提示用户输入用户名和密码。(2)银行职员输入用户名和密码后提交,系统验证是否正确。(3)如正确,进入主界面,否则,显示错误信息,并提示用户重新输入。UML统一建模语言三、创建系统动态模型11、客户存款活动图客户存款的活动图中,创建二个泳道,分别是银行职员对象和系统对象,具体的活动过程描述如下:(1)系统提示输入用户的相关信息和存款金额。(2)银行职员将相关信息输入后提交,系统判断账户是否存在且有效。(3)如果账户有效并存在,建立交易记录,同时修改账户金额,保存交易记录。UML统一建模语言三、创建系统动态模型12、客户取款活动图活动图中创建了二个泳道,分别是银行职员对象和系统对象,具体的活动过程描述如下:(1)系统提示输入用户的相关信息和取款金额。(2)银行职员将相关信息输入后提交,系统判断账户是否存在且有效,账户中的余额是否大于取款金额。(3)如果账户有效并存在同时金额足够,建立交易记录,同时修改账户金额,保存交易记录。UML统一建模语言三、创建系统动态模型13、客户转账活动图客户转账活动图创建二个泳道,分别是银行职员对象和系统对象,具体的活动过程描述如下:(1)系统提示输入用户的相关信息和转账金额。(2)银行职员将相关信息输入后提交,系统判断账户是否存在且有效,账户中的金额是否大于转账金额。(3)如果账户有效并存在同时金额足够,建立交易记录,同时修改账户金额,保存交易记录。(4)判断转入账户是否属于同一银行。如是同一银行,系统先确认转入账户是否存在并有效。如有效更新账户相关信息,建立转账记录,保存转账记录。(5)如果转入和转出账户不是同一银行,则发送转账通知给另一个银行。UML统一建模语言三、创建系统动态模型14、创建账户活动图创建账户的活动图,需要创建二个泳道,分别是银行职员对象和系统对象,具体的活动过程描述如下:(1)系统提示输入用户的相关信息和存款金额。(2)银行职员输入相关信息后提交。(3)系统为客户创建账户,并将账户信息保存到数据库。UML统一建模语言三、创建系统动态模型15、客户修改账户活动图客户修改账户的活动图,我们创建了二个泳道,分别是银行职员对象和系统对象,具体的活动过程描述如下:(1)系统提示输入用户的账号。(2)银行职员输入账号后提交。系统查询账户信息并显示。(3)银行职员修改账户信息后提交,系统更改账户信息。UML统一建模语言四、创建系统部署模型1、系统构件图在银行系统中,我们可以对系统的主要参与者和主要的业务实体类分别创建对应的构件进行映射。我们根据类图创建系统构件图,包括银行构件(Bank)、客户构件(Customer)、银行职员构件(Clerk)、界面构件(Form)、账户构件(Account)、账户管理构件(Transaction)和主程序构件。UML统一建模语言四、创建系统部署模型2、系统部署图在银行系统中,系统包括四种节点,分别是:数据库服务器(DatabaseServer)节点,负责数据的存储;系统服务器(BankServer)节点,用于处理系统的业务逻辑;内部客户端节点(InClient)和外部客户端节点(OutClient),使用者通过客户端登录系统进行操作。UML统一建模语言分组讲解内容•第1组:需求分析、系统建模介绍、创建系统用例模型。讲解需求分析、介绍系统建模、演示Rose创建用例图•第2组:创建系统静态模型到1)学生登录选课系统的工作流程。说明并演示Rose创建类图、序列图、协作图•第3组:2)学生查询选课信息的工作流程到4)学生查询个人信息的工作流程。说明并演示Rose创建序列图、协作图•第4组:5)系统管理员登录选课系统的工作流程到6)•系统管理员添加选修课程的工作流程。说明并演示Rose创建序列图和协作图。UML统一建模语言分组讲解内容•第5组:7)系统管理员修改选修课程的工作流程到9)系统管理员查询学生信息的工作流程。说明并演示Rose创建序列图和协作图。•第6组:10)系统管理员添加学生信息的工作流程到11)系统管理员修改学生信息的工作流程。说明并演示Rose创建序列图和协作图。•第7组:12)系统管理员删除学生信息的工作流程到1)学生查看选修课程活动图。说明并演示Rose创建序列图、状态图和活动图。UML统一建模语言分组讲解内