基于任务驱动模式的软件工程与UML建模技术项目三需求分析

上传人:206****923 文档编号:51932108 上传时间:2018-08-17 格式:PPT 页数:74 大小:1.29MB
返回 下载 相关 举报
基于任务驱动模式的软件工程与UML建模技术项目三需求分析_第1页
第1页 / 共74页
基于任务驱动模式的软件工程与UML建模技术项目三需求分析_第2页
第2页 / 共74页
基于任务驱动模式的软件工程与UML建模技术项目三需求分析_第3页
第3页 / 共74页
基于任务驱动模式的软件工程与UML建模技术项目三需求分析_第4页
第4页 / 共74页
基于任务驱动模式的软件工程与UML建模技术项目三需求分析_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《基于任务驱动模式的软件工程与UML建模技术项目三需求分析》由会员分享,可在线阅读,更多相关《基于任务驱动模式的软件工程与UML建模技术项目三需求分析(74页珍藏版)》请在金锄头文库上搜索。

1、项目三 需求分析 项目三 需求分析 任务一 认识需求分析 任务二 需求分析图形工具任务三 结构化分析技术 任务四 编写文档 项目三 需求分析 任务一 认识需求分析需求分析是软件定义时期的最后一个阶段,它的基本任 务是准确地回答“系统必须做什么”这个问题。在需求分析阶段产生的文档是软件需求规格说明书,它以书面形式准确地描述软件需求。在分析软件需求和书写软件需求规格说明书的过程中,分析员和用户都起着关键的、必不可少的作用:用户不知道怎样用软件实现自己的需求,因此,用户必须把他们对软件的需求尽量准确、具体地描述出来;分析员对用户的需求并不十分清楚,必须通过与用户沟通获取用户对软件的需求。项目三 需求

2、分析 需求分析和规格说明是一项十分艰巨复杂的工作。不仅在整个需求分析过程中应采用行之有效的通信技术,而且必须严格审查、验证需求分析的结果。目前,有很多用于需求分析的结构化分析方法,所有这些分析方法都遵守下述准则:(1) 必须理解并描述问题的信息域(建立数据模型)。(2) 必须定义软件应完成的功能(建立功能模型)。(3) 必须描述作为外部事件结果的软件行为(建立行为模型)。(4) 必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。项目三 需求分析 操作一 需求分析概述需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求 定义,再由需求

3、定义转换到相应的形式功能规约(需求规格说明)的过程。需求分析虽处于软件开发过程的开始阶段,但它对于整个软件开发过程以及软件产品质量是至关重要的。在计算机发展的早期,所求解问题的规模小,需求分析未能得到重视。随着软件系统复杂性的提高及规模的扩大,需求分析在软件开发中所处的地位愈加突出,从而也愈加困难 ,它的难点主要体现在以下几个方面: (1) 问题的复杂性。这是由用户需求所涉及的因素繁多引起的,如运行环境和系统功能等。项目三 需求分析 (2) 交流障碍。需求分析涉及人员较多,如软件系统用户、问题领域专家、需求工程师和项目管理员等,这些人具备不同的背景知识、处于不同的角度、扮演不同角色,造成 了相

4、互之间交流的困难。(3) 不完备性和不一致性。由于各种原因,用户对问题的陈述往往是不完备的,其各方面的需求还可能存在着矛盾,需求分析要消除其矛盾,形成完备及一致的定义。(4) 需求易变性。用户需求的变动是一个极为普遍的问题,即使是部分变动,也往往会影响到需求分析的全部,导致不一致性和不完备性。项目三 需求分析 为了克服上述困难,人们主要围绕着需求分析的方法及 自动化工具(如CASE技术)等方面进行研究。近几年来已提出许多软件需求分析与说明的方法(如结构化分析方法和面向对象分析方法),每一种分析方法都有独特的观点和表示法,但都适用下面的基本原则:(1) 必须能够表达和理解问题的数据域和功能域。数

5、据域包括数据流(即数据通过一个系统时的变化方式)、数据内容和数据结构,而功能域反映上述三方面的控制信息。(2) 可以把一个复杂问题按功能进行分解并可逐层细化。通常软件要处理的问题如果太大太复杂就很难理解,若划分成几部分,并确定各部分间的接口,就可完成整体功能。在需求分析过程中,软件领域中的数据、功能和行为都可划分。项目三 需求分析 (3) 可针对问题建模。模型可以帮助分析人员更好地理解软件系统的信息、功能和行为,这些模型也是软件设计的 基础。1. 需求分析的任务软件需求分析的任务是:深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求,借助于当前

6、系统的逻辑模型导出 目标系统逻辑模型,解决目标系统“做什么”的问题(在可行性研究和项目开发计划阶段对这个问题的回答是概括的、粗 略的)。项目三 需求分析 1) 确定系统的综合需求系统分析员和用户需共同确定对系统的综合需求。表3-1给出了综合需求的类别、定义和相关举例,其中最重要的是功能需求,其应确定系统必须完成的所有功能。在确定功能需求的基础上,还将根据组织机构和使用用户的具体情况,确定系统在性能、运行等方面的一系列需求。项目三 需求分析 表3-1 需 求 说 明 表项目三 需求分析 2) 分析系统的数据要求任何一个软件系统本质上都是信息处理系统,系统必须处理的信息和系统应该产生的信息在很大程

7、度上决定了系统的面貌,对软件设计有深远影响,因此,必须分析系统的数据要求,这是软件需求分析的一个重要任务。分析系统的数据要求通常采用建立数据模型的方法。软件系统复杂的数据由许多基本的数据元素组成,数据元素之间的逻辑关系用数据结构来表示。利用数据字典可以全面准确地定义数据,但是数据字典的缺点是不够直观。为了提高可理解性,常常利用图形工具辅助描绘数据结构。常 用的图形工具有层次方框图和Warnier图。项目三 需求分析 3) 导出系统的逻辑模型综合上述两项分析的结果可以导出系统详细的逻辑模型 ,通常用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。4) 修正系统开发计

8、划根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。项目三 需求分析 5) 开发原型系统快速原型方法的核心思想是:在软件开发的早期快速建立目标软件的原型,让用户对原型进行评估并提出修改意见,当原型几经改进最终确定后,它将由软件设计和编码阶段进化成软件产品;或者设计和编码人员遵循原型所确立的外部特征实现软件产品。项目三 需求分析 2. 需求分析的步骤1) 问题识别问题识别是指从系统的角度来理解软件并评审软件范围是否恰当,确定对目标系统的综合要求,即软件的需求,提出这些需求的实现条件,以及需求应达到的标准。问题识别 的另一项工作是建立分析

9、所需要的通信途径(如图3-1所示),以保证能顺利地对问题进行分析。项目三 需求分析 图3-1 问题识别的通信途径项目三 需求分析 2) 分析、综合并导出软件的逻辑模型分析人员对获取的需求进行一致性的分析检查,在分析、综合中逐步细分软件功能,划分各个子功能。这里也包括对数据域进行分解,并分配到各个子功能上,以确定系统的构成及主要成分,并用图文结合的形式,建立起新系统的逻辑模型。项目三 需求分析 3) 编写文档编写文档的步骤如下:(1) 编写“需求说明书”,把双方共同的理解与分析结果用规范的方式描述出来,作为今后各项工作的基础。(2) 编写初步用户使用手册,着重反映被开发软件的用户功能界面和用户使

10、用的具体要求,用户手册能强制分析人 员从用户使用的观点考虑软件。(3) 编写确认测试计划,作为今后确认和验收的依据。(4) 修改完善项目开发计划。在需求分析阶段对开发的系统有了更进一步的了解,所以能更准确地估计开发成本、进度及资源要求,因此对原计划要进行适当修正。 项目三 需求分析 4) 需求评审需求评审的内容包括:系统定义的目标是否与用户的要求一致;系统需求分析阶段提供的文档资料是否齐全;文档中的所有描述是否完整、清晰、准确反映用户要求;与所有其他系统成分的重要接口是否都已经描述;被开发项目的数据流与数据结构是否足够、确定;所有图表是否清楚,在不补充说明时能否理解;主要功能是否已包括在规定的

11、软件范围之内,是否都已充分说明;设计的约束条件或限制条件是否符合实际;开发的技术风险是什么;是否考虑过软件需求的其他方案;是否考虑过将来可能会提出的软件需求;是否详细制定了检验标准,它们能否对系统定义是否成功进行确认。项目三 需求分析 操作二 需求分析方法需求分析的过程如图3-2所示。需求分析方法有功能分解方法、结构化分析方法、信息建模方法和面向对象分析方法等。图3-2 需求分析的过程项目三 需求分析 1. 功能分解方法功能分解方法是将一个系统看成是由若干功能构成的一 个集合,每个功能又可划分成若干个加工(即子功能),一个加工又可进一步分解成若干加工步骤(即子加工)。因此,功能分解方法有功能、

12、子功能和功能接口三个组成要素。它的关键策略是利用已有的经验,对一个新系统预先设定加工和加工步骤,着眼点放在这个新系统需要进行什么样的加工上。功能分解方法本质上是用过程抽象的观点来看待系统需求,符合传统程序设计人员的思维特征,而且分解的结果一般已经是系统程序结构的一个雏形,实际上它已经很难与软件设计明确分离。项目三 需求分析 这种方法存在一些问题,它需要人工来完成从问题空间到功能和子功能的映射,既没有显式地将问题空间表现出来,也无法对表现的准确程度进行验证,而问题空间中的一些重要细节更是无法提示出来。可以看出,功能分解方法缺乏对客观世界中相对稳定的实体结构进行描述,而将基点放在相对不稳定的实体行

13、为上,因此,基点是不稳定的,难以适应需求的变化。项目三 需求分析 2. 结构化分析方法结构化分析方法是一种从问题空间到某种表示的映射方法,它由数据流图表示,是结构化重要的、被普遍接受的表示系统,它由数据流图和数据词典构成。这种方法简单实用,适用于数据处理领域问题。该方法沿现实世界中的数据流进行分析,把数据流映射到分析结果中。但现实世界中的有些要求不是以数据流为主干的,就难于用此方法。如果分析是在现有系统的基础上进行的,应先除去原来物理上的特性,增加新的逻辑要求,再追加新的物理上的考虑,这时,分析面对的并不是问题空间本身,而是过去对问题空间的某一映射,在这种焦点已经错位的前提下,进行分析显然是十

14、分困难的。项目三 需求分析 该方法的一个难点是确定数据流之间的变换,而且数据 词典的规模也是一个问题,它会引起所谓的“数据词典爆炸”,同时对数据结构的强调很少。3. 信息建模方法信息建模方法是从数据的角度来对现实世界建立模型的,它对问题空间的认识是很有帮助的。该方法的基本工具是 ER图(实体联系图),其基本要素由实体、属性和联系构成。该方法的基本策略是从现实世界中找出实体,然后再用属性来描述这些实体。项目三 需求分析 信息模型和语义数据模型是紧密相关的,有时被看做是 数据库模型。在信息模型中,实体E是一个对象或一组对象,实体把信息收集在其中。关系R是实体之间的联系或交互作用,有时在实体和关系之

15、外,再加上属性。实体和关系形成一个网络,描述系统的信息状况,给出系统的信息模型。 信息建模和面向对象分析很接近,但仍有很大差别。在ER图中,数据不封闭,每个实体和它的属性的处理需求不是组合在同一实体中的,没有继承性和消息传递机制来支持模型 。但ER图是面向对象分析的基础。项目三 需求分析 4. 面向对象分析方法面向对象的分析是把ER图中的概念与面向对象程序设计语言中的主要概念结合在一起而形成的一种分析方法。在该方法中采用了实体、关系和属性等信息模型分析中的概念,同时采用了封闭、类结构和继承性等面向对象程序设计语言中的概念。项目三 需求分析 操作三 需求获取方法1. 访谈访谈是最早开始使用的获取

16、用户需求的技术,也是迄今为止仍然广泛使用的需求分析技术。访谈有两种基本形式,分别是正式的和非正式的访谈。正式访谈时,系统分析员将提出一些事先准备好的具体问题。在非正式访谈中,分析员将提出一些用户可以自由回答的开放性问题,以鼓励被访问人员说出自己的想法。当需要调查大量人员的意见时,向被调查人分发调查表是一个十分有效的做法。分析员仔细阅读收回的调查表,然后再有针对性地访问一些用户,以便向他们询问在分析调查表时发现的新问题。项目三 需求分析 所谓情景分析,就是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析。在访问用户的过程中使用情景分析技术往往非常有效。主要体现在下述两个方面:(1) 它能在某种程度上演示目标系统的行为,从而便于用户理解,而且还可能进一步揭示出一些分析员目前还不知道的需求。(2) 由于情景分析较易为用户所理解,使用户在需求分析过程中始终扮演一个积极主动的角色,以获得更多的用户需求。项目三 需求分析 2. 面向数据流自顶向下求精软件系统的基本功能都是把输入数据转变

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号