
现代软件开发技术论文.docx
14页软件开发的发展趋势摘要软件是一种特殊的产品,随着其规模和复杂性的提高、使用范围的扩大,需 要从技术和管理两方面对软件的开发过程进行控制 本文将从开发语言、开发 工具、开发模式和开发框架等几方面做了详细解读,发展趋势则是根据软件开发 的历史和现状做了详细的分析关键词:软件开发 开发模式 开发框架一、 发展历史计算机软件技术发展很快50 年前,计算机只能被高素质的专家使用,今 天,计算机的使用非常普遍,甚至没有上学的小孩都可以灵活操作;40 年前, 文件不能方便地在两台计算机之间进行交换,甚至在同一台计算机的两个不同的 应用程序之间进行交换也很困难,今天,网络在两个平台和应用程序之间提供了 无损的文件传输;30 年前,多个应用程序不能方便地共享相同的数据,今天, 数据库技术使得多个用户、多个应用程序可以互相覆盖地共享数据了解计算机 软件的进化过程,对理解计算机软件在计算机系统中的作用至关重要1.1 第一代软件(1946-1953)第一代软件是用机器语言编写的,机器语言是内置在计算机电路中的指令, 由0 和1 组成不同的计算机使用不同的机器语言,程序员必须记住每条及其语 言指令的二进制数字组合,因此,只有少数专业人员能够为计算机编写程序,这 就大大限制了计算机的推广和使用。
在这个时代的末期出现了汇编语言,它使用助记符表示每条机器语言指令, 相对于机器语言,用汇编语言编写程序就容易多了由于程序最终在计算机上执 行时采用的都是机器语言,所以需要用一种称为汇编器的翻译程序,把用汇编语 言编写的程序翻译成机器代码编写汇编器的程序员简化了他人的程序设计,是 最初的系统程序员1.2 第二代软件(1954-1964)当硬件变得更强大时,就需要更强大的软件工具使计算机得到更有效地使用 汇编语言向正确的方向前进了一大步,但是程序员还是必须记住很多汇编指令 第二代软件开始使用高级程序设计语言编写,高级语言的指令形式类似于自然语 言和数学语言,不仅容易学习,方便编程,也提高了程序的可读性高级语言的出现产生了在多台计算机上运行同一个程序的模式,每种高级语 言都有配套的翻译程序,编译器可以把高级语言编写的语句翻译成等价的机器指 令随着包围硬件的软件变得越来越复杂,应用程序员离计算机硬件越来越远 那些仅仅使用高级语言编程的人不需要懂得机器语言和汇编语言,这就降低了对 应用程序员在硬件及机器指令方面的要求因此,这个时期有更多的计算机应用 领域的人员参与程序设计在第一代和第二代软件时期,计算机软件实际上就是规模较小的程序,程序 的编写者和使用者往往是同一个(或同一组)人。
由于程序规模小,程序编写起 来比较容易,也没有什么系统化的方法,对软件的开发过程更没有进行任何管理 这种个体化的软件开发环境使得软件设计往往只是在人们头脑中隐含进行的一 个模糊过程,除了程序清单之外,没有其他文档资料1.3 第三代软件(1965-1970)在这个时期,由于用集成电路取代了晶体管,处理器的运算速度得到了大幅 度的提高,处理器在等待运算器准备下一个作业时,无所事事因此需要编写一 种程序,使所有计算机资源处于计算机的控制中,这种程序就是操作系统20 世纪 60 年代以来,计算机用于管理的数据规模更为庞大,应用越来越广 泛,同时,多种应用、多种语言互相覆盖地共享数据集合的要求越来越强烈为 解决多用户、多应用共享数据的需求,使数据为尽可能多的应用程序服务,出现 了数据库技术,以及统一管理数据的软件系统——数据库管理系统 DBMS随着计算机应用的日益普及,软件数量急剧膨胀,在计算机软件的开发和维 护过程中出现了一系列严重问题,例如:在程序运行时发现的问题必须设法改正; 用户有了新的需求必须相应地修改程序;硬件或操作系统更新时,通常需要修改 程序以适应新的环境上述种种软件维护工作,以令人吃惊的比例消耗资源,更 严重的是,许多程序的个体化特性使得他们最终成为不可维护的,“软件危机” 就这样开始出现了。
1968 年,北大西洋公约组织的计算机科学家在联邦德国召 开国际会议,讨论软件危机问题,在这次会议上正式提出并使用了“软件工程” 这个名词1.4 第四代软件(1971-1989)20世纪70年代出现了结构化程序设计技术,Pascal语言和Modula-2语言 都是采用结构化程序设计规则制定的, Basic 这种为第三代计算机设计的语言也 被升级为具有结构化的版本,此外,还出现了灵活且功能强大的C语言20 世纪 80 年代,随着微电子和数字化声像技术的发展,在计算机应用程序 中开始使用图像、声音等多媒体信息,出现了多媒体计算机多媒体技术的发展 使计算机的应用进入了一个新阶段这个时期出现了多用途的应用程序,这些应用程序面向没有任何计算机经验 的用户典型的应用程序是电子制表软件、文字处理软件和数据库管理软件Lotusl-2-3是第一个商用电子制表软件,WordPerfect是第一个商用文字处理软 件, dBase III 是第一个实用的数据库管理软件1.5 第五代软件(1990-)第五代软件中有三个著名事件:在计算机软件业具有主导地位的 Microsoft 公司的崛起、面向对象的程序设计方法的出现以及万维网(WorldWideWeb)的 普及。
面向对象的程序设计方法最早是在20世纪70年代开始使用的,当时主要是 用在Small talk语言中20世纪90年代,面向对象的程序设计逐步代替了结构 化程序设计,成为目前最流行的程序设计技术面向对象程序设计尤其适用于规 模较大、具有高度交互性、反映现实世界中动态内容的应用程序 Java、 C++、 C#等都是面向对象程序设计语言软件体系结构从集中式的主机模式转变为分布式的客户机/服务器模式(C/S) 或浏览器/服务器模式(B/S),专家系统和人工智能软件从实验室走出来进入了 实际应用,完善的系统软件、丰富的系统开发工具和商品化的应用程序的大量出 现,以及通信技术和计算机网络的飞速发展,使得计算机进入了一个大发展的阶 段二、 开发语言2.1 机器语言用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代 码的涵义编写程序时,程序员得自己处理每条指令和每一数据的存储分配和输 入输出,还得记住编程过程中每步所使用的工作单元处在何种状态这是一件十 分繁琐的工作,编写程序花费的时间往往是实际运行时间的几十倍或几百倍而 且,编出的程序全是些 0 和 1 的指令代码,直观性差,容易出错。
2.2 汇编语言采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在 一定程度上简化了编程过程使用汇编语言能面向机器并较好地发挥机器的特性 得到质量较高的程序汇编语言像机器指令一样,是硬件操作的控制信息,因而 仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差机器语言和 汇编语言是低级语言表达软件模型的基本概念是指令,表达模型处理逻辑的主 要概念是顺序和转移抽象层次很低是面向机器的,只适用于对计算机硬件熟 悉专业人员使用2.3 面向过程语言如 FORTRAN 、BASIC 、PASCAL、C 等,使用了变量、标识符、表达式等概念作 为语言的基本构造并使用顺序、分支、循环 3 种基本控制结构来表达软件模型 的计算逻辑,采用结构化程序设计方法,实现了模块化的数据抽象和过程抽象结构化程序设计方法主要包括:(1) 只采用三种基本的程序控制结构来编制程序,从而使程序具有良好的结 构2) 程序设计采用模块化结构自顶而下, 逐步求精即首先把一个复杂的 大问题分解为若干相对独立的小问题如果小问题仍较复杂, 则可以把这 些小问题又继续分解成若千子问题, 这样不断地分解, 使得小问题或子问题简单到能够直接用程序的三种基本结构表达为止。
3) 用结构化程序设计流程图表示算法程序结构清晰, 易于阅读2.4 面向对象编程语言SMA LLTALK , C++等,以对象为基本计算单元,以消息传递为基本交互手段来表达软件模型其本质是以拟人化的观点看待客观世界, 即客观世界是 由一系列对象构成, 这些对象之间的交互形成了客观世界中各式各样的系统 面向对象方法中的概念和处理逻辑更接近于人们解决计算问题的思维模式面向对象分析(OOA)利用类及对象、属性、服务、结构、主题五个层次和活 动定义和记录系统行为, 输入和输出经过对这五个层次的活动分析后的结果 是一个分成相应五个层次的问题域模型, 由类及对象图表示五个层次活动的 顺序并不重要面向对象设计模型(OOD)则需要进一步区分以下4个部分:(1) 问题域部分: 面向对象分析的结果直接放入该部分2) 人机交互部分: 这部分的活动包括对用户分类, 描述人机交互的脚本, 设 计命令层次结构,设计详细的交互,生成用户界面的原型,定义HIC类3) 任务管理部分: 这部分的活动包括识别任务(进程) 、任务所提供的服务、 任务的优先级、进程是事件驱动还是时钟驱动、以及任务与其它进程和外界如何 通信4) 数据管理部分: 这一部分依赖于存储技术, 是文件系统, 还是关系数据 库管理系统, 还是面向对象数据库管理系统。
面向对象技术促进了软件重用, 但是, 只实现了类和类继承的重用在整个系 统和类之间还存在很大的缺口三、 开发工具3.1 VB全称Visual Basic,它是以Basic语言作为其基本语言的一种可视化编程 工具在中国乃至全世界都能看到它的身影,它曾是在中国最为流行的编程工具, 到现在还占据着非常重要的地位,对于它的好坏大家都有一定的了解, VB 作为 一种较早出现的开发程序以其容易学习,开发效率较高,具有完善的帮助系统等 优点曾影响了好几代编程人员,但是由于VB不具备跨平台这个特性,从而也决 定了 VB 在未来的软件开发中将会逐渐地退出其历史舞台;它对组件技术的支持 是基于COM和ActiveX,对于组件技术不断完善发展的今天,它也显出了它的落 后性;同时VB在进行系统底层开发的时候也是相对复杂的,调用API函数需声 明,调用不方便,不能进行 DDK 编程,不可能深入 Ring0 编程,不能嵌套汇编; 而且面向对象的特性差;网络功能和数据库功能也没有非常突出的表现,综上所 述, VB 作为一种可视化的开发工具由于其本身的局限性,导致了它在未来软件 开发中逐步被其他工具所代替3.2 PB全称PowerBuilder,是开发MIS系统和各类数据库跨平台的首选工具,使 用简单,容易学习,容易掌握,在代码执行效率上也有相当出色的表现。
PB是 一种真正的 4GL 语言(第四代语言),可随意直接嵌套 SQL 语句返回值被赋值到 语句的变量中,支持语句级游标,存储过程和数据库函数,是一种类似SQLJ的 规范,数据访问中具有无可比拟的灵活性但是它在系统底层开发中犯了跟 VB 一样的错误,调用API函数需声明,调用不方便,不能进行DDK编程,不可能深 入RingO编程,不能嵌套汇编;在网络开发中提供了较多动态生成Web页面的用 户对象和服务以及系统对象,非常适合编写服务端动态Web应用,有利于商业逻 辑的封装;但是用于网络通讯的支持不足;静态页面定制支持有限,使得PB在 网络方面的应用也不能非常广泛面向对象特向也不是太好3.3 C++Builder/Delphi它们都是基于 VCL 库的可视化开发工具,它们在组件技术的支持、数据库支 持、系统底层开发支持、网络开发支持、面向对象特性等各方面都有相当不错的 表现,并且学习使用较为容易,充分提现了所见即所得的可视化开发方法,开发 效率高由于两者都是 Borland 公司的产品,自然继承了该公司一贯以来的优 良传统:代码执行效率高但是,它们并不是毫无缺点,它们所作的。
