读软件设计的要素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. 旧问题再次出现

  • 15
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
健身国际俱乐部系统是一种专为健身俱乐部设计的管理软件,它通过集成多种功能来提高俱乐部的运营效率和服务质量。这类系统通常包含以下几个核心模块: 1. **会员管理**:系统能够记录会员的基本信息、会籍状态、健身历史和偏好,以及会员卡的使用情况。通过会员管理,俱乐部可以更好地了解会员需求,提供个性化服务,并提高会员满意度和忠诚度。 2. **课程预约**:会员可以通过系统预约健身课程,系统会提供课程时间、教练、地点等详细信息,并允许会员根据个人时间表进行预约。这有助于俱乐部合理安排课程,避免资源浪费。 3. **教练管理**:系统可以管理教练的个人信息、课程安排、会员反馈等,帮助俱乐部评估教练表现,优化教练团队。 4. **财务管理**:包括会员卡销售、课程费用、私教费用等财务活动的记录和管理,确保俱乐部的财务透明度和准确性。 5. **库存管理**:对于俱乐部内的商品销售,如健身装备、营养补充品等,系统能够进行库存管理,包括进货、销售、库存盘点等。 6. **数据分析**:系统能够收集和分析会员活动数据,为俱乐部提供业务洞察,帮助俱乐部制定更有效的营销策略和业务决策。 7. **在线互动**:一些系统还提供在线平台,让会员可以查看课程、预约私教、参与社区讨论等,增强会员之间的互动和俱乐部的社区感。 8. **移动应用**:随着移动设备的普及,一些健身俱乐部系统还提供移动应用,方便会员随时随地管理自己的健身计划。 9. **安全性**:系统会确保所有会员信息的安全,采取适当的数据加密和安全措施,保护会员隐私。 10. **可扩展性**:随着俱乐部业务的扩展,系统应该能够轻松添加新的功能和服务,以适应不断变化的市场需求。 健身国际俱乐部系统的选择和实施,需要考虑俱乐部的具体需求、预算和技术能力,以确保系统能够有效地支持俱乐部的运营和发展。通过这些系统的实施,健身俱乐部能够提供更加专业和高效的服务,吸引和保留更多的会员,从而在竞争激烈的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值