您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
为什么软件工程特别强调必须先有设计,然后才能编程?
软件,需求,项目为什么软件工程特别强调必须先有设计,然后才能编程?
发布时间:2016-12-08加入收藏来源:互联网点击:
为什么软件工程特别强调必须先有设计,然后才能编程?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
不只是软件工程强调先设计后编程,其实任何的工程都是设计在编程前面,因为没有设计就去编程那就是盲目行动,编程只是整个工程里的一部分,而设计就是整个工程的灵魂,就像盖房子时的框架,其次还有预算,材料,后面才是施工。
我以前做过几年自动化方面的工程,不管是设备改造还是帮人家做一个纯软件方面的项目,基本上在下订单之后,第一步就是设计,因为在选材,造价之后就是下订单,签合同。然后就开始做这个工程了,第一步就是工程设计,目的就是在完成任务的前提下,形成一个完整的计划:怎样降低成本,提高产品的性能,怎样把工程最优化,做到性价比最点,安全性最高。
所以设计是非常重要的,就像打仗时的作战计划,设计就是打仗时的作战计划,编程就像下一步的具体战斗任务。如果没有作战计划,就直接冲向敌人乱打一阵,那必然打败仗,甚至可以说是胡闹。同样没有设计的编程就是没有计划的胡冲乱撞,没有任何的效率。
比如,做用plc控制变频器,用触摸屏做上位机,这个比较小的软件工程,我们肯定不能先去编程,因为你还没做设计呢,你怎么编程?用那种方式去编程?用什么语言去编程?肯定没法下手,我们必须先去设计。
一,我们需要先设计用那种控制方法,因为控制变频器有:端子控制的方法,优点是编程简单,但成本要高一点些,因为变频器的给定需要外加d/a模块,或者其他给定源;通讯控制方式,优点成本低,但编程相对复杂,对技术方面要求稍微高一些,所以这个要提前设计好。
二,选材和防备,同样的性能,肯定选价格最低的,但同时也要保证质量;同时我们要保证万无一失,必须设计第二套方案作为备用。假设第一方案出现了意外,那第二套方案就可以应急,弥补第一方案的漏洞,这样才能万无一失。
三,我们可以编程了,展示我们的才华吧,在设计的框架下面,就像给了我们一个游泳池,你尽情表演吧!
所以说,不管什么样的软件工程,虽然编程很重要,但必须设计在先,编程在后。
回答于 2019-09-11 08:43:50
事先亮明身份,我是一个工作了五年的程序员。那么回过头来,我觉得我应该有资格分析一下这个问题。
为什么要设计先行?
第一,如果没有设计,程序员没有任何事情是可做的。如果有人跟你说,还能搭个框架。我只能说,他们公司十有八九是外包或者是一套架构走天下的那种。实际上,按照正确的流程,程序员或者架构师需要根据需求进行框架规划。在需求出来之前,什么工作都没法开展。
为什么提到需求呢,需求又跟设计有什么关系?需求是设计的基础,设计是需求的表面特征。一个完整的项目流程,在客户提出需求之前,UI需要根据客户需求确认项目UI,产品经理需要整理需求,分析客户的隐藏需求(这一点很重要,因为大多数客户都没法准确描述自己想要什么),据此出具需求分析或者需求说明书。架构师根据需求说明书,设计(注意)系统架构。然后项目负责人根据需求说明以及架构师设计的架构,规划项目模块划分,然后交由下面的程序员开发。程序员接到领导下发的任务说明,需要以此编写自己负责模块的实现逻辑(也就是设计开发步骤),最后才是开发。
第二,先有设计能有效的防止你后续跟产品经理以及客户二(不定多少)次修改需求引发的撕逼甚至斗殴。
正如前面说的,大部分客户不知道自己想要啥,甚至产品经理都不知道自己想要啥。所以一个完备的设计图或者正规的文档都是跟他们撕逼过程中最重要的证据。
第三,先有设计再实现,更利于实现的提速。因为设计本身就是在思考这个功能该如何完成的过程。这对于程序员来说很重要。
第四,可以显得自己很专业,方便跟甲方爸爸多要钱。
当然,在我看来最大的作用是为了以后撕逼的时候,有他们瞎闹的证据。
所以,设计对于程序员来说很重要。
回答于 2019-09-11 08:43:50
好的设计具有不可比拟的意义,它胜于软件需求、软件编码、软件维护等任何一个环节,这就是设计的优越性。一个健壮的程序必然有良好的设计,软件工程设计是构建复杂软件中必不可少的重要环节。软件设计的重要性主要体现在以下方面:
良好的软件开发设计可用于轻松确定软件中的性能瓶颈,尤其是在设计达到一定水平时。这意味着设计应该展现系统内部如何工作以及如何使用资源,如线程、数据库连接、查询数据库以及其他可能影响性能的东西。如果是从软件设计为客户撰写设计文档来说,它为客户提供了将要使用软件的工作原理的概述,良好的可读性还为新手提供了一个很好的起点。无需让他们浏览所有源文件,在软件设计说明书中就可以找到所需的信息。
说到设计,逻辑是必不可少的。一是在撰写完设计后自己的逻辑比较清晰明了,之后再编程时就游刃有余了,并且还可以很好地辨别出哪些地方是易错点、难点,处理问题就会更加简单。二是如果设计完成后不是设计者来开发程序,而是其他人来开发,那么良好的逻辑性可以避免很多因为逻辑而产生的问题。
我们应该充分认识设计阶段的重要性,从思想上强调设计阶段质量保障工作的必要性与重要性。设计开始,在充分了解需求与项目背景的前提下,结合项目情况采用恰当的设计思想与设计方法,从设计的指导思想与方法上避免设计阶段的质量瑕疵。 我们在做设计时还要根据项目的具体情况与应用场景选用合适的设计思想做指导,选用合适的方法帮我们尽快理清系统的业务逻辑并理出思路。
上一篇:怎么哄人开心?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |