《需求工程思考题.doc》由会员分享,可在线阅读,更多相关《需求工程思考题.doc(4页珍藏版)》请在金锄头文库上搜索。
1、第三章 1.除了需求开发的四个活动和需求管理活动之外,需求工程当中还有没有需要执行的活动?如果有的话,它们是哪些活动?给出你的理由。答:过程管理活动和项目管理活动。过程管理活动是跟踪项目开发过程,记录项目开发过程当中所遇到的问题或者教训项目管理活动是管理项目开发的一系列问题与进度,管理人员配置,以达到最该效益。2.需求开发过程具有迭代特性,但是不是所有项目的需求开发过程都必须是迭代完成的?如果不是,请给出举例和理由。答:不是,一般对于业务领域不熟悉的项目,需求是具有迭代性的,需要对业务领域的认知,有一个从认识到知识重构的过程。对于某些固定需求且熟悉的项目,就不需要迭代开发需求获取需求分析需求规
2、格说明需求验证。当然并不是所有项目的需求开发过程是迭代完成的,当某一项目开发过程中,用户需求非常简单,开发人员已经相当明确用户需求,这时,就不需要返回到需求获取阶段以继续用户需求的获取,这样,也就不需要迭代完成。3.需求开发的迭代特性与软件开发过程的迭代式开发有什么关系?它们之间会互相影响吗?如果会,那么有哪些影响?答:需求开发的迭代特性只是软件开发过程的迭代式开发的一个子过程,软件开发过程是一个相当庞大的工程,需要在软件开发过程的各个阶段都需要进行开发工作的迭代,当然也包括需求开发中的迭代。它们之间互相影响。如果需求开发中的迭代不能很好地完成需求分析任务,就必将影响到软件开发过程的其他迭代阶
3、段的进行。4. 需求工程细节知识的实践性对不同项目的需求开发过程的差异性有没有影响?如果有,请说明影响是什么。如果没有,请说明是哪些因素产生了不同项目的需求开发过程的差异性。答:没有影响。其实是需求开发过程的差异性一定程度上导致了细节知识的实践性。现实世界问题的复杂性和差异性主要导致了需求开发过程的差异性。第四章3.在各种关于软件的调研中,无一例外地发现“缺乏用户参与”是导致软件失败的最大原因,试说明有哪些原因会使得用户参与不足?应该怎样解决? 答:(1)用户数量太多,选择困难; (2)用户认识不足,不愿参与; (3)用户情绪抵制,消极参与; (4)没有明确的用户; 解决:要求开发者在进行需求
4、获取时,能够对系统的用户以及用户的替代源等相关涉众进行分析,了解他们的特征、类别、任务、取向等,并在需求获取中采取对策避免用户参与不足现象的发生。第五章 3. 要完整地描述系统的高层解决方案,需要描述哪些方面?答:(1)方案描述:概要描述解决方案; (2)业务优势:该解决方案所能带来的业务优势; (3)代价:该解决方案将花费的代价;第六章1.“以用户为中心”和“重视用户价值”是20世纪90年代之后的一种软件开发趋势,涉众分析可以从哪些方面实现“用户为中心”和“重视用户价值”? (1)涉众识别:从涉众基线出发进行涉众类别的寻找和发现,找出关键涉众类别,分类别选择涉众代表; (2)涉众描述:描述涉
5、众类别的特征,主要包括个人特征和工作特征,主要目标,态度,主要关注点和约束等; (3)涉众评估:对涉众进行优先级评估,风险评估和共赢分析; (4)涉众选择:为不同的涉众类别进行代表采样并制订参与策略,在适当情况下寻找一些用户替代源;2.相当多的软件工程实践者认为:开发团队和用户建立良好的合作关系对项目的成败具有至关重要的意义。请从需求工程的角度分析这句话,并说明采用哪些手段可能建立和用户的良好合作关系。 答:他们建立了良好的合作关系后,可以降低风险。 理解用户:对用户的基本特征描述(个人特征、工作特征、少数会涉及地理特征) 评估用户:优先级评估、风险评估、共赢分析 与用户协商,处理用户间对于项
6、目期望冲突 用户的个人特征和工作特征的描述可以帮助更好的确定功能需求。第九章2.什么是情景性事件?观察方法是如何解决情景性事件的? 答:情景性事件:某些事件只有和它们发生时的具体环境联系起来,将它们放在发生时的情景中进行解释,才能明确其意图。观察方法将发现的重点放在问题的上下文环境之上,即社会因素,包括组织的文化、组织的结构、用户的工作环境、用户的工作实践、法律与经济约束等。通过对上下文环境的理解,观察方法可以帮助需求工程师更好地理解问题发生的情景,进而更透彻地理解情景性问题。3.采样观察有哪两种方法?比较它们的优缺点?方法优点缺点适用情景时间采样1. 通过随机的观察减少偏差2. 对频繁发生事
7、件取代表性事件进行观察 1. 用分段的方式来收集数据不能提供全面信息的时间2. 漏掉不经常发生却很重要的事件 1. 发现异常流程2. 验证用户知识和实际工作的一致性事件采样1. 允许在行为展开过程中观察2. 允许对指定的重要事件进行观察1. 消耗大量时间2. 漏掉频繁发生事件的代表性样本1. 获取默认知识2. 验证用户知识和实际工作的一致性第十章2. 你认为场景方法可以在需求工程(甚至软件工程)的哪些方面起到重要作用?(1) 组织需求获取得到的信息;将每次面谈、原型或观察得到的信息整理为对一个或多个场景的描述,不仅条理清楚,且叙述性的描述方式易于为涉众所接受。 软件系统所包含的诸多场景还可以很
8、好地组织起来,起到汇总和归类的作用。 5种场景关系(2)帮助进行详细的需求分析; 通过遍历事件的场景要素,可以帮助更好更快地建立需求模型 局部事件的场景实例,可帮助验证需求模型的正确性(3) 结合面向目标的方法,指导需求获取活动的展开;得到一个目标时,需要为其组织信息,建立场景。进行场景描述时,就可以根据场景内容细化,发现子目标。 目标精化的过程同时也为需求获取活动提供了指导,帮助了更多场景的建立。第十一章8.比较确定需求优先级的各种方法,说明它们的优缺点 P222 (1)累计投票 (2)区域划分 (3)Top-N (4)数据量化十五章3.需求规格说明有哪些常见读者?他们阅读的目的是什么?他们
9、对需求规格说明的要求是什么? (1)项目管理者:基于它进行软件的估算,安排下一步的项目开发工作并行开发;全面、准确定义软件的功能和非功能性需求; (2)设计人员和程序员:完成自己的任务,以此文档作为重要的判断标准; (3)测试人员:根据文档的内容设计测试计划,包括确定需要测试的功能和产生有效的测试用例的方法; (4)文档编写人员:着手计划用户使用手册的编写,确定手册的内容和要点,并在软件开发活动完成之后,结合实际素材进行最终编写; (5)维护人员:作为执行维护任务时的重要依据; (6)培训人员:根据对需求的理解来合理安排培训的内容和方式; (7)律师:作为律师进行法律考量的依据,以检查软件产品
10、是否符合现有的法律法规;6.需求规格说明时,有哪些原则和技巧可以遵循? 原则:(1)写作是一门艺术= (2)文档化的目标是交流 技巧:(1)内容的组织 所有内容位置得当 引用或强化,但不重复 (2)表达方式 形式依赖于内容 使用系统的表达方式 (3)细节描述 定义术语表或数据字典 避免干扰文本 避免歧义词汇2.需求获取和需求分析中采用哪些手段可以保证最终需求的完备性、一致性和正确性?完备性: 需求规格说明文档是完备的,当且仅当1 描述了用户所有有意义的需求,包括功能、性能、约束、质量属性和对外接口;2 定义了软件对所有情况的所有实际输入(无论有效输入还是无效输入)的响应; 3 为文档中的所有插
11、图、图、表和术语、度量单位的定义提供了完整的引用和标记。需求的完备性要求不能遗漏任何需求或者必要的信息,为避免需求遗漏,需求工程师要做好业务需求的分析,建立并控制正确的项目规范,建立业务需求、用户需求和系统需求的跟踪关系也用于发现需求的遗漏现象。文档内所有TBD(待解决问题)被全部解决之前,需求规格说明文档都是不完备的。措施: 需求工程师做好业务需求的分析工作,建立并控制正确的项目范围。 建立业务需求、用户需求和系统需求的跟踪关系 将不能定论的内容显著地标记为待解决问题,并指定解决的时间和人员。一致性:1细节的需求不能同高层次的需求相冲突2同一层次的不同需求之间也不能互相冲突措施:由开发人员和
12、非开发人员对于其进行手工评审正确性:保证文档中每个单一需求都是优秀的需求单一需求的优秀特性可以使整份文档满足正确性,无歧义和可验证。十六章2.多种需求验证的方法应该如何结合运用?需求验证的方法:需求评审(静态分析,需求验证的一种主要方法), 原型与模拟,开发测试用例,用户手册编制,利用跟踪关系,自动化分析每个需求都需要经过评审,对于动态行为评审不能完成的就要通过原型和模拟的方法来验证。在正常的工作当中,可以顺便用上用户手册。测试用例,跟踪等方法在一些错误之处或者一些需求上进行验证,也是比较有效的。总而言之,大多数情况下,需求都是在静态的方式下被加以验证的(评审的方法),也可以说几乎所有的需求都要经过评审的方法进行验证,个别动态复杂的需求需要用原型与模拟的方法进行验证,工作之间产生的衔接可以用上开发测试用例,用户手册等方法,这样可以实现高效的综合运用。