zoukankan      html  css  js  c++  java
  • 《人月神话》读书笔记(二)

           在系统设计中,概念完整性应该是最重要的考虑因素。也就是说,为了反映一系列连贯的设计思路,宁可省略一些不规则的特性和改进,也不提倡独立和无法整合的系统,哪怕它们其实包含着许多很好的设计。
    以易用性作为目标,功能与理解上复杂程度的比值才是系统设计的最终测试标准。单是功能本身或者简洁都无法成为一个好的设计评判标准。
    外部的体系结构规定实际上是增强,而不是限制实现小组的创造性。
    整个创造性的活动包括了三个独立的阶段:体系结构(architecture)、设计实现(implementation)和物理实现(realization)。是在实际情况中,它们往往可以同时开始和并发地进行。

         概念完整性是系统设计中最重要的考虑因素,反映出一系列连贯的设计思路,每个部分设计的一致性。用户能通过概念完整性感受到易用性,如Macintosh所有应用程序界面的统一。为了获得完整性,产品结构师扮演了重要角色,结构师是用户的代言人,支持用户的真正利益,从上而下的设计体系结构,把系统分解为子系统,并将体系结构与具体实现分离。(注意,这里说的体系结构与如今的体系结构概念略有不同,后者指系统架构设计,前者更偏重于需求概念。)

         尽早交流和持续沟通能使结构师有较好的成本意识,以及使开发人员获得对设计的信心,并且不会混淆各自的责任分工。结构师如何成功地影响实现: 牢记是开发人员承担创造性和发明性的实现责任,所以结构师只能建议,而不能支配时刻准备着为所指定的说明建议一种实现的方法,同样准备接受其他任何能达到目标的方法对上述的建议保持低调和不公开准备放弃坚持所作的修改意见

          世界的规律就是一切往着混乱的方向发展,所以我们往往需要耗费很大的精力将上层的决策向基层贯彻执行。书中提出了几个方法来实现整个团队保持系统的概念完整性。首先是文档化的规格说明,文字是思想传播的载体,也正是文字和纸的出现,前人的思想才能流传至今,这足以证明文档对于维持概念完整性的重要性,文档的编写也需要形式化的定义保证概念的清晰和确定。对于软件开发这样的特殊团队,我们还可以通过建立模块间的结构来将各部分进行整合。虽然有了持久化的文字和代码,语言的交流会更有利于概念的确定,不至于在不同的人那里产生歧义,所以正式的会议和随意的交流都是必须的。

    我过去拿到一个老师布置的编程作业很少去对这个作业去完整的划分用户的需求,阶段。书中建议我们应该从上而下的设计体系结构,把系统分解为子系统,并将体系结构与具体实现分离。这样更有利于编程。



     

  • 相关阅读:
    VI的常用命令【工具篇】
    linux中安装中文字体
    阅读源代码,学习PostgreSQL数据库 (1) 准备工作
    如何安装gcc 3.3.6
    Buffered I/O and nonbuffered I/O
    Linux下查看硬件配置的相关命令
    linux disk i/o shceduler
    Linux编译内核操作流程 ——为新手指南
    HDOJ 1026 Ignatius and the Princess I
    HDOJ 2544 最短路 SPFA算法
  • 原文地址:https://www.cnblogs.com/lq13035130506/p/11006028.html
Copyright © 2011-2022 走看看