3.2 面向对象分析(一)名词法

Analysis Phase分析阶段

   在软件工程,分析是一种过程,把用户需求转变为系统需求

   系统规格说明,也称为逻辑结构,是开发人员眼中的系统

     已经有了哪些业务规则、业务逻辑?

     还有哪些事需要提醒客户的?

   大的、复杂系统的开发,有两种主要的分析方法

     面向功能的分析Function-oriented analysis

       concentrating on the decomposition of complex functions to simply ones.

     面向对象分析Object-oriented analysis

       identifying objects and the relationship between objects.

     在抽象层面,面向功能的分析法用得多一点

       把系统分成模块

     在模块层面,面向对象分析法用得多一点

       模块的功能如何实现?--- OOAD技术!
     从“用户的角度”到“开发人员的角度”之间的差异

      

Object Oriented Analysis 面向对象分析主要步骤

   Identifying objects 识别对象

   Organising the objects: 组织对象

     classifying the objects identified, so similar objects can later be defined in the same class.

   Identifying relationships between objects: 定义对象之间的关系

     this helps to determine inputs and outputs of an object.

   Defining operations of the objects: 定义对象的操作

     the way of processing data within an object.

     Also known as ‘responsibility assignment’

     这一步,主要在设计阶段完成

   Defining objects internally: 定义对象内部细节

     information held within the objects.
Three ways to do Object Oriented Analysis (there are more…)
   1)Conceptual model (Larman) 概念模型,又称“名词法”

     Produce a “light” class diagram

   2)Analysis model with stereotypes (Jacobson) 分析模型

     Boundaries, entities, control.

   3)CRC cards (Beck, Cunningham) CRC法,类/职责/协作

     Index cards and role playing.
   A good analyst knows more than one strategy and even may mix strategies in order to identify the objects and relationships for the design      phase.

    一个好的分析师掌握多种技术,知道如何混合使用各种技术。目标只有一个: 发现对象、定义对象之间的关系。
概念模型

   概念模型 conceptual model 表示了问题领域的的 “概念”及其关系,也称 为领域模型 ‘domain model’

   UML图形表示为 “没有定义操作的类图”

     它能够显示:概念 Concepts、概念之间的关系 Associations of concepts、概念的属性 Attributes of concepts

      

名词法定义概念类

   名词法定义概念(conceptual class)

     重用或者修改已有的模型 Reuse or modify existing models.

       This is the first, best, and usually easiest approach

     借助行业、公司内部法的“概念类列表 ” Concept Category List

     在需求描述中查寻名词(短语)Finding Concepts with Noun Phrase Identification.

 


    复习: 面向对象分析与结构化分析方法之间的最大差异是 A central distinction between object oriented and structures analysis:

       前者根据对象划分系统,而后者根据功能 division by concepts (objects) rather than division by functions.
概念类列表 The Concept Category List Table

  

Finding Concepts with Noun Phrase Identification 名词短语法

   方法

     在问题领域的文本描述中,标识出名词、名词短语,把它们作为候选的概念类或者属性 Identify the noun and noun phrases in textual         descriptions of a problem domain and consider them as candidate concepts or attributes

     对发现的名称(短语)进行分析,辨别是合适的概念类吗?概念可以合并吗?等等

     定义概念类之间的关系

     定义概念类的属性

   注意

     不能机械地转换“名称 ----> 概念类”

     自然语言描述的文字有歧义、重复、一词多意、一意多词等,要仔细分析

     比如英语,复数一般就不需要了,students\student, 只要student即可
小结

   领域(用户的角度)、系统(开发人员的角度)

   概念模型 == 领域模型  概念类 == 领域概念

   如何寻找、定义领域内的概念类?

   方法一:名称法

     利用已有

     查找概念类列表

     从问题描述中寻找名词、名词短语,进行分析

   方法二:分析模型法

   方法三:CRC法

posted @ 2019-03-15 14:03  otr  阅读(1643)  评论(0编辑  收藏  举报