要使软件和软件架构较好的满足用户的需求,就必须先与用户明确需求,但大家都知道用户一般提出的需求较为含糊,不明确。为了使需求明确需求人员一定要较为恰当地引导用户说出他们想说的东西,而且需求人员一定要具备一定的抽象分析能力,能从用户的描述中得到开发时的素材。这些事设计架构的前提条件!但是为了更好的开发软件,最好有一个可靠的测试环境,这是搞好架构设计的重要条件。为什么非得需要一个好的测试环境哪?
原因是:
1。开发人员一开始并不能够十分肯定地确定自己需要设计怎样的结构!有时不得不在设计时甚至在开发时调整!因为业务需求很确定时,架构又不得不满足性能、安全、耦合度等非业务需求,这些需求给架构设计带来一定的不确定性,所以可能会出现在项目后期还在修改设计的情况,这样开发人员就会不断地修改代码,我想一定会带进不少Bug(这是很多开发人员的共识:每修改一处,就会带来潜在的多个Bug),甚至破坏原有的业务功能。所以综上所述必须根据需求搭建一个测试环境,我的建议是使用Nunit (用Java/J2ee的朋友可以使用Junit),测试优先的方法,我不再介绍了,网上有的是关于它的文章。每修改一处,便运行一次测试,可以在保证业务功能不会被破坏的情况下使系统的架构和功能越来越向我们期待的那样发展。
2。可以为重构准备一个环境,有了一个有效的测试环境,重构将会成为可能,对架构代码或业务代码重构时,可以考虑使用现成的重构工具,如Visual Studio.net 2005有内嵌的重构工具,如Extract Name.
3.我说过一个设计过程也好一个开发过程也好,都是一个循序渐进的过程,没有测试是不可想象的。