软件开发技术范文

2024-06-10

软件开发技术范文(精选12篇)

软件开发技术 第1篇

关键词:组件技术,软件开发,测控软件

在现代的计算机网络信息时代, 计算机扮演着十分重要的角色。从某种角度来看, 计算机技术在推动社会发展方面扮演着十分重要的角色, 对于改变现代人类的生活方式产生了积极的影响。计算机技术的不断向前发展, 其动力源泉主要是计算机软件开发技术的应用, 也就是在计算机发展过程中, 为了满足计算机网络的发展, 实现全新的需求, 计算机软件开发技术需要不断的进步和发展。所以, 在新的时期, 计算机所扮演的角色逐渐的多样化, 并已经成为现代社会文明进步的主要技术依托。这就更加强调计算机软件开发技术的重要性, 始终坚持以人为本的开发理念, 提高计算机软件开发的有效性和社会价值, 进而推动整个社会的进步和发展, 最终造福人类社会。

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

进入新世纪以后, 我国计算机在较短的时间内突飞猛进, 并逐渐改变了人们的行为方式和生活习惯, 软件自动工作的运作方式和功能帮助我国计算机更好的向前发展。目前我国计算机软件发展现状主要表现在软件产业迅速发展和崛起, 关于计算机软件开发的相关人才队伍不断得到扩展, 以及我国软件方面的产业额在世界计算机软件产业中所占的比例持续提升。在美国次贷危机后期, 为了避免金融危机对我们计算机软件开发产业的影响, 我国的软件市场逐渐转到了国内市场。这个时期我国IT服务行业逐渐的兴盛起来, IT服务产业链迅速的扩展开来, 导致了市场对相关技术人才的需求量持续升高, 所以最近几年, 我国从事计算软件开发的工作人员的数量增多, 很多高职院校和本科学校相继的开设了相关的课程。

硬件和软件组成了计算机。计算机软件得以运行必须依靠计算机硬件的支持。但是只有计算机硬件而没有计算机软件, 硬件也无法发挥其应有的作用。硬件和软件互相依靠, 缺一不可。现代人们所使用的各种智能化的设备都是通过计算机软件的设计来完成的。随着越来越多智能软件的开发运用, 人们的生活习惯和固有的工作方式正在被逐渐改变。软件的开发已经对人类产生了重要的影响, 而软件开发本身也是计算机软件工程的核心所在, 是使整个计算机行业得以突发猛进发展的关键因素。但是软件的开发并不是一朝而成的, 它需要系统和繁琐的过程, 耗时也随着难度的不同而有长有短, 这就需要进行软件开发的工作人员具有专业的开发技术。计算机软件开发主要分为两大类:一类是计算机系统软件的开发, 第二类是计算机应用软件的开发。计算机软件的开发技术已历经了数个阶段的转变。

2组件技术分析

2.1组件定义

组件技术不是一个编程语言, 而是一种软件开发的标准方法体系, 是面向对象开发技术的延伸。采用组件技术可以进行大型软件开发, 它有利于分布式应用技术的实现, 有利于应用系统的升级和定制, 也利于多人合作开发。同时, 基于组件的软件开发支持组装式软件复用, 是提高软件开发效率和质量、缩短系统研制周期的现实可行的途径。

组件是可复用的软件单元, 它封装了一定的数据、属性和方法, 可以独立部署并提交给第三方进行组合, 而可复用组件是指功能独立、可重用的组件。随着对组件技术应用的不断深入, 组件的概念已不仅限于源代码组件, 而是延伸到系统的软件构架、需求规约、测试计划和文档数据等与开发活动相关的有用信息。

组件模型定义了组件的本质属性, 规定并遵循二进制外部接口标准, 规范了组件与软件构架、组件与组件之间的交互机制, 组件内部实现细节对用户透明, 具有即插即用的特性。因此, 组件具有以下特点:

(1) 组成系统的组件都具有确定的上下文依赖关系, 组件对外提供服务, 供其它组件调用;同时, 组件在提供服务的过程中也有可能调用其它组件提供的服务;

(2) 组件通过接口给其它组件提供调用服务, 这些接口是服务提供者和服务调用者之间的协议, 具有易扩展性。

(3) 组件封装了内部结构, 它实现细节对外透明, 这样具有相同应用的不同系统都可以来调用该组件并创建自己的应用程序, 提高组件重用性。

在一个基于组件的软件系统中, 各组件间的交互是通过组件提供的接口来实现, 接口提供了组件交互所需的全部信息。接口是对组件提供和请求服务的抽象描述, 是组件服务及其用法的契约, 它通过一种与平台无关的语言IDL (Interface Define Language) 来定义, 而且是二进制兼容, 使用者可直接调用执行模块来获得对象提供的服务。

2.2基于组件的软件复用技术

组件具有平台和语言无关性, 支持即插即用, 是支持软件复用的核心技术。软件复用是指将已有软件的各种相同或相似元素重复建立新的软件系统的过程。软件复用包括两个相关的过程:可复用组件的开发和基于可复用组件的应用系统构造。目前制定实现规范并比较适用于复用的组件模型有CORBA/ORB、COM/Active X、Java Bean以及.NET等。通过对以上组件模型的研究与对比, 本系统选定.NET中的Windows Forms作为本实时测控软件的组件模型, 使用.NET Framework的公共语言运行时, 组件都建立在一个共同的底层基础上, 不再定义使用复杂的管道接口, 对象可以直接交互访问, 有利于组件的自由配置, 同时, 利用.NET技术的分层结构特点, 采用“搭积本”的方式生产软件, 大大提高软件开发效率。

3基于组件技术的实时测控软件开发

3.1监控软件架构设计

在组件技术中, 一个组件就是一个接口集, 它通过接口对功能进行封装。因此, 对于同一个应用程序架构, 只要其使用的接口集合不变, 即可通过更换支持同样接口集的组件来获得不同应用, 也可重复利用同一个组件或对组件进行二次开发。而基于组件建立的软件架构和应用开发, 其最大优点在于可以复用的应用结构和软件单元。

实时测控软件主要是对实时测控数据的处理、评估和显示, 而测控数据主要包括光测、雷测、遥测及GPS测量等类型, 其处理过程通常包括数据采集、数据解析、数据处理和结果评估等四个部分, 针对以上4种数据类型, 在基于组件技术思想下, 其处理架构可统一进行设计。

针对靶场测控系统中光测、雷测、遥测及GPS测量等数据处理应用, 通过将数据采集组件、数据解析组件、数据处理组件、结果评估组件替换成相应功能的组件, 即可实现在保持软件架构不变的前提下开发出不同的应用系统。

3.2基于组件技术的软件升级维护

组件接口是对某一功能的一套抽象描述, 具有封装性, 它通过接口与其功能实现分离, 并以接口作为客户与组件 (或组件之间) 交互的唯一方式, 因此, 只要保持接口不变, 就可以将系统中的组件用新的组件替换, 以随时进行系统升级维护。

当需要对系统进行升级维护时, 在软件架构完全保持不变的前提下, 对具体的组件进行替换, 只要保持接口不变, 程序无需重新编译链接, 系统即可通过使用更新后组件中的新接口来获得新特性, 从而实现系统的升级维护。

3.3利用组件复用技术实现软件功能扩展

组件复用是利用已有组件创建新组件, 即通过第三方产品来构建自己的产品。组件复用是通过包容和聚合来实现的, 包容时外部组件包含内部组件的接口, 它由外部组件接收此调用请求再交由内部组件来处理, 聚合时外部组件直接调用内部组件的接口, 它让内部组件直接处理该调用请求。

在C++语言, 通过在外部组件中增加内部组件接口, 并把调用请求转发给内部组件即可实现包容, 对于聚合, 在内部组件中维护一个外部组件接口指针 (如m_p Unknown Outer) , 通过委托代理机制, 让内部组件接口提出的查询接口请求由一个委托接口转发至外部组件, 再由外部组件接口查询内部组件。这样就可以实现一致的访问, 即不管是通过外部组件的接口, 还是内部组件的接口, 都可以查询到内外组件所支持的接口集合。

在实际应用中, 软件开发不仅有大量的、功能强大的商业化组件可以使用, 而且有应用广泛的、成熟的靶场测控系统专用组件可以使用, 如组件化的数据接收、量纲复用、坐标转换、滤波平滑、精度评估等功能模块。因此, 利用好组件复用技术可以有效扩展靶场测控数据处理系统的软件功能, 对于靶场测控系统建设具有重要的现实意义。

4结束语

基于组件技术的实时测控数据处理软件开发可以大大提高软件开发效率, 大幅度降低系统的开发费用, 有效解决靶场测控数据种类多、规模大、复杂性高的难题, 为靶场测控手段的不断发展提供了技术支持。

参考文献

[1]支超有, 李振水, 薛峰.基于模型组件的虚拟试验系统框架研究[J].计算机测量与控制, 2011, 19 (04) .

软件技术开发合同 第2篇

1.交付违约

乙方应在合同所规定的时间内完成和交付本合同规定的项目。如开发工作延时在经过甲方同意后,可以给予乙方 30__日的宽限期,宽限期内不追究乙方的违约责任。如乙方在宽限期内仍未依据本合同的规定完成和交付本合同所规定的项目,甲方有权要求乙方作出补偿和采取补救措施,并继续履行本合同所规定的义务。

1.1 每延期天,乙方应向甲方支付合同总价%的违约金

1.2 如延期时间超过天,甲方有权终止合同,除前款所约定的违约金外,并要求乙方支付合同总价的___30___%作为对甲方的赔偿。如甲方由此终止本合同,乙方应在两个星期内返还甲方所支付的费用和报酬并依甲方的指示退还或销毁所有的基础性文件和原始资料。

2.付款违约

2.1 如甲方未按合同规定的期限付款,每延期 30___天,甲方应向乙方支付合同总价__5__%的违约金;

2.2 如延期时间超过 100___天,乙方有权终止合同,除前款所约定的违约金外,乙方还可要求甲方支付合同总价的___30___%作为对乙方的赔偿;

2.3 如合同继续履行,甲方除支付上述违约金外,仍应按照合同规定的金额付款,乙方履行本合同的日期相应顺延;

3.保密违约

任何一方违反本合同所规定的保密义务,违约方应按本合同总价的___10_%支付违约金。

4.其它条款违约:任何一方违反本合同所规定的义务,除本合同另有规定外,违约方应按合同总价_ 10__%的金额向对方支付违约金。

5.如发生违约事件,守约方要求违约方支付违约金时,应以书面方式通知违约方,内容包括违约事件、违约金、支付时间和方式等。违约方在收到上述通知后,应于___15___天内答复对方,并支付违约金。如双方不能就此达成一致意见,将按照本合同所规定的争议解决条款解决双方的纠纷,但任何一方不得采取非法手段或以损害本项目的方式实现违约金。

十二、综合条款

1.如本合同附件中的条款或本合同签署之前所签署的任何文件与本合同的条款相冲突或不一致,以本合同为准。

2.任何一方可以根据其经营需要对外披露本合同的存在或其性质,但本合同的具体条款属于保密范围,未经对方的同意,不得向第三方披露。但以下情况除外:

2.1 法院或政府有关部门的要求;

2.2 法律规定;

2.3 一方向为自己服务的法律顾问披露;

2.4 一方向为自己服务的会计、银行、其他的金融机构披露;

2.5 当事人实施收购、兼并或相类似的行为(采取保密措施)。

3.不可抗力

3.1 由于地震、台风、水灾、火灾、战争以及其他不能预见并对其发生和后果不能预防、不能克服或避免的不可抗力,直接影响本合同的履行或者不能按照合同的约定履行时,遇有上述不可抗力的一方可以免除相关合同责任。但遇有上述不可抗力的一方应立即书面通知对方,并在 15天 之内提供不可抗力的详细情况及合同不能履行,或者部分不能履行,或者需要延期履行的理由和有效的证明文件。按不可抗力对履行合同影响的程度,由双方协商决定是否解除合同,或者部分免除履行合同的义务,或者延期履行合同。一方迟延履行本合同时发生不可抗力的,迟延方的合同义务不能免除。

3.2 受到不可抗力影响的一方,应尽可能地采取合理的行为和适当的措施减轻不可抗力对本合同的履行所造成的影响。没有采取适当措施致使损失扩大的,该方不得就扩大损失的部分要求免责或赔偿。

十三、争议解决

1.如果合同双方在履行本合同过程中发生争议,双方应首先采取友好协商的方式解决该争议。如协商不成,双方同意向 苏州仲裁委员会 提起仲裁,并按其仲裁规则进行仲裁;

2.如对任何争议进行仲裁或向人民法院提起诉讼,除争议事项或争议事项所涉及的条款外,双方应继续履行本合同项下的其它义务。

十四、通知

1.为享有本合同所规定的权利及履行本合同所规定的义务或有关违约交涉而需通知另一方时,通知方应采取书面形式,以挂号信件或以专人快递送达方式送达被通知方,送达生效。

2.如一方欲改变通知地址,应提前以书面方式通知另一方。

十五、合同的生效、变更与终止

1.本合同经双方各自指定的代表人签署和盖章后生效。

2.如发生以下情况,任何一方有权终止合同,但须以书面方式通知对方:

2.1 一方进入破产、撤销或已进入清算阶段,或被解散、被依法关闭;

2.2 一方财务状况严重恶化,不能支付到期债务;

2.3 出现了合同规定的或法定解除事由。除本合同和法律法规另有规定外,任何一方发生上述情况,将被视作违约,另一方有权依照本合同的规定,追究该方的违约责任。

3.本合同一经签署,未经双方同意,任何一方不得随意更改本合同。其它任何口头或未包含在本合同内的,或未依据本合同制定的书面文件,均不对双方发生拘束力。如本合同在履行过程中有任何变更、补充或修改,双方应另行签订书面协议。

4.本合同一式___两____份,各执__一__份,具有同等的法律效力。

甲方(签章):__________________ 乙方(签章):__________________

_________年____月____日 _________年____月____日

软件技术开发合同范文篇三

甲方(委托人):XX公司

乙方(受托人):XX公司

协议签订地址:

经充分沟通和友好协商,甲方委托乙方开发XX公司综合办公系统(以下简称综合办公系统),并由乙方为甲方提供该系统的实施和使用中的相关技术支持服务。为了规范双方在此项目上的权利和义务,在《中华人民共和国合同法》的原则指导下,订立本协议,由双方共同遵守。

第一条 开发和技术支持服务的内容和范围

1. 乙方负责综合办公系统应用软件的设计和开发,综合办公系统用于甲方行政办公,包括个人事务、公文流转、审批流程、资产管理、人事管理、行政辅助、系统维护等七个功能模块,具体要求详见附件《XX公司综合办公系统软件需求说明书》。

2. 《XX公司综合办公系统软件需求说明书》将作为系统开发和验收的依据,定义了系统开发的要求(包括软件功能和性能方面的要求)。

3. 如在开发或技术支持服务过程中,甲方提出《XX公司综合办公系统软件需求说明书》中未作规定的新需求或修改原有需求定义,乙方应客观地评估该变化,告知甲方该变化所引起的技术可行性及工作量(并告知评估方式和依据)。对于技术上可行且甲方要求实现的变化,其费用及时间由双方另行协商。对于后续开发费用的计算标准,乙方承诺不高于目前市场平均标准咳嗽2万元。在本协议之外的需求变更不影响本协议的执行。

4.在开发完成后,乙方负责综合办公系统的应用软件安装、调试和培训。安装、调试系统所需的网络、设备和系统软件环境由甲方负责提供,培训对象由甲方根据乙方上线功能要求的角色来选定,培训内容为综合办公系统的操作与管理技能,培训方式为在甲方指定地点集中培训,具体培训场地、人员和时间由双方协商。

5.乙方在免费服务期内提供5×8小时(国家法定假日除外)的技术支持服务,服务内容包括:乙方负责开发的XX公司投综合办公系统的技术咨询、软件系统恢复、软件系统功能故障处理。

6.XX公司系统所使用的甲方自购设备,其维护不包含在乙方提供的免费技术支持中,如:服务器硬件维护、服务器操作系统维护、用户计算机终端维护、数据库备份和恢复。

7.乙方负责将甲方按乙方标准备份的数据恢复。乙方在培训阶段对甲方系统管理员进行数据备份操作培训,并提供操作说明。

8. 在本系统正式上线后,如甲方要求,乙方可制作一套英文版提供给甲方使用。该版本与中文版本共享数据,可供国外用户与国内用户协同办公。具体开发要求、使用范围、用户培训方式、翻译方式、工期和费用在实施前协商,协商后另行签订协议。

第二条 开发和技术支持服务的方式

1.乙方指定开发人员到甲方现场进行需求调研,并在乙方自己的办公地点和开发环境进行开发。收文、行政发文、党委收文、党委发文、部门简函、所属单位报文六个模块的开发在甲方现场进行。软件开发完成后,其安装、调试工作在甲方提供的服务器上完成。

2.用户培训的场地等用户所需由甲方提供,范围根据乙方提出的培训内容经双方进行确定。

3.在乙方提供免费技术支持服务期内,乙方将通过以下三种服务方式进行技术支持:

1)电话支持

客户通过拨打乙方指定的维护工程师电话,由乙方工程师进行电话支持。

2)远程技术支持

在甲方保证服务器网络联通的情况下,通过远程诊断、电话支持、电子邮件等方式进行技术支持。

3)现场支持

如果不能通过远程技术支持方式解决系统的技术故障,在用户提出现场支持要求后的24小时内,我们将派遣工程师赶赴现场分析故障原因,制定故障排除方案,提供故障排除服务。

计算机软件开发技术及其应用 第3篇

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

中图分类号:TP311.52

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

计算机软件为用户使用计算机提供了一个良好的平台,对于用户来说,用户主要通过计算机软件对计算机进行相关的操作,因此,计算机软件开发技术的优劣对用户使用计算机软件有很大的影响。最初对计算机软件进行开发是利用手工操作,由于手工操作的局限性,使得最初的软件在使用的过程中容易出错,不能满足用户对软件的需求,且开发效率低,软件的可扩展性不高。随着计算机技术的不断发展,开发人员将软件开发的过程进行严格规范,对软件开发的分析、设计、开发、调试、运行都用规范的文档进行记录,规范开发步骤,从而开发出高质量、高可靠性的计算机软件。

2 计算机软件开发技术的开发方式

随着计算机技术的不断发展,计算机软件开发技术已逐渐趋于成熟,根据用户对软件的需求选择合适的软件开发技术,能够有效的提高软件开发的效率和质量,同时能够缩短开发周期。

当前环境下,计算机软件的开发方式主要有四种,即软件生命周期法、原型法、自动形成的系统开发方法、可视化的开发方法。

2.1 软件生命周期法

软件的生命周期法又称为瀑布模型,该技术在软件工程中占有重要的地位和作用,软件生命周期方法是从时间的角度进行定义,从时间的角度将软件的开发过程分解为6个阶段,即软件计划、需求分析、软件设计、程序编码、软件测试、运行维护,这6个阶段构成了软件开发的整个过程,他们是自上而下、相互衔接的固定的过程,即上一个阶段的结束时间是下一个阶段的开始时间。软件生命周期法提供了软件开发的基本框架,其过程是从上一项活动接收该项活动的工作对象作为该项活动的输入,以此来完成该项活动的工作,得出的工作成果输出给下一个阶段的活动继续完成。实践证明,软件生命周期法并非完成是自上而下的,而是呈现线性图式,该方法对大型软件开发过程中对人员的组织和管理更加有利,同时也方便于对软件开发方法和工具的研究和使用,因此,软件生命周期法有利于提高大型软件开发的质量和效率。

2.2 软件原型法

软件原型法是对软件目标的部分实现,使用软件原型法进行软件开发主要是针对软件在开发前期各项需求不确定的情况,其作用是在开发的过程中将软件的需求逐步明确,并逐步的探索设计方案,以此开发出最终的产品。软件原型法主要适用于需求不明确的开发过程,在此过程中,先根据已知的和已分析的需求,建立一个原始的模型,该模型是可以随时进行修改的,在开发的过程中根据反馈得到的信息对模型进行修改,以此来完善软件模型。在利用软件原型法建立模型式,提高了用户的参与度,加强了用户的决策权,如果不利于用户的操作,用户可以提相关意见,以便进行模型的改进,从而使得最终的结果更加符合用户的要求。软件原型技术又包括三种类型:抛弃式、演化式、递增式。在该种技术中,模型的建立以及模型的速度都是决定原型技术成败以及软件效率的关键因素。

2.3 自动形成的系统开发方法

自动形成的系统开发方法主要是利用第4代技术中的软件作为开发工具进行软件的开发,该方法只需要明确告诉软件开发工具软件需要实现的目标以及具体内容,而不必定义实现软件的具体过程,软件工具就会根据用户的需求进行自动编码。自动形成的系统开发方法方便了开发人员的操作,使软件开发变得更加容易。另外,利用自动形成的系统开发方法可以有效的缩短软件的开发周期,同时也可以降低开发成本。如果用户要求的开发周期有限,可以选择该方法作为软件开发的技术。

2.4 可视化的开发方法

可视化的软件开发方法的定义:根据用户界面上的操作元素自动生成应用性的软件。操作工具包括编辑框和对话框、按钮和菜单、单选框、复选框、滚动条等等。这种类型的应用软件工作方式主要是事件驱动,系统对不同事件会产生相应不同的消息。

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

3.1 计算机软件开发技术的应用表现形式

隨着经济全球化的逐步推进,网络的广泛使用缩短了用户之间的距离,通过各类软件的使用,使全球的资源得到共享,方便了用户的交流与沟通。计算机软件开发技术应用的主要特点是通过网络及软件将用户联系到一起,同时并没有进行统一的控制,从而使得各个结点保持其独立性,同时通过各个软件平台,用户有了更加宽阔的平台去进行数据信息的处理,简化了用户的工作,实现了信息化时代的发展。计算机软件中逐渐嵌入了移动通信设备和信息处理设备,促进了计算机软件技术发展的同时,也简化了用户的操作,使用户处理数据信息更加方便。

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

进行软件开发的目的是为了让用户更加方便的使用软件,因此评价一款高质量软件的标准是其具有良好的实用价值。软件在实际应用过程中,要方便用户的操作,同时软件要具备稳定性、安全性、可维护性、可扩展性。有些软件的开发模式在运行过程中受操作系统版本或浏览器安全的设置限制,使用户在使用软件时的操作更加复杂,这不利于软件的广泛应用。而对于与操作系统兼容的软件来说,由于运行不受操作系统的限制,用户可以很方便的进行软件的修复安装,并可以对计算机内的数据进行备份还原。然而随着客户端使用软件的时间越来越长,与系统兼容性强的软件在运行后期可能会使运算速度逐渐降低,从而必要时需要进行人为存档。计算机软件开发技术的应用受到开发技术的限制,因此,为了更好的让软件为用户服务,开发人员在开发过程中要根据用户的需求和实际的情况进行开发,尽最大可能的保证软件的应用过程中的便捷性与可靠性。

4 结束语

在计算机技术高速发展的背景下,计算机软件得到了广泛应用。计算机软件开发方法包括软件生命周期法、原型法、自动形成的系统开发方法、可视化的开发方法等四种方法。计算机软件开发技术的选择与具体的开发过程有很大的联系,开发人员必须根据具体的需求与实际情况进行软件开发技术的选择,从而开发出高质量、高性能、交互能力强的软件,同时缩短开发周期、降低开发成本也是软件开发过程中需要高度重视的一个问题。另一方面,在软件开发应用过程中还需要考虑技术的创新,以此推动计算机软件行业的进一步发展,推动信息化社会的进步。

参考文献:

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

[2]李翔.计算机软件开发技术的应用及未来展望[J].电脑知识与技术,2013(06):99.

[3]张茵.计算机软件开发技术的应用探析[J].信息通信,2013(07):128-128.

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

[5]王媛.计算机软件开发技术及应用[J].科技致富向导,2014(02):177-177.

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

作者简介:张俊青(1973.08-),女,陕西咸阳人,从事计算机科学、软件等问题研究。

软件开发技术 第4篇

当前通用报表软件的实现技术大致有如下3类:采用如图外的水晶报表[1]、国内的 CELL 系统软件等第三方面通用报表工具, 功能强大、灵活, 但价格高昂、开发成本高;直接利用 Excel 设计报表模板, 由应用程序以对象连接和嵌入 OLE (Object Linking and Embedding) 的方式打开报表模板并通过自动化接口对其进行解析、填入数据从而生成报表[2,3], 优点是成本低, 但程序凌乱、使用不方便;使 VAB 编程直接利用 xls 文件制作报表软件[4], 功能较为强大、效率高, 但健壮性和安全性差。上述技术方案都不太适合用于变电站自动化系统通用报表软件的开发。在此, 提出了基于活动文档 (ActiveX Document) 技术无缝集成 Excel 的技术方案。以下对此技术方案的各技术环节及以 Visual C++.net 和 Microsoft 基础类库 (MFC) 为开发工具时相应的处理方法进行阐述。

1 活动文档技术的运用

活动文档技术是作为复合文档 (OLE 文档) 的一组扩展而发展起来的, 但它与基本的复合文档技术又有所不同, 主要表现在:OLE 处理复合文档中的嵌入对象时, 在复合文档中只有一部分内容可以是活动的;而使用活动文档技术, 可以在单个框架的上下文内激活整个文档 (即整个应用程序, 包括关联的菜单、工具栏等) 。活动文档技术突破了复合文档的桌面环境, 活动文档可以进一步与容器程序结合。界面上, 活动文档服务器程序接管了容器程序的整个框架窗口, 将二者的菜单、工具栏等结合在一起, 就如同一个独立运行的程序一样;功能上, 由活动文档服务器程序提供了文档的核心处理功能, 包括文档的读写、文档的显示以及文档的编辑等, 而活动文档容器程序负责创建并控制活动文档对象, 并把所需的数据通过相应的接口传递给活动文档服务器程序[5,6,7]。活动文档容器与活动文档对象的关系和接口如图1所示。

可以看出, 活动文档容器程序所需实现的接口以及其与活动文档对象的交互是繁琐而复杂的, 而MFC 作为 Windows 应用的重要开发软件包提供了对活动文档容器和服务器程序的完全支持, 其用以管理活动文档对象的 COleDocObjectItem 类及其基类已经实现了活动文档容器所需实现的各接口。在本技术方案中, Microsoft Excel 程序作为活动文档服务器程序, 而活动文档容器程序则使用 MFC 类库根据通用报表软件界面的具体特点和要求来开发。

2 对 Excel 组件对象的访问

Microsoft Excel 组件对象模型包含许多可对其进行操作的对象。在本技术方案中常用到的有 Application、Workbooks、Workbook、Worksheets、 Worksheet、Range、Window 和 CommandBar 等对象, 其对象层次关系如图2所示 (见 Microsoft Excel Visual Basic Reference, 微软公司, 1999) 。

Application 对象代表整个 Microsoft Excel 应用程序。它提供了对应用程序范围内设定选项的访问以及返回处于活动状态的对象的方法。Workbook 对象代表 Microsoft Excel 工作簿, 使用它可以处理单个 Excel 工作簿。每个 Excel 工作簿包含一个或多个工作表, 而 Worksheet 对象代表一张工作表, 它提供对工作表各种属性的访问和操作。要处理工作表中某个单元格或一定区域的单元格中包含的数据, 可以使用 Range 对象。Range 对象代表工作表中某一单元格、某一行、某一列、某一选定区域 (该选定区域可包含一个或若干连续单元格区域) 或者某一个三维区域, 它提供对该区域的访问和各种操作。Window 对象代表一个窗口。许多工作表的特性, 像滚动条和网格线, 都是窗口的属性, 可以通过 Window 对象对这些特性进行访问和设置。CommandBar 对象则对应用户界面上各工具栏, 通过它可对其进行访问和操作。与对象模型中具体对象相对应, Excel 组件对外提供了相应的自动化 (IDispatch) 接口以实现对其属性和方法的访问, 如_Application、Workbooks、_Workbook 、Worksheets、_Worksheet、Range、Window、Windows、_CommandBars和CommandBar。通过创建对应于具体 Excel 对象自动化接口的 COleDispatchDriver 类 (MFC 提供的自动化接口 C++ 封装类) 的派生类, 可以很方便地实现对相应 Excel 对象的访问。

需要注意的是:Excel 服务器程序是以 EXE 程序文件形式存在的 COM 组件服务器, 它运行在独立进程内[8], 只能通过它对外提供的自动化接口来实现对其各 Excel 对象的访问, 因而在对 Excel 活动文档对象中的单元格进行数据访问时就存在一个效率问题。如果编程时直接使用 Range 对象依次与每个单元格关联, 然后通过访问其 Value 属性获得具体的单元格数据, 虽然使用灵活、方便, 但其访问效率很低, 尤其是对大量连续的单元格进行数据访问时其耗时开销相当大, 将导致整个运行程序执行速度明显降低。此时, 一个值得推荐的解决方法是用二维安全数组对整个单元格区域进行成块访问 (见 HOW TO: automate Excel from C++. NET and MSDN Library for Visual Studio.NET 2003, 微软公司, 2003) , 可以获得执行性能的显著提升。

3 界面的整合及控制

当活动文档对象创建、激活时, 文档容器程序将与活动文档服务器程序完成界面的整合和切换, 如文档容器程序主菜单的“文件”和“窗口”2个主菜单项将与活动文档服务器程序除“文件”和“窗口”以外的其他主菜单项整合成一个新的主菜单并替换掉文档容器程序框架原有的主菜单, 同时文档容器程序框架的工具栏也将被文档服务器程序的工具栏所替换掉等。但有时有可能需要对此标准过程进行控制和改变。例如, 在笔者所开发的通用报表软件项目中就希望使用人工触发方式, 通过相应的切换命令选项来执行主菜单整合及工具栏替换, 而不是在 Excel 活动文档视图打开、激活后就立刻完成上述过程, 这样做的好处是不会导致将所有的报表编辑等命令菜单和工具条过早地暴露给用户, 因为用户此时很有可能仅需要另外一个常用的、更简洁的查询界面而已。以下是对实现这种控制方法的分析。

活动文档容器程序是通过 IOleInPlaceFrame 接口向活动文档对象开放对其顶级框架窗口的各种控制, 如完成菜单的整合、清除和替换等, 在活动文档激活和结束时都要通过调用该接口中的 SetMenu 方法完成对框架窗口菜单的替换操作。在 MFC 的实现中, COleDocObjectItem 类拥有由 COleFrameHook 类型指针维护的 COleFrameHook 类成员对象, 而 COleFra - meHook 类通过嵌套类的方式提供了 IOleInPlaceFrame 接口的实现。在 COleFrameHook 类对 SetMenu 方法的实现中直接调用了 COleClientItem 类的虚拟函数 OnSetMenu, 该虚拟函数的实现代码片段如下:

void COleClientItem::OnSetMenu (CMenu* pMenuShared, HOLEMENU holemenu, HWND hwndActiveObject)

{ …

//替换主菜单

pFrameWnd->DelayUpdateFrameMenu (pMenuShared->GetSafeHmenu () ) ;

}

因此, 可以通过在 COleDocObjectItem 类的派生类中对虚拟函数 OnSetMenu 的重载实现对主菜单是否替换进行控制, 同样通过调用容器程序主框架类的 DelayUpdateFrameMenu 函数并赋予不同的菜单句柄来实现对框架主菜单的替换。

另外, 在 MFC 的实现中还可以看到, 对主框架工具栏的切换也是通过调用 COleClientItem 类的虚拟函数 OnShowControlBars 来实现的。该虚拟函数的默认实现是调用相应工具条的 ShowControlBar () 函数控制其显示或隐藏。根据需要同样可以通过重载该函数和调用类似代码实现对容器程序框架上工具栏的切换控制。而对 Excel 服务器程序自带工具条的显示与隐藏就更为简单, 通过对相应 CommandBar 对象的 Visible 属性进行修改, 即可控制其显示或隐藏。

4 命令传递

当活动文档激活后, 容器程序与活动文档服务器程序的菜单、工具条等整合在一起, 对于用户操作的响应就存在一个命令传递的问题。具体存在以下2种情况:首先, 在容器程序菜单或工具条中的某些命令需要映射到活动文档服务器程序某个具体命令或操作;其次, 活动文档服务器程序的菜单或工具条中的命令也有可能需要由容器程序来响应。下面就分别对这2种情况的解决方法进行论述。

第1种情况, 对于大多数命令项的传递, 可以利用活动文档服务器程序提供的 IOleCommandTarget 接口 (见 MSDN Library for Visual Studio. NET 2003, 微软公司, 2003) 实现。具体实现时, 在容器程序内具体命令的处理中可以通过对活动文档服务器程序 IOleCommandTarget 接口中 QueryStatus、Exec 方法的调用来执行服务器程序的对应命令或操作。如可以传递以下的命令类型: OLECMDID_OPEN、OLECMDID_NEW、OLECMDID_PRINT、OLECMDID_PAGESETUP、OLECMDID_CUT、OLECMDID_COPY、OLECMDID_PASTE、OLECMDID_PASTESPECIAL、OLECMDID_UNDO、 OLECMDID_REDO……等, 具体的定义可参考枚举类型 OLECMDID 的定义。需要指出的是, 在活动文档模式下对于有些命令类型如:OLECMDID_SAVE、OLECMDID_SAVEAS、OLECMDID_PRINTPREVIEW, 文档服务器程序并不提供支持, 关于上述命令传递的实现, 本文接下来将会进一步说明。

第2种情况, 对于一些通常的命令操作类型如:OLECMDID_OPEN、OLECMDID_NEW、OLECMDID_PRINT、OLECMDID_SAVE、OLECMDID_SAVEAS等, 活动文档服务器程序也会通过容器程序提供的 IOleCommandTarget 接口向其传递。在 MFC 的实现中, COleClientItem 类的 COleFrameHook 类成员对象已通过 MFC 接口映射的形式实现了 IOleCommandTarget 接口。在该接口具体的实现中相应的 OLE 命令将可以被 MFC 的 OLE 命令映射机制进行截获并进行处理。MFC 的 OLE 命令映射机制的执行过程如下, 当一个 OLE 命令被容器程序接收到后, 容器程序将在已建立的 OLE 命令映射表中查找与接收到的 OLE 命令相匹配的对应命令。一旦找到, 该 OLE 命令将被转换为对应命令, 产生新的 WM_COMMAND 消息并通过 MFC 标准命令传递机制而被处理。因此, 对活动文档服务器程序所传递命令的处理就很简单了, 只需要通过使用 ON_OLECMD 等 OLE 命令映射宏在 COleDocObjectItem 类的派生类中的 OLE 命令映射表内添加 OLE 命令与容器程序对应命令的匹配条目, 然后使用标准的 MFC 命令响应处理方式对相应命令进行处理即可。

5 事件的拦截、处理

在报表软件开发中, 文档容器程序通常需要获知 Excel 活动文档对象在运行中的有关事件如创建、结束、用户鼠标点击等事件以进行有关的处理, 可以利用连接点 (Connection Point) 机制实现。连接点机制是一种 COM 中组件对象与客户程序进行交互的有效手段, 它对于一个连接由2个部分组成:定义并调用出接口 (Outgoing Interface) 的源对象 (也称为可连接对象) 和实现出接口的接收器对象 (见 Visual C++ 概念:添加功能 连接点. MSDN Library for Visual Studio .NET 2003, 微软公司, 2003) 。何谓出接口, 其实它就是源对象中定义的包含一组代表事件、通知或者请求的成员函数的 COM 接口, 只不过它是在接收器对象中具体实现的。源对象通过一个 IConnectionPointContainer 接口管理所有的出接口, 每个出接口对应于一个实现了连接点 (IConnectionPoint) 接口的连接点对象。通过公开的 IConnectionPointContainer 和各连接点接口, 源对象允许接收器对象建立与源对象本身的连接, 将指向接收器对象具体实现的出接口的指针传递给源对象。通过该出接口指针, 源对象就可以访问接收器对象一组成员函数的具体实现, 从而使接收器对象获得了相应的事件、通知或者请求。图3说明上述的连接点机制。

Excel 组件对象就是可连接对象, 支持连接点机制并提供了 IConnectionPointContainer 接口、对象事件出接口以及对应的 IConnectionPoint 接口, 例如对于 Microsoft Excel 2003 (对象库版本为11.0) 而言, 它就提供了 AppEvents、DocEvents、 ChartEvents 和 WorkbookEvents 4个派生于自动化接口 (IDispatch 接口) 的出接口, 分别对应相应的事件。因此, 可以在文档容器程序中实现事件接收器接口并将它与 Excel 组件对象的事件连接点建立连接, 从而获得 Excel 组件对象的相应事件通知并进行处理。在具体实现中, 可以生成一个实现 IDispatch 接口的 C++ 类, 在 Invoke 函数的实现中可针对各事件所对应的不同函数参数 dispIdMember 值进行判别并完成相应的处理, 然后将该类与 Excel 组件对象的事件连接点建立连接就可获得相应的事件、通知或者请求 (见 HOW TO:Handle Events for Excel by Using Visual C++.NET.MSDN Library for Visual Studio .NET 2003, 微软公司, 2003) 。

6 报表预览及打印

当 Excel 组件对象以活动文档的方式打开时, 将无法直接通过 Workbook 或 Worksheet 对象的 PrintView 和 PrintOut 方法来实现当前工作表的打印预览及打印输出。解决的方法如下:对于打印, 可以直接调用 COleDocObjectItem 类的 DoDefaultPrinting 方法完成, 其内部会调用 Excel 组件对象的 IID_IOleCommandTarget 接口、传递 OLECMDID_PRINT 命令字执行打印命令;而打印预览, 虽然并不是活动文档技术所支持的标准特性, 但 Microsoft 的 Excel 组件对象却额外提供了 IInplacePrintPreview 和 IPreviewCallback 接口, 可以通过它们来获得支持。IInplacePrintPreview 接口提供了 StartPrintPreview、EndPrintPreview 和 QueryStatus 3种方法来完成打印预览启动、结束和预览状态的查询。而 IPreviewCallback 接口是 Excel 组件对象定义的一个出接口, 其中主要定义了 Notify 这种方法, 用于向文档容器程序提供打印预览中各种事件的通知。在具体实现时, 文档容器程序可调用 IInplacePrintPreview 接口进行打印预览操作, 而通过实现 IPreviewCallback 接口并在其 Notify 方法中对所关心事件进行处理。

7 报表文档存储

对于活动文档等 OLE 应用程序的文档存储, Microsoft 是主推以复合文件作为标准文件格式实现的结构化存储, 例如 MFC 就已经通过提供 COleStreamFile 和 COleDocument 类实现对复合文件的直接支持。当 Excel 组件以活动文档的形式创建、使用时, 它已不再支持通过调用 Workbook 或 Worksheet 对象的 Save 和 SaveAs 方法实现对当前工作表的文档保存。但是, 复合文件却不太适合作为通用报表软件的文档存储格式使用, 无论是从通用性、便捷性还是使用习惯, 用户都更倾向于直接使用 Excel 的存档文件格式 .xls。解决这个问题的方法是使用 Excel 组件对象的 IPersistFile 接口 (永久文件存储接口) 来实现文档存储。以下是实现过程的示例代码:

HRESULT CXXXCntrItem::SaveToFile (LPCSTR lpszFileName)

{

BSTR bstrFileName = NULL;

HRESULT hr = E_FAIL;

bstrFileName=ConvertToBSTR (lpszFileName) ;

if (bstrFileName)

{

IPersistFile* ppf = 0;

hr =m_lpObject->QueryInterface (IID_IPersistFile,

(void**) &ppf) ;

if (SUCCEEDED (hr) )

{

hr = ppf->Save (bstrFileName, TRUE) ;

ppf->Release () ;

}

SysFreeString (bstrFileName) ;

}

return hr;

}

8 历史数据库访问

通用报表软件中所使用的原始数据往往都是取之于历史数据库。而在 Windows 操作系统环境下对数据库的访问编程接口种类很多, 如:数据访问对象 (DAO) 、开放式数据库连接 (ODBC) 、ADO (Active Data Object) 等应用程序编程接口, 均提供了编写独立于任何特定数据库管理系统 (DBMS) 的应用程序的能力。而 ADO 作为 Microsoft 新一代的一致数据访问技术 (Universal Data Access) 的高层软件接口, 其底层通过 OLE DB 提供的 COM 接口访问数据并采用自动化 (Automation) 对象层次结构, 因而比其他的一些对象模型具有更好的灵活性, 使用更为方便, 访问数据的效率也更高。所以在通用报表软件对数据库访问的开发上, ADO 不啻为一种非常理想的访问技术。考虑到当前关于 ADO 开发应用的相关论述[9,10,11]已经非常广泛, 而在通用报表软件中其使用方式与其他数据库访问应用程序并无二致, 限于篇幅, 这里就不再累述了。

9 结语

本文提出的基于活动文档技术无缝集成 Excel 组件的技术实施方案, 通过结合不同信息系统具体的报表数据处理模型, 可开发出各种不同用途的通用报表软件。运用该技术方案已开发出 Ndt 650 变电站监控系统后台通用报表软件, 并成功地在郑州铁路局商丘北配电工程等多个变电站综合自动化项目中投入应用, 获得很好的运行效果和用户评价。

摘要:针对当前Windows系统下变电站自动化系统报表软件开发中存在的多方面要求难以兼顾的问题, 提出基于微软活动文档 (ActiveX Document) 技术无缝集成Excel组件的开发技术方案。论述了该方案中要解决的Excel组件对象访问、用户界面的整合及控制、命令传递、事件拦截处理、预览和打印、文档存储、历史数据访问等关键问题。在多个电气化铁路供电自动化系统报表软件项目中的应用, 证明该技术方案是可行和高效的。

关键词:通用报表,Active X文档,无缝集成Excel,变电站,历史数据访问

参考文献

[1]张晓红.VB中如何利用水晶报表控件实现报表设计[J].陕西理工学院学报:自然科学版, 2005, 21 (4) :29-34.ZHANG Xiaohong.Onfulfillingthe design of report using crystal report in VB[J].Journal of Shaanxi University of Technology:Natural Science Edi-tion, 2005, 21 (4) :29-34.

[2]金百东.MIS系统通用报表的设计与实现[J].计算机与数字工程, 2005, 33 (6) :116-119.JIN Baidong.Design and i mplementation about universal report on MIS system[J].Computer and Digital Engineering, 2005, 33 (6) :116-119.

[3]宣士斌, 李永胜, 李熹, 等.VC中基于Excel的用户自定义报表设计[J].计算机工程与设计, 2006, 27 (8) :1483-1488.XUANShibin, LI Yongsheng, LI Xi, et al.User-definedreport design based on Excel in VC[J].Computer Engineering and Design, 2006, 27 (8) :1483-1488.

[4]胡晓若, 陈昌武.Excel工业报表系统[J].工业控制计算机, 2005, 18 (12) :43-46.HU Xiaoruo, CHEN Changwu.Excel industrial reportforms[J].Industrial Control Computer, 2005, 18 (12) :43-46.

[5]潘爱民.ActiveX文档技术[J].微电脑世界, 1999 (4) :145-147.PAN Ai min.ActiveXdocument[J].PC World, 1999 (4) :145-147.

[6]KRUGLINSKI DJ.VISUAL C++技术内幕[M].4版.潘爱民, 译.北京:清华大学出版社, 1999.

[7]潘爱民.COM原理与应用[M].北京:清华大学出版社, 1999.

[8]钱国才, 裴艳峰, 岳云鹤.COM与ActiveX Document技术应用[J].无线电工程, 2007, 37 (12) :62-64.QIAN Guocai, PEI Yanfeng, YUE Yunhe.The application of COMand Ac-tiveX Document[J].Radio Engineering of China, 2007, 37 (12) :62-64.

[9]潘爱民.一致的数据访问技术ADO/OLE DB[J].微电脑世界, 1999 (10) :179-185.PAN Ai min.Universal data access ADO/OLE DB[J].PC World, 1999 (10) :179-185.

[10]SCEPPA D.ADO编程技术[M].肖炎, 石均, 葛俊, 译.北京:清华大学出版社, 2001.

《先进软件开发技术与工具》试题 第5篇

1. 介绍创建.NET程序的基本步骤。(4分)

答:打开Visual Stdio 2008 文件菜单 新建 项目 选择语言和项目类型 编写代码 编译 运行。

2. C#语言的特点?(5分)

●简洁的语法

●精心地面向对象设计

●与Web的紧密结合

●完整的安全性与错误处理

●版本处理技术

●灵活性与兼容性

3. C#中参数传递有哪些方式?各有什么特点?(6分) 答:有传值和传引用方式。

传值方式,是指将实际参数的值复制一份,存入形式参数中。在方法中对形式参数值的改变不会影响到实际参数。

传引用方式,是指将实际参数的地址复制一份,存入形式参数中,在方法中通过地址可以改变实际参数的值。

4. e is T在什么时候返回true?e as T在什么时候返回非null?(6分) 答:e is T在对象e的类型为T时返回true。

e as T在对象e兼容于T类型时,返回非null。

5. 给出C#语言效率低于C/C++语言的3个原因。(6分) 答:(不确定)

C#有高级内存管理机制,方便了开发,但降低了代码效率;

C#代码是托管运行的,效率较低;

C#不能直接进行内存管理,效率低。

6. 解释以下基本概念。(14分)

(1)托管代码 (2)抽象类 (3)接口 (4)引用类型

(5)异常 (6)属性 (7)值类型

答:

(1)托管代码——由公共语言运行库环境(而不是直接由操作系统)执行的代码。

(2)抽象类——至少包含一个抽象方法的类,该类不能被实例化。

(3)接口——只包含方法、属性、索引器、事件,均为public权限,而且方法只有定义没有方法体。

(4)引用类型——直接存储变量值的引用,该类型的变量作参数,传递的是值所在的地址。

(5)异常——程序执行时遇到的任何错误情况或意外行为

(6)属性——属性是这样的成员:它提供灵活的机制来读取、编写或计算某个私有字段的值。

(7)值类型——直接存储变量的`值,该类型的变量作参数,传递的是变量的副本。

7. 虚方法、抽象方法、静态方法、接口中的方法和密封方法有何区别?(10分)

答:虚方法:用virtual修饰,告诉编译器这个方法可以在派生类中被改写。

抽象方法:用abstract修饰,没有方法体,它所在的类是抽象类。抽象方法必须由其所在类的派生类重写,除非该派生类也是抽象方法。

静态方法:用Static修饰,静态方法存储在类空间中,直接由类访问。

接口中的方法:只有方法的声明,没有方法体,必须由接口的派生类重写。

密封方法:用seal修饰,表示该方法不能被派生类重写。

8. 抽象类、密封类和接口有何区别?各在什么情况下使用?(10分) 答:抽象类:至少含有一个抽象方法的类。用于各派生类有同样的行为,但实现代码各不一样的情况,这时可以基类中定义即抽象方法,该基类就是抽象类。

密封类:表示该类不能被继承。用于不希望该类被继承或修改的情况。

接口:只包含方法、属性、索引器、事件,均为public权限,而且方法只有定义没有方法体。用于向外界声明所具有的行为,用于实现多重继承。

9. 下列程序片断有何错误?(12分)

(1)

class BaseClass

{ public virtual void f1() { }

} class DerivedClass : BaseClass { } public void f1() { }

答:DerivedClass中f1应改为public override void f1(){},加上override。

(2)

class BaseClass

class DerivedClass : BaseClass { } public void f1() { } } { public sealed void f1() { } 答:DerivedClass中f1()不能被重写。

(3)

abstract class BaseClass

class DerivedClass : BaseClass { } public void f2() { } } { public abstract void f1() { }

答:BaseClass中f1应为public abstract void f1();,没有方法体;

DerivedClass中应添加public void f1(){……},实现抽象方法。

10. 写出下列程序的输出。(7分)

class BaseClass

} new public void f2() { } Console.WriteLine(“DerivedClass.f2”); class DerivedClass : BaseClass { public override void f1() { } Console.WriteLine(“DerivedClass.f1”); } public void f2() { } Console.WriteLine(“BaseClass.f2”); { public virtual void f1() { } Console.WriteLine(“BaseClass.f1”);

} b.f1(); b.f2(); BaseClass b = d; static void Main(string[] args) { DerivedClass d = new DerivedClass();

答:(答案没验证)

BaseClass.f1

BaseClass.f2

11. 编写一个程序,接收用户输入的两个数字(这两个数字不能都大

于30,否则要求用户重新输入),计算两数的乘积并输出。(8分) 答:

static void Main(string[] args)

{

} Console.Write(“请输入小于30的数字:”); y = int.parse(Console.ReadLine()); while(y>30) { } z = x*y; Console.WriteLine(“结果是:”+z); Console.Write(“请输重新入小于30的数字:”); y = int.parse(Console.ReadLine()); int x=100,y=100,z; Console.Write(“请输入小于30的数字:”); x = int.parse(Console.ReadLine()); while(x>30) { } Console.Write(“请输重新入小于30的数字:”); x = int.parse(Console.ReadLine());

12. 马(Horse)、大象(Elephant)、老虎(Tiger)、狮子(Lion)是动物(Animal),动物能够Eat,但是不同的动物有不同的Eat行为。另外,有些动物具有食肉特性(ICarnivore),食肉动物能够捕食(Prey)。定义类和接口用类继承和接口实现来表示以上事物之间的关系。(12分)

答:

interface ICarnivore

{

软件开发技术 第6篇

摘 要:随着计算机的迅猛发展,网络技术的不断进步,在自身硬件组成与软件设计方面取得了突破性的成就,极大地便利了人们的工作与生活。计算机在发展的过程中,除了重视自身硬件性能的提升之外,逐渐将系统软件的开发作为一项重要的内容,以此从系统软件构成方面来满足多样化的使用需求,为了保证计算机系统软件的科学开发,该文旨在从软件工程技术的角度出发,在相关科学理论的指导下,对其在系统软件开发过程中的科学高效运用进行全面探索,以期提升系统软件开发的质量与水平,促进计算机产业的健康发展。

关键词:系统软件开发 软件工程技术 原则 运用方式

中图分类号:TP311.52 文献标识码:A 文章编号:1674-098X(2016)06(c)-0083-02

计算机技术以及互联网技术的快速发展,使得计算机应用的范围日益广泛,逐渐成为现阶段社会生产与生活中重要的工具。系统软件作为计算机软件系统的核心构成,通过自身的逻辑语言与数学算法,在很大程度上满足了计算机使用者的使用需求,实现了经济生产与社会生活的智能化[1]。为了进一步提升系统软件开发的质量与水平,使得系统软件能够满足越来越多样化与专业化的使用需求,我们将软件工程技术引入到系统软件的开发过程中,通过这种方式促进系统软件开发的效率,实现系统软件开发的人性化与信息化。因此在现有的技术条件下,探究软件工程技术在系统软件开发中的科学高效应用就有着十分重大的现实意义。

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

对传统软件应用程序与软件开发的客观分析,能够帮助参与系统软件设计的相关工作人员进一步厘清传统软件应用程序中存在的不足,并以此为基础为软件工程技术在系统软件开发中的运用准备条件。

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

在传统软件应用程序开发工程中,为了保证程序开发有序进展,在软件应用程序开发之前需要进行模型的构建,并根据软件应用程序的设计需求与使用环境,在相关软件开发理论的指导下,对软件开发模型进行多次计算与修改,形成生存期模型,而生存期模型在实际的开发过程中又产生了诸如演化型、螺旋型以及增量型等多种形式[2]。从实际情况来看,无论是何种形式,这些模型在软件应用程序开发的实际操作中,都表现出一定的不足,存在缺陷。例如演化型模型能够对软件开发流程进行科学的优化与调整,从而便于软件应用程序的有效管理,大大降低了软件应用程序开发过程中出现错误的几率,但是如果其中的某一个环节出现了差错,将会造成整个软件开发流程的紊乱,对软件应用程序开发的稳定性带来极为消极的影响。随着社会经济的不断发展,互联网技术以及计算机技术的日益成熟,虽然现阶段大多数的软件程序仍是以WWW为构建进行设计与开发,但是为了满足经济快速发展的要求,相关企业不断进行软件开发与管理流程的优化,以期使得软件开发工作能够适应国民经济发展与社会生活的客观要求。但是我们必须看到传统软件应用程序的开发模式已经越来越难以满足实际要求,这就要求相关企业要立足于软件应用程序设计开发的实际,进行全新模式的科学探索。

1.2 软件应用系统分析

传统软件的开发周期较长,应用程序日益复杂,在很大程度上难以满足社会经济发展对软件应用程序更新换代速度的客观要求。系统软件开发作为一种新的软件开发模式,以软件作为构建的基础,对于数据信息有着较强的处理能力,并且以页面作为主要的展现形式,在一定程度上满足了不同软件应用程序使用者的不同使用需求,并且凭借着自身对各类技术与软件功能的科学整合,其能够在很大程度上缩短软件应用程序开发周期,提升应用程序的简洁性与使用性[3]。

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

(1)系统软件工程技术在系统软件开发中的运用必须要遵循科学性的原则。系统软件工程技术在系统软件开发中应用目标的实现,要充分体现科学性的原则,只有从科学的角度进行系统软件工程技术重要性、系统软件开发流程以及相关工作人员的职业素质与技能进行细致而全面的考量,才能够最大限度地保证系统软件工程技术在系统软件开发中的应用满足实际的系统设计需求与企业应用的要求,只有在科学精神、科学手段、科学理念的指导下,我们才能够以现有的技术条件为基础,进行系统软件工程技术在系统软件开发过程中的科学高效运用。

(2)系统软件工程技术在系统软件开发中的运用必须要遵循实用性的原则。系统软件开发相关工作的科学高效运行,需要雄厚资金的支持,从实际来看,资金的稳定供应与否直接影响到系统软件开发工作的质量与水平,因此系统软件开发在进行系统软件工程技术应用的过程中,必须要遵循实用性的原则,最大限度降低系统开发企业在设计与构建过程中系统软件的开发建设与应用成本,降低系统软件开发企业在软件开发方面的资金投入,从而能够将更多的资金利用于其他方面,促进系统软件开发企业自身的健康快速发展,提升其经济收益。

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

软件工程技术在系统软件开发过程中的运用是一个复杂的过程,需要相关软件设计人员充分认识到传统软件应用程序开发中存在的不足,并在相关原则的指导下,从多个方面入手,采取多种方式,实现软件工程技术在系统软件开发过程中的科学高效运用。

3.1 软件开发模型的科学构建

软件工程的特殊性使得软件应用系统的设计与开发与传统的软件开发工作有着极为明显的区别。而为了保证软件工程技术在系统软件开发中的科学高效运用,就需要进行软件开发模型的科学构建,通过对整个系统软件应用程序的科学解读,对开发周期、基本流程以及软件开发管理工作的重点进行梳理,以此为基础进行软件开发模型的构建,同时为了保证模型构建的质量与效果,还需要进行项目管理模型以及组织公共模型的建立,通过这种方式及时发现软件开发模型中存在的不足,并对其原因进行考察,找出应对差错的方式,从而保证开发流程的有序进行[4]。

3.2 软件应用程序的开发

通常情况下,软件应用程序的开发会以系统软件的迭代升级作为自身的组织框架,在软件一次次地更新中,对软件的性能以及潜在的发展方向进行准确判断,也就是说软件应用程序涵盖了软件开发的各个方面。所以为了充分发挥软件应用程序开发的作用,就需要对软件使用者的使用需求进行客观分析,并以此为基础,组织相关技术人员对相关数据进行分析,从而为下一阶段的软件应用程序的使用需求、设计重点以及性能测试提供有效参考[5]。同时我们也必须看到软件应用程序开发的最终目的在于满足用户的使用需求,因此在进行软件的开发设计中,要对软件应用界面进行科学的优化,并在这一原则的指导下,对用户的使用习惯进行全面了解,对于用户感兴趣的内容、重要资讯以及核心内容安排应用界面的合理位置,通过这种优化能够让用户在满足使用需求的同时,充分满足自身的审美体验,从而大大提升用户使用软件的频率,实现高效开发与合理利用。

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

立足于计算机硬件加速升级的趋势,以硬件为支撑,不断提升软件工程管理的效率。软件工程管理与软件开发技术有着较为密切的联系,因此软件工程管理水平的提升,就需要不断进行软件开发技术的完善与调整,使其能够满足实际的管理需求。

参考文献

[1]邱恩海.软件工程技术在系统软件开发过程的应用[J].信息化建设,2016(4):129-130.

[2]王楠.系统软件开发过程中的软件工程技术[J].中国科技博览,2015(45):90.

[3]周敏.系统软件开发过程中的软件工程技术[J].电子制作,2015(8):85-86.

[4]郑彦平.系统软件开发过程中的软件工程技术[J].电子测试,2014(24):122-123.

软件开发需求分析技术探讨 第7篇

随着计算机技术的快速发展和进步, 计算机软件已经在工业控制、电子商务、电子政务、金融证券、电力通信等领域得到了广泛的应用。软件系统开发过程中, 需求分析可以帮助软件工程师与用户进行沟通, 能够快速的获取软件需要完成的操作功能, 以便满足用户的需求, 具有重要的作用。

2 软件需求分析作用

随着软件功能的复杂, 软件规模越来越大, 软件的操作功能也更加难以获取, 因此软件工程的作用越来越受到重视, 已经得到了广泛的研究和改进。在软件工程中, 软件需求分析是最为重要的一个环节。软件需求分析可以通过查询相关的文档资料, 分析软件原型, 与软件用户进行沟通和交流, 发现原有系统存在的漏洞和用户新的功能需求, 以便能够完善软件功能。软件需求分析的主要作用是了解软件的处理过程, 通过用例技术、数据流图技术、业务流程图技术等导出系统的逻辑业务功能模块, 建立一个详细的软件模型, 将其展现给用户, 以便用户能够观察软件是否能够满足其功能需求。软件需求分析是软件设计与实现的前提, 软件需求分析的结果准确与否对后期软件设计与实现的影响非常大, 因此软件需求分析具有重要的作用。

3 软件需求分析技术探讨

目前, 软件需求分析过程中, 常用的软件需求分析技术主要包括面向对象和面向结构两种, 面向对象需求分析技术以UML为代表, 面向结构以数据流图和业务流程图为代表, 这两类型的需求分析技术适用于大小规模不同的软件设计与实现过程, 详细描述如下:

3.1 UML需求分析技术

UML需求分析技术是建立在面向对象的思想上的一种需求分析技术。UML需求分析的原型为用例建模分析方法, 该方法是由美国杰克逊博士提出来的, 后来其被软件工程学者综合到了UML中, 已经成为软件需求分析表达的标准化软件工程。UML需求分析可以使用用例图、静态图、类图、顺序图、状态图等, 与用户、硬件设备或其他软件系统进行交互, 详细的描述软件功能。UML技术在应用过程中, 需求分析最为关键的步骤就是识别系统参与者, 以便能够通过对参与者需要完成的功能进行调研和分析, 使用各类图形建模技术, 分析软件业务功能。目前, UML需求分析技术已经在工业生产、电子政务、电子商务和金融证券等领域的软件设计与实现中得到了广泛的应用, 取得了显著的成效。比如在教学管理软件开发过程中, 可以获取用户角色主要包括学生、教师和行政管理人员, 其主要功能包括学生信息管理、教师信息管理和教务信息管理。

3.2 数据流图技术

在软件需求分析过程中, 数据流图是一种结构化的需求分析工具, 其也是信息系统逻辑业务处理需求分析的一种模型之一, 可以对现实的数据进行抽象。数据流图可以利用图形的直观形式表述系统的逻辑业务功能, 它跟系统的软硬件没有关联, 也无需涉及到系统的物理部署环境等, 具有较高的应用层次。软件数据流图分析过程包括的元素主要是外部实体、数据处理、数据流等。外部实体表示系统的数据源点或终点, 其可以反应系统的数据流图和外部实体之间的关系, 并且能够让外部实体表示系统的组成部分。数据处理表示软件对数据的加工和处理, 也就是软件如何满足用户需要的操作功能。数据流是指系统中的数据的传播的一个过程, 其表示系统的数据源点到系统终点的一个过程, 能够有效的表示系统数据处理的内容, 数据流可以使用矢量图描述, 以便能够明确数据流传输的方向。

3.3 业务流程图技术

业务流程图技术也是一种结构化需求分析方法。在软件需求分析过程中, 为了能够让用户更加充分的理解软件的工作流程, 使用业务流程图能够有效地导出系统的功能操作流程, 便于用户直观的理解系统功能。业务流程图可以采用固定的基本符号元素, 描述某个具体的逻辑业务处理过程, 在描述软件功能的过程中, 其可以使用户充分的理解系统的功能, 并且能够掌握系统的功能, 了解系统输入信息、输出信息、存储信息、信息处理方式和过程等, 以便能够为系统的数据处理、逻辑处理打下良好的基础, 为了能够更好的掌握系统的运行状况, 业务流程图已经成为系统需求分析不可或缺的重要步骤, 是系统需求分析的关键环节。软件业务流程图构建过程中, 可以采用的基本图形符号包括五个类别, 分别是系统用户、系统信息流、系统的数据存贮、实体、处理或加工符号等。在业务流程图建模过程中, 圆圈可以表示参与系统的操作的用户, 比如单位教务管理人员或教师、学生等用户;使用矩形框表示教务管理过程中的信息业务加工和处理的操作;实体、单据或凭证表示可以使用卡片形式的符号表示;实心表示业务处理信息的流程;学校在实际工作过程中, 能够直接表明教务管理信息系统的文字, 并且表示管理系统处理的功能。

4 结束语

随着软件工程的发展和应用, 软件需求分析技术也得到了极大的改进, 软件需求分析技术已经逐渐向原型化系统、敏捷需求分析、构件和组件等方向发展, 其适用于PC软件、移动终端软件等不同类型软件的需求分析, 可以导出完善的软件功能, 满足用户多样化的需求。

参考文献

[1]米林.软件开发周期中的需求分析[J].软件工程师, 2013, 29 (3) :42-43.

[2]罗亚东.浅谈软件项目开发过程中的需求分析[J].电子技术与软件工程, 2014, 28 (9) :93-93.

[3]罗薇红.计算机软件需求分析及开发研究[J].信息通信, 2013, 31 (2) :177-177.

[4]周伟.计算机应用软件的需求分析与开发[J].计算机光盘软件与应用, 2014, 24 (1) :287-288.

软件开发技术 第8篇

一、计算机软件信息软件开发技术及其运用

(一) 常用开发技术

在开发中, 运用得较广的计算机软件开发技术包括以下种类。XML技术, 它包括了类似HTML的文本文件, 文件中能够存储结构数据和非结构数据, 并且其格式容易处理, 在软件开发中的应用较为普遍;Web Services技术, Web服务是XML后的产物, 可以描述数据和对象, 并保证文档数据有效, 在跨平台服务标准基本的格式中非常适用, 除了这些技术之外, 还有面向对象编程, Java、C++、C语言、VB.NET, Java Script、Regular Expressions、Design Pattems、Flash MX、Linux/Windows、SQL等, 这些开发技术各有自己的特点和优势, 满足计算机软件开发的需要, 在实际应用中有着重要的作用。在软件开发时, 要根据具体需要合理选用, 以提高计算机软件开发效果, 满足用户的需求。

(二) 嵌入式技术

该技术能够将软件作为数字函数实现, 这些数据是被函数处理后所产生的数据, 嵌入式软件的核心就是这些函数本身所包含的意义, 它具有实时性和持续性的特征, 更能满足软件开发的需要。目前嵌入式软件的开发方法包括面向过程与面向对象开发方法、面向组件开发方法。进行计算机软件开发时, 应用嵌入式技术能够开发出性能非常好的软件, 并且与现实环境交互, 小巧灵活, 其应用潜力巨大, 发展前景广阔, 是较为理想的开发技术。

(三) 面向对象和构件化技术

互联网技术的发展使得软件开发面临更为复杂的环境, 市场竞争也更为激烈, 应用软件要求具备跨越异构平台的能力, 具有开放性的系统结构, 而应用传统开发技术会导致系统信息复杂化, 维护费用较高, 功能拓展困难等。而面向对象和构件化软件技术的应用, 提升了应用软件的互操作性、可扩展性、结构开放性等, 并且具有互操作能力和强大的可扩展能力, 给整个计算机软件开发带来新的变革。在实际应用中, COM、Jav Beans、CORBA都是以面向对象和构件化软件技术为基础, 适应性强, 应用效果良好。

(四) 网络通信技术

这种技术是近年来出现的, 主要以无线网和局域网为局部设施, 呈现数字化和信息化的特征, 在全球具有广泛的连通性, 没有统一的控制系统, 各节点具有较高的自治性, 同时互联网将各信息孤岛连接起来, 不仅整合了计算设备能力, 还拓展了分享范围, 对整个计算机软件运行有着重要的意义。除此之外, 新的计算机软件运行平台重视自治性和协作性, 提升了软件中间技术的发展空间, 拓展了计算机的应用量。随着软件开发技术的发展和进步, 软件产业还需要进行创新, 向知识密集型转变, 提高其技术含量, 以更好的满足计算机软件开发的需要, 提高开发水平和软件使用效果。

二、计算机软件信息软件开发技术的发展趋势

(一) 软件开发技术的开放化发展趋势

指的是软件源代码的开放性和软件产品的标准化, 由于开发技术的开放化, 从而便利了计算机软件开发人员的交流与学习, 有利于促进工作人员的相互进步, 不仅能够提升计算机软件开发的质量, 也有利于促进计算机软件的发展与进步。

(二) 软件开发技术的网格化发展趋势

指的是计算机软件开发技术的一种重要发展趋势, 网格化表示的是一种网络存在形式, 对促进计算机软件开发技术的交流和共享有着重要的作用。伴随着互联网技术的发展和进步, 各地的联系正一步一步增强, 网格化也是软件开发技术的一个重要发展趋势, 便利了提供各种服务, 促进开发技术的进步。

(三) 软件开发技术的智能化发展趋势

指的是计算机软件开发技术有着人们的思维和运行方式, 当前人工智能技术取得了快速的发展, 应用也十分广泛, 将来软件开发技术也将朝着这个方向发展。如果智能技术得到有效应用, 不仅便利计算机软件的操作, 对整个计算机软件开发也必将带来新的变革, 推动开发技术的创新发展。

(四) 软件开发技术的融合化发展趋势

随着技术的发展与进步, 传统的电气化、机械化、自动化等软件将会升级, 转化为智能化、数字化、网络化, 并成为计算机软件开发技术的核心与关键, 这些技术的融合能够促进计算机软件开发技术的进步, 也有利于提高产品的竞争力, 其重要作用是显而易见的。

(五) 软件开发技术的服务化发展趋势

指的是在开发中以客户为服务对象, 全面面向客户, 为客户提供优质、一流的服务, 在进行计算机软件开发的时候, 应用最先进的开发理念, 最先进的开发技术, 提供优质的产品和服务, 以满足客户需求, 也为计算机更好的运行和工作提供保障, 提升使用效果, 更好的满足用户需求。

三、结束语

综上所述, 计算机软件信息软件开发技术具有重要作用, 能够促进计算机正常运行, 提高计算机整体性能。今后应该重视开发技术的运用, 并把握其发展趋势, 推动计算机软件信息软件开发技术的创新发展, 从而更好的满足客户需求, 提高开发技术的运用效果。

参考文献

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

[2]张旭.计算机软件开发技术的应用[J].硅谷, 2013.

[3]袁建波.计算机软件开发技术的应用研究初探[J].电子制作, 2014.

基于组件技术的实时测控软件开发 第9篇

组件技术不是一个编程语言, 而是一种软件开发的标准方法体系, 是面向对象开发技术的延伸。采用组件技术可以进行大型软件开发, 它有利于分布式应用技术的实现, 有利于应用系统的升级和定制, 也利于多人合作开发。同时, 基于组件的软件开发支持组装式软件复用, 是提高软件开发效率和质量、缩短系统研制周期的现实可行的途径。

1 组件技术

1.1 组件定义

组件是可复用的软件单元, 它封装了一定的数据、属性和方法, 可以独立部署并提交给第三方进行组合, 而可复用组件是指功能独立、可重用的组件。随着对组件技术应用的不断深入, 组件的概念已不仅限于源代码组件, 而是延伸到系统的软件构架、需求规约、测试计划和文档数据等与开发活动相关的有用信息。

组件模型定义了组件的本质属性, 规定并遵循二进制外部接口标准, 规范了组件与软件构架、组件与组件之间的交互机制, 组件内部实现细节对用户透明, 具有即插即用的特性。因此, 组件具有以下特点:

⑴组成系统的组件都具有确定的上下文依赖关系, 组件对外提供服务, 供其它组件调用;同时, 组件在提供服务的过程中也有可能调用其它组件提供的服务;

⑵组件通过接口给其它组件提供调用服务, 这些接口是服务提供者和服务调用者之间的协议, 具有易扩展性。

⑶组件封装了内部结构, 它的实现细节对外透明, 这样具有相同应用的不同系统都可以来调用该组件并创建自己的应用程序, 提高组件重用性。

在一个基于组件的软件系统中, 各组件间的交互是通过组件提供的接口来实现, 接口提供了组件交互所需的全部信息。接口是对组件提供和请求服务的抽象描述, 是组件服务及其用法的契约, 它通过一种与平台无关的语言IDL (Interface Defi ne Language) 来定义, 而且是二进制兼容, 使用者可直接调用执行模块来获得对象提供的服务。

1.2 基于组件的软件复用技术

组件具有平台和语言无关性, 支持即插即用, 是支持软件复用的核心技术。软件复用是指将已有软件的各种相同或相似元素重复建立新的软件系统的过程。软件复用包括两个相关的过程:可复用组件的开发和基于可复用组件的应用系统构造。目前制定实现规范并比较适用于复用的组件模型有CORBA/ORB、COM/Active X、Java Bean以及.NET等。通过对以上组件模型的研究与对比, 本系统选定.NET中的Windows Forms作为本实时测控软件的组件模型, 使用.NET Framework的公共语言运行时, 组件都建立在一个共同的底层基础上, 不再定义使用复杂的管道接口, 对象可以直接交互访问, 有利于组件的自由配置, 同时, 利用.NET技术的分层结构特点, 采用“搭积本”的方式生产软件, 大大提高软件开发效率。

2 基于组件技术的实时测控软件开发

2.1 软件架构设计

在组件技术中, 一个组件就是一个接口集, 它通过接口对功能进行封装。因此, 对于同一个应用程序架构, 只要其使用的接口集合不变, 即可通过更换支持同样接口集的组件来获得不同应用, 也可重复利用同一个组件或对组件进行二次开发。而基于组件建立的软件架构和应用开发, 其最大优点在于可以复用的应用结构和软件单元。

实时测控软件主要是对实时测控数据的处理、评估和显示, 而测控数据主要包括光测、雷测、遥测及GPS测量等类型, 其处理过程通常包括数据采集、数据解析、数据处理和结果评估等四个部分, 针对以上4种数据类型, 在基于组件技术思想下, 其处理架构可统一进行设计, 如图1所示。

针对靶场测控系统中光测、雷测、遥测及GPS测量等数据处理应用, 通过将数据采集组件、数据解析组件、数据处理组件、结果评估组件替换成相应功能的组件, 即可实现在保持软件架构不变的前提下开发出不同的应用系统。

2.2 基于组件技术的软件升级维护

组件接口是对某一功能的一套抽象描述, 具有封装性, 它通过接口与其功能实现分离开了, 并以接口作为客户与组件 (或组件之间) 交互的唯一方式, 因此, 只要保持接口不变, 就可以将系统中的组件用新的组件替换, 以随时进行系统升级维护。

下面以实时测控数据处理软件中的雷测数据处理应用为例, 其软件的架构如图2所示。

当需要对系统进行升级维护时, 在软件架构完全保持不变的前提下, 对具体的组件进行替换, 只要保持接口不变, 程序无需重新编译链接, 系统即可通过使用更新后组件中的新接口来获得新特性, 从而实现系统的升级维护。

2.3 利用组件复用技术实现软件功能扩展

组件复用是利用已有组件创建新组件, 即通过第三方产品来构建自己产品。组件复用是通过包容和聚合来实现的, 包容时外部组件包含内部组件的接口, 它由外部组件接收此调用请求再交由内部组件来处理, 聚合时外部组件直接调用内部组件的接口, 它让内部组件直接处理该调用请求。

在C++语言, 通过在外部组件中增加内部组件接口, 并把调用请求转发给内部组件即可实现包容, 对于聚合, 在内部组件中维护一个外部组件接口指针 (如m_p Unknown Outer) , 通过委托代理机制, 让内部组件接口提出的查询接口请求由一个委托接口转发至外部组件, 再由外部组件接口查询内部组件。这样就可以实现一致的访问, 即不管是通过外部组件的接口, 还是内部组件的接口, 都可以查询到内外组件所支持的接口集合。

在实际应用中, 软件开发不仅有大量的、功能强大的商业化组件可以使用, 而且有应用广泛的、成熟的靶场测控系统专用组件可以使用, 如组件化的数据接收、量纲复用、坐标转换、滤波平滑、精度评估等功能模块。因此, 利用好组件复用技术可以有效扩展靶场测控数据处理系统的软件功能, 对于靶场测控系统建设具有重要的现实意义。

3 结束语

基于组件技术的实时测控数据处理软件开发可以大大提高软件开发效率, 大幅度降低系统的开发费用, 有效解决靶场测控数据种类多、规模大、复杂性高的难题, 为靶场测控手段的不断发展提供了技术支持。

参考文献

软件开发中的链接技术分析 第10篇

1 软件开发中的链接技术概述

在软件开发过程中需要使用到的链接技术有单链接技术和双链接技术两种。其中, 单链接技术是指在线性表当中的记录节点只存在单一后续节点, 该后续节点通过指针场确定的一种连接技术。实现结构如图1所示。

由图中看出, 每个节点在与后续连接节点进行链接时需要使用指针确定和记录链接位置。该结构下若需要对数据进行操作则会对数据结构产生影响。若需要对第二个节点进行删除, 则应该执行R (A1) ←A3操作;若需要在第二个节点前添加新节点, 该节点的地址为A5, 则需要执行R (A5) ←R (A1) , R (A1) ←A5, 该操作首先将节点A5插入到A1之后, 之后修改改变节点的链接关系。

综合分析上述过程可以发现单链接技术在操作灵活度方面还存在一定欠缺, 数据链表发生变化时需要修改的内容较多。

双链接技术将原有的单方向链接结构转变为双方向链接结构, 相较于单链接技术而言, 增大了对线性表操作的灵活度。其实现结构如图2所示。

在双链接技术结构下若需要实现对节点Q的删除操作则需要执行下述操作:R2 (R1 (Q) ) ←R2 (Q) , R1 (R2 (Q) ) ←R1 (Q) ;若需要实现对节点Q后面添加新节点则需要执行下述操作:设新节点的地址位置ADR, 新纪录的名称为new, 则D (ADR) ←new, R1 (ADR) ←Q, R2 (ADR) ←R2 (Q) , R1 (R2 (Q) ) ←ADR, R2 (Q) ←ADR。

虽然双链接技术需要执行的操作更多, 但是其数据链表的灵活度得到了大幅度的提升, 可控性更好。

总体来看, 软件开发中的链接技术需要使用指针场相关功能, 这种操作可以有效提升对数据记录表进行插入和删除操作的执行便捷性, 还能够提升软件系统的整体运行速度, 协助实现最优化设计。

2 链接技术在信息排序中的编程实现

软件开发会产生和使用大量同类型数据, 同时需要对这些数据进行处理和分析, 这个过程通常需要使用数据排序算法。映射排序算法是一种常用的, 性能较好的数据信息排序算法, 该算法时间复杂度相对较低, 但是在面对大量重复关键字的多分量数据记录任务时, 该算法的应用效果会大打折扣, 受到影响。为解决这种算法在大量数据处理方面的缺陷可以应用单链接技术对该算法进行改进。改进实现方式如下:

对于需要排序的数据进行映射处理, 将数组按照适当的规则构造多个数组, 并用构造规则所使用的关键字的实际值对每个数组进行标注, 如数组X中的元素X[5]表示其所对应的关键字为5。映射处理完毕后制定可区分相同关键字的数据处理规则, 该规则为每个关键字的处理方式附加三组数据空间:关键字下不同记录的链指针R[i]、指针当前所在位置的链空间W以及链首指针空间Q。

在实际映射时可能会出现一对一和一对多两种映射关系, 对于这两种映射关系可以采取不同的处理方式。当映射数组中某一元素与关键字之间的映射关系为一对一, 即关键字在该元素中只有一次映射时, 创建X[K1i]=1, 表示对应关系K1i所使用和记录的地址为i, 此时在当前链空间W和链首指针空间Q中会出现如下映射关系:i→W[K1i]和i→Q[K1i], 前者用于为多个关键字的出现提供地址准备, 后者表示该记录中的地址i可用于排序调整中的首地址。

当映射数组中某一元素与关键字之间的映射关系为一对多, 即一个元素对应多个相同的关键字时, 会出现X[K1i]>1的情况。这种情况下可以作如下处理, 对于多个关键字如Ki和Kj, 他们的入口地址设置方式与一对一映射相同, 设为j→Q[K1j], 但是当前空间地址映射则变为i→X[W[K1j]], 等价于i→X[j], 此时将i→W[K1j]作为多关键字链接准备。

经过上述处理过程可以根据数组X中每个元素的属性值确定入口地址, 进而完成排序操作。

3 结语

链接技术在软件开发中具有重要意义, 一方面可以帮助化简和解决实际数据处理中存在的多种问题, 另一方面还能够继承链接技术灵活性高、可控性好、空间占用较低、执行效率较高等优点。

参考文献

[1]张晓煜.软件开发中的链接技术[J].洛阳工学院学报 (自然科学版) , 2001, 22 (3)

关于计算机软件开发技术的相关探讨 第11篇

关键词 计算机 软件 开发技术

中图分类号:TP31 文献标识码:A

计算机作为现代技术的代表,在社会中发挥着日益重要的地位,而计算机软件作为计算机技术的支撑,更是有着不可估量的作用。因此,本文根据计算机软件开发的几个方面进行了探索。

1开发计算机软件的意义

软件开发技术,在计算机软件工程中是一个核心的内容,对于计算机技术的发展有着不可代替的作用,它是计算机网络技术的创新载体,也不断地推动着各项技术向前发展。比如说,现在的一些网络支持、远程控制等都可以利用计算机软件的有关技术开发来进行实现。软件开发的技术为计算机的网络开发及共享起到了促进作用,开创了一種更为科学的网络共享机制,之前的计算机网络是不可能完成的,如果计算机软件的应用落后,可以利用开发新的软件来进行解决。目前,我国的计算机软件的开发技术发展速度非常快,令我国计算机软件的便捷性、安全性都得到了保障。根据以上的描述可以看出,对于该技术的开发,对于我国计算机网络的更新、科学的发展、计算机的安全性各个方面都有十分重要的意义。

2开发的基本情况

计算机的软件主要有两个层面,首先是系统的软件,其次是应用的软件。根据以上的分析,对这两个部分有了简单的了解,也明白了对其开发的意义。因此接下来就应该了解具体的开发情况。

2.1开发技术的发展

关于计算机软件的开发需要经过许多个阶段,在上世纪的50、60年代,对计算机软件的开发还是以手动的形式进行,因此出现错误的几率也是很高,应用的效率上也不是很高,没办法与适当的软件进行匹配。随着计算机的使用与发展,商品经济开始了它的萌芽阶段,一些承载力较强的计算机软件渐渐的被研制出来,需求者们也都急切的渴求先进的软件来满足程序的运行与调试。进入八十年代时,对软件工程给出了具体的概念,根据以上的计算机软件研发的经过来看,先后经历了设计阶段、软件阶段、软件工程三个阶段。步入新时期以后,计算机技术取得了突飞猛进的发展,因此对于计算机的软件技术来说也得到了展示的机会。

2.2计算机软件的开发方式

从现阶段的情况来看,对于开发计算机软件一共有三种方式,主要包括:原形化方式、对自动形成系统的研发、软件生命周期法。原形式方法在开发的过程中,需要深刻、全面的了解系统的主要信息需求及其功能,在未开发之前,还需要对有关的事项进行预先的定义与说明,一旦用户对软件的使用上不满意,或者说研发者对系统的使用、算法结果等情况不敢给出保证的时候,对软件的开发与设计,就应该利用原形化的方式;对于自动形式系统的研发,主要是基于第四代计算机的软件技术之上,并以此来作为研发的主要工具,对于开发者来说只需就软件的内容及目标进行详细的描述,开发者在开发的过程中不需要对系统的如何实现进行具体的说明,再设计的过程中软件就会依照系统的规定进行自动的设计和进行自主的编码;软件周期法是最后的一种软件研发的方式,该研制方式以时间的角度进行着手,对软件研发、定义、维护等方面进行考虑,对问题按阶段进行分解,为各个阶段制定相应的标准。

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

计算机为生活与生产服务,在现实的生产和生活中具有十分广泛的作用,作为计算机的核心—计算机软件,它对计算机具体功能的实现及应用有着十分重大的意义。为了实现其服务的功能,是对计算机软件进行研发的主要诱发机制,把计算机的价值很好的展现给人类。为了使人们对于计算机软件的开发技术进行更科学的了解,本文以具体的计算机软件研发事例来进行探讨。对两个产品的开发进行对比式的研究,两个产品分别使用VB6.0+Acess和Web+Xml+ActiveX。第一种产品,由于驱动和虚拟机都属于微软的历史版,可以直接就把安装的工作完成;第二种,需要将浏览器的设置与安装进行更改,方可达成对客户机的安装工作,比第一个产品多了一个步骤。安装结束之后,对两个产品分别进行运转就会觉察到,第一种相对来说运行的比较稳定,用户可以独自的完成一般的工作,不足之处就是由于客户数据的增多会影响运行的速度,需要人为转档。而第二种受到浏览器设置和安装步骤的制约,因此在实际的操作中会遇到较多的问题。根据以上的对比分析,对于软件的研发有了更加清晰的了解。因此,在对软件的开发、研制时,应多以用户为主。

4结语

随着网络技术的出现,我们的生活发生了巨大的变化,对社会的进步也带来了巨大帮助,影响着我们生活的各个方面。作为计算机核心的软件,在更新与发展的过程不断的进行完善,开发出更多适应时代发展软件,不仅丰富了人们的生活,对国民经济的发展也起到了重要的作用。

参考文献

[1] 陈斌.计算机软件的深度开发应用[J].科技致富向导,2012(32).

[2] 赵明亮.计算机应用软件开发技术[J].黑龙江科技信息,2011(26).

[3] 刘默.浅析软件开发在计算机网络教育中心的重要性[J].中小企业管理与科技,2011(06).

系统软件开发过程中的软件工程技术 第12篇

在不断研究的过程中, 相关学者发现应用软件与系统软件依然存在着诸多的不同, 因此, 我们可以确定人们通常所产生的错误理解是基于软件开发方法这个词所产生的, 其使得人们狭义的将系统软件以及智能软件和应用软件混为一谈, 而软件开发的真正解释则指的是单独对应用软件的开发方法。

1 软件系统的复杂性

在软件系统开发的过程中, 其所牵扯到的层次相对来说较多, 且理论层次性对较深, 此外, 还设计到了系统实现方面的工作, 所以, 软件系统具有一定的复杂性。在对系统软件的内部结构进行分析的过程中, 笔者发现在模块与模块之间的耦合性相对较高, 其往往存在牵一发而动全身的问题, 也就是说, 在对某一模块进行改动时, 其所带来的后果往往是多重的。因此, 虽然在进行设计的前期制定的目标相对较为完善, 但是在实际操作过程中想要达到此种目标具有很大的难度, 其会经历一个较为漫长的改变过程。

2 系统软件开发过程中对于软件研制中的管理技术要求

基于第二章之中所提到的系统软件的复杂性较高这一问题, 热血和对其进行研究和控制直接关乎着对系统软件的进一步开发与利用。而对系统软件开发复杂性的控制过程中, 其对于人员管理以及材料管理均有着不同的要求, 因此, 所谓的软件工程技术就是指在进行系统软件开发的过程中, 借助工程化的管理方式来实现对系统软件的管理与控制, 其体现在整个软件开发的全过程之中, 而通过笔者具体深入的研究, 笔者发现“工程”二字并不能够有效的概括系统软件的相关内容。因此, 运用软件工程技术对系统软件开发的过程相关问题进行更好的控制能够有效的促进既定目标的完完成。

3 软件开发技术与开发需求不匹配问题分析

在软件开发的过程中, 随着时间的发展, 在科研界已经推出了许多具有实际意义的方法方式, 其中最为经典的集中方法要数SASD法以及JSD法和JSP法。这些方法具有相对发展时间较长, 其应用面也相对较广, 因此, 其能否适用当前的开发需求问题还需要进行进一步的验证与分析。在实际验证过程中, 软件工程技术对于系统软件开发过程具有一定的程度的约束, 因此, 传统的软件开发技术已经很难满足当前软件系统的基本需求。而如何解决此类问题的重点核心是不断的开发新技术以期能够实现与现有需求想匹配, 最终促进系统软件有效合理的开发和使用。

4 软件工程项目管理

在对软件项目实施管理的过程中, 其主要目的是为了更好实现软件项目能够按照预定好的计划进度与成本最终实现既定的目标, 其主要是对项目实施过程中的每一个因素进行系统的分析与管理, 对风险问题进行合理有效的预测。而企业的软件开发能力的强弱完全取决于软件工程项目管理体系是否成熟。软件开发的能力越高, 其项目管理体系就相对较为成熟, 而企业也能够得到充分的发展。

项目工程是借助软件应用程序来对项目进行设计以及管理的的一个具体的过程, 其主要借助浏览器以及软件服务器等相关主题工具, 不断的推动企业项目软件工程各行的开发工作, 在正常实施的过程中, 往往都是采取师傅带徒弟进行设计的模式, 由师傅进行主导, 对土地进行实际教学, 从而不断的锻炼软件开发技术人员的个人能力, 从而更好的提高软件开发技术人员的实际动手操作能力, 以便于更好的对软件工程项目进行管理。

在对项目管理进行实施的过程中, 要对项目进行提前准备, 而准备也通常分为两种情况, 即外部准备和内部准备, 因此, 在进行项目执行前, 要合理的软件开发项目的风险性以及收益进行预测, 判断此项目的可实施性。软件项目工程在建立后可以根据所要完成的目标实现灵活的改变, 其需要在实际操作过程中由专业的技术人员对其进行深度的改进。倘若一个企业能够做好项目管理这块工作, 其核心竞争力必然得到加强, 从而带动市场竞争力的加强, 最终促进整个行业的发展壮大。

在软件工程技术的实际运用考核过程中, 要设立合理的考核内容与考核因素, 进一步的软件开发过程中技术人员的技术能力与水平进行合理的监控, 从而实现对整体员工个人能力的绩效考核。

5 结束语

在系统开发的过程中, 通过对软件工程的有效使用, 能够更好的促进软件技术开发目标的实现, 减少不必要的麻烦和风险。而技术人员作为企业的新生力量, 其能力是否能够在企业中得到有效的发展直接关乎着企业系统软件开发与应用的基础, 从而影响到企业的基本竞争力。

在本文的研究过程中, 笔者首先对软件工程以及软件开发进行了理论层次的论述, 进而分析在软件开发过程中所存在的主要问题, 指出通过软件工程技术的合理控制能够最终实现对企业系统开发的风险以及其他因素进行掌控。而在文章最后章节的论述中, 笔者在对于软件工程的项目管理问题上进行了充分的论述, 一起能够不断的促进软件工程技术在软件系统开发过程中的应用。

摘要:随着时代的发展, 网络技术已经走进了千家万户。由于系统软件的复杂性以及特殊性, 因此对于软件的管理开发活动显得异常重要。在本文的观点中, 笔者认为系统软件与应用软件是有着本质的区别的, 其具有独特的规律。因此, 本文正是基于这一角度展开研究。

关键词:系统软件,开发过程,软件工程技术

参考文献

[1]涂海丽, 陆玲.软件工程思想在管理信息系统开发中的应用探讨[J].电脑知识与技术, 2008:4-5.

[2]周敏.系统软件开发过程中的软件工程技术[J].电子制作, 2015 (08) :100-101.

上一篇:救生技术下一篇:中国汽车市场