Software Construction——期末复习

写在前面

正值期末考试复习月,在复习软件构造课程的过程中又领悟了许多以前没有理解的东西,搭配使用起来也更有灵感了,可谓温故而知新吧。这期间也对一些没学过的技术(比如一直觉得麻烦而没学的UML图)进行了下学习积累。

先说下UML图

之前直接去搜索的UML这个语言的学习内容,当时一看那规模我吓的直接躺平…这段时间复习课件,再加上做了做往年的考试题,发现我们这门课程更多的用到的是UML类图,这个内容量就可以接受了,它对于描述你的类关系的设计还是比较有帮助的。我刚看了看,在这里积累一下(仅记录常用到的一些内容):

首先,我们来看下一个具体类的类图:
Software Construction——期末复习
在这张具体类的类图中我们可以看到图从上到下被分三个部分,最上面的部分里面的内容是类名,中间的部分是rep,最下面的部分是方法;
首先我们看最上面的部分,对于具体类而言,如上图,只需要写出类名即可;而对抽象类,类名需要设置为斜体;对于接口,不仅要写类名,还要在该区域类名的上面标注<>,像这样:
Software Construction——期末复习

再来说中间部分(rep),这里每个成员是以:
“可见性 成员名 :类型”
来写的(据说后面还可以跟一个初始值,但没必要)。对于可见性,那个‘-’号就表示的可见性,指private;类似的,‘+’表示public,‘#’为protected,‘~’为缺省。对了,rep名加下划线表示它是个类变量static。

再来看第三个区域(方法),和第二个区域差别不大,以“可见性 方法名 (参数类型 参数名):返回值类型”的形式存在。当然也有人不写参数名,这个随意吧。

如果你没rep,那第二个区域就是空的。

单个类或接口咋画已经说的差不多了,现在看下类与类之间关系怎么表示。
我们主要说这门课课件中出现的四种关系(其他两种应该不会用到),包括关联、实现接口、继承父类、委托:
类之间的实线箭头表示关联(一般是为了指明Car为Record中某一成员变量的类型):
Software Construction——期末复习

虚线三角表示实现该接口:
Software Construction——期末复习

实线三角指向父类表继承:
Software Construction——期末复习
实心菱形表示组合:
组合关系表示整体与部分的关系,但部分不可以脱离整体而独立存在,不像前面的Car,脱离了停车场仍然可以存在,下面给出的停车位就不能脱离停车场而存在:
Software Construction——期末复习

该吃饭了,先写这么多,一会更下复习总结。