twdwyp

导航

你必须知道的软件工程(二)软件开发的本质

      软件开发大家都会,学的就是编程,会编程不就是软件开发了。 但是如果要让大家讲讲什么是软件开发的话,就难了,在计算机里这种现象比比皆是,什么模型呀,框架呀,体系结构呀,天天挂在嘴边,都说不清楚明确的定义,本来不知道软件开发的定义一样成为牛人,知道了定义也不一定成为牛人,呵呵。不过,能够知道这些定义,可以让你加深对事物的理解,激发自己的想象了,从而能够创新(理论上如此)。

      软件开发本质就是问题域的概念和计算逻辑到软件解(包括概念和计算逻辑)的映射。

      概念的映射,比如人吃饭这件事,可以简化为手拿起食物,判断嘴的方向,放进去。那么用面向对象的方法把手映射为一个对象,食物映射为一个对象就是概念映射。

      计算逻辑的映射,同样拿人吃饭这个事, 那么我们用结构化方法可以这样分析,输入拿起食物完成的指令,经过加工后,输出嘴的方向指令。用面向对象的方法分析的结果就是,手向大脑发出方向的请求,大脑不停的返回方向,到达位置后,手向嘴发出了放进去的指令,嘴返回接受指令。

      当然,这样不能保证你能够开发出来正确能用的软件,需要有一套机制保证你的映射是正确,保证你的映射能够文档化让别人看懂,保证你的映射伴随着人的进化而能够不停的改变。 这就是软件过程了。软件过程包括基本过程、支持过程、组织过程三类。其中基本过程包括获取过程、供应过程、开发过程、运行过程、维护过程;支持过程包括文档过程、配置管理过程、质量保证、验证过程、确认过程、联合评审、审计过程、 问题解决等 ;组织过程包括管理过程、基础设施过程、培训过程、改进过程。

       真诡异,原来我们每天都在做这些事情。

posted on 2009-06-14 02:02  twdwyp  阅读(526)  评论(0编辑  收藏  举报