重庆做公司网站,新塘网站建设,网站开发模板代码,台州市城乡建设规划局网站概述
一个完整的软件生存周期是以需求为出发点。软件需求是指用户对系统在功能、行为、性能、设计约束等方面的期望。
需求开发#xff1a;
需求获取需求分析需求定义#xff08;需求规格说明书#xff09;需求验证
需求管理:
变更控制版本控制需求跟踪需求状态跟踪
需…概述
一个完整的软件生存周期是以需求为出发点。软件需求是指用户对系统在功能、行为、性能、设计约束等方面的期望。
需求开发
需求获取需求分析需求定义需求规格说明书需求验证
需求管理:
变更控制版本控制需求跟踪需求状态跟踪
需求开发和需求管理是相辅相成的需求开发是主线、目标需求管理是支持、保障。
分类
需求分类从不同的角度有不同的分类方式每一种分类方式都提供一个对需求进行理解的视角。
软件需求包括三个不同的层次分类业务需求、用户需求和功能及非功能需求。 业务需求表示组织或客户高层次的目标通常来自项目投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策划部门。业务需求描述组织为什么要开发一个系统即组织希望达到的目标。使用前景和范围文档来记录业务需求这份文档有时也被称作项目轮廓图或市场需求文档 用户需求描述用户的目标或用户要求系统必须能完成的任务 功能需求规定开发人员必须在产品中实现的软件功能用户利用这些功能来完成任务满足业务需求。 业务需求整体全局 用户需求用户视角 系统需求计算机化
另一种分类方式
基本需求明示常规需求期望需求隐含兴奋需求意外需求
另有一说软件需求包括功能需求、非功能需求、设计约束三个主要部分。
需求特性
软件需求的基本特征可验证性。
理想情况下每一项用户、业务需求和功能需求都应具备下列性质
完整性每一项需求都必须完整地描述即将交付使用的功能正确性每一项需求都必须正确地描述将要开发的功能可行性需求必须能够在系统及其运行环境的已知能力和约束条件内实现必要性每一项需求记录的功能都必须是用户的真正需要无歧义每一项需求声明对所有读者应该只有一种一致的解释可验证性如果某项需求不可验证那判定其实现的正确与否就变成主观臆断。
需求开发
需求开发的过程有四个主要活动
需求获取积极地与用户进行交流捕捉、分析和修正用户对目标系统的需求并提炼出符合解决问题的用户需求产生《用户需求说明书》需求分析目的是对各种需求信息进行分析并抽象描述为目标系统建立一个概念模型需求定义目标是根据需求调查和需求分析的结果进一步定义准确无误的产品需求产生《需求规格说明书》。系统设计人员将依据《需求规格说明书》开展系统设计工作需求验证指开发方和用户共同对需求文档评审经双方对需求达成共识后做出书面承诺使需求文档具有商业合同效果。
需求获取
需求获取有很多方法
用户访谈用户访谈是最基本的一种需求获取手段其形式包括结构化和非结构化两种。用户访谈是通过1对1或1对21对3的形式与用户面对面进行沟通以获取用户需求。用户访谈具有良好的灵活性有较宽广的应用范围。但是也存在着许多困难例如用户经常较忙难以安排时间面谈时信息量大记录较为困难沟通需要很多技巧同时需要系统分析师具有足够的领域知识等。另外在访谈时还可能会遇到一些对于企业来说比较机密和敏感的话题。因此这看似简单的技术也需要系统分析师具有丰富的经验和较强的沟通能力。
采样是指从种群中系统地选出有代表性的样本集的过程通过认真研究所选出的样本集可以从整体上揭示种群的有用信息。对于信息系统的开发而言现有系统的文档文件就是采样种群。当开始对一个系统做需求分析时查看现有系统的文档是对系统有初步了解的最好方法。但是系统分析师应该查看哪些类型的文档当文档的数据庞大法——研究时就需要使用采样技术选出有代表性的数据。采样技术不仅可以用于收集数据还可以用于采集访谈用户或者是采集观察用户。在对人员进行采样时上面介绍的采样技术同样适用。通过采样技术选择部分而不是选择种群的全部不仅加快数据收集的过程而且提高效率降低开发成本。采样技术使用数理统计原理能减少数据收集的偏差。但是由于采样技术基于统计学原理样本规模的确定依赖于期望的可信度和已有的先验知识很大程度上取决于系统分析师的主观因素对系统分析师个人的经验和能力依赖性很强要求系统分析师具有较高的水平和丰富的经验。
联合需求计划为了提高需求获取的效率越来越多的企业倾向于使用小组工作会议来代替大量独立的访谈。联合需求计划Joint Requirement PlanningJRP是一个通过高度组织的群体会议来分析企业内的问题并获取需求的过程它是联合应用开发Joint Application DevelopmentJAD的一部分。
需求分析
需求分析是一种软件工程活动它在系统级软件分配和软件设计间起到桥梁的作用需求分析使得系统工程师能够刻画出软件的功能和性能指明软件和其他系统元素的接口并建立软件必须满足的约束。
需求分析允许系统分析师细化软件的分解并建立将被软件处理的数据、功能和行为模型。最后需求规约为开发者和客户提供了软件开发完成后质量评估的依据。需求分析为软件设计师提供可被翻译成数据、架构、界面和过程设计的模型。
需求分析的任务是发现、求精、建模和规约的过程包括详细地细化由系统工程师建立并在软件项目计划中明确的软件范围创建所需数据、信息和控制流及操作行为的模型此外还要分析可选择的解决方案并将它们分配到各软件元素中去。
在需求分析阶段要得到详细的规约是不可能的。客户可能并不能精确地肯定需要什么开发者可能不能肯定可用什么特定的方法来适当地完成功能和性能。
需求抽取和分析的过程
发现需求需求分类和组织需求优先级划分和协商需求规格说明
DFD
数据流图是SA方法中的重要工具是表达系统内部数据的流动并通过数据流描述系统功能的一种方法。 DFD还可被认为是一个系统模型在信息系统开发中如果采用结构化方法则一般将DFD作为需求规格说明书的一个组成部分。用例模型描述一组用例、参与者及它们之间的关系。
通常使用数据字典作为该工具的补充说明
DFD是理解和表达用户需求的工具是需求分析的手段。由于DFD简明易懂不需要任何计算机专业知识就可以理解它因此系统分析师可以通过DFD与用户进行交流DFD概括地描述了系统的内部逻辑过程是需求分析结果的表达工具也是系统设计的重要参考资料是系统设计的起点DFD作为一个存档的文字材料是进一步修改和充实开发计划的依据。 面向数据流的分析方法结构化分析方法。
OOA
面向对象分析主要活动
建立需求模型即用例图 确定系统边界发现参与者定义用例 建立基本模型即类图 发现对象、定义它们的类定义对象的内部特征——属性和操作定义对象的外部关系——一般-特殊结构、整体-部分结构、关联和消息 建立辅助模型 划分包建立包图建立顺序图建立活动图建立构件图建立部署图建立其他模型图 建立模型规约对模型中的成分进行规范的定义和文字说明原型开发可选结合其他活动反复进行
以上各个OOA过程总体来说是一个反复进行不断完善的过程以建立基本模型为中心进行需求模型、基本模型、辅助模型的建立、修复与完善。
需求定义
需求定义的过程也就是形成需求规格说明书的过程通常有两种需求定义的方法严格定义方法和原型方法。
严格定义方法也称为预先定义需求的严格定义建立在以下基本假设之上
所有需求都能够被预先定义。这意味着在没有实际系统运行经验的情况下全部的系统需求均可通过逻辑推断得到。但这种假设在许多场合是不能成立的。开发人员与用户之间能够准确而清晰地交流。采用图形或文字可以充分体现最终系统。在使用严格定义需求的开发过程中开发人员与用户之间交流与沟通的主要工具是定义报告包括文字、图形、逻辑规则和数据字典等技术工具。
原型化的需求定义过程是一个开发人员与用户通力合作的反复过程。从一个能满足用户基本需求的原型系统开始允许在开发过程中提出更好的要求根据用户的要求不断地对系统进行完善它实质上是一种迭代的循环型的开发方式。 使用原型方法时需注意几个问题
并非所有的需求都能在系统开发前被准确地说明项目干系人之间通常都存在交流上的困难需要实际的、可供用户参与的系统模型有合适的系统开发环境反复是完全需要和值得提倡的。需求一旦确定就应该遵从严格定义的方法
需求验证
需求验证的四种基本方法是检查演示测试和分析。这四种方法本质上是分层的因为每种方法都会越来越严格地验证产品或系统的要求
检查在检查需求时会校对需求文档以确保不会遗漏任何引出说明还检查所有要求之间的可追溯性级别。为此需要创建可追溯性矩阵该矩阵确保所有要求都得到适当考虑并且指定的所有内容都是合理的。还会检查需求的格式看看需求是否清晰。原型设计这是一种为开发人员构建的系统构建模型或模拟的方法。这是利益相关者和用户之间非常流行的需求验证技术因为它可以帮助他们轻松识别问题、检测缺失的需求并了解技术如何帮助他们。可以联系用户和利益相关者并获得他们的反馈。测试设计在测试设计期间遵循测试团队构建一些测试场景的小程序。测试必须从需求规范中派生此过程的目的是找出规范中的错误或遗漏的细节从而导致难以定义测试场景。需求审查在需求评审期间一组知识渊博的人以结构化和详细的方式分析需求并识别潜在问题。随后聚在一起讨论问题并找出解决问题的方法。准备一份清单供审阅者填写以提供审阅的正式输出。最后完成最终批准签字。
需求验证原则 根据 IREB 教学大纲考虑以下四个需求验证原则可以提高验证结果的质量
正确的利益相关者的参与分离识别和纠正错误从不同的角度进行验证反复验证
需求管理
需求管理是一个对系统需求变更、了解和控制的过程通常包括定义需求基线、处理需要变更和需求跟踪方面的工作。需求管理过程与需求开发过程相互关联当初始需求导出的同时就启动需求管理计划一旦形成需求文档初稿需求管理活动就开始。
需求管理强调控制对需求基线的变动保持项目计划与需求的一致控制单个需求和需求文档的版本情况管理需求和联系链或者管理单个需求和其他项目可交付产品之间的依赖关系跟踪基线中的需求状态。
关于需求管理过程域内的原则和策可以参考
需求管理的关键过程领域不涉及收集和分析项目需求而是假定己收集了软件需求或者已由更高一级的系统给定了需求开发人员在向客户以及有关部门承诺某些需求之前应该确认需求和约束条件、风险、偶然因素、假定条件等关键处理领域同样建议通过版本控制和变更控制来管理需求文档。
需求管理的活动包括
变更控制版本控制需求跟踪需求状态跟踪
需求变更控制
一个大型的软件系统的需求总是有变化的。对许多项目来说系统软件总需要不断完善一些需求的改进是合理的而且不可避免要使得软件需求完全不变更也许是不可能的但毫无控制的变更是项目陷入混乱、不能按进度完成或者软件质量无法保证的主要原因之一。一个好的变更控制过程给项目风险承担者提供正式的建议需求变更机制可以通过变更控制过程来跟踪已建议变更的状态使已建议的变更确保不会丢失或疏忽。需求变更管理过程
问题分析和变更描述。这是识别和分析需求问题或者一份明确的变更提议以检查它的有效性从而产生一个更明确的需求变更提议变更分析和成本计算。使用可追溯性信息和系统需求的一般知识对需求变更提议进行影响分析和评估。变更成本计算应该包括对需求文档的修改、系统修改的设计和实现的成本。一旦分析完成并且确认应该进行是否执行这一变更的决策变更实现。这要求需求文档和系统设计以及实现都要同时修改。如果先对系统的程序做变更然后再修改需求文档这几乎不可避免地会出现需求文档和程序的不一致。自动化工具能够帮助变更控制过程更有效地运作。许多团队使用商业问题跟踪工具来收集、存储和管理需求变更。用这样的工具创建的最近提交的变更建议清单可以用作CCB会议的议程。问题跟踪工具也可以随时按变更状态分类报告出变更请求的数目。因为可用的工具、厂商和特性总在频繁地变化所以这里无法给出有关工具的具体建议。
但工具应该具有以下几个特性以支持需求变更过程
可以定义变更请求中的数据项可以定义变更请求生命周期的状态转换模型可以强制实施状态转换模型以便只有授权用户可以做出允许的状态变更可以记录每一个状态变更的日期和做出这一变更的人可以定义当提议者提交新请求或请求状态被更新时哪些人可以自动接收电子邮件通知可以生成标准的和定制的报告和图表。
有些商业需求管理工具内置有简单的变更建议系统。这些系统可以将提议的变更与某一特定的需求联系起来这样无论什么时候只要有人提交一个相关的变更请求负责需求的每个人都会收到电子邮件通知。
一个大型软件系统的需求通常是会发生变化的。在进行需求变更时可以参考以下的需求变更策
所有需求变更必须遵循变更控制过程对于未获得批准的变更不应该做设计和实现工作变更应该由项目变更控制委员会决定实现哪些变更项目风险承担者应该能够了解变更数据库的内容决不能从数据库中删除或者修改变更请求的原始文档每一个集成的需求变更必须能跟踪到一个经核准的变更请求
版本控制
需求跟踪
需求跟踪包括编制每个需求与系统元素之间的联系文档这些元素包括别的需求、体系结构、其他设计部件、源代码模块、测试、帮助文件和文档等。跟踪能力信息使变更影响分析十分便利有利于确认和评估实现某个建议的需求变更所必须的工作。利用需求跟踪能力链traceability link可以跟踪一个需求使用的全过程也就是从初始需求到实现的前后生存期。跟踪能力是优秀需求规格说明书的一个特征为了实现跟踪能力必须统一地标识出每一个需求以便能明确地进行查阅。
客户需求向前追溯到软件需求。这样就能区分出开发过程中或者开发结束后由于客户需求变更受到影响的软件需求这也就可以确保软件需求规格说明包括所有客户需求。
从软件需求回溯响应的客户需求。这也就是确认每个软件需求的源头。如果使用实例的形式来描述客户需求那么客户需求与软件需求之间的跟踪情况就是使用实例和功能性需求。从软件需求向前追溯到下一级工作产品。由于开发过程中系统需求转变为软件需求、设计、编码等所以通过定义单个需求和特定的产品元素之间的联系链可以从需求向前追溯到下一级工作产品。这种联系链告诉我们每个需求对应的产品部件从而确保产品部件满足每个需求。从产品部件回溯到软件需求。说明每个部件存在的原因。如果不能把设计元素、代码段或测试回溯到一个需求可能存在画蛇添足的程序。然而如果这些孤立的元素表明一个正当的功能则说明需求规格说明书漏掉一项需求。
需求跟踪矩阵RTM
需求状态跟踪
参考