软件工程(九)-面向对象

面向对象的概念

1.什么是面向对象?
Coad和Yourdon给出了一个定义:“面向对象=对象+类+继承+通信”。
如果一个软件系统是使用这样4各概念设计和实现的,我们认为这个软件系统是面向对象的。
2.什么是对象?
对象是面向对象开发模式的基本成份。
每个对象可用它本身的一组属性和它可以执行的一组操作来定义。
属性一般只能通过执行对象的操作来改变。
操作又称为方法或服务,它描述了对象执行的功能,若通过消息传递,还可以为其它对象使用。
3.什么是类?
类是一组具有相同数据结构和相同操作的对象的集合。
类的定义包括一组数据属性和在数据上的一组合法操作。
类和对象的关系。
4.什么是继承?
继承是使用已存在的定义做为基础建立新定义的技术。
新类的定义可以是既存类所声明的数据和新类所增加的声明的组合。
特殊类的对象拥有其一般类的全部属性与服务,称为特殊类对一般类的继承。
继承意味着自动拥有。

面向对象的开发过程

面向对象发方改进了在生存期各个阶段之间的接口,因为在生存期各个阶段所开发出来的“部件”都是类。在面向对象生存期的各个阶段对各个类的信息进行细化,类成为分析、设计和实现的基本单元。
1.论域分析
开发问题论域的模型。
考察问题论域内一个较宽的范围,分析覆盖的范围应比直接要解决的问题更多。
建立大致的系统实现环境。
2.应用分析
应用分析则根据特定应用的需求进行论域分析。应用分析细化在论域分析阶段所开发出来的信息,把注意力集中于当前要解决的问题。
3.求精和维护
这是一个在软件生存期中最花费时间的部分。
传统的维护活动时针应用的,而求精过程是针对类,针对把类集成在一起的结构。
我们可以标识抽象的抽象,使得集成结构通过一般化增加新的层次。

对象模型化技术OMT

对象模型化技术把分析时收集的信息构造在三类模型中,即对象模型、功能模型和动态模型。
这个模型化的过程是一个迭代的过程。
1.对象模型
是三个模型中最关键的一个模型,它的作用是描述系统的静态结构,包括构成系统的类和对象,它们的属性和操作,及它们之间的关系。
在OMT中,类与类之间的关系叫做关联。
关联有以下几种形式:
聚合,代表整体与部分的关系,这是一种特殊形式的关联。
限定,用以对关联的含义做某种约束。
角色,用来说明关联的一端。由于多数关联具有两个断电因而设计到两个角色。
2.动态模型
动态模型着重于系统的控制逻辑。
它包括两个图,一个状态图,一是事件追踪图。
(1)状态图
状态图是一个状态和时间的网络,侧重于描述每一类对象的动态行为。在状态图中,状态是对某一时刻中属性特征的概括。而状态迁移表示这一类对象在任何对系统内外发生的哪些时间做出何种响应。操作是一个伴随状态迁移的瞬时发生的行为,与触发器时间一起表示在有关的状态迁移之上。动态模型由多个状态图组成。各个状态图并发地执行,并可以独立地改变状态。
(2)事件追踪图
事件追踪侧重于说明发生于系统执行过程中一个特定“场景”。场景也叫做脚本,是完成系统某个功能的一个事件序列。
(3)状态图与事件追踪图的关系
状态图叙述一个对象的个体行为,事件追踪图则给出多个对象所表现出来的集体行为。例如,一个事件追踪图指出某一对象接受一个事件之后发出另一个事件,同意行为在次对象的状态图中也当有所表示。
3.功能模型
功能模型表明,通过计算,从输入数据能得到什么样的输出数据,不考虑参加计算的数据按什么序执行。功能模型由多个数据流图组成,它们指明从外部输入,通过操作和内部存储,直到外部输出,这整个的数据流情况。功能模型中所有的数据流图往往形成一个层次结构。在这个层次结构中,一个数据流图中的过程可以由下一层的数据流图做进一步的说明。数据流图中允许加入控制流,但这样做将与动态模型重复,不提倡夹带控制流。
4.基于三个模型的分析过程
功能模型着重于系统内部数据的传送和处理:
功能模型定义“做什么”
动态模型定义“何时做“
对象模型定义”对谁做”

面向对象设计

面向对象设计继续面向对象分析阶段的工作,建立软件的结构。
主要分为两个阶段:高层设计、类设计
以后应该还会学习,现在我还是不太懂。

本章要点

事务分离的原则:将基本需求和实现区分开。
今天的软件开发技术已经不能胜任新的系统。
面向对象概念于传统方法完全不同。
面向对象技术可以保证软件的可复用型。
对象指的是一个独立的、异步的、并发的实体,它能存储数据、提供服务,并于其它对象交换信息,从而完成系统的所有功能。
面向对象分析模型(OOA模型)分五个层次。
面向对象设计模型(OOD模型)含四个部分,它的结构和OOA模型相同。

猜你喜欢

转载自blog.csdn.net/qq_41306240/article/details/82758976