读软件设计的要素04概念的联系
1. 概念的联系
1.1. 概念是独立的,彼此间无须相互依靠
-
1.1.1. 一个概念是应该独登时被了解、规划和完成的
-
1.1.2. 独立性是概念的简略性和可重用性的要害
1.2. 软件存在依靠性
-
1.2.1. 不是说一个概念需求依靠另一个概念才干正确运转
-
1.2.2. 只有当一个概念存在时,包含另一个概念才有含义
1.3. 概念依靠联系图扼要归纳了软件的概念和概念存在的理由
- 1.3.1. 概念依靠联系图有助于规划规划和结构软件的次序、辨认概念分组以及解说概念结构
1.4. 概念组合答应单个概念在相互联系中发挥特定的效果
1.5. 概念组合自身是对称的,因为同步的操作是相等的
- 1.5.1. 概念组合能够引进不对称性,因为一个概念能够增强另一个概念的功用
2. 从概念到软件
2.1. 在大多数情况下,渐进式的开发会更好,因为这样开发人员能在前期就取得对其规划作业的反应,评价已布置部分的价值,并在发现问题时及时处理
-
2.1.1. 渐进式开发并不是单纯地增加概念
-
2.1.2. 无节制地增加概念或许导致优异产品的分裂
2.2. 树立概念清单
-
2.2.1. 通用概念清单
-
2.2.1.1. 运用通用的概念不只能够重用曾经软件中的规划常识,还有助于简化规划
3. 概念依靠联系图
3.1. 因为每个概念都是通用且独立的,所以在传统的软件工程含义上不存在概念间的依靠联系
3.2. 概念之间存在其他依靠性,这与概念自身无关,而与它们在整个软件中的效果有关
3.3. 一个概念的存在或许依靠其他好几个概念
-
3.3.1. 将其中一个依靠联系符号为首要依靠(实线箭头),将其他依靠联系符号为非有必要依靠(虚线箭头)
-
3.3.2. 非有必要依靠标明一个概念不太重要的存在理由
-
3.3.3. 没有用户概念意味着无法进行身份验证
-
3.3.4. 没有投票概念意味着用户无法为答案做出奉献
-
3.3.5. 没有录音概念意味着发问中的鸟鸣声有必要用文字描述,或许要链接至网络上的其他文件
3.4. 概念的任何子集都能够构成一个齐备的软件,只需不存在指向该子集的依靠方
-
3.4.1. 产品线的每个齐备子集代表这些特定概念或许构建的软件
-
3.4.2. 子集还能够标明软件开发的不同阶段
-
3.4.3. 在开发的任何时刻点,你都期望具有一个齐备的子集,以便将其作为一个完好的单元进行评价
4. 概念的映射
4.1. 从底层概念到物理界面
4.2. 概念需求映射到详细的用户界面,将操作映射为单击按键等手势,并将概念状况映射到各种显现视图
4.3. 运用用户界面规划准则时,概念有助于聚集映射问题
4.4. 企图运用户界面比底层概念更简略或许会拔苗助长
4.5. 映射有必要考虑典型的运用方法
4.6. 用户界面虽然很具有表现力,但或许无法将全部变得明晰,界面中的工具包或许会约束映射规划
-
4.6.1. 有时乃至需求在用户界面中增加清晰的注释
-
4.6.2. 创立用户界面不只包含视觉的规划,它的实质是规划一种从底层概念到物理界面的映射
4.7. 人机交互研讨人员对映射的规划进行了广泛的研讨,他们拟定出的攻略首要适用于规划的物理层次和言语层次,这一攻略相同适用于经过概念规划的体系
4.8. 概念供给了时机以完善规划的概念层次与物理层次、言语层次的联系
5. 处理不置可否的操作
5.1. 运用调集概念的软件Zotero能够将论文的引文安排为调集
5.2. safari供给了书签的调集
5.3. Adobe Lightroom答运用户界说相片或电影的调集
5.4. 调集概念与文件夹概念的显着不同是,在调集概念中,一个项目能够归于多个调集
6. 概念了解性
6.1. 好用的概念常常能够重用
6.2. 一个好的规划师不只知道怎么创造新概念,而且知道什么时候无须创造新概念
- 6.2.1. 假如你的意图能够经过一个现有概念来完成,那么你最好再次运用这个概念
6.3. 概念与其他任何创造相同
- 6.3.1. 不同的是,概念供给了一种将软件规划的常识和经历变得简略且连接的办法,然后供给了更具细粒度的重用时机
6.4. 使规划可用的最简略的办法是运用了解的、现有的概念
- 6.4.1. 运用用户充沛了解的概念能够下降规划不合理的概率,并使规划对用户来说愈加直观
6.5. 看起来瞬间迸发的创意实际上往往来自经年累月的经历培养出的洞察力
-
6.5.1. 一个巨大的规划师会记住一系列规划,随时预备应对遇到的每一个新的规划问题
-
6.5.2. 只有当规范计划不足以处理问题时,他才会寻求新的处理计划
6.6. 软件与任何其他规划范畴没有什么不同
-
6.6.1. 运用曾经规划的经历教训,你首要需求能够将规划思维提取为可重复运用的要害点,这便是概念的意图
-
6.6.2. 概念是特定规划问题的特定处理计划,它不是一个大而含糊的问题,而是一个个会在许多情况下重复呈现的小而清晰的需求
6.7. 创造一个新概念来完成一个现有概念能够完美完成的意图不只是糟蹋精力,还简略让现已了解现有概念的用户感到困惑
6.8. 当将概念映射到用户界面时,对十分规小部件的需求或许标明其基本概念自身便是冗杂和十分规的
7. 概念的重用
7.1. 概念的重用是十分广泛的,尤其是在Web软件中
7.2. 相同的概念或许以不同的方法呈现
-
7.2.1. 聊天室概念变成了WhatsApp或Google Groups或Facebook中的小组概念以及IRC或Slack中的频道概念
-
7.2.2. Twitter供给了一个将其规划与现有概念联系起来的很好的比如:重视概念
7.3. 在你创造一个新概念曾经,检查现有的概念,看看是否有一个概念满意你的需求
7.4. 请记住,你需求的概念或许来自一个十分异乎寻常的范畴
8. 防止创造新概念
8.1. 当规划师在重用现有概念与创造新概念之间做挑选时,最好挑选重用通用概念,除非确认现有概念不能有用完成意图
8.2. Keynote的行为大多简略且可猜测
- 8.2.1. 他们没有从头开始规划,这也是苹果的组概念更直观的原因
8.3. 假如现有概念好像仅部分满意你的方针,相较于修正或扩展它,请探究它是否能够与另一个现有概念组合起来供给你需求的功用
9. 概念实例的一致性
9.1. 当规划中呈现的概念是了解的通用概念的实例时,它应该严格遵守通用概念的行为方法,除非有很好的理由不这样,而且它与通用概念的误差十分显着
9.2. 没有所谓的对与错,要害在于对概念的了解程度以及随之而来的预期
9.3. 预期是软件规划中有必要认真对待的强有力要素
9.4. 当概念的行为不行猜测且呈现不同种行为的或许性好像相一起,概念规划很或许是过错的
- 9.4.1. 一个好的规划具有必定性的质量