面向对象分析与设计
上QQ阅读APP看书,第一时间看更新

1.3.1 面向对象分析(OOA)

面向对象分析是指在软件开发过程中,应用建模语言对获取的业务模型进行细化,建立目标系统的需求模型,即系统的功能模型和面向问题域的结构模型,并以此作为面向对象设计的基础。因此,面向对象分析的首要任务就是建立系统的功能模型和结构模型。

目前,面向对象分析中主要使用UML的用例模型描述系统的功能结构模型,这也是面向对象方法中最重要的模型。首要的原因是这种模型是面向用户的,即模型使用的图形符号和建模方法都是直观的和面向用户的,用户不需要专门的培训就能够理解模型所表达的语义。其次,用例模型建模所需要的知识和描述的问题也都是属于问题域的。因此,这种模型的最主要的优点就在于它既能够充分表达用户需求,又能够便于开发人员与用户的交流。

面向对象分析也是一种分析方法,这种方法的主要内容就是利用从问题域的词汇表中找到的类和对象来分析系统的概念模型,从而描述目标系统的概念结构。

面向对象是计算机科学中的一个基本概念,它不仅仅适用于程序设计,也适用于软件系统的用户界面、数据库,甚至计算机架构的设计。这种广泛适用的根本原因是,面向对象能够帮助我们处理多种不同系统中固有的复杂性。

传统的结构化方法指导开发人员利用“模块”作为基本构件来构建复杂的软件系统。类似地,面向对象方法则利用类和对象作为基本构件,指导开发者构建基于对象或面向对象的软件系统。

1.面向对象分析的步骤和方法

软件开发过程中,系统分析和系统设计之间的边界往往是比较模糊的,但这两种活动所关注的重点是不同的。分析所关注的重点是分析所面临的问题域,目标是从问题域的词汇表中发现类和对象,从而实现对现实世界中的问题建模。面向对象分析的主要任务是建立系统的功能模型和结构模型,并以此作为面向对象设计的基础。当然,此阶段建立的功能模型和结构模型都属于用户视图,或者说是属于问题域的。

从技术的角度来说,面向对象分析既是一种建模方法,也是一种分析方法。

一方面,面向对象分析的工作过程就是获取、建立、修改和完善系统用例模型和结构模型的过程。另一方面,面向对象分析方法通过分析获取的功能模型获得该问题域的词汇,并以此找到目标系统需要的对象(或类)的方法来建立起目标系统的结构模型。所以,面向对象分析过程主要分为如下几个主要步骤。

1)需求获取:指软件分析人员与用户(领域专家)进行交流,获取并记录用户需求。

2)用例建模:指分析人员分析获取的需求,从而识别出系统的参与者和用例以及它们之间的关系,建立目标系统的用例模型,也称为功能结构模型。

3)概念结构建模:分析用例模型中出现的词汇,构造系统的问题域词汇表,找出相应的概念(对象或类),从而建立目标系统的概念模型,也称为结构模型。

4)编制需求文档:按照某种规范,编制需求规格说明文档。

5)需求评审:对编制好的需求文档进行需求评审,评审是为了找出文档中可能存在的缺陷或错误,并及时改正。

2.面向对象分析的主要特点

与结构化分析方法不同,面向对象分析方法中通常使用用例模型表示系统的功能结构,这种模型从分析系统用户与系统之间的交互入手,通过分析用户与系统之间的关系分析系统的功能结构,更能充分表达用户观点。另外,这种方法中的事件流建模比较详细地描述了用户与系统交互的细节,这时的分析人员能够更容易地得出与系统业务逻辑相关的词汇,从而获取系统的结构模型。

之所以要使用用例模型的原因是这种模型是面向用户的,即模型使用的图形符号和建模方法是直观的和面向用户的,用户不需要专门的培训就能够理解模型所表达的语义。因此,这种模型便于开发人员与用户进行交流。

其次用例模型所需要的知识和所描述的问题也都是属于用户的知识域(问题域)的。因此,这种模型的最主要的优点就在于它能够充分表达用户需求。

面向对象系统分析和设计代表了一种渐进式的开发方式。它并没有完全抛弃传统方法的优点,而是建立在传统方法中那些已经被证明是有效方法的基础之上的。虽然很多优秀的软件系统都是使用结构化分析和设计方法开发出来的,然而,传统方法中的“算法分解”技术在处理复杂性较高的系统时是有局限性的,而面向对象技术可以更好地解决这一问题。