第三章 软件工程 需求分析.ppt
《第三章 软件工程 需求分析.ppt》由会员分享,可在线阅读,更多相关《第三章 软件工程 需求分析.ppt(88页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章 需求分析需求分析鄢煜尘鄢煜尘图像处理与智能系统实验室图像处理与智能系统实验室结构化分析设计过程结构化分析设计过程阶段阶段关键问题关键问题结束标准结束标准问题定义问题定义问题是什么?问题是什么?关于规模和目标的报告书关于规模和目标的报告书可可行行性性研研究究有可行的解吗?有可行的解吗?系统的高层逻辑模型系统的高层逻辑模型数据流图数据流图成本成本/效益分析效益分析需求分析需求分析系系统统必必须须做做什什么么?系统的逻辑模型系统的逻辑模型数据流图数据流图数据字典数据字典算法描述算法描述软件工程第三章 需求分析22023/1/4 引言引言 软件需求分析是软件开发早期的一个重要阶段。它软件
2、需求分析是软件开发早期的一个重要阶段。它在问题定义和可行性研究阶段之后进行。需求分析的基在问题定义和可行性研究阶段之后进行。需求分析的基本任务是软件人员和用户一起完全弄清用户对系统的确本任务是软件人员和用户一起完全弄清用户对系统的确切要求。这是关系到软件开发成败的关键步骤,也是整切要求。这是关系到软件开发成败的关键步骤,也是整个系统开发的基础。个系统开发的基础。什么是需求什么是需求IEEE(电气和电子工程师电气和电子工程师协会)协会):用户解决问题或达到目标所需要的条件用户解决问题或达到目标所需要的条件或能力或能力系统或系统部件要满足合同、标准、规范或其他正式规系统或系统部件要满足合同、标准、
3、规范或其他正式规定文档所要具有的条件定文档所要具有的条件或能力或能力反映反映上面两条的文档说明上面两条的文档说明通俗定义:通俗定义:需求是指明系统必须实现什么的规约,它描述了系需求是指明系统必须实现什么的规约,它描述了系统的行为、特性或属性,是在开发过程中对系统的约束统的行为、特性或属性,是在开发过程中对系统的约束需求分析的目的需求分析的目的需求分析是一项软件工程活动,其目的是:需求分析是一项软件工程活动,其目的是:清楚地理解所要解决的问题,完整地获取用户要求;清楚地理解所要解决的问题,完整地获取用户要求;刻划出软件的功能和性能;刻划出软件的功能和性能;指明软件与其他系统元素的接口;指明软件与
4、其他系统元素的接口;建立软件必须满足的约束。建立软件必须满足的约束。-准确地回答准确地回答“系统必须做什么系统必须做什么?”软件工程第三章 需求分析5需求分析的重要性需求分析的重要性开发软件系统最为困难的部分就是准确说明开发软件系统最为困难的部分就是准确说明开发什么。最为困难的概念性工作便是编写开发什么。最为困难的概念性工作便是编写出详细技术需求,这包括所有出详细技术需求,这包括所有面向用户、面面向用户、面向机器和其它软件系统的接口向机器和其它软件系统的接口。同时这也是。同时这也是一旦做错,将会最终给系统带来极大损害的一旦做错,将会最终给系统带来极大损害的部分,而且以后再对它进行修改也极为困难
5、部分,而且以后再对它进行修改也极为困难。软件工程第三章 需求分析6真的很重要吗?真的很重要吗?例:例:一个很好的例子:用在欧洲航天局太空火箭一个很好的例子:用在欧洲航天局太空火箭Ariane-5Ariane-5上上的嵌入式软件。的嵌入式软件。19961996年年6 6月月4 4日,该火箭第一次飞行投入使用,日,该火箭第一次飞行投入使用,刚工作约刚工作约4040秒,飞行便开始偏离其轨道。沿着秒,飞行便开始偏离其轨道。沿着ArianeAriane地面控地面控制器的方向飞行,火箭最终被摧毁。火箭摧毁,损失的不仅制器的方向飞行,火箭最终被摧毁。火箭摧毁,损失的不仅是火箭本身,还有它携带的四个人造卫星。
6、总损失达到是火箭本身,还有它携带的四个人造卫星。总损失达到500500 millionmillion美元。美元。最后查明原因:在最后查明原因:在Ariane-5Ariane-5飞行轨道的需求文档中,没飞行轨道的需求文档中,没有分析其飞行路线,认为和有分析其飞行路线,认为和Ariane-4Ariane-4一样。一样。需求分析的困难需求分析的困难 1、客户客户说不清楚需求;说不清楚需求;有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。有些客户心里非常清楚想要什么,但却说不明白。有些客户心里非常清楚想要什么,但却说不明白。如如果果客客户户本
7、本身身就就懂懂软软件件开开发发,能能把把需需求求说说得得清清清清楚楚楚楚,这这样样的的需需求求分分析析将将会会非非常常轻轻松松、愉愉快快。如如果果客客户户全全不不懂懂软软件件,但但信信任任软软件件开开发发方方,这这事事也也好好办办。分分析析人人员员可可以以引引导导客客户户,先先阐阐述述常常规规的的需需求求,再再由由客客户户否否定定不不需需要要的的,最最终终确确定定客客户户真真正正的的需需求求。最最怕怕的的就是就是“不懂装懂不懂装懂”或者或者“半懂充内行半懂充内行”的客户,他们会提出不切实际的需求。的客户,他们会提出不切实际的需求。2、需求需求自身经常变动;自身经常变动;需求肯定会变动需求肯定会
8、变动(1)尽尽可可能能地地分分析析清清楚楚哪哪些些是是稳稳定定的的需需求求,哪哪些些是是易易变变的的需需求求。以以便便在在进进行行系系统统设设计时,将软件的核心建筑在稳定的需求上,否则将会吃尽苦头。计时,将软件的核心建筑在稳定的需求上,否则将会吃尽苦头。(2)在在合合同同中中一一定定要要说说清清楚楚“做做什什么么”和和“不不做做什什么么”。如如果果合合同同含含含含糊糊糊糊,日日后后扯皮的事情就多。扯皮的事情就多。3、分析分析人员或客户理解有误。人员或客户理解有误。客户表达的需求,不同的分析人员可能有不同的理解。客户表达的需求,不同的分析人员可能有不同的理解。写写好好需需求求说说明明书书后后,要
9、要请请客客户户方方的的各各个个代代表表验验证证。如如果果问问题题很很复复杂杂,双双方方都都不不太太明明白白,就有必要请开发人员快速构造软件的原型,双方再次论证需求说明书是否正确。就有必要请开发人员快速构造软件的原型,双方再次论证需求说明书是否正确。由于客户大多不懂软件,他们可能觉得软件是万能的,会提出一些无法实现的需求由于客户大多不懂软件,他们可能觉得软件是万能的,会提出一些无法实现的需求。软件工程第三章 需求分析8需求分析的困难性需求分析的困难性小故事小故事软件工程第三章 需求分析10 从前有一家汽车厂,想为年轻人设计一款新车型,企划及设从前有一家汽车厂,想为年轻人设计一款新车型,企划及设计
10、部讨论了许久始终找不到感觉,于是对计部讨论了许久始终找不到感觉,于是对25-35岁的年轻人进岁的年轻人进行问券调查,大伙辛苦了三个月,完成了一万份的调查记录。行问券调查,大伙辛苦了三个月,完成了一万份的调查记录。市场部门摘要了调查内容反映给设计部门,重点:省油、外型市场部门摘要了调查内容反映给设计部门,重点:省油、外型酷、颜色鲜艳、马力足等。设计部门有了灵感开始设计,半年酷、颜色鲜艳、马力足等。设计部门有了灵感开始设计,半年过去了过去了!设计部门很得意的把雏型车展示给大伙看,这个时候设计部门很得意的把雏型车展示给大伙看,这个时候CEO、市场部、企划部、市场部、企划部.都傻眼了。都傻眼了。CEO
11、开口说开口说:为什么这车没有为什么这车没有”轮子轮子”设计部回答设计部回答:市场部给的调查报告里,没说要有轮子市场部给的调查报告里,没说要有轮子市场部回说市场部回说:问卷调查中、顾客没有提到要有轮子问卷调查中、顾客没有提到要有轮子企划部生气的说企划部生气的说:你们都是白痴啊你们都是白痴啊,汽车要有轮子是基本常识,汽车要有轮子是基本常识,你们都不知道吗你们都不知道吗?原文原文地址:地址:http:/ 需求分析的目标需求分析的目标建立分析模型建立分析模型数据模型(实体数据模型(实体-关系图)关系图)功能模型(数据流图)功能模型(数据流图)行为模型(状态转换图)行为模型(状态转换图)产生正式的需求文
12、档产生正式的需求文档本章内容本章内容3.1 需求分析的任务需求分析的任务3.2 需求获取需求获取 3.3 分析分析建模与建模与规格说明规格说明3.4 实体联系图实体联系图3.5 数据数据规范化规范化3.6 状态转换状态转换图图3.7 其他图形其他图形工具工具3.8 验证软件验证软件需求需求软件工程第三章 需求分析123.1 需求分析的任务需求分析的任务软件开发是要实现软件开发是要实现目标系统的物理模型目标系统的物理模型。需求分析的。需求分析的任务就是借助于任务就是借助于当前系统的逻辑模型导出目标系统的当前系统的逻辑模型导出目标系统的逻辑模型逻辑模型,解决目标系统,解决目标系统 “做什么做什么”
13、的问题。的问题。软件工程第三章 需求分析13目标系统目标系统当前系统当前系统物理模型物理模型逻辑模型逻辑模型模型化模型化抽象化抽象化物理模型物理模型逻辑模型逻辑模型具体化具体化实例化实例化理理解解需需求求导导出出怎么做怎么做做什么做什么3.1 需求分析的任务需求分析的任务软件工程第三章 需求分析14需求分析的具体任务需求分析的具体任务1 确定对系统的综合要求确定对系统的综合要求 功能需求功能需求 性能需求性能需求 可靠性和可用性需求可靠性和可用性需求 出错处理要求出错处理要求 接口要求接口要求 约束约束 逆向需求逆向需求 将来可能提出的要求将来可能提出的要求软件工程第三章 需求分析15需求分析
14、的具体任务需求分析的具体任务2 分析系统的数据要求分析系统的数据要求建立数据模型:数据字典、层次方框图、建立数据模型:数据字典、层次方框图、Warnier图图。3 导出系统的逻辑模型导出系统的逻辑模型用数据流图、实体一联系图、状态转换图、数据字典和主要的处理用数据流图、实体一联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型算法描述这个逻辑模型4 修正系统开发计划修正系统开发计划根据在分析过程中获得的对系统的更深入更具体的了解,可以比较根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划准确地估计系统的成本和进度,修正以前制定的
15、开发计划.软件工程第三章 需求分析163.23.2 需求获取需求获取需求获取是在问题及其最终解决方案之间架设桥梁的需求获取是在问题及其最终解决方案之间架设桥梁的第一步。第一步。需求获取的目的是清楚地理解所要解决的问题,完整需求获取的目的是清楚地理解所要解决的问题,完整地获得用户的需求。地获得用户的需求。获取需求的一个必不可少的结果是对项目中描述的客获取需求的一个必不可少的结果是对项目中描述的客户需求的普遍理解。一旦理解了需求,分析者、开发户需求的普遍理解。一旦理解了需求,分析者、开发者和客户就能探索出描述这些需求的多种解决方案。者和客户就能探索出描述这些需求的多种解决方案。软件工程第三章 需求
16、分析17需求获取过程需求获取过程需求获取包括以下活动:需求获取包括以下活动:1)1)发现和分析问题发现和分析问题 发现问题症结,并分析问题的原因发现问题症结,并分析问题的原因/结果关结果关系。系。2)2)获取需求获取需求 根据对问题的理解定义需求。根据对问题的理解定义需求。a)使用调查研究方法收集信息;使用调查研究方法收集信息;b)遵循需求获取框架,按照三个成分观察:即遵循需求获取框架,按照三个成分观察:即数据数据、过程过程和和接口接口。3)3)需求归档需求归档 以草稿形式归档调查结果。形式有用例、决策表、以草稿形式归档调查结果。形式有用例、决策表、需求表等。需求表等。软件工程第三章 需求分析
17、18与用户沟通获取需求的方法与用户沟通获取需求的方法访谈访谈面向数据流自顶向下求精面向数据流自顶向下求精简易的应用规格说明技术简易的应用规格说明技术快速建立软件原型快速建立软件原型软件工程第三章 需求分析19(1).(1).访访 谈谈正式的访谈正式的访谈 -系统分析员将提出一些事先准备好的具体问题。系统分析员将提出一些事先准备好的具体问题。非正式的访谈非正式的访谈 -分析员将提出一些用户可以自由回答的开放性问分析员将提出一些用户可以自由回答的开放性问题,以鼓励被访问人员说出自己的想法。题,以鼓励被访问人员说出自己的想法。当需要调查大量人员的意见时,向被调查人当需要调查大量人员的意见时,向被调查
18、人分发调查表是一个十分有效的做法。分发调查表是一个十分有效的做法。在访问用户的过程中使用在访问用户的过程中使用情景分析情景分析技术往往技术往往非常有效。非常有效。软件工程第三章 需求分析20所谓情景分析就是对用户将来使用目标系统解决所谓情景分析就是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析。某个具体问题的方法和结果进行分析。情景分析技术的用处主要体现在下述两个方面:情景分析技术的用处主要体现在下述两个方面:(1)(1)它能在某种程度上演示目标系统的行为,从而便于用它能在某种程度上演示目标系统的行为,从而便于用户理解,而且还可能进一步揭示出一些分析员目前还户理解,而且还可能进一步
19、揭示出一些分析员目前还不知道的需求。不知道的需求。(2)(2)由于情景分析较易为用户所理解,使用这种技术能保由于情景分析较易为用户所理解,使用这种技术能保证用户在需求分析过程中始终扮演一个积极主动的角证用户在需求分析过程中始终扮演一个积极主动的角色。需求分析的目标是获知用户的真实需求,而这一色。需求分析的目标是获知用户的真实需求,而这一信息的惟一来源是用户,因此,信息的惟一来源是用户,因此,让用户起积极主动的让用户起积极主动的作用对需求分析工作获得成功是至关重要的。作用对需求分析工作获得成功是至关重要的。软件工程第三章 需求分析21(2).(2).面向数据流自顶向下求精面向数据流自顶向下求精数
20、据决定了需要的处理和算法,它是需求分析的出发点。数据决定了需要的处理和算法,它是需求分析的出发点。可行性研究阶段产生的是高层数据流图,许多具体的细节可行性研究阶段产生的是高层数据流图,许多具体的细节没有包括,许多实际的数据元素被忽略,当时分析员还不没有包括,许多实际的数据元素被忽略,当时分析员还不需要考虑这些细节,现在是定义这些数据元素的时候了。需要考虑这些细节,现在是定义这些数据元素的时候了。自顶向下求精过程软件工程第三章 需求分析22使用传统的访谈或面向数据流自顶向下求精方法定义使用传统的访谈或面向数据流自顶向下求精方法定义需求时,用户处于被动地位而且往往有意无意地与开需求时,用户处于被动
21、地位而且往往有意无意地与开发者区分发者区分“彼此彼此”。由于不能像同一个团队的人那样。由于不能像同一个团队的人那样齐心协力地识别和精化需求,这两种方法的效果有时齐心协力地识别和精化需求,这两种方法的效果有时并不理想。并不理想。问题:问题:软件工程第三章 需求分析23 这种方法提倡用户与开发者密切合作,共同标识这种方法提倡用户与开发者密切合作,共同标识问题,提出解决方案要素,商讨不同方案并指问题,提出解决方案要素,商讨不同方案并指定基本需求。定基本需求。(3).简易的应用规格说明技术 -一种面向团队的需求收集法软件工程第三章 需求分析24使用简易的应用规格说明技术使用简易的应用规格说明技术分析需
22、求的典型过程分析需求的典型过程1.1.初步的访谈,通过用户对基本问题的回答,初步确定初步的访谈,通过用户对基本问题的回答,初步确定待解决的问题的范围和解决方案。待解决的问题的范围和解决方案。2.2.开发者和用户分别写出开发者和用户分别写出“产品需求产品需求”。3.3.开发者和用户开会讨论,共同创建一张意见一致的组合开发者和用户开会讨论,共同创建一张意见一致的组合列表。列表。4.4.把与会者分成更小的小组,每个小组的工作目标是为每把与会者分成更小的小组,每个小组的工作目标是为每张列表中的项目制定小型规格说明。小型规格说明是对张列表中的项目制定小型规格说明。小型规格说明是对列表中包含的单词或短语的
23、准确说明。列表中包含的单词或短语的准确说明。5.5.每个小组向全体与会者展示他们制定的小型规格说明,每个小组向全体与会者展示他们制定的小型规格说明,讨论,以创建出意见一致的确认标准。讨论,以创建出意见一致的确认标准。6.6.由一名或多名与会者根据会议成果起草完整的软件需求由一名或多名与会者根据会议成果起草完整的软件需求规格说明书。规格说明书。软件工程第三章 需求分析25(4).(4).快速建立软件原型快速建立软件原型正如第正如第1 1章已经讲过的,快速原型就是快速建立起章已经讲过的,快速原型就是快速建立起来的旨在演示目标系统主要功能的可运行的程序。来的旨在演示目标系统主要功能的可运行的程序。快
24、速建立软件原型是最准确、最有效、最强大的需快速建立软件原型是最准确、最有效、最强大的需求分析技术。求分析技术。快速原型应具备的特性是快速原型应具备的特性是“快速快速”、“容易修改容易修改”。软件工程第三章 需求分析26快速构建和修改原型,快速构建和修改原型,通常使用下述通常使用下述3 3种方法和工具:种方法和工具:(1)第四代第四代技术技术包括包括众多数据库查询和报表语言、程序和应用系统生成器以众多数据库查询和报表语言、程序和应用系统生成器以及其他非常高级的非过程语言。能快速生成可执行的代码。及其他非常高级的非过程语言。能快速生成可执行的代码。(2)可重用的软件可重用的软件构件构件使用使用一组
25、已有的软件构件(也称为组件)来装配(而不是从一组已有的软件构件(也称为组件)来装配(而不是从头构造)原型。头构造)原型。(3)形式化规格说明和原型形式化规格说明和原型环境环境在在交互式环境交互式环境下,用自动工具把基于形式语言的规格说明翻下,用自动工具把基于形式语言的规格说明翻译成可执行的程序代码。译成可执行的程序代码。软件工程第三章 需求分析273.3分析建模与规格说明分析建模与规格说明1 分析建模分析建模什么是模型?什么是模型?为了理解事物而对事物做出的一种抽象,是对事物的一种为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义无歧义的的书面描述。书面描述。模型通常由模型通常由一组图形
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三章 软件工程 需求分析 第三 需求 分析
限制150内