?Q示例用例图
囑֭Q从上到下)QCD销售系l;查看乐队CD的销售统计;乐队l理Q查看Billboard 200排行榜报告;ql理Q查看特定CD的销售统计;索最新的Billboard 200排行榜报告;排行榜报告服?/strong>
用例N常用于表达pȝ或者系l范畴的高功能。如?所C,可以很容易看pȝ所提供的功能。这个系l允怹队经理查看乐队CD的销售统计报告以及Billboard 200排行榜报告。它也允许唱片经理查看特定CD的销售统计报告和q些CD在Billboard 200排行榜的报告。这个图q告诉我们,pȝ通过一个名?排行榜报告服?的外部系l提供Billboard排行榜报告?/p>
此外Q在用例图中Q没有列出的用例表明了该pȝ不能完成的功能。例如,它不能提供给乐队l理收听Billboard 200上不同专辑中的歌曲的途径 -- 也就是说Q系l没有引用一个叫?收听Billboard 200上的歌曲"的用例。这U缺不是一件小事。在用例图中提供清楚的、简要的用例描述Q项目赞助商很Ҏ看出pȝ是否提供了必ȝ功能?/p>
2 cd
cd表示不同的实体(人、事物和数据Q如何彼此相养I换句话说Q它昄了系l的静态结构。类囑֏用于表示逻辑c,逻辑c通常是业务人员所谈及的事物种c?-摇滚乐队、CD、广播剧Q或者贷ƾ、住房抵抹{汽车信贷以及利率。类图还可用于表C实现类Q实现类是E序员处理的实体。实现类图或怼与逻辑cd昄一些相同的cR然而,实现cd不会使用相同的属性来描述Q因为它很可能具有对诸如Vector和HashMapq种事物的引用?/p>
cdcd上用包含三个部分的矩Ş来描qͼ如图2所C。最上面的部分显C类的名Uͼ中间部分包含cȝ属性,最下面的部分包含类的操作(或者说"Ҏ"Q?/p>
?Q类图中的示例类对象
Ҏ我的l验Q几乎每个开发h员都知道q个cd是什么,但是我发现大多数E序员都不能正确地描q类的关pR对于像?q样的类图,您应该用带有顶Ҏ向父cȝ头的线D|l制l承关系1Qƈ且箭头应该是一个完全的三角形。如果两个类都彼此知道对方,则应该用实U来表示兌关系Q如果只有其中一个类知道该关联关p,则用开头表示?/p>
?Q一个完整的cdQ包括了?所C的cd?/strong>
在图3中,我们同时看到了承关pd两个兌关系。CDSalesReportcȝ承自ReportcR一个CDSalesReportcM一个CDcd联,但是CDcdƈ不知道关于CDSalesReportcȝM信息。CDcdBandc都彼此知道ҎQ两个类彼此都可以与一个或者多个对方类相关联?/p>
一个类囑֏以整合其他许多概念,q将在本pd文章的后l文章中介绍?br />
zd图表C在处理某个zdӞ两个或者更多类对象之间的过E控制流。活动图可用于在业务单元的别上Ҏ高别的业务q程q行建模Q或者对低别的内部cL作进行徏模。根据我的经验,zd图最适合用于对较高别的q程建模Q比如公司当前在如何q作业务Q或者业务如何运作等。这是因Z序列囄比,zd囑֜表示?不够技术性的"Q但有业务头脑的Z往往能够更快速地理解它们?/p>
zd囄W号集与状态图中用的W号集类伹{像状态图一Pzd图也从一个连接到初始zd的实心圆开始。活动是通过一个圆角矩形(zd的名U包含在其内Q来表示的。活动可以通过转换U段q接到其他活动,或者连接到判断点,q些判断点连接到由判断点的条件所保护的不同活动。结束过E的zdq接C个终止点Q就像在状态图中一P。作ZU选择Q活动可以分lؓ泳道QswimlaneQ,泳道用于表示实际执行zd的对象,如图6所C?/p>
?Q活动图Q具有两个泳道,表示两个对象的活动控Ӟ乐队l理Q以及报告工?/strong>
囑֭Q沿头方向Q:乐队l理Q报告工P选择"查看乐队的销售报?Q检索该乐队l理所理的乐队;昄报告条g选择屏幕Q选择要查看其销售报告的乐队Q从销售数据库索销售数据;昄销售报告?/p>
该活动图中有两个泳道Q因为有两个对象控制着各自的活动:乐队l理和报告工兗整个过E首先从乐队l理选择查看他的乐队销售报告开始。然后报告工h索ƈ昄他管理的所有乐队,q要求他从中选择一个乐队。在乐队l理选择一个乐队之后,报告工具检索销售信息ƈ昄销售报告。该zd图表明,昄报告是整个过E中的最后一步?/p>