共四个 Chapter,持续输出中。
参考资料:
UML软件建模技术-基于IBM RSA工具(清华大学出版社)
UML2.0基础与RSA建模实例教程(人民邮电)
面向对象葵花宝典(李运华)(电子工业出版社)
火球——UML大战需求分析(第二版)(张传波 )
吉林大学统一建模语言及工具 ppt
Why we modeling and What is UML
Why We Modeling
What is a model?
- A model is a simplification of reality.
What is Modeling?
- 建模就是认识现实世界
What is Software Models?
-
软件模型的概念
- 软件模型:通过一定的形式和方法用来描述软件的模型。
- 软件建模:建立软件模型的过程被称为软件建模。
-
软件模型的内容
- 需求模型:描述软件向用户所能够提供的外在特性,包括软件的目标、
功能、性能等。 - 分析模型:立足于系统的抽象逻辑建模.
- 设计模型:软件设计方案的规范化描述。包括软件的架构、详细设计、界面设计、数据库设计等模型。
- 测试模型:测试软件的方案描述.
- 需求模型:描述软件向用户所能够提供的外在特性,包括软件的目标、
Software Modeling
Object oriented software modeling:
在软件开发中,采用与人的思维方式相一致的,直接面向客观事物,面向所要解决的需求问题,并用一套对象、类、继承、消息等机制开发软件的系统化软件建模方法。
特点:
- 对象是软件建模的重心
- 包括需求、设计、实现等多种模型
Software modeling process:
Software modeling tools:
- Rational Rose2003
- Enterprise Architect
- Microsoft Visio
- IBM Rational Software Architect
- starUML
Introducing the UML
What is UML?:
Unified Modeling Language
Unified
: UML has become a world standardModeling
: Describing a software system at a high level of abstractionLanguage
: More comprehensible, ready-to-use, expressive, and visualing.
The UML Is a Language for Visualizing
, Specifying
, Constructing
and Documenting
-
Visualizing
- Communicating conceptual models to others is prone to error unless everyone involved speaks the same language.
- There are things about a software system you can’t understand unless you build models.
- An explicit model facilitates communication.
-
Specifying
- To build models that are precise, unambiguous, and complete. In particular, the UML addresses the specification of all the important analysis, design, and implementation decisions that must be made to develop and deploy software-intensive systems.
-
Constructing
- UML models can be directly connected to a variety of programming languages.
-
Documenting
- The UML addresses documentation of system architecture, requirements, tests, project planning, and release management.
History of UML
Skip !!!
The essence of UML
- UML 软件过程规定软件开发的阶段、步骤和工作。和程序设计语言的关系
- Java、C++ 等程序设计语言用来编码实现一个软件系统。
- UML用于对一个软件系统建立模型。
- UML 和软件过程的关系
- 软件过程规定软件开发的阶段、步骤和工作。
- UML 是语言,用来描述软件模型。
A Practice of Visual Modeling with UML
UML结构
物件
类 Class
类的定义:
类是具有相同属性、操作、关系和语义的对象集合的总称。通常在 UML 中类被画成矩形
表示形式:
-
类名 The class name
- 每个类都必须有一个名字,用来区分其它的类。
- 名词或名词短语(动词或动词短语表示控制类)。如:人,桌子,图形,汇总
- 尽可能明确、简短,业务领域中事物的名称,避免使用抽象、无意义的名词。如:帐户,订单
- 用英文,第1个字母大写。如:Shape, Person,CheckingAccdount
-
属性 Attribute
- 描述类所表示事物的静态性质
- 格式:
[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
- 可见性:该属性对外部实体的显现程度。
- 公有
public
:+
所有可见 - 受限
protected
:#
子类及本身可见 - 私有
private
:-
本身可见 - 包
package
:~
包内可见
- 公有
- 属性名:第 1 个英文单词首字母小写,其它单词首字母大写。如:contactName
- 类型:
- 字符串:
String
- 日期:
Date
- 布尔:
Boolean
- 整型:
int
- 其他
- 字符串:
- 多重性:表示属性取值的多寡,以及有序性
name:String[0..1]
,表示属性”name”可能无值,也可能仅有一个值points:Point[2..* ordered]
:表示有两个或多个值,有序
- 初始值:表示属性初始所取的值
#visibility:Boolean=false
:表示属性visibility
初始取false
- 特性:表示属性约束说明
#visibility:Boolean=false{R/W}
:表示属性visibility
可读,写
- 可见性:该属性对外部实体的显现程度。
-
操作
- 描述类所表示事物的动态性质
- 格式:
[可见性]操作名[(参数列表):返回类型]
- 可见性:同属性的可见性格式
- 操作名:第 1 个英文单词首字母小写,其它单词首字母大写。如:close()
- 该操作的形式参数,可以为空。如 #create(), -attachXWindow(xwin: Xwindow)
- 返回类型:该操作的返回值的类型。如: +display():Boolean
类的类型:
按照其作用,类分为实体类,界面类和控制类三种类型。
-
实体类 Entity Class
-
界面类 Boundary Class
-
控制类 Control Class
接口 Interface
类的定义:
组件 Component
组件的定义:
-
组件代表了一个接口定义良好的软件模块。
-
一个组件可能是源代码、可执行程序或动态库。如:一个DLL,一个JavaBeans
结点 Node
结点的定义:
包 Package
包的定义:
-
包是一个用来将模型单元分组的通用机制。
-
包可以含有类、接口、组件、用例等物件或其它的包。
包的作用:任何大系统都必须划分为较小的单元,以便人们在某一时刻可以和有限的信息工作,使团队的工作不相互影响。
注释
注释的定义:
- 注释用于解释设计的思路,便于理解。
- 一个好的模型应该有详尽的注释。