【计算机论文】关于石油工业软件工程化的思考
摘要由于石油软件涉及数据量大,对硬件配置要求高、运算时间长,高水平软件人员缺乏,而且中国软件工程技术起步较晚,软件的商品化程度较低,同时又面临着国外同类软件的竞争和冲击,因此中国目前石油软件存在着严重的危机。本文根据石油软件工程化的要求,提出了具体建议和注意事项。
主题词石油工业软件开发工程
1.做好市场调研和可行性论证一个工程化软件一般都是面向社会或某一领域,单纯为了个人或本单位需要而开发的软件不多。欲开发软件的市场前景如何,是否具备必需的各种条件等,都是必须考虑的问题。既要考虑国内研究现状,也要了解国外同类产品的水平。在软件工程化方面,国外起步相对较早,商品化程度较高,很可能成为日后的竞争对手。这项工作最好由委托方和承担方的领导、技术人员和软件人员共同参与,特别是让主管领导一开始就参与和了解各项工作,以后他们才能更好地为项目的顺利开展提供各种条件。
2.机构和人员配置要全面一个软件从可行性分析到推向市场,需要有各方面人员的参与,不仅需要技术人员和软件人员,还需要有测试人员、市场人员、售后服务人员等。当然,上述各方面人员不是截然分开的,同一人可以担当多方面的工作,特别是对一些小的开发单位。在人员组成上,既需要高水平的软件人员,以保证其计算机水平的先进性;也需要本专业的高级技术人员,这样才能保证开发出的软件在专业上具34勘探家2000年2月有先进性。另外,让参加人员拉开适当的层次也是必需的,如果水平都低必然无法按质按期完成;如果都是高层次的人员,也可能引起不应有的内耗,造成人才的浪费。
软件开发不同阶段的主要研究内容、参加人员和文档简表提分为校正性维护、适应性维护和完善性维护,即对软件在使使根据双方合同规定,,软件问题报告告护护阶段段高高用过程中出现的问题进一步改正、优化,增加新的功能能由一方或双方进行行软件修改报告告表3为软件开发各阶段所需要的人力百分比,从中可看出编程只是整个软件生命周期中的一部分(约20%),约有40%的工作量是在软件开发以后。
3.建立良好的管理和运行机制一个大中型软件的开发,需要各方面的有机协调。在项目开发过程中,既要有主管领导的支持,又需要技术人员和软件人员的全力以赴,还需要测试人员、市场人员和售后服务人员的大力配合。如果没有建立起良好的管理和运行机制,会造成项目进展迟缓,无法按项目开发计划进行。如果项目是由两方或多方共同完成,各种管理和协调工作就显得更为重要。只有将上述有关人员组织管理好,项目才能顺利运作。
4.人员变动不要过多一个大的软件项目需要许多人参与才能完成,如果其中主要人员变动太大,势必会影响项目的进展,甚至会使之无法正常进行甚至夭折。项目组成第5卷第1册李大伟等:关于石油工业软件工程化的思考员变动过大乃软件开发之大忌。如果主管领导变动,新的领导可能对项目不了解而无法给予应有的重视和支持;技术人员和软件人员如果变动过大,则会使新的参加人员需花费很长的时间熟悉项目的情况,造成时间上的浪费。所以一方面尽量不要在开发中期和后期变换项目组成员,另一方面对技术人员和软件人员要给予各方面的激励,保证他们安心项目的开发,不主动脱离项目。否则他们甚至可能在编程过程中故意留下一些难以发现的"bug",这些软件人员一旦离开项目,留下的隐患局外人一般都难以捕"捉",所以要尽量避免这种情况的发生。
5.树立工程化意识开发工程化软件需要项目参加人员有足够的工程化意识,否则在设计和开发过程中他们会根据自己的习惯和喜好来完成负责的任务,最后影响软件的集成和工程化水平。特别是工作时间越长的人员,其工程化意识可能越差,这是由过去的工作经历及习惯造成的。
6.职责分明.相互配合如果是双方或多方共同开发,、一定要将各方的职责和义务在一开始就要明确并写人合同中,各方人员内部也要做到分工明确,各司其职,这样才不至于在项目进程中发生互相推诱和扯皮现象。当然相互配合和协调也是必不可少的。具有较强的合作精神是一个现代人才必不可少的素质,特别是开发一个大型的软件项目时更需要全体人员的通力协作。
7.采用先进的设计工具和编程语言导致软件危机的另一个重要原因是目前的软件开发多基于软件人员个人的方法选择和智力发挥程度,而好的工具可以"放大"人的智力。现在国内外都有不少软件辅助设计和编程工具软件,利用这些工具可以大大节省设计和开发的工作量,克服手工作坊式的开发模式,并为软件的质量提供保证。
目前市场上广泛使用的设计软件有ROSE系列,图形软件包有GKS、plot10、GL、OPenGL、XGL、AVS以及XWindow系统和OpenWindow系统的图形库等,数据库系统FOXBASE、FOXPRO、Oraele、Sybase、Ingress、prosress、Unify,以及石油领域的界面和图形软件器件库INT等,这些工具和系统无疑会为软件开发提供极大的便利。
选择编程语言也应慎重。一种优秀的编程语言不仅为软件人员提供诸多便利,还由于其使用广泛,在其平台上开发出的软件会更易于推广和使用。如Mierosoft公司推出的DeveloperStudio软件开发平台中包括VB、VC、VF、VJ等,为用户提供了可视和方便的编程环境,并可以根据用户的需要自动生成许多程序代码,界面美观实用,深受广大软件人员的喜爱。现在有种类繁多的高级语言,其选择应根据用户的要求、可以使用的编译程序、可以得到的软件工具、工程规模、程序员的知识、对软件可移植性的要求、软件的应用领域等方面来确定。
8.养成好的编程风格编程过程中还要尽量采用简明、易于理解的编程风格,包括统一美观的缩进、规范的标识符命名、适当的注解、良好的视觉组织等,而不要一味追求技巧性。过去由于计算机内存和容量等方面的限制,软件人员要费尽心机在减小程序的代码量、占用内存和速度方面下功夫。最典型的莫过于早期的程序员为了减少区区两个字节的内存占用而用两位数表示年份,如今由此引发的波及全球的2000年问题,却要让全世界为此付出几千亿美元的代价。现在计算机硬件的发展水平已可以将软件人员从这些顾虑中解脱出来,专心致力于更重要的方面。所以在程序风格方面要遵循以下三个原则:
(1)先保证正确,再考虑速度;(2)先保证安全,再考虑速度;(3)先保证清晰,再考虑速度。
9.重视源程序的工程化软件的工程化水平不仅体现在各种设计和工程文档上,还体现在源程序上。根据要求,源程序中的注释部分一般应占20%以上,这样才能为以后的维护提供便利。许多从事过编程的人都有这样的体会:自己几年前编的程序,现在可能连自己都看不懂了。究其原因还是源程序中缺乏应有的注释。用不同语言编写的程序其注释要求可能不同,但在关键和重要的地方一定要注释清楚。最好用英文注释,英文水平低的可用汉语拼音,开发平台有中文环境的可直接用汉字注释。
10.慎重修改和移植老的程序许多单位和个人都有多年积累下来的一些老程序,是一笔宝贵的财富,可能会被用到正在开发的项目中。但由于这些老程序可能是由别人编的,而原作者又不在项目组或本单位,要读懂这些程序并将其移植,工作量是很大的;如果这些程序的工程化水平很差,就更难以理解和修改了,稍有不慎就可能改错。如果老程序所用的编程语言又与本项目勘探家2000年2月的不同,而不同语言间在语法上都存在许多不同。如C语言中数组的下标从O开始,并且是列优先;而FORTRAN中数组的缺省下标从1开始,且是行优先。好在现在使用较多的语言(如C、C十+、VB、VF)都支持混合编程,所以可以将原来用汇编语言、BASIC语言、FORTRAN语言等编写的老程序稍作修改即可加到新的软件中,而不必将其移植成新的语言。
11.及时记录和交流对设计的修改尽管在开始编程前已完成了需求分析、概要设计和详细设计等,但在编程过程中会发现原来对某些模块的设计需要修改或完善。如果负责该模块编程的人员做了相应修改后不作记录,又不与项目组其他成员及时交流,就会给系统集成埋下隐患,加大集成的工作量。所以每个程序员都应随时记录所作的修改,并与项目组有关人员及时交流。另外,项目组是一个有机的整体,各成员之间既相对独立,又互相联系,其中一个环节出现问题便会影响整个项目。所以项目组成员之间应经常进行交流,讨论编程过程中遇到的技术问题、设计中发现的错误和不足等,特别是对于由不同单位异地开发的软件,更应定期进行会面和交流。
12.重视设计、测试和维护阶段的工作软件设计在整个开发周期中占有很重要的地位,必须给予足够的时间和力量,要把各种问题尽量消灭在设计阶段,越在后期出现的问题越难以修改。据美国贝尔实验统计,如果解决一个出现在需求分析阶段的问题需20美元的话,那么该问题出现在现场则需要2000美元才能解决。所以不要为了赶进度而草率了事,否则就会事倍功半。各级测试也是必不可少的。在交付用户使用前,要用足够的时间和人力对软件进行各级测试。如果没做充分的测试就交与用户或推向市场使用,等用户再将成堆的问题返还时再修改,势必会影响产品乃至开发商的形象。现在市场上成熟的测试软件有美国Rational公司开发的SQA和PureAtria公司开发的purify等。另外,没有很好的售后服务等维护工作,再好的软件也会很快失去市场。据统计:如果软件编码的工作量为10的话,则设计和测试的工作量约为60,使用和维护的工作量约为50一1000,由此可以看出设计、测试和维护的重要性。
13.建立术语字典和数据字典一个软件往往是面向某一专业的,必然要用到许多与本专业有关的术语。而软件人员又不可能熟悉各种专业的术语,特别是对于非汉化的界面。此外,同一术语在不同的专业可能有完全不同的含义。比如英语中的"migration"在石油地质学中为"运移",而地震处理专业则当"偏移"讲。所以在设计阶段就应编写与本项目有关的术语字典,将各种专用术语的英汉或其他语种的对照写清楚,并要求编程人员按照同一本术语字典编程。此外,还应对软件中涉及的各种数据元素、数据结构、数据文件、数据流等进行定义,建立数据字典,否则会造成同一变量在不同的模块中类型和精度不一致、不同的编程者对同一数据文件使用不同的名字等,从而对系统的集成和稳定性等产生不良影响。
14.加强安全意识这里主要指应及时备份各种程序和文档。尽管现在计算机硬件的稳定性得到很大提高,硬盘损坏的可能性较小,但终有一天会发生的,如果发生物理性损坏,其修复的可能性就很小。另外微机上计算机病毒的破坏性也越来越严重,从最初只破坏软件系统和文件,发展到现在可以破坏硬件设置。1998年在全国引起恐惶的CIH病毒就是很典型的一例。所以平时就应养成良好的安全意识,微机上每天下班前做一次备份,工作站上的每周至少备份一次,做到有备而无患。
参考文献1王选.软件设计方法.北京:清华大学出版社,19922中华人民共和国能源部.中华人民共和国石油天然气行业标准一石油工业应用软件工程规范,19913张海藩.软件工程导论.北京:清华大学出版社,19%4刘超.
编辑推荐:
温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)
点击加载更多评论>>