这应该是一个老话题,一套软件由于不同用户的需求不同分裂成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. uwsgi: invalid option -- 'x'
  2. 大厂面试官手把手教你:三步写出好简历
  3. 支持回调处理 php函数,PHP支持回调的函数有哪些
  4. Linux系统如何在开机时修改root密码
  5. 自动填充数据新增测试数据_用测试数据填充员工数据库
  6. 一次性解决导航栏的所有问题
  7. Java的书写汽车价格_ES Java API_基于mget实现多辆汽车的配置与价格对比
  8. python编程函数_python函数式编程
  9. 142.PHP session 阻塞问题
  10. jad反编译成java,Jad java反编译指令
  11. ajax直接发PUT,DELETE请求报错500
  12. 十分钟教会你们怎么开传奇
  13. 《算法竞赛入门经典(第2版)》——学习记录
  14. Centos7 安装RVM
  15. Git分支——多人协作开发
  16. 【C语言】函数基础知识点总结
  17. 什么是MBS和ABS(资产支撑证券化)
  18. 【最新】Xcode 8 打包教程
  19. 关于立象OS-214TT条码打印的一些问题
  20. sourcetree如何修改用户名

热门文章

  1. Android实习生的分享——总结一
  2. Vue 关闭严格语法检查
  3. 新闻发稿宣传软文怎么写?纯干货
  4. Java用xyz组成真数_【吏隐】的意思是什么?【吏隐】是什么意思?
  5. 苹果与Windows双系统时间不同步的解决办法
  6. QQ聊天记录的保存位置
  7. 苹果手机上网很慢_手机信号明明满格,为什么网速还很慢?原来是这3个功能在作怪!...
  8. ipconfig命令的几种使用方法
  9. OA财务“双链”,锻造惠达卫浴数字化韧性
  10. 一政网是真实助公考上岸的吗?