软件需求分析(第三章)
第三章需求分析

1.在软件需求规范中,下述哪些要求可以归类为过程要求( )A. 执行要求B. 效率要求C. 可靠性要求D. 可移植性要求2.在软件需求分析和设计过程中,其分析与设计对象可归结成两个主要的对象,即数据和程序,按一般实施的原则,对二者的处理应该( )A. 先数据后程序B. 与顺序无关C. 先程序后数据D. 可同时进行3.在下面的叙述中哪一个不是软件需求分析的任务( )A. 问题分解B. 可靠性与性要求C. 结构化程序设计D. 确定逻辑模型4.进行需求分析可使用多种工具,但( )是不适用的。
A. 数据流图(DFD)B. 判定表C. PAD图D. 数据字典5.在软件的需求分析中,开发人员要从用户那里解决的最重要的问题是( )A. 要让软件做什么B. 要给该软件提供哪些信息C. 要求软件工作效率怎样D. 要让软件具有何种结构6.软件需求分析阶段的工作,可以分为四个方面:对问题的识别.分析与综合.编写需求分析文档以及( )A. 软件的总结B. 需求分析评审C. 阶段性报告D. 以上答案都不正确7.各种需求分析方法都有它们共同适用的( )A. 说明方法B. 描述方式C. 准则D. 基本原则8.数据流图是常用的进行软件需求分析的图形工具,其基本图形符号是( )A. 输入.输出.外部实体和加工B. 变换.加工.数据流和C. 加工.数据流.数据存储和外部实体D. 变换.数据存储.加工和数据流9.判定表和判定树是数据流图中用以描述加工的工具,它常描述的对象是( )A. 逻辑判断B. 层次分解C. 操作条目D. 组合条件10.试判断下列叙述中,哪个(些)是正确的( )a.软件系统中所有的信息流都可以认为是事务流b.软件系统中所有的信息流都可以认为是变换流c.事务分析和变换分析的设计步骤是基本相似的A. aB. bC. cD. b和c11.决定大型程序模块组织的基本原则的两种交替设计策略为( )A. 面向用户的原型化和面向的原型化B. 物理模型与逻辑模型C. 数据字典和数据流D. 数据分解和算法分解12.在程序的描述与分析中,用以指明数据来源.数据流向和数据处理的辅助图形是( )A. 瀑布模型图B. 数据流图C. 图D. 业务流13.数据流图是用于表示软件模型的一种图示方法,在下列可采用的绘制方法中,哪些是常采用的( )a.自顶向下b.自底向上c.分层绘制d.逐步求精A. 全是B. a,c和dC. b,c和dD. a和c14.结构化分析(SA)方法将欲开发的软件系统分解为若干基本加工,并对加工进行说明,下述是常用的说明工具,其中便于对加工出现的组合条件的说明工具是( )a.结构化语言b.判定树c.判定表A. b和cB. a,b和cC. a和cD. a和b15.加工是对数据流图中不能再分解的基本加工的精确说明,下述哪个是加工的最核心( )A. 加工顺序B. 加工逻辑C. 执行频率D. 激发条件16.在结构化分析方法中,用以表达系统内数据的运动情况的工具有( )A. 数据流图B. 数据字典C. 结构化语言D. 判定表与判定树17.在结构化分析方法中,用状态--迁移图表达系统或对象的行为。
软件系统的需求分析

层次,将该子系统继续进行分解,直到分解成的
各级子系统都能清楚明白地表示出它的具体含义 为止。
22
两种不同方向的分解的示意图
系统S 系统S 子系统 Si
子系统 S1
子系统 S2
子系统 Sn
子系统 Sj
图3-1 横向分解
图3-2 纵向分解
23
但这并不等于说问题分解得越小越好,因为 在划分的同时,与各个子系统相关的联系接口和 管理工作量也随之增加,导致总工作量的上升, 分析设计工作付出的代价也就上升了。分解后各 子系统的代价和将各个子系统综合起来的代价曲 线如图3-3所示。
经理:“业务人员都在招商。他们非常忙,没 有时间与你们详细讨论各种细节。你能不能说明一 下你们现有的系统?”
9
第一节 需求分析的任务
引题(小事例)
分析员尽量解释从用户处收集需求的合理性: “如果我们只是凭空猜想用户的要求,结果不会令 人满意。我们只是软件开发人员,而不是采购专家、 营运专家或是财务专家,我们并不真正明白您这个 企业内部运营需要做些什么。我曾经尝试过,未真 正明白这些问题就开始编码,结果没有人对产品满 意。” 经理坚持道:“行了,行了,我们没有那么 多的时间。让我来告诉您我们的需求。实际上我也 很忙。请马上开始开发,并随时将你们的进展情况 告诉我。”
1. 需求分析的作用和用户要求
1.1 需求分析的作用:
10
软件系统的需求分析就是把软件计划期间建立 起来的(以用户要求为主的)系统需求描述求精和 细化,将软件的功能和性能的总体概念,描述为具 体的系统规格说明书,这是进行软件开发和系统验 收的依据和基础。 不同系统模型的抽象描述会导致不同风格的系 统需求规格说明。虽然在可行性分析研究阶段已经 粗略的描述了用户的需求,甚至还提出了一些可行 的方案,但是,许多细节被忽略了,在最终目标系 统中是不能忽略、遗漏任何一个微小细节的,所以, 可行性研究不能代替需求分析。
软件工程PPT课件第3章 软件需求分析

–多个来回
6
软件需求分析的通信途径
7
分析建模
结构化分析模型 面向对象分析模型 分析模型描述工具
DFD、DD和PSPEC(加工规约)
CFD、CSPEC(控制规约)和STD E-R图 用例图,对象-关系图,对象-行为图
8
结构化分析模型
数据对象 说明 E-R图 加工说明 DFD图
44
数据流图
数据流图(DFD)是一种图形化技术,它描绘信息
流和数据从输入移动到输出的过程中所经受的变换 。 在数据流图中没有任何具体的物理部件,它只是 描绘数据在软件中流动和被处理的逻辑过程。 数据流图是系统逻辑功能的图形表示,即使不是 专业的计算机技术人员也容易理解它,因此是分析 员与用户之间极好的通信工具。 此外,设计数据流图时只需考虑系统必须完成的 基本逻辑功能,完全不需要考虑怎样具体地实现这 些功能。
2
需求分析的结构化分析方法准则
(1) 必须理解并描述问题的信息域,根 据这条准则应该建立数据模型。 (2) 必须定义软件应完成的功能,这条 准则要求建立功能模型。 (3) 必须描述作为外部事件结果的软件 行为,这条准则要求建立行为模型。 (4) 必须对描述信息、功能和行为的模 型进行分解,用层次的方式展示细节。
40
分析模型的元素
数据字典(DD):模型核心(中心库) E-R图(ERD): 数据流图(DFD)
指明数据在系统中移动时如何被变换; 描述对数据流进行变换的功能;
DFD中每个功能的描述包含在加工规约 (小说明)。
状态变迁图(STD)
指明作为外部事件的结果,系统将如何 动作。
41
3.4.2 数据建模
4
需求分析的任务和步骤
第3章 需求分析-软件工程案例教程(第2版)-李军国-清华大学出版社

可行性研究的任务和目的
➢ 用最小的代价在尽可能短的时间内确 定问题是否能够解决。
➢ 确定问题是否能够解决和值得解决。 ➢ 分析可能的利弊关系。
➢ 对行动方针提出建议(是否可行)。
7
可行性研究的时间与成本
➢ 可行性研究实质上是在较高层次上以抽 象方式进行系统分析和设计的过程。
➢ 可行性研究需要的时间长短取决于工程 的规模。
仔细阅读和分析有关的材料,改正含糊或不正确的叙述, 清晰的描述目标系统。
➢ 识别用户的真正要求?(访问关键人员) ➢技术现状如何? (系统调研) ➢系统配置如何? (分析有关的材料) ➢系统维护能力如何? (系统调研) ➢ 系统配置与外部环境的接口什么样?(限制和约束) ➢ 技术上的风险有哪些? ➢ 是否具备技术资源? ➢ 开发人员是否得到培训? ➢ 是否存在法律责任和政治风险?
21
系统分析的内容
1. 环境分析 2. 物理分析 3. 功能分析 4. 信息分析 5. 动态分析
➢ 了解业务活动状况,特别是活动要点的分析。 ➢ 明确这些要点间什么在流动,如何流动。 ➢ 对物理流量进行分析。 ➢ 模型化,得到实际业务系统的物理模型。
22
系统分析的内容
1. 环境分析 2. 物理分析 3. 功能分析 4. 信息分析 5. 动态分析
➢ 了解系统应解决的问题是什么? ➢ 这些问题是如何提出的? ➢ 了解问题的结构。 ➢ 这些问题如何解决才能满足用户的要求?
17
案例: (库存管理)
找出问题
➢不能及时获得库存信息 ➢库存信息不够准确 ➢无法及时了解车间对库存商品的需求情况
18
系统分析过程
① 分析现实世界,充分理解当前系统,并用一个具体模 型描述,获得当前系统的物理模型。
第03章 软件需求分析

软件需求分析
一、需求分析的任务
二、分析过程
三、概念模型和规范化
四、软件需求分析工具
五、验证软件需求
六、小结
一、需求分析的任务
仍然回答“What”,而不是“How”, 但更细致、精确(合同的拟定)
可行性分析 DFD DD 功能具体化 需求规格说明 加细 DFD DD 算法 描述 IPO
Final stage of Definition phase
2、范式
通常用范式来消除数据冗余的程度。第一范式(1NF)数据冗余程 度最大,第五范式(5NF)数据冗余程度最小。 范式太高,存在的缺点为(1) 存储过程复杂;(2)稳定性较差; (3)性能下降。较为理想是选用第三范式。 ※ 第一范式:每个属性值都必须是原子值(不可再分的数据项)。例 如:下表(表3-1)是满足第一范式的关系数据库(W)。 日期 95.05 95.05 95.05 95.05 95.06 95.06 95.06 95.06 工号 101 102 103 104 101 102 103 104 姓名 丁一 王二 张三 李四 丁一 王二 张三 李四 工种 车工 车工 钳工 电工 车工 车工 钳工 电工 定额 80 80 75 70 80 80 75 70 超额 22% 17% 14% 20% 19% 25% 16% 26% 车间 金工 金工 动力 动力 金工 金工 动力 动力 车间主任 李明 李明 赵杰 赵杰 李明 李明 赵杰 赵杰
101 102 103 104
丁一 王二 张三 李四
车工 车工 钳工 电工
80 80 75 70
金工 金工 动力 动力
李明 李明 赵杰 赵杰
表3-3
W2关系数据库
表3-2 W1关系数据库
《软件工程》第3章 软件需求分析

【本章重点】 本章重点】
需求分析的方法 ; 需求分析的任务和原则 ;
【教学目标】 教学目标】
掌握需求分析的基本概念; 掌握需求分析的基本概念; 掌握如何使用需求获取技术来进行数据采集; 掌握如何使用需求获取技术来进行数据采集; 掌握结构化分析的思想与过程; 掌握结构化分析的思想与过程; 掌握数据流建模技术。 掌握数据流建模技术。
3.2 面向数据流的分析方法
3.2.2 数据流图
1.数据流图中的主要图形元素
3.2 面向数据流的分析方法
2.分层的数据流图
在多层数据流图中,可以把顶层数据流图、 在多层数据流图中,可以把顶层数据流图、底层数 据流图和中间层数据流图区分开来。顶层数据流图仅 据流图和中间层数据流图区分开来。 包含一个加工,它代表被开发系统。 包含一个加工,它代表被开发系统。它的输入流是该 系统的输入数据,输出流是系统的输出数据。顶层数 系统的输入数据,输出流是系统的输出数据。 据流图的作用在于表明被开发系统的范围, 据流图的作用在于表明被开发系统的范围,以及它和 周围环境的数据交换关系。 周围环境的数据交换关系。底层数据流图是指其加工 不须再做分解的数据流图,其加工称为“原子加工” 不须再做分解的数据流图,其加工称为“原子加工”。 中间层数据流图则表示对其上层父图的细化。 中间层数据流图则表示对其上层父图的细化。它的每 一个加工可以继续细化,形成子图。 一个加工可以继续细化,形成子图。中间层次的多少 视系统的复杂程度而定。 视系统的复杂程度而定。
3.2 面向数据流的分析方法
4.数据流图的优缺点
总体概念强,每一层都明确强调“干什么” 总体概念强,每一层都明确强调“干什么”,“需要 什么” 给出什么” 什么”,“给出什么”; 可以反映出数据的流向和处理过程; 可以反映出数据的流向和处理过程; 由于自顶向下分析, 由于自顶向下分析,容易及早发现系统各部分的逻辑 错误,也容易修正; 错误,也容易修正; 容易与计算机处理相对应; 容易与计算机处理相对应; 不直观,一般都要在作业流程分析的基础上加以概括、 不直观,一般都要在作业流程分析的基础上加以概括、 抽象、 抽象、修正来得到
第三章 软件工程 需求分析-基础部分

3.1.4 需求分析的过程
分析与综合 从信息流和信息结构出发,逐步细化所有的软件功能, 从信息流和信息结构出发,逐步细化所有的软件功能,找 出系统各元素之间的关联,接口特性和设计上的约束, 出系统各元素之间的关联,接口特性和设计上的约束,分 析它们是否满足功能要求,是否合理. 析它们是否满足功能要求,是否合理.剔除其不合理的部 增加其需要部分.最终综合成系统的解决方案, 分,增加其需要部分.最终综合成系统的解决方案,给出 目标系统的详细逻辑模型. 目标系统的详细逻辑模型. 常用的分析方法 面向数据流的结构化分析方法 面向数据流的结构化分析方法 (SA) 面向数据结构的Jackson方法 面向数据结构的Jackson方法 (JSD) 面向数据结构的结构化数据系统开发方法 面向数据结构的结构化数据系统开发方法 (DSSD) 面向对象的分析方法 面向对象的分析方法 (OOA) 等
16
3.2.1 需求获取技术
需求调查对象 对组织的高层管理者, 对组织的高层管理者,进行组织管理目标或经营方针等 组织战略问题的调查 对中层的管理者, 对中层的管理者,进行全部业务流的调查 对业务工作人员, 对业务工作人员,进行详细业务信息的调查 市场调查 了解市场对待开发软件有什么样的要求; 了解市场对待开发软件有什么样的要求;了解市场上有 无与待开发软件类似的系统 考察现场 了解用户实际的操作环境,操作过程和操作要求. 了解用户实际的操作环境,操作过程和操作要求.对照用 户提交的问题陈述,对用户需求可以有更全面, 户提交的问题陈述,对用户需求可以有更全面,更细致的 认识. 认识. 观察用户工作流程 用户和开发人员共同组成联合小组
具体化 表 达 需 求
3
目标系统
物理模型
实例化
逻辑模型
软件工程 第3章需求分析

位置:定货报告 定货信息 库存清单
面向数据流方法的分析的应用
6 D1 库存清单 事务 1 包含零件编 号、名称、 目前价格
深入调查
外部输入或系 统生成
3.2.2 面向数据流的自顶向下求精
• 回溯时常遇到的问题:为了得到某个数据元素需要 用到数据流图中还没有的数据元素,或者得出这个 数据元素要用的算法尚不完全清楚。 • 因此,需要向用户等有关人员请教,他们的回答使 分析员对目标系统的认识更深入具体,系统中更多 的数据元素被划分出来,更多的算法搞清楚了。 • 把分析过程中得到的有关数据元素的信息记录在数 据字典中,把对算法的简明描述记录在IPO图中。 通过分析而补充的数据流、数据存储和处理,应该 添加到数据流图的适当位置上。
• 主要目标:把数据流和数据存储定义到元 素级别(不可分解为止)
数据的来源、去 向、数据结构定 义等
可行性 分析忽 略了细 节
3.2.2 面向数据流的自顶向下求精
自顶向下,逐 层细化的方法
• 结构化分析方法是一种什么方法呢? • 从数据流图的输出端着手分析,这是因为系 统的基本功能是产生这些输出的关键原因。 • 输出数据决定了系统必须具有的最基本的组 成元素(包括功能和数据结构组成)。
3.4.1 数据对象
• 它的范畴很大,可以是外部实体(例如,产生 或使用信息的任何事物)、事物(例如,报表)、 行为(例如,打电话)、事件(例如,响警报)、 角色(例如,教师、学生)、单位(例如,会计 科)、地点(例如,仓库)或结构(例如,文件) 等。 • 总之,可以由一组属性来定义的实体都可以 被认为是数据对象。
第3章 需求分析-大纲

第三章需求分析
3.1 需求分析的任务和步骤
——需求分析的任务
……确定对系统的综合要求
……分析系统的数据要求
……建立软件的逻辑模型
——确定对系统的综合要求
……功能性需求
……非功能性需求:可用性,可靠性……
——分析系统的数据要求
……数据字典——定义数据
……层次方框图——定义数据结构
——建立软件的逻辑模型:数据流图、数据字典、实体-联系图、主要算法
——编写软件需求规格说明书
——需求分析评审
3.2 需求获取的常用方法(5个)
——访谈
——问卷调查
——观察用户工作流程
——建立联合分析小组
——快速原型法
3.3 需求分析的方法(4个)
——功能分解法:软件需求当做一棵倒置的功能树
——结构化开发方法:结构化分析、结构化设计和结构化程序设计
——信息建模方法:实体-联系图
——面向对象的分析
3.4 结构化分析技术
——思路:基于数据流图自顶向下逐层分解
3.5 需求分析图形工具
——实体-联系图(Entity-Relationship Diagram)
……实体定义:对软件必须理解的复合信息的抽象
……属性定义:数据对象的性质
……联系定义:数据对象彼此之间相互连接的方式
——数据字典
……定义:数据字典是关于数据的信息的集合,也就是对数据流图中包含的
所有元素的定义的集合。
……四类元素:数据流,数据流分量(即数据元素),数据存储,处理——层次方框图
……定义:用树型结构的一系列多层次的矩形框描绘数据的层次结构。
——IPO图(Input Process Output)。
《软件工程学》第3章 需求分析-答案

3.1 需求分析的任务和步骤1.需求分析阶段产生的文档是软件需求规格说明书。
2.需求分析的任务是要建立软件的逻辑模型。
3.分析系统的数据要求是软件需求分析阶段的一个重要的任务。
4.需求分析的任务不包括(B)。
A.问题分析B.系统设计C.需求描述D.需求评审5.需求规格说明书是在计划时期可行性研究阶段产生的文档。
(×)6.需求分析阶段的成果主要是需求规格说明,但该成果与软件设计、编码、测试直至维护关系不大。
(×)7.软件需求是指用户对目标软件系统在功能、性能、行为、设计约束等方面的期望。
(√ )8.需求分析中的性能要求是指系统的技术性能指标,包括:存储量、响应时间、精确度和安全保密等方面。
(√ )3.2 需求分析获取的常用方法3.3 需求分析的方法3.4 结构化分析技术1.要将一个复杂的系统分析清楚,常用方法的结构化分析方法就是( A )A.面向数据流自顶向下逐步求精的方法B.由内向外进行分析的方法C.先局部后整体的分析方法D.使用IPO图形工具分析的方法2.结构化程序设计的一种基本方法是( D )。
A.筛选法B.递归法C.归纳法D.逐步求精法3.结构化程序设计主要强调的是( A )。
A.程序易读性B.程序的效率C.程序的规模D.程序设计语言的先进性4.下列各种叙述中,哪一个不是结构化方法的特征?( C )A.严格定义需求B.划分开发阶段C.提供运行模型D.制定规范文档5.通常所说的结构化设计(SD)是属于基于( B )的设计方法。
A.数据结构B.数据流C.对象D.以上均可6.通常所说的结构化设计方法就是基于数据流的设计方法。
7.结构化程序设计强调模块采用自上而下逐步求精设计方法,单入口、单出口。
(√ )3.5 需求分析图形工具。
L-第三章-软件工程课件需求分析

教学要求
教学目的:了解需求分析的任务和步骤、评 审标准和过程;掌握基本技术,理解需求规 格说明书的作用与组成。 教学重点:基本技术、需求规格说明书的作 用与组成。 教学难点:基本技术。
7
需求分折简介
软件需求指用户对所开发的软件在功能、 性能、环境、可靠性等各方面的要求。
需求分析主要回答待开发的系统必须 “做什么”,并用 《 需求规格说明书 》 的 形式准确、详细、规范地表达出来。
8
注意
①需求分析阶段,系统分析员的主要关注点 是“做什么( what ) ” ,不是“怎样做 ( how)”; ②需求分析阶段,系统分析员应该给出软件 求规格书。
9
§3.1需求分析的任务
四项主要任务: 1 、确定对系统的综合要求 2 、分析系统的数据要求 3 、导出系统的逻辑模型 4 、修正系统开发计划
34
一、基本概念(2)
联系:客观事物之间的联系。联系分为三种: 一对一( 1 : 1 ) .班级和班长 一对多联系( 1 : N ) .班级和学生,系与教师,学生与宿舍 多对多联系( M : N ) 课程与学生,教师和课程,学生和学会 二、 E 一 R 图的结构 三种基本元素:
35
例:教学E-R图
46
注意的原则 ( 1 )
数据流图上所有图形符号只限于前述四种基本图 形元素; 数据流图的主图必须包括前述四种基本元素,缺 一不可; 数据流图的主图上的数据流必须封闭在外部实体 之间; 每个数据处理至少有一个输入数据流和一个输出 数据流; 在数据流图中,需按层给数据处理框编号。编号 表明该处理所处层次及上下层的亲子关系;
36
例
仓库,职工,零件和供应商的ER图
37
三、如何建立实体一联系图?
第三章 软件需求分析基础

例3. 在例1与例2的基础上,一些可以进一步 思考内容是,一旦已经建立这些信息,就该考 虑针对实现的基本体系结构,那么客户/服务 器方法似乎是合适的,但是它确实属于软件计 划的范围吗?似乎需要一个数据库管理系统, 但是,该数据库系统真的是用户需要的吗?继 续这种评估和综合的过程,直至分析员和客户 均确信针对后面的开发步骤软件确实已被适当 地刻划了。
建立目标系统的逻辑模型:分析目标系统与当 前系统逻辑上的差别,明确目标系统要“做什 么”,从而从当前系统的逻辑模型中,导出目标 系统的逻辑模型。 对目标系统逻辑模型进行补充:具体内容如 用户界面、启动和结束、出错处理、系统输入输 出、系统性能、其他限制等等。
3.需求分析的主要工作
软件需求分析可被划分成5个工作阶段:问题分 析;问题评估和方案综合;建模;规约;复审。 例1. 汽车零件的主要供应商需要一个库存控制 系统,系统分析员发现与当前的手工系统相关 的问题包括:(1)不能快速地获得部件的状况; (2)更新卡片文件需要2至或3天的工作量; (3)由于没有办法查找相关厂商的部件信息, 而使得对同一厂商同一货品多次再订货,等等。 一旦问题被标识出来,系统分析员将确定新系 统该产生什么信息,以及将提供什么信息。
2.建模
我们创建模型,以获得对将要建造的实际实体 有更好的理解。 要对软件变换的信息进行建模、对变换发生的 功能(和子功能)进行建模、以及对变换发生 时的系统行为进行建模。 在软件需求分析阶段,我们创建系统模型,这 些模型着重于描述系统必须做什么而不是如何 去做。 我们常使用图形符号创建模型。
3.1.3分析原则
在过去20年,研究者已经开发出一些实用分析 方法及相应的建模符号,每种分析方法有独特的 观点,然而,所有分析方法都遵循以下操作原则:
《软件需求分析》第3章 需求获取课件

通过简单回答开发人员的询问后,软件开发 人员就能清楚地理解他们的需求,而不需要 花费太多的时间进行讨论;
2023/6/25
15
3.4实地收集需求信息
3. 用户和开发人员都只考虑自己的利益;如: 有些用户由于缺乏使用计算机的经验,导致 产生畏难情绪;有些用户认为开发软件系统 自己的关系不大,对待需求信息的收集工作 采取消极的态度。
4
3.2确定项目的目标和范围
此阶段的基本任务是根据项目目标把项目 相关人员定位到一个共同的和明确的方向上, 并决定软件系统的范围。
项目的范围与项目的目标特别是软件系统 的目标需求是密切相关的。
2023/6/25
5
3.2确定项目的目标和范围
在收集目标需求时,目标需求会来源于各 个不同的人,这些人对要开发的软件系统及该 系统最终能为用户或客户提供哪些价值有比较 清楚的了解。
理。
10)尊重需求工程中开发人员采用的流程(过程)。
2023/6/25
10
3.3确定调查对象
软件需求可来自与各个方面,而且用户类 也不一定都是指人。有时也可以把其它应用系 统或计算机硬件设备和接口等视为附加的用户 类成员,这样就可确定软件系统与哪些外部应 用系统或计算机硬件相关的需求。这就是说需 求信息来源除了来自用户类外,还可来自于其 它方面。
7
3.3确定调查对象
软件系统面临的用户是很多的,而这些用 户由于所在的部门、职责和掌握的知识不同而 存在差异,为了避免忽视和遗漏某些用户的情 况,可以根据用户的某些方面将用户分类。
2023/6/25
8
3.3确定调查对象
在将用户分类后,在分类的基础上进一步 寻找每类用户的代表或联络人,这些人代表了 一个特定的用户类,并可充当该用户类与开发 人员之间的“窗口”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DFD只考虑软件 干什么” DFD只考虑软件“干什么” 只考虑软件“ 不必问“怎样干” 不必问“怎样干”
2011-9-15
3.6 状态转换图
问题: 问题:
如何选择事件? 如何选择事件? 如何描述系统的行为模型? 如何描述系统的行为模型?即: 状态—变迁图(STD)? 状态—变迁图(STD)? 参看教材P38) (参看教材P38)
2011-9-15
4、数据字典(Data Dictionary) 数据字典(
在中立地点举行由开发者和用户双方出席的会议 制定准备会议和参加会议的规则 提出一个议事日程 由“协调人”主持会议 协调人” 使用一种“定义机制” 使用一种“定义机制” 目标是标识问题、提出解决方案要素, 目标是标识问题、提出解决方案要素,商讨不同方 法以及在有利于实现目标的氛围中指定初步需求
2011-9-15
2011-9-15
DFD图中各元素的作用和命名 DFD图中各元素的作用和命名 方法: 方法:
数据存储: 数据存储:
分层数据流图中, 分层数据流图中, 数据存储一般局限 在某一层或某几层; 在某一层或某几层 命名方法与数据流 相似。 相似。
加工: 加工: 顶层的加工名就是 软件项目的名字; 软件项目的名字; 最好使用动宾词组, 最好使用动宾词组, 也可用主谓词组; 也可用主谓词组; 不要使用意义不明 确的动词。 确的动词。
通信途径:访谈、调查、 通信途径:访谈、调查、情景分析
某图书馆系统调查表
编号 1 2 3 4 5 6 7 8 9 2011-9-15
问
题
您在哪个部门工作? 您在哪个部门工作? 您每天必须做哪些事?顺序是什么? 您每天必须做哪些事?顺序是什么? 您每天要处理那些文件、数据、报表? 您每天要处理那些文件、数据、报表? 您感到工作中特别麻烦的事情是什么? 您感到工作中特别麻烦的事情是什么? 工作中什么问题用手工方法解决不了? 工作中什么问题用手工方法解决不了?影响效 率的问题有哪些? 率的问题有哪些? 您认为提高工作效率,节省工作时间, 您认为提高工作效率,节省工作时间,减轻工 作强度可采取哪些办法? 作强度可采取哪些办法? 您的部门需要成本核算和统计的内容有哪些? 您的部门需要成本核算和统计的内容有哪些? 您的部门采用计算机管理工作情况如何? 您的部门采用计算机管理工作情况如何? 如何改进业务流程使之更合理? 如何改进业务流程使之更合理?
2011-9-15
职称 教师 性别 姓名
职工号
姓名 学分 教
性别 学生 学
学号 系 年级 成绩
课程 教学ER图 课程号 课名 学时 学分
2011-9-15
信息变换
输入信息 外部实体 输入信息 外部实体 输出信息 信息流模型 信息流模型
2011-9-15
输出信息 基于 计算机 的系统
外部实体 输出信息 外部实体 外部实体
2011-9-15
数据字典完成以下任务: 数据字典完成以下任务:
词条描述; 词条描述; 数据结构描述; 数据结构描述; 加工逻辑说明。 加工逻辑说明。
数据字典包含以下信息: 数据字典包含以下信息:
所有元素的名称:(数据流、数据项、 所有元素的名称:(数据流、数据项、 :(数据流 加工和数据存储) 加工和数据存储) 别名 使用位置和作用 内容描述 补充信息(数据类型、预设值、限制等) 补充信息(数据类型、预设值、限制等)
2011-9-15
示例
去掉具体模型中的非本质因素, 去掉具体模型中的非本质因素, 抽象出当前系统的 抽象出当前系统的逻辑模型
购 书 申 学 请 生 购 书 单 审查 开 发 票 开领 领 书 单 书 学 生
当前系统逻辑模型
2011-9-15
示例
分析当前系统与目标系统的差别, 分析当前系统与目标系统的差别,建立 目标系统的 目标系统的逻辑模型 学 审查并 发票 生 开发票 无效书单 购书单 领书单 学 生
第三章 结构化分析
(Structured Analysis,SA)
本章要解决的问题: 本章要解决的问题:
软件需要“做什么”? 如何描述“做什么”? 即:需求分析的基本概念、任务、 原则和方法是什么?
2011-9-15
需求分析的任务
需求分析是对问题进一步发现、求精、建模、 需求分析是对问题进一步发现、求精、建模、 发现 规格说明和复审的过程 的过程。 规格说明和复审的过程。
2011-9-15
分析模型的结构
软件需求规格说明的原则
从现实中分离功能,即描述要“做什么” 从现实中分离功能,即描述要“做什么” 而不是“怎样实现” 而不是“怎样实现” 要求使用面向处理的规格说明语言( 要求使用面向处理的规格说明语言(或称 系统定义语言) 系统定义语言) 如果被开发软件只是一个大系统中的一个 元素, 元素,那么整个大系统也包括在规格说明 的描述之中
准确地定义未来系统的目标,确定为了满 足用户的需求,系统必须“做什么”。 “做什么” 用 <需求规格说明书> 规范的形式准确地 描述用户的需求。
做什么(what) 怎么做(how) 做什么(what) ≠怎么做(how)
2011-9-15
任务:
描述软件的功能和性能 确定软件设计的约束、 确定软件设计的约束、软件同其它 系统元素的接口细节 定义软件的其它有效性需求 如何完成任务? 如何完成任务?
2011-9-15
3.2 与用户通信技术(需求获取)
如何从用户得到完整且正确的 需求? 需求?
2011-9-15
存在的问题:
专业差距 人与人之间的通信方式 需求的不断变化
2011-9-15
需求获取方法 建立分析所需要的通信途径, 建立分析所需要的通信途径,以保证能顺 利地对问题进行分析。 利地对问题进行分析。
DFD仅仅是一种流模型, DFD仅仅是一种流模型,其符号本身并不 仅仅是一种流模型 能充分地描述软件的需求。 能充分地描述软件的需求。 数据字典用于精确地定义系统中每一个数 据对象和控制信息的特性。 据对象和控制信息的特性。数据字典与数 据流图配合, 据流图配合,能清楚地表达数据处理的要 求,使用户和分析员对系统中每一个环节 的输入、输出和存储有共同的理解。 的输入、输出和存储有共同的理解。 数据字典是描述数据信息的集合。 数据字典是描述数据信息的集合。
2011-9-15
规格说明必须包括系统运行环境 规格说明必须是一个认识模型 规格说明必须是可操作的 规格说明必须容许不完备性并允许扩充 规格说明必须局部化和松散耦合
2011-9-15
3.4实体 关系图 实体-关系图 实体 (Entity-Relation Diagram)
数据模型包含的三种相互关联的信息: 数据模型包含的三种相互关联的信息: 数据对象 数据属性 数据对象之间的关系 ERD(实体-关系)图是数据建模的基础, ERD(实体-关系)图是数据建模的基础, 简单明了地表达了三种相互关联的信息。 简单明了地表达了三种相互关联的信息。
录取通知
确定 名额
确定退档
考生档案
高考招生录取数据流程图(录取部分)
2011-9-15
2011-9-15
注意: 注意: 用名词,不要使用意义不明确的名词 用名词 不要使用意义不明确的名词 尽量使用现实系统已有的名字,命名困难 尽量使用现实系统已有的名字 命名困难 时要考虑数据流划分是否恰当。 时要考虑数据流划分是否恰当。 不要把控制流作为数据流
2011-9-15
2011-9-15
结构化分析是一种建模的活动
准则: 准则:
必须理解和表示问题的信息域, 必须理解和表示问题的信息域,根据这条准则 应该建立数据模型 数据模型; 应该建立数据模型; 必须定义软件应完成的功能, 必须定义软件应完成的功能,这条准则要求建 功能模型; 立功能模型; 必须表示作为外部事件结果的软件行为, 必须表示作为外部事件结果的软件行为,这条 准则要求建立行为模型 行为模型; 准则要求建立行为模型; 必须对描述信息、功能和行为的模型进行分解, 必须对描述信息、功能和行为的模型进行分解, 用层次的方式展示细节; 用层次的方式展示细节; 分析过程应该从要素信息移向实现细节; 分析过程应该从要素信息移向实现细节;
2011-9-15
模型转换过程
2011-9-15
示例
学生购买教材系统模型转换: 学生购买教材系统模型转换:
购 领 购 书 发 书 书 申 票 书 单 单 请 教务科 会计室 出纳员 库房 107 206 206 303 王 刘 李 赵
通过对现实环境的调查,获得 通过对现实环境的调查, 当前系统的 当前系统的物理模型
打印 书单
计算机售书系统的逻辑模型
2011-9-15
逻辑模型 物理模型 (本质模型、概念模型 (实施模型、技术模型 本质模型、 实施模型、 本质模型 概念模型) 实施模型 技术模型)
现 行 系 统 目 标 系 统
描述重要的业务功 描述现实系统是如何 在物理上实现的。 能,不管系统是如 在物理上实现的。 何实施的。 何实施的。 描述新系统的主要 业务功能和用户新 的需求, 的需求,无论系统 应如何实施。 应如何实施。 描述新系统是如何实 施的(包括技术)。 施的(包括技术)。
2011-9-15
无输入
举例:以下是错误的表示! 举例:以下是错误的表示! 无输出
数据源 加工 数据源 数据源
数据存储 数据存储
2011-9-15
加工 数据源 数据源
数据存储
加工至少有 一个输入流和 一个输出流 数据流必须 起于或 止于加工
数据源
数据存储
DFD与程序流程图的区别: DFD与程序流程图的区别: 与程序流程图的区别