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

  1. 你要写一个企业管理软件, 你要找谁去做用户调研?请列出你认为重要的用户类型和你认为合适的用户调研的方式。

用户类型:

企业员工:他们是这款软件的最终用户,我们应该尽可能的了解他们的需求解决他们的问题

企业管理层:他们是为这款软件掏钱的人,可能他们的一些需求看上去毫无道理,但是他们的需求我们也需要了解。

企业高级顾问:他们是有巨大影响力的人群,他们可能会建议企业做出不一样的选择。

调查方式:

针对不同用户类型采取不同的调查方式相结合。针对企业员工,我们采取网上调查问卷形式不记名,这种方式有利于员工充分发表自己对这款软件的需求,而且可以不用顾忌老板对自己的印象。我们可以从这样的方式中得到最切实需要解决的用户需求。

对于企业的管理层,我们采取深度访谈方式进行调研。因为这类用户是企业的决策者有着一票否决权,这样的方式不仅可以体现我们的尊重还可以详细的了解他们的意见。讨论一些相对保密敏感的话题,并最终达成共识。

对于企业的高级顾问我们采取参与设计方式调研,因为这类用户无论是对企业还是对我们开发团队都有很高的认知水平,我们采取这样的方式让其表达对产品的期望与需求,并且积极的参与到产品的设计和决策过程中,这样体现既体现了尊重又可以保证软件质量。

  1. 在一个软件项目中,软件团队预计每天的进度为 30 小时(即,完成了30小时的工作量)。当项目完成了一半的总工作量的时候,大家发现实际的进度为15小时/天,问:在余下的时间中, 团队的进度要到多少,才能在项目结束时让整个项目的平均进度恢复到每天30小时工作量?
  1. 一个目标/决心/估计的故事:某项目本来进行得很顺利,大领导非要全体人员脱产开一天的动员大会,会议结束时, 领导热情地问大家:大家对如期完成项目有信心么?  这时,项目经理站起来说:我们本来是可以按期完成的,现在开了一天会,我们已经延期了一天。大家觉得这样的项目经理是好还是不好?

我觉得这样的项目经理是不合格的。从问题中的语境可以知道该团队很可能是所谓官僚团队模式。在这样的模式下担任项目经理工作,从项目需求分析阶段进行估计工作量和开发时间的时候就应该将这样的事情考虑到,因为在这样的模式下这种事情是司空见惯的。其次,该项目经理对于客户的态度也是不积极的,如果项目经理是想提醒这位大领导经常开这样的大会会影响项目进度,完全可以采取更为合适的方式,私下里想领导汇报自己的工作进度以及担忧,而不应该当面指责领导。他的这种做法很有可能让公司失去这位客户以及他以后可以提供的项目、

时间: 2024-08-05 14:50:59

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

现代软件工程 第八章 练习与讨论

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.验证需求.软件团队要跟利益相关者沟通,通过分析报告.技术原型.用户调查或演示等形式向他们验证软件团队对于这些需求的认知. 4.在软件产品的生命周期

现代软件工程 第七章 练习与讨论

7.7  移山开发方法——比TFS敏捷更精简 几个软件学院的学生来请教阿超,同学们自豪地说,我们要用全套TFS敏捷开发模式开发项目! 真的?阿超不敢相信. 同学: 对!我们要用全5个工作项类型 – 任务.缺陷.场景.风险.服务质量需求. 阿超: 你们有多少实战项目的经验?哦,都没有.这么说这是你们第一个真正的实用项目,我建议你们先忘记这么多工作项类型,把时间花在写代码上好了. 同学: 可是老师要我们上敏捷开发模式呀? 阿超: 当敏捷模式变成强迫,那还能敏捷到哪儿去呢?如果你们非用不可,我建议你们

第八章 需求分析

第八章 需求分析 8.1 软件需求 1.寻找需求的步骤: (1)获取和引导需求 (2)分析和定义需求 (3)验证需求 (4)在软件产品的生命周期中管理需求 2.软件需求的划分: (1)对产品功能性的需求 (2)对产品开发过程的需求 (3)非功能性需求 (4)综合需求 8.2 软件产品的利益相关者 用户.顾客.市场分析师.监管机构.软件工程师 8.3获取用户需求--用户调查 1.调研方法: (1)焦点小组 (2)深入面谈 (3)卡片分类 (4)用户调查问卷 (5)用户日志研究 (6)人类学调查 (

现代软件工程 第十三章 练习与讨论

13.5.2  有错不改 果冻: 微软的产品经过这么多版本的不断完善,应该是把所有问题都搞定,“止于至善”了吧? 阿超: 那也不一定,在非常有名的电子表格软件Excel中,就有这样一个Bug:Excel 的日期计算功能认为1900年是一个闰年,这是不对的,但是它愣是一直没有改正这个错误. 众人: 真的?为什么屡教不改呢? 阿超: 故事是这样的,当时这类电子表格软件的市场领头羊是Lotus 1-2-3这一款软件.它的日期计算功能有一个Bug,就是把1900年当作闰年.这类软件在内部把日期保存为“从

现代软件工程 第六章 练习与讨论

6.3.1  什么时候适合选择敏捷 我们看了这么多方法论之后,一些同学一定比较困惑,到底选择哪一种开发方法比较好呢? 这在实践中不是难题,有学者还列出了一些简单的问题来帮助人们做决定[i]: 表6-3 问题引出方法 问题 Yes – 偏向传统的瀑布+文档的流程 No –   偏向敏捷流程 1. 项目需要有明确的spec 么? 2. 项目没有明确的用户,也无法联系用户进行沟通 3. 软件系统是大型的么? 4. 软件系统是复杂的么?例如实时系统 5. 软件的生命周期很长么? 6. 你使用比较差的软件

现代软件工程 第四章 练习与讨论

4.7.1  结对项目的案例和论文 在现代软件工程教学的过程中,同学们已经总结了不少切身体会.例如: 总结1[i]:那是project到了比较关键的创造阶段,整整一天,我们俩椅子靠椅子的坐在电脑前,一边讨论一般coding,那次才真正的体会到结对真的能够带来效率.一整天的coding是容易走神的事,还好有pair在旁边指导,总是不断在我敲某某变量之前提前告诉我成员变量的名字,数据修改时帮忙检查是否有漏掉的,变量和函数定义的时候一起为其取名字,感觉有点眼花了,就换了个角色,我也开始对他“指指点点”

现代软件工程 第五章 练习与讨论

团队模式和团队的开发模式有什么关系? 如果你领头开展一个全新的项目,你要怎么选择“合适”的团队模式? 不同的团队模式如何影响团队绩效的评估? 团队精神和集体主义的区别?     大家回想在小学和中学的学习过程,大家在一个班集体,有多少工作是以“团队”(Teamwork)的形式来完成的,有多少工作是以“工作组”(Workgroup)形式完成的?或许大部分工作都是以“非团队”的形式完成的.“团队精神”和平常讲的“集体主义”有什么区别? 现代软件工程 第五章 练习与讨论

现代软件工程 第三章 练习与讨论

1  选哪一种医生? 作为一个软件工程师, 你觉得自己表现如何? 有没有这样的体会: 看书的时候觉得“技止此耳”,开发项目的时候才觉得实际情况和书上讲的都有一些出入,一些重要的细节书上没有提.我们很多人是边看Asp.net的书, 边开发Asp.net 的项目,这相当于一边看医学书一边动手术…… 如果你是病人,你希望你的医生是下面的哪一种呢? a)     刚刚在书上看到你的病例, 开刀的过程中非常认真严谨, 时不时还要停下来翻书看看…… b)    富有创新意识, 开刀时突然想到一个新技术. 新

现代软件工程 第十一章 练习与讨论

1  如何避免在产品开发后期不断有重大修改,导致其它模块的连锁反应? DCR Tell mode vs. Ask mode设计变更 在项目早期,如果大家觉得要做一个设计变更,便可以采用告知模式(Tell-mode)的形式,也就是说,修改方必须通告所有关系人:“我在这里修改了某某界面, 我在某个API 增加了一个参数.”但是修改方不必取得其他关系人(或者模块)的事先同意,就是说可以先行设计并编码.当然,如果其他关系人不同意,修改还是不能签入. 当项目进行到稳定阶段,例如达到了代码完成(CC)阶段,