需求分析建模技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
项目需求分析
1. 需求分析概述
1.1 需求分析定义
需求分析是指理解用户需求,就软件功能和性能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。在这个过程中,用户处在主导地位,需求分析工程师和项目经理要负责整理用户需求,为之后的软件设计打下基础。需求分析阶段结束后,要求得到《用户需求说明书》和《需求规格说明书》两份文档。广义上,需求分析包括需求的获取、分析、规格说明、变更、验证、管理的一系列需求工程。
狭义上的需求分析是指需求的获取、分析及定义的过程。需求分析的任务就是软件系统解决“做什么”的问题,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求的过程。
1.2 需求分析的根本任务
从实践角度考虑,需求分析不是分析如何实现用户的需求。实际上,需求分析是以业务分析为导向,将用户零散的需求串联起来,形成一个体系完成、组织合理、内容清晰的框架,为今后的设计开发工作打下良好的基础。
1、建立分析模型
⏹将复杂的系统分解成为简单的部分以及它们之间的联系,确定本质特征。
⏹和用户达成对信息内容的共同理解。
⏹分析的活动主要包括识别、定义和结构化,它的目的是获取某个可以转换
为知识的事物的信息。
2、创建解决方案
⏹将一个问题分解成独立的、更简单和易于管理的子问题来帮助寻找解决方
案。
⏹创建解决方案的过程是创造性的。
⏹帮助开发者建立问题的定义,并确定被定义的事物之间的逻辑关系。
⏹这些逻辑关系可以形成信息的推理,进而可以被用来验证解决方案的正确
性。
1.3 需求的层次
1、业务需求
反映组织机构或客户对系统、产品高层次的目标要求。通常问题定义就是业务需求
2、用户需求
描述用户使用产品必须要完成什么任务,怎么完成,通常是在问题定义的基础上进用户访谈、调查,对用户使用的场景进行整理,从而建立从用户角度的需求
3、系统需求
从系统的角度来说明软件的需求,它就包括了用特性说明的功能需求,质量属性以及其它非功能需求,还有设计约束
1.4 需求分析的重要性
如果投入大量的人力、物力、财力和时间,而开发出的软件却没人要,那么所有的投入都是徒劳。如果费了很大的精力开发一个软件,最后却不能满足用户的要求,而要重新开发,那么这种返工是让人痛心疾首的。所以,需求分析在软件开发过程中具有举足轻重的地位,具有决策性、方向性、策略性的作用,我们应对需求分析具有足够的重视。在一个大型软件系统的开发中,需求分析的作用要远远大于程序设计。
根据Standish Group对23000个项目进行的研究结果表明,28%的项目彻底失败,46%的项目超出经费预算或者超出工期,只有约26%的项目获得成功。而在于这些高达74%的不成功项目中,有约60%的失败是源于需求问题。也就是说,有近45%的项目最终因为需求的问题最终导致失败。失败的主要原因:
1、不完整的需求;
2、没有用户的介入;
3、不实际的客户期望;
4、需求和规范的变理;
5、提供了不再需要的
1.5 需求分析的一般步骤
需求分析的基本过程:
1.需求获取
通过会议纪要、讨论纪要的形式。
2.需求捕获技术比较
捕获技术优点缺点
用户访谈直接有效、灵活、深入,主要技术占用时间长,信息面窄、较片面
用户调查面广、可以获得更多反馈不够深入,容易形式主义、失真
现场观摩容易建立直接的认识消耗时间长,易失真
文档考古能够详细、直观对数据流细节进行分析易陷入文山书海,甚至产生误导
联合开发直接的头脑风暴,可以击破需求盲点成本高,需要较高的控制技巧
3.需求分析
对收集到的需求进行提炼、分析和审查,为最终用户所看到的系统建立概念化的分析模型。关键是解决What(收集什么信息)、Where(从哪收集)、How(如何收集)。
4.需求文档的编写
完成需求规格说明书的编写,并审核通过的规格说明书,其内容包含如下:
●分析需求可行性
●细化需求
●建立需求分析模型
●功能活动
●分析问题类和类之间关系
●系统和类行为
●数据流
需求分析的本质就是抽象、映射、转换。:
抽象、映射、转换
客户现实需求软件需求模型(SRS)
2. 需求分析建模
需求分析是软件需求中最核心的工作,需求分析建模是需求分析的主要手段。
建立系统模型的过程。又称模型化。建模是研究系统的重要手段和前提。凡是用模型描述系统的因果关系或相互关系的过程都属于建模。
建模是寻求分析的主要手段,它通过简化(化简)、强调来帮助需求分析人员理清思路,达成共识。因此需求建模的过程非常重要。
1.1 模型(Model)
模型是对事物的抽象,帮助人们在创建一个事物之前可以有更好的理解。
集中关注问题的计算特性(数据、功能、规则等等)
它是对系统进行思考和推理的一种方式。建模的目标是建立系统的一个表示,这个表示以精确一致的方式描述系统,使得系统的使用更加容易
通过建模可以更好地理解正在开发的系统。
原先,由于计算机应用还不算普及,因此软件系统的规模和复杂度都相对较小。使用“数据结构+算法=程序”的模式就可以解决大部分问题。
现在,随着计算机应用的不断普及,业务模式、数据量都在发生迅速的变化。软件涉及的问题越来越广,早已超出了人们可以处理的复杂程度。
如果还采用传统的方式,就无法进行有效的规划和设计,最终必然导致失败。
通过软件建模,帮助我们按照实际情况或按照我们的需要的模式对系统进行可视化,提供一种详细说明系统的结构或者行为的方法,给出一个指导系统构造的模板。对所有做出的决定实施文档化。
1.3 模型分类:
业务模型、分析模型、计算模型、编码模型。以图书馆借书为例的一个模型: