时间:2023-08-06 09:02:37
序论:速发表网结合其深厚的文秘经验,特别为您筛选了11篇软件开发与定制范文。如果您需要更多原创资料,欢迎随时与我们的客服老师联系,希望您能从中汲取灵感和知识!
随着企业的不断发展,信息资产的不断壮大,标准而统一的管理方式越来越得到重视。在终端维护的领域中,为减少环境的复杂度,降低信息系统推广成本,提高管理和维护效率,终端标准化配置是必要的。然而在维护这些标准化配置的过程中,很多操作都是重复的,耗时的。《终端软件安装一键定置工具》(以下简称《软件》)以应用软件自动脚本配置为核心,实现多应用软件的统一配置、一键打包、自动安装的功能,从而提高终端软件维护效率,减免人为操作的烦琐和错误。
2.设计原理
桌面应用软件的安装操作以事件驱动为原理,即通过鼠标点击、键盘敲击等事件来触发软件下一步动作,要想实现应用软件的自动安装则必须按照一定的顺序在既定的时机对应用软件上的组件(控件)发送特定的事件,从而驱动软件完成一系列动作,实现对目标软件进行一系列操作的定义我们称之为脚本录制。将我们需要的操作录制成脚本,可以实现自动、准确、重复的操作,提高执行效率。
脚本录制在软件测试中广泛被应用,本软件基于脚本录制的原理,通过Hook技术获取应用窗体控件信息,通过本软件提供的功能先控件发送特定事件,完成安装脚本的录制。最后通过对录制好的软件进行管理,实现多应用软件安装脚本组合,最终导出完整的执行脚本。
本软件录制的脚本符合autoit脚本标准,通过autoit工具将脚本和源安装文件统一打包成可执行文件,实现终端软件安装一键定置。
3.主要特点
(1)、兼容性好,《软件》定置的软件可以在不同的windows桌面环境自动运行。
(2)、配置简易,只要理解自动安装的工作原理,就可以简单方便的配置软件自安装脚本。
(3)、扩展性强,《软件》提供了基本的自动配置操作,同时也集成了自定义操作的输入,只要熟悉autoit脚本就可以做出更为复杂的定置执行包。
4.具体功能
《软件》包含了如下几个功能模块:自安装脚本录制、自安装脚本管理和脚本编译模块。模块具体功能如下:
(1)、自安装脚本录制:该模块提供了制作应用软件自安装脚本的功能,通过钩子技术实现对应用软件句柄信息的获取,然后再通过界面完成软件安装配置,最后通过流的方式叫脚本独立保存在文件中。
(2)、自安装脚本管理:该模块提供对录制脚本删除、打包导出录制脚本功能。
(3)、脚本编译模块:该模块实现了对导出的自安装脚本的封包工作,最终输出一键自安装包。
5.主要操作模块
5.1录制自安装脚本
用户通过系统主界面进入到“创建自动安装脚本”界面,此时程序会在系统注册键盘和鼠标的钩子程序。选择要录制的文件,点击“运行程序”按钮,开始自安装脚本的录制。应用软件启动后,根据界面提示组合键“ctrl+s”启动鼠标钩子,此时用鼠标点击应用软件,激活应用软件窗口,然后再按组合键 “ctrl+c”停止鼠标钩子,程序将捕获到应用软件的句柄。通过该句柄我们可以获取到应用软件的组件信息,如图1所示:
图1
有了应用软件的控件信息后,我们在通过程序提供更多操作选项操作应用程序上的控件。如点击“确定”按钮,如图2所示:
图2
自动安装脚本是一种类似BASIC脚本语言,它运行于AutoIt环境。只要我们初步了解autoit的运行原理和简单的语法规则,我们就可以做出复杂的而统一的自动操作。完成对应用软件的控件操作后,点击“保存”按钮,系统将录制脚本和应用软件信息以流对象的方式保存到硬盘上。然后我们再通过自安装脚本管理模块去管理这些流对象。
5.2自安装脚本管理
《软件》在启动后,会从特定的目录下将录制好的自安装脚本对象读取到内存显示到界面,我们可以对这些脚本对象进行删除、打包等操作。选择需要打包的文件,添加到“打包文件”列表,然后点击“导出脚本”按钮,弹出“导出自动安装脚本文件”界面,如图3所示。通过该功能可以实现多应用软件的自安装脚本打包。
图3
5.3脚本编译模块
有了打包好的脚本文件后,我们就可以编译我们需要的自动安装可执行文件了。编译这些文件需要autoit环境,为此我们需要安装autoit-v3-setup.exe(免费软件)。右键脚本文件,选择编译,得到自安装可执行文件,如图4:
图4
6.软件应用
根据目前终端维护的需要,使用该系统定置出一款通用配置多应用安装包,输出脚本文件如下:
图5
最后编译成自安装文件,将安装文件一并封装:
1.引言
外压容器失稳教学实验是将容器在外压作用下造成失稳变形的一种典型实验,具有操作简单、结果直观等特点,故长期被作为过程装备与控制工程专业开设专业实验课的必选实验。由于早期实验测试程序是基于VB6.0开发的,一直以来存在两个显著的缺点:一是功能拓展性较差,测试数据和参量有限;二是兼容性不好,目前无法应用于Win7,Win8及64位系统。为此,笔者针对传统验证型外压容器失稳实验的不足,采用大型工程软件MATLAB开发外压容器稳定性实验测试程序和控制系统,便于监控外压容器稳定性,确保实验过程的安全性。
2.外压容器失稳理论及外压容器实验测试系统介绍
2.1外压容器及其稳定性说明
在外压作用下,筒体突然失去原有形状的现象称为弹性失稳。容器发生弹性失稳将使容器不能维持正常操作,造成容器失效。外压圆筒在失稳以前,筒壁内只有单纯的压缩应力。在失稳时,由于突然的变形,在筒壁内生了以弯曲应力为主的附加应力,而且这种变形和附加应力一直迅速发展到筒体被压瘪或发生褶绉为止。所以外压容器的失稳,实际上是容器筒壁内的应力状态由单纯的压应力平衡跃变为主要受弯曲应力的新平衡。
容器的失稳形式有整体失稳和局部失稳两种。本实验测试系统研究的是实验试件整体失稳的情况,整体失稳根据失稳方向分为侧向失稳和轴向失稳两种[1]。
容器由于均匀侧向外压引起的失稳叫做侧向失稳。侧向失稳时壳体横断面由原来的圆形被压瘪而呈现波形,其波形数可以等于两个、三个、四个。轴向外压则引起容器轴向失稳,变形为径线由直线变为曲线。
2.2外压容器实验及测试系统说明
外压容器失稳实验是将容器在外压作用下造成失稳变形的一种教学实验,也是压力容器失效破坏的一个典型教学演示实例,它具有操作简单、结果直观等特点,被作为过程装备与控制工程专业开设专业实验课的首选实验。国内高校如浙江大学、南京工业大学等一直致力于稳定性测试装置的研究和开发。
3.基于MATLAB软件开发外压容器稳定性实验控制系统
3.1MATLAB软件简介
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式,代表了当今国际科学计算软件的先进水平。
3.2基于MATLAB软件开发实验系统
以下为初始界面的源代码
functionvarargout = untitled1(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @untitled1_OpeningFcn, ...
'gui_OutputFcn', @untitled1_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
ifnargin&&ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
ifnargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function untitled1_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
functionvarargout = untitled1_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
4.总结
1.建立领域特征的模型
1.1GIS应用软件开发领域中建模的方式。在本研究中,主要是通过对领域工程中的理论知识进行研究,以面向特征领域工程的方法对特定领域边界进行确定,并且在此基础上对具体的信息源进行有效的识别,其具体的操作方法如下:首先,领域边界模型主要是根据领域结构图以及数据流程图表示方式来建立的。其次,在获取特征的时候,通常会采用需求聚类联合人工分析的方式来获取。再次,通常会采用FORM方式的特征模型来建立特征模型中元模型。另外,对其特征模型的检验主要采用fmp工具来检验[1]。
1.2GIS应用软件开发建模的流程。在领域边界模型中包括领域结构图与领域数据流程图,这些图形需要通过信息源进行分析,在GIS应用软件开发建模的过程中,其主要步骤与流程如图1所示。
图1GIS应用软件建模流程图
2.定制特定应用特征模型
2.1特征模型定制的基本原理。在特征模型定制的过程中,需要对其原理进行明确,以便为GIS应用软件的开发提供基础与前提条件。在特征模型的定制中,其主要原理是从领域特征模型逐渐向应用特征模型的定制流程,病按照提举的应用特定需求对该模型的变化特征进行适当的绑定或删除,以便得到适当的应用系统需求。在特征模型中,其特征根据变化性分析可以将其分为变化性特征与共性特征两个方面。在特定额领域中,应用系统基本都存在的特征即共性特征,否则为变化性特征。共性特征主要是度领域的共性进行反映,其领域中的核心组成部分。而变化性特征是对领域中具有的变化进行提现,是以共性特征为基础的,两者不能对立存在。在特征模型定制的过程中国,共性特征是不可删除的部分,其定制的核心问题是对变化性特征进行判断与绑定。另外,按照领域征的可选择以及相互之间的关系进行分类,可以将其分为可选特征、强制性特征以及可替换特征。其中可选特征指的是由无到有的可供选择的特征;强制性特征是必备的特征,主要体现出领域中的核心与特点,是其基础结构;可替换特征指的是至少有一个被选中的特征,不同系统中对统一特点具有不同的处理方式。此外,根据特征的内容可以将其分为领域技术类、实现技术了、操作环境了以及功能类特征[2]。
2.2特征模型定制的基本原则。在特征模型定制的时候,需要对其基本原则进行分析,其原则主要包括在符合领域特征模型中,在特征之间约束的前提下对领域特征模型进行适当的裁减,以便更好的满足特定应用的序曲。但是,由于该模型中相应的形式化基础比较缺乏,针对该模型的检验需要依靠其他逻辑方法,包括一阶逻辑、命题逻辑方法等。在建立模型的时候,需要通过特征间的关系进行分析,以便建立特征间的约束关系,同时,还需要借助输血命题逻辑演算方式对约束关系进行监控,以便更好的为领域特征模型的制定提供依据。
2.3特征模型定制的方式。在根据特征模型中的各种约束进行分析,并且在建立追踪性领域特征模型之后,需要根据相关需求,对领域特征模型中的操作流程进行适当的剪裁,以便获取适当的模型。但是在实际制定的过程中,需要对剪裁的结果进行适当的扩充。通过将反复机制引入其中,对特殊情况的需求进行不断的更新与改进,将这些新的特征逐渐加入到应用模型当中,以便对该模型进行有效的开发与利用。
3.特定应用特征模型的实现方式
3.1特定应用特征模型的概念构件映射。在模型中,要想对需求急性有效的表达,需要通过特征来完成,只有将需求特征转换成为主流的编程技术能顾识别的构件来达到目的。在实现的途径中,将特征映射成为构件hi急需要解决的问题,其关系到领域工程的工作效率。在传统软件开发的时候,对象转换主要是根据系统分析人员的工作经验以及思考方式来完成的。如果在对象转换的过程中,能够及时发现存在的否中映射原则,就能够有效的缩短软件开发的时间,促进软件生产质量的提高。其中FORM方法征转换构建属于一种一对一的映射关系,通过学者的研究发现,在此基础上可以提出多对一或一对多的映射关系[3]。
3.2GIS概念构件的实现。在GIS组件概念的实践过程中,由于其具有一定的复杂性,需要对其进行细致的研究。同时,为了有效的提高该软件开发的质量与效率,以便减少排不必要的劳动力,需要在基于构件的软件开发技术中对GIS软件技术进行有效的开发。在其中大粒度构件与某个特定的领域具有密切的联系,即存在一定的领域相关性,同时,其复用率较高,通过对进行全面的研究分析,GIS组件转化成对象模型的具体方式如下:首先,需要对其基础设置构件进行挖掘。其次,需要借助设计模型以及相关的理论知识,实现概念构件模型。
4.总结
随着社会经济的快速发展,在信息技术与计算机技术高速发展的前提下,GIS应用软件开发变得尤为重要,其在各个领域中的应用也随之扩大。通过对GIS软甲进行有效的开发,确保其开发的产品更加符合特定领域的需求。通过对其进行开发与利用,可以确保开发的产品具有扩展性与可维护性的特点,更好的适应社会的发展需求。(作者单位:江西现代职业技术学院)
参考文献:
从2004年8月成立时的不足30人,到如今的500人,以及预计年底的800人规模,神州数码西安软件开发中心在两年的时间里获得了几何级数的成长。
“西安软件开发中心的建设,标志着神州数码正式摆脱了软件定制化开发的传统模式,迈向国际通行的规模化、规范化的基地化开发新阶段。通过基地化开发,软件开发成本降低,软件价值获得极大的提升,公司业绩也获得了成倍的增长。”潘东说。
目前,国内绝大多数应用软件厂商仍在沿用在客户现场开发的定制化开发模式,缺乏规模化发展的能力,也缺少国际通行的规范的软件研发管理流程,这严重阻碍了中国软件业的未来发展。
“目前国内很多软件企业的项目按计划完成率不到70%,其中全球软件开发项目中只有16%能按计划完成。”
早在2002年,中国人民银行支付科技司司长陈静就表示,银行业大型计算机系统和应用集成系统面临着全面的改造,而国内的IT企业鲜有能承担起金额在5000万人民币以上的系统的改造任务。
此外,专门为某一客户开发的软件系统,服务商需要从这个客户那里收回全部的开发成本,因此往往造成项目开发费用的居高不下,使服务商和客户均承受着巨大的压力。试想,一个上千万元的大型项目完全采用定制模式开发,系统的质量姑且不论,只系统开发所耗费的时间,又有几家软件公司承受得起呢?这样的大型项目,客户怎能不慎之又慎。
2004年8月,神州数码在西安建设超大型软件开发基地,并同步建立了规范的软件开发过程、严格的质量管理体系、高效的员工培训体系和优良的软件开发集成环境。基地对银行客户项目、内部研发项目以及国外集成产品进行集中开发,同时还配套建立了提供专业测试服务的测试中心和IT外包的运维中心。
目前,神州数码西安软件开发中心已经通过了CMMI 3级认证,并采用国际标准的软件工厂式集约管理,不仅软件的开发时间被成倍乃至几十倍地缩短,而且,由于建立了优良的集成开发环境,配备了先进的测试工具和质量管理体系,开发出的软件系统的稳定性和质量也得到了很大提高。
开发中心执行“3P项目管理体系”,覆盖了Project(项目)、 Procedure( 过程)和People(人员)三个管理层次,将“按预期交付”的目标自上而下贯彻到参与项目的每个人。
1 产品化与定制化软件综述
产品化软件和定制化软件在流程电子化方面,尤其是管理支撑类流程方面存在一定程度的重叠,但两者的定位不管是从产品的体系架构,或者是在实施方法论等方面还是存在很大的差异。从更好地满足客户的核心业务需求的角度出发,相较于传统的产品化软件,定制化软件在满足企业核心业务流程管理方面是具有明显优势的。但是随着产品化软件的不断发展和完善,对于数据处理要求不是很高,业务逻辑相对简单的系统来说,产品化软件已经逐渐体现出它的优势。目前,主流的产品化平台软件中的一个核心功能应用在于流程管理,从专业角度来看,产品化平台软件已经含有流程管理的功能模型,并已经完全含有项目化平台软件的核心功能,例如表单建模、流程引擎、权限模型等核心功能点。
2 产品化软件与定制化软件优劣势分析对比
2.1 用户体验和页面友好性方面的对比
定制化开发软件随着使用年限的不断增加,软件开发技术的不断发展,导致系统兼容性、UI可用性和易用性不断下降,随着计算机操作系统、浏览器软件和OFFICE等办公软件的更新换代,经常发生按钮功能不正常,系统页面显示不正常等问题。大多数企业员工信息技术水平有限,很难自行对浏览器和操作系统进行兼容性调整和设置,从而降低了日常的工作效率,也加大了信息化部门的工作量。而产品化软件方面则不存在以上问题,由于产品版本迭代速度较快,能够做到持续改进,所以能很好的适应其周边软件的不断升级更新,系统页面友好美观,与日常办公软件能够良好衔接,基本上不会发生由于系统兼容性而导致系统功能不正常的问题。
2.2 系统功能、开发周期与开发成本方面
产品化软件其优点在于能够满足客户绝大部分通用的需求,且建设费用相对较低。由于事前已经有较为成熟的产品化功能模块,从而能够在需求分析阶段结束后直接进入系统的搭建与测试阶段,省略了传统软件开发生命周期中基本设计、详细设计、代码编写这几个最为耗时费力的工程段,能够做到快速搭建、快速部署、快速上线,大大加快了项目实施进度。由于有产品化功能模块和可视化系统搭建平台的存在,整个项目实施过程中不需要程序代码的编写,所以几乎不需要有很强技术功底的开发人员的参与其中,从而也降低了整个项目建设的人力成本。相对于业务简单通用,变化小,成熟性的公司,这种产品化软件的性能价格比还是很有吸引力的。
定制化软件方面,软件自身完全可以按照客户的需求来定制,能够做到量身定制,在客户一些细节需求的对应上较为灵活。但定制化软件的建设实施工作由于是从零开始,从无到有,所以需要经历完整的软件开发生命周期,相对于产品化软件来说开发周期长,对系统建设人员的技术水平要求较高。另外定制化软件实施的成功必须建立在两个前提条件下,一是客户有一套清晰成熟的管理方法,能够非常明确系统的提出自身的业务需求;二是供应商拥有一批既熟悉业务,又熟悉软件开发技术,而且要具有丰富的开发经验的业务技术专家。这两个条件缺一不可,项目实施的成功与否,周期长短,所实现功能与顾客需求的差异性,都取决于这两个方面。而作为在市场上被广泛接受的成熟的产品化软件来说,在一定程度上是为企业提供了一套管理的思路、管理方法的模板与建议,企业可以去主动地适应产品,把产品的设计理念、管理流程应用到企业自身的日常管理中。所以对于管理思路不是很清晰企业,购买产品化软件不仅是购买了一套软件更是购买了一套较为成熟的管理方法论,也是对成熟先进管理方法的一次学习和浸润。
3 系统维护方面的对比
3.1 新增、变更需求对应方面
对于定制化软件来说只要发生新增需求或者变更需求都必然需要通过修改代码的方式去应对,代码的修改和增加即会产生相应的开发工作量,则需按工作量付给供应商相应的开发费用。
而产品化软件由于采用可视化、配置化的系统搭建平台实现业务需求的理念,在流程的调整变更与新增、表单内容的调整变更、页面布局的调整变更等方面,全都可以通过系统管理员在可视化管理平台上自行调整,不需要通过修改增加代码的方式去实现,所以节省了很大一部分由需求变更所产生的开发费用。只有通过后台配置不能实现的新增、变更需求,才需要与供应商沟通进行定制化开发并产生相应的费用。另外,进入维护阶段后只需支付供应商一定数量的电话服务费用,不需要供应商提供专员在客户现场进行维护工作。
综上所述,产品化软件后期可以根据业务流程变化灵活调整,经过培训的企业信息化人员可自主完成,无需依赖厂商,基本不产生系统升级开发费用,与定制化软件相比大大节省了系统维护成本。
3.2 系统维护方式与服务响应时间方面
定制化软件维护方式的优势在于由于开发人员在长期客户的现场服务,且对系统架构和源代码以及公司业务相关业务较为熟悉所以响应速度较为迅速。但随着定制化软件使用年限的增加,维护人员的流动不可避免,所以会造成代码的健壮性与可读性不断下降,导致只有专门的对系统极为熟悉的供应商开发人员才能对系统进行维护工作。通常的项目化软件维护周期中,随着系统上线时间的增加,系统运行越发稳定,项目团队从维护成本上考虑通常会逐年递减系统维护人员,甚至最后整个系统的维护工作只有一个维护人员担当完成,如果维护人员较为单一,倘若此时人员发生变动,新的维护人员很难在短时间内理解系统实现方式以及所有源代码,很难在短期内开展相关维护工作,从而使系统维护工作出现空窗期,这对系统的稳定运行可能造成较大的影响。
从传统软件分类
到四级开发模式
从软件开发商的角度看,传统的软件包括两类: 一类是针对企业业务需求定制的软件系统,另一类是通用的商品化软件产品。
定制软件这种方式的优点是能最大程度地从企业实际业务管理需要出发,开发出适合本企业个性特点的管理软件系统; 缺点是开发费用高、实施周期长,并且由于软件没有经过长时间的运行使用,存在可靠性、稳定性不足等风险,为此企业不得不配备一个技术过硬的团队随时维护软件,这对企业的信息化管理部门提出了更高的要求。另外,在这类定制开发的项目中,往往会出现编码不规范、技术文档管理混乱等现象,当软件需要再改造的时候,技术人员很可能读不懂原始代码,又无从可查,造成企业信息化投资的浪费。
商品化软件的优点是在开发过程中融合了优秀的业内管理经验,并且随着市场的应用成熟度提升与积累,软件不断优化、升级、换代。但是,这类软件无法解决企业的个性化业务需求。每个企业的管理模式、运营模式都不可能完全复制,正如每个企业的业务流程都不尽相同一样。因此,不同的企业对管理软件的应用需求是不同的。这种需求的不同既可以体现在不同的行业上,如医药流通企业选择业务管理系统时对GSP管理模块会重点考察; 需求的不同也体现在行业内部,如大中小不同规模的同行业企业对管理软件的需求就会存在很大差异。更值得关注的是,企业在应对激烈的市场竞争时,其经营也在不断变化,这就使得企业的管理软件要具备随需应变的能力,而商品化软件对这方面的响应明显要迟钝得多。
显然,不管是定制软件还是商品化软件,都有无法跨越的鸿沟。因此,业内一些专家一直都在探索一条介于定制软件和商品化软件之间的模式,比如平台化软件的提出、比如SOA架构的引入。但是,具体以何种模式让软件开发商与企业共同参与其中并没有标准。笔者所在的时空软件经过十余年的探索,积累了一套四级开发模式。这种模式可以兼顾软件成熟稳定与满足企业个性化需求的双重需要,并在几千家企业中得到成功实践。
从通用的基础平台到形成行业解决方案的四级开发过程
四级开发模式解析
四级开发模式是指在软件基础平台公共化的基础上满足企业个性化需要,适应企业功能扩展需求的一种方案。具体如下:
第一级,基础技术平台开发。软件开发商技术研发部门完成管理软件的底层技术架构,涉及开发语言、操作系统、数据库等。在这一级,就要在开发团队中植入“用较少开发资源适应最多客户”的思想,既要搭建一个公共性的平台,也要设计开发一系列的平台工具,使开发简单化、普遍化。简单化就要求平台工具易学易用,普遍化则要求不仅软件公司的技术人员用得好,还要使软件用户的技术人员会用、用得好。
第二级,行业级解决方案研发。软件开发商集合行业专家、信息化专家针对不同行业的特点应用基础技术平台提供的工具形成行业级通用解决方案,这是管理软件的基本模型。在这一级,会设计出很多可复用的功能颗粒,最后根据不同用户的需要,整合颗粒就可实现基本需求。这里的“颗粒”有大有小,也就是说,功能颗粒既可以是单一功能,也可是一组功能的集合,具体视功能的关联性而定。例如,管理软件中组成业务流程的最细小功能有很多种,我们把它叫做服务颗粒,通过这些服务颗粒的不同组合就可以实现流程的个性化,例如采购管理由采购决策、采购计划等功能组成,这些可以看成是粗的功能颗粒,然后采购计划又有更多的细小功能,这些就是最底层的细颗粒。这些颗粒在软件中的具体体现可以是业务报表、应用表单、各类方案等,但不管如何展现,这些颗粒都应该是数据化的。数据化的概念就是这些服务颗粒存储在数据库中,而非编程语言开发。各个服务颗粒都是独立的,这样有利于新增功能扩展。在应用部署时,可以将不同的服务颗粒整合,提高程序的伸缩性和扩展性。
第三级,服务商项目化。针对企业个性化管理需要,结合企业未来发展规划,项目的实施团队在行业级解决方案基础上,应用基础技术平台提供的规范工具实现项目需求。在这一环节,一般是由软件开发商的实施团队(或其授权的有资质的实施团队)与企业的信息化部门共同完成。这一点很重要,首先只有企业的员工才能更深刻理解企业的管理需求,其次也只有企业的员工能将业务性的语言转化成技术性的语言传递给软件实施的乙方,帮助乙方理解企业的管理特点、存在哪些管理瓶颈。在乙方深刻理解的基础上项目化会更成功,也才能真正通过软件工具实现提升整个企业的管理水平的目标。同时,共同参与的过程也是知识转移的过程。
第四级,用户个性化。服务商项目化后,管理软件就可在企业内正常运转。但是,企业是动态发展的。这时需要管理软件也能迅速地“动”起来,以满足企业管理过程中“变化”的需求,比如流程的修改、功能的修改等。这些“变化”可通过参数设置实现,比如为满足不同用户需求而设计的开关,类似业务流程中是否走某流程的选择; 也可以在不改变程序的基础上通过修改打印格式、报表格式、资料属性、权限设置等进行个性化设置; 还可以借助基础技术平台提供的开发工具对软件程序进行修改(当然,这是基于一定准则的)。只要基于开发标准,软件开发人员、实施技术人员甚至客户本身的技术力量都可以整合进来,而且能够在现有基础上进行有创新性的工作。
四级开发模式中,第一级和第二级需要在软件开发商内部完成,面向客户输出的是具有行业特性的基本产品模型; 第三级的项目化成果是向客户输出的可运行的软件系统,一般甲乙双方会在《技术服务协议》中就项目范围进行约定; 第四级是软件系统的灵活性、适应性、开放性、重用性的集中体现阶段。
值得提醒的是,四级开发模式的成功应用既是软件开发商不断积累行业经验的过程和行业解决方案优化的过程,也是用户建设适合企业个性化需求的信息化建设过程。因此,需要甲乙双方的共同参与、共同努力,才能真正实现管理软件的价值。
案 例
四级开发模式在同仁堂中药调剂软件中的实践
对很多人来说,“药店调剂部”是一个很陌生的名字,实际上中药调剂就是指按照医师处方所开列的中药药方,准确地为患者配制药剂的操作技术。中药调剂通常包括审方、计价、调配、复核、包装、发药等六个环节。因此在制作工艺、管理过程方面相比西药管理有很多不同之处,而且更为复杂和繁琐。在中药调剂方面,同仁堂计划把医馆和药店作为一体进行统一管理,把医馆的诊断、开方等业务一并纳入药店的业务流程,与药店的收款、付药一体化管理。为此,同仁堂需要建立一个中药调剂管理信息平台,将数百年的调剂经验、知识、流程数字化,内置到调剂信息管理系统中。
而通过时空KSOA平台,同仁堂药店建立了涵盖调剂收方、审方、划价、调剂、加工、复核、发药的信息化流程,其中包括常用药材400多种、非常用药材1000多种以及这些药材规格、等级、别名、处方、脚注、古方、茶方、用法用量、配伍禁忌等。
KSOA平台是以技术平台为基础,提供大量的开发工具供各子系统应用,其子系统包括供应链管理系统、连锁管理系统、电子商务系统、POS同步收款系统、财务管理系统、质量管理系统、人力资源管理系统、协同办公系统、在线门店管理系统等。KSOA将业务流程和岗位职能相结合,搭建企业的采购、仓储配送、销售、财务结算、账务处理、绩效考核、对外协同等功能框架,满足企业自上而下的纵向管理需求,横向的业务、财务、人力资源、协同办公等应用,为企业提供一个最大的应用空间。
同仁堂中药调剂管理信息平台项目就是在KSOA平台提供的基础的行业解决方案基础上实现的。
如何将这三类服务系统化、观念化、流程化,实现统一规划、科学管理、提高服务质量,是现阶段高校信息化建设成功实现的原则和标准。
二、数字化校园中云计算提供的三大服务
(一)提供基础设施服务
在数字化校园中,各类应用的提供都依托于硬件设施,包括服务器的分配、虚拟机的设置、存储空间的利用、数据库的使用、网络设备的搭建及机房的统一管理(安全、供电、温湿度等)。学院中教学部门、行政部门及教辅部门都有各自的软件应用,这些部门必须有基础设施来提供支撑,它们统一由学院云计算中心来提供这些基础服务,避免资源浪费,实现集中管理,资源共享。
(二)提供平台的服务
服务平台指各种业务运行所需的支撑系统,它包括操作系统、数据库系统及网络系统等,校园云计算可为用户提供以下的服务:1、服务器/虚拟机的IP地址、用户名和密码等;2、数据库空间的大小、用户登录和连接的方式等;3、网络的VLAN的定义和划分等;4、用户操作系统类型的选择、数据库系统类型的确定等;5、为高端用户提供各类软件开发平台。这一类服务也叫中间层服务,它是硬件和可见的应用之间的中间桥梁,是系统软硬结合重要的组成部分,也是云计算服务的关键节点。
(三)提供软件的服务
数字化校园是以计算机和网络为基础展开校园各项工作的一种环境架构,数字化校园中的各项活动的进行、信息通信的畅通,都是各类软件的正常运行的结果,因此为校园中广大用户提供优质、便捷的软件服务是校园云计算的重要工作,这种软件服务包括:1、各类教学、办公用软件;2、安全防护软件;3、各部门专门类的软件(财务系统等);4、学院统一门户网站、数字资源管理系统等。在当今互联网+时代下,根据用户需求实现个性化定制,智能推送对软件的服务理念提出了新的特色和要求。
三、云计算服务模式在高校应用中的优势
(一)提供统一管理的基础设施服务在应用中的优势
服务器、存储、网络设备的统一购置,集中管理维护,专业人员专门管理,避免盲目投资,减少硬件的重复采购,节省了人力物力。服务器、存储云计算化后,采用虚拟技术、磁盘阵列技术,实现了系统的整合与集成,大大提高了基础设施的利用率,更亦实现资源的共建共享。
校园云计算中心对基础设施集中管理,为各系部提供硬件方面的服务,各部门作为申请人,通过申请流程,实现服务器和存储的“租用”服务,作为使用者的申请部门,只需关心要“租用”的服务是什么硬件即可,与硬件的原理、价钱、安装、维护、调试及硬件设备存放位置均无关。通过这种服务模式,实现了工作的细化,各司其职、各取所需,提高了工作效率,增大了协同办公的能力,发挥了团队的作用。
基础设施机房的建设比较苛刻,资金投入也比较大。环境要求、电力要求、安全要求都要达到一定的标准,这样才能保证服务器、存储正常运行。校园云计算中心负责这些基础设施的规划、建设和管理,消除了各部门重复建设、设备冗余、信息孤岛的状况。这种服务方式不仅降低了学院运行成本,也体现了学院统筹规划、加强服务的理念。
(二)为各种应用搭建平台的服务体现了信息化工作的专业特色
1、应用软件所需支撑平台的统一建设与管理
各部门的网站、应用的建设,需要操作系统、数据库系统的支持。这些系统类型、版本的选择、安装、调试都不是非专业人员所能及的工作,将此类工作转化为云计算中心提供的服务,能大大减轻用户的负担,使用者只关心平台的类型和功能即可。
2、提供安全、可靠及灵活的软件开发平台服务
软件开发平台作为服务提供给用户,可以为那些有软件开发能力的部门提供自主软件开发的条件,实现各自的软件定制,扩展某些应用的功能。云计算服务中心将用户所需的开发平台部署在虚拟服务器中,实时更新、升级,监控平台的运行情况,保证开发平台的正常使用。
(三)以个性化定制为理念、以推送为手段的软件服务是互联网+时代下的创新模式
1、校园云桌面的应用很好地体现了个性化定制的服务理念
根据各部门、各用户的需求,其客户端的操作系统(XP、WIN7/8/10等)将量身定制,不同应用的用户可任意选择,不同专业、不同课程所需的教学软件将实时推送到其选择的操作系统中,实现“即选即用、即推即见”的办公与教学效果。例如:公共多媒体教室教学用计算机桌面随课程表的变化,会被推送出不一样桌面系统,供不同时间段的教师和学生使用。
2、云办公、云维护策略的实施极大地提高了教师的工作效率
无论是大型还是小型软件开发商都要融入软件开发的全球竞争,那么就需要引进先进的国际标准规范(如ISO 9000、CMMI),通过评估认证来规范软件开发过程管理。而同时在软件开发这个充满创意的领域,运用系统组织的思维、先进灵动的工具服务于过程管理,提高开发效率,也是企业发展过程中不可小瞧的力量。
案例:
高级电子表格软件的开发商RxLaser公司运用TechExcel的跟踪工具DevTrack,通过自动操作和控制软件开发及客户自定义过程,实现持续成长,提高产品质量,赢得客户的满意,是个具体而有借鉴意义的尝试。
开发规模增大带来的混乱
位于美国加利福尼亚州布瑞亚市的RxLaser公司作为高级电子表格软件的开发商,其软件产品通过一个服务器平台与客户使用的软件集成,支持打印、传真、收发电子邮件、EDI和数据存档,并可以按照每个用户的需要进行全方位定制。
过去的十年,众多公司用传真或电子邮件替代了点阵打印表格,不必再花费56美分邮寄一个发票的复印件,节约了大量成本。RxLaser公司将这种进步移植到电子表格上,成为业界领先者。
但成功和快速增长也带来了许多新的挑战,他们必须解决这些问题以保持其领先地位。他们曾使用过一个内部开发系统来跟踪所有的开发和定制化项目。随着业务量的快速增长,系统不堪重负。他们的客户数量在三年间从700多家增长到6000多家,如果没有一个可靠的跟踪解决方案,公司业务将处于危险之中。
“我们不能应对日常事务。”公司总裁罗伯特说:“形势已经不在控制中了。当我们拿到一份文件的时候,我们不知道这份单子已经搁置了多久,我们原本打算如何实施。我们的业务增长得太快了,而越来越多的客户感到不满意。我们只有两种选择:要么寻找合适的跟踪系统,要么被淘汰出局。”
精准问题跟踪避免重复作业
RxLaser公司的开发团队迅速评估和比较了市场上的许多跟踪工具。大约两周后,罗伯特发现他的所有员工都选用DevTrack。“每个人都很喜欢它,因为它快速轻松地满足了所有人的需求。”罗伯特说:“我的员工要求我购买它,他们甚至告诉我,如果我不这么做,他们就不能工作。”
现在,公司将其用于两个业务领域:开发团队和定制化编程,提高了软件开发的效率。开发团队负责运行、维护和管理电子表格软件系统,定制化团队则针对客户的具体细节要求编写对应的表格。
罗伯特认为,在任何软件开发项目中提高效率的关键,都是通过精确跟踪项目的每一部份来避免重复性工作。当把一个完整软件分解成许多程序片段,并把这些片段分配给不同的开发人员时,每个人的工作会有与其他人工作重叠的倾向。
而DevTrack就能使每个开发人员在任何时间都能清楚知道其他人在做些什么。当一些人完成一子项目,他们可以轻松地看到这个子项目和其它子项目如何连接,然后把这些片段无重叠地连接起来,避免了许多重复性工作。此外,管理者还可以看到每一个程序员在开发什么功能,这使得他们可以轻松地管理和跟踪整个项目。
“编写代码时,重复性的工作使公司既费时又费钱,并且不能按时交付。”罗伯特说:“重复是研发工作的最大破坏者。我们的产品需要多人参与,并要在规定日期前完成,如果我们不能按时完成,将损失数目可观的收入和机会,这是时间管理的问题,而DevTrack为我们很好地解决了这个问题。”
多人合作开发,项目很容易失去控制。每个人都在处理项目中相同部分的不同片段,这很容易让人产生混淆,很快他们就会发现不知道对方在做些什么。DevTrack协调团队工作,在任何时候都可以把一项编程工作转交他人。
延伸应用于内部沟通和客户服务
现在,RxLaser公司用DevTrack来制定工作进度,协调服务器产品的功能添加、缺陷修复以及功能增强工作。罗伯特介绍,DevTrack使整个修改工作的管理和协调非常容易,比如有一个开发人员负责项目中很大一块工作,利用DevTrack,他的上级就能准确地知道他当前的工作内容和时间限制,而其他人也都可以看到他每天的工作进程。
最初,RxLaser公司用它做问题跟踪,由于简单易用,后来被用来做工序跟踪。客户安装电子表格软件过程相当紧张,一旦有新客户登录,他们就会为客户发出标准表格,以基于客户独特的需要进行调整。经过相关人员设计调整和客户授权确认,该调整就发送给定制化编程部门,程序员采用修订过的标准,并将变化集成到用户自定义的表格,最后的产品再次发送给客户,等待最终的认可和安装。整个客户安装过程利用DevTrack管理和跟踪工作流和状态,程序员能准确地知道过去3-4个月里的工作,并能在停止的地方准确地重新启动。
罗伯特说:“使用DevTrack的最大收益,就是RxLaser的行业领先地位得以保持。除了帮助我们跟踪客户的优先级和需求,我们还可以使用它来管理设计员、程序员和客户之间的日常内部活动,管理并记录设计人员、编程人员以及客户间的日常交流,这样每个人都可以在任何时候知道问题的进展,并将其继续推进。生病的或是其他部门的员工也可以通过其中的记录,清楚地知道他下一步要为客户做什么,以及客户什么时候需要这些服务。”
研究视点一:跟踪工具的行业应用
工欲善其事,必先利其器。软件开发厂商也是一样,要做到高效的软件开发和过程管理,必须选择运用灵活先进的开发管理工具。早在30年前大师弗雷德里克・布鲁克斯就曾形象地论述说系统开发工作就像一个焦油坑,无论是大型、小型,庞杂、精干的开发团队都在其中挣扎,没有谁能挣脱束缚。这种情况到现在也还是如此――很少有软件项目满足目标、进度和预算的要求。做软件开发项目delay是正常的,这已是圈内人士的共识。
众所周知,对于传统制造企业,其流程和现场管理提高生产效率至关重要,在此基础上产生的JIT生产管理方式堪称一代经典。同样道理,对于人们看不见的产品――软件的设计开发过程来说,也是一样需要有方法、有工具来帮助实现提高其对应的生产效率。
作为问题跟踪功能实现的产品,目前市场上已经有几家或单独成品,或镶嵌在平台之内实现该功能(如TechExcel的DevTrack和IBM Rational的Clear Quest等)。TechExcel的DevTrack赢得RxLaser信赖的关键,是它通过对项目中的每一个任务或细节的精确跟踪,并借助可轻松配置的智能化工作流,使项目参与者能够清楚地知道并执行自己的工作,避免了重复劳动,增强了团队沟通,提高了开发效率。
在国外,整体信息化水平相对比较高,所以IT以外的行业的软件开发和项目管理也是很愿意用工具管理实现的。图一是DevTrack全球用户行业分布图,可以看得出软件厂商是其主要客户,但同时政府机关也在用其做流程管理,教育机构也可以买它做实验室的项目管理。
研究视点二:工具的集成
单打独斗的工具成不了气候,平台化的系列工具软件是其作用最大化的有效途径。DevTrack是TechExcel DevSuite产品系列中的一部分,该系列围绕知识核心,无缝集成了从设计规划到产品所需的所有ALM软件,帮助数以千计像RxLaser一样行业领先的企业实现了科学、愉悦、成熟的开发管理。厂商选择、运用适合自己的集成工具实现开发过程管理。根据发展历史和客户需求以及市场环境的不同,软件开发商的运用工具管理的模式也不同,下面以测试驱动的缺陷跟踪管理、规划驱动的项目管理、需求驱动的产品开发管理三种模式为例来阐述。
测试驱动缺陷跟踪管理模式:某全球领先的软件企业有超过3000多个程序员和测试员在使用DevSuite中的DevTrack和DevTest模块来分别跟踪编程缺陷和管理测试过程。测试团队可以建立各种测试模版并为各个和构建制订测试计划和项目,测试过程中所发现的缺陷能直接建立新的缺陷任务,开发团队解决的缺陷将进行新一轮的测试,如此往复直至完成。这种模式改善了大型开发团队和测试团队间的配合和沟通,确保每个缺陷得到有效的处理。但是项目管理层和设计人员却不能通过这样的模式来主动监控和指导项目的进展,只能根据测试结果做出被动的反应。
规划驱动项目管理模式:某大型的美国游戏企业通过使用DevSuite中的DevPlan和DevTrack模块组合来改善管理监控。这个模式中的DevTrack包括一个管理层工作项目和多个下属的开发组工作项目。项目经理用DevPlan来细分和规划项目,并与DevTrack中的管理层工作项目相连。而管理层工作项目中的每个功能或缺陷任务又与开发组工作项目中的多个工作任务相联系。这样,一个项目经理的每个工作任务都被细分并分派给多个程序员或小组,从而使他能有效确保按计划实施项目。这种模式能有效管理控制开发过程、周期、预算和人员,但是子任务的变化和新功能的增加给整个过程的效率带来挑战。
需求驱动产品开发管理模式:有些企业进一步要求把需求管理也纳入DevSuite系统,以提高整个应用生命周期的管理效率。DevSpec就是管理需求制订并整合项目规划和实施的模块。使用它,产品经理能够规划各个产品版本的功能要求并管理设计文档,以确保实施团队充分理解设计团队的概念产品,减少不必要的重复和废工,最终产生理想的实际产品。
这些模式其实难分优劣,实际运用效果取决于企业自身的开发环境和实施力度,是否选择了适合自己的模式和工具并恰当地运用。同类企业在不同阶段可以运用不同模式,而不同企业也可以统一模式,运用得当能帮助企业提高30%左右的开发效率。
研究视点三:本土软件厂商如何做
基于软件构件的软件开发过程,主要是在利用构件模型,对于构件库中的软件构件进行复制,然后再以组成的形式使其在软件中完成信息交换,从而得到实际的应用。但是对于构件技术的应用,也要具备一定的要素,同时开发的形式,以及构件的模型应用也不尽相同,对此针对于这几方面进行有效的分析,最后梳理出基于软件构件的开发流程,对以后的软件开发研究有所帮助。
1构件定义
构件主要指软件系统中的单个元素,自身具备独立、可替换、满足功能和多次使用的特征;也是软件重复使用时,可以的准确被识别的软件实体,对此借助软件的独立和可重复使用的功能形式,构件完全被用来进行软件研发,使其外界的访问,可以利用构件提供的指定接口进行信息交换;构件之间会通过标准的接口进行信息转换,从而更好的保证软件开发的质量。同时基于构件软件开发,也应当具备应用程序是由构件组装,提供独立服务,以及通用构件设施和服务等相关的要素。
2软件开发形式
基于软件构件的软件开发流程,主要体现在构件定制、构件独立以及接口统一几方面,其中构件定制,主要是指基于软件构件的软件开发,利用到构件或是面向构件,都是事前明确功能和编制好的,同时软件对于构件不同功能的需求,也可以通过构件版本的选择,从而实现功能拓展的目的。其中构件独立,主要是指将构件进行分解,这样就可以有效的避免构件难以维护的情况出现。其中接口通过统一,主要是指软件要想实现跨平台的交互,可以通过指定的接口,从而有效的突破硬件设备,以及空间等方面的限制。
3构建模型分析
因为基于软件构件的软件开发,是在理想构件模型基础之上进行操作的,对此对于目前常用的几种构件模型分析,是非常有必要的;其理想的构件模型如下图所示:目前常用的构件模型,主要包括OMG组织、SUN、Microsoft方面;其中OMG组织中的CORBA[1],是基于开放平台制定的对象体系,同时其分布计算技术们,更是多种厂商所支持的技术;自身具有支持性高、语言开发、系统平立,以及模型完整、效率高的特点。其中SUN中Java2技术,具有语言开发、以及满足不同的业务需求、简化构件服务器繁琐,以及应用广泛的特点。其中Microsoft中COM构件模型,实现了模型之间的相互操作,同时自身也是标准的构件接口,有效的用远程技术,使其构件技术被广泛的应用。
4基于软件构件的软件开发流程研究
基于软件构件的软件开发流程,主要包括整体框架设计、构件库建立、获取构件、构件调整以及重组安装等过程。
4.1整体框架设计
对于其整体框架设计,首先要对于业务需求进行有效的分析,然后找出与将要设计的软件功能需求的共性,然后将功能构件从系统中进行分解,最户将开发软件系统构件化。
4.2构件库建立
构件库建立是为了使构件更好的符合软件开发需求,从而将构件进行统一管理,同时构件库对于软件的重复使用,起到支持、描述、分类、保存等作用;从而更好的保证软件开发的效率。
4.3获取构件
需求分析后的构件,会将满足应用环境的构件选取出来,并进行适当的修改,最后使其组装到将要开发的软件系统中。其中构件的获取,可以通过发现阶段、评估阶段,利用以往开发过的构件,按照系统开发的需求进行选取,或是利用当前开发的系统功能模式,对于构件进行开发和获取,再就是利用购买、利用网络资源进行构件获取。
4.4构件调整
当构件获取后,为了是获取的构件更加的满足系统开发的功能需求,使其符合设计规则,对此需要对于构件的功能,进行一系列的调整;调整的形式分为白盒法、黑盒法以及灰盒法,其中白盒法的主要形式,是通过对于构件源码的修改,使其构件之间的冲突降低,但是对于源码的调整会影响其使用特性,给后期维护造成影响,对此进行有效的维护是非常有必要的。其中黑盒法以及灰盒法,是将源码进行保留,提供构建的扩展机制,或是提供可编接口。
4.5构件的组装
构件库中的构件按照应用环境进行调整,然后将构件的端口进行相互连接,或者将构件与开发软件元素进行连接,使其更好的进行软件开发;每个构件的作用发挥,是在与群体构件组合之后发挥功能的;对此在进行系统研发时要将单个构件进行整合,利用可以容纳不同性质构件的框架进行管理;同时对于构件的安装,可将通用性、功能性强的构件,布置在中央数据服务器上;最后进行粘接代码的编制的工作。
5总结
综上所述,发现软件开发是一项复杂且繁琐的过程,相关设计人员不仅要掌握软件构件的基本性能,还要做好软件开发需求调研分析,工作任务繁重并且头绪杂乱。本文对基于软件构件的软件开发的流程进行梳理,开发人员可以参照整体框架设计、构件库建立、获取构件、构件调整以及重组安装等步骤进行标准化实施,一方面可以减轻开发人员繁杂的工作量,另一方面也能够更好的保证软件开发的质量和效率,希望对软件开发者有所帮助。
参考文献
[1]田容雨.基于软件构件技术的Web系统开发平台的研究[D].山东大学,2011.
[2]叶伟.构件化软件开发及系统测试技术探究[J].计算机光盘软件与应用,2012,03:176-177.
中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)30-0738-02
The Application and Research of Embedded SOPC
QU Xiao-ping,GAO Ning
(Information Science and Technology College, Jiujiang University, Jiujiang 332005,China)
Abstract: Since the raditional means can not meet the current application requirements of embedded systems, a new development method for SOPC is discussed. A complete analysis and research of SOPC with embedded IP hardcor/softcore, which is based on FPGA, is carried out, and the development flow of embedded SOPC is systematically decribed, as well as the critical questions during hardware/software development is discussed in detail. Finally the full development progress of embedded SOPC is explained in detail with an LED as an example.
Key words: embedded; system on chip; SOPC; NIOS II Core
1 引言
随着信息化技术的发展和数字化产品的普及,大规模集成电路技术的进步和制造工艺水平的提高,以计算机技术、芯片技术和软件技术为核心的嵌入式系统开发变得日益复杂。传统的嵌入式系统设计方法已经不能适应当前嵌入式系统的单片容量大、功能多、体积小、设计便利等需求。本文主要阐述一种全新的、灵活的、高效的嵌入式系统设计方法SOPC(System On Progranmable Chip,可编程的片上系统),它是基于FPGA解决方案的SOC,它将处理器、存储器、I/O口、LVDS、CDR等系统设计需要的功能模块集成到一个可编程的器件上,构成一个可编程的片上系统。
2 嵌入式SOPC概述
SOPC(System On Progranmable Chip,可编程的片上系统)是Altera公司提出的一种灵活高效的SOC的解决方案,它是PLD和ASIC技术融合的结果,目前,0.13um的ASIC产品制造价格仍然相当昂贵,而集成了硬核和软核CPU、DSP、存储器、I/O设备和可编程逻辑的SOPC芯片在应用灵活性上和价格上有相当大的优势。现今,普遍认为SOPC是基于FPGA解决方案的SOC,与ASIC的SOC解决方案相比,SOPC系统及其开发技术具有更多的特色,构成SOPC的方案也有多种途径。
2.1 基于FPAG嵌入IP硬核的SOPC系统的优点[2]
基于FPGA嵌入IP硬核的SOPC系统是指在FPGA中预先移入处理器。目前最常用的嵌入式处理器大多是采用含有ARM32位知识产权处理器核的器件。为了达到通用性,必须为常规的嵌入式处理器集成诸多通用和专用的接口,但这样无疑会增加芯片的成本和功耗。如果将ARM或其他处理器核以硬核方式植入FPGA中,利用FPGA中的可编程逻辑资源,可按照系统功能需求来添加接口功能模块,这样既能实现目标系统的功能,又能降低系统的成本和功耗。这样就能使得FPGA灵活的硬件设计与处理器的强大软件功能有机的结合在一起,高率的实现SOPC系统。
2.2 基于FPGA嵌入IP硬核的SOPC系统缺点[2,3]
将IP硬核直接植入FPGA的解决方案存在以下几种不足:
1)由于此类硬核多来自第三方公司,FPGA厂商通常无法直接控制其知识产权费用,从而导致FPGA器件价格相对偏高。2)由于硬核是预先植入的,设计者无法根据实际需要改变处理器的结构,如总线规模、接口方式、指令形式、更不可能将FPGA逻辑资源构成的硬件模块以指令的形式嵌入硬件加速模块。3)无法根据实际设计需要在同一FPGA中集成多个处理器。4)无法根据需要裁减处理器硬件资源以降低FPGA成本。5)只能在特定的FPGA中使用硬核嵌入式处理器。
2.3 基于FPGA嵌入IP软核的SOPC系统
为了解决基于FPGA嵌入IP硬核的SOPC系统存在的问题。人们设计了基于FPGA嵌入IP软核的SOPC系统。目前最具有代表性的软核处理器Altera公司的NIOSII核。
3 嵌入式SOPC应用开发
3.1 嵌入式SOPC应用开发流程简介[3]
1)分析系统需求。2)建立Quartus II工程,建立顶层图*.bdf。3)打开SOPC Builder定义和生成系统(使用NIOSII内核&标准外设和定制指令&定制外设逻辑)。说明:(4.1-4.7)硬件开发4.1)集成SOPC生成的系统到Quartus II工程(自定义的功能模块和Altera的LPM模块)。4.2)连接各功能模块。4.3)选择FPGA型号,并进行管脚分配。4.5)进行编译选项设置。4.6)编译硬件系统生成配置文件.sof。4.7)下载配置文件到到FPGA器件。说明:(5.1-5.4)软件开发。
5.1)使用NIOSII IDE开发软件(硬件抽象层(HAL)&外设驱动程序和用户C/C++应用程序代码和定制的库)。
5.2)设置软件运行硬件环境属性。
5.3)编译软件生成可执行文件.elf。
5.4)在IDE中使用ISS运行/调式软件。
6)在目标板上下载可执行软件到NIOS II系统。
7)在目标板上运行/调试软件。
8)调式好的硬件和软件。
9)使用IDE编程工具烧写配置文件和软件代码。
3.2 硬件开发[2,4]
硬件开发使用Quartus II和SOPC Builder。硬件设计过程如下:
首先,使用SOPC Builder软件从NIOS II处理器内核和NIOS II开发套件提供的外设列表中选取合适的CPU、存储器以及各外部器件并定制和配置它们的功能,分配外设地址及中断号;设定复位地址;最后生成系统。用户也可以添加用户自身的定制指令逻辑到NIOS II内核以加速CPU性能,或添加用户外设以减轻CPU的任务。
其次,使用SOPC Builder生成NIOS II 系统后,将其集成到整个QuartusII工程中。可以在QuartusII工程中加入NIOS II 以外的逻辑,大多数的SOPC设计都包括NIOS II系统以外的逻辑,这也是SOPC系统的优势所在。用户可以集成自身的定制的硬件模块到SOPC设计,或集成从Altera或第3方IP供应商中得到的其它现成知识产权设计模块。
再次,使用QuartusII软件来选取具体的Altera FPGA器件型号;然后为NIOS II系统上的各I/O口分配管脚,另外,还要根据要求进行硬件编译选项或时序约束的设置;最后编译QuartusII工程,在编译过程中QuartusII将对SOPC Builder生成系统的HDL设计文件进行布局布线,从HDL源文件综合生成一个合适目标器件的网络表,生成FPGA配置文件。
最后,使用QuartusII编程器和Altera下载电缆将配置文件(用户定制的NIOS II 处理器系统的硬件设计)下载到目标板上。当校验完当前硬件设计后,可将新的配置文件下载到目标板的非易失存储器中。下载万硬件配置文件后,软件开发者就可以将此目标板作为软件开发的初期硬件平台进行软件功能的开发验证了。
3.3 软件开发[2,4]
软件开发使用NIOS II IDE,它是一个基于Eclipse IED架构的集成开发环境,它包括:
GUN开发工具(标准的GCC编译器,连接器,汇编器和Makefile工具等);
基于GDB的调试器,包括软件仿真和硬件调试;
提供用户一个硬件抽象层;
提供嵌入式操作系统MicroC/OS-II和LwTCP/IP协议的支持;
提供帮助用户快似入门的软件模板;
提供Flash下载支持;
使用NIOSII IDE,可完成NIOSII处理器系统的所有软件开发任务。使用SOPC Builder 生成系统后,可以直接使用NIOSII IDE开始设计C/C++应用程序代码。Altera提供外设驱动程序和硬件抽象层(HAL),使用户能够快速的编写与低级硬件细节无关的NIOSII程序。除了应用代码外,用户还可以在NIOSII IDE工程中设计和重新使用定制库。
用户在没有目标板的情况下,可以通过NIOSII指令集仿真器(ISS)运行和调试代码。ISS可以仿真处理器、存储器、stdin/stdout/stderr流,使用户可以检验程序流和算法的正确性。
4 嵌入式SOPC的应用实例
4.1 任务
建立一个基于NIOSII处理器的系统来控制一个LED灯闪烁。
4.2 开发步骤[5]
4.3.1 分析系统需求
本应用实例的开发任务是:
1)展示可用于控制LED闪烁的简单NIOSII处理器系统;2)利用最通用的最有效的方法来建立实际的顶制NIOSII;3)整个系统仅使用片内资源,且不依赖于目标板。
分析任务可以知道FPGA内硬件系统组成应包含:
1)带有2KB指令高速缓存的NIOSII/S处理器核;2)带有1KB片内ROM存储器用于存储程序代码以及程序运行空间;3)带有1KB片内RAM存储器用于变量存储、Heap、stack;3有一位输出I/O(PIO)来控制LED;4)系统识别设备(SystemID)。
说明:由于控制LED灯闪烁的用户程序代码很小,所以可将代码固化在片内ROM来执行,变量,堆栈灯空间使用片内RAM,而不使用任何片外存储器。使用片内存储器能获得非常高的执行性能。
4.3.2 使用Quartus II建立工程。
1)打开Quartus II软件并建立工程;2)建立顶层模块并命名为LED.BDF 。
4.3.3 使用SOPC Builder创建NIOSII系统
1)启动SOPC Builder;2)指定目标FPGA和时钟设置;3)添加NIOSII处理器核;4)添加片内存储器;5)添加PIC;6)添加系统ID外观;7)指定基地址和中断请求优先级;8)设置NIOSII复位和异常地址;9)生成NIOSII系统。至此已经完成了NIOSII系统的创建。
4.3.4 集成NIOSII系统到到Quartus II工程
1)添加NIOSII系统模块到NIOSII顶层模块;2)添加引脚和其他基本单元;3)选择器件型号;4)分配FPGA管脚;器件和管脚的其他设置。
4.3.5 设置编译选项并编译硬件系统(下转第755页)
(上接第739页)
1)设置编译选项;2)编译硬件系统;3)查看编译报告。
4.3.6 下载硬件设计到目标FPGA
4.3.7 使用NIOSII IDE创建用户程序
1)创建一个新的C/C++应用工程;2)设置C/C++应用工程系统属性;3)编译连接工程;
4.3.8 调试/运行程序
1)在目标硬件系统上运行程序;2)在目标板上调试程序;3)经过重新编译硬件系统后,程序将直接运行,目标板
上的LED将闪烁。
5 小结
本文主要介绍一种新的嵌入式设计方法即可编程的片上系统SOPC,通过对当前流行的基于FPGA的IP硬核、软核SOPC系统的分析与研究,抛砖引玉,给目前从事传统嵌入式开发人员指明一个方向,并快速入门提供帮助。
参考文献:
[1] 周立功.SOPC嵌入式系统基础教程[M].北京航空航天大学出版社,2006,(11):30-65.
[2] 周立功.SOPC 嵌入式系统实验教程[M].北京航空航天大学出版社,2006,(11):103-124.
[3] 邵舒渊.SOPC教程[M].西安:西北工业大学,2005,(3):132-156.
注:以上所有网站均可从课程网站/jpkc进入。
教材编写:考虑到双语教学的需要,目前教学采用的是微软出版社出版的权威原版教材:由Douglas Boling编写的“Programming Microsoft Windows CE .NET”, Third Edition, Microsoft Press, 2003。同时,本课程主讲教师编写的本课程配套教材和中文版电子版也已完成,包括中英文两个版本的教材、实验指导书等都将在2006年正式出版。
主要工作业绩
何宗键,毕业于同济大学。国内首批微软Windows Embedded认证讲师。作为国内最早开设基于Windows CE的嵌入式系统课程的高校教师,在Windows CE嵌入式教学和研究领域已积累了相当丰富的经验。其在Windows嵌入式教学领域的工作和成绩主要包括:
2005年6月,在微软亚洲研究院与同济大学联合举办的“微软Windows Embedded教学研讨培训会”上作专题演讲,介绍本课程的教学经验,并对与会教师进行培训教学。
2005年6月,作为主要参加者之一,参与微软亚洲研究院的“国家发改委-微软嵌入式系统教学包”制作,负责Windows CE实验部分内容的编写。
2005年9月,在微软公司举办的Windows Embedded技术研讨会上作关于Windows CE系统定制的专题讲座。
2005年11月,在首届全国Modern C++ Design & Programming大会上作关于Embedded Software技术讲座。