欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

UML(Unified Modeling Language)统一建模语言-----第二节

程序员文章站 2024-02-19 22:11:58
...

UML的三要素

1、过程

什么是UP(过程)?
先做什么,后做什么?过程中都有什么样的概念?
软件开发的过程(software development process):描述了构造、部署以及维护软件的方式;
统一过程(The Unified Software Development Process)是一种流行的构造面向对象系统的迭代软件开发过程;
Rational统一过程(Rational Unified Process,RUP):是对统一过程(UP)的详细精化,并且一杯广泛采纳

UP中可以引进其他方法中的有用的实践,eg极限编程(Extreme Programming,XP):重视沟通(项目小组与用户之间的沟通,项目小组内部的沟通)与反馈(根据反馈不断的修正设计方案)。XP中的测试驱动开发(test-driven development,tdd):在编程前先写测试单元(把百分之百的不通过变成通过),单元测试工具但是其成本较高所以很多公司不用、重构(refactoring):变化就得需要重构,更新方法名等和持续集成(continuous integration):一开始就有一个可运行的系统,然后在此基础上逐步增强其功能,客户可以参与到开发过程中,及时提出问题等
UP中主要的三个概念?
1、以构造(各种模型【整个过程中需求有需求的模型、设计模型测试模型】)为中心
2、用例(要开发软件的目标,用户使用软件干嘛?如何用)驱动:促进整个过程
3、迭代和增量式的开发:拥抱需求的变化,如下图;四个阶段
            初始阶段:分析最重要的百分之二十以上的需求建立用例模型,对左边的内容都需要做
            细化:对剩下的大部分需求进行分析,以用例的方式,建立场景描述,再进行分析和设计,有多次迭代(时间段eg一周时间完成需求然后再迭代(因为需求未完成,一部分一部分的做,不断与用户交互,增量式的开发))
            构造:侧重于实现
            交付:侧重于交互和部署
            每个阶段虽然都会横跨所有的层次,但是都有其重点,区域比较大的表示重点

UP只是描述了这样一个过程,可以将其他的方法互为补充egXP

UML(Unified Modeling Language)统一建模语言-----第二节

上图的UP与传统的瀑布模型(瀑布生命周期)有很大的不同
UML(Unified Modeling Language)统一建模语言-----第二节

2、UML的图形表示法

UML(Unified Modeling Language)统一建模语言-----第二节

事物就是某种东西
类:实体
接口:功能性描述
构件:软件模块
节点:描述整个系统的部署结构
行为
交互(消息):实线+箭头+名称(上方)
状态:状态变化,添加---》add,提交以后状态变化;可以通过状态图或活动图描述
分组
包:组织其他事物的一种概念,eg,java中的包
子系统:eg;各种管理系统之间描述,功能管理系统依赖于权限管理系统
注释:未尽事宜
关系:UML中非常重要
依赖、关联(聚合、组合)、泛化、实现
依赖:一个事物的变化影响另一个事物;
关联:关联名、导航、角色、多重性、聚合、组合;eg:公司有多个部分,一个部分含多人,部门与人之间关系
聚合:关联的双方整体与部分的关系,eg:电脑有显示器和主机,飞机场与飞机
组合:是一种强聚合,eg:view有menubutton,没有view就不会有menubutton
泛化:继承,eg:big is animal
实现:接口,定义一系列的规范
图:相当于一种角度,eg:交通图和行政图
用例图,交互图(顺序图,协作图)、类图、活动图、状态图等
用例图:从参与者的角度描述系统
交互图:在实现add user时候,描述如何交互(how add?),首先打开界面--输入信息--提交--系统存储--返回添加用户成功信息(文字描述就是用例)------》可以得到有哪些接口,以及方法;
类图:描述人和部门的多对一关系
活动图:表示一种流程;eg:登录(打开登录界面--》输入用户名密码登录--》后台判断用户名是否存在,否:返回登录界面,并提示用户名不存在--》密码————》是否超时等)---》描述清楚整个系统
状态图:描述状态的变化:eg校园一卡通(建立文件结构,写入学生信息--已初始化--使用中(与用户关联)--丢卡,被冻结--注销--回收)挂失--》注销;有一定前提条件:eg:一张卡不能直接变成回收状态,它必须先注销解除关联关系
扩展机制:Stereotype(版型)、Tagged value(标签值)、Constraint(约束)
只有在特定的环境中才有其作用;
Stereotype(版型):表示概念的扩展类型,SSH中user类等,实体类,控制类,边界类等
Tagged value(标签值):版本一类的
Constraint(约束):eg:age<18
图的分类:
静态建模:类图
动态建模:
顺序图(协作图)
用例图
活动图
状态图
学习顺序:
    从最重要的开始:类图(肯定用)———》顺序图————》用例图————》活动图————》状态图

类图:
UML(Unified Modeling Language)统一建模语言-----第二节

DispatchAction:struts中开发某个action继承DispatchAction可以定义多个方法,请求可以通过参数调用不同方法;一个类中处理多个请求----》泛化关系
框1:类的名称
框2:类的实例变量(成员变量)
框3:方法

UserAction调用UserManager(继承用箭头加上三角块,箭头指向父类)接口可以用框表示也可以用圈表示
login是一个方法,参数(参数名user:参数类型User):返回值LoginInfo对象;中间均用冒号表示;
虚线表示依赖,UserAction需要调用UserManger,所以其需要依赖UserManger
实现与集成差不多,但是实现变成了虚线:
注释:连线:注释事物和被注释东西之间的一个连线
UserManger调用UserDao(实现)
关联:用实现表示
依赖用虚线+箭头表示(1  * 多对一的关系)

用例图:
小人表示参与者;后面椭圆表示系统功能性描述,也同时说明了关联用户功能是给管理员用的不是给其他用户用的;
描述了管理员的目的、目标可以做什么?

左下角状态图:
描述页面流,起点(实心圆)

右边活动图:实心圆外面再套一个圈,流程描述

3、工具:Rational Rose

Rational Rose是一种建模工具;
UML(Unified Modeling Language)统一建模语言-----第二节

依赖性是否需要画出来?
不一定,看需求,必要性是画图的重要原则,虽然有这种关系,但不一定要画出来,若非要画出来则应考虑不要影响图形的美观;eg:Struts2中的Action可以不依赖Struts2特定的api或者Servlet API;

一下内容来自ppt

关联:一种弱的连接关系,不构成完全的依赖关系,eg(汽车和乘客,教师和学生,书架和书)
聚合:一种强关联关系,表示“拥有”关系或整体与部分的关系;通常用于将不同的对象通过聚合关系形成一个整体,即形成了“部分-整体”的层次结构,eg:汽车、电脑、微波炉;
组合:一种强的多的“拥有”关系,整体和部分的生命周期是一样的,eg:人和四肢、树和树叶、公司和部门

在Java中聚合和组合从语法上是不能区分的,需要考察类之间的逻辑关系

依赖关系:依赖总是单向的,表示一个类依赖于另一个类的定义。(eg人可以买房或买车)

UML(Unified Modeling Language)统一建模语言-----第二节

数据流图:DFD
实体-关系图:ERD
数据字典:DD
建模方法=建模语言+建模过程;
建模语言定义了用于表示设计的符号(通常是图形符号)【标准建模语言UML是一种建模语言,而不是一种方法,它统一了面向对象建模的基本概念、术语、及其图形符号,为人们建立了便于交流的共同语言】;
建模过程描述进行设计所需要遵循的步骤。
UML统一了Booch,OMT和OOSE等方法中的基本概念:
用例图从OOSE来;
类图从OMT和Booch等方法来;
实现图(构件图 和配置图)从Booch的模块图和过程图来

UML根据软件产品的**体系结构**对软件进行分层

UML(Unified Modeling Language)统一建模语言-----第二节
UML(Unified Modeling Language)统一建模语言-----第二节

用例视图:
UML(Unified Modeling Language)统一建模语言-----第二节
UML(Unified Modeling Language)统一建模语言-----第二节
UML(Unified Modeling Language)统一建模语言-----第二节
UML(Unified Modeling Language)统一建模语言-----第二节

相关标签: UML