一.实验目的
(1)掌握结构化的需求分析方法;
(2)掌握分层数据流图的绘制、数据字典和加工说明的编制;
(3)掌握数据流图映射为软件结构图的方法;
(4)掌握需求说明书和设计说明书的主要内容,学习软件需求说明书和设计说明书的编写;
(5)掌握测试的基本方法。
二.实验内容
(1)参考一个熟悉的系统,如,机票预订系统/教材订购系统/ATM自动取款机,讨论其用户需求、系统需求和业务需求;
(2)绘制系统的分层数据流图,并给出数据字典;
(3)将系统的分层数据流图映射为软件结构图,绘制软件结构图;
(4)为关键模块进行详细设计,如绘制关键模块的流程图;
(5)实现系统部分功能并测试。
【实例1】机票预订系统
参考:
(1)携程网
(2)去哪儿
为了方便旅客,某航空公司拟开发一个机票预定系统。旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入该系统,系统为旅客安排航班,旅客在飞机起飞前一天凭取票通知和账单交款取票,系统核对无误即印出机票给顾客。
【实例2】教材订购系统
销售系统的工作过程为:首先由教师或学生提交购书单,经教材发行人员审核是有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生即可去书库领书。
采购系统的主要工作过程为:若是脱销教材,则登记缺书,发缺书单给书库采购人员;一旦新书入库后,即发进书单通知给教材发行人员。
【实例3】图书管理系统
参考:图书馆
三.实验步骤
(1)复习结构化的分析与设计方法的主要过程;
(2)讨论系统存在的用户角色、工作流等;
(3)对关键功能绘制数据流图,给出数据字典,并反复讨论数据流的合理性;
(4)对应数据流图,设计系统的功能结构图,关键模块的流程图;
(5)选择对应的结构化程序设计语言,实现并测试部分功能模块
ATM管理系统
1)需求分析
1、用户需求
首先在设计过程中我们可以为用户设计几个模块:需要有登录,存款,取款,查询,转账,修改密码。
2、系统需求
1.系统性能分析:
(1)系统处理的准确性和及时性
(2)系统的开放性和扩展性
(3)系统的易用性和易维护性
(4)系统的标准性
(5)系统的先进性和响应时间
2.系统需求分析
ATM自动取款机是银行在银行营业大厅、超市、商业机构、机场、车站、码头和闹市区设置的一种小型机器,利用一张信用卡大小的胶卡上的磁带〔或芯片卡上的芯片〕记录客户的基本户口资料,让客户可以透过机器进行提款、存款、转帐等银行柜台服务。
(1)客户将银行卡插入读卡器,读卡器识别卡的真伪,并在显示器上提示输入密码。
(2)客户通过键盘输入密码,取款机验证密码是否有效。如果密码错误提示错误信息,如果正确,提示客户进行选择操作的业务。
(3)客户根据自己的需要可进行存款、取款、查询账户、转账、修改密码的操作。
(4)在客户选择后显示器进行交互提示和操作确认等信息。
(5) 操作完毕后,客户可自由选择打印或不打印凭条。
(6)银行职员可进行对ATM自动取款机的硬件维护和添加现金的操作。
3、业务需求
从银行业务角度来分析,除了用户所具有的权限之外,银行ATM系统管理员还应该具有以下权限:用户账号密码的强行修改、根据用户的资料查询到用户的账号信息、查询用户的交易信息、对违规的用户账户进行账户封闭及重开启等。
2)用户角色与工作流
1、用户角色
1.客户:客户可进行 存/取款,查询转账等操作
2.管理员:管理人员根据客户需要和管理需求进行相应的后台信息管理操作
2、工作流
下面是一个客户在ATM机上取款的工作流:
- 客户选择取款功能选项
- 系统提示插入IC卡
- 客户插入IC卡后,系统提示用户输入密码
- 客户输入自己的密码
- 系统检查用户密码是否正确
- 如果密码正确,则系统显示用户账户上的剩余金额,并提示用户输入想要提取的金额
- 用户输入提取金额后,系统检查输入数据的合法性。
- 在获取用户输入的正确金额后,系统开始一个事务处理,减少账户上的余额,并输出相应的现金
3)数据流图及数据字典
1、分层数据流图
(1)DFD/0
(2)DFD/1
(3)DFD/2
(4)总
2、数据字典
系统的主要数据字典如下:
4)系统功能结构图及流程图
1、系统功能结构图
(1)ATM机系统SC图
(2)取款子系统SC图
(3)查询账户子系统SC图
(4)转账系统SC图
(5)修改密码子系统SC图
2、关键模块的流程图
(1)设子储户信息流程
(2)修改密码流程
(3)查询余额流程
(4)取款流程
(5)转账流程
四.思考题
(1)简述需求说明书,概要设计,详细设计说明书的主要内容。
需求说明书:软件需求说明书是指在研究用户要求的基础上,完成可行性分析和投资效益分析以后,由软件工程师或分析员编写的说明书。它详细定义了信息流和界面,功能需求,设计要求和限制,测试准则和质量保证要求。它的作用是作为用户和软件开发人员达成的技术协议书,作为着手进行设计工作的基础和依据,系统开发完成以后,为产品的验收提供了依据。
概要设计:概要设计是一个设计师根据用户交互过程和用户需求来形成交互框架和视觉框架的过程,其结果往往以反映交互控件布置、界面元素分组以及界面整体板式的页面框架图的形式来呈现。这是一个在用户研究和设计之间架起桥梁,使用户研究和设计无缝结合,将对用户目标与需求转换成具体界面设计解决方案的重要阶段。
概要设计的主要任务是把需求分析得到的系统扩展用例图转换为软件结构和数据结构。设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。显然,概要设计建立的是目标系统的逻辑模型,与计算机无关。
详细设计说明书:详细设计说明书又可称程序设计说明书。编制目的是说明一个软件系统各个层次中的每一个程序 (每个模块或子程序)的设计考虑,如果一个软件系统比较简单,层次很少,本文件可以不单独编写,有关内容合并入概要设计说明书。
(2)结构化分析方法与面向对象分析方法有无本质上的不同?
结构化系统分析方法是采用“自顶向下,由外到内,逐层分解”的思想对复杂的系统进行分解化简,从而有效地控制了系统分析每一步的难度,并运用数据流图、加工说明和数据字典作为表达工具的一种系统分析技术。
而面向对象的分析方法则是通过将数据和逻辑结构抽象成为对象,运用对象属性和方法等来操作和处理业务数据和逻辑的系统分析方法。
两者的区别在于:当软件项目较小、系统分析员能力足够高的时候,结构化方法能快速的找到最简洁、高效率的逻辑模型,结构化方法对复杂问题的帮助有限,而面向对象的分析方法提供了一种方便的、可持续观测和扩展系统的机制,通过信息隐藏和封装等手段屏蔽了对象内部的执行细节,控制了错误的蔓延,对于需求变化频繁的系统,可以用面向对象软件系统的方法。
(3)对数据流图进行审查有何意义?
检查图中是否存在错误或不合理(不理想)的部分确保两大特性
一致性:分层DFD中不存在矛盾和冲突。
完整性:是否有遗漏的数据流、加工等。
(4)给出一次完整的会议讨论纪要,包括议题,最终结果。
会议纪要是在会议记录基础上经过加工、整理出来的一种记叙性和介绍性的文件。包括会议的基本情况、主要精神及中心内容,便于向上级汇报或向有关人员传达及分发。整理加工时或按会议程序记叙,或按会议内容概括出来的几个问题逐一叙述。纪要要求会议程序清楚,目的明确,中心突出,概括准确,层次分明,语言简练。
实验小结
通过本次实验掌握了结构化的需求分析方法,并且了解了需求说明书和设计说明书的主要内容以及测试的基本方法。