当前位置:文档之家› 银行系统的分析与设计

银行系统的分析与设计


(2)类Account的属性和行为
bank: Bank holder: Customer[] accountNo: String createDate: Date balance: float (私有属性) getHolders(): Customer[ ] newAccount(holder:Customer,balance:float):void remAccount(accountNo:String):void(销户) Withdraw(holderName:String,holderID:String,accountNo:String,money:float):float(返回取
(1)类Bank的属性和行为
❖ bankCode: String name: String ❖ address: String Phone:String Fax:String ❖ setBankCode(code: String) ❖ setName(name: String) ❖ setAddress(address: String) ❖ setPhone(phone: String) ❖ setFax(fax: String))(设置私有属性)
(二)、识别用例
用例:规定系统或部分系统的行为,描述系统所执行的动作序列集,并为执行者产生一个 可供观察的结果。
通过对需求的进一步分析,可确定系统中有如下用例存在: (1)Login(登录):验证用户身份。 (2)Deposit fund(存款):存钱到帐户。
(二)、识别用例
❖ (3)Withdraw fund(取款):从帐户中取钱。 ❖ (4)Maintain Account(管理帐户):创建帐户(开户)、删除帐户(销户)及修改帐户
❖ 1、一个银行可以有多个帐户; ❖ 2、一个银行可以有多个客户; ❖ 3、一个客户可以持有多个帐户; ❖ 4、一个账户可以有多个持有者; ❖ 5、可以开户;6、可以注销账户; ❖ 7、可以取钱;8、可以存钱; ❖ 9、在银行内帐户转帐; ❖ 10、不同银行的账户之间转帐
二、分析问题领域 (一)、识别参与者(角色)
不是描述系统应该怎样做。
❖ 下面对前面识别出的用例逐个进行描述。
1、“登录”活动图
2、“存款”的活动图
3、“取款”的活动图
4、“转帐”的活动图
5、开户(创建帐户)的活动图
6、“删除帐户”的活动图
❖ 前提是待删除帐户的余额为零,对于需 结息的单位帐户,还要让该帐户的余额 积数为零时才可以删除,否则影响轧帐 平衡,系统将不能正常工作。实际应用 中要根据是何种帐户来作不同的处理。 (P188图有误)
银行系统的分析与设计
一、系统需求
❖ 银行是与生活紧密相关的一个机构,提供存款、取款、转帐、信用卡、代理等多种业务。 ❖ 在银行设立帐户的人或机构通常被称为银行的客户。 ❖ 为了简化,本次系统分析只考虑存款、取款、转帐等基本功能。
根据上面对银行系统的基本需求分析,可知这个简化的银行系统至少应该具有如下功能:
7、“修改帐户”的活动图
பைடு நூலகம்
三、静态结构模型
❖ 进一步分析系统需求,识别出类及类之间的关系,确定它们的静态结构和动态行为,是 面向对象分析的基本任务。
❖ 系统的静态结构模型主要用类图或对象图描述。 ❖ 静态建模分三步:(1)定义类、(2)确定类的名字、属性和操作(3)确定类与类之
间的关系,建立类图。
信息。 ❖ (5)Transfer fund(转帐) ❖ (6)Transfer fund within a bank(在银行内转帐) ❖ (7)Transfer fund between banks ❖ 其中用例(5)是(6)和(7)的父用例。
系统用例图
类属
(三)、用例的事件流描述 ❖ 用例的事件流是对完成用例行为所需的事件的描述。事件流描述了系统应该作什么,而
❖ 参与者代表与系统交互的人、硬件设备或另一系统。它存在于系统的外部。 ❖ 通过分析银行系统的功能需求,可以识别出3个参与者: ❖ (1)Clerk(银行职员):银行的工作人员 ❖ (2)CustomerActor(客户):任何在银行中开户的个人或组织 ❖ (3)BankActor(银行):提供存、取等业务的银行。客户可在银行中开户或销户(关闭帐户)。
(1)类Bank的属性和行为
❖ getBankCode(code: String) ❖ getName(name: String) ❖ getAddress(address: String) ❖ getPhone(phone: String) ❖ getFax(fax: String))(访问私有属性)
户余额) Deposit(holderName:String,holderID:String,accountNo:String,money:float):float(返回存
款户余额)
(2)类Account的属性和行为
❖ transferOut(accountNo: String, bankCode: String, money: float): float ❖ transferIn(accountNo:String, bankCode: String, money: float): float ❖ newBalance(): float(计算新的帐户余额) ❖ update(): void(更新数据库中的帐户信息) ❖ save(): void(将帐户信息存储到数据库中) ❖ delete(): void(从数据库中删除帐户)
(一)、定义系统对象类
❖ 从上述分析可知,系统至少具有3个重要的类:Bank、Account、Customer。 ❖ 在银行中,对帐户进行存钱、取钱、转帐操作,要保留业务记录。因此在系统中还应有
代表这些业务记录的对象存在:存(Deposit)、取(Withdraw)、转帐(Transfer),这三个类 都是一种业务记录,故可抽象出父类:Transaction。 ❖ 接着需确定这些对象的属性和行为。
(一)、定义系统对象类
❖ 定义过系统需求,就可以根据系统需求来识别系统中所存在的对象。 ❖ 系统对象的识别可以通过寻找系统域描述和需求描述中的名词来进行,从系统需求描述
中可以找到的名词有银行(Bank)、帐户(Account)、客户(Customer)、资金(Funds), 这些是对象图中的候选对象。 ❖ 判断是否应该为这些候选对象创建类的方法是:是否有与该对象相关的身份和行为。如 果有,则它是一个存在于模型中的对象,应该为之创建类。资金没有对象,也没有与资 金相关的行为。
相关主题