传统软件工程与面向对象分析的区别

上传人:公**** 文档编号:563560015 上传时间:2023-06-11 格式:DOCX 页数:4 大小:14.63KB
返回 下载 相关 举报
传统软件工程与面向对象分析的区别_第1页
第1页 / 共4页
传统软件工程与面向对象分析的区别_第2页
第2页 / 共4页
传统软件工程与面向对象分析的区别_第3页
第3页 / 共4页
传统软件工程与面向对象分析的区别_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《传统软件工程与面向对象分析的区别》由会员分享,可在线阅读,更多相关《传统软件工程与面向对象分析的区别(4页珍藏版)》请在金锄头文库上搜索。

1、传统软件工程与面向对象的区别摘要:自然语言和编程语言之间的鸿沟,是软件开发过程中最难跨越的阶段早期的软 件开发所面临的问题域比较简单从认识清楚要解决的问题,到把这种认识用程序表达出来, 还不是很困难的事情。软件危机的出现,促进了软件工程学的形成和发展由于面向对象编程 语言的发展,面向对象的软件被设计成一系列的对象及其之间通过消息的相互作用,这些对象 从根本上形成了问题的模型,并由这些对象共同作用于一个解决方案。面向对象的程序设计又 提供了信息隐蔽、继承、多态和动态绑定等机制。这种软件开发方法固有的特性,给软件测试 理论、技术、方法等方面带来了巨大的影响。关键字: 程序 软件 面向对象 软件工程

2、Abstract:The gap between natural language and programming language is the most difficult in the software development process across the stage.The problems faced by early in the software development domain is relatively simple.Recognize clearly problems to be solved, this understanding program expres

3、sed, is not very difficult thing.Software crisis, promote the formation and development of software engineering.In order to facing to the development of the object plait distance language, face to the software of object to be design a series of object and it passes the interaction of news, these obj

4、ects by the root became the model of problem, and from these object common function are at a solution.The program design which faces to object provided an information again concealment, inherit, many Tais and dynamic state bind settle etc. mechanism.This kind of method inherent property of the softw

5、are development, give software test the theories, technique, method.etc. brought huge influence oKeywords: Program Software object-oriented software engineering1、传统软件工程方法。传统方法学1在软件开发过程中占据相当大的比重,因为其悠久的历史而为很 多软件工程师青睐。传统方法学又称生命周期方法学或结构化范型。一个软件从开 始计划起,到废弃不用止,称为软件的生命周期。在传统的软件工程方法中,软件 的生存周期分为需求分析、总体设计、详细设

6、计、编程和测试几个阶段。传统方法学使用的是结构化分析技术来完成需求分析阶段的工作。软件工程学 中的需求分析具有两方面的意义。在认识事物方面,它具有一整套分析、认识问题 域的方法、原则和策略。这些方法、原则和策略使开发人员对问题域的理解比不遵 循软件工程方法更为全面、深刻和有效。在描述事物方面,它具有一套表示体系和 文档规范。但是,传统的软件工程方法学中的需求分析在上述两方面都存在不足.它 在全局范围内以功能、数据或数据流为中心来进行分析。这些方法的分析结果不能 直接地映射问题域,而是经过了不同程度的转化和重新组合。因此,传统的分析方 法容易隐蔽一些对问题域的理解偏差,与后续开发阶段的衔接也比较

7、困难。在总体设计阶段,以需求分析的结果作为出发点构造出一个具体的系统设计方 案,主要是决定系统的模块结构,以及模块的划分,模块间的数据传送及调用关系。 详细设计是在总体设计的基础上考虑每个模块的内部结构及算法,最终将产生每个 模块的程序流程图。但是传统的软件工程方法中设计文档很难与分析文档对应,原 因是二者的表示体系不一致,所谓从分析到设计的转换,实际上并不存在可靠的转 换规则,而是带有人为的随意性,从而很容易因理解上的错误而留下隐患。编程阶段是利用一种编程语言产生一个能够被机器理解和执行的系统,测试是 发现和排除程序中的错误,最终产生一个正确的系统。但是由于分析方法的缺陷很 容易产生对问题的

8、错误理解,而分析与设计的差距很容易造成设计人员对分析结果 的错误转换,以致在编程时程序员往往需要对分析员和设计人员已经认识过的事物 重新进行认识,并产生不同的理解。因此为了使两个阶段之间能够更好的衔接,测 试就变得尤为重要。软件维护阶段的工作,一是对使用中发生的错误进行修改,二是因需求发生了 变化而进行修改。前一种情况需要从程序逆向追溯到发生错误的开发阶段。由于程 序不能映射问题以及各个阶段的文档不能对应,每一步追溯都存在许多理解障碍。 第二种情况是一个从需求到程序的顺向过程,它也存在初次开发时的那些困难,并 且又增加了理解每个阶段原有文档的困难。传统软件工程方法面向的是过程,它按照数据变换的

9、过程寻找问题的结点,对 问题进行分解。由于不同人对过程的理解不同,故面向过程的功能分割出的模块会 因人而异。对于问题世界的抽象结论,结构化方法可以用数据流图,系统结构图, 数据字典,状态转移图,实体关系图来进行系统逻辑模型的描述,生产一个最终能 满足需求且达到工程目标的软件产品所需要的步骤。传统软件工程方法学强调以模块为中心,采用模块化,自顶向下,逐步求精设 计过程,系统是实现模块功能的函数和过程的集合,结构清晰,可读性好,是提高 软件开发质量的一种有效手段。结构化设计从系统的功能入手,按照工程标准,严 格规范地将系统分解为若干功能模块,因为系统是实现模块功能的函数和过程的集 合。然而,由于用

10、户的需要和软硬件技术的不断发展变化,作为系统基本组成部分 的功能模块很容易受到影响,局部修改甚至会引起系统的根本性变化。开发过程前 期入手快而后期频繁改动的现象比较常见。当然,传统的软件工程方法学也存在很多的缺点,主要表现在生产效率非常底, 从而导致不能满足用户的需要,复用程度低,软件很难维护等。虽然如此,传统方 法学仍然是人们在软件开发过程中使用的十分广泛的软件工程方法学,在开发某些 类型的软件时也比较有效。因此传统软件工程方法学的价值并不会因面向对象方法 学的出现而减少,并且它还是学习面向对象方法学的基础。2、面向对象的分析与设计。面向对象语言更接近人的思维,面向对象程序的主要结构特点是:

11、第一,程序 一般有类的定义和类的使用两部分组成,在主程序中定义各个对象并规定它们之间 传递消息的规律;第二,程序中的一切操作都是通过面向对象发送消息来实现的, 对象接收到消息后,启动有关方法去完成相应的操作”。下面就是一些有关面向对 象语言的对象、状态、消息、类、以及面向对象语言的三个重要的特征,继承、封 装和多态2。对象,对象由保存对象属性的数据和可以施加于这些数据的操作封装在一起构成 的整体。对象是类的实例,对象给类以生命,类想要做的事情必须通过建立对象和 在对象仁进行操作而实现。消息,消息是对象的操作将要执行的一种请求,是一个对象要求另外一个对象 执行某个功能操作的规格况明,通过消息传递

12、。能完成对象之问的相互请求或相互 协作。除了需要一个操作的名字,消息还可包含一些值(实参),它们常常在操作 被执行时使用。消息的接收者也可以将某个值返回给消息的发送者,消息传递使程 序的控制流错综复杂,不易于理解和把握,给测试带来了一定的困难。类,类是面向对象中基本构造单元,是一组具有相同数据结构和相同操作的对 象的集合。类的定义包括一组数据属性和在数据上的一组合法操作,也就是方法。 在面向对象的程序中,任何被描述的概念最初都必须被声明为类,然后创建由该类 定义的对象在一个类中,每个对象都是类的实例,它们都可使用类中提供的函数。 类和对象之间的关系是抽象和具体的关系,类是对多个对象进行综合抽象

13、的结果。继承,继承是面向对象程序设计的一个重要特征,它允许在既有类的基础上创 建新的类,新类可以从一个或多个既有类中继承函数和数据,而且可以重新定义或 加进新的数掘和函数导出类或子类。一个类对另一个类的依赖,使得己有类的说明 和实现可以被复用。封装,封装就是对象把一些属性和方法封装起来,将私有元素和实现操作的内 部细节隐藏起来,并能管理自己的内部状念。外部只能从对象所表示的具体概念、 对象提供的服务和对象提供的外部接1: 3来认识对象。通过向对象发送消息来激活 对象的自身动作,达到施加特定操作的目的。多态,多态就是不同的对象收到相同的消息,产生不同的动作。通俗的晚,就 是一个名字定义不同的函数

14、,这些函数执行不同但又类似的操作,即用同样的接口 访问功能不同的函数,从而实现“一个接口,多种方法”。多态性可以分为静念多 念性和动念多态性,在静态多态性中,绑定是在编译时进行的,而动态多态性用隐 式运行时的绑定和运行时的类型检查代替了显示的编译时的绑定和静态类型。3、面向对象分析与设计和传统软件工程的比较。面向对象的分析0OA(ObjectOriented Analysis),OOA强调直接针对问题域客 观存在的各项事物设立0OA模型中的对象问题域有哪些值得考虑的事物,OOA模型 中就有哪些对象.00A对问题域的观察、分析和认识是很直接的,对问题域的描述也 是很直接的.它所采用的概念及其术语

15、与问题域中的事物保持了最大 程度的数据一 致,不存在语言上的鸿沟。面向对象的设计OOD(ObjectOriented Design),OOD是针对系统的一个具体的 实现运用OO方法.它与OOA采用相同的表示法和模型结构.OOA与00D采用一致的表示 法是面向对象的分析与设计优于传统的软件工程方法的重要因素之一。这使得从OOA 到OOD不存在转换,只有很局部的修改或调整,并增加几个与实现有关的独立部分, 因此OOA与OOD之间不存在传统方法中分析与设计之间的鸿沟.,二者能够紧密衔接, 大大降低了从OOA到00D的难度、工作量和出错率.面向对象的编程OOP(ObjectOriented Progr

16、aming), OOP工作就是用同一种面 向对象的编程语言把OOD模型中的每个成分书写出来.即用具体的数据结构来定义对 象的属性,用具体的语句来实现服务流程图所表示的算法.OOP阶段产生的程序能够 紧密地对应00D模型;OOD模型中一部分对象类对应OOA模型,其余部分的对象类对应 与实现有关的因素;OOA模型中全部类及对象都对应问题域中的事物.这样的映射关 系提高了开发工作的效率和质量.传统软件工程采用面向过程,即结构化程序设计方法,有很多成功的例子,也有 失败的例子。面对越来越复杂的软件系统,传统软件工程已经不能胜任,在实践中, 人们呼唤能适应复杂系统开发的软件工程方法学和软件开发技术的诞生,面向对象 软件工程应运而生。面向对象方法的出现,是人类认识事物的一个返朴归真的过 程.面向对象方法不论是从软件开发阶段的开发效率上说,还是从软件维护阶段的 系统维护成本考虑,都要远远优于传统的软件工程方法.所以我们的软件开发人员 要充分重视面向对象方法在实践中的运用.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号