时间:2022-06-08 08:46:02
序论:速发表网结合其深厚的文秘经验,特别为您筛选了1篇软件开发毕业论文范文。如果您需要更多原创资料,欢迎随时与我们的客服老师联系,希望您能从中汲取灵感和知识!
摘要:
进行冶金采矿类专业计算机实验室管理系统的优化设计,确保实验室管理的高效运转。系统采用LabWindows/CVI进行实验室信息管理系统开发,采用嵌入式Linux进行内核编译,系统主要包括了信息处理模块、网络通信模块和人机交互模块。在于x86的标准PC环境实现计算机实验室管理系统的软件开发和实现。研究表明,该系统对计算机实验室的管理信息的处理效率较高,进程跟踪实时性较好,稳定可靠。
关键词:
冶金采矿;计算机;实验室管理;软件开发
在物联网和计算机网络信息平台下,设计冶金采矿类专业计算机实验室管理系统,提高计算机实验室的工作效率。大型计算机实验室的信息管理系统是构建在物联网环境下的,实现对计算机硬件设备的联网管理和集成调度,保障计算机实验室的稳定可靠运行。随着信息处理技术和软件集成开发技术的发展,对冶金采矿类专业计算机实验室管理系统软件设计,确保实验室管理的高效运转[1]。系统采用LabWindows/CVI进行实验室信息管理系统开发,采用嵌入式Linux进行内核编译,实现系统集成设计。首先进行了计算机实验室管理系统的总体设计,然后进行模块化设计和调试,得出有效性结论。
1计算机实验室管理系统设计及技术指标分析
本文设计的冶金采矿类专业计算机实验室管理系统主要分为计算机实验室管理信息处理模块、网络模块、数据存储模块、通信模块以及人机交互模块等,采用的DSP是AD公司的AD9225芯片进行计算机实验室管理信息的高速处理和采集。搭建入式Linux软件开发环境,在Windows或Linux计算机进行信息系统的数据库开发和设计,采用交叉编译环境,在Linux下编译程序生成冶金采矿类专业计算机实验室管理的目标文件[2]。在组件设计中,通过调用request_irq()函数实现译码和时序控制设置分频器和信息存储结构分布的脉宽值。根据上述参数设定,进行信息存储系统的模块化设计,在存储系统的资源配置模块设计中,先打开SCSI数据硬盘,设定源代码,在LabWindows/CVI中为用户提供GPIB488.2库,基于X86架构编译生成的可执行代码,完成系统的总体设计,根据上述系统总体设计要求,得到本文设计的冶金采矿类专业计算机实验室管理系统软件的技术指标描述为:8通道同步计算机实验室管理信息采样;D/A分辨率:12位;X86架构下的代码编译功能。根据上述技术指标分析,进行系统的模块化设计和软件开发。
2计算机实验室管理系统软件模块化
设计及集成开发实现在于x86的标准PC环境实现计算机实验室管理系统的软件开发和实现。软件开发中,首先配置和编译Linux内核,Linux配置系统包括:配置工具、配置文件、makefile。输入“#makezImage”命令,开始编译内核,计算机实验室管理系统软件的根文件系统采用库文件、脚本、配置文件进行数据保存。使用tarjxvfbusybox-1.14.2.tar.bz2命令进行计算机实验室管理系统的Busybox编译,构建实验室管理系统的数据库访问模型,计算机实验室管理系统的Busybox编译模块如图1所示。在上述进行程序编译的基础上,进行MVB总线控制设计,对冶金采矿类专业计算机实验室管理系统D/A转换器输出进行调制解调。实现了计算机辅助视觉下的冶金采矿类专业计算机实验室管理的网口、串口、USB口的控制,提高系统的集成管理和调度能力。
3系统调试和性能测试
根据上述设计的软件系统,进行计算机实验室管理系统的软件调试测试,构建管理信息数据库,实现冶金采矿类专业计算机实验室管理文件系统配置和编译集成开发,为测试性能,以实验室管理任务执行时间为测试指标,得到仿真结果如图2所示。从图可见,采用本文方法进行计算机实验室管理,实时性较好,执行时间较短。
4结束语
本文进行冶金采矿类专业计算机实验室管理系统的优化设计,系统主要包括了信息处理模块、网络通信模块和人机交互模块。在于x86的标准PC环境实现计算机实验室管理系统的软件开发和实现。研究表明,该系统对计算机实验室的管理信息的处理效率较高,进程跟踪实时性较好。
作者:惠征 李倩伟 单位:南阳理工学院
摘要:
我国金融电子业的发展和进步使得银行软件行业进入到了一个关键时期。银行之间激烈的竞争关系使得银行对于软件的的要求越来越高,国外优秀的同类软件也在不断的参与着国内市场的竞争。巨大的市场压力迫使软件开发商放弃了传统模式的手工作坊的开发方式,转而采取更加先进的技术和方法来提高软件开发的质量,以保证企业的可持续发展和进步。
关键词:
银行;软件开发;CMM;开发方法;改进
银行软件的开发过程的改进方法直接影响到银行业的进步和发展,对银行信息化水平的提高尤其重要。银行软件项目是由技术、过程和人才三个方面共同完成的,银行软件项目的开发和改进方法离不开以上三个要素的参与,只有提高银行软件的开发质量和工作效率才能吸引创造更多地利润,提高客户的满意度。
一、银行软件的开发方法和改进方式
1、以产品化为核心的软件开发方法银行软件业发展的初期阶段,软件商针对各银行服务项目的不同进行软件的定制是当时主要的银行软件开发方式。开发人员针对每个项目中实际的需求进行调研,设计出符合要求的开发方案再进行实施,但实际上,这种方式存在很大的局限性。首先定制软件需要软件开发商将大量的技术人员派遣到不同的项目中去,他们的工作重复率十分高,极大的浪费了人力资源,效率还得不到提高,使得开发成本的投入不断增加,给企业的进步和发展带来了阻碍,定制软件的稳定性还非常差,出错几率较大,在客户满意度上始终达不到高标准。[1]使用产品化的银行软件开发方法可以很好地解决以上问题,作为一种工程技术的方式,产品化的开发方法基本的研究思路是在同类软件产品的基础上,提取出相关的业务特征来予以实现,对于不稳定的部分进行参数化的处理,使其能够在较小的变化下满足大部分客户的需求。这样项目在经过首轮的开发研究之后,对不同银行的软件都能在最短时间内进行维护和保养,非常有利于提高软件质量、减少成本的投入和增加市场竞争力。银行软件的开发方式以银行具体的业务标准作为基础和标准。从理论化的角度来看非常适合产品化的开发方式。但是针对目前银行界的发展情况来看,各银行之间有自己独特的业务处理程序,在流程和业务的处理方式上也大不相同,给产品化的开发带来一定的阻碍。以产品化为核心的银行软件的开发过程是建立在技术平台的基础之上,通过业务逻辑的思维能力在部分定制条件下可以快速完成对于产品的开发和使用。银行软件业务的平台的开发步骤是在技术平台作为基础的情况下,再深入理解和分析银行内部的业务,建立和完善业务平台,然后在基本业务平台之上构建出一个完整的业务流程,对于具有近似流程的业务建立建立相关模板来用作更高层次的平台,以支付系统为例,大笔金额交易的流程必须经过录入、审核。传输、修改和修正等步骤,就可以做成一个完整的业务模板,通过对这个模板的修改和调整就可以用到其他类似的业务上。[2]以产品化为核心的开发方式除了开发制作方便快捷之外,在后期的软件维修保养和升级方面也十分快速,虽然以产品为核心的开发方法的业务平台并不是彻底的产品化方案,还需要相应的开发人员的针对具体的银行业务进行第二次的开发,但是却是非常适合当前银行业的的一种改进方式。
2、以CMM为核心的软件开发方法CMM是管理学理念在软件行业中的具体表现,在过去的几年时间内CMM用具体的成绩证明了他对改进软件开发过程的价值,是一种更加先进的改进方式,但是并不是所有银行的软件项目都适合CMM的管理理念,比如以算法为基础的银行研究性开发项目就不行,CMM为核心的软件开发方式只适合控制方便的业务型开发项目。目前我国银行的软件大部分都是以业务作为核心的行业软件,因此在具体开发技术上是不需要十分高深的算法和复杂的逻辑的,因此十分适合使用CMM的理念对银行软件项目进行开发和使用,由于开发方式的产品化等特征,虽然整体的研究成本得以降低,但是在第一次的开发程度上却十分复杂,需要更加优良的管理方式才能保障以CMM为核心的软件开发成功。[3]我国目前对于CMM的研究已经取得了很多的成果,例如对KPA中关键过程的实践内容的解析和证明,每个目标如何在单独的软件开发项目中完成。但是CMM在银行软件的开发实施需要企业文化作为基本保障,才能确保该方法的顺利进行。CMM的管理理念提供了一系列的方案来保障银行管理的制度化,如在具体的银行业务中,软件工程作为立法机构提出相应的规范内容,所以软件在在开发过程就必须按照这些制度来执行,保障软件的质量监督规范的实施,这样就能确保软件管理的有效性。但是传统制度下的银行软件开发企业的管理者来说,自身也处在制度之下,只有企业内形成法制化的企业文化,才能保障新方法的推行管理过程。需要参与CMM为核心的各组织相对独立的发展空间。只有在不会互相影响的情况下,各组织的评估和监督工作才能从真实性和客观性出发,对软件的管理和理解才加具有意义。例如在对软件工程过程组的计划评估中,由测试组对软件工程组的产品进行性能测试时双方都需要相对独立的空间的作为前提,但是在我国的发展过程中,企业管理人员的职责范围不明确,各组织属于从属的关系非常多,个别企业甚至是一组人员负责两个项目,自我监督效果极差。这样虽然从客观上采用了CMM的理念,但是在实际操作过程问题就会不断的出现,对于开发过程并没有起到明显的作用,所以对于软件开发企业来说这是必须要面对的问题。CMM是作为一个评估系统的依据和过程改进的结构出现的,主要是针对如何建立科学有效的管理方法给出了确切的目标和建议,CMM在银行软件的开发方法中的具体实现就需要结合实际的银行业务水平和企业自身的结构,来制定出合理有效的管理方案。正确实施CMM的方法是根据各个项目中开发人员的技术经验来完成对KPA关键过程的目标实践并完成制定的目标。完成CMM2之后再从对多个项目的总结方案上开始对于CMM3的KPA研究分析,形成一个系统的组织结构,最后再反向推广,以完成对过程管理的改进。[4]
3、重视对人才的培养工作不论是以产品化为核心的银行软件开发方式还是以CMM为核心的开发方式,这些方案的实施基础是有足够的技术人员来进行操作,对于软件企业来说人才来说专业的技术人员可以分为单一的技术型、纯业务型和管理者三种,他们各自倾向于自身领域中知识的学习和管理,目前我国的软件企业内存在着管理缺乏的现象,更是在业务型人才的培养上十分薄弱,这对软件的开发和推广以及后期的维护和管理是十分不利的,软件从性能上可以看成是一种针对其他行业发展的服务,缺乏业合格的管理人员和业务人员的软件企业无法开发出优质的软件系统的。从银行软件的角度来说,业务人员是最重要的组成部门,因为银行业的主要工作就是以业务为主,本身也具备相对复杂的程序,只有技术丰富银行软件人员才能做好银行软件的开发工作。
二、结束语
银行软件的开发和改进方法主要就是包括对技术、应用过程和人才的培养上,这三个是相互关联的相互影响的,如果其中一个方面有缺失必然会相应其他方面的进步和发展,造成资源地浪费,因此在对银行软件的开发和改进中要注意对这三个方面齐头并进,避免造成短板效应,才能真正提升银行软件的质量和效率。
作者:徐伟 单位:上海浦东发展银行
摘要:
在聚变堆氘氚燃料循环系统中,需要进行纯或含氚混合气体中氚分压的在线测量,氚衰变产生β射线与材料组成原子相碰撞产生连续的轫致辐射X射线(BIXS),通过X射线的计数率与含氚混合气体中氚分压数值拟合关系即可实现对氚浓度的实时在线分析。氚分压BIXS应用软件就是为了实现实验室氚分压的在线测量,而独立开发的基于美国国家仪器(NI)公司LabVIEW环境的软件程序,氚分压测量仪器使用NaI(TI)探测器作为探测部件,上位机通过USB口接收仪器所测得的数据计算出压强进行实时显示,软件还根据实验需求实现了参数设置、动态显示、数据存取和压强平均值计算等功能,最终满足了用户对于氚分压在线直接测量的需求。所自主编制了软件完成了纯氚气体(0-10kPa)的氚分压直接测量标定实验应用验证,获得了较为稳定的线性标定曲线,其测量精度在纯氚压100Pa以上时优于5%,从而为聚变堆氚分压测量提供了一种简便可靠的技术手段。
关键词:
BIXS;LABVIEW;氚分压;计数;压强
从氚的安全和经济角度来看,大型热核聚变反应堆如ITER和未来的聚变设施都必不可少地需要大量的高浓度氚测量手段。Matsuyama等人最近研发了BIXS能谱法可以对含氚气体的氚分压进行测量。这个技术是基于一个专门设计的小室里含氚气体放出的β射线与材料作用产生的X射线进行探测。通过探测氚衰变β射线与材料相互作用产生的韧致X射线,可分析材料中氚的深度分布或气体中氚分压。此方法一定程度上可较好弥补其它氚浓度测量方法(如电离室,激光拉曼光谱仪,质谱仪等)的缺陷,因此,日本JAERI与德国FZK都将BIXS氚分压测量技术列为聚变堆氘氚燃料循环体系中的一项重要测氚手段。本文设计并编制了基于LABView平台BIX-TP仪器应用软件,实现了数据采集、数据分析与处理(包括氚压力-时间、氚压力-计数率、氚浓度-时间等变化图)、数据记录、数据存储及计数率-时间实时显示功能,并且完成了纯氚气体(0-10kPa)的氚分压直接测量标定实验应用验证,获得了较为稳定的线性标定曲线,其测量精度在纯氚压100Pa以上时优于5%。
1BIXS氚分压上位机应用软件系统结构
在需求分析的基础上将软件主要分为氚分压测量仪驱动程序层、BIXS氚分压应用程序层和面向对象接口程序层。氚分压测量仪驱动程序层将实现对测量仪的控制与通信,考虑到USB总线具有数据传输率高、支持即插即用、使用方便等特点,BIXS氚分压软件选择了基于USB的仪器控制与通信方法。BIXS氚分压应用程序层建立在仪器驱动程序层之上,提供数据的采集、数值的计算和存取等操作功能。面向对象接口程序层直接面对操作者,提供友好的操作界面选择所需功能及设置参数。
2BIXS氚分压的仪器驱动和通信函数
驱动程序的创建首先使用DriverDevelopmentWizard(驱动程序开发向导)创建INF文档;然后安装INF文档,安装使用INF文档的USB设备;最后使用NI—VISAInteractiveControl(NI—VISA互动控制工具)对设备进行测试,以验证是否正确安装,最终获得USB设备的各属性值。驱动成功后,进行USB通讯的软件设计。在创建了USB设备的VISA驱动之后,就可以通过LabVIEW应用程序进行调用,实现对USB设备的控制和通信。该过程主要通过使用NI—VISA函数来实现。在LabVIEW软件中集成了NI—VISA库函数,USB通信软件设计主要应用了VISAOpen、VISAWrite、VISARead、VISAClose四个函数。
3BIXS氚分压上位机应用软件系统功能模块设计
3.1主控模块BIXS氚分压上位机应用软件系统功能模块设计思路如图1所示。主控模块主要包括两部分,菜单响应程序和数据采集主程序。操作者界面采用方便灵活的事件结构(EventStructure)来设计和实现,即等待事件发生,然后按照指定事件的程序代码对事件进行响应,此后再回到等待事件状态,避免了轮询(polling)方法对一定的CPU资源的占用(在没有事件发生时)。开始采集后,主程序首先将变量进行初始化,然后通过VISAOpen打开设备,并通过VISAWrite发送采集开始命令给下位机仪器,成功发送后,再通过VISARead读取从下位机接收到的数据并进行数据处理,在数据处理之前需要对接收到的数据进行检验,判断接收到的数据是否正确,数据正确,则对该数据进行数据处理和压强值计算,最后将时间-压强图像显示于主控界面,采集结束。
3.2文件模块文件模块中包括对采集并计算得到的压强数据的一系列操作,功能包括:(1)数据的默认保存和另存;(2)读取并显示已保存的数据;(3)打印主控界面。为了方便操作者对采集得到的压强数据进行各种数据处理与操作,本软件将压强数据保存为EXCEL电子表格格式,当重新打开已保存的压强数据文件后,主控界面中将会自动还原压强图像。操作者还可根据需要,对主控界面进行打印,尤其是可直接打印出当前实验的时间-压强图像结果。
3.3设置模块在采集开始之前,需要对下位机的仪器进行通讯和控制,设置模块中提供了对应的功能项。在通讯口的设置中,用户可以选择采集仪器所对应的设备资源名称,同时可通过对选择的设备进行确定操作来判断该设备是否连接成功,即检查通讯状态是否正常,如果设备连接成功,软件将提示设置成功,反之,提示失败,检查设备连接状态后重试。为了实现对下位机仪器的控制和操作,本软件提供了参数设置对话框供用户来改变所选择的下位机仪器的高压、增益以及需要的采样时间,软件同时对参数值进行了默认设置,也就是说,用户可不需要改变参数值直接开始采集数据,其中高压的默认值为700V,增益默认值为1倍。
3.4压强计算模块BIX-TP氚分压通过USB接口按照一定的通讯协议,将得到的多组十六进制数据转换为一组计数值,再按照公式推导,计算出其对应的压强值。为了实现实验过程中的自动化,减少操作者的工作量,添加了计算压强平均值功能,该功能通过ElapsedTime子VI,可以实现自动计算1、3、5、10、15、20、30分钟内的压强平均值,避免了操作者从excel中提取一定时间内的压强值,再计算平均值的繁复操作。操作者在实验过程中发现,会出现本底值较高的情况,此时本底和真正的信号值混合在一起,影响计数值和最终压力值的准确性和稳定性,所以在主控界面上添加了扣除本底输入框,操作者可根据当前实验环境和实验条件下的本底值,自行输入当前值,那么,图像显示和当前数据值显示会自动扣除掉该本底值,以还原最真实的当前值。在主控界面上添加了压强最大值输入框,操作者可根据当前图像的实际情况,随时修改该压强最大值,以便更好的观察图像所显示的操作者最关注的区域。
4BIXS氚分压上位机软件的应用
如图2是BIXS氚分压上位机软件操作界面及100Pa至10000Pa纯氚分压测量实验曲线,图2清晰显示了计数率随时间的变化,通过计数率得出氚分压测量系统中氚压强随时间的变化,进而计算出氚浓度随时间变化,得到氚分压与计数率关系数据库如表1所示,可以根据曲线拟合出纯氚分压(P)与计数率之间的公式:C=C0μP=2.28P,直接用于显示压强随时间的变化趋势,最终可以应用于聚变堆氚燃料循环系统中含氚气体中氚分压的直接测量。从上表的试验结果可看出,在纯氚压大于0.1kPa时,测量精度结果优于3.40%,满足项目内要求的技术指标<5%,此时测量精度较好;在较低压部分(纯氚压<0.1kPa)精度稍差,分析其原因为:低纯氚压条件下有效计数率与本底计数率相差无几,本底计数率对有效计数率引入的误差较大。因此,在后续项目研究中,进一步控制本底的计数率,有望提高在低压段的测量精度。
5总结
本文所研发的BIXS氚分压上位机应用软件基于LabVIEW编程环境实现了对下位机仪器简单便捷的通讯与控制方式;完成了数据采集、计算、保存等多种功能;提供了人机交互友好,美观简洁的显示界面,可实现氚工厂氘氚燃料及工艺气中氚分压的直接测量,并获得了纯氚分压与计数率之间的拟合关系,实现了在0-2kPa范围内BIXS测量纯氚分压的精度优于5%的预期目标,是聚变堆氘氚燃料循环体系中的一项重要测氚手段。该技术在国内属于首创,并首次提出将其应用于我国聚变工程实验堆氚工厂的氚测量与分析系统设计中。
作者:郭星辰 刘志珍 吉晓梅 杨洪广 单位:中国原子能科学研究院
摘要:
与一般项目相比,软件开发项目存在一些独有的特点,而这些特点的存在使得要想真正做好软件开发项目的管理工作是十分困难的,其在管理方法上与传统项目管理存在着一定的差别,一些通用的项目管理理论或者项目管理方法并不适用于软件开发项目的管理。在这种情况下,对软件开发项目管理进行相应的实践探究,就显得非常必要。
关键词:
软件开发项目管理;实践
进入21世纪后,伴随着计算机技术和网络技术的飞速发展,各种智能终端设备逐渐兴起,也使得人们对于软件的需求达到了一个前所未有的高度,推动了我国软件产业的发展。而在软件开发过程中,需要切实做好项目管理工作,提升管理水平,才能够促进我国软件产业的进一步发展壮大。
一、软件开发与项目管理
简单来讲,软件开发就是依照客户的需求,构建软件系统或者系统中的软件部分,其是一项包括了需求捕捉、需求分析、设计、实现和测试的系统工程,需要借助某种本程序设计语言实现。软件开发的主要流程包括:需求分析、总体设计、细部设计、编码、单元测试、综合测试、运行以及维护。项目管理则是指在一定的约束条件下,为了实现某个特定的目标,依照项目自身的内在逻辑规律所进行的系统管理活动。相对于软件开发而言,项目管理需要遵循几个基本的原则,一是依照分阶段的生命周期计划,进行严格管理;二是做好相应的阶段性评审;三是重视产品控制;四是应用现代程序设计技术;五是确保开发人员的专业素质较高,同时对人数进行控制;六是必须能够对结构进行清晰地审查;七是必须承认软件工程实践持续改进的必要性[1]。
二、基于软件开发的项目管理实践
以智能手机系统为平台,针对手机软件开发的项目管理实践进行简要分析和讨论。
2.1需求分析需求分析是软件开发的基础与前提,能够获取和记录系统需求,确保客户与项目团队在系统需求变更上的一致性,避免软件开发过程中不必要的弯路。需求分析法包括了用户问卷调查、研讨会以及原型展示等,需要安排专人做好相应的记录工作,并及时对其进行总结和归纳,做好应对策略。在该项目中,软件需要满足的需求包括:适用于主流手机操作平台,充分考虑不同硬件配置以及操作系统版本的兼容性;可以跨平台运行,同时不需要占用过多的系统资源;确保数据连接的速率以及操作的流畅性等。
2.2设计编码系统设计包括了总体设计和细部设计两个不同的阶段,其中,总体设计应该大致规划出软件的功能模块,做好相应的功能分区,并对其进行初步的设计分析,细部设计则需要给出每一个功能模块的控制流程、算法以及数据结构等,确保每一个模块都有不同的层次。对于一些难度较大、涉及面较广的模块,可以交给一些经验丰富、心细缜密的技术人员完成,并做好模块的测试与修改,保证其稳定可靠,尽可能降低风险与成本[2]。设计完成后,需要进行编码工作,采用代码版本管理工具SVN,以确保各个子系统的功能都能够得到最大限度的发挥,实现系统之间的功能互补,从而降低软件开发的风险和难度,提高软件过程的跟踪率。
2.3测试运行软件测试并非单纯的某个环节,而是贯穿于整个软件开发项目中,制定出详细全面的测试计划,并对测试用例进行用心编写。软件中的每一个子模块都应该由编程人员之外的技术人员进行反复测试,同时对测试过程中出现的问题进行记录,提出相应的修改意见,由相应的编程人员进行修改。在对测试用例进行编写时,需要对测试目标、测试环境、测试步骤、预期结果等进行记录,形成具有代表性的数据信息。在测试完成后,需要首先在小范围内,对软件的子模块进行试运行,确认无误后再对软件整体进行试运行,结合运行反馈结果,评估软件的可靠性,采取相应的完善措施。试运行成功后,需要编写相应的用户手册,制作视频说明,帮助用户了解和使用软件,同时标注联系方式,方便用户进行反馈。
2.4后期管理在系统安装试用一段时间,具备相应的验收条件后,需要进行验收准备工作,对之前的工作进行总结,列出工作成果和相应的文档,审查相关技术文档中的内容和信息。应该对系统当前的完成状况进行明确,对于尚未完成的部分,应该采取有效策略去完成,或者设置相应的回避措施,确保客户在验收时不会提出这些未实现的需求。在交付使用后,需要做好软件维护工作,结合需求变化或者硬件环境变化对程序进行修改,确保其具备良好的实用性和适用性[3]。
三、结语
综上所述,软件开发项目管理与一般的项目管理存在着很大的差别,需要相关技术人员结合软件开发的具体流程,做好全过程管理,保证管理效果,在完成预定功能目标的基础上,提升软件的可靠性与安全性,确保软件的有效应用。
【摘要】
大型冷水机组的开发中,控制软件作为产品的一个部件,是设备稳定运行的关键,在设计、开发、更改等全过程中必须依据相关准则和符合管理标准,本文从大型冷水机组的控制软件的设计和开发过程入手,分析了各个阶段的控制管理方式及注意事项,使软件更好满足开发需求,并使开发过程具备可追溯性。
【关键词】
控制软件;过程控制管理
1引言
大型冷水机组的开发(简称产品开发)中,控制软件作为产品的一个部件,是设备稳定运行的关键,这就意味着控制软件的管理等同产品,控制软件的管理成为必不可缺的工作。控制软件作为产品开发过程中的一个部件的开发,必须符合开发管理的全过程控制、管理。没有管理,编制的控制软件控制逻辑考虑就会不全面,特别是当出现问题时,工程师现场进行修改会很随意,没有对问题进行系统分析,只是头疼医头,脚痛医脚,同时,因为更改没有记录,再发生问题,也无法查找原始记录。
2控制软件开发的过程控制
管理按照现行的管理体系标准GB/T19001/ISO9001,控制软件作为产品的一个部件,包含管理体系的设计和开发全过程:设计和开发策划;设计和开发输入;设计和开发输出;设计和开发评审;设计和开发验证;设计和开发确认;设计和开发更改的控制。
2.1设计和开发策划对于控制软件编制,从从属的产品开发开始,了解产品需要控制的全部细节,如I/O点的需求,以及关键部件的功能确认,参数设置等,形成软件编制的逻辑图,成为控制软件的设计输入,这一过程就是设计和开发的策划。
2.2设计和开发输入和输出作为控制软件的规划来说,各功能进行模块化管理,形成软件的标准化管理,从长远来看,是提高效率的有效办法,也是标准化管理的要求,利用PaaS平台技术的应用,实现产品在客户端运行大数据采集,进行数据建模及MIS系统开发与管理,以了解客户端产品的运行情况,实时为客户提供及时的服务。作为控制软件开发的输入的逻辑图是需要经过产品设计工程师及相关部件设计工程师,以及各相关部门如测试站、服务部等进行评审的,设计和开发评审是贯穿在设计和开发过程的每个阶段节点,一旦评审通过,评审通过的逻辑图将是控制软件开发的输入。每一开发阶段的输出均要满足相应的需求及有关的开发管理和约定,并要包含或引用进入后续工作阶段的验收准则,对影响有产品安全和正常工作的重要的产品特性要进行标识。
2.3设计和开发验证控制软件编制完成后,必须进行验证,验证必须要有验证的内容和达到的目的,验证内容必须是经过评审的运行大纲,目前确认的方法有两种:一是在模拟箱上,对照输入的逻辑要求,设置产品工作的各个极限工作条件,按运行大纲运行控制软件逐条检查逻辑要求的功能,模拟测试,必须填写模拟测试报告,如实记录各功能测试的结果,软件模拟测试工程师不能是软件编制工程师;二是在正式产品上,前提是模拟测试通过,因为产品测试,不仅需要耗费巨大的电费和水费外,还需要相当长的时间,成本耗损巨大。按产品运行大纲,在产品工作的各个极限条件下,进行产品运行,并根据大纲要求检查控制软件的功能,这时的测试是动态的,通过实时的数据记录(即便测试结果未达到目标,实时的数据记录也将是后续软件修改的依据),形成产品的测试报告,证明控制软件运行正常,产品的各个极限工作条件下的测试报告将是控制软件运行正常的重要证据,同样控制软件上机测试,必须是产品设计工程师和软件测试工程师,而不能是软件编制工程师。只有经过验证的开发输出才能提交配置管理并被验收,供后续阶段使用。
2.4设计和开发评审控制软件验证完成后,必须进行相应的评审,只有在所有已发现的缺陷的影响均被消除,或缺陷的影响虽未消除,但已弄清带着缺陷进一步工作的风险之后,方可进行下一步的设计或实现工作。如有需要对控制软件进行更改,则更改后,必须再进行相应的验证,直至评审通过,并将控制软件的逻辑图、软件验证的运行报告和源代码等开发过程的技术文件进行存档管理。
2.5设计和开发测试与确认从单个软件项到一个完整的软件产品可能需要进行不同层次的测试,有一些不同的测试与集成方法,在某些情况下,可以将确认、现场测试和验收测试合为一个活动。描述测试计划的文档可以是一个独立的文档,或是其他文档的一部分,也可以由几个文档组成。在测试之前首先要制定和评审测试计划、规格说明和规程,其中应涉及测试计划、测试用例、测试数据、预期结果、测试类型、测试环境、测试工具、测试软件以及测试是否完成的测试准则等。测试时应按有关规格说明记录测试结果,同时记录发现的问题,指出可能对软件其他部分或冷水机组运作时带来的影响,并通知对此负责的人员,以便对问题能进行追踪直至问题解决;应确定受更改影响的部分,并对它们进行重新测试,同时对测试过程及结果进行评价。在需要的情况下,可以进行现场测试,可邀请供方和需求共同参与。在控制软件交付使用之前,应尽可能在实际的使用环境下对整个软件产品的运行进行确认。
2.6设计和开发更改的控制控制软件应用在产品上是需要进行反复的评审,测试验证、评审、修改,直至能达到设计目标,且没有任何bug。修改控制软件是一件很慎重的事情,修改分两种:一种是为实现某个特定的目的或要求,只是针对某个特定的Case,通常是在客户的特殊要求下进行;对于这种更改,由于是在标准软件的基础上增加特定的要求,需要在客户端验证后,将源代码特殊标号存档,并相应更改相应客户的档案信息,用于以后售后服务;二是因为某个功能性部件的更新或是存在开发过程中未发现的Bug,需要更新标准的控制软件;这种更改必须在仔细列明部件更改前后的不同之处,或是Bug的问题,对不同处进行更改,更改前必须经过慎重的评审,确认是有必要进行更改,更改后的控制软件需要重复开发过程的验证、评审过程。从某种角度来说,更改过程视同一个完整的开发过程,因为更改部分对产品的运行的稳定需要进行完整的验证,也就意味着对产品的每个极限工况条件都必须进行测试验证,验证前需要对验证用的测试大纲进行评审,确认更改部分的测试都考虑到位,测试后需形成相应的测试报告,并将整个更改过程的技术资料,测试报告,源代码等进行存档。
3结语
当准备交付经确认的控制软件产品时,应根据大型冷水机组应用需求及运行要求,同时结合相关的规定准则和方式判断该控制软件产品是否可以投入使用。在设计、开发、更改的全过程中必须符合管理标准的可追溯性,能很清晰的查阅到软件的标准号和版本号。
【摘要】
针对软件开发平台应用的相关内容,对软件开发平台中配置管理应用的具体策略进行研究。先介绍了软件配置过程中KPA的相关内容,并对其中存在的问题进行研究;再结合软件开发平台的实际技术内容,对其具体应用进行研究,以进一步提高软件配置管理能力,为提高软件开发能力奠定基础。
【关键词】
软件开发平台;配置管理;应用
随着现代科学技术的进一步发展,软件开发平台开始受到社会的普遍关注,对相关人员而言,如何实现软件开发过程中的高质量、低成本成为其工作的主要内容。CMMI(软件能力成熟度模型集成)的出现有效的满足了人们的要求,其主要分为5个成熟度,每个成熟度级别都包含若干个关键过程域(KPA),而软件配置管理就是其中的一个重要KPA。在本次研究中,主要针对软件开发平台中配置管理应用的相关问题进行研究,希望洋酒内容能对相关学者研究有所帮助。
1软件配置管理过程KPA
1.1配置管理的必要性裴树军等通过研究认为,随着软件规模不断扩大,导致软件研发过程中的中间产品数量不断增多,严重增加了管理难度。而对整个软件开发而言,配置管理是软件开发的核心内容之一,若不做好配置管理工作,则势必会引发一系列问题,具体表现为以下几点:
1.1.1同时更新的问题当两个或多个人员同时研发一种软件时,同时更新现象会损害他人工作,影响了工作的整体进程。
1.1.2通用代码问题在一些特殊的大型系统中,如果相关人员已经根据相关要求修改了软件的部分功能,则会导致所有将该内容告知所有人员;如果不能及时的告知每一个软件开发人员,则会导致部分出现严重的系统操作失误问题。
1.1.3版本冲突问题从当前部分大型软件的开发过程来看,其主要通过增量式的方式实现开发的。在这种背景下,一个大型系统可能涵盖诸多活动版本,这样很容易产生冲突现象,不利于保证软件正常运行。对相关人员而言,若不能有效处理上述问题,将会造成严重的混乱现象,因此做好配置管理工作十分重要。
1.2软件配置管理分析
配置管理过程是整个软件生命周期过程中的重要元素内容之一,这在CMMI中,配置管理目标主要分为三种包括,建立基线、控制变更、跟踪等。一般认为,建立基线主要存在三种特定的实践内容:
(1)保证标示能在配置管理的配置项中,并建立一个能满足配置管理的系统,完成基线创建等基础过程。
(2)在使用一个配置管理系统后,所有的变更都能在第二个目标结束之前实现被跟踪与控制。
(3)保持配置项的记录,并按照基线的相关内容开展配置审计。
2配置管理研究
2.1配置管理的基本工具
当前在开展配置管理中,常用的工具包括:
2.1.1Starteam该工具提供了真正的协同工作,保证整个开发环境内外的所有团队与功能模块都能参与到目标活动中,保证了配置工作的顺利开展。因此可以认为,Starteam是一个集合了版本控制、缺陷跟踪等多种功能于一体的软件。
2.1.2CC该工具是ROSE构建的主要组成部分,常被应用在复杂产品开发等特殊环境中,能有效解决多种产品开发与维护的要求,具有良好的应用价值。CC的主要功能包括建立管理体系、明确过程控制等,是实现配置管理的主要工具。
2.1.3VSS该工具能将所有项目原文件给进行管理,并通过特有的方式将原文件进行储存。但在操作过程中需要注意的是,相关人员不能直接修改数据库中的文件,而是需要通过该版本管理器,对项目项目的源程序进行控制,将其拷贝到成员自己的目录中进行修改,再讲修改结果提交给VSS,之后才能完成数据资料修改。
2.2软件配置管理的基本流程
有项目经理负责监督整个项目配置管理的实际情况,重点研究配置管理中存在的问题,并根据问题提出相应的解决措施;项目组成员协助开展配置管理工作。在上述工作内容的基础上,配置管理人员根据既定的项目目标计划,在项目经理的指引下参与制定《配置管理计划》并在日后工作中始终按照《计划》的相关内容展开工作,并按照相关要求调谐《配置状态报告》,做好相应的资料备份工作。在配置工作结束之后,资产管理人员收集组织资产资料,并维护组织资料库。
2.3版本控制
总体而言,版本控制是实现软件配置管理的核心内容,其主要目的就是根据具体的软件管理规则保存配置项目的版本资料,以降低发生版本丢失的概率。一般认为,在确定配置项过程中,常见的状态如图1所示。在整个配置项最初建立过程中,其产生的状态为“编辑”。在这种状态下,开发人员能编制整个配置项。在编辑结束后,经过编辑的配置项进入“评审”状态,此时若显示评审通过,则会将配置项的状态改变为“正式”;而评审未通过,则进入调试状态,对配置项进行二次修改,直至成为“正式”状态。
2.4变更控制
在整个软件配置管理过程中,变更控制的主要内容是创建产品基线,并以此为核心,在整个产品生存周期的过程进行变更,最终建立一整套完成的软件控制修改的机制,确保其质量能满足运行的要求。从其应用过程来看,需要变更的软件首先会处在“待修改”的状态,并由具体的操作人员将其分配到具体人员的手中。在经过相关人员的修改并结束后,变更软件将会改变为“关闭”状态,此时由系统进行评审,若评审结果显示无法修改,则会将其设置为“不修改状态”。而如果认定为不需要进行修改,也能将其关闭,避免过度处理现象发生。3结束语主要研究了软件开发平台中配置管理的相关内容,并对其应用进行详细的研究。总体而言,软件配置管理在软件研发中发挥着重要作用,因此对相关人员而言,在工作中要正确认识到软件配置的实际要求,并提出针对性的管理措施,为保证软件开发工作顺利进行奠定基础。
作者:殷媛 单位:南京航空航天大学金城学院
【摘要】
金融行业对于银行软件开发的关注度往往是比较高的,尤其在新媒体环境的影响下,银行软件的数量不断增多、内容不断丰富。银行用户为了时时了解银行动态和自己的账号安全,开始越来越频繁的使用银行软件。对银行软件开发进行项目管理,能够为软件开发技术提供一个较为安全的环境,防止软件在使用过程中出现风险。文章对银行软件的开发技术和与之相关的项目管理做了详细分析。
【关键词】
银行软件;开发技术;项目管理
对银行软件开发进行项目管理,主要对其软件开发技术的成本和质量,以及它在使用过程中可能出现的风险等进行的管理。这种管理能够为银行软件开发提供一个良好的开发环境,而且能从侧面反映项目管理的重要性。对银行软件进行项目管理,需要从多方面开展。在开发软件的过程中,可能会涉及到银行的机密信息,这在无形中增加了项目管理的难度。对银行软件开发进行项目管理,能够为银行在网络环境中的各项业务的开展,提供一个更加安全的支付环境,进一步保证用户和银行自身在各项交易中都能够有安全保证,有效的将操作过程中可能出现的风险控制在一定程度之内。
一、银行软件开发技术的需求
银行软件开发,能够实实在在的为用户提供更加方便的银行业务服务,有效的减少办理业务时花费的时间和与业务相关的各项手续过程,能够大大提高银行金融业务的服务效率。特别在银行业务繁忙的时段,使用银行软件进行操作服务,能够减少银行在业务方面出现的失误,使银行处理业务的能力得到不同程度的提高。这对银行来说有很重要的意义。银行软件开发,主要是通过计算机计算以及其他软件支持进行开发的,并且开发结果要达到一定要求,这样的银行软件才能为银行提供更加安全的网上业务环境,为银行的网上系统提供便利的发展机会。
1、技术需要银行软件开发的主要内容,是银行软件开发技术。拥有开发技术做后盾的银行软件,能够使银行业务具备更加完善的服务能力,而且各个银行的分行能够将数据库连接起来,为银行数据信息的传输提供更加安全、稳固的传输环境,且传输速率也会有很大提高。在进行银行软件开发的过程中,对所需设备和数据的质量有很高的要求,而且银行开发技术中较为重要的数据需要备份。备份数据主要是为了防止突发状况。[1]银行软件一旦受到攻击,或者银行的系统出现漏洞,备份数据能在这种关键时刻立即启用,有效的防止银行软件系统的崩溃。银行软件开发完成之后,要对整个银行系统进行及时维护。这种有效维护,能够防止系统在运行过程中出现问题,弥补了系统中存在的漏洞,能够为技术需求提供有力的保障。
2、操作需求C/S开发模式,是银行软件开发技术所采取的一种有效模式。这种模式能够使银行开发技术以状体界面的形式存在于银行系统中。这种模式有它的优点,它能够有效降低开发软件在操作上的难度。银行软件开发过程中,一定要对其在现实中的应用进行全面考虑,银行工作人员在开展业务服务时不会出现操作上的困难,而且软件开发技术要符合工作人员在操作上的需求,技术开发要最大限度的满足银行操作的可进行性,为银行业务和其他各项事物的开展提供更加准确的操作支持。
3、服务需求银行软件开发技术,主要是为了提高银行在各项业务上的服务质量,这种高质量服务是银行软件开发最希望达到的主要目标。所以,银行软件开发首先需要满足的,就是银行在服务上的需求。这样才能使银行软件开发有一个科学、合理的过程。银行软件开发技术对设备的要求比较高,尤其对计算机磁盘容量的大小和计算机操作系统运行速度的快慢,有比较高的要求。只有设备的性能比较优越的时候,银行软件开发技术才能达到更好的效果,才能使银行系统在数据库的建设上有更加完善的成果。
二、银行软件开发技术
1、银行软件开发的总体技术银行的事务比较多,相应的银行软件该具备的事务也多,这些繁杂的事务给银行技术开发带来了比较大的压力。用户管理以及用户相关业务的办理工作,是银行软件开发技术要解决的两个比较重要的内容。尤其是业务办理,不同的业务办理项目的内容和办理流程不同,银行开发技术应该就这些不同的内容和流程进行不同的设计和管理,只有这种规范的技术设计,才能为银行系统提供相对安全的运作条件。用户有存取款或者转账业务需求时,银行工作人员只需要在银行软件上进行相关操作,就能完成整个业务。[2]所以银行软件开发技术需要支持的业务需求必须具备类型更加丰富设计,而且各项业务的安全保卫工作系数也要进行提高,以免在交易过程中出现信息泄露的情况,为用户提供贴心、方便、安全的服务,也从侧面显示了银行开发技术的使用价值。
2、银行软件开发技术的设计银行软件开发技术要对银行的所有业务进行设计,其中就包括了银行的计算机储蓄系统。对银行计算机储蓄系统进行技术开发,编程部分比较重要。设计编程所用的语言,要根据银行工作人员的一定操作需求进行设计,为用户提供业务服务时,选择“是”或“否”。银行软件开发技术需要对银行业务中的数据输入、数据处理和数据结果的输出进行设计。银行软件开发技术对业务中的输入情况进行设计,输入时必须将账号和密码输入完整,而且密码和账号要匹配,不匹配的账号及密码,在银行软件限制的情况下是不能允许用户登录的。接下来要对处理步骤进行设计,在输入的账号和密码正确且匹配的前提下,银行开发技术对条件检测的标准进行设计。只有用户登录银行软件之后,才能选择并操作相关的储蓄系统。且为保证用户能够进行正确的操作,开发技术需要设计操作提示,为银行用户提供周到的服务。银行软件开发技术对输入步骤进行设计,在系统完成输入和处理步骤之后,要将相关储蓄数据显示出来,并且在用户的要求下打印业务存储单据,运用完备的银行软件开发技术完成这些业务的软件设计。
三、银行软件开发项目管理的措施
银行软件开发不是一个一成不变的结果,软件开发设计人员会根据金融市场的变化和用户的需求对银行软件做出相应的调整和修正,它是一个不断更新、变化的过程。而且变化的过程比较快、使用周期比较短,这无疑给银行软件开发项目管理带来一定难度。对银行软件进行有效项目管理,主要通过以下三种方式:
1、构建责任制度针对责任感比较弱的银行软件开发项目管理人员,在管理工作中出现随意完成工作的现象,进行项目管理时必须设置完备的责任制度。这样做能够使管理人员对自己的工作重加重视,而且在重视的基础上约束自己的工作行为。责任制度必须对管理人员在工作中的责任和义务进行明确要求,要求管理人员在自己的责任范围内,做好自己的工作,完成自己任务,一旦在技术开发的过程中,出现了一定的问题,可以对管理人员进行责任追究,并且在第一时间制定出相应的、有效的解决措施。[3]
2、强化部门沟通银行软件开发需要各个部门通力合作才能完成,只有各个部门保证流畅沟通,才能全面了解软件开发的进程。各部门相关的项目管理人员在投入到管理工作之前,需要了解相关信息。而且软件开发技术要保证一定的先进性,管理人员可以将先进技术的相关讯息告知与开发人员,这样能够提高软件开发的水平。
四、结束语
银行软件开发项目管理,能够通过有效的责任制度约束管理人员的行为,确保项目管理过程中出现的问题能够得到有效处理。完备的项目管理能够防止软件开发过程中出现风险。
作者:栾家明 单位:上海浦东发展银行
摘要:
探讨在高校现有的软件开发相关专业构建Android软件开发工程师课程体系,阐述如何经过半年的实训,快速培养有一定项目开发经验的工程师,助推移动互联网行业发展。
关键词:
Android;软件开发工程师;课程体系;移动互联网
1建设背景
随着3G/4G技术的不断发展和智能手机的普及,移动互联网继承了互联网所有的应用,并有自己独特的优势。互联网的应用系统几乎全部延伸到智能手机应用,例如手机银行、移动商务等。据亚太地区手机使用调查显示:2015年中国手机用户达到10亿[1],远高于宽带用户数;移动应用系统发展潜力更大,将成为全球信息通信行业的万亿元级新兴产业,急需大量的移动应用开发工程师。据计世资讯的相关研究报告,国内移动应用开发人才缺口将达到50万人以上[2]。目前主流的智能手机操作系统有谷歌公司的Android、苹果公司的iOS、微软公司的WindowsPhone,只有Android是开源的操作系统,华为、三星、小米、中兴、联想手机制作商都采用了Android操作系统,ARM、英特尔、高通等半导体制造商也采用了Android操作系统。因此Android必将成为智能手机主流操作系统,用户数最多,与之对应的软件开发工程师缺口最大;而目前少数高校开设移动应用开发专业或方向,培养周期长,培养人数少,远不能满足移动互联网行业发展对人才的需要。
2建设思路
Android软件开发工程师实训课程体系是在原来的软件技术专业基础之上构建的,结合AndroidAPP开发岗位及流程进行设计,采用基于模块化、导师制、项目化的Android开发工程师人才培养体系[3],共分成4个递进的模块,每一个模块又细化为一个教学单元,详见图1。每一个模块有基础知识学习和项目实战,前导模块考核[4]过关之后再进行下一个模块的学习,重点积累学员的项目开发经验,注重学员综合素质的培养。
3课程体系
1)模块一:JavaSE开发技能强化(约120课时)。高校软件开发相关专业基本都开设过Java程序设计或C#程序设计,两者触类旁通,因此本模块主要针对Android开发打下Java编程基础,巩固面向对象的基本概念和编程思想,为下一个模块作准备,所谓磨刀不误砍柴工,见表1。2)模块二:Web及服务平台开发(约200课时)。Web及服务平台是移动端访问的基础,后端服务器的架构决定系统的稳定性,接口的开发决定终端开发和运行的效益,因此本模块着重学习JSP和Servlet核心编程,完成服务器端业务逻辑和数据库开发,见表2。3)模块三:移动端APP开发(约220课时)。此模块真正进入Android项目开发,首先从Android基础控件入手,掌握Android开发基本原理和流程,逐步引入实际案例,综合掌握Android控件使用、UI设计、内置数据库设计、消息推送、GPS定位应用、网络接口应用等开发技术,见表3。4)模块四:作品汇报与就业指导(约30课时)。前3个模块是练好内功,本模块主要通过作品汇报会暨Android开发软件工程师专场招聘会,把学生送到对口的岗位工作,同时把参加实训的同学拉进即时交流的QQ群和微信群,方便日后在工作与学习过程中就技术与思想动态,进行交流沟通指导,提供增值服务,见表4。
4实训过程
每个模块实训过程包括实训预备期和实训期两个阶段[6]。实训预备期:参与实训的学生对Android课程体系中必须掌握的业界实用技术知识清单和相关课件进行学习,必要时进行相关课程的考试,考试合格者才能进入项目实战。实训期:以模拟公司为平台,以仿真的商业案例项目为载体,将企业文化及职业素养训练、IT技能培训、行业知识以及业务流程实践等实训内容完全贯穿在模拟公司的运营过程中,使学生在实践中体验企业工作环境,获得一定的实际经验和职业磨炼。实训中由实训教师统一指导,基本过程如下:(1)搭建环境:主要讲解搭建各种手机操作系统开发环境所需具备的软硬件及网络知识。(2)完整的软件开发过程:主要讲解实际项目所涉及的软件开发过程的各个环节,如需求开发、设计、编码与测试、项目管理、项目验收及技术文档整理等。(3)Android手机软件应用开发:这是本实训课程体系的核心部分,主要是使学员掌握软件开发的技术、编程思想与方法,了解软件开发过程中常犯的错误。课程注重实用性,重在培养学员对代码分析的能力、掌握编码规范、掌握调试知识和分析程序错误的能力。同时学习内存检查工具和软件配置管理等知识,课程中贯穿着一个开发项目,以增加学员开发项目的经验。(4)测试计划与软件缺陷:主要介绍软件测试的基本概念和基础知识、如何编写测试计划、识别软件缺陷、编写缺陷报告等。(5)数据库:通过对数据库基础的讲解,让学员掌握这些技术,数据库是以主流的Oracle和MySQL数据库的运用为主。(6)职业导向训练:进行职业引导,包括就业指导和职前引导,通过座谈会等辅助训练明确就业方向,进一步了解职业发展形势。
5结语
我校2012级软件技术班在大三下学期引入Android开发工程师实训课程体系进行实训教学试点,教学效果显著,绝大多数毕业生进入Android开发领域。在实训过程中,教师带着学生承接了企业项目“好售掌上批发系统”,完成了Web平台、Android手机APP、IOS手机APP等功能设计与实现。通过第一期的试点教学,进一步优化了教学内容和实训过程,把好售批发平台分解成若干个实训项目,构建了上述课程体系,弥补了目前Android开发工程师实训体系实用性和可操作性不强的局面,供有计划开设Android开发工程师实训课的学校和老师进行参考,同时满足传统的应用系统开发工程师向移动应用开发方向发展的自学教学资源,有利于他们快速转岗,助推移动互联网发展。
作者:钟石根 张振军 张良杰 单位:厦门南洋职业学院 信息工程学院
摘要:
设计了一种基于嵌入式系统的高清晰、便携式的车载播放系统。该播放系统的软件设计以Mplayer为后台,实现对音视频文件的解码播放等工作,并以Qt的基础类库为基础设计了嵌入式多媒体播放器的前端控制图形界面,通过创建QProcess进程,实现对播放过程的控制,与后台Mplayer进行通信,实时获取并显示播放信息,并在指定窗口对音视频码流进行输出显示。
关键词:
汽车多媒体;车载播放;嵌入式系统;多媒体播放器
目前,国内车载电子设备市场极度缺乏多媒体综合软件,该软件能有效地将车载导航、影音图像、倒车雷达、娱乐互动等多个功能整合,方便乘客和车主的使用[1]。将多种娱乐和使用功能整合统一,使得设备简洁美观,同时降低了重复安装的成本和投入。可以极大地减少车内空间消耗,降低整车油耗[2]。多媒体共屏展示也能保证驾驶员的操作强度,保证行车安全。因此,将行车信息、娱乐互动、交流通信、车载导航等功能集于一体的嵌入式综合媒体系统符合市场和环境的发展要求[3]。
1车载嵌入式播放器总体设计
出于应用领域、自带资源、可扩展资源、功耗等多方面的考虑,选择Linux内核为嵌入式多媒体播放器的操作系统核心。将多媒体技术应用于嵌入式系统中面临着诸多的技术难题,嵌入式设备的特点决定了其资源通常非常有限,而有限的资源意味着需要进行多方面技术的优化[4]。首先,嵌入式设备采用蓄电池提供能源,所以对系统的功耗要求比较严格;第二,嵌入式设备上通常没有实用的图像加速器,声卡等硬件加速设备的支持;第三,不存在DirectX,DirectShow等高层多媒体的支持。基于上述考虑,有必要设计适用于嵌入式应用的嵌入式处理器,嵌入式操作系统。根据嵌入式多媒体播放器的功能需求及技术特点,通常将嵌入式多媒体播放器的体系结构划分为硬件层、内核层和应用层,具体如图1所示。系统的硬件层的硬件平台包括嵌入式微处理器和外围设备,通过合理选型和匹配可以完成满意的底层硬件组合。本系统的嵌入式MCU使用三星公司的S3C2410高速微处理器,S3C2410高速微处理器作为整个硬件系统的控制核心,接收、处理相关数据并实时发出控制指令。与其配合的系统外围设备是完成系统功能的必要组建和模块,涉及系统存储模块FLASH和E2PROM,LCD输出单元、主控外围电路和音频输出模块等。软件部分包含应用层和内核层两个部分。应用层包含嵌入式Linux操作系统和硬件驱动程序,包括BootLoader,Linux内核,根文件系统3部分。应用层包含嵌入式用户应用程序、音频解码器和GUI。本系统选择嵌入式Linux操作系统作为操作系统[5]。
2操作系统平台的构建
内核是整个Linux系统的核心,根据实际情况针对内核的配置进行选择,本质上指根据开发系统的功能需求对已有的操作系统进行选择,保留开发需求的系统单元,删除不需要的模块单元。在本系统中,嵌入式Linux内核选择ARMLinux内核。Linux内核的配置系统由Makefile、配置文件(config.in)、配置工具组成[6]。完成内核的数据参数配置后,不能将程序数据直接下载到嵌入式系统中进行调试运行,因为此时数据仍然以源代码的形式存在。此时,为了生成最终能在嵌入式操作系统上运行的可执行代码[7],需要进一步对内核进行编译。过程结束后,Image和zImage两个内核映像文件会在arch/arm/boot目录下生成,zImage为压缩后的映像文件,Image为正常大小的映像文件。得到内核映像文件后,首先在开发板使用的宿主机(PC)上建立一个tftp服务,使用DNW工具,在开发板上电时按任意键进入UBoot提示符,执行以下命令。在嵌入式操作系统正常运行时,需要使用根文件系统支持各种功能[8],在内核刚启动运行时根文件系统需要挂载起来用于支持访问外部设备,同时完成内核模块应用程序的装载和运行,避免出现Kernelpanic的情况,防止系统内核在启动时没有根文件的支持。在实际应用中,嵌入式操作系统使用动态随机存取器、同步动态随机存取器、FLASH存储器作为存储设备[9]。基于存储设备,使用JFFS2,YAFFS,CRAMFS,ROMFS,RAMFS等常见系统作为存储设备的嵌入式文件系统。在本系统中,选择NANDFLASH作为硬件提案所使用的存储芯片,选用NANDFLASH上使用比较广泛的Cramfs文件系统作为嵌入式根文件系统。嵌入式Linux操作系统的启动流程如图2所示。系统启动流程包括六个步骤:(1)系统复位,从地址0x00开始执行,进入步骤(2);(2)启动Bootloader模块,进入步骤(3);(3)判断系统是否进入Linux,启动Linux内核映像,不启动则进入Uboot的命令操作环境,如果启动内核,进入步骤(4);(4)系统从NANDFLASH加载内核到内存中,完成对硬件设备的初始化工作,进入步骤(5);(5)挂载根文件系统,执行init进程,并从/etc/inittab取得配置文件,进入步骤(6);(6)提示执行用户应用程序或用户登录信息。
3视频播放器软件设计
3.1基于Mplayer实现多媒体播放器Mplayer是一个Linux下的电影播放器(也能运行在许多其他的Unices和非X86的CPU上)。Mplayer的逻辑结构可以分为四个层次,即:输入层、分流层、解码层和输出层,其结构如图3所示。本文选择Mplayer作为后台设计播放软件。利用Qt/E为软件平台设计GUI图形控制界面,对多媒体播放器的播放过程进行控制。由于条件限制,本实验在宿主机上编译并安装了Mplayer,通过Qt设计基于X86的多媒体播放器。
3.2软件总体模块设计由于Qt/Embedded工具可以绕过XWindowsSystem协议客户端库,直接读/写帧缓存的FrameBuffer的数据信息,因此实现Qt类库对帧缓存的直接读/写操作,使用基于Qt/Embedded的应用程序可以完成。本系统使用嵌入式Linux作为操作系统,通过Qt的图形平台和函数库完成嵌入式多媒体综合播放。多媒体播放系统采用模块化设计思想,其架构如图4所示。嵌入式多媒体播放器包含五个主要的模块:(1)I/O(输入/输出模块):用于多媒体文件的读入和输出。(2)UI(用户界面单元):用户界面单元的作用是方便用户操作嵌入式媒体播放器的各项功能,提供良好的人机操作互动界面和使用体验。(3)插件接口单元:读入多媒体数据(通过输入插件获取I/O模块发送过来的数据)、调用Mplayer对文件进行解码播放、文件总的时间长度、编码类型、比特率等信息的获取、暂停、快进、快退、停止、输出、输入等的动作,输入动作具体指将输出插件完成解码的数据信息传送到系统输出输入单元的过程。(4)Mplayer解码单元:为了对不同类型的多媒体文件进行解码操作,系统选择的Mplayer解码单元由分离器、音视频解码器等部分组成。(5)GUI单元:为了方便快捷的产生读/写FrameBuffer以及用户界面,GUI单元通过使用Qt/E嵌入式工具作为底层图形库。软件总体模块中各单元之间的相互连接关系是:通过输入/输出单元读入音视频信息数据,用户界面单元在接收到播放信息指令后,调用插件模块相应的函数,产生相应的信号,调用Mplayer完成对多媒体文件的解码,完成解码之后将数据送到I/O模块输出。
3.3控制流程设计主程序设计流程如图5所示。当从菜单项打开视频文件时会触发triggered()信号,执行slotopen()槽函数,调用Qfiledialog的getOpenFileName()函数从对话框中选择要播放的视频文件。系统首先判断文件格式是否为*.avi格式,如果是,则创建一个Qprocess进程,通过该进程调用Mplayer后台对视频文件进行播放,并在指定区域进行输出显示。
4交互式图形界面设计
QImage类提供了一种与硬件访问无关的图片存储方式。QPainter则主要用来完成绘图事件。QPushButton提供了图形用户界面最长用到的命令按钮部件。此GUI交互界面利用QtDesigner以QMainWindow类为基础设计了主框架,包括菜单栏以及状态栏等;同时,以QWidget类为基础创建了一个对视频播放进行控制的插件接口,并通过合理的布局与主窗体组合在一起。
5播放系统测试在指定目录打开
avi格式视频文件,运行效果如图7所示。在播放过程中,通过状态栏实时显示当前视频文件的播放时间。通过界面下方的按钮对播放器的播放过程进行音量调节、暂停、快进、快退、停止等控制,基本达到了预期的效果。打开视频文件时,终端开始输出文件的加载路径,开始读取并输出ANS_TIME_POSITION(视频播放时间)参数值,在Qt与Mplayer之间完成了通信。当在控制台实施各种控制操作时,在终端输出执行的操作动作并发送该信号,调用相应的槽函数完成对视频播放的控制动作。以上是在主机上运行播放程序执行播放控制的过程。在主机上运行的Qt程序是基于X结构的,而在实际的嵌入式开发中,需要直接通过FrameBuffer进行显示。由于条件限制及其他因素,通过qvfb模拟程序在嵌入式开发板中运行的情况,如图8所示。从图8中可以看出,在qvfb中运行该程序时,菜单项的中文显示出现了方块型的乱码,这说明菜单项已经得到了识别,只是qtopia中缺少相应的中文字体库,在默认的情况下,qvfb会调用字体库中的默认字体,这样在显示中文时会出现如上问题。可以在网络上下载相应的中文字体库并拷贝到Trolltech/Qtopiacoreopensource4.3.0/lib/fonts中。
6结论
本文通过对车载播放系统的设计,根据车载嵌入式多媒体播放器的功能需求和技术特点,选择一款合适的嵌入式处理器,在此平台上构建了功能完整的嵌入式Linux系统开发平台。经过对Qt的GUI设计的研究,以Qt的基础类库为前端设计嵌入式多媒体播放器的前端控制图形界面。通过创建QProcess进程,实现了对播放过程的控制,与后台Mplayer进行通信,实时读取并显示播放信息,并在指定窗口对音视频码流进行输出显示。通过测试表明,本系统达到了应用于车载音视频播放的要求,对相关开发具有重要参考价值。
作者:李飞 单位:云南工商学院 设计学院
[摘要]
对象编程、嵌入式开发等新开发模式的应用,使计算机软件开发更具有智能化、服务型和网络化的特点。本文主要是介绍计算机的具体应用模式,并且探讨了计算机软件的发展趋势。
[关键词]
新时期;计算机软件;开发技术
当前计算机技术的飞速发展,给人们的日常生活带来极大的便利,网络的普及更是推动额计算机软件开发。软件开发程序主要是通过代码实现功能的系统化定位,为我国各行各业提供更多的便利。
1计算机软件开发的重要性
计算机发展过程中以软件工程为主要发展核心,其是推动信息技术的主要力量。软件领域的发展对计算机网络有着至关重要的影响,网络化的普及也带动软件行业的长远发展,网络与软件相辅相成,共同推动计算机的整体发展状况。当前是计算科学不断前行和发展的时代,软件开发技术要紧跟时展潮流,抓住机遇,迎接挑战,为用户带来更多安心的服务。
2计算机软件开发现状
2.1计算机软件的概述计算机软件主要是通过开发技术得到的相应应用软件和系统软件,这是计算机发展中的重要产物。应用软件的最终工作目的是为了解决用户的具体问题,并且为用户提供方便快捷的工作方法。大到淘宝和银行客户端,小到单机游戏、应用软件,都是计算机软件的实际使用案例。系统软件是计算机本身的软件,其中比较常用的软件是监督控制软件、操作系统软件、应用软件等,其是用户正常使用计算机的必要保障。
2.2计算机软件的发展现状计算机软件具有发展迅速、方便快捷等特点,在短短的几年发展中,逐步普及到千家万户,也推动了计算机技术的发展。我国软件产业的迅速升温,造成了软件开发人才缺失,尤其在应用领域内,对技术开发人员的需求极大。
3计算机软件常用的开发方法
随着科学技术的飞速发展,计算机技术也开始日趋成熟,因而,选择合理的计算机开发方法,可以保障其开发质量,控制开发进程。当前开发时间非常重要,现在在美国硅谷,一项技术的更新换代周期是一周,所以作为开发人员要争分夺秒的开发新产品,创新理念,适应变化发展的市场。目前,比较热门的软件开发方式有三类:第一是生命周期法;二是自动系统开发法;三是原型化法。
3.1软件生命周期法该方法的出发点是时间,从时间角度拆分软件的各类问题,将软件划分为若干个开发阶段。不同的阶段开展不同的技术方法,每一个阶段都要适应阶段发展要求。通常情况下,软件生命周期分为6个阶段,换句话也是就是6个月左右。
3.2自动系统开发法该方法主要运用的工具是第四代技术中经常运用的开发软件,开发过程中强调更多的是开放的内容和实现方式,但是没有对如何实现作出具体说明。
3.3原型化法软件开发者在没有确定软件适用性的基础上,通过描述详尽的软件目标法,采用合适的原型化法开展研发工作。开发过程中开发人员要处理好整体系统化功能,并且分析和认定相关的其他事宜。
4计算机软件开发技术的应用
计算机软件开发的前提是优化创新现有软件,为社会发展提供基础性的服务,因此,相对于一种计算机软件开发技术而言,能够开发成功的关键所在就是软件的具体实用价值。接下来笔者主要通过计算机具体的开发实际例子,简要说明软件开发技术的应用价值。当前比较常用的两种运作模式,包括单机版的运作模式和VB6.0+Access开发模式,VB6.0+Access开发模式开发涉及的数据库开发对象是Web+XML+ActiveX。两个技术开发形式分别安装到客户端上面,单机运作模式的安装相对来说较为简单,直接安装就能解决问题,这主要是受到Access驱动和VB虚拟机微软历史版本的影响,也是说系统能够做到兼容,因而软件安装很方便。但是如果想要安装第二款产品,就需要在安装ActiveX时,更改浏览器,才能顺利地完成安装活动。安装结束后,用户在一定时间内做好两种使用效果的比对,在两种方法的比较中,可以发现第一种安装方法没有任何问题,并且运行比较稳定。特别是在做修复安装时,要求用户之间相互独立,简单地实现兼容。但是使用中必然会有利有弊,长时间的运行中,速度必然会减低,所以需要做好转档。第二种运行方法在系统运行和维护中,通过限制浏览器的安全设置,给用户带来诸多不便。
5计算机软件的发展趋势
第一,网络化是计算机软件当前的开发背景,计算机软件是依赖网络才能运行的系统,因而在运行时通过带动网络化发展模型,让网络和计算机软件两者双赢,网络的产生为发展平台提供更多的便利条件,因而软件开发要趋向网络化发展。第二,服务化。软件开发主要目的是更好地服务用户,在发展中为用户提供更多便利,未来的计算机软件发展应通过运用先进技术,树立人性化发展理念,满足客户需求,所以服务化是计算机发展的未来趋势。第三,智能化。在计算机的发展中,智能化是必要的发展趋势,开发人员要运用计算和其他智能化运行模式,让计算机接近人的思维,这也是新技术的革新理念。
6结语
计算机软件在现代社会经济生活中占有极其重要的地位,其发展能够带动整个社会的科学和技术的进步。计算机软件在发展中不断推动网络化的普及,并且重视计算机软件开发状况,使用新的开发技术,这为人类社会的发展提供不竭的技术支持。
作者:程艳楠 单位:大庆油田第九采油厂 信息中心