协商与建模需求规约与验证需求管理-Read课件_第1页
协商与建模需求规约与验证需求管理-Read课件_第2页
协商与建模需求规约与验证需求管理-Read课件_第3页
协商与建模需求规约与验证需求管理-Read课件_第4页
协商与建模需求规约与验证需求管理-Read课件_第5页
已阅读5页,还剩129页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

制作者程丽软件工程第二章需求工程制作者程丽软件工程第二章需求工程1本章介绍以下内容可行性分析需求工程概述需求获取需求分析、协商与建模需求规约与验证需求管理本章介绍以下内容可行性分析2课程的任务、目的和基本要求掌握可行性分析的方法掌握需求工程的定义及六个阶段掌握软件需求内容掌握需求获取的方法与策略掌握需求分析原则掌握需求规约的原则掌握需求规约的内容了解需求验证过程了解需求管理相关概念

课程的任务、目的和基本要求掌握可行性分析的方法3接下来介绍可行性分析需求工程概述需求获取需求分析、协商与建模需求规约与验证需求管理接下来介绍可行性分析4可行性研究的任务可行性研究的具体步骤系统流程图成本-效益分析方案的选择和折衷可行性分析的结论可行性研究的文档可行性分析可行性研究的任务可行性分析5提出问题

→有无解决的办法

→是否值得去做可行性研究的目的提出问题可行性研究的目的6可行性研究的任务技术可行性确定技术风险,项目实现的可能性经济可行性考虑投入—产出,市场前景,经营策略社会可行性考虑合同、责任、侵权、用户组织的管理模式及规范问题可行性研究的任务技术可行性7可行性研究的步骤确定项目规模和目标研究正在运行的系统-系统流程图建立新系统的高层逻辑模型-简单数据流图导出和评价各种方案推荐可行的方案编写可行性研究报告,交使用部门审查可行性研究的步骤确定项目规模和目标8用图形符号描述项目处理流程、范围和功能

处理输入/输出连接换页连接数据流文档联机存储磁盘显示人工输入人工操作辅助操作通信链路系统流程图用图形符号描述项目处理流程、范围和功能系统流程图9工资处理过程:每月末教师把他们当月实际授课时数登记在课时表上,由各系汇总后交给财务科。职工把他们当月完成承包任务的情况登记在任务表上,汇总后交给财务科。会计根据这些原始数据计算每名教职工的工资,编制工资表、工资明细表。然后,把记有每名教职工工资总额的工资表报送银行,由银行把钱打到每名教职工的工资存折上,同时把工资明细表发给每名教职工。例子:人工系统计算工资和编制报表工资处理过程:例子:人工系统计算工资和编制报表10教师课时表任务表职工工资支付系统工资表工资明细表银行教师职工教师课时表任务表职工工资支付系统工资表工资明细表银行教师职工11成本效益分析效益表现有形效益:无形效益:货币的时间价值、投资回收期、纯收入从性质上、心理上进行衡量成本效益分析效益表现有形效益:无形效益:货币的时间价值、投资12货币的时间价值

F=P*(1+n*i)(不计复利)P=F/(1+n*i)i----利率

P---现在值(元)

n----年数

F---将来值(元)成本效益分析货币的时间价值成本效益分析13成本效益分析投资回收期使累计的经济效益等于最初投资费用所需的时间投资回收期越短,就越快获得利润纯收入整个生存周期之内的累计经济效益(折合成现在值)与投资之差成本效益分析投资回收期14一个系统可以有多个可行的实现方案,每个方案对成本、时间、人员、技术、设备都有不同的要求,不同方案开发出来的系统在功能、性能方面也会有所不同。因此要在多个可行的实现方案中作出选择。由于系统的功能和性能受到多种因素的影响,某些因素之间相互关联和制约。如,为达到高的精度就可能导致长的执行时间,为达到高可靠性就会导致高的成本等等。因此,在必要时应进行折衷。方案的选择和折衷一个系统可以有多个可行的实现方案,每个方案对成本、时间、人员15可行性分析的结论可以立即开始进行需要推迟到某些条件(例如资金、人力、设备等)落实之后才能开始进行需要对开发目标进行某些修改之后才能开始进行因为某种原因(如,技术不成熟、经济上不合算等)不能进行可行性分析的结论可以立即开始进行16可行性研究的文档在可行性研究后提交的文档,包括引言可行性研究前提对现有系统的分析所建议的系统可选择的其它系统方案投资及效益分析社会因素方面的可行性分析结论可行性研究的文档在可行性研究后提交的文档,包括17接下来介绍可行性分析需求工程概述需求获取需求分析、协商与建模需求规约与验证需求管理接下来介绍可行性分析18软件需求工程细分为需求获取需求分析与协商系统建模需求规约需求验证需求管理需求工程软件需求工程细分为需求工程19需求获取系统分析人员与用户交流,对现有系统观察,对任务进行分析,确定系统或产品的范围,与系统或产品有关的人员及特征,系统的技术环境,系统功能,应用于每个需求的领域限制,一组描述不同运行条件下系统或产品使用状况的应用场景。需求获取系统分析人员与用户交流,对现有系统观察,对任务进行20需求分析与协商

需求获取结束后,分析活动对需求进行分类组织,分析每个需求与其它需求的关系,检查需求的一致性、重叠和遗漏的情况,并根据用户的需要对需求进行排序。在需求获取阶段,经常出现以下问题:用户提出的要求超出软件系统可以实现的范围或实现能力;不同的用户提出了相互冲突的需求需求分析与协商需求获取结束后,分析活动对需求进行分类组织,21系统建模建模工具的使用在用户和系统分析人员之间建立了统一的语言和理解的桥梁,同时系统分析人员借助建模技术对获取的需求信息进行分析,排除错误和弥补不足,确保需求文档正确反映用户的真实意图。常用的分析和建模方法有面向数据流方法、面向数据结构方法和面向对象的方法。系统建模建模工具的使用在用户和系统分析人员之间建立了统一的22需求规约软件需求规约是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。需求规约作为用户和开发者之间的一个协议,在之后的软件工程各个阶段发挥重要作用。需求规约软件需求规约是分析任务的最终产物,通过建立完整的信23需求验证作为需求开发阶段工作的复查手段,需求验证对功能的正确性、完整性和清晰性,以及其它需求给予评价。为保证软件需求定义的质量,评审应以专门指定的人员负责,并按规程严格进行。需求验证作为需求开发阶段工作的复查手段,需求验证对功能的正24在实际的开发过程中,获取、分析、建模、编写规约和验证这些需求开发活动不会是线性地、顺序地完成。实际上,这些活动是交叉的、递增的和反复的。在实际的开发过程中,获取、分析、建模、编写规约和验证这些需求25需求管理需求工程包括获取、分析、规定、验证和管理软件需求,而“软件需求管理”则是对所有相关活动的规划和控制。换句话说,需求管理就是:一种获取、组织并记录系统需求的系统化方案,以及一个使用户与项目团队对不断变更的系统需求达成并保持一致的过程。需求管理需求工程包括获取、分析、规定、验证和管理软件需求,26接下来介绍可行性分析需求工程概述需求获取需求分析、协商与建模需求规约与验证需求管理接下来介绍可行性分析27软件需求包括功能需求性能需求用户或人的因素环境需求界面需求文档需求数据需求资源使用需求安全保密要求可靠性需求软件成本消耗与开发进度需求其他非功能性要求软件需求包括功能需求数据需求28需求获取方法与策略建立顺畅的通信途径访谈与调查观察用户操作流程组成联合小组用况(UseCase)需求获取方法与策略建立顺畅的通信途径29建立顺畅的通信途径建立分析所需要的通信途径,以保证能顺利地对问题进行分析。建立顺畅的通信途径建立分析所需要的通信途径,以保证能顺利地30访谈与调查在具体的实践中,通常采用折衷的方法,即适当地计划好面谈,但不要过于详细,允许有一定的灵活性。一般按照如下原则进行准备:所提问的问题应该循序渐进,从整体的方面开始提问,接下来的问题应有助于对前面的问题更好的理解和细化;不要限制用户对问题的回答,这有可能会引出原先没有注意的问题;提问和回答在汇总后应能够反映用户需求的全貌。访谈与调查在具体的实践中,通常采用折衷的方法,即适当地计划31例:“赛艇比赛成绩计算系统”的第一次面谈的准备计划初次与Dartchurch航行俱乐部的航行秘书(DR)接触,面谈有关事宜。(在电话交谈时,了解到他们希望得到的是一个“价廉”的,基于PC的系统,以用于计算赛艇比赛成绩)时间:2005-6-5地点:对方场地主要问题确定基本问题。确定DR的角色――还涉及其它人员吗?调查财物方面事宜。系统(大致上)是如何运作的?当前存在的问题是什么?他们都希望做些什么?例:“赛艇比赛成绩计算系统”的第一次面谈的准备计划初次与D32观察用户操作流程到用户的实际工作环境中对用户的工作流程进行观察,了解用户实际的操作环境、操作过程和操作要求,对照用户提交的问题陈述,对用户需求可以有更全面、更细致的认识。观察用户操作流程到用户的实际工作环境中对用户的工作流程进行33组成联合小组便利的应用规约技术(FacilitatedApplicationSpecificationTechniques,FAST):打破用户(需方)和开发者(供方)的界限,共同组成一个联合小组,发挥各自的长处,共同负责项目的推进,这样有助于发挥各自优势并增进解和协调组成联合小组便利的应用规约技术(FacilitatedA34FAST基本原则在中立的地点举行由开发者和用户出席的会议;建立准备和参与会议的规则;建议一个足够正式的议程以便可以进行自由的交流;一个“协调者”(他可以是用户、开发者或其他外人)来控制会议;使用一种“定义机制”(它可以是工作表、图表、墙上胶黏纸或墙板);目标是标识问题、提出解决方案的要素、商议不同的方法、以及在有利于完成目标的氛围中刻画出初步的需求。FAST基本原则在中立的地点举行由开发者和用户出席的会议;35FAST会议步骤1) 当举行了开发者和用户之间的初步访谈后,确定一个FAST会议的时间地点,并在会议日之前将产品请求发布给所有的与会者。2) 要求每个FAST出席者会前列出一组围绕系统环境的对象,以及对这些对象的操作或对象之间的交互功能,并开发出约束列表(如,成本、规模大小、权重)和性能标准列表(如,速度、精度)。这些列表可以不是穷尽的,但是,希望每套列表反映的是每个人对系统的感觉。3) 进行FAST会议时,当团队的每个成员提出单个列表后,整个团队将创建一个组合的列表,该组合列表删去冗余项,并加入在表达过程中出现的新思想。在建好所有主题的组合列表后,开始讨论活动。缩短、加长或重新组合列表以适当地反映将被开发的产品。FAST会议步骤1) 当举行了开发者和用户之间的初步访谈后36FAST会议步骤(续)4) 一旦创建了意见一致的列表,应该将团队分为更小的小组,每个小组力图为每个列表中的一个或多个项开发出小型的规约(即对包含在列表中的单词或短语的精细化)。每个小组然后将他们开发的每个小规约提交给所有的FAST出席者讨论,进行添加、删除或进一步的精化等工作。(在所有讨论过程中,团队可能提出某些不能在会议过程中解决的问题,此时要保留问题列表以使这些思想在以后的活动中产生作用。)5) 在小规约完成后,每个FAST的出席者提出一个针对产品的确切标准列表,并将该列表提交给团队,然后创建一个意见一致的确定的标准列表。这个列表作为需求获取的结果,为需求分析和建模提供基础信息。FAST会议步骤(续)4) 一旦创建了意见一致的列表,应37用况(UseCase)当需求作为非正式会议、Fast的一部分而收集起来之后,分析员就可以创建一组标识一串待建造系统的使用场景。创建用况模型的主要步骤如下:确定谁会直接使用该系统,即参与者(Actor)选取其中一个参与者定义该参与者希望系统做什么,参与者希望系统作的每件事将成为一个用况对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用况的基本过程描述该用况的基本过程用况(UseCase)当需求作为非正式会议、Fast的一38接下来介绍可行性分析需求工程概述需求获取需求分析、协商与建模需求规约与验证需求管理接下来介绍可行性分析39需求分析原则1.必须能够表示和理解问题的信息域2.必须能够定义软件将完成的功能3.必须能够表示软件的行为(作为外部事件的结果)4.必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节5.分析过程应该从要素信息移向细节信息需求分析原则1.必须能够表示和理解问题的信息域40为什么要引入信息域?所有的软件应用程序均可被称为数据处理。如:工资系统的批处理软件,开发控制汽车发动机油流的实时嵌入式软件。将数据从一种形式变换为另一种形式对事件的处理也不例外。例如,压力传感器检测压力是否超过安全值,并发送警报到监控软件,警报信号是一个事件,该事件控制系统的行为。因此,数据(数值、字符、图象、声音等)和控制(事件)二者均驻留于问题的信息域内。为什么要引入信息域?所有的软件应用程序均可被称为数据处理。如41信息域信息域:包括信息内容、信息流、以及信息结构。信息内容表示了单个数据和控制对象,目标软件所有处理的信息集合由它们构成。例如,数据对象“工资”是一组重要数据体的组合:领款人的姓名、净付款数、付款总额、扣除额等等信息域信息域:包括信息内容、信息流、以及信息结构。42信息流表示了数据和控制在系统中流动时的变化方式,输入对象被变换为中间信息(数据和/或控制),然后进一步被变换为输出信息结构表示了各种数据和控制项的内部组织数据或控制项将被组织为n维表还是树形结构?在结构的语境内,什么信息是和其他信息相关的?信息包含在单个结构中,还是使用不同的结构?在某信息结构中的信息如何和在另一个结构中的信息相关?信息域信息流表示了数据和控制在系统中流动时的变化方式,输入对象被变43抽象、分解与多视点分析问题抽象方法要求分析人员在分析过程中捕捉用户描述或问题本身固有的一般-特殊关系首先关注一般问题的解决途径,进而指导特殊问题的解决方法。抽象、分解与多视点分析问题抽象方法要求分析人员在分析过程中44问题分解的目的是要能以层次化的方式对问题进行分解和不断细化。较大规模或较为复杂的问题可以被分解为若干子问题进行理解和分析分解可以逐级进行,直至子问题被分解为一个容易分析理解的部分例如横向分解纵向分解问题分解的目的是要能以层次化的方式对问题进行分解和不断细化。45需求协商协商的过程就是讨论需求冲突,找出每个人都满意的折衷方案协商不是简单的逻辑或技术上的争论要注意组织和行政方面的因素①不一致的目标②责任的丧失或转移③组织文化④组织管理态度和士气⑤部门差异需求协商协商的过程就是讨论需求冲突,找出每个人都满意的折衷46通常会议是解决冲突最快的方式参加者应该包括发现冲突、遗漏或重叠的分析员,以及可以解决发现的问题的项目相关人员会议应该讨论那些非正式讨论不能解决的问题通常会议分为三个阶段:叙述阶段讨论阶段决策阶段通常会议是解决冲突最快的方式47需求建模在软件需求分析阶段,所创建的模型,要着重于描述系统要做什么,而不是如何去做目标软件的模型不应涉及软件实现细节需求建模在软件需求分析阶段,所创建的模型,要着重于描述系统48常用的分析方法:面向数据流的结构化分析方法(SA)面向数据结构的分析方法面向对象的分析方法(OOA)常用的分析方法:49接下来介绍可行性分析需求工程概述需求获取需求分析、协商与建模需求规约与验证需求管理接下来介绍可行性分析50需求规约的原则1.从现实中分离功能,即描述要“做什么”而不是“怎样实现”。2.要求使用面向处理的规约语言(或称系统定义语言),讨论来自环境的各种刺激可能导致系统做出什么样的功能性反应,来定义一个行为模型,从而得到“做什么”的规约。3.如果被开发软件只是一个基于计算机的系统中的一个元素,那么整个大系统也包括在规格说明的描述之中。4.规约必须包括系统运行环境。需求规约的原则1.从现实中分离功能,即描述要“做什么”而不51需求规约的原则(续)5.规约必须是一个认识模型,而不是设计或实现的模型。6.规约必须是可操作的,以便能够利用它决定对于任意给定的测试用例,已提出的解决方案是否都能满足规约。7.规约必须允许不完备性并允许扩充。8.规约必须局部化和松散耦合。它所包括的信息必须局部化,这样当信息被修改时,只要修改某个单个的段落(理想情况)。同时,规约应被松散地构造(即松耦合),以便能够很容易地加入和删去一些段落。需求规约的原则(续)5.规约必须是一个认识模型,而不是设计52需求规约Ⅰ.引言A.系统参考文献B.整体描述C.软件项目约束Ⅱ.信息描述A.信息内容表示B.信息流表示:ⅰ数据流ⅱ控制流Ⅲ.功能描述A.功能划分B.功能描述:ⅰ处理说明ⅱ限制∕局限ⅲ性能需求ⅳ设计约束ⅴ支撑图C.控制描述ⅰ控制规约ⅱ设计约束Ⅳ.行为描述A.系统状态B.事件和响应Ⅴ.检验标准A.性能范围B.测试种类C.期望的软件响应D.特殊的考虑Ⅵ.参考书目Ⅶ.附录需求规约Ⅰ.引言A.系统参考文献B.整体描述C.软件项53引言陈述软件目标,在基于计算机的系统语境内进行描述。信息描述给出软件必须解决问题的详细描述,记录信息内容和关系、流和结构。功能描述描述解决问题所需的每个功能。其中包括,为每个功能说明一个处理过程;叙述设计约束;叙述性能特征;用一个或多个图形来形象地表示软件的整体结构和软件功能与其他系统元素间的相互影响。需求规约引言需求规约54行为描述描述作为外部事件和内部产生的控制特征的软件操作。检验标准描述检验系统成功的标志。即对系统进行什么样的测试,得到什么样的结果,就表示系统已经成功实现了。它是“确认测试”的基础。参考书目包含了对所有和该软件相关的文档的引用,其中包括其他的软件工程文档、技术参考文献、厂商文献以及标准。附录包含了规约的补充信息,表格数据、算法的详细描述、图表以及其他材料。需求规约行为描述需求规约55需求描述我们的研究表明,家庭安全系统的市场正以每年40%的比率增长,我们希望能进入该市场,并试图建造基于微处理器的家庭安全系统,该系统将保护和/或识别一系列出人意料之外的“情况”,如非法进入、火警、水灾或其他。该产品,暂时称为SafeHome,产品将使用合适的传感器来检测各种情况,具体使用时房主可按需要编程,并且当系统检测到情况时,会自动地给监控机构拨打电话。需求描述我们的研究表明,家庭安全系统的市场正以每年40%的比56提出话题列表为SafeHome描述的对象可能包括:若干烟雾检测器若干窗口和门传感器若干运动检测器一个警报器一个事件(启动某传感器)一个控制模板一个显示器一串电话号码一次电话拨号等等。提出话题列表为SafeHome描述的对象可能包括:57提出话题列表服务的列表可能包括:设置警报器设置监控传感器电话拨号控制面板编程读显示器(注意,服务作用于对象)系统的制造成本必须低于200万美元,界面必须是友好的,以及必须是和标准电话线接口)性能标准应该在一秒钟之内识别传感器事件应该实现事件优先级模式。

提出话题列表服务的列表可能包括:58产生小规约SafeHome中的对象“控制面板”的小规约可能是:安装在墙纸上。大小大约为9×5英寸。包含标准的12键键盘和特殊键。包含LCD显示,操作如草图所示(未在此给出)。所有的客户交互通过键盘发生,键盘被用于启动或关闭系统。连接提供交互指南、回显等的软件到所有的传感器。产生小规约SafeHome中的对象“控制面板”的小规约可能是59撰写完整规约在小规约完成后,每个FAST的出席者提出一个针对产品/系统的确切标准列表将该列表提交给团队创建一个意见一致的确定标准列表一个或多个参与者(或外来者)被赋予撰写完整的规约草案的任务(用来自FAST会议的结果为输入)。撰写完整规约在小规约完成后,每个FAST的出席者提出一个针对60需求工程的指导性原则在开始建立分析模型前先理解问题。开发原型,使得用户能够了解将如何发生人机交互。记录每个需求的起源及原因。使用多个需求视图。给需求赋予优先级。努力删除含糊性。需求工程的指导性原则在开始建立分析模型前先理解问题。61需求验证需求验证目的是要检验需求是否能够反映用户的意愿需求验证需求验证目的是要检验需求是否能够反映用户的意愿62需求验证评审人员评审时往往需要检查以下内容:系统定义的目标是否与用户的要求一致;系统需求分析阶段提供的文档资料是否齐全;文档中的描述是否完整、清晰、准确地反映了用户要求;被开发项目的数据流与数据结构是否确定且充足;主要功能是否已包括在规定的软件范围之内,是否都已充分说明;设计的约束条件或限制条件是否符合实际;开发的技术风险是什么;是否详细制定了检验标准,它们能否对系统定义是否成功进行确认。

需求验证评审人员评审时往往需要检查以下内容:63接下来介绍可行性分析需求工程概述需求获取需求分析、协商与建模需求规约与验证需求管理接下来介绍可行性分析64需求管理需求管理是一组用于帮助项目组在项目进展中的任何时候去标识、控制和跟踪需求的活动需求跟踪有两种方式,正向跟踪与逆向跟踪正向跟踪:以用户需求为切入点,检查《需求规约》中的每个需求是否都能在后继工作产品中找到对应点逆向跟踪:检查设计文档、代码、测试用况等工作产品是否都能在《需求规约》中找到出处需求管理需求管理是一组用于帮助项目组在项目进展中的任何时候去65作业教材45页,第3题教材61页:2、8、9(第一问)作业教材45页,第3题66ThankYou!ThankYou!67制作者程丽软件工程第二章需求工程制作者程丽软件工程第二章需求工程68本章介绍以下内容可行性分析需求工程概述需求获取需求分析、协商与建模需求规约与验证需求管理本章介绍以下内容可行性分析69课程的任务、目的和基本要求掌握可行性分析的方法掌握需求工程的定义及六个阶段掌握软件需求内容掌握需求获取的方法与策略掌握需求分析原则掌握需求规约的原则掌握需求规约的内容了解需求验证过程了解需求管理相关概念

课程的任务、目的和基本要求掌握可行性分析的方法70接下来介绍可行性分析需求工程概述需求获取需求分析、协商与建模需求规约与验证需求管理接下来介绍可行性分析71可行性研究的任务可行性研究的具体步骤系统流程图成本-效益分析方案的选择和折衷可行性分析的结论可行性研究的文档可行性分析可行性研究的任务可行性分析72提出问题

→有无解决的办法

→是否值得去做可行性研究的目的提出问题可行性研究的目的73可行性研究的任务技术可行性确定技术风险,项目实现的可能性经济可行性考虑投入—产出,市场前景,经营策略社会可行性考虑合同、责任、侵权、用户组织的管理模式及规范问题可行性研究的任务技术可行性74可行性研究的步骤确定项目规模和目标研究正在运行的系统-系统流程图建立新系统的高层逻辑模型-简单数据流图导出和评价各种方案推荐可行的方案编写可行性研究报告,交使用部门审查可行性研究的步骤确定项目规模和目标75用图形符号描述项目处理流程、范围和功能

处理输入/输出连接换页连接数据流文档联机存储磁盘显示人工输入人工操作辅助操作通信链路系统流程图用图形符号描述项目处理流程、范围和功能系统流程图76工资处理过程:每月末教师把他们当月实际授课时数登记在课时表上,由各系汇总后交给财务科。职工把他们当月完成承包任务的情况登记在任务表上,汇总后交给财务科。会计根据这些原始数据计算每名教职工的工资,编制工资表、工资明细表。然后,把记有每名教职工工资总额的工资表报送银行,由银行把钱打到每名教职工的工资存折上,同时把工资明细表发给每名教职工。例子:人工系统计算工资和编制报表工资处理过程:例子:人工系统计算工资和编制报表77教师课时表任务表职工工资支付系统工资表工资明细表银行教师职工教师课时表任务表职工工资支付系统工资表工资明细表银行教师职工78成本效益分析效益表现有形效益:无形效益:货币的时间价值、投资回收期、纯收入从性质上、心理上进行衡量成本效益分析效益表现有形效益:无形效益:货币的时间价值、投资79货币的时间价值

F=P*(1+n*i)(不计复利)P=F/(1+n*i)i----利率

P---现在值(元)

n----年数

F---将来值(元)成本效益分析货币的时间价值成本效益分析80成本效益分析投资回收期使累计的经济效益等于最初投资费用所需的时间投资回收期越短,就越快获得利润纯收入整个生存周期之内的累计经济效益(折合成现在值)与投资之差成本效益分析投资回收期81一个系统可以有多个可行的实现方案,每个方案对成本、时间、人员、技术、设备都有不同的要求,不同方案开发出来的系统在功能、性能方面也会有所不同。因此要在多个可行的实现方案中作出选择。由于系统的功能和性能受到多种因素的影响,某些因素之间相互关联和制约。如,为达到高的精度就可能导致长的执行时间,为达到高可靠性就会导致高的成本等等。因此,在必要时应进行折衷。方案的选择和折衷一个系统可以有多个可行的实现方案,每个方案对成本、时间、人员82可行性分析的结论可以立即开始进行需要推迟到某些条件(例如资金、人力、设备等)落实之后才能开始进行需要对开发目标进行某些修改之后才能开始进行因为某种原因(如,技术不成熟、经济上不合算等)不能进行可行性分析的结论可以立即开始进行83可行性研究的文档在可行性研究后提交的文档,包括引言可行性研究前提对现有系统的分析所建议的系统可选择的其它系统方案投资及效益分析社会因素方面的可行性分析结论可行性研究的文档在可行性研究后提交的文档,包括84接下来介绍可行性分析需求工程概述需求获取需求分析、协商与建模需求规约与验证需求管理接下来介绍可行性分析85软件需求工程细分为需求获取需求分析与协商系统建模需求规约需求验证需求管理需求工程软件需求工程细分为需求工程86需求获取系统分析人员与用户交流,对现有系统观察,对任务进行分析,确定系统或产品的范围,与系统或产品有关的人员及特征,系统的技术环境,系统功能,应用于每个需求的领域限制,一组描述不同运行条件下系统或产品使用状况的应用场景。需求获取系统分析人员与用户交流,对现有系统观察,对任务进行87需求分析与协商

需求获取结束后,分析活动对需求进行分类组织,分析每个需求与其它需求的关系,检查需求的一致性、重叠和遗漏的情况,并根据用户的需要对需求进行排序。在需求获取阶段,经常出现以下问题:用户提出的要求超出软件系统可以实现的范围或实现能力;不同的用户提出了相互冲突的需求需求分析与协商需求获取结束后,分析活动对需求进行分类组织,88系统建模建模工具的使用在用户和系统分析人员之间建立了统一的语言和理解的桥梁,同时系统分析人员借助建模技术对获取的需求信息进行分析,排除错误和弥补不足,确保需求文档正确反映用户的真实意图。常用的分析和建模方法有面向数据流方法、面向数据结构方法和面向对象的方法。系统建模建模工具的使用在用户和系统分析人员之间建立了统一的89需求规约软件需求规约是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。需求规约作为用户和开发者之间的一个协议,在之后的软件工程各个阶段发挥重要作用。需求规约软件需求规约是分析任务的最终产物,通过建立完整的信90需求验证作为需求开发阶段工作的复查手段,需求验证对功能的正确性、完整性和清晰性,以及其它需求给予评价。为保证软件需求定义的质量,评审应以专门指定的人员负责,并按规程严格进行。需求验证作为需求开发阶段工作的复查手段,需求验证对功能的正91在实际的开发过程中,获取、分析、建模、编写规约和验证这些需求开发活动不会是线性地、顺序地完成。实际上,这些活动是交叉的、递增的和反复的。在实际的开发过程中,获取、分析、建模、编写规约和验证这些需求92需求管理需求工程包括获取、分析、规定、验证和管理软件需求,而“软件需求管理”则是对所有相关活动的规划和控制。换句话说,需求管理就是:一种获取、组织并记录系统需求的系统化方案,以及一个使用户与项目团队对不断变更的系统需求达成并保持一致的过程。需求管理需求工程包括获取、分析、规定、验证和管理软件需求,93接下来介绍可行性分析需求工程概述需求获取需求分析、协商与建模需求规约与验证需求管理接下来介绍可行性分析94软件需求包括功能需求性能需求用户或人的因素环境需求界面需求文档需求数据需求资源使用需求安全保密要求可靠性需求软件成本消耗与开发进度需求其他非功能性要求软件需求包括功能需求数据需求95需求获取方法与策略建立顺畅的通信途径访谈与调查观察用户操作流程组成联合小组用况(UseCase)需求获取方法与策略建立顺畅的通信途径96建立顺畅的通信途径建立分析所需要的通信途径,以保证能顺利地对问题进行分析。建立顺畅的通信途径建立分析所需要的通信途径,以保证能顺利地97访谈与调查在具体的实践中,通常采用折衷的方法,即适当地计划好面谈,但不要过于详细,允许有一定的灵活性。一般按照如下原则进行准备:所提问的问题应该循序渐进,从整体的方面开始提问,接下来的问题应有助于对前面的问题更好的理解和细化;不要限制用户对问题的回答,这有可能会引出原先没有注意的问题;提问和回答在汇总后应能够反映用户需求的全貌。访谈与调查在具体的实践中,通常采用折衷的方法,即适当地计划98例:“赛艇比赛成绩计算系统”的第一次面谈的准备计划初次与Dartchurch航行俱乐部的航行秘书(DR)接触,面谈有关事宜。(在电话交谈时,了解到他们希望得到的是一个“价廉”的,基于PC的系统,以用于计算赛艇比赛成绩)时间:2005-6-5地点:对方场地主要问题确定基本问题。确定DR的角色――还涉及其它人员吗?调查财物方面事宜。系统(大致上)是如何运作的?当前存在的问题是什么?他们都希望做些什么?例:“赛艇比赛成绩计算系统”的第一次面谈的准备计划初次与D99观察用户操作流程到用户的实际工作环境中对用户的工作流程进行观察,了解用户实际的操作环境、操作过程和操作要求,对照用户提交的问题陈述,对用户需求可以有更全面、更细致的认识。观察用户操作流程到用户的实际工作环境中对用户的工作流程进行100组成联合小组便利的应用规约技术(FacilitatedApplicationSpecificationTechniques,FAST):打破用户(需方)和开发者(供方)的界限,共同组成一个联合小组,发挥各自的长处,共同负责项目的推进,这样有助于发挥各自优势并增进解和协调组成联合小组便利的应用规约技术(FacilitatedA101FAST基本原则在中立的地点举行由开发者和用户出席的会议;建立准备和参与会议的规则;建议一个足够正式的议程以便可以进行自由的交流;一个“协调者”(他可以是用户、开发者或其他外人)来控制会议;使用一种“定义机制”(它可以是工作表、图表、墙上胶黏纸或墙板);目标是标识问题、提出解决方案的要素、商议不同的方法、以及在有利于完成目标的氛围中刻画出初步的需求。FAST基本原则在中立的地点举行由开发者和用户出席的会议;102FAST会议步骤1) 当举行了开发者和用户之间的初步访谈后,确定一个FAST会议的时间地点,并在会议日之前将产品请求发布给所有的与会者。2) 要求每个FAST出席者会前列出一组围绕系统环境的对象,以及对这些对象的操作或对象之间的交互功能,并开发出约束列表(如,成本、规模大小、权重)和性能标准列表(如,速度、精度)。这些列表可以不是穷尽的,但是,希望每套列表反映的是每个人对系统的感觉。3) 进行FAST会议时,当团队的每个成员提出单个列表后,整个团队将创建一个组合的列表,该组合列表删去冗余项,并加入在表达过程中出现的新思想。在建好所有主题的组合列表后,开始讨论活动。缩短、加长或重新组合列表以适当地反映将被开发的产品。FAST会议步骤1) 当举行了开发者和用户之间的初步访谈后103FAST会议步骤(续)4) 一旦创建了意见一致的列表,应该将团队分为更小的小组,每个小组力图为每个列表中的一个或多个项开发出小型的规约(即对包含在列表中的单词或短语的精细化)。每个小组然后将他们开发的每个小规约提交给所有的FAST出席者讨论,进行添加、删除或进一步的精化等工作。(在所有讨论过程中,团队可能提出某些不能在会议过程中解决的问题,此时要保留问题列表以使这些思想在以后的活动中产生作用。)5) 在小规约完成后,每个FAST的出席者提出一个针对产品的确切标准列表,并将该列表提交给团队,然后创建一个意见一致的确定的标准列表。这个列表作为需求获取的结果,为需求分析和建模提供基础信息。FAST会议步骤(续)4) 一旦创建了意见一致的列表,应104用况(UseCase)当需求作为非正式会议、Fast的一部分而收集起来之后,分析员就可以创建一组标识一串待建造系统的使用场景。创建用况模型的主要步骤如下:确定谁会直接使用该系统,即参与者(Actor)选取其中一个参与者定义该参与者希望系统做什么,参与者希望系统作的每件事将成为一个用况对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用况的基本过程描述该用况的基本过程用况(UseCase)当需求作为非正式会议、Fast的一105接下来介绍可行性分析需求工程概述需求获取需求分析、协商与建模需求规约与验证需求管理接下来介绍可行性分析106需求分析原则1.必须能够表示和理解问题的信息域2.必须能够定义软件将完成的功能3.必须能够表示软件的行为(作为外部事件的结果)4.必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节5.分析过程应该从要素信息移向细节信息需求分析原则1.必须能够表示和理解问题的信息域107为什么要引入信息域?所有的软件应用程序均可被称为数据处理。如:工资系统的批处理软件,开发控制汽车发动机油流的实时嵌入式软件。将数据从一种形式变换为另一种形式对事件的处理也不例外。例如,压力传感器检测压力是否超过安全值,并发送警报到监控软件,警报信号是一个事件,该事件控制系统的行为。因此,数据(数值、字符、图象、声音等)和控制(事件)二者均驻留于问题的信息域内。为什么要引入信息域?所有的软件应用程序均可被称为数据处理。如108信息域信息域:包括信息内容、信息流、以及信息结构。信息内容表示了单个数据和控制对象,目标软件所有处理的信息集合由它们构成。例如,数据对象“工资”是一组重要数据体的组合:领款人的姓名、净付款数、付款总额、扣除额等等信息域信息域:包括信息内容、信息流、以及信息结构。109信息流表示了数据和控制在系统中流动时的变化方式,输入对象被变换为中间信息(数据和/或控制),然后进一步被变换为输出信息结构表示了各种数据和控制项的内部组织数据或控制项将被组织为n维表还是树形结构?在结构的语境内,什么信息是和其他信息相关的?信息包含在单个结构中,还是使用不同的结构?在某信息结构中的信息如何和在另一个结构中的信息相关?信息域信息流表示了数据和控制在系统中流动时的变化方式,输入对象被变110抽象、分解与多视点分析问题抽象方法要求分析人员在分析过程中捕捉用户描述或问题本身固有的一般-特殊关系首先关注一般问题的解决途径,进而指导特殊问题的解决方法。抽象、分解与多视点分析问题抽象方法要求分析人员在分析过程中111问题分解的目的是要能以层次化的方式对问题进行分解和不断细化。较大规模或较为复杂的问题可以被分解为若干子问题进行理解和分析分解可以逐级进行,直至子问题被分解为一个容易分析理解的部分例如横向分解纵向分解问题分解的目的是要能以层次化的方式对问题进行分解和不断细化。112需求协商协商的过程就是讨论需求冲突,找出每个人都满意的折衷方案协商不是简单的逻辑或技术上的争论要注意组织和行政方面的因素①不一致的目标②责任的丧失或转移③组织文化④组织管理态度和士气⑤部门差异需求协商协商的过程就是讨论需求冲突,找出每个人都满意的折衷113通常会议是解决冲突最快的方式参加者应该包括发现冲突、遗漏或重叠的分析员,以及可以解决发现的问题的项目相关人员会议应该讨论那些非正式讨论不能解决的问题通常会议分为三个阶段:叙述阶段讨论阶段决策阶段通常会议是解决冲突最快的方式114需求建模在软件需求分析阶段,所创建的模型,要着重于描述系统要做什么,而不是如何去做目标软件的模型不应涉及软件实现细节需求建模在软件需求分析阶段,所创建的模型,要着重于描述系统115常用的分析方法:面向数据流的结构化分析方法(SA)面向数据结构的分析方法面向对象的分析方法(OOA)常用的分析方法:116接下来介绍可行性分析需求工程概述需求获取需求分析、协商与建模需求规约与验证需求管理接下来介绍可行性分析117需求规约的原则1.从现实中分离功能,即描述要“做什么”而不是“怎样实现”。2.要求使用面向处理的规约语言(或称系统定义语言),讨论来自环境的各种刺激可能导致系统做出什么样的功能性反应,来定义一个行为模型,从而得到“做什么”的规约。3.如果被开发软件只是一个基于计算机的系统中的一个元素,那么整个大系统也包括在规格说明的描述之中。4.规约必须包括系统运行环境。需求规约的原则1.从现实中分离功能,即描述要“做什么”而不118需求规约的原则(续)5.规约必须是一个认识模型,而不是设计或实现的模型。6.规约必须是可操作的,以便能够利用它决定对于任意给定的测试用例,已提出的解决方案是否都能满足规约。7.规约必须允许不完备性并允许扩充。8.规约必须局部化和松散耦合。它所包括的信息必须局部化,这样当信息被修改时,只要修改某个单个的段落(理想情况)。同时,规约应被松散地构造(即松耦合),以便能够很容易地加入和删去一些段落。需求规约的原则(续)5.规约必须是一个认识模型,而不是设计119需求规约Ⅰ.引言A.系统参考文献B.整体描述C.软件项目约束Ⅱ.信息描述A.信息内容表示B.信息流表示:ⅰ数据流ⅱ控制流Ⅲ.功能描述A.功能划分B.功能描述:ⅰ处理说明ⅱ限制∕局限ⅲ性能需求ⅳ设计约束ⅴ支撑图C.控制描述ⅰ控制规约ⅱ设计约束Ⅳ.行为描述A.系统状态B.事件和响应Ⅴ.检验标准A.性能范围B.测试种类C.期望的软件响应D.特殊的考虑Ⅵ.参考书目Ⅶ.附录需求规约Ⅰ.引言A.系统参考文献B.整体描述C.软件项120引言陈述软件目标,在基于计算机的系统语境内进行描述。信息描述给出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论