方法主要研究系统输入输出的转化方式,对数据本身及控制方面并不很重视。传统的结构分析方法sa(structure analysis)、sadt(structure analysis and design technique)和可执行/可操作模型paisley、descartes以及形式方法vdm(vienna design method)、z等都属于这一类。
* 面向数据的方法强调以数据结构的方式描述和分析系统状态,jsd和关系实体(er)模型都属此类。
* 面向控制的方法强调同步、死锁、互斥、并发以及进程激活和挂起,数据流图就是典型的面向控制的方法,sadt是以面向控制的方法为辅的。
* 面向对象的方法把分析建立在系统对象以及对象间交互的基础上,通过对象的属性、分类结构和集合结构定义和沟通需求。从对象模型、动态模型和功能模型三个方面对问题进行描述。面向对象的方法正在成为需求分析中的一个热点,并展现出良好的应用前景。yourdan和coad的ooa方法、booch的方法、jacobson 的oose、rumbaugh的omt方法等,都是这一方法的典型流派。
2. 面向对象的需求工程方法
目前,作为解决软件危机的一个最佳对策,是采用面向对象(oo)的技术。面向对象的开发方法强调从问题域的概念到软件程序和界面的直接映射。事实上,把客观世界看成许多对象更接近人类的自然思维方式,而且对象相对稳定。软件需求的变动往往是功能的变动,而功能的执行者——对象一般不会有大的变化。这便是oo技术产生与发展的根源。另外,oo技术支持信息隐蔽、数据抽象与封装,使得软件的开发、修改和维护易于进行。
面向对象的方法已应用到软件生命周期的各个阶段,而且oo技术自然地支持快速原型法和快速应用开发。对需求工程而言,由于人类自然地趋向于用“对象”的观点或方法来认识问题和描述问题,所以用基于对象的概念模型来建立问题域模型成为需求分析员和用户交流的有效手段。面向对象的需求分析的基本步骤如下:
(1)与用户广泛接触,收集和查看相关资料,对问题域有一个大致的了解。在此基础上,提炼和标识对象。
(2) 描述对象(类)的属性。
(3)描述对象之间的关系,如整体关系和从属关系等。
(4)描述问题域的“剧情”,即描述问题域中完成每个任务需要的对象间的协作关系。
以上四个步骤不是孤立进行,而是相互联系的。通过这四个步骤的反复执行,就可以建立一个基于对象的问题域模型。
booch是面向方法最早的倡导者之一,他提出了面向对象的软件工程的概念。1991年,他将以前面向ada的工作扩展到整个面向对象的设计领域,booch的方法比较适合于系统的设计和构造。
rumbaugh等人提出了面向对象的建模技术(omt),采用面向对象的概念,引入各种独立于语言的表示符。这种方法用对象模型、动态模型、功能模型和实例模型共同完成对系统的建模。所定义的概念和符号可用于软件开发的分析、设计和实现的全过程。开发人员无须在开发过程的不同阶段进行概念和符号的转换。特别适用于分析和描述以数据为中心的信息系统。
coad和yourdon采用5个步骤来确定一个多层的oo模型,5个步骤分别对应模型的5个层次。即:(1)找出类和对象——类和对象层;(2)定义属性——属性层(3)识别结构与关系——结构层;(4)确定主题——主题层;(5)定义服务——服务层。
它是最早的面向对象的分析与设计方法之一,该方法简单易学,适合于面向对象的初学者使用,但由于该方法在处理能力方面的局限,目前已很少使用。
jacobson于1994年提出了
项目经理胜任力免费测评PMQ上线啦!快来测测你排多少名吧~
http://www.leadge.com/pmqhd/index.html