《大道至简》第六章读后感

  从编程到工程,首先我觉得首先应该理解什么是工程。为什么要将软件设计编写提升到“工程”的高度呢?与我们日常见到的土木工程作对比,如果我们从工程的角度来理解“软件工程”的话,我们对这个专业会有更深层次的理解。

  我们来看一个软件的生命周期,软件工程强调使用生存周期方法学、结构分析和结构设计技术以及新兴的面向对象分析和设计技术。生存周期学(SDLC--系统开发生命周期)是指从软件开发项目的提出到软件产品完成使命而报废的整个时期;分为八个阶段:

  1、问题定义:问题是什么?    完成规模和目标的报告。

  2、可行性研究:有可行性么?是否值得去做?  完成系统的实际模型,数据流图,成本/效益分析。

  3、需求分析:系统必须做什么?   系统逻辑模型,数据流图,数据字典,算法描述,需求说明书。

  4、总体设计:如何解决此问题?   可行的解法,系统流程图、成本/效益分析,推荐的系统结构,层次图         /结构图。

  5、详细设计:如何实现此系统?   编码的规格说明。

  6、编码和单元测试:正确的程序模块。  程序清单,单元测试方案和结果。

  7、综合测试:符合要求的软件。   综合测试方案和结果,完整一致的系统配置。

  8、软件维护:持久的满足用户。   完整准确的维护记录,需求的软件。

  工程是什么?《大道至简》中给了我们答案:程序+方法+过程。最狭义的工程,是描述“做什么”和“做到什么”。也就是说,是对目标的描述和成果的检测。至于这个工程目标的实现,是“过程”和“方法”的事;而有效快速的实现“过程”和“方法”所需的,就是“工具”。

  工具的产生仍旧是出于“ (软件)实现”的需要。不可能从软件开发实践中产生出轮子和指南针,因为那不是软件开发的本质需求”可以推动的。 软件工程的体系中, “实现”作为软件开发的本质需求和基本动因,如同上帝之手在推动这几十年来的软件工程理论体系的形成。工程理论其实是包含组织学的。组织,包括人力资源、项目资金以及多个项目间的协调等,是由向项目经理负责的。他需要为项目的各个阶段建立计划,并逐渐地细化计划内容;需要确立项目或产品阶段目标,成果的准确描述,定位,以及整个项目的质量目标及其评核办法;需要对团队中的不同角色培训,指导,并协调他们的工作;还需要为每一个人准备他所需要的资源等等。总之,组织者的工作都是非技术性的。而Boss并不是组织者而是经营者。

      语言对于程序设计师而言只是一种工具。

 

posted @ 2015-11-09 07:56  张晓晨  阅读(157)  评论(0编辑  收藏  举报

作者: 张晓晨

出处: https://www.cnblogs.com/420Rock/>

关于作者:专注java与大数据领域,请多多赐教!

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(zhangxiaochen643@sina.com)咨询.