CHAP03_2 需求分析_结构化分析
结构化需求分析方法
结构化分析(SA)方法结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。
结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成的。
结构化分析(Structured Analysis,简称SA 法)方法是面向数据流的需求分析方法,是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
它适合于分析大型的数据处理系统,特别是企事业管理系统。
SA 法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。
1 SA 法概述1.SA 法的基本思想结构化分析(Structured Analysis,简称SA 法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
结构化分析方法的基本思想是“分解”和“抽象”。
分解:是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。
图4 是自顶向下逐层分解的示意图。
顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。
抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就是“抽象”。
2.SA 法的步骤⑴建立当前系统的“具体模型”;系统的“具体模型”就是现实环境的忠实写照,即将当前系统用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)确定系统的外部项,也就是数据的源点和汇点;
成分的实际意义,避免空洞的名字
• 编号 按层给加工编号,编号表明该加工处于那一层,以及上下 层父图子图的关系
最新软件开发辅助工具介绍
社会环境可行性
ຫໍສະໝຸດ 社会环境的可行性至少包括两种因素:市场与政策。 市场又分为未成熟的市场、成熟的市场和将要消亡的市场。 涉足未成熟的市场要冒很大的风险,要尽可能准确地估计潜 在的市场有多大?自己能占多少份额?多长时间能实现? 挤进成熟的市场,虽然风险不高,但油水也不多。如果供大 于求,即软件开发公司多,项目少,那么在竞标时可能会出 现恶性杀价的情形。国内第一批卖计算机的、做系统集成的 公司发了财,别人眼红了也挤进来,这个行业的平均利润也 就下降了。 将要消亡的市场就别进去了。尽管很多程序员怀念DOS时 代编程的那种淋漓尽致,可现在没人要DOS应用软件了。 学校教学尚可用用DOS软件,商业软件公司则不可再去开 发DOS软件。 政策对软件公司的生存与发展影响非常大。整个90年代, 中国电信的收费相当高,仅此一招就把国内互联网企业打得 奄奄一息。某些软件行业的利润很高,但可能存在地方保护 政策,使竞争不公平。政策不当将阻碍软件公司的健康发展 ,可最怕的还是政府干预企业的正当行为。
经济可行性-2
(7)软件开发人员与行政人员的工资。 (8)购买系统软件的费用,如买操作系统、数据库、软件开 发工具等。有些老板买盗版的系统软件,却按市场价算 成本,可从美国佬那里赚一笔。 (9)做市场调查、可行性分析、需求分析的交际费用。 (10)公司人员培训费用。 (11)产品宣传费用。如果用Internet作宣传,则要考虑建 设Web站点的费用。 (12)如果客户是政府部门,还要充分考虑用于吃喝玩乐、 行贿的费用。 (13)如果公司的风水不好,会有很多莫名其妙的管理费。 每戳一个红艳艳的公章都要化一把钞票。
可行性研究目的是进一步探讨问题定义阶段所
确定的问题是否有可行的解。 可行性研究过程
第03章结构化分析
2.正确性
每项需求都必须准确地反映用户要完成 的任务。判断需求正确性有两种途径: 的任务。判断需求正确性有两种途径:
由用户来判断。 由用户来判断。在进行需求调研时系统分 析员记录了每项需求的来源和相关的详细 信息,系统分析人员根据调研的结果使用 信息, 自然语言和流程图或用例图等多种方式描 述需求。 述需求。在需求评审时用户和开发人员从 不同角度,检查需求的正确性。 不同角度,检查需求的正确性。 系统分析人员应该检查每项需求是否超出 了业务需求所定义的软件范围。 了业务需求所定义的软件范围。
12
3.可行性
每一个成功的软件系统其解决方案都是 可行的。 可行的。
技术可行性 经济可行性 操作可行性
13
4.必要性
每项需求都应该是客户所需要, 每项需求都应该是客户所需要,开发人 员不要自作主张添加需求。 员不要自作主张添加需求。 检查需求必要性的方法是将每项需求回 溯至用户的某项需求上 。
14
21
3.2 与用户通信的技术
软件需求分析总是从两方或多方之间的通信开始。 软件需求分析总是从两方或多方之间的通信开始。 用户面临的问题需要用基于计算机的方案来解决; 用户面临的问题需要用基于计算机的方案来解决;开发 者应该对用户的需求作出反应,给用户提供帮助。这样 者应该对用户的需求作出反应,给用户提供帮助。 就产生了相互通信的需求。但是, 就产生了相互通信的需求。但是,从开始通信到真正相 互理解的道路通常是充满坎坷的。 互理解的道路通常是充满坎坷的。良好的通信技术有助 于加快理解的过程。 于加快理解的过程。
20
3.1 概述
5、不同的结构化分析方法遵守准则 必须理解和表示问题的信息域, 必须理解和表示问题的信息域,根据这条准则应该建 立数据模型。 立数据模型。 必须定义软件应完成的功能, 必须定义软件应完成的功能,这条准则要求建立功能 模型。 模型。 必须表示作为外部事件结果的软件行为, 必须表示作为外部事件结果的软件行为,这条准则要 求建立行为模型。 求建立行为模型。 必须对描述信息、功能和行为的模型进行分解, 必须对描述信息、功能和行为的模型进行分解,用层 次的方式展示细节。 次的方式展示细节。 分析过程应该从要素信息移向实现细节。 分析过程应该从要素信息移向实现细节。
03第三章:结构化分析
3.1 概述
需求分析是发现、求精、建模、规格说 明和复审的过程。为了发现用户的真正 需求,首先应该从宏观角度调查、分析 用户所面临的问题。也就是说,需求分 析的第1步是尽可能准确地了解用户当前 的情况和需要解决的问题。
3.1 概述
软件工程是从一系列的建模活动开始的。 结构化分析就是一种建立模型的活动,通 常建立数据模型、功能模型和行为模型。 模型是软件设计的基础,也是编写软件规 格说明的基础。 所以,需求分析的结果需要提交分析模型 和规格说明。
图3.2 某校教学管理ER图
3.关系
(3)多对多联 系(M∶N) 例如,图3.2表 示学生与课程间 的联系是多对多 的关系,即一个 学生可以学多门 课程,而每门课 程可以有多个学 生来学。
图3.2 某校教学管理ER图
4.实体—关系图的符号
E-R图中包含了实体(即数据对象)、关 系和属性3种基本成分。通常用矩形框代 表实体,用连接相关实体的菱形框表示 关系,用椭圆形或圆角矩形表示实体( 或关系)的属性,并用无向边把实体( 或关系)与其属性连接起来。图3.2所示 为某学校教学管理的E-R图。
第三章:结构化分析
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8
概述 与用户沟通的方法 分析建模与规格说明 实体——关系图 数据流图 状态转换图 数据字典 结构化分析实例
3.5.1 数据流图符号
如图3.3(a)所示,数据流图有4种基本 符号:
正方形(或立方体)表示数据的源点或终点; 圆角矩形(或圆形)代表变换数据的处理; 开口矩形(或两条平行横线)代表数据存储; 箭头表示数据流,即特定数据的流动方向。
3.关系
软件工程第四章结构化需求分析
数据字典
定义
数据字典是一种用于描述数据元 素及其属性的工具,它提供了数 据的详细描述和定义。
பைடு நூலகம்
内容
包括数据元素的名称、别名、类 型、长度、取值范围、默认值等 属性信息。
作用
为开发人员提供了一个统一的数 据定义和描述标准,避免了数据 不一致和歧义的问题。
03 结构化需求分析过程
问题识别
01
确定软件系统的范 围和目标
用例表
列出系统的所有用例,包括用例名称、描述、前置条件和后置条件 等。
用户故事表
以用户为中心描述系统需求,包括用户角色、场景、任务和目标等。
原型工具
低保真原型
使用简单的工具和方法创建的原型,主要用于 概念验证和用户反馈收集。
高保真原型
使用高级工具和方法创建的原型,几乎与实际 产品一样,用于详细需求分析和用户测试。
04 结构化需求分析工具
图形工具
流程图
用于描述系统或程序的逻辑流程,包括开始、结束、决策点和活动 等元素。
数据流图
用于描述数据在系统中的流动和处理过程,包括数据源、数据存储、 数据处理和数据终点等元素。
实体关系图
用于描述系统中实体之间的关系,包括实体、关系和属性等元素。
表格工具
需求规格说明书
详细列出系统需求,包括功能需求、性能需求、安全需求和接口 需求等。
步骤
首先确定系统的主要功能,然后逐层向下分解,直 到每个功能都清晰、具体、可实现。
优点
能够全面地了解系统的功能需求,有助于保 证系统的完整性。
数据流图
定义
数据流图是一种图形化表示方法,用于描述系统中数 据的流动和处理过程。
组成
包括数据流、数据存储、数据处理和外部实体等基本 元素。
结构化分析
建立原型系统作为一种应该采取的策略的理由如下:
● 由于人类认识能力的局限性,用户往往不能预先提出全 部要求;
● 在用户和系统分析员之间存在固有的通信鸿沟,分析员 常常误解了用户的需求;
● 用户需要一个可运行的系统模型,以便获得有关未来系 统的实践经验;
● 在软件开发过程中重复和反复是必要的和不可避免的;
任务
估计人力(人月)
元/人月
计
15.0
编 码 和 单 元 测 8.0 试
综合测试
16.5
10200 9600 7950 8700
51000 144000 63600 143550
总计
44.5
402150
3 成本/效益分析方法
成本/效益分析的第一步是估计开发成本、运行费用和 新系统将带来的经济效益。而系统的经济效益等于因使用 新系统而增加的收入,加上使用新系统可以节省的运行费 用。因为运行费用和经济效益两者在软件的整个生命周期 内都存在,总的效益和生命周期的长度有关,所以应该合 理地估计软件的寿命。以后在进行成本/效益分析时一律 假设生命周期为5年。
比较新系统的开发成本和经济效益,应从经济角度判断 这个系统是否值得投资,但是,投资是现在进行的,效益 是将来获得的,不能简单地比较成本和效益,应该考虑货 币的时间价值。
结构化需求分析报告方法
结构化分析(SA)方法结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。
结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成的。
结构化分析(Structured Analysis,简称SA 法)方法是面向数据流的需求分析方法,是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
它适合于分析大型的数据处理系统,特别是企事业管理系统。
SA 法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。
1 SA 法概述1.SA 法的基本思想结构化分析(Structured Analysis,简称SA 法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
结构化分析方法的基本思想是“分解”和“抽象”。
分解:是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。
图4 是自顶向下逐层分解的示意图。
顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。
抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就是“抽象”。
2.SA 法的步骤⑴建立当前系统的“具体模型”;系统的“具体模型”就是现实环境的忠实写照,即将当前系统用DFD 图描述出来。
这样的表达与当前系统完全对应,因此用户容易理解。
⑵抽象出当前系统的逻辑模型;分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得用DFD 图描述的当前系统的“逻辑模型”。
结构化的需求分析与建模课件
资源规划:准确的需 求为项目团队提供了 估计所需资源和时间 的基础。
风险降低:在需求阶 段识别并处理模糊或 冲突性需求可以降低 项目风险。
非结构化与结构化需求分析
非结构化需求分析
01
02
依赖于个人经验和直觉来理解和解释需求。
往往缺乏组织和标准化,可能导致遗漏或 误解。
03
04
结构化需求分析
采用系统化、规范化的方法来捕获和处理 需求。
解决方法
可行性分析:对需求进行技术和资源上的可行性 评估,确保项目可行性。
原型反馈:通过创建原型并获取用户反馈,来澄 清和验证模糊的需求。
版本控制:采用版本控制系统(如Git)来跟踪需 求变更,确保所有相关方都了解和同意这些变更 。通过这样的方法,团队能够更为有效地管理项 目范围,降低由于需求变更带来的潜在风险。
05
06
强调使用明确的工具和技术,如数据流图 、实体关系图、用例图等。
需求分析的挑战与解决方法
挑战 需求模糊性:用户需求可能不明确或存在歧义。
技术限制:某些需求可能受到技术或资源的限制。
需求分析的挑战与解决方法
• 变更管理:需求在项目过程中可能发生变化,需 要有效的变更管理机制。
需求分析的挑战与解决方法
数据可视化
通过数据可视化手段,直 观展示需求追踪和度量的 结果,便于项目团队和利 益相关者了解需求状态。
THANKS
感谢观看
转换
描述系统从一种状态转移到另一 种状态的条件和动作,包括触发 条件、输入/输出、状态变量更新 等。
状态图
通过状态图,可以直观地展示系 统状态及其转换关系,有助于分 析人员理解和描述系统的动态行 为。
04
需求验证与管理
软件工程第三章-2(需求分析)
重复项:起点=终点=1{汉字}10
航空公司名称=2{字母}4 航班号=3{十进制数字}3
组合项:日期=年+月+日
起飞时间=降落时间=时+分
选择项:年=[2000|2001|2002|2004] 原数据项:字母=“A”…“Z”
十进制数字=“0”…“9” 时=“00”…“23” 分=“00”…“59”
五、描述加工逻辑的工具:
• • •
结构化语言 判定表 判定树
1、结构化语言
介于自然语言和形式语言 之间的语言 结构化语言的特点:
无确定语法 • 可分层、嵌套
•
处理名:核实订票处理(MHGP3200MD) 编号: 3.2 激活条件:收到取订票信息 处理逻辑:1读订票旅客信息文件 2搜索此文件中是否有与输入信息 中姓名及身份证号相符的项 IF 有 THEN 判断其余项是否与文件中 信息相符 IF 是 THEN 输出已订票信息 ELSE 输出未订票信息 ELSE 输出未订票信息 执行频率: 实时
三.数据字典(DD,DataDictionary)
DD是对所有与系统相关的数据元素 的一个有组织的列表,以及精确的、严 格的定义,使得用户和系统分析员对于 输入、输出、存储成分和中间计算有共 同的理解
数据词典是结构化分析方法中采用
的表达数据元素的工具。它对数据 流图中所有自定义的数据元素、数 据结构、数据文件、数据流等进行 严密而精确的定义。
数据流图上所有图形符号只限于
前述四种基本图形元素 数据流图的主图上的数据流必须 封闭在外部实体之间 每个加工至少有一个输入数据流 和一个输出数据流
在数据流图中,需按层给加工框
编号。编号表明该加工所处层次 及上下层的亲子关系 规定任何一个数据流子图必须与 它上一层的一个加工对应,两者 的输入数据流和输出数据流必须 一致。此即父图与子图的平衡
软件定义阶段总结(精)
软件定义阶段各章回顾 对软件定义各个阶段的进一步认 识 与软件工程相关的一些补充内容 软件工程中一些有争议的观念 给大家的几条建议
Chap01 软件工程学概述
软件工程的基本原理和方法(7条原理2种方法) 软件工程方法学:
生命周期方法学(传统方法学),采用结构化
经济可行性-1
经济可行性分析主要包括:“成本——收益”分析和“短期 ——长远利益”分析。 成本——收益分析最容易理解,如果成本高于收益则表明亏 损了,如果成本大大高于收益那就亏大了。商人都不喜欢做 吃亏的事情。有些商店成天贴着“最后一天跳楼大拍卖”的 标语,意思是:我准备吃大亏让你占便宜,同志,你快上钩 吧。 要考虑的成本: (1)办公室房租。 (2)办公用品,如桌、椅、书柜、照明电器、空调等。 (3)计算机、打印机、网络等硬件设备。 (4)电话、传真等通讯设备以及通讯费用。 (5)资料费。 (6)办公消耗,如水电费、打印复印费等。
通过前边的学习,我们会发现需求析 是最为重要的一个过程,在这个过程中, 系统分析员和软件工程师确定顾客的需要 。只有在确定了这些需要后他们才能够分 析和寻求新系统的解决方法。 在软件工程的历史中,很长时间里人 们一直认为需求分析是整个软件工程中最 简单的一个步骤,但在过去十年中越来越 多的人认识到它是整个过程中最关键的一 个过程。假如在需求分析时分析者们未能 正确地认识到顾客的需要的话,那么最后 的软件实际上不可能达到顾客的需要,或 者软件无法在规定的时间里完工。
经济可行性-3
短期——长远利益分析 短期利益容易把握,风险较低。国内软件公司经常出现 一窝蜂地去做信息管理系统、多媒体光盘、系统集成项 目或Internet服务。每当我们沉迷于短期利益不思进取 时,应该好好回忆童年时代那些伟大的抱负,给自己一 些激励。 长远利益难以把握,风险较大。能为了长远利益不惜短 期亏损的人,要么是雄心勃勃的将帅之才,要么是“纸 上谈兵”、“眼高手底”的那一类庸人。国内目前有不 少Internet企业,只投入不产出。为了成就将来的霸业 ,甘愿现在拼财力、比耐性。最后存活下来的几个公司 将瓜分市场。
需求分析(传统结构化方法)
2。
2需求分析需求分析是通过开发人员的分析概括,抽象为完整的需求定义,再形成一系列文档的过程。
2.2.1需求分析的目的与意义需求分析是一个非常重要的过程,它完成的好坏直接影响后续软件开发的质量。
有效的需求分析通常都具有一定的难度.需求分析不仅仅是属于软件开发生命周期早期的一项工作,而且还应该贯穿于整个生命周期中,它应该随着项目的深入而不断地变化。
此外,为了方便后续的评审和测试等工作,需求的描述应该尽量做到:具体、详细、可以测量和可以实现,并且基于时间。
2。
2.2需求分析的步骤2-3所示。
需求涉及的方面:在功能方面,需求包括系统要做什么,相对于原系统目标系统需要进行哪些修改,目标用户有哪些,以及不同用户需要通过系统完成何种操作等。
在性能方面,需求包括用户对于系统执行速度、响应时间、吞吐量和并发度等指标的要求。
在运行环境方面,需求包括目标系统对于网络设置、硬件设备、温度和湿度等周围环境的要求,以及对操作系统、数据库和浏览器等软件配置的要求。
在界面方面,需求涉及数据的输入/输出格式的限制及方式、数据的存储介质和显示器的分辨率要求等问题。
1。
获取需求,识别问题开发人员从功能、性能、界面和运行环境等多个方面识别目标系统要解决哪些问题,要满足哪些限制条件,这个过程就是对需求的获取。
开发人员通过调查研究,要理解当前系统的工作模型和用户对新系统的设想与要求.遗漏需求是最难修订的需求错误。
获取需求是需求分析的基础.为了能有效地获取需求,开发人员应该采取科学的需求获取方法。
在实践中,获取需求的方法有很多种,比如,问卷调查、访谈、实地操作、建立原型和研究资料等。
问卷调查法是采用调查问卷的形式来进行需求分析的一种方法。
通过对用户填写的调查问卷进行汇总、统计和分析,开发人员便可以得到一些有用的信息。
采用这种方法时,调查问卷的设计很重要。
一般在设计调查问卷时,要合理地控制开放式问题和封闭式问题的比例.开放式问题的回答不受限制,自由灵活,能够激发用户的思维,使他们能尽可能地阐述自己的真实想法.但是,对开放式问题进行汇总和分析的工作会比较复杂。
需求分析方法-结构化分析简介
发票 * (1 - ) 发票号码
日 日期 期 金额
[ 简述 ]
数据元素 数据结构
逐次性 可选性
付款通知书 日期 供应商名称 供应商地址 支票号码
{ } 银行支付细节 银行户名 银行账号 发票 * (1 - ) 发票号码 发票日期 发票金额 [ 简述 ] 付款金额
重覆次数 重覆性
第三步:描述处理过程的逻辑
计算 每一种 零件总数
零件 总数
生成 采购订单
采购订单
供应商
批次订单
P4.4
注释 待办订单 采购信息
订单明细项
采购订单 副本
P4.7
生成采购 订单于在
办记录
订购日期、 采购订单编号
采购定单 明细项
D10 待办订单
D10 采购订单
第二步:把数据项记录在数据定义档案
DFD只标识代表性数据结构名称,需准确定义数据结构的含义。 数据文法:
Conditions 条件
Actions 行动
再进行分析综合简化
每年交易 GT RMB 10,000元 付账记录 LT 3 次延期 交易 GT 20 年 特价状态 = Y [特价] 特价状态 = N [常价]
Rules 规则 YYYN YNN - YN XX
XX
第四步:描述数据存储的定义
WHAT COMES OUT MUST GO IN -- NO MORE, NO LESS
货运通知单 (与零部件一块)
客户基本信息
P2 发票
组装 客户订单
个别订单 明细项
零部件订单
D11 采购订单 订单明细
P3
安排待办 订单发货
零件编号 及数量
P5
确认 来货正确
2019年计算机二级公共基础学习教程:结构化分析方法
2019年计算机二级公共基础学习教程:结构化分析方法(二)结构化分析方法1.需求分析与需求分析方法1)需求分析软件需求分析是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。
需求分析的任务是发现需求、求精、建模和定义需求的过程。
(1)定义软件需求分析是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。
(2)需求分析阶段的工作① 需求获取。
需求获取的目的是确定对目标系统的各方面需求;② 需求分析。
对获取的需求实行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型;③ 编写需求规格说明书。
为用户、分析人员和设计人员之间实行交流提供方便。
④ 需求评审。
对需求分析阶段的工作实行复审,验证需求文档的一致性、可靠性、完事性和有效性。
2)需求分析方法(1)结构化分析方法包括:面向数据流的结构化分析方法面向数据结构的Jackson方法面向数据结构的结构化数据系统开发方法(2)面向对象的分析方法从需求分析建立模型的特性分,需求分析方法又分为静态分析方法和动态分析方法。
2.结构化分析方法1)关于结构化分析方法结构化分析方法的实质是:着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
结构化分析的步骤:通过对用户的调查,以软件需求为线索,获得系统的具体模型;去掉模型的非本质因素,抽象出系统的逻辑模型;根据计算机的特点分析当前系统与目标系统的差别,建立目标系统的逻辑模型;完善目标系统交补充细节,写出目标系统的软件需求规格说明;评审直到确认完全符合用户对软件的需求。
2)结构化分析的常用工具(1)数据流图数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。
数据流图下的图形元素:(圆),加工(转换)。
输入数据经过加工变换产生输出(箭头),数据流。
沿箭头方向传送数据的通道,一般在旁边标注数据流名(平行的二条直线),存储文件(数据源)。
结构化需求分析方法
结构化分析(SA)方法结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。
结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成的。
结构化分析(Structured Analysis,简称SA 法)方法是面向数据流的需求分析方法,是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
它适合于分析大型的数据处理系统,特别是企事业管理系统。
SA 法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。
1 SA 法概述1.SA 法的基本思想结构化分析(Structured Analysis,简称SA 法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
结构化分析方法的基本思想是“分解”和“抽象”.分解:是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决.图4 是自顶向下逐层分解的示意图.顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。
抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就是“抽象”。
2。
SA 法的步骤⑴建立当前系统的“具体模型”;系统的“具体模型”就是现实环境的忠实写照,即将当前系统用DFD 图描述出来.这样的表达与当前系统完全对应,因此用户容易理解。
⑵抽象出当前系统的逻辑模型;分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得用DFD 图描述的当前系统的“逻辑模型”。
结构化需求分析获取课件
功能需求清 单
总结词
列出系统的所有功能点。
详细描述
功能需求清单是需求分析阶段的关键输出之一,它列出了系 统的所有功能点,包括用户直接操作的系统功能以及系统内 部处理逻辑。每个功能点应明确描述其输入、处理逻辑和输 出,以便开发人员准确实现。
非功能需求清 单
总结词
列出系统的非功能属性要求。
详细描述
非功能需求清单关注的是系统的非功能性属性,如性能、可用性、安全性和可维护性等。 这些要求对于确保系统的质量和用户体验至关重要,因此在需求分析阶段需要充分考虑 和明确。
完整性
需求必须全面覆盖项目目 标,确保项目所有重要方 面都得到满足。
需求的重要性
确保项目成功
明确、全面的需求是项目 成功的关键,能够避免项 目范围蔓延和预算超支等 问题。
减少变更
明确的需求可以减少项目 执行过程中的变更,降低 变更带来的成本和时间压力。
提高满意度
明确、全面的需求有助于 满足项目干系人的期望, Байду номын сангаас高客户满意度。
测试案例评审
制定测试案例并评审,以验证需 求的实现是否符合预期。
需求变更管理
01
02
03
04
变更申请
建立需求变更申请的流程,确 保所有变更都经过正式的申请
和审批。
变更评估
对每个变更申请进行评估,分 析其对项目进度和成本的影响。
变更实施
根据评估结果,实施必要的变 更,并相应地调整项目计划和
资源。
变更记录
4. 功能分配
将各个功能分配给相应的软件 组件或硬件设备。
数据流 图
1. 确定数据流边界
确定系统数据的输入、输出和内 部处理过程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
+
B
T
C
A
T
+
C
数据A、数据B,
或A和B同时输入 变换成C
数据A
变换成数据B、数据C、 数据B和C
• 数据流图(Date Flow Diagram) • 【扩展符号】
–⊕表示数据流之间是“异或”关系
A
或
⊕
T C A T
B
⊕
C
B
只有数据A、只有数据B
(但不能A、B同时) 变换成C
数据A
变换成数据B、数据C, (但不能变换成B和C)
案例1:教材销售系统
• 【例1】教材销售系统。
– 售书过程: • 学生找系办公室的张秘书开一个购书单; • 凭购书单找教材科的王会计开购书发票; • 向李出纳员交书费开领书单; • 学生拿着领书单到书库找赵保管员领书。
• 【画数据流图的步骤】
–⑴识别并从问题中提取数据流图中的元素 – ⅰ源与目的 • 数据源——学生 【数据流】 • 数据目的——学生 数据及其在系统中流动的方向 – ⅱ数据流 • 购书单、发票、领书单… … – ⅲ加工处理 • 审查并开发票、开领书单… … – ⅳ数据存储 • 各班学生用书表、教材存量表,售书登记表… …
2 采购
采购 员 进书通知
1加工框的第二层数据流图
缺书登记表 进书通知 2 采购
1.5 补售教材
缺书单
补售书单 教材存量表 1.2 开发票 发票 有效书单 1.1 审查有效性
1.4 登记缺书
1.3 开领书单
无效书单
领书单
售书登记表 各班学生用书表
学 生
购书单
学 生
无效书单 购书单 学 生 领书单 发票 进书通知 1 销售
• 【画数据流图的步骤】
– ⑵画顶层DFD——基本逻辑模型 • 顶层:一个加工处理和若干个输入输出数据 流
• 【画数据流图的步骤】
– ⑵画顶层DFD——基本逻辑模型
购书单 学 生 教材销售 系统
领书单 学 生
发票
无效书单
顶层DFD:把整个系统当作一个大的加工处理,标明系统的 输入与输出以及数据源与目的。 优点:一目了然的列出所有给定的数据源和数据目的。
组 备
织:按系、专业和班编号从小到大排列 注:
• 数据项字典条目示例:为例1教材销售系统的 中的“数量”和“书费合计”,编写数据字 典条目。
数据项名:数量 别 名:购书量 数据项名:书费合计 别 名:
取 备
值:正整数 注:
取 备
值:正整数 注:
3.3 实体关系图
• 实体关系图
– Entity Relationship Diagram,也称ER图,用 ER图描绘的数据模型称为ER模型。 – 为了把用户的数据要求清楚、准确地描述出来, 系统分析员通常建立一个概念性的数据模型。
表示与实体有关的属性 用于实体、属性及联系的连接
• 实体关系图
– 联系:数据对象彼此间相互连接的方式称为联系, 也称为关系。 – 联系可分为以下3种类型: – (1) 一对一联系(1∶1) – 例如,一个部门有一个经理,而每个经理只在一 个部门任职,则部门与经理的联系是一对一的。 – (2) 一对多联系(1∶N) – 例如,某校教师与课程之间存在一对多的联系 “教”,即每位教师可以教多门课程,但是每门 课程只能由一位教师来教
• 数据流图
顶层数据流图
仓库 管理员
事务
仓库零件 订货系统
订货报表
采购 员
1 库存清单程序; 2 报告生成程序;
1 库存清单程序可以细分为: 1.1接受事务 1.2更新库存清单 1.3处理订货
仓库 管理员
事务
1 库存清单 程序
库存清单表
订货信息表
2 报表生成 程序 第一层数据流图
订货报表
采购 员
第一层数据流图
2加工框的第二层数据流图
缺书登记表 教材存量表 1 销售 进书 通知 进 书 通 知 采购 员
2.1 按书号汇总
2.3 修改 教材存量 待购量
待购教材表
教材信息表
2.2 按出版社 汇总
缺书单
无效书单 购书单 学 生 领书单 发票 进书通知 1 销售
父/子图平衡(I/O)
教材存量表
缺书单 缺书登记表 2 采购
• 数据流图(Data Flow Diagram) • 【符号】
–①数据的源点、终点 • 系统以外的人、事物 – ②加工处理(数据加工) • 系统功能的抽象 –③数据存储 • 数据库、数据文件 数据描述 –④数据流 • 数据及其在系统中流动的方向
数据描述
• 【画数据流图的步骤】
–⑴识别并从问题中提取数据流图中的元素 • ⅰ源与目的 • ⅱ数据流 • ⅲ加工处理 • ⅳ数据存储 – ⑵画顶层DFD——基本逻辑模型 – ⑶分层细化DFD – ⑷完善补充
内容
• 3.1 结构化需求分析 • 3.2 数据流图
– 3.2.1 数据流图 – 3.2.2 数据字典
• 3.3 实体关系图
3.2.1 数据流图
• 数据流图(Date Flow Diagram)
– 描述软件系统逻辑模型的工具。
• 【功能】
– 抽象了信息在系统中流动和加工处理的情况。
极好的交流和沟通工具
缺点:太抽象,对目标系统所能了解到的信息非常有限。
• 【画数据流图的步骤】
步分解
– ⑶分层细化DFD • 中间层:上层分解的中间结果,还可以进一 • 底层:由不可再分割的加工处理组成(基本 加工框)
• 【画数据流图的步骤】
– ⑶分层细化DFD
学 生 无效书单 1 审查 并开发票 教材存量表
购书单
– 是面向问题的数据模型,按照用户观点对数据建 立的模型。它描述了从用户角度看到的数据,反 映了用户的现实环境,而且与在软件系统中的实 现方法无关。可以转换成数据库中的数据模型。 – 包含3种相关信息:数据对象、数据对象属性及数 据对象间相互关系。
• ER图的符号表示
符号 表示实体 含 义
表示实体间的联系,与实体间的连线上需用数字标明具体的 对应关系
• 【画数据流图的步骤】
– ⑶分层细化DFD – 【原则】 • ⑴父/子图平衡(I/O)
– 把一个加工处理分解为一系列加工处理时,分解前 和分解后的输入/输出数据流必须相同。
• ⑵掌握分解的速度
– 一般一次引入2~7个加工处理
• ⑷加工处理 编号
– 便于引用和追踪 – 注意:顶层DFD不进行编号
案例2:教材销售采购系统
2.画数据流图的原则
–⑴父/子图平衡(I/O) • 把一个处理分解为一系列处理时,分解前和分 解后的输入/输出数据流必须相同。 –⑵掌握分解的速度 • 一般一次引入2~7个加工处理
–⑶区分全局文件和外部项 –⑷加工框编号 • 便于引用和追踪
SA自顶向下、逐步分解的思想
3.2.2 数据字典
DFD描述的系统逻辑模型不能充分描述软件需 求:
软件工程
第3章 需求分析—结构化分析
刘志刚 dqpilzg@
内容
• • • • 3.1 3.2 3.3 3.4 结构化需求分析 数据流图 数据字典 实体关系图
3.1 结构化需求分析
• 结构化需求分析
– SA(Structured Analysis) – 也称结构化分析,70年代 E.Yourdon等人倡议的, 是面向数据流分析方法的一种。 – 【指导思想】自顶向下、逐步分解
2 数 据 流 3 数 据 存 储
1、数据元素
• 数据流示例:为例1教材销售系统的中的发票, 编写一个数据字典条目。
数据流名:发票 别 组 备 名:购书发票 成:学号+姓名+{书号+单价+数量+总价}+书费合计 注:
• 数据文件示例:为例1教材销售系统的中的学 生用书表,编写一个数据字典条目。
文件名:学生用书表 组 成:{系编号+专业和班编号+年级+书号}
• 结构化需求分析
– 【基本任务】 • 建立系统分析模型 • 编写软件需求规格说明书SRS – 其中,系统分析模型包括: – (1)功能模型:如数据流图、IPO图等 – (2)数据模型:描述数据对象及数据对象之间关 系,如ER图。 – (3)行为模型:描述系统的各种行为模式。如系 统对外部事件的响应方式及结果等。如状态图。
• 结构化需求分析
–【步骤】(重点掌握) –(1)分层细化DFD图
• 自顶向下对系统功能进行分解 –(2)定义数据字典 • 各层DFD图中包含的数据元素、数据流、数 据存储。 –(3)定义加工逻辑 • 定义中间层和最底层DFD图中包含的所有加 工。
• 实体关系图
– 联系 – (3) 多对多联系(M∶N) – 学生与课程间的联系(“学”)是多对多的,即一个 学生可以学多门课程,而每门课程可以有多个学 生来学。 – 注意:联系也可能有属性。例如,学生“学”某 门课程所取得的成绩,既不是学生的属性也不是 课程的属性。由于“成绩”既依赖于某名特定的 学生又依赖于某门特定的课程,所以它是学生与 课程之间的联系“学”的属性。
• 【例1】教学系统
• 【例2】银行系统
• 【练习题】监护系统
– 某软件公司准备为医院护士站开发一个监护系统, 该系统中能够完成对病人的监护,监护信息包括 时间、体温、脉搏、血压等。同时系统能够查询 到护士和病人的基本信息。 – 请根据上述需求,绘制ER图。
• 注意:
– 数据对象只封装数据而没有对施加于数据上的操 作的引用,这是数据对象与面向对象中的区别
父/子图平衡(I/O)
教材存量表
缺书单 缺书登记表 2 采购
采购 员 进书通知
第一层数据流图
采购子系统的功能可以细分为: 2.1按书号汇总缺书 2.2按出版社统计缺书 2.3修改教材库存和待购量 无效书单