逻辑设计的例子
开发团队使用前期的使用场景定义对象和之间的关系、行为和属性(attribute)。团队要做以下的任务:
- 定义场景中的用户、业务逻辑和数据对象。
- 定义对象的行为。
- 定义对象的属性(attribute)或属性。
- 定义对象之间的逻辑关系。
统一建模语言
统一建模语言(UML) 是阐述解决方案如何工作的工具。在图形化描述解决方案方面,它对于更完全分析解决方案非常有用。使用UML是一种容易的方法来画出组件、交互、关系和更多其他信息。通常,UML被用来方便的分析逻辑设计。
对象
当分析使用场景的时候,首要的任务就是确定其中的对象。一个对象通常是出现在场景中的一个业务实体或过程。例如,在下面的一段话中,粗体字就是对象:
用户(User)选择一个目录(Catalog)来浏览。分类 (Categories)和产品 (Products)被展现在已选的根目录(Catalog)中。用户(User)之后选择一个产品(Product)来查看它的细节或选择一个分类(Categories)来查看其中的产品(Product)和子分类。
在这个场景中,下列对象被使用到:
- User
- Catalog
- Categories
- Product
- Products
下面的UML图阐述了在本例中的对象。
在这个场景中有五个基础的对象;然而,为了实现场景的功能还可能需要一些附属的的对象,即使他们没有被特别的列入这个基础对象列表。你可以在检查动作的时候定义这些附属的对象。你首先要定义出动作,才能发现并定义这些附属的对象。
行为
在定义完明显的对象集合之后,下一步的工作就是定义他们各自的行为,以方法和服务的方式表现。
为了定义对象的行为,你必须首先估计场景中要做什么。例如,在下面的一段话中,动作备用粗体标识:
用户选择一个目录来浏览。分类和产品被展现在已选的根目录中。用户之后选择一个产品来查看它的细节或选择一个分类来查看其中的产品和子分类。
发生的第一件事是用户选择了一个目录。下面的UML图阐述了用户对象包含了一个选择目录的行为。
不能关联到明显对象的行为必须从场景中派生。如下面的情况,用户要选择一个目录,那么必须有一些机制使得一个目录可以从一个目录列表中被选中。你可以从逻辑上假定一个目录集合对象,他管理目录的集合。因此,你就可以在对象的列表中添加一个新的对象。
在定义完目录集合对象之后,你可以添加属于这个对象的第一个方法Select Catalog 。
之后,你需要继续估计场景中的每一句话,直到你定义出所的对象和相关的行为。
属性
定义完行为之后的下一步工作是定义对象的属性(attribute,或称为property)。属性是解决方案需要跟踪的元素。它们是数据保存和持续化的位置。
通过分析场景中的行为来定义属性(attribute),抽取出场景中需要跟踪或持续化的元素。例如,在前面一块中,场景指定用户需要查看产品。当产品被查看时,展现给用户的那些元素就是产品的属性(attribute)。例如,如果业务需要产品的描述和价格被展示给用户,这些元素就成为属性被添加到对象中去。
下面的UML图中阐述了包含Name属性的User对象。
关系
在定义完对象、行为和属性(attribute)之后,下一步是定义关系。关系是对象间的逻辑关联。
为了定义关系,需要分析对象间是如何交互的。例如,目录集合对象跟目录对象有一个关系,因为目录集合对象管理目录对象。