软件工程之面向对象技术

    面向对象CoadYourdon给出定义是:“面向对象=对象++继承+通信”

    对象(object:面向对象开发模式的基本成份;每个对象可用它本身的一组属性和它可以执行的一组操作来定义;属性一般只能通过执行对象的操作来改变;操作又称方法或服务,它描述了对象执行的功能,若通过消息传递,还可以为其他对象使用

    消息(Message:是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的某个操作的规格说明

    类(class:具有相同数据结构和相同操作的对象的集合;其定义包括一组数据属性和在数据上的一组合法操作。

    继承(Inheritance:是使用已存在的定义做为基础简历新定义的技术;新类的定义可以是既存类所声明的数据和新类所增加的生命的组合 

类的继承层次:

    软件工程之面向对象技术_第1张图片

 

    软件工程之面向对象技术_第2张图片

面向对象方法的开发过程

对各个类的信息进行细化,分为分析、设计和实现的基本单元。

    分析方面,包括论域分析和应用分析。论域分析,开发问题论域的模型;考察问题论域内的一个较宽的范围,分析覆盖的范围应比直接要解决的问题更多;简历大致的系统实现环境。应用分析,根据特定应用的需求进行论域分析,应用(或系统)分析细化在论域分析阶段所开发出来的信息,把注意力集中于当前要解决的问题

 

类生存期:

 软件工程之面向对象技术_第3张图片

类的定义:

一旦标识了一个类,就给出了他的规格说明,其中包括类的实例可执行的操作和它们的数据表示

对每一个,无论实在那个阶段标识的类都是如此

累的规格说明定义了施加于对象的数据存储上的一组操作

 

类的实现:

通过变量的声明、操作界面的实现及支持界面操作的函数的实现,可实现一个类的预期行为何状态

实现是与语言有关的,一个好的面向对象语言应当分离共有界面与其内部实现

 

类的测试:

如果类的定义提供的界面比较狭窄,那么穷举测试就有可能实现

类的测试在最抽象的层次开始,沿继承关系继续向下进行(自顶向下)

已经测试过的部分不需要从新测试(重点在新类或组装的类)

 

求精和维护:

这是一个在软件生存期中最花费时间的部分

传统的维护是针对应用,而 求精是针对类,针对把类继承在一起的结构

可标识抽象的抽象,使得继承结构通过一般化增加新的层次,即在既存的根类之上增加新的层次

 

对象模型化技术OMT

把分析时的信息构造在三类模型中,即对象模型、功能模型和动态模型

对象模型:最关键的,作用是描述系统的静态结构,包括构成系统的类和对象,它们的属性和操作,及它们之间的关系 

OMT中,类与类之间的关系叫做关联聚合,代表整体与部分的关系,特殊形式关联;限定,用以对关联的含义做某种约束;角色,用力说明两名关联的一端,由于多数关联具有两个端点,因而涉及到两个角色

 

动态模型:着重于系统的控制逻辑;包括两个图:状态图和事件追踪图。状态图,是一个转态和时间的网络,侧重于描述每一类对象的动态行为。状态是对某一时刻中属性特征的概括,而状态图迁移表示这一类对象在合适对系统内外发生的哪些事件做出了何种响应。操作是一个伴随状态迁移的瞬时发生的行为,与出发事件一起表示在有关的状态迁移之上。动态模型由多个状态图组成。各个状态图并发地执行,并可以独立地改变状态。事件:一个事件发生在某一时刻,每个事件都是单独发生,建立事件类,并给每个事件一个名字,以知名共同结构和行为,事件从一个对象向另一个对象传递信息。事件追踪图,侧重于说明发生于系统执行过程中的一个特定“场景”。场景也叫脚本,是完成系统某个功能的一个事件序列

状态图于事件追踪图的关系:状态图叙述一个对象的个体行为,事件追踪图则给出多个对象所表现出来的集体行为

 

功能模型:表明,通过计算,从输入数据能得到什么样的输出数据,不考虑参加计算的数据按什么时序执行(只看结果,不看过程);由多个数据流图组成,它们知名从外部输入,通过操作和内部存储,知道外部输出,这整个的数据流情况;数据流图中允许加入控制流,但这样做将于动态模型重复,不提倡夹带控制流(控制流用虚线表示)。功能模型着重于系统内部数据的传送和处理。

        软件工程之面向对象技术_第4张图片

   

    三个模型的分析:功能模型定义“做什么”,动态模型定义“何时做”,对象模式定义“对谁做。

 

CoadYourdon面向对象分析(OOA

OOA两个任务

1.形式地说明我们所面对的应用问题,最终成为软件系统基本构成的对象,还有系统所必须遵从的,由应用环境所决定的规则和约束

2.明确地规定构成系统的对象如何协同合作,完成指定的功能

 

构造OOA概念模型的层次:

构造和评审OOA概念模型的顺序和由五个层次组成,这五个层次是分析过程中的层次,每个层次的工作都为系统的规格说明国内增加了一个组成部分,层次:类与对象、属性、服务、结构和主题

         软件工程之面向对象技术_第5张图片

(若类与对象层在一起,外层为实例【对象】的边界,内层为类的边界)

 

对象——类层

1.表示待开发系统的基本构造块,这一层是整个OOA模型的基础,问题在于如何建立“实现世界中事物”的抽象表示,也就是如何建立基本块“

2.信息建模,指从现实世界中捕捉并抽象出应用论域的基本结构的过程,这是OOA过程中最基本和最关键的活动之一

3.应用论域非常重要,同一概念在不同论域中抽象出来的基本构造块是不同的

 

属性层:由对象的属性和实例链接共同组成。

 

服务层:对象的服务,加上对象实例之间的消息通信,共同组成了OOA模型的服务层,消息链接用有向箭头表示。

 

结构层:负责捕捉特定应用论域中的结构关系。

1.结构层的一种类型,描述除了该系统的整体结构。

2.另一种类型称为一般——特殊机构泛化——特化结构,泛化——特化结构表明了类的继承性。

 

主题层:OOA模型结构庞大而复杂,可以将对象归类到各个主题中,把有关的对象用一个主题边框框起来。

识别类和对象:类和对象是对与应用有关的概念的抽象,这层工作是整个分析模型的基础。

选择类和对象的原则:目标系统必须记住类和对象的某些事情;类 和对象应当提供某些服务或处理;多属性;所有属性对于类中所有实例都应有意义

 

 

面向对象设计(OOD

继续面向对象分析阶段的工作,建立软件的结构。主要工作阶段:高层设计,开发系统结构,即构造应用软件的总体模型。标识在计算机环境中进行问题解决工作所需要的概念,并增加一批需要的类

 软件工程之面向对象技术_第6张图片

 

高层设计特点:可以表征为标致和定义模块的过程,定义工程师职责驱动的

高层设计遵循原则:各个高层部件之间的通信量达到最小;

子系统应当把那些成组的类打包,形成高度内聚;

逻辑功能分组,提供一个个单元,识别并定位问题事件。

高层设计方法:

设计问题论域部分,包括与应用问题直接有关的所有类和对象,继承机制有单继承和多继承;

人机交互部分,用户界面部分的设计;

任务管理部分,定义各个任务(工作包括:什么任务、如何协调、如何通信和建立一个模板);

数据管理部分提供在数据管理系统中存储和检索对象的基本结构,包括对永久性数据的访问和管理。

 

你可能感兴趣的:(类,面向对象,软件工程)