实验二 结构化分析与设计
名称 | 内容 |
---|---|
课程班级 | 班级链接 |
作业要求 | 作业链接 |
本人学号 | 3180405308 |
一.实验目的
(1)掌握结构化的需求分析方法;
(2)掌握分层数据流图的绘制、数据字典和加工说明的编制;
(3)掌握数据流图映射为软件结构图的方法;
(4)掌握需求说明书和设计说明。书的主要内容,学习软件需求说明书和设计说明书的编写;
(5)掌握测试的基本方法。
二.实验内容
(1)参考一个熟悉的系统,如,机票预订系统/教材订购系统/ATM自动取款机,讨论其用户需求、系统需求和业务需求;
(2)绘制系统的分层数据流图,并给出数据字典;
(3)将系统的分层数据流图映射为软件结构图,绘制软件结构图;
(4)为关键模块进行详细设计,如绘制关键模块的流程图;
(5)实现系统部分功能并测试。
【实例1】机票预订系统
参考:
(1)携程网
(2)去哪儿
为了方便旅客,某航空公司拟开发一个机票预定系统。旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行
时间、旅行目的地等)输入该系统,系统为旅客安排航班,旅客在飞机起飞前一天凭取票通知和账单交款取票,系统核对无误即印出
机票给顾客
【实例2】教材订购系统
销售系统的工作过程为:首先由教师或学生提交购书单,经教材发行人员审核是有效购书单后,开发票、登记并返给教师或学生领
书单,教师或学生即可去书库领书。
采购系统的主要工作过程为:若是脱销教材,则登记缺书,发缺书单给书库采购人员;一旦新书入库后,即发进书单通知给教材发
行人员。
【实例3】图书管理系统
三.实验步骤
(1)复习结构化的分析与设计方法的主要过程;
(2)讨论系统存在的用户角色、工作流等;
(3)对关键功能绘制数据流图,给出数据字典,并反复讨论数据流的合理性;
(4)对应数据流图,设计系统的功能结构图,关键模块的流程图;
(5)选择对应的结构化程序设计语言,实现并测试部分功能模块
教材订购系统
1. 用户角色
一个教材订购系统可能存在用户角色可能有
- 学生/教师:学生/教师提供购书单
- 教材管理人员:根据学生/教师提供的购书单,对所需要的教材进行购买
2.工作流
3.分层数据流图
- 顶层图
- 教材订购系统一层图
- 加工1的子图
- 加工2的子图
4.数据字典
- 数据项
- 数据结构
- 数据流
- 数据存储
5.软件结构图
将系统的分层数据流图映射为软件结构图,绘制软件结构图
- 图书管理系统的最初上层框架设计
- 销售子系统初始 SC 图
- 采购子系统初始 SC 图
- 最终 SC 的上层框架
- 初售动作分支的最终 SC 图
四.思考题
(1)简述需求说明书,概要设计,详细设计说明书的主要内容。
需求说明书也称为软件规格说明。该说明书对所开发软件的功能、性能、用户 界面及运行环境等做出详细的说明。它是用户与开发人员双方对软件需求取得共同理 解基础上达成的协议,也是实施开发工作的基础。软件需求说明书的编制目的的就是 为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解、并使之面成为 整个开发工作的基础。
其格式如下:
1. 引言
1. 编写目的
2. 背景
3. 定义
2. 任务概述
1. 目标
2. 用户的特点
3. 假定和约束
3. 需求规定
1. 对功能的规定
2. 对性能的规定
1. 精度
2. 时间特性的需求
3. 灵活性
3. 输入输出要求
4. 数据管理能力要求
5. 故障处理要求
6. 其他专门要求
4. 运行环境规定
1. 设备
2. 支持软件
3. 接口
4. 控制
(2)结构化分析方法与面向对象分析方法有无本质上的不同?
面向过程分析与面向对象分析是两种思路完全不同的分析方法
面向过程分析方法,就是说我们先考虑问题大的方面,然后再从外面到里面去深入这个问题的细节部分,一步一步去解决问题。
就比如说就像一棵树一样,我们先从根开始,就是问题大的方面,然后我们再深入各个枝干,就是深入问题的细节部分,然后逐步解决问题。
面向对象分析方法,以对象为主分析问题,我们把问题看作由几个对象组成。
比如我们设计一个网上买书的系统,这个时候简单的来说消费者,书店就是对象。就比如说买书这个例子,如果是面向过程的分析思路,则一开始是用户选择书籍,然后下单,商家收到订单,然后通知仓库发货,用户收到书籍。而面向对象则是分为消费者与商家两大对象,消费者具有购书,下单等功能,而商家具有收订单,通知仓库发货等功能。一个是就像运动员跑步一样完成整个流程,而一个是分为几组对象,然后他们之间进行交互进而解决问题。
(3)对数据流图进行审查有何意义?
检查图中是否存在错误或不合理(不理想)的部分
确保两大特性
两大特性:
一致性:分层DFD中不存在矛盾和冲突。
完整性:是否有遗漏的数据流、加工等
(4)给出一次完整的会议讨论纪要,包括议题,最终结果。
五.个人小结
psp | 任务内容 | 计划完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planning | 计划 | 5 | 3 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 5 | 5 |
Development | 开发 | 300 | 300 |
Analysis | 需求分析(包括学习新技术) | 15 | 45 |
Design Spec | 生成设计文档 | 5 | 20 |
Design Review | 设计复审 | 5 | 5 |
Coding Standard | 代码规范 | 3 | 3 |
Design | 具体设计 | 10 | 12 |
Coding | 具体编码 | 200 | 200 |
Code Review | 代码复审 | 10 | 20 |
Test | 测试(自我测试,修改代码,提交修改) | 10 | 60 |
Reporting | 报告 | 5 | 5 |
Test Report | 测试报告 | 5 | 5 |
Size Measurement | 计算工作量 | 20 | 30 |
Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 20 | 20 |