• 读《大道至简》第七八章有感


    第七章的标题是“现实中的软件工程”,第八章的标题是“是思考还是思想”,文中主要以IBM的故事为例,告诉我们在软件工程技术的竞争中是很残酷的,敌人的敌人就是自己的朋友吧,软件当今不是一些软件工程师之间的争争吵吵,而是大公司之间相互制衡的结果,大公司在相互竞争激烈的时候,忽视了一些小公司,导致这些小公司在激烈的竞争中崛起。大公司们在标准、理论、语言上的争来夺去,未必全 然出于“软件实现”的考虑。对统一理论、统一工具、统 一过程的企图,其最终目的是在整个软件工程体系中的全面胜出。 

    除了软件本质力量的推动之外,商业因素也推动着软件工程体系的发展。文中所画软件工程层状模型可以看出,作者将软件工程划分为实现,团队和经营三部分。从这个模型中可以看到,在“程序”与“方法”层面,是关注于“(具体的)实现”的;而在“过程”和“工程”层面,更首要考虑的是团队问题。从角色的角度上来说:开发经理思考项目的实施方案和管理具体的开发行为; 而项目经理则保障团队的稳定性和一致性。然而这只是基本模式,或者说,是理想模式。

    理想状况下,“软件工程=过程+方法+工具”。然而工程成功的真正关键,并不是在于你把你的团队“组织”得非常好。即使在团队中他们都显示有条不紊,你一样会面临失败。灵活的软件工程。在软件开发中是常见的问题,大多数人不知究竟地使用着技巧和方法,而一旦出了问题,则归究于这些技巧和方法的不好。而真正的问题在于,这些人并不知道这些技巧、技术和方法的原理,因而不知道变通,也不知道回避错误。所以我们不能指望死读一本《软件工程》就会真正的做软件,而是要学会变通。

    软件工程三个要素的价值。而所谓的三个要素则是:工具、方法与过程。虽然本书中将他们分开来思考,但他们实际是相互作用的。所以尽管本书割裂了软件工程的各个要素,并从每个孤立的层面来审视。然而实质上,你应该回归到软件工程的本体上来思考问题,而不是仅关注于每一个局部的要素。工程的这提问题仍然是“实现”。

     在软件开发中思考尤为重要,除了思考还是思考。思想是特别重要的,有了思考了,才会诞生一种新的思想,思考问题的方法可以是由点及面的,也可以是统揽全 局的。换成业界最常用的词汇,就是“自上而下”还是“自 下而上”的区别。 软件工程的三个要素是:工具、方法与过程。三者是相互关联的,并不是孤立的存在,它们共同组建立一个工程。

    实现目标和保证质量的矛盾是不可避免的。 即使在时间、资源和功能三者中取得了平衡,即使客 户、项目组和公司同样满意于这个平衡“目标”,它仍然 有可能是“不能实施”的。 所以我们通常所说的细节,其实是对实施方法的一些 有限量的描绘。比如“软件工艺”这个概念本身的提出, 就是考究“细节问题”的。对于是先思考还是先有思想,思考之后才会有一种合适的思想,思想对于软件工程特别重要,是一个项目的核心内容。

    所以作为一个软件工程师,  思想尤为重要。

  • 相关阅读:
    uboot学习之三-----uboot启动第一阶段--start.S之一
    4.7 C语言的存储类,作用域,生命周期,链接属性
    uboot学习之二----主Makefile学习之一----版本号 u_boot_version(U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL).$(EXTRAVERSION)) (24-29行)
    uboot学习之二----主Makefile学习之二----环境变量之:主机的操作系统和主机架构(HOSTOS、HOSTARCH)(31-43行)
    uboot学习之二----主Makefile学习之三----静默编译
    uboot学习之二----主Makefile学习之四----两种编译方法:原地编译和单独输出文件夹编译
    Linux下安装交叉工具链&&安装vim
    善变的不只是女人,还有volatile ---偷来的标题名
    东芝半导体最新ARM开发板——TT_M3HQ开箱评测
    STM32F407外部晶体改为25M后检测不到芯片的解决办法
  • 原文地址:https://www.cnblogs.com/weiyao/p/4967715.html
Copyright © 2020-2023  润新知