现代软件工程 第八章 【需求分析】练习与讨论

1  扩展阅读
下面两篇文章也说明了软件估计的难度:
    Steve McConnell 软件估计的 10 种罪:http://www.ewh.ieee.org/r5/central_texas/austin_cs/presentations/2004.08.26.pdf
    Quora精选: 为什么软件开发周期总是预估的2~3倍http://jandan.net/2013/07/16/quora-software-development.html

2  用户调研的对象
我们说了这么多用户调研,很多人假设评价软件的就是购买软件的,就是使用软件的,但是未必。看下面的例子:
1. 你要写一个中学生学习英语的软件,你找谁去做用户调研?
    中学生 - 最终用户。
    家长 - 他们是要掏钱的人,他们不会每天都用软件,有些人都不太会英语,但是他们也有需求。
    学校老师 - 他们是有巨大影响力的人,他们说不定立下一道规矩,我们班级就用某某软件! 
2. 你要写一个企业管理软件, 你要找谁去做用户调研? 请列出你认为重要的用户类型和你认为合适的用户调研的方式。

3  开发速度的算术题

在一个软件项目中,软件团队预计每天的进度为 30 小时(即,完成了30小时的工作量)。当项目完成了一半的总工作量的时候,大家发现实际的进度为15小时/天,问:在余下的时间中, 团队的进度要到多少,才能在项目结束时让整个项目的平均进度恢复到每天30小时工作量?


4. 一个目标/决心/估计的故事:某项目本来进行得很顺利,大领导非要全体人员脱产开一天的动员大会,会议结束时, 领导热情地问大家:大家对如期完成项目有信心么?  这时,项目经理站起来说:我们本来是可以按期完成的,现在开了一天会,我们已经延期了一天。

大家觉得这样的项目经理是好还是不好?

同学们的意见:

  果冻:首先,延期一天也叫延期吗…其次居然把进度卡这么精确没有缓冲时间我估计项目本来就得延期。。。

  大牛:大部分情况下项目按期完成并没有多大价值,除非是为了给团队一点阶段性的激励

你有什么意见?

大牛说,我接一个私活,很简单的,就不用搞那么多的形式主义了吧,我们直接开干,用代码说话!请分析下面例子

    http://www.cnblogs.com/yhyjy/p/4444094.html

如果你来接这个私活,应该怎么做?

专家的意见供大家参考:

    The two causes of runaways that stand head and shoulders above all others are poor (usually optimistic) estimation and unstable requirements.

Glass, Robert L. (2002-10-28). Facts and Fallacies of Software Engineering (Kindle Locations 736-737). Pearson Education. Kindle Edition.

    Most software estimates are made either by upper management or by marketing, not by the people who will build the software or their managers. Estimation is, therefore, done by the wrong people.

Glass, Robert L. (2002-10-28). Facts and Fallacies of Software Engineering (Kindle Locations 853-854). Pearson Education. Kindle Edition.

5. 具体项目练习:

    http://www.cnblogs.com/xinz/p/3308608.html

6. 看看缝纫机大叔是如何解决用户需求的

    http://weibo.com/2694810701/BpI8Km1UW#_rnd1412244033760 

8. 用户真正的需求和正确的解决方案

    面对一个比较难的问题, 有时候项目经理或者程序员会想到一个奇妙的主意,哇,就这样做吧,搞定!  但是一些听上去很妙的办法真的解决了用户的问题? 请看这个例子,用户发现 “原理” 之后的心情:

       http://www.zhihu.com/question/26806900/answer/34095090

       原理:什么原理能够在不越狱的情况下识别骚扰电话呢?

       尼玛原理就是在老子的通讯录里面自动添加上了成千上万个骚扰电话啊!

       老子打开通讯录发现了从haoma1 到haoma7,这7个新添加的联系人啊!

       每个联系人里面都储存了成千上万去TM的谁知道有多少个号码啊!

       然后统一整了个头像是题主配的那个图的样子啊!

       这样就尼玛的算是在不越狱下帮我识别骚扰电话了么!

 有更好的办法么?

9. 用户的需求似乎都被满足了,咋办?

    在市场上已经有一个主流软件满足的大部分用户的显性需求的情况下,后来者如何挖掘用户需求?

    http://www.zhihu.com/question/22310847

    请为后来者想几个办法, 用户的需求真的被满足了么?

10. 团队练习 - NABCD 写作,视频,并且互评

请同学们把自己项目的NABCD 都写出来。

1) 列成详细的条目,用具体的事实和分析说明。

2)把这些要点都组合成为一段话  --  当你要向别人兜售你的项目的时候, 你通常只有很短的时间 (电梯演说),能否自然而有条理地把项目说清楚?  请用你产品中实际的元素代替 <> 中的抽象概念。

     各位领导/投资人/用户/合作伙伴: 我们的产品 <foo> 是为了解决 <目标用户> 的痛苦, 他们需要 <Need>, 但是现有的方案并没有很好地解决这些需求,我们有独特的办法 <Approach>,  它能给用户带来好处 <Benefit>, 远远超过目前市场上的竞争对手 <Competitor>。  同时,我们有高效率的 <Delivery> 方法,能很快地让大部分用户知道我们的产品,并进一步传播。  

3)把上面的这段话录制为视频,上传到视频网站,并把链接发到个人/团队博客上。 

      NABCD参考 (参见 http://www.cnblogs.com/xinz/archive/2010/12/01/1893323.html)

  同学们的实际作业例子:

    http://www.cnblogs.com/liangzhilin/p/5462486.html

    http://www.cnblogs.com/jjy520/p/5463552.html

    http://www.cnblogs.com/hgf520/p/5457322.html 

4) 每个团队发布了博客/视频之后,  其他团队对每一个团队的博客进行排名 (1,2,3... ) ,排名没有并列。    并且把排名的理由写到博客上, 对每个团队的分析不得少于 140 字 (除非这个团队没有写博客或者提供足够的材料) .

  如何写出140 字的分析? 

    对这个项目的一句话描述

    这个项目的优点

    这个项目计划的缺点  (需求符合实际么? 符合你的认知么?技术能满足用户的需求么? ...)

    如果你来领导项目,你会做什么不一样的事情?

这个练习的目的是让团队运用掌握的软工知识去评价别人做的需求分析。   然后助教自己也对所有团队的 NABCD 博客排名, 这样, 助教就能够比较快速地收集到所有团队 需求分析的分数。  

11. 用户界面设计,快速设计并验证需求

  不要等到所有代码写好之后再去验证需求,请用合适的原型设计工具描述用户界面和需求,然后找用户验证。请用下面工具来描述你的产品原型:

  工具 Axure  http://www.cnblogs.com/powertoolsteam/p/4763010.html

  墨刀: https://modao.cc/ 

  MockPlus: mockplus

  Balsamiq Mockup: https://balsamiq.com/products/  

  GUI Design Studio: https://www.carettasoftware.com/guidesignstudio/   

12. 如何平衡各种需求, 如果只满足其中部分需求, 会怎么样?

顾客对于要交付的软件和服务,都是有很多美好的需求的,例如,交付要快, 人工要便宜, 质量要高,最好软件本身是免费的。 但是一个软件团队的确不能同时满足这么多需求,如何让顾客知道她们的“多快好省”愿望是不可能达到的呢? 

在上图中,用户希望软件开发的又快, 又便宜 (人工便宜),质量又好, 最好是免费的。  那么,如果只满足部分的需求, 我们会得到什么样的软件呢?

例如,上图的 ① 说明, 如果希望软件做得又快,又低成本(人工便宜), 不考虑其他要求, 那么,我们会得到大致什么样的软件呢?

例如,上图的 ⑤ 说明, 如果希望软件是免费的,而且要很快交付,越快越好, 那么,这样的软件有什么特点呢?

请把 ① 到 ⑦ 的需求组合会导致什么样的软件, 会出现什么样的问题, 都列出来。

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

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

相关文章

现代软件工程 第九章 【项目经理】练习与讨论

9.5.1 PM们的故事 讲了这么多条条框框&#xff0c;我们还是来讲几个故事吧。 A)是不是所有的好功能都是由PM主导&#xff0c;一步一步根据用户需求&#xff0c;按照用户场景设计&#xff0c;然后进行可用性测试等等步骤之后得来的呢&#xff1f; 功能本天成&#xff0c;妙手偶…

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

1. 讨论&#xff1a;下面的老板犯了什么错误? 只看用户的表面语言或行动还是不够的。我们还要找到用户语言行动背后的动机! (图像来源: http://www.weibo.com/funnyshoelace) 2. 是否要文档 有人说&#xff0c;我们敏捷的团队&#xff0c;就喜欢直接的面对面的交流&#xff0…

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

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

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

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

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

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

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

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

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

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

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

15.3.0 案例分析 可以看看这两个学生项目的例子&#xff0c;推断出这些团队的血型&#xff1a; STG游戏的跳票(为了完美&#xff0c;推迟了7天&#xff0c;但是7天之后也没有发布……) [i] 英语学习软件(说了“明早发布”&#xff0c;但是明早一直没到)[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/…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

C语言 教学实践建议

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

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

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