面向对象方法学

概述

为什么软件在本质上是复杂的?

1.问题域的复杂性

无限制的外部复杂性是导致复杂的原因之一

2.管理开发过程的困难性

3.软件中随处可能出现的灵活性

迫使开发者打造几乎所有的初级模块

4.如何描述系统行为

抽象和逼近

软件人如何认识复杂系统?

软件工程师是如何认识复杂系统和进行建模和分析的

发现共同抽象的思维,极大地促进了我们对复杂系统的理解

抽象->系统整体架构

1.复杂系统的规范形式

2.处理复杂性时人的能力的局限

3.混沌-->有序

分解、抽象、层次化

软件人如何进行复杂系统的设计?

1.建模的重要性

建模在所有工程实践中都已得到广泛接受,这主要是因为建模引证了分解、抽象和层次结构的原则。

2.软件设计方法学的要素

3.掌握面向对象开发的模型

本课程的目标

1.掌握面向对象分析的方法

2.掌握面向对象设计的方法

3.进行典型系统的分析与建模

第一章 面向对象方法概论

什么是对象?

在软件系统中,对象具有唯一的标识符,对象包括属性和方法,属性就是需要记忆的信息,方法就是对象能够提供的服务。在面向对象的软件中,对象是某一个类的实例

什么是面向对象?

面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发方法。

面向对象方法的基本思想

一、从现实世界中客观存在的事物出发来构造软件系统

二、在系统构造中尽可能运用人类日常的思维方法

具体而言,面向对象方法有如下一些主要特点:

(1)从问题域中客观存在的事务出发来构造软件系统,用对象作为这些事物的抽象表示,并以此作为系统的基本构成单位。

(2)用对象的属性表示事物的静态特征(即可以用一些数据来表达的特征),用对象的操作来表示数的动态特征(即事务的行为)。

(3)对象的属性与操作结合在一起构成一个独立的实体,对外屏蔽其内部细节(封装)。

(4)对数进行分类,把具有相同性属性操作的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例。

(5)通过在不同程度上运用抽象的原则,可以得到较一般类和较特殊的类。特殊类继承一般类的属性与操作,从而简化了系统的构造过程。

(6)复杂的对象可以用简单的对象作为其构成部分(聚合)。

(7)对象之间通过消息进行通讯,以实现对象之间的动态联系。

(8)用关联表达某些类之间对用户业务有特定意义的关系。

【总结】

对象是系统的基本构成单位,而对象是通过进行描述和创建的。系统中的对象对应问题域中的事物,其属性操作刻画了事物的静态特征和动态特征,它们之间的继承关系、聚合关系、关联消息如实地表达了问题域中事物之间实际存在的各种关系。

什么是面向对象的思考方式?

1.可维护

2.可复用

3.可扩展

4.灵活性好

软件工程是与人打交道的、是为人提供服务的

问题是什么?

谁碰到了问题?

问题的本质是什么?

问题该如何解决?

面向对象软件工程方法学与传统方法学的异同

 面向对象方法的基本概念与原则

对象,类

属性,操作

封装

继承,一般-特殊结构

聚合,整体-部分结构

关联

消息

多态

持久对象,主动对象

……

实例化

可以以类为模板产生属于该类的对象,这种根据类产生对象的过程称为实例化

实例化使并发成为可能

软件功能是如何完成的?

定义了对象群体的逻辑结构,包括属性和操作

系统运行时,类作为产生对象的模板,在物理层面是不存在的

对象

系统运行时必须为每一个需要的对象分配内存、保存数据

对象存在于物理层面,每个对象都有自己的数据空间(内 存)

所有的对象共享同一块代码空间

消息

对象之间的一种交流手段

就像我们日常工作中的各种交流手段

所有相关对象之间相互协作完成软件功能

目前在大部分面向对象的编程语言中,消息其实就是函数(或过程)调用。

更一般的定义: 消息是对象之间在一次交互中所传送的信息

 面向对象基本特征

消息传递:

只能通过向对方发送消息的方式传递信息,这就是消息传递机制

对象只能借助消息传递机制才能同其他对象通信

每个消息必须发送给指定的接受这,并且消息的解释依赖于接受者

消息传递是一种强大的机制,提供了函数名重载、多态和软件复用的能力。

纠正一种误解——认为在任何两个类之间只有存在关联才可能存在消息。 实际上,关联和消息是两个截然不同的概念,二者是相互独立的。

委托:借助消息传递,工作可从一个对象传递到另一个对象

抽象:抽象是忽略一个主题中与当前目标无关的那些方面

封装:封装是指把对象的属性和方法包围起来,避免外界的干扰和不确定性,对数据的访问只能通过接口进行

继承:继承是特殊类自动地拥有或隐含的复制其一般类的全部属性与操作

多继承:允许一个特殊类具有一个以上一般类的继承方式称作多继承

多态:多态是指允许不同类的对象对同一消息做出相应

封装是继承的前提,没有封装就没有继承

抽象,类,一般类,特殊类

抽象与分类:忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性,叫做抽象。抽象是形成概念的基本手段。把具有共同性质的事物划分为一类,叫做分类。

类是具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和操作两个主要部分。类的作用是用来创建对象,对象是类的一个实例。

一般类和特殊类的定义

如果类A具有类B的全部属性和全部操作,而且具有自己特有的某些属性或操作,则A叫做B的特殊类,B叫做A的一般类。一般类与特殊类又称父类子类

泛化

泛化是面向对象方法中的一个重要概念,能够在很大程度上提高软件开发小绿。也称继承、一般-特殊结构。

泛化关系是一种类之间的关系。可将一类对象进一步细分为许多子类,原来的类(父类)与子类之间的关系就是泛化关系。父类称为子类的泛化,子类称为父类的特化。

继承关系是泛化关系的反关系,也就是说子类是从父类继承的,而父类则是子类的泛化 

面向对象的6种关系: 关联,聚合,组合,泛化(继承),依赖,实现

关联:两个或者多个类上的一个关系(即这些类的对象实例集合的笛卡儿积的一个子集合),其中的元素提供了被开发系统的应用领域中一组有意义的信息。

聚合:是两个类之间的一个二元关系,它表示一个类的对象实例以另一个类的对象实例作为其组成部分。 聚合刻画了现实事物之间的构成关系或者拥有关系。

 当一个类实现了该接口中的方法,称为实现。

持久对象: 在程序运行结束后仍能继续保存的对象

超出了程序运行时间,跨越了内外存空间

实现途径:支持持久对象的OOPL,OO-DBMS

主动对象: 至少有一个操作不需要接收消息就能主动执行的对象。

描述具有主动行为的事物

描述并发执行的多个控制流

第二章 不同的分析与设计方法

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值