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

下载本文档

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

文档简介

第三章需求分析

主要内容 需求分析概述 需求分析方法 需求获取方法 相关描述工具 需求验证 需求评审 需求管理 需求分析规格说明3.1 需求分析概述1、什么是需求分析 软件需求分析也称为需求工程,是软件生命周期中重要的一步。 对系统应该提供的服务和所受到的约束进行理解、分析、建立文档、检验的过程称为需求工程。 需求分析应在可行性分析基础上进一步了解确定用户需求,对系统目标、规模、功能、性能、接口、约束等做进一步的详细论述,准确地回答“系统必须做什么?”的问题,获得需求规格说明书。3.1 需求分析概述2、需求分析的重要性

软件需求分析关系到软件系统开发的成败,是决定软件产品质量的关键。一个系统的失败,往往都是追溯到系统需求问题。 需求分析规格说明既是软件生命周期的一个重要基线(里程碑),又是用户、软件开发人员、项目管理人员必须共同遵守的一个基线,它奠定了软件开发的基础。

需求变更应履行严格的需求变更管理流程。3.1 需求分析概述3、需求获取为什么难(1)需求具有动态性、不稳定性。(2)需求具有模糊性、不准确性。这与人员的素质、配合程度、理解能力、表述能力等有关。(3)需求需要取得用户和软件开发人员之间一致的理解和认可,责任重大。3.1 需求分析概述4、需求分析的基本任务 要准确地定义新系统的目标,为了满足用户需求,回答系统必须“做什么?”的问题,获得需求规格说明。

需求分析报告:着重面向用户。

需求分析规格说明书:着重面向软件开发人员。3.1 需求分析概述4、需求分析的基本任务(1)确定系统的综合要求确定系统功能要求:这是最主要的要求,确定系统必须完成的所有功能。确定系统性能要求:应就具体系统而定,例如可靠性、联机系统的响应时间、存储容量、安全性能、错误响应等。确定系统接口要求:指系统与它的环境、第三方硬软件产品之间的通信方式、规约等。3.1 需求分析概述4、需求分析的基本任务(1)确定系统的综合要求确定系统约束要求:指应遵守的限制条件,如标准规范、运算精度、开发工具、开发方法技术、运行环境、界面等方面的约束。确定系统运行要求:主要是系统运行时的环境要求,如系统软件、数据库管理系统、支撑软件、数据通信接口等.将来可能提出的要求:对将来可能提出的扩充及修改做预准备。3.1 需求分析概述4、需求分析的基本任务(2)分析系统的数据要求数据:需要哪些数据、数据间联系、数据性质、结构。数据处理:处理的类型、处理的逻辑过程。3.1 需求分析概述4、需求分析的基本任务(3)导出系统的逻辑模型 通常系统的逻辑模型用数据流图DFD、系统流程图、系统结构图、业务流程图、实体联系图、状态转换图、主要的处理算法(IPO图)等描述。(4)修正系统的开发计划

通过需求对系统的成本及进度有了更精确的估算,可进一步修改开发计划。3.1 需求分析概述5、需求工程过程可行性研究需求导出和分析需求描述需求有效性验证可行性报告系统模型用户需求和系统需求需求文挡问题识别分析与综合编写文档分析评审3.1 需求分析概述5、需求工程过程 问题分析阶段 需求描述阶段 需求验证阶段 需求评审阶段3.2 需求分析方法1、常见的需求分析方法(1)功能分析方法 将系统看作若干功能模块的集合,每个功能又可以分解为若干子功能,子功能还可继续分解,分解的结果已经是系统的雏形。 是一种面向业务流程、功能分解的需求分析方法。3.2 需求分析方法1、常见的需求分析方法(2)结构化分析方法

是一种面向数据流的需求分析方法,从画问题空间的数据流图DFD着手。(3)信息建模法

着重强调从建立现实世界的模型入手(包括功能模型、信息模型、数据模型、行为模型、控制模型、决策模型等)。3.2 需求分析方法1、常见的需求分析方法(4)原型化方法 强调从初步分析,建立问题领域的原型入手。(5)动态行为分析法 一个软件系统在运行过程中,构成系统的各元素(对象)的状态在改变,对象之间的联系也随时间在改变。 采用动态行为分析方法,可以直观地分析系统的动作,描述系统的动态特性。常用的动态行为分析方法有状态迁移图、时序图、Petri网等。3.2 需求分析方法1、常见的需求分析方法(6)面向对象的分析方法 面向对象的分析方法OOA的关键是识别问题域内的对象,分析它们之间的关系,并建立起三类模型(对象模型、行为模型、功能模型)。3.2 需求分析方法1、常见的需求分析方法

总结:

各种需求分析方法、各种描述工具(图表)有不同的侧重点和视角。 需求分析时往往要根据实际情况,合理选择、综合利用各种方法、技术、工具。3.2 需求分析方法2、结构化分析方法SA

结构化方法是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速,自然和方便。结构化方法总的指导思想自顶向下、逐步求精。它的基本原则是分解与抽象。3.2 需求分析方法1.11.21.3x2132.12.22.33.13.2分解:对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决(如右图)。抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个系统的方法就是“抽象”。3.2 需求分析方法2、结构化分析方法SASA的描述方法: (1)分层的数据流图。 (2)数据词典。 (3)描述加工逻辑的结构化语言、判定表及判定树。3.2 需求分析方法[例]医院病房监视系统产生病情报告监视病情更新病历3.2 需求分析方法[例]医院病房监视系统系统功能要求:

1、监视病员的病症(血压、体温、脉搏等)

2、定时更新病历

3、病员出现异常情况时报警。

4、随机地产生某一病员的病情报告。病员护士护士病员监护系统病员日志病症信号要求报告病症报告报警顶层DFD图:3.2 需求分析方法[例]医院病房监视系统医院病房监护系统分层DFD图第一层格式化病员数据生理信号极限值病员护士护士病员日志病症信号要求报告病症报告报警局部监视生成报告病员极限更新日志病员数据1324日志数据3中央监视3.2 需求分析方法[例]医院病房监视系统计算超过极限值否病员数据超过极限值报警解析信号产生报警信息病员极限格式化病员数据体温血压、体温、脉搏生理信号极限值时间脉搏血压日期时钟格式化病员数据3.13.23.33.4第二层:加工“中央监视”分解医院病房监护系统分层DFD图3.2 需求分析方法3、原型化方法构造原型运行/评价原型原型完成否要细部说明否严格说明细部效果满意否整理原型提供文档修正改进原型YYNN快速分析,确定初步规格说明YN 原型化方法进行系统的分析和构造有如下优点:

(1)增进软件开发人员和用户对系统需求的理解。便于将用户模糊的功能需求明确化。(2)为用户提供了一种强有力的学习手段。(3)易于确定系统的功能、性能,是理解和确认软件需求规格说明的工具。3.3 需求获取方法1、访谈 一般采用个别访谈、召开相关人员座谈会等形式,可以分为正式访谈、非正式访谈两种。(1)正式访谈:分析员精心准备一些具体问题,有目的地进行询问、交流、确认。(2)非正式访谈:分析员提出一些开放性的问题,尽量鼓励、引导用户说出自己的想法。3.3 需求获取方法2、问卷调查 制定需求问卷调查表,由相关人员书面回答,或者由分析人员根据问卷调查表内容引导用户回答。然后进行分析、整理、综合。

《需求问卷调查表》。3.3 需求获取方法3、跟班作业

现场跟班作业,通过跟踪实际业务操作、系统运行,可以了解到第一手资料。4、用户和开发方联合小组 用户和开发方成立联合小组,用户方组织相关的业务人员、管理人员、技术人员、决策人员参与系统的分析设计是非常有益的。3.3 需求获取方法5、讲解交流 分析员将理解的需求、分析的相关图表文档,通过描述、幻灯片展示等手段向用户方组织的相关人员讲解、交流,可以有效提高需求的一致性、准确性。 应面向用户中的操作层、管理层、决策层有重点地进行汇报。3.3 需求获取方法6、快速建立原型 快速建立用户可见的目标系统原型,与用户进行交流,可以增进软件开发人员和用户对系统需求的理解,便于将用户模糊的功能需求明确化。3.3 需求获取方法7、需求分析师基本要求(1)善于培训、引导用户提出需求。(2)良好的交流、社会交往、语言表达能力。(3)善于倾听、把握重点,具备良好的总结、概括、抽象能力。(4)良好的文字功底。(5)熟悉软件技术。(6)熟悉需求分析方法、需求分析文档编写思路。3.4 实体-联系图1、实体-联系图的作用实体-联系图用于建立概念数据模型(信息模型)。概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型。它描述了从用户角度看到的数据,它反映了用户的现实环境。实体-联系图主要包括描述的实体、实体属性、以及实体之间的关系。2、实体实体可以是人、事物、事件、实际存在的东西、概念性的东西。是系统需要描述、刻画的对象。3、属性属性是实体的性质或特征,具体表现为一些信息项目。3.4 实体-联系图4、联系一对一的联系(1:1):即一个实体只能对应一个实体。一对多的联系(1:n):即一个实体可对应多个实体。多对多的联系(m:n):即一个实体类型中的多个实体与另一个实体类型中的多个实体相联系。3.4 实体-联系图5、实体-联系图表示法表示实体表示实体属性表示实体间的联系多对多联系多对一联系一对一联系3.4 实体-联系图[例]教学管理教师学生课程课程号课程名学时学分教学教工号姓名性别职称职务学号姓名年级系性别成绩1:NM:N3.5 状态转换图1、状态转换图的作用 状态转换图,也叫状态迁移图,描述系统的所有状态、以及引起状态转换的事件,来表示系统的行为,从而建立系统的行为模型(动态模型)。 关于动态行为描述,请自学Petri网、形式规约技术等内容。3.5 状态转换图2、状态迁移图、状态迁移表3.5 状态转换图[例]电话系统的状态图闲置拨号音Timer=0Do/响拨号音且增加timer拨号超时Do/响蜂鸣音存储的信息Do/播放信息接通中Do/试接通振铃Do/振铃通话断线忙音Do/响忙音拿起听筒数字有效号码无效号码超时挂断电话已接通受话人回话受话人挂断电话占线挂断电话3.6 层次方框图1、层次方框图的作用 层次方框图用树形结构的一系列多层次的矩形框描绘系统功能、系统构成、系统数据关系等的层次关系结构。3.6 层次方框图2、某计算机公司全部产品的数据结构产品硬件软件服务处理机存储器外部设备系统软件操作系统编译程序软件工具应用软件软件服务硬件维修培训3.7 IPO图1、IPO图的作用

IPO图是输入、处理、输出图的简称,他是IBM公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。 一个IPO图通常用于描述一个处理算法、或一个处理过程。3.7 IPO图2、银联卡处理过程插入银联卡输入密码选择取款操作输入取款金额读卡判断为非法储户判断为合法储户判断密码错误判断密码正确判断有合理余额取款处理提示非法、取卡提示输入密码提示密码错误显示操作菜单提示输入金额提示取款输入(I)处理(P)输出(O)3.8 需求验证1、从那些方面验证软件需求的正确性

一致性:所有需求必须是一致的,任何一条需求不能和其它需求互相矛盾。

完整性:需求必须是完整的,规格说明书应包括用户需要的每一个功能、性能。

现实性:可实现的。

有效性:确实能够解决用户提出的问题。3.8 需求验证2、如何验证软件需求(1)验证需求的一致性 用非形式化(自然语言、图表)描述的需求分析成果只有靠人工验证。 用形式化语言描述的需求分析成果可以借助于一些CASE工具来验证。3.8 需求验证2、如何验证软件需求(2)验证需求的现实性 应参照以往开发类似系统的经验、相同或相似行业的开发经验,来验证技术上是否可行。(3)验证需求的完整性和有效性 最好的办法是建立一个原型,因为实际的用户很难从需求报告、需求分析规格说明中直观地了解到目标系统的状况。3.9 需求评审 以用户代表、专家、分析设

温馨提示

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

评论

0/150

提交评论