第一部分:绪论工具
软件的发展经历了以“机器”“应用”“企业”为中心的三个阶段。这也是软件从一开始的新型项目到逐渐完整的一个制做体系造成的过程。其中关于需求规格说明和需求管理的缺陷是软件开发中最多见的两类重要问题。而致使需求问题的缘由中,未能很好的理解和掌握。应用型软件的模拟特性以及由此而产生的一系列影响的要求。软件能够分为三种类别:面向专业用户的纯工具型软件、面向普通用户的纯工具型软件和应用型软件。应用型软件正确的工做基础是具备包括目的性、正确性和显示可理解性的模拟性。需求问题的具体缘由有非技术性和社会性因素重视不足的态度问题,传统需求分析方法的缺陷的外部问题。性能
需求工程是全部需求处理活动的总和,它收集信息、分析问题、整合观点、记录需求并验证其正确性,最终反映软件被应用后与其环境互动造成的指望效应。需求工程包括需求开发(需求获取、需求分析、需求规格说明、需求验证)和需求管理两个方面。需求工程师须要具有认知学和社会学等方面好比认知心理学,人类学,社会学,语言学,哲学知识等理论指导和专业、分析、交流、观察、建模、写做、创新和协调等技能。spa
当软件系统被用来解决某些问题时,这些问题的问题集合域就是问题域,而软件系统经过影响问题域可以帮助人们解决问题成为解系统。经过映射创建的共同知识就是问题域和解系统之间的共享现象,也就是二者之间实现交互和互相影响的途径与接口。接口
需求分为功能需求、性能需求、质量属性、对外接口。约束。功能需求包括业务需求、用户需求和系统(级)需求。其余四项可划为非功能需求。其中性能需求常见的包括速度、容量、吞吐量、负载和实时性。约束主要有系统开发及运行的环境、问题域内的相关标准和商业规则。优秀的需求应该具有完整性、正确性、精确性、可行性、必要性、无歧义和可验证的特性。需求并无反映用户的真实须要、模糊和歧义的需求、信息遗漏、没必要要的需求、不切实际的指望等是常见的需求定义错误。开发
从这部分的需求绪论能够看到许都需求方面的总体定义,但并无具体的步骤指导。从总体定义上来看,需求工程是一个庞大而繁琐的过程,如何抓住软件的功能重点是需求工程的最终目的。文档
第二部分:需求获取原型
经过第一部分的理论知识,需求工程的第一步行动就是需求获取。需求获取的困难有用户和开发人员的背景不一样和立场不一样,普通用户缺少归纳性综合性的表述能力,用户存在认知困难,用户越俎代庖和缺少用户参与等几个方面。每一个方面又是具体而复杂的。对于需求获取必定要有一个完整的规划和充足的耐心。获取信息的内容包括需求、问题域描述、环境与约束。获取信息的来源包括涉众、硬数据、相关产品、重要文档、相关技术标准和法规。获取信息的方法包括传统的问卷调查等,集体获取方法(头脑风暴),原型方法,模型驱动方法(uml),认知方法(任务分析和协议分析),基于上下文的方法。获取信息的过程包括在总体上制定组织方案、维护项目的前景和范围、接受需求的不稳定性、控制探索性工做。防止遗漏需求和结束获取。具体的实例影响和做用能够参考上一本书的阅读笔记。最后整理记录保存。产品