需求工程第三讲-需求分析与建模资料
- 格式:ppt
- 大小:1.37 MB
- 文档页数:14
需求工程的方法过程、方法和技术描述的重要性建模的作用需求工程的维度♦表示维(代表需求的可维护、可验证的程度)⏹非形式的:自然语言⏹半形式的:图形语言(如:UML,DFD,等)⏹形式的:数学或逻辑语言(如:Z,等)♦内容维(代表需求工程的进行程度)⏹模糊的客观世界现象⏹明确的需求规格说明♦一致性维⏹代表某个投资者的观点得到全部投资者的认可需求工程的三维视图非形式非形式形式规格说明表示一致的程度模糊一般完全个人观点公共的观点表示维内容维接受度维再论描述的重要性♦软件开发:获取描述+逐步精化♦需求:是过程的起点需求代码设计系统需求问题描述什么、怎样、相互转化♦传统地,需求应该说明‘什么’而不说明‘怎样’⏹但是这不很容易区分:●一辆小汽车做什么?●一个WEB浏览器做什么?⏹在某个抽象层次上的‘怎样’形成下一个层次上的‘什么’♦Jackson&Zave的工作提供了一个区分:⏹‘什么’涉及系统的目的●对系统来说是外部的●是应用领域的特性⏹‘怎样’涉及系统的结构和行为●对系统是内部的●是机器领域的特性需求需求需求设计设计设计系统子系统单元什么什么什么怎样怎样怎样关注于问题♦问题先于解决方案⏹硬件和软件都能正常运行,但它起的作用却不是所想要的⏹对提早发现潜在的困难有帮助,困难越后发现越难解决♦计算机系统和现实世界的关系计算机系统计算机系统以外的世界解决方案在此问题在此世界和计算机之间的连接需求处于环境之中♦机器⏹我们称要被开发出来的软件系统为机器⏹硬件是为了运行软件而存在的,因此是机器的一部分♦应用领域⏹机器将与它所处的环境发生交互⏹建立机器为了实现现实世界中的某个目的⏹定义机器的环境,就是定义应用领域⏹应用领域常常是人类活动的系统♦实现的决策是出于那些在应用领域中没有基础的需求⏹例子:字典要存放在Hash表中;病人记录要存放在一个面向对象数据库中需求的环境零售企业系统客户银行帐户部门仓库供应商订购,付款帐单信用状态帐单,查询订购财务报告发货通知运送报告需求的环境借书还书续借需求就是描述♦指代:⏹环境中的实体:为它规定一个名字⏹观察到的现象:告诉你怎样识别它,并为它规定一个名字⏹指代通常是非形式的,但它将一个模糊的现象映射到一个形式的(或者说可表达的)语言上♦定义⏹为一个术语给出形式的定义,使这个术语能在其它描述中使用⏹定义或多或少是有用的,但它却是没有对错的需求就是描述♦可反驳的描述:领域的特性⏹陈述领域的某种特性,这种特性在原理上是可反驳的●可能实际上并不会去反驳它,但应该有这样的意识⏹可反驳性依赖于对我们正在描述的领域中的这个被指代的现象的一种询问♦一个粗略的框架⏹是要被开发出来系统描述的一个尝试性描述●允许包含未定义的术语例子♦指代:MOTHER(X,M):表示M是X的母亲♦定义:CHILD(X,Y) ::= MOTHER(Y,X)∨FATHER(Y,X)♦可反驳的描述:对所有M和X有,MOTHER(X,M) →⌝MOTHER(M,X)♦粗略的框架:每个人实际上都只属于一个家庭描述的语气问题♦描述的不同语气⏹直述:给出一个事实⏹询问:问一个问题⏹命令:传递一个命令⏹假设:陈述一种可能⏹希求:表达一种愿望需求是希求式的♦需求一定包含“应该做什么”♦对需求工程来说,一般应该有的语气:⏹领域特性:直述式语气⏹需求:希求式语气♦语气随开发进程不断变化需求描述需求的表示维坐标语言语言的形式化程度需求的内容维:模型♦现实中的三类模型⏹图示模型:一个雕塑,可视化⏹类比模型:一架模型飞机,使能测试经验的决策⏹分析模型:表示社会经济的一组数学方程,使能分析所描述的系统的可能行为需求中的模型分析模型类比模型理解问题,为问题世界的相关部分建模映射为实现,比如:用数据库存放信息模型的抽象性♦模型不仅仅是描述⏹它具有自己的现象,和它自己的关于这些现象之间的关系●只有当模型的现象按一种系统的方法对应到要被建模的领域的现象时,这个模型才是有用的。
第3章需求分析及功能建模方法3.1 需求分析概述3.1.1 需求分析概念1、所谓需求分折:就是对待开发的系统要做什么,完成什么功能的全面描述。
2、需求分析的工作:通过对需求的调查、了解、观察和分析,通过对原始数据的收集、分类和抽象,并采用有效的技术、工具,对原始资料进行加工整理,描述开发目标、实现的功能及其相互关系等活动的集合;3、需求的定义:客户对一个待开发的系统在实现目标、完成功能、应达到的性能、安全性、可靠性等方面的期望和要求的集合;4、需求获取的困难:(1) 软件功能复杂;(2) 需求的可变性;5、需求分析阶段的主要任务:分析当前的业务流程,包括体系结构,各职能部门完成的主要任务、关系及其交流的信息。
6、需求分析的结果通常以模型等建模工具和方法描述系统的信息流、功能结构及完成各功能需要的数据。
7、功能模型和软件需求规格说明书是软件开发的依据,将指导后续的开发工作。
8、需求分析工作是系统分析员与用户不断交互的过程中完成的。
3.1.2 系统分析员的职能1、系统分析员的主要要任务:是确定应用信息系统及软件产品应该达到的各项功能性要求和非功能性要求,即用户要做什么。
2、系统分析员应该具备的素质:(1) 获取需求的能力;(2) 管理及沟通能力;(3) 技术素养;3.1.3 需求获取的方法常用的几种获取需求的方法:(1)面谈;(2)实地观察;(3)问卷调查;(4)查阅资源;3.1.4 需求分析过程1、标识问题:(1) 需求分析的第一步,通过对问题的识别和标识获得所求解问题及其运行环境的理解;(2) 标识问题从现行系统的业务流程做起,理解现行系统的业务流程;(3) 在标识理解需求的同时,还要注意确定系统的人机界面;2、建立需求模型:(1) 模型是对现实原形所作的一种抽象,其本质是只关心与研究内容有关的因素,而忽略无关的因素,其目的是把复杂的事物变得简单,便于认识和分析;(2) 目前常用的模型方法主要有DFD数据流图和IDEFO,都属于结构化分析方法,其特征是抽象和分解;(3) 首先对应用领域进行全面的分析,发现并找出同类事物的本质,用抽象方法把这类事物的非主要方面剔除,把握住事物的内部规律或本质,就可以找到解决办法;然后采用自上而下逐步求精的方法对复杂的问题进行分解;(4) 结构化分析及建模方法的主要优点:(A) 不过早陷入具体的细节;(B) 从整体或宏观入手分析问题;(C) 通过图形化的模型对象直观地表示系统要做什么,完成什么功能;(D) 图形化建模方法方便系统分析员理解和描述系统;(E) 模型对象不涉及太多的技术术语,便于用户理解;3、描述需求:(1) 需求描述的目标:对软件项目功能性和非功能性的需求全面描述;(2) 功能性需求:指需要计算机实际解决的问题或实现的具体功能,明确描述系统必须做什么,实现什么功能以及输入输出等;(3) 非功能性需求:软件项目对实际运行环境的要求;(4) 需求描述主要由需求模型和需求说明书组成,说明书侧重文字说明,内容如下:需求概述;功能需求;信息需求;性能需求;环境需求;其他需求;(5) 在对需求进行分析过程中,系统分析员要经常考虑的问题:(A) 描述的需求是完全的吗?(B) 需求描述是正确的和一致的吗?(C) 描述的这些需求是可行的、实际可操作的吗?(D) 描述中的每一条需求都是客户需要的吗?4、确认需求:1、评审委员会审核下列内容:功能需求;数据需求;性能;数据管理;其他需求。