使用案例到类图 - 我如何?

时间:2010-03-12 07:01:03

标签: design-patterns oop class-design uml

我希望您的指导如何从我的USE案例图中准确地创建类及其关系(泛化,关联,聚合和组合)(请参阅下文)。

我正在尝试创建此类图,以便我可以使用它创建一个简单的在线PHP应用程序,允许用户注册帐户,登录和注销,以及存储,搜索和检索MySQL数据库中的数据。

我的课程是否正确?或者我应该创建更多的课程?如果是这样,缺少哪些课程?将register,login,logout,search_database和add_to_database连接到用户时,我应该使用什么关系?

我是设计模式和UML类图的新手,但根据我的理解,关联关系将一个对象与另一个对象相关联;聚合关系是一种特殊的关联,它允许“一个部分”属于一个以上的“整体”(例如信用卡及其PIN - PIN类也可用于借记卡类);组合关系是一种特殊的聚合形式,它允许每个部分一次只属于一个整体。

我觉得我遗漏了一些课程或某些东西,因为我似乎无法从对理解人际关系中找到关系。

任何帮助都将非常感谢。提前谢谢。

使用案例图

alt text

USE案例说明:

注册 任何用户都可以通过注册创建帐户。系统将验证用户名和密码,如果缺少用户名或密码,将拒绝用户名和密码。

登录 任何用户只有在已经注册的情况下才能登录。他们的用户名和密码将以与注册帐户时相同的方式进行验证。

搜索数据库 任何用户都可以输入数据类型字符串的searchkey,系统将打开数据库,搜索searchkey,并根据是否找到searchkey返回true或false,并关闭数据库。

向数据库添加数据 所有用户都可以输入一些数据,系统将打开数据库,存储数据,根据数据是否存储返回true或false,并关闭数据库。

注销 用户将按下注销按钮,系统将注销用户

从数据库中删除 只有管​​理员才能从数据库中删除数据。

删除常规用户 只有管​​理员才能删除常规用户

课程图

alt text

4 个答案:

答案 0 :(得分:11)

首先,如果您决定沿着建模路径走下去,那么我会推荐一本Rosenberg和Stephens的书,Use Case Driven Object Modeling with UML。这完全符合您所描述的过程:如何编写好的用例,从中构建类图,从中构建序列图,以及(ta-da!)将其编码为工作软件。您可以使用Google进行ICONIX流程并在线查找详细信息。

一些随意的评论:

  • 任何用例图的“图表”是用例的最少有用方面。图中的每个椭圆代表一段或两段文字,讲述发生了什么的故事。这是真正有用的文本。
  • 通常,您的用例中有名词的类,以及动词的方法。你的一些动词(Add_data_to_databaseLogout,...)是类而不是方法。
    • 如果您使用鼓励命令模式的框架,有时会遇到这种情况。即使这样,命令对象也可以/应该只调用真实类的方法。
    • 我会说你遗漏了一些名词(你在数据库中存储了什么类型的数据?)。如果你有,那么你会发现User和这些数据类之间的关系。

答案 1 :(得分:2)

似乎UC图没有问题。

我同意戴夫的评论。此外,我还想向您展示我的想法,为这样的UC图制作相应的类图。 (只是显示的要点。)

class diagram

答案 2 :(得分:1)

为什么不下载EssWork。 Esswork是开源的,它是由Ivar Jacobson Int创建的敏捷实践,他创建了用例...他们是一个名为Essential Use case practice的实践,它描述了你如何将一个需求带到了类...... < / p>

答案 3 :(得分:0)

enter image description here

您需要绘制上述场景的对象模型(类图) 识别类,其属性和相关功能 你应该展示不同的关系 像Composition,Aggregation和Inheritance这样的类。