模型驱动与测试驱动相结合的软件开发过程

        当今的软件开发业中,模型驱动和测试驱动开发是非常流行的两种软件开发流程。模型驱动贵在进行用例分析,之后设计出软件的整体结构,再根据用例进行详细设计,自顶而下对整个系统使用5视图法进行不同角度的分析和设计,并且在此基础上对系统进行详细设计,对其中的关键用例可以进行伪代码级的设计(此处对关键需求的识别不是本文重点,不会的请参考相关资料),根据资源条件(包含人、时间、资金、硬件等)可以对非关键功能进行接口级设计。

        测试驱动开发是根据故事卡对整个系统做一个大致的结构切分,再通过两两开发人员一组的方式进行开发,在开发过程中,需要根据测试用例编写测试代码,再进行代码实现开发。由于有了测试的约束,从而保证了每个实现的正确性。测试驱动的关键在于:
1、团队成员水平比较平均,开发观念类似。
2、在开发过程中沟通十分频繁,所以两人的沟通要十分流畅。
3、测试先于实现,最好能够测试和实现分开进行。

        在很多软件开发公司中,关于这种开发模式的讨论也是十分常见的。单位根据自身的多种原因,使用各自的开发方式。其实在我的理解中,开发方式其实都是为了保证代码质量的一种手段。既然模型驱动和测试驱动各自有其优点和缺点,那么我们就应该在其各自的优势上下文章。在资源支持的情况下,尽量使用模型驱动和测试驱动相结合的方式进行软件开发。例如:在需求分析和系统架构设计等阶段使用模型驱动,在本次迭代的接口级详细设计告一段落后,模型驱动的成果大致定型的条件下,测试驱动进入开发舞台,模型驱动的产出成果为测试驱动的开发依据。测试人员和开发人员(很有可能是一个人),各自进行相应代码编写,从而保证软件质量(如果测试和开发是同一个人的话,我强烈建议先写测试代码后写开发代码)。

        如上所述,模型驱动从上层保证系统的概念完整性,保证设计上的种种要求,测试驱动则是在接口设计完成的基础上对软件进行实现和质量上的种种把关。本文是我对模型驱动和测试驱动指导软件开发的一点理解,希望对各位朋友在软件开发中有少许帮助。