• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
程序设计方法的演化及极限(1)
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
程序设计方法的演化及极限(1)
软件发布 程序设计方法的演化及极限(1)
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 认证考试 >> 程序员 >> 程序设计方法的演化及极限(1)

程序设计方法的演化及极限(1)

添加时间: 2007-4-9 0:07:58  作者: 程序员认证参考  阅读次数:32   来源: http://www.d9soft.com

       

1.引言
 
  当今社会是信息社会,信息社会的灵魂是作为“信息处理机”的电子计算机,从1946年第一台计算机ENIAC问世到今天的“深蓝”,电子计算机的硬件得到突飞猛进的发展,程序设计的方法也随之不断的进步。20世纪70年代以前,程序设计方法主要采用流程图,结构化设计(Structure Programming,SP) 思想 也趋成熟,整个20世纪80年代SP是主要的程序设计方法。然而,随着信息系统的加速发展,应用程序日趋复杂化和大型化。传统的软件开发技术难以满足发展的新要求。20世纪80年代后,面向对象的程序设计(Object Orient Programming,OOP)技术日趋成熟并逐渐地为计算机界所理解和接受。面向对象的程序设计方法和技术是目前软件研究和应用开发中最活跃的一个领域。

  如果把过去十年称为“OO时代”,相信不会引起太多的异议。面向对象技术会如此受到广泛的重视,主要是面向对象的思想接近于客观世界的实际和符合人们通常的思维方式从而易于为人们所接受。 到目前为止,OO技术得到了最广泛的应用,并且也被证明不是软件开发的“银弹”。从Robert Martin到Bertrand Meyer,研究者们把OO的能力和局限摸了个一清二楚。同时,人们也在传统的OO三要素(封装性,继承性,多态性)的基层上发展了更多的新技术,借以弥补OO的缺陷,使OO方法和技术能够更好地解决软件开发中的问题。

  OO技术的一大局限性就是:它对软件职责的划分是“垂直”的。在一个标准的对象继承体系中,每一继承类主要是负责软件系统中一个特定部分的功能,对象的行为是在编译期间被决定的。OO技术的另一大问题是接口问题。在传统的OO环境下,对象开发者没有任何办法确保使用者按照自己的要求来使用接口。由于OO技术的这些缺点,按照事物发展的规律,必然促使新的程序设计方法出现来解决这些问题,这就是即将到来的后OO时代。

2.结构化程序设计

  早期的计算机存储器容量非常小,人们设计程序时首先考虑的问题是如何减少存储器开销,硬件的限制不容许人们考虑如何组织数据与逻辑,程序本身短小,逻辑简单,也无需人们考虑程序设计方法问题。与其说程序设计是一项工作,倒不如说它是程序员的个人技艺。但是,随着大容量存储器的出现及计算机技术的广泛应用,程序编写越来越困难,程序的大小以算术基数递增,而程序的逻辑控制难度则以几何基数递增,人们不得不考虑程序设计的方法。

  最早提出的方法是结构化程序设计方法,其核心是模块化。1968年Dijskstra在计算机通讯上发表文章[1],注意到了“结构化程序设计”,之后,Wulf主张“可以没有GOTO语句”[2]。至1975年起,许多学者研究了“把非结构化程序转化为结构化程序的方法”,“飞结构的种类及其转化”,“结构化与非结构化的概念”,“流程图的分解理论”等问题。结构化程序设计逐步形成既有理论指导又有切实可行方法的一门独立学科。
SP方法主张使用顺序、选择、循环三种基本结构来嵌套连结成具有复杂层次的“结构化程序”,严格控制GOTO语句的使用。用这样的方法编出的程序在结构上具有以下效果:

  (1) 以控制结构为单位,只有一个入口,一个出口,所以能独立地理解这一部分。
  (2) 能够以控制结构为单位,从上到下顺序地阅读程序文本。
  (3) 由于程序的静态描述与执行时的控制流程容易对应,所以能够方便正确地理解程序的动作。

  SP的要点是:“自顶而下,逐步求精”的设计思想,“独立功能,单出、入口”的模块仅用3种(顺序、分支、循环)基本控制结构的编码原则[3]。自顶而下的出发点是从问题的总体目标开始,抽象低层的细节,先专心构造高层的结构,然后再一层一层地分解和细化。这使设计者能把握主题,高屋建瓴,避免一开始就陷入复杂的细节中,使复杂的设计过程变得简单明了,过程的结果也容易做到正确可靠。独立功能,单出、入口的模块结构减少了模块的相互联系使模块可作为插件或积木使用,降低程序的复杂性,提高可靠性。程序编写时,所有模块的功能通过相应的子程序(函数或过程)的代码来实现。程序的主体是子程序层次库,它与功能模块的抽象层次相对应,编码原则使得程序流程简洁、清晰,增强可读性。

  在SP中,划分模块不能随心所欲地把整个程序简单地分解成一个个程序段,而必须按照一定的方法进行。模块的根本特征是“相对独立,功能单一”。换言之,一个好的模块必须具有高度的独立性和相对较强的功能。模块的好坏,通常用“耦合度”和“内聚度”两个指标从不同侧面而加以度量。所谓耦合度,是指模块之间相互依赖性大小的度量,耦合度越小,模块的相对独立性越大。所谓内聚度,是指模块内各成份之间相互依赖性大小的度量,内聚度越大,模块各成份之间联系越紧密,其功能越强。因此在模块划分应当做到“耦合度尽量小,内聚度尽量大”。

  结构化程序相比于非结构化程序有较好的可靠、易验证性和可修改性;结构化设计方法的设计 思想 清晰,符合人们处理问题的习惯,易学易用,模块层次分明,便于分工开发和调试,程序可读性强。其设计语言以Ada语言为代表。

 

上下文章:

 

上一篇文章: C++大师Lippman:我对中国程序员的忠告 下一篇文章: 浮点数的加减乘除运算步骤

相关文章:

  • vista隐蔽的注册表垃圾清理方法
  • 在局域网中配置Vlan的基本方法
  • 常见问题诊断方法---(常见错误篇)
  • 常见问题诊断方法---(SQL*NET篇)
  • Oracle联机日志文件丢失处理方法

相关软件:

  • 学习方法宝典 2006 新春贺年版
  • 东方法律宝典 2005 Ⅲ
  • 极限音乐网全站程序
  • 极限娱乐网
  • Apc001.Com 极限音乐探索 免费版
  • 极限音乐网全站程序 v7.0

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

认证考试分类导航

  • 微软认证
  • 计算机等级考试
  • 软件水平考试
  • 思科认证
  • Oracle认证
  • Linux认证
  • JAVA认证
  • 网络工程师
  • 系统工程师
  • 程序员

本类经典文章推荐

  • 软考系统分析师考试须知
  • C++箴言:绝不在构造或析构期调用...
  • 数据结构:判别是否为二叉排序树的...
  • 一个程序员的成长的六个阶段
  • 程序员英语试题常见硬件名和设备名
  • 从一个程序出发详细研究DataReader
  • 如何判断程序处于运行环境还是调试...
  • 程序高手必读:写好C程序的10条秘...
  • 程序员介绍:程序员的“素质”是什...
  • C++箴言:让=返回一个*this的引用

程序员阅读排行

  • 数据结构:判别是否为二叉排序树的...
  • VC++动态链接库(DLL)编程深入浅出...
  • VC++动态链接库(DLL)编程深入浅出...
  • 程序员考试:证书样本
  • 补码加、减运算规则及溢出判断
  • 数据结构:栈和递归求两顶点所有简...
  • DirectX8.0简介(8)
  • 水滴石穿·C语言之代码检查工...
  • 数据结构:打印线索二叉树的中序遍...
  • DirectX8.0简介(3)

认证考试阅读总排行

  • 全国计算机等级考试一级模拟试题01
  • 全国计算机等级考试一级模拟试题10
  • 全国计算机等级考试一级模拟试题08
  • MCSD简介
  • 全国计算机等级考试一级考试最新模...
  • 全国计算机等级考试一级模拟试题07
  • 全国计算机等级考试一级模拟试题02
  • 全国计算机等级考试一级模拟试题06
  • 全国计算机等级考试一级模拟试题03
  • 一级(WINDOWS)试题解析-Word篇

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有