软件体系结构的多视图

  kruchten提出了软件体系结构的4+1视图模型,其中用例图位于中心位置(4+1视图中的1)。

  • 逻辑视图

  一种静态建模视图

  • 进程视图

  一种并发进程或任务视图

  • 开发视图

  一种子系统和构件设计视图

  • 物理视图

  一种反应物理拓扑结构及连接关系的视图、

UML图

  应用开发中,uml表示法支持以下图:

  • 用例图
  • 类图
  • 对象图
  • 通信图
  • 顺序图
  • 状态机图
  • 活动图
  • 组合结构图
  • 部署图

用例图

  一个参与者(actor)发起一个用例(use case)。用例之间的关系分为如下:

  • 关联(communication association)

  • 包含(include)

  • 扩展(extend)

类和对象

  表示类的方框总是包含类名,并且可选择性的列出类的属性和操作.

  对象关名称需要带有下划线,为了区分类和对象。

1. class





2. 类和属性

3. 类和属性和操作

类图

  类图中,类之间的永久关系被描述成连接方框之间的连线。UML表示法支持以下三种类之间的主要关系类型:

  • 关联关系
  • 整体/部分关系
  • 泛化关系
  • 依赖关系

1. 关联关系

  关联是两个或多个类之间的结构化关系。每个连接类的关联线的末端表明关联的多重性。

  多重性的是的一个类的多少个实例可能和另一个类的单个实例有关。

类的多重性可以是(1),可选(0..1),零或多个()

单向关联

public class user
{
private Address address;
}
public class Address
{ }

自关联

public class Question
{
public Question ParentUser;
}





2. 聚合关系

  表示整体与部分的关系,在一个聚合里部分实例能添加到聚合整体中,也能从聚合整体删除.

public class user
{
private Role role;
public user(Role role)
{
this.role=role;
}
}
public class Role
{}

3. 组合关系

  也是整体和部分的关系,但是组合是一旦整体对象不存在,那么部分对象也将不存在

public class user
{
private UserMenu usermenu;
public user()
{
usermenu=new UserMenu;
}
}
public class UserMenu
{ }

4. 泛化关系

  user是adminuser和testUser的父类,这种关系就是泛化,也就是继承。

public class user
{
protected string name;
public bool AddUser()
{
...
}
}
public class AdminUser:user
{ }
public class TestUser:user
{ }

5. 依赖关系

  某一个类依赖另一个类才能完成

public class user
{
private UserService userService;
public bool Adduser(userModel model)
{
....//todo
userService.AddUser(model);
}
}
public class UserService
{
public bool AddUser(usermodel model)
{
...
}
}

UML类图和用例图的更多相关文章

  1. UML类图的6大关系

    <小酌重构系列>已经完成了大约1/3了,在这些文章中,我使用了一些简单的类图来描述重构策略.在之后的文章中,我可能会借助稍微复杂一些的UML类图来介绍.但是在此之前,我觉得有必要先介绍一下 ...

  2. [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图

    [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图 1.UML简介 Unified Modeling Language (UML)又称统 ...

  3. UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)

    UML类图关系(泛化 .继承.实现.依赖.关联.聚合.组合) 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父 ...

  4. UML——在Visual Studio 2013/2015中设计UML类图

    1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是 ...

  5. [转载]UML类图总结

    前言 类图和序列图是UML中最常用的两种Diagram.我将做详细的总结.在许多书中,或者网站中,在介绍一个系统的子系统的设计时,很多时候,都是给出简单的类图来简述构成子系统的类之间的关系.这足以说明 ...

  6. 图解六大UML类图关系

    在学习UML类图的过程中,UML类图关系是必须要掌握的问题,UML定义的关系主要有六种:依赖.类属.关联.实现.聚合和组合.下面对其定义和表示方法逐一说明. UML类图关系简介 依赖(Dependen ...

  7. UML类图基本元素符号

     UML类图基本元素符号 元素名称 符号图例 含义 Class 包含类的名称.属性和方法定义. 可见性修饰符: + public -  private # protected 无修饰符为 intern ...

  8. UML类图几种关系的总结(转)

    原文:http://gjhappyyy.iteye.com/blog/1422515 在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization), ...

  9. UML类图关系大全

    UML类图关系大全 1.关联 双向关联: C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法.在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设 ...

随机推荐

  1. Implement Property Value Validation in the Application Model 在应用程序模型中实现属性值验证

    In this lesson, you will learn how to check whether or not a property value satisfies a particular r ...

  2. Inherit from the Business Class Library Class 继承自Business类(EF)

    In this lesson, you will learn how to implement business classes for your application using the Busi ...

  3. Microsoft Visual Studio 2017 找不到 Visual Studio Installer

    Microsoft Visual Studio 2017 找不到 Visual Studio Installer ? 打开vs2017 ,选择 工具 --> 扩展和更新 --> 联机,搜索 ...

  4. Node.js操作Mysql的简单示例

    API的封装:封装为系统可用的工具,分为线上和线上的数据库. 使用:让API直接操作数据库,不再使用假数据. DEMO代码: const mysql = require('mysql'); // 创建 ...

  5. Hadoop、storm和Spark Streaming简单介绍(非原创)

    文章大纲 一.Hadoop是什么二.storm是什么三.Spark Streaming是什么四.Spark与storm比较五.参考文章   一.Hadoop是什么 1. 简介 Hadoop是一个由Ap ...

  6. Java程序猿怎么才能月薪过万?

    每一个略微有点长进的人,都应该把作业里的前三名作为自己斗争的政策和对手.你离成为冠军Java程序员还有多远,看完这篇你就知道了. 软件工程师的作业生涯里,知识有一个三年的半衰期.这意味着三年后,你所具 ...

  7. C++内置二分查找用法

    c++内置二分查找 #include < algorithm > 一.binary_search:查找某个元素是否出现.函数模板:binary_search(arr[], arr[]+si ...

  8. ccf再卖菜

    https://blog.csdn.net/imotolove/article/details/82777819 记忆化搜索,还不太理解..

  9. Codeforces Round 596 题解

    万幸的是终于碰上了一场上分好场. 不幸的是一开始差点不会 A. 万幸的是想了个不那么稳的结论过了 pretest. 不幸的是罚时很高,而且慌得一比. 万幸的是然后半个小时内把 B 和 C 码了. 不幸 ...

  10. golang数据结构之递归解决迷宫问题

    简单来说:递归就是函数/方法自己调用自己,只是每次传入不同的变量. 递归可以解决各种数学问题:n皇后问题.阶乘问题.汉诺塔.迷宫问题.球和篮子问题等等: maze.go package maze im ...