1软件工程文档银行ATM系统—UML的设计与实现单位:国防科技大学计算机学院学员三队设计人员:目录1、引言..............................................31.1编写目的.........................................................................31.2读者对象.........................................................................321.3软件项目概述.....................................................................31.4文档概述.........................................................................31.5定义.............................................................................41.6引用文件.........................................................................42、任务概述..........................................52.1目标.............................................................................42.2软件的开发和运行环境.............................................................42.3用户特征.........................................................................42.4假设与约束.......................................................................42.5初步需求分析.....................................................................53、问题域分析........................................64.1参与者...........................................................................64.2用例.............................................................................74.3用例图...........................................................................84、静态结构模型......................................85.1类的分析........................................................................85.2CRC.............................................................................95.3类图...........................................................................145、动态行为模型....................................156.1事件流描述.....................................................................166.2顺序图.........................................................................186.3活动图.........................................................................266、界面设计要求.....................................277、软件测试方案.....................................359、工程进度总览.....................................3831、引言1.1编写目的按照面向对象软件工程思想,为便于银行ATM系统软件开发,为其提供可靠的文档资料,增强此软件的可读性与可维护性,记录整个软件开发过程。此文档为程序员控制整个开发过程的必备文档,记录了软件的开发过程,并指导程序员逐步实现软件的开发。1.2读者对象该软件是一个课程设计,属于小组开发,对象是教员、欲拷贝此软件进行参考的专业人员。1.3软件项目概述项目名称:国防科大工商银行ATM系统简称:银行ATM系统项目代号:国标90010603软件项目的大致功能:银行客户存款、取款、转账、查询余额、更改密码。1.4文档概述本文档的大致内容为:软件的编写目的软件的功能、性能描述4软件的开发过程描述软件的界面设计软件的测试与维护1.5定义1、文档:记录软件开发活动和阶段性成果,为理解软件所必需的阐述性资料2、数据:是客观事物的符号表示,是现实世界的事物采用计算机能够识别、存储和处理的形式进行描述的符号的集合。3、正确性:满足用户的需求(功能、性能等)。4、可靠性:具有能够防止因概念、设计和结构等方面的不完善而造成的系统失效,具有挽回因操作不当而造成软件系统失效的能力。5、有效性:充分利用计算机的时间和空间资源。6、可验证性:软件系统应易于检查、测试和评审1.6引用文件引用文档《软件工程术语》(GB/T11457-1995)――中华人民共和国国家标准1995-12-01实施参考文件1.《UML与RationalRose从入门到精通》….....WendyBoggs等著2、《VisualC++动感设计》——飞思科技,电子工业出版社,2002年9月3、《VisualC++入门与提高》——清华大学出版社,2002年6月4、《VisualC++、MFC导学》——人民邮电出版社,2003年1月5、《VisualC++编程高手》——机械工业出版社,2001年12月52、任务概述2.1目标本项软件是为了实现对银行ATM系统的模拟。软件在VISUALC++6.0的环境下开发,是一项独立软件,包含所有源代码。软件中的BMP图片由WINDOWS的画图工具和图形软件PHOTOSHOP制作或处理而成。2.2软件的开发和运行环境开发:此软件代码由VisualC++6.0完成,由MFC工具开发。运行环境:Pentiumll以上处理器的Windous环境下,包括Win.NT等操作系统。2.3用户特征教员:教授与研究生,负责检查此软件,具有丰富的软件开发经验。同学:计算机专业本科生,进行参考,具有一定的编程能力和软件工程经验。2.4假设与约束2.4.1假设经费限制:此软件为课程设计作业,无经费限制。开发期限:7周。预计困难:1、时间紧;62、难度大;3、知识与能力不够。2.4.2约束性能约束:不能在除Windows以外的环境下运行。1.2初步需求分析此软件的设计将实现银行ATM系统的基本功能。ATM系统一次服务一名客户。客户插入一张ATM卡并进入个人数字识别号码(PIN),系统进行验证,通过后客户才能执行一种或更多操作。客户完成所有操作后,退卡。ATM系统必须向客户提供如下服务:1、客户可以做一次取款(取款金额必须是100元人民币的整数倍),在现金被提取之前,必须得到银行的许可。2、客户可以做一次存款,客户把存款量输入到ATM系统中,必须从银行得到许可。3、客户可以做一次转帐。4、客户可以进行一次详细账户信息查询。5、客户通过有效验证后可以更改密码。6、客户可以在取回磁卡是选择是否得到记录操作的打印凭条。ATM系统将把每一处理传达到银行并且获得银行许可。如果银行确定客户PIN是无效的,客户将被要求再进入PIN。如果客户不能在五次尝试之后成功地进入PIN,客户的卡将被机器没收,而客户不得不联系银行取回它。3、分析问题域3.1Actor(参与者)(1)Bankserve(银行服务器)描述:Bankserve管理机器。示例:银行中央服务系统。(2)Operator(银行服务人员)描述:负责开/关机器和往机器中放现金。示例:银行的工作人员。7(3)Customer(客户)描述:Customer可以存款、取款、转账、查询余额、更改密码。示例:任何一个在银行开有账户的个人。3.2Usecase(用例)(1)Session(会话)当一名客户将一张ATM卡片插入机器时,一个Session开始,ATM系统读卡(如果客户执行非法操作或卡片损坏,卡片将被退出,同时屏幕将显示出错信息,而被Session异常中断)。进行验证客户密码的登录功能。客户成功登录系统后,可以选择一种或多种操作,直至退卡。如果客户输入五次无效的PIN,则Session被异常中断,ATM卡将被吞掉。(2)Task(任务)Task是一种抽象的用例,表示所有类型的处理所共有的行为,Task的具体类型按照适当的方式执行一定的操作。根据Task(存款、取款,转帐,查询,更改密码)的事件流描述给出具体的处理。(3)Deposit(存款)提供存款到帐户的功能。(4)Withdraw(取款)提供从账户取款的功能。(5)Transfer(转账)提供转账功能。(6)QueryAccount(查询余额)提供查询余额的功能。(7)ChangePIN(更改密码)提供更改密码的功能。(8)PrintReceipt(打印凭条)客户选择打印凭条,包括显示日期,时间,机器位置,操作,理由,数量,结果类型,受到影响的原因和可供使用的选择。83.3UseCaseDiagram(系统用例图)QueryAccountWithDrawDepositTransferChangePINCustomerPrintReceiptSessionBankServeTaskusesuses4.静态结构模型4.1类的分析94.2CRC边界类:1.CcardReadera)Responsibility:i.TellATMWhenCardisInsertedii.EjectCardiii.Readinfofromcardiv.Retaincardb)Collaborations:10i.ATMii.Sessioniii.Card2.CcashDispensera)Responsibility:i.Dispensecashii.Keeptheamountofcashavailableiii.Initcashamountb)Collaborations:i.Clogii.CTransaction3.CCustomerConsolea)Responsibility:i.Displaymessagesii.Displaymenuandreceiveachoiceiii.DisplayapromptandreceiveaPINiv.Displayapromptandreceivetheamountofmoneyv.Displayadialogandreceivetheresponseb)Collaborations:i.CTransactionii.CSession4.CKeyboarda)Responsibili