面向对象的系统分析(一)-系统分析方法

面向对象的观点,首先是在程序设计语言中得到表达与实现。正如结构化程序设计的思想很快被用到系统分析与系统设计的方法中去一样,面向对象方法也很快引起系统分析方法论者的注意.在OOP蓬勃发展的80年代,面向对象的系统分析(OOA)和面向对象的系统设计(OOD)也开始发展起来。进入90年代以后,OOA和OOD的方法逐渐走向实用化,一些专家按面向对象思想,对系统分析和系统设计工作的步骤,方法,图形工具等进行详细的研究,提出了许多不同的实施方案。

    这些方法的共同点是:从对象识别和限定出发,提出一套图示或表格,描述了系统的静态与动态属性,进而进行系统设计,直到编制出程序。这些方法之间的区别主要在于信息收集和工作步骤粗细划分不同,以及在面向对象方法的各个要点上的侧重及强调不同。


    什么是系统分析:

    系统分析是指在建立复杂的大系统之前,应事先对要建立的系统加以全面的科学的研究与考察。分析过程就是提取一个系统需求的过程,即是指为了满足用户的需求,系统必须做什么,而不是指系统将如何实现。

    以往的分析方法有:功能分解方法;数据流方法;信息模型方法。这些方法已经在系统开发中被研究和实践了较长时间,在许多应用中已取得了成功,但也有失败。而面向对象分析则是综合了上述三种的优点,并用面向对象的概念统一了这些优点之后才发展起来的

    1.功能分解方法

    功能分解就是用一些步骤和子步骤划分功能。它可表示为:

    功能分解=功能+子功能+功能接口

    功能分解的策略是以先前的经验为依据,选择对面临的系统所期望的处理步骤和子步骤。中心问题是系统需要什么处理,然后,系统分析员再说明处理和功能界面。

    功能分解方法要求人们将问题空间映射为功能和子功能,分析人员将系统必须提供的功能和子功能编写成文档,不过,所产生的规格说明只能间接地反映原来的问题空间。因此,这种方法难以让分析人员和用户肯定需求是否精确地描述了系统所要完成的工作。采用功能分解方法,问题空间的理解既没有显式的表达也无法验证其精确性。因此,采用功能分解方法来进行整个系统分析是不够理想的2.

    2.数据流方法

    数据流方法是另一种从问题空间到某种表示的映射方法,即通常所说的“结构化分析”方法。它可以表示为:

    数据流方法=数据(和控制)流+数据(和控制)变换+数据(和控制)存储+终结符+小说明+数据字典

    使用数据流方法,分析人员将问题空间映射为数据流和加工。数据流图的用于表示要研究的系统的数据流动,它采用图形表达的形式,对于理解用户的思想是非常有用的。但由于用一张图不可能表示出一个大系统的所有细节,因此引入多层结构的数据流图,采取自顶向下逐层分解的方法。

    结构分析有两种策略:一种是将当前系统映射为数据流图,另一种是进一步细化数据转换或处理。所需的其他文档包括用数据字典和过程规格说明表示数据流和底层变换,较上层的图是概貌图,而过程规格说明表示细节。

    数据流方法只说明做什么,而不管怎样去做。而且,它仅强调数据,缺乏对功能的分析,尤其缺乏对整个系统各个事件发生顺序的分析与控制,因而在系统的分析方面是不全面的,也为进一步的系统设计和实现带来较大困难。

    3.信息模型方法

    信息模型的主要建模工具是实体关系图,并发展成为语义数据模型。以数据来模拟客观世界有助于获取问题空间的实质。信息模型方法可表示为:

    信息模型=对象+属性+关系+超类/子类+关联对象

    现已开发和应用两种信息模型方法:一种是构造属性表,将属性放到对象中,加上事件之间的关系,定义超类/子类和关联对象,最后进行规范化处理;另一种与前一种大部分相同,只是先找出问题空间的对象,并用属性来描述它们。后一种方法是将问题空间直接映射成模型中的对象,这种映射方式有了很大的改进,但还需要更深入的更细化的映射关系。

转自http://www.kaifa6.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值