软件需求与软件需求规约

发表于:2023-1-18 10:33

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:菜谦    来源:CSDN

  1.需求与需求获取
  1)软件需求概念?
  软件需求以一种技术形式,描述一个产品/系统应该具有的功能、性能参数和其他性质。
  2)需求的概念?
  需求描述了待开发产品/系统应该具有的功能、性能或者其他性质。
  3)单一一个需求必须具备的5个性质?
  ①必要的,该需求是用户所要求的。
  ②无歧义的,该需要只能用一种方式解释。
  ③可测的,该需求可以进行测试
  ④可跟踪的,该需求可从一个开发阶段跟踪到另一个开发阶段。
  ⑤可测量的,该需求是可测量的。
  4)如何验证需求的5个基本性质?
  验证需求是不是歧义的,一般可采用需求复审。
  验证需求是不是可测的,可在标识任何所需要的数据和设施的基础上,开发一个测试概念。
  验证需求是不是可测量的,可通过检验一个特征是否存在,但需要考虑涉及、实现和测试阶段所发生的各种情况。
  5)需求分类?
  需求分为两大类:一类是功能需求,一类是非功能需求。
  非功能需求:又可以分为性能需求、外部接口需求、设计约束和质量属性需求。
  6)功能需求规约了哪些内容?
  功能需求规约了系统/系统构建必须执行的功能。
  功能需求除了陈述产品/系统要执行的功能外,还应围绕功能规约如下内容:
  ①关于该功能输入的所有假定、或为了验证该功能输入,有关检测的假定。
  ②与外部有关的,功能内任一动作次序。
  ③对异常条件的响应,包括所有内部或外部产生的错误。
  ④需求的时序和优先程度。
  ⑤功能之间的互斥规则。
  ⑥系统内部状态假定。
  ⑦为了该功能的执行,所需要的输入和输出的次序。
  ⑧用于转换或者内部计算所需要的公式等。
  7)在功能需求中,应该考虑哪些方面?
  在功能需求中,还应考虑功能源、功能共享数据、功能与外部界面的交互以及功能所使用的计算资源等。
  8)功能需求与非功能需求的关系?
  ①功能需求是整个需求的主体,即没有功能需求,就没有派生出来的其他功能需求,就没有性能、外部接口、设计约束、质量属性等非功能需求。
  ②非功能需求可作用于一个或者多个功能需求。
  9)性能需求规约内容?
  性能需求规约了一个系统或系统构件在性能上必须具有的一些特性。
  性能需求隐含了一些满足功能需求的设计方案,经常对设计会产生一些关键的影响。
  10)外部接口需求规约了哪些内容?
  外部接口需求规约了系统/系统构建必须与之交互的用户、硬件、软件或数据库元素,其中也可能规约交互格式、时间或其他因素等。
  11)外部接口需求的分类?
  ①用户接口:描述了软件系统和用户之间交互的逻辑特性,即这类接口需求应规约对给定用户所显示的数据,要从用户那里得到的数据,以及用户如何控制该用户接口。
  ②硬件接口:描述软件系统与硬件设备之间的交互,以实现对硬件设备的响应和控制,其中应描述所要求的支持和协议类型。
  ③软件接口:描述软件系统与其他软件产品进行的交互。
  ④通信接口:描述待开发系统与通信设施(例如局域网)之间的交互。如果通信需求包含了系统所必须使用的网络类型(TCP/IP、Microsoft windows NT、Novell),那么有关类型的信息就应包含在该需求描述中。
  ⑤内存约束:描述易失性存储和永久性存储的特性和限制,特别应描述他们是否被用于与一个系统中其他处理的通信。
  ⑥运行:描述用户如何使系统进入正常和异常的运行,以及在系统在正常和异常运行下如何与系统进行交互,应描述在用户组织中的运行模式,包括交互模式和非交互模式等。
  ⑦地点需求:描述系统安装以及如何调整一个地点,以及适应新的物理环境。
  12)设计约束需求规约了哪些内容?
  设计约束需求限制了软件系统/软件系统构建的设计方案的范围。例如必须用C++语言编写。
  13)对系统/产品开发而言,要确定设计约束,需要考虑哪些方面问题?(如何发现设计约束?)
  ①法规政策
  ②硬件限制:通常是技术上或者经济上的限制
  ③与其他应用的接口:例如,当外部系统处于一个特定的状态时,可能就要禁止新系统某些确定的操作。
  ④并发操作:通过考虑不同的源,并发的产生或接受数据的要求,发现设计约束。
  ⑤审计功能:通过考虑数据记录或事务记录的需要,发现设计约束。
  ⑥控制功能:通过考虑对系统进行远程控制,以及考虑对其他外部软件以及内部过程进行控制的需要,发现相应的设计约束。
  ⑦高级语言要求:通过考虑开发f中需要采用一种特定的高级语言来编写系统,发现设计约束。
  ⑧握手协议:通常用于硬件和通信控制软件,特别当给出特定的高级语言来编写兄台那个,以发现相应的设计约束。
  ⑨应用的关键程度:通过考虑是否存在潜在的人员损失、巨大财政损失,发现相应的设计约束。
  ⑩安全和保密:通过考虑系统的安全要求,发现相应的设计约束。保密需求通常涉及身份验证、授权和加密等。
  14)设计约束与其他需求最主要的区别?
  必须予以满足,许多设计约束将对软件的规划、所需要的成本和工作产生直接影响。
  15)质量属性需求规约了哪些内容?
  质量属性规约了软件产品所具有的一个性质必须达到其质量方面所期望的一个水平。
  例如:可靠性、存活性、可维护性、用户友好性。
  2.需求发现技术
  1)初始发现需求常用的技术有哪些?
  ①自悟:需求人员把自己作为系统的最终用户,审视该系统并提出问题。
  适用情况:需求人员不能直接与用户交流。
  成功条件:需求人员必须具有比最终用户还要多的应用领域和过程方面的知识,并具有丰富的想象力。
  存在风险:无法验证发现的需求是否满足用户的要求,无法验证需求是不是正确的。
  ②交谈:为了确定系统应该提供的功能,需求人员应该提出问题/用户回答这一方式,直接询问用户需要的是一个什么系统。
  适用情况:客户支持需求人员与最终用户进行有关系统需求的交流。
  成功条件:需求人员是否能够正确提出问题,回答人员是否能否揭露需求本意。
  存在风险:在交谈之间所获取的需求不断增长,或者以前没有认识到的合理需求,或者完美蠕行的病症,很难控制,可能导致超出项目成本和进度的限制。
  应对措施:项目管理人员和客户管理人员应该定期的对交谈结果进行复审。其中具有挑战的问题是判断:什么时候界定这一增长,什么时候将这一增长通知客户。
  ③观察:通过观察用户执行其现行的任务和过程,或通过观察他们如何操作与所期望的新系统有关的现有系统,了解系统运行的环境,特别是了解要建立的新系统与现存系统,过程,以及工作方法之间必须进行的交互。
  与交谈比较:尽管了解这些信息可以通过交谈获取,但是第一手材料能更好的符合现实。
  适用情况:用户允许需求人员进入工作现场,并可进行观察,可与有关人员有关问题进行交流。
  成功条件:需求人员具有洞察事务本质的能力。
  存在风险:客户抵触这一观察;客户可能认为开发者在签约之前,就已经熟悉了他们的业务。
  ④小组会:举行客户和开发人员的联席会议,与客户组织的代表一起开发需求。
  第一:通常是开发的代表作为首席需求工程师主持这一会议。
  第二:必须仔细的选择该小组的成员,不仅要考虑他们对目前和未来运行环境的理解程度,还要考虑他们的人品。
  适用情况:各方组织在管理层面重视需求工作,并有能力提供人力资源。
  成功条件:会议组织得当,包括权责分明、参与会议的人员具有良好的需求发现能力,并允许发表不同的观点。
  存在风险:会议组织不到位,或受客观环境的限制,就可能过多的召开这种会议,并产生一些相互矛盾的需求。
  ⑤提炼:复审技术文档(例如有关需要的陈述、功能和性能目标的陈述、系统规约接口标准、硬件设计文档等)并提取相关信息。
  适用情况:提炼方法是针对已经有了部分需求文档的情况。
  成功条件:已存在项目背景文档以及一些相关的需求文档。需求人员有很好的想象力和需求标识能力,包括熟悉相关技术标准和法规政策。
  存在风险:与自悟方法一样,无法验证发现的需求是否满足用户的要求,无法验证发现的需求是否是正确的。
  2)通过五种需求发现技术,在实际应用中应注意的问题?
  ①依据需求人员的技能、产品、合同的实际情况,通常需要’组合‘的使用这些技术来开发初始需求。
  ②在实施上述任意一项技术时,都可以辅助如原型构造等其他方法。
  ③执行需求发现这项活动的人,其技能水平对这项活动的成功具有重大的影响。
  3. 需求规约定义
  1)需求规约的概念?
  需求规约是一个软件产品/系统所有需求陈述的正式文档,他表达了一个软件产品/系统的概念模型。
  2)需求规约的4个基本性质?
  ①重要性和稳定程度:按需要的重要性和稳定性,对需求进行分级,例如基本需求、可选需求、期望需求。
  ②可修改的:在不过多的影响其他需求的前提下,可以容易的修改一个单一需求。
  ③完整的:没有被遗漏的需求。
  ④一致的:不存在互斥的需求。
  4.需求规约的格式
  1)需求规约的格式?(完整的需求文档草案的编制格式)
  包括引言(目的、范围、定义、参考文献、概述等)、总体描述(产品概述、产品功能、用户特性、约束、假设和依赖)、特定需求。
  其中,特定需求是需求规约文档的技术核心。
  2)构造特定需求的模板有哪些?(需求的组织方式)
  ①根据用户类,其中每类用户执行的功能包含在该类用户的描述中。
  ②根据对象,在每一小节给出该对象所关联的功能。
  ③根据系统层特征,对任意给定的功能需求,可以具有若干个特征。
  ④根据激发,给出响应每一激发所执行的功能的规约。
  ⑤根据功能层次,功能规约的依据它信息流上的活动,信息流上所执行的处理,以及通过该信息流的数据。
  ⑥根据系统运行模式,在每一小节给出系统性能规约。
  ⑦根据一种可选模式,每种模式的性能包含在该模式的规约中。
  ⑧根据用户类、功能和特征,将特定需求分为一些小节。
  5.需求规约的表达
  1)需求规约的3种表达风格有哪些?
  ①非形式化的需求规约:以一种自然的语言来表达需求规约。
  主要问题:容易产生歧义、矛盾和不可测等问题。
  适用于:规模比较小、复杂程度不高的小型软件项目。
  ②半形式化的需求规约:以半形式化的符号体系(包括术语表、标准化的表达格式等)来表达需求规约。
  术语表:明确的标识了一些词。
  标准化的表达格式:例如数据流图、状态转换图数据结构图等标识了一些元信息,支持以更清晰的方式系统化的编制文档。
  ③形式化的需求规约:即以一种基于良构数学概念的符号体系来编制需求规约,一般往往伴有解释性注释的支持。
  适用于:由于表达能力问题,在实际工程中,主要针对质量(特别是安全性)要求比较高的软件产品/系统。采用形式化的需求规约目的是为了程序的正确性验证。
  2)应用3种风格表达需求规约时,应注意哪两个问题?
  ①软件系统本来就是复杂的,在同一时期没有必要把系统的规约或实现束缚于某一规约技术上,即可以同时使用多种技术,分析用户需求,并建立相应的文档。
  ②确定什么样的需求规约表达方式,这是组织者或者项目经理的责任,并负责监督需求开发过程的状态和进展,保证结果符合项目规定的质量、预算和进度。
  6.需求规约的作用
  1)需求规约的作用?
  ①需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。
  ②对于项目的其余大多数工作,需求规约是一个管理控制点。
  ③对于系统的设计,需求规约是一个正式的,受控的起点。
  ④需求规约是创建产品验收测试计划和用户指南的基础,即基于需求规约一般还会产生另外两个文档初始测试计划和用户系统操作描述。
  2)需求规约和项目需求的区别?
  需求规约是软件开发组织和用户之间一份事实上的技术合同书,即关注产品需求,回答交互给客户的产品是什么。
  项目需求是客户和开发者之间有关技术合同-系统需求的理解,应记录在工作陈述中,或者其他文档中,即关注项目工作与管理,回答开发组要做的是什么。
  3)需求规约不能实现的作用?
  ①需求规约不是一个设计文档。
  ②需求规约不是进度或规划文档。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号