读软件设计的要素02概念的目的

2024-09-06 09:28

本文主要是介绍读软件设计的要素02概念的目的,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 要素

1.1. 概念的定义包括名称、目的、状态、操作和操作原则

1.2. 操作原则(operational principle)

  • 1.2.1. 操作原则用于展示如何通过操作实现目的,这是理解概念的关键

  • 1.2.2. 展示如何通过操作的组合实现概念的目的,包含一个或多个典型的使用场景

  • 1.2.3. 操作原则并没有增加任何信息,因为你完全可以从操作规范中推理出任何使用场景

1.3. 每个概念都是某人在某个时间出于某种目的而发明的

  • 1.3.1. 随着时间的推移,大多数被广泛使用的概念都得到了进一步的扩展和完善

1.4. 大多数概念是通用的,可以应用于不同类型的数据以及场景中

  • 1.4.1. 通用性有助于概念的重用,也有助于提炼概念的本质

1.5. 概念可以被相互独立地设计和理解

  • 1.5.1. 为了简化软件设计,可以将设计分解成不同的子问题,许多子问题都可以通过概念的重用来解决

1.6. 概念并不能解决所有的设计问题,但是确实可以通过找出特定的概念来帮助我们发现设计中的挑战

1.7. 概念不仅包含它表示的行为、关于其设计的所有现存知识、可能出现的实现问题,还包括软件设计师处理这些问题的各种方法

1.8. 概念状态(state),将概念中涉及的项目组织成各种结构

2. 废纸篓

2.1. 苹果公司的杀手级概念

2.2. 废纸篓概念是苹果公司在1982年为丽萨电脑发明的

2.3. 真正的创新并不是用户可以把东西拖进废纸篓,而是用户还可以恢复它们

  • 2.3.1. 废纸篓概念的目的并不是删除,而是撤销删除

2.4. 在废纸篓概念中,只有两种状态

  • 2.4.1. 可访问(accessible),表示仍在废纸篓以外、可以访问的项目集合

  • 2.4.2. 已删除(trashed),表示已删除但尚未永久删除的项目集合

2.5. 废纸篓概念中有两种场景

  • 2.5.1. 一种是恢复场景:删除一个文件后再恢复它

  • 2.5.2. 一种是永久删除场景:删除一个文件后,再清空废纸篓,用户将再也无法访问这个文件

2.6. 一种常见的变体就是,当删除某个文件一段时间后,例如30天,系统就会自动永久删除这个文件

2.7. 设计缺陷

  • 2.7.1. 整个系统只有一个废纸篓

    • 2.7.1.1. 当你插入和移除外部驱动器时,如果从这些驱动器中删除文件,废纸篓的内容就会随之变化

    • 2.7.1.2. 变通办法,只是增加了一个“立即删除”选项,允许用户一键永久删除废纸篓中指定的文件

  • 2.7.2. 废纸篓的另一个设计缺陷与已删除文件的显示方式有关

    • 2.7.2.1. 用户一直没有办法按删除日期对废纸篓中的文件进行排序

    • 2.7.2.2. 2011年,苹果公司的OS X Lion操作系统开始允许用户按“创建日期”对文件夹中的文件进行排序,而这个日期对于废纸篓而言就应该是文件删除日期

3. 样式

3.1. 桌面出版背后的概念

3.2. 样式概念的状态的映射关系

  • 3.2.1. 一种是指定(assigned),为元素指定一种样式

  • 3.2.2. 另一种是定义(defined),为样式定义一种格式

3.3. 样式概念还在不断丰富,甚至涉及一些格式的分层

4. 预订

4.1. 一个19世纪的概念

4.2. 预订概念有助于有限资源的有效利用

  • 4.2.1. 资源提供者希望资源利用率尽可能高

  • 4.2.2. 消费者希望有需要时就可以得到并使用资源

4.3. 预订概念要起作用,就需要跟踪与预订相关的内容,包括被预订的资源和预订资源的消费者

  • 4.3.1. 消费者除进行预订并最终使用资源之外,还可以在他们决定不需要资源的时候取消预订

  • 4.3.2. 预订通常是免费的,资源提供者还需要防止用户总是预订资源却从不真正使用它

    • 4.3.2.1. 如果客人有太多次缺席,他的账户将被停用

4.4. 预订概念的目的是有效利用资源

4.5. 预订概念的操作原则是关于如何预订并使用资源

4.6. 预订概念的状态是与预订相关的全部内容

4.7. 预订概念的操作:预订、使用资源和取消预订

  • 4.7.1. 预订概念中的操作包括由资源所有者(如餐厅)执行的用于提供和回收资源的行为

  • 4.7.2. 资源在被预订的情况下不能回收,但实际上更好的设计是允许回收,比如隐式地取消预订

4.8. 预订概念在很多不同的领域都非常有用

  • 4.8.1. 铁路运输要求列车在进入路段之前预订轨道来保证安全,这样系统就可以确保不会有两列火车同时占用同一路段

  • 4.8.2. 在网络中,有一种资源预留协议(resource reservation protocol,RSVP),它允许路由器预订带宽,以便在某段时间内保证一定水平的网络性能,即“服务质量”​

5. 概念的目的

5.1. 以用户需求为中心

5.2. purpose

  • 5.2.1. 目的对于生活的各个方面都很重要,因为目的可以帮助我们设定方向,向他人解释自己,并在合作中达成共识

  • 5.2.2. 在目的这件事上,设计与其他活动没有什么不同,你不可能在自己都不知道想要什么的情况下就设计好一件东西

  • 5.2.3. 对于软件设计师来说,目的可以表明他们对概念的设计和实现方式是合理的

  • 5.2.4. 目的将要服务于谁?

    • 5.2.4.1. 通知概念声称是为用户提供实时的更新,让用户随时了解情况

      5.2.4.1.1. 它的真实目的是提高“用户参与度“

    • 5.2.4.2. 标签概念的目的似乎很简单,就是帮助人们更容易地找到特定人的帖子

      5.2.4.2.1. 标签概念巧妙地增加了两组朋友间的社交关系

5.3. 概念设计首先要针对每个概念提出一个简单的问题:它是做什么用的?

5.4. 用户了解一个概念的目的是使用它的先决条件

  • 5.4.1. 许多用户手册和帮助指南解释了操作的细节,但没有解释目的,这对于用户特别是新手来说很不友好

5.5. 一个概念的目的应该是有说服力、以需求为中心、具体和可评估的

  • 5.5.1. 概念的目的很少能够用比喻解释清楚

5.6. 没有目的的概念是可疑的

  • 5.6.1. 出现这种情况通常是因为这个概念根本不是一个真正的概念,而是一种不想暴露给用户的内部机制留下的痕迹

5.7. 对概念目的的混淆会导致误用,并可能导致用户做出令他们后悔的行为

5.8. 设计缺陷会导致概念无法实现其目的,但这是难以预料的,因为使用场景会随着时间而变化

  • 5.8.1. 设计缺陷通常是不可预测的,这种缺陷既可能是形式与使用场景不符,也可能是概念无法实现它们的目的

  • 5.8.2. 概念并不能完全消除设计缺陷,但它的价值在于提供一个框架来减少设计缺陷,框架增强了概念目的的作用,并给出了一种把概念设计和使用中积累的经验和知识组织起来的结构

5.9. 仅仅知道为什么要设计软件也是不够的,你还需要为设计中的每个概念找到目的

  • 5.9.1. 为概念确定目的其实是一项困难的工作,但它会带来解决问题的洞察力,并迫使我们专注于重要的事情

  • 5.9.2. 在软件设计方面,由于它有无限的复杂性,人们很容易陷入细节并失去对大局的把控

6. 步骤

6.1. 说清楚

  • 6.1.1. 一个概念必须有明确的目的才会易于使用

  • 6.1.2. 软件设计师不能将概念视为自己的秘密,必须与用户共享目的

6.2. 确定目的的标准

  • 6.2.1. 目的总是与一定场景中人的需求相关,因此难以用逻辑或数学的方式评估,而只能以非正式或粗线条的方式评估

  • 6.2.2. 有说服力

    • 6.2.2.1. 目的应该是对一个明确的需求有说服力的表达,而不是对用户的某些愿望或可能要执行的操作的一些模糊表示
  • 6.2.3. 以需求为中心

    • 6.2.3.1. 目的必须表达用户的某个需求,而不是仅仅重复描述意义不明的行为
  • 6.2.4. 具体

    • 6.2.4.1. 目的必须足够具体,以便于概念设计
  • 6.2.5. 可评估

    • 6.2.5.1. 目的应该能提供衡量概念的尺度

6.3. 深入理解目的

  • 6.3.1. 了解呼叫转移概念的两个不同目的

    • 6.3.1.1. 一种目的是委托转移,允许一个人将对自己的呼叫委托给其他人

    • 6.3.1.2. 另一种目的是跟随转移,当一个人在不同的地方工作时,允许将对他的呼叫转移到不同的位置

    • 6.3.1.3. 委托转移概念和跟随转移概念都服务于自己的目的

7. 没有目的的概念

7.1. 一个概念可能根本没有令人信服的目的,这会让人们对它的用处产生一些怀疑

7.2. 概念缺乏目的通常是因为没有针对用户真正的需求进行设计,而只是以一种更容易的方式设计

7.3. 无目的的概念是将底层机制暴露给用户的结果

7.4. 概念需要始终面向用户,并且它的目的不仅需要对程序员有意义,而且需要对用户有意义

7.5. 老式的混水龙头

  • 7.5.1. 如果你想提高温度,你可以开大热水水龙头,关小冷水水龙头,但是流量也会相应发生变化

  • 7.5.2. 如果你只想增加流量,则需要打开两个水龙头,仔细调整它们以重新达到所需的温度

  • 7.5.3. 在这两种情况下,用户一般都需要进行多次调整

7.6. 新式的混水龙头

  • 7.6.1. 龙头具有两个独立的控件,旋转把手可以调节温度,上下移动把手可以调节流量

7.7. 编辑器缓冲区(editor buffer)曾经是一个常见的概念,满足了一些用户需求,但现在它不再引人注意

  • 7.7.1. 无目的的编辑器缓冲区概念被淘汰了

8. 目的不明的概念

8.1. 如果用户不清楚一个概念的目的,就很可能不按软件设计师设计的方式使用

8.2. Twitter

  • 8.2.1. 事实证明,收藏概念的实际目的是记录用户对推文的认可,以供其他人查看,也就是通常所说的“喜欢”或“点赞”概念

  • 8.2.2. 书签(bookmark)的新概念,该概念可以通过推文的“共享”菜单访问

8.3. 一个目的不明的概念会产生混乱

  • 8.3.1. 图像的分辨率并不代表图像的质量,除非你知道图像的大小

  • 8.3.2. 像素阵列

    • 8.3.2.1. 图像表示为彩色像素的二维阵列,这是一个现在普遍接受但曾经激进的想法
  • 8.3.3. 重新采样是一种更复杂的操作,会改变像素的数量

  • 8.3.4. 图像大小

    • 8.3.4.1. 它的目的是以物理尺寸描述图像,这很简单但也很奇怪,因为我们通常不认为数字图像具有物理尺寸
  • 8.3.5. 图像分辨率本身并不是一个概念,而是假设图像以给定的尺寸打印时的打印质量

    • 8.3.5.1. 果像素阵列为1000像素方阵,图像大小为10英寸正方形,则分辨率为100像素/英寸

8.4. 不要使用令人困惑的概念

  • 8.4.1. 误解概念的目的很可能会导致滥用概念

9. 欺骗性的目的

9.1. 所有问答网站都有用户概念,大概是为了阻止垃圾信息和低质量答案

  • 9.1.1. 网站会以此来限制访问,以至于用户在没有登录的情况下无法查看问题和答案,更不用说发布新问题了

9.2. 推手民调是一个标准的民间调查,其目的是通过汇总民间的反应来获得一些有用的信息

  • 9.2.1. 真正目的是赢得你的支持

  • 9.2.2. 推手民调通常是为了利益,通过问你一些暗示性的问题来改变你的观点

9.3. 直达航班概念是由航空公司发明的,以响应早期的订票系统,这种系统更偏爱只有一个航班号的航线

  • 9.3.1. 直达航班概念可以使航空公司的这些航线更加突出,从而使消费者更有可能购票

  • 9.3.2. 消费者不了解这个目的,没有意识到直达不一定是直飞

10. 避免缺陷

10.1. 设计最好的结果是形式和场景之间完美契合,就像小朋友玩的木制拼图,一块块紧密贴合

10.2. 你永远无法完全预测设计中可能存在的缺陷,但你至少可以利用以前发现缺陷的经验

10.3. 将设计分解为多个概念,这样使设计适配的整体挑战就可以简化为一组更易于管理的子问题

10.4. 概念是可以重复的,并可以提供跨场景的共性

10.5. 糟糕的设计导致的致命错误

10.6. 由场景变化引起的设计缺陷

10.7. 旧问题再次出现

这篇关于读软件设计的要素02概念的目的的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1141636

相关文章

【VUE】跨域问题的概念,以及解决方法。

目录 1.跨域概念 2.解决方法 2.1 配置网络请求代理 2.2 使用@CrossOrigin 注解 2.3 通过配置文件实现跨域 2.4 添加 CorsWebFilter 来解决跨域问题 1.跨域概念 跨域问题是由于浏览器实施了同源策略,该策略要求请求的域名、协议和端口必须与提供资源的服务相同。如果不相同,则需要服务器显式地允许这种跨域请求。一般在springbo

Git 的特点—— Git 学习笔记 02

文章目录 Git 简史Git 的特点直接记录快照,而非差异比较近乎所有操作都是本地执行保证完整性一般只添加数据 参考资料 Git 简史 众所周知,Linux 内核开源项目有着为数众多的参与者。这么多人在世界各地为 Linux 编写代码,那Linux 的代码是如何管理的呢?事实是在 2002 年以前,世界各地的开发者把源代码通过 diff 的方式发给 Linus,然后由 Linus

【MRI基础】TR 和 TE 时间概念

重复时间 (TR) 磁共振成像 (MRI) 中的 TR(重复时间,repetition time)是施加于同一切片的连续脉冲序列之间的时间间隔。具体而言,TR 是施加一个 RF(射频)脉冲与施加下一个 RF 脉冲之间的持续时间。TR 以毫秒 (ms) 为单位,主要控制后续脉冲之前的纵向弛豫程度(T1 弛豫),使其成为显著影响 MRI 中的图像对比度和信号特性的重要参数。 回声时间 (TE)

计算机网络基础概念 交换机、路由器、网关、TBOX

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、VLAN是什么?二 、交换机三、路由器四、网关五、TBOXTelematics BOX,简称车载T-BOX,车联网系统包含四部分,主机、车载T-BOX、手机APP及后台系统。主机主要用于车内的影音娱乐,以及车辆信息显示;车载T-BOX主要用于和后台系统/手机APP通信,实现手机APP的车辆信息显示与控

MySQL record 02 part

查看已建数据库的基本信息: show CREATE DATABASE mydb; 注意,是DATABASE 不是 DATABASEs, 命令成功执行后,回显的信息有: CREATE DATABASE mydb /*!40100 DEFAULT CHARACTER SET utf8mb3 / /!80016 DEFAULT ENCRYPTION=‘N’ / CREATE DATABASE myd

01 Docker概念和部署

目录 1.1 Docker 概述 1.1.1 Docker 的优势 1.1.2 镜像 1.1.3 容器 1.1.4 仓库 1.2 安装 Docker 1.2.1 配置和安装依赖环境 1.3镜像操作 1.3.1 搜索镜像 1.3.2 获取镜像 1.3.3 查看镜像 1.3.4 给镜像重命名 1.3.5 存储,载入镜像和删除镜像 1.4 Doecker容器操作 1.4

【机器学习-一-基础概念篇】

机器学习 定义分类算法 应用 定义 机器学习最早是被Arthur Samuel 提出的一个概念,指计算机无需明确编程即可学习的研究领域。1950年他发明的跳棋程序,这个人机对弈游戏让他的声名鹊起,机器学习这个概念才进入大众的是视线。 在这个跳棋程序里,他编程了一种算法,这个程序与Arthur下了数万次跳棋,计算机逐渐学会了下在哪里有更大的可能会赢得比赛,哪里会输,通过这种方法,最

GPU 计算 CMPS224 2021 学习笔记 02

并行类型 (1)任务并行 (2)数据并行 CPU & GPU CPU和GPU拥有相互独立的内存空间,需要在两者之间相互传输数据。 (1)分配GPU内存 (2)将CPU上的数据复制到GPU上 (3)在GPU上对数据进行计算操作 (4)将计算结果从GPU复制到CPU上 (5)释放GPU内存 CUDA内存管理API (1)分配内存 cudaErro

【吊打面试官系列-Redis面试题】说说 Redis 哈希槽的概念?

大家好,我是锋哥。今天分享关于 【说说 Redis 哈希槽的概念?】面试题,希望对大家有帮助; 说说 Redis 哈希槽的概念? Redis 集群没有使用一致性 hash,而是引入了哈希槽的概念,Redis 集群有 16384 个哈希槽,每个 key 通过 CRC16 校验后对 16384 取模来决定放置哪个槽, 集群的每个节点负责一部分 hash 槽。

AI辅助编程里的 Atom Group 的概念和使用

背景 在我们实际的开发当中,一个需求往往会涉及到多个文件修改,而需求也往往有相似性。 举个例子,我经常需要在 auto-coder中需要添加命令行参数,通常是这样的: /coding 添加一个新的命令行参数 --chat_model 默认值为空 实际上这个需求涉及到以下文件列表: /Users/allwefantasy/projects/auto-coder/src/autocoder/auto