`
ldb19890624
  • 浏览: 243876 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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

第五章 用类进行建模


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:对开发了或启发该模式的人的致谢。


分享到:
评论

相关推荐

    软件工程笔记(完整版).pdf

    传统方法学,如结构化方法,包括分析、设计、编程和测试等阶段,而面向对象的方法学则引入了对象导向的思考方式。软件工程方法学的三个关键要素是方法、工具和过程,它们共同构成了软件开发的完整体系。 软件过程,...

    软件工程复习笔记考研复习笔记

    《软件工程复习笔记考研复习概览》 软件工程是一门涉及使用科学知识和技术原理来定义、开发和维护软件的学科。随着计算机技术的发展,软件工程的重要性日益凸显,尤其是在应对日益复杂的软件开发挑战时。本复习笔记...

    达内 软件工程师 java软件工程师 笔记 全套笔记

    通过Hibernate,开发者可以使用面向对象的方式操作数据,而无需直接编写SQL语句。理解实体类、映射文件(Hibernate.cfg.xml)、Session工厂以及HQL(Hibernate查询语言)是掌握Hibernate的关键。 建模技术在软件开发...

    软件工程师学习笔记大全

    笔记中可能会包括C++的面向对象特性、模板、STL(标准模板库)和异常处理等内容。 "EJB笔记.doc"讨论了Enterprise JavaBeans,这是用于构建企业级应用的Java组件模型。EJB提供了一种规范化的服务,如事务管理、安全...

    UML-面向对象建模笔记

    **UML(Unified Modeling Language)**,统一建模语言,是一种在软件开发过程中广泛采用的图形表示法,它为软件工程中的系统分析、设计和实现提供了标准化的视觉化建模工具。UML的设计旨在促进软件开发团队之间的...

    软件工程复试书学长笔记.pdf

    根据提供的文件信息,“软件工程复试书学长笔记.pdf”是一份针对东北大学软件工程专业研究生入学考试复试准备的参考资料。这份笔记对准备参加该专业学术型硕士(学硕)和专业型硕士(专硕)复试的学生非常有帮助。接...

    软件工程复习笔记

    - **面向对象方法学**:包括面向对象分析(OOA)、面向对象设计(OOD)、面向对象编程(OOP)、面向对象测试(OOT)等。 - **方法学三要素**: 1. 方法:解决如何做的问题。 2. 工具:提供自动化或半自动化的支持环境。 ...

    软件工程笔记软件工程思想

    《软件工程笔记:软件工程思想》 在信息技术领域,软件工程是一门不可或缺的学科,它不仅涉及编程技术,更包含了项目管理、需求分析、系统设计、测试与维护等多个方面。软件工程思想是指导整个软件开发过程的核心...

    软件工程笔记整理.doc

    软件工程笔记整理 软件危机是指在计算机软件开发和维护过程中所遇到的问题。它的主要表现形式有软件开发成本高、研制进度无法准确估计、用户不满意、软件产品的可靠性得不到保证、软件产品难以维护、软件发展跟不上...

    自考软件工程笔记总结.pdf

    软件工程笔记总结 本文总结了软件工程的发展历程、软件危机的产生、软件工程的定义、性质和目标,以及软件工程过程和软件生存周期。以下是详细的知识点: 一、软件工程的发展历程 软件工程的发展经历了三个阶段:...

    软件工程师学习笔记大全(C++ JAVA)

    Spring笔记.doc: Spring是Java企业级应用开发的重要框架,这份笔记可能讨论了依赖注入、AOP(面向切面编程)、MVC(Model-View-Controller)架构、Spring Boot、Spring Data和Spring Security等核心概念和技术。...

    软件工程笔记(完整版).doc

    "软件工程笔记" 软件工程笔记是软件开发和维护过程中的一系列严重问题的总称,包括质量低、效率低、成本高等“两低一高”问题。软件危机的主要表现包括开发成本和进度估计不准、用户对“已完成的”软件系统不满意、...

    南京大学软件工程卷二笔记

    南京大学软件工程卷二笔记涵盖了软件工程的多个关键领域,旨在深入理解和掌握软件开发的核心概念和技术。以下是对每个文件名称对应知识点的详细说明: 1. **4-项目管理基础.md**:这部分内容主要讨论软件项目的规划...

    《软件工程基础》学习笔记

    - 对象工程:关注面向对象设计和开发。 - 过程工程:强化了软件开发过程,包括过程模型、过程改进和过程控制。 - 构建工程:强调软件的快速构建和版本迭代,常见于敏捷开发方法。 5. 软件工程的七个原则: - ...

    软件工程课程设计Rose建模,图书管理系统面向对象分析与设计,附规范报告及源码

    本资料包主要涵盖了“软件工程课程设计”,特别是使用Rose工具进行的“Rose建模”技术,用于实现“图书管理系统”的面向对象分析与设计。资料中包括了规范报告和源码,为学习者提供了完整的实践过程参考。 1. **...

    2021-2022年收藏的精品资料软件工程学习笔记.doc

    软件开发经历了从程序设计时代到程序系统时代,再到软件工程时代的演变,每个时代都有其特定的生产方式和工具,如早期的机器语言和汇编语言,到后来的高级语言和面向对象技术。 软件危机的出现标志着软件开发技术的...

Global site tag (gtag.js) - Google Analytics