1、第3 章 结构化需求分析,本章学习内容: 1掌握需求分析的基本概念 2明确需求分析应遵循的原则 3掌握如何使用需求获取技术来进行数据采集 4掌握结构化分析的思想与过程 5掌握数据流建模技术,第3 章 结构化需求分析,3.1需求分析概述 3.1.1 需求分析的任务将用户对软件的一系列要求、想法转变为软件开发人员所需要的有关软件的技术规格说明 1用户需求:用户需求是关于软件的一系列想法的集中体现,涉及软件的功能、操作方式、界面风格、报表格式、用户机构的业务范围、工作流程,以及用户对软件应用的展望等。,第3 章 结构化需求分析,特点 : (1)用户需求直接来源于用户。需求可以由用户主动提出,也可以通
2、过与用户沟通、交流或者进行问卷调查等方式获得。由于用户对计算机系统认识上的不足,分析人员有义务帮助用户挖掘需求。 (2)用户需求需要以文档的形式提供给用户审查。因此,需要使用流畅的自然语言和简洁清晰的直观图表来表述,以方便用户的理解与确认。 (3)可以把用户需求理解为用户对软件的合理请求。这意味着,必须全面理解用户的各项要求,但又不能全盘接受所有的要求。 (4)用户需求主要是为用户方管理层撰写的,但是用户方的技术代表、软件系统今后的操作者以及开发方的高层技术人员,也有必要认真阅读用户需求文档。,第3 章 结构化需求分析,2系统需求:系统需求是比用户需求更具有技术特性的需求陈述,是提供给开发者或
3、用户方技术人员阅读的,并将作为软件开发人员设计系统的起点与基本依据。系统需求需要对系统的功能、性能、数据等方面进行规格定义。,第3 章 结构化需求分析,(1)功能需求功能需求是软件系统的最基本的需求表述,包括对系统应该提供的服务,如何对输入做出反应,以及系统在特定条件下的行为描述。在某些情况下,功能需求还必须明确系统不应该做什么,这取决于开发的软件类型、软件未来的用户、以及开发的系统类型。所以,功能性的系统需求,需要详细地描述系统功能特征、输入和输出接口、异常处理方法等。,第3 章 结构化需求分析,(2)非功能性需求 非功能性需求包括对系统提出的性能需求、可靠性和可用性需求、系统安全以及系统对
4、开发过程、时间、资源等方面的约束和标准等。性能需求指定系统必须满足的定时约束或容量约束,一般包括速度(响应时间)、信息量速率(吞吐量、处理时间)和存储容量等方面的需求。,第3 章 结构化需求分析,(3)数据要求 数据需求包括:输入数据、输出数据、加工中的数据和保存在存储设备上的数据等。,第3 章 结构化需求分析,3需求分析的任务(1)确定系统的综合需求 (2)分析系统的数据需求 (3)导出系统的逻辑模型 (4)修改系统开发计划,第3 章 结构化需求分析,3.1.2 需求分析的过程,第3 章 结构化需求分析,3.1.2 需求分析的过程 (1)调查研究对目标系统的运行环境、功能要求、非功能性要求与
5、用户达成共识。 问题研究集中在以下3个方面: l 经济可行性: l 技术可行性: l 操作可行性:,第3 章 结构化需求分析,3.1.2 需求分析的过程 (2)分析与综合从信息流和信息结构出发,逐步细化软件的所有功能,找出系统各个元素之间的联系、接口特性和对设计的限制,判断是否存在因片面性或短期行为而导致的不合理需求,判断是否有用户尚未提出的确实有价值的潜在需求,从而提出其中不合理的部分,增加真正需要的部分。,第3 章 结构化需求分析,3.1.2 需求分析的过程 (3)编写需求分析的文档 (4)需求验证:检验需求能否反映用户的意愿 有效性检查一致性检查 完备性检查 现实性检查 可检验性检查,第
6、3 章 结构化需求分析,3.2 需求获取 3.2.1 需求获取的内容 1物理环境 2界面 3用户或人的因素 4功能 5文档 6数据 7安全性 8资源 9质量保证,第3 章 结构化需求分析,3.2.2 需求获取的方法 1研究资料法 范围: 企业外部的资料,例如,各项法规、市场信息等; 企业内部的各种资料,例如,企业的有关计划、指标、经营分析报告、合同、帐单和统计报表等。 收集资料时一定要明确目的,必须收集和选择符合目的的资料来阅读。,第3 章 结构化需求分析,3.2.2 需求获取的方法 1研究资料法 作用: 解生产经营情况和正常的操作程序; 理解信息的处理方式; 有助于弄清需求。局限性:资料只反
7、映静态的和历史的情况,无法反映企业的动态活动和过程,因此,还必须借助于其他方法获取更复杂、更全面的需求。,第3 章 结构化需求分析,2问卷调查法 步骤: (1)确定必须收集哪些事实和从哪些人收集数据。 (2)基于所需的事实数据,确定采用自由格式或还是固定格式的调查问卷。 (3)设计调查问题,确保问题明确、没有歧义或遗漏。 (3)复制和分发调查问卷,组织调查,注意回收。,第3 章 结构化需求分析,调查问卷的优点和缺点: 多数调查问卷可以被快速地回答。人们可以在方便的时候完成和返回调查问卷。 如果希望从许多人处获取信息,调查问卷是一种低成本的数据采集技术。 调查问卷形式允许保护个人的隐私,并便于整
8、理和归纳。 由于是背对背地进行调查,对回答问题的质量难于把握。 对于模糊的问题、隐含的问题不便于采用问卷的方法。,第3 章 结构化需求分析,3用户访谈 步骤: (1)选择访谈对象。 (2)准备访谈资料:包括访谈内容和进度安排等。 (3)进行访谈,并注意做好访谈记录,访谈内容要经过被访者的认可和确认。 (4)整理访谈记录。,第3 章 结构化需求分析,访谈方法的优点和缺点: 访谈为分析人员提供了与访谈对象自由沟通的机会。通过建立良好的人际关系,有利于让访谈对象愿意为该项目的开发做出努力。 通过访谈可以挖掘更深层次的用户需求。 访谈允许开发人员使用一些个性化的问题。 成功的访谈在很大程度上取决于分析
9、人员的经验与技巧。 访谈占用的时间较多,访谈后的资料整理,也需要花费较多的时间。,第3 章 结构化需求分析,4实地观察法 原则: 明确需要观察的内容、地点以及观察的周期,并明确如何进行观察? 从用户那里得到去现场观察的许可? 事先通知将要被观察的用户,告诉他们观察的目的;禁止打断别人的工作,边观察,边记录; 不要事先进行假设。,第3 章 结构化需求分析,实地观察方法的优点和缺点: 通过观察得到的数据准确、真实; 通过观察有利于弄清复杂的工作流程和业务处理过程,而这些有时是很难用文字描述清楚的; 但在特定的时间进行观察,并不能保证得到平时的工作状态,有些任务不可能总是按照观察人员观察时看到的样式
10、执行; 这种方法比较花费时间,数据整理比较麻烦。,第3 章 结构化需求分析,3.3 结构化分析方法概述 3.3.1 结构化分析思想 结构化是把软件系统功能当作一个大模块,根据分析与设计的不同要求,进行模块分解或者组合。 基本思路就是把整个系统开发过程分成若干阶段,每个阶段进行若干活动,每项活动应用一系列标准、规范、方法和技术,完成一个或多个任务,形成符合需求的软件产品(成果)。,第3 章 结构化需求分析,采用“自顶向下,逐步求精”的方式,X系统被分解成3个子系统 :,第3 章 结构化需求分析,3.3.2 结构化分析方法 指导性原则: 在开始建立分析模型之前先理解问题,而不应急于求成,甚至在问题
11、未被很好地理解之前,就产生了一个解决错误问题的软件; 开发模型,使用户能够了解将如何进行人机交互; 记录每个需求的起源和原因,这样能有效地保证需求的可追踪性和可回溯性; 使用多个需求分析视图,建立数据、功能和行为模型。,第3 章 结构化需求分析,给需求赋予优先级,优先开发重要的功能,提高开发生产效率; 努力删除含糊性。 结构化方法的局限性: 不提供对非功能需求的有效理解和建模; 不提供对用户选择合适方法的指导,也没有对方法适用的特殊环境的忠告; 往往产生大量文档,系统需求的要素被隐藏在一大堆具体细节的描述中; 产生的模型不注意细节,用户总觉得难以理解,因而很难验证模型的真实性。,第3 章 结构
12、化需求分析,3.4 数据流程图 3.4.1 数据流程图的基本成份1数据流 2加工 3数据存储 4源点和终点,第3 章 结构化需求分析,3.4.2 数据流图的绘制 1数据流程图的绘制步骤 (1)找出系统的输入和输出 (2)画数据流程图的内部 (3)为每一个数据流命名 (4)为加工命名,第3 章 结构化需求分析,2分层数据流程图举例 教学管理数据流程顶图,第3 章 结构化需求分析,2分层数据流程图举例 教学管理数据流程中图,第3 章 结构化需求分析,2分层数据流程图举例 学籍管理数据流程底图,第3 章 结构化需求分析,2分层数据流程图 (1)组成 顶层数据流程图描述了整个软件系统的作用范围,对系统
13、的总体功能、输入和输出进行了抽象,反映了系统和环境的关系。 中间层次的数据流程图是通过分解高层数据流和加工得到的。 低层次数据流程图通常有很多中间层,甚至79层。这种分解可以不断重复,直到新的数据流程图中每个数据加工的功能明确、相关的数据流被严格定义为止。,第3 章 结构化需求分析,(2)分层原则 父图与子图的关系 平衡规则 分层程度,第3 章 结构化需求分析,3.4.3 数据流程图的特征与用途 用途: 可以依靠数据流程图来实现从用户需求到系统需求的过渡; 数据流程图可以按照功能将系统分解为许多子系统, 用做开发者与用户之间的信息交流工具。数据流程图的特点: 抽象性 概括性,第3 章 结构化需
14、求分析,3.5 数据字典 3.5.1 数据字典的定义与用途 1数据字典的定义:数据字典是关于数据信息的集合,是数据流程图中所有元素严格定义的场所。 2数据字典的用途 数据流程图和数据字典一起构成了系统的逻辑模型; 有助于改进不同的开发人员或不同的开发小组之间的通信; 是存储文件或数据库设计的基础 ; 在实施阶段,还可参照数据字典描述数据。,第3 章 结构化需求分析,3数据字典的种类 数据项 数据流 数据存储(文件) 加工,第3 章 结构化需求分析,3.5.2 数据字典的定义方法 数据字典的定义式可使用的符号:,第3 章 结构化需求分析,3.5.2 数据字典的定义方法 数据流条目,数据流名:注册
15、申请 简述:每学期开学需要学生注册登记 别名:无 组成:注册申请=学号+姓名+入学日期+注册日期 数据量:2000次/开学一周 峰值:第一周每天下午1:00到5:00点有300次 注释:到2006年还将增加到3000人,第3 章 结构化需求分析,文件条目,文件名:成绩档案 简述:包括所有在册学生各门课程的考试成绩和学分信息 别名:无 组成:成绩档案=学号+姓名+课程名称+考试成绩+学分 数据量:2000*6次考试结束一周内 峰值:学期最后一周每天下午1:00到5:00点有2000*6次 注释:到2006年还将增加到3000人,第3 章 结构化需求分析,数据项条目,文件名:学号 简述:每个在校学
16、生的学生编号 别名:无 组成:学号= XX + XX + XXX年级 专业 序号 值类型:7位数字 取值范围: 注释:到2006年还将增加到3000人,第3 章 结构化需求分析,3.5.3 加工逻辑的描述方法 1结构化语言 例:计算某学生的考试成绩优秀率和中以下的比率 若成绩优秀比率大于70若表现优良 则获得一等奖学金否则获得二等奖学金 若成绩优秀比率小于70且大于50若表现优良 则获得二等奖学金否则获得三等奖学金,第3 章 结构化需求分析,2判定表判定表的构造步骤:列出所有基本条件,填写判定表的左上限。在本例中,奖学金的发放依据三个条件:成绩优秀比率、成绩中下比率、表现。 列出所有的基本操作,填写判定表的左下限。在本例中,奖学金的发放分为4个等级。,第3 章 结构化需求分析,计算所有可能的条件组合,确定规则个数,填写判定表的右上限。 将每一组合指定的操作,添入右下限相应的位置。 简化规则,合并及删除等价的操作。 合并原则是:找出操作在同一行的,检查上面的每一个条件是否影响该操作的执行,如果条件不起作用,则可以合并等价操作,否则不能简化。 如果对判定表进行了化简,就需要将化简后的结果重新排列。,第3 章 结构化需求分析,3判定树,