问答题 [问题1] 在需求分析阶段,采用UML的用例图(use case diagram)描述系统功能需求,如图4-4所示。指出图中的A,B,C和D分别是哪个用例?
【正确答案】
【答案解析】A:浏览客户信息;B:修改个人信息;C:登录;D:删除客户信息。 [分析] 图4-4是一个UML的用例图。在工程的分析阶段,例图被用来鉴别和划分系统功能,它们把系统分成动作者(actor)和用例。 动作者(actor)表示系统用户能扮演的角色(role)。这些用户可能是人,可能是其他的计算机、一些硬件或者是其他软件系统。惟一的标准是它们必须要在被划分到用例的系统部分以外。它们必须能刺激系统部分,并接收返回。 用例描述了当某个动作者给系统特定的刺激时系统的活动。这些活动被文本描述。它描述了触发用例的刺激的本质,输入和输出到其他活动者,转换输入到输出的活动。用例文本通常也描述每个活动在特殊的活动线时可能的错误,以及系统应采取的补救措施。 了解用例图、动作者、用例的基本概念后,题目就迎刃而解了。图中的网络用户、公司客户、管理人员都是动作者。题目说明中提到了系统有4个功能:浏览客户信息、登录、修改个人信息、删除客户信息。这也就是4个用例。现在只需把他们对号入座即可。根据题目说明,可以知道任何使用Internet的网络用户都可以浏览电话公司所有的客户信息,在图中符合这一条件的只有A,所以A应填浏览客户信息。。因为只有公司的管理人员才能删除不再接受公司服务的客户的信息。所以D应填删除客户信息。 剩下只有登录和修改个人信息2个用例了,那么究竟是B填登录还是修改呢?先介绍包含和扩展的概念。 2个用例之间的关系可以主要概括为2种情况:一种是用于重用的包含关系,用构造型《include》表示;另一种是用于分离出不同的行为,用构造型《extend》表示。 (1)包含关系:如果可以从2个或2个以上的原始用例中提取公共行为,或者发现能够使用一个构件来实现某一个用例的部分功能时,应该使用包含关系来表示它们。示意图如图4-6所示。 (2)扩展关系:如果一个用例明显地混合了2种或2种以上的不同场景,即根据情况可能发生多种事情。可以断定将这个用例分为一个主用例和一个或多个辅用例描述可能更加清晰。示意图如图4-7所示。 因为要先登录才能修改信息,显然B应填修改个人信息,C应填登录。