EagleBear2002 的博客

这里必须根绝一切犹豫,这里任何怯懦都无济于事

摘要

Web 应用程序中的许多事务都是在应用程序代码中临时构建的。例如,开发人员可能会显式地使用锁定原语或验证程序来协调关键的代码片段。我们将应用程序代码协调的数据库操作称为临时事务。到目前为止,人们对它们知之甚少。本文介绍了对临时事务的第一个综合研究。通过研究 8 个流行的开源 Web 应用程序中的 91 个临时事务,我们发现(i)每个研究的应用程序都使用临时事务(每个应用程序最多 16 个),其中 71 个扮演关键角色;(ii)与数据库事务相比,临时事务的并发控制更具灵活性;(iii)临时事务容易出错——其中 53 个具有正确性问题,其中 33 个由开发人员控制;(iv)临时事务通过利用访问模式等应用程序语义来提高争议工作负载的性能的潜力。基于这些信息,我们讨论了临时事务对数据库研究界的影响。

INTRODUCTION

今天,web 应用程序通常使用数据库系统来持久化大量数据,因此需要协调并发数据库操作以正确性。一种常见的方法是使用数据库事务。Transactions 通过将并发数据库操作封装成单独的工作单元来隔离并发数据库操作。另一种广泛采用的方法是使用对象关系映射(ORM)框架提供的不变验证 API(例如,来自 Active Record [98] 的验证关键字)。使用这样的 API,开发人员在应用程序代码和 ORM 框架中明确指定不变量,例如列值的唯一性报告不变违规的错误。到目前为止,已经做了很多工作来研究和改进这两种方法[8,9,25,31,39,65,66,79,97,117,118,122]。

阅读全文 »

摘要

工程化软件开发需要对软件开发整个过程进行有效的组织和管理,由此产生了一系列软件开发组织和管理方法,其主要目的是形成一种载体,用以积累和传递关于软件开发的经验教训。然而,由于软件开发的一些天然特性(比如复杂性和不可见性)的存在,使得描述软件开发过程的软件开发与组织方法也天然地带着一定的抽象性。由此带来了很多概念上的误导和实践中的争论,影响了上述目的的达成。例如,对于究竟该如何选择和定义合适的软件开发过程以更好地满足某个特定项目的要求,目前仍然缺少可靠的手段。甚至有些面向工业界的调研报告表明:在实际软件项目开发中,过程改进(例如引入新的工具或者方法)的主要驱动力是佚闻。试图厘清软件组织与管理话题的若干核心概念,系统梳理软件组织和管理方法的特征,并且以软件发展的历史为主线,介绍软件组织与管理方法的历史沿革,整理出这种历史沿革背后的缘由。在此基础上,讨论和总结若干发现,以期为研究者和实践者提供参考。

原文链接:https://www.jos.org.cn/html/2019/1/5645.htm

背景与概念介绍

一个完整的计算机系统通常是由硬件以及运行其上的软件所组成。这其中,软件从诞生开始,其规模以及在一个完整计算机系统中所占的比重一直呈现上升趋势。类似硬件产品的“摩尔定律”(即:硬件产品的性能,每隔约 18 个月性能翻番,成本下降),软件产业也有一个类似的“摩尔定律”,即:类似功能的软件产品的规模每隔 18 个月,其规模(比如代码行)会翻倍,而用户获取该软件或者服务的代价将会下降[1]。Humphrey 收集整理了一些典型软件产品中规模(单位为千行代码)随着时间推移的变化趋势(如图 1 所示)[2]。我们从中可以发现:在一些系统软件产品(例如,IBM 的软件产品和微软 NT 产品)和应用软件产品(例如,航空领域软件系统和电视机中的嵌入式软件系统)中,软件系统的规模都随着时间的推移呈现出明显的上升趋势。“摩尔定律”给软件系统的开发和维护带来很多负面影响:首先,软件规模的不断扩大,会使得软件开发益发困难,由此带来成本超支、交付延后以及质量低劣等问题;其次,为了缓解摩尔定律的影响,尤其为了尽可能地避免收益下降,软件供应商还需尽快交付产品或者服务,这将使得前述由于规模扩大所带来的影响更加突出。此外,如果考虑到软件在一个计算机系统中的比重也在不断增加,那么软件行业的“摩尔定律”对整个计算机系统的研发和交付的影响也将逐渐增加,进而对由“软件定义的世界”的社会生活各个方面带来巨大影响。

阅读全文 »

摘要

本文覆盖了 2023Fall 课堂习题和目前全部的往年考试题,根据题型做了分类,部分题目提供了参考答案,如对答案有疑问,请联系博主本人探讨。

课程沿革:

  • 2023Fall-软件质量管理
  • 2022Fall-软件质量与管理
  • 2021Fall-软件质量与管理
  • 2018Fall-软件过程与管理

客观题

阅读全文 »

期末考试占总评 50%-60%。

  1. 选择题:20 道 × 2 分/道=40 分,大多数来自 MOOC
  2. 填空题:?
  3. 简答题:空不大,不需要写很多字。
  4. 设计题:

选择题

MOOC

题面 选项 解析
【2022Fall】在人机交互领域,计算机可能指的是 A. 台式机
B. 大型计算机系统
C. 网站
D. 以上都是
D
【2021Fall】以下描述正确的是: A. 人机交互只关注软件的可用性
B. 人机交互就是用户界面设计
C. “以用户为中心”是交互设计的主要方法
D. 人机交互只需要关注软件设计,不需要关注用户
C
【2020Fall】以下哪个领域不会对人机交互学科产生影响 A. 人机工程学
B. 认知心理学
C. 计算机科学
D. 上述学科均对人机交互学科有影响
D
【2022Fall】人机交互是交叉学科,作为交叉学科团队的主要缺点是 A. 会产生过多想法
B. 看待和谈论问题的角度不同
C. 相互沟通不容易
D. 以上都不是
C
【2022Fall】【2020Fall】在 EEC 模型,用户为达目标而制定的动作与系统允许的动作之间的差别被称作 A. 执行阶段
B. 评估阶段
C. 执行隔阂
D. 评估隔阂
C
关于交互设计原则,以下描述正确的是: A. 设计原则不能指导设计人员做出正确的决策
B. 交互设计大师 Donald Norman 提出了十条启发式设计原则
C. 在要求输入日期时为用户提供日历组件,这对应“用户应享有控制权和自主权”的设计原则
D. 设计应该使用用户容易理解的语言来表示错误信息
D
【2022Fall】以下哪一种情况不会在优秀产品中出现 A. 使用一长串命令来完成一个特定功能
B. 图标们拥有清晰的语义
C. 使用常用的快捷键,如用 CTRL+Z 表示撤销
D. 使用声音表达特定的含义
A
【2021Fall】以下两个网页的主要区别在于: A. 背景颜色
B. 第一个网站提供了对结果数量的控制
C. 第二个网站只包含必要的 UI 组件
D. 第二个网站的配色方案更优
C
提供加速器(如键盘快捷键等)的目的是为了提高系统的: A. 实用性
B. 效率
C. 态度或喜爱程度
D. 易学性
B
【2022Fall】能够帮助设计人员了解用户特定交互行为发生的原因的可用性工程方法是 A. 边说边做
B. 用户和任务观察
C. 场景
D. 启发式评估
A
【2020Fall】以下哪一条符合频繁使用的专家用户进行设计的指导原则 A. 提供指令、对话框和在线帮助
B. 减轻记忆负担
C. 提供有意义的信息
D. 保证快速响应
D
【2021Fall】以下关于短时记忆描述正确的是: A. 短时记忆的容量是有限的
B. 短时记忆的容量是无限的
C. 短时记忆的容量为零
D. 短时记忆的容量很大,但容量有限
A
【2022Fall】在进行界面设计时要注意对组件进行对齐,这是由于格式塔心理学中哪一条原则的影响 A. 连续性
B. 相近性
C. 完整性
D. 相似性
A
【2021Fall】假设需要判断某应用程序的配色方案是否恰当。对于该测试任务,您将使用: A. 低保真模型
B. 高保真模型
C. 均可
D. 以上都错
B;低保真模型包括:草图、故事板、绿野仙踪法等。
【2022Fall】【2021Fall】以下关于“人物角色”描述正确的是 A. 人物角色不是特定上下文的,所以它可以很容易地被重复使用
B. 人物角色是设计人员编造的,并不是真实的人
C. 人物角色的概念以及使用都很简单
D. 人物角色能够帮助克服当前教学产品开发中的很多问题
D;人物角色不能被很容易地重复使用;人物角色虽然不是真实的人,但是在真是用户的基础上得到的,不是编造的;任务角色的构造和使用并不简单
以下关于 Allan Cooper 提出的交互设计框架描述正确的是: A. 建议使用高保真草图序列的故事板来描述关键线路情景剧本
B. 交互设计框架可用于确定界面使用的颜色和风格
C. 关键线路情景剧本必须在细节上严谨地描述每个主要交互的精确行为
D. 验证性的场景剧本需要具备产品的很多细节信息
C
【2022Fall】原型阶段跟在哪一个开发阶段的后面 A. 观察用户需要
B. 构建应用程序
C. 评估
D. 以上都不对
A
【2021Fall】对于主流用户很少使用,但自身需要更新的功能,可使用何种策略进行简化。 A. 转移
B. 删除
C. 隐藏
D. 组织
C
【2021Fall】关于交互设计模式,以下说法错误的是 A. 交互设计模式可以拿来即用,不需要修改
B. 设计模式能够帮助提供有价值、有用的设计思路
C. 模式在交互设计中的应用还处于起步阶段
D. 模式捕捉了良好设计中不变的特性
A
以下关于交互评估描述错误的是: A. 评估不一定要遵循 DECIDE 框架
B. 评估是系统化的数据搜集过程
C. 评估过程需要严谨的设计
D. 评估是设计过程中一个独立的阶段
D;设计过程中时时都需要评估
【2021Fall】【2022Fall】为探索小孩子们在一起是如何交谈的,并调查一种新型产品是否能帮助他们更积极地参与其中,可使用如下哪种技术 A. 可用性测试
B. 实地研究
C. 预测性评估
D. DECIDE 框架
B
【2021Fall】关于启发式评估,以下论证正确的是: A. 启发式评估是一种基于专家的评估方法
B. 专家应用启发式评估时,会从自身使用经验出发对界面进行判断;
C. 启发式评估的结果只有界面中潜在的可用性问题列表
D. 当界面元素存在多个可用性问题时,只需列举其中一个问题即可
A
【2021Fall】以下哪一条不属于用户测试前的准备步骤 A. 观察参与者
B. 制定测试方案
C. 开展小规模测试
D. 选择参与用户
A
【2022Fall】以下论述正确的是 A. 评估不应该过早进行,因为此时系统还不够完善
B. 原型既可以帮助发展设计问题,也可以用来帮助用户明确需求
C. 纸质原型适用于产品开发过程中的任意阶段
D. 高保真原型更接近系统,因而在评估中要尽可能使用高保真原型进行评估
B
以下关于任务分析描述错误的是: A. 层次化任务分析是人因工效学领域中最广泛使用的方法
B. 任务分析对于改善用户体验至关重要
C. 层次化任务分析采用的是“分而治之”的方法
D. 只要肯花时间,总是可以实现完善的任务分析
D
【2021Fall】GOMS 的全称是什么: A. Goals, operation, methods and selection rules
B. Goals, objects, models and selection rules
C. Goals, operations, methods and state rules
D. Goals, operations, models and state rules
A
【2022Fall】以下关于击键层次模型描述不正确的是 A. 击键层次模型用于预测指定任务的完成时间
B. 击键层次模型预测假设交互过程中没有错误发生
C. 击键层次模型预测的是无干扰情况下完成任务的时间
D. 使用击键层次模型预测的难点在于对操作路径的分析
D;TODO:难点为什么在于操作路径分析?
以下关于 Fitts 定律描述不正确的是: A. Fitts 定律是一种预测模型
B. Fitts 定律可以预测任意交互操作的完成时间
C. Fitts 定律对于图形用户界面应用开发具有重要指导意义
D. Fitts 定律也可用于指导现实生活中的产品设计
B
【2022Fall】以下关于预测模型描述正确的是 A. 预测模型只能预测任务的完成时间
B. 预测模型能够对所有任务的完成情况进行预判
C. 预测模型可用于比较不同的应用软件和设备
D. 预测模型预测的任务完成时间和实际用户的任务执行时间一致
C;预测模型除了预测完成时间,还能预测操作了路径
阅读全文 »

本文内容有许多超出 2023Fall 授课范围,不建议用作考试复习。本文不持续维护。

软件开发的四大本质难题

四大本质难题是什么

  1. 不可见性:软件项目是一个逻辑实体
  2. 复杂性:实体数量众多
  3. 可变性
  4. 一致性

四大本质难题之间的关系

阅读全文 »

背景

了解用户的需要和对产品的意见和建议

  • 观察用户
  • 询问用户
    • 适用于客观上较难度量的、与用户主观满意度和可能的忧虑心情相关的问题
    • 访谈和问卷调查:在研究用户如何使用系统,以及哪些系统功能是用户非常喜欢或不喜欢的方面也非常有效
  • 不知道该怎么做或者对预期的结果没有把握:请专家帮忙
    • 不能帮助大家成为可用性专家
    • 但有助于更好地去评估自己和他人的工作

询问用户之访谈

访谈:有目的的对话过程

阅读全文 »

人机交互概述

什么是人机交互

不用背概念,被问到应该会解释。

HCI is a discipline concerned with the design, evaluation and implementation of interactive computing systems for human use and with the study of major phenomena surrounding them

——ACM SIGCHI
  1. HCI 是一门涉及人类使用的交互式计算系统的设计、评估和实施以及围绕它们的主要现象的研究的学科
  2. 信息技术发展中交互的重要性:让信息技术的使用变得更自然、更便捷、更透明!
  3. 为什么要考虑用户?信息发展趋势
    1. 用户:热爱技术的专业人员 缺乏耐心的消费者
    2. 场景:更多样的终端和任务、更频繁的人机对话
    3. 人机交互能够让计算机更懂“人”,让人机对话更加“自然”
阅读全文 »

本文主要内容来自 SpriCoder 的博客,更换了更清晰的图片并根据新的课程设计做了补充和修正。

本讲要解决的问题

  1. 配置管理的意义是什么?
  2. 为什么要实施度量和分析活动?
  3. 团队分析决策是如何开展的?
  4. 鱼骨图和根因分析

项目管理支持活动

  1. 配置管理
  2. 度量和分析
  3. 决策分析
  4. 根因分析
阅读全文 »