软件开发技术范文

时间:2023-10-10 18:52:18

软件开发技术

软件开发技术篇1

原型法

原型法是近年来提出的一种以计算机为基础的系统开发方法,利用原型法开发系统时首先构造一个功能简单的原型系统,然后通过对原型系统逐步求精,不断扩充完善得到最终的软件系统。

原型就是模型,原型系统就是应用系统的模型。它是待开发的实际系统的缩小比例模型,但是保留了实际系统的大部分性能。这个模型可在运行中被检查、测试、修改,直到它的性能达到用户需求为止,随之这个工作模型很快就能转换成需要的目标系统。

原型法的主要优点在于它是一种支持用户的方法,使得用户在系统生存周期的设计阶段起到积极的作用,能减少系统开发的风险。特别是在大型项目的开发中,由于用户对系统功能认识的模糊性,使得对项目需求的分析难以一次完成,往往会造成已完成的项目多次修改,应用原型法则会避免这种风险。

原型法的概念既适用于系统的重新开发,也适用于对系统的修改;利用原型法开发系统需要有良好的软件开发环境、工具的支持。原型法也可以与传统的生命周期方法相结合使用,以便扩大用户参与需求分析、初步设计及详细设计等阶段的活动,加深对系统的理解。

微软公司通常采用“同步-稳定产品开发法”进行项目开发。典型项目的生命周期包括三个阶段:

1. 计划阶段:完成项目的功能说明和进度表的制定;

2. 开发阶段:写出完整的的源代码;

3. 稳定化阶段:完成产品,使之能够批量生产。

这三大阶段以及阶段间内在的循环方法与传统的“瀑布”式开发方式很不相同,后者是由需求、详尽设计、模块化的代码设计与测试、集成测试以及系统测试组成的。而微软的三个阶段更像是风险驱动的、渐进的“螺旋”式的生命周期模型。

构造原型是在计划阶段具体说明一件新产品或一个新版本的最好方法,这从许多方面来说特别是在系统可用性方面都使开发前测试成为可能,并且有助于对与用户交互情况做出良好的理解,同时也能使产品说明更加紧凑。

微软的开发人员通常采用VB构造用户界面原型,对于构造计算机屏幕模型之类的工作,画笔(Paintbrush)也是一个很好用的工具。通过原型法可以使死板的说明变成有生命的文件。

C/S与B/S结构

管理信息系统平台模式大体上分为四种:主机终端模式、文件服务器模式、C/S模式和B/S模式。主机终端模式由于硬件选择有限,硬件投资得不到保证,已被逐步淘汰。而文件服务器模式只适用小规模的局域网,对于用户多、数据量大的情况就会产生网络瓶颈,特别是在互联网上不能满足用户要求。因此,现代企业管理信息系统平台模式应主要考虑C/S模式和B/S模式。

C/S结构

两层结构的C/S(Client/ Server)模式在上个世纪八九十年代得到大量的应用。C/S结构由两部分构成:前端是客户机,通常是PC;后端是服务器,运行数据库管理系统,提供数据库的查询和管理。

但两层的C/S结构存在以下几个局限:它是单一服务器且以局域网为中心的,所以难以扩展至大型企业广域网或Internet;受限于供应商;软、硬件的组合及集成能力有限;难以管理大量的客户机。

因此,三层C/S结构应运而生。三层结构的C/S模式是伴随着中间件技术的成熟而兴起的,核心思想是利用中间件将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次。三个层次的划分是从逻辑上来分的,具体的物理分法可以有多种形式。

三层C/S结构具有以下优点:具有灵活的硬件系统构成;提高程序的可维护性;利于变更和维护应用技术规范;进行严密的安全管理;越关键的应用,用户的识别和存取权限设定愈重要。

B/S结构

基于Web的B/S(Browser/ Server)方式其实也是一种客户机/服务器模式,只不过它的客户端是浏览器。

B/S结构中处于第一层的是客户端,处于第二层的是应用服务器,由一台或者多台服务器组成,该层具有良好的可扩充性,可以随着应用的需要增加服务器的数目。处于第三层的是数据层,由数据库系统和遗留系统组成。

B/S的优势在于:简化了客户端;简化了系统的开发和维护;用户操作变得更简单;适用于网上信息。

软件构件技术

所谓软件构件化,就是要让软件开发像机械制造工业一样,可以用各种标准和非标准的零件来进行组装。软件的构件化和集成技术的目标是:软件系统可以由不同厂商提供的,用不同语言开发的,在不同硬件平台上实现的软件构件,方便地、动态地集成。这些构件要求能互操作,它们可以放在本地的计算机上,也可以分布式地放置在网上异构环境下的不同结点上。

面向对象的方法和技术是继结构化方法之后出现的、最有代表性的软件开发方法,是当今软件开发的主流技术。但是,面向对象所提供的优点主要是针对分析、设计和源代码等软件开发阶段的,当一个面向对象的代码经过编译、连接后得到的可执行软件则是不可改变的、无法重用的。

因此,我们需要一种新的、不依赖于某种特定语言的、在二进制代码级可复用的软件“对象”,这种“对象”就是构件(Component)。

构件技术是一种软件实现的技术和方法,是对面向对象方法在二进制代码级的完善和补充。构件是由接口构成的,它把接口和接口的实现分离开了。接口是独立于语言的一种描述,它将内部的实现以及接口到实现的映射都封装起来了,外界只能通过接口描述使用构件。因此,接口用哪种语言实现也就无关紧要了。

在现有的软件市场上,有三种代表性的构件技术流派,它们分别是COM(Component Object Model,对象构件模型)、JavaBean和CORBA(the Common Object Request Broker Architecture,公共对象请求体系结构)。它们是由不同的机构提出的构件技术实现模型和标准,各有优缺点。

COM

COM是由Microsoft公司推出的构件接口标准,是软件构件相互通信的一种方式,它是一种二进制和网络标准,允许任意两个组件互相通信。目前已有大量的基于COM的构件可供复用,原则上讲,这些构件可以建立在任何环境下,但现有的COM构件大多都依赖于Microsoft环境,在Unix、Macintosh等其他操作系统环境下可复用的构件还很少,Microsoft公司正在努力开发更多的在其他操作系统环境下的COM构件。

传统的应用程序在源代码级可被分割为文件、模块、类或函数等,以便于实施、修改和维护,但经编译、链接以后就生成了不可改变的二进制可执行代码,采用COM技术产生的源代码则不同。

一个COM构件是由若干个接口组成的,而一个接口则是由若干个函数的说明组成的。COM是一个二进制标准,即接口编译以后生成的二进制代码的结构要满足一定的内存块结构。该内存块结构是不依赖于任何语言的。图1表示一个拥有Fun1和Fun2函数的IX接口的内存块结构。

其中,pIX是指向IX接口的指针,通过vtbl指针(接口指针)指向接口中函数的指针数组(称为v表),v表中的元素是指向接口中函数实现的指针。后面我们将会看到函数指针在用-存根机制实现进程间、计算机间的接口调用时指向相应的。

任何语言的语法成分,只要其编译后的目标代码在结构满足图1的二进制形式结构,就称其为该构件接口的一个实现。通常情况下,大多数程序设计语言和其COM支持工具都能将相应的语法自动地映射为这样的结构,无需程序员做更多的工作。

COM是一个二进制标准。由于任何语言都要翻译成二进制机器代码才能最后执行,所以COM可以作为各种高级语言的中间桥梁,使它们可以互操作;按COM标准实现的软件也可以被所有的语言环境所共享。共享人类开发的、丰富的软件资源是提出的COM的最初动机。

JavaBean

目前的COM技术主要是针对PC市场的不依赖于语言的软件构件技术,而JavaBean则是针对解决平台依赖性和语言依赖性这两个问题而提出来的软件构件技术标准。

关于平台依赖性问题是其他构件标准普遍存在的问题。尽管其他构件标准的接口是惟一的,即使用构件的方式是惟一的,但一个构件一旦在某种运行环境下实现就很难直接在另一种运行环境被复用。而这种平台依赖性问题对进一步提高软件复用力度却是至关重要的。

由于Java本身在全球软件界的影响,特别是Java独立于平台的、适宜于在Internet、易于构造B/S应用等等特点,Javasoft公司利用Java特殊的byteCode机制,很好地解决了其他构件标准难以解决的平台依赖性问题,推出了它们自己的构件接口标准JavaBean。正像JavaSoft所描述的JavaBean是“一次性编写,在任意地方可运行,在任意地方可重用”。

JavaBean的构件模型主要包括:构件和容器。模型的其他部分还包括事件处理、持续性、布局以及应用程序建立器(一种可视化的工具)等,这些都是通过JavaBean构件的标准接口实现的。

JavaBean构件有时也称为JavaBean或Bean。它是由接口构成的,接口是由方法组成的。容器能够使构件组合在一起并相互作用。这种机制主要是为了界面构件提出的,它本身也是一个构件,以便嵌套组合产生复杂的可视化GUI。JavaBean的主要特征为:

1. 属性管理

根据属性的使用类型可将其分为:一般属性、索引属性、依附属性和约束属性,通过一些标准的命名约定定义它们相应的访问方法,使JavaBean API能用统一的方式对属性进行管理。其中,依附属性是基于自身值的变化而向感兴趣的部分提供通知的属性。约束属性是一种在接收更改之前能使感兴趣的部分对新属性值执行有效检查的属性。

2. 内省功能

内省功能是构件的内部结构(属性、方法和事件)展现给外部的机制。不同于COM,JavaBean不需要构件开发者开发这种额外的工作,它只需要开发者对构件的属性、方法和事件的命名和类型符号遵守一个约定,通过标准的JavaBean API就可了解到bean的任何内部信息。

JavaBean的事件处理模型是基于现存的AWT事件处理模型的。它决定bean如何对它自身状态的变化做出反应,以及决定如何将这些变化传递给应用程序和其他bean。通过JavaBean API将一个事件接收器(处理某个事件的应用程序或其他bean)注册到该事件上,完成外部对事件的控制。这是将bean组合起来的有效方法。

Java与JavaBean的区别是:Java是在源代码级的复用;而JavaBean是在目标代码级的复用,并且,通过JavaBean提供的标准接口,为在目标代码级的动态组装、版本升级、维护提供保证,并可利用一些相应的可视化工具方便、有效地定制JavaBean和建立应用程序。

尽管JavaBean是作为一种通用的构件模型提出来的,但它更主要地还是为解决可视化构件而设计的一套系统,它类似于Microsoft的ActiveX。严格地讲,目前的JavaBean在不同语言之间提供的互操作性方面是很弱的,它只是提供了在Java环境下的二进制代码共享机制。增强JavaBean与其他构件技术之间的互操作是JavaBean今后发展的一个主要课题。

CORBA

CORBA是由OMG(对象管理组)1990年首次为了解决分布式、异质的软件和硬件环境下对象之间的互操作问题而提出的、基于中间件的构件技术。CORBA有两个重要的特点:面向对象技术与分布式计算的结合;机制的中间件技术。

1. 面向对象与分布式技术的结合

CORBA是为了解决分布式问题而提出的分布式对象计算模型。利用计算机网络进行分布式计算可以共享资源、平衡大型计算的负载等。但是,传统的分布式计算模型还不够成熟:客户/服务关系不灵活、远程服务层次太低、用户使用不透明。面向对象中的对象是一个相对独立的软件实体,它有自己的内部状态和清晰的对外接口。但传统的面向对象模型的实现,只能在单计算机上进行。CORBA将这两者有机地结合起来了。在CORBA中,对象是分布式计算模型中理想的节点描述模块,对象既可以是“客户”,也可以是“服务器”,它可自由地分布于计算机网络上。通过CORBA,对象可网络透明地相互访问,CORBA屏蔽了位置信息和计算机的软硬件环境,因此,CORBA建立了一个统一的分布式软件开发平台。

2. 机制的中间件――对象请求中介(Object Request Broker,简称ORB)

作为一种构件技术,CORBA要解决的另一个重要问题是二进制代码之间的互操作问题。

不同于COM/DCOM技术,CORBA提供了一种中间的机制,将构件的接口与构件的实现分离开了。服务对象实现后,就将其接口登记在CORBA的中,客户对象按照中的接口描述访问服务对象,而不关心服务对象使用什么语言、在什么地方、在什么软硬件环境下实现的。这些工作都由自动地、透明地为客户对象完成。这种机制还可提供客户与服务器之间动态匹配、一个服务器为多个客户服务等功能。

ORB提供的机制是良好的,也提供了足以使客户和服务器通信的服务,但这些服务是很低级的。用户要熟练地掌握它们不是一件容易的事情,而且这些繁锁的过程经常重复。因此,CORBA对经常使用的服务封装内部的细节,提供简化用户使用的、方便的、标准的对象服务。对象服务是CORBA非常重要的一部分,是对ORB功能的扩充和补充。CORBA提供的15种服务可分为三大类:分布式系统相关的服务,如命名服务、事件服务、安全和交易器服务;数据库相关的服务,如事务处理、属性、集合、关系、查询、持久性、外表化、并发等服务;一般服务,如生命期、计时、特许等服务。大多数应用都是在这些服务的基础上建立的。

公共设施是CORBA提供的另一种比对象服务更高一层的框架服务。它是特定应用领域的框架复用,如复合文档构件设施等。CORBA的公共设施还很少,还有大量的设施需要集成,如图形系统、移动等。

CORBA没有定义二进制代码的标准,而是在高层定义了一个标准的接口描述语言IDL,并通过扩展机制提供各种语言到IDL之间的映射,以IDL为中间的桥梁,达到各种语言之间的互操作。

三种构件模型的特点

COM是一种二进制标准的构件技术,它实现简单、实用,但要完成真正意义的、独立于硬件和操作系统的二进制标准,还有大量的工作要做。目前,COM还只是Microsoft环境下的二进制标准。

CORBA是一种以IDL为桥梁、基于ORB的中间件的构件技术。它是以IDL为标准的,与实现构件接口的语言、软件平台和硬件平台无关。但它却无法支持Internet上大量的移动计算的需求,一个构件的实现是与软硬件平台相关的,即一个构件的实现是不能在网上移动的。

JavaBean是一种能提供在网上移动的构件技术,它通过bytecode技术,提供在“任何地方运行,任何地方重用”的功能,但它却是与语言相关的。

从软件体系结构的角度看,构件技术中的构件只是提供一个软件模块的实现,作为一个软件系统,它还需要连接子(connector)将软件模块组织成一个整体。有各种各样组织软件模块的形式:管道和过滤器、层次、基于事件的隐式调用等等。管道和过滤器模型最容易实现软件模块的集成,但只能处理简单的、流式的应用,没有普遍性。层次模型可提供不同级别的抽象,但层与层之间存在着紧密的耦合,而且,这种模型也没有普遍性。基于事件的隐式调用的方式是,构件向系统发出请求,已经向系统注册响应该事件的构件就响应该事件。这种模型将调用者和被调用者彻底地分开,这种软件体系结构模型具有很强的灵活性,也具有通用性。

构件技术的初衷是为了能充分地利用在各种环境下,用各种程序设计语言开发的软件模块而提出的一种二进制代码级的软件复用技术。通过接口这种不依赖于具体语言的中性机制,使各种语言之间可以互操作,也就是说一种语言可通过接口访问另一种语言开发的软件,而不需要移植工作,这大大地提高了软件的复用程度。

软件复用技术

软件复用就是将已有的软件成分用于构造新的软件系统。可以被复用的软件成分一般称作可复用构件,无论对可复用构件原封不动地使用还是作适当的修改后再使用,只要是用来构造新软件,则都可称作复用。软件复用不仅仅是对程序的复用,它还包括对软件生产过程中任何活动所产生的制成品的复用。但如果是在一个系统中多次使用一个相同的软件成分,则不称作复用,而称作共享;对一个软件进行修改,使它运行于新的软硬件平台也不称作复用,而称作软件移值。

软件复用级别

未来最有可能产生显著效益的复用是对软件生命周期中一些主要开发阶段的软件制品的复用,按抽象程度的高低,可以划分为如下的复用级别:

1.代码的复用

包括目标代码和源代码的复用。其中目标代码的复用级别最低,历史也最久,当前大部分编程语言的运行支持系统都提供了连接(Link)、绑定(Binding)等功能来支持这种复用。源代码的复用级别略高于目标代码的复用,程序员在编程时把一些想复用的代码段复制到自己的程序中,但这样往往会产生一些新旧代码不匹配的错误。想大规模实现源程序的复用只有依靠含有大量可复用构件的构件库。如“对象链接及嵌入”(OLE)技术,既支持在源程序级定义构件并用以构造新的系统,又使这些构件在目标代码的级别上仍然是一些独立的可复用构件,能够在运行时被灵活地重新组合为各种不同的应用。

2.设计的复用

设计结果比源程序的抽象级别更高,因此它的复用受实现环境的影响较少,从而使可复用构件被复用的机会更多,并且所需的修改更少。这种复用有三种途径:第一种途径是从现有系统的设计结果中提取一些可复用的设计构件,并把这些构件应用于新系统的设计;第二种途径是把一个现有系统的全部设计文档在新的软硬件平台上重新实现,也就是把一个设计运用于多个具体的实现;第三种途径是独立于任何具体的应用,有计划地开发一些可复用的设计构件。

3.分析的复用

这是比设计结果更高级别的复用,可复用的分析构件是针对问题域的某些事物或某些问题的抽象程度更高的解法,受设计技术及实现条件的影响很少,所以可复用的机会更大。复用的途径也有三种,即从现有系统的分析结果中提取可复用构件用于新系统的分析;用一份完整的分析文档作输入产生针对不同软硬件平台和其他实现条件的多项设计;独立于具体应用,专门开发一些可复用的分析构件。

4.测试信息的复用

主要包括测试用例的复用和测试过程信息的复用。前者是把一个软件的测试用例在新的软件测试中使用,或者在软件作出修改时在新的一轮测试中使用。后者是在测试过程中通过软件工具自动地记录测试的过程信息,包括测试员的每一个操作、输入参数、测试用例及运行环境等一切信息。这种复用的级别不便和分析、设计、编程的复用级别作准确的比较,因为被复用的不是同一事物的不同抽象层次,而是另一种信息,但从这些信息的形态看,大体处于与程序代码相当的级别。

由于软件生产过程主要是正向过程,即大部分软件的生产过程是使软件产品从抽象级别较高的形态向抽象级别较低的形态演化,所以较高级别的复用容易带动较低级别的复用,因而复用的级别越高,可得到的回报也越大,因此分析结果和设计结果在目前很受重视。用户可购买生产商的分析件和设计件,自己设计或编程,掌握系统的剪裁、扩充、维护、演化等活动。

软件复用的困难

软件复用各方面的困难,无论是技术问题还是非技术问题,都影响着软件复用的广泛实行。

首先构件与应用系统之间的存在差异。一些开发者开发的构件,要做到在被另一些人开发的系统中使用时正好合适,从内容到对外接口都恰好相符,或者作很少的修改,这不是一件简单的事。

其次构件要达到一定的数量,才能支持有效的复用,而大量构件的获得需要有很高的投入和长期的积累;当构件达到较大的数量时,使用者要从中找到一个自己想要的构件,并断定它确实是自己需要的,也不是一件轻而易举的事;基于复用的软件开发方法和软件过程是一个新的研究实践领域,需要一些新的理论、技术及支持环境,目前这方面的研究成果和实践经验都不够充分。

最后,人的因素、管理因素、教育因素、法律因素等等都使软件的复用更为困难。

面向对象方法对软件复用的支持

支持软件复用是人们对面向对象方法寄托的主要希望之一,也是这种方法受到广泛重视的主要原因之一。面向对象方法之所以特别有利于软件复用,是由于它的主要概念及原则与软件复用的要求十分吻合。

面向对象方法从面向对象的编程发展到面向对象的分析与设计,使这种方法支持软件复用的固有特征能够从软件生命周期的前期阶段开始发挥作用,从而使面向对象方法对软件复用的支持达到了较高的级别。与其他软件工程方法相比,面向对象方法的一个重要优点是,它可以在整个软件生命周期达到概念、原则、术语及表示法的高度一致。这种一致性使得各个系统成分尽管在不同的开发与演化阶段有不同的形态,但可具有贯穿整个软件生命周期的良好映射。这一优点使面向对象方法不但能在各个级别支持软件复用,而且能对各个级别的复用形成统一的、高效的支持,达到良好的全局效果。做到这一点的必要条件是,从面向对象软件开发的前期阶段――面向对象分析就把支持软件复用作为一个重点问题来考虑。运用面向对象分析方法所定义的对象类具有适合作为可复用构件的许多特征,面向对象分析结果对问题域的良好映射,使同类系统的开发者容易从问题出发,在已有的面向对象分析结果中发现不同粒度的可复用构件。

复用技术对面向对象方法的支持

面向对象的软件开发和软件复用之间的关系是相辅相成的。一方面,面向对象方法的基本概念、原则与技术提供了实现软件复用的有利条件;另一方面,软件复用技术也对面向对象的软件开发提供了有力的支持。

1.类库

在面向对象的软件开发中,类库是实现对象类复用的基本条件。人们己经开发了许多基于各种OOPL的编程类库,有力地支持了源程序级的软件复用,但要在更高的级别上实现软件复用,仅有编程类库是不够的。实现面向对象分析结果和面向对象设计结果的复用,必须有分析类库和设计类库的支持。为了更好地支持多个级别的软件复用,可以在面向对象分析类库、面向对象设计类库和面向对象编程类库之间建立各个类在不同开发阶段的对应与演化关系。即建立一种线索,表明每个面向对象分析的类对应着哪个(或哪些)面向对象设计类,以及每个面向对象设计类对应着各种面向对象编程语言类库中的哪个面向对象编程类。

2.构件库

类库可以看作一种特殊的可复用构件库,它为在面向对象的软件开发中实现软件复用提供了一种基本的支持。但类库只能存储和管理以类为单位的可复用构件,不能保存其他形式的构件;但是它可以更多地保持类构件之间的结构与连接关系。构件库中的可复用构件,既可以是类,也可以是其他系统单位;其组织方式,可以不考虑对象类特有的各种关系,只按一般的构件描述、分类及检索方法进行组织。在面向对象的软件开发中,可以提炼比对象类粒度更大的可复用构件,例如把某些结构或某些主题作为可复用构件;也可以提炼其他形式的构件,例如use case 或交互图。这些构件库中,构件的形式及内容比类库更丰富,可为面向对象的软件开发担供更强的支持。

3.工具

软件开发技术篇2

信息技术在迅速的发展,加快了软件应用到不同的领域,那么该产品在市场上的优劣就成了一个需要重点关注的,因此对软件进行检测也必须相应的进行。在现在的社会中,不管是开发商还是使用者,对于软件的质量上的要求都必须加强,这是现在市场上竞争激烈所形成的。因为不管是谁肯定都希望自己使用的软件的质量很好,而且可以避免因为使用劣质软件经常出现事故和减少维护费用。

1 软件检测在市场上的重要性

对全部信息学科的工件都需要进行测试,那样对于软件开发有很大的作用。这是因为软件进行程序设计开始就是要严格的控制其的安全性和稳定性,所以对其进行测试是必要的。据统计得知,在定性的软件开发时,对软件进行检测超过开发工作量的百分之四十,而且占在进行投资时的总成本的百分之三十到一半,况且对其进行维护投入人力和物力还要增加,这就说明该软件测试在软件开发时占的比重很大。

2 测试的目的及原则

软件测试的目的就是发现,就是模拟某种状态来运行程序的过程,在此过程中发现缺陷,当然这里所讲的“模拟某种状态”就是测试用例,评价一个测试用例的优劣在于它能否发现至今未发现的缺陷,以及发现至今未发现的缺陷的多少。测试的结果说明缺陷的存在,而不能证明被测软件(系统)没有缺陷,也就是说对于一个复杂的被测软件(系统)来说,无论采取什么测试手段和测试用例都不能证明这个系统没有缺陷,完美无缺,因此测试的原则就是以最少代价(时间和费用),检测出隐藏在软件内的各种隐患(缺陷)甚至错误,更不能无休止地检测。

3 关于软件测试的团队

(1)测试团队由测试人员和管理人员(支持人员)组成,也可以将这两部分人分为两组---测试小组和管理小组,分别由各个小组的组长负全责,测试小组一般根据测试项目的需要临时组建的,其生命周期比较短,在测评期间,测试组长是测试团队与项目组的唯一联络接口,负责测试人员的工作安排、工作检查、进度管理等一切与测试有关的技术工作管理。支持小组则是一个比较稳定的部门,一般是一个常设机构,负责向测试小组提供后勤服务保障和一些日常的管理事务;(2)软件测试人员一般要对软件开发有一定的了解,具有系统分析的能力,并要全面了解系统,这对于编写用例具有重要的作用,开软件开发的过程中,开发人员一般只负责自己的那个模块范围,根据输入条件、输出要求进行编写自己的软件,而测试人员是对整个系统进行测试,因此要求测试人员对整个被测试系统有一个很高把控,甚至会比程序开发人员要求的更高。其实在一些规范的公司测试人员从软件开发的初期都以质量保证人员的身份参与到软件的文档的审核、代码检查、科等工作中,可测试性需求、测试用例的开发等等。因此,对于一名合格的测试人员来讲,首先要看懂代码、了解软件开发整个过程,毕竟测试的目的是发现缺陷,与开发是密切相关的。软件可以通过测试来发现缺陷,并更改错误来提高软件的质量。当然我们也要明白高质量的软件是编出来的、开发出来的而不是测试出来的,测试只是提高质量的一个辅助手段。

4 如何进行检测

想要进行检测,就必须先了解测试时所需要进行的程序。其中包括:(1)要事先制定策划,那么就要对所需要操作的事项进行合理的分配,并且整理好所需要的测试系统;(2)将大的事项计划好后,那就要对其进行合理的设计,那么就要对测试所要的数据和过程设计完善;(3)具体操作过程,对测试用例完成自动化脚本和员工手工实施的环节;(4)就是实际操作过程;(5)对已经操作完的测试工程和得到的数据进行处理,并且作出适当的分析;(6)将最后的结果经过检验后确认其的价值是否重要,再根据其重要性进行适当的管理。

5 检测时会出现的问题

(1)在软件检测的领域中,因为传统的技术在不断的更新,使得人们错误的以为新的科学技术可以解决很好的解决出现的任何问题。但是实际上,如果管理的人没有很好的预期和从实际状况出发,那就很容易导致最初的期望难以实现;(2)任何新的软件测试刚刚进行开发是必然会出现很多问题,那么就需要对其进行适当的修改才能满足要求。但是很多时候想要将软件的编程代码进行更改会很容易影响到该软件的其他部分,因此这就需要很多投入;(3)在有的时候用测试软件是未发现缺陷,但是这不是代表软件很正常,也有可能是因为检测时刚好被漏过或者是进行检测的软件本身就有问题。所以要多留心检测时所用的软件和得到的结果,这样才能最大限度的减少错误;(4)技术上出现的漏子。现在很多地方都在使用软件,但是就是因为随着信息技术的发展过于迅速,给软件测试带来巨大的挑战性。因为该软件要与其它软件之间的互动性要加强,还有就是批量生产的巨大和难以操作性,使得厂商难以很好的适应并且随步而行。

6 现代的新软件检测工序

6.1 黑盒检测

这也可以称为利用软件的功能或者是数据情况进行测试的方法,这就要求要知道产品的所有功能,经过检测来确定这些功能的可行性。那么软件检测就是将那些程序当成一个密封的黑盒子,进行检测的人员在接口处进行测试,但是它只是检查那些程序有没有达到原本设计的要求,还有就是输入的数据能否很好的接收和进行处理后的信息完整性。并且它只是关注与程序外部的结构,不关注内部的具体情况,重点是看软件界面和软件在使用时的具体功能。

6.2 白盒检测

这也可以被称之为结构检测和逻辑驱动上的检测,这就要求要先知道产品的内部构造,经过检测来具体了解产品有没有按照制定的程序运行。它的主要方式有逻辑驱动、基本路线的检测等,这就要将所有的路线都测试,用于软件检验证明其实用性。

(1)软件如果有说明书,那就只需要对说明书上所说的去进行检测和合理的分析。并且要认真审查说明书上的内容是否正确或者是符合标准;(2)因为现在很多软件的开发速度过快,造成对其适当的进行说明软件的情况比较差,就必须采用试探性的检测,通过事先的预设条件进行设计过程,一个步骤一个步骤的将软件的功能了解清楚;(3)对一些软件可以先建立一个状态的结构图,采取最好的方式清楚的将其成立的程序状态描叙,把实际输入和输出所需要的数据情况 和条件进行细化。假设该软件过大和复杂,那么软件测试时就需要很多人的帮忙,不一定要将其状态结构图完整的描绘,选择一些大体的方向就可以了。

7 结束语

我们之所以要进行软件测试不只是说找出软件的缺陷,而是要通过找到的不足之处进行合理的统计再来帮助现在开发软件人员,也是为了在更快的基础上将软件尽可能的优质化。同时也可以对一些典型性的问题在很有对策的情况下很快的解决。也可以改良软件测试的程序设置,给技术变革带来可行性的基础。鉴于本人对软件开发以及检测的实际了解不多,那么对于其实际应用了解更加少,所以只能从部分情况进行探讨。

参考文献:

[1]张炯.软件测试用例设计方法研究[J].计算机光盘软件与应用,2012(21):211-212.

软件开发技术篇3

【关键词】软件工程技术 系统软件开发 应用

随着计算机技术的快速发展,计算机在生产生活中广泛应用,很大程度上提高了生产生活效率。计算机系统软件是计算机软件系统的核心,其有着自身的逻辑语言和算法,为计算机使用者提供了方便,提高了信息技术的智能化。通过将软件工程技术应用于计算机系统软件开发,可以提高系统软件的质量和水平,满足人们日益多样化和专业化的需求。对软件工程技术在系统软件开发中应用进行探究,可以促进系统软件科学高效发展。

1 传统软件应用程序与软件开发分析

传统软件应用程序与软件开发不能适应新形势下软件工程技术的发展,通过对传统软件应用程序和软件开发的分析,可以为软件工程技术在系统软件开发中的应用做准备,更好地应用软件工程技术进行系统软件开发。

1.1 传统软件应用程序开发工程分析

传统软件在进行开发时,常常需要提前进行建模,根据软件的实际需要和运行环境,根据软件开发理论,对软件开发模型进行重复设计,逐步提高软件模型的质量,最终形成生存期模型。生存期模型又可以产生演化型、螺旋型和增量型等形式。在软件开发中,这些软件开发模型在实际开发中都存在各种不足。譬如,演化型模型可以实现软件开发流程的优化和调整,对软件应用程序进行高效管理,从而提高了软件开发的质量,软件开发中某一环节出现错误,就可能造成整个软件开发流程出现紊乱,对整个程序的稳定性造成影响。随着互联网技术的发展,互联网技术日益成熟,为了满足经济社会的需要,软件开发企业不断进行软件开发优化,软件开发管理流程越来越科学,很大程度上适应了经济社会发展的需要。但是传统的软件开发模式弊端越来越多,这就需要软件开发企业在软件开发过程中不断进行新的软件开发模式探索,提高软件开发效益。

1.2 软件应用系统分析

软件开发是个系统工程,传统的软件开发周期长,程序复杂,软件更新换代速度较慢,难于适应经济社会发展的需求。系统软件开发可以以软件作为架构的基础,高效地实现数据处理,通过页面进行展示,是一种新的软件开发模式,可以根据不同使用者的需求,使用相关技术对软件功能进行科学整合,从而提高软件开发速度,更加简洁地设计程序,软件的实用性更高。

2 系统软件工程技术在系统软件开发运用中应遵循的原则

2.1 科学性原则

系统软件工程技术要在科学性的原则下进行开发,使用专业技能和开发流程,才能保证系统软件开发满足实际需求。以科学手段和科学理念为指导,才能保证系统软件开发科学高效,这也是对企业软件开发管理和工作人员专业素质的考验。

2.2 实用性原则

系统软件开发的目的是对经济社会发展服务,提高生产生活的效率。系统软件开发需要需要大量资金,因此系统软件开发必须遵循实用性原则,降低系统软件开发的成本,减少资金的投入,提高系统软件开发效益。实用性原则可以促使软件开发企业健康发展,提高企业运行效益。

3 软件工程技术在系统软件开发过程中运用的途径与方法

通过对传统软件开发模式的分析,借鉴参考软件开发模式的弊端,通过科学原则的指导,采取多种形式,科学高效地在系统开发中应用软件工程技术。

3.1 件开发模型的科学构建

传统软件开发和软件应用系统的设计与开发有着很大的区别,为了提高软件工程技术在系统软件开发中的效率,就需要通过科学的手段进行开发模式构建。在对系统软件应用程序科学分析之后,对开发周期、开发流程、开发重点进行大致估算,在此基础上进行软件开发模式构建,才能保证模型的有效性。同时还需要对项目管理模式和组织模式进行设计,通过制度保证软件开发的质量,及时对软件开发模式中的差错进行纠正,保证了软件开发按照计划进行。

3.2 软件应用程序的开发

软件应用程序开发常常与系统软件的升级紧密联系,在对软件的性能和潜在发展方向进行预测的基础上对软件进行迭代升级,软件应用程序包括了软件开发的各个方面。为了提高软件应用程序开发的作用,需要根据软件使用者的需求,相关技术人员对数据参数进行多方位分析,不断发现软件中存在的问题,明确软件程序设计的重点、需求及要实现的性能。软件程序开发最终要实现的目的是实现客户的需求,因此在进行软件开发设计时,要根据客户的需求,对用户的使用习惯进行全面的了解,对重要资讯和核心内容进行合理安排,对用户界面不断进行优化。提高用户的审美体验,在科学原则下提高用户对软件的黏度,提高软件开发的效益。

3.3 软件工程管理的有效运用

随着计算机硬件的不断升级,依托硬件性能的提升,可以不断提高软件工程管理的效率,提高软件的质量。软件工程管理是提高软件质量的关键,通过合理的管理手段,在软件设计过程中进行管理,可以很大程度上提高软件的性能,提高软件开发技术的效益。通过对软件开发技术的不断完善和调整,可以促进软件工程管理水平的提升,使软件更加实用。

参考文献

[1]张帆,沈孙园.浅谈数据挖掘技术在软件工程中的应用[J].电脑知识与技术,2009(08):1879-1881.

[2]王薇.软件工程思想在管理信息系统开发中的运用[J].电子技术与软件工程,2015(11):71-72.

[3]迟江波,殷玮.浅谈软件工程在教学软件开发中的应用[J].中小企业管理与科技(上旬刊),2009(09):171-172.

[4]黄志球,徐丙凤,阚双龙,胡军,陈哲.嵌入式机载软件安全性分析标准、方法及工具研究综述[J].软件学报,2014(02):200-218.

[5]荣国平,刘天宇,谢明娟,陈婕妤,张贺,陈道蓄.嵌入式系统开发中敏捷方法的应用研究综述[J].软件学报,2014(02):267-283.

[6]徐恭旭.软构件技术在软件工程教学上的应用探索[J].智能计算机与应用,2013(01):79-80+83.

作者单位

软件开发技术篇4

关键词:计算机软件技术;植保应用;软件开发

中图分类号:tp311.52 文献标识码:A 文章编号:1671-2064(2017)01-0041-01

随着科学技术的不断发展,尤其是现代计算机软件技术应用,正在影响着我们生活的方方面面,我国的信息化建设也达到了前所未有的高度,对于计算机软件技术的应用也在不断的发展和探索中。作为新型的计算机软件技术应用,植保计算机软件应用也得到了一定程度的发展和利用。在植保计算机技术应用中,我国的植保部门正在大力的对项技术进行配备,在硬件方面已经做出了最大的投入,而与之相比的软件开发和应用的缺乏,正成为了严重影响植保计算机技术应用的阻碍因素。因此,提高植保软件的开发和应用水平是目前,植保计算机技术应用的首要关键问题。本文以中国农业大学植保信息与软件实验室的多年实验经验和数据对植保应用软件开发的相关技术问题进行了分析和探讨。

植保应用软件的开发是以软件工程开发理论为基础,以计算机软件应用发展为趋势,来有效的把握和结合好相关的软件开发工具和方法,同时植保软件开发人员不断的学习相关植保应用技术和提高软件开发水平,开发出具有高水平和实用性的植保计算机应用软件系统。

1 以软件工程为理论

通常一个软件的生存周期大致有六个阶段;软件的初期计划―软件的需求分析阶段―软件的设计阶段―软件的编码阶段―软件应用的测试阶段―软件的后期维护阶段,在这六各时期还可以细分下去,各个阶段的不同划分方法又构成了不同的生存周期模型,这也叫软件开发模型。在其发展过程中,衍生出了各种的开发模型,如快速模型法和瀑布模型法等等。

而植保应用软件系统的开发与普通的软件开发周期一样。因此,在进行植保软件系统开发时,需要以软件工程学的理论为基础进行相关的开发,主要原因是;能有效的缩短开发周期并且具备相当的开发基础理论和经验,有相对成熟的方法和工具,也能更好的进行维护。我们子啊研究近几年较为优秀的植保软件中可以发现,这些植保软件都是参考和植入了软件工程的基础思想,如黄淮海地区的麦蚜预测系统,就是以软件工程的理论为基础进行了系统的设计,子啊以快速模型法进行开发。

2 开发平台选择

在植保软件的开发中,首先需要选择开发平台,在选择开发平台时要充分的考虑其实用性、扩展性、维护性、适配性以及性价比等等因素。目前较流行和应用最广泛的当然要属微软的windows操作系统,由于其简洁的界面、成熟的系统以及易于操作等因素是目前最受欢迎的系统开发平台。黄淮海地区的麦蚜预报系统也是基于windows操作系统来进行开发的,选择好的开发平台,对于植保软件未来的发展方向和后期维护等等方面都有着更好的便利性和适用性等。

3 开发方法的选择

在对软件进行了需求分析以及设计后,选择对于系统适应的开发方法是相当重要的。开发的方法和途径大致的分为了两大类;

开发人员通过使用Borland C+ +、BASIC、Delphi等计算机语言进行编程。这种开发方法的优点在于,在后期的使用中,扩展性较大,功能性高、并且方法灵活能满足后期的各种功能性需求等。但是其缺点就是开发周期较长、开发成本较高并且后期的维护费用也相对较高,对开发人员的开发水平等要求也较高。

除了上述开发方式,我们还可以通过现有的开发工具如Authorware等来完成。开发人员只需后期对相关的剧本、动画、卡片等进行修改即可,在开发成本和周期上都相对较短。但是缺点就是后期扩展性较低,系统的功能限制较多,无法灵活应用等。

因此,我们需要更具本身的实际情况和软件的需求分析等来进行综合的考量,做出最优的开发方法选择。

4 开发工具的选择

当选定了开发方法之后,我们就需要选择相应的开发工具来进行开发。对于开发工具的选择,首先需要根据开发平台来确定初步的范畴,其次要考虑到开发工具的易用性、可扩展性、以及软件本身的未来技术应用和发展方向等来进行选择。对于植保软件开发来说,首先应该选择可视化的开发工具。可视化的开发工具现在已经发展的极为普遍,并且其功能性越来越强,在黄淮海地区的麦蚜预测系统中,也是选择了以Borland Delphi Client为主要的开发工具,主要是因为,Delphi在中控件和其模版使用中编写十分的方便,能大大的提高开发效率,并且其运行速度相对较快,而且在桌面型数据库开发的应用可以让远程的SQL所接受即使在数据来源更改之后都无需对用户界面做出修改。同时在数据库的操作方面不需要运用第三方的工具,能够直接在Delphi集成的环境下进行操作。

5 开发人员的组成

由于近年来可视化工具的快速发展,已经大大的降低了软件系统开发的难度,因此,越来越多非计算机专业的人员也都可以参与到计算机软件应用的开发当中。所以不是计算机专业领域的人员如植保专业的人员和专家也可以参与到软件应用的开发当中。以中国农业大学植保信息与软件实验室十几年的经验来看,已经形成了以植保专家为核心的植保软件开发队伍,当然这些植保领域的专家本身也已经具备了一定的软件工程的理论知识和软件设计方面的知识。因此,对于植保软件的开发应是以植保专业领域为重点,把植保专业领域的知识充分的融入到植保软件开发当中,而不是一味的把重心放在软件的代码编程上。因此,未来软件开发领域的专家应是多个领域融为一体的。

6 结语

植保软件应用系统的开发也已经经过了十几年的发展,特别是近几年随着计算机信息技术的快速发展更是得到了质的飞跃。植保软件的大量应用,有效的提高了农业的生产和虫害等方面的控制工作。槲夜的农业现代化发展做出了重要的贡献,也带来极大的经济和社会效益。

参考文献:

[1]高灵旺,沈佐锐,李志红.计算机软件技术在植保软件开发中的应用[J].农业工程学报,2000,02:32-35.

[2]王家鑫,赵宇.计算机软件技术在植保软件开发中的应用研究[J].电子技术与软件工程,2016,12:86.

软件开发技术篇5

1中小型软件企业的特点

中小型软件企业的规模一般在50人以下,人员流动性比较大,未明确员工职责,企业资金少;组织结构及管理比较松散,缺乏合作,各部门间交流少;对管理不够重视,企业内部缺少专业管理人才,多凭以往的经验实施管理工作;这些因素导致中小型软件企业不容易形成专业的软件开发队伍。我国的中小型软件企业起步较晚,发展尚不成熟,加上高端软件被国内的大企业或国外企业垄断,中小型软件企业大多只能从事低端软件的开发,且将企业在市场经济中的生存看成目前的首要问题,因此这些企业的重心多放在赚取利润上面。

2中小型企业计算机软件开发技术的现状与发展

计算机的发展在生活、学习、工作等方面都为人们提供了便利,促进了人们生活水平的提高。相反的,不断提高的社会生活水平要求计算机不断进步;计算机软件技术作为计算机技术的重要内容之一,越发受到人们关注。我国越来越多的人才参与到计算机软件技术的开发工作中,促进了IT行业在国内的发展。

2.1软件开发方法

目前我国中小型软件企业运用的软件技术开发方式主要有三种。一是生命周期法。这种软件开发方法较为传统,需要对软件的方方面面进行拆分,工作量大,且要求高。软件开发工作人员要对用户的需求信息进行了解,加以整合利用,以此来定义、说明软件的生命周期;并对软件开发过程中的每一个阶段进行标准控制,从而有计划地完成软件的开发工作。二是建造原型化的软件。这种方法对开发人员与用户间的交流有一定的要求;负责开发的工作人员在无法获得用户对软件的需求信息时,通过这种方法,在拥有原型化的系统的基础之上做初步的设计,再在获取相关信息后对软件进行改进和完善。三是自动形式系统开发法。这种开发方式需要用户对所要开发软件的内容和目标提出明确的要求,而后由开发人员自动地完成系统编码设计,这需要开发人员加强与用户的沟通。自动形式系统开发的效率高于前两者,也降低了开发人员的工作难度,因此被广泛运用到当下的软件开发中。

2.2软件技术开发中的问题

2.2.1缺少核心技术支撑虽然目前中小型软件企业的计算机软件开发技术已经有了一些进步,但存在缺少核心技术支撑的问题。我国的软件开发技术发展比国外落后,国外的软件开发技术已趋向成熟,占据了国内广阔的市场;中小型软件企业由于资金、经验及技术上的不足,又急求生存,因此急功近利,一味模仿国外的产品进行开发。这对于在起步阶段的企业来说无可厚非,但长期如此,企业的产品缺乏创意,又难以超越模仿对象,竞争力只会逐渐下降,影响到公司的发展。2.2.2缺乏专业人才队伍中小型软件企业不仅缺乏核心技术,还缺乏专业的软件开发人才和队伍,因此这些企业的产品长期在低端行列徘徊,且质量较差。中小型软件企业平常疏于管理,过分重视技术,没有配备专业的管理人才;再加上内部人员流动性大,软件开发队伍构成不稳定,缺少默契与融合;且开发部门之间很少进行技术上的交流与合作,不利于企业整体技术水平的提高,缺少员工合作的力量,技术上也难有突破。2.2.3与用户交流不足IT行业竞争十分激烈,软件企业如果要设计出符合市场要求的高品质的软件,还需要多与用户互动,听取用户的意见和建议,再由这些专业人才来改善企业的软件产品。但是中小型软件企业将企业的生存作为主要工作目标和动力的做法,给企业的发展带来了一定的影响。虽然生存问题对任何一个企业来说都是十分重要的,但是也因为这样,中小企业往往忽视了其他方面的发展。由于实力较弱,中小型软件企业在发展时无法同大企业一样游刃有余地兼顾各个方面,而是将利益作为最主要目标,忽略与用户之间的交流,这对企业的长期发展相当不利,因为软件企业对用户具有很强的依赖性。

2.3软件开发技术发展

当下计算机软件的开发呈现出了网络化、开放化、智能化和服务化的发展趋势。随着网络在日常生活中的普及和发展,网络用户大幅增加,世界各地间的联系日益密切,这对于软件企业来说是一个良机。各类软件企业可以利用互联网挖掘更多的潜在客户,在国内市场站稳脚跟,并进军海外市场。产品市场的扩大能够推动软件的开发和软件开发技术的发展,中小型软件也在借助这一机会争取着更多的用户。在开发过程中,多数企业不再对其软件开发技术进行严格的保密,而是会公开源代码等相关的技术信息,促成各企业开发人员之间的交流。开发人员可互相学习,完善各自企业的软件开发技术;中小型软件企业自主开发软件的实力较弱,借此良机多加学企业的计算机软件开发技术,能在很大程度上提升企业的实力水平,为日后企业的自主创新奠定坚实的基础。人工智能自诞生以来获得了一定的发展,且被广泛运用到现实生活中,与人类的社会活动息息相关;人工智能和计算机行业的关系十分密切,是计算机科学的分支,因此深受计算机发展的影响。计算机软件的开发工作可以促进计算机的进步,因此得以扩展到人工智能的领域,呈现出软件开发智能化的特点。此外当前的软件开发有别于传统的开发模式,以往的开发工作是以软件企业开发人员的设想与计划为主导的,与用户的联系相对较弱,很大程度上受到了用户的影响。软件开发人员在开发软件前,会对用户的需求进行一定的了解,甚至会根据用户提出的明确要求来开展开发工作,致使软件开发呈现出对用户依赖性增强、建立在用户实际需求之上的趋势。

3解决中小型软件企业软件开发中问题的对策

3.1加强对核心技术的研发

3.1.1增强企业创造性中小型软件企业在获得比较稳定的发展之后,就要开始考虑独立地进行软件的开发,不能长期依赖其他企业的技术。中小型软件企业的发展整体上比较被动,影响企业发展的因素颇多,企业又没有能力解决,依赖性太强,容易受到其他企业的牵制,使企业无法提高竞争力,缺少自主品牌;而且产品缺乏新意也容易造成用户的流失。企业应该改变固有的思维模式,减少跟风开发,通过自行开发其他新软件培养企业的创造性。当然,因为中小型软件企业的实力有限,所以不必勉强进行高端产品的开发,可以从低端做起,量力而行;但开发的软件要切合市场的需求,避免产品开发出来后无消费市场。此外,要严格控制产品的质量,因为质量是产品长期吸引顾客的重要因素之一。3.1.2加大技术研发力度软件开发技术具有开发复杂,使用价值高的特点,如果中小型软件企业要在技术上有所成就,就应该在企业生存问题的到保障的情况下合理增加研发软件开发技术的投资,这个投资不止是时间、金钱和精力上的投资,还有人才上的引进。中小型企业还应把握住各企业间技术交流的契机,认真学习并积累经验,提升企业整体水平,在此基础上进行企业独立的技术研发,使企业的发展拥有技术上的保证,减轻企业的依赖性。

3.2加强开发队伍建设

中小型软件企业缺乏专业的软件开发队伍,因此有必要在企业所能承担的范围内尽可能地吸纳人才,并给这些专业人才合理的待遇,避免人才流失;运用专业管理人才加强对企业的管理,明确员工的职责,适当为员工提供培训机会;促进企业各部门间的磨合,加强技术上的交流与合作,培养团队意识,增强公司内部的凝聚力,建立一支强有力的、结构稳定的软件开发队伍。

3.3加强与用户间的互动

积极与用户交流,企业可申请公众号,或在官网上设置与用户对话的版块,安排专门工作人员通过这些方式与用户互动,也可采取问卷调查等调查方法,主动的和用户构建联系,吸取更多意见和建议,为软件的开发和改进提供依据。

4结语

中小型软件企业的实力虽不比大型软件企业,在计算机软件开发技术方面也存在着缺陷,还有待改进,但也对我国IT行业的发展起着重要的推动作用,拥有不小的发展潜力,是我国经济的重要组成部分之一。要使IT行业获得平稳的发展,就应该对这些企业持包容的态度,并给予足够的重视。

软件开发技术篇6

关键词:毕业设计;敏捷软件开发;极限编程;软件质量

0 引言

毕业设计是本科教学中非常重要的一个教学环节,是对学生所学知识的检验和总结,是培养学生独立分析和解决问题能力的重要手段,也是学生进入工作岗位前的最后一次实战演习;并且,它是本科教学水平评估指标体系的重要指标之一,是考核学校本科教学水平和质量的重要内容。

软件开发是计算机专业毕业设计中一个重要组成部分。学生开发的软件质量直接反映出毕业设计质量,而指导教师的指导和监控对学生开发软件的质量高低有很大影响。本文首先介绍了软件类毕业设计的特点、遇到的问题及其原因分析,然后将敏捷软件开发技术应用于指导和监控软件类毕业设计,最后通过具体的实践对其进行总结。

1 目前状况及问题

1.1 软件开发类毕业设计的特点

本科计算机专业毕业设计中,软件开发占很大比重。而软件开发类毕业设计与其他专业的毕业设计以及商业化软件开发又有很大不同,主要体现在:

(1)设计的最终目的是要生成可运行的、实现一定功能的、错误率较低的实际软件产品,而不仅仅是提交一份文档报告。

(2)设计小组成员分工合作,要将各人的成果整合,形成完整的软件;小组每个成员不是完全孤立的,每个人的工作都与其他人息息相关。

(3)项目小组一般只包括一个人或几个人,人数较少,远少于一般商业化软件开发项目小组的人数。

(4)小组成员没有足够的团队意识,没有足够的软件工程经验,一般没有作为一个团队的成员共同开发过软件产品。

(5)项目开发过程不完全,编码的结束即意味着项目的结束。项目不要求有完整的工程化的分析和设计文档。

(6)有些软件开发没有与商业项目挂钩,也就没有真实客户的需求对其进行功能和性能上的监控。

1.2 遇到的问题及原因分析

根据上面的特点可以看出,普通毕业设计的指导方式或是工程化的控制手段,并不能适应软件开发类毕业设计,最终会导致毕业设计质量低下,学生得不到真正锻炼。比较突出的问题主要表现在以下几个方面:

(1)项目组成员各人任务不明确,能力参差不齐,并且有时没有充分地交流设计思想,最后导致软件各个功能模块无法有效整合。

(2)项目需求因为各种原因不断改变,软件不断修改,最终完成的软件产品达不到设计要求。

(3)编码开始后,软件的错误和缺陷不断涌现、不断累积,最终无法控制。

这些问题的产生,固然与设计选题、学生能力、实验环境以及教师的指导力度分不开,最重要的还是与教师的指导和监控方式有关。应当采用恰当的指导和监控方式,最大化地促进学生能力的提高,最有效地根据各个学生的特点,推动学生逐步达到毕业设计软件质量和功能的要求。

2 敏捷软件开发技术的应用

采用适当的指导和监控方式,实际就是要求教师对学生软件开发应用适当的软件过程模型,也就是软件开发的工程化控制手段。

2.1 敏捷软件开发简介

传统的软件工程方法中的架构设计与程序开发在时间上是先后分离的,这种分离常常导致一些脱离实际的设计和脱离设计构想的编程,导致最终软件开发的不理想甚至是失败。鉴于以上问题,敏捷软件开发技术应运而生。

敏捷软件开发以交付而不是以构造为核心,它强调的是交付对客户有价值的软件,而不是用户需求中所描述的软件。简言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。敏捷软件开发方法提倡采用先进的技术和高水平的小型团队,并辅以人性化的管理,充分发挥软件开发者的才华,建立畅通的交流机制,使软件开发团队水平和软件质量共同提高。

敏捷式开发采用适应性方法,而传统的软件工程学采用的是预测性方法。敏捷式开发是以人为主的,而传统的工程学是以过程为主的。二者的主要区别存在于它们对软件开发过程的描述中,也就是说,敏捷开发实现当前最需要的功能,然后根据变化来修正和改进;而传统软件工程学一开始就将软件的各种架构预测好,然后采用固定的过程来实现这种架构。软件开发中的变化是不可避免的(通常传统软件开发的失败主要原因就是不能很好适应这种不可预知的变化),因此就要找到一种新的方法能够更有效地适应变化,这其实也就是敏捷式开发方法所要达到的效果。

可以看出,上述的敏捷软件开发的许多特点正是与软件开发类毕业设计的许多特点不谋而合,例如,小型的开发小组,适应性(适应不可预测变化)的开发机制,短期的交付(毕业设计一般都在半年甚至更短时间内完成软件的交付),充分发挥小组成员的特点,建立畅通的交流机制等等。因此,将敏捷开发思想引入毕业设计中的软件开发,不失为解决后者诸多问题的很好尝试。

2.2 敏捷软件开发应用 敏捷软件开发技术包含若干的价值观、原则和实践方法。将其用于毕业设计的指导和监控,主要应包含如下原则的应用:

2.2.1 增量式开发

传统软件类毕业设计采用传统软件工程学指导方法,先进行需求分析,然后根据需求进行功能模块划分,接着开始编程。如果最初阶段不能很好地完成分析和设计任务,后面的软件开发将出现严重问题。

而在敏捷软件中,采用的是增量式开发,对于难度较大的软件设计,不是一步吃透功能,而是逐步添加功能,在改进的过程中促进学生能力的提高。在笔者指导的一项毕业设计中,要求学生用Java编制网络实时通讯软件。采用增量式开发方法,先要求学生实现基本功能,即发送字符串到另外一台计算机,使用Windows的超级终端作为接收机进行测试;接下来要求学生实现程序互相发送和接收字符信息;然后,实现聊天室的多人聊天的线程控制;进一步可以实现数据库存储登录用户信息,并进行验证;最后,实现其他功能,例如网络硬盘,文件传输等等。在开发过程中,增量式设计能够让学生逐步进入高层次的内容,而不是一开始就进行高难度的开发。并且,通过逐步修改代码,可以提高学生阅读代码和优化代码的能力,学生的编程水平得到很好的提高。

2.2.2 可持续的开发速度

敏捷开发技术不要求团队一开始就尽全力完成任务,而是尽量保持一种稳定的、可持续的开发速度;团队的成员必须始终保持旺盛的精力和警觉的思想。

在很多毕业设计中,一开始学生就以极高的热情和全力以赴的状态去工作,然而随着进度的延缓,错误不断增多,以及越来越复杂的需求变化,学生的热情迅速减退,最终影响设计成果。因此,指导老师必须充分调动学生的积极性,又不能让学生 的精力过早地消耗,要保持一个稳定的进度。

2.2.3 简单

敏捷软件开发方法采用最简单的方式实现当前最需要的功能。在毕业设计中,针对某一个功能,采用尽量简单的方式去实现,不需要考虑为了将来的功能而进行“提前的准备”。因为这种“提前的准备”往往会让学生考虑问题过多,反而忽略了当前最重要的内容。

然而,简单并不代表着功能的缩减,当某些功能的实现成为必须的时候,敏捷软件开发方法采用在代码上改进的方式来完成,并且以此为机遇,充分进行反省,让学生在改进中得到进一步提高。

2.2.4 结对编程

结对编程是敏捷开发和极限编程(XP)的重要实践,它是指两个程序员结对使用同一台计算机完成编码――其中一位控制键盘并输入代码,另一位观察输入的代码并寻找着代码中的错误和可以改进的地方。这种方式能极大地促进知识在团队中的传播,并有效降低代码的错误率。

在毕业设计中,根据学生的特点,采用结对编程方式,可以让学生充分交流,互补所短,互用所长,互相学习。例如,在网页制作类的软件开发中,ASP脚本编程人员和界面设计人员结对,能够充分利用二者的特点,将脚本程序和网页界面元素有机地结合起来,形成功能完善,界面美观的动态网页。

2.2.5 适应改变

敏捷开发的一个重要特点就是它能够很好地适应改变,并且欢迎改变。这里的改变主要是指功能需求方面的改变。而敏捷开发对改变的适应,主要是通过增量开发,持续交付以及不断地改进与反省来实现的。

在毕业设计中,设计题目一经给出,主要方向不能变。然而选择题目的学生是变化的,个体能力有时候有很大差别,并且在开发中会碰到很多不能预知的技术问题。采用敏捷开发中的过程控制手段,可以有效地让毕业设计小组更好地应对各种变化,不会因为突发因素导致软件开发的失败。

2.2.6 个体激励和交流

毕业设计的重要目的是促进学生各方面能力的提高,采用的手段可以有很多。在敏捷设计中,强调个人能力在团队中的充分展示。把这种思想应用于毕业设计指导中,可以采取定期召开小型交流会议的方式,让每一个组员充分发挥自己的能力,以“头脑风暴”的形式对系统当前状态和改进方式进行畅所欲言的交谈。通过这种形式的交流,能够充分调动整个小组成员的积极性,及时发现系统开发过程中的各种问题,增强整个小组的凝聚力,有效提高学生的团队协作能力。

2.2.7 反省

好的团队并不只是埋头工作,他们会思考如何工作和为什么工作。在毕业设计指导过程中,指导教师应当在适当的时机提醒学生对开发工作中各项内容进行反省,让学生能够有机会去辨别可能或已经发生的错误。反省不仅仅是简单的思考过程,反省的后面应该紧跟着行动,学习是反省的行为,要能够将错误造成的危害尽早地阻止,并从中学习,以免同样错误的再次发生。

2.2.8 其他原则

敏捷软件开发技术还包含其他一些原则,在设计中包含了面向对象设计的一些基本原则,例如单一职责原则(SRP)、开放一封闭原则(OCP)等等。要将这些设计原则应用到具体的软件开发中,需要学生熟悉面向对象程序设计的相关概念和技术。

将敏捷软件开发技术应用到毕业设计的指导过程中,需要指导教师本身对它有较为深刻的理解,并且勇于进行大胆的尝试一毕竟敏捷开发的很多实践是与传统软件工程学方法相悖的。指导教师可以先在某一门程序设计课的课程设计中采用这种思想,然后进行相应的调整,再将其应用于毕业设计的指导工作。

3 结束语

软件开发技术篇7

【关键词】计算机 软件开发技术 应用

21世纪的互联网时代,计算机已经成人们日常生活和工作中一种重要的工具,逐渐改变了人们的生活方式,极大地推动了社会的发展。计算机快速发展的动力源泉主要来源于计算机软件开发技术的不断发展,因此要深入研究和分析计算机软件开发技术,提高计算机软件开发技术的社会服务性、创新性和有效性,为人们提供更多的便捷和服务。

1 计算机软件开发技术分析

1.1 计算机软件开发技术的主要特点

计算机软件主要包括系统软件和应用软件,计算软件开发技术具有很多突出的特点,一方面,计算机软件开发技术具有很高的社会使用价值,计算机软件开发技术在各个领域各个行业的广泛应用,极大地推动了社会的发展和进步,产生了多元化的社会效益。另一方面,计算机软件开发需要耗费大量的财力、物力和人力,是一项细致而又复杂的设计工作,在社会各个领域各个行业中发挥着中重要的作用。计算机软件具有多种多样的开发种类,主要的软件开发是系统软件和应用软件的开发,主要用于控制和管理计算机的运行,为用户良好的计算机应用界面,或者结合实际的社会需求而进行的软件开发,如游戏软件、人事管理软件、财务管理软件等。

1.2 计算机软件开发技术的原则

计算机软件开发首先使用规范的开发技术,保障计算机软件开发的质量和安全性。其次,计算机软件开发应该按照不同阶段的设计要求完成设计模型。最后,利用科学合理的方法,正确评估计算机开发软件,验证计算机开发软件的使用效果和质量。

2 计算机软件开发的常用方法

2.1 软件生命周期法

软件生命周期法主要是从软件开发的时间角度考虑,将计算机软件的设计、开发、评估、运行、维护等开发环节分成不同的阶段,每一个阶段都制定严格的标准,软件生命周期法可以帮助软件开发者制定科学合理的计划,逐渐完成所有阶段软件开发的过程。

2.2 原型化法

软件生命周期需要对计算机软件进行预说明和定义,需要软件开发人员全面了解用户的需求,深刻、准确、全面的认定计算机软件系统的主要需求和功能。如果在软件开发初期,用户没有给出详细的软件设计要求,开发人员不能全面确定软件的算法效果和实用性,可以采用原型化的设计方法,在原型化的计算机系统基础上,后期再进行修改,完善软件使用要求。

2.3 自动形式的系统开发法

这种软件开发方法主要应用了第四代软件开发技术,需要软件使用者明确的说明软件想要实现的主要内容和目标,然后结合计算机软件系统的要求自动地完成编码设计。

3 计算机软件开发技术的应用

计算机软件开发的主要目的在于不断开发创新新软件,不断优化现有的计算机软件,为人们提供更多元化的服务,推动社会的快速发展。因此,对于某一种计算机软件开发技术来说,只有充分体现出计算机软件开发的真正价值,才算是成功。

利用计算机软件开发技术开发出两个重要计算机产品,第一个软件开发产品利用VB6.0+Acess的单机版计算机运行模型,第二个软件开发产品应用Web+Xml+ActiveX的数据库服务模式。将这两个产品分别安装在客户端的计算机上。第一个软件开发产品采用了微软历史版的VB虚拟机和Acess驱动,在安装操作时,可以直接运行安装,计算机可以实现自动化的系统兼容,为用户提供了极大的便利。第二个软件开发产品由于应用了ActiveX组件,在安装过程中需要更改相关浏览器的参数设置,然后再进行安装设置,和第一个软件开发产品相比,第二个软件开发产品的安装过程比较复杂。两个软件开发产品安装完成后,经过一段时间的运行,第一个软件开发产品的运行过程中比较稳定,并且软件的安装维护修复都在独立的模块中,用户通过简单的操作,就可以单独完成。但是这个软件也有一定的缺陷,软件的运行时间越长,运行速度和效率越低,能量损耗严重。第二个软件开发产品在安装运行过程中,容易受到计算机运行系统版本的限制,并且需要修改浏览器的参数设置,软件的更新维护比较复杂,给计算机用户带了很多的不便。

计算机作为人们生活、工作和学习中使用的重要工具,只有不断提高计算机软件开发技术,才能更好地改善人们的生活,更好地服务社会,随着计算机的广泛普及,计算机软件开发技术人员需要按照用户的实际情况和使用要求进行开发设计,坚持以人为本的计算机软件开发原则,突出计算机软件的有效性和实用性,推动社会的快速发展。

4 计算机软件开发技术的重要性

计算机软件开发技术是支撑计算机软件工程的重要技术,使计算机逐渐实现网络支持和远程控制,充分体现出了计算机的使用价值。同时计算机软件开发技术将计算机的开发性和共存性合为一体形成计算机网络模式,促进了计算机网络的发展。在计算机的实际运行过程中,软件开发技术从根本上解决了用户软件需求和软件开发之间的偏差,极大地满足了用户的多种个性化需求,提高了计算机软件的便捷性、可靠性、安全性和高效性,为计算机软件开发技术提供了广阔的应用空间。新时期,计算机软件开发技术需要与时俱进,为人们提供更加多元化的服务,充分发挥计算机软件的价值,推动计算机快速发展。

5 结束语

网络信息时代,计算机在各个领域发挥着越来越重要的作用,具有巨大的社会价值,计算机软件开发技术是推动计算机快速发展的重要动力,因此只有不断发展和创新计算机软件开发技术,突出计算机的社会使用价值,坚持以人为本的软件开发原则,才能推动计算机软件开发技术的可持续发展,为人们提供更加多元化的服务。

参考文献

[1]刘凯英.浅谈计算机软件开发技术的应用及发展[J].无线互联科技,2013,01:69.

[2]旷文兵.计算机软件开发技术及应用[J].科技信息,2013,21:91.

[3]胡玲芳.新时期计算机软件开发技术的应用研究[J].信息与电脑(理论版),2013,08:74-75.

作者单位

软件开发技术篇8

1计算机软件开发技术概述

1.1计算机软件开发技术构成

计算机发展主要是以科学技术为基石,其软件开发技术主要是由两个部分构成,即系统软件、应用软件。系统软件作为计算机软件运行的基础,是确保不同软件有序运行的主要载体;应用软件作为一种解决型软件,可以有效解决软件运行中的相关问题。通过两者的共同作用,可以为计算机运行打下坚实的基础,通过两者的开发,可以为计算机的进一步发展提供可靠保障。

1.2计算机软件开发技术重要性

计算机软件技术的不断开发与发展,为信息技术的不断进步与计算机网络的快速发展提供了很大的推动力,可以说,信息时展的主要推动力就是计算机软件技术。计算机软件开发技术作为计算机发展与软件工程的核心,对网络发展有着很大的现实意义,必须予以高度重视。随着计算机网络技术的不断发展,使得网络支持与远程控制成为了可能,为此,计算机软件开发技术就是一种把计算机网络变为共存和开发于一体的模式。计算机网络的发展与进步,主要取决于计算机软件的开发与应用,通过计算机软件开发技术的应用,能够有效解决计算机软件问题和计算机需求矛盾,在一定程度上提高了计算机软件应用的安全性。在新形势下,计算机软件开发技术面临着很多的挑战,同时也承担着很多的责任,在社会发展中发挥着十分重要的作用。

1.3计算机软件开发技术特点

计算机软件开发技术的特点主要包括以下两点:一是,应用价值高。随着计算机技术的快速发展,应用范围的不断扩大,使得各行业受到的影响也越来越大,为此,在社会与经济均快速发展的形势下,一定要加强技术支持,从而有效提高社会效益与经济效益,实现其更高的应用价值。二是,复杂程度高。在计算机软件开发中,需要很大的投入,主要是因为此项工作的复杂性较高,需要企业、研究者及其机构予以大力开发,所以,对财力、物力、人力等方面的需求非常大。

1.4计算机软件开发技术方式

现阶段,计算机软件开发技术与方法越来越成熟,在新形势下,合理选用软件开发技术与方式,对计算机运行及人们的生活与工作有着十分重要的作用。目前,计算机软件开发技术方式主要有三种:一是,生命周期开发法。此种方式也可称之为结构化系统开发法,是现阶段国内外较为普遍应用的一种方式,特别是在复杂大系统的开发中,更是突出了生命周期法应用的优势,是现阶段计算机软件开发的一种最为成熟、最为普遍的方式。其优势为注重系统开发的全局性与整体性,把软件开发与维护划分成若干环节,每个环节均具有明确的目标与任务,极大降低了系统开发的繁琐性,更加注重可操作性。然而,此种开发方式也存在着一些不足,如各环节无法同时展开、前面问题影响后续工作等。二是,原型化开发法。此种方式也是较为常用的方式,其是开发人员根据系统主要需求获取一致结果,之后开发出一个原型予以运行,从而对原型予以不断修改,一直到用户满意为止的一种方式。此种方式的优势就是可以确定用户需求,降低了开发成本与风险,能够对各种系统服务功能予以充分利用,其劣势就是不适合在大型系统开发中应用。三是,自动形式系统开发法。在软件开发过程中,应用自动形式系统开发法,可以明确软件开发目的与内容,并不需要对开发过程予以说明,但是能够根据软件设计需求予以自动设计与编码。

2计算机软件开发技术现状

目前我国软件开发技术中,工作者结合社会需求与国际先进软件技术开展了融合式研究工作,取得了很大的成绩。就目前软件开发技术现状而言,其主要包括以下内容:

2.1国际软件开发技术现状

就目前软件开发而言,美国、欧洲等西方国家的技术水平较为先进。因为这些国家是计算机技术的发源地,所以其软件开发技术工作的起步相对比较早,拥有许多领先技术理论与专利性技术,并且在教育工作中也培育了许多专业技术人才。在这些优势的协助下,西方国家的软件开发具有很大的知识优势与技术优势。与之相应的是以中国、印度等发展中国家的软件开发工作,其是随之而来的软件开发国家,其在技术理论、人才储备、技术力量等方面要明显弱于先进的西方国家。但是,在这些发展中国家中,由于软件开发技术工作深受国家的关注,得到了大力支持与发展,再加上全球一体化发展与网络信息化发展的影响,软件开发技术水平越来越高,已经取得了很好的成绩。针对此种情况而言,国际计算机软件开发技术发展越来越全面,并且在此背景下,以开放源码、高效处理、高端计算为代表的软件开发技术应运而生,为计算机技术的进一步发展提供了可靠保障。

2.2国内软件开发技术现状

在我国计算机软件开发技术中,因为其起步比较晚,在技术理论、人才储备、技术力量等方面的制约下,使得整体技术水平要落后于国际先进水平。但是随着我国改革开放的不断深入,对科学技术的重视程度越来越大,为软件开发技术发展打下了坚实的基础。在此种形势下,我国计算机软件开发技术的进步空间越来越大,尤其是对中文软件的开发。根据我国发展的具体情况,软件开发工作者在充分利用国际先进软件开发技术的基础上,研发出了很多优秀的中文软件,为我国软件开发技术发展提供可靠依据。与此同时,在此种形势下的作用下,我国软件开发行业也得到了快速发展,在北京、上海、广州等地区均建设了具有一定规模的软件开发基地,为我国软件产业的可持续发展创造了很大的平台。

3计算机软件开发技术应用

随着计算机信息化、网络化技术的快速发展,我国软件开发技术也得到了很大的发展,并且在应用方面取得了很大的进步。计算机软件开发目的就是通过软件的创新,对现有计算机软件进行不断的优化,针对某一计算机软件开发技术而言,只有真正发挥出计算机软件开发的价值,才可以说明技术应用有效。在计算机技术广泛应用的形势下,计算机软件开发技术的应用主要包括以下几个方面:

3.1软件开发网络化

随着社会网络话进程的不断加快,在计算机软件开发工作中,软件网络化应用越来越广泛,并且成为了发展软件技术的重要所在。在计算机软件开发技术的网络化应用方面,主要是以JavaScript编程语言的应用为代表。此种编程语言的作用主要就是让编制的程序与开发的软件更加符合Web网络环境,可以在此环境中进行良好的运用。可以说,计算机软件开发技术网络化发展的杰出体现就是JavaScript编程语言的普遍运用。

3.2软件开发服务化

从某种角度而言,计算机主要就是为人们提供服务的一种工具,可以说,在软件开发中,其服务化功能也来越突出。此种服务化功能主要体现在以下两个方面:一是,网络服务环境的设立。在目前软件开发工作中,软件开发的重要部分就是网络服务环境的设立,通过此种服务环境的设立,能够为计算机用户提供更大的便利,促使计算机应用普及化。二是,软件操作越来越普遍。在目前软件开发工作中,开发者越来越关注软件可操作性的加强,使其能够为计算机用户提供更加便捷、更加优秀的技术服务,使计算机应用越来越普遍。

3.3软件开发智能化

随着计算机软件开发工作的不断发展,信息化、网络化技术的不断影响,近些年来,软件开发工作越来越智能化,尤其是随着网络软件开发平台与嵌入式软件技术的研发,为计算机软件开发的智能化发展打下了坚实的基础。在计算机软件开发中,此种智能化优势,为计算机软件应用的普及提供了可靠保障,并且具有操作方便、利用率高的特点,值得进一步研究与应用。

4结束语

综上所述,随着信息时代的快速发展,计算机作用越来越突出,而计算机软件作为计算机系统的主要构成部分,发挥着不可替代的作用,必须予以高度重视。计算机软件开发技术应用主要就是为了便于用户使用,为用户提供更为优质的服务,使用户的生活与工作更加高效、便捷。为此,在计算机软件开发工作中,一定要重视网络化、服务化、智能化等方面的应用,加强软件开发技术的创新,为信息时代的可持续发展提供可靠动力。

上一篇:税收信息论文范文 下一篇:司法审查制范文