读《大道至简》第六章有感
第六章的标题为“从编程到语言”。在这章里,作者提供给我们了一幅关于软件工程的图,可以看到,程序位于图的最内部。之后则是方法,这里的方法指的是面向过程方面的。方法之后则是过程,过程便是指模型与模型语言。过程之后则是工程,工程是由构成来构建的,工程还包含需求管理、配置管理以及文档化。最后才是包含了管理与计划的组织。也可以说作者这个图为软件工程分好了层次。
第一节的标题为“语言只是工具”。作为编程人员,最常接触的便是编程语言了,自然而然的就会找到自己所喜欢的编程语言,甚至会有些排斥其他的语言,然而他们都舍本逐末了,编程语言也只是语言,只是用来编程的工具,语言既不是程序也不是工程,它只是一种我们用来与电脑沟通的语言,只是一种沟通工具。
第二节与第三节的标题分别为“程序”与“方法”。在第二节里,又一次强调了编程的精义,即“编程=算法+结构”。第三节里,方法是实践的产物,而不是某个人或者某个组织创造,方法是实践积累达到衣服那个程度后的产物。而且,我们日常的正在做的、从事的和实现的都在应用这着方法,只是我们可能没有将之成为方法而已。要想能够理解那些那些方法所蕴含内在规律,就要多回顾、理解与分析。
第四节与第五节的标题分别为“工程”与“组织”。过程伴生工程而出现。过程是用来解决工程中角色间的关系问题,过程中的问题,就是角色、沟通和环节的问题。角色的确定以及角色间的沟通问题,是很重要的。最狭义的工程,是对目标的描述和成果的检测。工程是因软件规模的不断增大而出现的。所以,在软件规模不断增大的前提下,软件公司应该具有团队意思,以适应生存。
第六节与第七节的标题分别为“组织”与“BOSS”。工程关心的是需求、配置和文档等该类的要素,关注的还是工程的实现细节,而非目标。而组织则需要关注于人力资源、项目资金以及多个项目之间的协调等。组织者的任务便是回顾每一个项目,以及与团队成员交流的细节。BOSS其实不是给你发钱的那个人,真正的BOSS是经营者,清楚BOSS是谁,有助于你明确被雇来的原因等内容。
第八节标题为“上帝之手”总结了上文的内容:实现是软件开发的本质需求。方法是对既有行为的归纳总结,因而方式最先出现的,而后才有分析和设计方法。为了实现更大规模的软件系统而有了团队组织模式,而团队的协作决定了过程模型的产生,在过程环节中的沟通问题导致了(模型化)语言的出现。软件工程的体系中,“实现”作为软件开发的本质需求和基本动因,如同上帝之手在推动这几十年来的软件工程理论体系的形成。