需求分析
需求分析报告范文(精选12篇)

需求分析报告范文(精选12篇)一、什么是报告报告是一种公文格式,专指陈述调查本身或由调查得出的结论,反映工作中的基本情况、取得的经验教训、存在的问题以及今后工作设想等,使用范围很广,报告的风格与结构因各个机构的惯例而有所不同。
在已发布的党、人大、政府、司法、军队机关的公文处理规范中,都规定了报告这个文种。
二、需求分析报告范文(精选12篇)在学习、工作生活中,报告与我们的生活紧密相连,多数报告都是在事情做完或发生后撰写的。
那么一般报告是怎么写的呢?以下是小编为大家收集的需求分析报告范文(精选12篇),欢迎大家借鉴与参考,希望对大家有所帮助。
需求分析报告范文1我生性是比较胆小的。
对于安全,特别是生产安全,估计得从我参加工作的那年说起。
08年一毕业,我便被分配到位于甘肃山沟里面的一个水电站做施工。
在这里,平生第一次深刻知道安全对于生产,对于自身,对于内心的重要性。
记得美国犹太裔人本主义心理学家亚伯拉罕?马斯洛(Abraham Maslow)就提出,人对于安全的需求在需求层次理论金字塔中是先于生理需求(身体基本需求)社交需求(社会关系的需求)自我实现需求及尊重需求,属于最基本的需求。
是的,人工作是为了活着,或是为了养家糊口,或是为了十几年的教育能够学有所用,或是为了实现自己的社会价值,但所有的所有的目的,都是在自身安全的前提下实现的。
由于我的生性胆小,所以第一次接触这种立体式庞杂的施工现场时,我是以一个初入者的身段带着强大的融入式需求来接受目前这份工作的,虽然在繁杂立体式的施工现场有很多对自身安全造成困扰的问题,但是我得面对。
因为我来自农村,又学了工程测量这门专业,除此之外,作为一个刚毕业的学生,我还能干吗?第一次在下面悬空的钢筋网上走自己还是很害怕的,第一次背着仪器箱子在垂直的几十米高简易爬梯上上下内心也是颤抖的,第一次在全无遮护的布着钢轨仅能容下双脚宽的20多米高的吊车预制梁上走过内心是带着与命运抗衡的决心的,我记得从那上面走过后,我觉得这辈子我都不再从类似这样的地方走过,对我来说这简直是在高空走钢丝绳,即使我们有年长的前辈在上面如履平地。
如何做好需求分析

如何做好需求分析需求分析是软件开发的关键步骤之一,它涉及到对用户需求进行理解和规划,同时也是设计和开发过程中的基础。
下面是一些关键的步骤和技巧,可以帮助您做好需求分析。
1.确定和理解用户需求:与用户进行深入的沟通和访谈,以了解他们的需求。
确保准确地获取用户的期望和目标。
这可以通过使用各种技术,例如访谈、问卷调查和原型创建来实现。
2.建立需求规范:根据从用户那里收集到的信息,制定一份完整的需求规范文档。
这份文档应该包括功能需求、非功能需求、优先级、约束条件以及与其他系统的交互等内容。
3.分析和拆解需求:将整体需求拆分成更小、更具体的单元。
这样可以更好地理解和处理需求。
可以使用工具和技术,如用例图、流程图和状态转换图,来帮助分析和拆解需求。
4.确认需求的可行性:验证和确保所提出的需求是可行的,并且能够在给定的限制条件下实现。
这可以通过技术评审、成本估算和风险分析等方法来实现。
5.管理变更和优先级:需求分析过程中,很有可能会出现需求变更。
因此,需要建立一个良好的变更管理机制,确保所有的变更都得到适当的审查和批准。
另外,还需要为不同的需求给出优先级,以便在设计和开发过程中能够有条不紊地进行。
6.与其他团队成员的合作:需求分析过程中需要与设计、开发和测试团队紧密合作。
确保他们充分理解需求,并在开发过程中的每一个阶段都能满足这些需求。
7.使用合适的工具和技术:使用适当的工具和技术来支持需求分析过程。
这些工具可以帮助您管理和维护需求规范,创建和查看需求文档,以及与其他团队成员进行需求的共享和讨论。
8.精确的描述和文档化:需求分析的结果需要进行准确的描述和文档化。
确保将需求规范文档清晰地记录下来,并与其他相关文档进行适当的链接,以便在需要时能够方便地查阅。
9.进行评审和验证:在需求分析过程的不同阶段进行评审和验证,以确保分析结果的准确性和合理性。
可以邀请用户和其他团队成员参与评审和验证过程,以获取更多的反馈和建议。
需求分析报告

需求分析报告•相关推荐需求分析报告(通用11篇)在日常生活和工作中,报告有着举足轻重的地位,报告中提到的所有信息应该是准确无误的。
你所见过的报告是什么样的呢?以下是小编帮大家整理的需求分析报告,仅供参考,大家一起来看看吧。
需求分析报告篇1一、项目介绍1.1编写目的:本需求分析报告的目的是规范化本软件的编写,旨在于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,同时提出了本学校排课系统的软件开发过程,便于程序员与客户之间的交流、协作,并作为工作成果的原始依据,同时也表明了本软件的共性,以期能够获得更大范围的应用,同时它也是进行项目策划、概要设计和详细设计的基础,是维护人员进行内部维护,信息更新,验收和测试的依据。
1.2背景及范围本项目的名称:学校排课系统。
本项目的任务提出者及开发者是:计算机应用三班张哲,用户是学校。
本产品是针对电脑进行排课的需求设计的,可以完成:基本数据录入与维护、课程表编排、课表冲突分析报告、课表输出、可以直接或导出至Excel打印总课表、教师课表、班级课表、场地课表、系统管理。
1.3定义缩写词学校排课系统软件:学校排课系统软件是为了帮助学校老师对学校的排课更加方便和快速制作处课程表及其管理学校的课程的软件。
二、项目描述:使用改程序后,学校的排课可以很轻松的安排好,而却可以尽量避免平时排课时出现的排课冲突,还可以临时加补课等功能。
2.1软件开发的目标:改善目前有些学校人工排课是常常出现的冲突以及浪费的大量时间。
同时也通过实践来提高自己的动手能力。
2.2应用范围:理论上能实现中小学排课,职业中学排课。
2.3子集说明:软件主要分为两个模块,一个基本信息的录入,一个是进行排课的管理。
2.4软件功能描述:外部功能:实现了可视化窗口,排课,调课。
内部功能:基本信息的录入、固定课的设置、科目的录入、年级的录入、任课老师的录入、场地限制的录入和课表的查看;排课操作、调课操作、场地调课操作、老师课表及学生课表生成。
需求分析是什么意思有什么特点

需求分析是什么意思有什么特点需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作,以下是由店铺整理关于什么是需求分析的内容,希望大家喜欢!需求分析的介绍所谓"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。
可以说,在软件工程当中的“需求分析”就是确定要计算机“做什么”,要达到什么样的效果。
可以说需求分析是做系统之前必做的。
在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。
需求分析是软件工程中的一个关键过程。
在这个过程中,系统分析员和软件工程师确定顾客的需要。
只有在确定了这些需要后,他们才能够分析和寻求新系统的解决方法。
需求分析阶段的任务是确定软件系统功能。
在软件工程的历史中,很长时间里人们一直认为需求分析是整个软件工程中最简单的一个步骤。
但在近十年内,越来越多的人认识到,需求分析是整个过程中最关键的一个部分。
假如在需求分析时分析者们未能正确地认识到顾客的需要的话,那么最后的软件实际上不可能达到顾客的需要,或者软件项目无法在规定的时间里完工。
需求分析的特点需求分析是一项重要的工作,也是最困难的工作。
该阶段工作有以下特点:供需交流困难在软件生存周期中,其它四个阶段都是面向软件技术问题,只有本阶段是面向用户的。
需求分析是对用户的业务活动进行分析,明确在用户的业务环境中软件系统应该"做什么"。
但是在开始时,开发人员和用户双方都不能准确地提出系统要"做什么?"。
因为软件开发人员不是用户问题领域的专家,不熟悉用户的业务活动和业务环境,又不可能在短期内搞清楚;而用户不熟悉计算机应用的有关问题。
由于双方互相不了解对方的工作,又缺乏共同语言,所以在交流时存在着隔阂。
可行性分析和需求分析

可行性分析和需求分析一、可行性分析技术可行性:评估项目所需的技术是否可行,包括硬件、软件、网络等方面的技术要求。
如项目所需的硬件设备是否能满足项目的需求,软件开发所需的开发工具是否可行等。
经济可行性:评估项目的经济效益,包括项目的投资和回报。
对项目进行成本评估,包括硬件和软件的采购成本、人力资源的成本等,然后对项目的盈利情况进行预测,包括市场需求、竞争情况、产品定价等,并进行投资回收期、净现值、内部回报率等经济指标的计算,以判断项目的经济可行性。
操作可行性:评估项目的操作可行性,包括项目开发过程的可操作性和项目实施后的可操作性。
对项目开发过程中需要的资源、人员、时间等进行评估,以确保项目能够按时顺利进行;对项目实施后的操作过程进行评估,确保项目能够稳定运行,并能满足用户的需求。
二、需求分析需求分析是指从各个相关方面收集用户需求和项目目标,对需求进行整理、分析和澄清的过程。
需求分析是项目开发的关键环节,它的目的是明确项目的功能、性能、界面、业务流程等方面的需求,为项目的设计和开发提供准确的基础。
需求分析主要包括以下几个步骤:1.需求获取:通过与用户交流、访谈、问卷调查等方式,获取项目的需求和目标。
包括功能需求、性能需求、界面需求、业务流程需求等。
2.需求整理:对获取到的需求进行分类和整理,确保需求表述准确清晰,并进行必要的领域模型、数据流程图等工具的使用,以便更好地理解和分析需求。
3.需求分析:对整理后的需求进行分析,包括对不同需求之间的关系、优先级、稳定性等进行评估,确保需求的可行性和合理性。
4.需求确认:与用户进行沟通和确认,确保需求的准确性和完整性,并及时处理用户提出的问题和建议。
5.需求文档撰写:根据需求分析的结果,撰写详细的需求文档,包括用例规约、功能需求描述、界面设计等,为后续的设计和开发提供指导。
通过可行性分析和需求分析,可以对项目的可行性进行评估,并明确项目的需求和目标。
这对于项目的顺利开展和成功实施具有重要意义,有助于降低项目风险,并提高项目的成功率。
需求分析名词解释

需求分析名词解释需求分析是指对需求进行理论分析、实际调查和实地勘察的过程,目的是明确用户的需求,为产品或服务的设计、开发和运营提供指导和依据。
在需求分析中,有一些重要的名词需要解释,如下所示:1. 需求:指用户对产品或服务的实际需求或期望。
需求可以分为功能需求和非功能需求两类。
功能需求是指产品或服务必须具备的具体功能或特性;非功能需求是指产品或服务在使用过程中必须满足的性能、安全性、可用性、可维护性等方面的要求。
2. 需求分析:是指对需求进行详细、全面、准确地分析和描述的过程。
需求分析的目标是明确产品或服务的需求,包括功能需求和非功能需求。
需求分析主要包括需求收集、需求整理、需求确认等步骤。
3. 需求收集:是指通过各种方式收集用户的需求信息。
需求收集可以使用多种技术和方法,如面谈、问卷调查、观察、文档分析等。
需求收集的目标是获取用户对产品或服务的需求和期望。
4. 需求整理:是指对收集到的需求进行分类、归纳、整理和优化的过程。
需求整理可以将大量的需求信息进行分类和组织,以便进一步分析和处理。
5. 需求确认:是指与用户或相关利益相关方共同确认需求的准确性和完整性的过程。
需求确认可以通过演示、原型、评审等方式进行。
确认需求是为了保证产品或服务的开发和设计过程能够按照用户的真实需求进行。
6. 需求文档:是对需求进行详细描述的文档。
需求文档包括需求说明书、用例文档、需求规格说明书等。
需求文档是需求分析的重要成果,用于指导软件开发和测试。
7. 需求管理:是指对需求进行有效的管理和控制的过程。
需求管理包括需求变更管理、需求追踪管理、需求确认管理等。
通过需求管理,可以确保产品或服务的需求在整个开发和运营过程中得到有效控制和管理。
8. 用户故事:是一种对需求进行简洁、可理解的描述方式。
用户故事通常由三个部分组成:角色、目标和理由。
用户故事是敏捷开发方法中常用的需求描述技术。
以上是需求分析中常用的一些名词的解释。
在需求分析过程中,了解和掌握这些名词的含义和用法,对于进行准确、全面的需求分析非常重要。
需求分析的模板(汇总5篇)
需求分析的模板(汇总5篇)1.需求分析的模板第1篇职责:1、负责智能仓储相关产品管理信息系统的发展趋势分析、竞品分析、客户需求调研,跟踪行业技术发展和竞品发展动态;2、负责产品相关的解决方案、产品规划、产品需求文档等编写工作;3、负责业务调研及需求梳理、编写需求文档及原型设计,参与产品开发过程,负责需求管理、需求排序、进度控制、质量控制、风险管理等各项项目管理工作;4、参与内外部产品交流、产品宣传、产品推广工作;5、支撑内外部项目交流、对接项目侧需求并具备评审分析能力。
岗位要求:1、大专及以上学历,计算机、软件工程、信息管理、通信工程、电子信息技术等相关专业并取得相应学位,有3年以上相关工作经验优先;2、具备M域大型ERP、计划建设、采购供应链系统管理、规划、系统内部流程、规则等相关知识;3、能够针对客户需求制定产品解决方案,客户交流、方案及产品实施推广能力强;4、具有良好的沟通和组织协调能力,能有效推动产品和项目进展;5、具有优秀的文案撰写能力和产品展现讲解能力6、工作积极主动,能够接受和适应长期出差;7、有在智能仓储物流等相关传动行业工作经验者优先有在咨询公司、管理信息系统软件开发厂商工作经验者优先。
2.需求分析的模板第2篇职责:1、负责客户需求调研、需求分析、方案设计(PPT、word等格式);2、整理需求功能清单,协助评估开发成本和计划;3、分析细化需求,编写详细需求规格说明书,协助进行交互和UI效果图设计,与客户沟通确认需求。
4、主持需求评审、参与设计评审,参与需求功能验收工作及用户手册、需求功能培训资料的编写;5、参与客户项目招投标(项目可研、立项、投标等)需求建设方案编写和评审等。
岗位要求:1、本科及以上学历,计算机相关专业;2、 1年以上软件需求分析工作经验;成功参与过大型产品项目的需求分析工作者优先;3、熟悉需求调研方法,较强的业务流程及业务模型分析设计能力;善于控制需求,进行版本范围及项目范围管理;4、有效的沟通技巧,在团队协作中具有精炼思维和解决复杂问题的能力,能快速把握需求的核心要点;5、熟悉软件工程理论,掌握软件需求获取与分析方法;6、具备较强的需求方案表达能力,有PPT方案、项目可研方案撰写经验者优先;7、具备较强的团队协作精神、良好的学习能力,责任心强,能够承受较大的工作压力。
如何理解需求分析的作用和重要性
如何理解需求分析的作用和重要性需求分析是软件开发过程中的关键环节,它的作用和重要性不可忽视。
需求分析旨在明确和理解用户对软件系统的期望和需求,以便开发人员可以根据这些需求进行系统设计和编码。
以下是对需求分析的作用和重要性的深入讨论。
一、作用:1. 确定系统的目标和范围:需求分析帮助开发人员明确软件系统的目标和范围。
通过与用户进行沟通和讨论,开发人员可以了解用户的需求,并将其转化为可执行的任务和功能。
2. 确定系统的功能和特性:需求分析有助于确定软件系统需要具备的功能和特性。
开发人员可以通过与用户交流,了解用户的工作流程和需求,从而设计出适合用户的功能和界面。
3. 确定系统的约束和限制:需求分析还有助于确定软件系统的约束和限制条件。
这些条件可能包括时间、预算、硬件要求等。
了解这些限制条件可以帮助开发人员在设计和开发过程中做出明智的决策。
二、重要性:1. 帮助避免开发过程中的错误:需求分析可以帮助开发人员在软件开发过程的早期阶段发现和纠正错误。
通过详细地了解用户的需求和期望,开发人员可以减少后期开发过程中由于误解或遗漏所引起的错误。
2. 提高软件系统的质量:良好的需求分析可以确保开发出满足用户需求的软件系统。
通过与用户进行沟通和反馈,开发人员可以及时调整设计和开发过程,以确保软件系统的质量和用户体验。
3. 减少开发成本和时间:需求分析有助于减少开发过程中的变更和调整。
通过充分了解用户的需求,开发人员可以在设计和开发之前进行仔细的规划和预估,从而减少在开发过程中重新设计和编码的次数,节省开发成本和时间。
总之,需求分析在软件开发过程中起着至关重要的作用。
它有助于明确和理解用户的需求,确定系统的功能和特性,以及规划开发过程中的约束和限制。
良好的需求分析可以帮助开发人员避免错误,提高软件系统的质量,同时减少开发成本和时间。
因此,深入理解需求分析的作用和重要性对于成功的软件开发来说至关重要。
简述需求分析的方法
简述需求分析的方法需求分析是软件开发过程中至关重要的一步。
它涉及对需求进行收集、分析和定义,以确保产品能够满足用户的期望和需求。
本文将简要介绍一些常用的需求分析方法,以帮助开发人员更好地理解和应用这些方法。
一、用户访谈用户访谈是需求分析中最常见的方法之一。
通过与用户直接交流,开发人员可以深入了解用户的需求和期望。
访谈可以采用面对面的方式,也可以通过电话或在线方式进行。
通过询问用户的问题,并仔细聆听他们的回答,开发人员可以获取关键的需求信息,并了解用户的痛点和需求的优先级。
二、文档分析在需求分析过程中,开发人员可以对现有的文档进行分析,以获取对系统需求有关的信息。
这些文档可以包括用户手册、操作手册、业务规范等。
通过仔细阅读和分析这些文档,开发人员可以较全面地了解用户的需求,以及系统所需具备的功能和性能要求。
三、场景模拟场景模拟是一种通过设定特定场景并让用户参与其中的方法。
通过模拟真实的使用场景,开发人员可以观察用户在特定情况下的行为和反应,并从中获取用户需求的洞察。
例如,可以设置实验室环境,让用户在特定的操作流程下测试软件,并倾听他们的反馈。
通过这种方法,开发人员可以更加准确地了解用户的需求和期望。
四、原型开发原型开发是通过制作一个简化版的产品原型,以获取用户反馈和需求的方法。
开发人员可以通过软件工具或手工制作一个简单的界面原型,以模拟待开发产品的功能和交互流程。
然后,开发人员可以邀请用户测试原型并提供反馈意见。
通过这种方法,开发人员可以迅速获取用户的需求,以便在后续的开发过程中进行相应的调整和优化。
五、焦点小组讨论焦点小组讨论是一种集中用户参与的需求分析方法。
开发人员可以组织一组来自用户群体的代表,共同参与讨论产品需求和期望。
通过集思广益的方式,开发人员可以获取来自不同用户的不同意见和建议,并最终形成一个更加全面和准确的需求规格。
六、需求优先级排序在需求分析过程中,开发人员常常需要面对多个需求,并对其进行优先级排序。
需求分析
需求分析需求分析是软件开发过程中非常重要的一个环节,它是指对用户需求进行全面、准确地分析和收集,以便于确定所需软件系统的功能、性能、安全性等具体要求。
在实际软件开发项目中,如何正确地进行需求分析是影响软件开发成败的重要因素之一,以下将从基本概念、过程方法和常见问题三个方面详细阐述需求分析。
一、基本概念1.需求定义:需求是指客户或用户对某个系统或产品的具体要求。
需求大多来源于用户需求、行业标准、法律法规、技术能力等。
例如,企业需要一个销售管理系统来提升营销效率、一家医院需要一个信息系统来管理患者信息和医疗资源、某个电商平台需要一个订单管理系统来提供更好的服务等。
2.需求分类:根据不同的角度,需求可分为:(1)功能需求:即系统应该完成的操作、处理数据的需求,包括输入、输出、计算、验证等。
(2)非功能需求:系统除了功能外的理性质量要求,如性能、安全、可靠性等。
(3)业务需求:与所属行业或用户业务相关的需求,如支付功能可能需要适配多种支付方式。
(4)可追溯性需求:能够量化为测试用例的需求,例如:给定某些输入值,预期输出结果应该是什么。
二、过程方法需求分析过程是一个涉及用户、业务、行业和技术层面的复杂过程。
正确地执行需求分析将确保开发团队在满足客户期望的同时,合理规划开发周期和成本。
一般情况下,正确执行需求分析需要考虑以下几个方面:1.与客户谈判首先设计人员应该与客户进行会面,了解客户需要的功能、业务以及用户需求。
他们应该了解客户的文化,内部运作方式和工作流程,了解项目的背景和动因,并针对质量标准进行讨论,以促进有效沟通。
2.收集规则与目标在确定用户需求后,设计人员需要开始收集相关信息,包括技术和非技术的要求。
这通常会涉及到信息的收集、盘点和分类整理,记录所有内容并确保每个要素都能明确认识和定义。
3.确定优先级别下一步是通过与客户的交互,确定每个需求的优先级次序。
设计人员需要与客户讨论整个系统的运作方式,并确定优先级次序,以确保项目能够在范围内、时间和成本内完成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011-6-21
• 所谓"需求分析",是指对要解决的问题进行详细的分析, 弄清楚问题的要求,包括需要输入什么数据,要得到什么 结果,最后应输出什么。可以说,在软件工程当中的“需 求分析”就是确定要计算机“做什么”。 • 在软件工程中,需求分析指的是在建立一个新的或改变一 个现存的电脑系统时描写新系统的目的、范围、定义和功 能时所要做的所有的工作。需求分析是软件工程中的一个 关键过程。在这个过程中,系统分析员和软件工程师确定 顾客的需要。只有在确定了这些需要后他们才能够分析和 寻求系统的解决方法。 • 在软件工程的历史中,很长时间里人们一直认为需求分析 是整个软件工程中最简单的一个步骤,但在过去十年中越 来越多的人认识到它是整个过程中最关键的一个过程。假 如在需求分析时分析者们未能正确地认识到顾客的需要的 话,那么最后的软件实际上不可能达到顾客的需要,或者 软件无法在规定的时间里完工。
方法
⑴首先调查组织机构情况 包括了解该组织的部门组成情况,各部门的职能等, 为分析信息流程做准备。 ⑵然后调查各部门的业务活动情况 包括了解各个部门输入和使用什么数据,如何加工 处理这些数据,输出什么信息,输出到什么部门, 输出结果的格式是什么。 ⑶协助用户明确对新系统的各种要求 包括信息要求、处理要求、完全性与完整性要求。 ⑷确定新系统的边界 确定哪些功能由计算机完成或将来准备让计算机完 成,哪些活动由人工完成。由计算机完成的功能就 是新系统应该实现的功能。
详细分析
从广义上理解:需求分析包括需求的获取、分析、规格说 明、变更、验证、管理的一系列需求工程。 狭义上理解:需求分析是指,需求的分析及定义过程。 一、为什么要需求分析 需求分析就是分析软件用户的需求是什么。如果投入大量 的人力,物力、财力、时间,开发出的软件却没人要,那所有的 投入都是徒劳。如果费了很大的精力,开发一个软件,最后却 不满足用户的要求,从而要重新开发过,这种返工是让人痛心 疾首的。(相信大家都有体会)比如,用户需要一个for Linux的软 件,而你在软件开发前期忽略了软件的运行环境,忘了向用户 询问这个问题,而想当然的认为是开发for Windows的软件,当 你千辛万苦地开发完成向用户提交时才发现出了问题,那时候 你是欲哭无泪了,恨不得找块豆腐一头撞死。 需求分析之所以重要,就因为他具有决策性 方向性 策 决策性,方向性 决策性 方向性,策 略性的作用,他在软件开发的过程中具有举足轻重的地位。大 略性 家一定要对需求分析具有足够的重视。在一个大型软件系统的 开发中,他的作用要远远大于程序设计。
(2)用户的需求是动态变化的 ) 对于一个大型而复杂的软件系统,用户 很难精确完整地提出它的功能和性能要求。 一开始只能提出一个大概、模糊的功能, 只有经过长时间的反复认识才逐步明确。 有时进入到设计、编程阶段才能明确,更 有甚者,到开发后期还在提新的要求。这 无疑给软件开发带来困难。
Байду номын сангаас
(3)系统变更的代价呈非线性增长 ) 需求分析是软件开发的基础。假定在该阶 段发现一个错误,解决它需要用一小时的时间, 到设计、编程、测试和维护阶段解决,则要花 2.5、5、25、100倍的时间。 因此,对于大型复杂系统而言,首先要进 行可行性研究。开发人员对用户的要求及现实 环境进行调查、了解,从技术、经济和社会因 素三个方面进行研究并论证该软件项目的可行 性,根据可行性研究的结果,决定项目的取舍。
特点
(1)用户与开发人员很难进行交流 ) 在软件生存周期中,其它四个阶段都是面 向软件技术问题,只有本阶段是面向用户的。 1,可行性分析; 需求分析是对用户的业务活动进行分析,明确 2,项目开发计划; 在用户的业务环境中软件系统应该"做什么"。 3,需求分析; 但是在开始时,开发人员和用户双方都不能准 4,概要及详细设计; 确地提出系统要"做什么?"。因为软件开发人 5,编写代码、软件测试和 软件维护; 员不是用户问题领域的专家,不熟悉用户的业 务活动和业务环境,又不可能在短期内搞清楚; 而用户不熟悉计算机应用的有关问题。由于双 方互相不了解对方的工作,又缺乏共同语言, 所以在交流时存在着隔阂。
6、 开发人员要对需求及产品实施提出建议和解决方案 通常客户所说的“需求”已经是一种实际可行的实施 方案,分析人员应尽力从这些解决方法中了解真正的业 务需求,同时还应找出已有系统与当前业务不符之处, 以确保产品不会无效或低效;在彻底弄清业务领域内的 事情后,分析人员就能提出相当好的改进方法,有经验 且有创造力的分析人员还能提出增加一些用户没有发现 的很有价值的系统特性。 7、 描述产品使用特性 客户可以要求分析人员在实现功能需求的同时还注 意软件的易用性,因为这些易用特性或质量属性能使客 户更准确、高效地完成任务。例如:客户有时要求产品 要“界面友好”或“健壮”或“高效率”,但对于开发人员来 讲,太主观了并无实用价值。正确的做法是,分析人员 通过询问和调查了解客户所要的“友好、健壮、高效所 包含的具体特性,具体分析哪些特性对哪些特性有负面 影响,在性能代价和所提出解决方案的预期利益之间做 出权衡,以确保做出合理的取舍。
四、需求分析的方法 需求分析的方法有很多。这里只强调原型化方法 原型化方法,其它的方法如:结构 原型化方法 化方法,动态分析法等都不常用,这里不做讨论。 原型化方法是十分重要的。原型就是软件的一个早期可运行的版本,它 实现了目标系统的某些或全部功能。 原型化方法就是尽可能快地建造一个粗糙的系统,这系统实现了目标系 统的某些或全部功能,但是这个系统可能在可靠性,界面的友好性或其他方 面上存在缺陷。建造这样一个系统的目的是为了考察某一方面的可行性,如 算法的可行性,技术的可行性,或考察是否满足用户的需求等。如,为了考 察是否满足用户的要求,可以用某些软件工具快速的建造一个原型系统,这 个系统只是一个界面,然后听取用户的意见,改进这个原型。以后的目标系 统就在原型系统的基础上开发。 原型主要有三种类型:探索型,实验型,进化型。探索型 探索型:目的是要弄 探索型 清楚对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性。实 实 验型:用于大规模开发和实现前,考核方案是否合适,规格说明是否可靠。 验型 进化型:目的不在于改进规格说明,而是将系统建造得易于变化,在改进原 进化型 型的过程中,逐步将原型进化成最终系统。 在使用原型化方法是有两种不同的策略:废弃策略,追加策略。废弃策 废弃策 略:先建造一个功能简单而且质量要求不高的模型系统,针对这个系统反复 进行修改,形成比较好的思想,据此设计出较完整,准确,一致,可靠的最 终系统。系统构造完成后,原来的模型系统就被废弃不用。探索型和实验型 属于这种策略。 追加策略:先构造一个功能简单而且质量要求不高的模型系统,作为最 追加策略 终系统的核心,然后通过不断地扩充修改,逐步追加新要求,发展成为最终 系统。进化型属于这种策略。
3、 分析人员必须编写软件需求报告 分析人员应将从客户那里获得的所有信息进行整理,以区分业务 需求及规范、功能需求、质量目标、解决方法和其他信息。通过这些 分析,客户就能得到一份“需求分析报告”,此份报告使开发人员和客 户之间针对要开发的产品内容达成协议。报告应以一种客户认为易于 翻阅和理解的方式组织编写。客户要评审此报告,以确保报告内容准 确完整地表达其需求。一份高质量的“需求分析报告”有助于开发人员 开发出真正需要的产品。 4、 要求得到需求工作结果的解释说明 分析人员可能采用了多种图表作为文字性“需求分析报告”的补充 说明,因为工作图表能很清晰地描述出系统行为的某些方面,所以报 告中各种图表有着极高的价值;虽然它们不太难于理解,但是客户可 能对此并不熟悉,因此客户可以要求分析人员解释说明每个图表的作 用、符号的意义和需求开发工作的结果,以及怎样检查图表有无错误 及不一致等。 5、 开发人员要尊重客户的意见 如果用户与开发人员之间不能相互理解,那关于需求的讨论将会 有障碍。共同合作能使大家“兼听则明”。参与需求开发过程的客户有 权要求开发人员尊重他们并珍惜他们为项目成功所付出的时间,同样, 客户也应对开发人员为项目成功这一共同目标所做出的努力表示尊重。
二、需求分析的任务 简言之,需求分析的任务就是解决“做什么”的问题,就是要全面地 理解用户的各项要求,并准确地表达所接受的用户需求。 三、需求分析的过程 需求分析阶段的工作,可以分为四个方面:问题识别,分析与综合, 制订规格说明,评审。 问题识别:就是从系统角度来理解软件,确定对所开发系统的综合 问题识别 要求,并提出这些需求的实现条件,以及需求应该达到的标准。这些 需求包括:功能需求(做什么),性能需求(要达到什么指标),环境需求 (如机型、操作系统等),可靠性需求(不发生故障的概率),安全保密需 求,用户界面需求,资源使用需求(软件运行是所需的内存,CPU等), 软件成本消耗与开发进度需求,预先估计以后系统可能达到的目标。 分析与综合:逐步细化所有的软件功能,找出系统各元素间的联系, 分析与综合 接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分, 增加需要部分。最后,综合成系统的解决方案,给出要开发的系统的 详细逻辑模型(做什么的模型)。 制订规格说明书:即编制文档,描述需求的文档称为软件需求规格 制订规格说明书 说明书。请注意,需求分析阶段的成果是需求规格说明书,向下一阶 段提交。 评审:对功能的正确性,完整性和清晰性,以及其它需求给予评价。 评审 评审通过才可进行下一阶段的工作,否则重新进行需求分析。
任务
一、确定对系统的综合要求 虽然功能需求是对软件系统的一项基本需求, 但却并不是唯一的需求,通常对软件系统有下述几 方面的综合要求。 1.功能需求 2.性能需求 3.可靠性和可用性需求 4.出错处理需求 5.接口需求 6.约束 7.逆向需求 8.将来可能提出的要求
二、分析系统的数据要求 任何一个软件本质上都是信息处理系统,系统必须处理的 信息和系统应该产生的信息很大程度上决定了系统的面貌,对 软件设计有深远的影响,因此,必须分析系统的数据要求,这 是软件分析的一个重要任务。分析系统的数据要求通常采用建 立数据模型的方法。 复杂的数据由许多基本的数据元素组成,数据结构表示数 据元素之间的逻辑关系。 数据(data)是描述事物的符号记 利用数据字典可以全面地定义数据,但是数据字典的缺点 录。模型(Model)是现实世界的抽 是不够直观。为了提高可理解性,常常利用图形化工具辅助描 象。数据模型(Data Model)是数 述数据结构。 据特征的抽象,是数据库管理的教 三、导出系统的逻辑模型 学形式框架。数据库系统中用以提 综合上述两项分析的结果可以导出系统的详细的逻辑模型, 供信息表示和操作手段的形式构架。 通常用数据流图、E-R图、状态转换图、数据字典和主要的处理 数据模型包括数据库数据的结构部 算法描述这个逻辑模型。 分、数据库数据的操作部分和数据 四、修正系统开发计划 库数据的约束条件。 根据在分析过程中获得的对系统的更深入的了解,可以比较 准确地估计系统的成本和进度,修正以前定制的开发计划。