欢迎来到优发表网,期刊支持:400-888-9411 订阅咨询:400-888-1571股权代码(211862)

购物车(0)

期刊大全 杂志订阅 SCI期刊 期刊投稿 出版社 公文范文 精品范文

软件开发与定制范文

时间:2023-07-09 08:34:22

序论:在您撰写软件开发与定制时,参考他人的优秀作品可以开阔视野,小编为您整理的7篇范文,希望这些建议能够激发您的创作热情,引导您走向新的创作高度。

软件开发与定制

第1篇

[关键词]数字化校园 软件 定制开发 高职院校

随着高职院校办学规模的不断壮大,数字化校园建设也提上了日程,数字化校园的基础平台建设较易实现,但软件系统的建设却不是十分顺利。总的来说,学校在软件建设时有两种选择:一是定制开发;二是采购成熟的商品软件。学校需要什么样的软件产品?是定制开发还是采购成熟商品软件?这是摆在学校领导面前的一个难题,因为软件选择的好坏直接影响到学校数字化校园建设的成败。

1.定制开发软件的优缺点分析

不同的学校,在管理模式、办公流程上都存在很大差异,商品软件很难满足不同学校的需求,很多学校都希望按照自己的意图来定制开发软件。当然,学校在软件定制开发模式上有多种选择,一是学校自行组建开发团队定制开发;二是由软件公司根据学校的需求为学校量身定制开发;三是与软件公司合作,共同定制开发。下面对定制开发软件的优缺点作一个分析。

定制开发软件的优点:(1)能完全按照学校的实际管理模式进行开发,能很好的满足用户的个性化的需求;(2)功能模块清晰,冗余度低。

定制开发软件的缺点:(1)开发周期长,存在很高的研发失败的风险;(2)项目开发团队的开发经验和开发水平严重影响软件性能;(3)学校的需求只是近期需求,或是部分人的需求,根据学校发展或领导更换,需求会发生质的变化,会导致很多功能模块需要重新开发,增加开发成本;(4)无成型可参考的行业经验和管理思想,开发人员可能一味的听从使用部门或领导的要求,有可能把一些错误的或不合适的业务流程写到软件中去;(5)各功能模块的正确性需要长时间试用验证;(6)定制开发的软件不具备通用性,必须配备一个技术团队不断的开发维护系统,由于软件开发人员流动性大,后期维护难度很大,必定在人力成本和管理成本上付出巨大代价。

2.成熟商品软件优缺点分析

学校在成熟商品软件的选择上也有多种模式,一是采购成熟的商品软件,一次到位;二是采购成熟的商品软件,然后根据学校的一些特殊需求进行二次开发。下面对商品软件的优缺点作一个分析。

成熟商品软件的优点:(1)经过大量用户使用验证,产品具有稳定性、可扩展性、健壮性、通用性和易维护性。(2)能够快速实施部署上线运行,易于推广使用,见效快。(3)风险小,只要学校在考察软件时,选择知名软件商,在功能上能够满足学校的需要,能够跑通学校的基本流程,基本上不用担心软件存在问题。

成熟商品软件的缺点:(1)软件的操作流程与学校的办公流程不尽相同,需要学校改变观念,适应软件操作流程;(2)系统功能模块较多,存在一定的冗余模块。

3.高职院校数字化校园软件建设的建议

高职院校数字化校园建设是一个长期积累的过程,特别是软件建设,不能急于求成,在选择软件系统的时候要充分调研、综合衡量,要遵循一定的原则:(1)功能上不能一味的追求强而全,能够满足学校大多数需要,能够跑通学校的基本业务流程即可,百分之百满足用户需求的软件是不现实的;(2)便于软件能够在短时间内普及推广;(3)软件具体良好的扩展性;(4)强有力的后期维护保障。

高职院校软件建设到底选择哪种模式好?这不能一概而论。如果学校选择定制开发软件,笔者认为有实力的院校最好自己组建开发团队,自主定制开发。因为开发人员都是学校教职工,人员稳定、与业务部门沟通容易、便于各系统的集成并为后期系统维护、功能扩展提供强大的技术支持;如果学校开发水平有限,又想按自己的业务流程定制开发,则可选择与软件公司合作,联合定制开发,学校也要组建开发团队,全程参与整个软件的开发、测试、部署、培训、推广使用等整个流程,这样既可以锻炼队伍,也为软件的后期维护和功能扩展提供技术保障;笔者不建议学校全全委托软件公司定制开发,这种模式学校在经后的功能扩展和后期维护将会相当被动,因为软件公司人员流动性很大,经过一段时间,原班开发人员基本不在原公司,软件又是针对一个学校开发的,不具有通用性,软件公司不可能长期投入大量人力为学校免费维护,学校将会付出巨大的代价。

软件定制开发确实存在很大的风险,选择定制开发模式,学校一定要组织人力全程参与,为软件稳定运行和后期维护保驾护航。

如果学校购买成熟商品软件,各方面的风险将大大降低,由于软件具有通用性,有很多客户使用,容易发现问题,公司可批量修改,维护成本低,学校也不用投入太多的人力就能保证系统的正常运行,但学校在使用软件时,就得抛弃一些传统的办公模式,适应软件的操作流程,这只是一个习惯问题,很容易解决。

通过上面的分析,笔者认为学校如没有特殊的需求,采购成熟商品软件利远远大于弊。

第2篇

Abstract: This paper provides instructions on building a Man-hour quota system based on Access data base, refers to structure,piping,electrical, instrument, telecommunication, mechanical, HVAC, security, insulation, outfitting, painting, scaffolding, which combines with the characteristic of production reality of offshore engineering.

关键词: 海洋工程;工时定额;Access 数据库

Key words: offshore engineering;man-hour quota;Access data base

中图分类号:P75 文献标识码:A 文章编号:1006-4311(2012)21-0058-02

0 引言

任何一个企业,都要按照市场经济规律,建立符合自身要求的成本核算体系,编制和拥有自己的工时定额,作为参与市场竞争的计价依据。同时还要确定科学的计价方法和完善的信息数据库,并将其作为企业管理和发展的重要内容。

蓬莱PL 19-3项目是中国海洋石油与康菲石油合作开发的最大的海上油田,包含六个生产平台一个中心立管平台以及“蓬勃号”FPSO,蓬莱 PL 19-3 连接调试项目组在对连接调试工时定额体系成功使用的基础上,结合海洋工程项目的实际情况,开发了一套适用于海洋工程的工时定额体系,并利用Access数据库工具开发形成了工时估算系统。

1 定额数据库结构设计

本定额依据现行的工程施工及验收规范、安全技术操作规程和现行劳动保护法律、法规、国家设计规范、各种类型具有代表性的标准图集、施工图纸、企业技术与管理水平、工程施工组织方案、工程具体结构和难易程度状况、以及采用新工艺、新技术、新材料、新方法的情况等,根据项目的特殊性和技术含量等因素采用现场观察测定法和类比法,进行工时定额的编制。它具有以下几个特点:

1.1 包含两个基础工时定额数据库,以满足用户不同的需求。包含粗估工时定额、精算工时定额两个基础工时定额数据库,在进行施工管理及分包、投标,车间工时管理等活动时用户可以根据自己的需求来选择其中一种或两种交叉使用,来进行工时估算。

1.2 覆盖专业全面,分类合理。根据海洋工程的性质,本系统首先按专业进行划分,分为结构、配管、电气、仪表、通讯、机械、暖通空调、安全、保温、舾装、涂装、脚手架、检验等专业。根据施工顺序的相同性及作业要素的类似性,每个专业分为不同的作业,然后每个作业分为不同的规格,从而对应完成此项规格的作业需要消耗的时间。下面以精算工时定额结构专业为例,通过框架图(图1)的形式对本定额数据库结构进行表述。

另外,数据库中对每一个定额数据所包括的工作步骤、程序及未包括的工作情况都有详细的备注说明。例如精算工时定额结构专业组对栏杆每米8.2人工时中不包含载荷试验部分。

1.3 海上系数的应用。由于海上石油行业的特殊性,决定了大量的工作需要在海上完成。海上施工时,由于施工条件限制增加了相应的施工难度,故需要相应的海上施工系数作为修正。通过对几个平台各专业计划工时与实际工时的比较及分析各专业的特点,定额中对不同的专业确定了不同的海上施工系数。所有的标准工时定额数据均以陆地的施工作为标准,故陆地系数默认为1.0。

2 工时估算系统计算原理

对应两个基础工时定额数据库,本估算系统包含两种计算模式。粗估计算模式指各专业以一个或几个关键要素为参数来计算整个专业工时;精算计算模式指各专业按照施工的各个步骤分别计算相应的工时,从而比较准确地计算整个专业工时。计算原理为:

计算工时=定额所对应的工时*数量*施工地点系数*人工系数*综合系数

人工系数是考虑人员的经验和不同工机具的装备水平应用可以直接影响施工的效率,故需要根据施工人员的经验,不同经验的人员配比以及不用水平机具情况等因素自主调整系数。综合系数是考虑所有的标准工时定额估算数据均以适宜施工的气候条件为基础,故需要根据施工所在区域的气候因素(如高温、低温、大风等影响施工的因素)自主调整系数。同时在考虑利润因素时,可以在投标和分包时确定系数来实现。

3 工时估算系统软件设计

为提高工程项目中查找和使用定额数据的效率,方便定额数据的维护,项目组在工时定额数据库的基础上开发了工时估算系统。

第3篇

 

在过程控制中,控制系统往往各有不同。然而,无论控制系统的相同与否,其控制的最终目的都是要满足对系统稳定性,准确性以及快速性的要求。为了达到上述目的,人们对控制器、调节器等进行了深入的研究。

 

本文主要介绍一种PID控制器参数整定软件的开发及其应用,从软件开发的背景、软件开发工具的选择,软件功能实现的方法以及软件界面的设计等多方面多角度的对其进行介绍。该软件根据对过程模型的了解情况分别设有基于模型的参数整定,基于输出数据的参数整定以及针对有丰富工作经验的工作人员设有经验整定功能。

 

1 软件开发工具的选择

 

在PID控制器参数整定的软件中,不仅要有友好的人-机交互界面,更因其常常要对大量的数据信息进行处理,以及对整定结果进行实时、直观的图形化显示等原因,要求开发工具既要有利于用户界面的开发,又要有利于大量数据快速、准确的处理[1]。在科技发展日新月异的今天,编程语言也日趋多样性,例如大家所熟知的C、C++、Fortran、Visual Basic(VB)、Matlab等,而其中VB在界面的设计具有其独到之处,与此同时Matlab在数据处理方面更是许多编程语言所不能及的,若能将这两种语言相互结合,则既可以实现友好的人-机交互界面又具有强大的数据处理功能。

 

2 软件参数整定算法选择与功能设计

 

好的软件需要有好的界面,更需要有很好的核心内容,这样才不至于“虚而不实”,因此对于一个标准的PID控制器参数整定软件来说其控制算法无疑是这个软件的核心部分,只有选择了合适的PID参数整定算法,才能得出比较优秀的PID控制器参数,才能达到理想的控制效果。

 

软件在算法的实现方面,采用VB与Matlab混合编程,将VB的友好界面与Matlab强大的运算功能相结合,当用户在界面中输入想要实现操作的命令,后台将自动运行Matlab,实现对PID控制器参数的整定,与此同时将整定结果第一时间反应到界面上,使用户可以很直观的看到软件整定的结果。ActiveX技术的运用为软件功能的实现做了很好的铺垫。在Visual Basic中,只需要两句命令:

 

Dim Matlab As Object

 

Set Matlab=CreateObject"Matlab.applicetion"

 

即已完成Visual Basic与Matlab混合编程的一大部分工作。

 

3 软件用户界面的设计

 

本软件界面设计充分利用Visual Basic编程语言中的优点,控件直观、可视化效果良好,事件触发信息明确,编程实现较为简单,易于编译调试等优点[2]。由于软件要实现的功能较多,且其中各有不同,故建立多个form窗体,不同窗体实现不同功能,而不同的窗体,在软件的主界面中均有快捷键,用户在进入软件后,只需点击所要实现的功能,即可进入相应的界面,操作起来既简单又方便。例如,当点击Command1时,只显示窗体1,则其实现命令如下:

 

Form1.Visible=True

 

Form2.Visible=False

 

Form3.Visible=False

 

只需简单的几行命令就可以实现不同界面切换自如的功能。

 

4 总结与展望

 

本软件可以实现多种方法对PID控制器参数整定,用户可根据具体需要来选择参数整定的算法。其中包括Z-N法,内模控制法,直接综合法,粒子群优化算法以及VRFT算法[3]。另外用户也可以根据实际系统中被控对象模型的已知情况选择基于模型的PID控制器参数整定算法或者基于控制系统输出数据的PID控制器参数整定算法。与此同时,本软件还设有经验整定功能,即用户可以根据多年的经验来完成对PID控制器的参数整定。

 

我们可以通过ActiveX技术实现VB对Matlab的调用,实现了对PID参数快速整定,并将其分别以图形,数据等形式直观的显示在界面上。

 

最后,在软件基本功能得以充分实现的情况下,对软件界面进行友好化,根据软件界面的设计原则,对软件界面进行设计,从而制作出友好的人-机交互界面。

第4篇

1.引言

 

随着企业的不断发展,信息资产的不断壮大,标准而统一的管理方式越来越得到重视。在终端维护的领域中,为减少环境的复杂度,降低信息系统推广成本,提高管理和维护效率,终端标准化配置是必要的。然而在维护这些标准化配置的过程中,很多操作都是重复的,耗时的。《终端软件安装一键定置工具》(以下简称《软件》)以应用软件自动脚本配置为核心,实现多应用软件的统一配置、一键打包、自动安装的功能,从而提高终端软件维护效率,减免人为操作的烦琐和错误。

 

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

 

最后编译成自安装文件,将安装文件一并封装:

 

图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.总结

 

应用先进工程计算软件MATLAB实现外压容器稳定性实验测试程序的开发,为外压容器失稳实验提供了更加良好的测试环境,也为相关教学提供了一个更加便捷的工具。同时本研究克服外压容器稳定性传统实验测试系统兼容性和功能拓展性不好等问题,使得系统控制方面更为完善。由于笔者水平和时间有限,因此开发的实验系统仍有不足之处,希望在今后的研究中逐步克服,以期为过程装备与控制工程专业教学尽绵薄之力。

第6篇

“软件危机”问题日益严重,主要表现在:软件开发效率低,开发周期长,开发成本高,可维护性和适应性差,不能很好地满足用户个性化和频繁的业务变化的需求.而日益激烈的市场竞争和经济全球化,赋予软件工程以新的特征:有效率有效用地满足用户个性化需求的定制化,快速响应和适应市场及业务的变化,以及低成本高收益等.

在软件行业,大多数开发单位还处于手工劳动阶段,软件开发活动是针对单一用户的具体需求,面向单个产品来组织的.近年来,产业界将“软件作坊”转变为“软件工厂”的呼声越来越高,试图将软件开发作为一种生产制造过程,像在生产线上生产物质产品一样,大规模生产软件产品.但目前的现状并没有达到期望的目标,当软件开发项目比较大时,软件危机依然存在,其中一个主要的原因是,认识一个系统的过程和方法同用于分析、设计和实现一个系统的过程和方法不一致,对软件开发过程的认识不够明确,同时,也缺乏合理和实用的软件过程模型.为了解决软件开发过程中的瓶颈问题,提高软件业的竞争力,人们提出一些旨在促进软件工程化的开发思想和方法,如软件复用、过程重组面向对象的软件工程基于构件的软件工程和领域工程等.本文在这些软件工程方法的基础上,提出面向大规模定制的软件开发模式(softwaredevelop?mentformasscustomization,SDMC),将大规模标准化软件开发与面向单个用户定制开发有机结合起来,既满足用户的个性化需求,又达到规模经济的效益.

2面向大规模定制的软件开发模式

1970年,托夫勒在其《FutureShock)(未来的冲击)一书中提出了一种以类似于标准化或大规模生产的成本和时间,提供满足用户特定需求的产品和服务的生产方式的设想.1987年,StanDavis在《FuturePerfec)(未来的理想生产方式)一书中首次将这种生产方式称为“masscustomization”,即大规模定制生产,简称mc.这种能满足用户的真正需求而又不牺牲效益和成本的新的生产方式目前在制造业得到了较快的发展,并作为一种有效的竞争手段逐渐被企业所采纳.简单地说,大规模定制是以大规模的生产成本和时间满足用户的个性化需求,其基本思想是:将个性化定制产品的生产问题通过产品重组和过程重组转化为或部分转化为批量生产问题.

与物质产品相比较,软件产品的生命周期更短,受市场和客户需求变化的影响更大,特别是领域应用软件,每个企业的产品结构、规模大小和管理方式都不一样,业务流程也各不相同,而且随着市场的变化,企业重组和持续业务过程改善,都造成业务过程的动态不稳定.这要求软件产品不仅在开发过程中要满足多样化的业务需要,而且在企业应用过程中,要能动态适应不断变化的业务过程.因此,软件产品应比物质产品更具有柔性和可定制性.根据不同软件产品的特点,存在两种软件开发形式,如图1所示.

①标准成品软件(off~the~shelf)开发.面向较大规模的客户群,开发和销售成本低,相对价格便宜,交货迅速,但满足用户特殊需求的集成和修改费用高.

②单个软件定向开发(one^ff).完全按用户需求组织开发,能贴近用户需求,但开发费用高,周期长,而且可维护、可升级性差.面向大规模定制的软件开发模式是以上两种开发方式优点的结合,既可以快速响应个性化客户需求,又可以实现标准软件开发的效率和成本.

如图2所示,SDMC除继承领域工程和基于构件的软件工程方法的特点外,还将并行工程的思想融于产品开发过程中.SDMC改变了传统的面向单个软件的开发方法,是对某一领域现在和未来市场、整体和细分市场以及相应的用户群体进行分析,开发出对该领域现存和潜在用户均有良好适应性和定制性的系列产品,即面向产品族开发,以实现范围经济与规模经济的结合.可重用构件是实现SDMC的基石.采用基于构件的开发方法,可以将一个复杂的软件产品分成多个构件的集合,相当于将复杂的单一问题简单化,因此更便于软件的管理、维护和升级.理论上,构件是与具体产品无关的相互独立的单元,可以在广泛范围内共享和重用,是解决大规模软件工程问题的有效方法.构件可以外购,还可以外协构造,这样可以充分利用外部资源,缩短开发周期.

SDMC运用并行工程的思想,集成地、并行地开发软件产品和过程,从软件开发的开始就充分考虑软件生命周期中所有因素,包括时间、成本、质量和用户需求等.

综上所述,SDMC继承和发扬了领域工程、基于构件的软件工程和并行工程的思想和方法,在系统方法指导下,用全局优化的观念,充分利用内外部资源,以大规模生产软件的效益,开发满足用户个性化需求的软件产品.其目标是:

①缩短产品开发周期,以实现快速响应;

②提高开发规模,降低开发成本,以实现规模经济;

③满足用户个性化需求,以实现范围经济.

     3面向大规模定制的软件开发过程

传统的软件开发过程模型是针对单个产品开发而提出的,将软件开发过程分成需求分析、设计、编码、测试和交付等串行的几个阶段.文献分别给出了面向重用的过程模型.文献[7]将制造业的产品生产过程分为新产品形成过程和订单产品制造过程.本文根据SDMC的目标和特点,给出如图3所示的面向大规模定制的软件开发过程模型.与制造业一样,将软件开发过程分为面向市场的新产品开发和面向用户的定制两个循环.

图3面向大规模定制的软件开发过程模型

面向市场的新产品开发是根据市场的现在和未来需求收集信息,运用相关知识构造某一应用领域问题的解决方案,开发新的产品.新产品开发不是面向单个产品,而是面向产品族,建立面向产品族的领域框架和可重用构件,并在过程设计环节,设计以领域框架和构件为基型的软件定制过程,为定制具体应用系统打下基础.这一循环,所需时间相对较长,称之为慢循环.面向用户的定制过程是根据用户的具体需求,在新产品开发过程中形成的面向产品族的领域框架和定制过程的基础上,利用已有构件,进行配置设计和定制开发,形成满足客户个性化需求的软件产品.这一过程在客观上必须是一个快循环,以快速响应用户需求,称之为快循环.

SDMC主张软件开发单位通过业务过程重组,将软件开发的两个循环相互分离:新产品开发部门负责面向市场的新产品开发,同时为软件定制准备基型;定制部门利用可变型的基型,按订单定制,快速满足用户的个性化需求.两个循环相辅相成,能否完善结合的关键是可定制的领域框架和可重用的构件.每个循环均强调并行,并适时将演化模型[1]融入并行开发和定制过程中.

一般说来,软件开发单位对两个循环都应重视.新产品开发循环具有创新性,将给开发单位带来创新的产品,增强竞争优势.定制循环虽然不会有重大创新,但其优势是在“快”上,能快速响应用户的个性化需求.

4面向大规模定制的软件产品族

可定制的产品族模型是实现SDMC的关键.因此,SDMC重点在于研究建立合理的产品族结构的软件设计方法,不再每次只设计一个产品,而是同时完成一组产品的设计,即对整个产品族进行综合设计,从而可以挖掘出产品族中的相似性信息,设计出面向产品族的可定制的领域框架和可重用构件.并利用并行工程的观点,以时间、成本用户满意度为目标,集成地并行地设计产品族及定制过程,同时尽可能考虑到影响软件定制过程的约束条件和条件约束下的软件配置机制.

软件产品族是利用共享资源构造的某一具体领域软件产品的集合,是一系列相似产品的统一表达.软件产品族对具体领域的相似问题进行归类,用相似的解决方案来解决,并试图覆盖同一业务领域的所有现实或潜在需求.面向大规模定制的软件产品族体系结构如图4所示.

软件产品族由领域框架、构件、定制过程和定制机制等部分组成.按照从用户需求到软件产品形成,在业务定义、技术方案和物理实现3个层面上建立领域框架模型和构件模型,层与层之间存在映射关系,右边层次的模型是左边层次的模型的变换,这样从左到右,形成一种生成、推导和约束关系.

(1)业务模型.是根据用户和市场需求,对业务对象、业务过程、业务服务和业务规则进行形式化描义莫型.在软件产品族体系结构中,业务层面上描述的领域框架和构件,分别称为领域框架业务模型和构件业务模型.

(2) 技术模型.是对适应业务模型的应用系统技术解决方案的一致性描述.在软件产品族体系结构中,技术层面上描述的领域框架和构件,分别称为领域框架技术模型和构件技术模型.

(3) 实现模型.是对实现技术模型的物理系统的一致性描述.在软件产品族体系结构中,技术层面上描述的领域框架和构件,分别称为领域框架技术模型和构件技术模型.

(4) 领域框架.是针对某一具体领域,包括构件及构件之间相互关系和约束规则,可定制、可扩展领域通用的软件产品族架构.

(5) 构件.是在定义好的体系结构相关环境中具有明确功能的独立的、可替代、可重用的系统组成部分.

(6) 定制过程.针对具体的开发环境所制定的,个性化定制具体应用系统的规程,包括与应用系统实现过程相关的规范、工具及相关文档.

(7) 定制机制.包括约束条件^配置机制以及业务模型技术模型和实现模型之间的映射关系.约束条件是约束应用系统定制的环境因素和对定制过程的考虑,配置机制是条件约束下的对领域框架实例化和对构件进行配置的规则和推理机制.

基于产品族的软件开发目标是提高产品族中的构件的通用性,从总体上降低开发成本,缩短交货期.对现有客户需求的理解和对未来需求的预测,及对客户群需求的系统分析,是产品族规划的关键,而产品族规划又是面向产品族软件开发的重要环节.

5面向大规模定制软件开发的产品集成过程模型

传统的软件开发方法强调软件实现技术,而忽略了对软件开发过程的规范和管理.近年来,软件开发过程越来越受到产业界和学术界的重视,如CMM(能力成熟度模型)就旨在显着提高软件开发过程管理能力[8].本文在制造业面向大规模定制的集成产品和过程模型基础上,结合软件产品的特点,给出了如图5所示的面向大规模定制软件开发的产品集成过程模型.

如图5所示,面向大规模定制软件开发的产品集成过程模型呈二维结构.时间维描述的是从客户订单到产品交付的过程,即软件开发过程(包括新产空间维描述的是将不同产品的相似部分进行归类处理,以增加软件开发规模,可采用产品模型(包括领域框架模型构件模型和应用系统模型)来描述.

SDMC在时间维优化的关键是有效地将定制分离点(customizationdecouplingpoint,CDP)后移.CDP是软件开发过程中由与订单无关的、面向市场的预测型大规模开发转向面向用户的定制的转换点.推迟CDP可以减少由于用户订单特殊需求而进行定制在时间和资源上的开销.最理想的作法是在交货点定制,即接到用户订单后,及时在用户现场根据用户需求完成产品开发和交付.实现CDP后移,需要准确预测市场需求,构建好可定制的领域框架,预制足够的可重用构件,为产品定制做好充分的准备.时间维优化可以显着提高开发效率.

SDMC在空间维优化的关键在于如何通过相似性原理和标准化技术有效扩大构件和框架的优化范围并提高它们的可重用性.在软件行业,大约65%的开发成本花费在重复系统开发上.对不同应用系统进行分解,可以发现存在大量相似性,可以对这些相似性内容进行归类,形成领域内或领域间共享的

6面向大规模定制的敏捷软件开发组织

根据SDMC的二维优化模型,显然在一个地区或行业推广实施大规模定制软件要比仅在一个开发单位实施可以取得更好的效果.大规模定制软件的最佳的模式应是在全球范围进行推广实施.事实上,软件行业的全球化和专业化分工也正在促使大规模定制软件开发扩展到全球范围.如何组织广泛范围内的软件大规模定制?本文主张将敏捷制造思想应用到软件开发中,建立面向大规模定制的敏捷软件开发组织.

敏捷制造是为实现企业生产制造的敏捷性,采用现代通信手段,通过快速配置各种资源,以有效和协同的方式响应用户需求的一种企业发展战略.虚拟组织是实现敏捷制造的重要组织手段.虚拟组织是一些相互独立的开发单位通过信息技术(例如互连网)连接的暂时性的开发单位网络,这些开发单位在软件开发过程中贡献出自己的核心能力,以实现技能利润共享和成本风险共担,迎合和把握快速变化的市场机遇.

充的动态组织.根据产品族设计中规划好的领域框架和构件,进行工作任务分解(分解为不同类型的构件),按照各个公司或公司内某些部门的核心业务能力,动态组合资源、技术和人员最佳配置的虚拟组织.虚拟组织成员接受工作任务后,按照各种合作形式(如供应链式、策略联盟式、合资经营式转包加工式和虚拟合作式等[13])进行合作,在基于Internet的敏捷开发环境下,共享资源和技术,完成各自的工作任务(完成构件开发).根据客户订单要求,将领域框架实例化形成满足订单要求的应用系统框架,并如图6所示,虚拟组织是可重构、可重用和可扩对虚拟组织成员提供的构件进行装配,最终形成满足用户需求的应用系统.

7结论

第7篇

【关键词】大规模 定制软件 敏捷开发 研究

如今应当说是一个高科技时代,人们的生活似乎被各种各样的高新科技所包围,无论是我们习以为常的网购还是离我们看似遥远的全自动化生产线无不显露着科技的风尚。人类已经进入了一个智能化的时代,因而各种专业化的软件需求量也就越来越大,每个不同的企业或者部门对于软件的需求也是不同的,定制软件看似容易实际上其操作起来难度是极大的,而针对定制软件开发最好的开发手段就应当说敏捷开发,这是一种将一个定制软件拆分成数个乃是数十个甚至成百上千个小项目进行软件开发的方式,其尤其适用于大规模定制软件的开发。

1 大规模定制软件的必要性

首先我们要对大规模定制的定义进行明确,大规模定制指的是大规模定制是指对定制的产品和服务进行个别的大规模生产,这种生产模式是把大规模生产与定制生产的优势有机地结合起来,这种生产方式一方面不会由于个性化定制而让企业的利益受到影响,另一方面也不会由于大规模的生产而忽视了软件定制的个性化,应当说这一种双赢的生产方式。对于企业而言其采用大规模定制能够在最大程度上降低生产成本而保证产品质量,对于客户而言其能够以较低的价格而获得质量优良且具有个性化定制色彩的产品,因此这是双方都乐见其成的。从大趋势来看大规模定制已经是大势所趋,同样也是工业3.0-的重要组成部分,因此我们必须对其给予一定的重视。

2 敏捷开发

大规模定制的_是一种极为有效的生产方式,不过这种大规模软件定制想要真正的实现是需要一定前提的,这个前提就是采用更加有效的产方式从而完全实现产品大规模生产与个性化定制并存。这个方式就是敏捷开发,敏捷开发将一个软件的开发转化为了数个乃至数十个不同的小项目,每一个项目都负责了软件的一部分,有的负责的可能是软件的界面,有的则负责开发软件的菜单,有的则负责软件的核心运算公式,在这数十个项目全部完成后再将其整合起来就成为一个大型的成品软件。例如同样是财务软件,可能企业需要侧重的是利润、库存等方面,而机关事业单位所需要的更多的是收入与支出的合理性,两者的需求不同因此不可能使用同一种软件,但是除了侧重之外其他的部分缺失完全相同的,因此如果采用传统的软件开发方式则必然需要反复开发两套软件来满足不同客户的需求,而敏捷开发只需要开发一套软件,而对于二者不同的需求只需要在开发其个性化部分就能够在降低开发成本的同时满足用户的个性化定制需求应当说这是解决大规模定制软件开发的最好方式。

3 敏捷开发的各个阶段

敏捷开发虽然对于大规模定制软件十分有利但是其真正操作起来却需要诸多方面的配合才能够真正实现敏捷开发,因此我们应当对敏捷开发的各个关键环节进行了解。

3.1 敏捷开发的起始阶段

敏捷开发与传统的软件开发不同,传统的软件开发几乎只需要开发部门一个部门在了解客户需求后进行软件的开发,而敏捷开发则不然其在软件开发的前期就需要企业当中不同部门的人员进行配合其中包括了软件设计师、程序编写员、营销人员、财务人员,而在企业外部其还需要客户的配合,这样做能够使得其各方面的问题能够在开发初期就被提出从而被解决,使得软件的基本框架被完全确定只有这样才能在软件开发过程中采用模块化的方式进行开发。

3.2 敏捷开发的开发阶段

在对客户意图以及软件设计师进行了充分沟通并确定了软件方案之后,就需要将软件拆分成数个乃至数十个小型开发项目,这些开发项目有些是软件的基础有些则是客户个性化定制部分,首先来说基础开发部分,其必须注重这部分程序的通用性,即其不能单纯地只能应用在一款软件上而是应当能够被未来多种不同的软件进行利用,这些通用程序一般包括了软件的数据输出、输入、导入导出程序以及各类软件的菜单和工具栏等等,只有确保了基础程序的通用性才能够成为大规模定制软件的开发基础。另一部分则是个性化定制部分,在这一部分最为注重的应当是充分满足客户对于软件的个性化需求。

3.3 敏捷开发的完成阶段

敏捷开发其本身实际上就是讲程序分为了多个不同的模块,在最终的完成阶段则是需要编程人员将开发完成的各类模块化程序进行汇总和有效地连接和融合从而使得其成为一个个不同的软件,这种模式与传统一气呵成的开发模式不同,其开发方式更加灵活便捷,许多软件模块都是通用的只需要在通用模块的基础上将个性化模块进行开发并且融入到整个软件当中就能够彻底完成个性化定制的软件。

4 结束语

大规模软件定制是时展的需要,其在软件开发领域的应用能够在最大程度上降低软件开发的成本并且提高软件开发的效率应当说这是极为可喜的事情,不过我们必须清楚地意识到大规模软件定制其本身必须是一敏捷开发为前提的,因此我们必须对敏捷开发这种软件开发模式进行深入的研究从而使得我们能够更好的掌握这种开发方式来支持大规模软件定制。

参考文献

[1]罗昱.浅谈大规模定制的软件开发模式[J].电子制作,2013(14):72-72.

[2]田清.软件敏捷开发过程Scrum中的缺陷管理方法研究及应用[D].重庆大学,2010.