面向对象

软件工程方法

结构化方法(SA):
1. 复杂世界中存在复杂的处理过程;
2. 设计一系列功能(或算法)去解决某个问题;
3. 寻找合适的数据结构;
4. 以过程为中心。

开发过程:从功能的角度设计系统,自顶向下,逐步细分。

开发特点:
1. 把软件看做处理数据流的加工过程的集合,并定义成由一系列步骤构成的算法;
2. 每一步骤都是带有预定输入和特定输出的一个过程;
3. 简单的具有静态结构的体系结构;
4. 数据抽象,数据结构根据算法步骤的要求开发,提供过程所要求操作的信息;
5.系统的状态是一组全局变量。

小结:
结构化软件 = 算法 + 数据结构
结构化需求分析 = 结构化编程语言 + 数据字典 + 数据流图(DFD)

缺点:
无法便捷的适应需求的变化,在需求不断的更改中,结构化系统甚至可能崩溃。
结构化方法以功能分解和数据流处理为核心,然而系统功能和数据表示是很有可能发生变化的,这容易招致频繁冗余的重构。

面向对象方法(OO):
1.任何系统都是由能够完成一组相关任务的对象构成;
2.对象是封装的,一个对象不能直接调用其他对象内部的数据;
3.所有的交流都是通过方法调用;
4.以实体为中心

优势:
1.面向对象模型更接近问题域:
以问题域中的对象为基础建模;
以对象、属性和操作对问题进行建模;
2.反复细化高层模型直到可以实现的程度
努力避免在开发过程中出现大的概念跳变;
3.将模型组织成对象的集合
真实世界的具体事物,逻辑概念。

三个重要组成部分:

1. 面向对象分析(OOA)
2. 面向对象设计(OOD)
3. 面向对象编程(OOP)

两者本质区别:
在结构化程序开发模式中优先考虑的是过程抽象,而在面向对象开发模式中优先考虑的是实体。
面向过程的结构化系统 = 功能 + 数据 (软件 = 算法 + 数据结构)
面向对象的系统 = 对象 + 消息 (对象 = 数据属性 + 操作)

面向对象的基本概念

1. 对象 / 类
2. 封装 / 信息隐藏
3. 接口 / 实现 / 消息
4. 继承、多态、重写
5. 抽象类
6. 对象之间的关系

对象:用来描述客观事物的实体,是构成系统的基本单位,由一组属性以及作用在这组属性的操作构成。属性用来描述静态,操作用来实现动态。
类:具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述。

“类”所代表的是一个抽象的概念或事物,现实世界中并不存在,而“对象”是客观存在的,“对象”是“类”的实例。

类的属性:

1. 公有属性(public)
2. 私有属性(private)
3. 保护属性(protected)

一些名词的解释:

1. 封装(Encapsulation): 把对象的属性和操作结合成一个独立的单元,并尽可能对外界隐藏对象的内部实现细节;将对象分成两个部分,可见的接口和不可见的实现。
2. 接口(Interface):描述了一个类的一组外部可用的属性和服务集合。注意:接口定义的是属性和操作的描述!而不是操作的实现,接口和实现是分离的。
3. 消息(Message):一个对象向其他对象发出的请求,一般包括提供服务的对象标识,服务标识,输入信息和应答信息等。
4. 继承(Inheritance): 是类元的一般描述和具体描述之间的关系,具体描述建立在一般描述的基础之上,并对其进行了扩展。
5. 多态(Polymorphism): 同一个操作,作用于不同的对象上可以有不同的解释,并产生不同的执行结果。
6. 重写(Overriding): 子类的方法覆盖父类中的方法,要求二者的方法名和参数(输入和输出)形式都相同。
7. 抽象类(Abstract Class): 把一些类组织起来,提供一些公共的行为,但不能使用这个类的实例,而仅仅能使用其子类的实例。不能建立实例的类成为抽象类。

接口和抽象类的区别。

对象之间的关系:

1. 分类结构:一般与特殊的关系         is a kind of                  (空心箭头)
2. 组成结构:部分与整体的关系         (组合 is a part of 不可分) (聚合 owns a 可分)   (实心菱形)
3. 实例连接:对象之间的静态联系 / 关联关系      has a         (带箭头的连线)
4. 消息连接:对象之间的动态通信联系 / 依赖关系    use a    (带箭头的虚线)

面向对象的分析
主要使用5种UML图描述完整的系统需求:

1. 用例图
2. 类图
3. 时序图
4. 协作图
5. 状态图

三种模型:
1.功能模型: 从用户的角度获取功能需求,由用例模型表示;
2.静态结构模型(分析对象模型):描述系统的概念实体,由类图表示;
3.动态行为模型 : 描述对象之间的交互行为,由状态图和时序图表示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值