重新设计Java软件项目所需的过程,工具,管理技术

时间:2009-12-09 20:55:15

标签: java project-management

我是一个新团队的一员,他们试图用遗留的代码库(也用Java编写)开发一个新的Java软件系统,这个代码库已经腐烂到了核心。出于公司政治原因,我们不能放弃旧的Java代码并从新的开始。重写就等于承认他们花了2年时间开发的系统是完全垃圾。这将导致团队的最高层(即开发经理,项目经理,建筑师等......)。因此,非常强烈的自我保护意识在团队的顶端开始了,这意味着任何暗示重写的想法都会被解雇。

这导致提出以下问题: 您认为关键流程,工具和软件开发技术是什么,团队需要实施才能成功地将一个非常腐烂的遗留代码库重新设计/重构为一个良好的稳定系统? 这肯定是可能的。关于此事,有没有好的书籍/网站? 感谢

6 个答案:

答案 0 :(得分:2)

  • 明确规划了您要实现的目标以及您要去的地方
  • 为尽可能多的新旧代码编写测试,以确保您保持行为并在未来创建一个好的测试套件
  • 一次重构小块,最后加起来
  • 使用离散的垂直切片功能,如果您可以防止级联更改级联代码
  • 确保定期构建
  • 使用源代码管理

基本上,你应该从一开始就使用所有公认的良好做法;)

答案 1 :(得分:2)

从经典开始:

自动构建&部署经理 单元测试 健身测试

一旦你掌握了这些东西......当你准备好重构/重写整个混乱时......它会容易得多..而且很容易要求这些想法而不会怀疑你的任何怀疑重写意图。

我以经验的声音说话;)

答案 2 :(得分:0)

我真的从this series of articles得到了很多。虽然它是关于ASP.Net的,但我认为至少在前几篇文章中讨论的概念与Java棕地应用程序有关。如:

  

“有一些基础软件   每一个工程原理   项目应该采用,不管   特定的方法   你可以订阅。他们是:

     
      
  1. 版本控制
  2.   
  3. 问题跟踪
  4.   
  5. 自动化,自包含的构建
  6.   
  7. 自动化测试“
  8.   

这可能会帮助你找到方向并为你不值得的努力建立一个起点。

答案 3 :(得分:0)

我已成功使用Enterprise Architect(EA)对大型源代码库进行逆向工程。

如果您没有当前状态的良好模型,该工具可以让您深入了解当前状态。它还提供了一个框架,用于讨论哪些部分必须改变,哪些部分可以被拯救,以及哪些部分不需要触及。

答案 4 :(得分:0)

  1. Eclipse - 它的重构功能非常强大
  2. 耐心
  3. 技巧。在我看来,几乎每个“传统”系统都是“臃肿”,“垃圾”,“腐烂”或“废话”。虽然这通常是正确的,但非遗留应用程序是相同的,因为编写它们的开发人员不够熟练。所以请记住,如果你想要实现的东西不仅仅是另一个腐烂的系统,你必须非常小心团队技能。

答案 5 :(得分:0)

您可能只是将其视为一个新项目,但使用现有的代码库。与所有参与者坐下来确定系统究竟出了什么问题:架构设计不佳,设计不佳,编码不良,不符合要求等(或以上所有)。根据需要修改部件的架构和设计,并提出重构/重写部件的计划,以使它们处于良好的工作状态。

您在新项目中应用的所有最佳实践都适用于此:源代码控制,自动化单元和功能测试,持续集成,夜间构建,同行评审等。