这应该是一个老话题,一套软件由于不同用户的需求不同分裂成n个版本,这对开发人员而言,简直是个噩梦,海邦HIS系统多年来坚持一个版本原则,面对不同医院形形色色不同的要求始终能保持所有医院同一套版本,那么,我们是如何做到的呢?

1.从客户的需求出发,有以下几种情况

A.用户的需求是原有系统没有的

这个最简单,直接增加,并推送给所有用户

B.用户的需求是原有系统的扩充

例如:某张表希望增加一个字段,这种情况也相对比较简单,直接增加,并推送给所有用户,但不强制用户必须输入

C.用户的需求是原有系统的增强

例如:原来患者电话号码允许空,但有用户希望必须输入,那就是增加配制,默认允许空,但可以配置必须输入

D.用户的需求是对原有功能测底的改变

例如:低值易耗品增加批次管理,这个对原有系统是一个颠覆性的要求,对于这种需求,需要准确分析新旧两种工作方式的差别,经过认真分析,我们认为原来的管理方式是基于批次管理的一个特例,基于批次的方式是每次入库需要产生一个新的批次,而原来的方式,可以认为也是产生一个新的批次,但这个批次和原来的批次相同,为了降低设计复杂性,不基于批次的管理,始终生成一个编号为0的批次,而对于希望给予批次管理的客户,根据配置,产生一个新的批次编号即可,这样用心的构架兼容原来的构架。

2.从技术的角度谈一谈如何保持版本唯一性

A.增加新的配置,改配置默认保持原有的行为,例如:原来患者电话号码允许空,但有用户希望必须输入,那就是增加配制,但默认值允许空

B.模块化,并基于接口的方式进行开发,如果不同用户的需求差异实在太大,那就用不同的接口实例来实现,但系统配置使用原来的实例,用户可以选择新的实例

C.基于总线的方式来实现,例如:不同用户可能使用的合理化用药软件不一样,这导致接口也不一样,具体的做法就是,单独开发每种软件的接口模块,前台程序每次封存医嘱向总线发送医嘱封存消息,不同的用户通过总线配置程序挂载不同的总线插件即可,对于没有合理化用药的客户,不挂载即可,这样,前台程序可以对所有用户升级,而不会有兼容性问题

D.采用小幅度增量升级,便于控制程序更新规模,方便在发生错误时能够及时修正

E.采用实时升级技术,确保每次升级,让所有用户都能更新至同一版本,例如海邦HIS就要求用户必须提供升级用的前置机,确保每个用户都在第一时间得到最新版本

F.一个不是技术的问题,就是不要太小气,不要因为某项新功能想着收钱就故意不升级,这个我感觉在限制用户的时候,也提高了维护成本,按这种方式,很快用户就得到了分化,如果一个用户长期得不到升级,突然来一个大的增量升级,很可能是灾难性的,我想阅读此文的读者一定深有体会。

也谈软件版本控制的问题相关推荐

  1. 乔尔谈软件终结篇:分布式版本控制…

    2010年03月20日 编程技术, 翻译 译者按:3月17日,Joel Spolsky在他影响了全球数百万程序员的著名博客Joel on Software中发表了最后一篇文章Distributed V ...

  2. 浅谈软件性能测试中关键指标的监控与分析(转)

    浅谈软件性能测试中关键指标的监控与分析 一.软件性能测试需要监控哪些关键指标? 软件性能测试的目的主要有以下三点: Ø  评价系统当前性能,判断系统是否满足预期的性能需求. Ø  寻找软件系统可能存在 ...

  3. 「软件项目管理」一文浅谈软件项目风险计划

    一文浅谈软件项目风险计划 序言 一.风险基本概念 1. 风险的定义及特性 2. 风险三要素 3. 风险图示 3. 风险类型 (1)预测角度 (2)范围角度 二.风险管理过程 三.风险识别 1. 定义 ...

  4. 软件版本控制Subversion和Git

    下面是对软件版本控制Subversion和Git的介绍,希望可以帮助到有需要的小伙伴~ 文章目录 软件版本控制是什么 版本控制是什么 软件版本控制是什么 版本控制系统Subversion和Git Su ...

  5. 对话:与印度第一大IT教育培训公司CEO谈软件

    对话:与印度第一大IT教育培训公司CEO谈软件 印度软件业的蓬勃兴起,是这几年来最为中国软件人津津乐道的话题.人们既兴奋,又多少有些紧张地注视着印度.印度软件业的崛起,已经是一个既成事实.中国软件业, ...

  6. 浅谈软件开发工具CASE在软件项目开发中发挥的作用认识

    浅谈软件开发工具CASE在软件项目开发中发挥的作用认识 内容摘要:阐述了CASE工具作为 一种开发环境在软件项目开发中所起到的开发及管理作用.CASE工具实际上是把原先由手工完成的开发过程转变为以自动 ...

  7. java学习方法-浅谈软件开发的神速进步

    中国人大都喜欢用武侠小说来比较软件开发,但是在实战武功中,只有葵花宝典才是最厉害的,也只有掌握了葵花宝典,才能称为"不败". 1浅谈软件开发的神速进步 1.1什么才是软件开发的葵花 ...

  8. 由高铁故障谈软件缺陷管理和危机应对

    1.引言 2021年的五一假期,是一个不平凡的假期:由于疫情,好多人都没有出行:2021年的五一,北京西站迎来了大规模的人流.然而,不幸的是,在北京西站候车的人发现,北京西站发生了大规模高铁延误,很多 ...

  9. 从足球赛谈软件开发!!!!

    昨晚看切尔西的比赛的时候突然联想到了软件开发,呵呵,来看足球赛: 1.根据比赛双方的实力.主客场.天气等等各方面因素来比赛双方都会制定自己的目标,战平.胜或别的目标. 2.需要在有限的时间内(90分钟 ...

最新文章

  1. NSDateFormatter 时间格式转换
  2. TensorFlow支持Unicode,中文NLP终于省心了
  3. Python判断两个文件夹中互相不同的文件有哪些、判断一个文件夹相对于另外一个文件夹缺少了哪些文件
  4. 记一次接口性能优化实践总结:优化接口性能的八个建议
  5. 生成对抗网络 : LSGAN, WGAN, CGAN, infoGAN, EBGAN, BEGAN, VAE
  6. iOS自定义从底部弹上来的View
  7. 制动方面存隐患 上汽通用召回2215辆别克、雪佛兰等车型
  8. Spark生态之Spark Streaming
  9. 从 “C语言之父” 那里学到的一些好东西!分享给你~
  10. javax.persistence.EntityNotFoundException: Unable to find报错
  11. Mybatis通配符
  12. 关于win10自动更新无法关闭
  13. 手机签到应用的设计与手机定位方法浅析
  14. Flex ikev2
  15. tp打印服务器修改ip,tp打印服务器和网络打印机安装方法.docx
  16. java 相关论坛或网站
  17. 解决 - Adobe Acrobat/Adobe Reader 的 Windows 任务栏图标异常
  18. innerHTML,outerHTML innerHTML
  19. ZOJ 3981(Balloon Robot)
  20. html做一个简单的网易邮箱注册

热门文章

  1. 诚信迎考 计算机考试主题班会策划,2013.11.09“以诚为本 以信立人 诚信考试”主题班会策划书...
  2. 杨澜这样说,非常经典!
  3. 手机公司陷入集体焦虑
  4. PlaceWar再次获得300万美元融资,会带来怎样的改变和机会?
  5. Android 直播中弹幕、带货和键盘的交互,android视频开发框架
  6. python中的import指的是什么?
  7. 基于Vue框架的图书销售网站(HTML+CSS+JS)
  8. 煽情的儿子527=随笔
  9. FastCAE 2.0版本产品介绍
  10. iOS学习笔记 iCloud入门