软件工程 第六讲 结构化分析方法

合集下载

软件工程结构化方法

软件工程结构化方法

软件工程结构化方法
软件工程结构化方法是一种将软件开发过程分解为一系列阶段和活动,并通过定义一些规范和指导原则来提高开发效率和质量的方法。

结构化方法强调将软件开发过程中的复杂问题分解为更小的、易于管理的问题,并通过逐步建立、验证和集成这些解决方案来完成软件开发任务。

软件工程结构化方法的主要特点包括:
1. 模块化:将软件系统划分为一系列相互独立的模块,每个模块具有明确定义的功能和接口,便于开发和维护。

2. 抽象化:通过对问题进行抽象和概括,将系统需求转化为易于理解和实现的形式。

3. 清晰的设计和规范:使用建模技术和工具,如结构图、数据流图等,来描述系统架构和模块之间的关系,以及数据流和处理逻辑等。

4. 逐步开发和集成:通过逐步实现和验证各个模块的功能,逐步构建完整的软件系统。

5. 验证和测试:在每个开发阶段都进行验证和测试,确保功能的正确性和质量。

6. 文档化:对软件开发过程中的设计、开发、测试和维护进行详细的记录和文档化,以便后续的维护和改进。

软件工程结构化方法可以帮助软件开发团队更好地组织和管理软件开发过程,提高开发效率、质量和可维护性。

在实际应用中,常见的软件工程结构化方法包括结构化分析与设计方法(SA/SD)、结构化系统分析与设计方法(SSADM)、实体关系建模方法(ER模型)等。

第二章-系统分析—结构化分析方法

第二章-系统分析—结构化分析方法

1、结构化方法概述

主要思想:抽象与自顶向下的逐层分解 (控制复杂性的两个基本手段)
抽象:在每个抽象层次上忽略问题的内部复杂
性,只关注整个问题与外界的联系。 个最底层的问题都足够简单为止。
分解:将问题不断分解为较小的问题,直到每

抽象:从作为整体的软件系统开始(第一层),每一 抽象层次上只关注于系统的输入输出。 分解:将系统不断分解为子系统、模块…… 随着分解层次的增加,抽象的级别越来越低,也 越接近问题的解(算法和数据结构)。
1、结构化方法概述

一种面向数据流的传统软件开发方法,以 数据流为中心构建软件的分析模型和设计 模型。
结构化分析(Structured Analysis
分为:
简称SA) 结构化设计(Structuresd Design 简称SD) 结构化程序设计(Structured Programmin 简 称SP)
A
A
Process2
A
B
Process2
Process3
C
分层数据流图的审查

检查图中是否存在错误或不合理(不理想) 的部分
一致性:分层DFD中不存在矛盾和冲突 完整性:分层DFD本身的完整性,即是否有
遗漏的数据流、加工等元素 其他需要注意的问题
(1)分层数据流图的一致性

父图与子图平衡

任何一张DFD子图边界上的输入/输出数据流必须与其父图中对应的加 工的输入/输出数据流保持一致

数据守恒
一个加工所有输出数据流中的数据,必须能从该加工的输入数据流中 直接获得,或者能通过该加工的处理而产生 多余的数据流:加工未使用其输入数据流中的某些数据项

结构化的分析方法

结构化的分析方法
(1)这样得到的多层DFD可清晰的反映整个数据加工的真实情况; (2)对于任何一层DFD来说,称它的上层为父图,下层为子图; (3)在多层DFD中,可以把顶层DFD,中间层DFD和底层DFD区分开来;
信息系统分析与设计
16
分层DFD示意图
信息系统分析与设计
17
绘制DFD的主要原则
• • • • 明确系统边界 自顶向下,逐步扩展 合理布局 DFD只反映数据流向,逻辑加工,数据存 储,不反映任何技术细节处理方式 • DFD绘制过程,用户参与原则
可行性分析
从经济、技术、社会等方面的 因素考察所要开发的系统的可 能性和必要性。 •功能性需求; •非功能性需求;主要包括性能,如处理 速度、吞吐量、响应时间等,安全性, 可靠性… 建立一个能够满足定义所描述的 用户需求模型,包括过程建模和 信息系统分析与设计 数据建模。
需求分析
系统建模
5
系统分析阶段的主要活动
信息系统分析与设计
18
(a)
பைடு நூலகம்
顶层图
(b)
第0层图
(c)
第一层图
(d)
第二层图
信息系统分析与设计 19
A
B
A
B
重复标记1
重复标记2 重复标记1
重复标记2
X
Y
信息系统分析与设计
X
Y
20
利用重复标记缩短箭线
用户
用户
用户
信息系统分析与设计
21
绘制DFD的主要步骤
(1)确定系统的外部项,也就是数据的源点和汇点;
成分的实际意义,避免空洞的名字
• 编号 按层给加工编号,编号表明该加工处于那一层,以及上下 层父图子图的关系

《结构化分析》PPT课件

《结构化分析》PPT课件
衡量工程价值的另一项经济指标是工程的纯收入,也 就是在整个生命周期之内系统的累计经济效益(折合成现 在值)与投资之差。这相当于比较投资开发一个软件系统 和把钱存在银行中(或贷给其他企业)这两种方案的优劣 。如果纯收入为零,则工程的预期效益和在银行存款一样 ,但是开发一个系统要冒风险,因此从经济观点看这项工 程可能是不值得投资的。如果纯收入小于零,那么这项工 程显然不值得投资。

每行成本 成本(元) 人力(人
(元/行)
月)
108
90720
9.1
54
65340
11.8
72
43200
4.4
33
14850
3.1
135
148500
13.7
362610
42.1
2. 任务分解技术
首先把软件开发工程分解为若干个相对独立的任务。 再分别估计每个单独的开发任务的成本,最后累加起来 得出软件开发工程的总成本。估计每个任务的成本时, 通常先估计完成该项任务需要用的人力(以人月为单 位),再乘以每人每月的平均工资而得出每个任务的成 本。
例如,修改库存清单系统两年以后可以节省4225.12元 ,比最初的投资(5000元)还少774.88元,第三年以后将 再节省1779.45元。774.88/1779.45=0.44,因此,投资 回收期是2.44年。
投资回收期仅仅是一项经济指标,为了衡量一项开发 工程的价值,还应该考虑其他经济指标。
纯收入
例如,上述修改库存清单系统,工程的纯收入预计是
9011.94-5000=4011.94(元)
4 可行性研究过程
典型的可行性研究过程有下述八个步骤:
1. 复查系统规模和目标
5. 导出和评价供选择的解法

结构化分析方法

结构化分析方法

结构化分析方法结构化分析方法是指通过对问题、系统或者事物进行系统性的分解和分析,以便更好地理解其内在结构和运行机制的一种分析方法。

结构化分析方法在工程、管理、信息技术等领域都有着广泛的应用,能够帮助人们更好地理解和解决复杂的问题。

下面将从几个方面对结构化分析方法进行介绍和分析。

首先,结构化分析方法的基本原理是将一个复杂的系统或问题分解为若干个相对简单的部分,通过对这些部分的分析和理解,再将它们整合起来,从而得到对整体系统或问题的深入理解。

这种分解和整合的过程有助于人们更好地把握问题的本质和关键因素,从而有针对性地进行解决和改进。

其次,结构化分析方法的核心工具包括了数据流图、结构图、层次分析法等。

数据流图是一种用来描述系统功能和数据流动的图表,通过对数据流图的绘制和分析,可以清晰地了解系统的功能和数据流动情况,有助于找出系统中存在的问题和改进的空间。

结构图则是用来描述系统结构和组成部分之间的关系的图表,通过结构图的绘制和分析,可以帮助人们更好地理解系统的内在结构和组成部分之间的相互作用。

层次分析法则是一种用来处理复杂决策问题的方法,通过对问题进行层次化的分解和比较,可以帮助人们更好地进行决策和优化。

再次,结构化分析方法的应用范围非常广泛,可以应用于各种领域和行业。

在工程领域,结构化分析方法可以用来对复杂系统进行分析和设计,帮助工程师更好地理解和改进系统。

在管理领域,结构化分析方法可以用来对企业的组织结构和业务流程进行分析和优化,帮助管理者更好地管理和决策。

在信息技术领域,结构化分析方法可以用来对软件系统进行分析和设计,帮助程序员更好地理解和开发系统。

最后,结构化分析方法的优势在于可以帮助人们更好地理解和解决复杂问题,提高工作效率和质量。

但是,结构化分析方法也存在一些局限性,比如对于非线性、动态、不确定性较大的问题,结构化分析方法可能并不适用。

因此,在实际应用中,需要根据具体问题的特点和要求来选择合适的分析方法。

软件工程——结构化方法

软件工程——结构化方法

软件工程——结构化方法上世纪60年代,由于计算机计算能力和处理的问题复杂度的急速增长,爆发了众所周知的软件危机。

为了应对软件危机带来的危害,解决管理大型复杂软件的难题,学术界与工业界共同研究并提出了许多有效的软件开发方法。

而其中影响最为深远的,分支最为庞大的方法就是结构化方法。

自1967年起就涌现出了许多软件工程领域有关结构化的相关概念与方法。

如结构化程序设计,结构化分析技术,结构化设计。

本文将针对它们进行介绍以及其应用。

结构化编程结构化编程(Structured programming)是上世纪60年代迪杰斯特拉,科拉多·伯姆及朱塞佩·贾可皮尼等计算机科学家所提出的。

图灵奖得主迪杰斯特拉(Edsger Wybe Dijkstra)在1968年的一篇名称为《GOTO陈述有害论》的论文写到:最近我发现为什么使用goto语句具有灾难性的影响,而且我认为goto语句应该从所有的高级语言中废除,因为它使分析和验证程序正确性(特别是涉及循环)的任务变得复杂。

——Go To Statement Considered Harmful Edsger W.Dijkstra科拉多·伯姆于1966年5月在《Communications of the ACM》期刊发表论文,说明任何一个有goto指令的程序,可以改为完全不使用goto指令的程序。

下面来看一个例子,用于展示goto带来的差可读性。

void foo{A:...if(c==1)goto B;else goto C;B:...if(c==2) goto A;else goto C;C:...if(c==3)goto B;else goto A;}因此为了应对这些弊端,迪杰斯特拉提出了结构化程序设计。

首先他证明了任何程序都可以用以下三种流程架构所组成。

可分为循序(sequence)、选择(selection)及重复(repetition),循序是指程序正常的运行方式,运行完一个指令后,运行后面的指令。

软件工程概论参考课件ch03_2_结构化分析方法

软件工程概论参考课件ch03_2_结构化分析方法
3.2.1 结构化分析的概念 3.2.2 细化数据流图 3.2.3 数据流程图应用实例
23
3.2.3 数据流程图应用实例
某汽车配件公司设有销售、采购、仓库、会计等业 务部门。公司每天都要处理大量的销售订单业务。 当配件缺货或库存量低于保险贮备量时,就要进货。 如果暂不考虑配件公司内部的仓库和会计业务细节, 那么,配件公司的TOP图,如3-3所示。
26
(3)销售子系统第二层图——细化数据流图
27
End
28
29
合作愉快
2011
图3-1 数据流图与加工的关系
15
在调研阶段产生的高层数据流图,许多具体的细节 没有包括在里面,因此沿数据流程回溯时常常遇到 下述问题:
为了得到某个数据元素需要用到数据流图中目前还 没有的数据元素,或者得出这个数据元素需要用的 算法尚不完全清楚。为了解决这些问题,往往需要 向用户和其他有关人员请教,他们的回答会使分析 师对目标系统的认识更深入更具体,数据流图中的 更多的成分就可以被分解出来。
16
通常把分析过程中得到的有关数据元素的信息描述在 数据字典中,把对算法的简明描述记录在IPO图中 (输入/处理/输出图)。通过挖掘分解出来的数据流、 数据存贮和处理逻辑及时添加到数据流图中,这就是 细化的过程。一个原则 是:数据流程图不可能一步细化到位,需要按照概 括程度逐步细化,逐层分解。
这种用高度概括的手法,先把握主要的功能,忽略 细节,避免眉毛胡子一把抓的做法,就用到了“抽 象”的手法。
20
在研究用户业务系统的数据流程时,是以“功能” 为对象进行不同级别“抽象”的。
在数据流图的细化方面,把处理功能按抽象层次进 行逐层分解,把握好抽象的粒度,使其与层次对应。
21

软件工程 第六讲 结构化分析方法

软件工程 第六讲 结构化分析方法

什么是GOTO语句?
ห้องสมุดไป่ตู้

在以前的程序设计课程中,老师说 goto语句很重要,为什么在这里说不 那么重要呢?
简单明确的概述什么是自顶向下、逐步求 精的思想,它和自底向上的分析方法有什 么不同??




结构化设计程序的方法在软件工程提出后产生, 主要是提出取消“GOTO“语句的使用。我想问的 是在结构化中的模块之间的接口不就算是 “GOTO”语句吗? 问题一:书中104在讲到结构化程序设计(SP)中 提到的“只要三种控制结构(顺序、选择、重复) 就是能表达用一个入口和一个出口的流程图所能 表达的任何程序逻辑”该做如何理解? 问题二:该如何来理解结构化方法的指导思想 (自顶向下、逐步求精)与两个基本原则(抽象、 分解)的联系?

问题六:基本加工是靠自己的经验来确定的,还 是有一定的标准?
返回
数据流



表示数据的流向。 数据流由一组数据项组成。 命名规则和注意事项:

数据流的名字用名词或名词词组 应尽量使用现实系统中已有的名字 把现实环境中传递的一组数据中最重要的那个数据的名字作为数 据流的名字 不要把控制流作为数据流 不要使用意义空洞的名词作为数据流名,如”数据“、“信息 “等。 如果在命名时遇到困难,说明你可能对数据流的分解不恰当,应 进行重新分解。 对流进或流出文件的数据流不需标注名字。



问题P110 怎样准确的判断出父图与子图的平 衡?
父图 与子 图平 衡吗?
父图 与子 图平 衡吗?
问题


110页图8.6为什么平衡不清楚。 P110 对父图与子图的平衡的理解:图8.6中如果 不存在图8.4的情况下,那么这个父图与子图就不 符合自图的平衡了,对吗? 画数据流图中,父图与子图怎样保持平衡? P110:第(6)个注意事项第二段第一句:有时考 虑平衡可忽略一些枝节性的数据流。我对本句中 的“枝节性的数据流”不太理解,不知道什么叫 “枝节性的数据流”,枝节性的数据流有何特点?

软件工程——结构化软件开发——需求分析和概要设计PPT课件

软件工程——结构化软件开发——需求分析和概要设计PPT课件
28
软件设计任务
软件设计是一个把软件需求变换成软件表示的过程。
从工程管理的角度来看.软件设计分两步完成。 概要设计:将软件需求转化为数据结构和软件的系统结构。 详细设计:通过对结构表示进行细化,得到软件的详细的数据结构和算法。
✓ 在概要设计过程中需要完成的工作:
1) 制定规范 在进入软件开发阶段之初,首先应为软件开发组制定在设计时应该共同遵守 的标准,以便协调组内各成员的工作。它包括:
31
4)数据结构设计
确定软件涉及的文件系统的结构以及数据库的模式、子模式,进行数据完整 和安全性的设计。包括:
➢ 确定输入、输出文件的详细的数据结构。 ➢ 结合算法设计,确定算法所必需的逻辑数据结构及其操作。 ➢ 确定对逻辑数据结构所必需的那些操作的程序模块(软件包)。限制和确定各 个数据设计决策的影响范围。
特点:
准确性和一致性。是连接计划时期和开发时期的桥梁, 也是软件设计的依据。
清晰性和没有二义性。
直观、易读和易于修改。 3
需求分析的过程
1. 问题识别
2. 问题分析和方案的综合
3. 编制需求分析阶段的文档
4. 需求分析评审
1.问题的识别———软件做什么和做到什么程度
➢ 功能需求 (软件在职能上应做什么) ➢ 性能需求 (速度,容量等) ➢ 环境需求(硬件和软件支持要求和操作人员素质要求) ➢ 可靠性需求 (不发生故障的概率) ➢ 安全保密的需求 (拒绝非法使用等) ➢ 用户界面的需求 (不同级别用户使用软件的界面要求) ➢ 资源使用需求 (运行时需要的计算机资源,开发过程中需要的人力
3· 内容描述 在数据词典的编制中,分析员最常用的描述内容或数据结 构的符号如表所示。
12
数据词典

工程类软件工程结构化分析与设计

工程类软件工程结构化分析与设计

04
软件工程结构化分析与设计的应用
结构化分析与设计在软件开发中的应用
需求分析:通过结构化方法对软 件需求进行全面、准确地分析和 定义,确保开发过程中不偏离需 求。
编码实现:依据系统设计,采用 结构化的编码规范,确保代码的 可读性和可维护性,降低代码的 复杂度。
添加标题
添加标题
添加标题
添加标题
系统设计:根据需求分析结果, 采用结构化的设计方法,将软件 系统划分为多个模块,确定模块 间的关系和接口,提高软件的可 维护性和可扩展性。
统流程图
数据结构设计: 确定数据结构, 设计数据字典
算法设计:根 据系统流程和 数据结构,设 计算法和程序
流程图
界面设计:根 据用户需求和 系统流程,设
计用户界面
结构化设计方法的优缺点
优点:结构清晰,易于理解 和维护;降低软件复杂度, 提高可扩展性和可重用性; 减少错误和缺陷,提高软件 质量。
缺点:对需求变更的适应性 较差;过度依赖人工设计和 编程,缺乏自动化工具支持; 对设计者的技能和经验要求 较高。
添加 标题
目标:提高软件的可维护性、可扩展性和 可重用性,同时降低软件开发的复杂性和 风险。
添加 标题
基本原则:模块化、抽象、逐步细化、信 息隐藏和模块独立。
添加 标题
工具和技术:流程图、数据流图、实体关 系图等。
结构化设计方法的实施步骤
需求分析:明 确软件需求, 建立需求文档
系统流程设计: 根据需求分析 结果,设计系
05
软件工程结构化分析与设计的实践 案例
案例一:某企业信息系统结构化分析与设计
案例背景:某企业面临信息系统升级改造的需求,需要进行结构化分析与 设计

软件工程SE-Lecture6结构化分析

软件工程SE-Lecture6结构化分析
(3)根据类型采用相应的手段进行映射 (4)改进初始结构图
@Beibei Liu, School of EIE, SCUT
数据流图到软件体系结构的映射

软件设计是把软件需求变换成软件表示的过程。
数据流图 结构图
映射步骤: (1)检查数据流图
变换型
(2)确定数据流图的类型
事务型
(3)根据类型采用相应的手段进行映射 (4)改进初始结构图
统计成绩 输出控制
@Beibei Liu, School of EIE, SCUT
变换分析

步骤3:第二级分解 “加工”vs.“模块”
“成绩统计”第一级分解结构图
统计成绩
统计成绩 输入控制
统计成绩 处理模块
统计成绩 输出控制
从变换中心边界开始,沿着输 入路径向外移动,把输入路径 上的每个加工以及对物理输入 的接收映射成结构图中受输入 控制模块控制的一个低层模块

基本成分:模块、调用、数据

例:
矩形框代表模块
模块:具有一定 功能的、可用模 块名调用的一组 程序语句。如函 数、子程序等。
f
a,d a,d a,c a N c c V
MS f O
d
g
P
h
Q b
U
R
i
S
T
j
W
@Beibei Liu, School of EIE, SCUT
结构图

基本成分:模块、调用、数据
清正 单确 成 绩
试题得分清 单 考生名 册 正式成绩清 单
2.4 分类 统计成 绩
合格标 准
2.2 审定 合格者
2.3 产生考 生通知 信息
考生通知信 息

【推荐下载】关于软件工程的结构化分析方法

【推荐下载】关于软件工程的结构化分析方法

关于软件工程的结构化分析方法这是一篇软件工程的结构化分析方法,计算机软件作为工程对象,就像建筑、机械、电子等工程一样,软件制造同样需要计划、分析、设计、测试、维护等相关的工程步骤,具体内容请查看全文。

提要:本文首先闲述软件工程的设计思怒,然后根据外贸企业业务的特点,介绍了结构化分析方法在外贸管理信.么系统中的应用。

关键词:软件工程,结构化分析近年来,随着计算机的普遍应用,软件起着不可忽视的作用。

任何一个单位要想用好计算机,都必须把软件问题摆在优先地位考虑。

事实上,计算机使用的水平如何,能不能发挥其潜力,在很大程度上取决于有关人员对软件的了解和认识,特别是开发软件者更需要对软件的特性和软件开发技术有更加深入的理解。

多年来,程序员们一直延用手工作坊式开发软件,各自独立编程,对自己处理的数据的来处和去向事先不做确切定义,直到发现间题时才去着手解决。

他们忽视了软件开发基础阶段的重要性,未能充分做好系统调查和软件开发计划,常常表现为未能充分理解和正确表达用户的需求而匆忙进入程序设计,到了试运行阶段,才发现不符合题意或数据结构和程序模块接口等问题,此时再调查、修改、询问、补漏,造成程序员被用户牵着走的被动局面。

遇到需求与功能差距很大的情况时,更不能按时交付使用,软件成本也随之急剧上涨。

由此,人们开始研究软件的开发过程及它本身的特性,提出了软件工程这一新的思想,即把计算机软件作为工程对象,就像建筑、机械、电子等工程一样,软件制造同样需要计划、分析、设计、测试、维护等相关的工程步骤,一不可。

象其他事务一样,软件也有它的产生、发展和消亡的过程,也就是从概念的形成直到所开发的软件在充分使用以后完全失去使用价值为止的整个过程,大体可归纳为三个时期,即定义、开发和维护。

软件定义时期主要决定要开发的软件应具有什么特性,它能做些什么,其中分为:软件项目规划:主要任务是确定开发的总自标,给出软件功能、性能、可靠性以及用户接口等方面的设想。

软件工程---结构化分析方法

软件工程---结构化分析方法
不超过500元
2软件需求规格说明书的内容和要点?
答:SRS(Software Requirements Specification),软件需求说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解,使之成为整个开发工作的基础。包含硬件、功能、性能、输入输出、接口需求、警示信息、保密安全、数据与数据库、文档和法规的要求等等。
1、设计方案
可行性研究报告的主要任务是对预先设计的方案进行论证,所以必须设计研究方案,才能明确研究对象。
2、内容真实
可行性研究报告涉及的内容以及反映情况的数据,必须绝对真实可靠,不允许有任何偏差及失误。其中所运用的资料、数据,都要经过反复核实,以确保内容的真实性。
3、预测准确
可行性研究报告是投资决策前的活动。它是在事件没有发生之前的研究,是对事务未来发展的情况、可能遇到的问题和结果的估计,具有预测性。因此,必须进行深入的调查研究,充分的占有资料,运用切合实际的预测方法,科学的预测未来前景。
符合需求规格说明的良好特性(完整的、一致的、易修改的、可跟踪的)只验证那些已编写成文档的需求,而那些存在于用户或开发者思维中的没有表露的、含蓄的需求则不予验证。
需求验证并不仅仅是一个独立的阶段。
回一些验证活动,例如对渐增型软件需求规格说明的反复评审,将贯穿着反复获取需求、分析和编写规格说明的整个过程。需求验证能够得到的更好的需求将会带来更好的产品质量和客户更大的满意程度,这可以降低产品生存期中的维护、增强和客户支持的费用。
教师评语:
3需求验证的基本任务和内容是什么?
答:
需求脸证的任务:
验证决定了开发成的产品是否能满足开始时所确定的需求(即正确完成任务)。
确认只评估了过渡产品或最终产品是否能真正满足最高层次的特宋需求(即完成特定任务)。!我们可以在开发组编写代码之前,以需求为基础建

结构化分析方法

结构化分析方法

结构化分析方法
• (3)建立目标系统的逻辑模型 • 这是分析工作中实质性的一步。它通过分析目标系统与现行系
统逻辑上的差别,明确目标系统“做什么”,在现行系统的逻 辑模型上建立目标系统的逻辑模型。 • 具体可按如下方式进行:
– 决定变化的范围,即决定目标系统与现行系统逻辑上的差别。 – 将变化的部分看成是一个新的处理步骤,对数据流程图进行调整。 – 由外向里对变化的部分进行分析,凭经验推断其结构,获得目标系统的
软件工程学教程Βιβλιοθήκη 结构化分析方法– 说明至今尚未详细考虑的细节。这些细节包括出错处理、系统的启动与结束、系统的输入/ 输出和系统性能方面的需求等。
– 其他。系统特有的其他必须满足的性能和限制,也需要用适当的形式做出书面记录。
结构化分析方法
• 分析阶段结束时,系统分析员必须和用户再次认真地审查系统文件,争取在系 统开始设计之前,尽可能地发现其中存在的一些错误并及时纠正,直至用户确 认这个模型表达了他们的要求后,系统文件 (软件需求说明书等) 才作为用户 和软件人员之间的“合同”而最后得到确定。
结构化分析方法
• 用结构化分析方法进行系统需求分析的具体步骤是: • (1)获得现行系统的具体模型 • 分析现实环境,理解现行系统是怎样运行的,了解现行系统的组织机构、输入
输出、资源利用情况及日常事务处理,并用具体模型来表示自己对现行系统的 理解。这一具体模型应当客观地反映现实环境的实际情况。
结构化分析方法
逻辑模型。
结构化分析方法
• (4)补充目标系统的逻辑模型 • 为了对目标系统做出完整的描述,还需要对前面已得到的结果作一些补充。
– 说明目标系统的人机界面。设计一个系统,不但要考虑系统本身,还要考虑它所处的应用 环境以及它与外界环境的相互联系和作用。因此,在最初建立现行系统和目标系统的逻辑 模型时,其研究范围和对象是计算机处理系统以及可能与计算机系统发生联系的所有部分。 最后,必须明确地指出计算机系统的范围,逐个检查模型中的每一个基本处理,决定其是 否由计算机来完成,这也决定了目标系统的人机界面。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据源点/终点(汇点)



外部实体:系统之外的实体,包括人、物 或其他软件系统。 数据源点:给系统提供数据的外部实体。 数据终点(汇点):接收系统输出数据流 的外部实体。 2、 一个数据源点也可以是数据终点吗? (p108 8.3.1.4 ) 源点和终点(汇点)可以是同一外部实体。
返回
加工

也称为数据处理或变换或处理,是对数据处理的 单元。 加工(处理)的命名规则:



顶层的加工名就是软件项目的名字。 加工的名字最好使用动宾词组。可以用主谓词组。 不要使用意义空洞的动词作为加工名,即只有动词或 主语。 如果在命名时遇到困难,说明你可能对数据流的分解 不恰当,应进行重新分解。
数据流图的基本符号表示了什么含义?除 了4种基本图形符号还有别的图形符号吗?




111页:图8.7所表示的是与图8.2等价的DFD,那 么在实际画DFD时,我们怎样确定具体使用哪 一种符号?这两种符号有什么区别和联系? 书上给出了两种类型的数据流图,那我们在画数 据流图时应该选择哪种呢? 1、数据流图的画法有两种,哪一种比较适合我 们? 数据流图矩形里面的内容是什么含义,椭圆里 面的内容又是什么含义,矩形与椭圆之间用箭 头表示有什么联系?

什么是GOTO语句?

在以前的程序设计课程中,老师说 goto语句很重要,为什么在这里说不 那么重要呢?
简单明确的概述什么是自顶向下、逐步求 精的思想,它和自底向上的分析方法有什 么不同??




结构化设计程序的方法在软件工程提出后产生, 主要是提出取消“GOTO“语句的使用。我想问的 是在结构化中的模块之间的接口不就算是 “GOTO”语句吗? 问题一:书中104在讲到结构化程序设计(SP)中 提到的“只要三种控制结构(顺序、选择、重复) 就是能表达用一个入口和一个出口的流程图所能 表达的任何程序逻辑”该做如何理解? 问题二:该如何来理解结构化方法的指导思想 (自顶向下、逐步求精)与两个基本原则(抽象、 分解)的联系?
①结构化分析方法(SA)


结构化分析方法是一种面向数据流的需求 分析方法,适合于数据处理类型软件。 策略:自顶向下逐层分解
问题:“自顶向下逐层 分解”是不是和程序设 计一样分成模块来单独 进行开发 结构化分析为什么是自 顶向下逐层分解,那为 什么不是自底向上的分 解?
①结构化分析方法(SA)

工具:数据流图、数据字典、结构化英语 (语言)、判定表和判定树等。


结构化方法最适用于哪种软件生存周期模 型? 106页:“SA方法利用图形等半形式的描 述方式表达需求……”中“半形式的描述 方式”。

P105:2、IDEF、SA分别各指什么?
ⅰ、数据流图(DFD)(3.5)


作用:用来描述数据处理过程的。它从数据 传递和加工的角度,以图形的方式刻画数 据流从输入到输出的传输变换过程。它表 示了系统内部信息的流向,并表示了系统 的逻辑功能(做什么)。 DFD的符号体系 DFD的画法 注意事项 DFD与其他流程图的区别
8.1 概述


在p104中,提到只要有三种控制程序,就能 表达用一个入口和一个出口的流程图所能 表达的任何程序逻辑,这句话没有能够理 解。 104页:“1969年,Bohm和Jacopini首次证 明了只要三种控制结构就能表达一个入口 和一个出口的流程图所能表达的任何程序 逻辑”中“一个入口和一个出口的流程 图”。


由当前系统的逻辑模型导出目标系统的逻 辑模型
107页:在建立目标系统的逻辑模型时,分析人 员根据自己的经验,采用自顶向下的逐步求精 的分析策略,除了自顶向下的分析方法外,是 否还有其它的方法? 又如何去具体建立目标系统的逻辑模型?

(3)需求分析方法



结构化分析方法( SA) 面向对象的分析方法 形式化分析方法 问题: 软件分析方法有哪些?各种方法的 特点及其应用在哪些软件分析中更合理? SA分析对软件工程项目开发有什么联系?

④:“数据流图是SA方法中用于表示系统 逻辑模型的一种工具,它以图形的方式描 绘数据在系统中流动和处理的过程。由于 它只反映系统给必须完成的逻辑功能,所 以它是一种功能模型。”功能模型具体是 指什么呢,该如何理解?(8.3, p107)

数据流图的作用到底是什么? 如何快速简介的制作一张数据流图?
返回
问题

数据流图中的数据流有哪几种类型?

关于数据流程图的绘制,其中对于数 据流、加工等部分的命名很模糊?
DFD的符号体系

基本符号 扩充符号
返回
(i)、DFD的基本符号
实体名

实体名

实体名
数据的源点/终点 (汇点) 加工 数据流
编号 加工名

编号 加工名

编号 加工名
数据流名
文件名

编号 文件名

编号
文件名
数据存储
1
2(软设) 3(系分)
返回

P110: 第(8)个注意事项,给出了数据流 图的另一套基本符号。我不知道何时该用 原来的那一套基本符号,何时用这套基本 符号?这两套符号分别用在什么场合确定的,还 是有一定的标准?
返回
数据流



表示数据的流向。 数据流由一组数据项组成。 命名规则和注意事项:

数据流的名字用名词或名词词组 应尽量使用现实系统中已有的名字 把现实环境中传递的一组数据中最重要的那个数据的名字作为数 据流的名字 不要把控制流作为数据流 不要使用意义空洞的名词作为数据流名,如”数据“、“信息 “等。 如果在命名时遇到困难,说明你可能对数据流的分解不恰当,应 进行重新分解。 对流进或流出文件的数据流不需标注名字。

什么叫软件重用的问题?
需求分析的任务(8.2.3)

获得当前系统的物理模型
107页:“建立当前系统的物理模型时,这一模 型包含了许多具体因素”中“具体因素”指的 是什么? 建立出来的物理模型具体是什么样的?


抽象出当前系统的逻辑模型
应该怎么样去抽取当前系统的逻辑模型? 物理模型反映了系统“怎么做”的具体实现, 去掉物理模型中非本质的因素,抽取出本质的 因素,这里的非本质和该如何理解?
相关文档
最新文档