您好,欢迎访问三七文档
第三章需求分析关键问题:“为了满足用户的需要系统必须做什么?”对目标系统提出完整、准确、清晰、具体的要求。在分析软件需求和书写软件需求规格说明书的过程中,分析员和用户都起着关键的、必不可少的作用。在需求分析阶段结束之前,系统分析员应该写出软件需求规格说明书,以书面形式准确地描述软件需求。需求分析的结构化分析方法都遵守下述准则:(1)必须理解并描述问题的信息域,根据这条准则应该建立数据模型。(2)必须定义软件应完成的功能,这条准则要求建立功能模型。(3)必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。(4)必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。Tounderstandwhy,Standish(1995)askedthesurveyrespondentstoexplainthecausesofthefailedprojects.Thetopfactorswerereportedtobe1.incompleterequirements(13.1%)2.lackofuserinvolvement(12.4%)3.lackofresources(10.6%)4.unrealisticexpectations(9.9%)5.lackofexecutivesupport(9.3%)6.changingrequirementsandspecifications(8.7%)7.lackofplanning(8.1%)8.systemnolongerneeded(7.5%)对软件需求的完全理解对软件开发工作的成功是至关重要的1、确定综合要求⑴功能要求:系统必须完成的所有功能⑵性能要求:做得怎样?例:响应时间,内存,后台存储,安全性,无故障运行时间……⑶可靠性和可用性需求:可靠性需求定量地指定系统的可靠性。可用性与可靠性密切相关,它量化了用户可以使用系统的程度。⑷出错处理需求:说明系统对环境错误应该怎样响应。3.1需求分析的任务1、确定综合要求⑸接口需求:接口需求描述应用系统与它的环境通信的格式。常见的接口需求有:用户接口需求;硬件接口需求;软件接口需求;通信接口需求。⑹约束:设计约束或实现约束描述在设计或实现应用系统时应遵守的限制条件。常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。⑺逆向需求:逆向需求说明软件系统不应该做什么。⑻未来可能的扩充要求:未来扩充及修改。3.1需求分析的任务2、分析数据要求⑴建立概念性数据模型:E-R图⑵形象描绘数据结构:层次方框图,Warnier图⑶数据结构规范化(“范式”):减少数据冗余,避免数据操作异常3、导出逻辑模型:DFD+状态转换图+E-R+DD+IPO4、修正计划:重估成本、进度等。3.1需求分析的任务1、访谈访谈有两种基本形式,分别是正式的和非正式的访谈。当需要调查大量人员的意见时,向被调查人分发调查表是一个十分有效的做法。在访问用户的过程中使用情景分析技术往往非常有效。情景分析技术的用处主要体现在下述两个方面:(1)它能在某种程度上演示目标系统的行为,从而便于用户理解,而且还可能进一步揭示出一些分析员目前还不知道的需求。(2)由于情景分析较易为用户所理解,使用这种技术能保证用户在需求分析过程中始终扮演一个积极主动的角色。3.2获取需求的方法2、面向数据流自顶向下求精①沿DFD回溯:DFD的输出端是系统的最终目的。向从“输出端”到“输入端”回溯确定每个数据元素的来源,可加细DFD及DD,并将相关算法记录在IPO图中。②用户复查:从输入端开始,分析员借助数据流图、数据字典和IPO图向用户解释输入数据是怎样一步一步地转变成输出数据的。通过复查,再次完善数据流程图。③细化DFD:两条原则加细前后的I\O须相同。分解到须考虑具体实现的代码时即可仃止。3.2获取需求的方法3.2获取需求的方法面向数据流自顶向下求精的过程不需分解有补充修正无补充修正分析追踪数据流图用户复查细化数据流图需要分解3、简易的应用规格说明技术一种面向团队的需求收集法,使用简易的应用规格说明技术分析需求的典型过程如下:①进行初步的访谈:通过用户对基本问题的回答,初步确定待解决的问题的范围和解决方案。然后开发者和用户分别写出“产品需求”。②会议准备:邀请开发者和用户双方组织的代表出席会议,并在开会前预先把写好的产品需求分发给每位与会者。要求每位与会者在开会的前认真审查产品需求,并且列出作为系统环境组成部分的对象、系统将产生的对象以及系统为了完成自己的功能将使用的对象。此外,还要求每位与会者列出操作这些对象或与这些对象交互的服务(即处理或功能)。最后还应该列出约束条件(例如,成本、规模、完成日期)和性能标准(例如,速度、容量)。3.2获取需求的方法3、简易的应用规格说明技术③会议讨论:第一个问题是,是否需要这个新产品。每位与会者就展示出他们在会前准备好的列表,针对某个议题大家共同创建一张组合列表,由协调人主持讨论这些列表。组合列表将被缩短、加长或重新措辞,以便更准确地描述将被开发的产品。讨论的目标是,针对每个议题(对象、服务、约束和性能)都创建出一张意见一致的列表。分组讨论,每个小组的工作目标是为每张列表中的项目制定小型规格说明。小型规格说明是对列表中包含的单词或短语的准确说明。每个小组都向全体与会者展示他们制定的小型规格说明,供大家讨论、修改、完善。④由一名或多名与会者根据会议成果起草完整的软件需求规格说明书。优点:开发者与用户不分彼此,齐心协力,密切合作;即时讨论并求精;3.2获取需求的方法4、快速建立软件原型快速建立软件原型是最准确、最有效、最强大的需求分析技术。快速原型就是快速建立起来的旨在演示目标系统主要功能的可运行的程序。快速原型应该具备的特性:“快速”和“容易修改”。快速地构建和修改原型,通常使用下述3种方法和工具:(1)第四代技术:第四代技术包括众多数据库查询和报表语言、程序和应用系统生成器以及其他非常高级的非过程语言。(2)可重用的软件构件:软件构件可以是数据结构(或数据库),或软件体系结构构件(即程序),或过程构件(即模块)。(3)形式化规格说明和原型环境。3.2获取需求的方法1、分析建模所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。按照结构化分析准则,需求分析过程应该建立3种模型,它们分别是数据模型、功能模型和行为模型。(1)实体-联系图:描绘数据对象及数据对象之间的关系,是用于建立数据模型的图形。(2)数据流图:描绘当数据在软件系统中移动时被变换的逻辑过程,指明系统具有的变换数据的功能,因此,数据流图是建立功能模型的基础。(3)状态转换图(简称为状态图):指明了作为外部事件结果的系统行为。状态转换图描绘了系统的各种行为模式(称为“状态”)和在不同状态间转换的方式。状态转换图是行为建模的基础。3.3分析建模与规格说明2、软件需求规格说明书3.3分析建模与规格说明1.引言1.1编写目的1.2项目背景1.3定义1.4参考资料2.任务概述2.1目标2.2运行环境2.3条件与限制3.数据描述3.1静态数据3.2动态数据3.3数据库介绍3.4数据词典3.5数据采集4.功能需求4.1功能划分4.2功能描述5.性能需求5.1数据精确度5.2时间特性5.3适应性6.运行需求6.1用户界面6.2硬件接口6.3软件接口6.4故障处理7.其它需求3.4概念模型最常用的表示概念性数据模型的方法:实体—联系方法(Entity-RelationshipApproach),简称E-R模型。E-R模型包含三个基本成分:“实体”、“联系”、“属性”(1)实体:是客观世界中存在的且可相互区分的事物。它可以是人或物,也可以是具体事物或抽象事物。–例如:教师、学生、课程是实体。实体用矩形框表示,如:教师3.4概念模型(2)联系:客观世界中的事物彼此之间有联系,描述实体与实体之间的关系。联系有三种:–1:1(一对一联系)例如:实体“校长”与“大学”之间的联系为“1:1”–1:N(一对多联系)例如:实体“学校”与“院系”之间的联系为“1:N”–M:N(多对多联系)例如:实体“学生”与“课程”之间的联系为“M:N”–联系用菱形框表示,如:(3)属性:属性是实体或联系所具有的性质。通常一个实体或联系由若干属性来刻画。3.4概念模型…………教师学生学教课程ID#姓名姓名性别性别ID#教师ID课程ID成绩学生ID课程ID学时ID#课程职称1NNM3.5数据规范化为减少数据冗余,避免出现插入异常或删除异常,简化修改数据的过程,通常需要把数据结构规范化范式:定义消除数据冗余的程度第一范式–每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构。第二范式–满足第一范式条件,而且每个非关键字属性都由整个关键字决定(而不是由关键字的一部分来决定)。第三范式–符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述(即一个非关键字属性值不依赖于另一个非关键字属性值)一般使用第三范式。在需求分析过程中应该建立起软件系统的行为模型。状态转换图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果系统将做哪些动作(例如,处理数据)。1、状态状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。系统对事件的响应,既可以是做一个(或一系列)动作,也可以是仅仅改变系统本身的状态,还可以是既改变状态又做动作。在状态图中定义的状态主要有:初态(即初始状态)、终态(即最终状态)和中间状态。在一张状态图中只能有一个初态,而终态则可以有0至多个。状态图既可以表示系统循环运行过程,也可以表示系统单程生命期。3.6状态转换图2、事件事件是在某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。例如,内部时钟表明某个规定的时间段已经过去,用户移动或点击鼠标等都是事件。简而言之,事件就是引起系统做动作或(和)转换状态的控制信息。3.6状态转换图3、符号活动表:事件名(参数表)/动作表达式事件表达式:事件说明[守卫条件]/动作表达式其中,事件说明:事件名(参数表)。如果同时使用事件说明和守卫条件,则当且仅当事件发生且布尔表达式为真时,状态转换才发生。如果只有守卫条件没有事件说明,则只要守卫条件为真状态转换就发生。动作表达式是一个过程表达式,当状态转换开始时执行该表达式。3.6状态转换图电话系统的状态图闲置拨号通话断线拨号音timer=0do:响拨号音且timer+1超时do:响蜂鸣音存储的信息do:播放信息接通中do:试接通振铃do:振铃忙音do:响忙音拿起听筒数字数字有效号码已接通受话人回话受话人挂断电话挂断电话超时挂断电话超时无效号码信息播完占线3.7其他图形工具1.层次方框图层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。树形结构的顶层是一个单独的矩形框,它表达完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再分解的元素)例如:P46页图3-33.7其他图形工具层次方框图例-某IT公司产品的数据结构产品硬件服务处理机存储器外部设备软件软件服务硬件维修培训系统软件应用软件操作系统编译程序软件工具3.7其他图形工具2.Warnier图Warnier图也用树形结构描绘信息,且更丰富,能表达逻辑关系。例:操作系统(P1)编译程序(P2)系统软件编辑工具(P3)软件工具测试工具(P4)设计辅助工具(P5)软件产品应用软件3.7其他图形工具3.IPO图IPO图是输入/处理/输出图的简称,能够方便地描述输入数据、对数据的处理和输出数据之间的关系。基本形式是在左边的框中列出有关的输入数据,在中间的框内列出主要的处理,在右边的框内列出产生的输出数
本文标题:第三章:需求分析
链接地址:https://www.777doc.com/doc-3194927 .html