计算机软件开发方法范文

时间:2023-10-19 16:07:02

导语:如何才能写好一篇计算机软件开发方法,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

计算机软件开发方法

篇1

1计算机软件系统的定义简介

1.1关于软件。自从19世纪中后期以来,计算机软件系统的创新以及运用从原本的人工写录计算机的程序发展到了更加高端、更加方便的水平。如今计算机技术得到提升,新型技术如雨后春笋,而且得到了人们一定的关注和认同,在生产中得到了使用。计算机的运用也更加普及,在生活中、工作中、学习中各个方面,都离不开计算机的帮助。计算机倾向于更加简易方便的趋势,而软件的使用也更加普遍,没有以前的限制和约束。软件开始有了官方科学的概念,指的是计算机通过采用一定的方式或是规则,满足一定的需求,在计算机正在使用的过程中供给所需要的数据。

1.2软件工程技术。上个世纪九十年代,所使用的软件工程技术还是人工进行编写,不但效率不高,而且容易出现错误的情况,不易于核查和更改。首先,耗费了大量的人力资源,程序编写员的劳动工作强度高,软件较为复杂,不利于大规模的传播推广,软件的开发时间过长,不易修改和改良。因此,软件工程技术还是存在许多不足之处。

2开发方法

开发软件首先应当具备一定的技术创新团队,并且按照一定的技术发展原则,设计与应用并重,保证科学的开发方法,减少一些传统的开发方法带来的弊端。

2.1生命周期方法。这种方法主要是调整软件系统开发的周期,将开发的整个时间进行细化,并对开始和结束的定义重新定义,确保这种方式准确科学,有着严格标准的定义要求,上一个阶段的结束之后才能开始下一个阶段,这样的方式有利于减轻开发人员的工作压力,并且有利于整体目标的实现,对每一个阶段的工作进行准确的定义,防止不明确自己的任务而引发的问题。

2.2原型化开发方法。如果在进行设计的最初阶段,设计人员对于产品并没有一个明确的定义,或者是缺乏一定的研究材料,则可以使用原型化开发的方法。先确定对于开发产品的大概模型,在此模型的基础上进行加工。

3发展方向

3.1服务。现如今,软件系统更偏向于用户体验这方面,为了给用户带来更加优良的服务体验,符合用户的需求,软件系统将更加直接,满足用户的需求,带给用户更好的服务。

3.2更加网络化。网络化是21世纪的主旋律,计算机软件技术应该面向世界、面向未来,开发的过程中应该将眼光放远一些,考虑到国际之间的联系,争取运用更加先进的技术,满足各个地区各个国家的用户的需求。

3.3更加智能化。人工智能的概念一经提出就受到了广泛的关注和热议,将人工智能技术运用到软件开发中,能够有效减少前期的人力物力的投入成本,缩短开发时间,根据具体情况的需要进行更新和改良,有利于大规模的生产和运用。随着人工智能技术的不断成熟,两者相互促进,将会带来更大的收益,这也是一项划时代的举措。

3.4更加开放化。为了实现资源共享,软件的开放化是十分重要的,这项举措有利于技术不断更新和发展,开放人员通过这个进行交流,不断进步,吸取对方创意中的长处为我所用,发现自己不足之处并加以改良,优化产业结构,有利于产品创新发展,开放化一举有着极为重要的意义,其方便快捷、易于沟通、信息交互便捷、利于数据的存储和利用。

4结束语

篇2

关键词:计算机辅助设计平台 硬件 软件 开发方法

一、计算机辅助设计平台系统的硬件和软件构成

1、计算机辅助设计平台系统的硬件

(1)主机

主机的核心部分是中央处理器(CPU)和内存储器。CPU由两部分组成:控制器(CU)和运算器(ALU)。它管理主机所有组成部分的运行,并对数据进行算术逻辑运算。

(2)存储器

在计算机系统中,用以存黜程序和数据的装置,成为存储器。存储器可分为两类:内存储器(主存储器)和外存储器(辅助存储器)。内存储器通常设计为计算机的一部分,并直接与中央处理机连接。内存储器可以存贮两类信息:由控制器执行的程序指令和由运算器处理的数据。外存储器是为了弥补内存容量有限的缺点,适应于大量数据的处理与存贮而使用的。它主要用于存放当前不参与运行的程序和数据,在需要时再成批地与内存交换。其特点是:存储量大,价格低,存取速度较快。

(3)一般输入/输出设备

这些设备一般包括键盘、显示终端和打印机等。除了上述的设备外,还经常用到其他设备,如:光笔、鼠标器、图形输入板、数字化仪、扫描仪和图形显示设备等。

2、计算机辅助设计平台系统的软件

计算机辅助设计平台系统功能的实现是系统硬件和软件协调作用的结果,没有软件的支持,硬件是无法工作的。归纳起来,计算机辅助设计平台系统的软件基本上可以分为三类:即系统软件、支撑软件和应用软件。

(1)系统软件

系统软件是计算机辅助设计平台系统最低层次,为用户提供开发图形软件和应用软件的软件环境。系统软件是指操作系统及语言语言处理程序等,它着眼于计算机资源的有效管理,用户任务的有效完成以及操作上的方便等,目的在于构成一个良好的软件工作环境,供应用软件的开发使用。

现在常用的操作系统有MS-DOS、Windows系列操作系统和UNIX操作系统等。其中MS-DOS、Windows系列操作系统主要是应用于PC机上面,UNIX操作系统能在微型机到大型机的各种机器上运行,已成为当今世界上最流行的多用户操作系统。

在计算机辅助设计平台系统软件的开发中,汇编语言的使用已大量减少,目前主要是采用FORTRAN、C、VC、VB、C++Builder等。在人工智能方面应用较多的LISP,Prolog等。

(2)支撑软件

支撑软件是在系统软件的基础上,为用户自行开发应用软件提供技术支持的软件,从功能上可以分为三类:第一类是几何图形设计软件;第二类是工程分析与计算软件;第三类是文档处理软件。

(3)应用软件

计算机辅助设计平台系统的功能最终要反映在解决具体产品和工程问题的应用软件上,应用软件的开发是建立在系统软件和支撑软件基础之上的。归纳起来,应用软件应该具有下列特点。

a. 功能齐全,能满足具体产品或工程设计要求,以获得最佳的设计效果。

b. 能充分利用计算机辅助设计平台系统的软、硬件资源,具有较高的效率。

c. 应用软件应实现规范化和模块化。

d. 移植性强,便于在各种计算机上运行,并易于与有关软件连接。

e. 具有良好的人机交互界面和人机友好程度。

f. 使用方便,可靠性强,便于维护。

由于应用软件应用于各个领域,涉及的专业性很强,所以,一般情况下需要用户自行开发。相关学科的技术人员协作研制和开发,可以解决各种工程或产品日益复杂的工程技术问题,以满足现代计算机辅助设计平台系统的要求。

二、计算机辅助设计平台系统的开发方法

1、软件工程方法

一个功能完备的计算机辅助设计平台系统的建立,需要充分利用计算机的软、硬件资源,考虑各方面的需要,协调系统内部各独立模块之间的关系,以期发挥计算机辅助设计平台系统的优良设计能力。这并不是很容易的事情,它涉及的内容非常多,如果没有科学的设计方法作指导的话,设计出来的计算机辅助设计平台系统不可能达到令人满意的程度。

随着CAD/CAM技术的发展,应用软件开发的规模越来越大,复杂程度越来越高,水平也不断提高,以至于如果还是采用传统的开发技术难以保证所开发应用软的质量和水平。为此,开发者开始采用工程化的方法从事软件的开发,并逐步在实践的基础上形成了软件工程学这一技术学科。

软工程学的诞生和发展使软件的开发和生产成为一种工程问题,而不是个人的艺术创作。它主要研究软件结构、软件设计方法论、软件工具、软件工程标准和规范,以及相关的理论。

从软件生产管理来看,软件工程学大致包括以下内容:

(1)软件的需求定义和分析技术;

(2)软件设计和审查技术;

(3)软件描述技术;

(4)软件调试技术;

(5)软件可靠性技术极其评价方法;

(6)软件扩充和维护;

(7)软件成本估算等。

2、计算机辅助设计平台系统的开发

就计算机辅助设计软件而言,由于真正实用、功能齐全的计算机辅助设计软件一般都比较复杂,程序在万行以上,不同模块之间关系复杂繁多。因此,必须采用软件工程的方法从事工程化的计算机辅助设计软件开发,这样才能保证开发过程清晰、要求明确、任务具体、质量高、时间短、费用少,并且便于检查和维护。

基于上述情况,一般情况下,在工程化的计算机辅助设计软件的开发过程中,必须考虑下列要求:

(1)硬件支持环境;

(2)软件支持环境;

(3)设计要求;

(4)实用化要求;

(5)保证软件质量;

(6)测试验收严格;

(7)文档编制通俗;

在开发计算机辅助设计平台系统时,必须很好的参照这些要求,各个行业的设计者可以把这些要求与本行业具体生产情况结合起来,真正使软件工程思想和软件工程开发方法贯彻到行业计算机辅助设计平台系统中去,务求保证软件的质量,提高软件开发的效率。

计算机辅助设计平台系统的开发过程如图。

参考文献:

[1]王吉明.计算机辅助设计的技术应用探究[J].科技与创新.2014(21).

篇3

主要的软件工程开发方法有SASA方法、Pamas方法、面向对象的软件开发方法等。其中,面向对象开发方法是目前使用最为频繁的一种软件开发方法,它是目前计算机领域中最为关心的重点,是90年代软件开发领域的主要潮流。从其概念与应用来看,面向对象已经远远超越了软件开发和程序设计,范围拓展的非常宽。面向对象的优点有很多方面,例如与现实世界之间的距离更加接近,更加符合人类的逻辑思维,开发出的程序更加合理稳定。

二、计算机软件工程的应用

近年来随着科学技术的不断发展,网络技术目前已经得到了快速的普及,逐渐深入到人们的工作与生活中,计算机软件以其执行命令更加准确、运行效率更高、操作更方便等优点得到了人们的认可和欢迎,并在短时间内被人们应用在活动的各个层面上,换句话说人们的各项活动已经不能离开计算机软件了。现在具有代表性的软件主要由电子邮件、计算机操作系统以及各种网游软件等,在社会经济发展的各领域中,例如农业、金融、企事业单位等部门中的很多工作都需要依靠计算机来完成。随着计算机应用程度的逐渐加深,计算机软件工程已经发展成为一项意义深远的工程技术,在软件开发商业加入更多人性化的因素。与机械制造业中的生产方式不同,软件工程生产应该体现出一定的个性化特点,并对其设计思维与功能进行不断的更新和完善,在软件开发工作中,设计人员应该结合客户需要,对各方面的因素进行综合考虑,将大家的智慧汇集到一起,这样次啊能设计出成功的计算机软件。因为软件系统本身的应用性非常广泛,设计人员应该对各种可能发生的问题进行提前的考虑,一旦出现故障将会为客户带来无法估量的损失,因此,要想将计算机软件工程研发工作做好是非常困难的。计算机软件设计存在功能化、人性化等特点,目前计算机软件已经在现实生活中得到了极为广泛的应用,并在现代企业经营管理中发挥着至关重要的作用,目前生产、销售等环节已经实现了信息的交流,以方便经营策略变动的进行。例如在金融机构以及商场等管理中,应该通过软件系统针对消费信息进行统计和确认,利用金融系统完成支付,大大避免了携带现金带来的麻烦。软件系统隐藏在计算机中,其管理能力非常强大,使人们的工作方式与生活方式发生了重大的改变。

三、结语

篇4

关键词:软件开发 方法 演变 创新

随着软件规模的不断扩大,应用领域的不断延伸,软件产品所面临的应用环境开始从静态封闭逐步走向动态开放,软件开发的焦点和难点集中于产品和项目的三个特征:第一,高速度;第二,高度变化;第三,高度不确定性。软件的核心就是可变,高速变化的原动力不是规模,而是源自对象(问题)系统的复杂性以及软件产品开发过程的特殊性。面对这一情况,传统的软件理论、方法和技术在处理复杂软件开发时遇到了一系列挑战,软件开发方法的变革正在成为新一轮软件工程领域研究的重点。

一、关于软件开发

软件开发方法的研究是软件工程领域长期争论不休的问题,这实际上是要解决一个如何认识对象以及如何开发出一个实际系统的问题。由于软件技术可以极大地提高软件开发过程中的生产效率和质量,并能大幅度降低软件的开发成本与开发维护的周期,从而成为软件工程领域中的一个重要的研究方向。著名权威人士曾指出软件开发是利用已有的软件制品进行组装与合成新系统的一项技术,从而说明了“为了重用而开发”与“基于重用的开发”之间的关系以及新的软件开发理念。

软件在再次利用资源方面可以促进了基于COTS的软件开发与应用,并将传统的从“用户需求、分析、设计、编码到测试”这一开发过程转化到了根据“用户需求对可重用的软件进行选择、客户化、扩展、外包和组装”这一个新的开发过程。从而使得软件的开发过程从简单的作坊式开发、过渡到基于内部流程式的开发,并向“工厂化”的大规模协同化的软件开发过程进化。工厂化的软件开发模式提供了一种集成化的环境来实现特定产品的快速开发、配置与重用,从而为实现全球化、分布式协的开发过程奠定了基础。为了实现软件工厂化开发,探索通过软件再次利用来增强软件开发过程中的资源利用效率,就需要将软件开过程中的不同环节进行有效地集成并建立起整体的价值模型,以实现对整个开发过程中不同增值活动的定量化分析和整体优化。

二、软件开发方法演变

软件是为了解决客户的问题而开发的,所以客户需求分析和定义是软件开发的开端。需求被分为三个层次:业务需求、用户需求、功能和非功能需求。需求分析和定义过程包括对客户需求的引出、分析直到可以得到需求定义和编制规格,说明书,即文档化。不同的软件开发方法在文档化的认识上具有显著的不同。

从人的主观因素来看,起初人们研究软件开发方法的目的是为了解决软件危机,软件危机得到缓解之后,人们研究软件开发方法的目的是为了提高软件开发的效率、降低软件开发和维护的成本、保证软件的质量和可靠性。为了实现以上目的,在研究软件开发方法时,需要人们改变传统的观念和采用新的思维方式,需要人们借鉴其它工程领域的成功经验和有效方法。而当人们改变了传统的观念、采用了新的思维方式、借鉴了其它工程领域的成功经验和有效方法之后,势必导致软件开发方法发生演变。

从外界的客观因素来看,随着计算机应用的普及和深入,不断出现需要计算机处理的新问题和新领域。例如:软件规模增大、软件复杂性增强、软件可靠性要求提高、新系统(如嵌入式系统)的出现、开发工具的更新、互联网的快速发展等等。对于解决新问题和应用于新领域所需要的计算机软件原有的软件开发方法无法胜任,迫使人们改进原有的软件开发方法、推出新的软件开发方法。

三、软件开发的创新方法

⑴找出软件开发活动中存在着的问题。

软件开发活动中的个体化特征非常严重,编写程序时个人随心所欲,过分追求程序编写技巧,没有一个行之有效的、大家共同遵循的开发准则。错误地认为开发软件只是编写程序,对编写程序之外的其它软件开发环节没有给予重视。传统软件开发方法将数据和施加在数,据上的操作分离成两个独立的部分,导致问题空间和解空间的结构不一致,从系统分析到系统设计和实现的过渡不自然,软件重复使用的粒度小不利于大型软件的开发,模块的信息隐藏和独立性不好,软件可维护性较差。

⑵为了解决问题而进行思维观念创新。

编写程序时不能个人随心所欲地过分追求程序编写技巧,必须将可读性、清晰性和可理解性放在首位,必须考虑程序的可维护性,要使用三种基本结构(顺序、选择、循环)来实现程序。将数据和施加在数据上的操作封装在一起,形成类和对象的概念,用对象分解取代传统方法的功能分解,所有对象被划分成各种对象类。

⑶按照新的思维观念来构建结构化软件开发方法的核心部分。

核心部分是结构化程序设计方法,通过Pascal语言和C语言为代表的结构化程序设计语言的推出和完善。同时也可通过,Smalltalk语言的推出和完善,通过C++和Java等许多面向对象语言的推出和完善,面向对象程序设计方法逐渐形成并完善。

⑷按照新的思维观念来完善结构化软件开发方法。

完善的内容主要是将新的思维观念应用于系统分析和系统设计过程,在结构化程序设计方法基础上,逐渐形成结构化分析和结构化设计方法(SA/SD方法),使结构化软件开发方法得以完善。

软件开发方法是软件工程理论的重要内容之一,在软件开发方法中,对于开发软件时“做什么”和“如何做”,给出了明确的、详细的回答。人们在不同时期为了解决各种不同的软件开发问题,推出了多种不同的软件开发方法,并且每种软件开发方法还有灵活多样的表现形式。

参考文献:

[1]高禹,冯相忠.软件开发方法演变的几个主要因素[J].自然辨证法通讯, 2007, 29(5): 88-93.

[2]庞岩梅,晏海华.基于工作流技术的软件过程定义和追踪机制.计算机工程与应用,2003. 26.q

篇5

 

计算机软件是指能够满足行业发展需求的应用型或操作型软件,可以解决行业中的日常问题。根据计算机软件的应用发展设计开发技术,优化计算机软件的运行环境,提供可靠的运行方式。

 

1 计算机软件开发的方法

 

计算机软件开发技术应用的核心是开发方法,通过开发方法保障计算机软件的准确应用,排除潜在的问题。结合计算机软件的开发过程,分析比较常见的开发方法,如下:

 

1.1 原型化法

 

原型化法可以全面了解信息行业对计算机软件的要求,促使开发人员意识到开发技术的目的,了解开发技术在信息行业中应该有的功能。原型化法主要应用在计算机软件开发技术的初期,开发人员通过大量的数据计算,经由修改后完善计算机软件的基础,达到计算机软件开发技术的标准。

 

1.2 自动开发技术

 

自动开发技术在计算机软件开发的过程中,提供真实的服务内容,其可根据信息行业的需求,设计符合需求的软件开发代码,而且是在自动化状态下完成的,具有准确、科学的特点,不会出现错误或缺陷代码,有利于稳定计算机软件开发技术的应用基础。

 

1.3 周期法

 

计算机软件开发方法中的周期法,以软件的时间周期为依据,利用评估、维护的方法实行阶段性的开发,确保计算机软件开发的每个周期都能达到规范标准,由此才能在计算机软件开发的整个周期中体现出完善性。

 

2 计算机软件开发技术的应用分析

 

计算机软件开发技术的应用主要是为信息行业提供高质量的服务,落实软件技术。结合信息行业的实际需求,着重分析计算机软件开发技术的实际应用,如下:

 

2.1 计算机软件开发技术的应用背景

 

计算机软件在信息行业中的应用,暴露出诸多制约性的问题,无法保障计算机软件的应用效益。因此,计算机软件开发者意识到了开发技术应用中的缺陷,找出影响计算机软件开发技术应用的问题,才能为开发技术提供必要的应用条件。

 

以某项计算机软件开发技术为研究案例,分析开发技术的应用背景。该计算机软件开发技术中选择了两种开发技术,第一是VB6.0+Access,第二是Web+Xml+ActiveX,两种开发技术均投入安装测试,安装测试的过程中需要借助客户机,实际都存在一些明显的缺陷,第一种方法的缺陷是运行空间不足,在长时间运行后容易产生冗余数据,不利于计算机软件开发技术的运行速率,第二种方法的缺陷是必须有ActiveX安装组件的支持,才能实现开发技术的运行。

 

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

 

计算机软件开发技术不仅要解决开发中的问题,更要满足其在信息行业中的应用。计算机软件开发技术的应用主体是形成技术性的工具,符合信息行业的运行需求,提供信息化的服务。

 

软件开发技术的应用,需要结合信息行业的实际情况,由此才能保障开发过程的稳定与安全,排除计算机软件开发中的各项问题,提升开发技术的应用价值。

 

计算机软件开发者应该充分认识开发方法和技术,确保其在开发中的应用地位,一方面保护计算机软件开发技术的应用环境,另一方面强化开发技术应用的实践能力。

 

3 数据库管理

 

3.1 数据库管理的内容

 

(1)不同的数据和程序都具备一定的独立性,以数据模型的形式描述数据之间的关系和数据本身的特点。

 

(2)以部门或企业为单位,开展以数据为中心的相关的数据组织工作,以形成统一的综合性较强的数据库系统,从而对数据进行有效控制与管理。

 

(3)具有良好的用户口接口,以使用户能对相关数据进行更好的使用与开发。

 

(4)结合相关的要求对不同的应用程序进行管理,并从数据库中获取相关的数据信息,从而使数据的重复储存得到一定减少,此外,还能使新的数据结构得以形成,进而使数据具有一定的统一性。

 

3.2 数据库管理存在的问题

 

3.2.1 操作系统自身出现问题

 

导致数据库系统在管理运行过程中出现安全问题的根本原因是计算机的操作系统自身存在着一些安全故障和隐患。其中最常见的安全风险即计算机病毒。

 

在计算机的正常运行过程中,残留的木马病毒会对入驻程序的密码进行修改,而入侵者就能通过木马病毒随时获取系统的最新密码。

 

此外计算机在运行过程中,数据库操作系统会存在一定漏洞,而这些漏洞是无法避免的,它是对数据库系统的某些特征参数进行设置时产生,正是因为有了这些漏洞存在,才给那些电脑黑客们留有机会。另外计算机中的操作系统同数据库系统之间有着密切的联系,因此,要想保证数据库系统的运行安全,应确保计算机中操作系统的运行安全。

 

3.2.2 管理不合理、不完善

 

数据库系统是信息系统的衍生物,也是各种信息资料以及数据文件的存储器,而这些信息资料以及数据文件的制造及使用者都是由人来管理的,因此在使用过程中,用户如果缺乏一定的安全保护以及防护意识,没有对网络信息的安全性产生一定的重视,又或者是没有采取有效的安全保护措施,就很容易在操作以及使用过程中发生安全事故。

 

因此,用户在操作和使用数据库系统时,对其存储的内容利用加密技术进行相应加密,是保证数据库系统正常管理运行及存储内容不被外泄的有效途径。

 

另外,要随时做好数据备份及保存工作。

 

4 结束语

 

计算机软件开发技术是信息时展的有效手段,在行业中发挥重要的价值,有利于行业的信息化发展。

 

计算机软件开发技术在各类方法的支持下,完善开发技术的应用,同时软件开发技术遵循创新的发展原则,提高计算机软件开发技术的应用水平,拓宽其在行业应用中的范围,推进了计算机软件开发技术的持续性发展,体现了开发技术的应用优势。

篇6

一、我国计算机软件设计现状分析

在计算机软件设计领域,我国软件开发和设计的起步较晚,但是也在经验的积累和总结中出现了许多优秀的软件设计方法以及软件开发设计工具,在设计领域取得较大的进步,正在逐渐缩小与国外的差距,但是在软件开发与设计过程中,需要了解计算机软件开发与设计的目的以及计算机软件开发与设计的特点。其中计算机软件开发和设计的主要目的设计符合和满足现代生活需要的软件产品以及提供优质和高效的服务。

计算机软件开发和设计的主要特点体现在以下几个方面:首先,目的性,为了满足需求而不是天马行空的想象,其设计都是具有一定的需求和目的;其次,整体性,软件开发设计是一项庞大的工程,期间面临着许多问题,例如,数据丢失、程序的稳定、BUG等等,这就需要在设计过程中强调慢工出细活;最后,可操作性,通过不断的测试和检验提高软件的可靠性,满足日常生活需求,并能够方便操作,保持系统的稳定运行。

二、计算机软件开发设计的难点分析

(一)软件开发设计分析准备

在软件投入使用时,一些软件会出现许许多多的问题,而这些问题的出现很可能导致数据的丢失、系统的崩溃,这些都是在前期的分析准备工作不到位造成的,在设计项目时,对于项目的设计分析不够透彻,极大的影响了后期的操作性和系统的稳定性。

(二)软件开发设计规范操作

软件开发和设计是一项复杂的系统工程,需要按照相关的设计规范进行规范化操作,但是在实际操作过程中,使本来需要花费很长时间的庞大系统,仅利用很短的时间内完成,造成软件的质量得不到保证,在面对复杂系统设计时,精工出细活。

(三)软件测试环节充分验证

软件开发设计完成之后,都需要通过充分的设计和验证,只有在测验过程中,发现和纠正出现BUG,并及时的解决,才能符合设计的要求,此外一些客户会要求在软件设计开发过程中,加入新的要求,这就会无疑增加了软件设计的难度,特别是一些新功能的加入可能会影响软件的后期运行,这在测试和验证阶段都要加强注意。

(四)软件开发环境

软件开发环境相比前几个难点,属于客观难点,在我国的计算机软件开发设计,相比较之前有很大的进展,但是相比较发达国家软件开发设计还存在很大的差距,其外部因素就是软件开发的设计环境还并未形成,没有正规的商品开发工具和良好的开发环境,导致我国软件开发设计处于被动的局面。

三、计算机软件开发设计难点解决措施

(一)软件设计方法改革和创新

计算机软件开发和设计作为技术很强的专业领域,其突破难点的最重要方法就是在软件开发和设计上的方法创新,改变原有的设计模式,提高软件设计的效率和整体性能,首先,模块化设计法,模块化设计法在软件开发设计上较为常见,能够将庞杂的软件开发系统通过模块化的设计处理,保证每个程序能够在小程序下获得相应的设计,并通过相互的沟通和协作,提高软件的修改和改进,针对客户需要加入新功能时,上级模块可以通过对下级模块的调试,实现改进,而下级模块却不能越位调试较高模块;面向对象设计法,面向对象设计方法主要是以实体和模块等程序进行相关软件设计,根据设计对象的不同,对对象进行分解,利用非形式化的方式对对象进行分析,表达对象模型,建立对象可见性,并找出每个对象的接口,解决软件设计中面临的难点,提高操作性;数据结构设计,通过数据将软件设计数据以图形的形式展现,利用软件开发工具,将软件设计层次化结构化,整个过程以图形的形式来设计,数据结构形式能够直接利用图形的形式解决开发过程中面临的难点和问题,利用的主要三种结构有:重复、选择以及顺序。

(二)软件体验和软件升级空间

计算机软件开发和设计其主要目的是满足某种特定的需求,所以在软件设计是要提高对用户体验的重视程度,通过加强软件的整体性分析,并结合测试和验证,解决软件设计过程中的不足之处,提高客户的满意度;其次,加强软件开发的操作规范,提高软件开发工作的使用效率和软件开发方法的使用效率,在进行软件开发过程中,需结合实际需要,满足不同的设计需求;除此之外,对于软件设计来说,必须考虑的问题是软件的升级空间,在不断增长的需求层次上看,软件会结合客户的选择和新功能的要求,在合适的时间内实现软件的升级,从而真正提高软件的适应性。

篇7

关键词 岩土工程;勘探作业;计算机软件;开发;应用

中图分类号:TP391 文献标识码:A 文章编号:1671-7597(2014)09-0096-01

我国进入信息化发展之后,各种计算机技术在岩土工程领域中的应用也越来越广泛。而且,随着科学水平的不断提升,岩土工程勘查作业中对软件技术的要求也越来越高,这样才能提高勘察作业的效率,让岩土工程能够适应时展的要求。本文从岩土工程勘察作业中计算机软件开发的要求出发,对目前勘察作业中使用最多的CAD技术以及实际应用进行了具体

讨论。

1 岩土工程勘察作业中计算机软件的开发原则

1.1 严格遵守相关政策的规定

在软件的开发过程中,要想保证软件质量符合使用要求,必须严格遵守国家政策的相关规定。在计算机软件开发中,版权问题是首先需要解决的问题。目前,软件使用的正版化是岩土工程所有作业的共同要求。所以在进行计算机软件的开发时,需要将正版化作为最基本的要求,否则除了会因为版权纠纷导致巨额的经济损失之外,还会影响软件的正常使用,给岩土工程勘察作业带来巨大的影响。因此保证软件开发的正版化是一项基础性工作,让开发出来的计算机软件具有独立的知识产权,这样才能扩大软件应用的范围,提高勘察作业的效率。

1.2 遵守软件开发的客观要求

软件开发工作和其他事物一样,都有自身发展的客观规律。目前,软件开发除了正版化的要求之外,还需要具有智能化、一体化、微型化和个性化等特点,尤其是其中的个性化和一体化是当今时代网络产品的基本特征。所谓软件个性化,就是指在软件的开发过程中,除了要考虑到和当今流行软件进行数据交换的普遍性之外,还要保持软件自身的独立性和完整性。从软件本质的角度而言,最根本的特点就是构造性。所以,在软件开发时,要从这一特点出发,才能保证软件产品的可靠性和稳定性。同时需要注意的是,虽然软件产品的更新速度较快,但是也不能因为一有新的需求就重新进行开发,只需要在原有软件系统的基础上进行改进即可,这样既可以节约人力、物力和财力,也有助于软件产品的积淀。

2 CAD软件在岩土工程勘察作业中的实际应用

2.1 CAD系统概述

CAD软件系统是岩土工程勘查作业中使用最广泛的一种计算机软件,它的最终目标就是在现有勘察结果的基础上,对各种测试的数据进行整理、统计、计算等工作,然后对地层的结构和分布状况进行分析,然后使用各种图表,如柱状图、剖面图、平面图、曲线图、实验表和统计表等形式将底地层信息表现出来,为准确分析岩土的物理学特征提供参考依据。该软件系统的技术特征为,使用直接面向对象的软件开发方法,将多种软件开发工具的优点结合起来,采用模块化、信息封装等技术,提高软件的使用效率。该软件的基本性能就是可以在平面分析模型中,利用各种基本图形元素进行多种图形的绘制和编辑。

2.2 CAD软件应用在岩土工程勘查作业中的优势

CAD软件在勘察作业中的作用可以从以下三个方面表现出来。

1)有助于提高勘察作业的工作效率。随着计算机的普及和计算机网络技术在岩土工程领域中广泛应用,大大减轻了勘察作业的工作负担。因为CAD软件的应用可以让岩土工程勘察报告编写人不必进行大量冗繁的计算工作,所以能有效提高工作效率。同时,使用CAD软件对各种数据进行计算,减少了人为计算的失误,可以提高数据计算的准确性。例如,岩土工程勘查作业中需要对基础沉降、边坡稳定性、滑坡推力等进行分析和计算。这些数据的计算量非常大,如果不借助计算机软件,不仅会浪费大量的计算时间,还容易导致计算错误,但是利用CAD软件强大的数据分析功能,就能有效避免上述问题。

2)有助于提高作图的规范性。在进行岩土工程勘察报告时,最主要的内容就是各种图表,这也是勘察报告的核心。评价勘察报告是否符合实际的地质情况,图表的准确和规范程度是最重要的评价指标之一。使用CAD软件对勘察结果进行分析可以有效提高作图的规范性,保证勘察报告的质量。这是因为该软件能够利用计算机作图,这样就可以减少手工制图的误差,提高各种图表的规范性和美观性。

3)能够和其他大型软件进行有效连接。这主要指的就是CAD软件和文档表格处理的OFFICE软件连接起来。目前,OFFICE软件已经是现代电脑办公必备的计算机软件,具有强大的文字和表格处理功能。CAD软件和OFFICE软件之间能通过接口进行转换,这样CAD中图表就可以自发动转换为DWG、doc和xls格式的文件,能够为后期图表的调整提供便利。同时,CAD软件在勘察作业中还具备有效获取静力触探等微机数据的功能,并能够充分利用这些数据生成对应的xls文件。再加上目前岩土工程的勘查作业数据自动化采集技术的不断发展,例如固结试验数据、电子天平数据已经基本上实现了自动化采集,所以能为CAD软件和OFFICE软件的有效连接提供技术和数据支持。

3 结束语

综上所述,在岩土工程勘查作业的计算机软件开发中需要尊重软件开发的客观规律,严格按照国家相关政策的要求。在这两个软件开发原则的基础上,对勘察作业中CAD软件的基本情况和应用优点进行了深入分析。

参考文献

[1]马文君,魏勇.关于对岩土工程勘察技术及方法的思考[J].知识经济,2013,07(10):97-98.

[2]王俊.岩土工程勘探常见问题及解决措施[J].技术与市场,2013,07(01):114,116.

篇8

1两个典型软件开发方法的创新发展过程

1.1结构化软件开发方法的创新发展的过程

结构化软件开发方法包括结构化分析方法、结构化设计方法和结构化实现方法,其核心是结构化程序设计方法。结构化软件开发方法是在结构化程序设计方法基础上逐渐形成和完善的。

在结构化程序设计方法出现之前,软件开发活动个体化特征非常严重,编写程序时个人随心所欲,过分追求程序编写技巧,没有一个行之有效的、大家共同遵循的开发准则,造成程序的可读性、清晰性、可理解性比较差,给软件维护工作带来极大的困难。

在结构化软件开发方法出现之前,由于当时的软件比较小,开发过程比较简单当时错误地认为开发软件只是编写程序,所以那时的软件开发方法只是考虑编写程序,软件开发方法内容极不完善,对编写程序之外的其它软件开发阶段没有给予重视。

随着软件规模的增大和复杂性的提高,这种个体化随心所欲编写程序的现象和只重视编写程序而忽视软件开发其它环节的软件开发方法导致许多问题出现。例如,由于过分追求程序编写技巧,一些程序很难阅读和理解,因此当软件出现问题时无法维护;例如,由于不重视需求分析工作,对用户需求了解的不全面、不细致,开发出的软件往往与用户要求有很大差距。这些问题成为软件危机的根源之一。

在结构化程序设计方法出现之前的相当长的时间里,人们对软件开发活动和软件开发方法的认识停留在上述层面上,形成了一种传统的思维观念,似乎开发软件就应该那样做,使软件危机日益严重。

为了消除软件危机,人们开始深入思考软件开发活动和软件开发方法。1968年Dijksm在写给ACM杂志编辑部的信中再次建议从一切高级语言中取消oo语句,围绕是否应该取消ot)语句,人们展开了一场激烈的争论。在这之前,1965年Dikstm首次建议取消吾句,1966年Bohn与JaooPiH正明了任何单入口单出口的没有“死循环”的程序都能由三种基本结构构造出来,这三种基本结构是顺序结构、选择结构和循环结构141。经过争论,最终人们认识到,不是简单的是否取消吾句的问题,而是应该改变传统思维观念,创建新的思维观念,在此基础上创建新的程序设计方法。

围绕gt语句争论的结果使人们形成了新的思维观念:编写程序时,在正确地实现了软件功能的前提下,必须将可读性、清晰性和可理解性放在首位,必须考虑到程序的可维护性,而不能个人随心所欲地去过分追求程序编写技巧。由于使用三种基本结构顺序、选择、循环)组成的程序具有良好的可读性、清晰性和可理解性,容易维护,所以应该使用顺序、选择和循环三种基本结构来实现程序,每个程序模块只有一个入口和出口,复杂结构由基本结构通过组合与嵌套来实现,采用自顶向下逐步细化技术进行设计。按照这样的新思维观念,形成了一个新的程序设计方法一结构化程序设计方法。1971年,IM公司在设计纽约时报信息库管理系统时使用结构化程序设计方法,成功完成了83000行程序的编写,成为结构化程序设计方法成功运用的一个范例。随后,结构化程序设计方法又在美国宇航局空间实验室飞行模拟系统的设计等许多项目中得到成功运用。

1973年,Nass和Shneidemarni出著名的盒图(N-S图)1974年ChaPir对盒图进行了扩展,这一创新为结构化程序设计提供了一个强有力的工具,改变了使用传统流程图容易产生随意性的弊病,使结构化程序设计方法得到完善。随后,日立公司的二村良彦等人提出了问题分析图(PAD图)问题分析图是结构化程序设计的又一个有效的工具,从而进一步丰富了结构化程序设计方法151。1971年Weh首先开发出Psa语言,1972年贝尔实验室的RCi设计出C语言,1983年美国正式公布AN—StPasra和AMSPC标准,以Pasca语言和Q吾言为代表的结构化程序设计语言的出现和完善,使结构化程序设计方法得到了更加广泛的应用。

在结构化程序设计方法基础上,人们开始从整体范围思考软件开发方法。软件生命周期理论的提出,是人们正确认识软件开发整体性的结果。一个软件从开始计划,到废弃不用,有一个完整的生命周分析、软件设计、编写程序、测试、维护。根据软件生命周期理论,开发软件不仅仅是编写程序,必须还要完成其它阶段的工作,编写程序只是软件开发的整体过程中的一项活动,因此开发软件时不能只重视编写程序而忽视其它软件开发活动。一个完整的软件开发方法,应该对软件生命周期中的每个阶段的任务和目标都能给出清晰的描述。1970年Rtce首先提出瀑布模型,瀑布模型将软件生命周期概念非常清晰地表达出来1<6,它的出现,标志着人们开始从软件开发的整体性出发来构建软件开发方法。在结构化程序设计取得巨大成功的推动下,以结构化程序设计方法为中心,开始形成结构化软件开发方法。1974年,SeversMYeis和Constantine发表文章“SwcuiKdAnalysis,提出了结构化分析和结构化设计的概念,随后许多专家为结构化分析和结构化设计方法的形成和完善做了大量工作,如1977年R°s^Schmng表文章“Srucmied八na—ysisfrRequiranentsDefinition,,如1978年MYe^出版著作《CcmposieStiucmiedDesg》如1978年Youijon和Constanfne出版著作《StucuredDe如1979年DMarco出版著作《Sttucutd八nalysjsandSystemSPeciifaton〉11],等等,在YoudanConsiantineDMar°oStevensMYera等人的积极工作和倡导下,结构化的思想被应用到软件开发的整体过程,逐渐形成了现在大家熟知的、包括结构化分析、结构化设计和结构化实现在内的完整的结构化软件开发方法。

结构化分析方法使用数据流图和数据字典以及ER图、层次方框图、Wamiel图、PO图等工具来描述软件需求。结构化设计方法使用模块化和自顶向下逐步细化技术根据数据流图等结构化分析的结果来设计软件系统总体结构,使用盒图或PAD图等工具来设计每个模块的算法和数据结构。结构化软件开发方法成为20世纪70年代和80年代占主导地位的软件开发方法,直到现在仍在发挥作用。它的广泛运用,有效地遏制了软件危机的蔓延。

1.2面向对象软件开发方法的创新发展的过程

面向对象软件开发方法包括面向对象分析方法、面向对象设计方法和面向对象实现方法,其核心是面向对象程序设计方法。面向对象程序设计语言的创新发展推动面向对象程序设计方法逐渐形成和完善,从而推动面向对象软件开发方法形成并发展。

面向对象软件开发方法的研究,1967年KistrnNgad和01已JohanDah开发了Simula语言,提出许多面向对象的概念。1972年,八laiKay引用smUa吾言中关于类和对象的概念,开发出3nalltalk语言。1980年,Xerox公司推出比较完善的Snaltk语言。1986年,DiSitalk公司推出了运行在IM—PC机的DOS环境下的Sialtk版本——3nallta]k/ySnallak语言是第一种真正的面向对象语言。面向对象语言的核心概念是类和对象,类和对象的概念的提出是软件开发历史上的一次重要的思维观念创新,正是这一思维观念创新推动了程序设计方法乃至软件开发方法的创新发展。结构化程序设计方法所代表的思维观念创新被称为程序设计方法的第一次飞跃,面向对象程序设计方法这一思维观念创新被称为程序设计方法的又一次飞跃。

在传统的程序设计方法中,数据和施加在数据上的操作被分离成两个独立的部分,而程序被看作是工作在数据上的一系列过程或函数的集合。实际上这样分离不利于使用计算机解决问题。原因在于:如果我们将客观世界中描述的实体称为问题空间中的对象,将计算机中的实体称为解空间的对象。因为客观世界的实体既有静态的属性(即数据)又有动态的行为(即对数据的操作)因此这两方面内容密切相关。由于传统的程序设计方法将这两方面内容分离,无形中加深了问题空间与解空间之间的裂痕,无法实现从问题空间到解空间的自然过渡,增加了软件开发的难度。从软件重复使用和软件维护的角度看,由于数据和施加在数据上的操作被分离成两个独立的部分,尽管传统方法也提倡软件重复使用,但局限于少数函数或过程的重复使用,重复使用的粒度比较小,不利于大型软件的开发;由于数据和施加在数据上的操作被分离成两个独立的部分,使模块的信息隐藏和独立性受到影响,因此传统方法开发的软件的可维护性较差。

在面向对象程序设计方法中,数据和施加在数据上的操作被封装在一起,形成类和对象的概念,用对象分解取代了传统方法的功能分解解所有对象被划分成各种对象类,按照子类与父类的关系组成对象类的层次结构,子类自动继承父类的所有特性,对象彼此间仅通过传递消息实现联系。这一思维观念创新使得问题空间与解空间的结构基本一致,使得从问题空间到解空间的过渡非常自然;使得软件重块的信息隐藏和独立性增强,有利于提高软件的可维护性;为开发者提供了随着对某个被开发系统的认识逐步深入和具体化的过程,与人们通常采用的认识客观世界、解决复杂问题的渐进式思维方式相一致。

Snalalk语言的引起了人们的广泛关注,随后产生了数十种面向对象语言。例如C++语言它是目前影响最广泛的面向对象语言之一。C++语言是贝尔实验室的BjameSwusrup在1980年开始开发,它是在C吾言的基础上进行的开发,当时称新开发出的语言为“含类的C,到1983年时取名为C++。例如Jaa吾言它是目前应用最广泛的面向对象语言之一。JaM吾言是Sun公司的JamesGoSjngPatrickNaughtoriChiWarihMikeSheridanBillJoy等人在1991年开始开发,最初该语言名叫“Oak嫁树)1992年秋Oak问世,后来Sun公司发现Qak吾言所具有的跨平台、面向对象和安全性高等特性非常符合互联网的需要,于是在1995年对该语言进行设计改进,然后在1995年5月正式以Java语言为名公开。

在面向对象程序设计方法基础上,从20世纪80年代中期到90年代初,人们开始从整体范围思考面向对象软件开发方法,面向对象的研究开始向软件生命周期的前期阶段发展,许多面向对象分析和设计((DA/CDD)方法被提出,比较著名的如1990年提出的Wtfs~Brock方法、1991年提出的Coa和Youdm方法、1991年提出的Ranbaugh方法(对象建模技术一CMI)、1992年提出的Jocobsm方法画向对象软件工程一OOE)1994年修改后的Boch方法。这些面向对象分析和设计方法各有各的特点,如何吸收它们各自的优点,将它们综合起来,形成统一的面向对象分析和设计方法,人们开始进行研究。BmC和Rambaugh首先合作,并于1995年10月了统一方法(UfedMehodlM.8版本然后Joobo也加盟到这一工作中来,这三人共同努力,将UM方法重新命名为IML(统一建模语言一UnifiedModelingLanguage)在1996年6月和10月分别了UML!9和UM091两个版本1997年1月正式公布UMU0版本。LML的开发得到了广泛的好评,1997年11月17日CMG賴际对象管理组织^ObjectManagementCtouP)接纳UMU.1版本为基于面向对象技术的标准建模语

法开始得到广泛的应用,成为二十世纪九十年代、直到目前占主导地位的软件开发方法。

2.对两个典型的软件开发方法的创新发展过程的分析

2.1结构化软件开发方法的创新发展过程的四个环节

我们根据前面叙述的结构化软件开发方法的创新发展的过程,可以看出整个过程由以下四个环节组成。环节1找出软件开发活动中存在着的问题。

问题是:在结构化软件开发方法提出之前,软件开发活动中的个体化特征非常严重,编写程序时个人随心所欲,过分追求程序编写技巧,没有一个行之有效的、大家共同遵循的开发准则;错误地认为开发软件只是编写程序,对编写程序之外的其它软件开发环节没有给予重视。

环节2为了解决问题而进行思维观念创新。

新的思维观念是:编写程序时不能个人随心所欲地过分追求程序编写技巧,必须将可读性、清晰性和可理解性放在首位,必须考虑程序的可维护性,要使用三种基本结构(顺序、选择、循环)来实现程序,采用自顶向下逐步细化技术进行设计。编写程序只是软件开发的整体过程中的一项活动,还要完成系统分析和系统设计等其它阶段的工作,因此开发软件时不能只重视编写程序而忽视其它阶段的活动。

环节3按照新的思维观念来构建结构化软件开发方法的核心部分。

核心部分是结构化程序设计方法,通过Pascal语言和C语言为代表的结构化程序设计语言的推出和完善,通过盒图(N—S图)和问题分析图(PAD图)为代表的结构化程序设计工具的推出和完善,结构化程序设计方法逐渐形成并完善。

环节4按照新的思维观念来完善结构化软件开发方法。

完善的内容主要是将新的思维观念应用于系统分析和系统设计过程,在结构化程序设计方法基础上,逐渐形成结构化分析和结构化设计方法(SA/3)方法)使结构化软件开发方法得以完善。

2.2面向对象软件开发方法的创新发展过程的四个环节创新发展过程,可以看出整个过程也是由四个环节组成。

环节1找出软件开发活动中存在着的问题。

问题是:传统软件开发方法将数据和施加在数据上的操作分离成两个独立的部分,导致问题空间和解空间的结构不一致,从系统分析到系统设计和实现的过渡不自然,软件重复使用的粒度小,不利于大型软件的开发,模块的信息隐藏和独立性不好,软件可维护性较差。

环节2为了解决问题而进行思维观念创新。

新的思维观念是:将数据和施加在数据上的操作封装在一起,形成类和对象的概念,用对象分解取代传统方法的功能分解解所有对象被划分成各种对象类,按照子类与父类的关系组成对象类的层次结构,子类自动继承父类的所有特性,对象彼此间仅通过传递消息实现联系。

环节3按照新的思维观念来构建面向对象软件开发方法的核心部分。

核心部分是面向对象程序设计方法,通过Snaltak吾言的推出和完善,通过C++和Java等许多面向对象语言的推出和完善,面向对象程序设计方法逐渐形成并完善。

环节4按照新的思维观念来完善面向对象软件开发方法。

完善的内容主要是将新的思维观念应用于系统分析和系统设计过程,在面向对象程序设计方法基础上,各种面向对象分析和设计(OOA/OOD)方法(Wifs_Brock方法、Coad和Youdon方法、Ranxbag方法、Jooobson方法)的提出,LMU统一建模语言-UnifiedMadefngLanguage)的出现和完善,使面向对象分析和面向对象设计方法逐渐形成并完善,从而使面向对象软件开发方法得以完善。

2.3小结

从上面分析我们看到,不论是结构化软件开发方法的创新发展过程,还是面向对象软件开发方法的创新发展过程,都由四个环节组成。这决不是巧合,这说明软件开发方法的创新发展过程具有其内在的规律性,结构化和面向对象软件开发方法作为两个成熟的软件开发方法,它们的创新发展过程都遵循这个规律。这个规律可以简单归纳为四个环节,环节L找到现存的某些问题,环节2:为了解决问题而进行思维观念创新,环节3按照新的思维观的思维观念来完善软件开发方法。

3其它软件开发方法的创新发展过程

以上由两种典型的软件开发方法创新发展的过程所总结出来的规律性,具有普遍意义。我们来看其它软件开发方法创新发展的过程,例如敏捷(A&ile)软件开发方法和面向八gm軟件开发方法,这两种软件开发方法正在发展中。

3 1敏捷软件开发方法

敏捷(ASle)软件开发方法包括XPSCRIMDSMFDDA3)等一类软件开发方法,这类方法在20世纪90年代后期逐渐发展起来,2001年

2月,敏捷软件开发方法的一些创始人在美国犹他州成立敏捷联盟(ASlAlliance),了敏捷软件开发宣言,公布了他们开发软件的新的思维观念,从而引起人们的广泛关注。

敏捷软件开发方法的出现,是人们针对传统的软件开发过程复杂繁琐、产生并且维护大量文档、缺乏对开发过程中各种变化的有效和及时的反应等问题,为了适应变化、充分发挥人的主观能动性、简化开发过程、提高开发效率,而研究并提出的。敏捷软件开发方法强调适应变化,强调以人为中心,强调简单化和快速反馈,提倡刚好够用,追求快节奏的软件开发,对软件生产率高度重视。

敏捷联盟宣布了敏捷软件开发方法的4条价值观和12条实践原则,这4条价值观和12条实践原则挑战传统观念,倡导新的思维。4条价值观是:(1重视个人的创造力和相互沟通甚于软件过程和软件工具;(2)重视当前软件甚于理解文档;(3重视用户合作甚于仅仅依赖合同;(4)重视对变动的响应甚于一味遵循计划。12个实践原则是:(1)优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意;(2)即使到了开发的后期,也欢迎改变需求;(3)经常性地交付可以工作的软件,交付的时间间隔越短越好;(4)业务人员和开发人员天天在一起工作;(5)围绕被激励起来的个人来构建项目,给他们提供所需要的环境和支持,并且信任他们能够完成工作;(6撮有效果并且富有效率的传递信息的方法,就是面对面的交流;(7)工作的软件是首要的进度度量标准;(8)提倡可持续的开发速度;(9)不断地关注优秀的技能和好的设计会增强敏捷设计出自于自组织的团队;(12)每隔一定时间,团队会在如何更有效地工作方面进行反省,然后对自己的行为进行调整。

敏捷软件开发宣言后,敏捷联盟的成员们纷纷著书立说,完善和发展敏捷软件开发方法的理论。例如敏捷联盟的发起人Mat在2002年出版了著名的《AgleSofWareDevelopnentPrjncp)]e,sPalesandPraefce》〉(《敏捷软件开发:原则、模式与实践》)一书,该书由邓辉译成中文,由清华大学出版社2003年9月出版;例如敏捷联盟的重要成员Highsnih在2002年出版了《AgeSOfwareDevelop—mentEoosystemS)(《敏捷软件开发生态系统》)一书,该书由姚旺生和杨鹏等译成中文,由机械工业出版社2004年1月出版;例如敏捷联盟的重要成员Cockbuin在2001年出版了《AgileSofwaieDevelop—men》(《敏捷软件开发》)一书,该书由俞涓译成中文,由人民邮电出版社2003年11月出版。目前敏捷软件开发方法还没有像面向对象软件开发方法那样成熟还处于发展之中。敏捷软件开发方法没有统一的开发模式,敏捷软件开发方法没有专用的编程语言,也没有专用的分析和设计的工具,因为敏捷软件开发方法的思维观念创新之处与结构化和面向对象软件开发方法不同,它可以充分利用现有的语言和工具。虽然敏捷软件开发方法不如结构化和面向对象软件开发方法那样成熟以及应用广泛,但在需求模糊或快速变化下的一些小型的软件项目的开发上还是非常适用的。

分析敏捷软件开发方法的创新发展过程,对照结构化和面向对象软件开发方法创新发展过程的四个环节,可以看出,敏捷软件开发方法的创新发展经历了环节1和环节2目前处于环节3环节1找出的问题主要是“传统软件开发方法的开发过程复杂繁琐、产生并且维护大量文档、缺乏对开发过程中各种变化的有效和及时的反应。”;环节2提出的新的思维观念通过敏捷宣言中的4条价值观和12条实践原则体现出;环节3是按照新的思维观念来构建软件开发方法的核心部分,以Main的名著《ASlSoftvareDevel°PmentPrjncJ^lesPatternsandPac#«》为代表的一批著述的发表,说明敏捷软件开发方法的核心部分正在逐渐形成之中,但是目前还没有形成一个统一的、能为大家所接受和认可的标准化方法。由于敏捷软件开发方法的思维观念创新之捷软件开发方法发展的环节4也一定具有自己的特点,不会照搬结构化和向对象软件开发方法的模式。我们期待着敏捷软件开发方法的进一步发展和完善。

3.2面向Agen软件开发方法

由于ntene的广泛应用,使得计算机软件的规模越来越大、复杂性越来越高,人们对计算机的要求也越来越高。人们期望将来计算机不仅仅被动地充当人类的“佣人”角色,还能够充当人类的“管家”和“”角色,能主动地、自发地为人类做更复杂的工作。人们希望通过使用Agern理论和技术开发出具有更高智能特征、更高灵活性并能更友好地与人类进行交互的计算机系统11411151。但是传统的软件开发方法难以担负这种具有智能特征的复杂软件的开发任务于是自20世纪90年代中后期以来人们陆续提出了一些面向Agen软件开发方法,比较有影响的包括MaS方法、MASCommonKADS方法、Gaia方法、AgentUML方法、Tropos方法等I16-181Agen概念来自于分布式人工智能研究领域,目前关于Agen概念的定义还有许多争论。一般认为Agen是一个具有自主性、交互性、反应性、社会性等特征、能在某一环境下持续发挥作用以实现设计目标的行为实体。Agen与对象是两个完全不同的概念,对象只是封装了属性和方法并且通过传递消息与其它对象进行交互的实体而Agen由于具有自主性等特征,所以它的抽象程度比对象更高,更贴近现实世界中的行为实体。

面向Agn软件开发方法基于Agen概念,它给软件开发带来新的思维观念,新的思维观念认为:任何一个系统,无论是应用系统还是软件系统,是由一个或者多个Agen购成的,每个Agen嘟是自主的行为实体Agen伺存在着复杂的结构关系,并通过高层的交互(如合作、协商和竞争等)来进行Agent间的相互作用,从而实现系统的整体设计目标。

目前将面向Agen軟件开发方法分为三类:基于知识工程的方法、基于对象技术的方法和基于角色、组织模型的方法1191120。基于对象技术的方法借助于面向对象软件开发方法,将Agen视为一种特殊的对象,通过对现有面向对象软件开发方法以及建模语言(尤其是UML)的扩充来支持对基于A-gn係统进行建模、分析和设计,MaSE方法和Agent法借助于知识工程(如人工智能、认知科学等)领域的概念、思想和技术对基于Agent系统进行建模、分析和设计。一种常用的方法是将Agent视为由各种认知部件所组成的意向系统,如信念、目标、意图、规划等等,MAS-ConnonKADS方法和TPos方法是这类方法的代表。基于角色、组织模型的方法借助于组织学和社会学的思想,将基于Agent系统视为是一个组织或者社会,利用社会学和组织学中的抽象概念(如角色、组织、组织规则、职责、权利)和思想来对基于Agen系统进行描述、分析和建模,Gaia方法是这类方法的代表。

上述各种面向Agent軟件开发方法都不成熟距离大规模的实际应用还有很大的差距,无法像面向对象软件开发方法那样为人们所接受。总体上看,面向aen軟件工程方法的研究与应用仍然处于探索阶段,目前还没有形成一个吸取了各种方法优点的、能为大家所接受的、统一的面向Agen软件开发方法。

分析面向Agen欺件开发方法的创新发展过程,对照结构化和面向对象软件开发方法创新发展过程的四个环节,可以看出,面向Agen軟件开发方法的创新发展经历了环节1和环节2目前处于环节3环节1所找出的问题主要是“开发具有更高智能特征、更高灵活性并能更友好地与人类进行交互的计算机系统。”;环节2所提出新的思维观念是“将任何一个系统都看成是由若干个具有自主性、交互性、反应性、社会性等特征的Agen构成的,它们能在某一环境下持续发挥作用以实现设计目标。”,环节3是按照新的思维观念来构建软件开发方法的核心部分,虽然目前各种面向Agen软件开发方法百花齐放,但没有形成统一的方法,并且没有一种成熟的面向Agen程序设计语言,所以面向Agen軟件开发方法的核心部分的形成还有很长的路要走。

4结束语

篇9

关键词:软件工程 软件开发 流程

中图分类号:TP311.52 文献标识码:A 文章编号:1002-2422(2008)01-0062-02

随着计算机应用的日益普及和深入,人们对软件的需求量急剧增加,但此时计算机软件的开发技术却远远没有跟上硬件技术的发展,使得软件开发的成本逐年剧增,更为严重的是,软件的质量没有可靠的保证。软件开发的速度与计算机普及的速度不相适应,软件开发技术已经成为影响计算机系统发展的“瓶颈”。早期所形成的计算机软件开发的错误方式,严重阻碍了计算机软件的发展,导致了20世纪60年代软件危机的发生。20世纪60年代后期,西方的计算机科学家开始认真研究解决软件危机的方法,提出借鉴工程界严密完整的工程设计思想来指导软件的开发与维护,并取得了可喜的成果。软件工程首次出现在1968年由NATO组织的一次计算机学术会议上,其目的是倡导工程的原理、原则和方法进行软件开发。因此,一门新的学科一软件工程学(Software Engineering)诞生了。软件工程学是一门介于软件科学、系统工程和工程管理学之间的边缘性学科。随着软件的发展和商品化,软件工程学的研究范围越来越广,是软件开发过程的理论指导。主要包括可行性分析、项目计划与质量管理、需求分析、总体设计、详细设计、程序设计、软件测试、系统实施、软件维护和文档规范等内容。软件开发流程就是遵循着软件工程的理论基础来进行的。

1 国内外软件工程理论应用现状

国外的软件工程理论的应用相对比较成熟,其中表现最为突出的是印度。印度作为亚洲最大的软件外包大国之一,其软件工程的思想在软件开发流程中的应用是比较好的。整个软件开发过程已经完全成为一个流程化的过程。其软件开发行业30%以上的编程人员的流动性对软件开发工程不会造成什么影响,可见他们的编程规范及流程规划的水平。从以下特点之中可以找到其软件开发行业发展如此成熟的答案。(1)流程重于项目:(2)软件质量管理独立于研发部门,专门检查研发部门的开发流程是不是按照既定流程走,如果软件质量管理人员觉得流程不对,会直接上报高层,项目肯定就此停止;(3)所有的东西(包括草稿)都有文档,详细文档要求达到只有这个文档就可以编码的程度,一般写文档时间占60%,编码时间极少;(4)有各种详细的同行评审,包括项目组内,项目组件以及与客户之间的沟通,而中国相对于印度而言差距很大,这种差距不在于研发技术是否先进,而是在于软件工程的思想重视与运用水平的差距。从开发团队上来看,中国的开发团队人员过少,仅仅是“作坊式”的开发方式,软件的生产速度、产量和品质上都与印度等国家差距日渐变大。因此,从根本上重视软件工程的开发思想,严格执行软件开发的规范流程,将是改变我国当前软件开发现状的有效途径。

2 软件系统开发流程分析

典型的软件过程有Waterfall Model(瀑布模式)、Iter-ative&Incremental Model(反复渐进模式)和Spiral Mod-el(螺旋模式),无论采用哪种模型方式,软件开发过程最起码要包括支持软件整个生命期的活动。基本的生存周期包括软件计划、需求分析、总体设计、详细设计、编码及单元测试、综合测试、移交及软件维护。

由此可以看出,需求分析阶段是软件开发流程的第一步,是软件开发最首要的工作,直接影响到软件设计和开发的一切流程。如果需求分析工作不到位,将会导致与用户要求存在偏差的严重后果。国内软件企业对需求分析工作的重视程度普遍低于流程中的设计和开发。国内大部分企业特别是小软件企业将70%的时间花在软件设计开发上,需求分析过程只占整个流程中的15%。相比之下,国外开发企业是40%的时间进行需求分析,比设计开发时间还多10%。需求分析阶段要根据软件开发需求特点确定采用何种软件工程方法进行设计。目前比较典型的方法有结构化的方法、面向对象的方法、基于构件的方法、基于A-gent的方法、基于净室技术以及基于敏捷技术的方法等。由于后三种方法相对是针对某些特殊用途而产生的,适用性上有很大的局限性,有待进一步完善,因此,仅对主要的三种方法在操作单位、方法特性等方面进行了比较,如表1所示。

从表中可以看出,基于组件和面向对象的方法更适合于当前复杂的开发应用,成为当前的主流方法。如图1所示需求分析阶段还包括可行性研究,需求确认和需求复合等工作。对于设计阶段而言,包括总体设计、概要设计、详细设计,同时形成相应的文档。然后进行编码的实现,综合全面的测试,包括单元测试、系统间测试、系统整体测试、性能测试、极限测试以及上线的运行测试等,最后进行文档、培训和维护的工作。中间某些环节会根据实际的用户需求的改变进行反馈,修改和完善。

篇10

论文摘要:伴随计算机技术快速发展,不断产生各种应用软件,并面向各应用领域满足需求,对软件进行维护和保护已成为软件行业所面临的一个现实问题。伴随软件工程的不断完善,使软件开发越来越复杂,并具有一整套科学方法,进而提升了软件系统的可靠性、可理解性和可维护性,提升了软件生产率,降低了开发成本。该文对计算机软件可维护性方法进行了探索和研究,并作出应有的贡献,希望为今后软件可维护性的发展做出一些应有的贡献。

计算机软件是用户和硬件之间的接口界面。计算机用户可以通过软件和计算机实行沟通,软件是计算机系统设计的重要根据。为能方便用户,让计算机体系极具较高的整体效用,在计算机系统设计时,要对硬件和软件相结合的全局进行考虑,并满足用户的需求。软件保护技术,即怎样防止破解合法软件,软件保护产品所涉及内容极为宽泛,属于综合技术范畴之内。在软件生命周期中,每个阶段均采取了科学和优秀的管理方法和技术,并在每个阶段结束前,从技术和管理方面实行严格审查,只有合格了才能进行下一阶段的工作,这使得软件开发工程项目全过程通过有条有序的方式进行,以确保软件的质量,尤其是提升了软件的可维护性。

1计算机软件维护性概述

在软件生命周期,涵盖了两个重要阶段,包括开发期和运营期,运行期是系统有效发展的阶段,在系统开发时,出于花了很多大量人力和物力资源,所以,大家总是希望能看到,可以尽可能地延长系统的运行周期,使软件发挥更大的性能,与其他相对比,软件成本也较低。然而,这却尚未出现以确认该软件不存在错误的技术。事实上,该软件运行时,它是不可能不修改软件的,开发是一项大投资,可以提高生产效率,降低成本,并保证软件的品质,人们总是希望使用现有的软件,对其扩张或移植。所以,在操作过程中,软件人员的任务是继续进行修改软件,这项工作就是所说的系统维护。

软件维护一般包括三大类,一是纠正性维护(Corrective Maintenance)。这类工作主要是纠正软件存在的错误;二是适应性维护(Adaptive Maintenance)。这类工作主要是为能适应变化的外部环境,对软件应用程序做出修改;三是完善性维护(Perfective Mainte nance)。这类工作是为能提升系统性能或扩大其功能,也对软件进行更改。这三个方面的维护工作,第二和第三层面维护方面所占的份额最大,占80%左右的总维护工作。可见,该软件在运行过程中也是开发商的维修过程,维护软件的价值也是不用多说的。根据调查表明,软件维护成本已占到整个软件生命周期成本的70%以上,软件的可维护性居于首位。但软件维护的难度越来越大,并已成为目前所面临的最大问题。

2计算机软件可维护性一般方法

2.1提升软件工具模块化和质量技术

在软件开发过程,有效方法之一是提高软件质量和降低成本,其有效技术也是提高可维护性。它的优点是,如果需要改变一个功能模块,只需要改变这个模块,不会影响到其他模块;如果程序需要添加一些功能,只需完成这些功能,增加一个新的模块或模块层;程序测试和重复测量更容易,序列错误很容易发现和改正,以提高程序的运行效率。采用结构化程序设计技术,以提高现有系统的可维护性。这种办法需要掌握更换模块的外部特征,不需要把握其内部运作的状态。它可以帮助其减少新的错误,并有机会提供一个结构化的模块,并逐步取代非结构化的模块,运用自动重建结构和重新格式化的工具。

2.2创建精密的软件品质目标和优先级

程序的维护性应该是可以理解的、可靠的、可修改和测试的、可移植的、可以使用和效率高的。为了实现这些目标,要求付出的代价很大,也未必是可行的。一些质量特性存在互补性,如可理解性和可测试性、可理解性和可修改性等。然而,其他一些质量特性互相矛盾,如效率和可移植性、效率和可变性。因此,各品质特性的维护性要求可以得到满足,但它们相对重要性应遵循程序使用作用和计算环境变化而变化。

2.3选有可维护的程序设计语言

根据程序可维护性,选择程序设计语言,其影响是极大的。低层次的语言就是机器语言和汇编语言,这非常难以理解和掌握,也更难以对其进行维护。高级语言更容易理解,具有更好的可维护性,而低层次语言相对要差,但作为高层次语言,难易程度不一样也是可以理解的。一些第四代语言是过程化语言,而有些是非程序语言。不管是什么语言,程序编制出来都很容易理解和修改,但存在指令数量可能会少一个数量级,而语言编制数量级要多一个,其开发速度会快多倍。

3加强计算机软件可维护性方法发展与研究

在软件维护过程,经常遇到一些问题,如频繁的员工流失率,已离开的原有开发商;缺乏文档资料,很难了解其他人开发体系;不符合程序或文档的文件不适当,并很难理解,软件结构不合理,难以修改或修改后容易出现错误。该软件易于开发,但其难以维持,通用性较差,这是以前设计软件比较常见的通病问题,也是在同一个系统或重复开发的原由。重复开发会加强其系统功能,但单位人力、物力和财力资源会被浪费,而且还影响系统的正常使用。在软件开发过程,应充分和适当地思索,其系统通用性和自我维护能力,以避免系统开发重复是十分必要的,而且软件开发过程是需要重点留意的地方。

如果要设计多功能易于维护的软件,就必须有以灵活、通用和易维护为主旨的设计方法和思路。体系共性和个性方法分析,实现了对系统自维护功能的具体保证。在实际应用进程中使用此系统,并且得到用户的好评。在该系统自维护功能概念基础上,调整其参数,其实可以做一个小的开发工具,进而可以开发类似的系统管理。这至少表明,引入该系统自维护功能定义,为系统使用和维护管理带来了极大方便。

领域计算机管理在企业中的应用范围更为广泛,程序更加深入。计算机管理应用程序可大致分为两个主要方面,即工业控制和信息化管理。信息化管理水平,即使市场上有很多的软件支持,但考虑到企业的实际情况,要能更好地适应自己的管理模式,并更有效地管理自己的信息,一些核心应用系统主要由企业自主开发达成。在大多数的软件管理上,报表类软件为大部分,它们处理的报表主要是计算总的检查验证等。

执行软件设计上,自我维护功能定义的引入,使软件更具生命力。系统自维护功能给系统设计带来了一定难度,需要采取一些额外系统资源占用,但随着计算机技术的发展,到今天为止,它的资源不被认为是一个重要因素,考虑到对系统维护性影响,达到自我维护功能是值得的。对于其他软件系统的开发,如在开发中能够充分考虑系统的共性和个性,添加到系统自我维护功能的观念,体现技术应用,且实现更好的发展。

4结束语

总之,当前计算机技术在整个国民经济当中具有相当广泛的领域,在人们的日常生活中,计算机技术可以说是无处不在,以软件技术作为其内在灵魂的计算机信息系统,正在对系统高度集成化、结构广泛分布化、信息多元化和功能智能化等一系列新型发展方向越来越重视,并逐步在实践中得以实现。在软件开发各个阶段,软件的可维护性是在这一阶段形成的,因此,必须在整个软件开发的各个方面上,以提高软件的可维护性进行贯穿。学习和掌握软件生命周期的各个阶段,对软件的可维护性会产生一定影响,对软件开发和一般软件维护人员的实际工作具有极大裨益。

参考文献:

[1]丁剑洁.基于度量的软件维护过程管理的研究[D].西北大学,2006.