什么是面向对象?
· Coad和Yourdon给出了一个定义:“面向对象=对象+类+继承+通信”
· 如果一个软件系统是使用这样4个概念设计和实现的,则我们认为这个软件系统是面向对象的。
· 面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
· 面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。
面向对象的三大模型
一、对象模型化技术OMT
· 对象模型化技术把分析时收集的信息构造在三类模型中,即对象模型、功能模型和动态模型。
· 这个模型化的过程是一个迭代过程。
1、关联
· 在OMT中,类与类之间的关系叫做关联。
关联形式:
(1)聚合,代表整体与部分的关系,这是一种特殊形式的关联。
(2)限定,用以对关联的含义做某种约束。
(3)角色,用来说明关联的一端,由于多数关联具有两个端点,因而涉及到两个角色。
2、类和对象的关系:
二、动态模型
· 动态模型着重于系统的控制逻辑。
· 它包括两个图,一是状态图,一是事件追踪图
(1)状态图
· 状态图是一个状态和事件的网络,侧重于描述每一类对象的动态行为。
动态模型由多个状态图组成
· 各个状态图并发地执行,并可以独立地改变状态
(2)事件追踪图
事件
· 一个事件发生在某一个时刻
· 每个事件都是单独发生的
· 我们建立事件类,并给每个事件一个名字,以指明共同结构和行为
· 事件从一个对象向另一个对象传送信息。
事件追踪图
· 事件追踪图
· 事件追踪图侧重于说明发生于系统执行过程中的一个特定“场景”
· 场景也叫做脚本,是完成系统某个功能的一个事件序列
(3)状态图与事件追踪图的关系
· 状态图叙述一个对象的个体行为,事件追踪图则则给出多个对象所表现出来的集体行为。
· 例如,一个事件追踪图指出某一对象在接受一个事件之后发出另一事件,同一行为在此对象的状态图中也应当有所表示。
三、功能模型
· 功能模型表明,通过计算,从输入数据能得到什么样的输出数据,不考虑参加计算的数据按什么时序执行。
· 功能模型由多个数据流图组成,它们指明从外部输入,通过操作和内部存储,知道外部输出,这整个的数据流情况。
· 功能模型中所有的数据流图往往形成一个层次结构。
· 在这个层次结构中,一个数据流图中的过程可以由下一层的数据流图做进一步的说明。
· 数据流图中允许加入控制流,但这样做将与动态模型重复,不提倡夹带控制流。
四、基于三大模型的分析过程
· 功能模型着重于系统内部数据的传送和处理。
功能模型定义“做什么”
动态模型定义“何时做”
对象模型定义“对谁做”