需求工程系列:

软件需求工程习题1(1~4章)
软件需求工程习题2(5~7章)
需求工程中的面谈和原型(8、9章)
需求获取方法之观察与文档审查(10章)
需求工程规格说明、需求验证、需求管理(11~13章)


第八章 需求获取方法之面谈

1.什么是半结构化面谈?
事先需要根据面谈内容准备面谈的问题和面谈结构,但在面谈过程中,会见者可以根据实际情况采取一些灵活的策略。

面谈的类别:

面谈的优点:
1.面谈的开展条件较为简单,经济成本较低;
2.能获得包括事实、问题、被会见者观点、被会见者态度和被会见者信仰等各种信息类型在内的广泛内容;
3.通过面谈,需求工程师可以和涉众(尤其是用户)建立相互之间的友好关系;
4.通过参与面谈,被会见者会产生一种主动为项目做出贡献的感觉,提高涉众的项目参与热情。

面谈的缺点和局限性:
1.面谈比较耗时,时间成本较高;
2.在被会见者地理分散的情况下往往难以实现面谈;
3.面谈参与者的记忆和交流能力对结果影响较大,尤其是面谈的成功较高的依赖于需求工程师的人际交流能力;
4.交谈当中常见的概念结构不同、模糊化表述、默认知识、潜在知识和态度偏见等各种问题在面谈中都不可避免,进而影响面谈的效果,导致产生不充分的、不相关的或者错误的数据;
5.在会见者不了解被会见者认知结构的情况下,面谈不可能取得令人满意的效果。

群体面谈:
将所有的涉众方集中起来,选择一个合适的地点,集中一段时间,召开一个多方共同参与的会议,一起进行需求的讨论、分析和获取。

头脑风暴
1.它的目的不是发现需求,而是“发明”需求,或者说是发现“潜在”需求;
2.它鼓励参与者在无约束的环境下进行某些问题的自由思考和自由讨论,以产生新的想法;
3.包含两个阶段:想法产生阶段、想法精减阶段


第九章 需求获取之原型法

为什么要使用原型?
软件工程中存在着大量的不确定性,原型、迭代和(方法)验证是人们解决不确定性的主要手段。

软件工程中的原型分类:
1.演示原型(presentation prototype)
 主要被用在启动项目阶段
 目的是让用户相信应用系统的开发是可行的
2.严格意义上的原型(prototype proper)
 主要被用在分析需求阶段
 用来阐明用户界面或者系统功能的某些特定方面
3.试验原型(breadboard prototype)
 主要被用在构建系统阶段
 帮助开发者澄清他们所面对的一些和系统构建相关的技术问题
4.引示系统原型(pilot system prototype)
 会被开发在系统开发的各个阶段
 用作最终系统的构建核心

使用原型方法获取需求的基本过程:

确定原型需求:
明确不确定的维度:外观、角色、实现

原型开发方法分类:
(1)探索式(exploratory)
以缺陷需求开始继而不断调整和修正需求的原型开发方式 。
要尽可能的调整各种设计选项,并比较多种设计方案下的用户反馈,以得到理想的用户需求。探索式的原型方法能够帮助开发者更深入地了解用户的业务、问题和期望。
(2)实验式(experimental)
在初始时就拥有清晰的用户需求,但是对需求的实现方法、实现效果、可行性没有太大的把握。
(3)演化式(evolutionary)
在原型开发的初始点既要有清晰的原型化需求也有项目积累下来的原型资产。
探索式和实验式方法产生的原型产品又被称为抛弃式原型
需求获取原型大多数是探索式原型,也有少量的实验式原型,但都属于抛弃式原型,需求工程师要坚决地抛弃抛弃式需求获取原型。

原型法的优缺点:
原型法的优势在于:一方面可以使用户更好地理解需求工程师的假设;另一方面可以使需求工程师通过观察用户的反馈来加深对用户的理解,并明确自己的一些假设为什么不准确。
但原型方法的缺点是:一个成本较为高昂的方法,在构建原型的过程中会花费一定的人力和经济成本,而且还可能浪费开发时间。

水平原型与垂直原型:
水平原型:它仅仅实现选定功能所有层次中的某些特定层次,它能够处理较大范围的功能,建立的原型产品称为水平原型。(虽然水平原型涵盖了很多功能,但并没有真正地实现这些功能。)
垂直原型:它会触及到选定功能实现的所有层次,处理的功能范围通常较小,建立的原型产品称为垂直原型。

原型方法的风险:
原型方法的最大优点是能够及早解决系统开发中的不确定性,从而减少软件项目失败的风险;但原型方法的复杂性使得它在减少风险的同时也引人新的风险。
1、原型方法最大的风险是成本失控。
2、给涉众造成错误印象。涉众看到了一个正在运行的原型,得出产品几乎已经完成的结论,从而提出快速交付产品的不当要求。
3、用户可能会被原型所表现出来的非功能特性遮蔽了眼睛,从而忽略了他们更应该重视的功能特性。
4、在澄清需求不确定性的同时也可能会掩盖一些用户假设,这些假设将会无从发现。


习题:

1.如果在终的物件(Final Artifact)产生之前,一个中间物件(Mediate Artifact)被 用来在一定广度和深度范围内表现这个终物件,那么这个中间物件就被认为是终物件在 该广度和深度上的(原型)。
2.按照使用方式进行分类,原型可分为:演示原型、(严格意义上的原型)、试验原型和引示系统原型。
3.按照开发方法进行分类,原型可分为:演化式原型和抛弃式原型,其中抛弃式原 型又被细分为(探索式原型和实验式原型)。
4.原型的需求内容可以从三个纬度上分析:即( 外观、角色和实现)。
5.故事版原型分为被动故事板原型、主动故事板原型和( 交互故事版原型)。
6.使用原型方法获取需求的基本过程中包括确定原型需求、原型开发、( 原型评估)和原型修正环节。
7.演示原型主要被用在(项目启动阶段)。
8.原型方法的大优点是能够及早地解决系统开发中的( 不确定性),从而降低软件项目失败的风险。
9.使用演化式原型方法,在开发时就需要注意原型的( 健壮性)和代码的质量。
10.使用实验式开发方法,需要实现多种技术方案,考察重要的系统的( 质量属性)。
11.通常来说,如果用户需求出现了模糊、不清晰、不完整等具有一定不确定性的特征,就可以考虑使用( 原型)方法。
12.选择使用探索式开发方法,需要尽可能地考虑各种不同的设计选项,比较不同选项下的( 用户反馈)。

需求工程中的面谈和原型相关推荐

  1. Javascript中的对象和原型(一)(转载)

    面向对象的语言(如Java)中有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.但是,JavaScript 没有类的概念,因此它的对象也与基于类的语言中的对象有所不同. 要了解面向对象,首 ...

  2. Javascript 面向对象中的构造函数和原型对象

    先解释下原型.每一个Javascript对象(null除外)都和另外一个对象相关联,这个"另外一个对象"就是我们熟知的原型, 每一个对象都从原型继承属性和行为(方法). var a ...

  3. Axure RP中后台管理系统通用原型模板

    Axure RP中后台管理系统通用原型方案 v2是一套通用型的中后台信息系统原型方案,可以快速扩展并输出标准美观的中后台产品原型,极大的提升输出效率和节省协作成本.方案中提供了几十套不同风格和结构的系 ...

  4. 34 JavaScript中的构造函数和原型

    技术交流QQ群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.概述 在典型的OOP语言中(如Java),都存在类的概念.类就是对象的模板,对象就是类 ...

  5. JS中的继承与原型链

    对于原型我们通过[[prototype]].proto 以及 prototype 这三个概念理解其实现继承的思路. [[prototype]] 在 ECMAScript 标准中规定每个对象都有一个内置 ...

  6. 移动应用开发过程中的迭代式原型设计

    \ 主要结论 \ 移动应用原型创建过程中采用迭代式快速开发方法的重要性. \ 可以从对手身上学到什么,如何从他们的失误中获益. \ 如何为你的应用定义USP,如何通过故事板(Storyboarding ...

  7. JS中关于构造函数、原型链、prototype、constructor、instanceof、__proto__属性

    在Javascript不存在类(Class)的概念,javascript中不是基于类的,而是通过构造函数(constructor)和原型链(prototype chains)实现的.但是在ES6中引入 ...

  8. js中的对象、原型链机制、构造函数

    一.在js中创建对象的方式 //一.字面量或直接量创建对象var obj1 = {name:"zs",age:12}; //二.通过new来创建对象var obj2 = new O ...

  9. 简析面向对象中的继承,原型链,闭包之继承

    为什么80%的码农都做不了架构师?>>>    我们理解的继承简单来说就是拿来主义:自己没有,别人有,把别人的拿过来使用或者让其成为自己的.那么如何实现继承呢? 一,混入继承 由于一 ...

最新文章

  1. 网站的 计算机主机作用是什么意思,网关是什么意思?网关的作用是什么?
  2. python实现快排算法(quicksort)
  3. 如何设置iframe高度自适应,在跨域的情况下能做到吗?
  4. Oracle基本操作(二)
  5. 2020年奇安信校招JAVA岗笔试
  6. 牛客网NC112--进制转换
  7. Linux 系统之虚拟化部署
  8. leetcode59题:滑动窗口的最大值(用双端队列实现)
  9. 一个黑色全屏的计时器_佳作分享最佳倒数计时器设计分析【附原型实例】
  10. Web前端初学者,需用了解的7大HTML知识点
  11. Elasticsearch--高级-映射mapping_添加行的字段映射---全文检索引擎ElasticSearch工作笔记018
  12. python单词字典排序_python字典排序
  13. 小米手机下载二维码APP
  14. CSDN学习会员组团
  15. EC2(elastic compute cloud,弹性计算云,又称EC2实例)
  16. 5G风起,CDN边缘计算将乘风破浪
  17. 服务器装不上无线网卡代码10,win10专业版无线网卡出现错误代码10怎么办?
  18. Oracle多层ifend嵌套,Excel IF函数以及IF多层嵌套如何使用,看完你就知道了
  19. Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!
  20. ubuntu16.04 NVIDIA gtx1050 驱动安装

热门文章

  1. Lost connection to MySQL server during query问题
  2. webrtc janus服务器调试工具 admin api 详解(二)调试janus看这一篇就够了!!
  3. 人工智能医疗检测:微核细胞情况自动检出率可达90%
  4. Apache Curator客户端的使用
  5. 弘辽科技:淘宝商品标题怎么写?如何选词?
  6. 高级篇之使用ENC编码器实现USBCam摄像头竖屏直播的方法
  7. Mac系统输入英文时如何去掉自动提示
  8. 互联网快讯:永辉拟打造数字化零售;猿辅导,掌门教育积极布局素质教育
  9. shell 实现ping检测存活主机(多进程后台实现)
  10. 引用antd 组件,样式丢失