软件需求分析方法56232
软件需求分析方法

软件需求分析方法软件需求分析是软件开发过程中的重要环节,它通过系统化的方法和工具,对用户需求进行分析和抽象,将用户需求转换为软件需求规格说明书,为软件开发提供明确的目标和方向。
在软件需求分析过程中,一些常用的方法有以下几种:1. 需求采集:需求采集是软件需求分析的起点,它主要通过与用户的沟通和访谈,收集用户的需求。
在需求采集过程中,可以采用面对面的交谈、问卷调查、观察等方法,以确保准确获取用户的需求。
采集的需求可以分为功能性需求和非功能性需求,并采用需求列表、用例图、用户故事等形式进行记录和整理。
2. 需求分析:需求分析是将采集来的需求进行分析和抽象的过程。
在需求分析过程中,可以采用功能分解、数据流图、状态图等方法,以将需要系统实现的功能分解为更具体的模块或子功能,并进行详细的描述和定义。
同时,对用户需求进行可行性分析,确定是否能够实现用户需求,并考虑软件系统的可靠性、可扩展性等方面。
3. 需求建模:需求建模是将需求进行进一步抽象和整理的过程。
在需求建模过程中,可以使用UML(统一建模语言)等工具,采用用例图、活动图、类图等方式对系统的需求进行建模和描述。
用例图描述了系统与外界的交互,活动图描述了系统的流程和交互,类图描述了系统中各个类之间的关系。
4. 需求验证:需求验证是验证需求的正确性和完整性的过程。
在需求验证过程中,可以采用原型演示、模拟测试、用户验收测试等方法,以验证需求是否满足用户的期望,并及时发现和纠正需求中的问题和缺陷。
5. 需求管理:需求管理是对需求进行跟踪和管理的过程,以确保软件开发的目标和进度。
需求管理包括需求变更管理、版本管理和配置管理等方面。
需求变更管理是管理需求变更的过程,包括需求审批、变更需求分析和实施变更等环节。
版本管理是管理需求版本的过程,包括需求的版本控制、变更追踪和回归测试等环节。
配置管理是管理需求配置的过程,包括需求管理工具的选择和配置、需求跟踪和跟踪需求变更等环节。
软件需求分析的方法与工具

软件需求分析的方法与工具在软件开发过程中,软件需求分析是非常重要的一环。
它收集和确定了软件产品的需求,以及开发应用程序的约束。
软件需求分析确保软件产品能够满足用户的需求和期望,同时也确保开发人员能够在预定的时间和预算内完成项目。
为了实现软件需求分析,人们需要采用一定的方法和工具,下面将详细讨论。
软件需求分析的方法软件需求分析是一项复杂的任务,需要使用科学、准确的方法来执行。
以下是常用的软件需求分析方法:1. 用户需求分析:这种方法强调用户的角度,需要收集用户的需求、观点和期望,以便设计出一个满足用户需求的软件产品。
这一方法通过用户需求调研、访谈和问卷调查等方式来实现。
2. 系统需求分析:这种方法强调整个系统的视角,需要收集整个系统的方方面面的需求,以便设计出一个功能完整、协调一致的软件产品。
这一方法通过分析用户行为、业务流程和已有系统等方式来实现。
3. 面向对象方法:这种方法强调对系统的抽象和组合,依靠面向对象程序设计技术,将软件系统分为对象集合,从而可以更加方便的组织和管理系统的需求。
4. 原型法:这种方法通常用于为用户提供一个演示、试用软件产品的机会,将软件产品的功能呈现出来,以便指导后续的需求分析和设计工作。
原型法通过迭代的方式逐步完善软件产品的功能,并得到用户的反馈导向软件产品的最终设计。
软件需求分析的工具为了更好的执行软件需求分析,我们需要使用一些工具。
这里我们介绍一些常用的软件需求分析工具:1. 绘图工具:能够帮助我们理解软件的业务流程和系统结构。
例如Microsoft Visio、StarUML等。
2. 会议记录工具:帮助记录软件分析会议的内容、参与者及各方意见、决策等信息。
例如Google Docs、Confluence等。
3. 需求追踪工具:帮助跟踪和管理软件需求,以确保软件产品开发的符合用户需求、时间表和预算。
例如JIRA、Trello等,这些工具还具备协同功能,可以协助开发团队进行软件产品开发。
软件需求分析的技巧与方法

软件需求分析的技巧与方法软件需求分析是软件开发过程中重要的一步,负责将客户需求转化成能够被研发团队理解并实现的具体需求文档。
对于一个软件项目的成功实现,需求分析的质量和清晰度至关重要。
下面就来介绍一些软件需求分析的技巧和方法。
一、理解用户需求软件项目是为了满足用户需求而存在的,只有清晰地理解用户的需求,才能设计出符合用户期望的软件系统。
首先,需要深入了解用户的工作流程和业务需求,可以与客户进行沟通和交流,以便收集他们的反馈和建议。
其次,可以参考同行业公司的产品,在类似的市场环境中探索用户需求和期望。
最后,还可以结合诸多相关信息、文档和专业知识,持续完善对用户需求的认识。
二、规范需求描述需求描述是指将用户的业务需求转化为能够被研发人员理解和实现的具体需求文档。
在规范需求描述的过程中,需要注意以下问题:1、描述清楚业务流程和功能实现,便于研发人员理解和实现;2、定义需求的优先级和紧急程度,确保在有限的时间内实现高价值的需求;3、限定需求的边界和范围,避免需求的不明确和模糊导致的实现问题;4、尽量客观和详细地描述需求,避免解释不清或引起歧义。
三、利用UML图UML(Unified Modeling Language)是软件开发中常用的建模语言,可以用于需求分析、系统设计、开发、测试等多个阶段。
在需求分析阶段,UML图可以协助业务人员和技术人员更深入地理解需求。
UML图包括用例图、类图、时序图、活动图、状态图等,用例图可以将用户需求的核心功能描述清晰地展示出来,有助于业务和技术人员共同认识需求的关键点。
四、建立原型在软件需求分析中,建立原型是一个宝贵的工具,原型能够帮助客户更清楚地了解某些功能细节,有助于业务需求和功能实现的验证、调整和不断完善。
原型不用像最终产品一样具备完整的功能,而是重点展现作为样板的核心需求,以达到清晰、明确、具备操作体验的目标。
当客户在原型功能上提出意见时,我们可以及时修改原型,进一步完善需求文档。
如何进行软件需求分析

如何进行软件需求分析在软件开发过程中,需求分析是非常重要的一环。
它的主要目的是理解用户的需求,以此为基础确定软件产品的功能和特性,制定出相应的开发计划。
一个成功的软件项目往往都需要经过严格的需求分析和评估,并且开发过程中需要保持与用户之间的沟通交流,同时还需要在项目生命周期中持续地关注需求的变化和迭代。
那么如何进行软件需求分析呢?以下是几点需要注意的地方:1.确定需求在进行软件需求分析的过程中,首先需要明确产品的业务、目的以及所需实现的功能。
了解用户对软件的使用目的、操作流程、业务流程以及关键指标,可以帮助开发团队设计出更符合用户需求的产品功能。
同时,也可以帮助公司保证产品的市场竞争力,满足客户的需求,增加客户忠诚度和满意度。
2.分析和澄清需求确定了软件产品的基本需求之后,需要进一步的分析和澄清需求。
这个过程中,需要讨论和协商,深入理解和了解客户需求,并帮助客户澄清和完善需求。
为了尽可能准确地了解客户需求,需要使用多种方法和技术,例如访谈、问卷、原型、需求文档等。
这样可以确保开发团队和客户都能完全理解软件产品的需求。
3.详细分解和规划确定并澄清了基本需求之后,需要将需求具体分解到每个阶段和部分上,建立起更详细的需求文档。
同时还需要明确依赖关系,确定开发流程,规划每个软件开发阶段所需要完成的任务和里程碑。
这个过程通常需要包括详细的技术分析和设计文档,在此基础上可以建立一个详细而有效的项目计划。
4.持续跟进和整合需求分析是一个长期的过程,需要持续关注并响应需求变化。
在开发过程中,需要和客户建立起及时沟通的机制,了解他们的反馈和需求变化。
同时,还需要和开发团队协作,及时调整和整合需求、设计和代码。
这样可以确保软件产品不断优化和精益化、满足客户的需求。
总的来说,软件需求分析是非常重要的一环。
它可以帮助开发团队理解客户需求、规划开发流程、确保项目进度和质量、提高产品的市场竞争力。
对于企业而言,良好的软件需求分析可以提高企业的生产效率、提高用户满意度和忠诚度,增加企业的收入和利润。
软件开发岗位实习报告中的软件需求分析方法

软件开发岗位实习报告中的软件需求分析方法一、引言在软件开发过程中,软件需求分析是至关重要的一环。
它是指通过与用户和相关利益相关者的沟通,以及对相关业务和系统的理解,把用户需求转化为明确、具体、可操作的软件需求规格说明书的过程。
在软件开发岗位实习报告中,对软件需求分析方法进行详细介绍是非常重要的,下面将分别从需求获取、需求分析与建模以及需求规范化三个方面来进行讲解。
二、需求获取需求获取是软件需求分析的第一步,主要目的是通过与用户和利益相关者的沟通获取对系统功能、性能和一般特征的详细描述。
需要运用一些常用的需求获取技术和方法,包括但不限于:1.面谈:与用户和相关利益相关者进行面对面的交流,深入了解他们的需求和期望。
2.文档分析:对已有的相关文档进行仔细阅读和分析,理解业务背景和需求。
3.问卷调查:通过编写并发送问卷,收集用户和利益相关者的意见和建议。
4.场景分析:通过现场观察或模拟场景,了解软件系统的运行环境和关键流程。
三、需求分析和建模需求获取之后,需要对所获取的软件需求进行分析和建模。
这一步骤旨在将用户的需求转化为系统的需求模型或规范,主要包括以下几个环节:1.需求分析:对需求进行整理、分类、分析和澄清,确保理解正确,消除模糊和冲突之处。
2.需求建模:运用适当的建模工具和技术,将需求转化为系统模型,如用例图、活动图、时序图等。
3.需求验证:通过与用户和利益相关者的反复确认,确保所建立的需求模型是准确且完整的,符合用户的期望。
四、需求规范化需求规范化是对软件需求进行准确且完整的描述,目的是为了让开发人员和测试人员能够理解和实现这些需求。
在实习报告中,对需求规范化的方法进行详细讲解是非常重要的,下面列举几种常用的需求规范化方法:1.自然语言描述:使用自然语言对需求进行详细的文字描述,包括功能需求、非功能需求、性能需求等。
2.用例规范:通过编写用例描述,描述软件系统与用户之间的交互过程,如用例名称、前置条件、基本流程、替代流程等。
如何进行有效的软件需求分析

如何进行有效的软件需求分析软件需求分析是软件开发过程中至关重要的一步,它关乎项目的成功与否。
在进行软件需求分析时,需要采取一系列有效的方法和技巧,确保准确理解用户需求,明确软件功能和特性,并建立良好的沟通和合作关系。
以下是如何进行有效的软件需求分析的几个关键步骤:第一步,收集需求信息。
收集需求信息是软件需求分析的基础工作,它涉及与用户、业务专家和其他项目相关人员进行面对面交流。
通过采访、观察和问卷调查等方式,了解用户的业务流程、需求、期望和限制条件。
同时,还需要收集现有系统的文档和相关数据,以便更好地理解用户的业务需求和系统架构。
第二步,明确需求优先级。
在需求分析阶段,往往会面临需求量大、需求复杂的情况。
为了确保工作的高效进行,需求分析团队应该与用户和项目经理一起明确需求的优先级。
优先级的确定应该基于业务价值、项目约束和用户的需求满足程度等因素。
第三步,创建需求文档。
需求文档是软件需求分析成果的重要表现形式。
在创建需求文档时,需要将需求明确、一致、可追踪和可验证。
需求文档通常包括需求描述、功能列表、用例模型、领域模型和状态转换图等。
此外,还需要定义不同类型的需求,如功能性需求、非功能性需求和约束性需求等。
第四步,验证需求。
需求验证是软件需求分析的重要环节。
它主要通过需求跟踪矩阵、原型、模型和实验等方式,确保需求描述准确无误,并与用户需求一致。
在需求验证过程中,需要与用户和相关利益相关者进行沟通和协商,及时修订和调整需求。
第五步,建立良好的沟通和合作关系。
软件需求分析是一个协同工作的过程,需要有效的沟通和合作。
在需求分析过程中,需求分析人员应该与用户保持紧密合作,建立信任关系,促进信息的交流和共享。
同时,还应与项目团队和其他相关方进行有效的沟通,确保需求的理解和实施一致。
除了以上几个关键步骤外,还有几个值得重视的技巧和实践方法:首先,需求追踪是一个常见的问题。
需求追踪可以帮助团队及时了解需求状态和变更,确保需求的可追溯性和可验证性。
软件需求分析的方法
软件需求分析的方法在软件开发过程中,软件需求分析是非常重要的一步,它是确定软件功能和性能的过程,确定需求的准确性和完整性,从而为软件开发提供明确的目标和方向。
本文将讨论几种软件需求分析的方法。
第一种方法:需求采集技术需求采集技术是软件需求分析的关键,通过这种方法,采集用户需求和期望,以确定软件开发的目标。
这种方法包括以下几种:1.1 面谈面谈是和用户直接进行交流,询问用户的需求和期望,了解用户对软件的使用场景和工作流程的了解。
面谈可以在小组会议或个人访谈中进行。
1.2 问卷调查问卷调查是对用户进行系统化的问卷调查,目的是收集用户需求和期望。
在这种方法中,需要将问卷分发给用户,并确保问卷的可靠性和有效性。
1.3 观察观察是观察用户在现实生活中如何使用软件,从而了解软件的使用场景和用户需求。
观察可以是直接观察,也可以是通过影像记录。
1.4 原型原型是通过建立一个模型来展示软件功能和性能的方法。
这种方法可以帮助用户更好地理解软件的功能,以确定软件开发的目标。
第二种方法:阶段性需求分析法阶段性需求分析法是基于软件开发周期的不同阶段,对需求进行分析和整理。
这种方法包括以下几种:2.1 技术可行性分析技术可行性分析是通过对软件开发的技术可行性进行分析,以确定软件开发的目标,包括功能上的可行性和技术上的可行性。
2.2 要求的概括要求的概括就是将用户需求进行归纳和,以确定软件开发的目标。
这个过程中需要精确地确定软件功能和性能。
2.3 定义功能和用例定义功能和用例可以帮助我们对软件开发的目标进行更好地理解,因为它将软件的核心功能转化为具体的使用场景和操作步骤。
2.4 类和对象的定义类和对象的定义是将软件开发的目标转化为系统的结构和组成部分,以确定软件开发的方向。
第三种方法:信息建模技术信息建模技术是对信息进行分析和建模的过程,以确定软件的核心需求和体系结构。
这种技术包括以下几种:3.1 数据流数据流是一种信息建模技术,用于表示软件系统中数据的流动和转换,以确定软件系统的结构和组成部分。
软件需求分析方法与技巧
软件需求分析方法与技巧软件需求分析是软件开发中非常关键的一项工作,合理有效的分析可以保证软件开发的质量和效率。
在需求分析过程中,有很多方法和技巧可以应用,本文将详细介绍其中的一些。
一、需求分析的基本流程软件需求分析的基本流程包括:需求识别与获取、需求分析与抽象、需求确认与规格化以及需求变更与跟踪。
在这一过程中,具体包括以下步骤:1. 需求识别与获取:确定软件系统的用户、核心业务以及其它相关信息等。
2. 需求分析与抽象:对用户需求进行详细的分析和抽象,确定各种功能和性能需求。
3. 需求确认与规格化:与用户和相关人员确认需求,并将需求进行系统化和规格化,输出需求文档。
4. 需求变更与跟踪:需求变更的出现是软件开发的常态,因此需要建立变更控制机制,并及时跟踪记录变更过程。
二、需求收集的方法需求收集是软件需求分析中的第一步。
为了获取准确的需求信息,可以采用以下方法:1. 问卷调查法:通过编写调查问卷对目标用户进行调查,收集用户的需求和反馈信息。
2. 专家谈话法:通过面访系统使用者、系统开发人员和有关领域的专家,了解他们对系统的期望和需求。
3. 多种方法结合法:结合以上方法,使用多种渠道获取用户需求和相关信息,提高收集效率和准确性。
三、需求分析的技巧软件需求分析需要进行深入且全面的分析,具体分析方法和技巧如下:1. 数据流分析法:通过对系统数据流进行分析,确定数据流的来源、去向和处理情况,了解各个模块之间的数据关系,为系统设计提供基础。
2. 功能分析法:主要研究系统的功能需求,分解系统功能结构,提取应用场景,确定系统功能的先后次序,指导设计。
3. 场景分析法:对系统的具体应用场景进行深入分析,阐述用户操作和系统反应的详细过程,从而更好地把握功能需求。
4. 竞品分析法:对类似领域或类似应用场景的软件产品进行比较和分析,学习其优秀的功能特点,并针对性地改进系统功能。
四、需求规格化的方法在需求分析的过程中,需要将冗杂的需求信息进行梳理和组织,输出可读性、稳定性和可维护性好的文档。
软件需求分析方法
软件需求分析方法
软件需求分析是软件开发过程中的一个重要步骤,主要目的是对软件需求进行分析和整理,明确需求,为软件开发和设计提供依据。
以下是常用的软件需求分析方法:
1. 了解问题领域:深入了解用户需求、业务流程、相关技术和标准等,对问题领域进行全面的了解。
2. 收集需求:通过访谈、问卷调查、观察等方式收集用户的需求,包括功能需求、性能需求、界面需求等。
3. 需求分类和整理:对收集到的需求进行分类和整理,将其按照功能模块、优先级等进行归类,确定核心需求和次要需求。
4. 需求分析和建模:使用需求建模工具,如用例图、活动图、时序图等,对需求进行进一步的分析和建模,明确功能和过程。
5. 需求验证:与用户进行沟通和确认,验证需求的准确性和可行性,确保需求与用户的期望一致。
6. 需求变更控制:对需求变更进行管理和控制,对已经确认的需求进行版本控制,避免需求无限增加而导致开发过程混乱。
7. 编写需求文档:将需求进行文档化,编写需求说明书或需求规格说明书,确保需求的完整性、一致性和可追溯性。
8. 需求优化:在需求分析的过程中,对于不合理或不可行的需求进行优化和调整,以满足用户的需求和实际情况。
以上是一些常用的软件需求分析方法,具体的方法和步骤可以根据具体的项目和需求进行适当调整和补充。
软件需求分析方法与技巧
软件需求分析方法与技巧随着现代技术的不断发展,软件成为了企业和个人必不可少的工具之一。
为了满足用户的需求,软件需求分析成为了软件开发过程中至关重要的步骤。
在这篇文章中,我们将介绍软件需求分析的方法与技巧,帮助您更好地理解并实践软件需求分析。
一、需求分析的前期准备在开始软件需求分析之前,需要进行一系列前期准备工作。
首先,明确软件投入使用的目的和要求,制定一个合理的需求目标和范围;其次,确定项目的时间、质量和成本的要求;接着,收集用户的需求和建议,并建立用户代表沟通机制,以此确保软件开发的方向和用户需求相符,并保持有效的沟通。
二、需求分析的具体步骤1.需求收集:需求收集是需求分析的第一步,它是指通过访谈、问卷调查等方式收集用户需求的过程。
在需求收集中,需要确定用户的需求和期望,分析现有的问题和挑战,并收集用户对于软件的建议和期望。
2.需求分析:需求分析是对收集的数据进行分析和整理,以明确各种需求之间的关系和优先级。
需求分析的具体方法包括功能分解法、数据流图法、虚拟原型法等等。
3.需求规格说明:需求规格说明是将需求分析的结果逐一列举出来,并加以细化说明,包括需求的优先级、开发时间和实现难度等等。
4.需求确认:需求确认是对已经完成的需求提出问题和建议,并进一步完善和优化需求规格说明。
它需要通过用户验收、系统测试等方式进行。
三、需求分析的常用技巧1.场景故事法:通过场景故事法能够更直观地帮助分析软件的使用场景和用户需求,从而提高需求收集的质量。
通过讲述一个具体的场景故事,让用户直观地感受软件的功能和使用方式。
2.头脑风暴法:头脑风暴法是一种刺激创造力、提高团队思维的方法,能够收集更多的用户需求和建议。
在头脑风暴中,通过自由讨论和提出意见的方式,寻求一致的想法和建议。
3.原型法:原型法是一种将软件系统的需求和技术实现联系起来的方法,以此快速验证软件需求的正确性和与用户需求的一致性。
原型可以通过绘制草图、PowerPoint模型等形式确定软件界面及功能,最终优化软件的使用体验。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件需求分析方法软件需求分析(Software Reguirement Analysis)是研究用户需求得到的东西,完全理解用户对软件需求的完整功能,确认用户软件功能需求,建立可确认的、可验证的一个基本依据。
软件需求分析是一个项目的开端,也是项目实施最重要的关键点。
据有关的机构分析结果表明,我们设计的软件产品存在不完整性、不正确性等问题80%以上是需求分析错误所导致的,而且由于需求分析错误造成根本性的功能问题尤为突出。
因此,一个项目的成功软件需求分析是关键的一步。
一、软件需求分析理论如果我们用数学方法来描述软件需求分析,可以将一个应用软件定义为S,可能应用软件涉及功能性问题非常广,我们用抽象化理论分析,可以划分为各个功能域,可以用D1、D2、… Dn表示,那么,我们可以用一个表达式描述为S={D1,D2,D3,…Dn}但是,功能域Di依然存在着有若干个问题P1、P2、P3、… Pm组成,并且每个功能对应于子系统中的一个软构件,我们可以表示为Di={P1,P2,P3,…Pm}同样,功能Pj有若干个行为F1、F2、F3、… Fk,每个行为对应于软构件中的实现方法Pj={F1,F2,F3,…Fk}一个软件包含了所有功能的集合,同时包含了实现所有功能的所有方法和算法描述。
需求分析是依据于用户需求,经过需求问题识别,进行分析、消化与综合,制订规格说明,评审,分为四个阶段,形成用户需求与设计同步,设计满足用户需求目标。
需求分析方法始终贯穿着吸收、同化、贯彻方法和手段,用商业化行为解决需求与实现中存在的矛盾,解决用户需求与商业化产品融通,解决规与个性化追求。
二、软件需求分析目标软件需求分析的主要实现目标:1)对实现软件的功能做全面的描述,帮助用户判断实现功能的正确性、一致性和完整性,促使用户在软件设计启动之前周密地、全面地思考软件需求;2)了解和描述软件实现所需的全部信息,为软件设计、确认和验证提供一个基准;3)为软件管理人员进行软件成本计价和编制软件开发计划书提供依据;需求分析的具体容可以归纳为六个方面:软件的功能需求,软件与硬件或其他外部系统接口,软件的非功能性需求,软件的反向需求,软件设计和实现上的限制,阅读支持信息。
软件需求分析应尽量提供软件实现功能需求的全部信息,使得软件设计人员和软件测试人员不再需要需求方的接触。
这就要求软件需求分析容应正确、完整、一致和可验证。
此外,为保证软件设计质量,便于软件功能的休整和验证,软件需求表达无岔意性,具有可追踪性和可修改性。
2.1、软件功能需求软件的功能需整个需求分析最主要、最关键和最复杂的部分,它描述软件的各种可能的条件下,对所有可能输入的数据信息,应完成那些具体功能,产生什么样的输出。
描述软件功能需应注意下面几点:1)功能需求的完整性和一致性对功能的描述应包含与功能相关的信息,并应具有在的一致性(即各种描述之间不矛盾、不冲突)。
应注意以下几点:(1)给出触发功能的各种条件(如:控制流、运行状态、运行模式等);(2)定义各种可能性条件下的所有可能的输入(包括合法的输入空间和非法的输入空间);(3)给出各种功能间可能的相互关系(如各个功能间的控制流、数据流、信息流,功能运行关系:顺序、重复、选择、并发、同步);(4)给出功能性的主要级别(如:基本功能、可由设计者选择逐步实现的功能、可由设计者改变实现的功能等);(5)尽可能不使用“待定”这样的词。
所有含有待定容的需求都不是完整的文件,如果出现待定的部分,必须进行待定部分容说明,落实负责人员、落实实施日期。
2)功能描述的无岔意性和可追踪性需求功能描述的无岔意性、可追踪性和规化:(1)功能描述必须清晰地描述出怎样输入到怎样输出,并且输入、输出描述应对应有数据流描述、控制流描述图,这些描述必须与其它地方描述一致;(2)可以用语言、方程式、决策表、矩阵或图等对功能的描述。
如果选用语言描述必须使用结构化的语言,描述前必须说明该步骤(或子功能)的执行是顺序,选择,重复,还是并发,然后说明步骤逻辑。
整个描述必须单入单出。
(3)描述时,每一个功能名称和参照编号必须唯一,且不要将多个功能混在一起进行描述,这样便于功能的追踪和修改。
(4)功能描述应注意需求说明和程序设计的区别。
需求设计仅仅是软件的功能设计,它给出软件运行的的外部功能描述,以及为了实现这一外部功能必须做哪些事情(采用和种数据结构,定义多个模块,接口间的接口等)是设计阶段的事情,功能描述不应涉及到那些细节问题,以避免给软件设计带来不必要的约束。
2.2、软件与硬件或其他外部系统接口软件与硬件或其它外部系统接口包括下述容:(1)人机接口:说明输入、输出的容、屏幕安排、格式等要求;(2)硬件接口:说明端口号,指令集,输入输出信号的容与数据类型,初始化信号源,传输通道号和信号处理方式。
(3)软件接口:说明软件的名称、助记符、规格说明、版本号和来源;(4)通讯接口:指定通讯接口和通讯协议等描述。
2.3、软件的非功能性需求软件非功能性需指软件性能指标,容限等功能以外的需求。
一般指下述容:(1)时间需求:输入、输出频率,输入、输出响应时间,各种功能恢复时间等;(2)处理容限、精度、采样参数的分辨率,误差处理等;(3)可靠性的MTBF要求,可维护性、安全性要求等。
(对可能的不正常的输入给以正常响应是可靠性的重要容,这属于功能性需求。
)2.4、软件反向需求软件的反向需求描述软件在那些情况下不能做什么。
这一条是随软件实际要求而定。
有两类情形需要采用反向需求的形式。
第一种情况:某些用户需求适宜采用反向形式说明,如数据安全性要求属于这类形式。
第二种情况:对一些可靠性和安全性要求较高的软件,有些必须描述软件不能做些什么。
如控制点火时序,我们必须交代清楚在那些情况下不能点火,否则会造成故障。
2.5、软件设计和实现上的限制软件设计和实现上的限制主要指对软件设计者的限制。
如软件运行环境的限制(选择计算机类型,使用配置,操作系统的限制等)、设计工具的限制(使用语言、执行的标准)和要求等。
2.6、阅读支持信息这部分容是为了更好的帮助我们理解用户需求,也是为了使需求便于修改和追踪。
其本身并不是对需求的描述,但它影响到需求分析的可读性,也属于需求分析的一个重要部分。
一般目录、需求背景信息、容索引、交叉引用表、注释等均属于这个部分的容。
三、软件需求分析人员组织软件需求分析其根本性问题是理解用户功能需求,由此软件需求分析实际上是与客户间交流过程完成的目标。
要求我们组织适当的参与人员进行交流活动。
需求分析是一个综合团队的工作,是在需求分析理论的指导下,对用户需要进行渐进方式逐步深化;通过不断变化方式形成具体约束;努力实现需求功能目标形成特色效果的商业化产品。
需求分析是一个商业行为,完全是一个商业化操作,要求有商业、技术等结合的团队共同合作,解决需求和设计的同步,设计符合需求。
项目涉及容,项目大小都需要我们考虑参加软件需求分析工作团退的人数,配置合理的参与人员。
一般我们必须有商务活动人员,项目管理人员,设计技术人员等参加,而且要求组织人员必须明确负责围,以及明确工作目标,保证实施的有效性。
四、软件需求分析方法为了保证项目的正常实施,并且能够顺利的完成,我们必须加强项目管理和重视项目分析工作。
我们只有从实际出发,切切实实地把握用户需求,把握用户需求目标,把握用户将来功能界定,保证我们开发工作正确性方向。
4.1、重点监控软件需求分析办法由于软件项目的特殊性和行业覆盖的广阔性,以及需求分析的高风险性,软件需求分析的重要性是不言而喻的,同时需求分析又的的确确难做。
其原因基本是由于以下情况造成的。
4.1.1、客户说不清楚需求有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。
例如全国各地的很多部门、机构、单位在进行应用系统以及网络建设时,客户方的办公人员大多不清楚计算机网络有什么用,更缺乏IT系统建设方面的专家和知识。
此时,用户就会要求软件系统分析人员替他们设想需求。
工程的需求存在一定的主观性,为项目未来建设埋下了潜在的风险。
4.1.2、需求自身经常变动根据以往的历史经验,随着客户方对信息化建设的认识和自己业务水平的提高,他们会在不同的阶段和时期对项目的需求提出新的要求和需求变更。
事实上,历史上没有一个软件的需求改动少于三次的!所以必须接受“需求会变动”这个事实,在进行需求分析时要懂得防患于未然,尽可能地分析清楚哪些是稳定的需求,哪些是易变的需求,以便在进行系统设计时,将软件的核心建筑在稳定的需求上,同时留出变更空间。
咨询监理方在需求分析的功能界定上担任一个中间、公平、公正的角色,所以也必须积极参与到需求分析的准备中来,以便协助客户方和承建方来界定“做什么”、“不做什么”的系统功能界限。
4.1.3、分析人员或客户理解有误软件系统分析人员不可能都是全才,更不可能是行业方面的专家。
客户表达的需求,不同的分析人员可能有不同的理解。
如果分析人员理解错了,可能会导致以后的开发工作劳而无功。
记得一则笑话,有个外星人间谍潜伏到地球刺探情报,它给上司写了一份报告:“主宰地球的是汽车。
它们喝汽油,靠四个轮子滚动前进,嗓门极大,双眼在夜里能射出强光……有趣的是,车里住着一种叫作‘人’的寄生虫,这些寄生虫完全控制了车。
”所以分析人员知识的专一性也会造成需求分析的误解和失败。
这时,咨询监理公司就必须根据实际的项目需求调研计划,提醒承建方加强业务了解程度和注重沟通技巧。
4.2、有效性软件需求分析三步法根据以往的工程经验,需求分析工作方法,应该定位在“三个阶段”(也称“三步法”)。
4.2.1、“访谈式Visitation”阶段这一阶段是和具体用户方的领导层、业务层人员的访谈式沟通,主要目的是从宏观上把握用户的具体需求方向和趋势,了解现有的组织架构、业务流程、硬件环境、软件环境、现有的运行系统等等具体情况、客观的信息。
建立起良好的沟通渠道和方式。
针对具体的职能部门以及各委办局,最好能指定本次项目的接口人。
实现手段:访谈、调查表格输出成果:调查报告、业务流程报告4.2.2、“诱导式Inducement”阶段这一阶段是在承建方已经了解了具体用户方的组织架构、业务流程、硬件环境、软件环境、现有的运行系统等等具体实际、客观的信息基础上,结合现有的硬件、软件实现方案,做出简单的用户流程页面,同时结合以往的项目经验对用户采用诱导式、启发式的调研方法和手段,和用户一起探讨业务流程设计的合理性、准确性、便易性、习惯性。
用户可以操作简单演示的DEMO,来感受一下整个业务流程的设计合理性、准确性等等问题,及时地提出改进意见和方法。
实现手段:拜访(诱导)、原型演示输出成果:调研分析报告、原型反馈报告、业务流程报告4.2.3、“确认式Afirm”阶段这一阶段是在上述两个阶段成果的基础上,进行具体的流程细化、数据项的确认阶段,这个阶段承建方必须提供原型系统和明确的业务流程报告、数据项表,并能清晰地向用户描述系统的业务流设计目标。