《太原理工大学系统分析与设计实验报告.docx》由会员分享,可在线阅读,更多相关《太原理工大学系统分析与设计实验报告.docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、太原理工大学系统分析与设计实验报告 本科实验报告 课程名称:系统分析与设计 实验项目:ATM自动取款机系统实验实验地点:逸夫楼402 专业班级:学号: 学生姓名: 指导教师: 一、实验目的 通过系统分析与设计实验,使学生在实际的案例中完成系统分析与系统设计中的主要步骤,并熟悉信息系统开发的有关应用软件,加深对信息系统分析与设计课程基础理论、基本知识的理解,提高分析和解决实际问题的能力,使学生在实践中熟悉信息系统分析与设计的规范,为后继的学习打下良好的基础。 二、实验要求 以个人为单位完成,自选题目,班内题目不重复,使用UML进行系统分析与设计,并完成实验报告。 三、实验主要设备: 台式或笔记本
2、计算机 四、实验内容 1 选题及项目背景 ATM自动取款机系统 项目背景:ATM自动取款机是由计算机控制的持卡人自我服务型的金融专用设备。可以向用户提供一个方便、简单、及时、随时随地曲匡的互联的现代化的网络系统。 2 定义 ATM自动取款机可以为用户提供取款、查询余额、设置密码、转账等业务。在用户使用ATM自动取款机时,ATM要求用户输入密码,接下来由ATM把从银行卡上读取的信息以及用户输入的密码传给ATM自动取款机系统,系统通过数据库中的信息进行核对,如果密码正确,ATM就要求用户选择事务类型(取款、查询等),直至用户选择退出应用服务,询问用户是否退出应用服务,如果用户选择结束,则退出银行卡
3、,系统重回登陆界面。用户进入取款界面后,首先可以输入取款金额(必须是50的倍数),否则系统显示输入有误。用户点击确认后,由系统查询用户相应的账户,判断该取值金额是否超出用户现有余额,如果没有,则系统会显示确认界面,用户单点击“确认”后,系统自动生成账单,并在后台进行工作,吐钞机进行清点并吐出现金,并将数据更新到数据库中;否则提示用户余额不足,请重新输入,重复上述过程。 3 参考资料 系统分析与设计 4 系统分析与设计 4.1需求分析 4.1.1识别参与者 用户(取款者)、系统维护人员、银行管理人员 4.1.2 对需求进行捕获与描述 用例名称:存款执行者:用户目的:向银行账户中存放现金。 用例名
4、称:取款执行者:用户目的:从ATM自动取款机中提取账户金额。 用例名称:修改密码执行者:用户目的:修改用户登录密码。 用例名称:查询余额执行者:用户目的:查询银行账户中的现金余额。 用例名称:验证身份执行者:用户目的:验证操作ATM的用户身份。 用例名称:转账执行者:用户目的:从ATM自动取款机中进行现金转账。 用例名称:信息管理执行者:银行工作人员目的:对用户信息进行管理。 用例名称:系统维护执行者:银行工作人员目的:对ATM系统进行维护。 用例名称:赔款执行者:银行工作人员目的:向ATM机存放现金。 用例名称:验证身份执行者:银行工作人员目的:对用户信息进行验证。 4.1.3 用例图 AT
5、M自动取款机用例图 4.1.4 分析与讨论 1)建模用例图的步骤、方法? 1.确定系统的边界和范围;(方法:分析系统内部元素,把系统内部元素和外 部事物划分开) 2.识别系统的参与者; 3.发现用例; 4.描述用例及确定用例关系;(方法:对用例概要描述;对用例详细描述。根 据用例事件流,将公共行为抽取出来,已包含关系构建用例关系;变化部 分,抽取出来,放到扩展用例中) 5.建立用例图; 6.定义用例图的层次结构; 2)如何识别系统的参与者?应该如何划分用例,应注意哪些问题? 通过回答以下问题来识别系统的参与者: 1.谁使用系统的主要功能? 2.谁改变系统的数据? 3.谁从系统中获取数据? 4.
6、谁支持、维护系统? 5.谁需要借助系统的支持来完成工作? 6.系统需要操纵哪些硬件? 7.系统需要和哪些外部系统交互? 8.谁对系统运行结果感兴趣? 划分用例: 1.每个参与者打算在这个系统里做些什么事情? 2.参与者使用本系统要实现的目标是什么? 3.参与者是否会在系统中创建、修改、删除、访问、存储数据?如果是,如何 来完成这些操作? 4.参与者是否会将外部的某些事件通知给该系统? 3)心得 用例图主要用来描述用户、需求、系统功能单元之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。 用途:帮助开发团队以一种可视化的方式理解系统的功能需求。 用例图所包含的元素如下: 1. 参与者
7、表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。 2. 用例 用例就是外部可见的系统功能,对系统提供的服务进行描述。用椭圆表示 3. 子系统 用来展示系统的一部分功能,这部分功能联系紧密。 4. 关系 用例图中涉及的关系有:关联、泛化、包含、扩展; a. 关联 表示参与者与用例之间的通信,任何一方都可发送或接受消息。 b. 泛化 就是继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。 c. 包含 包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤; d.
8、扩展 扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。 e. 依赖 表示源用例依赖于目标用例; 4.2 建立对象模型 4.2.1 候选类的数据字典 4.2.2定义类 “用户”类 ?属性 姓名(name):文本(char) 账号(userID):文本(char) 联系电话(TelNum):整形(int) 住址(Address):文本(char) ?操作 插卡i nsert card() 输入Input() 修改密码changePWD() 查询inquiry() “读卡机”类 ?属性 ?操作 接收卡accept card() 读卡read card() 退卡eject card()
9、“吐钞机”类 ?属性 余额(balance):字符串(string) ?操作 吐钞OutCash() “账单”类 ?属性 账单号(AccountNumber):整形(int) 余额(balance):字符串(string) ?操作 打开open() 扣除存款deductFunds () 存入存款withdrawFunds() “存款账目”类 ?属性 姓名(name):文本(char) 账号(userID):文本(char) 联系电话(TelNum):整形(int) 余额(balance):字符串(string) 存款金额(DepositAmount): 字符串(string)?操作 存款dep
10、osit() 取消Cancel () “取款账目”类 ?属性 姓名(name):文本(char) 账号(userID):文本(char) 联系电话(TelNum):整形(int) 余额(balance):字符串(string) 取款金额(DepositAmount): 字符串(string)?操作 取款deposit() 取消Cancel () “ATM屏幕”类 ?属性 ?操作 初始化initialize () 提示prompt () 输入input() “系统维护人员”类 ?属性 姓名(name):文本(char) 员工号(ID):整形(int) 联系电话(TelNum):整形(int) ?
11、操作 维护Maintain() “银行管理人员”类 ?属性 姓名(name):文本(char) 员工号(ID):整形(int) 联系电话(TelNum):整形(int) ?操作 配款DepositCash() 管理manage() “数据连接”类 ?属性 ?操作 连接Connect() 取消Cancel () 4.2.3绘制类图 4.2.4包图 (画出包图并说相应解释说明) 4.2.5分析与讨论 1)建模类图的步骤、方法? 构建类图的步骤: 1.确定类;(方法:行为分析、名词识别法、CRC分析法、根据边界类、控制类、 实体类的划分、参考设计模式确定、通过领域进行分析等) 2.识别类的属性和操作
12、;(方法:结合需求陈述、领域知识和常识以及经验等) 3.识别类之间的关联;(方法:使用普通关联列表的方法) 4.定义类的结构和层次。 2)识别类有哪些方法,你是如何识别类的? 行为分析、名词识别法、CRC分析法、根据边界类、控制类、实体类的划分、参考设计模式确定、通过领域进行分析等。 我通过名名词识别法确定类。 3)解释关联的多重性?如何确定类的属性、操作、类之间的关联关系、组织类之间的继承? 关联的多重性:关联表示了对象间的结构关系,在建模过程中,通常需要说明一个关联实例中有多少个相互连接的对象。 确定类的属性:从常识性、专业性、功能性、存储性、操作性、标志性、关联性发现和确定类的属性,进而
13、筛选类的属性; 确定类的操作:综合对象模型、动态模型和功能模型,确定类的操作; 确定类之间的关联关系:使用普通关联列表的方法帮助发现关联。并分析关联的多重性。 组织类之间的继承:自顶向下和自底向上的方法。 4.3 建立动态模型 系统的动态行为模型由交互图(顺序图和协同图)、状态机图和活动图表达。在系统的分析和设计中应当对主要的Use Case和对象类绘制这些图形,以便分析系统的行为,印证和修改系统的静态结构,满足用户的需求,达到系统的目标。 4.3.1顺序图 4.3.2 通信图 4.3.3活动图 活动图的主要作用是表示系统的业务工作流和并发处理过程。针对自选系统主要的业务工作流绘制活动图。 绘制活动图需要确定参与活动的对象、动作状态、动作流,以及对象流。