基于RUP开发方法的银行ATM系统面向对象的建模
- 格式:pdf
- 大小:917.74 KB
- 文档页数:3
第六章纺织业实时监测系统分析与建模前一章介绍了如何使用Rational Rose 2003对一个网上选课系统进行建模,本章将以一个简单的银行系统为例,介绍面向对象的分析和设计过程。
进一步来学习如何通过UML 统一建模语言对软件系统进行建模。
本章仍是从需求分析开始,一直到对系统完成建模。
15.1 需求分析我们在现实生活中不可能不与银行打交道,银行与人们的生活息息相关。
它为每一个人提供了一系列的金融服务,比如存款、取款和转账等服务。
实际生活中银行的业务功能极其复杂,比如,客户可以使用信用卡进行存取款和支付等功能,由于本章篇幅有限,这里所介绍的银行系统只涉及银行中最基本的功能。
本章所讲的银行系统的功能性需求包括以下内容。
客户可以在银行开立一个或多个账户。
客户能够将钱款存入已经开立的账号中。
客户可从自己的账号中提款。
客户能够将账户中的存款转账至另一个账户。
客户可以随时查询自己账户的情况,包括以前进行的存款、取款等的交易记录。
客户也有权利要求取消账户。
由于分析设计过程是个迭代的软件开发过程,所以需求也会在分析设计的过程中不断被细化。
15.2 系统建模下面通过使用用例驱动创建系统的用例模型,获取系统的需求,并使用系统的静态模型创建系统的内容,然后通过动态模型对系统的内容进行完善,最后通过部署模型完成系统的部署情况。
在系统建模以前,首先需要在Rational Rose 2003中创建一个模型,并命名为"银行系统",该名称将会在Rational Rose 2003的顶端出现。
如图15-1所示。
(点击查看大图)图15-1 创建项目系统模型15.2.1 创建系统的用例模型进行系统分析和设计的第一步是创建系统的用例模型。
作为描述系统的用户或参与者所能操作的模型,它在需求分析阶段有着重要的作用,整个开发过程都围绕系统的需求用例表述的问题和问题模型进行。
创建系统用例的第一步是确定系统的参与者。
银行系统的参与者包含以下三种。
基于面向对象思想的ATM系统设计与实现课程名称:VC++面向对象思想程序设计班级:电子信息工程2班指导教师:刘帅日期:2016年10月小组编号:电二一组成员:)摘要:在控制台编程中共设置了3个类,ATM 类和card类和bankcard类,设计的程序完美的实现了设计要求,具有登陆、查询、取款、转账、修改密码、回到登录系统、退出系统等功能。
程序实现分为两个部分,其一是mfc部分,其二是控制台部分。
在要求的基础之上,改程序还增添了部分新功能,并对原有功能做了许多个性化修改,例如在登陆界面输入错误三次就会冻结账号退出系统,在mfc对话框中加入图片更加仿真系统。
在可视化控件编程中,通过建立多个对话框,并实现信息交流,完整的实现了要求的内容。
程序编辑较为复杂。
前言:随着市场经济的繁荣发展,人们的物质生活得到极大的提高,手中的剩余资金也日益增多。
受传统观念影响,绝大多数人喜欢把资金投进银行,而在需要使用现金的时候再到银行提取现金。
这就导致银行业务的急剧增加。
虽然银行网点越来越多,银行的工作效率也随着信息化有较明显的增长,但是依旧不能满足广大用户的需要。
而一味的增加营业网点,从理论上虽然能稍微的缓解银行的压力,但是治标不治本,而且每增加一个网点,不仅要付出昂贵的资金成本,还需要长期投入人力资本,成本非常之昂贵。
这时候就迫切的需要一种自动的,易于普及的,低成本的设备来解决这一问题。
于是ATM机系统应运而生了。
银行提款机已经发展成各大银行金融服务战略中的重要一环,为广大用户提供了更加快捷和人性化的服务,银行提款机成为我们日常生活中不可缺少的一部分。
该项目正是通过设计一个ATM模拟模拟程序来实现ATM机系统的基本功能,充分运用自己所学的c++知识进行设计编程。
研究报告:一、项目需求:总体思路模拟自助取款机,通过两种编程实现1、C++控制台编程实现ATM,至少实现提款机登陆、取款、修改密码、查询余额。
2、MFC控件编程实现ATM,至少实现提款机登陆、查询余额、取款和退出系统功能。
ATM系统的分析与建模不完全版1.系统功能分析2.系统结构分析ATM系统的结构主要包括硬件和软件两部分。
硬件包括ATM机、密码键盘、显示屏、打印机等设备;软件包括ATM应用程序、交易处理程序、数据库系统等。
ATM系统主要由前端控制器、交易管理器、数据库管理器等模块组成。
3.系统行为分析-用户插卡后,系统读取卡片信息并验证用户身份;-用户输入密码后,系统验证密码正确性;-用户选择操作后,系统进行交易处理;-交易处理完成后,系统更新数据库信息并输出结果给用户。
4.系统建模为了更好地理解ATM系统的工作原理,我们可以使用UML建模语言对其进行建模。
以下是ATM系统的简单UML建模:-用例图:显示了系统的功能模块和用户的操作。
-类图:包括了系统中的各种类和它们之间的关系。
-时序图:展示了系统中各个对象之间的时序关系。
-状态图:描述了系统中各个对象的状态变化规律。
-活动图:展示了系统中各个活动的流程和顺序。
通过建模分析,我们可以更清晰地了解ATM系统的整体结构和运行机制,从而有助于系统设计和优化。
5.系统设计与优化为了提高ATM系统的性能和稳定性,可以从以下几个方面进行设计与优化:-网络通讯:优化网络通讯模块,提高数据传输速度和稳定性。
-安全性:增强系统的安全性,包括加密传输、防止恶意操作等措施。
-用户体验:设计用户友好的界面和操作流程,提高用户体验。
-故障处理:完善系统的故障处理机制,及时处理各种异常情况。
通过系统设计与优化,可以使ATM系统更加稳定、高效和易用,提升用户体验和满意度。
总结:ATM系统是一种重要的金融服务系统,通过对其进行分析与建模,可以更好地了解其工作原理和功能。
系统的功能、结构、行为等方面都需要进行详细的分析与设计,以确保系统的性能和稳定性。
通过优化系统设计和增强安全性,可以提高ATM系统的服务质量和用户体验,满足用户的各种需求。
希望本文对ATM系统的分析与建模有所帮助,能够为相关领域的研究和实践提供一定的参考价值。
基于UML的面向对象的系统分析与设计基于UML的面向对象的系统分析与设计引言:在当今信息社会中,随着科技的不断进步和应用的不断扩展,各行各业都离不开计算机系统的支持。
为了满足用户的需求,开发出高质量、高效率的系统就显得尤为重要。
而面向对象的系统分析与设计作为一个重要的环节,可以帮助我们更好地理解用户需求并将其转化为实现系统的蓝图。
本文将介绍基于UML的面向对象的系统分析与设计方法,并通过一个实例来演示其应用过程。
一、基于UML的系统分析与设计基础1.1 面向对象的概念面向对象是一种思想方式和编程方法,它将问题领域的实体抽象为类,通过类的组织和交互来描述系统的行为。
面向对象的设计方法使得系统更易于理解、维护和扩展。
1.2 UML的介绍UML(Unified Modeling Language)是一种用于面向对象系统建模的标准化语言,它提供了丰富的符号和图形表示方法,可以帮助分析和设计人员更好地表达复杂的系统结构和行为。
二、基于UML的系统分析与设计方法2.1 需求分析系统的需求分析是整个分析与设计过程的起始点,通过与用户的交流和讨论,了解用户的需求并进行准确定义。
在这一阶段,分析人员可以运用UML中的用例图、活动图等工具来分析和描述用户需求。
2.2 类建模在需求分析阶段的基础上,分析人员将用户需求转化为类模型。
通过识别和分析系统中的实体、属性和行为,可以确定类的结构和关系。
在这一阶段,可以运用UML中的类图来进行类的建模。
2.3 行为建模在类建模完成后,需要进一步分析和设计系统的行为。
行为建模通常包括状态图、顺序图和活动图等。
通过这些图形化表示,可以描述系统中各个类之间的交互和信息流动,保证系统的正确性和健壮性。
2.4 设计模式的应用设计模式是一种被广泛应用的解决问题的模板,它提供了一些经验性的指导原则和设计思路。
在系统分析与设计过程中,分析人员可以借鉴各种设计模式,通过复用已有的解决方案来提高系统的可靠性和效率。
ATM系统分析与设计需求分析一.总体要求:1,ATM机要可以判断磁卡的类别,如果不是有效的磁卡则退卡;2,可以在较快的时间内响应用户的请求,并针对相应的请求执行正确的操作;3,当卡在ATM机内30秒内没有操作时,系统自动没收信用卡;4,查自己的账户时应显示余额和可用余额,并显示ATM机里所拥有的现金面值,让用户可以做出正确的选择;5,提取现金时提示用户输入取款金额并判断输入是否确,如果错误提醒用户并要求重新操作,正确则提醒用户收取现金;钞票在出钞机内30秒内没人取走,自动回收钞票;6,转账汇款时让用户选择转账类型,要求用户输入转账账号并要求用户输入两次,以确保没有输入错误,在两次输入都正确的情况下,让用户输入转账金额,并作最后的确认。
7,进入修改密码界面后提醒用户输入新密码,并要求再次输入以确保密码统一无误,在确认后完成修改操作,并提醒用户新询密码生效;8,对于错误的操作或者操作延时做出有效的处理。
二,系统要求:要求用户一次取款数额不得大于2500元;要求用户一天取款数额不得超过5000元;要求用户连续输入错误密码次数不得超过3次。
三,系统性能要求:要求反应时间不得大于10秒钟;四:设计目标:系统可以提供24小时不间断服务,操作简单,可以很方便为用户提供取款、转账/汇款、查询账户信息等服务。
模型分析一:设计DFD图。
(1)顶层DFD图:(2)0层DFD图:(3)1层DFD图:取款子系统:查询子系统:转账子系统:更改密码子系统:二:组织结构设计(1)系统结构(2)读卡机系统(3)键盘输入子系统认证子系统:显示子系统:出钞子系统:打印子系统:数据库子系统:建立模型一:建立基本系统模型图二:建立序列图:代码设计:#include<iostream.h>class consumer;class ATM// ATM取款机{public:ATM(consumer& cn):cnsm(cn){}void welcome();// 登陆界面bool check_passwd(char n[],char pwd[]); // 核对密码void change_passwd();// 修改密码void fetchmoney();// 取款void information();// 查询信息void exitATM();// 退出系统void functionshow();// 功能界面void lock();// 锁机private:int times;// 记录密码输入次数consumer& cnsm;};class consumer// 用户{public:friend class ATM;consumer(char Name[],char Num[],float Money,char Password[]); protected:char* get_name();// 取得姓名char* get_num();// 取得卡号char* get_passwd();// 取得密码float get_money();// 取得余额void set_passwd(char pwd[]);// 设置密码void set_money(float m);// 取钱private:char passwd[8];// 用户密码char name[20];// 用户姓名char num[20];float money;};// * consumer类的成员函数 *#include"function.h"#include<string.h>consumer::consumer(char Name[],char Num[],float Money,char Password[]) {strcpy(name,Name);strcpy(num,Num);money=Money;strcpy(passwd,Password);}float consumer::get_money(){return money;}char* consumer::get_name(){return name;}char* consumer::get_num(){return num;}char* consumer::get_passwd(){return passwd;}void consumer::set_money(float m){money-=m;}void consumer::set_passwd(char pwd[]) {strcpy(passwd,pwd);}// * ATM类的成员函数 *#include "function.h"#include <string.h>#include<stdlib.h>void ATM::welcome(){times=0;cout<<"$欢迎使用ATM自动取款机!"<<endl;char pwd[8],num[20],ch;int i=0;do{i=0;cout<<endl<<"请输入卡号:";do{cin.get(ch);num[i++]=ch;}while(ch!='\n');num[i-1]='\0';i=0;cout<<"请输入密码:";do{cin.get(ch);pwd[i++]=ch;}while(ch!='\n');pwd[i-1]='\0';if(!check_passwd(num,pwd)){cout<<"你输入的卡号或密码有误,请重新输入"<<endl;times++;}else{functionshow();}}while(times<3);lock();}bool ATM::check_passwd(char num[],char pwd[]){if(strcmp(num,cnsm.get_num())==0&&strcmp(pwd,cnsm.get_passwd())==0)return true;elsereturn false;}void ATM::functionshow(){int n;do{cout<<endl<<"请你输入相应的操作序号进行操作:"<<endl;cout<<"1) 修改密码 "<<endl<<"2) 取款 "<<endl<<"3) 查询余额 "<<endl<<"4) 退出系统 "<<endl;cout<<"$ >\\";cin>>n;while(n<1||n>4){cout<<"请输入正确的操作序号!"<<endl;cout<<"$ >\\";cin>>n;}switch(n){case 1: change_passwd();break;case 2: fetchmoney();break;case 3: information();break;case 4: exitATM();break;}}while(true);}void ATM::change_passwd(){char pwd[8],repwd[8];times=0;do{cout<<endl<<"请输入旧密码:";cin>>pwd;if(!check_passwd(cnsm.get_num(),pwd))times++;elsebreak;}while(times<3);if(times==3)lock();int t=0;do{cout<<"请输入新密码:";cin>>pwd;cout<<"请再输入一次新密码:";cin>>repwd;if((t=strcmp(pwd,repwd))!=0)cout<<"密码不一致,请重新输入!"<<endl;}while(t!=0);cnsm.set_passwd(pwd);cout<<"密码修改成功"<<endl;}void ATM::fetchmoney(){float m;char ch;do{cout<<endl<<"请输入取款金额:"<<"\n$>\\"<<endl ; cin>>m;while(m<=0){cout<<"请输入正确金额"<<endl;cout<<"$ >\\ ";cin>>m;}if(cnsm.get_money()-m<0){cout<<"对不起,你的余额不足!"<<endl;}else{cout<<endl<<"操作成功,请取钱!"<<endl;cnsm.set_money(m);}cout<<"是否要继续该项操作:(Y/N) "<<endl;cout<<"$ >\\ ";cin>>ch;while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y'){cout<<"$ >\\";cin>>ch;}}while(ch=='y'||ch=='Y');}void ATM::information(){cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl; cout<<"~"<<endl;cout<<"~ 用户姓名:"<<cnsm.get_name()<<endl;cout<<"~ 卡号: "<<cnsm.get_num()<<endl;cout<<"~ 余额: "<<cnsm.get_money()<<endl;cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl; }void ATM::lock(){cout<<endl<<"对不起,由于你的操作有误,你的卡已经被没收! "<<endl;exit(1);}void ATM::exitATM(){cout<<endl<<"感谢你对本银行的支持,欢迎下次光临!"<<endl;cout<<"请取卡……"<<endl;exit(0);}。
ATM系统分析与建模1.需要描述ATM是银行为了用户更方便存款、取款而开发的一套软件系统,从总体上分析,ATM系统主要功能包括:客户登录系统;能够支持存款、取款、查询明细;修改密码;转账以及退出系统的功能。
特殊要求:登录系统时要选择账户、输入密码;存款和取款时可以选择打印凭条;查询明细时可以选择查询当前余额或输入时间段进行详细查询。
2.域模型3.用例模型图4.用例文本用例名称:取款角色:客户描述:客户首先将磁卡插入ATM机中,初始化ATM屏幕提示输入密码,用户输入密码,系统验证密码是否正确,若不正确。
重新输入密码,若连续输入密码三次不正确,退出服务。
若输入密码正确,客户根据提示选择取款服务,然后输入取款数额,系统判断输入的取款数额的合法性,若不合法(这里不考虑透支)退出服务,若合法取款机吐款。
主要流程:(1)客户插入磁卡,初始化ATM系统屏幕(2)系统提示输入密码。
(3)客户输入密码并通过系统验证(4)系统列出服务项目(5)客户选择取款,输入取款金额,按下确定键(6)系统验证取款数额的合法性。
并计算出手续费(7)系统连接到综合系统,查询账户余额,确认余额是否足够(8)取款机吐款,交易成立(9)系统提供打印功能,供客户选择是否打印替代流程:(3)a[密码错误]系统出现密码错误警告。
并返回主要流程(2),供客户重新输入密码(6)a[金额不足]系统出现取款金额必须为100元整数的信息,回到主要流程(5),供客户出现输入取款金额(6)b[金额过低]系统出现最低取款的信息,回到主要流程(5),供客户重新输入取款金额(6)c[金额过高]系统出现最高取款的信息,回到主要流程(5),供客户重新输入取款金额(7)a[余额不足]系统出现余额不足的信息,回到主要流程(5),供客户重新输入取款金额5.时序图。