UML简介

UML复习及重点整理

分为两部分:

  1. 基础知识部分
  2. 各类图的实际画法画法掌握及需要注意的地方

part1 important point:

  • 面向对象方法

    • 面向对象与面向过程?

      面向过程:面向的是数据流,简单易懂易掌握,但开发效率低,重用性不好
      面向对象:对现实中的事物进行抽象,描述成对象,按对象的一致属性,将对象划分为

    • 面向对象设计的基本原则?
      开闭原则,替换原则,依赖倒置原则,接口分离原则

  • 统一建模语言
    UML中图的分类:结构图 行为图

  • 统一过程

    • 软件生命周期:问题集中在 做什么?怎么做?怎么用电脑做?做的对不对?长时间运行需要改变吗?
      就是 需求分析 设计模型 编码 测试分析 维护
  • UML的构成

    • 关系
      依赖,关联,泛化,实现
  • 正向工程和反向工程的概念

part2 各种图

  • 用例图 use case diagram

    • 什么是用例、用例图?有什么用?

      用例:系统外在的需求情况.一般是一个动作,一个由系统提供用户使用的动作.在UML中一半用椭圆表示
      用例图:用例图(use case diagram)是显示一组用例、参与者以及它们之间的关系的图
      作用:帮助你分析系统有哪些功能,以及让你明确系统内部和系统外部(也就是角色)的交互的

    • 用例图有哪些主要的建模元素?

      用例,参与者,系统边界,和他们之间的关系

    • 什么是参与者?

      是指系统以外的、需要使用系统或与系统交互的事物, 包括: 人、设备、外部系统等

    • 什么是用例?

      用户使用系统一项功能所进行交互的文字描述

    • 参与者、用例之间有哪些关系?

      参与者之间有泛化(generalization)关系,特殊指向一般 用空心三角+实线表示
      参与者和用例之间是关联关系,表示了参与者与用例间的通信
      用例之间的关系:泛化,包含,扩展
      包含关系:基本用例的行为包含了另一个用例的行为。基本用例描述在多个用例中都有的公共行为。包含关系本质上是比较特殊的依赖关系。
      用例的泛化、包含、扩展关系的比较。一般来说可以使用“is a”和“has a”来判断使用那种关系。泛化和扩展关系表示用例之间是“is a”关系,包含关系表示用例之间是“has a”关系

    • 如何获取参与者?

      谁来使用系统的主要功能
      谁来维护系统
      谁对系统的结果感兴趣
      系统需要操作哪些硬件
      需要与系统交互的其他系统有哪些

    • 如何获取用例?

      和用户交互
      系统交互的目的是什么?
      需要向系统输入什么信息?
      希望由系统进行什么处理并从它得到何种结果?

    • 如何详述用例?

  • 类图

    • 什么是类图?类图有什么用?

      类图:显示出类、接口以及它们之间的静态结构和关系;它用于描述系统的结构化设计。
      作用:展示一个工程中每个类所包含的函数和属性,类之间的关系,类的组织方式等

    • 类图包含哪些建模元素?

      类、接口 包以及它们之间的静态结构和关系

    • 类的种类

      抽象类 --不能实现的类,是一种抽象
      接口 --类似抽象类,所有操作都未实现
      关联类
      模板类 --可以根据占位符或参数来定义类
      主动类
      嵌套类 --java中的内置类

    • 类之间的关系有哪些?如何表示?

      • 组合 是一类“强”的整体与部分的包含关系。成分类别必须依靠合成类别而存在 例如汽车与化油器 用实心菱形和实线表示
      • 聚合 是一种has a 的弱关系 如池塘中有一只鸭子 这样的关系 用空心菱形和实线表示
      • 依赖 是一种弱化形式的关系,表示一类别依赖于另外的类别
      • 关联 当一个类作为另一个类某个方法的参数时,为关联。
      • 泛化 --感觉上就像是继承,
      • 实现 和泛化一样 用空心三角加实线表示
      • 关系之间的强弱:组合>聚合>关联>依赖
        而对于两种关联关系(组合和聚合之间的区分,个人觉得维基百科上的例子特别形象:

        例如,一个大学包含若干个系(如化学系),每个系由若干名教授。如果大学撤销,这些系也就不复存在了,但这些教授仍会继续存在。还需注意,一名教授可以在不同系甚至不同学校兼职,而一个系不能属于两所大学。所以,大学与系之间是组成关系,而系与教授是聚合关系

    • 聚合与组合的区别?

      两者的差别主要描述了子类的生命周期的不同。组合关系中,一旦父类被销毁子类也会随之销毁;聚合关系中,子类的生命周期与父类独立。

    • 派生属性与派生关联?
      可以从其它属性和关联计算推演得到的属性和关联

    • 类图中的常用版型?类图的抽象层次?
      边界类 ,实体类 , 控制类

    • 类图的抽象层次?
      概念层
      说明层
      实现层

    • 面向对象设计的原则?

      1. 开闭原则:开:对扩展开放 闭:对修改封闭
      2. 替换原则:子类可以在任何地方替换父类
      3. 依赖倒置原则:依赖关系应该是尽量依赖接口(或抽象类),而不是依赖于具体类
      4. 接口分离原则:使用多个专门的接口比使用单一的总接口要好,使用多个专用接口比使用单一的复合接口更好
  • 活动图

    • 什么是活动图?活动图有什么用?

      活动图描述系统从一种活动转换到另一种活动的整个过程
      活动图通常对业务过程、工作流和用例实现进行建模

    • 活动图中包含哪些建模元素?

      • 初始节点 一个黑点,表示活动的开始,只能有一个
      • 活动终点 圆圈套黑点,表示活动处理完成
      • 活动节点 表示一个活动 用半椭圆表示(区分于状态)
      • 转换 当一个活动结束时,控制流就会马上传递给下一个活动节点 一条带箭头的直线
      • 分支和监护条件 用菱形表示,它有一个进入转换(箭头从外指向菱形),一个或多个离开转换(箭头从菱形指向外)
        在分支的每个离开转换上都会有一个监护条件,用来表示满足什么条件的时候执行该转换
      • 分岔与汇合 在UML中,采用同步线对分岔和汇合来对并发事件流建模,同步线是一种水平或垂直的粗线段
      • 带泳道 区分操作角色
    • 活动图中的分支和分岔?
      分支是一个控制流选择某一个方向继续执行,控制流是串行的
      而分岔则是控制流的分开 控制流是并行的

    • 活动图中的对象流?

  • 包图

    • 什么是包图?包图有什么用?

      组织代码

    • 包图包含哪些基本建模元素?
      包 类

    • 什么是包?

      在UML中,包是用于把建模元素组织成组的通用机制。
      分组事物 是其他建模元素的容器

    • 包图的建模原则?
      重用等价原则、共同重用原则、共同闭包原则、非循环依赖原则

  • 对象图

    • 什么是对象图?对象图有什么用?

      对象图表示一组对象和它们之间的联系

    • 对象图中包含哪些建模元素?

      对象
      链接

    • 对象图与类图的比较?

      对象是类的实例
      对象图组织类 类图组织类

  • 状态机图

    • 什么是状态机图?状态机图有什么用?

      状态机图描述状态到状态的控制流程,常用来对系统的动态特征建模

    • 状态机图包含哪些建模元素?

      • 初态和终态

        开始的状态 用实心圆表示 只能有一个
        终态 点外有圈 可以有多个

      • 源状态和目标状态

        两个状态,看名字也能知道这两个状态是要做什么的

      • 转换
        事件[监护条件]/动作

        • 触发事件
        • 监护条件
        • 动作
      • 分支

    • 怎样建模状态机图?

      1. 寻找主要的状态
      2. 确定状态之间的转换
      3. 细化状态内的活动和转换
      4. 用复合状态展开细节
  • 交互图

    • 交互图包括几类图?分别描述什么,有什么用?
      顺序图、通信图、定时图、交互概述图

    • 顺序图包含哪些基本建模元素?
      --对象、生命线、控制焦点、消息

    • 通信图?

      通信图描述了系统中对象之间通过消息进行的交互,强调了对象在交互行为中承担的角色

    • 顺序图与通信图的比较?

      • 顺序图强调消息的时间顺序,通信图强调参加交互的对象的组织,两者可以相互转换
      • 顺序图不同于通信图的两个特征:
        • 顺序图有对象生命线
        • 顺序图有控制焦点
      • 通信图不同于顺序图的特征:
        • 通信图必须有消息顺序号
    • 顺序图与定时图的不同?

    • 交互概述图是哪两种图的综合?

  • 其他图

    • 构件图
    • 部署图
    • 复合结构图
    • Profile图

part3 实际作图

下面对着几个图重点建模:
用例图,类图,活动图,状态机图
使用工具Enterprise Architect 8.0

问题背景

随着网络的不断发展,web2.0时代早已全面到来,web2.0最鲜明的特点就是与用户的交互越来越多,这就导致了用户所参与的网站也越来越多
但是,这些网站都有一个共同的特点--需要登录进行操作,这就使得用户的账号密码不断增加,能否使得账号密码的管理更加轻松?比如用手机
登录网站?

需求分析

对于用户:他们需要输入账号之后,用手机确认该请求之后就可以登录了,用户也可以向数据库中添加网站信息(包括地址,账号和密码)
对于网站:他们收到用户请求之后,由服务器向用户的手机发送登录请求,用户如果在规定时间内确认该请求,将登录,否则登录超时

用例图

posted @ 2014-04-21 21:49  金发萌音  阅读(269)  评论(0编辑  收藏  举报