软件工程实验二 结构化分析与设计

实验二 结构化分析与设计

博客班级 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)给出一次完整的会议讨论纪要,包括议题,最终结果。

posted @ 2020-12-06 15:26  Alex-Mercer-zxy  阅读(1229)  评论(0编辑  收藏  举报