第3章 传统软件需求分析
第3章+需求分析教学教案
必须请用户对上述分析过程中得出的结果仔细
地复查,数据流图是帮助复查的极好工具。从输入 端开始,分析员借助数据流图、数据字典和IPO图 向用户解释输入数据是怎样一步一步地转变成输出 数据的。这些解释集中反映了通过前面的分析工作 分析员所获得的对目标系统的认识。这些认识正确 吗?有没有遗漏?用户应该注意倾听分析员的报告, 并及时纠正和补充分析员的认识。复查过程验证了 已知的元素,补充了未知的元素,填补了文档中的 空白。
3.1需求分析的任务
还有许多问题存在,如数据字典准确性和完整性、算法的 正确性和有没有遗漏必要的处理或数据元素等。
用户对前一个分析步骤中得出的结果仔细地进行复查。用 户应该注意倾听分析员的报告,确定对目标系统的认识是否正 确、有无遗漏,并及时纠正和补充分析员的认识。复查过程验 证了已知的元素,补充了未知的元素,填补了文档中的空白。
3.2.2 面向数据流自顶向下求精
结构化分析方法SA就是面向数据流自顶向下逐 步求精进行需求分析的方法。通过可行性研究已经 得出了目标系统的高层数据流图,需求分析的目标 之一就是把数据流和数据存储定义到元素级。为了 达到这个目标,通常从数据流图的输出端着手分析, 这是因为系统的基本功能是产生这些输出,输出数 据决定了系统必须具有的最基本的组成元素。
为了解决这些问题,往往需要向用户和其他有
关人员请教,他们的回答使分析员对目标系统的认 识更深入更具体了,系统中更多的数据元素被划分 出来了,更多的算法被搞清楚了。通常把分析过程 中得到的有关数据元素的信息记录在数据字典中, 把对算法的简明描述记录在IPO图(见3.7节)中。通 过分析而补充的数据流、数据存储和处理,应该添 加到数据流图的适当位置上。
3.1需求分析的任务
3. 提出系统的逻辑模型
计算机软件使用中的需求分析与应对策略
计算机软件使用中的需求分析与应对策略第一章:需求分析的概念及重要性需求分析是计算机软件开发过程中的一项关键工作,通过对用户需求进行详细分析,确定软件需要具备的功能、性能和接口等方面的需求。
需求分析的目的是明确软件开发的方向和目标,确保软件能够满足用户的需求,避免开发过程中出现不必要的错误和延误。
在进行需求分析时,首先需要明确软件系统的范围和目标,进而分解用户需求,并将其转化为软件系统能够实现的功能点。
通过需求分析,可以帮助开发团队更好地理解用户需求,准确把握软件系统的需求细节以及功能优先级。
需求分析不仅可以有效地降低软件开发的风险,还能提升软件开发效率,减少不必要的工作量。
第二章:需求分析的方法与工具需求分析是一个系统性的过程,常用的方法包括面谈法、问卷法、观察法以及原型法等。
面谈法是一种直接与用户沟通的方式,可以深入了解用户需求,并及时获取反馈。
问卷法可以批量收集用户意见,适用于用户较多的场景。
观察法通过观察用户的行为和操作习惯,从而分析用户的需求。
原型法是通过制作软件原型,让用户参与测试和反馈,以此逐步完善需求。
在需求分析过程中,可以借助一些工具来辅助分析。
常用的工具包括UML(统一建模语言)、Axure(原型设计工具)、Visio (流程图设计工具)等。
这些工具可以帮助开发团队更好地展现需求,方便与用户进行沟通和理解,进而提供有效的解决方案。
第三章:需求分析中的典型问题与应对策略在需求分析过程中,可能会遇到一些典型问题,如需求不明确、需求变更频繁、需求冲突等。
这些问题可能导致软件开发的延误,甚至无法满足用户需求。
针对这些问题,我们可以采取一些应对策略:1. 需求不明确:开发团队和用户应当充分沟通,明确软件系统的功能和目标。
通过用户面谈、原型演示等方式,及时澄清需求,并记录相关内容,以便于后续的开发和测试工作。
2. 需求变更频繁:需求变更是一个常见的问题,但频繁的需求变更会导致软件开发进度的延误。
软件需求分析报告[大全]
软件需求分析报告[大全]第一篇:软件需求分析报告[大全]软件需求分析软件需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。
进行需求分析时,应注意一切信息与需求都是站在用户的角度上。
尽量避免分析员的主观想象,并尽量将分析进度提交给用户。
在不进行直接指导的前提下,让用户进行检查与评价。
从而达到需求分析的准确性。
分析员通过需求分析,逐步细化对软件的要求,描述软件要处理的数据域,并给软件开发提供一种可转化为数据设计、结构设计和过程设计的数据和功能表示。
在软件完成后,制定的软件规格说明还要为评价软件质量提供依据。
需求分析的任务开发软件系统最为困难的部分就是准确说明开发什么。
最为困难的概念性工作便是编写出详细技术需求,这包括所有面向用户、面向机器和其它软件系统的接口。
同时这也是一旦做错,将最终会给系统带来极大损害的部分,并且以后再对它进行修改也极为困难。
目前,国内产品的庞杂,一家企业可能有几个系统并立运行,它们之间接口是系统开发人员最头痛的问题。
对于商业最终用户应用程序,企业信息系统和软件作为一个大系统的一部分的产品是显而易见的。
但是对于我们开发人员来说,并没有编写出客户认可的需求文档,我们如何知道项目于何时结束?而如果我们不知道什么对客户来说是重要的,那我们又如何能使客户感到满意呢?然而,即便并非出于商业目的的软件需求也是必须的。
例如库、组件和工具这些供开发小组内部使用的软件。
当然你可能偶尔勿需文档说明就能与其他人意见较为一致,但更常见的是出现重复返工这种不可避免的后果,而重新编制代码的代价远远超过重写一份需求文档的代价,这些血的教训正在国内的软件开发者身上发生。
近来,我遇到一个开发小组开发包括代码编辑器在内的一套内部使用的计算机辅助软件。
不幸的是,当他们开发完这个工具后,发现这个工具不能打印出源代码文件,使用者当然希望有这个功能。
第3章 需求分析
网上查某 本书<3秒
图书名称 /作者姓 名
按照输入的组 合条件,进行 模糊查询
显示“图书名称、作 者姓名、是否借出、 内容简介”
2
后台查询读 者信息响应 时间 后台查询图 书信息响应 时间
图书 馆借 阅部 图书 馆借 阅部
借阅 操作 员 借阅 操作 员
后台查某 读者信息 <2秒 后台查某 部书<2秒
案例3-3 【案例3-3】网上图书馆信息系统的部分接口列表,如 表3-3所示。 表3-3 目标系统的接口列表(接口模型)
3.2 需求分析的任务及过程
表3-3 目标系统的接口列表(接口模型)
编 号 接口 名称 接口 规范 接口 标准 入口参数 出口参数 传输 速率
1
与财 务系 统接 口
财务 系统 规定 的接 口规 范
3.2 需求分析的任务及过程
图3-2需求分析过程
3.2 需求分析的任务及过程
根据实际项目的规模和特点确定合适的需求分析常规过 程如下。 1.需求获取 2.综合需求与描述 3. 需求验证 4.需求文档
课堂讨论:
(1)需求分析具体任务有哪些? (2)需求分析常规步骤是什么?
3.2 需求分析的任务及过程书信息系统的 部分性能点列表(性能模型),如表 3-2所示。
3.2 需求分析的任务及过程
表3-2 图书馆系统的性能点列表
编号 性能名称 使用 部门 网上 读者 使用 岗位 网上 读者 性能描述 输入 系统响应 输出
1
读者网上查 询图书信息 响应时间
一张 凭证 一次 处理 传送
3.2 需求分析的任务及过程
7.确定系统运行环境及界面 8.修正开发计划和新系统方案 9. 编写需求文档,验证确认需求 【注意】上述任务要具体分析,灵活运用。如果需求 分析之后,对将要实现的新系统,仍然感到不够明确时, 不应签字确认,还需进行进一步深入分析。
软件需求分析PPT课件
原型设计工具
原型设计工具用于快速创建软件原型, 帮助团队更好地理解用户需求和设计 软件界面。
常见的原型设计工具包括Axure、 Sketch、Figma等,这些工具支持快 速设计和制作高保真原型,方便团队 成员进行讨论和评审。
需求分析建模工具
需求分析建模工具用于对软件需求进行分析、建模和规格编写,帮助团队更好地 理解和规范软件需求。
评审
组织专家或利益相关者对需求规格说 明进行评审,确保内容的准确性和完 整性。
修改
根据评审结果,对需求规格说明进行 修改和完善,确保满足利益相关者的 需求。
需求规格说明的发布与维护
发布
将需求规格说明正式发布给相关人员,确保利益相关者了解和遵循。
维护
在软件开发生命周期中,对需求规格说明进行维护和更新,确保其与实际需求保持一致。
定期对需求变更进行审查,确保变 更得到有效控制。
沟通与协调
及时向相关干系人报告变更情况, 确保信息一致性。
04
06 软件需求分析工具
需求管理工具
需求管理工具用于记录、跟踪和管理 软件需求,确保需求变更得到及时处 理和正确实施。
常见的需求管理工具包括Jira、 MantisBT等,这些工具提供了需求跟 踪、版本控制、变更管理等功能,帮 助团队更好地协作和管理需求。
需求分析的流程
需求整理
对收集到的需求进行分类、筛 选、合并、去重等处理。
需求规格说明
编写需求规格说明书,明确需 求的细节和验收标准。
需求收集
通过访谈、问卷调查、原型演 示等方式收集用户需求。
需求分析
对整理后的需求进行深入分析, 明确系统功能、性能等方面的 具体要求。
需求评审
组织专家或团队对需求规格说 明书进行评审,确保需求的准 确性和完整性。
软件工程导论-第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 表 ),
课程03 软件需求分析
需求分析阶段的研究对象是软件开发产品的用户需求。这 些需求最终要在所开发的软件产品上体现出来,或得到一 定程度的满足。这些需求通常包括: – 功能需求。 – 性能需求。 – 可靠性需求。 – 安全保密需求。
– 成本消耗需求。
– 开发进度需求。 – 资源使用需求。 – 用户接口需求。
在研究用户需求的基础上,将可以接受的需求和分析结 论编写成软件需求说明书(又称软件规格说明书),作为 需求分析阶段的主要工作成果。需求分析阶段的工作主要 由软件开发人员承担。
3.5.1 加工的表达原则
为了清楚地表达一个加工,应当遵循以下几条规则: – 对数据流程图的每一个功能单元,都必须有一个“基 本说明”。 – “基本说明”应该表达这个功能单元对数据流的转换 路径。 – “基本说明”应该表达这个功能单元对数据流的转换 策略,要指出应该做什么,而不是如何去做。
– “基本说明”应该把冗余度控制在最低限度。
3.3.2 数据流程图示例
材料明细账 产 品 生 产 发 出 材 料 材 料 发 出 凭 证 汇 总 按 用 途 归 类 用 料 按 产 品 分 配
生产用料分配表
其 他 用 料
生 产 用 料 应 摊 材 料 车 间 管 理 用 料 企 业 管 理 用 料 辅 助 生 产 用 料 成 本 差 异 表
加工条目主要说明加工的 输入数据、输出数据及加 工逻辑等。例如,加工 “科目汇总” 条目:
加 工 名:科目汇总 输入数据:记账凭证(批) 输出数据:科目汇总表 加工逻辑:将整批记账凭证的数 据,按总账科目分借、贷方对金 额进行汇总,并进行借、贷方平 衡检查,最后输出科目汇总表
3.5 加工的分析与表达
第3章
软件需求分析
完善的软件需求说明是软件开发项目得以成功的基础。不 管设计如何精心或者编码如何巧妙,如果对软件需求不加 以明确规定,将会给用户和开发者带来严重后果。 在规定软件需求时,软件的开发者和需求者起着同样重要 的作用。软件开发者应起到询问、顾问和问题解决者的作 用,而软件需求者应设法澄清和重新阐述有关软件的功能 和性能的一些模糊的概念,使之成为具体的细节。 常用的软件需求分析方法是“结构化分析”(structured analysis,SA)方法。
第三章 软件需求分析基础
逆向需求:说明软件系统不应该做什么。理论 上有无限多个逆向需求,我们应该仅选取能澄 清真实需求且可消除发生误解的那些逆向需求; 将来可能提出的要求:应该明确地列出那些虽 然不属于当前系统开发范畴,但是据分析将来 很可能会提出来的要求。
另一种分类
功能性需求 产品的范围 功能与数据需求 非功能性需求 观感需求 易用性 性能 限制条件
第三章 软件需求分析基础
主要内容
需求分析的概念和原则 传统的软件需求分析基础
3.1 需求分析的概念和原则
需求分析的基本任务是准确地回答“系统必须做什 么?”这一核心问题。 需求分析是发现、求精、建模和规约的过程。这一过 程包括:详细精化最初由系统分析员建立在软件项目 计划中确定的软件范围,创建所需数据流、控制流以 及操作行为的模型,在此基础上选择解决方案。
例2. 客户希望得到指明什么零件从库存中取出、 以及还剩余多少相似零件的日报表。客户指明 一旦当该零件离开仓库时库存管理员就该记载 每个零件的标号。通过对当前问题和希望的信 息(输入和输出)进行的评估,系统分析员开 始综合一个或多个解决方案。为了便于开始, 必须详细地定义系统的数据、处理功能和行为。
操作需求 可维护性和可移植性需求 安全性需求 文化与政策 法律需求
需求的质量
完整性 正确性 可行性 必要性 划分优先级 无二义性 可验证性 设计无关性
2.需求分析的任务
需求分析的任务是借助于当前系统的物理模型 导出目标系统的逻辑模型,解决目标系统“做 什么”的问题。 所要做的工作是深入描述软件的功能和性能, 确定软件设计的限制和软件同其他系统元素的 接口细节,定义软件的其他有效性需求。 必须全面理解用户的各项要求,但只能接受合 理的要求。 要将软件的需求准确地表达出来,形成软件需 求说明书。
03第三章 软件需求分析精品PPT课件
统计资料:
In 1994, the Standish Group surveyed over 350 companies about their over 8000 software projects to find out how well they were faring. The results are sobering. Thirty-one percent of the software projects were canceled before they were completed. Moreover, in large companies, only 9% of the projects were delivered on time and cost what they were budgeted, and 16% met those criteria in small companies (Standish 1994).
2021/1/1
仲恺农业技术学院计算机与电子工程学院
4
在美国高科技历史上曾有过令人痛心的事件: 大家知道,DEC曾经是美国三大计算机公司之一,几年前
被康柏收购,从地球上消失,成为美国计算机界一大憾事。 DEC曾以众多的高新技术著称于世。其中,它在最后的几年里 研发出的 Alpha 计算机芯片更以卓越的技术在性能上超过了 Intel, sun 和其他厂家的芯片。微软也曾大力协助 DEC ,将 Windows Nt 移植到 Alpha 系统,然而,Alpha 在市场上彻底地 失败了,成为 DEC 最终失败的原因之一。
the Ariane-5, a space rocket belonging to the European Space Agency (ESA). On June 4, 1996, on its maiden flight, the Ariane-5 was launched and performed perfectly for approximately 40 seconds. Then, it began to veer off course. At the direction of an Ariane ground controller, the rocket was destroyed by remote
使用计算机软件进行软件需求分析与规划
使用计算机软件进行软件需求分析与规划【第一章:引言】计算机软件在现代社会中扮演着重要的角色,而软件需求分析与规划是软件开发过程中不可或缺的一环。
本文将介绍如何使用计算机软件进行软件需求分析与规划,以提高软件开发的效率和质量。
【第二章:软件需求分析】软件需求分析是软件开发的第一步,它的目的是确保开发团队对用户需求有充分的了解。
首先,分析人员需要与用户进行沟通,收集用户的需求,并将其转化为具体的需求文档。
其次,分析人员需要对需求文档进行细致的分析和整理,找出其中的要点和痛点,并根据优先级进行排序。
在进行软件需求分析时,可以借助一些专业的软件工具。
比如,可以使用需求管理工具来记录用户需求并生成需求文档,这样可以提高需求文档的准确性和一致性。
另外,还可以使用UML建模工具对需求进行建模,以便更好地理解和沟通需求。
【第三章:软件需求规划】软件需求规划是在需求分析的基础上,制定软件开发的详细计划和时间表。
首先,需求规划人员需要评估各个需求的实现难度和优先级,确定需求的实施次序。
然后,需要制定软件开发的里程碑和交付节点,并将其加入项目计划中。
在进行软件需求规划时,可以使用项目管理工具进行计划编制和资源分配。
比如,可以使用甘特图工具来展示项目进度和任务分配,这样可以更好地掌握项目的整体进展情况。
此外,还可以使用敏捷开发工具实施需求的敏捷管理,以提高项目的灵活性和适应性。
【第四章:软件需求测试】软件需求测试是验证需求的正确性和完整性的过程。
它的目的是保证需求的稳定性和可行性。
在进行软件需求测试时,可以使用一些专业的测试工具。
比如,可以使用自动化测试工具进行功能测试和性能测试,以提高测试效率。
另外,还可以使用缺陷管理工具进行缺陷记录和跟踪,以便及时解决问题。
软件需求测试还需要制定详细的测试计划和测试用例。
测试计划需要明确测试的目标、方法和范围,以及测试所需的资源和时间。
测试用例需要覆盖各个需求的不同场景和边界条件,以确保不会出现遗漏和错误。
第3章_软件需求获取与结构化分析方法题及参考答案
第3章软件需求获取与结构化分析方法3.1 为什么结构化分析要叫“结构化”?有其他可替代的术语吗?“结构化”一词应来源于“结构化程序设计”,先有“结构化程序设计”的思想,后有结构化设计及结构化分析。
有时称传统的分析方法,指的就是结构化分析方法。
3.2顶层数据流图或称环境图的作用是什么?顶层数据流图(或称环境图)仅包括一个数据处理过程,也就是要开发的目标系统。
其作用如下:(1) 确定系统在其环境中的位置,与系统有联系的外部实体(包括硬件、软件、组织机构及人)有哪些。
(2) 通过确定系统的输入和输出与外部实体的关系确定系统的边界,也就是要确定哪些功能或处理属于系统范围之内,哪些属于系统范围之外,需要由其他系统处理或人工处理。
3.3 在对数据流图进行分解时需要注意哪些问题?在对数据流图进行分解时,需要注意以下两个问题:(1) 当对数据流图分层细化时必须保持信息连续性,也就是说,当把一个处理分解为一系列处理时,分解前和分解后的输入/输出数据流必须相同。
(2) 注意分层细化时对编号的处理方法。
3.4 银行存款业务如下:客户到银行柜台存款时,首先填写存款单(包括帐号、姓名、存款金额、存款类型),如果还没有开户,则需要先开户,填写开户单(包括姓名、身份证号、地址、电话、是否留密码)。
填写完存款单或开户单后,交给营业员,营业员将存款单或开户单信息输入计算机,系统记录开户信息或存款单信息,如果是开户并选择留密码,则需要客户输入密码。
最后印出开户单或存款单给用户。
请画出银行存款业务的分层数据流图(至少画出两层)。
(1) 识别外部实体及输入输出数据流外部实体:储户、业务员。
输入数据流:存款单,开户单,密码。
可以将存款单和开户单抽象为事务。
输出数据流:存款单,开户单。
(2) 顶层数据流图(3) 一层数据流图对银行储蓄系统进行分解,从大的方面分解为接收事务、处理开户、处理存款三部分,得到一层数据流图。
(4) 二层数据流图对“处理存款”及“处理开户”进行进一步分解,得到二层数据流图,即处理存款的数据流图和处理开户的数据流图。
软件工程03-需求分析
软件工程03-需求分析1、介绍在软件工程中,需求分析是一个关键的阶段,它旨在理解用户需求并确定一个系统或软件的功能和非功能需求。
本文档旨在详细描述需求分析的过程和结果。
2、项目概述在本章节中,将介绍项目的目标、范围和背景信息。
提供项目的背景和目的,明确软件需求分析的上下文。
3、用户需求描述主要用户群体,分析他们的需求和期望。
可能包括用户故事、使用案例或用户需求文档。
4、系统功能需求在本章节中列出系统的所有功能需求。
可以使用功能需求文档、使用案例或其他方法来详细描述每个功能需求。
5、系统性能需求描述系统的性能要求,如响应时间、吞吐量和容量要求等。
6、可靠性需求明确系统的可靠性要求,包括系统的可用性、可靠性、容错性等。
7、安全需求描述系统的安全要求,包括数据安全、身份验证和访问控制等。
8、可维护性需求说明系统的可维护性要求,如可扩展性、可修改性和易于测试等。
9、可移植性需求描述系统的可移植性要求,如平台的兼容性、系统的可移植性和可配置性等。
10、界面需求描述系统与用户、硬件和其他软件之间的交互。
包括用户界面设计、硬件接口和软件接口等。
11、数据需求描述系统需要存储、处理和管理的数据。
包括数据结构、数据库和数据流等。
12、非功能需求在本章节中描述其他非功能需求,如易用性、可访问性和可靠性等。
13、附录列出本文档所涉及的附件,如用户调研报告、需求变更记录和用户界面设计图等。
14、法律名词及注释本节包含文档中涉及的法律名词的解释和注释。
第三章软件需求分析
(5)源点及汇(终)点词条描述
名称:外部实体名 简要描述:什么外部实体 有关数据流: 数目:
数据结构的描述
符号
含义
举例
=
被定义为
+
与 x = a+b
[...,...] 或 [...|...] 或 x = [a , b],x = [a | b 3{a}8
用于写加工逻辑说明的工具
结构化英语 判定表 判定树
(1)结构化英语
结构化英语的词汇表由 英语命令动词 数据词典中定义的名字 有限的自定义词 逻辑关系词 IF_THEN_ELSE、 CASE_OF 、 WHILE_DO、 REPEAT_UNTIL等组成。
是一种介于自然语言和形式化语言 之间的语言 语言的正文用基本控制结构进行分 割,加工中的操作用自然语言短语 来表示 其基本控制结构有三种:
“5”表示工资户等 印密=“0” 注:印密在存折上不显示 存取行=日期+(摘要)+支出+存入+
余额+操作+复核
基本加工逻辑说明
对数据流图的每一个基本加工,必 须有一个基本加工逻辑说明
基本加工逻辑说明必须描述基本加 工如何把输入数据流变换为输出数 据流的加工规则 加工逻辑说明必须描述实现加工的 策略而不是实现加工的细节 加工逻辑说明中包含的信息应是充 足的,完备的,有用的,无冗余的
简单陈述句结构:避免复合语句; 重复结构:while_do 或
repeat_until 结构。 判定结构:if_then_else 或
case_of 结构;
商店业务处理系统中“检查发货单”
if 发货单金额超过$500 then if 欠款超过了60天 then 在偿还欠款前不予批准 else (欠款未超期) 发批准书,发货单
第三章软件需求分析
第3章 需求分析、需求获取
状态变迁图(STD) 状态变迁图(STD)
指明作为外部事件的结果, 指明作为外部事件的结果,系统将如何 动作。 动作。
(1) 调查 -> 当前系统的物理模型
购 书 购 领 发 申 书 书 书 请 教务科 单 会计室 票 出纳员 单 学 教材科 107 206 206 303 生 王 张 李 赵
学 生
学生购买教材的物理模型
(2) 去掉非本质因素->当前系统的逻辑模型 去掉非本质因素购 书 申 学 请 购 书 单 开发票 发 票 领 书 单 发书
§3.2 需求获取
3.2.1 需求获取的目的 清楚地理解所要解决的问题 完整地获取用户需求
需求获取面临的挑战: 需求获取面临的挑战:
(1)问题空间理解 (1)问题空间理解 (2)人与人之间的通信 (2)人与人之间的通信 (3)需求的不断 (3)需求的不断变化 需求的不断变化
某出版社系统调查表
编 号
第三章
软件需求分析
§3.1 需求分析的任务
准确地定义 准确地定义未来系统的目 定义未来系统的目 标,确定为了满足用户的需求 系统必须做什么。 系统必须做什么。用 <需求规 格说明书> 格说明书> 规范的形式准确地 表达用户的需求 需求。 表达用户的需求。
思考、涉及的几个问题
如何定义系统需求? 如何定义系统需求?
描述加工逻辑的工具: 描述加工逻辑的工具: 结构化语言 判定表 判定树
处理名: 处理名:核实订票处理(MHGP3200MD) 编号: 编号: 3.2 激活条件: 激活条件:收到取订票信息 处理逻辑:1 :1读订票旅客信息文件 处理逻辑:1读订票旅客信息文件 2搜索此文件中是否有与输入信息 中姓名及身份证号相符的项 IF 有 THEN 判断余项是否与文件中信 息相符 IF 是 THEN 输出已订票信息 ELSE 输出未订票信息 ELSE 输出未订票信息 执行频率: 执行频率: 实时
软件工程导论第五版张海藩第03章-需求分析
3.1 需求分析的任务 3.2 与用户沟通获取需求的方法 3.3 分析建模与规格说明 3.4 实体-联系图 (?) 3.5 数据规范化(?) 3.6 状态转换图+有穷状态机 3.7 其他图形工具 3.8 验证软件需求 3.9 小结
需Байду номын сангаас分析的意义
软件需求的深入理解是软件开发工作获得成 功的前提条件,不论我们把设计和编码做得如何 出色,不能真正满足用户需求的程序只会令用户 失望,给开发带来烦恼。
软件需求规格说明书,是需求分析阶段得出的最主要 的文档。
软件需求说明书的编写提示(GB856T—88)
1 引言 1.1 编写目的 1.2 背景 1.3 定义 1.4 参考资料
2 任务概述 2.1 目标 2.2 用户的特点 2.3 假定和约束
软件需求说明书的编写提示(GB856T—88)
3 需求规定
建模方法
在过去的数年中,人们提出了许多种分析建模的方法,其中两种 在分析建模领域占有主导地位:
第一种是结构化分析 (Structured Analysis,SA),70年代末由 DeMarco等人提出,这是传统的建模方法。该方法不是被所有的使用 者一致地使用的单一方法,众多科学家对其进行了扩充,因此它是发 展了超过30年的一个混合物。
2) 项目相关人员用自己的语言表达需求,这些 语言包含很多工作中的专业术语和专业知识。系统分 析员没有这些知识和经验,而他们又必须了解这些需 求。
3)不同的项目相关人员有不同的需求,可能以 不同的方式表达,分析人员必须发现所有潜在的需求 资源,而且能发现这些需求的相容或冲突之处。
4)经济和业务环境决定了分析是动态的,需求 在分析过程中会发生变更。个别需求的重要程度会改 变,新的需求会从新的项目相关人员那里得到。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
46
• 步骤3.分析当前系统与目标系统的差别 ,建立目标系统的逻辑模型
软件学 院教务 员
教学 计划 排课表 排课表 排课 (时间) 排课 (时间+地点) 软件学 时间 院教务 地点 处理 员 处理
软件学院 的教师
时间 约束
学校设备 管理科
教室 约束
47
• 步骤4.对目标系统的逻辑模型进行改进 与优化。
•结构化设计(Structured Design,SD,70年代初期)
•结构化编程(Structured Programming, SP, 1965) 基本思想:把一个复杂问题的求解过程分阶段进行, 而且这种分解是自顶向下,逐层分解,使得每个阶段 处理的问题都控制在人们容易理解和处理的范围内。 (分而治之的思想) 基本要点:自顶向下、逐步求精;模块化设计;结构 化编程。
解决方案边 界
票据文员 运输员 生产工长
21
上下文图
顾客 注册从工资中 扣除餐费 食物订单 菜单管理人 食物订单 送餐请求 菜单内容 从工资中扣除餐费的请 求 从工资中扣除餐费的响 应 工资系统 付款要求 食物订单 可提供的食物 信息 自助餐厅在 线订餐系统 送餐请求 送餐人员 更新食物状态 付款请求 自助餐厅工作人员 食物订购信息
11
需求分析的过程
可行性 分析模型 需求描述
可行性报告
系统模型
需求规格说明书
12
3.2 需求工程
3.2.1 需求工程的定义
3.2.2 需求工程过程
13
3.2.1 需求工程
• 需求
– 构造任何人工制品之前,其意图(为什么需要 它?它将用于何处?)。
• 工程
– – – – 工程化的方法; 有效的技术; 规范化、标准化的生产过程; 规范化、标准化的产品,强调最终产品的实用 性和目的性。
38
39
3.3.2系统流程图
系统流程图,是一种描述系统内各单位、人员之间业务关系的 图表,用以描述物理系统的工具。
基本思想:用图形符号以黑盒子形式描绘系统里面的每个部件 (程序,文档,数据库,人工过程等) ,表达信息在各个部 件之间流动的情况,而不是表示对信息进行加工处理的控制过 程。 处理 信息流或物流 加工 的输入与输出 数据或 单据 文档
• 需求验证子活动
–执行验证 –问题修正
29
需求验证的子活动
修改后的软件需求规格说明文档
软件需求规格 说明文档
执行验证
问题、修 改建议
问题修正
30
需求管理
• 需求管理
–需求基线:项目经理、开发者、测试人员、 顾客、维护人员 –需求产生之后 ,需求的影响力贯穿于整个后 续的产品生命周期,而不是单纯地存在于需 求开发阶段
• 需求管理子活动
–建立和维护需求基线集 –建立需求跟踪信息 –进行变更控制
31
3.3 结构化分析
3.3.1 结构化方法概述
3.3.2 系统流程图 3.3.3 数据流图 3.3.4 数据字典 3.3.5 结构化语言
32
3.3.1 结构化方法概述
•结构化分析(Structured Analysis,SA,70年代中期)
库存数据
外部项
40
41
42
43
结构化分析过程
• 1、理解当前的现实环境,获得当前系统的具 体模型(物理模型) • 2、从当前系统的具体模型抽象出当前系统逻 辑模型 • 3、分析目标系统与当前系统逻辑上的差别, 建立目标系统的逻辑模型 • 4、为目标系统的逻辑模型作补充
44
例子:排课
• 步骤1. 通过对现实环境的调查,获得当 前系统的物理模型
19
需求获取的子活动
收集背景材料
定义项目前景 和范围
选择信息的来 选择获取方法, 源 执行获取
记录获取结果
项目前景和范围文档 用户需求文档(包括问题域特性)
20
定义系统的高层解决方案
新的解决方案
订单输入源 新的销售订单系统 结果订单 合格的销 售订单
订单输入员 检查
检查
检查
包含定价数据的 旧系统
用户需求
–执行实际工作的用户对系统所能完成的具体任 务的期望,描述了系统能够帮助用户做些什么。
系统(级)需求
–用户对系统行为的期望,一系列的系统行为联 系在一起可以帮助用户完成任务,满足用户需 求。
7
例子——业务需求
• 目标:云南大学进入全国50强 • 子目标:学科建设(一级博士点) • 子目标:国家级重点实验室建设 • 子目标:人才建设 • 子目标:学校信息化建设(教务管理系统 、选课系统、研究生系统„)
33
自顶向下、逐步求精
抽象和分解是控 顶层 制复杂性的两个 基本手段 抽象:在每个抽 象层次上忽略问 题的内部复杂性, 只关注整个问题 与外界的联系
底层
2 x
1
3
分解:将问题 不断分解为较 小的问题,直 到每个最底层 的问题都足够 简单为止
3.1
3.2
34
35
模块化设计
main
main
子模 块1 子模 块2 子模 块11 子模 块12 子模 块13
17
系
统
环
境
涉众
硬
数
据
需求获取 需求分析 需求描述 需求验证
需求开发
需求基线
需求管理
当前基线
修订的基 线
需求变化
变更控制
18
需求获取
• 需求获取
–需求获取是从人、文档、环境当中获取需 求的过程;
• 这个过程包括学习和认知的过程,而学习和认知 是递进的;
–需求工程师必须要利用各种方法和技术来 “发现”需求 ; –需求获取和需求分析是交织在一起的 ;
15
传统需求分析与需求工程的关系
需求工程
需求分析
16
3.2.2 需求工程过程
需求开发过程 需求管理过程
需求获取
需求分析
需求描述
需求验证
需求管理
经过分析和建模的需求,将被记录和文档化, 并作为正式的规格说明,再经验证后,传递给 软件组织的所有相关人员,形成对系统需求的 正确和一致的理解。
规格说明天 生就是不完 备的; 环境一直在 变;
软 件 学 院
国家精品课程
软 件 工 程
云南大学 软件学院 代飞博士 2013年· 秋
1
会泽百家
至公天下
第3章 传统软件需求分析
3.1 需求与需求分析 3.2 需求工程 3.3 结构化分析 技术
2
3.1 需求与需求分析
3.1.1 需求
3.1.2 需求分析
3
3.1.1 需求的定义
• IEEE关于需求的定义 (1)用户为了解决问题或达到目标所需 的条件或能力;(用户的角度 ) (2)系统或系统部件为了满足合同、标 准、规范或其它正式规定文档所需具有 的条件或能力。(开发者的角度) (3) 对(1)或(2)中的一个条件或 一种能力的文档化表述。
软件学 院教务 员
教学 计划 反馈 时间 约束 排课表 排课表 排课 (时间) 排课 (时间+地点) 软件学 时间 院教务 地点 处理 员 处理
软件学院 的教师
学校设备 管理科
教室 约束
排课表 (时间+地点)
48
3.3.3 数据流图
数据流图( Data Flow Diagram )是结构化系统分析 的主要工具,它表示了系统内部信息的流向,并表示 了系统的逻辑处理功能。
50
例子:飞机机票预订系统
订票单
旅行社
分类并 检查
有效订票单
订票 记账文件 机票文件
取票单
有效 取票 单
记账
旅客
账单
菜单
自助餐厅库存系统
22
23
需求分析
• 需求分析
–通过建模来整合各种信息,以使得人们更 好的理解问题; –检查需求当中存在的错误、遗漏、不一致 等各种缺陷,并加以修正 ; –为问题定义出一个需求集合,这个集合能 够为问题界定一个有效的解决方案;(需求 的基线集)
获取结果
· · 用户的理解 问题的描述
外部实体
加工
数据流
数据存储
49
1)外部实体:与系统进行交互,但系统不对其 进行加工和处理的实体,用带标记的矩形表示。
2)数据的加工:加工是对数据进行变换和处理 的单元,它接收一定的数据输入,对其进行处理,并 产生输出。
3)数据流:数据流由一组固定的数据组成,用 来指出数据在系统内传播的路径。
4)数据存储:表示信息的静态存储,可以代表文 件、文件的一部分、数据库的元素等,用带标记的双 实线表示。
接口、数据库接口等等。
约束
进行系统构造时需要遵守的约束,例如编程语言、硬件设施等。
5
功能需求——层次性
业务需求 目标 用户需求
任务
系统行为
系统需求
6
业务需求、用户需求、系统需求
业务需求
– 抽象层次最高的需求,是系统建立的战略出发 点,表现为高层次的目标(Objective),它描 述了组织为什么要开发系统 。
教学 计划 排课表 排课表(时 (时间) 学校教务 间+地点) 软件 软件学 学院 处(王) 院(代) (黄具体模型中的非本质因素, 抽取现实系统的实质,抽象出当前系统 的逻辑模型。
软件学 院教务 员
教学 计划
排课表 排课表 排课 (时间) 排课 (时间+地点) 软件学 时间 院教务 地点 处理 员 处理
36
子模 块3
非模块化设计 模块化设计
结构化编程
main
反对GOTO语句
函数a
顺序结构
函数b 函数c