(阳江市中医医院529500)
摘要:对当前软件工程特点进行分析,同时对医疗软件工程方法进行探究,对软件工程方法的七个阶段进行简要介绍,随后通过对某市医院的病理信息系统和医院监护系统两个案例开发进行分析,通过两个案例的对比可知,在软件工程开发中,要对前期项目进行充分分析与调研,同时对用户群体进行详细的需求分析,在此基础上进行软件工程开发的功能分工,并且进行开发完成后的后续完善。
关键词:软件工程方法;医疗;软件开发
现今软件开发中,传统的软件工程方法越来越被现代软件工程方法所取代,人们越来越觉得其落后性而将其弃之不用,而以面向对象为代表的现代软件工程方法则成为人们常用的软件工程方法,而其实有很多的现代软件工程方法在使用中与软件开发环境并不相容,由于认识的局限性,人们不知也不敢对现代软件工程方法的应用提出质疑,这就导致使用中会出现或多或少的问题。因此,对现代软件工程在现代软件开发中的合理应用进行研究具有重大的现实意义和价值。
1.现代软件工程特点
现代软件工程是运用现代科学技术知识构造计算机程序,对软件开发、运作、维护进行系统化、规范化和可定量化的开发方法,也是将工程管理应用到软件开发中的学科。现代软件工程经历了个体生产方式的程序设计、生产作坊方式的程序系统、软件新方法和软件工程等4个发展阶段HIS开发采用软件工程方式,与传统方式相比具有以下优点:(1)适用性,在不同的HIS约束条件下,更易使用户需求得到满足。(2)有效性,能最有效地利用计算机的时间和空间资源。(3)可修改性,允许对HIS进行修改而不增加原系统的复杂性。(4)可靠性,能防止因概念、设计和结构等方面的不完善造成的医疗软件开发失败,并具有挽回因操作不当造成开发失败的能力。(5)可理解性,软件工程开发具有清晰的结构,能直接反映HIS的需求,有助于控制软件复杂性,并支持软件的维护、移植和重用。(6)可维护性,HIS投入使用后,能改正潜在的错误和进行性能优化,使其适应不同的医疗环境。(7)可重用性,把概念或功能相对独立的模块定义为一个软部件,并组装在信息系统的任何位置,从而可极大地降低开发工作量。(8)可移植性,能使HIS方便地从一个应用环境迁移到另一个环境。(9)可追踪性,可根据医疗业务需求对软件设计、程序进行正向和逆向追踪。
2.医疗软件工程方法
相当于企业生命周期的理论,软件生命周期在软件工程思想中也是一个非常重要的概念。它指的是软件工程开始开发到报废的全部过程,这一系列过程中包含了项目的各个不同的阶段。包括可行性研究、项目开发、需求分析、概要设计、详细设计、编码、测试和维护这7个阶段,通过了解这些不同的阶段,对于整个软件工程就有了更加详细的了解。同时为了更好地了解软件生命周期的活动,又提出了瀑布模型、循环模型、演化模型等一系列模型,瀑布模型是当前较为广泛采用的一种模型,它通过对于每个阶段不同的循环反馈,来对开发过程中出现的各个阶段的循环实现动态反馈,最终开发出满足医疗业务需求的软件系统。
3.案例分析
3.1医院PIS开发案例
开发PIS的目的是将病理报告分析流程纳入医院统一信息化平台中,规范病理检查工作流程,规范病理检查数据并长期保存,以便在管理和科研工作中对数据进行深度挖掘和分析,提升病理工作的管理效能。该项目于2010年启动,经过2次开发,2012年5月正式宣告失败。在项目开发中,合作软件公司据称拥有成熟的PIS产品,派驻1名工程师到医院进行开发和部署,派驻工程师与医院技术部门工程师交换意见对软件进行相关修改后,将软件下发到病理科试用,病理科工作人员对于软件的流程和功能非常不满意,召开几次协调会后,软件公司派驻工程师先后几次重新修改了PIS程序的部分模块,但是始终达不到使用科室的要求,经过多次试用被退回后,始终没能开始正常运行使用。后来软件公司派驻工程师辞职,只能另换工程师到医院进行开发部署。由于公司交接管理出现纰漏,新的开发工程师没有以前开发程序的源代码,也不了解程序的开发思路,无法进行后续开发,一切工作只能重新开始。不久派驻开发工程师也离职,经过长达1年多的时间,反反复复更换了多位派驻工程师,程序都无法完整的开发出来,最终只能以宣布开发失败而终止合同。综上所述,合作软件公司在项目实施的各阶段未按照现代软件工程的思路管理和控制,项目管理混乱、开发者不能明确各自的开发任务和目标,严重影响了项目进度,最终该项目以失败告终。
从该案例可总结出以下教训:(1)缺乏统一安排和规划,人员职责分工不明确。开发者之间缺乏统一安排和协调,对软件规模和功能缺乏认识,没有长远规划,导致重复开发、代码冗余等问题突出。(2)未按现代软件工程思路做详细的需求调研,导致需求分析不足。由于项目实施后开发者只与技术部门工程师交换意见,而没有到最终用户即临床科室进行充分调研,导致软件开发闭门造车,开发的软件功能不能满足临床医疗业务需求。(3)开发任务没有定量化。软件工程规定软件开发前必须将人员生产率、工作复杂程度、历史经验等因素定量化,而该项目开发过程中没有量化各项任务,无条理安排开发进程导致任务分工不合理、开发时间延长等问题。(4)过分依赖过去经验。由于有过去的类似开发经验,开发者对现有项目不够重视,导致开发人员配备不足、开发条理性差、团队缺乏配合等问题。(5)开发人员不固定,软件开发期间前后一致性较差。由于频繁更换开发人员,新来开发者与前期工作缺乏衔接,导致开发工作缺乏连续性,项目完成时间和完成难度相应增加。
3.2医院监护系统开发案例
在经历了PIS项目开发失败之后,总结经验,在后续的医院监护系统开发过程中要求严格遵循软件工程开发的思想。在开发之前,首先对系统进行了可行性分析,分析了医院监护系统开发的优势、劣势,并且提出了在开发过程中可能会遇到的一些问题,给予重点关注。随后,对于用户的需求进行了详细的论证和充分的调研,通过数据处理、调研问卷和访谈的形式,充分了解用户需求。随后,对于要开发的软件系统进行了功能模块需求分析,根据各模块对不同用途的开发者进行划分,然后在统一的大框架、格式和规范中进行功能模块开发和结构开发,确保了各功能模块结构清晰和完整统一。随后,在软件开发的测试阶段,严格根据现实中各种数据需求,按照现实标准采集大样本的数据,以保证测试结果真实可靠,能够对软件的后续改进提供可操作和可实施的建议。实际软件开发过程中,有的软件开发公司没有对整个软件开发工作进行统一和具体的规划安排,导致在实际开发软件的过程中,人员分工不够清晰,相互之间的工作存在空缺或者重复,不能够很好的协调,造成开发软件时工作混乱不堪,严重降低了软件开发的效率;在软件开发前一定要进行必要性即需求分析和对其可能性的分析,如果软件开发公司进行软件开发之前没有对医院的整体和部分需求做出一个分析,在没有科学合理的分析的情况下就盲目派工程师到医院进行开发,这就可能导致工程师与医院方面因为开始没有很好的交流,工程师没有进行具体的调查研究,没有针对医院不同科室的情况进行开发而导致开发的医疗软件不能够充分满足医院的需求,不能够适应医院的具体情况,而给开发者和医院带来的两方面的损失。
结论
医疗软件开发中渗透着现代软件工程理念有助于开发出医疗卫生事业需要的系统化的现代软件,而其他各行各业的现代软件开发其实也需要这种现代软件工程理念的指引,这有助于提高各行各业的工作效率,减少工作压力,促进行业的科技化和现代化。现代软件工程方法只有在现代软件开发中科学合理应用,才能够促进软件开发的顺利进行,传统的软件开发工程方法也并不是一无是处,只有根据具体的情况在软件体系结构的制约下对传统的和现代的软件工程方法进行选择,才能够获得更好的开发效果和效率。
参考文献:
[1]严峻.软件工程方法与应用[J].河南科技.2013(10).
[2]张京,李成大.结构化软件工程方法与面向对象软件工程方法的比较[J].成都电子机械高等专科学校学报.2013(02).