阅读笔记-人月神话03

作者在讨论怎样科学地分配人力,最重要的是设计结构,正像社会的高层建筑一样,完美地设计能让创造性极致的发挥,同时这样系统才会在互联网世界——这个快速更替的世界,缩短创造时间是根本问题。

对于计算机系统而言,尽管它们通常没有花费几个世纪的时间来构建,但绝大多数系统体现出的概念差异和不一致性远远超过欧洲的大教堂。这通常并不是因为它由不同的设计师们开发,而是由于设计被分成了由若干人完成的若干任务。

身为软件工程师,设计的软件只有用户易用性才是王道。由于目标是易用性,功能与理解上复杂程度的比值才是系统设计的最终测试标准。单是功能本身或者易于使用都无法成为一个好的设计评判标准。

功能,而非简洁,总是被用来衡量设计人员工作的出色程度。这是错误的,功能强大但是不简洁,那么,设计的软件是给开发人员用的还是用户?所以简洁也是一个很大的标准。

对于给定级别的功能,能用最简洁和直接的方式来指明事情的系统是最好的。

要表达一件待完成的事情,常常需要对基本元素进行意料不到的复杂组合,而且仅仅了解基本要素和组合规则还不够,还需要学习晦涩的用法,以及在实际工作中如何进行组合。

每个部分必须反映相同的原理,原则和一致的折衷机制。在语法上,每个部分应使用相同的技巧;在语义上,应具有同样的相似性。因此,易用性实际上需要设计的一致性和概念上的完整性。

概念的完整性要求设计必须由一个人,或者非常少数互有默契的人员来实现。

对于非常大型的项目,将设计方法,体系结构方面的工作与具体实现相分离是获得概念完整性的强有力方法。

 系统的体系结构指的是完整和详细的用户接口说明。对于计算机,他是编程手册;对于编译器,他是语言手册;对于控制程序,他是语言和函数调用手册;对于整个系统,他是用户要完成自己全部工作所需参考的手册的集合。

系统的结构师,如同建筑的结构师一样,是用户的代理人。结构师的工作,是运用专业技术知识来支持用户的真正利益,而不是维护销售人员所鼓吹的利益。

同样的划分方法也适用于编程系统。美国的Fortran IV标准:以文本为核心,以编译器为核心,快速编译和优化以及侧重语法的实现。

不认为只有结构师才有好的创意,新的概念经常来自实现者或者用户。系统的概念完整性决定了使用的容易程度。

外部技术说明的编制工作并是比具体设计实现更富有创造性。

最差的建筑往往是那些预算远远超过起始目标的项目。作者确信如果Stretch计算机会拥有更好的体系结构。

不是限制实现小组的创造性。一旦他们将注意力集中在没有人解决过的问题上,创意就开始奔涌而出。在毫无限制的实现小组中,在进行结构上的决策时,会出现大量的想法和争议,对具体实现的关注反而会比较少。

概念完整性的缺乏导致系统开发和修改上要付出更昂贵的代价。

但决定因素是时间进度和让150名编程人员进行工作的愿望。而他正是致命的危险。

如同Blaauw所指出的,整个创造性活动包括了三个独立的阶段:体系结构,设计实现,物理实现。在实际情况中。他们往往可以同时开始和并发地进行。

概念地完整性的确要求系统只反应唯一的设计理念,用户所见的技术说明来自少数人的思想。

猜你喜欢

转载自www.cnblogs.com/smartisn/p/10344199.html