时间:2022-03-19 11:28:28
导语:在软件开发论文的撰写旅程中,学习并吸收他人佳作的精髓是一条宝贵的路径,好期刊汇集了一篇优秀范文,愿这些内容能够启发您的创作灵感,引领您探索更多的创作可能。
1、动力学模型
建立三维中子动力学模型,包括三维中子扩散模型和考虑轴向流动的DNP平衡方程。由于DNP随燃料沿轴向流动,部分先驱核流出堆外并发生衰变,未衰变的将再次进入堆芯,因此DNP方程需在整个主回路中进行求解。时空中子动力学方程组包括G个中子扩散方程和I个DNP方程。根据之前的相关研究[3]可知,燃料盐的流动对堆芯中子注量率几乎没有影响,因此熔盐堆动力学方程组中的注量率方程与传统固体堆动力学注量率方程没有区别,只是在先驱核方程中增加了流动项。
2、程序验证
本文利用MSRE的实验数据对程序进行验证,MSRE功率为8MW,慢化剂为石墨,氟化盐以648.9℃的温度流经由石墨栅阵构成的矩形管道。根据橡树岭国家实验室(ORNL)熔盐堆运行报告[5]建立MSRE的简化模型(图1)。近似的MSRE几何模型为圆柱体,半径为71.2cm,高度为200.7cm,堆芯填充石墨栅阵,高度为17.15cm的上下腔室分别在石墨栅阵顶部和底部。石墨管道中燃料流速与上下腔室中的流速不同。计算中使用的热工水力参数取自文献[6]。燃料组成部分取自MSRE运行报告,为减少实验结果与计算结果的偏差,模拟过程选取了2套不同的DNP数据:①基于ENDF/B-VI库由HELIOS组件计算产生;②由ORNL提供的缓发中子数据。堆芯内有效DNP份额的计算方法取自文献[7]。
2.1MSRE稳态运行下DNP损失
第1个基准题计算MSRE稳态运行下的DNP损失。MSRE实验结果与文献[8]的计算结果作为参考解。本文计算了MSRE在采用235U燃料和233U燃料的2种情况下的缓发中子份额损失。表1、表2列出了2种燃料类型下本文计算的六组缓发中子份额损失与参考值的比较。从表中可以看出,本文的计算结果与试验值吻合较好,与其他单位的计算值差别不大。偏差的原因主要来自:①进行MSRE模拟时采用的简化几何模型不同;②评价缓发中子份额损失的模型不同。
2.2MSRE起泵和停泵瞬态
第2个基准题模拟MSRE在无保护状态下的燃料起泵和停泵瞬态过程。在这2个瞬态过程中,堆芯通过调节控制棒的位置使功率保持不变,反应性的损失可通过控制棒的位置进行计算。与上一基准题类似,模拟过程中使用了2组缓发中子数据。起泵过程中,燃料流量在10s内从0升高到正常值,停泵过程中,燃料流量在22s内从正常值降低为0。燃料流量的变化数据取自文献[9]。由图2可知,MOREL能很好地模拟MSRE在起泵和停泵过程中缓发中子份额的变化。MSRE在实验过程中对控制棒的提棒速度有一定限制,本文模拟过程中没有考虑到这个因素,这可能是高估反应性损失的一个原因。从图2可知,在约13s时,反应性损失曲线有一个波动,这是由于堆芯外未衰变的先驱核重新进入堆芯。
3、结论
本文考虑到DNP的轴向流动,建立了合适的熔盐堆动力学模型,并开发了程序MOREL,利用MSRE实验数据对建立的模型进行了验证,结果表明,建立的模型是正确的,MOREL程序可以用于熔盐堆的动力学分析。
作者:庄坤 曹良志 郑友琦 吴宏春 单位:西安交通大学核科学与技术学院
1重新开发一种新的软件构件
这种方式的成本较低,而且开发出来的构件比较有针对性,不会存在版权等问题,集合了第一、第二种构件的优点。但这种方式对技术开发人员的要求比较高,如果技术人员的技术水平不足,开发出来的软件构件可能会出现性能不佳、不兼容等问题。受开发水平限制,一般是在第一、第二种方式无法实施的情况下,才实施第三种方式。考虑到开发软件与其它设备的匹配问题,本文开发的工业控制设备软件选择了第三种方式。常见的软件复用技术主要包括软件组合技术、软件生成技术和面向对象技术等[4]。软件组合技术是将可复用软件成果组合在一起。软件生成技术是利用可复用的软件模式生成一个新的程序或程序段。可复用的软件模式包括代码模式和规则模式。面向对象技术是将技术中的对象作为软件复用的构件。在这3种方法中,面向对象技术是最适合软件复用的方法。面向对象技术与软件复用技术有异曲同工之处。面向对象技术是将相关联的函数和代码封存在一个对象内,再将对象作为构建系统的基础单位。可复用构件也是将相关函数和代码封存在一个构件内,通过构件的连接形成一个新的软件。对象与构件的相似之处使得面向对象技术可以更加适合实现软件复用。本文采取面向对象技术来实现软件复用。
2软件复用技术应用于工业控制设备软件开发的必要性
随着我国的经济不断发展,我国工业发展规模逐渐扩大。为了适应日益激烈的市场竞争,许多大型企业都开始投入资金,建立起或者准备建立工业控制系统,实现工业生产管理信息化。工业控制系统的出现,可以加强技术人员对工业机器设备运行情况的监控,减少人员工作量,也可以降低工厂的人工成本,提高工厂的生产效率。建立工业控制系统需要开发工业控制设备软件。与其它软件相比,工业控制设备软件需要与多台设备接口相连接,运行环境较复杂,功能要求较高。由于软件要求比较高,所以工业控制设备软件开发的工作量较大。而随着我国工业生产管理信息化的深入和推广,对工业控制设备软件的需求量会越来越高。如果软件开发人员对每个软件进行单独开发,整个行业的工作量将很大,工作效率也非常低。如果可以开发出一个可复用的工业控制设备软件,软件开发人员在设计新软件时只需要在该工业控制设备软件上补充或修改内容,无需从头开始,从而大大减少软件开发的工作量。另外,运用软件复用技术可以实现行业内软件标准化,有利于统一行业标准,提高软件质量,减少软件运行时出现的问题。软件复用是提高软件开发效率和质量的有效方法。与传统工业相比,软件开发无法通过简单的复制来完成,这是由软件的物理性质和客户需求而决定。(1)软件的物理性质决定了软件无法通过简单的复制程序来完成开发工作。软件是一种数字化产品,包含了大量数据和函数,内在构造比较复杂。另外,不同的运行环境对软件的要求不同。目前,开发软件的编程语言种类非常多,软件开发平台也各不相同。软件编程师往往掌握一种以上的编程语言,根据运行环境选择合适的编程语言和开发平台。因此,每一个软件都具有其独特性,无法简单通过复制来完成开发工作。(2)软件的开发需求具有多样性特点。软件开发都是有针对性的,需要根据对象客户的需求进行开发。而不同客户的需求都不相同,因此无法像传统工业产业那样大量地复制和生产。在软件开发过程中,软件开发人员往往花费很多时间和精力去完成软件的框架和每一个组成部分。而通过观察可以发现,在需求相似的情况下,软件内容存在一定的共通性。随着软件的应用范围不断扩大,社会上对软件开发的需求急剧增加,传统的软件开发方式已不能满足软件产业发展的客观需求,因此有必要对软件开发方式进行改革。软件复用技术就是提高软件开发效率和质量目的的有效途径。
3工业控制设备软件开发中的软件复用技术应用
本文采用C++作为开发语言,使用MicrosoftVisualStudio2010作为软件开发平台,运用面向对象的方法,通过软件复用技术的应用来完成工业控制设备软件的开发,提高软件开发的质量和效率。
3.1工业控制设备软件设计
工业控制设备软件连接了需要控制的各项机器设备。在接通电源,采集系统通电后,系统自动完成初始化工作,软件进行初始化设置,用户登录信息验证无误后进入系统主界面。工业控制设备软件的程序模块主要包括用户管理、通信管理、信息记录管理和数据库信息设置管理等模块。用户的登录信息传到数据库后,与数据库的信息进行核对,数据库再将核对后的信息反馈到系统,系统根据数据库的反馈信息确定登录用户的权限。用户在权限范围内访问相关模块,进行操作。该工业控制设备软件连接到各台设备的串口,收集各串口的信息,及时反馈到软件的显示界面上。当设备运行情况超过软件设置数值时会向软件系统发出警告,系统可以及时反馈出现异常设备的运行情况,并将该情况进行记录并发送到数据库,形成历史记录。通过工业控制设备软件,可以实现技术人员对机器设备的实时监管,并且可以运用计算机处理并存储机器运行过程中的大量数据,避免人工处理数据时出现的失误,减少员工的工作量。
3.2软件复用技术应用
软件复用技术在工业控制设备软件开发中的应用主要体现在通过设计一个面向复用的工业控制设备软件,使得在以后的工业控制设备软件开发中,可以直接将复用软件中的构件用于软件中形成一个新的软件,减少工业控制设备软件开发的工作量。而要实现这一目的,就要运用分层次的体系结构模式,来搭建一个可重用的软件构架。软件分层次体系结构是软件设计的发展趋势[5]。在软件分层次体系结构中,每一层软件都建立在下层软件之上,下层对上层提供服务。软件分层次体系结构允许每一层软件用不同的方法来实现。每一层软件只会对上下两层软件产生影响,并且只对相邻层提供相同的接口。由于软件分层次体系结构的上述特点,运用分层次软件体系结构开发的软件可以支持扩充和重用。从软件开发的角度而言,简单地重复软件分层次结构中的下层软件并无意义。因此,在开发复用工业控制设备软件时应该考虑上层的服务接口设计[6]。具体设计为,在软件的数据抽象层上建立业务对象层,将业务逻辑编入业务对象层。业务逻辑层中一般包含有确认用户登录信息、记录系统日志和数据库存取权限等功能,与数据库引擎相分离。在进行其它相关软件设计时直接将这一层连入软件结构的相应位置就可发挥业务对象层的作用。根据软件分层次结构的有关原则,将工业控制设备软件的分层次结构设计为用户界面表示层、业务逻辑层和数据访问层的三层结构。为了保证分层次结构软件的可重用性,软件的层次功能传递是单向性的,即每一层软件可以命令下一层软件,但是每一层软件只能服务于上一层软件而不能调用上一层软件。因此,这三层软件由下到上的顺序为:用户界面表示层、业务逻辑层、数据访问层。用户界面表示层是最下层的软件层,负有连接用户与各接口之间数据来往的功能。当用户需要更改界面内容时,只需要修改相关数据,界面内容就会自动发生改变。用户界面表示层是最下层的软件层,其更改不会影响到上面两层软件的功能。业务逻辑层在用户界面表示层之上,负责对用户界面表示层传来的数据进行处理,具有确认登录信息、记录系统日志等业务功能。数据访问层是最高软件层,负责完成业务逻辑层传来数据后的数据库操作。这三层结构之间呈现单向依赖关系,即用户界面表示层依赖于业务逻辑层,业务逻辑层依赖于数据访问层。根据该三层软件结构设计出的工业控制设备软件,在其它工业领域的控制设备软件设计工作中同样适用。该框架是由一系列的对象和对象之间的相互联系组成,程序设计人员只要将这些对象内的函数和大量数据进行补充,就可以得到一个复用的工业控制设备软件。而在后续开发类似软件时,程序员在该复用软件的基础上根据软件运行需要对内容进行扩充就可以设计开发出一个新的软件。
4结语
随着软件行业的不断发展,软件复用技术应用是软件开发的必然趋势。软件复用技术除了可以有效地提高软件开发效率,缩短软件开发周期和提高软件开发质量外,还有利于统一行业软件的开发标准。在工业控制设备软件开发中引入软件复用技术,可以有效提高软件开发效率和质量,避免开发过程中的重复劳动。另外,基于可复用技术开发的工业控制设备软件的构件可以进行单独拆卸和升级,使得系统的维护和升级工作简易化。因此,利用软件复用技术开发工业控制设备软件对提高整个行业的管理水平具有重要意义。
作者:林明涛 单位:海南软件职业技术学院
1嵌入式系统的调试
调试也是软件开发不可或缺的一个环节。在常见软件开发中,调试器与被调试的程序往往运行在同一台机器上,通过操作系统的调试接口来控制被调试的进程。而在嵌入式软件开发中,采用的是交叉调试,即调试器运行在宿主机上,但被调试的程序运行在基于特定平台的目标机上,调试器与被调试进程通过串口或网络进行通信。不管是交叉编译还是交叉调试,都需要把文件从宿主机传送到目标机。如果考虑团队合作开发、开发环境不完全一致等因素,开发者经常也需要把文件在不同系统之间或通过网络进行传输。所以在嵌入式软件开发中搭建一个良好的文件传输环境是提高嵌入式软件开发效率的一个关键因素。
2文件传输环境的搭建
在嵌入式软件开发中,必须结合开发的具体项目和具体开发环境来选择搭建一个好的文件传输系统。虽然各类传输技术可以在不同平台(Windows、Linux等)上实现,但在嵌入式软件开发中更适合搭建基于Linux的文件传输系统,下面就嵌入式Linux环境下文件传输技术方法进行讨论。
2.1FTP(文件传输协议)服务设计与实现
FTP是网络传输文件的一种常见服务。在嵌入式Linux中,vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序,是一款完全免费的软件。它的最大的特点是安全性非常高,但嵌入式系统一般是在局域网内进行合作开发,所以在搭建为嵌入式开发服务的FTP时一般不需要太多地考虑文件传输的安全性,搭建一个用户登录访问的FTP服务器就可以。下文是Ubuntu12.04下实现用户登录访问FTP配置文件(/etc/vs-ftpd.conf)的主要内容:
2.2TFTP(简单文件传输协议)服务设计与实现
TFTP是一个传输文件的简单协议,它基于UDP协议而实现,适合于小文件传输。嵌入式系统开发的代码文件一般不会很大,同时对文件传输的安全性要求也不高,所以在嵌入式软件开发中也经常使用TFTP服务来传输文件。下文是Ubuntu12.04下实现TFTP配置文件(/etc/default/tftpd-hpa)的主要内容:2.3NFS(网络文件系统)服务设计与实现嵌入式系统开发时,还可以使用NFS实现宿主机和开发板共享文件,这样也可以免去文件上传或下载的麻烦,直接把存放文件的目录挂载在目标机上或其他系统中,用户可以像访问本地文件一样访问远端系统上的文件。下文是Ubuntu12.04下实现NFS配置文件(/etc/exports)的主要内容:其中,*:允许所有的网段访问,也可以设置成某一个ip段,如192.168.0.*;rw:读写权限;sync:资料同步写入内存和硬盘;no_root_squash:允许客户端共享目录所有者权限。用户可以根据自己需要设置相关参数,还有一些参数说明没列出来,需要时可查阅相关资料。
2.4Samba服务设计与实现
在嵌入式系统开发过程中,宿主机上一般会安装Windows系统,同时安装虚拟机软件,在虚拟机上安装Linux,这样就存在Windows系统和Linux系统共享文件的问题。通过Linux提供的Samba服务可以轻松实现文件共享,可以有两种方法加以实现:一是由Windows系统访问Linux系统中的共享文件夹;二是由Linux系统访问Windows系统中的共享文件夹。(1)Windows系统访问Linux系统中的共享文件夹。由于嵌入式系统开发一般在局域网内或单机上进行,对网络安全性要求不高,这里就以配置一最易实现的Samba服务(来宾都可访问)为例来加以说明。主要是通过修改/etc/samba/smb.conf配置文件:上面用户名是所访问的Windows计算机中的用户账户,验证口令是Windows计算机中的用户账户的口令。
2.5使用串口软件传输文件
在一些应急场合,没能很好地配置好上述服务的情况下,如果需要传输一些文件到目标板,可以选择使用串口软件传输文件。用串口电缆把宿主机和目标机连好,然后运行串口软件,最常用的是Windows自带的超级终端。超级终端程序通常位于“开始”“程序”“附件”“通讯”中,运行超级终端一般要求用户为新的连接取一个名字,然后选择所使用的串口,最重要的一步是设置串口属性,一般针对开发板设置的属性如下图2所示。连接上目标板后,使用超级终端上的“传送”“传送文件”菜单实现文件传输。在ubuntu操作系统下,需要使用minicom来连接开发板,本文不再赘述。
3结束语
本文介绍了在嵌入式软件开发中搭建文件传输环境的多种技术方法,但在实际的开发过程中,并不一定要全部应用这些技术,可以根据具体的项目开发环境、个人的习惯等来决定使用哪一种或哪几种技术手段。同时,由于嵌入式系统的资源有限,在方便团队开发调试项目的前提下,要尽可能少地启用这些服务。
作者:周军 王艳红 单位:南通航运职业技术学院
1软件检测过程不够规范化
软件测试时一是为了发现软件在研发编写过程中存在的错误,从而及时对程序进行修改和完善,使软件的各项功能够顺利使用。二是为了根据用户要求,来对软件的各项功能和用户使用体验感受进行改善,使用户在使用软件时更具舒适感。而在当前的软件检测过程中,主要在两个方面不够规范:一是一些软件开发员缺乏责任心,在软件编写完成后,马马虎虎地进行检测,对一些影响使用体验的程序放任不管,不去做优化处理;二是软件开发者在检测时没有让用户参与进来,而自作主张的对软件功能进行了修改。这两方面问题不仅降低了用户在使用软件过程中的感受,还导致了用户在后续软件维护中的成本增加。
2软件维护不够规范化
任何产品在售出后,消费者都有享受产品的售后服务的权利,而商家也必须承担为消费者提供售后服务的义务。对于计算机软件,也同样有着“售后服务”,即软件开发者对于软件的后期维护和调试。在当前的软件维护过程中,主要存在着两方面问题:一是一些软件开发者将完成的软件交付后,就一走了之,面对软件使用者在软件使用过程中出现的问题也常常置之不理,推卸责任;二是有些软件开发者在处理软件使用者所遇到的问题时,超出市场的价值规律,漫天开价,索取高昂的维护和调试费用,有些使用者出于无奈也常常忍气吞声,吃了哑巴亏。可以说,以上这四方面的不规范问题不仅影响计算机开发人员的工作形象,还会形成计算机软件领域的同业恶性竞争,长久之,将会使充满信心的软件开发这一朝阳产业变得暗淡无光,最终使软件使用者和消费者蒙受损失。
3加强计算计软件开发规范化对策思考
3.1提高计算机软件开发规范化的认识
计算机软件开发是一项与人们学习、工作和生活有着密切联系的系统性工程,计算机软件只有在人们的认可和使用中才能发挥出自身的作用和价值。然而当前计算机软件过程中所存在的规范化问题,已经对计算机软件在市场中的推广和使用造成了很大的影响。要使这一问题得到根本解决,首先必须从思想观念上进行转变。为此,我们只有不断提高软件开发的准入门槛,提高软件开发者对于软件开发规划范的责任意识,使其从思想层面加强对自身的工作要求。同时,还应当不断完善计算机软件开发方面的相关法律和行业标准,使软件开发的各个过程受到制度监督和法律约束,保证软件开发者以诚信、敬业知心开展计算机软件开发工作。此外,我们还要认真思考,对计算机软件开发的设计、检测、维护等一系列的环节所存在的问题进行深入分析,提出切实可行的对策,最终推动计算机软件开发实现规范化发展。
3.2加强计算机软件设计规范化
计算机软件设计开发主要是依据用户要求设计研发的计算机系统软件或计算机系统中的某一部分应用软件,是一项涉及很多方面的系统工程。因此,软件开发者需要对市场的需求、客户的要求、设计人员的技术层次等方面进行综合的分析,而后开始设计软件。为此,在设计开发前要充分了解软件的运行环境,在深入调研后再进行设计开发。同时根据用户的不同需求,确定设计风格和内容,进而严格遵循计算机软件设计标准,进行概要设计和详细设计,把具体设计策略、软件内部构造和制作流程进行安排部署,并呈现给用户。1)软件概要设计的规范化。概要设计的标准就是按照用户的需求,根据产品的不同建立各个系统模块的目标软件系统,对这些模块的接口下达指令,使他们紧紧联系在一起并链接到下一个模块,做到层层相联系。为此,开发者要不断规范概要设计,有能力建立起能够管理整个软件系统的数据库,并使其中的每个模块都要形成相配套的管理方案,并在这一过程中,把各模块的接口尽可能的简单化处理。不仅各模块都能分工合作,还能紧密的联系,这样才能有效保证了系统持续稳定的运行,进而保障用户能够清晰地理解软件的设计。2)软件详细设计的规范化。所谓软件详细设计,就是对概要设计标准全面进行细化,把概要设计一项一项地分解开来,使概要设计的内容得到更加详尽的解释说明,然后把各个模块进行系统、精确、全面的阐述,最终使各个模块的概要设计功能进一步细化分解。为此,开发者要具体围绕算法和软件内部构造这两个方面,及时规范模块的输出输入以及它们的性能,把每一个模块进行细化,划分具体的功能。需要注意的是,开发者在进一步规范计算机软件设计研发中,必须要使软件的设计具有精确的算法和内部构造,这样不仅会对拟写的源代码有帮助作用,还会使软件设计更为的科学合理。最后软件开发者还要根据用户需求,在积极完善详细设计标准的基础之上,才可以进行系统规范的计算机软件设计研发。在研发过程中,仍需要对软件各个模块都进行程序上的划分,只有在准确评估了检测报告后,利用各个模块接口的精准性能,才能对计算机软件进行系统的、有程序的、循序渐进的设计研发,才能保证计算机软件的先进、合理和高效。
3.3计算机软件开发编码的规范化
在进行软件的设计与开发方面,要首先对软件进行的设计有一个相对清晰的标准,即对软件进行概要设计的标准以及软件详细设计的标准,在设计完成后,要对软件进行加工编码工作。为计算机软件进行编码,是开发设计计算机软件的重中之重,只有将计算机编码开发设计正确,才能够保证程序的完整无缺,进而保证软件的正常运行。计算机软件在编码过程中,要按照软件设计规范化的标准,并把用户需求的方方面面都考虑在内,然后根据软件的运行环境,进行软件编码,这样才能设计开发出适合用户特点、满足用户需求、操作简便的计算机软件。
3.4加强计算机软件检测规范化
我们在检测软件过程中,发生错误是在所难免的,如何避免和消除所犯的错误,使软件能够较长时间使用,是软件检测必须面对的实际问题。这样的问题存在于软件设计研发的各个阶段,软件检测的效果同样也决定了软件的使用寿命和软件设计研发的质量。因此,必须加强软件的检测工作,切实地解决好软件研发过程中存在的问题。目前,我们主要检测用户所要求的软件功能以及计划内容、性能需求等。所以,我们必须要保证在检测软件的过程中要有用户共同参与,专业人员要把软件设计思路和所想达到的目的进行系统了解,利用专业知识和规范化检测方法对所开发的软件进行详细认真的检测,从而发现设计漏洞和存在的问题,看是否达到了用户的要求。同时,要进一步规范检测过程,对软件系统的各个功能模块要进行全面完整的检测和测试,同时对检测的数据和检测结果进行存档,以备在修改时能够及时找到问题所在,通过对存在问题加以修改和完善,使软件性能得到进一步提高,反复修改检测后,把软件的性能调试到最好的使用效果。此外,还要组成独立的软件测试小组对软件进行反复验证和全方位测试,确认软件的各种性能达到良好的效果。在检测工作结束后,要撰写检测报告,对软件设计研发及检测结果进行全面分析总结,做出正确的评估。计算机软件设计研发是根据用户需求来实现的,是一种计算机系统或系统中的部分软件,计算机软件不是每一台计算机都相同的,它是根据用户的不同需求而添加的,它包括办公软件、商业软件、家庭应用软件等不同类型,软件的研发是由用户需求、专业人员设计、最后经过测试和用户认可的一种产品,软件的使用者要想得到合法的软件使用权,就必须得到软件研发机构的许可,这样,一个计算机软件才具有了真正的生命力。
3.5加强计算机软件维护规范化
计算机软件产品维护也是软件开发规范化的最后一道程序,它主要是把在运行过程中出现的问题进行及时维修,把在测试中遗漏的错误进行修改,不断完善软件的各种性能,让软件更好地适应运行环境。软件维护同样要具有规范化要求,我们必须要使软件开发者认真按照程序进行操作,不能出现旧的问题没有解决有出现了新的问题,要减少软件维修的所产生的负面影响,维护和维修过程要有详细记录,填写维修报告,做到软件维修正规化和标准化,从而实现软件功能的不断扩展和补充,使软件达到最好的运行和使用效果。此外,还要培养软件开发者在维护软件工作中的责任心意识,要从市场实际出发,遵循价值规律,诚信真实地开展软件维护,最终使软件开发行业的环境得到净化,促进整个行业向前发展。
4结束语
计算机软件的设计和研发,使计算机的实用性得到了更好地发挥,对我们的工作学习产生了更多的帮助。计算机软件进一步规范化,是计算机事业长远发展的重要前提,也是软件行业生存发展的有效保证。让软件研发有明确的标准,有明确的行业规范,有技术上的硬性指标,对软件开发行业会起到一个很好的促进作用,也会进一步提高研发人员的工作责任心。研发出高品质的软件,不仅能满足用户和人们的需求,使其适应社会的发展,更能有效地增强我国软件在世界上的竞争力,把我国的计算机软件开发不断推向新的高度。
作者:滕菲 周琪 单位:渤海大学
在以前的软件开发模式中,普遍依赖业务分析师和用户沟通所完成的需求分析报告而进行软件开发和交付。这样做的弊端在于,用户在提出需求和得到交付软件之间对需求本身可能发生变化,业务分析师在与用户沟通并创建需求分析报告时对需求本身也可能产生误解,而开发者本身对需求分析也会产生误解。这就使得花费大量人力物力所开发的软件最终不能被用户所接受。而采用敏捷开发可以避免这种情况。敏捷开发中有一种叫做Scrum的迭代增量式开发过程。其目的在于缩短交付周期,不断交付有价值的软件,使得在软件最终交付时最大程度满足用户需求。这就需要改变传统的软件交付模式,当项目经理和用户沟通时,需要设定阶段行的目标和任务,由业务分析师和用户就已经确定的需求进行需求分析并且在制定需求分析的同时与开发人员及时沟通,避免软件过度开发,这样就可以缩短软件交付期限。将原本一年甚至几年的开发周期缩短至两个星期到一个月,每次交付部分有价值的软件,这样用户可以尽早体验并及时提出问题和调整需求。
1制定详尽的开发和交付流程
将软件开发周期从几年缩短到一个月甚至两个星期,这需要制定详尽的软件开发和交付流程。而详尽的软件开发和交付流程也是实现Scrum所必须遵守的。在Scrum中一个交付周期被称为一个Sprint。在每个Sprint开始之前,要有一个Sprint的计划会议(Sprintplanmeeting)。Sprint计划会议是在业务分析师和用户确定好当前阶段的需求分析之后,将可以进行开发的部分按照需求的优先级顺序排列好开发任务(Story),再由开发人员对任务进行难度评分,最后团队根据可变因素如团队成员情况,开发环境状态等确定下一个Sprint的任务。为了加强团队内部的沟通和及时掌握开发交付情况,Scrum要求团队每日开站立会议(Standupmeeting),站立会议通常1到2分钟每人,主要说明前一天的工作内容,存在什么问题,以及今天的工作计划。当然在每个Sprint快结束的前一天,要开评审会议,来报告进度,通常情况下是软件会议制定软件当前Sprint的软件计划。中国有句古话叫做“吾日三省吾身”,每个Sprint结束还有一个最为重要的会议就是回顾会议(Retrospectivemeeting)。回顾会议主要是总结上一个Sprint,保持优点,克服缺点。确保每个会议的有效性是Scrum实现的基础。
2结对编程,提高软件开发效率
当需求明确且计划详细之后,对于软件开发最重要的就是提高开发效率。只有提高开发效率才能在短时间内向用户提供有价值的交付软件。对于提高软件开发效率,敏捷开发有一个很好的方式叫做结对编程(Pairprogramming)。所谓结对编程,就是一个任务交给两个开发人员,两个开发人员同时坐在一台电脑前面,一个人编程,另一个人实时检查,然后互换角色。当然,也可以和测试驱动设计(TestDrivenDesign)相结合,一个写测试用例,另一个通过实现代码使测试通过,然后互换角色。结对编程的好处在于,与传统开发一个人一个任务相比,两个人一起协作,可以尽快确定测试用例和程序接口,实时检查代码减少代码调试时间,互相学习软件开发设计技术,避免因成员变动阻碍开发进度。对于结对编程的两个人,只要两个人有互补,就可以在一起结对编程。例如,一个开发人员可以和一个需求分析师一起结对编程,需求分析师了解任务需求,可以负责编写测试用例,开发人员实现测试用例,从而使开发更满足需求。用户体验师也可以和开发人员结对编程,开发人员每实现一个功能块,用户体验师都可以进行实时的检查,从而更满足用户的体验。结对编程,看似浪费人员,因为同一时间做的任务变少,但是却能够大大提高编程效率和开发质量,是敏捷开发中重要的实现方法之一。
作者:王贯飞
1完善软件、满足用户个性化需求
用户体验是贯穿在计算机软件开发利用的一切过程之中的,设计者从软件性能设计出发,结合了用户操作习惯,能够对用户体验产生一个正确的软件预估,在用户体验中,我们能够认识到用户对软件产品的期待,发现用户真实的使用目的及软件期待,在用户体验之中,设计者能够不断改善软件核心功能及细节修改,减少软件BUG,逐步完善软件用户个性化。用户体验在计算机软件开发中的作用相当于一把标尺,在设计-测试-再设计-测试-修改的反复循环的软件开发过程中,用户体验为这个循环的进行提供了一把可量的指标。完善的软件成品,满足了用户的个性化需求,提高了软件运行的舒适度。
2提高软件市场竞争力,占领市场
用户体验能使得软件设计的更完善,在设计-体验-再修改的过程之中,软件得到不同程度的修饰和完善。软件产品经历了以下几个阶段:有用-易用-友好-视觉设计-品牌推广-占领市场。产品有用也就是用户需求得到了满足,下一步使软件变得易用,就是方便使用,友好的软件语言能够使用户感到亲切,通过不断改进设计的软件,使得软件在视觉上能够传达出一种吸引力,让用户在使用中爱上软件,产生用户黏度。在用户中树立良好的口碑,从而认定品牌,在品牌推广之后,市场推广变得简单易行。经历用户体验的软件永远比直接开发上线的软件拥有更多的用户。因此用户体验在计算机软件开发中有着完善软件,提高软件市场竞争力的作用。
3计算机软件开发中提高用户体验的主要途径
3.1营造良好的软件运行环境
3.1.1优化编程代码软件程序开发的一个必不可少的组成要素就是编程代码,因此想要提高计算机软件开发中的用户体验,首先应从编程代码着手,优化软件用户体验。首先编制代码时应尽量考虑代码的简洁性,能使用简单地算法就不复杂化,简化算法程序也不仅仅针对那些复杂的编程代码,还应考虑代码解算处理耗费时间长的软件代码,尽可能的为用户节省时间,也减少他们在等待过程中可能减少的焦虑情绪,提高用户体验感受。如无法避免软件运行速度缓慢的问题,则在最佳优化后设计后台运行的方式辅助运行,也可添加进度条来提示用户下载进度,避免用户在运行软件时产生烦躁情绪。3.1.2完善软件安装流畅性用户并非专业的电子计算机软件工作人员,因此在软件安装遇到问题时并不能妥善处理,甚至遇到无法下载的情况就放弃某款软件,因此我们在极高计算机软件开发中的用户体验时一定要考虑软件安装的流畅性,快速简洁方便的安装成功是一款软件成功应用的基础,在软件设计中,设计人员应充分考虑用户能力特点之后降低软件安装难度,完善安装步骤,设计多种安装方式,设计推荐安装和自主安装等多种安装方式供用户安装,完善软件的安装流畅性。3.1.3优化处理软件接口软件接口即软件和一般常用软件实现数据互换、互相联系的一种重要途径。一个完备的软件不仅仅应该正常运行,还应与其他软件可以共享数据相互联系,因此开发人员应优化软件的接口问题,完善设计,避免用户出现使用顺手的软件却无法和其他顺手的软件数据交换、从而放弃软件的问题。在实例中,软件的接口问题也是一个让大家关心的提高用户体验的重要途径,注重相关诸多软件的数据共享、信息过渡,在满足用户需求的同时提升用户体验。
3.2注重软件的界面设计,给用户留下良好第一印象
用户对一款软件的第一印象,就是这个软件的图标、外观形象,不同风格的软件界面会给用户留下不同的印象,这和认识人是一个道理,外表光鲜的人更容易被别人结识,因此为了提高软件开发中的用户体验,必须在用户打开软件的第一眼就爱上并想要使用。在软件的界面设计中,首先考虑的是简洁大方的设计方案,大众都喜欢的东西才能够设计使用。软件界面设计中,应充分综合考虑用户的使用习惯。视觉心理、个人感受以及用户偏好等角度,对软件具体的各个部分进行设计。设计中应考虑的要素有:界面的色彩搭配、小图标按钮的放置、标题字体的大小、页面内容的编排位置等等。设置智能记忆功能来保存用户的软件使用习惯,在用户使用软件时就能够以最快速度实现要求。在用户习惯的研究中,用户在某个陌生软件中停留的时间最多不超过三分钟,三分钟之后如果他们没有找到自己需要的内容就会退出软件并不再打开,用户不能在第一时间找到吸引人的东西,软件界面的不清晰,这就是用户失流问题的原因,在软件设计中,应利用研究成果,在设计中体现用户阅读的F型阅读习惯,在软件的上栏和左栏中放置更有价值的东西,合理地进行界面的主次安排。尽量少使用老旧模板设计软件界面,避免缺乏创意和亮点的界面问世。
3.3努力提高和优化软件运行效率
重视效率是软件开发更好的为大众服务的基础,软件设计必须遵循一条规则就是提高用户使用软件的效率。设计人员在进行软件算法设科技前沿计时应将各类算法作出比对,减少那些功能不强耗时巨大的软件,避免它们拖慢软件运行的速度,提高软件的运行效率,防止用户出现等待焦急躁动甚至放弃软件等不良情绪。计算机本身对软件运行速度的反作用只是一部分,运行缓慢的软件并不单单因为硬件不强大的计算机本身。开发者应从软件编码寻找原因,排除拖慢软件的恶编码,提高软件运行效率,减少用户软件差评。需要注意的是我们应该在可控环境下提高软件运行速度,注意开发成本和经济核算。如不能减少运行时间的则设置后台运行或者显示进度条来减少用户等待时间,提升用户体验。
3.4软件功能设计要满足拥护的人性化需要
人性化的设计体现在软件设计的诸多方面,也可以这么说,软件设计的许多角度都能够体现人性化的设计理念。我们在软件实际开发中,尽量避免全盘模式化的克隆,将为大众服务作为软件产品开发的最终理念,因此必须将用户体验的优良感受作为首要衡量标准。在软件设计中,设计出人性化的软件应做到以下几点:第一,使用户打开软件和查询信息能够更加便捷,在用户使用软件的过程中,也是信息数据积累的过程,用户想要从大堆数据中调出自己需要的数据往往不够便捷,而腾讯设计出智能调取聊天记录就是一个很好的个性化服务典例。在软件设计中,合理的设计快捷键也是人性化服务的一个方面,易于掌握的快捷键能够使软件操作更加方便,充满人性化。百度公司曾经在刚刚成立百度联盟时软件设计并不充满人性化,当百度批准你成为百度联盟会员时,会接收到这样一条邮件:百度已批准你加入百度联盟,而批准往往不是平等的语言,更像是上级批准下级,之后百度就将这一点做出更改:祝贺你成为百度联盟的一员。这个案例告诉我们软件设计不仅要在大方面上以用户为核心,而且在细微之处也要体现出软件的人性化服务。
3.5提高软件的信息查询和处理能力
浩瀚的信息时代,软件也需要一个强大的信息检索能力,这样才不会使我们面临无法找到所需信息的窘况,软件开发案中加入信息检索技术也就是是软件具备在集合中挑选目标信息的技术,随着我们对软件的使用和软件技术的开发,我们对软件的信息查询功能有了更多的要求,既不能使杂乱无章的信息丢失,又不能在想要查询信息的时候逐条翻阅,这就要求我们在软件设计开发中提高软件的信息查询能力,首先保证信息的可查询性的前提是拥有稳定良好的内存来储存信息,其次良好的可查询性是通过小查询框来实现的,设计查询算法来帮助信息查询,输入条件就能查询到符合条件的全部信息,诸如音乐播放器建立的媒体库,在查询框中输入歌名就能检索出全部符合条件的歌曲。在用户实用软件的过程中,用户信息只会堆积越来越多,因此必须通过智能的信息查询功能来优化用户体验。
4对提高用户体验的再认识
软件设计成品的目的就是解决使用者的问题,因此软件不仅炎解决用户个体在功能上的需求,又要服务大众,向广大用户提供服务。计算机软件开发中提高用户体验的途径多种多样,在具体罗列了以上几点之后,笔者还想从软件开发设计的角度出发,再谈谈如何使用户体验得到更好地提高。
4.1树立“以人为本”的设计开发理念
用户体验的核心就是用户,提高用户体验在软件开发中的作用是及其突出的,开发者在设计开发时应树立“以人为本”的观念,重视用户的心理体验,关心用户的自我感受,在实现软件设计功能的保证下抓住用户心理,吸引用户长期使用。人性化的软件设计和灵活多变的软件服务是实现“以人为本”的基础,在之前软件设计的经验上,改进模板,合理搭配软件信息模块,在广大用户中选择他们共性的东西,寻求最多的受众欣赏。“以人为本”要求设计者关注用户,学习每一个用户不同的操作特色,综合这些特色,让软件更加灵活的服务用户。在实际软件操作中,可以设置不同的操作方案和主题搭配,供用户自行选择和随意保存。“以人为本”的开发理念要渗透在软件设计开发的各个过程,在设计中应考虑用户,在测试中应观察用户,在再修改中应体现用户。
4.2注重市场信息反馈,不断改进和完善软件
信息的传播有五大要素,发出者、接受者、媒介、讯息、反馈。这五个环节构成了一个完整的信息传播途径,软件设计和开发也需要市场信息的反馈,设计好的软件经过上线,用户开始使用,但此时并不是开发者工作的完成,而是新的开始。在这一阶段的工作中,开发者扮演的是信息收集者的角色,他们需要在市场上收集用户对软件使用的评价、软件的推出程度和适用领域、人们是否经常使用这款软件以及这款软件出现的问题。收集这些问题再将软件优化,最新软件,供用户更新,充实了新的功能和修补了软件BUG。市场是软件接收测试的摇篮,开发者要注重市场信息的反馈,根据反馈修补软件,不断改进和完善软件。
5结束语
近些年的高新技术发展为计算机软件设计提供了快速发展的良好温室,在这样的环境下计算机科学获得了长足的发展,软件设计也从“解决问题”向“满足需求”转变。新的软件想要成功开发并立足于用户,就需要真正的扎根研究用户体验,只有提高了用户体验才能进一步的完善软件。提高用户体验的途径也丰富多样,我们不仅仅只根据这些途径解决问题,更需要有长远的目标,提出更多可供利用的途径,为提高计算机软件用户体验做出贡献。
作者:隋晓彤 单位:渤海大学
1基于组件的软件复用技术
目前制定实现规范并比较适用于复用的组件模型有CORBA/ORB、COM/ActiveX、JavaBean以及.NET等。通过对以上组件模型的研究与对比,本系统选定.NET中的WindowsForms作为本实时测控软件的组件模型,使用.NETFramework的公共语言运行时,组件都建立在一个共同的底层基础上,不再定义使用复杂的管道接口,对象可以直接交互访问,有利于组件的自由配置,同时,利用.NET技术的分层结构特点,采用“搭积本”的方式生产软件,大大提高软件开发效率。
2基于组件技术的实时测控软件开发
2.1软件架构设计
在组件技术中,一个组件就是一个接口集,它通过接口对功能进行封装。因此,对于同一个应用程序架构,只要其使用的接口集合不变,即可通过更换支持同样接口集的组件来获得不同应用,也可重复利用同一个组件或对组件进行二次开发。而基于组件建立的软件架构和应用开发,其最大优点在于可以复用的应用结构和软件单元。实时测控软件主要是对实时测控数据的处理、评估和显示,而测控数据主要包括光测、雷测、遥测及GPS测量等类型,其处理过程通常包括数据采集、数据解析、数据处理和结果评估等四个部分,针对以上4种数据类型,在基于组件技术思想下,其处理架构可统一进行设计,如图1所示。针对靶场测控系统中光测、雷测、遥测及GPS测量等数据处理应用,通过将数据采集组件、数据解析组件、数据处理组件、结果评估组件替换成相应功能的组件,即可实现在保持软件架构不变的前提下开发出不同的应用系统。
2.2基于组件技术的软件升级维护
组件接口是对某一功能的一套抽象描述,具有封装性,它通过接口与其功能实现分离开了,并以接口作为客户与组件(或组件之间)交互的唯一方式,因此,只要保持接口不变,就可以将系统中的组件用新的组件替换,以随时进行系统升级维护。下面以实时测控数据处理软件中的雷测数据处理应用为例,其软件的架构如图2所示。当需要对系统进行升级维护时,在软件架构完全保持不变的前提下,对具体的组件进行替换,只要保持接口不变,程序无需重新编译链接,系统即可通过使用更新后组件中的新接口来获得新特性,从而实现系统的升级维护。
2.3利用组件复用技术实现软件功能扩展
组件复用是利用已有组件创建新组件,即通过第三方产品来构建自己产品。组件复用是通过包容和聚合来实现的,包容时外部组件包含内部组件的接口,它由外部组件接收此调用请求再交由内部组件来处理,聚合时外部组件直接调用内部组件的接口,它让内部组件直接处理该调用请求。在C++语言,通过在外部组件中增加内部组件接口,并把调用请求转发给内部组件即可实现包容,对于聚合,在内部组件中维护一个外部组件接口指针(如m_pUnknownOuter),通过委托机制,让内部组件接口提出的查询接口请求由一个委托接口转发至外部组件,再由外部组件接口查询内部组件。这样就可以实现一致的访问,即不管是通过外部组件的接口,还是内部组件的接口,都可以查询到内外组件所支持的接口集合。在实际应用中,软件开发不仅有大量的、功能强大的商业化组件可以使用,而且有应用广泛的、成熟的靶场测控系统专用组件可以使用,如组件化的数据接收、量纲复用、坐标转换、滤波平滑、精度评估等功能模块。因此,利用好组件复用技术可以有效扩展靶场测控数据处理系统的软件功能,对于靶场测控系统建设具有重要的现实意义。
3结束语
基于组件技术的实时测控数据处理软件开发可以大大提高软件开发效率,大幅度降低系统的开发费用,有效解决靶场测控数据种类多、规模大、复杂性高的难题,为靶场测控手段的不断发展提供了技术支持。
作者:唐艺灵 赵晗滨
1、高校应用情况综述
2009年以前,高校对SaaS技术不够了解,对SaaS软件没有需求,相关研究甚少[1].之后,伴随着云计算概念的传播,基于SaaS模式的软件开发与应用成为热点.很多学者、IT行业研究人员、项目管理者甚至客户均提出了自己的观点和解决方案,内容大体分为如下几类.首先,是概念介绍性的.这类研究已经洞察到SaaS的优点,引入概念并分析SaaS能在高校信息化中充当何种角色.这类研究没有提出具体的解决方案[2-3].第二,多位学者从高校资源共享的角度,提出跨学校的基于SaaS的资源共享解决方案[4-5].各学校可以通过租赁软件服务的方式,使用其他高校的资源.这类方案的想法很好,但实施起来困难重重.首先是观念问题,高校是否愿意共享这些信息;其次是管理问题,需要有上级部门进行组织,并建立共享和推广机制,甚至有时需要强制措施;最后是技术问题,跨学校的资源共享项目需要有实力的企业或软件供应商参与.目前,实现并已投入运行的项目包括中国高等教育文献保障系统(简称CALIS)在图书馆资料共享方面成功建成的跨图书馆的SaaS系统[6].CALIS是国务院重点扶持的三个公共服务体系之一,它所获得的资源是其他项目不能比拟的,成功难以复制.第三,由高校客户提出的基于SaaS模式的软件设计方案,来支持日常管理业务[7-8].客户的目标是满足需求的同时尽量减少成本,尤其是中小规模高校或职业学校(后文简称普通高校)对成本更加敏感,SaaS模式不需要进行硬件和软件授权的投资,是理想的解决方案.这种思路的核心仍然是跨学校的,需要由外部的企业或软件供应商来构建系统,再由多家学校租赁使用.目前已知成功案例是金蝶的在线会计软件———友商网[9],但高校中投入实际应用的不多.第四,有些研究不理解SaaS的实质.比如离开了云计算而谈SaaS,SaaS是以云计算为基础的应用;有些观点是把传统的B/S架构部署程序看作SaaS,SaaS确实是B/S模式部署的,但与普通B/S程序的最大区别是多客户租用的方式和可配置性.
2、SaaS应用问题分析
从高校应用情况综述能够看出,对SaaS的讨论和研究虽然热烈,但在高校中真正将SaaS概念转化为实用软件的成功案例寥寥无几.主要有如下一些原因.第一,观念问题,高校不愿意采用SaaS模式.有需求是一方面,但真正选择技术方案时就会有所取舍.比如担心数据安全性,选择SaaS模式软件意味着业务数据要存放在软件服务提供商的数据库上,这一点是很多管理者难以接受的.还有些客户担心软件未来的成本,选定了一家SaaS供应商意味着被其绑架,在SaaS市场不成熟的情况下,未来的情况不可预知,不如直接购买软件踏实.对于重点大学,由于信息化实力强并且经费充足,往往选择自己开发、外包或购买软件.第二,SaaS应用的切入点不对.即选择了不适合SaaS模式的应用项目.比如对数据安全性要求极高的项目,财务处不放心将全校教职工的工资数据与别的客户的工资数据放在一起,所以,工资系统当前不可能使用商业化的SaaS软件.而在校内,如果工资系统使用SaaS方式开发的,那客户只有一个财务处,也不能采用租赁模式,则没有应用SaaS的必要.前文提到的认为SaaS的部署方式能够促进信息共享的观点,本文则持保留态度.SaaS的实质是服务共享,而数据和资源严格隔离.SaaS模式并不是解决共享的关键,资源共享需要SOA架构等其他技术.因此这类项目成功率不高.什么软件适合SaaS模式.当前情况下,院系级或部门级的MIS软件,对数据安全性要求不是很高的,适合作为SaaS应用.比如用于院系内部的办公系统、人力资源管理系统、内容管理系统等.随着数据安全机制的改善和观念的转变,校级的软件也可逐渐纳入范围.第三,没有实现SaaS模式的技术实力.SaaS应用服务产业发展的经验证明,只有具备结构先进的基础设施平台,具备灵活定制、内容丰富的SaaS系统,具备强大的运维能力,才能够支持SaaS应用服务业务的平稳发展,才能够支撑数百以至上千的用户在同一个应用体系内实现业务操作,才能够保证每个客户自身应用功能的安全性、稳定性和可扩展性.由此可见,普通高校很难具备独立建立SaaS应用的条件,如需实现只能借助外部力量.重点大学则有这种能力.以北京大学为例,计算中心是学校的信息化支持部门,它同时承担校园网络基础设施、计算和存储基础设施、电子校务应用软件的建设和维护工作.利用虚拟化技术建立校园云计算环境,能够对外提供计算和存储资源,同时具备专业的运维能力;利用负载均衡、数据库集群等技术能够实现大吞吐量的数据访问;还具备专业的软件开发团队.最后,企业没有针对高校的成熟的SaaS服务产品.一方面,用于高校信息化的传统模式的软件已十分成熟,成本也在降低.企业没有将精力投入到SaaS服务的拓展和运营上面.另一方面,高校需求差别巨大,SaaS软件对可配置性要求很高,软件之外还有基础设施的建设,前期投入高,有实力和积累的企业才能涉足这一领域.
3、北京大学SaaS软件的开发实践
3.1北京大学应用思路
在关于SaaS的文献中,没有研究如何在高校内部设计并实现SaaS应用的内容.北京大学的切入点正基于此处,利用计算中心的平台和技术优势,在学校内部开发并部署SaaS应用.对于学校的主干业务系统,如学生工作系统、人事系统、财务系统、设备系统、办公系统等,早已经过多年的建设并形成成熟的应用.那SaaS软件的需求来自哪里呢?北京大学学校规模大,二级单位(院系、中心、研究所等)众多,计算中心的力量主要用于支撑校级主干业务系统的建设,对于各二级单位的强烈的信息化需求则心有余而力不足.SaaS模式的出现正好解决了这个问题,学校可以开发一些SaaS软件,供二级单位使用.如果将各院系及二级部门看作客户的话,那么在学校内部形成了一个SaaS产业链,如图2所示。
3.2网上支付接口服务系统设计
随着高校办学规模的扩大,学校各类收费项目日益增多,每年要处理几百个缴费项目,包括各类学费、住宿费、报名费、会议费等.收费对象多,收费项目繁杂.面对这些特点,传统的收费方式面临困难和挑战,效率低以及对账困难是主要问题.由于电子商务开始普及,大家普遍接受了网上支付方式.校内很多单位开始应用校外第三方支付公司提供的支付产品提高收费效率.随着应用的深入,问题也暴露出来:商务方面,大家各自为政,难以形成规模效应,手续费居高不下;管理方面,收费点分散,学校财务部门无法监管;技术方面,第三方支付公司和银行众多,接口不一,无法重用.基于上述需求,计算中心设计并开发了网上支付接口服务系统,系统下层对外封装多家第三方支付公司及银行的支付接口,上层对校内提供统一的支付服务接口.在管理界面,客户可以配置软件以满足需求,比如第三方支付公司或银行、支付币种、转账方式等都是可以配置的参数.客户可随时查询订单信息,执行退款等.当校内客户需要使用网上支付时,只需按照接口规范,将支付接口服务系统的URL加入自己的业务系统即可,然后用户可通过支付接口完成网上支付.系统的结构如图3所示.
3.3通用注册系统设计
网上支付接口服务系统的服务对象是已有业务系统想接入网上支付的校内客户.有些客户还没有业务系统或者只有静态内容的网站,需要在网上支付前采集一些用户的信息.这类需求在校内也很强烈,比如国际会议的注册系统或者夏令营或暑期学校的报名系统.在上述需求的推动下,北京大学设计并开发了基于SaaS模式的通用注册系统.系统设计完全遵循SaaS模式,强调的是可配置性,根据用户需求的不同,可以通过管理平台的配置,生成不同内容的信息采集表单;每个表单项的类型也是可以配置的,如文本框、单选框、复选框、下拉菜单或者文件框;表单项之间的逻辑关系也可以配置.比如若表单项A被选中,则必须填写表单项B等;信息采集的流程也可以配置,比如信息提交后是否需要确认,缴费成功后是否发送邮件等步骤;利用CSS技术,使得软件的界面风格也能够进行配置.配置信息存储在数据库中,不同客户的用户登录系统后,根据配置信息的不同,系统将呈现风格迥异的用户界面.看起来像为用户定制的多套软件.系统的结构如图4所示.
3.4应用情况综述
2014年,共有18个校内客户申请SaaS软件服务,使用网上支付接口服务系统的11个,使用通用注册系统的7个.其中包括国际会议5个,暑期班和夏令营12个,自助缴费机项目1个.服务用户人数超过5000人.网上支付金额达到900万元.提高了财务部门的收费和各院系的教学教务组织工作的效率,降低了工作强度.
4、总结
研究表明,SaaS模式的软件是未来的发展趋势,并且技术基础已经成熟.而实践表明,高校中存在对SaaS软件的需求,重点高校有能力在校内实现SaaS应用满足院系级客户的需求,甚至可服务于校外用户.普通高校可以通过与企业或重点高校合作的方式,来加速自身的信息化进程.本文的工作为高校信息化中如何应用SaaS提供了成功的实践范例.
作者:邢承杰 杨旭 姜宁 耿幼平 张治坤 单位:北京大学计算中心
1软件企业质量管理现状分析
在软件开发质量管理中,软件企业面临最大的问题就是管理系统的不可持续发展,基于CMMI的软件开发质量管理针对这一问题提出了解决方案,但是由于现阶段该体系还不够完善,开发项目不能够在独立的平台中得以有效实施,这给质量管理的有序执行带来了一定的风险。为此,需要对该体系中的CMMI过程域进行改进,主要包括以下四项内容:是需求管理过程域,需求分析的质量取决于进度和外界约束条件,需求描述过于粗略,就会使维护需求双向追朔环节出现问题;是验证过程域,主要包括验证准备、执行审查和验证产品三个环节,解决的是信度问题;是确认过程域,与验证过程域的环节相对应,解决的是效度问题;是项目定量管理过程域,即以量化的方式对已定义的项目流程进行管理,从而保证流程及流程绩效和项目质量[2]。
2基于CMMI的软件开发质量管理体系的构建
2.1各过程域的完善
软件过程成熟度直接影响到软件开发质量,基于CMMI的软件开发质量管理体系的构建,其首要环节就是要对各过程域进行改进和完善,针对需求管理过程域存在的需求分析难以实现双向追朔而引发的缺陷难以显露的问题,应对需求的记录方式做出改进,设定改进的幅度和目标,通过建立多层分级的需求体系,使所有的需求都使用一个编号,使用专门的需求管理工具来实现,提高需求满意度,使质量开发风险得到有效控制;针对过程域存在的评审质量不高、文档缺陷密度较低的问题,应保证缺陷密度能够在基线控制范围内正常波动,不应低于中值,可在正式评审前增设预审流程,再有就是通过邮件讨论或直接使用工具,在此推荐使用DOORS工具的CPS功能,有助于保证信息数据的完整性,提高文档评审质量;针对确认过程域存在的UT不充分的CR所占比例过高、缺陷排除率较低的问题,应通过可持续集成将零散的测试用例整合起来,改进用例编写,对产品代码实施持续测试,提高用例覆盖率和检查标准的可靠性;此外,还应将定量管理过程域引入质量管理体系中,建立组织级度量模式,对所有过程建立相应的度量方式,明确度量指标,确保整个体系处于一个循环改进的过程中[3]。
2.2体系的实施策略
基于CMMI的软件开发质量管理体系,将活动及相关资源作为过程进行管理,能够有效实现预期效果,该体系主要包括三项内容,即以客户为中心、领导作用、全员参与、管理系统方法、过程处理方法、决策方法、持续改进和供方互利。在实施过程中,软件开发能力成熟度集中体现在软件项目开发和执行人员的整体能力上,除了团队能力外,软件开发过程中的控制能力和改进能力,软件开发质量管理的核心内容就是对这些能力进行改善,任一阶段、任一环节的优化都是在既有目标基础上做出的改进,进而使绩效得以提高,因此应对目标进行有效管理,具体来讲,可通过领导的决策支持、确认质量改进目的、选择最佳执行方案和重视员工培训等四个方面来保证质量管理体系的有效实施。
3结语
综上所述,通过对软件开发质量管理相关问题的探讨和研究,对各过程域实施中存在的问题有了进一步的认识,在此基础上,建立基于CMMI的软件开发质量管理体系,能够为软件企业项目开发及维护提供一定的指导,使组织能够对自身的过程域能力及能力成熟度进行改进评估。
作者:张成功 单位:曲阜师范大学软件学院软件工程专业
1软件的特色
基于FCS的自动控制系统监控软件的教学特色,重点表现为:利用虚实结合的系统、丰富的监控信息、形象直观的软件视界、动手实操过程,让学生主动获取掌握知识,高效实现教学目;利用信息化教学手段实现重难点突破,学生完全能够主动获得较难理解的理论知识;老师能够“边做边教”,学生能够“边做边学”,融理论知识和实践于一体;本软件教学应用程序,具有直观丰富的视界和多种操作方式;创建互动式教学模式,较好的激发学生学习的主动性和兴趣。总之,本软件从教学的角度看,较好的实现了“边做边教、边做边学”的教学设想,增强了学生学习的兴趣和信心。本软件的技术特色,主要有:软件采用工业广泛使用的MODBUS协议,可兼容众多工业监控设备(如阿尔泰RTU6300);软件用VB及C语言设计,二次应用开发简单灵活、运行稳定、使用方便;通过精心设计,软件操作简便快捷、界面设置合理、交互性强;整个系统的实时性达到工业控制的要求,且可靠性较好;使用WEB技术,可用远程PC或智能手机作为操控终端。本软件从技术特点上,采用了当前工业上广泛使用的新技术和新应用,开阔了学生的视野,引导学生学习的方向。本软件的艺术特色,可概括为:软件围绕教学主题,综合运用图文、数据、动态波形、动画等丰富的表现方式;软件界面布局合理、美观,导航清晰简捷;软件界面色彩运用搭配合理,遵循工业监控软件的风格。本软件从艺术效果上,对学生具有一定的吸引力,激发了学生的学习兴趣。
2软件的教学应用
2.1软件平台的教学运用
在本软件平台的基础上,可依据课程的教学要求开发各种应用程序,用信息化技术手段辅助教学,实现教学重难点的突破,迎合当前学生的学习兴趣。下面将以《自控原理与系统》课程的“开环控制和闭环控制”教学单元为例,说明本教学软件平台的教学应用开发和使用。本例应用程序开发的内容是“开环控制和闭环控制”。软件教学目标:熟悉自动控制系统控制方式;认知开环控制和闭环控制抗干扰能力(需要突破的重难点)。运用软件教学的策略:通过虚实结合的系统、丰富的监控信息、形象直观的软件视界、动手实操过程,让学生主动获取掌握知识。本例教学应用程序开发的硬件基础,包括如下几部分:一个自制的闭环控制系统、一台笔记本电脑、一台路由器和智能手机。闭环控制系统作为下位机能与上位PC机(笔记本电脑)串口通信,控制器采用STC12C5628AD单片机,驱动装置为一台风机,被控对象是一个随风旋转的帆,反馈单元为数字码盘。上位PC机是本软件平台的载体,可连接下位机和远程智能手机。路由器使智能手机和上位机构成LAN网络,实现相互通信。本例应用程序界面及功能开发,如图2所示,分六个区:控制模式设置区,能设置本机PC控制和远程手机控制两种方式;自动控制方式设置区,设置开环或闭环控制方式;PID控制参数设定区,可设置比例、微分和积分参数;自动控制系统的给定值设置区,设定被控对象的被控参数;示波器区,可实时监控下位机的参数变化;动画区,可实时直观描绘被控对象动作状态。
2.2软件教学应用效果
在基于FCS的自动控制系统监控软件平台上,可以开发各种应用程序,本软件的教学应用开发以“开环控制和闭环控制”教学单元为例说明。在教学时可通过本软件的应用程序操作演示开环控制和闭环控制系统的运行,学生通过观察实际自动控制系统的运行状态和应用程序的实时监控数据、波形、动画等信息,以及利用手机远程参与实操体验的互动式教学方式,在轻松的理实一体化教学过程中掌握本教学单元的重点与难点知识。学生在本软件教学过程中,能够主动获取“开环控制系统不具备抗干扰能力,闭环控制系统具备较强的抗干扰能力”的经验和知识,还能自主获取对实际的自动控制系统的全面认知,这是在传统的教学过程中较难一次完成。总之,本教学软件符合职业院校学生的认知特点,已经过多年的教学实践,应用结果表明该软件实用有效。
3结束语
本软件教学应用的创新性与实用性,可归结为两点:虚实结合,即把虚拟的仿真界面和真实的自动控制系统结合起来,让学生既能得到虚拟仿真的直观,也能获得真实系统的可信,因此具有虚拟仿真软件和现有实训系统不可替代的作用;通用灵活,即软件所有模块都面向信息数据库设计,软件核心FCS服务器具有通用性,可依据不同的教学要求,灵活设计出合适的课程教学应用软件。
作者:朱志伟 单位:武汉铁路职业技术学院
1、Android平台应用软件开发中的关键技术问题
1.1权限获取问题在权限命名以及获取时,要着重把握好以下事项:首先是权限命名的问题,在Android应用程序中,如果不具备与其他相关联的权限,就无法对用户体验以及设备数据进行任何有损操作,如是应用程序的需求,可以添加相应的标签进行权限声明;其次,AndroidManifest.xml文件支持权限,在访问的过程中只要在这一文件中进行相应的权限声明即可。
1.2构建Android用户界面的问题在Android用户界面生成的过程中,可以分为直接使用代码生成与XML配置生成两种方式,以MVC原则着手,UI需要实现和程序逻辑相分离,所以可以在XML中对UI界面进行定义,从而使一个程序实现从一个界面到另一个界面的简单切换。Android应用程序的基本功能为Activity,但是并不直接显示在屏幕上,所以,要想实现这一基本功能在屏幕上的显示,就需要实现对UI的设计,需要通过对And-roid平台基本的用户界面进行利用来实现对元素的表达。在解决布局对象这一问题时,通常有线性布局、相对布局以及表格布局等。
1.3资源获取与使用方面的问题这里的资源指的是外部文件,Android所支持的资源文件类型较为丰富,包括PNG、JPEG以及XML等,在And-roid程序运行过程中,资源文件被解析。Android资源系统可以实现对应用程序代码的相关内容进行跟踪,所以程序的开发者可以通过对资源类的利用来实现对应用程序资源的访问。
2、构建Android平台软件开发环境
因Eclipse是使用java语言来进行程序编写的,所以在安装Eclipse之前要保证系统已经完成对java环境的建设,如若不然就会致使这一工具无法启用,具体安装内容为:最新JDK以及对java环境变量进行设置[3];安装Eclipse。在实际安装的过程中,可以先在官网进行相应的软件下载,然后安装这一软件,最后要对其开发插入ADK进行安装;AndroidSDK的安装。主要是对Android软件开发过程中所要的函数库资源的集合包,是对Android程序进行开发的重要组件之一;进行AndroidAVD配置。AVD属于经过配置的模拟器,对于AVD来讲,需要进行target的制定。在SDK1.5中,主要的target类型为platform以及add-on。
3、结语
综上所述,对于整个Android应用程序来讲,其主要是基于AndroidFramework层面上的开发来实现的,并使用Java这一编程语言,所以,针对Android平台软件开发方法进行研究是十分必要的。本文基于Android平台软件开发的研究与应用具有着一定的指导作用,其不仅能够为日后手机软件的开发进行有效的指导,还能够帮助更多的软件开发加入到And-roid平台中,从而为Android品台的发展拓展空间。
作者:芮素文 单位:安徽国防科技职业学院
1软件总体结构
机床的数控系统由硬件部分和软件部分组成。系统硬件部分包括一个主站控制器和三个从站控制器以及伺服电机、各类传感器等,从站控制器分别控制驱动两个X轴,两个Y轴及主轴的电机。数控系统软件进行参数化设计生成NC程序并向控制器发送指令,控制器接收指令,控制电机动作,完成指令运动。数控成形砂轮修形软件将采用开放式的数控系统,即上位机采用普通PC机,在开放式的平台借助ACS运动控制器开发数控系统软件。PC机与ACS控制器之间通过实时、可靠的通讯来协调整个系统,共同完成加工任务。ACS控制器是基于EtherCAT网络多轴直线运动控制的控制器,达到了现代机器所要求的多轴高性能,是可扩展的、分布式的运动控制中心。ACS控制器可监控所有的轴,对驱动装置执行实时控制,具有强大的远程访问和诊断、快速地错误恢复功能。同时,ACS控制器拥有自主开发的编程语言ACSPL+,丰富的应用软件和开发、建立、调整和诊断工具,为开发人员进行软件开发调试提供了有利条件。数控成形砂轮修形软件采用VC++6.0进行软件开发。软件的主要模块包括参数化设计模块、基于零件特征加工模块、NC代码编辑模块、数据库模块以及加工控制模块。用户通过人机界面输入毛坯参数、砂轮的基本参数和工艺参数,软件可自动生成刀具的加工路径,通过优化参数匹配和仿真修形轨迹从而得到NC程序,并可直接进行加工。软件的基本流程图如图1所示。
2数控软件与ACS控制器的通讯建立
软件通过调用ACS控制器自带的ACSCL.dll动态链接库或ACSCL_x86.LIB静态链接库,来完成PC机和ACS控制器之间的数据交换,链接库中包含了与ACS设备相关的变量内存地址定义以及函数定义。首先,在主程序目录中加入ACS.h函数定义头文件;其次,通过工程—>设置—>连接—>对象/库模块添加动态或静态链接库,完成程序链接;最后编写连接设备的程序,其主要设备连接程序如下(省略变量定义):当软件系统通过Ethernet总线方式连接上主站控制器之后,还需要对其接入的其他硬件设备进行地址分配,并写入主站控制器,使其了解系统中所接入的各种硬件设备,才能利用主站控制器对硬件设备进行控制。
3软件模块功能
数控砂轮修形软件主要功能为根据砂轮参数对成形砂轮进行参数化设计或根据零件参数反求出成形砂轮轮廓,优化刀具的加工路径,自动生成NC程序,向机床发出指令,控制机床运动,对毛坯进行加工,得到所需的成形砂轮。同时,也可以自行输入已经人工编写好NC程序或者调用数据库中已有的程序进行加工。因此,数控砂轮修形软件包括参数化设计模块、基于零件特征加工模块、NC代码编辑模块、数据库模块以及加工控制模块。
3.1参数化设计模块
该模块的主要功能是根据提供的砂轮参数对成形砂轮进行参数化设计,并自动生成NC程序。在该模块中,用户输入毛坯参数,砂轮尺寸参数、加工工艺参数,软件能够自动生成所需的NC程序,同时可显示刀具的加工路径以及砂轮模型模拟图,可根据显示的刀具路径及砂轮模型模拟图确认NC程序是否无误,确认后即可进行加工生产。加工完成后,可以将此次生成的NC程序保存到数据库中以便下次调用。
3.2基于零件特征加工模块
该模块的主要功能是根据提供的零件参数反求出成形砂轮的轮廓参数,并自动生成NC程序。由于在生产中,我们首先得到的是零件的参数而不是成形砂轮的参数,对于一些特殊零件如齿轮棘轮等,砂轮的设计也较为复杂。在该模块中,用户只需输入零件的尺寸参数、毛坯参数及加工工艺参数,软件能够自动在后台计算出砂轮的截面参数,并生成NC程序,同时可显示刀具的加工路径及砂轮模型模拟图。软件从零件直接加工出成形砂轮,省去了中间设计成形砂轮的步骤,可以大大地缩短生产周期,提高生产效率。
该模块的主要功能是对用户人工编写的NC程序进行编辑修改及运行。用户可以直接输入已手工编好的NC程序,或直接导入已有的NC程序文件,对NC程序进行编辑修改,并对程序进行试运行。此时软件中会显示刀具加工路径,通过观察刀具加工路径可以判断我们手工输入的NC程序是否正确,程序检验无误后可进行实际加工。加工完成后,用户可以将程序保存到数据库中以便下次调用。
3.4数据库模块
该模块的主要功能是保存参数化设计模块中生成的NC程序和NC代码编辑模块中用户自己手工输入的NC程序。在该模块中,所有程序统一编号,用户通过查询编号来查看程序。用户可以直接调用NC程序进行加工,也可以对已有的程序进行管理、添加、编辑、删除。
4实验模拟
由于该软件涉及的模块功能较多,无法在本文中一一呈现。因此本文选取了其中的基于零件特征加工模块下的圆弧母线加工模块进行实验。在该模块中,我们需要输入零件的各种参数以及加工参数。在实验中,我们选取的零件的参数分别为:圆弧半径R=30mm,零件厚度B=30mm,砂轮断面直径D=100mm,切削余量为2mm,主轴转速为800r/min,背吃刀量为0.2mm,进给量为0.1mm/r。另外,需要注意的是关于零件端面直径以及零件外形的选择,在本实验中,我们选择左右端面直径相同,零件外形为外凸。输入所需零件参数后,点击“确定输入”按钮,表示参数输入步骤完成,接下来可以选择其他功能按钮进行其他操作。点击“磨削该零件砂轮的NC代码”按钮,软件即在交互界面上显示加工砂轮的NC程序。通过实验可以看出,该软件能够正常运行,基本实现所需的功能。只需要输入砂轮或零件的相关参数,即可生成NC程序,为生产提供了方便。
5总结
本文提出的数控砂轮修形系统软件采用具有高性能的ACS控制器来实现高精度成形砂轮修形,软件具有良好的人机交互界面,操作简单明了,用户只需要输入简单的参数即可生成NC程序进行加工,缩短生产周期,提高生产效率。
作者:张由婷 单位:武汉理工大学机电工程学院
1软件主要内容
《防水施工企业管理》软件是一个集管理、统计、成本核算为一体的综合性管理软件。它以成本核算为中心,对工程、材料、人工、管理费用等进行汇总统计分析,以达到管理企业运行的目的。1.1软件逻辑统计的依据1)根据“建筑安装工程费用项目组成”(建标[2013]44号文件),对各项费用进行分类和统计;2)根据专业防水施工企业特点和习惯,对部分费用进行科目调整。1.2软件运用环境1)操作系统:MicrosoftWindowsXP以上;2)数据库:MicrosoftSQLServer2000以上;3)软件架构:C/S各操作用户安装软件客户端。1.3软件组成《防水施工企业管理》软件的主要模块有:工程管理;采购管理;库存管理;财务管理;劳资管理;基础数据;系统管理。每一个模块分为录入、查询、统计三个通道。1.3.1工程管理模块工程管理模块主要有三个功能:①承接业务后建立项目;②施工产值录入;③施工产值、项目人工、项目材料使用的统计。如表1所示。1.3.2采购管理模块采购管理模块主要作用是,材料采购相关数据的录入。采购并不是入库,材料入库时的入库单据必须与材料采购相对应,否则材料无法入库。采购与付款相关联。1.3.3库存管理模块库存管理模块主要包括材料的入库、出库、退回、盘库的录入和库存材料状况查询。如表3所示。1.3.4财务管理模块财务管理是企业管理最重要的内容之一,包括付款、收款的记录,各种开支的记录,应收应付款记录等。通过各种原始数据的录入,可以得出项目的盈亏情况、企业的利润情况、行政费用开支情况,以及各种经济数据。财务管理模块包括财务信息登记、财务记录单查询、财务查询统计等3个子模块和33个项目,项目明细从略。1.3.5劳资管理模块劳资管理分为管理人员的工资和工人工资两部分,劳保支出和股东分红也列入劳资管理。1.3.6基础数据模块基础数据是将一些常用的数据统一归类,以便单据录入时选择。如员工姓名用于工资单制表,材料名称用于材料采购与出入库。另外一些期初数据也在基础模块中设置。如表5所示。1.3.7系统管理模块系统管理模块主要用于权限管理和结账。权限包括录入权限和查询权限,做到数据的录入只能由专人操作,重要数据只能由高级别人员查看。结账是对每月的录入内容确定,以达到按月统计的目的。年度结账也一样,不进行结账就不能进行下一阶段的录入。这样避免了数据随意修改的问题。如表6所示。整个软件有7个主要模块,15个子模块,91个项目内容。通过20多个数据的录入,可以得到30多个报表和数据分析结果,企业各部门和相关领导随时可以查询各种数据,实现及时、正确、高效的目的。
2软件主要界面截图
软件开启界面(图形可换)、主界面、工程项目登记、施工产值统计台账、项目人工工资月报表、项目材料耗用台账、工程收款登记、行政管理费用台账、企业成本收益台账等主要界面的截图见图1—9。
3其他说明
1)本软件开发是以提高企业管理效益为目标,并非财务软件,不可代替财务做账;2)软件在企业局域网上使用。将数据库固定在一台作为主机的电脑上,其他各电脑安装客户端,只要将主机打开,每台电脑的输入数据就录入主机,有操作权限的人在各自的电脑上操作,共享数据。3)主管可以根据需要,确定相应人员的录入和查询权限。企业总经济数据,设置只有最高级别领导可以查看。4)在软件框架不变的情况下,各企业可以根据自己的管理习惯,订制符合企业情况的应用软件,可以扩展或压缩管理模块。
作者:胡骏 俞志刚 单位:杭州金汤建筑防水有限公司 西楼软件工作室
1软件的基本架构与工作流程
本系统由管理端软件、测试端软件、SQLServer数据库和Accesss数据库构成,管理端软件采用SQLServer数据库管理数据,通过网络,与测试端软件进行数据交换,测试端软件后台用Accesss数据库存储测试数据。管理端软件安装在办公电脑上,检验前将待检验限速器的基本参数录入(使用单位、电梯安装地点、限速器出厂编号、档案号、制造单位、出场日期、额定速度等)并分配检验编号。检验编号具有惟一性,由年份加检验流水号构成,如:2015-00001,每个校验编号对应一个限速器的检验任务,所有检验任务通过网络写入服务器上的SQLServer数据库中。测试端软件安装在仪器配套的电脑上,通过网络读入服务器上SQLServer数据库中的待检验任务,并将其存储在后台的Accesss数据库中。检测过程中,软件能自动显示测试数据,并将每个检验任务的测试数据与检验结论存储在后台的Accesss数据库中,连接上网络后,将所有检测数据与检验结论上传到服务器上的SQLServer数据库中,再由管理端软件自动生成限速器检验报告与检验原始记录。
2软件功能设计
1)管理端软件功能。管理端软件设计有“校验任务管理”、“文档管理”、“校验历史调阅”与“相关信息配置”四大类功能,下图3所示为管理端软件的功能设置图。管理端软件界面从左到右分别为基本信息录入栏、功能按钮区和待检验任务列表栏三个区域,界面简洁,功能按钮作用一目了然,软件的使用非常简便。下图4为管理端软件主界面设计。2)测试端软件功能设计。测试端软件整合了接收待检验任务、检验测试、数据上传、服务器数据库配置、检验仪器设置等功能,软件的核心是实现检测数据的自动识别与保存,并将测试数据与检验结论上传至服务器上的SQLServer数据库中。测试端软件界面风格和特点与管理端基本一致,其主界面见下图6所示。选中即将要实施的检验任务,其参数将显示在左面的基本信息栏中,如果信息中有差错,检验人员可以现场进行修改。在对基本信息核对无误后,点击“开始校验”按钮,将进入下图7所示的测试界面。测试数据与结论将自动保存到本机后台的Accesss数据库中,在网络环境下,点击“数据上传”(见图6),所有检验结束任务的测试数据与检验结论将通过网络写入服务器上的SQLServer数据库中。点击管理端软件上“文档管理”(见图4)按钮,将弹出下图8所示界面。在文档管理功能模块中,可以预览限速器检验报告与检验原始记录,并能够直接输出打印。检验报告可以通过网络进入审核和签发流程,检验报告中的检验员、报告审核与审批人员均使用电子签名签署检验报告。
3结论
这套电梯限速器检验软件人机界面友好,操作使用非常简便,能大幅度提高电梯限速器检验的工作效率。2014年11月,软件在江苏省特种设备安全监督检验研究院无锡分院投入使用,使用证明:它能使得检验人员每天节省3~4个小时的工作时间,把检验人员从繁琐的重复录入工作中解放出来,并基本杜绝了工作差错,并得到检验人员的高度评价。
作者:朱恺丰 卢远航 单位:江苏师范大学科文学院
一、文献综述
英国政府在2003年的《能源白皮书》中首次提到低碳经济。白皮书认为低碳经济是通过更少的自然资源消耗和更少的环境污染,获得更多的经济产出(王帆,2010)[1]。碳审计作为环境审计的重要分支,是由独立的审计机构对政府和企业在履行碳排放责任方面所进行的检查和鉴证,是对碳排放管理活动及其成果进行独立性监督和评价的一种行为(钱纯,2011)[2]。我国实现低碳经济还需很长一段时间,碳审计作为重要的监督机制是其中必不可少的一环。为了促进碳减排目标重点从通过国家政策杠杆策略的“自上而下”转移到集中在次国家水平的“自下而上”方法,这一模式的转变和克服企业减排层面的障碍的整体驱动器是开发环境审计技术,制订务实和全面的碳审计框架。AndrewC.Lovell(2003)指出,为了促进这一审计框架的可行性,目前碳管理的做法是通过审查企业环境报告和采访开展案例研究的组织的环境管理者[3]。ShilpaVerma(2012)探讨了碳审计的过程:首先,从员工中收集信息,进行组织调查;其次,计算碳足迹;再次,现场参观;最后,生成碳审计报告[4]。EhsanAsadi(2013)根据葡萄牙国家法律构建了公共建筑室内空气品质碳审计方法。该方法系统监测选定的化学指标(二氧化碳,一氧化碳,甲醛,臭氧和挥发性有机化合物),以及生物指标(细菌和真菌),指出建筑物常见的室内空气问题并提出改善建议[5]。王帆(2014)认为,我国应从制定统一的评价与报告制度、建立碳排放线上资料库、制定碳排放审计指南的措施着手构建碳审计评价体系[6]。近年来,国内学者对于碳审计的研究,更多的是介绍国际碳审计的发展及启示,很少结合中国实际研究碳审计理论体系,而系统的碳审计程序是促进低碳经济实现的关键,由此我们构建出一套综合的碳审计机制,为我国深入开展碳审计领域的理论研究提供基础和参考。
二、碳审计机制的理论分析
(一)低碳治理与碳审计的关系
构建全面综合的碳审计机制,首先分析碳审计在整个低碳治理系统中发挥的关键作用,作为机制构建的理论来源。低碳治理是一个复杂的系统,碳审计作为该治理系统中的免疫子系统,具有建设性、预防性和抵御性三大功能。政府、市场和企业在低碳治理系统中发挥着各自的作用:政府通过碳配额和碳税等宏观治理方式,调控低碳经济的运行;碳市场通过碳交易、碳定价和碳中和等市场治理方式,实现低碳资源的优化配置;企业通过对其碳交易或事项进行碳核算和碳信息披露等公司治理方式,公允反映其碳交易的实质。碳定价、碳中和是否真实、公允和有效率,需要内外部审计评价和鉴证,企业的碳核算和碳披露是否公允和充分,需要外部审计的鉴证。碳审计是集财政财务审计、法纪和绩效审计、制度符合性审计于一体的综合性审计,同时,碳审计也是会计核算审计和社会责任审计[7]。基于审计的国家治理和审计免疫系统理论,碳排放治理需要审计的监督与支持,而碳审计起着预防、抵御的作用,有助于低碳排放的顺利实现。
(二)碳审计机制的构建机理
基于上述对低碳治理与碳审计关系的理论分析,构建碳审计机制为F={S,T,U},如图1所示。其中,S———基于碳排放治理的审计目标,T———基于碳排放治理的审计路径,U———基于碳排放治理的审计信息与传递。审计的基本职能是监督、评价和鉴证,低碳治理中的审计机制,是一个由多元审计主体、多层次审计体系构成的审计制度安排。该审计机制从低碳治理主体需求角度出发,把碳审计目标及其实现机制、审计信息作为一个系统进行研究[8]。1.碳审计机制的目标。碳审计机制的目标(S)是通过审计监督,促进低碳政策、低碳经济杠杆、低碳技术的合理、有效应用。2.碳审计路径及其信息化。碳审计路径(T)是在已有审计机制的基础上实现审计目标的具体措施,是审计主体采取的审计程序和行为,涉及治理主体的审计权与审计能力、外部审计的独立性、治理主体与内部审计之间的沟通渠道等(叶陈刚、程新生,2006)[9]。碳审计路径的具体内容是:①低碳政策执行情况审计。②低碳资金去向的审计监督。③低碳经济行为和产品的审计认证。④碳社会责任审计。⑤碳绩效审计。结合现代信息技术,如开发专门的碳审计软件,是保障审计路径畅通的一个有效方式。低碳政策执行过程审计,首先是审查政策的目标在执行中是否存在偏差,其次是评价执行政策的方法是否可行和合理,最后是检查和评价执行政策的效果。对于低碳政策执行情况审计的信息化实现路径体现在后文的碳审计软件的“项目管理子系统”中的法律法规模块,加入了世界性组织有关碳审计的环境政策,运用该软件的审计师能查询到客户企业应遵循的对应的政策;同时,在“审计准备子系统”中的内控调查和内控测试部分都相应的涉及了有关低碳政策的执行情况与效果评价。低碳资金去向审计,从两个维度进行分析,首先是企业总的低碳资金(包括政府专项扶持资金和企业自身留用的低碳资金)在整体企业使用的不同方向,包括节能设备采购,节能技术改造,节能新产品推广,节能减排管理的能力建设等,审计相关数据的真实性,同时也包括了低碳经济行为和产品的审计认证。然后是企业开展各项目的碳资金分配,例如建筑企业的一般公共建筑项目,住宅小区项目,地下工程项目等,各项目还可具体到大型、中型、小型,审计各项目分配的碳资金使用的真实合理性。低碳资金去向审计的信息化实现路径体现在后文软件中的“审计实施子系统”中的“碳资金利用分析”部分。碳社会责任审计,其重点是审计企业是否设置低碳责任评价指标以及领导人的考评情况,是否落实碳社会责任的履行等。碳社会责任审计的信息化实现路径体现在后文软件中“审计准备子系统”的内控调查和内控测试部分,同时,在“审计实施子系统”中的“碳社会责任分析”部分也做出详细阐释,碳社会责任具体分为环保减排和低碳节能两大类,通过评分赋值体系审计企业碳社会责任的履行情况,进而审计领导人碳社会责任的履行力度。碳绩效审计,绩效审计是对被审计单位经营和管理活动的经济性、效率性、效果性、公平性和环境性(5E)进行监督、评价和鉴证,碳绩效审计重点关注经济性、效率性与环境性。碳绩效审计的信息化实现路径体现在后文软件中的“审计实施子系统”中的“碳成本效益分析”部分,再具体到经济效益指标和环境效益指标,评价被审计单位的碳成本效益水平。3.碳审计信息传递。低碳审计机制中的低碳审计信息传递(U)包括审计报告书、审计意见书、审计决定书等。信息是所有控制的前提,基于碳排放治理的审计信息主要是对碳会计信息的真实性、低碳治理效率等进行评估。碳审计目标(S)、碳审计路径(T)与碳审计信息传递(U)构成一个紧密联系的逻辑循环系统,首先制定碳审计目标,由目标导向具体的审计路径,信息传递又对主体进行反馈,以指导其修改完善目标。碳审计目标(S)明确、碳审计路径(T)通畅、审计信息传递(U)及时,对于公司低碳治理和公司管理具有重要意义。
三、碳审计软件的开发
在碳审计机制中,碳审计路径(T)是该机制的核心组成部分,将现代信息技术引入碳审计具体路径中,既有效保障该审计路径的畅通,又提高碳审计的效率,因此开发碳审计软件是碳审计信息化的关键。根据软件开发的基本思想以及开发的具体流程,对碳审计软件进行具体的开发。首先分析碳审计所需的特殊功能,再对软件进行需求分析,得出软件所需的基本功能。该软件的需求分析不仅包括了通用审计软件所要求的财务真实性方面的审计,还新增了碳合规性方面的审计,碳绩效性方面的审计。进而对软件进行总体设计,设计出软件所需的功能模块;分析软件各功能模块要完成的任务,制定出功能实现的算法或实现方案;依据详细设计的结果,使用开发工具进行编程和界面设计;制定有效的测试计划,进行测试,保障设计的有效性。本软件采用MicrosoftVisualStudio2010下VisualC#工具中.netframework4.0框架下的Windows应用程序进行设计,数据库采用MicrosoftSQLsever2008R2。先建立C/S三层架构:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。采用WinForm作为UI界面,用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面;业务逻辑层是对数据层的操作,对数据业务逻辑处理;数据访问层主要是对原始数据的操作,具体为业务逻辑层或表示层提供数据服务。以及采用Windows应用程序中的类库以及自定义类实现具体的功能,如数据的读入,数据显示,编写代码完成数据处理等。通过对软件的需求分析、概要设计、总体设计后,对软件进行具体的实现。软件的界面如图2所示:碳审计软件系统主要包括项目管理、审计准备、审计实施、审计终结4个子系统。其中项目管理系统与通用审计软件无异,该子系统的法律法规模块部分,归纳整理了具有代表性的20余项世界性组织和各个国家出台的一系列有关低碳经济及碳审计的环境政策,用户可根据具体需要下载使用。本文就审计准备子系统,审计实施子系统,审计终结子系统中涉及到碳审计功能的部分(即相比于通用审计软件特殊功能的部分)作出具体的说明。
(一)审计准备系统
审计准备子系统添加的特殊的碳审计功能主要体现在内控调查部分,如图2所示。内控调查包括:控制环境低碳重视度、低碳目标实现风险、低碳控制活动(设备采购是否积极落实节能产品采购实施意见、是否落实碳社会责任的履行等)、低碳信息披露(碳账户是否定期计算并披露和碳账户的披露是否全面)和对内控的监督(内部审计部门是否重视碳账户的审计)。调查结果按下面的计算方式评估(“是”———5分,“弱”———3分,“否”———1分,适用个数n):[调查结果分数和/(n×5)]≥0.6,则“可进行进一步内控测试”;[调查结果分数和/(n×5)]<0.6,则“不建议进行内控测试,而直接进入实质性测试”。若进行内控测试,测试目标包括:必须遵循低碳政策、只有经管理层批准的碳账户预算才能执行、定期做碳成本预算、只有合法的低碳资金使用申请才能够被执行、已发生的碳资金使用均已记录、碳资金的使用已记录于适当期间、碳资金的使用已准确记录、碳成本已经记录于适当期间、碳成本已经准确记录、定期披露低碳信息、全面披露低碳信息、在产品或服务中体现低碳价值以实现其碳社会责任的履行、认真落实节能产品采购实施意见与内部审计部门重视碳账户的审计。对于每一项测试目标,首先看该企业是否适用;若适用,再看运行效果(有效、较弱和无效);最后是风险评估(高、中和低)。测试结果按下面的计算方式评估(“风险评估”,“高”———5分,“中”———3分,“低”———1分,适用个数n):[调查结果分数和/(n×5)]≥0.6,则“综合风险高”;[调查结果分数和/(n×5)]<0.6,则“综合风险低”。如果“综合风险高”,即重大错报风险大,需要的审计证据多,注册会计师越要通过实施审计程序降低检查风险,以确保已审计的碳信息出现错报和漏报的可能性不超过预先确定的审计风险。反之同理。
(二)审计实施系统
审计实施子系统包含三个部分“账证查询”、“财务报表”和“碳账户核算与分析”。其中“账证查询”包括“科目余额表”、“分类明细账”、“凭证快速查询”等功能;“财务报表”包括“资产负债表”、“利润表”和“碳披露附注表”;“碳账户核算与分析”包括“碳账户核算”(主要是CO2当量的计算)、“碳资金利用分析”、“碳成本效益分析”和“碳社会责任分析”。碳账户核算,采用由英国标准协会2008年10月的《PAS2050∶2008商品和服务在生命周期内的温室气体排放评价规范》的规定,首先将初级和次级活动水平数据换算为GHG排放量,即活动水平数据乘以其排放因子;再将GHG排放量换算为CO2当量,即CO2当量=GHG排放量×相应的GWP值(全球变暖潜能值)。运用该方法核定企业CO2当量的核算是否准确,作为后续的“碳成本效益分析”和“碳社会责任分析”中涉及到的CO2排放数据的基础。“碳资金利用分析”、“碳成本效益分析”和“碳社会责任分析”是该碳审计软件的核心组成部分,也是区别于通用审计软件的关键,结合上述碳审计机制中的碳审计路径的阐述,分属于低碳资金去向的审计监督与低碳经济行为和产品的审计认证、碳绩效审计和碳社会责任审计。1.碳资金利用分析运用饼状图的分析工具呈现总的低碳资金在整体企业使用的不同方向,包括节能设备采购,节能技术改造,节能新产品推广,节能减排管理的能力建设等,审计相关数据的真实性。运用条形图的形式呈现企业开展各项目的碳资金分配,例如建筑企业的一般公共建筑项目,住宅小区项目,地下工程项目等,各项目还可具体到大型、中型、小型,审计各项目分配的碳资金使用的真实合理性。2.碳成本效益分析首先从财务报表中采集“经济效益指标”和“环境效益指标”的相关数据,如表1所示。再使用二级模糊综合评价法,得出企业的碳成本效益综合得分(李卉,2010)[10]。二级模糊综合评价法评价包括以下五个步骤:(1)确定评价指标因素集;(2)确定评价指标的评价集;(3)确定各指标层权重;(4)一级模糊综合评判;(5)二级模糊综合评判。3.碳社会责任分析依据杭州市企业社会责任评价体系中关于环境责任的评分部分,环保减排和低碳节能两大类,各占150分,如表2所示。其中最后一项的分数为后文JZ案例的评分。
(三)审计终结系统
审计终结子系统分为“审计工作底稿”和“审计报告”两部分。对于审计发现的问题,生成审计工作底稿,形成初步的审计结论。底稿编制涵盖了从审计准备,审计实施到审计终结的全过程。其中,审计实施中的“内部控制测试”和“实质性测试”涉及到碳审计的相关内容。“内部控制测试”直接生成上述“审计准备”系统中的内部控制测试表。“实质性测试”直接生成相应的表格,分为四个层面:①碳排放权交易(包含企业碳排放量层面和碳排放权层面,其中企业碳排放量层面包括企业碳排放量明细表、企业碳排放量审定表和企业碳排放量公允价值复核表;碳排放权层面包括碳排放权交易明细表、碳排放权交易审定表和碳排放权交易公允价值复核表);②碳排放成本(包含碳排放成本明细表、碳排放成本审定表、碳排放成本与上年度比较分析表、主要项目碳排放成本分析表、碳排放成本抽查表和碳排放成本重大调整事项核查表);③碳税(包含碳税测算表、碳税审定表和碳税检查情况表);④超额排放罚款(包含超额排放罚款明细表、超额排放罚款情况表和超额排放罚款审定表)。“审计报告”具有标准无保留意见、保留意见、无法表示意见和否定意见四种类型的模板,根据被审计单位的具体情况,直接生成相应的碳审计报告。
四、案例分析
我们将开发的上述软件在杭州市JZ企业进行实际的碳审计实践,我们只针对碳审计过程进行详细的说明。该公司碳审计相关的原始数据(2013年)为:固定资产205720.40万元(其中环境资产119.07万元),营业成本6002198.35万元(其中环境成本167251.26万元),环境收益2558.94万元,低碳专项资金264.60万元(其中节能设备采购119.07万元,节能技术改造79.38万元,节能新产品推广39.69万元,节能减排管理能力建设26.46万元),销售额6810479.90万元,净利润293334.65万元,原料耗用总量4501648.76万元,产品绿色原料耗用量244889.69万元,二氧化碳排放量1498.00吨,物料总消耗量28618.70吨,循环利用物料量16238.25吨,工业增加值582352.94万元,综合能耗990000.00吨标准煤,单位增加值能耗1.70吨标准煤/万元。
(一)审计准备阶段
低碳相关的内控调查得分0.92,可进行内控测试,控制测试得分0.57,综合风险低。说明内控有效,控制风险低,导致重大错报风险减小,错报风险越小,可接受的检查风险水平增大,审计程序可以适当减少,降低审计成本。
(二)审计实施阶段
1.碳资金利用分析软件运用饼状图的形式呈现总的低碳资金在企业使用的不同方向所占比例,包括节能设备采购(45%),节能技术改造(30%),节能新产品推广(15%),节能减排管理的能力建设(10%)。运用条形图的形式呈现企业开展各项目的碳资金分配,包括建筑企业的一般公共建筑项目(大型38.10万元、中型29.64万元、小型16.93万元),住宅小区项目(大型47.63万元、中型37.04万元、小型21.17万元),地下工程项目(大型33.34万元、中型25.93万元、小型14.82万元)。2.碳成本效益分析根据案例的原始数据,得出经济效益指标和环境效益指标相关数据,见表1。运用二级模糊综合评价法(本案例由5个专家进行评价),其原理与应用如表3所示。3.碳社会责任分析参照具体赋值标准,对环境责任的每一项进行评分,具体见上述表2碳社会责任评价体系中的最后一项,求和得出该企业的得分为190分,再根据社会责任等级分组:优[270,300],良[220,270),合格[180,220),基本合格[150,180),不合格[0,150)得出该企业的碳社会责任处于合格水平。
(三)审计终结阶段
工作底稿的“实质性测试”阶段填制“碳排放权交易”、“碳排放成本”、“碳税”和“超额排放罚款”的相应表格,编制整个审计过程的工作底稿,最终生成标准无保留意见的审计报告。我们认为该企业出具的可持续发展报告在所有重大方面按照环境法规规定编制,公允反映了该企业2013年12月31日的碳账户状况,以及碳资金利用、碳成本效益和管理层的碳社会责任的履行情况。对于碳审计机制在该企业中的具体运用如下:碳审计的目标是通过审计监督,促进该企业低碳治理;碳审计的路径是运用碳审计软件;审计信息传递以审计报告书的形式呈现,向社会公众传达出该企业低碳治理的情况及低碳社会责任的履行情况,同时也促进企业管理层及董事会进一步修改完善低碳治理的目标。
五、结论及局限性
我国目前尚未形成以低碳经济为主的经济模式,企业和公众尚未真正理解低碳经济的内涵,多数企业对低碳经济的理解仅停留在形式上,研究设计碳审计机制,以及在技术上实现碳审计软件的支撑,对企业真正贯彻实施低碳经济起到重要的推动作用。低碳审计机制的设计对完善碳排放审计理论具有重要的边际贡献。同时有利于低碳经济的发展,而这种发展不仅直接降低企业成本、节省资源、提高效率,还会给企业带来大量的无形资产,给社会带来正外部性,增加社会福利。开发的碳审计软件以全面的系统功能服务于碳审计的各个方面,有助于碳审计有条不紊的进行和进一步的完善。国内对碳审计的研究尚不成熟,也鲜有完善的碳审计系统软件。该碳审计软件除具有通用审计软件的一般优势(如:使审计程序更加系统化、合理化;实现远程审计;实现审计底稿无纸化;具有强大的查询功能等)外,还在很大程度上方便了对企业的低碳审计,对企业自觉进行低碳治理起到了较好的促进作用。同时,碳审计软件将提高碳审计效率,节约审计成本,将为审计业务带来较大的效益。然而,碳审计软件作为专用审计软件是一次全新的尝试,不可避免有着自身的局限性,还有待在实践中进一步完善。
作者:郝玉贵 陈小敏 张楠 单位:杭州电子科技大学 杭州电子科技大学 计算机学院
一、给排水专业cad开发应用现状
在工程设计行业,cad技术的应用大大提高了设计及绘图效率。cad应用软件的开发也越来越重要。
在给排水设计领域,cad开发应用起步较晚。有些设计院从八十年代末开始尝试进行cad开发,但进展比较慢,多数是图块和小型实用程序,在深度和广度上都存在着差距。从1993年以后给排水cad开发步伐开始加快。1994年底全国给排水学会和给排水技术情报网组织召开了“计算机技术在给排水专业应用研讨会”,对给排水软件开发起了积极的促进作用。
目前在给排水cad开发方面已经取得了可喜的成绩,尤其是建筑室内给排水方面涌现出一些比较优秀的给排水cad软件,如洛阳的一家软件和北京的几家软件。这些软件都具有计算机辅助设计建筑给排水平面图、自动生成系统图、自动统计材料表;进行室外给排水管网计算、自动生成图形等功能,其中个别软件已在室外设计和泵房设计等方面有了新的进展。
现有软件都偏重于民用建筑给排水方面,而且也有待于继续完善、发展。在给排水的其它领域,由于难度大,投资回报较低,软件公司还不愿涉足,所以进展缓慢。应用cad进行给排水及水处理系统的优化设计更是少有人涉足。此外,目前还没有专业设计cad软件的标准和规范。商业化软件多数都不经过权威部门严谨的技术测试和鉴定,所以其数据库、计算方法、设计方法和生成图形的准确性还没有严格保障,这一点还可能成为工程设计质量的隐患。
现在设计部门的给排水cad应用水平也参差不齐。有的购买或自行开发了给排水专业软件,提高了设计绘图效率。有的只是在用autocad的简单命令绘图,虽提高了cad出图率,却根本谈不上利用cad提高效率。给排水专业cad应用水平还有待于进一步提高。关键词:软件开发,给排水,CAD,给排水设计软件来自
目前许多有精力的设计院及研究部门都在研究开发本单位适用的专业软件及应用程序,但由于开发经验不足,成绩不明显。本文将结合笔者的工作经验,着重论述有关给排水软件开发的原则、思路、方法及步骤,旨在抛砖引玉,促进给排水cad软件开发工作。
二、给排水软件包开发思路及原则
由于现有建筑给排水软件已经比较成熟,且仍在继续开发、升级。一般开发者在水平和起点上均与这些软件开发有一定差距,所以应该购买此类软件,而着重开发适合本单位使用的实用程序、应用软件或优化设计软件。高起点开发者则应在深度及广度上向更高层次冲击。
1.给排水cad软件开发依据及原则
(1)设计依据为有关设计规范、制图标准以及设计手册等;保证数据库、计算方法和设计方法的准确性。
(2)软件包开发设计首先要突出专业水平,把专业设计思想转化为计算机语言是专业软件包的关键所在。
(3)符合设计人员思维习惯及设计习惯,人机界面友好,操作简单,易掌握。
(4)适用性强,容易修改,容易扩充,容易发展。
(5)尽量使用效率高、功能强的计算机语言及开发工具。
(6)严格执行标准化及规范化。
(7)通过自动绘图以及建立标准图库,提高图纸复用率等途径,提高设计绘图速度,真正发挥计算机的优势,把设计人员从图板上解脱出来。
2.设计开发步骤
(1)开发适合于给排水专业应用的cad软件环境,包括autocad的优化配置及常用专业图块及绘图工具。
(2)开发一些独立的专业绘图软件,发展标准图形库,由浅到深,从易到难,逐步提高自动成图及图纸复用比例,使软件包成为覆盖面广,功能齐全的专业绘图软件包。
(3)开发给排水专业高阶段设计方案优化软件,以及设计、绘图一体化软件,逐步成为智能化、自动化程度较高的专家系统软件包。
3.开发人员配备软件开发是一项较复杂的脑力劳动,对开发人员要求也较高,专业软件开发人员大致可分为以下几个档次:
(1)初级水平:专业人员掌握一些基本计算机知识及开发工具可以进行一些专业图块制作,简单的实用程序开发。
(2)中等水平:较高专业水平加上较高计算机水平。熟悉专业设计习惯,有较丰富的设计经验的专业人员,如果掌握先进的cad开发技术,可以开发出较高水平的cad应用软件,可以提高设计效率,特别是可以大大提高绘图效率。
(3)高级水平:高深的专业水平加上先进的计算机开发技术。在专业方面应该熟练掌握专业基础知识,有丰富的工程设计经验,善于总结专业设计思路,发现规律,具有较强的系统工程及方案优化水平。在计算机方面要掌握LSP、ADS、DCL等开发工具(或其它高级开发工具)。这类人员开发专业CAD软件是最理想的。 
由于给排水专业涉及面广,而且不同行业给排水设计习惯也不尽相同,不可能有软件可以覆盖所有给排水领域,适用于所有设计院,所以目前仍然需要分行业、分类进行开发。前述的个别建筑给排水软件包及开发人员属于较高水平,其开发设计思路非常值得向给排水其它领域延伸。 ^#tZu;?l`2[yoV=Q8u€OjyE0aqn&E€|7微电子学论文yKVqB^t(€h?n1DqMGTd7J(
4.开发工具(软件方面) 
目前较常用的CAD开发工具主要有AUTOLISP语言、ADS、DCL语言以及数据库处理,也有的开发者使用BASIC、FORTRAN等高级语言与AUTOCAD的图形数据交换接口进行开发;还有用C++开发或用VB等在WINDOWS界面下开发的;此外,网络技术也越来越重要。 
开发CAD软件,需要非常熟悉AUTOCAD命令,以及其中的各参数、系统变量、图层、图块、线形等,这样才能方便灵活地在程序中执行各种命令,掌握CAD开发技巧,例如图块的属性可以带许多信息,一条LINE线的厚度可以存入管道的管径等。此外现在有些软件使用数据的后处理方式,使软件和AUTOCAD结合得更好,这些技术还需要对AUTOCAD图元数据库和数据图形交换等有更深的了解。 
论文给排水设计软件开发方法探讨来自免费论文网
AUTOLISP是在AUTOCAD内部使用的语言,用AUTOLISP编辑的程序可以定义变量,对数据进行处理和作出图形,并可能自定义函数,比较适合搞人工智能工作,特别是它的表处理功能以及递归等功能比较独特,在CAD工作中它可以独立工作,也可能与DXF图形交换文件互相配合。其不足之处是速度慢,且程序代码几乎无法保护。 
ADS是AUTOCAD11.0版以后新增加的用来开发应用的一个C语言编程环境。它运行速度快,代码保护性好,能更有效地利用内存空间以及访问设备与系统,具有更强大的开发功能。但掌握ADS要比LISP困难,要求开发人员具备C语言编程经验并熟悉ADS库中各函数用法。一般商业软件应该用ADS。 
AUTOCAD还提供了可编程对话框(PDB)工具,使用户可以结合自身专业特点,用DCL语言构造自己的对话框,从而改善界面,提高CAD软件效率。 
目前最流行、最实用的专业CAD开发工具是ADS、DCL,加上少量AUTOLISP。 
三、开发过程
1.专业绘图环境的开发 
(1)AUTOCAD的配置及改善 
A.选择AUTOCAD版本。目前最常用的是汉化AUTOCAD12.0版。但其汉字输入不太方便,应配上较先进的汉字系统,或用12.0版FORWINDOWS(中文)。 
B.对AUTOCAD系统变量进行重新优化配置及设定,主要包括系统变量及尺寸变量设置,层、线形设置等,使ACAD.DWG成为理想的样板图。 
C.对ACAD.MNU进行优化,将许多常用命令放在最容易拾取的位置或固定位置。专业菜单部分可加入ACAD.MNU,也可以独立编写。 
D.利用ACAD.PGP做简化命令(10.0版以前的版本可在ACAD.LSP中用DEFUN函数设定),编写ACAD.LSP。 
(2)专业绘图功能 
A.专业图框绘制:可由菜单点取或用屏幕幻灯菜单点取,自动生成各种图框。 
B.专业常用图块:由菜单点取生成,自动插入断线。 
C.开发实用的专业绘图工具程序:如标注标高、管径、坐标、管道立管、代号、各种管件等的程序,绘制单、双线管道的程序,生成专业设计说明、图例、专业词组的程序,以及文字、线形、线宽编辑和表格操作等实用程序。
D.开发或引进建筑图绘图程序。 
专业CAD软件包都应具有高效的绘图环境,否则一旦自动生成等功能出现故障或不能适用时,用户就只能用AUTOCAD简单命令来画图了。 
2.专业绘图软件的开发 
在专业绘图环境的基础上逐步开发一些相对独立的专业绘图软件,逐步形成功能强,覆盖面广的给排水综合软件包。 
目前已开发的较成熟的软件有:民用建筑给排水CAD软件包、室外给排水管网计算软件、给排水管道纵断面图绘图软件、给排水外部管网设计软件等。 
正在开发,初见成效的软件有泵房设计软件、平流沉淀池软件、机械加速澄清池软件、和市政管网cad软件等。
尚未深入开发,开发难度大,但预期效果好的软件包括:辐射沉淀池、旋流沉淀池、水塔、综合管沟、架空管网、过滤间、软水站、污泥脱水间设计等项目。
给排水软件开发的另一条思路是发展给排水设备和构筑物的标准cad图形库,从而提高图纸复用率,这比编制自动成图的软件要容易得多。标准cad图形库还可以由权威部门编制后,作为标准图出版。此外,标准图还可作为软件包的一部分,即软件包可以交互式自动生成图形,也可以通过自动计算直接调用相应的标准图。
3.高阶段设计及方案优化设计软件的开发在
利用cad进行高阶段设计及方案优化设计方面,除在民用建筑给排水领域有个别公司研究外,在其它给排水领域中的研究国内还未见到报道。方案优化软件的难点在于系统化的设计思路和设计经验向计算机程序的转化,其中给排水及循环水流程的方案优化模型的建立本身就是给排水设计的一个难题。目前这方面进展缓慢的原因首先是它对开发人员要求高,这一领域的理想人选稀少;其次是给排水专业行业多,领域广,需开发的软件工作量巨大,具备这方面精力的研究部门或公司还很少。
总之,给排水专业绘图软件包开发是一项艰苦的工作,需要创造一个规模生产,流水线开发的环境,投入一大批高层次的人才。各部门的研究人员既要知难而进,又要避免重复劳动,在各行业、各领域开发出各有特色的实用专业软件。
论文关键字:计算科学计算学科计算机语言计算机软件网络和病毒
论文摘要:计算科学主要讲述了一种科学的思想方法,计算科学的基本概念、基本知识它的发展主线、学科分支、还有计算科学的特点、发展规律和趋势。
引言:随着存储程序式通用电子计算机在上世纪40年代的诞生,和计算科学的快速发展以及取得的大量成果。计算科学这一学科也也应运而生。《计算科学导论》正如此书的名字,此书很好的诠释了计算科学这一学科,并且指导了我们应如何去学好这一学科。使得我们收获颇多。并且让我深深的反思了我的大学生活。正如赵老师书中所讲的:“计算科学是年轻人的科学,一旦你选择了计算科学作为你为之奋斗的专业类领域,就等于你选择了一条布满荆棘的道路。一个有志于从事计算科学研究与开发的学生,必须在大学几年的学习中,打下坚实的基础,才有可能在将来学科的高速发展中,或在计算机产品的开发和快速更新换代中有所作为。
<一>什么是计算科学和它的来历
计算科学主要是对描述和变换信息的算法过程,包括其理论、分析、设计、效率分析、实现和应用的系统研究。全部计算科学的基本问题是,什么能(有效的)自动运行,什么不能(有效的)自动运行。本科学来源于对数理逻辑、计算模型、算法理论、自动计算机器的研究,形成于20世纪30年代的后期。
随着存储程序式通用电子计算机在上世纪40年代的诞生,人类使用自动计算装置代替人的人工计算和手工劳动的梦想成为现实。计算科学的快速发展以也取得大量成果,计算科学这一学科也也应运而生。
<二>计算科学的发展
a、首先先介绍图灵机
图灵机的发明打开了现代计算机的大门和发展之路。图灵机通过一条两端可无限延长的袋子,一个读写头和一组控制读写头的(控制器)组成它有一个状态集和符号集,而此符号集一般只使用0和1两个符号。而就是这个简洁的结构和运行原理隐含了存储程序的原始思想,深刻的揭示了现代通用电子数字计算机的核心内容。现在通用的计算机是电子数字计算机,而电子数字计算机的发展是建立在图灵机的基础之上。他的二进制思想使计算机的制作的简化成只需两个稳定态的元器件。这在今后的计算机制作上无论是二极管或集成电路上都显示了明显的优越性。
b、计算机带动的计算学科
1946年随着现代意义上的电子数字计算机ENIAC的诞生。掀起了社会快速发展的崭新一页。计算机工作和运行就摆在了人们的面前。
1、计算机语言
我们要用计算机求解一个问题,必须事先编好程序。因此就出现了最早的机器指令和汇编语言。20世纪50年代后,计算机的发展步入了实用化的阶段。然而,在最初的应用中,人们普遍感到使用机器指令编制程序不仅效率低下,而且十分别扭,也不利于交流和软件维护,复杂程序查找错误尤其困难,因此,软件开发急需一种高级的类似于自然语言那样的程序设计语言。1952年,第一个程序设计语言ShortCode出现。两年后,Fortran问世。作为一种面向科学计算的高级程序设计语言,Fortran的最大功绩在于牢固地树立了高级语言的地位,并使之成为世界通用的程序设计语言。Algol60的诞生是计算机语言的研究成为一门科学的标志。该语言的文本中提出了一整套的新概念,如变量的类型说明和作用域规则、过程的递归性及参数传递机制等。而且,它是第一个用严格的语法规则——巴科斯范式(BNF)定义语言文法的高级语言。还有用于支持结构化程序设计的PASCAL语言,适合于军队各方面应用的大型通用程序设计语言ADA,支持并发程序设计的MODULA-2,支持逻辑程序设计的PROLOG语言,支持人工智能程序设计的LISP语言,支持面积对象程序变换的SMALLTALK、C等。
2、计算机系统和软件开发方法
现代意义上的计算机绝不是一个简单的计算机了而也包括了软件(系统软件、应用软件)。各种各样的软件使得计算机的用途大大增强。而软件开发也成为了一个重要课题和发展方向。软件开发的理论基础即是计算模型。随着计算机网络、分布式处理和多媒体的发展。在各种高级程序设计语言中增加并发机构以支持分布式程序设计,在语言中通过扩展绘图子程序以支持计算机图形学程序设计在程序设计语言中已非常的流行。之后,在模数/数模转换等接口技术和数据库技术的支持下,通过扩展高级语言的程序库又实现了多媒体程序设计的构想。进入20世纪90年代之后,并行计算机和分布式大规模异质计算机网络的发展又将并行程序设计语言、并行编译程序、并行操作系统、并行与分布式数据库系统等试行软件的开发的关键技术依然与高级语言和计算模型密切相关,如各种并行、并发程序设计语言,进程代数,PETRI网等,它们正是软件开发方法和技术的研究中支持不同阶段软件开发的程序设计语言和支持这些软件开发方法和技术的理论基础----计算模型
3、计算机图形学
在计算机的硬件的迅速发展中。随着它的存储容量的增大,也掀起了计算机的巨大改革。计算机图形学、图像处理技术的发展,促使图形化界面的出现。计算机图形学是使用计算机辅助产生图形并对图形进行处理的科学。并由此推动了计算机辅助设计(CAD)、计算机辅助教学(CAI)、计算机辅助信息处理、计算机辅助测试(CAT)等方向的发展。图形化界面的出现,彻底改变了在一个黑色的DOS窗口前敲代码输入控制命令的时代。同时也成就了一个伟大的公司Microsoft。
4、计算机网络
随着用户迫切需要实现不同计算机上的软硬件和信息资源共享。网络就在我们的需求中诞生了。网络的发展和信息资源的交换使每台计算都变成了网络计算机。这也促进计算机的发展和广泛应用。
<三>计算机学科的主线及发展方向
围绕着学科基本问题而展开的大量具体研究,形成学科发展的主流方向与学科发展主线和学科自身的知识组织结构。计算学科内容按照基础理论、基本开发技术、应用以及他们与硬件设备联系的紧密程度分成三个层面:
1、计算科学应用层
它包括人工智能应用与系统,信息、管理与决策系统,移动计算,计划可视化,科学计算机等计算机应用的各个方向。
2、计算科学的专业基础层
它是为应用层提供技术和环境的一个层面,包括软件开发方法学,计算机网络与通信技术,程序设计科学,计算机体系结构、电子计算机系统基础。
3、计算科学的基础层
它包括计算科学的数学理论,高等逻辑等内容。其中计算的数学理论涵盖可计算性与计算复杂性理论形式语言与计算机理论等。
<四>计算机的网络的发展及网络安全
(1)计算机网络与病毒
一个现代计算机被定义为包含存储器、处理器、功能部件、互联网络、汇编程序、编译程序、操作系统、外部设备、通信通道等内容的系统。
通过上面定义,我们发现互联网络也被加入到计算机当中。说明了网络的重要以及普及性。21世纪是信息时代。信息已成为一种重要的战略资。信息科学成为最活跃的领域之一,信息技术改变着人们的生活方式。现在互联网络已经广泛应用于科研、教育、企业生产、与经营管理、信息服务等各个方面。全世界的互联网Internet正在爆炸性的扩大,已经成为覆盖全球的信息基础设施之一。
因为互联网的快速发展与应用,我们各行各业都在使用计算机。信息安全也显得格外重要。而随着计算机网络的发展,计算机网络系统的安全受到严重的挑战,来自计算机病毒和黑客的攻击及其他方面的威胁也越来越大。其中计算机病毒更是很难根治的主要威胁之一。计算机病毒给我们带来的负面影响和损失是刻骨铭心的,譬如1999年爆发的CIH病毒以及2003年元月的蠕虫王病毒等都给广大用户带来巨大的损失。
我们想更好的让计算机为我们服务,我们就必须很好的利用它,利用网络。同时我们也应该建立起自己的防护措施,以抵抗外来信息的侵入,保护我们的信息不受攻击和破坏。
(2)计算机病毒及它的防范措施:
计算机病毒是一组通过复制自身来感染其它软件的程序。当程序运行时,嵌入的病毒也随之运行并感染其它程序。一些病毒不带有恶意攻击性编码,但更多的病毒携带毒码,一旦被事先设定好的环境激发,即可感染和破坏。
<一>、病毒的入侵方式
1.无线电方式。主要是通过无线电把病毒码发射到对方电子系统中。此方式是计算机病毒注入的最佳方式,同时技术难度也最大。可能的途径有:①直接向对方电子系统的无线电接收器或设备发射,使接收器对其进行处理并把病毒传染到目标机上。②冒充合法无线传输数据。根据得到的或使用标准的无线电传输协议和数据格式,发射病毒码,使之能够混在合法传输信号中,进入接收器,进而进人信息网络。③寻找对方信息系统保护最差的地方进行病毒注放。通过对方未保护的数据链路,将病毒传染到被保护的链路或目标中。
2.“固化”式方法。即把病毒事先存放在硬件(如芯片)和软件中,然后把此硬件和软件直接或间接交付给对方,使病毒直接传染给对方电子系统,在需要时将其激活,达到攻击目的。这种攻击方法十分隐蔽,即使芯片或组件被彻底检查,也很难保证其没有其他特殊功能。目前,我国很多计算机组件依赖进口,困此,很容易受到芯片的攻击。
3.后门攻击方式。后门,是计算机安全系统中的一个小洞,由软件设计师或维护人发明,允许知道其存在的人绕过正常安全防护措施进入系统。攻击后门的形式有许多种,如控制电磁脉冲可将病毒注入目标系统。计算机入侵者就常通过后门进行攻击,如目前普遍使用的WINDOWS98,就存在这样的后门。
4.数据控制链侵入方式。随着因特网技术的广泛应用,使计算机病毒通过计算机系统的数据控制链侵入成为可能。使用远程修改技术,可以很容易地改变数据控制链的正常路径。
<二>病毒攻击的防范的对策
1.建立有效的计算机病毒防护体系。有效的计算机病毒防护体系应包括多个防护层。一是访问控制层;二是病毒检测层;三是病毒遏制层;四是病毒清除层;五是系统恢复层;六是应急计划层。上述六层计算机防护体系,须有有效的硬件和软件技术的支持,如安全设计及规范操作。
2.严把收硬件安全关。国家的机密信息系统所用设备和系列产品,应建立自己的生产企业,实现计算机的国产化、系列化;对引进的计算机系统要在进行安全性检查后才能启用,以预防和限制计算机病毒伺机入侵。
3.防止电磁辐射和电磁泄露。采取电磁屏蔽的方法,阻断电磁波辐射,这样,不仅可以达到防止计算机信息泄露的目的,而且可以防止“电磁辐射式”病毒的攻击。
4.加强计算机应急反应分队建设。应成立自动化系统安全支援分队,以解决计算机防御性的有关问题。
很多公司都有因为电脑被入侵而遭受严重经济损失的惨痛经历,不少普通用户也未能避免电脑被破坏的厄运,造成如此大损失的并不一定都是技术高超的入侵者所为,小小的字符串带给我们的损失已经太多。因此,如果你是数据库程序开发人员、如果你是系统级应用程序开发人员、如果你是高级计算机用户、如果你是论坛管理人员......请密切注意有关字符漏洞以及其他各类漏洞的最新消息及其补丁,及时在你的程序中写入防范最新字符漏洞攻击的安全检查代码并为你的系统安装最新的补丁会让你远离字符带来的危险。经常杀毒,注意外来设备在计算机上的使用和计算机对外网的链接。也可以大大有效的避免计算机被攻击。
<五>总结
在学了计算科学导论之后,让我更深入的了解了我将来要从事的学科。计算科学导论指导着我们该怎么学习计算机。让我更清楚的知道我们信息安全专业的方向。正如计算科学这座大楼一样,在不断的成长。信息安全也必将随着网络的进一步发展而更多的被人们重视。总之学习了这门课之后让我受益匪浅,也知道自己应该好好努力,争取在自己的专业领域上有所成就。
摘要:学生档案管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生档案管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,还将产生大量的文件和数据丢失,这对于查找、更新和维护都带来了不少的困难。本文就如何进行学籍管理系统软件的开发和运用做了探讨。
关键词:档案管理计算机应用探讨
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生档案信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套管理软件成为很有必要的事情,在下面将以我自己所掌握的情况简单介绍一下开发学生档案管理系统开发过程和所涉及到的问题及解决方法。
一、系统功能
现在我国的中小学校中档案的管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。
我作为一个计算机应用的本科生,希望可以在这方面有所贡献。改革的总设计师邓小平同志说过“科学技术是第一生产力”,我希望能用我所学编制出一个实用的程序来帮助中小学进行更有效的学籍管理。归纳起来,功能大约有以下几点:1.学生信息的录入。不同地域的学生通过各种途径不择地点、不择时间地自主上传自己的基本档案(不合要求的档案可以由管理员及时清除)。
2、学生信息的查询。学生的档案信息发在网上可以让全班、全校的人来查询。使用者可以通过多种方式(学期,年级,班级,姓名,学号等)来查询,查看自己需要的学生信息。
3、学生信息的修改。通过网络在任何地方,档案管理人员均可随时对转入、转出的学生进行添加和删除,实现了信息的动态管理。
好处为:
1、可以存储历届的学生档案,安全、高效;
2、只需一到二名档案录入员即可操作系统,节省大量人力;
3、可以迅速查到所需信息。
二、ASP的简单认识
ASP的全称是:ActiveServerPages,是在服务器端脚本编译环境,使用它可以创建和运行动态、交互的Web服务器应用程序。ASP可以与HTML页、脚本命令和ActiveX组件组合创建交互的Web页和基于Web的功能强大的应用程序。ASP应用程序很容易开发和修改。所以笔者推荐广大教育工作者在教学工作繁忙的情况,使用ASP来制作适应教学的交互性强的动态网页是非常适合的。
以下罗列了ActiveServerPages所独具的一些特点:
1、使用VBScript,JScript等简单易用的脚本语言,结合HTML代码,即可快速地完成网站的应用程序的编写。
2、无须编译,容易编写,调试方便可在服务器端直接执行。
3、使用普通的文本编辑器,如Windows的记事本,或在FRONTPAGE等流行软件中都可进行编辑设计。
4、与浏览器无关(BrowserIndependence)。用户端只要使用可执行HTML码的浏览器,即可浏览ASP网页的内容。ASP所使用的脚本语言(VBScript、Jscript)均在WEB服务器端执行,用户端的浏览器不要求能够执行这些脚本语言。
5、ASP能与任何ActiveXscripting语言相容。除了可使用VBScript或JScript语言来设计外,还通过plug-in的方式,使用由第三方所提供的其他脚本语言,如:REXX、Perl等。脚本引擎是处理脚本程序的COM(ComponentObjectModel)物件。
6、ActiveServerPages的源程序,不会被传到客户浏览器,因而可以避免所写的源程序被他人直接剽窃,提高了程序的安全性。
7.可使用服务器端的脚本来控制产生客户端的脚本。
8、ActiveXServerComponents(ActiveX服务器元件)具有无限可扩充性。可以使用VisualBasic、Java、VisualC++等编程语言来编写你所需要的ActiveXServerComponent。
由此可见,将ASP技术用于教育任务繁重的教师建设网站是最适合的。
由于笔者本文主题是讲解用ASP技术实现档案管理的自动化管理的过程,其目的在于由一件具体事例的完成过程来抛砖引玉,使更多的教师懂得怎样在学校网站应用现代网络技术实现网络自动化管理。所以对于网络的一些基础知识不作过多铺垫,下面仅列出本文所需基础知识:
1、懂得基本的HTML语言。
2、懂得基本的VBScript或JScript语言。
3、有数据库操作基础,最少会一种数据库(如最简单的MicrosoftAccess)
三、网上学生学籍管理实现的目标
主要是对学生信息(如学号、姓名、性别、家庭住址等)进行管理。本模块又分为五个子模块:
(1)录入学生信息
(2)查询学生信息
(3)修改/删除学生信息
其中,学生信息查询不需登录即可使用,其他模块则需要先登录后才能使用。
四、网上学籍自动化管理实现的几个ASP文件简介
在这里我只是简单的提出如何用ASP技术实现以上目标。实现网上学籍的自动化管理和BBS、在线论坛等的建立机制有许多相似的地方,但在数据库的建立或管理方法方面却有许多不同之处。以下笔者以范例的方式来分析利用ASP技术来实现的方法。整个自动化管理机制大致可由如下几个ASP文件和一个数据库文件来组成,它们的大致功能如下。
(1)进入本软件首页后,显示软件总体功能,提供多种对学生档案的管理方式,以及用户的注册。
(2)登陆页面用于登陆和用户的注册。
(3)注册后将学生的基本信息写入数据库。
(4)可查询浏览学生的基本档案信息。
(5)查询信息后可以对数据进行修改、删除。
五、数据库的搭建
使用Access2000实现关系型数据库
学生基本档案:
存储了学生的档案包括:学号、姓名、年龄,性别,族别,出生年月,联系电话,家庭住址,其中学号为该表的主关键字。
学生入学状况:
存储了学生的入学状况包括:学号,年级,班级,入学时间。它的学号必须在学生基本档案中存在。
用户密码登记:
存储了系统用户和普通用户的信息,包括:姓名,口令,登记日期
学生考试计划登记表:
存储了每次考试的基本信息,包括:考试编号,科目,年级,班级,考试日期,考试类别等。
学生考试成绩:
存储了学生各科考试的成绩,包括:学号,考试编号,考试类别,科目,成绩。
在以上表中,学生基本档案和学生入学状况以及学生考试成绩中的学号是相互关联的,学生基本档案中该学号存在,那么在学生入学状况和学生考试成绩中才能存在该学号。
而学生考试计划登记表和学生考试成绩中的考试编号是相互关联的。只有用户做了考试计划以后,才能对学生进行考试信息登记录入,才能输入成绩入库。
摘要:网络处理器的高速处理和灵活的可编程性,使它成为当今网络中数据处理的有效解决方案。本文深入探讨网络处理器的软件开发模型。首先,介绍IntelIXP2400网络处理器硬件结构和软件开发平台,然后给出基于网络处理器的路由转发系统的设计实例,阐述网络处理器开发的关键环节,最后提出网络处理器软件开发所面临的主要问题和挑战。
关键词:网络处理器软件开发模型微引擎微模块核心组件
引言
随着当今网络规模和性能迅速增长,Internet主干网络流量的指数性增长及新业务接连的出现,这就要求网络设备具有线速和智能的处理能力。网络处理器NP(NetworkProcessor)便是一种新兴、有效的统一解决方案。它适用于各层网络处理,具有ASIC高速处理性能和可编程特性,既能保证系统灵活性,又能完成线速处理数据包所要求的高性能硬件功能。目前,网络处理器已经涌现出了一些成功的应用范例。这些应用主要包括:基于网络处理器的路由交换设备、智能安全设备和入侵检测设备等。比如,北京联想使用IBM的PowerNP构成了电信级的防火墙设备。与此同时,围绕着网络处理器应用展开的相关研究也得到了飞速发展,一些企业和科研机构也给予了足够重视。例如,Intel专门投资支持全球100所大学进行网络处理器及其相关应用的研究。
由于网络处理器特殊的体系结构,它的软件编程模型与传统网络应用/嵌入式应用开发有较大不同,更为复杂。本文将以IntelIXP2400网络处理器为例,对网络处理器软件开发模型进行较为详细地探讨。
1网络处理器硬件架构
在一般程序设计中,可以不考虑操作系统和编译程序、线程调度的细节、寄存器的数量和容量,而在网络处理器的程序设计中,忽略这些因素就不能编写出优化的程序。在对网络处理器,尤其是微引擎编程之前,需要仔细了解网络处理器的系统结构和硬件平台。下面以Intel的IXP2400为例来说明。
IXP2400网络处理器是Intel在2002年推出的第二代互联网交换架构(IXA)网络处理器。其中,IXP2400是面向中高端应用的网络处理器,可用于实现OC-48的网络路由交换设备。
Intel的IXP2400网络处理器结构允分体现了SoC(SystemonChip)的思想。如图1所示,它的内部主要包括8个完全可编程的4线程微引擎(Mev2)和1个XScale核。此外,还有用于连接外部MAC设备的MSF单元、连接各种存储器和总线的接口单元等。这些单元通过内部的高速数据总线和控制总线彼些协作。
XScale核(core)是ARM系列处理器的一种,它在IXP2400中起控制和管理作用。具体包括:对系统初始化;提供系统的时钟;建立并管理路由表;提供一个对应于IXP2400各寄存器、存储器和外部存储器的地址映射表等。XScale核在系统启动时,从BootROM开始执行引导程序,对整个IXP2400系统进行初始化。
IXP2400中的每一个微引擎其它就是一个32位RISC处理器,可以由4个并行硬件线程共享。数据包的接收、处理和发送等任务,均由微引擎中的各线程并行执行微引擎指令存储区中的微代码程序来完成。网络处理器数据的高速转发正是因为充分利用了硬件的并行性,来弥补线速转发中的内存访问的延迟。
IXP2400嵌在开发板的中心,周围通过数据线连接着各种设备,如SRAM,SDRAM等。SDRMA主要用来存放需要处理和转发的数据包等,也作为XScale核的内存;SRAM主要存放对数据包包头进行处理所需的重要信息和数据包的队列描述等内容。通过IXP2400的数据单元是一个64字节的MAC包(MPKT),在每收到一个包的时候,MAC将一个数据分成若干个MPKT,MPKT就是网络处理器处理数据的单位。
综上所述,IXP2400拥有网络处理的一般特点,从系统角度看,IXP2400属于一个并行式的多算是器共享总线的计算机系统。对于网络处理器的程序设计和一般计算机的程序设计有很大不同。
2网络处理器软件开发模型
网络设备性能和可编程能力最终由运行在网络处理器平台上的软件决定,其中,选择何种编程模式是关键。评价网络处理器编程模式有两个基本准则:一个是编程模式所能涉及的层,即哪些功能能够编程以及编程能达到的层;另一个重要方面就是处理器衬淫的编程模型。由于网络处理器平台服务于软件功能需要,所以编程方法的关键是在不牺牲设备性能的前提下,使用成熟技术和现有软件模式,保证产品的可靠性,加快开发速度。
基于运行在核心处理器和协处理器的不同硬件之上,网络处理器可分成数据平面与控制平台。
数据平面主要运行在微引擎处理之上,是实现输入端口和输出端口间高速转发数据包的处理功能,具有线速执行特点,并充分利用数据包的无关性,采取并行处理方式。控制平面一般运行在网络处理器核上,处理路由表更新、管理数据平面任务与状态、完成高层的QoS控制等。这些操作的性能要求低于数据层面,因此通常采用高性能通用处理器硬件平台。为了有效支持网络处理功能,控制平面与数据平面之间存在复杂的信息交互与依赖关系。
IXP2400的软件开发也分为内核程序和微代码两部分。XScale内核的开发通常可以使用基于ARM平台嵌入式操作系统开发工具链,如WindRiver公司的Tornado或基于GNU的Linux工具链等;另一部分是对微引擎的编程,这部分使用Intel公司提供的DeveloperWorkbench开发环境,主要使用微代码来进行编程。DeveloperWorkbench提供了完善的编译、链接、仿真和调试功能。为了方便开发人员开发,消除平面之间通信等一些细节,Intel提供了它的网络处理器开发模型,称为IXA可移植框架(portabilityframework)如图2所示。
IntelIXA可移植框架中最重要的组成部分就是在微引擎上和XScale核上开发的代码模型。基于不同硬件上开发的代码模块分别为微模块(microblock)和核心组件(corecomponent)。每一个模块都代表了一个进行包处理的代码单元。这里实际上引入了构件的思想,开发人员将各种模块以一定的顺序组织在一起,组成一个特定的应用。下面分别对框架中的各个层次进行讨论。
(1)微模块
数据平面的微引擎在逻辑上分成一个或多个微模块(microblock)。每一个微模块都是一个宏或者一个微引擎或由Intel提供的一些底层库写成的函数。微模块之间彼此独立,这些就提高了代码的可重用性,同时也简化了微引擎手代码的编写。微引擎与IntelXScale核共享一部分内存,大部分网络包的处理都通过微引擎来进行,一些例外的包将传递给IntelXScale核心组件来处理。微模块从功能上一般包括与一些高层协议相关包的处理微模块和与硬件紧密相关的微模块。前者包括IPv4转发、网桥、网络地址转换(NAT)等;后者包括包的接收和发送模块及分组队列管理模块等。
(2)核心组件
核心组件(CoreComponent)运行在XScale核上,实现了相关微模块的配置、管理和例外处理等工作。一个核心组件可能管理着多于一个微模块。具体来讲,核心组件主要完成以下一些功能:配置微模块(通过引入变量的静态配置和控制模块的动态配置);初始化维护一些可能被其它应用程序修改的数据结构;提供了一个例外处理和控制消息处理机制来处理微模块发送过来的包和消息。
(3)微引擎数据平面优化库
微引擎数据平面优化库(optimizedmicroenginedataplanelibrary)包括一些底层的微引擎宏指令和用微引擎的特殊C语言写的函数库,用来编写微模块和一些微引擎的代码。这些为是经过Intel优化的,非常高效,代码的占用小,同时也是非常底层的。库主要包含三信方面:对处理器硬件单元的操作,比如对微引擎内部的本地内存(localmemory)、临界区(criticalsections)操作等;协议头的解析函数,如IPv4、IPv6协议等;哈希单元的查找,CRC等。
(4)微模块基本设施库
微模块基本设施库(microblocksinfrastructurelibrary)提供了访问暂存包描述符的API,DispatchLoop的实现是通过它来完成的。一个DispatchLoop将运行在一个微引擎内部线程之间的多个微模块组成一个microblock组。关键的地方是,DispatchLoop提供了一种多个微模块之间高效共享包的描述符、包头信息等重要数据结构的方式,实现了多个微模块间的数据传递。DispatchLoop也提供了向其它DispatchLoop也提供了向其它DispatchLoop和XScale核之间发送和接收包的接口。
(5)资源管理库
资源管理库(resourcemanagementlibrary)是XScale核的一个软件组件,它向内核提供了微引擎的API,比如硬件的资源管理接口,大大简化了硬件初始化的任务,配置和资源的共享;微模块与核心组件之间的通信API,开发者屏蔽了微引擎与XScale核之间通道的一些细节。
(6)核心组件基本设施库
核心组件基本设施库(corecomponentsinfrastructurelibrary)为XScale核心组件设计和构造提供了一些底层的API,同时也提供了组件之间传递包和消息的机制。其于核心组件基本设施库的一个核心组件一般都要包含以下函数:1个初始化函数;1个结束函数;1个或多个包的处理名句柄;1个或多个消息处理句柄。
(7)操作系统服务层
操作系统服务层(operatingsystemserviceslayer)对运行在XScale核上的代码提供了一个抽象层。开发人员编写的XScale核心运行代码包括资源管理库。应该利用这一层,而不是直接去利用操作系统提供的API,从而提高系统的可移植性。OSSL主要提供了以下几类接口:线程管理、同步原语、互斥操作、定时器、内存管理和消息日志。
(8)控制平面平台开发工具包
控制平面的PDK(PlatformDevelopmentKit)为XScale核心组件与运行控制平面的软件之间提供了接口。它所提供的API编程接口现在是符合国际网络处理器论坛(NPF)提出的标准的,各种控制平面的网络协议栈和用它可以很方便的集成进来。
3网络处理器应用实例
利用IntelIXA可移植框架来实现IntelIXP2400的一个简单路由转发系统。数据分组在IXP2400中的流动过程如下:以太网MAC器件接收数据,放入MSD单元的接收缓存当中,向微引擎发出信号,表示数据已经收到,微引擎将接收缓存中数据传输到SDRAM,微引擎通过对MSF总线单元的访问命令将前几个字节(分组头)传送到传输寄存器中,微引擎对分组的以太网头进行修改,而将数据分组写入发送队列,然后通知MSF单元将数据分组传送给适当的MAC器件。图3所示为典型路由器应用系统中的数据流。
在图3所示的处理转发结构中,每一个模块代表一个微模块。发送和接收模块和MSF硬件紧密相关。处理器芯片的MSF总线接口单元中有一对BUFFER,即输入BUFFER和输出BUFFER,分别用作接收和发送的缓冲区。开发者通过用这些相应的硬件寄存器,硬件设备可自动进行相应的转发处理。
接收线程将自己的信息写入MSF的FREELIST单元控制豁口,其中包括了线程号、微引擎号与存放接收控制字(RSW)的寄存器地址,等待MSF的信号将数据从RBUFFER中移入SDRAM。发送微模块要选择并等待一个有效的TBUFFER,再将数据从SDRAM中移入TBUFFER,并写入相应的控制寄存器,标识分组要发送的端口,分组的发送由TSM硬件自动完成。
在中间处理包的各个模块中,代码首先从便存储器(SCRATCHPADMEMORY)中将接收线程放入的包信息取出,进行以太网头的有效性验证,根据IP头的信息查找路由表,将以太网头更新。其中每一个处理都是由一个微模块来实现的。各个模块合在一起构成了一个DispatchLoop,各个模块在便存储器中共享包描述符信息,其中dlNextBlock全局变量为下一个处理微模块的标识。DispatchLoop的部分代码如下(简略)。
IntelIXP2400开发平台中,微代码的源文件是*.uc格式的,经过预处理生成*.ucp的中间文件,进而进行汇编生成*.list汇编文件。微引擎程序的连接器将汇编程序的多个输出文件转变成一个可下载的微程序映像(image)。缺省情况下,连接器生成的微代码映像文件的扩展名为uof。连接器也可以生成C结构的程序格式,这样的输出文件与内核程序一起进行编译和连接。
Intel提供的资源管理库中,对微引擎部分的函数提供了接口,可以将uof文件当作Flash文件系统的一个普通文件进行处理。在内核代码初始化时,将uof文件读入内存,然后加载。但是如果要作成最终产品时,Intel推荐采用.c格式的文件,并直接链入到所开发的内核工程中。
4网络处理器软件开发的关键环节
基于网络处理器开发工作的重点是对数据平面代码的开发,开发者要在以下三个方面进行设计和代码优化:多线程的任务分配和调度策略;数据结构的定义和存储分配;分组队列的管理和调度。
(1)多线程的分配和调度策略
对微引擎和线程分配任务是否合理,是影响系统性能的一个很重要因素。开发人员需要根据具体的网络应用和硬件平台的特点来科学合理的分配任务。比如,对一个一般的网络应用来说,可以分为包的接收、处理、发送几个阶段。对于包的处理阶段来说,又可以分成多个阶段来执行,每一个阶段可以由一个微模块来执行。这多个微模块是如何在每个微引擎中分配,就是一个任务分配的问题。如果分配才能使负载尽可能的达到平衡,处理器的资源得到最大效率的利用,这些都要进行研究、分析和实验。
网络处理器微引擎基于硬件的静态多线程调度基础上,即在一个微引擎内部中的线程调度是由硬件来实现的,通常采用轮询的策略。不同策引擎的线程间存在多种通信方法,线程之间在数据包处理过程中的同步方式也有多种。因此,开发者根据具体不同应用功能特点,不同数据处理相关功能需求,对围绕处理器的多个微引擎的并行调度算法进行选择,以尽可能达到系统负载的平衡。
IntelIXP2400提出了三种网络处理器数据平面的多线程编程模型:流水模型(contextpipeline)、并行处理模型的顺序模式(orderedmode)和乱序的模式(unorderedmode)。在任务的分配方面,Intel正在考虑对现有的微引擎编程语言进行扩展,提出了新的微引擎自动分配任务的编程模型,以加快网络处理器软件开发的效率。
(2)数据结构的这义和存储分配
影响网络处理器线速转发的一个最关键问题是存储器的访问延迟。网络处理器中往往有多层不同的存储体(在IXP2400中,就存在寄存器、LocalMemory、ScratchpadMemory、SRAM、SDRAM等不同级别的存储器,它们的速度差别很大),不同层次的内存用于满足不同数据结构的需要。另一方面,定义在网络处理器中的数据结构是非常精密的,比如,一个包头的描述符(packetdescriptormetadata)。但同时也是非常庞大和复杂,比如包体的信息、路由表和队列管理的数据结构。举例来说,开发者在微引擎中定义多个线程共享的变量时,应最先考虑使用全局寄存器,但有时全局寄存器的容量有限,可以考虑LocalMemory。多微引擎共享的变量存放在SRAM中,而DispatchLoop变量存放在便(Scartchpad)中。不同数据结构定义和分配的不同策略都会对系统性能产生较大的影响。
(3)分组调度
网络处理器是典型的RISC内核的并行实时处理结构,同时存在着大量共享资源,比如内存、总线、SHAC等一些特殊硬件单元,这就必然需要系统对这些共享资源进行调度和仲裁。未来计算机网络的趋势是能够提供多种不同服务,支持多种不同应用需求。提高网络集成服务支持能力的一个很重要问题就是分组调度算法问题,分组队列的管理还是实现QoS的基础。
分组调度及处理算法的核心是链路层调度器的算法设计。在一般分组处理的存储-转发过程中,设计调度器必然要对分组处理时间进行预测,但处理器在调度器中要精确的获取并更新这些虚拟时间是十分困难的。这就要根据具体的应用,通过研究数据包的长度、数据类型、处理方式与处理时间之间的关系,提出合理的数据包处理时间预测方案,选择适当的分组调度算法,达到比较好的系统性能。
5网络处理器面临的挑战
当今的网络处理咕嘟仍面临着许多挑战,例如采用什么技术扩展,如何简化编程模式等问题都需要进一步研究。数据平面上运行的软件开发通常仅提供微代码汇编和低通读C语言技术,这大大限制了网络处理器技术的发展和应用。因为缺乏高效的软件开发支持,软件问题已经成为网络处理器应用的一大障碍,必须研究面向网络处理器系统的高效系统软件平台。
网络处理器微引擎指令的提供非常有限,仅有不足40条,这远远不能满足开发人员的需求,仅用它去构造一些复杂的网络处理任务不太现实。在Intel提出的网络处理器开发框架中,给出了一些非常底层的数据平面的函数库,还给开发者提供了一些面向特定应用的更优化的接口和宏指令集。
目前,开发环境主要由各NP生产厂商提供,微引擎上运行的数据平面只提供微代码汇编和C语言编译器支持,有代表性的产品是IntelWorkbench。控制平面上的处理器内核,普遍采用Linux或VxWorks作为操作系统。两个平面的开发相对独立,没有一种统一的开发手段,这给开发者带来了很大的不便。目前,也没有特别针对网络处理特点的操作系统,常见的RTOS由于并不是特别针对网络处理器的操作系统,因此并不能充分发挥网络处理器的潜能。
为了满足下一代Internet服务需求,网络处理器除了要满足局域网和广域网对带宽的需求增长外,还要能够以线速对数据、语音以及视频信号进行排序和处理。网络处理器官方论坛(NetworkProcessingForum)的成立,加快了网络处理器接口标准的制定和软件发展的步伐。
结语
网络处理器通过十分灵活的体系结构和强大的处理能力,将可编程能力和ASIC的处理能力有机的结合在一起,它的出现是网络设备开发的一次革命,它的发展必须对传统ASIC和MPU造成前所未有的冲击。在今后几年里,网络处理器将有着非常巨大的发展空间。本文以IntelIXP2400网络处理器为例,全面讨论了网络处理器软件开发技术,并提出网络处理器软件开发中的关键环节及面临的主要问题和挑战。