zoukankan      html  css  js  c++  java
  • 《大道至简》3

    语言只是工具。第一次正视软件工程这四个字。我第一次看清楚代码、方法、过程、工程与组织的关系!你看不到你做事的行为,也就不能理解模式作为一种方法的价值。模式需要一定的编程经验才能理解。经验来源于回顾、理解与分析,而不是你将要写的下一行代码。从这个模型中可以看到,在程序方法层面,是关注于(具体的)实现的;而在过程工程层面,更首要考虑的是团队问题。从角色的角度上来说:开发经理思考项目的实施方案和管理具体的开发行为;而项目经理则保障团队的稳定性和一致性。过程伴生工程而出现。过程解决的是工程中角色间的关系问题。因此过程中的问题,就是角色、沟通和环节的问题。软件工程的体系中,实现作为软件开发的本质需求和基本动因,如同上帝之手在推动这几十年来的软件工程理论体系的形成。

    牛粪图中描述的工具、方法与过程也被称为软件工程的三个要素。在本书中他们被分解开来思考,并不是要孤立这三个层面--他们实际上是相互作用的。在工程中使用UML图,应该有相应的文字来描述它。而且这种描述与图之间的对应关系要持续地维护下去。如果这种关系松散了、断裂了,那么下一个阅读UML图的人所面对的,将是无异于甲骨文出土时的困境。在项目的平衡三角(时间、资源和功能)中讨论的是目标问题,但并不讨论质量问题。刚才说到目标与质量的问题时,提及平衡时间、资源和功能三者的关系。这其实是一个实施过程中的细节。或者说,它是一个具体的方法,而不是目的。未蕴而变,自欺也。知律而变,智者之道也,实为良言。“知律的另一层意思,是在于知道原理。明白为什么要这样或者为什么不是那样。这在软件开发中是常见的问题,大多数人不知就里地使用着技巧和方法,而一旦出了问题,则归咎于这些技巧和方法的不好。而真正的问题在于,这些人(我们通常叫做Copy&Clear)并不知道这些技巧,技术和方法的原理,因而不知道变通,也不知道回避错误。有时确实是这样,比如我可能会简单地使用多媒体定时器,但是上次关闭定时器引起程序崩溃的问题,我就抱怨是多媒体定时器没设计好,实际上我知道,应该是我没使用对,为什么没使用对呢,那就是我对其原理理解不够。但是,有时我们确实没有那么多时间去研究透一个东西,我们该如何选择呢?

  • 相关阅读:
    洛谷P4382 [八省联考2018]劈配(网络流,二分答案)
    洛谷P3380 【模板】二逼平衡树(树套树,树状数组,线段树)
    C++实用整数快速输入输出模板(C++)
    洛谷P3348 [ZJOI2016]大森林(LCT,虚点,树上差分)
    洛谷P4338 [ZJOI2018]历史(LCT,树形DP,树链剖分)
    洛谷P3613 睡觉困难综合征(LCT,贪心)
    洛谷P3960 列队(NOIP2017)(Splay)
    洛谷P3275 [SCOI2011]糖果(差分约束,最长路,Tarjan,拓扑排序)
    博弈论总结(只会打表,永不证明)(博弈论)
    洛谷P1450 [HAOI2008]硬币购物(背包问题,容斥原理)
  • 原文地址:https://www.cnblogs.com/1305yyf/p/4593607.html
Copyright © 2011-2022 走看看