细说可持续的需求分析和软件设计

发表于:2010-12-09 11:29

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  4)可持续性

  功能点的实现选择,要考虑的还有可持续性的问题,就是功能点是可以不断去叠加来完善的,而不是说不断的推翻后重新实现一把,这个是差别很大的。比如说内容创建功能,现在对于异常的处理我们暂时不实现,这个是没有问题的;但是如果下次要实现异常处理的时候,就要把现在内容创建的流程的功能描述推翻重来,这个可持续性就有问题了,因为这个意味着以前的功能全部都会被推翻,很可能是以前的实现都白费了,这就是功能点设计的的不可持续性了。功能点设计一定要有持续性,如果是这样子,系统的功能就能够越做越强。

  所以我们可以把每一个的User Story的各个功能点想的更加完善,这个是很好的,剩下的只是如何取舍的了,所谓取舍,只是阶段性的舍弃和选择罢了。所以在讨论过程中,不要因为功能的增强,范围的扩大而让我们感到害怕和困惑,把他们记录下来,就是很好的逐步改进系统的武器,我们只要运用上面的一些原则,就能够让我们做的更好。

  下来再谈谈设计的问题

  在Head First Object-Oriented Design的书中,定义Good Design就是Flexible Design。而The Art of Agile Software Development一书中,定义Good Design为“A good software design minimizes the time required to create, modify and maintain the software while achieving acceptable runtime performance.”就是软件的可维护性。所以Agile Design强调的功能,基本上都是从如何不断改进软件的可维护性和可扩展性而努力的,只有软件具备了良好的可维护性和可扩展性,那么软件能够很好的不断叠加功能,软件才具有旺盛的生命力。

  我们实际中面向的问题呢?其实还是很简单,就是好的设计和项目时间的冲突,好的设计是需要时间考虑的,也是需要时间来实现的(虽然不是绝对,有时候好的设计会节省更多的工作量)。

  对于第一个问题,于项目时间的冲突,这个可以回到前面开始谈的内部质量和外部质量的问题,前面对于功能(外部质量)的问题,我们已经谈了取舍的方法,那么,内部质量(设计),是不是也可以取舍呢?在“Scrum and XP from the Trenches”书里面,作者自己是这么认为的:

  Internal quality, however, is not up for discussion. It is the team’s responsibility to maintain the system’s quality under all circumstances and this is simply not negotiable. Ever.

  在这上面我是持一样的观点的。

  然而我们的问题依然存在。和项目时间的冲突如何平衡呢?我想可以考虑两个原则:

  ● 足够好(First Right)

  ● 分阶段实现/可持续性

  1)足够好(First Right & Good Enough)

  所谓First Right & Good Enough是让我们看看我们所作的设计是不是足够清晰的架构我们的系统,而不是太过的复杂导致项目时间不足,往往好的设计并不是要花更多的时间实现的,通常只有Over Design才让我们感到力不从心。所以我们发现设计导致实现的时间过长的时候,我们需要看看,是不是我们想的太复杂了?

32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号