简介:关于本文可作为开发称重方面的大学硕士与本科毕业论文开发称重论文开题报告范文和职称论文论文写作参考文献下载。
韩鹏
(航天科技集团公司第四十四所,陕西西安710025)
摘 要:称重计量领域是一个广泛地应用领域,在交通、化工、矿场、油气田、港口等等不同的场合中都发挥着举足轻重的作用,在工艺计量和过程控制中更离不开称重计量,生产过程自动化水平很大程度取决于计量称重技术的发展.本文通过对当前windows环境下的全新变革的讨论,及对新兴的开发语言C#和.net全新平台的详尽分析,阐述了称重计量领域的软件系统在新形势下面临的问题和机遇,及通过C#和.net这些新技术如何持续应对未来的需求的方法和途径.
关键词:C#,J论文范文a;netFrameWork;汽车衡;软件工程;模块化:软件复用
1.概述
称重计量领域是一个应用广泛的领域,在交通、化工、矿场、油气田、港口等等不同的场合中都发挥着举足轻重的作用,在工艺计量和过程控制中更高不开称重计量,生产过程自动化水平很大程度取决于计量称重技术的发展.称重计量不仅仅是对相关物品进行称重,它还包括了硬件控制、各种数据采集和管理、系统监测及网络信息共享,是一套功能齐备的、以称重信息为中心的综合应用系统.
我国各行对称重计量领域的需求增多,尤其是交通方面和能源领域,这几年的需求一直有增无减.据不完全统计,需求以每年12%的速度增长(参见《中国称重计量仪表市场供需状况研究》报告).四十四所也正抓住这个良好时机,签订了大量的与衡器相关的项目.在这种状况下,对称重计量领域的软件系统就提出了更高的要求.如,更加要求软件的正规化,要求具有一定灵活性和良好的构架,以满足当前称重计量领域的软件系统的迫切需求.
本文就当前微软公司近来推出的C#强大的编程设计语言,和面向未来的.net的战略计划为出发点,深入探讨一下对称重计量领域的软件开发所带来的巨大意义.
2.称重领域的软件系统分析
根据长期以来在称重计量领域软件应用方面的研发经验,及对其发展方面的深入调研,我们可以对该领域的一些特点进行总结,这些特点基本上反映了当前称重计量领域所具有的典型特色和所面临的问题.
2.1快速开发,和快速的维护
由于称重计量市场的战略需要,要求能在短时间内完成和满足新签订项目的需求.因此需要进行快速的开发和调试,其中很大一部分是在原有的软件基础上进行修改.除了进行必要的软件配置管理外,还需要开发工具的快速性和高效性,能以最小的劳动量实现所需要的功能和修改,以实现同步满足称重计量项目对上位软件的需要.
2.2模块化,灵活组合功能,以满足不同的需求
由于称重计量领域的所有项目具有一定的相似性,有很大部分是相同的.如架构基本相同,都需要显示界面、数据库管理、流程操作界面;显示界面基本上要显示监视视频、称重结果、硬件控制等等;流程基本上都是刷卡、称重、显示或音频提示、打印和存入数据库;数据库大部分需要的年、季、月统计和以主要关键字段为条件的查询,基本上都有用户管理、班组管理等等.因此,为了不重复开发已有的功能,需要采用模块化的软件开发方式,把经常变动的部分设计成模块,根据项目的要求进行组合,以达到复用和节约开发成本的目的.
2.3友好的界面
操作软件的用户大多数是对计算机了解不深,学历不高的一般用户.为了避免对软件操作的理解和学习的困难,避免误操作,同时为了提高软件操作的效率,需要软件的界面具有友好性和亲和性,使软件对新用户能尽快上手,并能方便地使用各种基本功能.
2.4和大量的硬件打交道,需要一定的速度
称重计量的软件的一个特点是它所面对的硬件种类比较繁多,包括了称重仪表、读卡器、红绿灯、八路保警器、红外对射、光幕、显示大屏幕、语音系统、道闸、视频系统、车号识别系统、打印部分等.当这些硬件同时工作时,就要求开发语言开发的软件具有一定的执行效率,以保证流程顺畅的运行和及时反应,使软件不会延误整个称重过程的进行.
2.5面向未来的运作环境
在计算机方面,这几年正发生着深刻的变化.Windows7的推出.net战略的实施,电脑硬件的高速发展,平板电脑和手机的高度智能化,这一切都给软件提出了更高的要求,需要向未来兼容,对新一轮的计算机的运行平台的更新换论文范文好准备.
2.6面向网络
未来是网络化的时代,称重计量系统也必将向WiFi、物流网、云计算、移动终端和各种形式的远程控制等等这些方面迈进,而这些技术无一例外根植于网络.因此,称重计量领域的在未来的一个重心就是网络化,以网络为核心,实现信息的快速共享和自由传送.
3.旧软件系统的弊端
3.1开发效率低下
称重计量领域的软件系统的设计语言,大量地采用地是VisualC++和BorlandC++,及Delphi等等开发语言,实际上Windows下的商业软件也大部分是基于这些开发语言进行开发的.这些语言的一个特点是,开发出的软件执行速率较快.它们成功地实现了软件的高的执行效率,使语言接近系统底层,语法精简和干练,但是它们实现一个功能,却需要大量的较低层化的编程,从而影响了开发效率.执行效率和开发效率是软件开发中的矛盾之处.
3.2维护比较困难
正是上述提及的开发语言相对比较“低级”具有更低层的操作能力,从而在开发过程中更容易出现危险的错误,使软件可靠运行性不高,一旦出现问题则需要更多的时间去寻找问题根源.这是因为它们缺少更高级语言的安全性、科学性、智能化,和对低层良好的封闭性.比如,C和C++中的指针问题,这个特性能给软件带来非常高效的执行速度,但是却带来极大的问题.一旦软件出现问题,软件就有可能面临崩溃,而且问题点也比较隐蔽,不易发现.原有开发语言的这些特点造成了维护的难度和成本的增加.
3.3不兼容新型操作系统
由于微软公司的战略技术,论文范文操作系统WindowsVista和Windows7及以后更高版本的系统,将不能很好的支持VisualC++和BorlandC++等等这些传统开发语言开发的软件,也就是说,这些开发语言将面临不能兼容新操作系统的尴尬局面.
3.4界面陈旧
原有的传统开发语言基本上是基于Windows×P甚至是Windows98的界面显示特点.这些10年前的界面特色,已经显得陈旧,不能满足当前的审美取向,从而会严重影响软件的包装和形象.如果刻意去设计良好的界面,又会增加额外的开发进程,在一定程度上,增加了软件的复杂程度.
3.5新技术支撑不足
对于目前的新兴的软件技术,比如.net、Ajax、工作流、云计算、SOA等等,原有的开发工具都不能很好的支持,甚至是不能支持,这是由于先天的设计造成的.虽然现出针对这些开发工具出现了很多面向新技术的插件和类库,以使这些旧的开发工具也能支持新技术的应用,但是这毕竟是一种修补,勉强兼容新的技术要求,同时这些修补也多出于一些爱好家之手,得不到论文范文的技术支持.
4.新兴的C#与.net
4.1简介
2000年6月,微软论文范文正式发布了Microsoft.NET(也称为DotNet)平台战略,该平台是是微软的新的因特网和Web战略,未来微软所有产品都将基于这个架构,它是一个基于因特网、WEB及桌面系统的全新架构,用于通用服务(universalservices),可运行于任何平台上的任何浏览器中,并基于最新的web标准.
C#是Microsoft在2000年7月推出.NETFramework的第1版肘提供的一种全新语言.C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言.它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏和模版,不允许多重继承).C#综合了VB简单的可视化操作和C++的高运行效率,及类似于J论文范文a的语法特点,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持的特点,并经过十年的发展,现在已成为.NET开发的首选语言.
4.2C#与.net的特点
4.2.1先进性
具有c++和C的灵活性,和非常接近它们的执行效率,具有高级语言的开发效率,具有庞大和高效率的运行库(.netFramework平台),可以说是微软集各种开发语言之论文范文.
在过去的二十年内,C和C++已经成为广泛的应用在商用软件的开发中的开发语言.但是C和C++都提供了一些容易使开发者产生错误的特性,也可以说C和C++的灵活性是牺牲了开发效率.如果和其他的开发语言相比(比如说VB),相同功能的C/C++软件通常会需要更长的开发周期.正是由于c/c++开发的复杂性和需要较长的开发周期,所以许多C/C++开发人员都在寻找一种可以在功能和开发效率间提高更多平衡的开发语言.
C#的出现解决了这个问题.它是一种先进的、面向对象的语言,通过c#可以让开发人员快速的建立大范围的基于微软网络平台的应用,并且提供大量的开发工具和服务帮助开发人员开发基于计算和通信的各种应用.C#可以为C/C++开发人员提供快速的开发手段而不需要牺牲任何C/C++语言的特点/优点.从继承角度来看,C#在更高层次上重新实现了C/C++,熟悉C/C++开发的人员可以很快的转变为C#开发人员.
4.2.2网络化
C#是微软公司为了与J论文范文A语言进行竞争而研发的新型语言,J论文范文A是网络编程中最重要的语言,其J2EE具有庞大、完整的分布式企业级应用程序解决方案技术.为此,c#也必须具有该方面的能力才能与J论文范文A进行同级别的竞争.C#天生就具有了网络技术和运用的能力,对网络的功能的实现具有更强大的能力.C#是后起之秀,它与WEB开发的结合,高于其它语言尤其是J论文范文a语言.C#开发者可以方便的在网络平台上扩展自己的应用.C#可以将任何组件转变为WEB服务,并且可以被运行于Internet上的任何平台的任何应用调用,重要的是C#对这一特性提供了内置的支持.更重要的一点,WEB服务框架可以让任何WEB服务都看起来类似于C#的内置对象,所以可以让开发人员在开发过程中继续使用他们已经具备的面向对象的开发方法和技巧.
4.2.3复用技术的实现者
面对日益复杂的软件系统和软件需求,软件复用被认为是解决“软件危机”、提高软件开发效率和质量、实现软件“批量化”生产方式的重要途径之一.同时软件复用的研究和实践表明,特定领域的软件复用活动相对容易取得成功.这里的领域是指一组具有相似和相近软件需求的应用系统所覆盖的功能区域.领域的内聚性(领域知识逻辑上的紧密相关性)和稳定性(在一定时间内,领域知识不会发生剧烈的变化)为软件复用活动提供了可供复用的软件资产和潜在的经济利益,使得特定领域的软件复用相对容易获得成功.
C#是一个完全的、纯粹的面向对象的设计语言,因此具有模块化、结构化的显著特点,对于实现技术和成果的复用具有强大的优势.同时,C#泛函、特殊的dll方式等等技术也为成果复用提供了更有利的方式.
4.2.4敏捷开发
C#所在的VisualStudio集成环境中自带了流程模板,相比较其他所谓敏捷工程实践性更强,并且VisualStudio集成了编码以外的版本控制、缺陷管理、UML建模等,以及专门用作用于测试驱动开发的单元测试模板.VisualStudio为软件开发项目流程中不同角色的人员提供相应的工具,以TeamFoundationServer为核心,将不同角色和工具整合在一起,这样不但增强了软件开发团队中的沟通与协作,更能方便实现完整的使用程序生命周期管理,在流程开发中使开发团队以及在整个开可预见性发流程中确保更高和更好的质量.而且,VisualStudio支持统一建模语言UML及特定领域语言DSL.可以让开发团队各个人员(.NET项目管理人员、软件架构师或者开发人员)轻松可以直接执行软件架构的构建.
从上文分析可以看出.C#和其编程环境中已经为敏捷开发做了大量的准备,完全能够实现软件快速、高质量的开发.
4.2.5完全适应未来环境
正如前文分析,由于.netFramework是作为从WindowsVista开始未来所有操作系统的低层平台,所以C#具有完全的兼容性,也是未来微软的操作系统兼容最好的开发语言.
5.应用情况
通过对C#设计语言与.net平台的分析可以看出,在以Windows为主要操作系统下,它们是当前最佳的选择,因为它们的特点可以满足计重称量领域的软件设计需要,能够适应该领域的发展方向.以下通过称量汽车衡器类的项目来说明C#及.net在计重称量领域的应用情况.
5.1应用简介
由于汽车衡项目开发的需要,需要开发多用途、多接口的计重软件,需要多称量平台和灵活的模块组合模式,即以模块化思想,以面向汽车衡领域为目标,开发出具有可方便调整和扩展、在硬件、报表、流程等等方面可组合和设计的新型的汽车衡系统.
5.2系统结构
汽车衡项目的系统结构如下所示:
从该系统的结构中可以看出,该项目完全是以模块化实现的,并按功能可以大致分为五个板块:主控、硬件、流程、数据库和网络板块.每个板块又有各自相关的模块.
5.3C#的实现
5.3.1命名空间划分板块
C#中的命名空间(namespace)是一种顶级声明,软件的其它所有部分都在命名空间中,它提供了一种从逻辑上组织信息的方式,有助于功能的规整和系统的模块化,防止命名冲突.C#的命名空间是划分功能类型的工具,在.netframework平台中,有定义好的数以千计的各种类型的命名空间,每个命名空间中又包括和该命名空间的含义相关的各种类.
在本项目中,可以利用C#的命名空间来实现每个板块,每个板块可以看成是一组相同功能和模块的组合,利用命名空间就可以实现这样的功能和模块组合.
5.3.2类实现模块
C#中的类与C++时代的类有比较大的不同.C#是完全面向对象的开发语言,它的所有代码是由一个个类实现.和C++比.C#中的类又多了更多的特性,比如属性和字段分开、扩展方法、事件、自动属性、对象初始化器、密封、抽象、分部、索引器等等,这些新特性,使类具有更强大的表现性,能更准确地用代码实现一件事物.
因此可以用C#中的强大的类来实现模块.它能实现一批面向某一应用的函数(方法)和属性(及字段)的组合.模块的属性就是类的属性、字段,模块的接口就是类中的函数(方法).用C#中的类来实现模块,可以完整和准确地实现模块的功能,体现了模块的内聚性.
5.3.3外部模块实现组合
为了方便组合,有很多模块是要根据项目进行增减的,也就是说这些模块是活动的,是可以由甚至是用户来进行组合的.为此,就需要以单独文件存在的外部模块来完成.一般是以动态链接库的方式来实现.c#可以实现两种动态链接库方式:一种是标准的动态链接库(dll),是各种设计语言之间兼容的方式.因此,用其它语言开发的动态链接库(模块)可以采用这种方式加入到系统来,比如项目中的硬件模块是用BorlandC++Builder和VisualC++开发的,通过标准动态链接库方式加入到硬件板块中;另一种是C#新制订的标准,通过这种新标准,可以非常方便的调用c#自己开发的外部模块.
5.3.4消息交互
c#可以实现Windows下的所有信息交互方式,例如Pipe管道、消息传递、文件映射、Socket等等.
在本项目中,采用消息方式来实现各个模块之间的信息交互.例如在初始化时的流程如下:
模块之间必然存在各种交互和互动,由于微软公司在其dotnet底层中,针对其Windows操作系统整合和封装了全部的系统接口(API).因此,作为dotnet的御用语言c#也就能轻松的调用这些功能,甚至是直接调用系统的API接口,这样,对本项.目中的模块之间的通讯提供了全面的支持.
例如本例中的消息,就直接采用了系统的API接口,常规和字符串方式的声明分别如下:
[Dlllmport(“User32.dll”,EntryPoint等于“SendMessage”)]
private static extern int SendMessage(IntPtr hWnd,uint Msg,uintw Param.int IParam),
[Dlllmport(“User32.dll”,Entry Point等于“SendMessage”)]
private static extern int SendMessage2(
IntPtr hWnd
uint Msg.
intw Param,
ref_COPYDATASTRUCTIParam):
称重传感器:上海歆宝封箱研究机开发 封箱机封箱效果 节能型称重封箱机 封箱展会展示
使用方法,示例如下(aOrderID和aPara为发送的信息):
SendMessage(aHandle,WM_APP,aOrderID,aPara),
5.4项目的设计过程
5.4.1建模
对项目中的每一个板块需要进一步建模,以确定板块的详细的实现细节及每个模块之间的调用关系.例如利用VisualStudio下(VisualStudi02010内部存在更强大的设计工具)的UML设计工具设计出的硬件板块与其它板块和模块的配合情况:
C#所在的VisualStudio集成开发环境中,集中了大量类似于UML这样的方便的设计工具,为软件的开发提供了极其便利的手段和途径,对软件的快捷的开发提供了有利的支持.
5.4.2类关系的确定
类的设计是程序代码化的最后一步,根据UML的建模的结果,可以进一步设计出各个模块的结构,和它们之间的关系.例如本项目中的主控模块的主空间的类关系如下:
上图是一个类的直观视图,它是根据实际代码转化而来,也可以转化为完全一致的实际代码.通过这种方式.C#设计的程序的结构和内容一目了然.
5.4.3代码实现
根据类的关系和结构,就可以编写代码,甚至是由C#编辑器自动生成代码,比如主控模块的主空间的代码如下(内容已收缩,只显示类结构):
从上图可以看出,C#的代码井然有序、非常清晰,准确地实现了设计的模型.C#的编辑器中还内建有非常强大的智能感知系统(IntelliSense),会非常迅速和智能地感应设计者的下一步动作.(图:智能感知系统.见下文)
清晰、简洁、强大的设计界面,有利于程序的快速编写和更高效的维护,对于短时间内构建和维护“速食”的称重计量领域的软件系统具有非常大的意义.
6.发展前景
微软的.NET是一项非常庞大的计划,也是微软今后发展的战略核心,“在任何时间、任何地点,采用相应的设备以获取所需的信息”.作为一种全新的开发语言,它的市场占用份额已经上升到了第六位(参见Tiobe发布2011年1月发布的开发语言排名).因此,作为.net环境下的核心开发语言c#,其地位会不断地提高,技术水平会不断地得到发展和进步.而基于Windows平台下的称重计量领域的软件系统,完全可以利用.net和C#所带来的技术革新和进步,为该领域内的持续发展提供强有力的支持和强大的保障,为今后的多样的、广阔的应用和新时代的PC方面的变革,作好充分的准备.
参考文献
[1]《c#本质论》(第四版),(美)MarkMichaelis,人民邮电出版社,2008年.
[2]《2011年1月开发语言排名》,(美)Tiobe,2011年.
[3]《微软c#规范》,(美)微软公司,2008年
[4]《微软云计算解决方案白皮书>,,(美)微软公司,2003年
[5]《Microsoft.net白皮书》,(美)微软公司,2000年
[6]《电子汽车衡软件策划书》,韩鹏,2009年
[7]《称重技术在港口的应用与发展》,中国衡器协会,2004年
[8]《称重计量服务项目投资前期市场深度调研及投资前景预测报告》,中国新经济视点网,2007年
[9]《中国称重计量仪表市场供需状况研究》,中国企业经济信息网,2009年
总结:关于免费开发称重论文范文在这里免费下载与阅读,为您的开发称重相关论文写作提供资料。
称重传感器引用文献:
[1] 油库安全检测系统传感器论文
[2] 英文自考论文相似度查重原理和查重规则算法是什么
[3] 博士学士论文查重准吗