UML应用:业务内涵的分析抽象&表达

     上一篇,架构设计的UML图形思考 ,简单介绍了图形思考设计,表达设计对于架构师的重要意义,以及简单介绍了使用统一建模语言UML描述类以及类之间的继承关系,这种描述还停留在写代码,表达的可是说是如何写出类代码来,接下来我们要学习用UML表示业务的内涵,分析业务的内涵,加以抽象,将细节隐藏起来,用UML图象表现出来。


一、系统分析

       什么是系统分析?

            大多数情况下,一看到系统分析这个字眼,我们经常迷失于其字面的意义,以为分析的对象是「系统」,这是一种常见的迷失!其实,分析的对象是系统所处的「业务领域知识」(Domain Knowledge)才是正确的。就如同计算机专家James Martin所说:
     「OOA不是要去分析实际的系统;而是用来分析人们对系统的专业认知和做法---- 从收集到的领域概念来分析出业务内涵。
        (Object-oriented analysis is not an approach that models reality. Instead, it models the way people understand and process reality -- through the concepts they acquire.)

      系统分析的分析对象:领域知识

          所以系统分析的主要对象并非「系统」本身,而是分析专家们如何以其专业知识来叙述系统,亦即,专家心中的「业务(领域)知识」才是系统分析的主要对象。所以焦点是业务知识(Domain Knowledge) ,而不是系统。
      业务(领域)知识 = 业务内涵:

   分析系统的内涵,抽象,表达,让开发者懂得业务的内涵

     依据专业知识找到相应的类,相应的对象,用UML表达出来

     知识的组成元素:概念

        什么是概念:

业务(领域)概念
知识的组成要素是「概念」(Concepts)。
◎ 领域知识(Domain Knowledge)的组成要素是领域概念(Domain Concepts)。
◎ 概念有它的属性(Attribute),概念之间有其关系(Relationship)。
◎ 系统分析(或OOA)就是要分析领域知识里的概念,并以UML的类别(Class)等示来表示之。

概念(Concept)是抽象的,代表一群实体,是沟通的重要媒介。

「概念是人人互相分享的。概念提供了能让人人互相了解的共通词汇。」
(Concepts are shared by others. Concepts provide the common vocabulary for communication.)

       概念理解实例:

概念理解举例:

例如:「请买杯咖啡」,咖啡是个概念,具有这种概念的人,都会了解这句话的意思。他会凭其经验而想到真实的咖啡。
◎ 概念代表一个群体---- 「类别」(Class),人们藉由天赋的能力运用经验去想到其所代表的实际东西---- 「对象」(Object)。

例如您听到「买一只吉他」,这「吉他」概念让您想到经验中的吉他,而去乐器行买一只「真实的吉他」回家。
找出领域知识里的概念,就是找出软件系统的对象和类别。
◎ 例如麦当劳企业有汉堡、薯条、玩具、特餐、点餐、订购玩具、顾客、员工、玩具商、分店等等的概念,将对应到软件系统的类别,所以在麦当劳的软件系统里就会有汉堡、薯条、玩具、特餐、点餐、订购玩具、顾客、员工、玩具商、分店等等的类别。


二、建模举例

嫦娥奔月:

『后羿从西王母处请来不死之药,嫦娥偷吃了这颗灵药,成仙了,身不由主飘飘然地飞往月宫之中,在那荒芜的月宫之中度着无边的寂寞岁月。』

虽然嫦娥可能是传说虚构的,并非事实(Reality),但是确确实实是我们心中的清晰概念,传说中的主角,所以是个重要的类别,表示如下:


跟「嫦娥」具有密切关联的概念是:月亮
和仙丹,常表达如下:


不仅上述的名词概念而已,其攸关的动作也常是重要概念。动词常常代表一项事件(Event)的发生,而人们常从人、事、时、地、物等去描述一个事件的发生情境。
◎ 譬如,吃仙丹就有动作(吃)的对象---仙丹,动作的主角---嫦娥,当然还有地点、时间,甚至仙丹来源等等。

三、模型与代码的关系:

在传统观点里,大多先绘制UML模型图,然后才开始构思程序码的撰写,使得UML建模成为撰写程序码的前置工作,因此许多程序员将UML建模视为多余的负担。为了节省开发成本,就将省略掉UML建模的工作了。在新潮的观点里,UML模型与代码是软件系统本体的两个观点(或面向),两者没有先后顺序关系,而是并存和兼具于同一个人的脑海里。这就像两只眼睛看到的景象并存于一个人的脑海里一般,如此才能看到更真实的世界,也能做出更完美的软件系统来。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值