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

简介:

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/   

 





本文转自SoftwareTeacher博客园博客,原文链接:http://www.cnblogs.com/xinz/p/3854436.html,如需转载请自行联系原作者



目录
相关文章
|
安全 数据安全/隐私保护 芯片
微信读书电脑版,来了!
微信读书电脑版,来了!
|
存储 SQL 消息中间件
大数据生态圈常用组件(一):数据库、查询引擎、ETL工具、调度工具等
大数据生态圈常用组件(一):数据库、查询引擎、ETL工具、调度工具等
|
10月前
|
人工智能 Android开发 C++
《跨越平台壁垒:C++ 人工智能模型在移动设备的部署之路》
在AI技术蓬勃发展的今天,C++因其卓越性能和高效资源利用,在AI模型开发中占据重要地位。将C++实现的AI模型部署至移动设备,实现快速响应与离线运行,成为当前技术热点。本文探讨了C++模型在移动设备上的部署挑战与解决方案,包括模型优化、跨平台适配、硬件加速及性能调试,展望了未来移动AI应用的广阔前景。
201 12
|
9月前
|
存储 监控 安全
实时记录和查看Apache 日志
Apache 是一个开源、跨平台的 Web 服务器,保护其平台需监控活动和事件。Apache 日志分为访问日志和错误日志,分别记录用户请求和服务器错误信息。EventLog Analyzer 是一款强大的日志查看工具,提供集中收集、分析、实时警报和安全监控功能,帮助管理员识别趋势、检测威胁并确保合规性。通过直观的仪表板和自动化响应,它简化了大规模日志管理,增强了 Apache 服务器的安全性和性能。
174 5
|
10月前
|
安全 物联网安全 物联网
IoT安全危机:智能家居的隐秘威胁
随着物联网技术的发展,智能家居日益普及,但其安全隐患也逐渐显现。本文探讨了智能家居的安全现状、风险及防范措施,强调了企业和用户共同提升安全意识的重要性,旨在构建一个安全可靠的智能家居环境。
|
开发者
如何画业务架构图
如何快速上手画业务架构图
10371 2
|
机器学习/深度学习 算法 量子技术
未来软件开发:量子计算的革命性影响
量子计算技术正引领我们进入一个新时代,其潜力将彻底改变软件开发和计算机科学。本文介绍了量子计算的基本概念,如量子比特、叠加和纠缠,并探讨了其对软件开发的影响,包括新算法、加密安全、机器学习及药物发现等领域。为了应对这一变革,开发者需掌握量子计算原理,学习量子编程语言,并积极参与相关项目。量子计算不仅带来了巨大的机遇,也提出了新的挑战。
|
人工智能 API 持续交付
通义万相AI绘画创作解决方案评测
在阿里云平台上,资源部署体验流畅,提供详尽步骤,包括开通服务、获取API-KEY、创建网络资源和服务器。一键部署借助ROS脚本,简化了程序安装,API设计直观,适合快速集成。用户可自定义登录凭据,部署过程自动化,大约5分钟后即可通过URL访问。服务响应快,模型泛化能力强,支持多种图片风格,图片质量高。建议增加更多风格滤镜、多语言支持和动态图像生成等新功能。成本效益高,易用性强,适合广泛行业,文档丰富,适合新手。
297 4
|
敏捷开发 人工智能 Devops
开发必备:2024年整理10款超级好用的项目管理工具
整理10款适合企业研发团队使用的项目管理工具,包括(排名不分先后): 1.PingCode 智能化研发管理工具;2.Ones 大型企业研发管理平台;3.YesDev 研发项目协同管理工具;4.Teambition 阿里巴巴旗下团队协作工具;5.Jira Atlassian公司出品的项目与事务跟踪工具;6.Tower 专注50人以下团队的任务协作 ;7.TAPD 由腾讯出品的一站式敏捷研发协作云平台;8.码云Gitee DevOps一站式研发效能平台;9.禅道 国产开源的项目管理软件;10.Momday 由以色列提供的全新工作平台,内含项目管理模块。
|
Dart API C++
手把手教你写 Dart ffi
本文以step by step的方式说明了Dart ffi的使用,适合新手学习。