面向对象第四次作业答案

面向对象第四次作业答案
面向对象第四次作业答案

面向对象第四次作业答案-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

面向对象程序设计技术作业四

一、填空题

1、在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的构造函数使其初始化。

2、当一个类对象被撤消时将自动调用该类的析构函数。

3、对基类数据成员的初始化是通过执行派生类构造函数中的初始化表来实现的。

4、对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构造函数中的赋值语句实现。

5、在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化次序是先基类成员,后类对象成员,最后为非对象成员。

6、当撤消一个含有基类和类对象成员的派生类对象时,将首先完成派生类本身的析构函数定义体的执行,接着完成类对象成员的析构函数定义体的执行,最后完成基类成员的析构函数定义体的执行。

7、设px是指向一个类动态对象的指针变量,则执行”delete px;”语句时,将自动调用该类的

析构函数。

8、当一个类对象离开它的作用域时,系统将自动调用该类的析构函

数。

9、假定一个类对象数组为A[N],当离开它的作用域时,系统自动调用该类析构函数的次数为 N次。

10、假定AB为一个类,则执行”AB a[10];”语句时,系统自动调用该类构造函数的次数为

10次。

11、假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为空构造函数。

12、假定用户没有给一个名为AB的类定义析构函数,则系统为其隐含定义的析构函数为空构造函数。

13、若需要把一个函数”void F();”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句: friend void F();。

14、若需要把一个类AB定义为一个类CD的友元类,则应在类CD的定义中加入一条语

句: feiend class AB;。

15、假定一个类AB中有一个静态整型成员bb,在类外为它进行定义并初始化为0时,所使用的语句为 AB:bb=0;。

16、假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为 AB:bb 。

17、当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为 n-1 。

18、假定AB为一个类,则该类的拷贝构造函数的声明语句为 AB:

AB(AB&) 。

19、对类对象成员的初始化是通过执行构造函数中的初始化表完成的。

20、对于类中定义的成员,其隐含访问权限为 private ,对于结构中定义的成员,其隐含访问权限为 public 。

21、一个类的友元函数或友元类能够通过成员操作符访问该类的所有数据成员和函数成员。

22、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为: AB operator+

(AB,AB); 。

23、在C++流类库中,根基类为 ios 。

24、在C++流类库中,输入流类和输出流类的名称分别为 istream 和 ostream .

25、若要在程序文件中进行标准输入输出操作,则必须在开始的#include命令中使用 iosteam.h 头文件。

26、若要在程序文件中进行文件输入输出操作,则必须在开始的#include命令中使用 fstream.h 头文件。

27、当从字符文件中读取回车和换行两个字符时,被系统看作为一个换行

符。

28、当使用ifsream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为读取的文本文件,当使用ofstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为写入的文本文件。

29、当需要使用istrstream流类定义一个流对象并联系一个字符串时,应在文件开始使用#include命令,使之包含 strstrea.h 文件。

二、写出下列程序运行后的输出结果

1.#include

class A{

int a,b;

public:

A() {a=b=0;}

A(int aa, int bb){

a=aa;b=bb;

cout<

}

};

void main(){

A x, y(6,3), z(8,10);

} 输出结果:

2.

#include

class A{

int a,b;

public:

A(int aa=0, int bb=0):a(aa),b(bb){

cout<<"Constructor!"<

}

};

void main(){

A x, y(2,5), z(y);

} 输出结果:

3.

#include

class A{

int *a;

public:

A(int aa=0){

a=new int(aa);

cout<<"Constructor!"<<*a<

}

};

void main(){

A x[2];

A *p=new A(5);

delete p;

}

输出结果:

4.

#include

class A{

int a;

public:

A(int aa=0):a(aa){}

~A(){cout<<"Destructor!"<

void main(){

A x(5);

A *p=new A(10);

delete p;

} 输出结果:

5.

#include

class A{

int *a;

public:

A(int x){

a=new int(x);

cout<<"Constructor!"<<*a<

}

~A(){delete a;cout<<"Destructor!"<

void main(){

A x(9),*p;

p=new A(12);

delete p;

} 输出结果:

6.

#include

class A{

int a;

public:

A(int aa=0):a(aa){

cout<<"Constructor A!"<

class B:public A{

int b;

public:

B(int aa,int bb):A(aa),b(bb){

cout<<"Constructor B!"<

void main(){

B x(2,3),y(4,5);

} 输出结果:

7.

#include

class A{

int a;

public:

A(int aa=0){a=aa;}

~A(){cout<<"Destructor A!"<

};

class B:public A{

int b;

public:

B(int aa=0,int bb=0):A(aa){b=bb;}

~B(){cout<<"Destructor B!"<

};

void main(){

B x(5),y(6,7);

}

输出结果:

8.

#include

#include

class A{

int a,b;char op;

public:

A(int aa,int bb,char ch){a=aa;b=bb;op=ch;}

int Comp(){

switch(op){

case'+':return a+b;

case'-':return a-b;

case'*':return a*b;

case'/':if(b!=0)return a/b;else exit(1);

case'%':if(b!=0)return a%b;else exit(1);

default:exit(1); }

}

void SetA(int aa,int bb,char ch){

a=aa;b=bb;op=ch; }

};

void main(void){

A x(3,5,'*');

int a=https://www.360docs.net/doc/cf11395087.html,p();

x.SetA(4,9,'+');

a+=https://www.360docs.net/doc/cf11395087.html,p();

x.SetA(13,8,'%');

a+=https://www.360docs.net/doc/cf11395087.html,p();

cout<<"a="<

}输出结果:

9.

#include

class B{

int a,b;

public:

B(){a=b=0;}

B(int aa,int bb){a=aa;b=bb;}

B operator+(B&x){

B r;

r.a=a+x.a;

r.b=b+x.b;

return r;

}

B operator-(B&x){

B r;

r.a=a-x.a;

r.b=b-x.b;

return r;

}

void OutB(){

cout<

}

};

void main(){

B x(6,5),y(13,3),z1,z2;

z1=x+y;z2=x-y;

z1.OutB();z2.OutB();

}

输出结果:

10.

#include

java面向对象知识点总结

j a v a面向对象知识点总 结 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

1 类和对象 类: 类是用来描述一类事物的共性内容的, 类是抽象的; 创建类,如何描述 属性功能 用变量来描述属性 用方法来描述功能 对象: 就是现实中具体的事物,对象是具体的; 创建对象 类名对象名 = new 类名(); 如何通过对象访问类中属性和方法呢 对象名.变量名 对象名.方法名(); 只要是new的对象,就是新创建的,就会在内存中开辟一段单独的空间匿名对象 创建的对象没有赋值给具体的变量; 所以给匿名对象的属性赋值是没有任何意义的; 匿名对象使用场景

1 调用方法 2 作为参数传递 3 添加进容器中 This 关键字 This. 类中的普通方法访问到的成员前边都有this.这个关键字This. 就代表当前对象, 普通方法, 创建对象调方法, 谁调用就代表谁 This(); 可以用来在构造函数中调用本类与之相对应的构造函数使用注意事项: 1 this() 只能是构造函数的第一条执行语句 2 this() 不能在构造函数之间相互调用 3 this() 不能调用自己 构造函数(方法) 构造函数的作用 用来给对象进行初始话的(初始化就是指给对象的各个属性赋值) 构造函数何时执行 对象一创建就会调用与之相对应的构造函数

构造函数语法 修饰符没有返回值类型类名(参数列表){ 具体执行的代码 } 构造函数自动添加 当一个类中我们没有明确指定构造函数的话,jvm会自动帮我们添加一个空参数的构造, 如果我们指定了,就不添加了 构造函数和普通函数的区别 执行时机不同 对象一创建就会调用与之相对应的构造函数 普通函数只有被调用才会执行 return 1 就是用来在方法中返回具体结果(结果类型必须和方法的返回值类型一致) 2 即便方法的返回值类型是void,方法中也可以出现 return; 3 构造函数中也可以有return关键字 成员变量和局部变量 1 作用范围不同, 成员变量是定义在类中的,在整个类中都起作用 局部变量是定义在方法中的,在所在代码块起作用

面向对象的软件开发方法简介

1面向对象的软件开发方法简介 面向对象的开发方法把软件系统看成各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成更复杂的子系统。面向对象的开发方法具有以下优点。 ●把软件系统看成是各种对象的集合,这更接近人类的思维方式。 ●软件需求的变动往往是功能的变动,而功能的执行者——对象一般不会有大的变 换。这使得按照对象设计出来的系统结构比较稳定。 ●对象包括属性(数据)和行为(方法),对象把数据和方法的具体实现方式一起封 装起来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立性, 从而提高了软件的可维护性。 ●支持封装,抽象,继承和多态,提高了软件的可重用性,可维护性和可扩展性。 1.1 对象模型 在面向对象的分析和设计阶段,致力于建立模拟问题领域的对象模型。建立对象模型既包括自底向上的抽象过程,也包括自顶向下的分解过程。 1.自底向上的抽象 建立对象模型的第一步是从问题领域的陈述入手。分析需求的过程与对象模型的形成过程一致,开发人员与用户交谈是从用户熟悉的问题领域中的事物(具体实例)开始的,这就使用户和开发人员之间有了共同语言,使得开发人员能够彻底搞清用户需求,然后再建立正确的对象模型。开发人员需要进行以下自底向上的抽象思维。 ●把问题领域中的事物抽象为具有特定属性和行为的对象。 ●把具有相同属性和行为的对象抽象为类。 ●若多个类之间存在一些共性(具有相同属性和行为),把这些共性抽象到父类中。 再自底向上的抽象过程中,为了使子类能更好的继承父类的属性和行为,可能需要自顶向下的修改,从而使整个类体系更加合理。由于这类体系的构造是从具体到抽象,再从抽象到具体,符合人们的思维规律,因此能够更快,更方便的完成任务。 2.自顶向下的分解 再建立对象模型的过程中,也包括自顶向下的分解。例如对于计算机系统,首先识别出主机对象,显示器对象,键盘对象和打印机对象等。接着对这些对象再进一步分解,例如主机对象有处理器对象,内存对象,硬盘对象和主板对象组成。系统的进一步分解因有具体的对象为依据,所以分解过程比较明确,而且也相对容易。因此面向对象建模也具有自顶向下开发方法的优点,既能有效的控制系统的复杂性,又能同时避免结构化开发方法中功能分解的困难和不确定性。 1.1.2UML:可视化建模语言 面向对象的分析与设计方法,在20世纪80年代末至90年代中发展到一个高潮。但是,诸多流派在思想和术语上有很多不同的提法,对术语和概念的运用也各不相同,统一是继续发展的必然趋势。需要有一种统一的符号来描述在软件分析和设计阶段勾画出来的对象模型,UML(Unified Modeling Language,统一建模语言)应运而生。UML是一种定义良好,易于表达,功能强大且普遍适用的可视化建模语言。而采用UML语言的可视化建模工具是Rational 公司开发的Rational Rose。 1.2 面向对象开发中的核心思想和概念 在面向对象的软件开发过程中,开发者的主要任务就是先建立模拟问题领域的对象模型,然后通过程序代码来实现对象模型,如何用程序代码来实现对象模型,并且保证软件系统的可重用性,可扩展性和可维护性呢?本节节主要阐述面向对象开发的核心思想和概念,这些核心思想为从事面向对象的软件开发实践提供理论武器。

面向对象题-1

第一部分面向对象方法概述 一、填空题 1.对象的抽象是,类的实例是。 2.动态模型描述了系统的结构。 3.软件系统中存在两种控制流,外部控制流是系统中对象之间外部事件的事件流, 有、和三种外部事件控制流。控制流是一个处理内 部的控制,均可结构化。 4.在C++和C中有一个函数,可以使用这个过程来说明构成系统主要对象 的那些类的实例。 5.继承性是自动共享父类属性和的机制。 6.对象具有封装性,实现了的组合。 7.在面向对象方法中,信息隐藏通过对象的来实现。类结构分离了 和,从而支持了信息隐藏。 8.抽象是指强调实体的、,忽略一些无关紧要的属性。类实现了对象 的和的抽象,它是对象的共性的抽象。 9.子类只继承的属性和操作,称为单重继承。 10.对象的抽象是,类的具体化就是,也可以说类的实例 是。 11.类具有,它是的行动的抽象。 12.对象具有状态,对象用来描述它的状态。 13.概念模型描述了系统的。功能模型指出,动态模型确定, 而对象模型确定。功能模型由组成。 14.面向对象有三个基本要素,它们是、、。 15.面向对象技术在三个级别上促进了共享,它们是、、。 16.活动是一种有时间间隔的操作,它是依附于。动作是一种瞬时操作,它 是与联系在一起的操作。 17.封装性是指所有软件部件内部都有明确的以及清楚的。每个软 件部件都有友好的,软件部件的与分离。 18.主要的对象类型有、、和。 19.同一个类中的共享是指同一个类中的对象有着相同的和相同 的。 20.结构化方法的本质是,其、可修改性和可重用性都比较差。 21.对象还有,用于改变对象的状态。对象实现了和的 结合。 22.面向对象方法认为系统是由应用域的组成。 23.对象具有状态,描述对象的状态用它的。 24.类具有属性,描述类的属性用。 25.一个方法有、和。 26.动态模型描述了系统的。 27.对象模型的主要元素是类,关联和。 28.通过这种机制和构造来实现不同应用中的信息共享。 29.面向对象程序设计语言与其它程序设计语言的主要区别是它具有。

面向对象的逻辑思维方法

面向对象的逻辑思维方法 什么是面向对象的设计思想?也许有不少初学者对这个概念还有许多不明白的地方,特别是这个处于新旧思想交替的时代,许多人刚刚学完现在看来是快要淘汰的只是面向过程的语言。他们的脑子还没有脱离面向过程思想的束缚,抬头却发现,“面向对象”早已经流行开来,这个陌生的词漫天飞舞。随便拿起一本流行计算机技术书籍,那里会没有“面向对象”的字眼!于是心中便惶惑了:什么叫“面向对象”?不感兴趣者,一带而过;有志于在这方面发展的,匆忙找到一本有关书籍来啃究竟什么是“面向对象”。然而,要突破思想的束缚,说难也不难,说到要深刻认识却也不容易。笔者在做了一些轻量级的工作后,颇以为有点心得,不怕贻笑大方,写出已供广大同行批评指正。 “对象(Object)”一词,早在十九世纪就有现象学大师胡塞尔提出并定义。对象是世界中的物体在人脑中的映象,是人的意识之所以为意识的反映,是做为一种概念而存在的先念的东西,它还包括了人的意愿。举例说明吧。当我们认识到一种新的物体,它叫树,于是在我们的意识当中就形成了树的概念。这个概念会一直存在于我们的思维当中,并不会因为这棵树被砍掉而消失。这个概念就是现实世界当中的物体在我们意识当中的映象。我们对它还可以有我们自己的意愿,虽然我们并不需要付诸实现——只要在你的脑中想着把这棵树砍掉做成桌子、凳子等——我们就把它叫做意向。于是,对象就是客观世界中物体在人脑中的映象及人的意向。只要这个对象存在我们的思维意识当中,我们就可以籍此判断同类的东西。譬如,当我们看到另外一棵树是,并不会因为所见的第一棵树不在了失去了供参照的模板而不认识这棵树了。当我们接触某些新事物时,我们的意识就会为这些事物确立一个对象。当然这个过程是怎么形成的,那就不是我们所能讨论的问题了。上面所说的对象研究的是一般意义上的问题,因而它可以外推到一切事物。我们经常所说的“对象”,一班指的是解决信息领域内所遇到问题的方法。特别是应用软件技术来决问题的方法。如我们经常碰到的面向对象的编程(Object-Oriented Programming)、面向对象的分析(Object-Oriented Analysis)、面向对象的设计 (Object-Oriented Design)等。应用前面所介绍的关于对象的概念,可以对这些问题做进一步的分析。在面对较复杂的系统,我们可以将它作为一个对象来进行分析。一个系统(解决某个问题的全套解决方案)作为一个对象,可以由多个部分组成。同样,这个对象也可以由多个对象组成。对于同类的事物,可以由一个对象来表示。这样做的益处是显而易见的,它灵活而高效,可以大大减轻设计人员的工作量,简化实际的模型。举一个例子。在关系型数据库的设计当中,我们可以把一个元组当作对象,给它定义一组操作方法。这些方法将适用于所有元组,从而我们不必在更大的范围内去细致的考虑不同的元组(如判断一个元素是否合法):因为它们有一组公共的面向本身的方法,它们“自己”可以“解决”自己的问题。更上一层的对象可以是一个表、视图等。表对象在元组对象的基础上又有它们自己的方法,如增加、删除等。从这个层面上讲,它也只需要做“自己”的事情,

面向对象软件工程—课后作业

面向对象软件工程 第八章 8.1.什么是面向对象方法学,它有哪些优点? 答:面向对象方法学是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类解决问题的方法与过程,使描述问题的问题空间与实现揭发的解空间在结构上尽可能一致的方法学科。优点:1、与人类的习惯的思维方法一致;2、稳定性好;3、可重用性好;4、适合用于大型软件产品;5、所开发的软件有较好的可维护性;6、面向对象的软件比较容易修改;7、面向对象软件比较容易理解;8、易于测试和调式。 8.2.什么是对象,它与传统的数据有何异同? 答:对象是对问题域中某个实体的抽象。相对于传统数据的静态被处理,对象既有静态的属性,又有动态的行为,是进行处理的主体。 8.3.什么是类? 答:类是对具有相同数据和相同操作的一组相似对象的定义。

8.4.什么是继承? 答:继承是指能够直接获得已有事物的性质和特征,而不必重复定义他们。 8.5.什么是模型,开发软件为何要建模? 答:所谓模型就是为了理解事物而对该事物做出的一种抽象,是对事物的一种无歧视定义的书面描述。由于模型忽略了事物的非本质东西,因此模型比原始事物更容易操作。对于那些因过分复杂而不能直接理解的系统,特别需要建立模型,建模的目的主要是为了降低复杂性。人的头脑每次只能出来少量信息,模型通过把系统的重要部分分解成人的头脑一次能处理的若干个子部分,从而减少了系统的复杂程度。 8.6.什么是对象模型,建立对象模型时主要使用哪些图形符号,这些符号的含义是什么? 答:对象模型表示静态的、结构化的系统性质,是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。在UML中,用类图来建立对象模型,表示一个类及属于该类的对象。 8.7.什么是动态模型,建立动态模型时主要使用哪些图形符号,这些符号的含义是什么? 答:动态模型时描述系统控制结构,即行为化的一种模型。在UML

面向对象方法学概述资料

9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型 9.6 功能模型 9.7 3种模型之间的关系 传统的软件工程方法学曾经给软件产业带来巨大进步,部分地缓解了软件危机,使用这种方法学开发的许多中、小规模软件项目都获得了成功。但是,人们也注意到当把这种方法学应用于大型软件产品的开发时,似乎很少取得成功。 在20世纪60年代后期出现的面向对象编程语言Simula-67中首次引入了类和对象的概念,自20世纪80年代中期起,人们开始注重面向对象分析和设计的研究,逐步形成了面向对象方法学。到了20世纪90年代,面向对象方法学已经成为人们在开发软件时首选的范型。面向对象技术已成为当前最好的软件开发技术。 9.1 面向对象方法学概述 9.1.1 面向对象方法学的要点 面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。 面向对象方法学所提供的“对象”概念,是让软件开发者自己定义或选取解空间对象,然后把软件系统作为一系列离散的解空间对象的集合。应该使这些解空间对象与问题空间对象尽可能一致。这些解空间对象彼此间通过发送消息而相互作用,从而得出问题的解。也就是说,面向对象方法是一种新的思维方法,它是把程序看作是相互协作而又彼此独立的对象的集合。

概括地说,面向对象方法具有下述4个要点: (1) 认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。按照这种观点,可以认为整个世界就是一个最复杂的对象。因此,面向对象的软件系统是由对象组成的,软件中的任何元素都是对象,复杂的软件对象由比较简单的对象组合而成。 由此可见,面向对象方法用对象分解取代了传统方法的功能分解。 (2) 把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。数据用于表示对象的静态属性,是对象的状态信息。因此,每当建立该对象类的一个新实例时,就按照类中对数据的定义为这个新对象生成一组专用的数据,以便描述该对象独特的属性值。 (3) 按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。在这种层次结构中,通常下层的派生类具有和上层的基类相同的特性(包括数据和方法),这种现象称为继承(inheritance)。 (4) 对象彼此之间仅能通过传递消息互相联系。对象与传统的数据有本质区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体,必须发消息请求它执行它的某个操作,处理它的私有数据,而不能从外界直接对它的私有数据进行操作。 重点:如果仅使用对象和消息,则这种方法可以称为基于对象的(object-based)方法,而不能称为面向对象的方法;如果进一步要求把所有对象都划分为类,则这种方法可称为基于类的(class-based)方法,但仍然不是面向对象的方法。只有同时使用对象、类、继承和消息的方法,才是真正面向对象的方法。 9.1.2 面向对象方法学的优点 1. 与人类习惯的思维方法一致 2. 稳定性好 3. 可重用性好(重点) 用已有的零部件装配新的产品,是典型的重用技术,例如,可以用已有的预制件建筑一幢结构和外形都不同于从前的新大楼。重用是提高生产率的最主要的方法。

面向对象方法与结构化方法的比较

结构化方法和面向对象方法的比较结构化方法是结构化分析,结构化设计和结构化编程的总称,是最早最传统的软件开发方法,也是迄今为止信息系统中应用最普遍、最成熟的一种,它引入了工程思想和结构化思想,使大型软件的开发和编程都得到了极大的改善。 面向对象方法它不仅仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,用什么观点来研究问题并进行问题求解,以及如何进行软件系统构造的软件方法学。人们普遍认为面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息和多态性等概念和原则来构造系统的软件开发方法。 结构化方法和面向对象方法二者的比较如下。 一、基本思想的比较 结构化方法的基本思想主要体现在三个方面。一、自顶向下,逐步求精:把程序看成是一个逐步演化的过程。把一个系统与程序看成是一层一层的。例如:户籍管理系统可以划分为:户籍迁入迁出,人员迁入迁出,户籍注销,人员注销等几个子系统,而每个子系统又划分为接收用户信息,实施处理,提供返回信息等等部分。二、模块化:即将几个系统分成几个模块,每个模块实现特定的功能,最终整个系统由这些模块组成。模块跟模块之间通过接口传递信息,模块最重要的特点就是独立性,模块之间还有上下层的关系,上层模块调用下层模块来实现一些功能。三、语句结构化:顺序结构、分支结构、循环结构,都是常用的语句结构。 面向对象方法的基本思想主要有:一、客观世界中的事物都是对象,对象之间存在一定的关系,并且复杂对象由简单对象构成。二、具有相同属性和操作的对象属于一个类,对象是类的一个实例。三、类之间可以有层次结构,即类可以有子类,其中,子类继承父类的全部属性和操作,而且子类有自己的属性和操作。四、类具有封装性,把类内部的属性和一些操作隐藏起来,只有公共的操作对外是可见的,对象只可通过消息来请求其他对象的操作或自己的操作。五、强调充分运用人在日常逻辑思维中经常采用的思想方法与原则。例如:抽象,分类,继承,聚合,封装,关联等。 二、基本原则的比较 结构化方法遵循基本原则有:一、抽象原则:是一切系统科学方法都必须遵循的基本原则,它注重把握系统的本质内容,而忽略与系统当前目标无关的内容,它是一种基本的认知过程和思维方式。二、分解原则:是结构化方法中最基本的原则,它是一种先总体后局部的思想原则,在构造信息系统模型时,它采用自顶向下、分层解决的方法。三、模块化原则:结构化方法最基本的分解原则的具体应用,它主要出现在结构化设计阶段中,其目标是将系统分解成具有特定功能的若干模块,从而完成系统指定的各项功能。 面向对象方法遵循基本原则有:一、抽象:是处理现实世界复杂性的最基本方式,在OO方法中它强调一个对象和其他对象相区别的本质特性,对于一个给定的域确定合理的抽象集是面向对象建模的关键问题之一。二、封装:是对抽象元素的划分过程抽象,由结构和行为组成,封装用来分离抽象的原始接口和它的执行。封装也称为信息隐藏,它将一个对象的外部特征和内部的执行细节分割开来,并将后者对其他对象隐藏起来。三、模块化:是已经被分为一系列聚集的和耦合的模块的系统特性,对于一个给定的问题,确定正确的模块集几乎与确定正确的抽象集一样困难,通常每个模块应该足够简单以便能够被完整地理解。(高内聚低耦合)四、层次:抽象集通常形成一个层次,层次是对抽象的归类和排序,在复杂

比较四种典型面向对象方法的异同

普 通 本 科 毕 业 小 论 文 题目:比较四种典型面向对象方法的异同 学院软件与通信工程学院 学生姓名张伟聪学号 0123992 专业软件工程届别 125 指导教师廖汉成 二O一四年九月二十七日

一、引言 随着计算机科学的发展和应用领域的不断扩大,对计算机技术的要求越来越高。特别是当计算机硬件有了飞速发展之后,各种应用领域对软件提出了更高的要求。结构化程序设计语言和结构化分析与设计已无法满足用户需求的变化。发展软件质量,缩短软件开发周期,发展软件可靠性、可扩充性和可重用性迫使软件界人士不断研究新方法、新技术,探索新途径。 面向对象的方法是一种分析方法、设计方法和思维方法。面向对象方法学的出发点和所追求的基本目标是使人们分析、设计与实现一个系统的方法尽可能接近人们认识一个系统的方法。也就是使描述问题的问题空间和解决问题的方法空间在结构上尽可能一致。其基本思想是:对问题空间进行自然分割,以更接近人类思维的方式建立问题域模型,以便对客观实体进行结构模拟和行为模拟,从而使设计出的软件尽可能直接地描述现实世界,构造出模块化的、可重用的、维护性好的软件,同时限制软件的复杂性和降低开发维护费用。面向对象程序设计方法起源于六十年代末期的语言SIMULA’67,到了七十年代末期,软件行业正受到软件危机的困扰,结构化的开发方法不能够很好地解决软件危机。面向对象语言Smalltalk的出现,进一步发展和完善了面向对象的程序设计语言,从此面向对象也和开发方法开始结合,出现了面向对象的开发方法。 自80年代后期以来,相继出现了多种面向对象开发方法,现将其中四种典型的方法作一个简介和比较。面向对象方法都支持三种基本的活动:识别对象和类,描述对象和类之间的关系,以及通过描述每个类的功能定义对象的行为。 一.Booch方法 Booch是面向对象方法最早的倡导者之一,他提出了面向对象软件工程的概念。1991年,他将以前面向Ada的工作扩展到整个面向对象设计领域。Booch方法的开发模型包括静态模型和动态模型,静态模型分为逻辑模型和物理模型,描述了系统的构成和结构,动态模型分为状态图和时序图。该方法对每一步都作了详细的描述,描述手段丰富、灵活。不仅建立了开发方法,还提出了设计人员的技术要求,不同开发阶段的资源人力配制。OOD[3](Object Oriented Design)方法是Grady Booch从1983年开始研究,1991年后走向成熟的一种方法。OOD主要包括下述概念:类(class)、对象(object)、使用(uses)、实例化(instantiates)、继承(inherits)、元类(meta class)、类范畴(class category)、消息(message)、域(field)、操作(operation)、机制(mechanism)、模块(module)、子系统(subsystem)、过程(process)等。其中,使用及实例化是类间的静态关系,而动态对象之间仅有消息传递的连接。元类是类的类。类范畴是一组类,它们在一定抽象意义上是类同的。物理的一组类用模块来表达。机制是完成一个需求任务的一组类构成的结构。 Booch方法的过程包括以下步骤: (1)在给定的抽象层次上识别类和对象; (2)识别这些对象和类的语义; (3)识别这些类和对象之间的关系; (4)实现类和对象;

面向对象程序设计与面向过程程序设计的区别 1

面向对象程序设计与面向过程程序设计的区别 想要知道面向对象程序设计与面向过程程序设计的区别,我们应先了解什么事面向对象程序设计,什么事面向过程程序设计,这样我们才能弄清他们之间的区别,下面我们就什么是面向对象程序设计和什么事面向过程程序设计展开论述。 面向对象的基本概念: (1)对象。 对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。 (2)对象的状态和行为。 对象具有状态,一个对象用数据值来描述它的状态。 对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。 对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中 (3)类。 具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。 类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。 类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。 (4)类的结构。 在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般--具体结构关系,整体--部分结构关系。 ①一般——具体结构称为分类结构,也可以说是“或”关系,或者是“is a”关系。 ②整体——部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“has a”关系。 (5)消息和方法。 对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。 (1)对象唯一性。 每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。 (2)抽象性。 分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。 (3)继承性。

结构化方法与面向对象方法的比较分析

结构化方法与面向对象方法的比较分析 吴松娇 (凯里学院信息工程学院,09本(1)班,2009406012) 摘要:剖析了结构化方法和面向对象方法这两种软件开发方法具体的分析设计过程,讨论 了各自在不同软件开发中的应用及局限性,提出了在选用面向对象方法开发大型软件系统的同时可结合结构化方法.通过对具体实例的剖析,揭示DFD 与UML 之间的对应关系,从而提 出结构化软件分析方法与面向对象软件分析方法存在的对应关系,在软件需求分析方法上实现了二者的相互转换,这种对应与转换关系对现有结构化软件的维护及再工程具有指导意义。 关键词:软件开发; 结构化方法; 面向对象方法; 问题域 20 世纪60 年代以来,软件的发展一直受到开发综合症“软件危机”的影响. 为了提高软件质量,软件开发方法不断推陈出新,其中结构化方法[1 ,2 ]经过30 多年的研究及应用,最为成熟且影响最大,直到现在仍有许多系统是用它开发的. 而面向对象方法[1 ,3 ]是在结构化方法、信息建模方法等基础上发展起来的,近10 年来发展较快,现已呈现出取代结构化方法的趋势. 本文具体分析两者在软件开发中的差别以及面向对象方法的优越性. 1 结构化方法 结构化方法基于功能分解设计系统结构,通过不断把复杂的处理逐层分解来简化问题,它 从内部功能上模拟客观世界. 用结构化开发的软件运行效率较高, 且能够增加软件系统的 可 靠性. 1. 1 结构化分析 它是面向数据流进行需求分析的方法,在该阶段力求寻找功能及功能之间的说明. 它主要 采用的工具是数据流图DFD(Data Flow Diagram) ,利用DFD 描述边界和数据处理过程的关系. 1. 2 结构化设计 结构化设计是将数据流图表示的信息转换成程序结构的设计描述,在该阶段力求寻找功 能的实现方法,采用系统结构图表示系统所具有的功能和功能之间的关系. 设计过程分两步完成,第一步以需求分析的结果作为出发点,构造出一个具体的系统设计方案,决定系统的模块结构(包括决定模块的划分、模块间的数据传递及调用关系) . 第二步详细设计即过程设计,在总体设计的基础上,确定每个模块的内部结构和算法,最终产生每个模块的程序流程图. 因此,结构化方法比较适合于像操作系统、实时处理系统等这样的以功能为主的系统. 1. 3 结构化方法的局限 (1) 结构化方法在需求分析中对问题域的认识和描述不是以问题域中固有的事物作为基本 单位,而是打破了各项事物之间的界限,在全局范围内以数据流为中心进行分析,所以分析 结果不能直接反映问题域. 同时,当系统较复杂时,很难检验分析的正确性. 因此,结构化分析 方法容易隐蔽一些对问题域的理解偏差,与后续开发阶段的衔接也比较困难; (2) 结构化方法 中设计文档很难与分析文档对应,因为二者的表示体系不一致. 结构化方法的结果2数据流 图

1面向对象程序设计方法简介(1课时)

3.1面向对象程序设计方法简介(1课时) 教学目标: 1、 掌握面向对象程序设计语言的基本方法。 2、 熟悉对象、属性、事件、事件处理等概念,并学会运用(操作层面)。 教材分析: 学生初次接触面向对象的程序设计,对象、属性、类、事件和事件处理等概念都很陌生,教师可以通过一个具体、简单的vb 实例进行分析、探究,使学生掌握它们的含义及其关系,为进一步学习可视化的程序设计,在vb 中建立一个应用程序打下良好的基础。教学过程中可以采用讲授法、演示法和讨论教学法。教学时应该淡化名词、概念等抽象的内容,多一些具体的演示、讲解和分析。 学生分析 通过第一章的学习,学生已经从宏观上对算法的概念、设计和表达方法有了具体的了解。再加上第四章中的常量、变量、函数以及表达式等知识点,学生对于vb 语言表达式的计算有了初步的了解。 教学重点:对象、属性、类、事件和事件处理等概念 教学难点:面向对象程序设计的概念 教学流程 一、 复习引入 1、校对活动手册实践五的内容P10 2、复习:完成P92页练习1和2 (适当的缩减时间,快速的过去) 3、在我们学习了vb 语言的常量和表达式之后,我来学习一下vb 的界面设计(展示圆的面积计算机例子),这个就是用vb 工具开发的,Vb 是一个面向对象程序设计(OOP )开发工具。那什么是“面向对象程序设计” ? 二、 对象、属性 1、对象: 对象的概念来源于生活。在现实生活中,我们随时随地都在和对象打交道,我们骑的车、看的书以及我们自己,在一个VB 程序员眼中无一例外都是对象。 结合课本中的P48页的图312,构成这个应用程序的图形界面的,是以下各个对象。 对象:图形1 对象:标签1 对象:标签2 对象:命令按钮1 对象:文本框2 对象:文本框1 对象:窗体1

面向对象方法与结构化方法的比较

课程名称: 系统分析与设计 结构化方法和面向对象方法的比较结构化方法是结构化分析,结构化设计和结构化编程的总称,是最早最传统的软件开发方法,也是迄今为止信息系统中应用最普遍、最成熟的一种,它引入了工程思想和结构化思想,使大型软件的开发和编程都得到了极大的改善。 面向对象方法它不仅仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,用什么观点来研究问题并进行问题求解,以及如何进行软件系统构造的软件方法学。人们普遍认为面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息和多态性等概念和原则来构造系统的软件开发方法。 结构化方法和面向对象方法二者的比较如下。 一、基本思想的比较 结构化方法的基本思想主要体现在三个方面。 一、"自顶向下,逐步求精: 把程序看成是一个逐步演化的过程。把一个系统与程序看成是一层的。例如: 户籍管理系统可以划分为: 户籍迁入迁出,人员迁入迁出,户籍注销,人员注销等几个子系统,而每个子系统又划分为接收用户信息,实施处理,提供返回信息等等部分。 二、"模块化: 即将几个系统分成几个模块,每个模块实现特定的功能,最终整个系统由这些模块组成。模块跟模块之间通过接口传递信息,模块最重要的特点就是独立性,模块之间还有上下层的关系,上层模块调用下层模块来实现一些功能。

三、"语句结构化: 顺序结构、分支结构、循环结构,都是常用的语句结构。 面向对象方法的基本思想主要有: 一、客观世界中的事物都是对象,对象之间存在一定的关系,并且复杂对象由简单对象构成。 二、"具有相同属性和操作的对象属于一个类,对象是类的一个实例。 三、"类之间可以有层次结构,即类可以有子类,其中,子类继承父类的全部属性和操作,而且子类有自己的属性和操作。 四、"类具有封装性,把类内部的属性和一些操作隐藏起来,只有公共的操作对外是可见的,对象只可通过消息来请求其他对象的操作或自己的操作。 五、"强调充分运用人在日常逻辑思维中经常采用的思想方法与原则。例如: 抽象,分类,继承,聚合,封装,关联等。 二、基本原则的比较 结构化方法遵循基本原则有: 一、抽象原则: 是一切系统科学方法都必须遵循的基本原则,它注重把握系统的本质内容,而忽略与系统当前目标无关的内容,它是一种基本的认知过程和思维方式。 二、"分解原则: 是结构化方法中最基本的原则,它是一种先总体后局部的思想原则,在构造信息系统模型时,它采用自顶向下、分层解决的方法。 三、"模块化原则:

结构化方法和面向对象方法之比较

结构化方法和面向对象方法之比较 摘要:本文剖析了结构化方法和面向对象方法这两种软件开发方法具体的分析设计过程,讨 论了各自的主要思想及基本原则,对结构化方法和面向对象方法都作出了简要的介绍。给出了结构化方法与面向对象方法的基本原则、优点、缺点之间的系统比较。 关键词:软件工程结构化方法面向对象方法 引言 结构化方法是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构是指系统内各个组成要素之间的相互联系、相互作用的框架;面向对象方法是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO方法,是建立在“对象”概念基础上的方法学。 正文 结构化方法是结构化分析,结构化设计和结构化编程的总称,是最早最传统的软件开发方法,也是迄今为止信息系统中应用最普遍、最成熟的一种,它引入了工程思想和结构化思想,使大型软件的开发和编程都得到了极大的改善。结构化方法的基本思想可概括为:自顶向下、逐步求精、模块化技术。 结构化方法强调功能抽象和模块化。由于它采取了分块处理问题的方法,可以把一个比较复杂的问题分解为若干个容易处理解决的部分,从而降低了问题处理的难度。由于结构化方法思路清晰,条理清楚,又有效地分解了繁复的问题,使得编写程序时清晰明了,简化了编程人员繁杂的工作;而在阅读时也能够一气呵成,给人以明朗的感觉。 面向对象方法它不仅仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,用什么观点来研究问题并进行问题求解,以及如何进行软件系统构造的软件方法学。人们普遍认为面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息和多态性等概念和原则来构造系统的软件开发方法。面向对象方法是目前已经发展成为主流的软件方法,它经过了30多年的研究和发展,已经越来越成熟和完善,应用也越来越深入和广泛。如著名的Smalltalk,C++,Java,Eiffel等都属于面向对象语言。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决而面向对象的设计则是从另外的思路来解决问题。面向对象方法的本质是主张从客观世界固有的事物出发来构造系统,提倡用人类在现实生活中常用的思维方法来认识和理解、描述客观事物,强调最终建立的系统能映射的问题域。使得系统中的对象,以及对象之间的关系能够如实地反映问题域中固有的事物及其关系。

3面向对象的程序设计方法

2.3 面向对象的程序设计方法 1. 面向对象技术的基本概念 抽象是软件工程的基本思想之一。在传统的程序设计中,有两种抽象:一种是功能抽象,另一种是对数据的抽象。 在面向对象技术中,采用统一的基本表示框架,既可以用于分析,也可以用于设计和具体实现。因此,面向对象设计技术包括三个方面: (1)面向对象的分析 面向对象分析的主要任务是了解问题域内所涉及的对象、对象之间的关系和作用,然后构造出对象模型,力争这个“模型”能反映所要解决的问题。 (2)面向对象的设计 面向对象设计的主要任务是设计软件的对象模型。在软件系统中设计各个对象、对象之间的关系、对象间的通信方式等。 (3)面向对象实现的主要任务是实现软件功能,实现各个对象所应该完成的任务,包括实现每个对象的内部功能,系统的界面设计、输出格式等。 在面向对象技术中,主要用到以下一些基本概念。 (1)对象 客观世界是由实体及其实体之间的联系组成。其中客观世界 中的实体称为问题域的对象。

(2)类 类描述的是具有相似性质的一组对象。一个具体对象称为类的实例。 (3)方法 允许作用于某个对象上的各种操作。 (4)消息 用来请求对象执行某一处理或回答某些信息的要求。 (5)继承 表示类之间的相似形的机制。 (6)封装 是一种信息隐蔽技术,目的在于将对象的使用者和对象的设计者分开。用户只能见到对象封装界面上的信息,不必知道现实的细节。 2.面向对象技术的特点 与传统的结构化分析与设计技术相比,面向对象方法设计具有许多明显的优点,主要在以下三个方面。 (1)可重用性 继承是面向对象技术的一个重要机制。用面向对象方法设计的系统的基本对象类可以被其他新系统重用。这通常是通过一个包含类和子类层次结构的类库来实现的。 (2)可维护性 由于面向对象方法所构造的系统是建立在系统对象基础上

面向对象方法题库1-0-5

面向对象方法题库1- 0-5

问题: [单选]当()时,用例是捕获系统需求最好的选择。 A.系统具有很少的用户 B.系统具有很少的接口 C.系统算法复杂,功能单一 D.系统有很多参与者 用例描述的是系统的执行者(参与者)与系统的交互,同时也是开发人员与用户进行交流的工具,可用来很好地定义系统的边界。所以,当执行者较多的时候,用例是捕获系统需求最好的选择。

问题: [单选]对OO系统的技术度量的识别特征,Berard定义了导致特殊度量的特征。其中()抑制程序构件的操作细节,只有对访问构件必需的信息被提供给其他希望访问的构件。 A.局部化 B.封装 C.信息隐藏 D.继承 面向对象的软件和用传统方法开发的软件有本质的不同,为此,对OO系统的技术度量必须调整以适应那些区别OO和传统软件的特征。Berard定义了5个导致特殊度量的特征,分别是局部化、封装、信息隐蔽、继承和对象抽象技术。 (1)局部化。局部化是软件的一个特征,它指明信息在程序中被集中的方式,例如,针对功能分解的传统方法围绕功能局部化信息,它们典型地以过程模块来实现。数据驱动方法围绕特定的数据结构局部化信息。在OO语境中,信息是通过封装数据和处理在类或对象的边界内而集中的。因为传统软件强调函数为局部化机制,软件度量着重于函数的内部结构或复杂性(例如,模块长度、内聚性或环路复杂性等)或函数间相互连接的方式(例如,模块耦合)。因为类是OO系统的基本单位,所以,局部化是基于对象的,因此,度量应该应用于作为一个完全实体的类(对象)。此外,在操作(函数、方法)和类间的关系不必要是一对一的。因此,反应类协作方式的度量必须能够适应一对多和多对一的关系。

面向对象复习题

第一部分面向对象方法概述 、填空题 1. 对象的抽象是______________,类的实例是 _____________ 。 2. 动态模型描述了系统的_______________ 结构。 3. 软件系统中存在两种控制流,外部控制流是系统中对象之间外部事件的事件流, 有________ 、 _________和_________ 三种外部事件控制流。____________ 控制流是一个处理内 部的控制,均可结构化。 4. 在C++和C中有一个_____________ 函数,可以使用这个过程来说明构成系统主要对象 的那些类的实例。 5. 继承性是_________ 自动共享父类属性和______________ 的机制。 6. 对象具有封装性,实现了_____________ 的组合。 7. 在面向对象方法中,信息隐藏通过对象的_____________ 来实现。类结构分离了 和________ ,从而支持了信息隐藏。 8. 抽象是指强调实体的_____________ 、_______ ,忽略一些无关紧要的属性。类实现了对象 的______ 和 _______ 的抽象,它是对象的共性的抽象。 9. 子类只继承的属性和操作,称为单重继承。 10. 对象的抽象是________________ ,类的具体化就是 ________________ ,也可以说类的实例 11. 类具有_________ ,它是 ________ 的行动的抽象。 12. 对象具有状态,对象用____________ 来描述它的状态。 13. 概念模型描述了系统的。功能模型指出,动态模型确定__________ , 而对象模型确定______________ 。功能模型由 ______________ 组成。 14. 面向对象有三个基本要素,它们是__________________ 、___________ 、____________ 。 15. 面向对象技术在三个级别上促进了共享,它们是____________ 、__________ 、__________ 。 16. 活动是一种有时间间隔的操作,它是依附于_____________________ 。动作是一种瞬时操作,它 是与___________ 联系在一起的操作。 17. 封装性是指所有软件部件内部都有明确的____________________ 以及清楚的___________ 。每个软 件部件都有友好的______________ ,软件部件的____________ 与______________ 分离。 18. 主要的对象类型有______________ 、__________ 、__________ 和。 19. 同一个类中的共享是指同一个类中的对象有着相同的_____________________________________ 和相同 的_____________ 。 20. 结构化方法的本质是_________________ ,其 ___________ 、可修改性和可重用性都比较差。 21. 对象还有_____________,用于改变对象的状态。对象实现了_____________ 和____________ 的 结合。 22. 面向对象方法认为系统是由应用域的___________________ 组成。 23. 对象具有状态,描述对象的状态用它的______________________ 。 24. 类具有属性,描述类的属性用一 25. 一个方法有____________ 、___________ 禾廿__________ 。 26. 动态模型描述了系统的________________ 。 27. 对象模型的主要元素是类,关联和_____________________ 。 28. 通过___________ 这种机制和构造来实现不同应用中的信息共享。 29. 面向对象程序设计语言与其它程序设计语言的主要区别是它具有__________ 。

面向对象软件工程方法分析

〔收稿日期〕 2001-04-24 〔作者简介〕 邸 剑(1968—),男,河北定州市人,华北电力大学计算机科学系工程师,多年从事计算机网络、软件编程等教研工作。文章编号:1005-3751(2002)01-0032-04 面向对象软件工程方法分析 Analysis of Object2Oriented Soft w are E ngineering Methods 邸 剑,李新叶,宋 雨(华北电力大学计算机科学与工程系,河北保定071003) DI Jian,L I Xin2ye,S ON G Y u(North China Electric Power University,Baoding HB071003,China 摘 要:介绍了几种常用的面向对象软件工程方法,重点分析了UML,给出UML方法的图形表示法,最后介绍了基于UML的软件分析与设计的具体步骤。 关键词:软件工程;面向对象方法;UML ABSTRACT:Introduces several common methods of object-ori2 ented software engineering,discusses the Unified Modeling Lan2 guage(UML),gives eight diagrams.At last,introduces the steps of software analysis and design based on UML. KEYWOR DS:Software Engineering;Object-Oriented Method; UML 中图分类号:TP311.5 文献标识码:A 1 引 言 面向对象技术自八十年代初问世以来,由于它的模块性、封装性、继承性、多态性和动态束定能满足软件工程要求的局部化、易维护、可重用、易扩充以及当今多媒体和分布式计算的诸多要求,一时成为计算机各领域争相采用的新技术焦点。八十年代末以来,出现了几十种面向对象方法,其中Coad/Y ourdon、Booch、OM T、Jacobson、Wirfs-Brock的方法得到了广泛的认可。特别值得一提的是统一的建模语言UML(Unified Modeling Language),该方法结合了Booch、OM T和Ja2 cobson方法的优点,统一了符号体系,并从其它方法和工程实践中吸收了许多经过实际检验的概念和技术。UML方法已提交给对象管理组织OM G,并于1997年被对象管理组织正式确定为面向对象方法的国际标准。 2 常用的面向对象软件工程方法 2.1 Coad/Yourdon方法 Coad/Y ourdon方法严格区分了面向对象分析OOA和面向对象设计OOD。其中OOA的主要考虑在于与一个特定应用有关的对象以及对象与对象之间在结构与相互作用上的关系。通过OOA建立的系统模型以对象概念为中心,称为概念模型,由下述五层组成: (1)类和对象层:识别类和对象,形成整个分析模型的基础。 (2)属性层:定义类与对象所要保存的信息及对象之间的实例连接。 (3)服务层:定义类与对象所能提供的服务及对象之间的消息连接。 (4)结构层:包括组装结构和分类结构。组装结构即整体与部分的结构,该结构用来表示聚合,即由不同的类的成员聚合而形成新的类;分类结构即泛化与特化的结构,该结构捕获了定义出的类的层次或网络结构。 (5)主题层:主题由一组类及对象组成,用于将类和对象做进一步的组合。 OOD阶段继续采用OOA中的五层概念,建立了系统的设计模型,由下述四部分组成: (1)问题论域(PDC):包括把问题论域的专用类关联,为建立公共操作集合建立一般类,调整继承支持级别,类的优化,类的细化。 (2)用户界面(HIC):包括对用户分类,描述人机交互的脚本,设计命令层次结构,设计详细的交互,生成用户界面的原型,设计HIC类。 (3)任务管理(TMC):包括识别任务(进程)、任务所提供的服务、任务的优先级、进程是事件驱动还是时钟驱动、以及任务与其它进程和外界如何通信。 (4)数据管理(DMC):由存储技术决定是文件系统,还是关系数据库管理系统或面向对象数据库管理系统。 2.2 Booch方法 Booch方法强调基于类和对象的系统逻辑视图与基于模块和进程的系统物理视图之间的区别以及系统的静态和动态模型的区别。然而,该方法偏向于系统

相关文档
最新文档