《面向对象软件工程》笔记(二)

简介: 《面向对象软件工程》笔记(二)  第五章 用类进行建模 OCSF对象客户机-服务器框架 统一建模语言Unified Modelling Language OMG对象管理组织Object Management Group 1、UML有多种类型的图,包括: (1)类图:描述类及类之间的关系; (2)交互图:(包括两种图:顺序图和协作图)通过描述对象之间如何交互来展示系统行为; (3)状态图和活动图:展示了系统内部是如何运作的; (4)构件和部署图:展示如何重逻辑上和物理上安排系统的不同构件。

《面向对象软件工程》笔记(二)

 第五章 用类进行建模


OCSF对象客户机-服务器框架
统一建模语言Unified Modelling Language
OMG对象管理组织Object Management Group
1、UML有多种类型的图,包括:
(1)类图:描述类及类之间的关系;
(2)交互图:(包括两种图:顺序图和协作图)通过描述对象之间如何交互来展示系统行为;
(3)状态图和活动图:展示了系统内部是如何运作的;
(4)构件和部署图:展示如何重逻辑上和物理上安排系统的不同构件。
UML的特征:
(1)具有详细的语义,描述各种符号的含义;
(2)具有扩展机制,允许软件设计人员表示非UML核心部分的概念;
(3)它具有相关的文本语言,称为对象约束语言(Object Constraint Language,OCL),用来说明图中元素的各种情况。
UML的目标是为软件开发提供支持。
有几种面向对象的方法,其中一些使用UML表示模型。Rational统一开发过程(Rational Unified Process,RUP)就是这些方法的一个例子。
UML是一种建模语言,用来创建软件系统可视化模型。在软件开发中,模型是至关重要的,它们用来描述和验证软件系统。
(1)模型应该使用标准符号;
(2)模型应该尽可能被客户和用户理解;
(3)模型应该让软件工程师能够洞察整个系统;
(4)模型应该提供抽象。
模型既可以用来帮助创建设计,也可以用来分析和评审这些设计。
2、UML类图的要素
类图描述了软件系统中的数据。
在类图中显示的主要符号有:
(1)类class:表示数据类型本身;
(2)关联association:表示类之间的链接;
(3)属性attribute:是类及其实例中的简单数据;
(4)操作operation:表示类及其实例所执行的功能;
(5)泛化generalization:把类组织成继承层次结构。
3、实例图(instance diagram):给出了存在于程序执行过程中某个特殊点的对象与链接

的配置示例。
类图的高级特征:
(1)聚合(aggregation):是表示”部分-整体“关系的特殊关联。
(2)接口(interface):描述了一组对象中的部分可见行为。
(3)约束、注释和描述性文本
(4)对象约束语言基础
OCL是一种规格说明语言,而非编程语言。
OCL声明仅仅是指定系统中的必须为true的逻辑事实。
OCL本身是不能编译和执行的。
OCL语句也可以用自动代码生成。
类图中的OCL语句可以指定属性值和关联。它们还可以声明操作的前置条件和后置条件。
OCL语句的组成元素:
(1)对角色名称、关联名称、属性和操作结果的引用;
(2)逻辑值真与假;
(3)逻辑操作符;
(4)字符串;
(5)整数和实数;
(6)数学运算。

第六章 使用设计模式
(1)有助于保证类图中关系分离的模式:抽象-发生(Abstraction-Occurrence)模式、观察者(Observer)模式、玩家-角色(Player-Role)模式;
(2)用来创建实例层次的模式:通用层次(General-Hierarch)模式
(3)委托(Delegation)模式;
(4)可以使用委托访问一个或更多其他类的功能的模式:适配器(Adapter)模式、外观(Facade)模式和代理(Proxy)模式;
(5)有助于保护其它对象不会受到预料之外访问的模式:恒定(Immutable)模式和只读接口(Read-Only Interface)模式。
1、模式简介
模式是在特定上下文中遇到的一般性问题的可重用解决方案的概要。
设计模式Design Pattern就是用在建模或设计中的模式。
好的模式应该尽可能通用,包含那些已经被证明能够有效解决指定上下文中问题的解决方案。
模式必须用易于理解的方式来描述。
每个模式都应该有一个名字,还应该具有如下信息:
(1)上下文context:模式应用的一般环境;
(2)问题problem:解释要克服主要困难的一两句话;
(3)约束force:解决问题时要考虑的关系或影响;
(4)解决方案solution:建议使用的解决问题的方法;
(5)反模式antipattern:在此上下文中很差或根本不起作用的模式;
(6)相关模式related pattern:(可选)与本模式相似的解决方案;
(7)参考reference:对开发了或启发该模式的人的致谢。

目录
相关文章
|
存储 算法 搜索推荐
C++ 面向对象程序设计 14万字总结笔记(八)
C++ 面向对象程序设计 14万字总结笔记(八)
55 0
|
存储 编译器 测试技术
C++ 面向对象程序设计 14万字总结笔记(五)
C++ 面向对象程序设计 14万字总结笔记(五)
67 0
|
存储 编译器 C++
C++ 面向对象程序设计 14万字总结笔记(六)
C++ 面向对象程序设计 14万字总结笔记(六)
76 0
|
6月前
|
算法 Java 程序员
【C++专栏】C++入门 | 类和对象 | 面向过程与面向对象的初步认识
【C++专栏】C++入门 | 类和对象 | 面向过程与面向对象的初步认识
53 0
|
3月前
|
设计模式 数据库 Android开发
基于设计模式的绘图程序设计(大二下学期课程设计)
这篇文章介绍了一个使用设计模式实现的绘图程序的课程设计,要求在软件设计中使用至少三种设计模式,并实现基本图形的绘制、装饰以及持久化等功能。
|
5月前
|
算法 编译器 C语言
C++进阶之路:深入理解编程范式,从面向过程到面向对象(类与对象_上篇)
C++进阶之路:深入理解编程范式,从面向过程到面向对象(类与对象_上篇)
67 3
|
存储 算法 编译器
C++ 面向对象程序设计 14万字总结笔记(七)
C++ 面向对象程序设计 14万字总结笔记(七)
59 0
|
算法 程序员 C语言
C++ 面向对象程序设计 14万字总结笔记(一)
C++ 面向对象程序设计 14万字总结笔记(一)
92 0
|
存储 缓存 安全
C++ 面向对象程序设计 14万字总结笔记(四)
C++ 面向对象程序设计 14万字总结笔记(四)
37 0
|
存储 编译器 程序员
C++ 面向对象程序设计 14万字总结笔记(三)
C++ 面向对象程序设计 14万字总结笔记(三)
66 0