实验二 结构化分析与设计
博客班级 | https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18 |
---|---|
作业要求 | https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18/homework/11548 |
作业目标 | <掌握结构化的需求分析方法> |
学号 | <3180701121> |
一.实验目的
(1)掌握结构化的需求分析方法;
(2)掌握分层数据流图的绘制、数据字典和加工说明的编制;
(3)掌握数据流图映射为软件结构图的方法;
(4)掌握需求说明书和设计说明。书的主要内容,学习软件需求说明书和设计说明书的编写;
(5)掌握测试的基本方法。
二.实验内容
(1)参考一个熟悉的系统,如,机票预订系统/教材订购系统/ATM自动取款机,讨论其用户需求、系统需求和业务需求;
(2)绘制系统的分层数据流图,并给出数据字典;
(3)将系统的分层数据流图映射为软件结构图,绘制软件结构图;
(4)为关键模块进行详细设计,如绘制关键模块的流程图;
(5)实现系统部分功能并测试。
三.实验步骤
(1)复习结构化的分析与设计方法的主要过程;
(2)讨论系统存在的用户角色、工作流等;
(3)对关键功能绘制数据流图,给出数据字典,并反复讨论数据流的合理性;
(4)对应数据流图,设计系统的功能结构图,关键模块的流程图;
(5)选择对应的结构化程序设计语言,实现并测试部分功能模块
1.图书馆组织机构分析
通过对图书工作人员的调查,图书馆主要由4个部门。借阅管理部负责图书的借阅管理;图书管理部负责书籍类别标准的制定,类别信息的输入;书籍类别信息的查询,修改;图书信息的输入;读者管理部负责主要针对各类读者信息进行管理;系统管理部负责用户管理和密码管理。组织机构图:
2.系统结构功能图
3.业务流程图
通过对于材料给出的学校图书馆借书、还书业务的调查,弄清了借书还书的业务流程,如下图所示:
4.数据流程图
通过对业务流程图的细化,可得到系统的分层数据流图。如下图:
顶层数据流图:
对顶层数据流图细化、分解可得到图书管理系统的第一层数据流图,如下图:
对于第一层数据流图进一步细化、分解,可以得到第二层数据流图,如下图:
图书信息管理数据流程图:
读者信息管理数据流图:
5.数据字典
数据元素
数据元素条目
数据元素名称:用户密码
别名:userpass
长度:16
描述:用户登录系统的密码
有关的数据结构:User
数据元素条目
数据元素名称:图书分类编号
别名:Bookindex
类型:数值型
长度:10
描述:图书分类的编号
数据元素条目
数据元素名称:读者编号
别名: Readerindex
类型:数值型
长度: 10
描述:区分读者的唯一标识
数据元素条目
数据元素名称:图书名称
别名: BookName
类型:文本型
长度: 50
描述:图书的名称
2)数据流条目
数据流条目
数据流名称:添加读者
简述:进入读者管理可进行添加
数据来源:读者资料
数据流向:读者信息表
包含的数据结构:数据流条目
数据流名称:查询结果
简述:从图书信息表中检索信息
数据来源:图书信息表
数据流向。查询结果
包含的数据结构:数据流条目
数据流名称:查询读者信息
简述:读者登录后可进行查询
数据来源:读者信息查询窗口
数据流向:读者信息查询窗口
包含的数据结构:
数据流条目
数据流名称:按条件查找
简述:读者按类别或作者查找的结果
数据来源:读者信息查询条件窗口
数据流向:读者信息查询条件窗口
包含的数据结构:
数据流条目
数据流名称:管理员登录
简述:管理员对图书进行管理
数据来源:管理员表
数据流向:管理员表
包含的数据结构:
数据流条目
数据流名称:显示图书
简述,由条件将齐类数据显来
数据来源:图书信息表
数据流向:浏览图书
包含的数据结构:
数据流条目
数据流名称:修改读者信息
简述:输入须修改的信息
数据来源,读者信息表
数据流向:读者信息修改界面
包含的数据结构:
数据流条目
数据流名称:读者信息
简述:读者都能对它进行维护
数据来源:读者信息表
数据流向:读者信息维护
包含的数据结构:
数据流条目
数据流名称:添加图书
简述:新购图书的添加
数据来源:图书信息表
数据流向:图书信息表
包含的数据结构:
数据流条目
数据流名称:修改图书信息
简述:图书更新
数据来源:图书信息表
数据流向:图书信息表
包含的数据结构:
3)处理过程描述
处理功能条目
名称:查询图书
输入数据:按图书编号、书目名称、作者等来查询
输出数据:图书
处理逻辑:(1)支持模湖查询编号、书目名称、书目作者
(2)对查询的图书可进行修改删除等
处理功能条目
名称:添加用户
输入数据:用户ID,用户密码,用户名称。
输出数据:是否添加成功
处理逻辑:(1)用户名称是否不同
(3)用户密码是否包含非法字符
处理功能条目
名称:添加图书
输入数据:图书编号,图书名称,作者,在库数量,单价,图书分类,图书简介。
输出数据:是否添加成功
处理逻辑: (1)是否有漏填
(2)数据要求是否匹配
(3)信息是否填写完整
(4)数据存储
数据存储条目
数据存储名称:图书信息表
说明:存储图书基本信息
结构:图书编号,图书名称,图书分类,出版社,入库时间,入库数量,图书状态,在库数量,图书简介。
关键字:图书编号
相关处理:查询,修改,添加,删除。
数据存储条目
数据存储名称:管理员信息表
说明:存储管理员信息
结构:管理员编号,管理员姓名,管理员密码。
关键字:管理员编号
4)外部实体条目
外部实体条目
名称:图书
说明:图书情况
输出数据流:图书借阅信息表
输入数据流:图书借阅信息
外部实体条目
名称:管理员
说明:读者信息情况
输出数据流:读者信息表
输入数据流:管理员 读者信息
外部实体条目
名称:读者
说明:读者借阅情况
输出数据流:读者借阅信息单
输入数据流:读者 借阅信息
四.思考题
(1)简述需求说明书,概要设计,详细设计说明书的主要内容。
①需求分析:产生软件功能规格说明书,需要确定用户对软件的需求,要作到明确、无歧义。不涉及具体实现方法。
用户能看得明白,开发人员也可据此进行下面的工作(概要设计)。
②概要设计:产生软件概要设计说明书,说明系统模块划分、选择的技术路线等,整体说明软件的实现思路。并且
需要指出关键技术难点等。
③详细设计:产生软件详细设计说明书,对概要设计的进一步细化,一般由各部分的担当人员依据概要设计分别完
成,然后在集成,是具体的实现细节。理论上要求可以照此编码。
(2)结构化分析方法与面向对象分析方法有无本质上的不同?
结构化系统分析方法是采用自顶向下,由外到内,逐层分解'的思想对复杂的系统进行分解化简,从而有效地控
制了系统分析每一步的难度 ,并运用数据流图、加工说明和数据字典作为表达工具的一种系统分析技术。
而面向对象的分析方法则是通过将数据和逻辑结构抽象成为对象,运肘象属性和方法等来操作和处理业务数据
和逻辑的系统分析方法。
两者的区别在于:当软件项目较小、系统分析员能力足够高的时候,结构化方法能快速的找到最简洁、高效率的
逻辑模型,结构化方法对复杂问题的帮助有限,而面向对象的分析方法提供了一种方便的、可持续观测和扩展系统
的机制,通过信息隐藏和封装等手段屏蔽了对象内部的执行细节,控制了错误的蔓延,对于需求变化频繁的系统,可
以用面向对象软件系统的方法。
(3)对数据流图进行审查有何意义?
检查图中是否存在错误或不合理(不理想)的部分
确保两大特性
一致性:分层DFD中不存在矛盾和冲突。
完整性:是否有遗漏的数据流、加工等
(4)给出一次完整的会议讨论纪要,包括议题,最终结果。