| 博客班级 |https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18 |
| 作业要求 |https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18/homework/11548 |
| 作业目标 | 掌握结构化分析与设计 |
| 学号 | 3180701239 |
| 选题 | 教材预订系统 |
一.实验目的
(1)掌握结构化的需求分析方法;
(2)掌握分层数据流图的绘制、数据字典和加工说明的编制;
(3)掌握数据流图映射为软件结构图的方法;
(4)掌握需求说明书和设计说明。书的主要内容,学习软件需求说明书和设计说明书的编写;
(5)掌握测试的基本方法。
二.实验内容
(1)参考一个熟悉的系统,如,机票预订系统/教材订购系统/ATM自动取款机,讨论其用户需求、系统需求和业务需求;
(2)绘制系统的分层数据流图,并给出数据字典;
(3)将系统的分层数据流图映射为软件结构图,绘制软件结构图;
(4)为关键模块进行详细设计,如绘制关键模块的流程图;
(5)实现系统部分功能并测试。
三.实验步骤
1、复习结构化的分析与设计方法的主要过程
(1)结构化方法概述
结构化方法是一种传统的软件开发方法,它是由结构化分析、结构化设计和结构化程序设计三部分有机组合而成的。它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。该方法的特点如下:
①成功率较高,发展较为成熟;
②简单、易掌握,适应于瀑布模型;
③特别适合于数据处理领域中的应用,对规模大的项目,特别复杂的应用不太适应。
④难于解决软件重用问题,难于适应需求的变化
(2)结构化分析方法
结构化分析方法是以自顶向下,逐步求精为基点,以一系列经过实践的考验被认为是正确的原理和技术为支撑,以数据流图,数据字典,结构化语言,判定表,判定树等图形表达为主要手段,强调开发方法的结构合理性和系统的结构合理性的软件分析方法。结构化分析的步骤如下:
①分析当前的情况,做出反映当前物理模型的 DFD;
②推导出等价的逻辑模型的 DFD;
③设计新的逻辑系统,生成数据字典和基元描述;
④建立人机接口,提出可供选择的目标系统物理模型的 DFD;
⑤确定各种方案的成本和风险等级,据此对各种方案进行分析;
⑥选择一种方案;
⑦建立完整的需求规约。
(3)结构化设计方法
结构化设计方法是以自顶向下,逐步求精,模块化为基点,以模块化,抽象,逐层分解求精,信息隐蔽化局部化和保持模块独立为准则的设计软件的数据架构和模块架构的方法学。
结构化设计方法给出一组帮助设计人员在模块层次上区分设计质量的原理与技术。它通常与结构化分析方法衔接起来使用,以数据流图为基础得到软件的模块结构。SD 方法尤其适用于变换型结构和事务型结构的目标系统。在设计过程中,它从整个程序的结构出发,利用模块结构图表述程序模块之间的关系。结构化设计的步骤如下:
①评审和细化数据流图;
②确定数据流图的类型;
③把数据流图映射到软件模块结构,设计出模块结构的上层;
④基于数据流图逐步分解高层模块,设计中下层模块;
⑤对模块结构进行优化,得到更为合理的软件结构;
⑥描述模块接口。
(4)结构化程序设计
结构化程序设计(structured programming)是进行以模块功能和处理过程设计为主的详细设计的基本原则。其概念最早由E.W.Dijikstra 在 1965 年提出的,是软件发展的一个重要的里程碑。它的主要观点是采用自顶向下、逐步求精及模块化的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造。结构化程序设计主要强调的是程序的易读性。
2、讨论系统存在的用户角色、工作流等
一个教材订购系统存在用户角色可能有
①学生/教师:学生/教师提供书单
②教材管理人员:根据学生/教师提供的书单,对教材进行管理
3、对关键功能绘制数据流图,给出数据字典,并反复讨论数据流的合理性;
(1)数据字典:
库存表={书号+书名+数量+单价}
缺书登记表={登记日期+需求信息}
缺书信息=[学生信息|教师信息]+{书号+缺书数量+备注}
进书通知=进书日期+书号+书名+数量
购书单=单号+[学生信息|教师信息]+{书号+书名+购书数量+备注}
①数据项
②数据结构
③数据流
④数据存储
(2)数据流图:
顶层图
一层数据流图
加工1的图
加工2 的图
4、对应数据流图,设计系统的功能结构图,关键模块的流程图;
5、选择对应的结构化程序设计语言,实现并测试部分功能模块
四.思考题
1.简述需求说明书,概要设计,详细设计说明书的主要内容。
(1)需求说明书
软件需求说明书,又称为软件规格说明书,是分析员在需求分析阶段需要完成的文档,是软件需求分析的最终结果。软件需求说明主要包括引言、任务概述、需求规定、运行环境规定和附录等内容。
(2)概要设计说明书
概要设计说明书又可称系统设计说明书,这里所说的系统是指程序系统。编制的目的是说明对程序 系统的设计考虑,包括程序系统的基本处理流程、程序系统的组织结构、模块划分、功能分配、接口设计、运行设计、安全设计、数据结构设计和出错处理设计等,为程序的详细设计提供基础。
(3)详细设计说明书
详细设计说明书又可称程序设计说明书。编制目的是说明一个软件系统各个层次中的每一个程序 (每个模块或子程序)的设计考虑,如果一个软件系统比较简单,层次很少,本文件可以不单独编写,有关内容合并入概要设计说明书。
2.结构化分析方法与面向对象分析方法有无本质上的不同?
(1)结构化分析方法:
结构化分析方法可能存在的风险在于:在得到问题本质性的描述之前,不断分解出的结论和需要处理的信息越来越多、越来越复杂,使得“只见树木不见森林”的风险大大增加。
结构化分析方法运用得好,要求系统分析员具有一种“俯视全局”的能力,能够透过问题的表象直接把握到问题本质。
当软件项目较小、系统分析员能力足够高的时候,结构化方法能快速的找到简洁、高效率的逻辑模型。结构化方法对复杂问题的帮助有限。但结构化方法有助于使用面向分析方法的系统分析员确认系统初的高阶模型。
(2)面向对象方法:
提供了一种方便的、可持续观测和扩展系统的机制。面向对象抽象出的对象是健壮的、可控制和容易维护的。
总是试图抽象出更公用的类,因此对系统分析员抽象事物和把我初分析方向的要求很高。常常难以控制抽象对象的层次、粒度,甚至抽象出与问题本质面目全非的对象模型。掌握难度高于结构化分析方法。
通过信息隐藏和封装等手段屏蔽了对象内部的执行细节,控制了错误的蔓延,但发生错误时,定位故障的代价大。尤其时继承的深度很大时。
对于需求变化频繁的系统,得到一个高度可复用的面向对象软件系统设计是很困那的事情。
结论:两种方法不是对立的,没有谁先进谁过时之说,可在项目中结合使用。恰当的运用方法解决问题才是根本性的问题。在运用时应关注运用方法的成本和价值。
3.对数据流图进行审查有何意义?
检查图中是否存在错误或不合理(不理想)的部分
确保两大特性:
一致性:分层DFD中不存在矛盾和冲突。
完整性:是否有遗漏的数据流、加工等
4.给出一次完整的会议讨论纪要,包括议题,最终结果。
五、个人小结
psp2.1 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 10 8
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 10 20
Development 开发 100 200
Analysis 需求分析(包括学习新技术) 12 11
Design Spec 生成设计文档 5 5
Design Review 设计复审 5 5
Coding Standard 代码规范 3 2
Design 具体设计 10 15
Coding 具体编码 36 35
Code Review 代码复审 5 7
Test 测试(自我测试,修改代码,提交修改) 10 15
Reporting 报告 9 6
Test Report 测试报告 3 2
Size Measurement计算工作量 2 1
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 3 3