zoukankan      html  css  js  c++  java
  • 对详细设计的理解 荣

    我觉得没有好的软件工程不但会给个人,也会给项目组,所有人带来困难,这是我对详细设计的理解:
    一、             开发人员需要做3到4次测试。


    其实,我们并不是不做详细设计。我们都做详细设计,包括开发人员与测试人员。


    开发人员开发的时候,甚至需要做3到4次详细设计,它们分别是:


     


    1.             拿到开发任务后,首先需要对开发任务进行思考和调查,这是第一次详细设计。成果物是记在脑子里的理解。


    这一阶段通常没有副产品,不会想到设计点,所以就增大了单元测试时候的工作量。


     


    2.             编码的时候,由于对任务理解的深化,会想到许多细节的东西,这时候再思考、调查一遍,这是第二次详细设计。


    成果物是写出来的代码和脑子里的理解。


    因为这些思考带有随意性,容易忘记,就增大了修改bug的工作量。


     


    3.             单元测试的时候,因为没有预先设计好的测试点,所以需要回顾一下自己曾经的思考和调查,按照回顾的东西来做测试(这种测试通常很不全面),这时第三次详细设计。


    原因是没有预先设计好测试点,与详细设计。


    结果是单元测试不到位,把很多该单元测试的问题撂给了测试人员。


     


    4.             当测试人员测试出bug,而且bug埋藏的很深的时候,需要自己找错误原因,回顾一下编程思路,对该功能的理解,然后再做修改,这是第四次详细设计。


    由于无法保证这次详细设计的正确性,为程序留下了隐患。


     


     


    二、             无法合理的安排进度。


    三、             


    因为没有详细设计,无法很好的把握每个功能的工作量的大小,所以很难做一个合理的计划,开发计划做不好,测试计划估计就更难做了。


     


    产生这个问题的原因是没有对功能有足够的了解,有些看上去简单的东西可能含有许多复杂的逻辑。还有,就是下一个要讲的问题:疑难问题在编码前得不到解决,留到编码时解决,就加大了开发时间。


     


     


    四、             疑难问题难解决,交流不畅通。


     


    在开发的时候很难拿出很好的交流时间,因为


    1.     大家都忙。


    2.     这些疑难问题是一个一个发现的,不系统,无法统一解决,也无法规定时间解决,因为是随时发现的,有些可能还急需要解决。


    结果是疑难问题层出不穷,影响进度也影响开发的积极性,还会影响发开质量。因为这些疑难问题会打断开发人员的思路。


    五、             无法很好的适用客户要求(因为每个人作设计。理解不同)。


     


    因为这样的详细设计是每个人自己做的,而且是在不同的阶段不同的时间,出于不同的目的做的,所以,这样的详细设计为难题很多。


     


    1.     没有系统性,遇到问题解决问题,可能会出现为了解决这个问题而影响到其它的问题。


     


    2.     无法集思广益,因为是个人做的,由于阅历,思维方式,知识结构和性格不同,肯定有许多地方想不到。


     


    3.     无法得到大家对该详细设计的看法,因为没有交流的时间(大家都在忙)。


     


    4.     无法及时解决疑难问题,可能有些问题就按照自己的理解来完成了。


     


    5.     系统无法统一,例如某个单位、功能的实现都会因为人不同而不同,例如:同样是币值,一个系统中,可能会出现元、角、分的单位。


     


     


    六、             无法验收,无验收依据。


     


    因为没有详细设计,所以只能*概要设计或需求规格说明书来验收。而这些文档好多地方都没有考虑,而没有考虑的地方可能会很大的影响系统的功能。


    例如上面说的单位问题。


    而且,因为没有详细设计,没有制定出来测试点,很难说某个人的单元测试是合格还是不合格。


     


     


    七、             为单元测试带来难度。


     


    因为详细设计时,没有设置测试点,测试的时候就不知道怎么测试好,会一头雾水。


    测试多少个点合适,那些地方是重点,那些地方需要注意,测试到什么程度就算测试好了,不知道,所以单元测试很难测试。


    没有预设的测试点,单元测试就很难量化,也很难计划。


    因为麻烦,因为一头雾水,单元测试的热情就降下来。


    单元测试做不好,就会出现下面的问题:增加测试人员的难度。


     


     


    八、             为测试组人员带来难度,难以保证测试人员的测试质量。


     


    因为单元测试没有做好,很多测试就只能拿到测试组来测,这样就增加了测试人员的难度。


    由于测试人员对系统并不必开发人员熟悉,所以,发现bug的难度要比开发人员的大。


    因为测试的工作量增大,就很难保证测试的质量。


    因为测试出bug的增多,测试人员可能会怀疑开发人员的能力,甚至对开发人员有意见。


    由于测试出bug的增多,开发人员修改bug的热情也会下降,甚至会怀疑系统的性能,会怀疑自己的能力。


    因为需要修改的bug的增多,距离编码完成的时间长,对代码的具体细节会产生遗忘,修改bug的质量就难以保证。

    其实我觉得详细设计也不难做,因为每个开发人员都在做,虽然与正规格式不一样,但是很实用。所以我们肯定能很轻松的,做出非常实用的详细设计

    至于变更,我觉得许多变更是因为对系统了解不深造成的,做详细设计能够加深对系统的了解。

    而且,如果有变更,都逃脱不了。不做详细设计比做浪费的时间精力要多。而且,开发前思考的不仔细,也不会知道为什么需要变更,变更后有什么影响,变更的必要性有多大。

    如果我们在实现前就深入思考过,我们就可以对变更了解的更深。由资本来接受、拒绝、延迟实现变更,因为我们做过深入调查嘛。

    我觉得我们做详细设计第一不是浪费时间,第二不是难事,是我们拿手的事。

  • 相关阅读:
    Object doesn't support property or method 'flat'
    yapi的部署
    mongoDB 安装
    排序
    直播原理
    文件怎么都删不掉,压缩,命令行都不行
    computed和watch
    docker安装
    跨域问题的解决方案
    一次普通的http请求
  • 原文地址:https://www.cnblogs.com/admin11/p/218594.html
Copyright © 2011-2022 走看看