zoukankan      html  css  js  c++  java
  • 实验二-结构化分析与设计

    博客班级 计算机18级
    作业要求 结构化分析
    作业目标 掌握结构化的需求分析方法
    学号 3180701139
    一.实验目的

    (1)掌握结构化的需求分析方法;

    (2)掌握分层数据流图的绘制、数据字典和加工说明的编制;

    (3)掌握数据流图映射为软件结构图的方法;

    (4)掌握需求说明书和设计说明。书的主要内容,学习软件需求说明书和设计说明书的编写;

    (5)掌握测试的基本方法。

    二.实验内容

    (1)参考一个熟悉的系统,如,机票预订系统/教材订购系统/ATM自动取款机,讨论其用户需求、系统需求和业务需求;

    (2)绘制系统的分层数据流图,并给出数据字典;

    (3)将系统的分层数据流图映射为软件结构图,绘制软件结构图;

    (4)为关键模块进行详细设计,如绘制关键模块的流程图;

    (5)实现系统部分功能并测试。

    【实例1】机票预订系统

    参考:

    (1)携程网:https://flights.ctrip.com/international/search/domestic

    (2)去哪儿:https://www.qunar.com/?ex_track=auto_4e0d874a

    为了方便旅客,某航空公司拟开发一个机票预定系统。旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行

    时间、旅行目的地等)输入该系统,系统为旅客安排航班,旅客在飞机起飞前一天凭取票通知和账单交款取票,系统核对无误即印出

    机票给顾客

    【实例2】教材订购系统

    销售系统的工作过程为:首先由教师或学生提交购书单,经教材发行人员审核是有效购书单后,开发票、登记并返给教师或学生领

    书单,教师或学生即可去书库领书。

    采购系统的主要工作过程为:若是脱销教材,则登记缺书,发缺书单给书库采购人员;一旦新书入库后,即发进书单通知给教材发

    行人员。

    【实例3】图书管理系统

    参考:http://lib.ahpu.edu.cn/

    三.实验步骤

    (1)复习结构化的分析与设计方法的主要过程;

    (2)讨论系统存在的用户角色、工作流等;

    (3)对关键功能绘制数据流图,给出数据字典,并反复讨论数据流的合理性;

    (4)对应数据流图,设计系统的功能结构图,关键模块的流程图;

    (5)选择对应的结构化程序设计语言,实现并测试部分功能模块
    三、图书管理系统
    1.系统结构功能分析图

    2.业务流程图

    3.数据流程图
    图书管理系统顶层图:

    查询操作:

    借阅:

    归还:

    4.数据字典
    数据元素
    数据元素条目
    数据元素名称:用户密码
    别名: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)给出一次完整的会议讨论纪要,包括议题,最终结果。
    答:一篇会议纪包含以下内容:标题、会议概述、主要议题、会议内容和后续工作,下面以用word做会议纪要的形式。
    先概括性的说明会议的主要议题,用尽量简短的语言概括会议主题。可增加解释性语句。根据会议流程,记录与会
    者的主要观点以及在讨论后各方达成了什么共识,制定了什么方案等等。建议给会议内容分类、分点的记录,让读
    者更直观的了解会议内容。
    五、实验小结

    | psp2.1 | 任务内容| 计划需要完成的时间(min) |实际完成需要的时间(min) |
    | ----------|----------|-------|------------- | ------ |
    | Planning| 计划| 300 |360 |
    | Estimate |估计这个任务需要多少时间,并规划大致工作步骤| 360| 360 |
    | Development| 开发| 20 |15 |
    | Analysis |需求分析(包括学习新技术)| 30 |36 |
    | Design Spec| 生成设计文档 |40 |36 |
    | Design Review |设计复审 |30 |34 |
    | Coding Standard| 代码规范| 20 |18 |
    | Design |具体设计 |20 |15 |
    | Coding |具体编码 |100 |126|
    | Code Review |代码复审 |10 |26 |
    | Test |测试(自我测试,修改代码,提交修改)| 10 | 15 |
    | Reporting| 报告 |20 |20 |
    | Test Report |测试报告| 20 |25|
    | Size Measurement |计算工作量 |20 | 15 |
    | Postmortem & Process Improvement Plan| 事后总结,并提出过程改进计划| 20| 25 |

  • 相关阅读:
    基督山伯爵---大仲马
    数据结构
    11. 标准库浏览 – Part II
    python 标准库
    Python 官方文件
    Python 函数
    学员名片管理系统
    如何进入多级菜单
    Python 文件操作
    Python 字符串 (isdigit, isalnum,isnumeric)转
  • 原文地址:https://www.cnblogs.com/gmh6115/p/14094037.html
Copyright © 2011-2022 走看看