结构化需求分析
结构化需求分析方法
结构化分析(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 图描述的当前系统的“逻辑模型”。
软件工程概述-第5章 结构化需求分析
实体 属性 联系
用矩形表示,矩形内写 明实体名
用椭圆形表示,并用无 向边将其与对应实体连 接起来
用菱形表示,并用无向 边分别与有关实体连接 起来,同时在无向边旁 标上联系的类型。
E-R 图表示图示 例 2-1 中的例子
练习
例:简单的学生选课系统:
(1)学生 属性有学号,姓名, 性别,年龄,所在系
x
1.1
1.2
1.3
1
3
2
2.1 2.3
2.2
1.1 1.3
目录
1
5.1结构化分析
2
5.2数据流图
3
5.3数据字典
4
5.4 实体关系图
5
5.5 状态转换图
数据流图
数据流图(Data Flow Diagram,DFD)是描述系统中数据 流程的图形工具,它描述了将系统的逻辑输入转换为逻辑输出 所需的加工处理过程。
(2)课程 属性有课程号,课程 名称,先修课程号,学分
实体之间的联系:
一个学生可同时选修多门 课程,而一门课程可以同时被 若干学生选修。用成绩来表示 某个学生学习某门课程的成绩 。
分解:对于一个复杂的系统,为了将复杂性降 低到可以掌握的程度,可以把大问题分解成若 干小问题,然后分别解决。
抽象:分解可以分层进行,即先考虑问题最本 质的属性,暂把细节略去,以后再逐层添加细 节,直至涉及到最详细的内容,这种用最本质 的属性表示一个系统的方法就是“抽象”
结构化分析
结构化分析方法基本思想 “分解”和“抽象”
取值范围:数据项的取值范围,例如,职工年龄 的取值范围定义为18至60岁,表示为18..60。
初始值:数据项的初始值,例如,为了操作简便, 软件定义借书日期的初始值默认为系统的当前日 期。
结构化需求分析方法
结构化分析(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 图描述的当前系统的“逻辑模型”。
结构化需求分析
外部实体
外部实体指系统以外又与系统有联系的人或事物。 它表达了该系统数据的外部来源和去处。例如:人、组 织、外部系统等等。 • 外部实体是数据的来源(谁提供了最初始的数据?) • 外部实体是数据的去处(数据对谁有价值?)
读者
图书 管理员
馆长
读者
图书 管理员
加工(数据处理)
处理指对数据的逻辑处理功能,也就是对数据的变 换功能。 别名:功能、处理过程,数据加工
数据流图的图形符号
或 或
加工。对输入数据进行变换以产生输出数据,其中要注明加工的名字。 外部实体,即数据输入源(Source)或数据输出汇点(Sink)。其中要注明数 据源或数据汇点的名字。
或
数据存储。要用名词或名词性短语为数据存储命名。 数据流。描述被加工数据及传递方向。箭头旁边要注明数据流的名字,可用名 词或名词性短语命名。
环境图(顶层数据流图)
环境图(context diagram)也称为顶层数据流图 (或0层数据流图),它仅包括一个数据处理过程, 也就是要开发的目标系统。 环境图的作用是确定系统在其环境中的位置,通过确 定系统的输入和输出与外部实体的关系确定其边界。
招生系统需求描述
学校首先公布招生条件,考生根据自己的条件报名,之后 系统进行资格审查,并给出资格审查信息; 对于资格审查合格的考生可以参加答卷,系统根据学校提 供的试题及答案进行自动判卷,并给出分数及答题信息, 供考生查询; 最后系统根据学校的录取分数线进行录取,并将录取信息 发送给考生。
储 户
密码
实例研究——第一层数据流图
+
实例研究——第二层“存款”数据流图
对一层图中的“处理存款”及“处理取款”进行进一步分 解,得到二层数据流图,即处理存款的数据流图和处理取 款的数据流图。
结构化需求分析
完整性和一致性,我们应努力追求高度形式 化的表示法。
7.可修改性
如果一个SRS的结构和风格在需求有必要改变时是 易于实现的、完整性的、一致的,那么这个SRS就 是可以修改的。可修改性要求SRS具备以下条件:
a. 具有一个有条不紊的易于使用的内容组织,具有目录表, 索引和明确的交叉引用表; b. 没有冗余。即同一需求不能在SRS中出现多次。
1.正确性
正确性指的是SRS中陈述的每个需求都表达
了将要构造的系统的某种要求。 目前尚不存在有效的技术来保证这个质量, 因为它完全依赖于当前的应用系统。 例如,如果软件必须在5秒钟内对所有的按键 事件作出相应,而SRS中陈述“软件应在10 秒钟内对所有的按键事件作出响应”,则该 需求描述是不正确的。
3.完整性
如果一个SRS能满足下列要求, 则该SRS就是完整的: (1)期待未来系统所做的任何 事情都包括在SRS的陈述中。
如果一个SRS既是完整的又是正
SRS规约完整 则为空
确的,那么区域A和C同时为空, 两个原是重合的。 完整性是所有属性中最难以保证 的,原因是不完整意味着有些东 西不在SRS中,这样检查材料很 难发现其中不存在的东西 诊断不完整性的一个有效技术就 是开发原型。
例如: “产品应有易于使用的用户界面”
使用不可度量的量
结构化分析方法
结构化分析方法结构化分析方法一、需求分析与需求分析方法需求阶段是软件开发的关键阶段。
需求分析的任务:准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么;用《需求规格说明书》规范的形式准确地表达用户的需求。
需求分析阶段的工作(四方面):◆需求获取:确定系统各方面需求;全面地提炼出系统的功能性与非功能性需求。
◆需求分析:对获取的需求分析和综合,给出系统解决方案和逻辑模型。
◆编写需求规格说明书:为用户、设计人员的交流提供方便,还可作为控制软件开发进程的依据。
◆需求审评:复审需求分析阶段的工作,验证需求文档的一致性、可行性等。
1、需求获取的目的清楚地理解所要解决的问题、完整地获取用户需求。
2、需求获取的内容用户需求分类:(1)功能性需求定义了系统做什么(描述系统必须支持的功能和过程)。
(2)非功能性需求(技术需求)定义了系统工作时的特性(描述操作环境和性能目标)。
3、需求分析的步骤4、需求分析过程示意(1)通过对现实环境的调查,获得当前系统的物理模型。
(2)去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型。
(3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型。
5、需求分析的方法结构化分析(传统建模方法)、面向对象分析。
二、结构化分析方法1、结构化分析方法(Structure Analysis---SA)(1)定义是面向数据流进行需求分析的方法,采用自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
(2)结构化分析的主要步骤通过对用户的调查,以软件的需求为线索,获取当前系统的具体模型;去掉具体模型中非本质因素,抽象出当前系统的逻辑模型;根据计算机的特点分析当前系统与目标系统的差别,建立目标系统的逻辑模型;完善目标系统并补充细节,写出目标系统的软件需求规格说明。
2、结构化分析方法使用的常用工具(1)数据流图(DFD—Data Flow Diagram )①作用从数据传递和加工的角度,在需求分析阶段以图形的方式描述数据流从输入到输出的移动变换过程,为系统建立逻辑模型。
第3 章 结构化需求分析
第3 章 结构化需求分析
3.1.2 需求分析的过程 (2)分析与综合 从信息流和信息结构出发, 从信息流和信息结构出发,逐步细化软 件的所有功能, 件的所有功能,找出系统各个元素之间 的联系、接口特性和对设计的限制, 的联系、接口特性和对设计的限制,判 断是否存在因片面性或短期行为而导致 的不合理需求, 的不合理需求,判断是否有用户尚未提 出的确实有价值的潜在需求, 出的确实有价值的潜在需求,从而提出 其中不合理的部分, 其中不合理的部分,增加真正需要的部 分。
第3 章 结构化需求分析
采用“自顶向下,逐步求精”的方式, 系统被分解成 系统被分解成3 采用“自顶向下,逐步求精”的方式,X系统被分解成 个子系统 :
第3 章 结构化需求分析
3.3.2 结构化分析方法 指导性原则: 指导性原则: 在开始建立分析模型之前先理解问题, 在开始建立分析模型之前先理解问题 ,而不应 急于求成,甚至在问题未被很好地理解之前, 急于求成 ,甚至在问题未被很好地理解之前, 就产生了一个解决错误问题的软件; 就产生了一个解决错误问题的软件; 开发模型,使用户能够了解将如何进行人机交 开发模型, 互; 记录每个需求的起源和原因, 记录每个需求的起源和原因 ,这样能有效地保 证需求的可追踪性和可回溯性; 证需求的可追踪性和可回溯性; 使用多个需求分析视图,建立数据、 使用多个需求分析视图,建立数据、 功能和行 为模型。 为模型。
第3 章 结构需求分析
3.1.2 需求分析的过程
第3 章 结构化需求分析
3.1.2 需求分析的过程 (1)调查研究 对目标系统的运行环境、功能要求、 对目标系统的运行环境、功能要求、非 功能性要求与用户达成共识。 功能性要求与用户达成共识。 问题研究集中在以下3个方面: 问题研究集中在以下3个方面: 经济可行性: 经济可行性: 技术可行性: 技术可行性: 操作可行性: 操作可行性:
结构化需求分析方法
结构化分析(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 图描述的当前系统的“逻辑模型”。
结构化分需求分析
结构化分需求分析结构化简单说,就是把一个问题拆解成一个个能解决的部分;拿需求分析举例,当下面的需求该做的时候:比如有一个业务部门提了一个数据需求,提取某个数据指标,按照需求的框架来说:一个需求包含背景、场景、解决的问题,比如需求的背景是有个客户需要查看这个数据,需求的场景这里分为了两个部分,一个部分是业务同学的场景是客户提出要数据的时候,另一个部分是客户什么时候有要数据需求,举个例子,比如客户每个月月底做周报的时候需要用到这个数据,需求解决的问题也分为两个部分,一部分是业务同学满足客户的需求,另一部分客户满足了自身的汇报需求;当从背景、场景、解决的问题这三个方向寻找答案的时候,会得出很多的解决方案:从背景的角度上分析:能否让这个需求的背景不成立,直接把数据指标面向客户;从场景的角度上分析:把不舒服的场景转换为舒服的场景,业务角度上的场景是客户要数据,能否转换为定时给客户发送数据指标;客户角度上的场景是写周报的时候要用到,能否转换为把这个指标变为客户时刻关注的指标;从解决的问题角度上分析:如果问题可以消除,最好是消除,如采用把数据指标面向客户,那么业务侧的这个问题也就不存在了;如果问题无法消除,则应减少解决问题的步骤,简化流程,客户提供数据的这一页如果数据指标固定,可否改为一键下载报表去替代手工填写;总结解决方案:(1)把数据指标做成功能,直接面向客户;(2)定时发送数据指标给到客户;(3)研发周报或报表功能;(4)人工数据库拉数据,业务侧发送;初步方案总结好后,接下来就是方案的可行性判断:基于上述的需求和方案,可行性判断主要在于两方面,一方面是价值,一方面是成本;从价值角度来说有三个方面:(1)需求本身:需求刚需程度(高、中、低)、用户使用频次(高、中、低);(2)方案本身:服务模式(重、中、轻)、是否可规模化(难、中、易);(3)价值本身:付费意愿(难、中、易)、付费价格(高、中、低);从成本角度来说有两个方面:(1)研发成本:研发成本(高、中、低)、维护成本(高、中、低);(2)业务成本:人力成本(高、中、低);把总结出的五个方案代入可行性判断的五个方面中,就可以得出最优方案,如果感觉上述的可行性判断过于定性,也可以采用定量的方式,如为需求、方案、价值、研发、业务基于团队或公司的诉求给予不同的权重,如需求(0.3)、方案(0.1)、价值(0.3)、研发成本(0.2)、业务成本(0.1),在为每个方面下属的要素赋予分数,如需求刚需程度中的高赋予5分、中赋予3、低赋予1分、研发成本中的高赋予1分、中赋予3分、低赋予5分,再通过权重乘以数值就会得出一个分数,分数越高价值越大。
软件工程实用案例 第4章 结构化需求分析
3项目范围 3.1 第一版范围 3.2 后续版本范围 3.3 限制与排除
4项目环境 4.1 操作环境 4.2 涉众 4.3 项目属性
词汇表 参考资料 附录
4.3 需求获取
4.3.3 选择信息的来源
• 1. 涉众
• 包括用户、客户、领域专家、用户替代源(市场人员、销售人员) 等。
4.4 需求分析
4.4.1 过程建模
4.4.1.1 数据流图
3. 分层结构 (3)N层图
图4-12 功能分解示意图
4.4 需求分析
4.4.1 过程建模
4.4.1.1 数据流图
3. 分层结构 (3)N层图
图4-13 食物订货系统的1层图
4.4 需求分析
4.4.1 过程建模
4.4.1.2 微规格说明
正式规定文档所需具有的条件或能力。
(3) 对(1)或(2)所描述的条件或能力的文档化表述。 其中,(1)是从用户角度定义的,(2)是从开发人员、
系统的角度定义的。
4.1 需 求
4.1.2 需求的层次
需求通常体现为三个层次:业务需求、用户需求和系 统需求。
4.1 需 求
4.1.2 需求的层次
4.3 需求获取
4.3.2 定义项目前景和范围
• 1.明确问题
P1 决策者:生产的废品过多。
• 2.发现业务需求
BR1:提供销售订单的准确性,减少因此而产生废品。
BR2:提供销售订单的准确性,在使用后3个月内,减少50%因此而产生 的废品。
4.3 需求获取
4.3.2 定义项目前景和范围
• 3.定义解决方案及系统特性
4.3 需求获取
4.3.4 需求获取的方法
结构化需求分析方法
结构化分析(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 图描述得当前系统得“逻辑模型”。
软件工程第四章结构化需求分析
数据字典
定义
数据字典是一种用于描述数据元 素及其属性的工具,它提供了数 据的详细描述和定义。
பைடு நூலகம்
内容
包括数据元素的名称、别名、类 型、长度、取值范围、默认值等 属性信息。
作用
为开发人员提供了一个统一的数 据定义和描述标准,避免了数据 不一致和歧义的问题。
03 结构化需求分析过程
问题识别
01
确定软件系统的范 围和目标
用例表
列出系统的所有用例,包括用例名称、描述、前置条件和后置条件 等。
用户故事表
以用户为中心描述系统需求,包括用户角色、场景、任务和目标等。
原型工具
低保真原型
使用简单的工具和方法创建的原型,主要用于 概念验证和用户反馈收集。
高保真原型
使用高级工具和方法创建的原型,几乎与实际 产品一样,用于详细需求分析和用户测试。
04 结构化需求分析工具
图形工具
流程图
用于描述系统或程序的逻辑流程,包括开始、结束、决策点和活动 等元素。
数据流图
用于描述数据在系统中的流动和处理过程,包括数据源、数据存储、 数据处理和数据终点等元素。
实体关系图
用于描述系统中实体之间的关系,包括实体、关系和属性等元素。
表格工具
需求规格说明书
详细列出系统需求,包括功能需求、性能需求、安全需求和接口 需求等。
步骤
首先确定系统的主要功能,然后逐层向下分解,直 到每个功能都清晰、具体、可实现。
优点
能够全面地了解系统的功能需求,有助于保 证系统的完整性。
数据流图
定义
数据流图是一种图形化表示方法,用于描述系统中数 据的流动和处理过程。
组成
包括数据流、数据存储、数据处理和外部实体等基本 元素。
结构化需求分析报告方法
结构化分析(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 图描述的当前系统的“逻辑模型”。
软件工程第四章结构化需求分析
型。
结构化分析模型
系统模型从以下不同的角度表述系统:
从外部来看,它是对系统分析上下文或系统环
境建模; 从行为上看,它是对系统行为建模; 从结构上看,它是对系统的体系结构和系统处 理的数据结构建模。
实例分析:图书馆系统
借书者 1 借书记录 包含 1 预约 M 书目
1
借/还/续借
M
图书 N
预约记录
实例分析:图书馆系统
实体:图书、借书者、管理员、借书目录、 预约记录、书目 属性给出如下:
借书者:借书者编号、姓名、性别、借书数、
最大借书数、罚金金额、有限期 图书:图书号、书目号 书目:书目号、书名、作者、出版社、丛书名、 收藏数、在馆数、预约数 借书记录:图书号、借书者编号、借出日期、 应还日期、续借次数 预约记录:书目号、借书者编号、预约日期
数据字典
数据字典是分析模型中出现的所有名字的一个 集合,并包括有关命名实体的描述 数据字典有以下两个作用:
它是所有名字信息管理的有效机制 作为连接软件分析、设计、实现和进化阶段的开发
机构的信息存储
数据字典应该由四类元素的定义组成:
数据流 数据流分量 数据存储 处理
实例分析:POS机系统
1 销售记录 1 付款 包含 M 商品 N 描述
N
1
商品描述
支付记录
实例分析:POS机系统
实体有销售记录、支付记录、商品、商品 描述 关联:
销售包含一组商品; 每个商品都有相应的描述信息; 每个支付对应一个销售。
实体的属性:
需求结构化需求分析
3.5 结构化分析
结构化开发方法
➢ 是现有的软件开发方法中最成熟,应用最广泛的方法, 主要特点是快速,自然和方便。
➢ 结构化方法总的指导思想自顶向下、逐步求精。它的基 本原则是功能的分解与抽象。
3.4.1 模型和建模
模型的类型
➢ 数学模型:描述系统技术方面的一系列数学公式 ➢ 描述模型:描述系统某些方面的叙述性的备忘录、报
表或列表等 ➢ 图形模型:描述系统的图表或系统某些方面的示意性
表示
3.4.1 模型和建模
什么是模型化方法
➢ 是通过抽象、概括和一般化,把研究的对象或问题转化 为本质(关系或结构)相同的另一对象或问题,从而加 以解决的方法。
3.4.2 结构化分析方法
可行性研究阶段主要考虑系统是否有可行的解决方 案,忽略了许多实际的数据元素.
结构化分析方法是面向数据流自顶向下逐步求精, 并进行需求分析.
➢ 将可行性研究阶段获得的高层DFD图进一步细化,把数据 流和数据存储定义到元素级.
使用数据流图
数据流图DFD以图形方式刻画业务系统中的数据 处理过程和数据流
➢ 听取用户的意见,补充遗漏部分,修改不正确部分.
1和2反复进行,不断细化DFD图,DD和IPO图,直到 所有系统元素都十分清楚.
分析追 踪数据 流程图
有补充修正
用户 复查
无补充 修正
需要分解
细化数据 流程图 不需分解
3.4.3 需求分析过程示意
Step1: 通过对现实环境的调查,获得当前系统 的物理模型
数据流图的优点
➢ 必不过早的着手系统的技术实现 ➢ 进一步了解系统和子系统的相互关系 ➢ 通过数据流图与用户交流当前系统知识 ➢ 分析建议的系统以确定是否定义了必要的数据和过程
第三章结构化方法
第三章结构化方法第三章:结构化方法3.1结构化需求分析一种面向数据流进行软件需求分析策略:自顶向下逐层分解A 三大挑战1、问题空间解释;2、人与人之间的通信;3、需求的变化性B 应对三大挑战1、提供方便通信的机制;2、鼓励需求分析人员使用问题空间的术语思考问题;3、提供定义系统边界的方法;4、提供支持抽象的基本机制;5为需求分析人员提供多种可供选择的方案;6提供特定的技术,适应需求的变化。
3.1.1基本术语数据流图:用于表示系统逻辑模型的工具,它以图形的方式描绘数据在系统中流动和处理过程反应系统逻辑功能1、数据流用于表达着分析中所要使用的、用于表达“客体”的信息。
用箭头表示2、加工用于表达在分析中所使用的、用于表达“处理”的信息。
用椭圆表示3、数据存储用于表达着分析中所要使用的、用于表达“结构化客体”的信息。
用平行线表示4、数据源与数据潭数据源是数据流的起点:数据潭是数据流的归宿地。
用矩形表示3.1.2系统功能模型表示需求分析的首要任务是建立系统功能模型,为此结构化分析方法给出了一种表达功能模型的工具,即数据流图,简称DFD3.1.3建模过程1、建立系统环境图,确定系统语境2、自顶向下,逐步求精,建立系统的层次数据流图“父图”生成“子图”1、将“父图”的每一层按其功能分解为若干个子加工。
2、将“父图”的输入流和输出流“分派”到相关的子加工。
3、在各加工之间建立合理的关联,必要时引入数据存储,使之形成一个有机的整体。
3、定义数据字典目标:依据数据系统的数据流图,定义其中包含的所有数据流和数据存储的数据结构,直到给出构成以上数据的各数据项的基本数据类型4、描述加工1、结构化自然语言结构化自然语言是介于形式语言和自然语言之间的一种语言,它虽然没有形式语言那样严格,但具有自然语言简单易懂的特点,同时又避免了自然语言结构松散的缺点。
2、判定表判定表是用于描述加工的一种工具,通常用来描述一些不易用自然语言表达清楚或需要很大篇幅才能表达清楚的加工。
第3章 结构化需求分析
为了开发出真正满足用户需求的软件 产品,首先必须知道用户的需求。 产品,首先必须知道用户的需求。
教学目的
掌握需求分析的任务 理解E-R图、数据流图、数据字典的编制 理解 图 数据流图、 理解解需求规格说明的制作
对软件需求的深入理解是软件开发工 作获得成功的前提和关键, 作获得成功的前提和关键,不论我们把设 计和编码工作做得如何出色, 计和编码工作做得如何出色,不能真正满 足用户需求的程序只会给用户带来失望, 足用户需求的程序只会给用户带来失望, 给开发者带来烦恼。 给开发者带来烦恼。
在非正式的访谈中, 在非正式的访谈中,将提出一些可以 自由回答的开放性问题, 自由回答的开放性问题,以鼓励被访问的 人员表达自己的想法,例如, 人员表达自己的想法,例如,询问用户为 什么对目前正在使用的系统感到不满意。 什么对目前正在使用的系统感到不满意。
当需要调查大量人员的意见时, 当需要调查大量人员的意见时,向被 调查的人员分发调查表是一个十分有效的 做法。 做法。
在对用户进行访谈的过程中使用情景 分析技术往往非常有效。 分析技术往往非常有效。所谓情景分析就 是对用户运用目标系统解决某个具体问题 是对用户运用目标系统解决某个具体问题 的方法和结果进行分析。 的方法和结果进行分析。
3.2.2 术
简易的应用规格说明技
这种方法提倡用户与开发者密切合作, 这种方法提倡用户与开发者密切合作, 共同标识问题,提出解决方案的要素, 共同标识问题,提出解决方案的要素,商 讨不同的方法并指定基本的需求。今天, 讨不同的方法并指定基本的需求。今天, 简易的应用规格说明技术已经成为信息系 统界使用的主流技术。 统界使用的主流技术。
快速原型应该具备的第二个特性是 容易修改” “容易修改”。如果原型的第一版不是用 户所需要的, 户所需要的,就必须根据用户的意见迅速 地修改它,构建出原型的第二版, 地修改它,构建出原型的第二版,以更好 地满足用户的需求。 地满足用户的需求。
《软件工程实用教程》第3_章_结构化需求分析
第3 章 結構化需求分析
(2)分析與綜合 從資訊流和資訊結構出發,逐步細化軟 體的所有功能,找出系統各個元素之間 的聯繫、介面特性和對設計的限制,判 斷是否存在因片面性或短期行為而導致 的不合理需求,判斷是否有用戶尚未提 出的確實有價值的潛在需求,從而提出 其中不合理的部分,增加真正需要的部 分。
第3 章 結構化需求分析
2.系統需求:系統需求是比用戶需求更具有技 術特性的需求陳述,是提供給開發者或用戶 方技術人員閱讀的,並將作為軟體開發人員 設計系統的起點與基本依據。系統需求需要 對系統的功能、性能、數據等方面進行規格 定義。
第3 章 結構化需求分析
(1)功能需求 功能需求是軟體系統的最基本的需求表述,包 括對系統應該提供的服務,如何對輸入做出 反應,以及系統在特定條件下的行為描述。 在某些情況下,功能需求還必須明確系統不 應該做什麼,這取決於開發的軟體類型、軟 體未來的用戶、以及開發的系統類型。所以, 功能性的系統需求,需要詳細地描述系統功 能特徵、輸入和輸出介面、異常處理方法等。
第3 章 結構化需求分析
需求開發活動: 將系統級的需求分為幾個子系統,並 將需求中的一部份分配給軟體組件。 瞭解相關品質屬性的重要性。 商討實施優先順序的劃分。 將所收集的用戶需求編寫成規格說明 和模型。 評審需求規格說明
第3 章 結構化需求分析
需求管理活動包括: 定義需求基線 評審提出的需求變更、評估每項變更 的可能影響從而決定是否實施它。 以一種可控制的方式將需求變更融入 到專案中。 使當前的專案計畫與需求一致。 估計變更需求所產生影響並在此基礎 上協商新的承諾(約定)。
第3 章 結構化需求分析
本章學習內容: 1.掌握需求分析的基本概念 2.明確需求分析應遵循的原則 3.掌握如何使用需求獲取技術來進行數據 採集 4.掌握結構化分析的思想與過程 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 图描述的当前系统的“逻辑模型”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
x
1
3
2
1.1
1.2
1.3
2.1 2.3
2.2
1.1 1.3
4.1.2 数据流图的画图步骤
(1)把系统看成一个整体 (2)明确输入输出 (3)系统为实现功能,内部必然有信息处理、传递、存储 (4)画出内部信息处理的分层DFD (5)检查分层DFD中的每一个内部处理可否进一步细分,若均
很具体,则结束绘制;否则把将每一个抽象的内部信息处理 再看成一个整体,再重复(2)——(4)的工作,进行剖析, 如此一级级解剖,直到所用处理步骤都很具体为止。
计算
订货单
应收款
编制 财务 报表
经理
数据流图多个数据流组合的图例
A C
*T
B
B
AT+
C
B A
T*
C
A C
+T
B
A C+TB NhomakorabeaB
A T
+
C
* 与 +或
+ 互斥
多个数据流之间的关系
数据流图的分层
➢ 出现十几个甚至几十 个加工的数据流图不 直观,不易理解
➢ 按照系统的层次结构 进行逐步分解,并以 分层的数据流图反映 这种结构关系,能清 楚地表达和容易理解 整个系统。
第四章 结构化软件需求分析
本章主要内容
4.1 结构化需求分析的功能模型——数据流图(DFD) 4.2 结构化需求分析的功能模型——数据字典 4.3 结构化需求分析的功能模型——加工逻辑说明(小
说明) 4.4 结构化需求分析的数据模型——实体关系图(ER图) 4.5 结构化需求分析的行为模型——状态转换图 4.6 需求分析阶段性成果——需求规格说明书
• 数据流图(Data Flow Diagram,DFD 图) 是用于表示软件系统逻辑模型(系统的功能模 型)的一种图形,一个基于计算机的信息处理 系统由数据流和一系列的转换构成,这些转换 将输入数据流变换为输出数据流。数据流图反 映客观现实问题的工作过程。
• 它用简单的图形记号分别表示数据流、加工、 数据存储以及外部实体。数据流图中没有任何 具体的物理元素,只是描述数据在系统中流动 和处理的情况,具有直观、形象、容易理解的 优点。
P2.2.1
识别 读者身份
图书管理员
标识部分(层次化的功能编号)
功能描述部分(动宾词组) 功能执行的角色(人,部门,计 算机程序),通常可省略
数据存储
数据存储表示某种数据保存后的逻辑统称。不 是指保存数据的物理地点或物理介质。 •流入数据存储数据流(指向数据存储箭头)
• 将处理后的数据写入或修改到数据存储中
➢ 对于资格审查合格的考生可以参加答卷,系统根据学校提 供的试题及答案进行自动判卷,并给出分数及答题信息, 供考生查询;
➢ 最后系统根据学校的录取分数线进行录取,并将录取信息 发送给考生。
实例研究
• 银行储蓄系统的业务流程: ➢ 储户填写的存款单或取款单由业务员键入系统; ➢ 如果是存款则系统记录存款人姓名、住址(或电话号
•流出数据存储的数据流(从数据存储发出箭头)
• 从数据存储中查询获取数据,不改变原来的数据
D2 产品
D5 职工
D2 产品
计算 销售量 销售量
累计销售量单价
D2 产品销售帐
计算销售总额
商品编号#_
数据流
数据流是指处理功能的输入或输出(箭头表示 数据流向) 。
•例如:数据,订单,查询要求等
合格订单
编辑
码)、身份证号码、存款类型、存款日期、到期日期、 利率、密码(可选)等信息,并印出存单给储户; ➢ 如果是取款而且开户时留有密码,则系统首先核对储户 密码,若密码正确或存款时未留密码,则系统计算利息 并印出利息清单给储户。 ➢ 要求画出分层的数据流图,并细化到2层数据流图。
实例研究——识别外部实体及输入输出
• 数据字典(DD):对数据流图中包含的所有
元素的详细定义,是DFD的补充。 • 小说明:对DFD图中最底层加工逻辑的描述,通
常用结构化语言、判定表、判定树等形式。
4.1.1 数据流图的基本成分
• 数据流图用来记录系统中的数据和数据在特定 的过程中的流动,即数据如何被采集、处理、 保存和使用的(围绕软件系统的功能)
4.1 结构化需求分析的功能模型—数据流图
• 结构化(SA)法基本思想 —— “分解”和“抽象
➢”分。解 : 对 于 一 个 复 杂 的 系
x
统,为了将复杂性降低到可
1
3
以掌握的程度,可以把大问
2
题分解成若干小问题,然后 分别解决(如右图)。
1.1
1.2
1.3
2.1 2.3
2.2
1.1 1.3
➢抽象:分解可以分层进行,即先考虑问题最本质的
环境图(顶层数据流图)
➢ 环境图(context diagram)也称为顶层数据流图 (或0层数据流图),它仅包括一个数据处理过程, 也就是要开发的目标系统。
➢ 环境图的作用是确定系统在其环境中的位置,通过确 定系统的输入和输出与外部实体的关系确定其边界。
招生系统需求描述
➢ 学校首先公布招生条件,考生根据自己的条件报名,之后 系统进行资格审查,并给出资格审查信息;
➢ 外部实体:储户、业务员。 ➢ 输入数据:如果需要储户输入密码,储户才直接与系统
进行交互。储户填写的存款或取款信息通过业务员键入 系统,可以将存款及取款信息抽象为事务。 ➢ 输出数据:存款单,利息清单。
数据流图的图形符号
或
加工。对输入数据进行变换以产生输出数据,其中要注明加工的名字。
或
外部实体,即数据输入源(Source)或数据输出汇点(Sink)。其中要注明数
据源或数据汇点的名字。
或
数据存储。要用名词或名词性短语为数据存储命名。
数据流。描述被加工数据及传递方向。箭头旁边要注明数据流的名字,可用名 词或名词性短语命名。
属性,暂把细节略去,以后再逐层添加细节,直至涉及
到最详细的内容,这种用最本质的属性表示一个系统
的方法就是“抽象”。
结构化需求分析的功能模型
• 分层数据流图(DFD):一是指明数据在系统中 流动时如何被变换,二是描述对数据流进行变换 的功能和子功能。数据流图可以用于信息域的分 析,并作为功能建模的基础。
外部实体
外部实体指系统以外又与系统有联系的人或事物。 它表达了该系统数据的外部来源和去处。例如:人、组 织、外部系统等等。 • 外部实体是数据的来源(谁提供了最初始的数据?) • 外部实体是数据的去处(数据对谁有价值?)
读者
图书 管理员
馆长
读者
图书 管理员
加工(数据处理)
处理指对数据的逻辑处理功能,也就是对数据的变 换功能。 别名:功能、处理过程,数据加工