美文网首页方法论程序员
UML复习及重点整理

UML复习及重点整理

作者: 金发萌音 | 来源:发表于2014-06-04 20:55 被阅读789次

    分为两部分:

    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最鲜明的特点就是与用户的交互越来越多,这就导致了用户所参与的网站也越来越多
    但是,这些网站都有一个共同的特点--需要登录进行操作,这就使得用户的账号密码不断增加,能否使得账号密码的管理更加轻松?比如用手机
    登录网站?

    需求分析

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

    用例图

    (这里等简书markdown下可以传图片再增加吧)


    ImageImage

    类图

    ImageImage

    活动图

    ImageImage

    状态机图

    ImageImage

    相关文章

      网友评论

      • 金发萌音:@Dark 额学起来确实无聊- -不过很多东西确实很有用 试着做做大一点的工程里面方法的优点才能体现出来
      • 神奇的小狮子:最无聊的课程--软件工程。。。

      本文标题:UML复习及重点整理

      本文链接:https://www.haomeiwen.com/subject/ysndtttx.html