实验二 结构化分析与设计
这个作业属于哪个课程 | AHPU-软件工程导论-计算机18级 |
---|---|
这个作业要求在哪里 | 实验二 结构化分析与设计 |
这个作业的目标 | 了解软件开发文档的知识以及相关工具使用 |
学号 | 3181002122 |
一.实验目的
(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】图书管理系统
三.实验步骤
选取教材订购系统
(1)复习结构化的分析与设计方法的主要过程;
结构化分析方法
结构化分析方法是以自顶向下,逐步求精为基点,以一系列经过实践的考验被认为是正确的原理和技术为支撑,以数据流图,数据字典,结构化语言,判定表,判定树等图形表达为主要手段,强调开发方法的结构合理性和系统的结构合理性的软件分析方法。
结构化分析的步骤如下:
- 分析当前的情况,做出反映当前物理模型的 DFD;
- 推导出等价的逻辑模型的 DFD;
- 设计新的逻辑系统,生成数据字典和基元描述;
- 建立人机接口,提出可供选择的目标系统物理模型的 DFD;
- 确定各种方案的成本和风险等级,据此对各种方案进行分析;
- 选择一种方案;
- 建立完整的需求规约
结构化设计方法
结构化设计方法给出一组帮助设计人员在模块层次上区分设计质量的原理与技术。它通
常与结构化分析方法衔接起来使用,以数据流图为基础得到软件的模块结构。SD 方法尤其
适用于变换型结构和事务型结构的目标系统。在设计过程中,它从整个程序的结构出发,利
用模块结构图表述程序模块之间的关系。
结构化设计的步骤如下:
- 评审和细化数据流图;
- 确定数据流图的类型;
- 把数据流图映射到软件模块结构,设计出模块结构的上层;
- 基于数据流图逐步分解高层模块,设计中下层模块;
- 对模块结构进行优化,得到更为合理的软件结构;
- 描述模块接口。
(2)讨论系统存在的用户角色、工作流等;
教材订购系统存在的用户角色:
- 教师/学生:提交购书单、获得领书单去书库领书
- 教材发行人员: 根据购书单开发票以及登记
- 书库采购人员: 教材采购、发进书单给发行人员
工作流
(3)对关键功能绘制数据流图,给出数据字典,并反复讨论数据流的合理性;
顶层数据流图
一层数据流图
二层数据流图
销售系统
订购系统
数据字典
购书单
领书单
缺书单
进书通知
审核信息
(4)对应数据流图,设计系统的功能结构图,关键模块的流程图;
教材订购系统框架设计:
销售系统初始SC图:
采购系统初始SC图:
整体SC上层框架:
四.思考题
(1)简述需求说明书,概要设计,详细设计说明书的主要内容。
- 需求说明书是指在研究用户要求的基础上,完成可行性分析和投资效益分析以后,由软件工程师或分析员编写的说明书。它详细定义了信息流和界面,功能需求,设计要求和限制,测试准则和质量保证要求。它的作用是作为用户和软件开发人员达成的技术协议书,作为着手进行设计工作的基础和依据,系统开发完成以后,为产品的验收提供了依据。
- 概要设计说明书又可称系统设计说明书,这里所说的系统是指程序系统。编制的目的是说明对程序 系统的设计考虑,包括程序系统的基本处理流程、程序系统的组织结构、模块划分、功能分配、接口设计、运行设计、安全设计、数据结构设计和出错处理设计等,为程序的详细设计提供基础。
- 详细设计说明书又可称程序设计说明书。编制目的是说明一个软件系统各个层次中的每一个程序 (每个模块或子程序)的设计考虑,如果一个软件系统比较简单,层次很少,本文件可以不单独编写,有关内容合并入概要设计说明书。
(2)结构化分析方法与面向对象分析方法有无本质上的不同?
结构化分析方法的分析步骤:
- 理解和分析当前的现实环境 已获得当前系统的具体模型;
- 建立当前系统的逻辑模型;
- 建立目标系统的逻辑模型;
- 进一步完善目标系统的逻辑模型。
面向对象分析方法:根据面向对象的过程模型,面向对象的需求分析从概念上分为问题分析和应用分析两个方面
- 问题分析:主要收集并确认用户需求,最后将信息链接最终建立关于对象的分析模型。
- 应用分析:主要是动态描述系统中对象的合法状态序列,并用动态模型表达对象的动态行为,对象之间的消息传递和协同工作的动态信息。
综上所述:结构化分析方法是先创建总体结构模型,之后逐渐填充完善目标的方法,面向对象分析方法是先确认每小部分的过程模型,最终整合完善目标的方法。
(3)对数据流图进行审查有何意义?
检查图中是否存在错误或不合理(不理想)的部分确保两大特性:
- 一致性:分层DFD中不存在矛盾和冲突。
- 完整性:是否有遗漏的数据流、加工等。
(4)给出一次完整的会议讨论纪要,包括议题,最终结果。
会议主题 | 教材订购系统的结构化需求分析 |
---|---|
参会时间 | 2020.11.30 |
参会地点 | 实验室 |
参会成员 | 张博闻、胡佛 |
会议记录 | 讨论了教材订购系统的需求分析,功能设计以及细节方面的数据处理,并讨论文档的优化方案 |
五.实验总结
psp2.1 | 任务内容 | 计划完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planning | 计划 | 30 | 50 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 10 | 5 |
Development | 开发 | 355 | 300 |
Analysis | 需求分析(包括学习新技术) | 20 | 25 |
Design Spec | 生成设计文档 | 15 | 10 |
Design Review | 设计复审 | 10 | 10 |
Coding Standard | 代码规范 | 20 | 15 |
Design | 具体设计 | 30 | 25 |
Coding | 具体编码 | 180 | 150 |
Code Review | 代码复审 | 15 | 10 |
Test | 测试(自我测试,修改代码,提交修改) | 10 | 15 |
Reporting | 报告 | 20 | 15 |
Test Report | 测试报告 | 15 | 10 |
Size Measurement | 计算工作量 | 10 | 10 |
Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 10 | 15 |
本次实验主要是进行结构化的需求分析方法,我选择了教材采购系统来进行本次的实验练习,对其中涉及到的数据流图、数据字典也算是复习了,上一次还是在数据库课设中进行这些图像的制作。通过这些规定来进行相关的需求分析,可以帮助我们更好的对问题所涉及的需求进行很好很全面的分析。许多同学也都有这种感觉,技术实现不算什么,但是想需求是最难的。我在做一些作品的时候,一开始的需求分析就很难受,很多很杂。那么也就只有通过这种结构化的需求分析方法才能对想需求这样一个难题得到一个有效的解决。