取需求的方法需求工程 分析建模 软件原型需求管理.ppt
《取需求的方法需求工程 分析建模 软件原型需求管理.ppt》由会员分享,可在线阅读,更多相关《取需求的方法需求工程 分析建模 软件原型需求管理.ppt(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、n需求分析的几个问题n需求分析的任务n与用户沟通获取需求的方法n需求工程n分析建模n软件原型n需求管理需求分析什么是软件需求nIEEE软件工程标准词汇表(1997)将需求定义为:(1)用户解决问题或达到目标所需的条件或能力。(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。(3)一种反映上面(1)或(2)所描述的条件或能力的文档说明。n其他几种关于“需求”的定义:需求是用户所需要的并能触发一个程序或系统开发工作的说明;需求是从系统外部能发现系统所具有的满足于用户的特点、功能及属性等;需求是指明必须实现什么的规格说明。它描述了系统的行为、特性或属性,是在开发过程中
2、对系统的约束。有哪些层次的软件需求n业务需求(businessrequirement):反映了组织机构或客户对系统或产品高层次的目标要求,它们在项目视图与范围文档中予以说明。n用户需求(userrequirement):描述了用户使用产品必须要完成的任务,可在用例模型或方案脚本中予以说明。n功能需求(functionalrequirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。n非功能需求(non-functionalrequirement):是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。过程需求:有交付、实现方法和标准
3、等需求;产品需求:包含性能、可用性、实用性、可靠性、可移植性、安全保密性、容错性等方面的需求;外部需求:有法规、成本、操作性等需求。软件需求各组成部分之间的关系什么时候进行需求分析n项目的早期阶段?n贯穿于整个软件开发过程的需求活动导致需求错误的原因有哪些1n缺乏足够的用户参与:客户经常不明白为什么收集需求和确保需求质量需花费那么多功夫,开发人员可能也不重视用户的参与。可能原因:与用户合作不如编写代码有意思;开发人员觉得已经明白用户的需求了。n用户需求不断增加:在开发过程中,用户需求经常发生变化,不断的变更会使其整体结构越来越乱,整个程序也难以理解和维护。在项目的开始对项目视图、范围、目标、约
4、束限制和成功标准给予明确说明,并将此说明作为评价需求变更和新特性的参照框架。n需求模棱两可:不同的人对需求说明产生了不同的理解,或者同一个人能用不止一个方式来解释某项需求说明。返工耗费开发总费用的40%,而70%85%的重做是由于需求方面的错误引起的,它是需求规格说明中最严重的问题。组织不同的人员从不同的角度审查需求。导致需求错误的原因有哪些2n添加不必要的特性:开发人员力图增加一些“用户欣赏”但需求规格说明中并未涉及的新功能,然而常常是用户并不认为这些功能性很有用。开发人员应当为客户构思方案,并为他们提供一些具有创新意识的思路,具体提供哪些功能要在客户的需要和允许时限内的技术可行性之间求得平
5、衡。n规格说明过于简单:客户往往不明白需求分析的重要性,只是提供一份十分简略的规格说明,仅涉及产品概念上的内容,然后让开发人员在项目进展中去完善,从而导致开发人员先建立产品结构再完成需求说明。n忽略了用户分类:大多数产品是由不同的人使用其不同的特性,使用频繁程度也有所差异,使用者受教育程度和经验水平也不尽相同。在项目早期就针对所有这些主要用户进行分类。n参与需求分析的人系统分析师、需求阐释者、客户代表、用户代表、开发方领导、项目经理、架构设计师、领域专家、财务人员、市场人员、软件质量保证(SQA,SoftwareQualityAssure)人员、程序员、测试人员、部署人员、技术文档编写人员、培
6、训人员等。n需求分析的场所调研时,在客户现场编纂软件需求规约文档时,可以在开发单位复审相关的需求文档时,根据需要来安排参与需求分析的人有哪些,场所在哪如何进行需求分析需求分析的目的与准则n目的准确地回答“系统必须做什么?”这个问题。对目标系统提出完整、准确、清晰、具体的要求。n准则必须理解并描述问题的信息域,根据这条准则应该建立数据模型。必须定义软件应完成的功能,这条准则要求建立功能模型。必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。需求分析的任务1n确定对系统的综合要求功能需求:划分出系统必须完成的所有功能。性能
7、需求:指定系统必须满足的定时约束或容量约束,通常包括速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等方面的需求。可靠性和可用性需求:定量地指定系统的可靠性,它量化了用户可以使用系统的程度。出错处理需求:说明系统对环境错误应该怎样响应,这类错误并不是由该应用系统本身造成的。接口需求:接口需求描述应用系统与它的环境通信的格式。约束:描述在设计或实现应用系统时应遵守的限制条件。常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。逆向需求:说明软件系统不应该做什么。将来可能提出的要求:应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要
8、求。需求分析的任务2n分析系统的数据要求:采用建立数据模型的方法。数据字典:可以全面准确地定义数据,但不够形象直观。层次方框图和Warnier图:描绘数据结构,有助于提高可理解性。数据结构规范化:能够减少数据冗余,避免出现插入异常或删除异常以及简化修改数据的过程。需求分析的任务3n导出系统的逻辑模型综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。n修正系统开发计划根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。与用户沟通获取需求的方法1n访谈正式
9、的:系统分析员将提出一些事先准备好的具体问题。非正式的:分析员将提出一些用户可以自由回答的开放性问题,以鼓励被访问人员说出自己的想法。分发调查表:当需要调查大量人员的意见时。情景分析:对用户将来使用目标系统解决某个具体问题的方法和结果进行分析。n(1)它能在某种程度上演示目标系统的行为,从而便于用户理解,而且还可能进一步揭示出一些分析员目前还不知道的需求。n(2)由于情景分析较易为用户所理解,使用这种技术能保证用户在需求分析过程中始终扮演一个积极主动的角色。与用户沟通获取需求的方法2n面向数据流自顶向下求精结构化分析方法:通常从数据流图的输出端着手分析,沿数据流图从输出端往输入端回溯,确定每个
10、数据元素的来源,与此同时也就初步定义了有关的算法。n通常把分析过程中得到的有关数据元素的信息记录在数据字典中,把对算法的简明描述记录在IPO图中。与用户沟通获取需求的方法3n简易的应用规格说明技术:提倡用户与开发者密切合作,共同标识问题,提出解决方案要素,商讨不同方案并指定基本需求。初步的访谈,通过用户对基本问题的回答,初步确定待解决的问题的范围和解决方案。开发者和用户分别写出“产品需求”。选定会议的时间和地点,并选举一个负责主持会议的协调人,邀请开发者和用户双方组织的代表出席会议,并在开会前几天预先把写好的产品需求分发给每位与会者认真审查。会议开始后,首先讨论是否需要这个新产品,如果大家都同
11、意,每位与会者就应该把他们在会前准备好的列表展示出来供大家讨论。大家共同创建一张组合列表。把与会者分成更小的小组,每个小组的工作目标是为每张列表中的项目制定小型规格说明并向全体与会者展示。每个与会者都制定出产品的一整套确认标准,并把自己制定的标准提交会议讨论,以创建出意见一致的确认标准。最后,由一名或多名与会者根据会议成果起草完整的软件需求规格说明书。优点:开发者与用户不分彼此,齐心协力,密切合作;即时讨论并求精;有能导出规格说明的具体步骤。与用户沟通获取需求的方法4n快速建立软件原型:快速建立起来的旨在演示目标系统主要功能的可运行的程序。n第一个特性是“快速”。n第二个特性是“容易修改”(原
12、型的“修改试用反馈”过程可能重复多遍)。n使用的方法和工具第四代技术:包括众多数据库查询和报表语言、程序和应用系统生成器以及其他非常高级的非过程语言。可重用的软件构件:可以是数据结构(或数据库),或软件体系结构构件(即程序),或过程构件(即模块)。形式化规格说明和原型环境需求工程n定义:指应用已证实有效的原理和方法,系统地描述出待开发系统及其行为特征和相关约束。需求开发的主要活动n确定产品所期望的用户类;n获取每个用户类的需求;n了解实际用户任务和目标以及这些任务所支持的业务需求;n分析源于用户的信息以区别用户任务需求、功能需求、业务规则、质量属性、建议解决方法和附加信息;n将系统级的需求分为
13、几个子系统,并将需求中的一部份分配给软件组件;n了解相关质量属性的重要性;n商讨实施优先级的划分;n将所收集的用户需求编写成规格说明和模型;n评审需求规格说明,确保对用户需求达到共同的理解与认识,并在整个开发小组接受说明之前将问题都弄清楚。需求管理的主要活动n定义需求基线;n评审提出的需求变更、评估每项变更的可能影响从而决定是否实施它;n以一种可控制的方式将需求变更融入到项目中;n使当前的项目计划与需求一致;n估计变更需求所产生影响并在此基础上协商新的承诺;n让每项需求都能与其对应的设计、源代码和测试用例联系起来以实现跟踪;n在整个项目过程中跟踪需求状态及其变更情况。需求获取的工作内容n聆听用
14、户的需求分析人员应该与各种层次的客户进行充分的交流和沟通,包括决策领导、使用部门的领导、具体使用人员、系统维护人员等,尽量清楚地理解用户的问题和要求。n分析和整理所获取的信息对于用户提供的各种问题和要求,分析人员需要对其进行归纳和整理,借助一些工具和方法,从用户一般性的陈述里面提取用户的真正需求,并由此确定软件的功能、性能、接口关系、约束条件等。n形成文档化的描述不论是用户的提出问题,还是最终获取的需求,都应该形成文档化的描述,这种描述需要各种人员的一致理解和认同。需求分析的主要活动n绘制系统关联图用于定义系统与系统外部实体间的界限和接口的简单模型。n创建用户接口原型当开发人员或用户不能确定需
15、求时,开发一个用户接口原型可以使许多概念和可能发生的事更为直观明了。n分析需求可行性在允许的成本和性能要求下,分析每项需求实施的可行性,明确与每项需求实现相联系的风险,包括与其它需求的冲突、对外界因素的依赖和技术障碍。n确定需求的优先级别确定用例、产品特性或单项需求实现的优先级别,以优先级为基础确定产品版本将包括哪些特性或哪类需求。n为需求建立模型软件需求规格说明极好的补充说明;包括数据流图、实体关系图、状态变换图、对话框图、对象类及交互作用图等。n创建数据字典对系统用到的所有数据项和结构的定义,以确保开发人员使用统一的数据定义。在需求阶段,数据字典至少应定义客户数据项以确保客户与开发小组是使
16、用一致的定义和术语。软件需求规格说明(SoftwareRequirementSpecification)模板1(IEEE标准830-1998)na.引言:概要叙述软件需求规格说明,便于读者理解文档如何编写以及如何阅读和解释。a.1目的:对产品进行定义,在该文档中详尽说明了这个产品的软件需求,包括修正或发行版本号。如果这个软件需求规格说明只与整个系统的一部分有关系,那么就只定义文档中说明的部分或子系统。a.2文档约定:描述编写文档时所采用的标准或排版约定,包括正文风格、提示区或重要符号。a.3预期的读者和阅读建议:列举了软件需求规格说明所针对的不同读者,例如开发人员、项目经理、营销人员、用户、测
17、试人员或文档的编写人员。描述了文档中剩余部分的内容及其组织结构,提出了最适合于每一类型读者阅读文档的建议。a.4产品范围:提供了对指定的软件及其目的的简短描述,包括利益和目标。a.5参考文献:列举了编写软件需求规格说明时所参考的资料或其它资源,可能包括用户界面风格指导、合同、标准、系统需求规格说明、使用实例文档,或相关产品的软件需求规格说明。在这里应该给出详细的信息,包括标题名称、作者、版本号、日期、出版单位或资料来源,以方便读者查阅这些文献。软件需求规格说明模板2(IEEE标准830-1998)nb.综合描述:概述了正在定义的产品以及它所运行的环境、使用产品的用户和已知的限制、假设和依赖。b
18、.1产品的前景:描述了软件需求规格说明中所定义的产品的背景和起源。说明了该产品是否是产品系列中的下一成员,是否是成熟产品所改进的下一代产品、是否是现有应用程序的替代品,或者是否是一个新型的、自含型产品。如果软件需求规格说明定义了大系统的一个组成部分,那么就要说明这部分软件是怎样与整个系统相关联的,并且要定义出两者之间的接口。b.2产品的功能:概述了产品所具有的主要功能。其详细内容将在d中描述,所以在此只需要概略地总结。很好地组织产品的功能,使每个读者都易于理解。用图形表示主要的需求分组以及它们之间的联系,例如数据流程图的顶层图或类图,都是有用的。b.3用户类和特征:确定可能使用该产品的不同用户
19、类并描述它们相关的特征。b.4运行环境:描述了软件的运行环境,包括硬件平台、操作系统和版本,还有其它的软件组件或与其共存的应用程序。b.5设计和实现上的限制:确定影响开发人员自由选择的问题,并说明这些问题为什么成为一种限制。可能的限制包括如下内容:n必须使用或者避免的特定技术、工具、编程语言和数据库。n所要求的开发规范或标准。n企业策略、政府法规或工业标准。n硬件限制,例如定时需求或存储器限制。n数据转换格式标准。b.6假设和依赖:列举出在对软件需求规格说明中影响需求陈述的假设因素,以及项目对外部因素存在的依赖。软件需求规格说明模板3(IEEE标准830-1998)nc.外部接口需求:确定可以
20、保证新产品与外部组件正确连接的需求。c.1用户界面:陈述所需要的用户界面的软件组件。描述每个用户界面的逻辑特征。以下是可能要包括的一些特征:n将要采用的图形用户界面(GUI)标准或产品系列的风格。n屏幕布局或解决方案的限制。n将出现在每个屏幕的标准按钮、功能或导航链接(例如一个帮助按钮)。n快捷键。n错误信息显示标准。对于用户界面的细节,应该写入一个独立的用户界面规格说明中。c.2硬件接口:描述系统中软件和硬件每一接口的特征。这种描述可能包括支持的硬件类型、软硬件之间交流的数据和控制信息的性质以及所使用的通信协议。c.3软件接口:描述该产品与其它外部组件(由名字和版本识别)的连接,包括数据库、
21、操作系统、工具、库和集成的商业组件。明确并描述在软件组件之间交换数据或消息的目的。描述所需要的服务以及内部组件通信的性质,确定将在组件之间共享的数据。c.4通信接口:描述与产品所使用的通信功能相关的需求,包括电子邮件、Web浏览器、网络通信标准或协议及电子表格等等。定义了相关的消息格式,规定通信安全或加密问题、数据传输速率和同步通信机制。软件需求规格说明模板4(IEEE标准830-1998)nd.系统特性d.1说明和优先级:简短说明该系统的特性,并指出该特性的优先级是高、中,还是低。另外,还可以包括对特定优先级部分的评价,例如利益、损失、费用和风险。d.2激励/响应序列:列出输入激励(用户动作
22、、来自外部设备的信号或其它触发器)和定义这一特性行为的系统响应序列。d.3功能需求:详列出与该特性相关的详细功能需求。这些是必须提交给用户的软件功能,使用户可以使用所提供的特性执行服务或者使用所指定的使用实例执行任务。软件需求规格说明模板5(IEEE标准830-1998)ne.其他非功能需求e.1性能需求:阐述了不同的应用领域对产品性能的需求,并解释它们的原理以帮助开发人员作出合理的设计选择。确定相互合作的用户数或者所支持的操作、响应时间以及与实时系统的时间关系。e.2安全设施需求:详尽陈述与产品使用过程中可能发生的损失、破坏或危害相关的需求。定义必须采取的安全保护或动作,还有那些预防的潜在的
23、危险动作。明确产品必须遵从的安全标准、策略或规则。e.3安全性需求:详尽陈述与系统安全性、完整性或与私人问题相关的需求,这些问题将会影响到产品的使用和产品所创建或使用的数据的保护。定义用户身份确认或授权需求,明确产品必须满足的安全性或保密性策略。e.4软件质量属性:详尽陈述与客户或开发人员至关重要的其它产品质量特性,这些特性必须是确定、定量的并在可能时是可验证的。e.5业务规则:列举出有关产品的所有操作规则,例如什么人在特定环境下可以进行何种操作。这些本身不是功能需求,但它们可以暗示某些功能需求执行这些规则。e.6用户文档:列举出将与软件一同发行的用户文档部分,例如用户手册、在线帮助和教程,明
24、确所有已知的用户文档的交付格式或标准。软件需求规格说明模板6(IEEE标准830-1998)nf.其他需求定义在软件需求规格说明的其它部分未出现的需求,例如国际化需求或法律上的需求。还可以增加有关操作、管理和维护部分来完善产品安装、配置、启动和关闭、修复和容错,以及登录和监控操作等方面的需求。这一部分可以省略。软件需求规格说明的作用n它精确地阐述一个软件系统必须提供的功能和性能以及它所要考虑的限制条件;不仅是系统测试和用户文档的基础,也是所有子系列项目规划、设计和编码的基础。软件需求规格说明是用户、分析人员和设计人员之间进行理解和交流的手段;测试人员可以根据软件需求规格说明中对产品行为的描述,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 取需求的方法需求工程 分析建模 软件原型需求管理 需求 方法 工程 分析 建模 软件 原型 管理
限制150内