430 likes | 526 Views
为什么要建模?. 软件建模与建模语言. 软件建模与建模语言. 1 、模型是软件文档的重要成分 一个开发团队首要关注的不应是漂亮的文档、世界级的会议、响亮的口号或者华丽的源码,而是如何满足用户和项目的需要。 2 、建模是软件工程的核心 一个狗窝 —— 一间平房 —— 一幢大楼 需求模型 —— 分析模型 —— 设计模型 —— 测试模型. 3 、什么是模型 定义 : 对问题的书面上的无歧义文字或图形 的描述 . y=f(x) 最杰出的模型 : 地图. 简言之,模型是对现实的简化。
E N D
为什么要建模? 软件建模与建模语言
软件建模与建模语言 1、模型是软件文档的重要成分 一个开发团队首要关注的不应是漂亮的文档、世界级的会议、响亮的口号或者华丽的源码,而是如何满足用户和项目的需要。 2、建模是软件工程的核心 一个狗窝——一间平房——一幢大楼 需求模型——分析模型——设计模型——测试模型
3、什么是模型 定义:对问题的书面上的无歧义文字或图形 的描述. y=f(x) 最杰出的模型:地图
简言之,模型是对现实的简化。 (1)一个好的模型包括重要的因素,而忽略不相干的细节。 (2)每一个系统可以从不同的方面使用不同的模型进行描述,因此每个模型都是对系统从语义上近似的抽象。 (3)模型可以是结构的、侧重于系统的组织,也可以是行为的、侧重于系统的动作。 软件建模与建模语言
4、建模的原则 (1)选择建立什么样的模型对如何发现和解决问题具有重要的影响。 正确的模型有助于提高开发者的洞察力。 软件建模与建模语言
软件建模与建模语言 (2)每个模型可以有多种表达方式。 使用者的身份和使用的原因是评判模型好坏的关键。 (3)最好的模型总是能够切合实际。 模型是现实的简化,必须保证简化过程不会掩盖任何重要的细节。
软件建模与建模语言 (4)孤立的模型是不完整的。
5、建模的目标 通过建模,要实现以下4个目标: (1)便于开发人员展现系统。 ——可视化visualization (2)允许开发人员指定系统的结构或行为。 ——详述specification (3)提供指导开发人员构造系统的模板。 ——构造construction (4)记录开发人员的决策。 ——文档化documentation 软件建模与建模语言
6、通用建模语言 (1)自然语言、图形语言、数学语言 (2)结构化建模与面向对象建模 A、基于功能的分解与基于概念的建模 B、面向对象的建模语言(50种之多) Rumbaugh(云豹):OMT Shlaer/Mellor (雪梨与米勒) Jacobson (雅克森):OOSE Booch(布什) Yourdon(尤顿):OOA/OOD Martin/Odell(马丁与奥地) 软件建模与建模语言
软件建模与建模语言 6、通用建模语言 (3)统一建模语言——UML
软件建模与建模语言 • (3)统一建模语言——UML • UML-Unified Modeling Language • Unified: • 组合了当前最好的面向对象软件建模方法 • Grady Booch,James Rumbaugh,Ivar Jacobson,UML三位主要贡献者。 1.OMT( James Rumbaugh ) 2.The Booch Method( Grady Booch ) 3.OOSE( Ivar Jacobson )
软件建模与建模语言 (3)统一建模语言——UML UML-Unified Modeling Language Modeling: 用于表达现实的简化视图,以便于面向对象软件系统的设计与实现。 Language: UML主要是遵循精确语法的图形语言。
6、通用建模语言 (4)应注意的问题 A、UML是一种建模语言,不是一种建模方法。 遵循特定的规则、允许创建各种模型、并不告诉设计者需要创建哪些模型,不提供开发过程 B、UML并不是软件建模的专用语言。 UML是用于构造系统或理解系统的语言(UML既支持正向工程,又支持反向工程)、是文档化的语言。 软件建模与建模语言
面向对象的基本概念 面向对象=对象+类+继承+通信 • 面向对象技术的基本观点可以概括如下: • 客观世界由对象组成,任何客观实体都是对象, 复杂对象可以由简单对象组成。 • 具有相同数据和操作的对象可归纳成类,对象是 类的一个实例。 • 类可以派生出子类,子类除了继承父类的全部特 性外还可以有自己的特性。 • 对象之间的联系通过消息传递来维系。
调节频道 打开 内部状态 其他 关闭 调节声音 1.对象 客观世界里的任何实体都可以被称之为对象,复杂的对象可由相对比较简单的对象以某种方法组成。 一台收音机对象的实例
2.封装 封装是指把属性和操作封进一个对象里,它的内部信息对外界隐藏,不允许外界直接存取对象的属性。只能通过对象提供的有限的接口对对象的属性数据进行操作。 封装有两层含义: (1)结合性 (2)信息隐蔽性
消息 对象 对象 3.消息 消息就是向对象发出的请求,一个消息包含消息名、接收对象的标志、服务标志、输入信息、回答信息等。当一个消息发送给某个对象时,包含要求接受对象去执行某些活动的信息。接收到消息的对象经过解释,然后予以响应。这种通信机制叫做消息传递。
人 4.类 类是一组具有相同数据结构和相同操作的对象的集合。类是对象的抽象,它将一组数据属性和在数据上的一组合法操作抽象封装。 人类 分门别类 物以类聚
车 5.继承 继承是指子类可以自动拥有父类的全部属性与操作。 父类或超类 子类或派生类
A A C D B B C E F D E 多重继承 单重继承 继承性又分为单重继承和多重继承两类。单重继承时一个子类只能有一个父类;多重继承时一个子类可以有多于一个的父类。
6.多态性 • 同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。多态性通常通过派生类重载基类中的同名函数来实现。 • 多态性分为如下两种: • 编译时的多态性 • 运行时的多态性
多态性的3种实现方式: • 通过接口实现多态性 • 通过继承实现多态性 • 通过抽象类实现的多态性
7.结构与连接 为了使系统能够有效地映射问题域,系统开发者需要认识并描述对象间的以下几种关系: (1)一般/特殊结构
计算机 主机 外设 主板 (2)整体/部分结构
教 教师 学生 m 1 (3)实例连接 实例连接反映了对象与对象间的静态关系。 (4)消息连接 消息连接描述对象之间的动态联系。消息连接是有方向的,连接从消息发送者指向消息接受者。
7、UML的构成(图4-1) (1)视图——“4+1”视图(图4-2) 视图是表达系统的某一方面特征的UML建模元素的子集。是由一个或者多个图组成的对系统某个角度的抽象。 (2)图 9种图 (3)模型元素 UML中的模型元素包括事物和事物之间的联系。事物描述了一般的面向对象的概念,如类、对象、接口、消息和组件等。 (4)通用机制 UML提供的通用机制可以为模型元素提供额外的注释、信息或语义。 软件建模与建模语言
UML UML UML UML 视图 视图 通用机制 通用机制 模型元素 模型元素 视图 视图 通用机制 通用机制 模型元素 模型元素 扩 扩 逻 逻 配 配 扩 扩 用 用 规 规 通 通 逻 逻 并 并 组 组 配 配 用 用 规 规 通 通 并 并 组 组 关 关 关 关 修 修 注 注 展 展 修 修 注 注 展 展 例 例 辑 辑 置 置 发 发 件 件 格 格 用 用 事 事 例 例 辑 辑 置 置 发 发 件 件 格 格 用 用 事 事 系 系 系 系 饰 饰 解 解 机 机 视 视 视 视 视 视 饰 饰 解 解 机 机 视 视 视 视 说 说 划 划 务 务 视 视 视 视 视 视 视 视 视 视 说 说 划 划 务 务 制 制 图 图 图 图 制 制 图 图 明 明 分 分 图 图 图 图 图 图 图 图 图 图 明 明 分 分 图 图 图 图 结 结 分 分 注 注 结 结 分 分 注 注 动 动 动 动 关 关 依 依 泛 泛 实 实 聚 聚 关 关 依 依 泛 泛 实 实 聚 聚 对 对 对 对 顺 顺 组 组 用 用 协 协 状 状 活 活 配 配 顺 顺 组 组 用 用 协 协 状 状 活 活 配 配 类 类 构 构 组 组 释 释 类 类 构 构 组 组 释 释 作 作 作 作 联 联 赖 赖 化 化 现 现 合 合 联 联 赖 赖 化 化 现 现 合 合 象 象 象 象 序 序 件 件 作 作 例 例 序 序 态 态 动 动 件 件 置 置 作 作 例 例 态 态 动 动 置 置 图 图 事 事 事 事 事 事 图 图 事 事 事 事 事 事 事 事 事 事 关 关 关 关 关 关 关 关 关 关 关 关 关 关 关 关 关 关 关 关 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 图 务 务 务 务 务 务 务 务 务 务 务 务 务 务 务 务 系 系 系 系 系 系 系 系 系 系 系 系 系 系 系 系 系 系 系 系 活 活 状 状 活 活 状 状 用 用 组 组 节 节 接 接 协 协 交 交 注 注 用 用 组 组 节 节 接 接 协 协 交 交 注 注 类 类 动 动 态 态 包 包 类 类 动 动 态 态 包 包 口 口 作 作 例 例 件 件 点 点 互 互 释 释 口 口 作 作 例 例 件 件 点 点 互 互 释 释 类 类 机 机 类 类 机 机 UML的构成
1、用例视图 用例视图强调从系统的外部参与者角度看到的或需要的系统功能。——用例图 2、逻辑视图 逻辑视图从系统的静态结构和动态行为角度显示如何实现系统的功能。——类图、对象图、状态图、时序图、协作图、活动图 3、组件视图 组件视图显示代码组件的组织结构。——组件图 4、并发视图 并发视图显示系统的并发性,解决在并发系统中存在的通信和同步问题。——状态图、协作图、活动图 5、配置视图 配置视图显示系统的具体部署。——配置图 部署是指将系统配置到由计算机和设备组成的物理结构上。 UML“4+1”视图
聚集 1、用例图——Use Case Diagram 2、类 图——Class Diagram 3、对象图——Object Diagram 4、状态图——State Diagram 5、时序图——Sequence Diagram 6、协作图——Collaboration Diagram 7、活动图——Activity Diagram 8、组件图——Component Diagram 9、配置图——Deployment Diagram UML的图
1、事物 UML中的事物可以分为结构事物、动作事物、分组事物和注释事物4类。 (1) 结构事物 结构事物共有7种:类、接口、协作、用例、活动类、组件和节点。 UML的模型元素
UML的模型元素 ① 类。类是对具有相同属性、方法、关系和语义的对象的抽象,一个类可以实现一个或多个接口。在UML中类用包括类名、属性和方法的矩形表示。
UML的模型元素 ② 接口。接口是为类或组件提供特定服务的一组操作的集合。接口描述了类或组件的对外可见的动作。在UML中接口用圆表示,在图形旁边还要标注接口的名字。 ③ 协作。协作定义了交互操作。在UML中,用虚线构成的椭圆表示,椭圆中要标注协作的名字。
UML的模型元素 ④ 用例。用例描述系统对一个特定角色执行的一系列动作。在UML中,用例用标注了用例名称的实线椭圆表示,如下图所示。 ⑤ 活动类。活动类是类对象有一个或多个进程或线程的类,在UML中,活动类和类的表示法相同,只是边框用粗线条,如下图所示。 用例
UML的模型元素 ⑥ 组件。组件是实现了一个接口集合的物理上可替换的系统部分。在UML中,组件如下图所示。 ⑦ 节点。节点是在运行时存在的一个物理元素。它代表一个可计算的资源,通常占用一些内存和具有处理能力。一个组件集合一般来说位于一个节点。在UML中,节点如下图所示。
UML的模型元素 (2) 动作事物 动作事物是UML模型中的动态部分,代表时间和空间上的动作。交互和状态机是UML中最基本的两个动态事物元素。 ① 交互。交互是一组对象在特定上下文中,为达到某种特定的目的而进行的一系列消息交换组成的动作。在UML中用带箭头的直线来表示。
UML的模型元素 ② 状态机。状态机由一系列对象的状态组成。在UML中,状态如下图所示。 (3)分组事物。分组事物是UML模型中组织的部分,分组事物只有一种,称为包。包是一种有组织地将一系列元素分组的机制。在UML中包的图形如下图所示。
UML的模型元素 (4)注释事物。注释事物是UML模型的解释部分。在UML中注释事物的图形如下图所示。
UML的模型元素 2、关系 (1)关联关系 指一种对象和另一种对象有联系。 (2)依赖关系 对于两个对象X、Y,如果对象X发生变化,可能会引起对另一个对象Y的变化,则称Y依赖于X。
UML的模型元素 (3)泛化关系 UML中的泛化关系定义了一般元素和特殊元素之间的分类关系 (4)实现关系 实现关系将一种模型元素(如类)与另一种模型元素(如接口)连接起来
UML的模型元素 (5)聚合关系 聚合关系描述元素之间部分与整体的关系。
1、修饰 (1)在使用UML建模时,可以将图形修饰附加到UML图中的模型元素上。 (2)这种修饰为图中的模型元素增加了语义。(粗体、下划线等) 2、注释 (1)为了能够为一个模型添加不能用建模语言来表示的信息,UML为用户提供注释功能。 (2)注释是以自由的文本形式出现的,它的信息类型是不被UML解释的字符串。 (3)在UML图中用一条虚线将注释连接到它为之解释的或细化的元素上。 UML的通用机制
3、规格说明 例如:文档、职责、永久性、并发性 4、通用划分 (1)型——实例: 图4-21 (2)接口——实现:图4-23 5、扩展机制 (1)UML的扩展机制允许UML的使用人员根据需要自定义一些构造型语言成分。 (2)UML中包含3种主要的扩展组件:构造型《 》、标记值{ }和约束{ }。图4-24、4-25、4-26 (3)UML的扩展特性使得UML的应用领域不仅仅局限于软件建模。 UML的通用机制