UML建模--筑基

一、UML概述
1、什么是UML
    统一建模语言(Unified Modeling Language)用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。
    项目开发的说明书(设计图)
2、UML是做什么的
    帮助建立软件开发过程和各种模型
    主要目的是为了让开发者之间进行有效的交流
        开发者与用户之间的交流
        开发者与设计者之间的交流
        开发者与开发者之间的交流
        开发者与管理者之间的交流
    适合大型项目和大型团队的开发
3、UML的应用领域
    UML的目标是以面向对象的方式来描述任何类型的系统,常用于建立软件的模型
4、对UML的看法
    不建议用UML生成代码。
    没有完美的UML图,够用就行,图是死的,人是活的
    UML主要功能是为了更好的让开发团队与用户之间进行沟通交流
    现阶段学习UML目的以应用、看懂为主(有利于后期工作),以画图为辅
    但需要长期学习,为后期成为系统分析师、架构师、产品经理、项目经理打下基础

二、Rational Rose四种视图与UML的图形关系

四种视图:
用例视图:Use Case View
    帮助理解和使用系统,这个图展示了系统的参与者和用例是怎么相互作用的,包括了系统中的所有角色
    用例图:Use Case Digram
    时序图:Sequence Digram
    协作图:Collaboration Digram
    活动图:Activity Digram
    这种视图的主要使用都是用户、分析人员、项目管理人员
逻辑视图:Logical View
    逻辑视图关注的是系统如何实现用例中提出的功能,它提供系统的详细图形,描述了组件间如何关联
    类图:Call Digram
    状态图:Statechart Dirgam
    这种视图的主要使用者是开发人员,开发人员包括:程序员、需求分析师,测试工程师,项目经理
构件视图:Component View
    这种视图关注的是代码模板间的关系,通过组件视图可以知道哪些代码是组件,哪些是代码库,哪些是运行组件,会默认有一个Component图表
    这种视图的主要使用者是负责控制代码、编译、部署应用程序的人员
部署视图:Deployment View
    这种视图关注的是系统的实际部署,进程和设备间的实际连接
    这种视图的使用者是用户和软件的发布人员

三、用例图:详细表示所有的功能需求,不考虑细节
    1、用例图的作用
    主要用它来描述需求,画图时要从用户的角度出发,主要用于与用户之间的交流
    2、要例图的要点
    正确反应用户的需求
    每个用例的内部实现
    细节不是本阶段要考虑的问题
    3、用例图包括
    参与者
    用例
    用例之间的关系
    4、如何确定参与者
    谁使用系统
    谁负责启动、关闭系统
    谁查询数据
    谁提供数据
    谁安装、升级系统
    5、什么是用例
    是系统的使用过程,一个用例就是一个功能需求
四、类图:主要表示类与类之间的关系,不用详细考虑类的属性和方法
    1、类图的主要作用
    主要用来描述类的内部结构和类与类之间的关系
    类图中不显示暂时性的信息,是面向对象建模时的主要组成部分
    2、类图的主要部分
    名称:类名
    属性:类的成员变量
        访问权限
        变量名
        类型
    操作:类的成员函数
        访问权限
        函数名
        参数名
        参数类型
        返回值类型
    职责:说明此类具体负责的任务,解决什么问题

    3、类之间的关系:
    继承关系:
    是一个类继承另一个类的功能,并有增加自己新功能的能力,使用带空心三角形的实线来表示继承关系,子类指向父类
    一个类Test继承Base类的属性和行为,并可以增加自己的属性和行为 

    实现关系:
    从语法上体现也是一种继承,是接口类与实现类之间的关系,使用带空心三角形的虚线来表示实现关系,实现类指向接口类 (子类指向父类)
    一个类Test继承一个抽象类,父类中的函数定义为纯虚函数,子类继承后覆盖所有纯虚函数

    依赖关系:箭头和虚线来表示依赖关系,依赖者指向被依赖者
    一个类A中使用到了类B(类A中的函数的参数或返回值类型是类B),这种关系是临时,偶然性的,是一种非常弱的关系

    关联关系:箭头和实线来表示关联关系,依赖者指向被依赖者
    是一种强依赖关系,类A的属性(成员变量)是类B

    聚合关系:空心菱形和箭头实线
    聚合关系是一种关联关系的特例,它体现的是整体与部分
    整体与部分之间是可分离的,它们可以具有各自的生命周期
    从代码层面来讲与关联是一致的

    组合关系:实心菱形和箭头实线来表示聚合关系,菱形指向整体,箭头指向部分
    也是一种关联关系的特例,这种关系比聚合更强,也称为强聚合,同样也体现出整体与部分,但此时整体与部分是不可分割的
    从代码层面来讲与关联是一致的
    从代码实现层面只有继承、包含、依赖
    
    用例图和类图表示项目中静态的关系,因此被称为静态图

五、时序图:主要表示对象之间消息的发送顺序,只考虑正确情况
    用来表示对象之间的关系,同时强调对象之间的交互
    时序图向用户表示事件随着时间的推移,清晰的可视化轨迹
    时序图用来表示项目中的某个操作是如何进行的,具体的步骤是什么
    
六、状态图
    用来表示对象的状态变化,用来帮助开发人员理解系统中对象的行为
    主要有状态、生命周期、条件、状态转换、事件、动作

七、活动图
    活动图的本质就是流程图,它描述了系统的活动,判断点和分支
    侧重于操作而不是对象,重点表示逻辑变化
    一个动作的流程图一般包括起点、终点、操作
    泳道:用于多种角色参与一个过程,一个活动只能属于一个泳道

八、协作图
    主要用来描述对象之间的交互关系,强调参与交互的各对象的组织
    需要按照组织对控制流程进行建模时选择画协作图
    协作图与时序图的区别:
        时序图描述了交互过程中的时间顺序,但没有表达对象之间的关系
        协作图描述了对象间的关系但时间顺序必须从时序图中获得
        合格的协作图和时序图,可互换,而不丢失信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值