实验二 结构化分析与设计

这个作业属于哪个课程 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18
这个作业要求在哪里 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18/homework/11548
这个作业的目标 掌握结构化的需求分析及设计方法
学号 3180701330

一.实验目的

(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/

三.实验步骤

选择【实例2】教材订购系统

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

结构化方法是一种传统的软件开发方法,它是由结构化分析、结构化设计和结构化程序设计三部分有机组合而成的。它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。该方法的特点如下:

1)成功率较高,发展较为成熟;
2)简单、易掌握,适应于瀑布模型;
3)特别适合于数据处理领域中的应用,对规模大的项目,特别复杂的应用不太适应。
4)难于解决软件重用问题,难于适应需求的变化

②结构化分析方法

结构化分析方法是以自顶向下,逐步求精为基点,以一系列经过实践的考验被认为是正确的原理和技术为支撑,以数据流图,数据字典,结构化语言,判定表,判定树等图形表达为主要手段,强调开发方法的结构合理性和系统的结构合理性的软件分析方法。结构化分析的步骤如下:

1)分析当前的情况,做出反映当前物理模型的 DFD;
2)推导出等价的逻辑模型的 DFD;
3)设计新的逻辑系统,生成数据字典和基元描述;
4)建立人机接口,提出可供选择的目标系统物理模型的 DFD;
5)确定各种方案的成本和风险等级,据此对各种方案进行分析;
6)选择一种方案;
7)建立完整的需求规约。

③结构化设计方法

结构化设计方法是以自顶向下,逐步求精,模块化为基点,以模块化,抽象,逐层分解求精,信息隐蔽化局部化和保持模块独立为准则的设计软件的数据架构和模块架构的方法学。

结构化设计方法给出一组帮助设计人员在模块层次上区分设计质量的原理与技术。它通常与结构化分析方法衔接起来使用,以数据流图为基础得到软件的模块结构。SD 方法尤其适用于变换型结构和事务型结构的目标系统。在设计过程中,它从整个程序的结构出发,利用模块结构图表述程序模块之间的关系。结构化设计的步骤如下:
1)评审和细化数据流图;
2)确定数据流图的类型;
3)把数据流图映射到软件模块结构,设计出模块结构的上层;
4)基于数据流图逐步分解高层模块,设计中下层模块;
5)对模块结构进行优化,得到更为合理的软件结构;
6)描述模块接口。

④结构化程序设计

结构化程序设计(structured programming)是进行以模块功能和处理过程设计为主的详细设计的基本原则。其概念最早由E.W.Dijikstra 在 1965 年提出的,是软件发展的一个重要的里程碑。它的主要观点是采用自顶向下、逐步求精及模块化的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造。结构化程序设计主要强调的是程序的易读性。

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

①用户角色

一个教材订购系统可能存在用户角色可能有
①学生/教师:学生/教师提供购书单
②教材管理人员:根据学生/教师提供的购书单,对所需要的教材进行购买

②工作流

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

1)顶层图:

2)一层数据流图:

3)加工1的子图:

4)加工2的子图:

②数据字典
库存表={书号+书名+数量+单价}
缺书登记表={登记日期+需求信息}
缺书信息=[学生信息|教师信息]+{书号+缺书数量+备注}
进书通知=进书日期+书号+书名+数量
购书单=单号+[学生信息|教师信息]+{书号+书名+购书数量+备注}

(4)对应数据流图,设计系统的功能结构图,关键模块的流程图;
①教材购销系统的最初上层框架设计:

②采购子系统初始SC图:

③最终SC的上层框架:

④初售动作分支的最初SC图:

(5)选择对应的结构化程序设计语言,实现并测试部分功能模块

四.思考题

(1)简述需求说明书,概要设计,详细设计说明书的主要内容。
①需求说明书:

软件需求说明书,又称为软件规格说明书,是分析员在需求分析阶段需要完成的文档,是软件需求分析的最终结果。软件需求说明主要包括引言、任务概述、需求规定、运行环境规定和附录等内容。

②概要设计说明书:

概要设计说明书又可称系统设计说明书,这里所说的系统是指程序系统。编制的目的是说明对程序 系统的设计考虑,包括程序系统的基本处理流程、程序系统的组织结构、模块划分、功能分配、接口设计、运行设计、安全设计、数据结构设计和出错处理设计等,为程序的详细设计提供基础。

③详细设计说明书:

详细设计说明书又可称程序设计说明书。编制目的是说明一个软件系统各个层次中的每一个程序 (每个模块或子程序)的设计考虑,如果一个软件系统比较简单,层次很少,本文件可以不单独编写,有关内容合并入概要设计说明书。

(2)结构化分析方法与面向对象分析方法有无本质上的不同?
结构化分析方法注重于步骤,先分析出解决问题所需要的步骤,然后一步一步的去解决。而面向对象分析法则是将系统分为多个不同的对象,它们之间各种独立又相互牵引,每个对象负责实现自己的功能,然后相互之间进行信息传递,方法调用等来支撑起整个系统。综上:结构化是面向过程的方法,本质上不同于面向对象分析方法。

(3)对数据流图进行审查有何意义?
检查图中是否存在错误或不合理(不理想)的部分
确保两大特性:
一致性:分层DFD中不存在矛盾和冲突。
完整性:是否有遗漏的数据流、加工等。

(4)给出一次完整的会议讨论纪要,包括议题,最终结果。

五、个人小结

psp2.1 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 10 5
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 10 2
Development 开发 100 0
Analysis 需求分析(包括学习新技术) 12 50
Design Spec 生成设计文档 5 5
Design Review 设计复审 5 5
Coding Standard 代码规范 3 0
Design 具体设计 10 80
Coding 具体编码 36 0
Code Review 代码复审 5 0
Test 测试(自我测试,修改代码,提交修改) 10 0
Reporting 报告 9 20
Test Report 测试报告 3 2
Size Measurement 计算工作量 2 3
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 3 3
posted @ 2020-12-09 00:21  党和人民  阅读(194)  评论(0编辑  收藏  举报