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

遗留系统: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