实验二-结构化分析与设计
一.作业信息
作业课程 | 软件工程 |
---|---|
作业要求 | 作业要求 |
作业目标 | 学会结构化分析与设计 |
学号 | 3180701302 |
一.实验目的 | |
(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)复习结构化的分析与设计方法的主要过程;
(2)讨论系统存在的用户角色、工作流等;
(3)对关键功能绘制数据流图,给出数据字典,并反复讨论数据流的合理性;
(4)对应数据流图,设计系统的功能结构图,关键模块的流程图;
(5)选择对应的结构化程序设计语言,实现并测试部分功能模块
实验内容:
教材订购系统:该系统可细化为两个子系统:销售系统和采购系统
销售系统的工作过程为:首先由教师或学生提交购书单,经教材发行人员审核是有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生即可去书库领书。
采购系统的主要工作过程为:若是脱销教材,则登记缺书,发缺书单给书库采购人员;一旦新书入库后,即发进书通知给教材发行人员,以上的功能要求在计算机上实现。
部分数据字典信息如下:
库存表={书号+书名+数量+单价}
缺书登记表={登记日期+需求信息}
缺书信息=[学生信息|教师信息]+{书号+缺书数量+备注}
进书通知=进书日期+书号+书名+数量
购书单=单号+[学生信息|教师信息]+{书号+书名+购书数量+备注}
顶层图:
一层数据流图:
加工1的子图:
加工2的子图:
数据字典
数据字典最重要的作用是作为分析阶段的工具。任何字典最重要的用途都是供人查询对不了解的条目的解释,在结构化分析中,数据字典的作用是给数据流图上每个成分加以定义和说明。
换句话说,数据流图上所有的成分的定义和解释的文字集合就是数据字典,而且在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户的通信。
数据字典可对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进
行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,可采用卡片形式或者数据库表的形式建立数据字典。
数据字典各部分的描述:
①数据项:数据流图中数据块的数据结构中的数据项说明
数据项是不可再分的数据单位。对数据项的描述通常包括以下内容:
数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,
取值范围,取值含义,与其他数据项的逻辑关系}
其中“取值范围”、“与其他数据项的逻辑关系”定义了数据的完整性约束条件,是设计数据检验功
能的依据。
②数据结构:数据流图中数据块的数据结构说明
数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个
数据结构组成,或由若干个数据项和数据结构混合组成。对数据结构的描述通常包括以下内容:
数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}
③数据流:数据流图中流线的说明
数据流是数据结构在系统内传输的路径。对数据流的描述通常包括以下内容:
数据流描述={数据流名,说明,数据流来源,数据流去向,
组成:{数据结构},平均流量,高峰期流量} 其中“数据流来源”是说明该数据流来自哪个过程。“数据流去向”是说明该数据流将到哪个过程去。
“平均流量”是指在单位时间(每天、每周、每月等)里的传输次数。“高峰期流量”则是指在高峰时期
的数据流量。
④数据存储:数据流图中数据块的存储特性说明
数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。对数据存储的描述通常
包括以下内容:
数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流,
组成:{数据结构},数据量,存取方式}
其中“数据量”是指每次存取多少数据,每天(或每小时、每周等)存取几次等信息。“存取方法”
包括是批处理,还是联机处理;是检索还是更新;是顺序检索还是随机检索等。
另外“流入的数据流”要指出其来源,“流出的数据流”要指出其去向。
⑤处理过程:数据流图中功能块的说明数据字典中只需要描述处理过程的说明性信息,也可使用 IPO 表记录对算法的初步描述,以后可以进一步精化,它通常包括以下内容:
处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},
处理:{简要说明}}其中“简要说明”中主要说明该处理过程的功能及处理要求。
功能是指该处理过程用来做什么(而不是怎么做);处理要求包括处理频度要求,如单位时间里处理多少事务,多少数据量,响应时间要求等,这些处理要求是后面物理设计的输 入及性能评价的标准。
软件结构图
结构图定义:以模块为基础、以模块间的调用为关联所构成的图称模块结构图,简称结构图。
结构图次的方法来描述系统每部分的功能和子功能,展示计算机程序模块间的联系。
工资计算系统的结构图:
教材购销系统的最初上层框架设计:
销售子系统初始SC图:
采购子系统初始SC图:
最初SC的上层框架:
出售动作分支的最终SC图:
思考题
1.简述需求说明书、概要设计、详细说明书的主要内容。
需求说明书也称为软件规格说明。该说明书对所开发软件的功能、性能、用户 界面及运行环境等做出详细的说明。
它是用户与开发人员双方对软件需求取得共同理 解基础上达成的协议,也是实施开发工作的基础。
概要设计说明书又可称系统设计说明书,这里所说的系统是指程序系统。编制的目的是说明对程序 系统的设计考虑,包括程序系统的基本处理流程、程序系统的组织结构、模块划分、功能分配、接口设计、运行设计、安全设计、数据结构设计和出错处理设计等,为程序的详细设计提供基础。
详细设计(又可称程序设计机)说明书编制的目的是说明一个软件系统各个层次中的每个程序(每个模块或子程序)的实际考虑,为程序员编写程序提供依据。如果一个软件系统比较简单,层次很少,本文件可以不单独编写,和概要设计机说明书中不重复部分合并编写,文档名称为《软件设计说明书》。
2.结构化分析方法与面向对象分析方法有无本质上不同?
结构化方法是对系统功能建模, 基于功能分解设计系统结 构,从内部功能上模拟客观世界.
面向对象方法则是从行为的角度进行建模, 基于行为分析 法认定对象及它们之间的关系,从内部结构上模拟客观世界,它采用了新概念、新方法、新的 表示形式,有助于软件开发人员加深对系统的理解,给软件开发带来很大益处.
但在实际应 用中,开发的大型软件系统通常是混合型系统,即需要处理实时信息、又需要数据库的支持, 同时还涉及大量的事务性操作请求,在这种情况下,在选用面向对象方法的同时在局部处理 上可以结合使用结构化方法.
3.数据流图进行审查有何意义?
检查图中是否存在错误或不合理(不理想)的部分确保两大特性:一致性:分层DFD中不存在矛盾和冲突; 完整性:是否有遗漏的数据流、加工等
4、给出一次完整的会议讨论纪要,包括议题,最终结果。
个人小结
psp2.1 | 任务内容 | 计划完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planning | 计划 | 10 | 30 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 5 | 10 |
Development | 开发 | 120 | 360 |
Analysis | 需求分析(包括学习新技术 | 10 | 30 |
Design Spec | 生成设计文档 | 15 | 40 |
Design Review | 设计复审 | 5 | 5 |
Coding Standard | 代码规范 | 3 | 3 |
Design | 具体设计 | 10 | 50 |
Coding | 具体编码 | 100 | 300 |
Code Review | 代码复审 | 5 | 10 |
Test | 测试(自我测试,修改代码,提交修改) | 10 | 10 |
Reporting | 报告 | 10 | 10 |
Test Report | 测试报告 | 3 | 2 |
Size Measurement | 计算工作量 | 3 | 3 |
Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 3 | 3 |