大部分软件开发的工作组,软件开发第一件事就是“写代码”。大致的流程是:开发人员和用户聊了聊需求,经过几次交流之后,对那些自以为理解的需求就开始写代码,然后就交给用户使用。用户在使用过程中,发现功能的问题,反馈给开发人员去修复;完善前期不完善的需求,告知开发人员开发这些因前期不完善还没有开发的需求。开发人员在这个过程中就不断改写代码,以修复问题和实现新的功能。这个过程一直持续到用户不再反馈新的问题,不再增加新的需求。
就是这样,开发人员的主要精力都投入在“写代码”上面,需求分析有那么一点,而设计就都隐含在“写代码”之中了。所谓的“隐含”,实际上几乎就等于没有设计。但是,一些开发人员认为,“写代码”就是设计。这种观点并不正确。我们先来看看软件设计的定义。软件设计是这样定义的:
软件设计是这样一个过程,通过它把需求翻译成软件的一种表示。起初,该表示描绘了软件的一个整体全貌。接着的精化导致一种在过程细节方面非常接近源代码的设计表示。
从上面的表述来看,软件设计是需求到实现之间过渡的桥梁,衔接的钮带。软件开发是由需求、设计、实现、测试这一系列过程组成的,每一步都要走稳走踏实了,才会给后续的过程打下坚实的基础。按照系统论的原理,部分会对整体造成很大的影响。所以软件设计如果做不好,就好像桥梁、钮带断了,后面的软件实现,软件的整体质量肯定会受巨大影响。
软件设计要完成两个任务,一是通过结构设计,将要实现软件需求的功能模块组织成软件架构,以一种可视化的形式展现出软件的整体概貌;二是对这些模块做进一步的细化,为下一步编码打好基础。
如果不进行设计,跳过了这一过程,软件设计师就失去了一次在编码实现之前分析软件功能是否完整,软件架构是否稳定的机会。如果失去了这样的一次机会,软件设计师就可能会陷入“只见树木,不见森林”的困境,就可能会只实现了细节,却没有考虑到整体。
同时,如果事先没有建立整体的架构,考虑软件模块间的内部接口以及软件外部的接口,当要实现前期不明确后期才明确的需求,或者有新增的需求时,就可能会导致软件架构的崩溃,严重的时候,有可能会把整个软件推倒重来。
软件开发必须要经过初步设计、详细设计、编码、测试4个步骤。这是软件工程的智慧结晶。不按照这些步骤进行软件开发,那就不是软件工程指导下的软件开发,只是手工作坊式“写代码”
注:Workday是我公司的注册商标
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!