《火球——UML大战需求分析》(第3章 分析业务模型-类图)——3.4 演练类之间的关系摘要:图 1.22 你和你的另外一半
《火球——UML大战需求分析》(第3章 分析业务模型-类图)——3.4 演练类之间的关系
摘要:
图 1.22 你和你的另外一半关系3
“1..*”表示1到多个,不要因为你能1对多个男朋友(或女朋友)就很开心,这是一种很不好的关系,强烈建议你将1对多的关系变为1对1,而且说不定有朝一日你会被别人1对多。
如果你还没有另外一半,你可以画成这样:
图 1.23 你和你的另外一半关系3
你的另外一半是作为“虚拟情人”存在的。
如果你很爱你的另外一半,你依赖于你的另外一半,没有她(他)你简直不能活,她(他)是你的生存必需品,你可以画成这样:
图 1.24 你和你的另外一半关系4
你可以跟你的另外一半画画这个图,跟她(他)解释一下是什么意思,你的另外一半一定开心死了。
用类图表达你和你的另外一半的关系,并没有固定的标准答案,你画出来的可能跟上述的参考答案不一样,只要你的逻辑正确,这个图也就是合适的。
下面介绍读图检查法,能帮助你检查类图画得是否合适。
你可以分别从左到右、从右到左来读图,看看有没有不合理的地方。以图1.22为例,从左到右读:1个你对应1个到多个你的另外一半。从右到左读:1个你的另外一半对应1个你,而不要读成:多个你的另外一半对应1个你。注意由“多”的一边往另外一边读时,仍然是1个什么对应多少个什么,无论你从哪边开始读起,都是以“1个……”开头。
练习2:公司与雇员的关系前面学习了部门与员工的关系,公司与雇员是怎样的关系呢?请用类图画出来。
图 1.29 公司的组织架构3
公司由一个个的部门组成,但要构成一个完整的公司,这些部门应该分为三类:
市场类部门:负责公司形象推广、产品营销方面的部门。
生产类部门:直接生产公司产品的部门。
支持类部门:不直接生产公司产品,但是支持产品生产或支撑公司运作必不可少的部门。
在这个图中,市场类部门有策划部、销售部,生产类部门有研发部、实施部、IT部,支持类部门有:IT部、质量部、财务部、行政人事部,其中IT部既是生产类部门,也是支持类部门。
下面对其中一些具体部门进行解释:
实施部是负责将软件系统安装到客户现场,保障系统上线运行的部门。
IT部主要负责两方面的职能,一方面要保障公司内部的办公软硬件环境,另一方面会承接一些外部的网络工程,为公司直接盈利。第一方面的工作是属于支持类方面的工作,而第二方面的工作则是生产类的工作。
质量部负责测试及过程保障的工作,这个部门是支援研发部和实施部工作的,故也属于支持类的部门。
将部门分为市场类、生产类和支持类,只是其中一种的抽象方法,每个人可能会有不同的标准,遇到不同情况可能会有不同的抽象办法。以上这个仅是一个例子,你千万不要将其当成一个固定的标准。
总体来说,上述三个用类图表示的公司组织架构,所针对的公司都不是大型的公司,大型的公司可能会有分公司、子公司、事业部等等不同的划分办法,组织架构异常复杂,想用类图准确地表达出来并且能揭示其本质相当不容易。希望通过上述三个例子,能让你初步体会用类图提炼业务的优势。
上面四个练习,基本覆盖了你在前面小节学习到的类之间关系的知识。在我的经验看来,直线(关联)关系、包含关系是最常用的,泛化(继承)关系用得也比较多,而依赖关系用得不是很多。而从使用的难度来说,泛化(继承)关系是最考验人的了,很考验你发掘事物本质的能力。
类图是不是很有意思呢?下面小节将会更加有意思,但同时难度也会进一步增大,喜欢挑战的你一定是不会退缩的了!
请看下一节……
作者:张传波
创新工场创业课堂讲师
软件研发管理资深顾问
《火球——UML大战需求分析》作者
www.umlonline.org 创办人