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


    实验二 结构化分析与设计

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

  • 相关阅读:
    【ES】学习10-聚合3
    Flink – CEP NFA
    cruise-control
    FlinkCEP
    Flink
    SQL Join
    Flink – Stream Task执行过程
    Flink
    Java8
    Flink
  • 原文地址:https://www.cnblogs.com/Alex-Mercer-zxy/p/14083394.html
Copyright © 2020-2023  润新知