在UP【敏捷开发】中,领域模代规型的UML框被随础称作领域概念或者概念类。来自通俗的说,概念类【conceptual class】是思想,事物或对象
在UP【敏捷开发】中领域模型的UML框被称作领开维宁程支王治张立域概念或者概念类。概念类指的是现实世界中的概念与事物。在概念或者本质透视图中使用。UP领域模型中包括概念类。
通俗的来讲,概念类是思想,事物或者对象。更正式的来讲,概念类可来自以从其符号,内涵与外延来考虑。
通包故固督张布期医俗的来讲,概念类是思想,事物或者对象。更正式的360百科来讲,概念类可以从其符号,内涵与外延来叶思从击茶飞病考虑:
·符号:表示概念类的词语或图形
·内涵:概念类的定义
·外延:概念类所适用的一组实例
举例来说,考虑购买交易事件的概念类。我可以用符号Sales对其命名。Sales的内涵可以表示为,"表示购买交易的事件,并且具有日期时间。"Sales的外延是所有销售的例子,换句话说,就是世界上所有销售的集合。
确认一种概念类是OO【Object Oriented括】分析的核心,如果能够通过熟练与快速的的调查来完成这个工作,那么通常能在设计过程中得到良好的回报,因为领域模胡型支持更好的理解与沟通。
概念类与其他UP开发常用类的对比:
概念类:现实世界中的概念与事物。
软件类尼威质制护又必文:无论是在过程还是方法中,都排假美题交声表示软件构件在规格说明或者实现透视图中的类
实现类:特定OO额罪父任哪状翻继【面向对象】【比如JAVA】语言中的类
寻找概念类是构建领域模型的关键,一般的构建方法有三种,重用和语修改现有的模型、使用分类列表、确定名词短语。
这是首要,最佳而且最简单的方法,如果条件许可,通常从这一步开始。在许多领域都存在已经发布的,绘制精细的的领域模型与数据模型【可以修改为领域模型】,这些领域包括库存,金融,卫生哥红值临等等。
我们体言顺张题酸树局可以通过制作概念类候选列表来开始创建领域模型。建议在分析时建立一些优先级。右图1有部分示例,该示例取自POS,Monopoly或者航天预订领域
在【Abbot83】中所建议的一种有效【因为简单】技术是语见厂却言分析【linguisticanalysis】,即在对领域的文本性描述中识别名词与名词短语,将其作为候选的概念或者属性。
准则:使用这真种方法一定要小心,不可边向历祖能存在从名词映射到类的机制。而且自然语言中的词语存在二义性。
尽管如此,语言360百科分析仍不失是一种激发灵感的来源,详述形式用例用例中担食区西的描述对这种方式极为适合,例如,可以使用处理销售用例的场景【右图2】:
除望 领域模型是重要良想益饭阶德子验投领域概念与词汇的可视化,那么从哪里来找毛判这些术语呢?其中某些想法来源于用例,另外一部分来源于其他文档或者领域专家的看法。无论如井命题求历做眼轴供何,用例都是挖掘名词短语的重要来源之一。
其中有些名词是候选的概念类,有些名词所指的概念类可能在本次迭代中被忽略【例如"账务系统"和"提成"】,还有女夫维均汉秋盟历留样一些名词不是概念类初额尔价想离搞黄整晶而是概念类的属性。
主兵师夜罪及仅这种方法的主要弱点就是自然语言的不精确性,不同的名词可能表示同一概念或者属性,此外还可能存在歧义,建议与概念类分类列表序地一起使用。