理解了类和对象的概念之后,我们开始进行类的设计,那么,应该怎么在现实世界当中发现类呢?例如有这样的背景:开发学生选课系统,要求能够单独对学生信息、课程信息进行维护,还要求能够维护某学生选择某些课程。根据以上的描述,我们可以看到上面的描述中有很多名词,例如:学生、课程等。从这些名词当中就可以发现类,例如:学生类、课程类。所有的学生都有学号、姓名、性别、出生日期等属性,所有的课程都有课程编号、课程名字等属性。
如果我们发现了类,并且发现了类中的属性和方法,那么应该以什么形式展现出来呢,在团队协作开发中应该如何让其他项目组成员知晓你的设计呢,恐怕这个时候就需要使用UML了。Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。 面向对象的分析与设计(OOA&D,OOAD)方法的发展在80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。它不仅统一了Booch、Rumbaugh和Jacobson的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言。UML规范用来描述建模的概念有:类、对象、关联、职责、行为、接口、用例、包、顺序、协作,以及状态。
其实软件开发和现实生活当中的建造大楼是一样的,在建造大楼之前需要进行前期的设计,这个时候就需要建筑工程师画图纸,图纸上画的都是一些符合某些标准的符号,负责建筑的人员一定是能够看懂这些标准符号的。而UML就是在软件开发方面的一种图标式语言,程序员在进行系统设计的时候,需要画出UML建模图,程序员根据UML建模图进行开发。
那么能够实现UML图的工具有哪些呢?例如:IBM Rational Rose、PowerDesigner、StarUML、MS Visio等,我们接下来使用Rational Rose工具画一个类出来。请看下图:
图8-2:学生类的设计
通过以上类图,我们可以看到一个学生有学号、姓名、年龄、性别属性,并且有一个考试的方法。其中学号采用整数型,姓名采用字符串类型,年龄采用整数型,性别采用布尔型,考试返回值类型设计为浮点型double。
请大家注意,该小节内容属于了解内容,目前还不需要掌握怎么画这些图,只要知道从名词中发现类,系统开发初期需要进行类的设计,而设计的时候就需要使用UML进行建模,了解几个常见的建模工具就行了。