UML软件工程组织

数据模型:找到最合适的设计(1)
2001-03-31· ·QQ新人类 ··yesky

 

  如果你询问一个开发者在开发新的或者加强版的应用时,什么才是最重要的,他们几乎每次都会告诉你是初始的客户需求分析。在购买任何的软件或者在数据库存储任何数据之前,分析客户的需求对于找到解决问题的合适方法都是至关重要的。分析阶段花的时间多一些,对于开发应用的提高都是明显的。从60年代的早期起,尽管在开发方面有了不少的改变,但是有一样是不变的--初始化的分析对于应用设计都是最重要的。它可帮助开发者设计出一个效率高、强大的应用。

  这个分析过程可有各种不同的形式。通常应用开发者都会知道采用何种分析手段。它可能只需要向客户打个电话,或者它需要将客户组织起来,用一个星期长的时间开会讨论,了解他们的需求。最糟糕的情况是在进行需求分析的时候漏了一个关键人物的参与。在这个分析过程中,每个人的知识和经验都是需要的。他们的缺席或许会令分析失败。   在分析讨论时,参与者会就他们的知识和经验提出意见,但是告诉他们“不要加入无用的意见”也是必要的。例如过于理想化或者限制当前应用这些无用的意见都会不利于设计一个新的或者加强的应用。开发者必须要分辨哪些规则对于新应用是必要的,哪些是无效的。

数据模型

  大多数人在开发应用的时候都会使用一套方法。这些方法是一套开发者分析客户需求和开发应用的步骤。大部分的数据库售卖者和计算机专家都会实践和改进他们自己的方法。某些数据库的售卖者甚至会遵循一个方法论来制造出自己的分析、设计和开发工具。如果你使用某个售卖者的工具,你就可以更容易地遵循他们的方法论。例如,CNS在开发Oracle数据库应用或者为它提供支持的时候,都会使用Oracle的工具集。因而,CNS将会遵循Oracle的CASE*Method的应用开发方法论。

  在分析客户需求的时候,有一个技术是经常用到的,这就是数据模型。数据模型的目的是为了开发一个符合客户需要和商业处理流程的精确模型或者图象表示。数据模型就相当于开发新的或者加强应用的框架。构造数据模型的方法和应用开发的方法论几乎是一样多的。CNS使用Oracle的CASE*Method作为它的数据模型。

  随着时间的推移,应用会产生新的层,它的结构就好象一个洋葱。我们不断开发出新的函数和特性层。因此我们在了解核心应用方面就会变得困难。在核心应用外,我们可看到一层覆盖着一层,随着时间的推移,改变不断增加,应用的本质就会变得越来越模糊,而数据模型可令开发者和客户透过这些额外的层,重新看到应用的本来面目。新的分析可决定哪些东西需要由核心送入和送出。 应用的使用者和服务
我们参加了一个CNS举办的应用分析会议,就范围和对象表述取得一致意见之后,我们发现确定应用的使用者是很有必要的。你将这些模型化的服务提供给谁呢?谁要受到这个应用的影响呢?回答这些类似的问题将会帮助参与者确定该应用希望得到的结果。

  在列出一个使用者的名单之后,我们将会由此得到该应用需要提供的服务列表。这些列表将会包括现有应用提供的服务和新应用中希望得到的服务。由这个列表中,我们得到每个服务需要的信息模型。为了做到这一点,我们首先确定该应用中最重要的三个服务,然后再在这三个中确定一个最重要的服务。最终所有的服务都确定了模型。我们从一个服务开始做模型是为了找到一个起点。

实体

  为服务或者流程确定模型的下一步,是确定该流程包含的实体。一个实体是一个对业务颇重要的事物或者对象,它可能是真实的,也可能是想象的,无论如何,业务都必须收集和维护实体的数据,或者实体的信息是需要了解或保持的。一个实体可能是一个真实的对象,例如一个人或者一栋建筑物,也可能是一个行为,例如约定或者一个操作,它也可能是消费中心或者组织单元的概念。

  无论如何,一个实体都必须使用真正的术语来描述。它必须是可唯一确定的,也就是说,一个实体的每个实例或者发生都必须可以与其它该类的实体区分开来。

  例如我们设计一个照顾温室植物的计算机应用,它其中的一个处理可能是跟踪植物的淋水。在这个处理中,有两个实体:植物实体和淋水实体。每一种植物都可以通过它的生物学名字或者其它的参考项目来唯一确定它。淋水则是水对一种植物的应用。每次的淋水都可通过它发生的日期和时间唯一确定。



版权所有:UML软件工程组织