博客班级 | https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19 |
---|---|
作业要求 | https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/homework/11540 |
学号 | 3190704234 |
实验二 结构化分析与设计
一.实验目的
(1)掌握结构化的需求分析方法;
(2)掌握分层数据流图的绘制、数据字典和加工说明的编制;
(3)掌握数据流图映射为软件结构图的方法;
(4)掌握需求说明书和设计说明。书的主要内容,学习软件需求说明书和设计说明书的编写;
(5)掌握测试的基本方法。
二.实验内容
(1)参考一个熟悉的系统,如,机票预订系统/教材订购系统/ATM自动取款机,讨论其用户需求、系统需求和业务需求;
(2)绘制系统的分层数据流图,并给出数据字典;
(3)将系统的分层数据流图映射为软件结构图,绘制软件结构图;
(4)为关键模块进行详细设计,如绘制关键模块的流程图;
(5)实现系统部分功能并测试。
1.数据流分析
2.数据字典
(1)数据项定义
数据项名﹔客户别名:User
数据流组成:姓名+身份证号+电话+地址+用户ID
⑵数据项定义
数据项名:账户别名:account
数据流组成:卡号+账户余额+身份证号+密码+卡类型+交易记录+开户时间
⑶数据项定义
数据项名:账单别名: bill
数据流组成:卡号+交易类型+交易时间+交易金额
(4)数据项定义
数据项名:凭条别名:ticket
数据流组成:卡号+交易类型+金额+事物类型+交易时间
客户表
字段信息 | 字段名称 | 类型 | 长度 |
---|---|---|---|
姓名 | Username | char | 20 |
身份证号 | IDcard | long int | 20 |
电话 | TEL | long int | 11 |
地址 | ADRESS | char | 100 |
账户表
字段信息 | 字段名称 | 类型 | 长度 |
---|---|---|---|
卡号 | CardId | long int | 20 |
账户余额 | Money | float | 12 |
身份证号 | IDcard | long int | 20 |
密码 | cardType | char | 10 |
账单表
字段信息 | 字段名称 | 类型 | 长度 |
---|---|---|---|
卡号 | CardId | long int | 20 |
事务 | Thing | char | 16 |
交易时间 | Time | long int | 20 |
交易金额 | Usemoney | long int | 20 |
3.atm系统流程图
4.思考题
(1)简述需求说明书,概要设计,详细设计说明书的主要内容。
本系统用于用户进行转账、交易、存取款等操作,用户输入银行卡卡号,银行卡密码,系统判断密码正误后用户进行操作
(2)结构化分析方法与面向对象分析方法有无本质上的不同?
面向对象的方法是以对象为核心来构造软件框架的。
结构化方法是按功能分解的规律组织软件系统结构的。
面向对象的方法与生俱来很强的应对需求变更能力。能从容应对客户的需求变更。
对结构化方法来说,它的先天缺陷是需求变更很难,一旦要需求变更,意味着以前一切的工作都是徒劳的。
面向对象方法对管理信息系统的维护很简单。
结构化方法对管理信息系统的维护很困难。
面向对象方法的思维模式是:。关注要解决的问题可以归纳或划分为哪些责任,归纳每个对象应该负有的责任,
然后通过消息传递,让他们各自承担起自己的责任就行了。通过对象自身的行为改变其内部状态(所谓封装的概念)。
结构化方法的思维模式是:只关注要解决的问题的本身,不关注应由“谁”来完成。主要是通过外部力量改变数据状态。
面向对象方法强调对象交互。对象是一等公民,我们主要关注的是对象如何通过向彼此发送消息,支配行为,改变状态。
结构化方法强调过程序列。过程是一等公民,我们首先要知道做事情的一连串过程,一个过程就是一个改变实体状态的操作序列。
(3)对数据流图进行审查有何意义?
每一次的审定都是一次完善数据流程图的机会,也许会发现错误,也许不会。发现错误后更改完善,使得自己的数据流程图便于
他人阅读和理解。