软件开发工程管理2008三_第1页
软件开发工程管理2008三_第2页
软件开发工程管理2008三_第3页
软件开发工程管理2008三_第4页
软件开发工程管理2008三_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

本讲主要内容需求工程软件需求

——概述(1)什么是软件需求?用户解决问题或达到目标所需的条件或能力系统或系统部件要满足合同、标准、规范或其他正式文档所需具有的条件或能力一种反映上面第一点或第二点所描述的条件或能力的文档说明软件需求

——概述(2)软件需求就是输入与输出吗?系统的输入系统的输出系统的功能系统的属性可靠性、可维护性、吞吐量等系统环境的属性不同负载下的运行能力、对OS的兼容性等软件需求

——概述(3)软件需求的抽象层次原始问题描述用户需求系统需求软件设计描述原始问题空间解决方案空间描述困难需求混乱功能需求非功能需求领域需求软件需求

——与其他过程联系项目计划过程系统构建过程跟踪控制过程变更控制过程系统测试过程文档编制过程需求工程简介步骤:需求获取需求分析和谈判需求规约系统建模需求确认需求管理写在需求获取之前写在需求获取之前写在需求获取之前我知道你相信你已经理解了你认为我所说的内容,但是我并不能肯定你已认识到你所听到的并不是我所想要的。需求获取需求不能很容易被获取的原因:范围问题系统边界未被良好定义客户夸大细节理解问题客户需求不准确沟通时方式不对自身逻辑冲突易变问题需求获取方法

——准备工作准备工作:熟悉客户的领域建立术语表需求获取方法

——访谈访谈:第一次亲密接触程式化的(structured)受限回答的(close-ended)非程式化的(unstructured)可自由回答的(open-ended)书面报告问语境无关的问题谁是这项工作的最初请求者?谁将使用该解决方案?成功的解决方案的经济收益是什么?存在另一个你需要的解决方案源吗?

……问与解决方案有关的问题你将如何刻画将由某成功的解决方案产生的“好的”输出?该解决方案强调了什么问题?你能向我显示(或描述)解决方案将被使用的环境吗?存在将影响解决方案的特殊性能问题或约束吗?问有关本次会议效率的问题你是回答这些问题的合适的人员吗?你的回答是“正式的”吗?我的提问和你想解决的问题相关吗?我是否问了太多的问题?还有其他人员可以提供附加信息吗?还有其他我应该问你的任何问题吗?例:通过访谈可能得到的软件范围描述我们的研究表明,家庭安全系统的市场正以每年40%的比率增长。我们希望进入该市场,试图建造给予微处理器的家庭安全系统,该系统将保护和/或识别一系列不希望的“情况”,如非法进入、火警、水灾或其他。该产品,暂时称为SafeHome,将使用合适的传感器来检测每种情况,可由房主编程,并且当情况被检测到时,自动地给监控机构拨打电话。需求获取方法

——FAST方法(1)便利的应用规约技术(facilitatedapplicationspecificationtechnique,FAST):面向团队的需求获取方法团队:客户和开发者通过团队,尽可能地避免分歧需求获取方法

——FAST方法(2)原则:在中立的地点举行会议由软件工程师和客户出席建议一个正式的议程标明待讨论的内容应尽量覆盖重点请一个“协调者”控制会议使用一种“定义机制”来描述问题工作表、图表、BBS、论坛需求获取方法

——FAST方法(3)目标:标识问题提出解决方案讨论可用方法建立一个良好的氛围刻画初步解决方案的需求集合需求获取方法

——FAST方法(4)例:第一次FAST会议会前准备选择时间、地点、日期选举“协调者”发放会议材料会中讨论所有人均表达自己意见整合意见讨论意见得到初步结论会后总结对系统中应有对象的描述对定义在对象上的服务的描述系统约束性能标准需求获取方法

——FAST方法(5)实例:SafeHome系统SafeHome系统的FAST团队市场软件硬件投资商需求获取方法

——FAST方法(6)SafeHome系统的FAST会前准备团队中所有人撰写自己的讨论列表对象列表功能列表约束列表性能标准列表需求获取方法

——FAST方法(7)SafeHome系统的FAST会议讨论新产品的需要程度、开发理由所有人提出自己的讨论列表整合列表讨论整合后的列表并适当修改意见一致后,将团队分为多个子团队,每个团队分别讨论列表中的一个或多个项生成一系列小规约(mini-specification)所有人共同讨论所有小规约每个人均提交一个“确认标准列表”,汇总并生成最终列表如果讨论中有分歧怎么办?尽可能协调解决如果讨论中产生暂时无法解决的新问题怎么办?生成问题列表备用例:通过FAST方法可能得到的规约有关“控制面板”的规约:安装在墙上大小约为9英寸*5英寸包含标准的12键键盘和特殊键包含LCD显示,形为图XXX所示所有客户的交互通过按键发生被用于启动和关闭系统软件提供交互指南、回显等被连接到所有传感器需求获取方法

——情景(1)情景(Scenario)(use-case):描述用户可能利用目标产品完成某些目的的一种方式描述系统将被如何使用情景内容:包括预期出现的事件序列包括全部的“异常”(Exception)情景作用:用户可理解用户自始至终发挥作用利于面向对象分析需求获取方法

——情景(2)描述情景给谁看?参与者参与者不等同于用户不可能一次标识出所有参与者需求获取方法

——情景(3)情景应该表达出来的信息:该参与者完成的主要任务或功能是什么?该参与者将获取、生产或改变什么系统信息?该参与者是否希望被通知未预期的变化?应由参与者对每个情景进行评估,以区分不同情景的重要性例:通过情景可能得到的用例SafeHome中房主和系统的交互:输入密码以允许所有其他交互查询安全区的状态查询传感器的状态在紧急情况时按下紧急按钮激活或关闭安全系统……例:通过情景可能得到的用例用例:系统激活房主观察控制面板,以确定是否系统已准备好接受输入。如果系统未准备好,房主必须物理地关闭门窗,以便“就绪”指示灯出现房主使用键盘键入4位密码。将密码和存储在系统中的有效密码进行比较。如果密码不正确,控制面板将鸣叫一声并复位自己等待再次输入。如果密码正确,控制面板等待进一步动作。房主按下“1#”或“2#”键以启动系统。当系统处于激活状态时,房主可以观察到一个红色警报灯。需求获取方法

——其他问卷调查表(Questionnaire):表格(Form)摄像etc.需求获取方法

——总结通常步骤:针对提议的系统评估业务及技术可行性确定那些能够帮助刻画需求和了解他们的组织偏爱的人员定义系统(或产品)将放置其中的技术环境确定“领域约束”,这些约束将限制待建造的系统(或产品)的功能(或性能)定义一种(或多种)需求获取方法要求很多人员参与,以使得需求能够从不同的视角进行定义;确定每个要记录的需求的理由确定有歧义的需求为原型实现的候选创建使用场景,帮助客户更好地确定需求需求获取的产品需要和可行性的陈述系统(或产品)的范围的限制性陈述参与需求获得活动的客户、用户和其他风险承担者的列表系统的技术环境的陈述需求的列表和应用于每个需求的领域限制一组使用场景,提供对在不同运行条件下系统(或产品)的使用的见识为更好地定义需求而开发的任意原型需求分析

——综述(1)什么是需求分析?是一种软件工程活动它在系统级需求工程和软件设计间起到桥梁的作用需求分析

——综述(2)需求工程活动作用:产生软件的运行特征的规约如:功能、数据和行为指明软件和其他系统元素的接口建立软件必须满足的约束需求分析

——综述(3)需求分析作用:精化软件需求建造将被软件处理的数据领域、功能领域和行为领域的模型为软件设计者提供可被翻译成数据设计、体系结构设计、接口设计和构件级设计的信息、功能和行为的表示通过生成需求规约使开发者和客户拥有评估软件质量的工具需求分析

——综述(4)需求分析关注“什么(What)”,而不是“怎么做(How)”如:系统生产和消费什么数据?系统必须完成什么功能?什么接口被定义?什么约束被应用?需求分析

——分析原则(1)指导分析工作的基本原则是什么?问题的信息域必须被表示和理解;软件将完成的功能必须被定义;软件的行为必须被表示;描述信息、功能和行为的模型必须被划分,并可以以层次的方式揭示细节;分析过程应该从要素信息移向实现细节。需求分析

——分析原则(2)什么是问题的信息域?包含数据项或对象数据项或对象包含数字、文本、图像、音频、视频或它们的任意组合。此外,还有控制事件需求分析

——分析原则(3)对信息域的分析需构造三个不同的数据和控制视图信息内容和关系(数据模型)包括个体数据和控制对象以及之间的关联信息流数据和控制在系统中流动时变化的方式信息结构各种数据和控制项的内部组织需求分析

——分析原则(4)对功能进行建模功能包括输入、处理和输出功能模型从单个语境层模型开始,经过一系列的迭代,越来越多的功能细节被提供,直至得到所有系统功能的完全描绘。需求分析

——分析原则(5)对行为进行建模行为指软件对来自外界的事件作出的反应因为事件的出现,使软件状态发生了改变行为模型创建软件状态的表示,以及导致软件状态变化的事件的表示需求分析

——分析原则(6)建模的好处:模型帮助分析员理解系统的信息、功能和行为,使需求分析任务更容易、更系统模型是评审的焦点,可以使规约更完整、一致和精确模型是设计的基础,对“实现”有很好的指导作用需求分析

——分析原则(7)要素视图和实现视图也叫“逻辑视图和物理视图”要素视图:给出了将被完成的功能和将被处理的信息,而不管实现细节实现视图:给出了处理功能和信息结构的现实世界表示需求分析

——分析原则(8)什么是划分?划分(partition):对问题的分解例:SafeHome系统安装和配置安全系统监控所有传感器和房主交互SafeHome系统水平分解监测传感器和用户交互安装和配置系统启动报警功能处理传感器消息自动电话拨号发出声音警报垂直分解需求分析

——分析原则(9)部分具体原则:在开始建立分析模型前先理解问题开发使用户能够了解人机交互将如何发生的原型记录每个需求的起源使用多个需求视图给需求赋予优先级努力删除歧义性需求分析

——快速原型(1)什么是快速原型?仓促建立的软件展示目标软件产品的主要功能建立快速原型的重点是什么?快速易于更改需求分析

——快速原型(2)使用什么样的工具开发快速原型?HTMLVC++J++Perletc.快速原型应该实现些什么?功能模拟人机界面两种快速原型开发模型需求分析

——快速原型(3)不应由快速原型取代规格说明!

温馨提示

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

评论

0/150

提交评论