`
fangang
  • 浏览: 876804 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
311c4c32-b171-3767-b974-d26acf661fb2
谈谈用例模型的那些事儿
浏览量:38637
767c50c5-189c-3525-a93f-5884d146ee78
一次迭代式开发的研究
浏览量:68804
03a3e133-6080-3bc8-a960-9d915ed9eabc
我们应当怎样做需求分析
浏览量:409923
753f3c56-c831-3add-ba41-b3b70d6d913f
重构,是这样干的
浏览量:91476
社区版块
存档分类
最新评论

遗留系统:IT攻城狮永远的痛

阅读更多
我常常觉得我们非常幸运,我们现在所处的时代是一个令人振奋的时代,我们进入了软件工业时代。在这个时代里,我们进行软件开发已经不再是一个一个的小作坊,我们在进行着集团化的大规模开发。我们开发的软件不再是为某个车间、某个工序设计的辅助工具,它从某个单位走向整个集团,走向整个行业,甚至整个社会,发挥着越来越重要的作为。一套软件所起到的作用与影响有多大,已经远远超越了所有人的想象,成为一个地区、一个社会,乃至整个国家不可或缺的组成部分。慢慢地,人们已经难以想象没有某某软件或系统的生活和工作会是怎样。这就是软件工业时代的重要时代特征。

然而,在这个令人振奋的软件工业时代,处于时代中心的各大软件企业却令人沮丧。软件规模越来越庞大,软件结构越来越复杂的同时,伴随的却是软件质量越来越低下,软件维护变得越来越困难,以至于每个小小的变更都变得需要伤筋动骨。研发人员为此举足无措,测试人员成为唯一的救星,每个小小的变更都需要付出巨大代价进行测试。软件企业在这样一种恶性循环中苦苦支撑。毫无疑问,这也成为这个令人振奋的时代的一景。

过去,一套软件的生命周期不过2~3年时间,随着软件需求的变化,我们总是选择将软件推倒了重新开发,但是现在这样的情况在发生着改变。随着软件规模的扩大,软件数据的积累,软件影响力的提升,我们,以及我们的客户,都真切感受到,要推倒一套软件重新开发,将变得越来越困难而不切实际。这样的结果就是,我们的软件将不停地修改、维护、再修改、再维护……直到永远。这是一件多么痛苦的事情啊!

一套软件,当它第一次被开发出来的时候,一切都十分清晰:清晰的业务需求、清晰的设计思路、清晰的程序代码,经历了几次需求变更与维护,一切就变得了不那么清晰。业务需求文档变得模糊不清,设计思路已经跟不上变更的脚步,程序代码则随着业务逻辑的复杂而臃肿不堪。程序员开始读不懂代码,软件开发工作变得不再是一种乐趣。

随着时间的推移,软件经过数年、数十次的变更与维护,情况变得越来越糟。最初的程序员已经不愿再看到自己的代码而选择离去。他的继任者变得更无所是从,由于看不懂程序,代码的每一次修改如同在走钢丝。测试人员变成了唯一的希望,开发人员的每一次修改都意味着测试人员需要把所有程序测试一遍。继任者们开始质问最初的设计者们的程序设计。如果此时恰巧又有什么新技术出现,就会更显得原有系统的破旧与不堪。

相信这就是软件工业时代的所有企业都不得不面对的尴尬境地。难倒真的是我们最初的设计错了吗?是的,我们都这样质问过我们自己,因此我们开始尝试在软件设计之初投入更多的精力。我们开始投入更多的时间作需求调研,考虑更多可能的需求变化,做更多的接口,实现更加灵活但复杂的设计。然后呢,我们解决了我们的问题了吗?显然是没有。需求并没有像我们想象的那样发生变更:我们之前认为可能发生的变更并没有发生,使我们为之做出的设计变成了摆设;我们之前没有考虑到的变更发生了,让我们猝不及防,软件质量开始下降,我们被打回了原形。难倒真的是无药可解了吗?在我看来,如果我们没有看明白软件开发的规律与特点,那么我们永远找不到那份向往已久的解药。现在是时候了,让我们真正静下心来分析分析软件开发的规律与特点吧。(续)

相关文档
遗留系统:IT攻城狮永远的痛
需求变更是罪恶之源吗?
系统重构是个什么玩意儿
我们应当改变我们的设计习惯
小步快跑是这样玩的(上)
小步快跑是这样玩的(下)
代码复用应该这样做(1)
代码复用应该这样做(2)
代码复用应该这样做(3)
做好代码复用不简单(1)

特别说明:希望网友们在转载本文时,应当注明作者或出处,以示对作者的尊重,谢谢!
分享到:
评论

相关推荐

    遗留系统重构与维护

    遗留系统的重构与维护是软件工程领域中一项至关重要的工作,它关注的是那些历史悠久、结构复杂且可能缺乏文档记录的旧有软件系统。重构是为了提高软件系统的可维护性、可扩展性、可读性和性能,而维护则涉及对系统的...

    遗留系统SOA迁移解决方案

    - **提高系统灵活性**:使遗留系统能够更容易地与新系统集成,提升整体IT架构的灵活性。 - **降低维护成本**:通过服务化重用减少重复开发,降低长期维护成本。 - **加快创新步伐**:基于服务的快速组合和重组能力,...

    改善Java遗留系统的8个技巧

    ### 改善Java遗留系统的8个技巧 #### 技巧1:使用分析器 分析器是一种强大的工具,它可以帮助我们深入了解应用程序的内部运作情况。如果一个应用程序已经一年多没有经过全面的性能分析,那么很可能存在大量的低效...

    可视化的遗留系统微服务改造(54页).pdf

    《可视化的遗留系统微服务改造》研究报告深入探讨了如何借助可视化手段对遗留系统进行微服务改造,以应对软件系统的复杂性和腐化问题。报告首先阐述了遗留系统和微服务架构的概念,强调了微服务架构的九大特征,如...

    基于SOA架构的企业遗留系统复用研究

    1. **技术兼容性**:遗留系统可能采用已淘汰的技术,与现代IT环境不兼容。 2. **数据集成**:遗留系统的数据结构和现代系统可能存在差异,需要进行数据转换。 3. **业务逻辑解耦**:将复杂的业务逻辑从遗留代码中...

    【Java设计模式-源码】防腐层模式:确保在遗留系统中保持系统完整性

    在 Java 开发中,防腐层(Anti-Corruption Layer,简称 ACL)设计模式对于系统集成和维护数据完整性至关重要...当新系统请求库存数据时,ACL 将请求转换为遗留系统理解的格式,检索数据,然后将其转换回适合新系统的格

    从单机至分布式架构的遗留系统再工程1

    综上,本文提供了一个全面的遗留系统改造框架,对于那些寻求升级单机系统以适应分布式环境的IT专业人士来说,是一份宝贵的参考资料。通过实施这些方法,可以有效地将旧系统转化为现代、高效的分布式架构。

    一种Java遗留系统服务化切分和封装方法

    一种Java遗留系统服务化切分和封装方法

    一种Java遗留系统服务化切分和封装方法.pdf

    在Java遗留系统服务化切分和封装方法中,作者提出了一种自动化的服务化切分和封装技术,以解决遗留系统服务化的难题。该方法通过综合静态类结构模型和动态对象调用模型,建立了一种遗留系统的对象依赖频度图表征模型...

    iOS遗留系统上的架构重构

    iOS遗留系统上的架构重构涉及的主题是iOS开发中常见但颇具挑战性的任务。遗留系统一般是指那些年代久远、技术陈旧、缺乏文档但仍在生产中使用的系统。对于这样的系统进行架构重构是一个复杂且精细的工作,需要程序员...

    大型遗留系统架构改造案例分享.pdf

    《大型遗留系统架构改造案例分享》的文档主要探讨了如何有效地对复杂且陈旧的IT系统进行现代化改造,以应对不断变化的业务需求和技术环境。文档涵盖了系统架构、改造策略、业务影响以及具体的技术实现等多个方面,...

    基于JavaEE分布式系统企业遗留信息系统再工程框架集成研究.pdf

    研究涉及到了框架的组成及其实施技术,包括遗留系统原代码向目标系统的语言代码转换、遗留信息系统中各模块信息的提取、遗留信息系统与目标系统模块之间的接口模型、以及在JavaEE分布式环境下目标系统模块的部署。...

    python遗留物检测遗失物品检测预警

    在“python遗留物检测遗失物品检测预警”这个主题中,我们可以深入探讨如何利用Python技术来构建一个系统,该系统可以监控特定环境,检测遗失物品并发出预警。以下将详细阐述相关的知识点: 1. 图像处理与计算机...

    在大型遗留系统基础上运作重构项目

    ### 在大型遗留系统基础上运作重构项目 #### 一、项目背景及挑战 在现代软件开发过程中,经常会遇到大型遗留系统的维护问题。这类系统通常具备以下特点:代码量庞大、架构复杂、缺乏良好的文档支持以及历史积累的...

    利用SOA集成检索遗留系统材料

    在连锁企业中,尤其是在信息化程度较高的现代连锁业,存在多种遗留系统,如ERP(企业资源规划)、CRM(客户关系管理)、DSS(决策支持系统)、Report Service和ManPower Manage等。这些系统可能由不同的开发商、使用...

    iOS遗留系统上的架构重构 李剑.pdf

    在处理iOS遗留系统时,架构重构是一个复杂但必要的过程。遗留系统通常指的是那些早期开发且在后期维护中不断添加新功能,但未进行适时结构性更新的系统。这类系统由于历史遗留问题,往往会存在代码复杂、耦合度高、...

    项目管理表格第4部分:IT项目收尾阶段

    IT项目管理是一个复杂而系统的过程,它涉及到项目的规划、执行、监控直至最后的收尾阶段。在本项目管理表格的第四部分,我们将聚焦于IT项目收尾阶段,这是确保项目成功并实现预期目标的关键环节。收尾阶段不仅标志着...

    IT系统安装测试报告.pdf

    IT系统安装测试报告是IT行业中一项至关重要的环节,它涵盖了从硬件装配到软件部署的全过程,确保系统的稳定性和功能性满足用户需求。以下是对该报告的详细解析: 1. **设备情况**:这部分主要关注的是安装的硬件...

    解读 Microsoft Practice & Patterns(4):Web Service同遗留异构系统的整合模型

    【标题】:“解读 Microsoft Practice & Patterns(4):Web Service同遗留异构系统的整合模型”这一主题主要聚焦于如何利用Microsoft的技术和模式来实现Web Service与现有遗留系统的无缝集成。在现代企业环境中,往往...

Global site tag (gtag.js) - Google Analytics