本章介绍内容较多,但都是提纲要领,不会细细展开
一、面向对象技术
面向对象技术是一种程序设计方法,是对现实世界中问题的抽象方式
软件质量衡量的指标
外部:
1、正确性
2、健壮性和可靠性
3、性能
内部:
1、模块性
2、灵活性和可扩展性
能不能很好的根据需求方便的修改软件。
3、可复用性
有新的需求是,代码在原本的基础上是不是能很轻松的就更改了。
4、可兼容性
版本之间兼容,应对环境是不是很平滑。
二、为什么要建模
模型:模型是对现实的简化。
把复杂的系统变成小的系统,采用“逐个击破”原则逐一解决
为什么可视化建模?
就像米老师说的,一张图胜过千言万语
用图表现出软件之间的关系,清楚明了
模型组成
模型中的6个元组
M={O,G,T,V,R,S}
O:表示模型的对象集
G:目标集
T:系统所处的环境及约束条件
V:变量集,包括内部变量、外部变量、状态变量
R:变量之间的关系集
S:状态集,从初态到终态
建模原理及原则
1、分解
2、抽象:非常重要
3、泛华
4、投影/视图:一个对象不同角度
5、构件化
6、形式化
三、什么是UML
UML不是程序语言
UML不是形式化语言
软件危机的主要特征:
1、软件开发周期大大超过规定日期
2、软件开发成本严重超标
3、软件质量难以保证
五、软件过程
不同的软件开发过程
- 美国CMM/TSP/PSP
- ISO900系列
- ISO/SPICE标准
- RUP(统一软件过程)
- XP(极限编程)
RUP的三个特点
1、用例驱动
2、以架构为中心
3、采用迭代和增量
一个软件产品开发应包括多次循环
每个循环有四个阶段:
初始、细化、构造、移交
每个阶段又包括多个迭代过程
六、UML工具
最常用的Rational rose
用来画图
七、UML的结构
整个UML学习的重中之重
UML基本结构块
1、事物
构成模型图的一些基本图示符号,他们表示一些面向对象的基本概念
a. 结构事物
Ⅰ.类(class)
对一组具有相同属性、方法、关系和语义的对象的描述
Ⅱ.接口(interface)
描述了一个类或构件的服务的操作集。仅仅定义了一组操作规范,没有给具体的实施方法
Ⅲ.协作(conllaboration)
Ⅳ.用例(use case)
对一组动作序列的描述
Ⅴ.主动类(active class)
其对象至少拥有一个进程或进程线,因此他能启动控制活动
Ⅵ.构件(components)
是系统中物理的、可替代的部件,他遵循且提供一组接口的实现
是一个系统中存在的物理结构,如:一个.DLL动态链接库
Ⅶ.节点(nodes)
运行时总在一个物理元素,通常有一些记忆能力、处理能力
b.行为事物
是UML模型的动态部分。他们是模型中的动词,描述了跨越时间和空间的为
Ⅰ.交互(interaction)
由特定语境中共同完成一定任务的一组对象之间的交换的消息组成。
Ⅱ.状态机(state machine)
描述了一个对象或一个交互在生命期内相应事件所经历的状态序列。
带个类或一组类之间协作的行为可以用状态机来描述。
一个状态机书记到一些其他元素,包括状态转换(从一个状态到另一个状态流)、事件(发生转换的事物)、活动(对一个转换的响应)
c.分组事物
是UML模型的组织部分,是主要的分组事物是包。
包是唯一的组织机制
包是把元素组织成组的机制
包可以拥有其他元素,这些元素可以是结构事物中的任意一个,甚至可以是其他的包
一个包形成一个命名空间。在一个包中同一种元素的名称必须唯一。不同种类的元素可以有相同的名称。
d.注记事物
注解(note)
主要的注释事物
2、关系
基本图示符号之间的关系
a.关联association
两个或多个类之间的结构性关系,最普遍存在的关系
b.依赖dependency
一个类依赖于一个类,两个事物的使用关系,可以指类、包或者构件之间的关系
c.泛化generalizetion
面向对象中的继承关系。子元素共享了父元素的结构和行为
d.实现realization
一个类实现了一个借口,类源之间的语义关系
3、图
最最重要的部分,后期接手维护的重要部分
特定的视角对系统所做的抽象描述
a.类图
系统中的所有类,及之间的关系
b.对象图
c.状态图
d.构件图
系统之间构件之间的关系
e.部署图
设计开发结束之后,如何布置到实际生活中,比如要使用多少服务器等
f.协作图
和序列图共同描述系统的动态行为,类和对象之间的交互
g.交互序列图
h.活动图
描述系统中的某种活动,有点类似流程图
i.用例图
对用户的需求进行描述,软件开发人员和用户共同绘制
事物是对模型中最具代表性的成分的抽象;关系把事物结合在一起;图聚集了相关的事物。
UML规则
UML有用于描述如下物理的语义规则
a.命名为事物、关系和图起名
b.范围给一个名称以特定含义的语境
c.可见性怎样让其他人使用或看见名称
d.完整性事物如何正确、一致地相互联系
e.执行运行或模拟动态模型的含义是什么
UML的公共机制
1、规格说明
a.UML不只是一种图形语言,在它的图形表示法背后都有一个规格说明
b.这个规格说明提供了对构造块的语法和语义的文字叙述
c.图形表示法用来对系统进行可视化,规格用来描述系统的细节
d.规格提供了一个语义底版,UML图只是对底版的一个简单投影
2、修饰
a.UML表示法中的每一个元素都有一个基本符号,可以把每种修饰细节加到这个符号中
3、通用划分
a.类/对象二分法
类是一个抽象;对象是这种抽象的一个具体形式
如:用例和用例实例(场景),构件和构件实例
b.接口/实现二分法
接口声明一个契约;实现表示对契约的具体实施,它负责如实时地实现接口的完整语义
4、扩展机制
a.对UML图示符号的扩展。
b.包括
Ⅰ.构造型stereotype
Ⅱ.标准值taggedvalue
Ⅲ.约束constraint
UML中的图
UML表示机制的层次结构
1、用例图
2、类图
3、行为图
a.状态图
b.活动图
c.交互图
对象之间的交互。
两个图示等价的,只是表现方式不同
Ⅰ.序列图
Ⅱ.协同图
4、实现图
a.组件图
b.部署图
概要定义
1、用例图
从用户的角度来描述功能
2、静态图
a.类图
定义系统中类,描述类的内部结构和类之间的关系
b.对象图
是类图的一个实例,描述系统在具体时间点上锁包含的对象以及各对象之间的关系
3、行为图
用来描述系统的动态模型和对象之间的交互关系
a.状态图
用来描述类的对象所有可能的状态以及事件发生时状态的转移条件
比如:灯的存在开关两种状态,以及他们之间是如何转变的
b.活动图
用来描述满足用例要求所要进行的活动以及活动间的约束关系
使用活动图有利于识别系统的并行活动
c.交互图
用来描述对象之间的交互关系
序列图和协作图可以相互转化
Ⅰ.序列图
描述对象之间的交互顺序,强调对象间消息传递的时间顺序
Ⅱ.协作图
描述对象之间的合作关系,强调说明哪些对象之间有消息的传递
4、实现图
a.构件图
用来描述代码构件的物理结构以及各构件之间的依赖关系
b.实施图
部署图定义了一个系统中硬件的物理体系结构,用来描述实际的物理设备以及他们之间的联系关系
九、UML在软件开发各阶段的应用
1、在软件开发各阶段,使用不同的UML图对系统进行描述
2、使用用例图来描述用户需求;使用类图、对象图、包图、构件图、部署图、5种静态图来描述系统的静态结构;使用顺序图、合作图、活动图和状态图4种图描述系统的动态行为
3、需求:
采用用例图来描述需求(角色、功能、外部交互)
4、分析:明确解决问题的细节
采用类图来描述静态结构
采用顺序图、合作图、活动图、状态图来描述动态行为
5、设计:给出解决方案
采用类图、包,对类的接口进行设计
6、实现:
将类用某面向对象语言实现
7、集成与交付:
构件图、包、部署图
8、测试:
a.单元测试:使用类图和类的规格说明书
b.集成测试:使用类图、包、构件图、合作图
c.系统测试:使用用例图来测试系统功能