语言论文
当前位置:首页 > 论文范文 > 语言论文 > 列表页

软件开发语言论文

小草范文网  发布于:2016-12-21  分类: 语言论文 手机版

篇一:软件开发论文

1.2010以后,世界主要的软件开发工具,对它们的简介:优缺点的对比(数据库软件)

2.软件开发行业主要针对哪些方面进行开发?

3.软件开发现在将来过去主要有哪些进步,将来会有哪些进步(开发,使用)

4.数据库在软件开发过程中的应用

5.信息系统分析与设计/软件工程和软件开发之间具体的内容。

任选其一

评分标准:1字数:10%

2自己写的字数30%

3前沿程度20%

4冷门程度10%

5和专业的结合程度30%

Microsoft Visual Studio 开发工具套里面有: Visual Basic,Visual C++,Visual J++,Visual C#等等开发软件.

Borlan C++Builder

Borlan Delphi

Borlan JBuilder

PowerBuilder

Eclipse等等.

软件开发工具的选择

我国的软件开发已经逐步从原来的手工作坊式发展到了软件工程的阶段。同时,软件开发本身也在不断发展,已从“算法+数据结构=程序”逐步发展到了“设计

软件开发语言论文

模式+对象组件+开发工具=程序”。开发工具的选择,已经成为软件开发成功的要素之一。

开发工具的选择主要决定于两个因素:所开发系统的最终用户和开发人员。最终用户需求是一切软件的来源和归宿,也是影响开发工具的决定性因素;开发人员的爱好、习惯、 经验也影响着开发工具的选择。严格的软件工程管理和开发人员的技术水平是软件开发成功的关键。

本文介绍一些选择软件开发工具的思路,重点强调在满足客户群体的情况下,软件工具服务于软件工程思想的重要性。

开发工具 争显锋芒

首先需要强调的是:开发工具的比较没有绝对的标准。评价一种开发工具,不仅要看它对设计模式、对象结构以及管理的支撑情况,更重要的是要针对具体的使用环境、开发方法、结构体系、开发群体以及使用群体来评价一种工具的适宜程度。

现有的开发工具大概分为大而全和小而专两种类型。Microsoft的Visual Studio系列和IBM的Visual Age系列应该属于前者;其他很多工具,像

Delphi/C++Builder/JBuilder/Kylix、PowerBuilder/PowerJ,还有大量的各种SDK等都具有各自的特点,属于小而专的类型。

大而全的工具一般都提供从前端到后台,从设计到编码测试的完整工具,但在一些特定的功能上,它们不如小而专的工具。

Visual Studio.NET的UML开发工具(Visual Modeler/Visio)一般只能和Rational Suite中Rational Rose的Logical View相比,它不可能有完整的Rational Unified Process流程;其可视化的Visual Basic没有办法和Delphi/C++Builder在速度和功能上相比。

虽然Visual Studio.NET的各个部分都有不足,但其Visio工具能够更快、更方便地和编程语言整合在一起。Visual Basic在和Office等工具整合时遇到的问题(数据类型转化等)比Delphi/C++Builder要少得多。所以,工具类型和具体的情况决定了特定条件下软件开发工具最优的选择。

欲善其事 先利其器

开发工具的选择主要决定于两个因素:所开发系统的最终用户和开发人员。最终用户需求是一切软件的来源和归宿,也是影响开发工具的决定性因素;开发人员的爱好、习惯、经验也影响着开发工具的选择。

最终用户的需求

程序的最终使用群体是软件开发的服务对象,也影响着开发工具的选择。从计算机使用的程度分,最终的使用者可以分为IT人员、各行业的专业人员以及普通用户。使用者的不同,对于软件的需求就不会相同。IT人员自然需要更多的功能、更自由的定制/二次开发空间;行业用户往往需要一个整体的解决方案,从而提升其整体竞争力;普通用户显然要求更方便简单地使用。用户的需求分别在自由度、涵盖度、针对性、方便性等维度展开。

扩展软件自由度

为了扩展软件的自由度,较少的封装和充分的功能暴露是必然的。为了让用户自由使用Windows的功能,自由访问操作系统和硬件资源的语言C++或者Assembler应该是最好的选择。Visual C++成为Microsoft对其操作系统功能的“权威”封装,至今在Windows系统级开发中占据主流地位;C++ Builder扩充的标准的C++语法,提供了RAD(Rapid Application Development)的支持,但是它的VCL(Visual Component Library)大部分是用Delphi写的,不像Visual C++的MFC/ATL类库的纯C++源代码,对于C++程序员的深入编程不利。最近开放源代码(Open Source)运动风靡全球,开放源代码的C++工具中,GCC受到了普遍的采用。它不仅可以在各种流行操作系统(Windows、Linux、Solaris、HP-Unix)上运行,而且支持Object C、C++的各种扩充语法,甚至可以编译Java代码。

涵盖度各取所求

关于涵盖度的要求,不同的系统也是不尽相同的:有的可能要求涵盖前端、中间件、后台、数据库,也有可能要求涵盖各种操作系统和硬件平台。Visual Studio .NET和IBM的电子商务平台都能够提供从客户端、中间件到数据库的整体开发支持。

Visual Studio.NET甚至将可视化带到了Web客户端,通过拖放完成Web页面以后,可以双点到后台处理程序的框架代码中。从软件工程的思想看来,Visual Studio.NET给程序员提供了强大而且方便的功能,但是并没有明确的支持需求分析的流程。IBM的Visual Age系列在这个方面做得不错,Visual Age UML Designer支持从需求分析到设计、编码的相对完整过程(不过,在代码生成方面仅仅对Java和Smalltalk的支持比较好)。

Visual Studio.NET采用COM+作为组件模型,其生成的Web客户端对于平台没有限制。不过,虽然.NET框架应该可以移植到非Windows平台上运行,但是其中间件和服务端还没有看到在Unix或者Mac OS上的成功案例。IBM VisualAge+WebSphere+DB2系列大量采用JavaBEAn/J2EE作为组件模型,由于Java的平台无关性,客户端和中间件的跨平台性就比较好。

当然,用小而专的工具组合起来也能完成这些工作,Rational Suite可以完成从业务建模、系统建模、模块建模以及发布测试的完整过程,Delphi/C++Builder可以利用CORBA或者COM+作为中间件,JBuilder 6更是可以采用Visibroker或者orbix等各种CORBA产品或者WebSphere、iPlanet、BAS、WebLogic等各种J2EE产品。但是,如果不明白Rational中UML和代码映射的方法以及C++Builder/Delphi/ JBuilder对于代码的管理方式,要让建模和编码配合起来,就需要在Rational Rose中设置ClassPath以及在Borland工具中设置源代码目录。其中的过程和可能出现的问题都很多,而在Visual Studio.NET中,这些工作仅仅是点几下鼠标的事情。

也有像Ensemble这样的公司,专门集成小而专的工具,但是这些软件的成熟度以及学习和掌握也是问题。当然,在局部涵盖性上,Delphi使用CLX的程序可以在Kylix上编译,从而在Linux上运行;Raining Data Corporation的Omnis Studio 3.1甚至直接支持跨越Windows和Linux平台的RAD开发。

针对性各有特色

在针对性上,各个工具都具备各自的优势。在单机应用上,Visual FoxPro具有全球最快的数据访问引擎。而PowerBuilder在开发两层数据库应用上,特别是用数据窗口和Sybase数据库后台挂接,用PowerDesign建模,不仅开发速度快,而且效率和稳定性也比较好。在三层应用上,使用Visual Basic/C++/C#+ADO,如果再使用SQL Server,就在性能、开发效率、稳定性上都有保证;而使用C++Builder/Delphi+DataSnap(MIDAS),在挂接非微软数据库,或者需要和CORBA程序交互时都具有优势。

对于多层分布式应用,COM+规范和CORBA产品(orbix, visibroker等)往往决定了开发工具的选择。COM+的开发工具一般采用Visual Studio.NET或Borland的产品,而由于CORBA的编程语言和系统平台的无关性,各种开发平台一般都可以。另外,针对C/C++编程,DSET公司的DSG在高端应用(一般在电信领域)中,它在与网络协议栈的无关性、同/异步消息处理、海量通信能力、嵌入式到大型机的移植性等方面,具有独特的优势。在服务器端开发上,COM+、CORBA 3.0、J2EE都支持组件模型,分别利用MSMQ、CORBA Messaging System、JMS完成异步通信。COM+仍然主要集中在Windows平台上,CORBA 3.0的Java语言部分包含整个J2EE规范。但是,CORBA作为一个跨语言跨平台的规范,现在支持3.0版本非Java语言的产品还不多,支持其核心——CCM(CORBA Component Model)的C++编程的产品有iCMG公司K2-CCM等。

J2EE的组件(EJB)已经发展到了1.2版本。满足该规范的产品——BEA WebLogic、Borland BAS、 IBM WebSphere、Oracle 9i甚至免费的JBOSS都得到了广泛的应用。BEA WebLogic 7.0在前端开发工具上做了大量的工作,声称将J2EE开发和Visual Basic放在同一个级别上(其内部名字就是Visual Basic for Java)。

微软方便性最好

在方便性上,由于有大量用户的实践,微软的开发工具应该是最好的。它在可视化、工具间互操作性、稳定性、文档的丰富性上都具有明显的优势。Borland Delphi/C++Builder在可视化上和Visual Basic/C#基本上类似,但是他们在稳定性上不足(C++Builder 5.0自动生成的CORBA程序的debug版会报错(Exception));IBM Visual Age系列的稳定性不错,但是它们的可视化编程不是非常方便;在文档方面,更是没有一种工具具有Visual Studio自带的MSDN那样的容量(两张光盘)。

开发者的偏爱

开发工具是给开发者用的,开发人员是这些工具的用户。不同的开发人员对工具的偏爱也不同。Pascal程序员一般都会钟爱Delphi/Kylix;Windows的C++程序员则会选择C++Builder或者Visual C++;在不同平台下C++编程的人员可能会更加喜欢GCC;Smalltalk

程序员恐怕就只会考虑Visual Age Smalltalk;而Turbo Lisp、Visual Fortran、Perl Builder等开发工具在其他各种编程语言的程序员中也被大量采用。

现在,各种编程语言的功能互相融合,像Borland Delphi和C++Builder之间的功能差异,在语言上表现得已经非常少了。除了编程语言的偏爱以外,不同操作系统的程序员使用的工具也不同:Solaris系统下的程序员更多地使用CC编写C++/C的后台程序,用Perl编写框架或者测试脚本,用TCL/TK编写界面程序;虽然Windows下也有这些工具,但是更多程序员恐怕还是会选择支持RAD的工具。现在,人们普遍认可一种趋势:操作系统、编程语言在开发上的差异正在迅速消失。XML有效地解决了在不同系统下统一数据表达的问题;通过虚拟机,Java程序能够在不同操作系统下执行;微软的.NET框架能够利用C++/Basic/C#来编程。

平台和语言间的交互使得各种工具对于通用标准的支持越来越重视。Sun新推出的Java的XML开发包,明确支持由微软和IBM提出的SOAP规范,Visual Studio.NET也明确支持Java语言(J#)。虽然现在还仅仅是一个开端,但是,语言和平台的融合是一种不可阻挡的趋势:必然有更多的编译器将其他语言编译成为Java字节码,Visual Studio.NET也必然会将程序编译到其他操作系统中。

然而,伴随着技术的融合,差异性也将永远存在。微软为了互联网应用而推出.NET框架,Windows和Visual Studio都做了巨大的改进。为了这个框架,Visual Studio.NET甚至推出了一个新的编程语言C#,它具有Java语言的大部分特征,同时在固定内存区允许使用指针。C#在设计上确实非常先进,但是由于缺乏大量的使用,而且缺乏Java 2中的安全特性,是否能够吸引大量的程序员,还是一个未知数;同时,C#中的很多特性(像对象方法的修饰词等)都是微软COM+规范在编程语言中的映射,这会在今后的操作系统平台移植时产生麻烦。

除了开发人员的平台特性和语言偏爱以外,人员间的配合模式也决定着工具的选择。自由软件普遍采用的跨地域开发模式,对于使用CVS版本管理系统的开发工具非常合适。而由于Visual Studio.NET在开发调试中会改变本地Windows注册库,跨地域开发就非常不方便。

当然,不能排除别的因素对于开发工具的影响。举例来说,行业的特点以及遗留系统(legacy system)对于开发的影响也是不可忽略的:电信行业的软件开发,由于有ITU-T规范的存在,Java要代替现有的C/C++开发模式还不能像通用软件那么快。但是,归结起来,软件的开发总是一个由人完成和为人服务的。无论其他因素的影响力现在有多大,今后的发展也必然是由人来决定的。

开发利器1 PB集成 降本提效

互联网已经从前几年的“接入为王”、“内容为王”,发展到了今天的“应用为王”的时代了。大批的应用软件开发人员也将进入Web应用开发领域。他们熟悉应用业务领域、熟悉传统C/S的开发技巧,但不一定熟悉HTML/javascript, 也不一定熟悉3-tier体系架构。这对平台和工具厂商来说是一个巨大的商机。

PB异军突起

现在究竟是什么阻碍了Web应用和3-tier的大批出现呢?仍然是工具。一个好的开发工具应该是在日常开发中能够屏蔽烦琐的技术细节,并允许高级开发人员直接干预这些技术细节。在3-tier开发中,我们会同时面对数据库操作(表、数据维护、存储过程和触发器的维护等),Component编写和调试, 网页(尤其是调用这些Component的动态页面)的编写和调试,以及一些2-tier应用程序的维护等许多任务。

一般说来,完成这些任务需要使用多种工具,在开发时需要在多个工具之间切换,由此造成了开发效率的低下和开发难度的提高。而PB8/PJ4很好地解决了这些问题。所有这些任务,都可以在同一个开发环境中完成,开发人员能非常快速地编写基于数据库的业务逻辑Component以及调用这些Component的Web-Client或PB-Client。尤其是Sybase把2-tier中的王牌Datawindow扩展到了HTML领域,使得数据库驱动的动态页面实现起来非常容易。

总体来说,Sybase的优势在于具备开发企业信息系统所需的全系列的工具,包括系统分析和系统设计工具PowerDesigner、应用开发工具PowerBuilder和PowerJ、应用服务器EAServer(内含Jaguar和PowerDynamo)、数据库Adaptive Server Enterprise(以及复制服务器等)。这些工具由于是同一家公司的产品,具有非常好的互操作性。同时,这些工具对标准的支持非常好,比如EAServer对组件模型就同时支持COM、CORBA和J2EE,可以用C/C++和JAVA来编写各种Component, 甚至以CORBA的形式支持用PowerBuilder直接编写Component。

反面意见

许多人都提到PB的许多不足,比如与VB和Delphi相比界面较单调、对于Windows API的调用能力较差(PB本身不直接支持指针)等等。然而,在某些特定场合,这些问题会变成优势。企业应用的核心在于数据访问和业务逻辑。界面的花哨倒并不重要。在企业应用中,好的用户界面设计是指符合用户业务思维方式和业务流程的界面设计,而不是花哨的界面设计。而不支持指针,则会大大提高程序的可靠性。这些问题,实际上都源自PB产品的定位:不是作为一个通用开发工具,而是作为一个专用的企业信息系统开发工具。在这个领域,PB/PoerJ确实是无可匹敌的。

在系统分析和设计工具领域,Rational Rose是一个常被人称道的工具。然而在现实的信息系统项目和应用软件开发中,我们面对的不是纯面向对象的环境,而是关系数据库和面向对象的混合环境。并且,用户无一例外地希望数据库的访问有尽可能高的性能。第三方工具

在互联网上您可以找到大量第三方的工具来帮助您提高您在开发PowerBuilder应用时的效率和质量。下面就是两个例子:

大家一定会了解Visual C/C++与MFC的关系。在C/S环境中,PowerBuilder也有一个PFC与之对应。当然,两者的层次是不同的。MFC提供了底层的封装,而PFC提供了数据库应用的更高层面的封装。对PFC的深入应用可以大大提高系统的开发效率和开发质量。进入到3-tier的世界,如果用PB来开发Component,同样也有一些很好的类库,比较著名的就是EAF。对这些类库的深入应用并形成自己的类库,是迅速提高产品和项目的质量和效率捷径。

[

确保应用软件的质量一定是许多人都很头疼的问题。那我们就先来看看最基本的问题吧。在单元测试这个领域,大家一定了解在Java中的JUnit这个单元测试工具。PB中也有一个对应的工具叫做PBUnit。你可以在开发过程中,在PBUnit环境中编写测试脚本,反复对你的Object进行回归测试,并自动记录、分析测试结果。对于常常是包含了大量数据处理的PB应用程序来说,这是非常有价值的。(祝枫)

开发利器2 WebSphere Studio 开放开发

IBM正在交付一个基于WebSphere Studio Workbench技术的电子商务应用程序开发工具的新套件。WebSphere Studio Workbench是一个用于工具开发和集成的平台。这是 IBM 对开放源码Eclipse Project的增值实现。WebSphere Studio Workbench提供用于

篇二:软件开发流程-论文

毕业设计(论文)

题目:软件开发流程管理

班级: 学号: 姓名:

2014年11月

从软件开发最初至今,不断地有新的软件开发技术产生,但是在软件开发能力和质量方面却始终存在达不到预计目标这一问题。每一个软件开发的最大目标,就是最大限度提高质量与生产率。而影响质量与生产率的三个关键因素:过程、人和技术,因此,我们除了提高技术能力,培养更多优质人才之外,还需要制定一套软件开发过程管理标准,并在软件开发过程中对这一标准不断地完善,以达到提高软件质量与生产率的目标。

本文结合CMM(软件过程成熟度模型),对软件开发、维护全过程进行标准化、规范化管理,制定出软件开发管理标准。

关键词:软件开发过程,管理标准

第一章软件开发的概念及目的 ......................................... 4

第二章软件开发流程划分及开发环境 ................................... 4

2.1.软件开发阶段划分 ............................................ 4

2.2.软件开发环境需求 ........................... 错误!未定义书签。

第三章软件开发过程中存在的问题 .................... 错误!未定义书签。

3.1.对用户方需求的掌握不全面 ................... 错误!未定义书签。

3.2.对软件的价值认识不清晰 ..................... 错误!未定义书签。

3.3.跟用户方的合作不顺利 ....................... 错误!未定义书签。

3.4.开发队伍的结构不合理 ....................... 错误!未定义书签。

3.5.软件开发管理制度不健全 ..................... 错误!未定义书签。

3.6.开发团队人员不稳定 ......................... 错误!未定义书签。

第四章软件开发流程管理规范 ........................................ 10

4.1.什么是CMM.................................................. 10

4.2.结合CMM制定开发流程管理方案 ............................... 11

4.2.1软件项目生命周期模型 ................... 错误!未定义书签。

4.2.2需求分析流程图及描述 ................... 错误!未定义书签。

4.2.3设计流程图及描述 ....................... 错误!未定义书签。

4.2.4编码流程图及描述 ....................... 错误!未定义书签。

4.2.5测试流程图及描述 ....................... 错误!未定义书签。

4.2.6验收流程图及描述 ....................................... 22

第四章软件开发行业前景 ............................................ 23 参考文献........................................... 错误!未定义书签。

第一章软件开发的概念及目的

软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。

为什么我们会使用软件开发?这样做的目的是为了什么,其中的一个主要原因是向客户提供价值不断增长的软件需求。基本的根本在于用户需求或市场营销目标必须创建或转换成好的软件应用。所以从本质上讲,软件开发是它允许最终用户执行他想做的任务。

一个繁荣必然导致其他环节的上升。因此,许多公司都在提供软件开发项目。随着新开发过程中对世界的探索,软件开发将会无限增长。这是当今世界多少软件开发手段。企业网站建设的应用程序必须提供包括一系列非常复杂的机器不同的目的包括很多行业类型和几乎任何你能想到的。

第二章软件开发流程划分及开发环境

2.1软件开发阶段划分

软件开发一般分为六个阶段:

1. 问题的定义及规划

对所要解决的问题进行总体定义,包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效益和开发进度作出估计,制订完成开发任务的实施计划

2. 需求分析

软件需求分析就是对开发什么样的软件的一个系统的分析与设想。它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。在任何软件或系统开发的初始阶段必须先完全掌握用户需求,以期能将紧随的系统开发过程中哪些功能应该落实、采取何种规格以及设定哪些限制优先加以定位。系统工程师最终将据此完成设计方案,在此基础上对随后的程序开发、系统功能和性能的描述及限制作出定义。

3. 软件设计

软件设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。可以是一个函数、过程、子程序、一段带有程序说明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元。模块,然后进行模块设计。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。

4. 程序编码

软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的“源程序清单”。充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。

当前软件开发中除在专用场合,已经很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言。而且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。

5. 软件测试

软件测试的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试用例(测试数据与功能和预期的输出结果组成了测试用例)。如何才能

篇三:现代软件开发技术论文

软件开发的发展趋势

摘要

软件是一种特殊的产品,随着其规模和复杂性的提高、使用范围的扩大,需要从技术和管理两方面对软件的开发过程进行控制。 本文将从开发语言、开发工具、开发模式和开发框架等几方面做了详细解读,发展趋势则是根据软件开发的历史和现状做了详细的分析。

关键词:软件开发 开发模式 开发框架

一、 发展历史

计算机软件技术发展很快。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年代,随着微电子和数字化声像技术的发展,在计算机应用程序中开始使用图像、声音等多媒体信息,出现了多媒体计算机。多媒体技术的发展使计算机的应用进入了一个新阶段。

这个时期出现了多用途的应用程序,这些应用程序面向没有任何计算机经验的用户。典型的应用程序是电子制表软件、文字处理软件和数据库管理软件。Lotus1-2-3是第一个商用电子制表软件,WordPerfect是第一个商用文字处理软件,dBase III是第一个实用的数据库管理软件。

1.5 第五代软件(1990-)

第五代软件中有三个著名事件:在计算机软件业具有主导地位的Microsoft公司的崛起、面向对象的程序设计方法的出现以及万维网(World Wide Web)的普及。

面向对象的程序设计方法最早是在20世纪70年代开始使用的,当时主要是用在Smalltalk语言中。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,对于组件技术不断完善发展的今天,它也显出了它的落

本文已影响