面向对象软件工程方法学与传统方法学的异同

名称

面向对象软件工程方法学

传统方法学

基本概念

面向对象方法学是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,是建立在“对象”概念基础上的方法学。

传统方法学又称生命周期方法学或结构化范型。一个软件从开始计划起,到废弃不用 止,称为软件的生命周期。在传统的软件工程方法中,软件的生存周期分为需求分析、总 体设计、详细设计、编程和测试几个阶段。

面向

对象

过程

分析过程

面向对象的分析OOA,OOA强调直接针对问题域客观存在的各项事物设立OOA模型中的对象.问题域有哪些值得考虑的事物,OOA模型中就有哪些对象.00A对问题域的观察、分析和认识是很直接的,对问题域的描述也是很直接的.它所采用的概念及其术语与问题域中的事物保持了最大 程度的数据一致,不存在语言上的鸿沟。

使用结构化分析技术,面向数据流自顶向下求精的技术来完成需求分析阶段。在全局范围内以功能、数据或数据流为中心来进行分析。主要阶段有实体—联系图、状态转换图的分析设计。这些方法的分析结果不能直接地映射问题域,而是经过了不同程度的转化和重新组合。

设计过程

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

在总体设计阶段,以分析的结果作为出发点构造出一个具体的系统设计方案,主要是决定系统的模块结构,以及模块的划分,模块间的数据传送及调用关系。详细设计实在总体设计的基础上考虑每个模块的内部结构及算法,最终将产生每个模块的程序流程图。

实现过程

面向对象的编程工作就是用同一种面向对象的编程语言把OOD模型中的每个成分书写出来.即用具体的数据结构来定义对象的属性,用具体的语句来实现服务流程图所表示的算法.OOP阶段产生的程序能够紧密地对应00D模型;OOD模型中一部分对象类对应OOA模型,其余部分的对象类对应与实现有关的因素;OOA模型中全部类及对象都对应问题域中的事物.这样的映射关系提高了开发工作的效率和质量.

利用一种编程语言产生一个能被机器理解和执行的系统,测试时发生和排除程序中的错误,最终产生一个正确的系统。但由于分析方法的缺陷很容易产生对问题的错误理解,以致在编程时程序员往往需要对分析员和设计人员已经认识过的事务重新进行认识。

优点

1.与人类习惯的思维方法一致

2.可重用性好

3.可维护性好

4.稳定性好

5.较易开发大型软件

6. 面向对象的软件比较容易修改

7. 面向对象软件比较容易理解

1.把软件生命周期划分成若干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发工程的困难程度;

2.在软件生命周期的每个阶段都采用科学的管理技术和良好的技术方法,而且在每个阶段结之前都从技术和管理两个角度进行严格的审查,合格之后才开始下一阶段的工作,这就使软件开发工程的全过程一种有条不紊的方式进行,保证了软件的质量,特别是提高了软件的可维护性。

缺点

1.需要一定的软件支持环境。

2.不太适宜大型的MIS开发,若缺整体系统设计划分,易造成系统结构不合理、各部分关系失调等问题

3.只能在现有业务基础上进行分类整理,不能从科学管理角度进行理顺和优化

1.生产效率非常底

2.软件重用性差

3.软件可维护性差

4.开发出的软件不能满足用户需要

总结

传统方法编程以过程为中心,把大的程序划分为若干个相对独立、功能简单的程序模块,强调过程,强调功能和模块化,通过一系列过程的调用和处理完成相应的任务。
面向对象编程以对象为中心,是对一系列相关对象的操纵,发送消息给对象,由对象执行相应的操作并返回结果,强调对象。理论上,面向对象的程序设计方法将产生更好的模块内聚和耦合特性,使得软件更易于重用与维护。

面向对象软件工程方法学与传统方法学的异同相关推荐

  1. 软件工程方法学要素含义_日期时间数据的要素工程

    软件工程方法学要素含义 According to Wikipedia, feature engineering refers to the process of using domain knowle ...

  2. 什么是软件危机?软件危机的主要表现是什么?什么是软件?什么是软件工程?什么是软件过程?软件过程与软件工程方法学有何关系?​​​​​​​什么是软件开发方法?软件开发方法主要有哪些?

    软件危机:在软件的开发和维护过程中所遇到的一系列严重问题. 软件危机主要包含两方面的问题: 1.如何开发软件,以满足对软件日益增长的需求 2.如何维护数量不断膨胀的已有软件. 软件危机的消除途径: 软 ...

  3. 讨论面向对象及方法学的特点?为什么要用面向对象方法开发软件?

    讨论面向对象及方法学的特点?为什么要用面向对象方法开发软件? 面向对象的相关定义.面向方法学的特点.面向对象方法学的好处. 参考答案: (1)关于"面向对象",有许多不同的看法.C ...

  4. 软件工程- 第3章 传统软件工程方法学

    文章目录 软件工程 第3章 传统软件工程方法学 3.1 结构化设计 结构化设计的概念与原理 模块化 抽象 逐步求精 信息隐蔽 模块独立 3.2 模块独立 耦合 内聚 3.3 启发规则 3.4 面向数据 ...

  5. 面向对象方法学与结构化方法学的异同

    面向对象方法学与结构化方法学的异同 面向对象方法与结构化方法都是软件开发过程中的方法.在传统的软件开发过程中多采用结构化技术完成软件开发的一系列工作,但这种方法并不适应发型软件产品的开发,而随着硬件发 ...

  6. 南大计算机博士黄鑫,南京大学软件学院张贺教授团队在经验软件工程方法学研究中取得重要成果...

    近二十年来,经验软件工程(ESE)在软件工程研究中扮演了越来越重要的角色.主要研究经验型数据的ESE在人工智能技术全面接管软件工程之前,都将占据极其重要的地位.对ESE方法学的研究,关系到为什么要进行 ...

  7. 读书笔记:软件工程(11) - 传统方法学 - 软件需求分析

    软件需求分析 可行性研究阶段:粗略了解用户的需求,提出一些可行方案.基本目的是以最小的代价在尽可能短的时间内确定问题是否存在可行的解法.而在软件需求分析阶段,需要对可行性研究的问题,进行准确的分析&q ...

  8. 什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大 要素

    (1)软件工程目标:生产具有正确性.可用性以及开销合宜的产品.正确性指软件产品达到预期功能的程度.可用性指软件基本结构.实现及文档为用户可用的程度.开销合宜是指软件开发.运行的整个开销满足用户要求的程 ...

  9. 读书笔记:软件工程(12) - 传统方法学 – 软件建模-数据流图

    功能建模:数据流图 数据流图: 1.以图形的方式来描述系统中数据流程的活动状态.(这里的系统是指当前层用数据流图表示的整个抽象模型) 2.包含逻辑输入(输入的数据),逻辑输出(转换后输出的数据),加工 ...

最新文章

  1. MPLS ×××的三部分CE、PE和P简介
  2. 从青年基金到面上项目
  3. 二分查找(Java实现)
  4. python重复输入字符串a三次_8道Python基础面试练习题
  5. 比特币在推特上的活跃度正接近2017年水平
  6. lspci | grep -i ethernet
  7. 51NOD 1185 威佐夫游戏 V2(威佐夫博弈)
  8. svn:Attempted to lock an already-locked dir
  9. vray渲染里服务器信息,vray云服务器渲染部署(vray怎么渲染su)
  10. 复习,网课,视频回放,太慢怎么办,试试倍速播放吧 (无需下载)
  11. 国家开放大学2021春2045金融企业会计题目
  12. IMFI DAO World of Balatroon:土地出售即将到来!
  13. revit二次开发之多线程的正确使用
  14. python的图形界面库wxpython的快速简单使用
  15. 如何添加共享计算机用户,如何设置电脑联机共享
  16. unity3d实现场景右下角人物小地图(可显示出地图上人物的位置以及boss或者其他重要坐标的小图标)
  17. Pin Electronic 接口分析
  18. 服务器抽屉式显示屏HL2158,大屏幕显示系统等采购结果公告 - 千里马招标网
  19. 选拔赛A题“一个部族,一个民族,一个弗雷尔卓德。”
  20. 《跟着小吴哥学python》之 09 python中的编译与反编译

热门文章

  1. 188数码管驱动代码
  2. 中式红木装修,越中式越奢华
  3. 数据库知识体系搭建思维导图(上)
  4. MATLAB正月点灯笼老师课程笔记:第四课:使用MATLAB制作简单的动画效果
  5. 广东一小区有一老人倒挂在窗户上“劫后余生,必有后福。”
  6. python自学笔记(一)简单爬虫篇
  7. hive partion 键 关联(join)其他表
  8. STC8H8K系列汇编和C51实战——秒倒计时器(可自行设定初值)(51版)
  9. webpack:自定义loader
  10. (CRサクラ大戦3)樱花大战3最佳女主角