软件工程第3章 软件需求分析

合集下载

软件工程第三章

软件工程第三章

条目格式如下: 数据流名: 组成: 流量:
3.5 需求分析方法 SIT 来源: 去向: · 文件条目。 文件条目主要说明文件由哪些数据项组成,存储方式和
存取频率等。 条目格式如下: 文件名: 组成: 存储方式: 存储频率:
3.5 需求分析方法 SIT · 数据项条目。 数据项名: 类型: 长度: 取值范围: · 加工条目。 加工条目主要说明加工的输入数据、输出数据及其加工
3.2 需求分析任务 SIT
二、分析系统的数据要求 分析系统的数据要求通常采用建立概念模型的方法。
三、导出系统的逻辑模型 综合上述两项分析的结果可以导出系统的详细的逻辑模
型,通常用数据流图、数据字典和主要的处理算法描述这个 逻辑模型。 四、修正系统开发计划
根据在分析过程中获得的对系统的更深入更具体的了解, 可以比较准确地估计系统的成本和进度,修正以前制定的开 发计划。 五、开发原型系统
3.3.2用户需求
用户需求是从用户角度来描述系统功能和非功能需求, 以便让不具备专业技术方面知识的用户能看懂。这样的需求 描述只描述系统的外部行为,要尽量避免对系统设计特性的 描述。
3.3 软件需求分析类型 SIT
3.3.3系统需求
系统需求是比用户需求更详细的需求描述,是系统实现 的基本依据,因此,是一个完全的和一致的系统描述,是软 件工程人员系统设计的起点。
需求描述的结构化是围绕三个主要内容进行的,一是系 统操作对象,二是系统运行的功能,三是系统处理的事件。
3.6 软件需求工程管理 SIT 软件需求管理指的是一个为系统的需求进行启发、组织、
建档的系统方法,一个建立和维护客户和项目团队之间关于 变更系统需求所达成的一致性的过程。
需求模型是指将软件需求的捕获与开发、管理作为一个 工程,以软件需求的捕获与开发、管理为研究对象,抽象化 的工程参考模型,用以指导软件需求的各项实践活动。

自考软件工程第3章知识点总结

自考软件工程第3章知识点总结

2
第3章 软件需求分析
需求分析在软件开发中所处的地位愈加突出,从而也愈加 困难,它的难点主要体现在以下几个方面:
(1) 问题的复杂性。 (2) 交流障碍。 (3) 不完备性和不一致性。 (4) 需求易变性。
软件需求分析与说明的方法的基本原则:
(1) 必须能够表达和理解问题的数据域和功能域。 (2) 可以把一个复杂问题按功能进行分解并可逐层细化。 (3) 建模。
结构化分析(Structured Analysis,简称SA),是面向数 据流进行需求分析的方法。根据软件内部数据传递、变换的关 系,自顶向下逐层分解,描绘出满足功能要求的软件模型。
3.2.1自项向下逐层分解的分析策略
面对一个复杂的问题,采取分解的策略,把一个复杂的问
题划分成若干小问题,然后再分别解决。分解可分层进行,在
(3) 环境需求。 (4) 用户界面需求。
4
第3章 软件需求分析
2. 分析与综合, 导出软件的逻辑模型 分析人员对获取的需求,进行一致性的分析检查,在 分析、 综合中逐步细分软件功能,划分成各个子功能。 3. 编写文档 编写文档的步骤如下: (1) 编写“需求说明书。 (2) 编写初步用户使用手册。 (3) 编写确认测试计划。 (4) 修改完善项目开发计划。
3. 数据项条目 数据项条目是不可再分解的最小数据单位, 其定义格 式及举例如下: 数据项名称: 货物编号 别名: G-No, G-num, Goods-No 简述: 本公司的所有货物的编号 类型: 字符串 长度: 10
取值范围及含义: 第1位: 进口/国产
第2~4位: 类别 第5~7位: 规格
第8~10位: 品名编号
1. 数据流条目
数据流条目给出了DFD中数据流的定义,通常列出该数 据流的各组成数据项。

软件工程第三章 需求分析

软件工程第三章 需求分析



初步访谈,写出产品需求 列出对象及其服务 讨论列表,并且组合列表 分组制定小型规格说明 一整套确认标准,经讨论,起草完整的软 件需求规格说明书。
工作流程
当前系统 当前系统
用户 调查
具体模型
逻辑 抽象
逻辑模型
计算 机化
目标系统 系统模型
目标系统 初始模型
用户
评审 修改
正式模型
完善 细节
补售 教材
缺书登记表
F2
1.4
登记 缺书
教材存量表
F1
补售 书单
暂缺书单
学 生
无效书单
1.1
审查 有效性
有效书单
1.2
开发票
发票
1.3
登记并开 领书单
领书单
购书单
学 生
各班用书表
F3
售书登记表
F4
第 3 层
教材存量表
购书单 领书单
学 生
1 销售
进书通知
2 采购
缺书单 进书通知
保 管员 第 2层
采购 子系统
需求分析的步骤

绘制系统关联图 创建用户接口(界面)原型 分析需求可行性 确定需求的优先级别 为需求建立模型 创建数据字典 使用质量功能调配(QFD)

明确哪些是客户最关心的特征
编制需求规格说明的过程



采用软件需求规格说明(SRS)模版 指明需求的来源 为每项需求注上标号 记录业务规范(操作原则) 创建需求跟踪矩阵
外部实体
第 1 层
教材存量表 F1
学 生
购书单 领书单
1 销售
进书通知
2 采购

软件工程第3章 软件需求分析(终)

软件工程第3章  软件需求分析(终)

第3章软件需求分析案例3: 图书馆图书信息管理系统“图书馆管理系统”是借助计算机来完成图书馆日常管理工作,能提供借书帐号注册、登录功能,基于图书标题、图书编号、作者、出版社的查询,也可以同时多个选项进行同时查询提供图书状态的查询,如可借和不可借,完成借书登记、还书的登记,能帮助管理人员完成图书信息的管理,如图书信息的修改、新图书的增加、旧图书的删除,图书分类工作,从而使图书馆的日常工作信息化、快捷化,减轻图书馆管理工作的困难。

因此,“图书馆管理系统”对于图书馆的日常管理工作和信息化到至关重要的作用。

【知识导入】通过对本章节内容的学习,掌握软件需求分析的基本内容,需求分析的特征及评审。

能够完成项目的需求分析,确立正确的项目开发思路。

软件需求是一个项目的开端,是整个软件项目开发的基础。

即表示该软件经过可行性分析后确立有此需求,而开发该项目。

因此,需求分析在整个项目建设过程中至关重要,是项目开发的基石,基石的牢固程度决定了后期项目的进展以及项目开发完工后的产品质量的优劣,可以说需求分析的好坏直接影响到软件项目开发的成败。

软件需求是指用户对目标软件系统在功能、性能、行为、设计约束等方面的期望。

IEEE (美国电气和电子工程师协会)是这样对需求分析做定义的:①用户解决问题或达到系统目标所需要的条件②为满足一个协议、标准、规格或其他正式制定的文档,系统或系统构建所需满足和具有的条件或能力③将需求要求条件进行文档化描述。

这个概念全方位阐述了需求的概念,较完整的表达了软件需求的内涵和外延,便于用户的全面理解。

而需求分析最终就是通过对应用问题及其环境的分析与理解采用一系列的分析方法和技术将用户的需求逐步精确化、完全化、一致化,最终形成需求规格说明文档的过程。

系统分析阶段产生的系统规格说明书和项目规划是软件需求分析的基础,分析人员需要从软件的角度对其进行检查和调整,并在此基础上展开需求分析。

需求分析阶段的成果主要是需求规格说明书,该成果又是软件设计、编码、测试直至维护的主要基础。

软件工程PPT课件第3章 软件需求分析

软件工程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章_需求分析_(第五版)(张海藩编著)_a_百度文库

软件工程导论-第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 表 ),

第3章 需求分析-软件工程案例教程(第2版)-李军国-清华大学出版社

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

《软件工程》第3章 软件需求分析

《软件工程》第3章 软件需求分析

【本章重点】 本章重点】
需求分析的方法 ; 需求分析的任务和原则 ;
【教学目标】 教学目标】
掌握需求分析的基本概念; 掌握需求分析的基本概念; 掌握如何使用需求获取技术来进行数据采集; 掌握如何使用需求获取技术来进行数据采集; 掌握结构化分析的思想与过程; 掌握结构化分析的思想与过程; 掌握数据流建模技术。 掌握数据流建模技术。
3.2 面向数据流的分析方法
3.2.2 数据流图
1.数据流图中的主要图形元素
3.2 面向数据流的分析方法
2.分层的数据流图
在多层数据流图中,可以把顶层数据流图、 在多层数据流图中,可以把顶层数据流图、底层数 据流图和中间层数据流图区分开来。顶层数据流图仅 据流图和中间层数据流图区分开来。 包含一个加工,它代表被开发系统。 包含一个加工,它代表被开发系统。它的输入流是该 系统的输入数据,输出流是系统的输出数据。顶层数 系统的输入数据,输出流是系统的输出数据。 据流图的作用在于表明被开发系统的范围, 据流图的作用在于表明被开发系统的范围,以及它和 周围环境的数据交换关系。 周围环境的数据交换关系。底层数据流图是指其加工 不须再做分解的数据流图,其加工称为“原子加工” 不须再做分解的数据流图,其加工称为“原子加工”。 中间层数据流图则表示对其上层父图的细化。 中间层数据流图则表示对其上层父图的细化。它的每 一个加工可以继续细化,形成子图。 一个加工可以继续细化,形成子图。中间层次的多少 视系统的复杂程度而定。 视系统的复杂程度而定。
3.2 面向数据流的分析方法
4.数据流图的优缺点
总体概念强,每一层都明确强调“干什么” 总体概念强,每一层都明确强调“干什么”,“需要 什么” 给出什么” 什么”,“给出什么”; 可以反映出数据的流向和处理过程; 可以反映出数据的流向和处理过程; 由于自顶向下分析, 由于自顶向下分析,容易及早发现系统各部分的逻辑 错误,也容易修正; 错误,也容易修正; 容易与计算机处理相对应; 容易与计算机处理相对应; 不直观,一般都要在作业流程分析的基础上加以概括、 不直观,一般都要在作业流程分析的基础上加以概括、 抽象、 抽象、修正来得到
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10
Байду номын сангаас
图3.2 学生购买教材的具体模型
11
图3.3 学生购买教材的逻辑模型
12
图3.4 计算机售书系统的逻辑模型
13
3.3 需求分析方法和原则
为了保证项目的正常实施和顺利的完成,必须加强 项目管理和重视项目分析工作。只有从实际出发,切切 实实地把握用户需求、把握用户需求目标、把握用户将 来功能界定,才能保证我们开发工作正确性方向。
1
模型表达软件将要实现的需求,并以“软件需求规 格说明书”的形式作为本阶段工作的结果,为下一阶段 的软件设计提供设计基础。因此,需求分析过程实际上 是一个调查研究、分析综合的过程,是一个抽象思维、 逻辑推理的过程。随着软件系统复杂性的提高及规模的 扩大,需求分析在软件开发中的所处的地位日益突出, 从而也更加困难。
14
(1)软件需求分析理论 如果我们用数学方法来描述软件需求分析,可以将 一个应用软件定义为S,可能应用软件涉及功能性问题 非常广,我们用抽象化理论分析,可以划分为各个功能 域,可以用D1,D2,…,Dn表示,那么,我们可以用一 个表达式描述为:
15
(2)有效性软件需求分析三步法 由于在进行需求分析过程中,常存在客户说不清楚 需求、需求自身经常变动、分析人员或客户理解用户需 求有误等事实。因此,需求分析工作方法,应该定位在 “三个阶段”(也称“三步法”)。 (3)常用的需求分析方法 1)结构化分析方法 2)面向对象的分析方法
6
3.2 需求分析的步骤
3.2 需求分析的步骤 软件开发过程的目的就是要实现目标软件的物理模 型,也就是要确定构成软件系统的系统元素,并将功能 和信息结构分配到这些系统元素中。需求分析的任务之 一就是导出系统的逻辑模型,以解决目标系统“做什么” 的问题。导出逻辑模型有2种途径:一是分析员利用自 己丰富的经验,依据实际调查和分析的结果直接导出; 二是借助于当前系统的逻辑模型推导出目标系统的逻辑 模型(如图3.1所示)。
2
3.1 需求分析的任务
需求分析的主要任务就是要通过软件开发人员与用 户的交流和讨论,准确地获取用户对系统的具体要求。 在正确理解用户需求的前提下,软件开发人员还需要将 这些需求准确地以文档的形式表达出来,作为设计阶段 的依据。需求分析阶段结束时需要提交的主要文档是软 件需求规格说明书。 需求分析的主要任务大致包含以下内容:
4
(2)分析系统的数据要求 任何一个软件系统本质上都是信息处理系统,系统 必须处理的信息和系统应该产生的信息在很大程度上决 定了系统的面貌,对软件设计有深远影响,因此,必须 分析系统的数据要求,这是软件需求分析的一个重要任 务。 分析系统的数据要求通常采用建立数据模型的方法。 复杂的数据由许多基本的数据元素组成,数据结构表示 数据元素之间的逻辑关系。利用数据字典可以全面准确 地定义数据,但是数据字典的缺点是不够形象直观地表 达。为了提高可理解性,常常利用图形工具辅助描绘数 据结构。常用的图形工具有层次方框图和Warnier图。
5
(3)导出系统的逻辑模型 综合上述两项分析的结果可以导出系统的详细的逻辑模型。 常用数据流图、实体联系图、状态转换图、数据字典和主要的处 理算法描述这个逻辑模型。 (4)编制需求阶段文档 ①编写“需求规格说明书”,把双方共同的理解与分析结果 用规范的方式描述出来,作为今后各项工作的基础。 ②编写初步用户使用手册,着重反映被开发软件的用户功能 界面和用户使用的具体要求,用户手册能强制分析人员从用户使 用的角度来考虑软件。 ③编写确认测试计划,作为今后确认和验收的依据。 ④修改完善软件开发计划。
7
图3.1 借助于当前系统的逻辑模型 推导出目标系统的逻辑模型
8
(1)通过调查研究,获取用户的需求 获取需求是需求分析的基础。软件开发人员只有通 过认真细致的调查研究,才能获得进行系统分析的原始 资料。为了能有效地获取需求,开发人员应该采取科学 的需求获取方法。在实践中,获取需求的方法有很多种, 比如,问卷调查、访谈、实地操作、建立原型和研究资 料等。 (2)去除非本质因素,确定系统的真正需求 对于获取的原始需求,软件开发人员需要根据掌握 的专业知识,运用抽象的逻辑思维,找出需求间的内在 联系和矛盾,去除需求中不合理和非本质的部分,确定 软件系统的真正需求。
16
图3.5 “自顶向下、逐层分解”示意图
9
(3)描述需求,建立系统的逻辑模型 在获得确定的系统需求后,软件开发人员应该对问 题进行分析抽象,并在此基础上通过现有的需求分析方 法及工具对其进行清晰、准确的描述,建立无二义性的、 完整的系统逻辑模型。模型是对事物高层次的抽象,通 常由一组符号和组织这些符号的规则组成。常用的模型 图有数据流图、E-R图、用例图和状态转换图等,不同 的模型从不同的角度或不同的侧重点描述目标系统。绘 制模型图的过程,既是开发人员进行逻辑思考的过程, 也是开发人员更进一步认识目标系统的过程。 (4)书写需求规格说明书,进行需求复审
3
(1)确定系统的综合需求 这是需求分析中最重要的一项任务。分析的目的在 于透过现象看本质,找出需求间的内在联系及矛盾所在, 而综合就是剔除那些非本质的东西,找出解决矛盾的办 法。对于一个软件系统来说,对需求的分析就是从目标 系统的数据流和数据结构入手,找出系统元素之间的内 在联系,看它们是否能够满足功能实现的需要,随后依 据功能需求和性能需求等,剔除其不合理的部分,增加 其需要部分,最终给出目标系统的逻辑模型、设计约束 及有效性准则等。
第3章 软件需求分析
为了开发出真正满足用户需求的软件产品,首先必 须知道用户的需求。需求分析是软件定义时期的最后一 个阶段,是关系到软件开发成败的关键步骤。需求分析 的基本任务是准确地回答“系统必须做什么?”这个问题, 不是确定系统该怎样完成它的工作,而仅仅是确定系统 必须完成哪些工作,也就是对目标系统提出完整、准确、 清晰、具体的要求。软件需求分析工作的主要目的是, 在综合分析用户对系统提出的一组需求(功能、性能、 数据等方面)的基础上,构造一个从抽象到具体的逻辑
相关文档
最新文档