软件工程学:需求分析第三章_第1页
软件工程学:需求分析第三章_第2页
软件工程学:需求分析第三章_第3页
软件工程学:需求分析第三章_第4页
软件工程学:需求分析第三章_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章 软件需求分析3.1需求分析的基本任务 准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么。用 规范的形式准确地表达用户的需求。3.2 需求工程概述 需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。 需求工程的活动:需求获取需求建模形成需求规格(规约)需求验证需求管理需求工程的层次分解示意图 需求工程 需求工程 需求管理 需求获取需求提炼需求描述 需求验证需求获取:通过与用户的交流,对现有系统的观察及对任务进行分析,从而开发、捕获和修订用户的需求。它通过合适的工具和记号系统地描述待开发系统及其行为特

2、征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支持。 需求提炼:分析建模(导出软件逻辑模型)为最终用户所看到的系统建立一个概念模型,作为对需求的抽象描述,并尽可能多的捕获现实世界的语义 需求描述:生成需求模型的精确的形式化的描述,作为用户和开发者之间的一个协约; 需求验证:以需求规格说明为输入,通过符号执行、模拟或快速原型等途径,分析需求规格的正确性和可行性; 需求管理:支持系统的需求演进,如需求变化和可跟踪性问题。 (1) 确定对系统的综合需求功能需求性能需求可靠性和可用性需求出错处理需求接口需求约束 逆向需求将来可能提出的需求数据需求3.3 需求分析的任务功能需求 系统必须做什

3、么?性能需求 软件开发的技术性指标例如: 存储容量限制 执行速度、响应时间 吞吐量可靠性和可用性需求 机场雷达系统在一个月内不能出现2次以上故障。在任何时候主机或者备份机上的机场雷达系统应该至少有一个是可用的,而且在一个月内在任何一台计算机上该系统不可用的时间不能超过总时间的2%。出错处理需求 说明系统对环境错误应该怎样响应,或者当系统发现自己犯错误时应该如何行动。例如:如果系统接收到另一个系统发送的违反协议格式的消息,应该做什么?接口需求 描述应用系统与他的环境通信的格式。用户接口需求,硬件接口需求,软件接口需求,通信接口需求。例如:把商品从货源地运送到目的地所需要的成本,应该一直在“成本”

4、框里显示。向运输公司传送“需要运输的商品”信息时,格式要和“商品目录”中商品的格式一致。约束 设计或者实现系统时应该遵循的限制条件。 精度、工具约束、应该使用的标准、应该采用的硬件平台。逆向需求 系统不该做什么?应力分析程序无需分析桥梁倒塌数据。将来可能提出的需求 将来可能提出的需求,目的是为了系统扩充和修改作准备。(2)系统的数据要求 建立数据模型 用图形工具辅助描绘数据结构 数据结构规范化(3)导出系统的逻辑模型(4)修正系统开发计划3.4 需求获取的方法访谈面向数据流自顶向下求精简易的应用规格说明技术快速建立软件模型(1)访谈正式的、非正式的访谈(调查表法)情景分析技术某出版社系统调查表

5、编号提出问题1您在哪个部门工作?2出版业务流程是什么?3您每日都处理那些文件、数据、报表?4工作中手工处理特别麻烦的事情是什么?5工作中手工处理什么问题解决不了?影响效率的问题有哪些?6您认为提高工作效率,节省工作时间,减轻工作强度可采取哪些办法?某出版社系统调查表编号提出问题7您的部门需要成本核算和统计的内容有哪些?8您的部门采用计算机管理工作情况如何?9如何改进业务流程使之更合理?10哪些问题是目前传统手工方法根本无法解决的?11出版社计算机管理信息系统需要解决什么问题?(2)面向数据流自顶向下求精目标是把数据流和数据存储定义到元素级。沿数据流图从输出端往输入端回溯,应该能够确定每个数据元

6、素的来源,与此同时也初步确定了有关的算法。通常把分析过程中得到的有关数据元素信息记录在数据字典中,把对算法的简明描述记录在IPO图中。(3)简易的应用规格技术(FAST) 面向团队的需求获取方法。提倡用户与开发者密切合作,共同标识主题,提出解决方案,商讨不同方案并且指定基本需求。初步访谈,写出产品需求,产品需求要求列出对象及其服务,约束条件,性能标准讨论列表,并且组合列表分组制定小型规格说明并且讨论每个小组制定一整套确认标准,经讨论,起草完整的软件需求规格说明书。假定一个为消费者产品公司工作的FAST团队已经提交了下面的产品描述:我们的研究表明:家庭安全系统的市场正以每年40%的比率增长,我们

7、希望进入该市场,试图建造基于微处理器的家庭安全系统,该系统将保护/识别一系列不希望的“情况”,如非法进入、火警、水灾或者其他,该产品,暂时称为SafeHome,将使用合适的传感器来检测每种情况,可由房主编程,并且当情况被检测到时,自动地给监控机构拨电话。FAST团队的每个人开发上面描述的列表:SafeHome可能包括:若干烟雾检测器、若干门窗传感器、若干运动检测器、一个警报器、一个事件(某个传感器被激活)、一个控制面板、一个显示器、一组电话号码、一次电话拨号等等。服务列表可能包括:设置警报器、监控传感器、电话拨号、控制面板编程以及读显示器。规约可能包括:系统制造成本低于500元,用户界面友好,

8、必须能和标准电话线连接性能标准:传感器事件必须能在一秒之内识别,应该采用事件优先级模式。会议开始时,就讨论每个人的列表,然后创建一个组合列表。创建后,团队分为小团队,每个子团队试图为每个列表中的一个或者多个项开发小规约。例如对控制面板的小规约可能是:安装在墙上大小大约为9英寸5英寸包含标准的12键键盘和特殊键包含LCD显示,形为草图所示所有的客户交互通过键发生被用于启动或关闭系统软件提供交互指南,回显等被连接到传感器小规约经过讨论细化后,提交,形成一个意见一致的确认标准列表,然后撰写完整的规约草案的任务。SafeHomede控制面板与用户交互SAFEHOMEARMED POWER0112345

9、6789*0#OFF AWAY STAYMAX TEST BYPASSINSTANT CODE CHIMEREADYpanicalarmcheckfireawaystayinstantbypassnot readyUse-case 当需求被收集后,软件工程师(分析员)可以创建一组标识一串待构造系统的使用场景。这些场景经常被称为use-case,它提供了系统将如何被使用的描述。标识参与者系统运行时人员(设备)所扮演的角色,是任何与系统或者产品通信的事物,对系统而言,它是外部的。参与者和用户:一个参与者是一个角色,用户可以扮演不同角色。举例例如:一个机床操作员(一个用户),他和包含了一组机器人和数

10、控机床的生产车间的控制计算机交互。评审后,发现控制计算机的软件需要四种不同的交互模式(角色):编程模式、测试模式、监控模式和纠错模式。因此,四个参与者可以:编程员,测试员,监控员,纠错员。某些情况下,机床操作员可以扮演所有这些角色,另一些情况下,不同的人员扮演不同的参与者。开发use-case参与者主要完成的任务或功能?参与者主要获取、生产或者改变什么系统信息?该参与者是否必须通知系统关于外部环境的变化?该参与者是否希望被通知未预期的变化?SafeHome三个参与者:房主(用户),传感器(附属于系统的设备),监控和响应子系统(监控SafeHome的中央站)。房主和产品的交互输入密码以允许所有其

11、他交互查询安全区的状态查询传感器的状态在紧急情况下按下紧急按钮激活/关闭安全系统一个关于“系统激活”的use-case:房主观察SafeHome控制面板,以确定是否系统已准备好接收输入。如果系统未准备好,房主必须关上窗户门,以便ready指示灯亮(not ready亮意味着某传感器是开着的,即某个门或者窗户是开着的)。一个关于“系统激活”的use-case:房主使用键盘输入4位密码。将密码与存储在系统的有效密码进行比较,如果密码不正确,控制面板将鸣叫一声并复位自己等待再次输入。如果密码正确,控制面板等待下一步的动作。一个关于“系统激活”的use-case房主选择键入“away”或者“stay”

12、,前者激活所有传感器,后者只激活外部传感器当处于激活状态时,房主可以观察到一个红色警报灯。FAST活动的结果:SafeHome软件使房主能够在安装时配置安全系统、监控所有和安全系统连接的传感器以及通过包含在SafeHome控制面板(control panel)中的键盘和功能键与房主交互。在安装过程中,控制面板被用于“编程”和配置系统,每个传感器被赋予一个编号和类型,主人密码被编程以启动和关闭系统,而且当传感器事件发生时输入电话号码拨号。当传感器事件被识别出时,软件激活附于系统上的可发声的警报,在一定的延迟时间内(由房主在配置系统指定)后,软件拨出监控服务的电话号码并提供关于位置的信息,报告被检

13、测到的事件的性质,电话号码每20秒重拨一次,直至电话接通。所有和SafeHome的交互由用户交互子系统管理,该子系统读入键盘和功能键的输入,在LCD显示屏上显示提示消息和系统状态。(4)快速建立软件原型原型化方法的基本思想是花费少量代价建立一个可运行的系统,使用户及早获得学习的机会,原型化方法又称速成原型法(Rapid Prototyping),构建原型的要点是实现用户看得见的功能,省略目标系统的隐含功能。由于软件项目的特点和运行原型的目的不同,分为两种类型:软件原型的分类2、追加(add on)型也称快速建立渐进原型RCP法(Rapid Cyclic Prototyping)采用循环渐进的开

14、发方式,对系统模型作连续精化,即先构造一个功能简单而且质量要求不高的模型系统,将系统需要具备的性质逐步添加上去,通过不断地扩充修改,逐步追加新的要求,直至所有性质全部满足,此时的原型模型也就是最终的产品。1、废弃(throw away)型也称为快速建立需求规格原型RSP法(Rapid Specific Prototyping),先构造一个功能简单而且质量要求不高的模型系统,针对这个模型系统反复进行分析修改,让用户学习。待需求说明书一旦确定,原型将被废弃,后阶段的工作仍按照瀑布模型开发。快速分析 快速确定软件系统的基本要求,确定原型所要体现的特性(总体结构,功能,性能、界面等)。2.构造原型 根

15、据基本规格说明,忽略细节,只考虑主要特性,快速构造一个可运行的系统。3.运行和评价原型用户试用原型并与开发者之间频繁交流,发现问题,目的是验证原型的正确性。4.修正与改进 对原型进行修改,增删。运 行评价 构造快速分析或修改快速原型开发模型快速原型法的工作模型如图所示,按以下步骤循环执行。原型化模型构造原型运行/评价原型原型完成否要细部说明否严格说明细部效果满意否整理原型提供文档修正改进原型YYNN快速分析,确定初步规格说明YN快速原型化开发过程 快速建立系统原型进行系统的分析和构造有如下优点: 1、增进软件开发人员和用户对系统需求的理解。便于将用户模糊的功能需求明确化。2、为用户提供了一种强

16、有力的学习手段。3、易于确定系统的性能,是理解和确认软件需求规格说明的工具。4、按照RCP 法建立的原型即为最终的产品。 细化的原型化模型建立原型使用的方法和工具第四代技术可重用的软件构件形式化规格说明和原型环境3.4 分析建模模型是对对象系统的形式化的特征抽象,概括性或近似地表示;构造模型的过程是一个抽象、分析的过程。分析阶段主要建立三种模型:数据模型,功能模型,行为模型。对象系统模型系统抽象(映射)模型应用模型构造的过程当前系统模型化目标系统物理模型具体化物理模型抽象化逻辑模型实例化逻辑模型做什么导出理解需求 表达需求 逻辑模型 物理模型 (本质模型、概念模型) (实施模型、技术模型)现行

17、系统目标系统描述重要的业务功能,无论系统是如何实施的。描述现实系统是如何在物理上实现的。描述新系统的主要业务功能和用户新的需求,无论系统应如何实施。描述新系统是如何实施的(包括技术)。分析阶段中常用的模型(逻辑模型)数据流图(DFD)实体联系图( ERD )类图用例图顺序图状态图协作图数据字典 需求建模实例:用例图举例(UML)签定一份保险单客户保险销售人员销售统计客户统计 需求建模实例:描述客房状态的状态图取消预定入住已预订空闲占用维修维修完成退房换房入住换房事件创建客人姓名地址身份证号码护照号码预订入住住宿编号付款方式退房客房状态日期人数设置状态 客房服务日期数量设置读取服务类别名称价格设

18、置 10.*10.*0.*0.11.*10.*1*需求建模实例: UML类图实例 需求建模实例:接电话的顺序图 (UML)受话者交换机远程交换机受话者拿起话筒听通话声拨号码.铃响信号铃响铃响停止信号拿起话筒铃响停止10 deabcb-a1e-d5c-b10路径需求建模实例:UML协作图举例计算机队列打印服务器打印机打印文件 打印机忙保存打印文件打印机空闲打印文件 经过初步的需求分析,得到系统功能要求:1、监视病员的病症(血压、体温、脉搏等)。2、定时更新病历。3、病员出现异常情况时报警。4、随机地产生某一病员的病情报告。实例:医院病房监护系统产生病情报告监视病情更新病历系统功能要求: 1、监视

19、病员的病症(血压、体温、脉搏等) 2、定时更新病历 3、病员出现异常情况时报警。 4、随机地产生某一病员的病情报告。顶层:病员护士护士病员监护系统病员日志病症信号要求报告病症报告报警第一层:病员护士护士/医生中央监视病员日志病症信号要求报告病症报告报警局部监视生成报告病员极限更新日志病员数据格式化病员数据生理信号极限值1324日志数据日志数据医院病房监护系统顶层DFD图第二层:加工“中央监视”分解计算超过极限值否病员数据超过极限值报警开解信号产生报警信息病员极限格式化病员数据体温血压、体温脉搏生理信号极限值时间脉搏血压日期时钟格式化病员数据3.13.23.33.4医院病房监护系统二层DFD图计

20、算超过极限值否病员数据超过极限值报警开解信号产生报警信息病员极限格式化病员数据体温血压、体温、脉搏生理信号极限值时间脉搏血压日期时钟格式化病员数据3.13.23.33.4第二层:加工“中央监视”分解医院病房监护系统分层DFD图第一层格式化病员数据生理信号极限值病员护士护士/医生中央监视病员日志病症信号要求报告病症报告报警局部监视生成报告病员极限更新日志病员数据1324日志数据需求陈述:SafeHome软件使房主能够在安装时配置安全系统、监控所有和安全系统连接的传感器以及通过包含在SafeHome控制面板(control panel)中的键盘和功能键与房主交互。在安装过程中,控制面板被用于“编程

21、”和配置系统,每个传感器被赋予一个编号和类型,主人密码被编程以启动和关闭系统,而且当传感器事件发生时输入电话号码拨号。当传感器事件被识别出时,软件激活附于系统上的可发声的警报,在一定的延迟时间内(由房主在配置系统指定)后,软件拨出监控服务的电话号码并提供关于位置的信息,报告被检测到的事件的性质,电话号码每20秒重拨一次,直至电话接通。所有和SafeHome的交互由用户交互子系统管理,该子系统读入键盘和功能键的输入,在LCD显示屏上显示提示消息和系统状态。SafeHome系统配置系统监控系统用户交互系统水平分解软件系统配置系统监控系统用户交互系统传感器事件处理激活警报读传感器识别传感器事件激活/不激活传感器激活发声警报拨号SafeHome的第0层 SafeHomede软件系统用户命令和数据显示信息控制面板传感器传感器状态警铃电话线警告类型电话号码拨音控制面板显示SafeHomede的第1层控制面板与用户交互控制面板密码电话号码拨音传感器状态显示信息配置请求用户命令和数据配置系统警铃电话线传感器配置信息显示信息和状态监控传感器激活不激活系统传感器信息密码处理警告类型检验id信息开始停止状态信息监控传感器的第2层电话号码拨音传感器状态配置数

温馨提示

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

评论

0/150

提交评论