任务描述相关知识类图类表示法可见性类关系1. 关联高级概念关联的方向性。2. 泛化3. 聚合3. 组合用例图符号编程要求StartUML 新建用例图模块构建流程示例打开软件新建项目创建类图模块添加图形到画布例题图书管理系统分析测试说明1. 点击 File 选项框中的 save进行保存或者使用 Ctrl S进行保存2. 将文件名称改为uml.mdj3. 将文件保存至指定文件夹点击Save进行保存任务描述本关任务使用 StartUML 绘制类图。相关知识类图描述系统静态结构。在系统的逻辑视图中类图用于表示类和它们之间的关系。我们利用类图来说明实体共同的角色和责任这些实体提供了系统的行为。类图中的两个基本元素是类和它们的基本关系。类图类表示法类图标由三个部分组成第一个部分是类名第二个部分是属性第三个部分是操作。类名在它的命名空间中唯一。类名以大写字母开头省略多个单词之间的空格。属性和操作在类的范围内必须无二义。属性和操作是以小写字母开头后续单词的首字母大写且同样省略空格。抽象类和抽象操作用斜体表示。属性规格说明格式可见性 属性名称类型 [多重性] 默认值 {特性字符串}操作规格说明格式可见性 操作名称参数名称类型返回值 {特性字符串}可见性公有可见性对能看到这个类的任何元素都可见。保护可见性#对这个类及其子类的其他元素可见。私有可见性-对这个类的其他元素可见。包可见性~对同一个包中的其他元素可见。类关系类的基本联系包括关联、泛化、聚合和组合。1. 关联关联用不带箭头的实线表示。关联连接了两个类体现了一种语义关系。关联通常用名词词组来标注如下图中的 Analyzes以说明关系的实质。类可能与它自己有关联称为自关联如 PlanAnalyst 类的实例之间的协作。注意这里同时使用了关联端名称和关联名称目的是提供清晰性。关联可以进一步通过多重性来修饰没有也可以。多重性的语法如下精确到 1 个。数目不限0 个或多个。0..*0 个或多个。1..*1 个多多个。0..10 个或 1 个。3..7指定范围3~7 个包含 3 和 7多重性应用于关联的目标端说明源类的每个实例与目标类实例的连接个数。除非显式说明否则关系的多重性就是未指定的。高级概念关联的方向性。在分析时我们认为关联是分析类之间的双向逻辑连接。在设计时我们将关注的焦点转到关联的导航性上。从 GrainCrop 类到 GrainYieldPredictor 类的单向关联通常意味着 GrainCrop 类的某些方法在实现时使用了 GrainYieldPredictor 类的服务。注意GrainCrop 类和 GrainYieldPredictor 类之间的关联端名称的可见性GrainCrop 对GrainYieldPredictor 类似私有的。2. 泛化泛化描述的“是一种”的关系。泛化用带有封闭箭头的实线表示。箭头指向超类关联的另一端是子类。子类继承超类的结构和行为。根据这些规则一个类可以有一个单继承或多个多继承超类超类间的名字冲突也可以根据所选语言的规则来处理。泛化关系不能有多重性指定。下图中的 GrowingPlan 类是超类它的子类是 FruitGrowingPlan。3. 聚合聚合表明一种整体-部分的层次结构。聚合用带有一个空心菱形的实线表示。菱形所在的一端是聚合体整体另一端的类代表它的实例构成了聚合对象的部分。自聚合和循环聚合关系是可能的。这种整体-部分的层次关系并不意味着物理上的包容一个专业协会有一些成员但不表示协会拥有它的成员。就如汽车和轮胎当汽车销毁的时候并不意味着轮胎也销毁了。即两个对象的生命周期是相互独立的。聚合关系末端的*0 个或多个多重性进一步突出了这不是物理包容关系。下图中EnvironmentalController 类有 Light、Heater 和 Cooler 类作为它的部分。3. 组合组合则是关联更强的聚合。部分与整体共存亡是物理包容。组合用带有一个实心菱形的实线表示。菱形所在的一端是整体另外一端是部分。整体所在的一端的多重性是 1因为根据定义部分在整体之外就没有任何意义整体拥有部分部分的生命周期与整体式一样的。用例图符号类接口关联关系泛化关系依赖关系聚合关系编程要求StartUML 新建用例图模块构建流程示例仅作参考具体保存路径以及创建的模型请按照题目要求进行操作打开软件双击如下图所示图标。如下图关闭未激活信息。新建项目打开软件后如下图在 StarUML 中点击 File文件菜单然后选择 New新建项目来创建一个新的项目。创建类图模块在创建新项目后点击Model在弹出的上下文菜单中选择 Add Diagram添加图表。然后从列表中选择 Class Diagram类图这将在项目中创建一个新的类图模块。创建项目时的默认模块删除如下图移动鼠标到软件界面右侧选择默认Model删除。 这里很重要因为starUML自身的原因在创建新项目之后就会生成一个默认模块我们这里不需要用到所以需要删除否则会影响评测结果。添加图形到画布可以通过点击选择组件在画布中进行图形绘制。例题图书管理系统这个系统包括图书类Book、作者类Author和读者类Reader三个主要的类它们之间存在一些关联关系和属性。每个类都有私有属性用 - 表示和公有方法用 表示。图书类有属性bookID、title、author和price以及获取getPrice和设置价格setPrice的方法。作者类有属性authorID、name以及获取作者的书籍列表getBooks和添加书籍addBook的方法。读者类有属性readerID、name以及借阅图书borrowBook的方法。分析在上述例子中这三个类图书类、作者类和读者类之间存在一些关系。以下是它们之间的关系描述图书类与作者类之间的关系关联关系Association图书类和作者类之间存在关联关系。这表示图书类中的属性 author 保存了图书对应的作者名字。这样每本图书都与一个作者相关联。作者类与图书类之间的关系关联关系Association作者类和图书类之间也存在关联关系。作者类中的方法 getBooks() 返回了作者所著的所有图书的列表。这样每个作者可以有多本图书。读者类与图书类之间的关系依赖关系Dependency读者类和图书类之间存在依赖关系。这表示读者类的方法 borrowBook() 中传递了一个图书类的对象说明读者类的借书行为依赖于图书类的存在。测试说明请在图形化窗口中使用 StartUML 工具进行用例图的绘制将绘制完成的文件保存到 /data/workspace/myshixun/step3 下并命名为 uml.mdj。1. 点击 File 选项框中的 save进行保存或者使用 Ctrl S进行保存2. 将文件名称改为uml.mdj3. 将文件保存至指定文件夹点击Save进行保存开始你的任务吧祝你成功类图如下所示