现代软件工程 第十章 【典型用户和场景】 练习与讨论

1. 讨论:下面的老板犯了什么错误?

user_study_hotel_room

只看用户的表面语言或行动还是不够的。我们还要找到用户语言行动背后的动机

(图像来源: http://www.weibo.com/funnyshoelace)

2. 是否要文档

有人说,我们敏捷的团队,就喜欢直接的面对面的交流,不喜欢搞文档什么的,多好!

其实大多数情况下,留下文字说明是很有好处的,相对于后来的浪费和返工,当初花的时间真的是太值了。看下面的例子:

自习课时,教务主任匆匆走进来,告诉班长“帮我找两个人,我要班花”,同时两手在胸前做了一个抱花的动作,就走了。班长就组织全班投票评选起班花来,闹了一节课,搞了一些大数据,终于统一了意见,选出了班里最漂亮的两个MM。于是俩MM很羞涩的去找主任,主任说:“怎么是你们?男生都哪儿去了?好吧,跟我去后勤,我要搬花……”

可见,面对面直接的交流当然很敏捷, 但是还是要留下文档, 以明确用户的需求。

3.  ATM操作界面的用户

团队要设计一个银行自动柜员机 (ATM) 的操作界面, 这个柜员机摆在银行营业厅的外面。你觉得会有多少种用户来使用你的操作界面?

(提示:多于5种用户类型)

4.  练习:

你想写一个游戏,你知道游戏用户有哪些种类么?

参考答案:有些公司根据玩家游戏生命周期特点来划分玩家类型:

  1. 重度发烧友 (hard core) 玩家根据游戏安排日程
  2. 中度发烧玩家根据日常生活计划安排游戏时间
  3. 休闲玩家只在刚好有空的时候,才考虑以游戏作为消遣

这些定义很实用,因为它使我们明确了玩家对游戏的期待是什么。对于休闲的用户,你的游戏就不宜要求用户在开始游戏之前必须完成详细的注册或练习阶段。

5. 别做过头

场景驱动 (scenario driven) 的设计做过了头会是什么情况?一天,大家在讨论“吴小石头上货”这一场景时,二柱叫到:“停,别忙了,我有了场景!”他从桌子底下抽出一个模型,上面摆着用纸糊起来的房子、院子等,中间有几个人形的木头疙瘩,他指着其中一个木头疙瘩说,“这就是吴小石头,我们问他怎么做就行了!”

在你的项目中有做过头的情况么?

5. Spec 写作练习

怎么才能写好Spec?其实也不难,就是要把一件事情描述清楚,下面是一个练习:

如果你要给一个外星人描述怎么系鞋带, 写一个 “系鞋带“ 的spec (用英语), 你怎么写?

第一, 我们要定义好相关的概念

—what is “shoe”, “shoe laces”, “tied shoe laces”, and “untied shoe laces”  鞋, 鞋带, 系鞋带, 解鞋带都是什么概念

—Benefit of this feature “tie your shoe laces”。 系好鞋带的好处是什么

—The goal of the feature?                                    系鞋带的目标是什么?

—What does “success” look like?                       什么叫系好了?

—Unambiguous steps to achieve from “untied” to “tied”   明确的步骤来演示系鞋带的过程

这是两个同学写的系鞋带的spec: 例子1, 例子2。

第二, 规范好一些假设 (assumptions), 例如, 鞋带是已经穿好在鞋上的么? 什么样的鞋属于我们要处理的? 

image
image

第三, 避免一些误解, 下面这个从技术上也是 ”鞋带绑紧了“,  但它是 “系好了”么? 打了死结算成功么? 要打多少个蝴蝶结才算好?

image

第四, 厘清一些边界条件,  下面的情况属于好的系鞋带状态呢,  还是不好的状态呢? 这需要PM/Dev/Test 协商达成一致意见。鞋带要打多紧才算好? 打好的鞋带能拖在地上么?

image
image
image
 
image
image
image
image
image

第五, 描述主流的用户/软件交互步骤。

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

现代软件工程 第十一章 【软件设计与实现】 练习与讨论

1 如何避免在产品开发后期不断有重大修改,导致其它模块的连锁反应? DCR Tell mode vs. Ask mode设计变更 在项目早期,如果大家觉得要做一个设计变更,便可以采用告知模式(Tell-mode)的形式,也就是说,修改方必须通告所…

现代软件工程 第十二章 【用户体验】练习与讨论

1 什么是用户体验, 什么时候开始考虑用户体验? 究竟什么是用户体验呢? 请看: http://www.infoq.com/articles/aaron-sanders-user-experience (中文版)http://kb.cnblogs.com/page/508097/ 既然用户体验和用户界面对一个项目这么重要&…

现代软件工程 第十七章 【人、绩效和职业道德】 练习与讨论

0. 为啥要讲人、绩效、和职业道德? 学好专业不就行了么,为啥要扯这么多? 用专业知识教育人是不够的。通过专业教育,他可以成为一种有用的机器,但是不能成为一个和谐发展的人。要使学生对价值有所理解并且产生热烈的感情…

现代软件工程 第十三章 【软件测试】 练习与讨论

13.5.2 有错不改 果冻: 微软的产品经过这么多版本的不断完善,应该是把所有问题都搞定,“止于至善”了吧? 阿超: 那也不一定,在非常有名的电子表格软件Excel中,就有这样一个Bug:Exce…

现代软件工程 第十四章 【质量保障】 练习与讨论

15.3.1 有些成功人士或公司认为不需要独立的测试角色(Test),你怎么看? 我猜想和踢足球类似,还是那几个原因: 人太牛: 不世出的天才,例如高德纳写书时发现排版软件不好用,就自己写了一个。也没听…

现代软件工程 第十五章 【稳定和发布阶段】练习与讨论

15.3.0 案例分析 可以看看这两个学生项目的例子,推断出这些团队的血型: STG游戏的跳票(为了完美,推迟了7天,但是7天之后也没有发布……) [i] 英语学习软件(说了“明早发布”,但是明早一直没到)[ii] 15.3.1 反动分子阿…

现代软件工程 第十六章 【IT 行业的创新】练习与讨论

16.6.0 Xerox Parc 的成功创新和推向市场的失败 http://research.microsoft.com/en-us/um/people/blampson/Slides/AltoAtPARCIn1970s_files/frame.htm http://research.microsoft.com/en-us/um/people/blampson/38-AltoSoftware/WebPage.html http://research.microsoft.com/…

感恩回馈——你评博客,我送好书

各位博客园的用户: 最近我的书《构建之法—现代软件工程》上市了,得到了不少读者和老师的好评,出版2个月即告重印。该书的相关信息参见豆瓣页面:http://book.douban.com/subject/25965995/ 《构建之法—现代软件工程》得以出版和畅…

《梦断代码》读后感 - 驱动,责任,交流,远虑

这三篇读后感原来发布在我自己申请的域名 yishan.cc 上面,后来这个域名被墙了。 (原文写于2008年12月) 几个星期前,我给《现代软件工程》课的每一个团队都发了一本 《Dreaming In Code》的中文版 《梦断代码》,要求写读后感。这本书讲了这样的…

软件工程练习:模块化,单元测试,回归测试,TDD

这是《构建之法》实战教学的一部分。适合作为同学们的第二个程序作业。 第一个程序作业: 请看 “概论” 一章的练习,或者老师的题目,例如这个。 作业要求: 软件工程的作业越来越有意思了, 我们在第一个作业中&#xff…

《构建之法》参考书和链接汇总

《构建之法》 参考书和链接汇总 参考书汇总 一些读者对《构建之法》引用过的参考书也感兴趣,因此我把所有参考书单独列出来。其实人大部分的思想都是受某些外部信息的启发影响而来,很多道理看似新颖,其实别人早就讲过了😀。这个参…

现代软件工程讲义 7 分析和设计方法

(这一节在第一版的 《构建之法》中没有, 是《构建之法》电子书(多看版), 和纸版书第二版中新增加的内容,纸版书第二版预计2015年6月出版) 11.1 分析和设计方法 我们写软件就是要解决用户的需求,我们需要表达和传递下面这些…

三周的 软件工程实践课 课程安排建议

不少学校想在暑期安排软件工程实践课, 在这么短的时间内要做到软件生命周期的完整体验是有很多挑战的,下面是一个建议: 软件工程课程设计 - 三周计划,10 次授课,10 次学生报告。 第一周,准备: 在…

现代软件工程讲义 源代码管理

【现代软件工程课件】 源代码管理 -- 以实践促进学习 移山软件学院的学生果冻问老师: 为啥需要源代码管理? 我自己写代码多爽,别人要,就用QQ 传过去好了。 老师问:原始人怎么建房子? 果冻:或者找一个洞&…

现代软件工程讲义 个人项目和结对项目练习 地铁

很多老师反映教软件工程和程序设计的时候没有合适的题目,《构建之法》提供了下面的题目,都是从简单的解题思路入手,逐步增量改进。学生们可以复习基本的编程技能,然后逐步加入模块化,文件处理,单元测试&…

最新软件工程总结,项目模板,软工作业下载

(改了标题吸引目标用户) 老师教课,学生上课,首先要讲明师生关系。 其次,就是要说明这门课的底线是什么。 我们假设所有人写作业都独立思考,认真实践,不断改进,勇于创新... 这个假设通常是不全面的&#xf…

C语言 教学实践建议

(编程/软件工程课程怎么教) 这是2016年秋季学期和北京工业大学耿丹学院合作教学的计划。这也可以用于其他学校的 C 语言课程。 2016级有四个班,每班大约 32 人,每班配有一个有一定实际工作经验的助教,配合老师把课教好。 C语言是一门基础课&…

团队项目建议 - 英语学习 App

在这几年推广《构建之法》软件工程教学的过程中,我看到很多老师在讲软件工程的时候,虽然讲了很多年,但是手头没有任何项目,学生或者现想(得到一些大而无当,无法在一学期内完成一个可用版本的项目), 或者抄袭…

结对和团队项目建议 - 黄金点游戏

故事看这里: 背景故事 (链接) 作业 这个游戏可以变成一个持续发展的团队项目: 1)在课堂上玩这个黄金点游戏,用Excel 纪录成绩。过渡到做成简单的单机版游戏,锻炼基本的编程能力 2)两人合作,做成简单的 client/server A…

个人和结对项目 - 英语单词词频统计

个人或结对编程项目 英语单词词频统计程序 (最新版本在这里) 实现一个命令行程序,支持几种模式下的单词词频统计 Implement a console application to tally the frequency of words under a directory. For all text files (file extension: "txt") unde…