第3章结构化分析与设计
(完整版)第三章需求分析习题及答案
第三章需求分析一. 填空题1.需求分析的步骤 , , , 。
2.需求分析阶段需编写的文档有,,。
3.系统规格说明,数据要求,, ,这四份文档资料是在书写文档阶段必需完成的。
4.在书写文档阶段,数据要求主要包括通过需求分析建立起来的,以及描绘数据结构的层次方框图。
5.对于计算机程序处理的数据,其数据域应包括 , , 和数据结构。
6.数据内容即是。
7.把一个功能分解成几个子功能,并确定 , 就属于横向分解。
8.软件需求的逻辑视图给出 , 而不是实现的细节。
9. 功能一般用 , 来表示。
10.结构化分析方法是 , 进行需求分析的方法.11.描述结构化分析方法的工具有,,,判定表,判定树。
12. SA方法中自顶向下的分析策略主要是和。
13.数据流图的基本组成部分有,,,。
14.数据流图的特性,,,。
15.数据流图和数据字典共同构成了系统的模型,是需求规格说明书的主要组成部分。
16.分析员通过需求分析,逐步细化对软件的需求,描述软件主要处理的,并给软件开发提供一种可转化为,和的数据与功能表示。
17.需求分析阶段研究的对象是软件项目的。
18.数据流图的基本符号包括,,,。
19.在需求分析阶段常用的图形工具有,,。
20.需求分析应交付的主要文档是。
二. 选择题1. 需求分析中开发人员要从用户那里了解()A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模2. 需求分析阶段的任务是确定()A.软件开发方法 B.软件开发工具C.软件开发费 D.软件系统的功能3. 需求分析阶段最重要的技术文档之一是非曲直()。
A.项目开发计划 B.设计说明书 C.需求规格说明书 D.可行性分析报告4.需求分析阶段建立原型的目的是()。
A.确定系统的功能和性能的需求 B.确定系统的运行要求C.确定系统是否满足用户需求 D.确定系统是否满足开发人员需要5.需求分析阶段研究的对象是()A.用户需求 B.分析员要求 C.系统要求 D.软硬件要求6.系统流程图用于可行性分析中的_____的描述。
《Visual C++程序设计》第3章
if语句的嵌套形式 语句的嵌套形式: 语句的嵌套形式
if语句的嵌套是指 或 else后面的语句本身又是一个 语 语句的嵌套是指if或 后面的语句本身又是一个if语 语句的嵌套是指 后面的语句本身又是一个 句。 表达式1) 如:if(表达式 表达式 if(表达式 表达式11) 表达式 语句11 语句 else 语句12 语句 else 语句2 语句 注意: 注意: 为了增强程序的可读性,建议采用锯齿型的书写形式。 为了增强程序的可读性,建议采用锯齿型的书写形式。 else始终与它上面的最近的 语句配对,而这个if语句 始终与它上面的最近的if语句配对 if语句 始终与它上面的最近的 语句配对,而这个if 又没有其它的else else与之匹配 又没有其它的else与之匹配 。 if (表达式 表达式1) 表达式 if (表达式 表达式2) 表达式 语句1 语句 else 语句2 语句 如何使之 与第一个 if配对?
程序设计的基本目标是用算法对问题的原始数据进行 处理,从而获得所期望的效果。要做到这一点, 处理,从而获得所期望的效果。要做到这一点,就必须 要掌握正确的程序设计方法和技术。 要掌握正确的程序设计方法和技术。 结构化程序设计方法是公认的面向过程编程应遵循的 基本方法和原则。该方法包括: 基本方法和原则。该方法包括: 只采用顺序结构、 1 . 只采用顺序结构 、 选择结构和循环结构这三种基 本的程序控制结构来编制程序,从而使程序具有“ 本的程序控制结构来编制程序,从而使程序具有“单入 口和单出口”良好的结构; 口和单出口”良好的结构; 2.程序设计自顶向下; 程序设计自顶向下; 3.用结构化流程图表示算法。 用结构化流程图表示算法。
sin x + x 2 + 1 , x ≠ 0 y= cos x x 2 + 3x , x = 0
第3章结构化分析方法1.1(抽象)
售书登记表
打印领书单 及售书登记
打印发票
教材存量表
缺书单 开发票 售书
购书
建立逻辑模型(抽象)
当前系统:用户目前使用的系统。 目标系统:新开发的计算机软件系统。
各类逻辑模型
学校向学生销售教材的手续 学生先提交购书申请,系办张干事开购书 证明,学生持证明找教材科的王会计开购书 发票,向李出纳交付书款,然后到书库找赵 保管员领书,由此生成当前系统具体模型
教材购销系统是一个教材管理系统, 控制计划供应教材的销售和采购。系统 应具备如下主要功能:根据学校的教学 计划,向选课学生及时供应所需教材; 登记缺书信息,及时补充采购所缺教材, 并通知学生补购
建立物理模型
生成补售书单
学生 发 书 学生用书表
缺书登记表
购书单
收费 盖章
领书单
发票
进 书
汇总并统 书库保管员 计缺书 审查有效性
面向数据流的分析方法
结构化分析就是按照软件的内部数据传递、 变换关系,从层次的角度出发,自顶向下地逐 层分解,直至找到满足功能要求的所有可实现 的模块为止,即直到所有功能模块简单到可以 用程序代码实现时,就不再分解了。 早期结构化分析依赖数据流图,亦称面向数 据流的分析方法,其描述/分析工具是数据流 图,加工说明和数据字典。
结构化分析模型
数据对象说明 E-R图 STD图
控制说明
(
DD DFD图
PSPEC) 加工说明
数据流图
源
数据流
加工 或变换
数据流
汇
数据存储
பைடு நூலகம்
数据流图描绘数据从输入移动到输出所经历的变
换过程。
数据流图符号
“→”代表数据流。 “〇”代表加工/处理 。 “═”代表数据存储/文件/数据源“═”。 “□”代表源、汇点/外部实体。
第3 章 结构化需求分析
第3 章 结构化需求分析
3.1.2 需求分析的过程 (2)分析与综合 从信息流和信息结构出发, 从信息流和信息结构出发,逐步细化软 件的所有功能, 件的所有功能,找出系统各个元素之间 的联系、接口特性和对设计的限制, 的联系、接口特性和对设计的限制,判 断是否存在因片面性或短期行为而导致 的不合理需求, 的不合理需求,判断是否有用户尚未提 出的确实有价值的潜在需求, 出的确实有价值的潜在需求,从而提出 其中不合理的部分, 其中不合理的部分,增加真正需要的部 分。
第3 章 结构化需求分析
采用“自顶向下,逐步求精”的方式, 系统被分解成 系统被分解成3 采用“自顶向下,逐步求精”的方式,X系统被分解成 个子系统 :
第3 章 结构化需求分析
3.3.2 结构化分析方法 指导性原则: 指导性原则: 在开始建立分析模型之前先理解问题, 在开始建立分析模型之前先理解问题 ,而不应 急于求成,甚至在问题未被很好地理解之前, 急于求成 ,甚至在问题未被很好地理解之前, 就产生了一个解决错误问题的软件; 就产生了一个解决错误问题的软件; 开发模型,使用户能够了解将如何进行人机交 开发模型, 互; 记录每个需求的起源和原因, 记录每个需求的起源和原因 ,这样能有效地保 证需求的可追踪性和可回溯性; 证需求的可追踪性和可回溯性; 使用多个需求分析视图,建立数据、 使用多个需求分析视图,建立数据、 功能和行 为模型。 为模型。
第3 章 结构需求分析
3.1.2 需求分析的过程
第3 章 结构化需求分析
3.1.2 需求分析的过程 (1)调查研究 对目标系统的运行环境、功能要求、 对目标系统的运行环境、功能要求、非 功能性要求与用户达成共识。 功能性要求与用户达成共识。 问题研究集中在以下3个方面: 问题研究集中在以下3个方面: 经济可行性: 经济可行性: 技术可行性: 技术可行性: 操作可行性: 操作可行性:
3.3 结构化需求分析方法
订货单 支票
顾客
询问 退货单
处理顾 客事务
第三章 需求分析
15
多个数据流的第一种表示方法:
订货单 顾客事务
顾客
处理 顾客 事务
支票 询问
退货单
16
第三章 需求分析
多个数据流的第二种表示方法:
订货单
编辑订 货单
开收据 处理询 问 退货分 析处理
支票
顾客
询问
退货单
第三章 需求分析
17
多个数据流的表示举例
重建父图,即把第二步所得的每一部分画成一个圆圈, 各部分之间的联系就是加工之间的界面; 重建各张子图,只需把第二步所得的图,按各自的边界 剪开即可; 为所有加工重新命名、编号。
第三章 需求分析
36
结构不合理的数据流图及其修改
4 H A B 1 I 2 K L D 3 D (a)结构不合理的 数据流程图
33
分解的程度
分解应自然,概念上要合理、清晰。 上层可分解的快些,而下层应分解得慢些。
在不影响可读性的前提下,应适当地多分解成几部分, 以减少分解层数。
一般说来,当加工可用一页纸明确地表述时,或加工只 有单一输入/输出数据流时,就应停止对该加工的分解。 对数据流图中不再作分解的加工,必须作出详细的加工 说明,并且每个加工说明的编号必须与功能单元的编号 一致。
第三章 需求分析
5
结构化分析方法的特点
利用数据流图来帮助人们理解问
题,对问题进行分析。即利用图
形工具来模拟数据处理过程。
第三章 需求分析
6
结构化分析方法
用数据字典定义数据流图中的各项数据; 结构化英语、判定树和判定表对数据流图中的基本功 能进行描述。 通过将系统分解成多层处理后,在较低层次上,可以 看到数据流图的高层次加工的细节和相关的数据流。 结构化分析方法的实质就是采用一组分层的数据流图 及相应的数据字典作为系统的模型。 结构化分析方法从总体上看是一种强烈依赖数据流的 自顶向下的建模方法,它不仅是需求分析技术,也是 完成规格说明的手段。
信息系统工程概论课程重点项整理
信息系统整理第一章信息系统工程导论(概述)1.何谓信息系统?指利用信息技术,以计算机为主要处理工具的收集、传输、加工、存储信息,并能输出有用信息的系统。
6. 一般信息系统有哪些基本功能?(P10)常见的信息系统的基本功能如下:(1)信息收集:由人或其他环境设施输入数据(信息),为系统输入信息。
(2)信息存储:一般用数据库作为信息存储工具,具有管理大量数据集、提供从海量数据中快速检索指定信息的功能。
(3)信息加工:根据业务部门信息加工的要求,提供统计/分析/计算等信息处理功能。
(4)信息输出(查询/显示):根据人或系统的要求,输出有用的、可视化的信息。
(5)人机交互(界面):利用该功能,实现信息系统和人、应用环境之间进行信息交换,为人提供一个环境友好、使用便利的人机交互界面。
8.什么是信息系统工程?信息系统工程与一般系统工程有何区别?(P17-18)(1)定义:信息系统工程是按照工程学原理指导信息系统的构建过程,把信息系统的开发建设作为一项系统工程来管理,并且运用系统论和工程学的观点把信息系统的开发过程分为总体规划、系统分析、系统设计和系统实现等阶段。
(2)区别:信息系统工程具有一般系统的特征属性,可以用系统科学与系统工程学的基本理论和基本方法来指导。
同时,信息系统又是一种特定的计算机应用系统,具有一般计算机应用系统开发的特征属性。
信息工程技术已经形成了一系列软件开发技术规范、测试技术和管理方法,这些技术方法具有系统工程的思想,但又不完全一致。
10. 简述信息系统工程的方法论体系。
(P18-21)所谓方法论是指一组相关方法的集合。
信息系统工程方法论是系统工程方法在信息领域中的应用,其产生与发展主要源于信息系统工程的实践探索和理论总结。
它的主要内容涉及3个方面:(1)一般系统工程的通用方法。
(2)信息系统工程方法。
信息系统工程方法从工程实践的角度,根据应用范围和抽象程度可以划分为战略层、战役层和战术层3个不同层次。
第3章软件需求分析与建模
2020/3/7第3章软件需求分析与建模
软件工程教研室
15
①数据模型 描述对象系统的本质属性及其关系。常用的建模工具有 实体-联系图等。 ②功能模型 描述对象系统所能实现的所有功能。而不考虑每个功能 实现的次序。常用的建模工具有数据流图、IDEF0等。 ③行为模型 描述对象系统为实现某项功能而发生的动态行为。常用 的建模工具有控制流图、状态转换图等。
2020/3/7第3章软件需求分析与建模
软件工程教研室
24
X
1
3
2
1.1 1.3 1.2
2.2
2.1
2.3
3.2
3.1
3.3
图3-3 自顶向下逐层分解图
2020/3/7第3章软件需求分析与建模
软件工程教研室
25
结构化分析的过程如下 1.建立当前系统(现在工作方式)的概念模型。系统的 概念模型就是现实环境的忠实写照,可用系统流程图来表 示。这样的表达与当前系统完全对应,用户容易理解。 2.抽象出当前系统的逻辑模型。分析系统的概念模型, 抽象出其本质的因素,排除次要因素,获得用数据流图 DFD 图等描述的当前系统的逻辑模型。 3.建立目标系统的逻辑模型。分析目标系统与当前系统 逻辑上的差别,从而进一步明确目标系统“做什么”,建 立目标系统的“逻辑模型”(修改后的数据流图DFD 图等)。 4.建立人机交互接口和其他必要的模型,确定各种方案 的成本和风险等级,据此对各种方案进行分析,选择其中 一种方案,建立完整的需求规约。 分析模型的结构如图3-4所示。
Y
用户和设计者是否满意
N
运行原型
是否放弃
Y
N
把原型作为 把原型作为应 应用系统 用系统开发的
软件工程导论第3章
2.访谈
访谈是最早开始使用的获取用户需求的技术,也是迄今为止仍 然广泛使用的需求分析技术。 访谈有两种基本形式: 正式访谈:系统分析员将提出一些事先准备好的具体问题。 非正式访谈:分析员将提出一些用户可以自由回答的开放性问题, 以鼓励被访问人员说出自己的想法。 调查表是当需要调查大量人员的意见时的一个十分有效的做法。 分析员仔细阅读收回的调查表,然后再有针对性地访问一些用户, 以便向他们询问在分析调查表时发现的新问题。 在访问用户的过程中可以使用情景分析技术。情景分析技术的 用处主要体现在下述两个方面: (1) 它能在某种程度上演示目标系统的行为,从而便于用户理解, 而且还可能进一步揭示出一些分析员目前还不知道的需求。 (2) 由于情景分析较易为用户所理解,使用这种技术能保证用户在 需求分析过程中始终扮演一个积极主动的角色。
(1) 数据对象
数据对象是对软件必须理解的复合信息的抽象。所谓 复合信息是指具有一系列不同性质或属性的事物,仅有单 个值的事物(例如,宽度)不是数据对象。 数据对象可以是外部实体(例如,产生或使用信息的任 何事物)、事物(例如,报表)、行为(例如,打电话)、事件 (例如,响警报)、角色(例如,教师、学生)、单位(例如,会 计科)、地点(例如,仓库)或结构(例如,文件)等。总之,可 以由一组属性来定义的实体都可以被认为是数据对象。 数据对象彼此间是有关联的,例如,教师“教”课程, 学生“学”课程,教或学的关系表示教师和课程或学生和 课程之间的一种特定的连接。
(4)需求验证 由软件开发者和用户一起来进行软件需求规格
说明的复审。确保需求规格说明可作为软件设计和最 终系统验收的依据。
二. 需求获取的常用方法
1. 建立联合分析小组 建立一个由用户、系统分析员和领域专家参加 的联合分析小组,密切合作,共同标识问题,提出 解决方案要素,商讨不同方案并指定基本需求。 这是一种面向团队的需求收集法,又称为简易 的应用规格说明技术。
软件工程课本讲解第3章 软件设计(详细设计)
第3章 软件设计 章
3.6 软件详细设计表示法
关于描述工具的有关说明: 关于描述工具的有关说明: 1.为了给出软件结构图中每一个模块的算法和块内数据结构 为了给出软件结构图中每一个模块的算法和块内数据结构 的清晰描述,需要采用适当的表达工具。 的清晰描述 需要采用适当的表达工具。 需要采用适当的表达工具 2.详细设计的表达工具有三类:图形、表格和语言。 详细设计的表达工具有三类:图形、表格和语言。 详细设计的表达工具有三类 3.无论哪类描述工具不仅要具有描述设计过程,如控制流程、 无论哪类描述工具不仅要具有描述设计过程,如控制流程、 无论哪类描述工具不仅要具有描述设计过程 处理功能、数据组织及其它方面的细节的能力 而且在编码 处理功能、数据组织及其它方面的细节的能力,而且在编码 阶段能够直接将它翻译为用程序设计语言书写的源程序。 阶段能够直接将它翻译为用程序设计语言书写的源程序。 4.详细设计的描述工具除了以前介绍过判定树和判定表外, 详细设计的描述工具除了以前介绍过判定树和判定表外, 详细设计的描述工具除了以前介绍过判定树和判定表外 还有程序流程图、 图及PDL等几种常用的工具 等几种常用的工具. 还有程序流程图、N-S图、PAD图及 图 图及 等几种常用的工具
第3章 软件设计 章 1.采用自顶向下、逐步求精的程序设计方法 采用自顶向下、 在需求分析、 概要设计中, 都采用了自顶向下、 在需求分析 、 概要设计中 , 都采用了自顶向下 、 逐层细化的方法。使用“抽象”这个手段, 逐层细化的方法 。 使用 “ 抽象 ” 这个手段 , 上层对问 题抽象、对模块抽象和对数据抽象, 题抽象 、 对模块抽象和对数据抽象 , 下层则进一步分 进入另一个抽象层次。在详细设计中, 解 , 进入另一个抽象层次 。 在详细设计中 , 虽然处于 具体”设计阶段, “ 具体 ” 设计阶段 , 但在设计某个模块内部处理过程 中,仍可以逐步求精,降低处理细节的复杂度。 仍可以逐步求精,降低处理细节的复杂度。
软件工程导论-第3章_需求分析_(第五版)(张海藩编著)_a_百度文库
(2) 完整性:需求必须是完整的,规格说明书应该包括用户需要的
每一个功能或性能。
(3) 现实性:指定的需求应该是用现有的硬件技术和软件技术基本
上可以实现的。对硬件技术的进步可以做些预测,对软件技术的进步 则很难做出预测,只能从现有技术水平出发判断需求的现实性。
(4) 有效性:必须证明需求是正确有效的,确实能解决用户面对的
成功来之不易
31%
(取消)
16.2%
(成功地完成)
53.8%
(受到挑战) Source: Standish Group
2
软件项目失败的原因
软件项目失败的最重要的五个主要原因:
需求不完整 缺少客户的参与 缺少资源 期望值过高 缺少高层的支持
0% 5% 10% 15%
3
需求错误的成本
4
软件需求的重要性: •软件需求分析是决定软件成功开发的一个关键因素
3.1.4 修正系统开发计划
根据在分析过程中获得的对系统的更深入更具体 的了解,可以比较准确地估计系统的成本和进度,修 正以前制定的开发计划。
补充:与用户沟通获取需求的方法
3.2 与用户沟通获取需求的方法
需求获取的困难:
-用户通常并不真正知道自己希望计算机系统做什么 用户通常使用业务语言表达需求,开发人员缺乏相关 的领域知识和经验,难以准确理解这些需求 -不同的用户提出不同的需求,可能存在矛盾和冲突 管理者可能出于增加影响力的原因而提出特别的需求 -由于经济和业务环境的动态性,需求经常发生变更
图3.7 IPO图的一个例子图
模块编号:c.5.5.8
图3.7 IPO图的一个例子图
图3.8 改进的IPO图的形式
本书建 议使用 一种改 进的 IPO图 (也称 为IPO 表 ),
第三章结构模型化技术
ISM含义 含义
1、ISM(Interpretative structural modeling)含义: ( )含义:
a: ISM 就是应用有向连接图来描述系统各要素间的关系,以表示一个作 为要素集合体的系统模型; b: 它的基本理论是图论,通过一些基本假设和图、矩阵的有关运算,可 以得到可达性矩阵;然后再通过人-机结合,分解可达矩阵,使复杂的 系统分解成多级递阶结构形式;
一、结构模型化基础
结构模型化技术: 结构模型化技术:建立系统结构模型的过程和方法论;
结构分析:结构模型化+对结果的解释。 结构分析:
二、结构模型化技术
脚本法 专家调查法 问题发掘技术 发现法 集团启发法 关联树法 解释结构模型(ISM ) 静态结构化技术 结构模型化技术 决策试验与评价实验室( DEMATEL) 系统开发计划程序(PPDS ) 工作设计 结构决定技术 交叉影响分析 动态结构化技术凯恩仿真模型(KSIM) 快速仿真模型(QSIM) 系统动力学
级间划分:找出整个系统要素集合的最高级要素集后,可将其从可达矩 级间划分: 阵中划去相应的行和列,再求剩余要素集合的最高级要素,依次类推, 直到确定出最低一级要素集合,这样就将系统划分为几个层次;一些概 念:最高级要素;
强连通块划分: 强连通块划分:在同一区域内同级要素相互可达的要素就称为强连通 块;即:同一区域同一级别内,两行元素完全相同。
第1步: 找出影响系统问题的主要因素,判断要素间的影响 步 找出影响系统问题的主要因素,
关系,建立邻接矩阵; 关系,建立邻接矩阵;
第2步: 考虑因果等关系的传递性,建立反映诸要素间关系 步 考虑因果等关系的传递性,
第3章_软件需求获取与结构化分析方法题及参考答案
第3章软件需求获取与结构化分析方法3.1 为什么结构化分析要叫“结构化”?有其他可替代的术语吗?“结构化”一词应来源于“结构化程序设计”,先有“结构化程序设计”的思想,后有结构化设计及结构化分析。
有时称传统的分析方法,指的就是结构化分析方法。
3.2顶层数据流图或称环境图的作用是什么?顶层数据流图(或称环境图)仅包括一个数据处理过程,也就是要开发的目标系统。
其作用如下:(1) 确定系统在其环境中的位置,与系统有联系的外部实体(包括硬件、软件、组织机构及人)有哪些。
(2) 通过确定系统的输入和输出与外部实体的关系确定系统的边界,也就是要确定哪些功能或处理属于系统范围之内,哪些属于系统范围之外,需要由其他系统处理或人工处理。
3.3 在对数据流图进行分解时需要注意哪些问题?在对数据流图进行分解时,需要注意以下两个问题:(1) 当对数据流图分层细化时必须保持信息连续性,也就是说,当把一个处理分解为一系列处理时,分解前和分解后的输入/输出数据流必须相同。
(2) 注意分层细化时对编号的处理方法。
3.4 银行存款业务如下:客户到银行柜台存款时,首先填写存款单(包括帐号、姓名、存款金额、存款类型),如果还没有开户,则需要先开户,填写开户单(包括姓名、身份证号、地址、电话、是否留密码)。
填写完存款单或开户单后,交给营业员,营业员将存款单或开户单信息输入计算机,系统记录开户信息或存款单信息,如果是开户并选择留密码,则需要客户输入密码。
最后印出开户单或存款单给用户。
请画出银行存款业务的分层数据流图(至少画出两层)。
(1) 识别外部实体及输入输出数据流外部实体:储户、业务员。
输入数据流:存款单,开户单,密码。
可以将存款单和开户单抽象为事务。
输出数据流:存款单,开户单。
(2) 顶层数据流图(3) 一层数据流图对银行储蓄系统进行分解,从大的方面分解为接收事务、处理开户、处理存款三部分,得到一层数据流图。
(4) 二层数据流图对“处理存款”及“处理开户”进行进一步分解,得到二层数据流图,即处理存款的数据流图和处理开户的数据流图。
海南大学研究生835-软件工程原理方法与应用 考试大纲
海南大学硕士研究生入学考试《835软件工程原理方法与应用》考试大纲一、考试性质海南大学硕士研究生入学考试初试科目。
二、考试时间180分钟。
三、考试方式与分值闭卷、笔试。
满分150分。
四、考试内容第一部分软件工程的基本概念第1章绪论软件与软件危机,软件工程,软件开发生命周期,模型,方法,技术,工具,过程,软件工程原理,软件工程环境,软件工程管理,软件开发风险,软件需求,软件设计,软件工具,自顶向下,分解,抽象,细化,模块,模块化,软件复审,软件测试等。
第二部分传统(结构化)软件工程第2章软件生存期与软件过程2.1软件生存周期2.2传统的软件过程2.3软件演化模型2.4形式化方法模型2.5软件可行性研究第3章结构化分析与设计3.1概述(结构化分析的工具与模型组成)3.2结构化系统分析(需求分析的任务、步骤,DFD过程模型)3.3结构化系统设计(软件设计的任务,数据存储的设计,人机交互的设计)3.4模块化设计第二部分面向对象软件工程第4章面向对象与UML4.1面向对象概述4.2UML简介4.3静态建模4.4动态建模4.5物理架构建模4.6UML工具(Rational Rose)第5章需求工程与需求分析*5.1软件需求工程5.2需求分析与建模5.3需求获取的常用方法5.4需求模型5.5软件需求描述5.6需求管理5.7需求建模示例第6章面向对象分析6.1软件分析概述6.2面向对象分析建模6.3面向对象分析示例第7章面向对象设计7.1软件设计概述7.2面向对象设计建模7.3系统架构设计7.4系统元素设计7.5面向对象设计示例第8章编码与测试8.1编码概述8.2编码语言与编码工具8.3编码示例8.4测试的基本概念8.5黑盒测试和白盒测试8.6测试用例设计8.7多模块程序的测试策略8.8面向对象系统的测试第9章软件维护9.1软件维护的种类9.2软件可维护性9.3软件维护的实施9.4软件维护的管理9.5软件配置管理第10章软件复用软件复用的基本概念第11章软件工程管理11.1软件管理的目的和内容11.2项目进度安排第12章软件质量管理软件质量保证、质量认证、可靠性的概念,CMM基本概念,软件质量标准体系。
第3章 结构化需求分析
为了开发出真正满足用户需求的软件 产品,首先必须知道用户的需求。 产品,首先必须知道用户的需求。
教学目的
掌握需求分析的任务 理解E-R图、数据流图、数据字典的编制 理解 图 数据流图、 理解解需求规格说明的制作
对软件需求的深入理解是软件开发工 作获得成功的前提和关键, 作获得成功的前提和关键,不论我们把设 计和编码工作做得如何出色, 计和编码工作做得如何出色,不能真正满 足用户需求的程序只会给用户带来失望, 足用户需求的程序只会给用户带来失望, 给开发者带来烦恼。 给开发者带来烦恼。
在非正式的访谈中, 在非正式的访谈中,将提出一些可以 自由回答的开放性问题, 自由回答的开放性问题,以鼓励被访问的 人员表达自己的想法,例如, 人员表达自己的想法,例如,询问用户为 什么对目前正在使用的系统感到不满意。 什么对目前正在使用的系统感到不满意。
当需要调查大量人员的意见时, 当需要调查大量人员的意见时,向被 调查的人员分发调查表是一个十分有效的 做法。 做法。
在对用户进行访谈的过程中使用情景 分析技术往往非常有效。 分析技术往往非常有效。所谓情景分析就 是对用户运用目标系统解决某个具体问题 是对用户运用目标系统解决某个具体问题 的方法和结果进行分析。 的方法和结果进行分析。
3.2.2 术
简易的应用规格说明技
这种方法提倡用户与开发者密切合作, 这种方法提倡用户与开发者密切合作, 共同标识问题,提出解决方案的要素, 共同标识问题,提出解决方案的要素,商 讨不同的方法并指定基本的需求。今天, 讨不同的方法并指定基本的需求。今天, 简易的应用规格说明技术已经成为信息系 统界使用的主流技术。 统界使用的主流技术。
快速原型应该具备的第二个特性是 容易修改” “容易修改”。如果原型的第一版不是用 户所需要的, 户所需要的,就必须根据用户的意见迅速 地修改它,构建出原型的第二版, 地修改它,构建出原型的第二版,以更好 地满足用户的需求。 地满足用户的需求。
第3章 结构化分析建模
3.3 功能建模
• 招生系统的分层数据流图
3.3 功能建模
• 数据流图的分层示意图
3.3 功能建模
• 实例研究
银行储蓄系统的业务流程: 储户填写的存款单或取款单由业务员键入系统; 如果是存款则系统记录存款人姓名、住址(或电话 号码)、身份证号码、存款类型、存款日期、到期 日期、利率、密码(可选)等信息,并印出存单给 储户; 如果是取款而且开户时留有密码,则系统首先核对 储户密码,若密码正确或存款时未留密码,则系统 计算利息并印出利息清单给储户。 要求画出分层的数据流图,并细化到2层数据流图。
第2部分 结构化软件开发方法
第3章 结构化分析建模
3.1 软件需求分析阶段的任务
• 可以把软件需求分析阶段的工作分为4个步骤,即 获取需求、分析需求、定义需求和验证需求,如 图所示。
软件需求分析阶段的工作步骤
3.1 软件需求分析阶段的任务
• 需求获取
通过启发、引导从客户(或用户)那里得到的原始 需求是他们的业务要求(needs),简称为N。 这是分析之前获取的需求,其中可能存在一些实际 问题,这些问题只有通过分析才能得到解决,直接 把获取的需求作为软件设计阶段的依据将会导致严 重的后果。
3.6 数据字典
• 词条描述
对于在数据流图中每一个被命名的图形元素均加 以定义; 其内容包括图形元素的名字,图形元素的别名或 编号,图形元素类别(如加工、数据流、数据文 件、数据元素、数据源点或数据汇点等)、描述、 定义、位臵等。
3.6 数据字典
• 数据流词条
数据流是数据结构在系统内传播的路径,数据流词 条应包括以下几项内容。 ①数据流名:要求与数据流图中该图形元素的名字一致。
管理员基本信息收发室挂号邮件管理系统教师基本教师基本信息邮件基本信息教师教师邮件到邮件到达信息管理员管理员学生邮件到达信息收发室挂号邮件管理系统邮局邮件收发单学生基本信息日期时间教师学生时钟作业?画出收发室挂号邮件管理系统的下一层数据流图作业?画出收发室挂号邮件管理系统中的er图任选五个数据元素用定义式进行数据定义
《软件工程实用教程》第3_章_结构化需求分析
第3 章 結構化需求分析
(2)分析與綜合 從資訊流和資訊結構出發,逐步細化軟 體的所有功能,找出系統各個元素之間 的聯繫、介面特性和對設計的限制,判 斷是否存在因片面性或短期行為而導致 的不合理需求,判斷是否有用戶尚未提 出的確實有價值的潛在需求,從而提出 其中不合理的部分,增加真正需要的部 分。
第3 章 結構化需求分析
2.系統需求:系統需求是比用戶需求更具有技 術特性的需求陳述,是提供給開發者或用戶 方技術人員閱讀的,並將作為軟體開發人員 設計系統的起點與基本依據。系統需求需要 對系統的功能、性能、數據等方面進行規格 定義。
第3 章 結構化需求分析
(1)功能需求 功能需求是軟體系統的最基本的需求表述,包 括對系統應該提供的服務,如何對輸入做出 反應,以及系統在特定條件下的行為描述。 在某些情況下,功能需求還必須明確系統不 應該做什麼,這取決於開發的軟體類型、軟 體未來的用戶、以及開發的系統類型。所以, 功能性的系統需求,需要詳細地描述系統功 能特徵、輸入和輸出介面、異常處理方法等。
第3 章 結構化需求分析
需求開發活動: 將系統級的需求分為幾個子系統,並 將需求中的一部份分配給軟體組件。 瞭解相關品質屬性的重要性。 商討實施優先順序的劃分。 將所收集的用戶需求編寫成規格說明 和模型。 評審需求規格說明
第3 章 結構化需求分析
需求管理活動包括: 定義需求基線 評審提出的需求變更、評估每項變更 的可能影響從而決定是否實施它。 以一種可控制的方式將需求變更融入 到專案中。 使當前的專案計畫與需求一致。 估計變更需求所產生影響並在此基礎 上協商新的承諾(約定)。
第3 章 結構化需求分析
本章學習內容: 1.掌握需求分析的基本概念 2.明確需求分析應遵循的原則 3.掌握如何使用需求獲取技術來進行數據 採集 4.掌握結構化分析的思想與過程 5.掌握數據流建模技術
第3章 管理信息系统的开发方法与开发方式
2.CASE的功能
解决了从客观对象到软件系统的映射问题,支 持系统开发的全过程计算机化 提高了软件质量和软件重用性 加快了软件开发速度 简化了软件开发的管理和维护 自动生成开发过程中的各种软件文档 着重于分析与设计,具有设计可重用性等。
第3章 管理信息系统的开发方法与开发方式
本章主要内容: MIS开发方法(结构化系统开发方法、 原型法) 系统开发方式
3.1系统开发方法
常用的管理信息系统开发方法有: 结构化生命周期法
原型法
面向对象法 计算机辅助软件工程法(CASE)
3.1.1 结构化生命周期法
又称结构化开发方法
详细调查
分析当前系统 新系统设想 修改
审核分修改
审核设计说明书
程序设计
修改
调试 修改
系统试运行
系统评价
系统转换
运行、维护 维护评价
结构化生命周期法的开发过程
3.结构化系统开发的优缺点
1)结构化生命周期法的主要优点:
建立面向用户的观点 严格区分工作区间 设计方法结构化 文件标准化和文献化
4.CASE的优点
提高生产率 提高质量
提高文档的质量
减少系统维护的费用和精力
3.2 系统开发的方式
3.2.1 自行开发方式
用户依靠自己的力量独立完成系统开发的各 项任务 3.2.2 委托开发方式 企业将开发项目完全委托给开发单位,系统 建成后再交付企业使用
3.2.3
第3章_结构化分析与设计
OPERATION & MAINTENANCE
2. SA与SD的流程 结构化分析(工具:DFD、PSPEC)→ 分析模型(分层DFD图)+SRS →
结构化设计(工具:SC图) →初始设计模型(初始SC图) →最终设计模型(最终SC图)
注: 数据流图(DFD,Data Flow Diagram) 加工说明(PSPEC,Process SPECification) 软件需求规格说明书”( SRS , Software Requirement
SA法概述
一、SA法的基本思想 结构化分析方法的基本思想是“分解”和“抽象”。
x
分解:对于一个复杂的系
统,为了将复杂性降低到可
1
3
2
以掌握的程度,可以把大问 题分解成若干小问题,然后 分别解决(如右图)。
1.1
1.2
1.3
2.1 2.3
2.2
1.1 1.3
抽象:分解可以分层进行,即先考虑问题最本质
环结构。 ●在需求分析中,常常用一组DFD图由粗到细
地表示不同级别上的功能模型,称之为分层数 据流图。
(2)数据字典(DD) 数据字典的作用:对软件系统中的每个 数据规定一个定义条目,以保持数据在系 统中的一致性。 出现在软件中的数据可分为3种情况: ①只含一个数据的数据项; ②由多个数据项组成的数据流; ③数据文件。
它是形成需求说明书、进行软件设计的基础。
② 编写需求规格说明书(SRS) 在完全弄清用户对软件系统的确切要求的基 础上,用“需求规格说明书”( SRS)把用户 的需求表达出来。 需求规格说明书为开发人员和用户提供软件 开发完成时质量评价的依据。 ●SRS应该具有准确性; ●SRS应该防止二义性; ●SRS应该直观、易读、易于修改。
第3章 顺序结构程序设计
知识链接
分析:此程序主要是格式化输入函数scanf的运 实践 用,要熟练掌握scanf函数的使用方法 理论
目标
知识链接
/*案例3-4 */
运行结果
实践 理论 目标
实践任务
任务5:分析下面程序运行结果 /*案例3-5 */
#include <stdio.h> main() { double a,b,c; scanf("%lf,%lf",&a,&b ); c=a*b; printf("\na*b=%lf*%lf=%le\n",a,b,c); }
数据的输入/输出
计算机对程序的执行过程可以总结成一句话,即输 入数据—处理数据—输出数据。一般一个很小的程序都 要具备数据的输入输出功能。在C语言中,C本身不提供 输入输出语句,C所有数据的输入/输出都是由库函数完 成的。例如printf函数和scanf函数,同学们不要误认为 它们是C语言提供的“输入输出”语句,实际上它们是函 数名。 C提供的函数以库的形式存放在系统中,它们不是C 语言文本中的组成部分。在使用C语言库函数时,要用预 编译命令#include将有关“头文件”包括到源文件中去。 格式为:#include<stdio.h>或#include“stdio.h”。但考 虑到printf和scanf函数使用频繁,系统允许在使用这两 个函数时可以不加#include命令。
知识链接
程序执行情况
分析:此程序主要是练习putchar和getchar函数的 使用。
实践 目标
理论
理论知识
1 2 3 4
C言语句 赋值语句 程序的3种基本结构 数据的输入/输出
实践 理论 目标
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
加工说明
数据流图 (DFD)
图3.5
SA模型的组成
●早期的(传统的)结构化分析模型是面向
数据流的,采用“自顶向下、逐层分解”的
分析策略,以数据字典(DD, Data Dictionary)、数据流图(DFD,Data Flow Diagram)、和加工说明(PSPEC, Process SPECification)为主要工具,建立系统的逻辑 模型(功能建模)。
●软件开发是要实现目标系统的物理模型。需求分析 的任务就是借助于当前系统的逻辑模型导出目标系统 的逻辑模型,解决目标系统“做什么”的问题。
怎么做 当前系统
做什么 抽象化 逻辑模型 导 出
模型化
物理模型
目标系统
具体化
A模型的组成
数据对象说明 实体联系图 (E-R图) 数据 字典 DD 状态变换图 (STD) 控制说明
3. 基本任务与指导思想 (1)结构化分析 ●SA有两个主要任务: ①建立分析模型 通过对问题及其环境的理解、分析和综合, 建立分析模型。该模型包括问题所涉及的信 息流、功能、性能、用户界面及设计约束等, 它是形成需求说明书、进行软件设计的基础。
②编写需求规格说明书(SRS) 在完全弄清用户对软件系统的确切要求的基 础上,用“需求规格说明书”( SRS)把用户 的需求表达出来。 需求规格说明书为开发人员和用户提供软件 开发完成时质量评价的依据。 ●SRS应该具有准确性; ●SRS应该防止二义性; ●SRS应该直观、易读、易于修改。
各班学生用书表
教材存量表
图3.7 教材销售系统的数据流图
② DFD的性质
●DFD 不能表示控制结构,如选择结构
或循环结构。
●在需求分析中,常常用一组DFD图由粗
到细地表示不同级别上的功能模型,称之
为分层数据流图。
(2)数据字典(DD) ●数据字典的作用: 对软件系统中的每个
(2)结构化设计 ①软件设计分两个阶段完成: 软件设计 = 总体设计 + 详细设计 ●总体设计又称概要设计,进行总体结构设 计和系统接口设计,把用数据流图(DFD)表 示的系统分析模型转换为用结构图(SC )表示 的系统结构模型。 ●详细设计用以确定各个软件组件(模块)的 操作(算法)和数据结构。
③ SA的主要指导思想 ●抽象与分解 ( Abstraction and decomposition ) 抽象(Abstraction)是控制复杂性的基本策略 之一。在软件工程中,从系统定义到实现,每 进展一步都可以看做是对软件解决方法的抽象 化过程的一次细化。在软件需求分析阶段,在 最高抽象级别上,用“做什么”来描述问题。 然后不断具体化(分解)。抽象的层次愈低, 呈现的细节愈多。
●扩充后的结构化分析模型,将建模技术扩展 到数据建模和行为建模,以数据字典(DD, Data Dictionary)、实体-联系图( Entity Relation Diagram, E-R图)、状态-迁移图(State
Transform Diagram , STD)等为工具,从不同
视点建立系统的分析模型。
书
学 生
图3.2 学生购买教材的逻辑模型(当前系统)
购书 学 单 审查并 开发票 生
发票 开 领书单
领书单
发书
书
学 生
图3.3 目标系统的逻辑模型
第三步:编写需求规格说明书。 第四步:验证需求,完善和补充对目标系统的 描述。
无效书单
学 生
购书单
发票
领书单 开 领书单
审查并 开发票
学 生
图3.4 改进了的目标系统逻辑模型
●结构化设计(工具:SC图) →初始设计模型(初始SC图)
→最终设计模型(最终SC图)
注: ▲ DFD:数据流图(Data Flow Diagram) ▲ PSPEC:加工说明(Process SPECification) ▲ SRS:软件需求规格说明书 ( Software Requirement Specification) ▲ SC:结构图( Structure Chart )
第3章
结构化分析与设计
3.1 概述
3.1.1 结构化分析与设计的由来 1. 瀑布模型的首次实践 结构化分析 (SA, Structured Analysis)
与结构化设计 (SD, Structured Design) 是瀑布模型的首次实践。
2. SA 与 SD 的流程 ●结构化分析( 工具: DFD、PSPEC )→ 分析模型( 分层DFD图 ) + SRS
购书 申请 购书 证明 购书 发票 领书 单
张 秘书
王 会计
李 出纳
赵 保管
书
学 生
图3.1 学生购买教材的当前系统模型(物理模型)
第二步:分析需求,建立系统分析模型(逻辑模 型),包括当前系统和目标系统的逻辑模型。
有效 购书单 审查 有效性 开 发票
学 生
购书 单
购书 发票
开领 书单
领书 单 发书
●本课程主要讲述传统的结构化分析模型
2. SA模型的描述工具 ●传统的结构化分析采用3种描述工具: 数据流图(DFD)、数据字典(DD) 和 加 工规格说明(PSPEC)。
(1) 数据流图(DFD) ① 组成符号(数据流图中的 4 种图形元素) 加工 (Prosess):对数据流进行操作或变换。 数据流(Data Flow):数据在系统内传播的路径。
数据源点或终点 (又称外部实体:系统外的 人员或组织)
数据文件(Data File 或Data Store): 文件与加 工之间的数据流可以不命名;从文件流出的 数据流表示读文件或查询文件; 流向文件的 数据流表示写文件或修改文件。
无效书单 学 生
购书单
审查并 开发票 1
发票
开 领书单 2
领书单 学 生
② SC 图分两步完成: 初始设计模型(初始SC图) →最终设计模型(最终SC图) 初始SC图 总体设计 最终SC图 软件设计 详细设计 : 完成模块说明 ③软件设计的指导思想 ●分解与细化 采用“自顶向下、逐步细化(Top-Down Stepwise Refinement )”的开发方法。
3.1.2 SA模型的组成与描述 例3.1 教材销售系统 第一步: 通过对现实环境的调查研究 , 获取当前系统的 具体模型(物理模型) 。 学 生