软件工程—第3章软件需要分析—lyh课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件工程—第3章软件需要分析—lyh课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 软件 需要 分析 lyh 课件
- 资源描述:
-
1、LOGO第三章 软件需求分析为什么要进行需求分析?为什么要进行需求分析?目的:对开发者进行指导目的:对开发者进行指导 开发人员对用户的要求理解开发人员对用户的要求理解 用户理解开发人员用户理解开发人员 测试部门有理可依测试部门有理可依原因:信息收集不全原因:信息收集不全 功能不明确功能不明确 需求文档不完善需求文档不完善 开发者急于求成开发者急于求成 3.1 需求分析的任务和步骤 3.2 需求获取的常用方法 3.3 分析建模 3.4 软件需求说明 3.5 结构化分析方法 3.6 面向对象分析方法 深刻理解需求分析阶段的概念和任务;深刻理解需求分析阶段的概念和任务;熟练掌握数据流图;熟练掌握数据
2、流图;了解面向过程分析方法和面向对象的分析方法。了解面向过程分析方法和面向对象的分析方法。需求分析的任务需求分析的任务 对象系统模型模型系统系统逻辑模型和物理模型逻辑模型和物理模型 模型是对对象系统的形式化的特征抽象,概括性或近似地表示;模型是对对象系统的形式化的特征抽象,概括性或近似地表示;形式形式化语言、数学语言、图形等构造模型的过程是一个抽象、分析的过程。化语言、数学语言、图形等构造模型的过程是一个抽象、分析的过程。逻辑模型和物理模型逻辑模型和物理模型逻辑模型逻辑模型 (本质模型、概念模型本质模型、概念模型)物理模型物理模型(实施模型、技术模型实施模型、技术模型)描述重要的业务功能,无论
3、系统是描述重要的业务功能,无论系统是如何实施的如何实施的2.2.需求分析的步骤需求分析的步骤学学生生购购书书申申请请购购书书单单发发票票领领书书单单书书107107刘刘教务科教务科206206王王会计室会计室206206李李出纳员出纳员303303赵赵教材教材(1)(1)通过对现实环境的调查,获当前系统的具体模型通过对现实环境的调查,获当前系统的具体模型(物理模型物理模型)学学生生 (2)(2)去掉具体模型中的非本质因素,去掉具体模型中的非本质因素,抽象抽象出当前系统的逻辑模出当前系统的逻辑模型型 学学生生学学生生购购书书申申请请购购书书单单发发票票领领书书单单书书审查审查有效性有效性开发票开
4、发票开领开领书单书单发书发书 (3)(3)分析当前系统与目标系统的差别,建立目标系统的逻辑模分析当前系统与目标系统的差别,建立目标系统的逻辑模型。型。学学生生学学生生购书单购书单发票发票领书单领书单审查并审查并开发票开发票开领开领书单书单无效书单无效书单 (4)(4)对目标系统进行完善和补充,并写出完整的需求说明;对目标系统进行完善和补充,并写出完整的需求说明;(5)(5)对需求说明进行复审,直到确认文档齐全,并且符合用对需求说明进行复审,直到确认文档齐全,并且符合用户的全部需求为止。户的全部需求为止。清楚地理解所要解决的问题清楚地理解所要解决的问题 完整地获取用户需求完整地获取用户需求 问题
5、的复杂性和对问题空间理解的不完问题的复杂性和对问题空间理解的不完备性与不一致性备性与不一致性 交流障碍交流障碍 需求易变性需求易变性 建立联合分析小组建立联合分析小组 客户访谈客户访谈 问题分析与确认问题分析与确认 1 1)联合分析小组的人员主要包括:用户、领域专家、)联合分析小组的人员主要包括:用户、领域专家、系系统分析员统分析员 2 2)通过联合分析小组的工作,可以极大地方便系统开发)通过联合分析小组的工作,可以极大地方便系统开发人员和用户之间的沟通。人员和用户之间的沟通。l 客户访谈客户访谈在与用户接触之前,先要进行充分的准备:注意:在与用户交流时,应遵循循序渐进、逐步逼近的原则,注意:
6、在与用户交流时,应遵循循序渐进、逐步逼近的原则,切不可急于求成否则欲速则不达。切不可急于求成否则欲速则不达。首先,必须对问题的背景和问题所在系统的环境有全面的了解;首先,必须对问题的背景和问题所在系统的环境有全面的了解;其次,尽可能了解将要会谈用户的个性特点及任务状况;其次,尽可能了解将要会谈用户的个性特点及任务状况;第三,事先准备一些问题。第三,事先准备一些问题。l问题分析与确认问题分析与确认 不能期望用户在一两次交谈中,就会对目标软件的要求阐述清楚,也不能限制用户在回答问题过程中的自由发挥。在每次访谈之后,要及时进行整理,分析用户提供的信息,去掉错误的、无关的部分,整理有用的内容,以便在下
7、一次与用户见面时由用户确认;同时,准备下一次访谈时的进一步更细节的问题。如此循环,一般需要2-5个来回。举例:某出版社系统调查表举例:某出版社系统调查表编号编号提出问题提出问题1您在您在哪个部门工作?哪个部门工作?2 2出版业务流程是什么?出版业务流程是什么?3 3您您每日都处理那些文件、数据、报表?每日都处理那些文件、数据、报表?4 4工作中手工处理特别麻烦的事情是什么?工作中手工处理特别麻烦的事情是什么?5 5工作中手工处理什么问题解决不了?影响效率的问题有哪些?工作中手工处理什么问题解决不了?影响效率的问题有哪些?6 6您认为提高工作效率,节省工作时间,减轻工作强度可采取哪些您认为提高工
8、作效率,节省工作时间,减轻工作强度可采取哪些办法?办法?举例:某出版社系统调查表编号编号提出问题提出问题7 7您的部门需要成本核算和统计的内容有哪些?您的部门需要成本核算和统计的内容有哪些?8 8您的部门采用计算机管理工作情况如何?您的部门采用计算机管理工作情况如何?9 9如何改进业务流程使之更合理?如何改进业务流程使之更合理?1010哪些问题是目前传统手工方法根本无法解决的?哪些问题是目前传统手工方法根本无法解决的?1111出版社计算机管理信息系统需要解决什么问题?出版社计算机管理信息系统需要解决什么问题?软件需求分析的通信途径软件需求分析的通信途径(1)(1)功能性需求功能性需求:定义了系
9、统做什么(描述系统必须支持的功能和过程)定义了系统做什么(描述系统必须支持的功能和过程)(2)(2)非功能性需求(技术需求)非功能性需求(技术需求):定义了系统工作时的特性(描述操作环境和性能目标)定义了系统工作时的特性(描述操作环境和性能目标)用户需求分类用户需求分类两类需求包括的内容两类需求包括的内容(1)(1)功能功能(2)(2)性能性能(3)(3)环境环境(4)(4)界面界面(5)(5)用户或人的因素用户或人的因素(6)(6)文档文档 (7)(7)数据数据(8)(8)资源资源(9)(9)安全保密安全保密(10)(10)软件成本消耗与开发进度软件成本消耗与开发进度(11)(11)质量保证
10、质量保证 系统做什么?系统做什么?系统何时做什么?系统何时做什么?系统何时及如何修改或升级?系统何时及如何修改或升级?软件开发的技术性指标软件开发的技术性指标例如:例如:存储容量限制存储容量限制 执行速度、相应时间执行速度、相应时间 吞吐量吞吐量 硬件设备:机型、外设、接口、地硬件设备:机型、外设、接口、地 点、分布、温度、湿度、磁场干扰等点、分布、温度、湿度、磁场干扰等软件:软件:操作系统操作系统 网络网络 数据库数据库 有来自其它系统的输入吗?有来自其它系统的输入吗?到自其它系统的输出吗?到自其它系统的输出吗?对数据格式有规定吗?对数据格式有规定吗?对数据存储介质有规定吗?对数据存储介质有
11、规定吗?需求包括的内容需求包括的内容 用户类型?用户类型?各种用户熟练程度?各种用户熟练程度?需受何种训练?需受何种训练?用户理解、使用系统的难度?用户理解、使用系统的难度?用户错误操作系统的可能性?用户错误操作系统的可能性?需哪些文档?需哪些文档?文档针对哪些读者?文档针对哪些读者?输入、输出数据的格式?输入、输出数据的格式?接收、发送数据的频率?接收、发送数据的频率?数据的准确性和精度?数据的准确性和精度?数据流量?数据流量?数据需保持的时间?数据需保持的时间?软件运行时所需的数据、软件、软件运行时所需的数据、软件、内存空间等资源。内存空间等资源。软件开发、维护所需的人力、支软件开发、维护
12、所需的人力、支撑软件、开发设备等。撑软件、开发设备等。需求包括的内容需求包括的内容 需对访问系统或系统信息加以控制吗?需对访问系统或系统信息加以控制吗?如何隔离用户之间的数据?如何隔离用户之间的数据?用户程序如何与其它程序和操作系统隔离?用户程序如何与其它程序和操作系统隔离?系统备份要求?系统备份要求?开发有规定的时间表吗?开发有规定的时间表吗?软硬件投资有无限制?软硬件投资有无限制?系统的可靠性要求?系统的可靠性要求?系统必须监测和隔离错误吗?系统必须监测和隔离错误吗?规定系统平均出错时间?规定系统平均出错时间?出错后,重启系统允许的时间?出错后,重启系统允许的时间?系统变化如何反映到设计中
13、?系统变化如何反映到设计中?维护是否包括对系统的改进?维护是否包括对系统的改进?系统的可移植性?系统的可移植性?需求包括的内容需求包括的内容 原型(原型指原型指“快速软件原型快速软件原型”)是一个可实地运行的模型,有正式产品的主要特征,但不是全部特征。软件原型是软件系统的最初版本,以最少的费用,最短的时间开发出的、以反映最后软件的主要特征的系统。5.快速原型法在需求分析中的应用快速原型法在需求分析中的应用 原型开发指的是建立一个系统的早期版本的演习(practice),它不必反映最终产品的所有性能,而只要反映感兴趣的一些方面。l原型的定义原型的定义l原型的作用原型的作用 问题:开发初期很难确定
14、用户需求规格解决:用户与开发者之间的鸿沟以原型(软件产品的样品)为共同语言,实现用户与开发者双向沟通。l原型的特性原型的特性v 是一个可实际工作的系统;v 没有固定的生存期,结局可能是用后立即被抛弃,或可能成为最终系统;v 可服务于不同的目的,从需求分析到最终产品都可做原型;v 建立必须快,便宜;v 是包含修改、评价在内的完整重复过程v 需求分析和定义规格说明v 作为软件设计的一种工具v 作为一种解决不确定性的工具v 作为一种实验工具v 系统开发同时,作为同步培训工具v 作为开发方法,利用原型演化为最终系统v 作为软件维护的辅助工具l原型化开发的应用领域原型化开发的应用领域(1)利用各种分析技
15、术和方法,生成一个建华的需求规格说明。(2)对需求规格说明进行必要的检查和修改后,确定原型的软件结构、用户界面和数据结构等。(3)在现有的工具和环境的帮助下快速生成可运行的软件原型并进行测试、改进;(4)将原型提交给用户评估并征求用户的修改意见;(5)重复上述过程,直到原型得到用户的认可。(1)试验性原型 原型用来确认对需求的理解是否正确,应在与实际产品环境相近的环境上开发原型。(2)试用性原型 原型用来帮助用户在试用中使自己的模糊的需求明确起来确,可在与实际产品环境完全 无关的环境上开发运行。仅对屏幕的原型化 使用购买的软件系统作为初始模型 可行性分析中的原型 子系统原型化l 原型化策略原型
16、化策略 功能原型开发 用户界面原型开发l 原型开发技术原型开发技术l 原型化工具原型化工具面向应用的第四代语言(4GL)Delphi VB PowerBuilder Visual C+等原型法效果原型法效果F保证产品有较好的可维护性F改善用户与开发人员的信息交流和思想沟通,给用户修改的机会F减少或消灭下游返工的可能,改进了瀑布模型的弊病F原型系统可作为培训环境,有利于用户培训和开发同步。F开发成本降低,周期缩短。原型法局限性原型法局限性u 需工具支持,否则开发工作量大;u 只能缩短用户与软件需求定义间的距离,并不能消灭这个距离;u 考虑你的项目是否适合用原型法来开发时,有几个因素是要权衡的。B
17、oehm,Gray,和Seewaldt(1984)研究了项目是否适合用原型来开发的问题。他们发现用原型法开发项目,可以少花费45%的努力,还可以减少40%的代码。而且,开发出的产品的速度和效率与用传统方法开发出的差不多。是否要选择原型法?由于开发一个原型需要花费一定的人力、物力、财力和时间,而且用于确定需求的原型在完成使命后一般就被丢弃。因此,是否使用快速原型法必须考虑软件系统的特点、可用的开发技术和工具等方面。AndrioleAndriole提出的一下提出的一下6 6个问题,可用来帮助判断是个问题,可用来帮助判断是否要选择原型法。否要选择原型法。v 需求已经建立,并且可以预见是相当稳定吗?(
18、肯定回答,不采用原型法)v 软件开发人员和用户已经理解了目标软件的应用领域吗?v 问题是否可被模型化?v 用户能否清楚地确定基本的系统需求?v 有任何需求是含糊的吗?v 已知的需求中存在矛盾吗?(以上5个问题肯定回答,用原型法)3.3 3.3 分析建模分析建模 两种分析模型两种分析模型v 结构化分析模型结构化分析模型v 面向对象分析模型面向对象分析模型OOAOODOOPv 模型的核心是DD(Data Dictionary,数据字典),它是系统所涉及的各种数据对象的总和。从DD出发可构建3种图:v E-RE-R图图(Entity-Relation Diagram,实体-关系图)用于描述数据对象间
19、的关系,他代表软件的数据模型,在实体-关系图中出现的每个数据对象的属性均可用数据对象说明来描述;v DFDDFD图图(Data Flow Diagram,数据流图),其主要作用是指明系统中数据是如何流动和变换的,以及描述是数据流进行变换的功能,在DFD图中出现的每个功能的描述则写在(PSPEC)中,它们一起构成功能模型;v STDSTD(Status Transfer Diaram,状态-变迁图),用于指明系统在外部时间的作用下将会如何动作,表明了系统的各种状态以及各种状态间的变迁,从而构成为行为模型的基础,关于软件控制方面的附加信息则包含在控制说明(CSPEC)。v 使用实例,使用实例,处于
20、OOA模型核心的是“使用实例”(Use Case),简称“用例”。获得软件的需求后,软件分析员既可据此创建一组“场景”(Scenario),每个场景包含一个使用实例。从这些用例出发,进一步抽取和定义OOA模型的3种模型,即v 类类-对象模型对象模型,描述系统所涉及的全部类-对象,每个类-对象都通过属性、操作和写作者来进行进一步描述;v 对象对象-关系模型关系模型,描述对象之间的静态关系,同时定义了系统中所有重要的消息路径,它也可以具体化到对象的属性、操作和协作者;v 对象对象-行为模型行为模型,描述了系统的动态行为,即对湘杂特定的状态下如何反映外界的事件。数据流图数据流图(DFD)(DFD)数
21、据字典数据字典(DD)(DD)加工说明加工说明控制流图(控制流图(CFDCFD)与控制说明()与控制说明(CSPEC CSPEC)状态转换图状态转换图(STD)(STD)E-RE-R图图用例图用例图对象关系图(对象关系图(Object-Object-Relationship,ORelationship,O-R-R)对象行为图对象行为图分析模型的组成与描述工具分析模型的组成与描述工具v DFD、DD和PSPEC:是早期结构化分析模型 的基本组成部分;v CFD、CSPEC和STD是扩展成分用以适应实时的建模需要;v E-R图:适用于描述具有复杂数据结构的软件数据模型;v 用例图、对象关系图和对象
22、行为图适用于OOA的分析模型。数据流图数据流图(DFD)(DFD)任何软件系统(或计算机系统)从根本上说,都是对数据进行加工或变换的工具指明数据在系统中移动时如何被变换;描述对数据流进行变换的功能;DFD中每个功能的描述包含在加工规约小说明)中。数据存储数据存储 (文件或数据库)文件或数据库)数据流图的四个基本成分数据流图的四个基本成分数据流(数据对象)数据流(数据对象)位于被建模系统之外的信息生产者或消费者位于被建模系统之外的信息生产者或消费者,称为外部项。称为外部项。说明数据输入的源点说明数据输入的源点(数据源数据源)或数据输出的或数据输出的汇点汇点(数据池数据池)2 22 2IIII数据
23、处理数据处理(加工加工)数据流数据流表示数据和数据流向,表示数据和数据流向,三个重要属性三个重要属性:v 流向(从加工出发或流向加工)v 数据组成v 数据流名字数据流命名方法和注意事项据流命名方法和注意事项v 用名词或名词词组,不要使用意义空洞的名词;v 尽量使用现实系统已有名字,当命名出现困难,考虑是否数据流划分不恰当;v 不要把控制流作为数据流指明作为外部事件的结果,系统将如何动作。举例举例:购购书书单单发票发票领书单领书单审查并开发票开领开领书单书单无效书单无效书单学生学生1 12 2各班学生各班学生用用 书书 表表学生学生教材存量表教材存量表数据字典数据字典(DD,Data Dicti
24、onary)模型核心模型核心(中心库中心库)一个软件系统含有许多数据。数据字典的作用,就是对软件中的每个数据规定一个定义条目,以保持数据在系统中的一致性。由字典统一给出的所有数据的定义与属性,已成为结构化分析中分析建模的基础。数据词典与数据流图配合,能清楚地表达数据处理的要求词条描述 对于在数据流图中每一个被命名的图形元素,均加以定义,其内容有:名字,别名或编号,分类,描述,定义,位置,其它,等 DD是对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算有共同的理解 DFD中的数据流、数据存储表示某个有组织的数据集合,它们
25、要由SA的其他描述工具-需求字典(数据字典)来描述,包括:词条描述、数据结构描述、加工逻辑说明作用作用:数据字典数据字典 数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合l数据字典的内容 数据流 数据流分量 数据存储 处理数据处理:用 IPO图或PDL描述比较方便直观。数据元素的别名:l定义数据的方法 由数据元素组成数据的方式的三种基本类型顺序+:以确定次序连接两个或多个分量 a+b+c 选择|,:从两个或多个可能的元素中选取一个 a|b|c 重复:把指定的分量重复零次或多次 a 可选:一个分量是可有可无的(重复零次或一次),(a)l例子 定货报表=零件编号+零件名
展开阅读全文