计算机软件工程第三章需求分析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

SOFTWAREENGINEERING第3章需求分析SOFTWAREENGINEERING§3.1需求分析的任务3.1.1基本任务•准确的回答“系统必须做什么”这个问题。•仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。SOFTWAREENGINEERING§3.1需求分析的任务3.1.2具体任务(1)确定对系统的综合要求功能需求性能需求可靠性和可用性需求出错处理需求接口需求约束逆向需求将来可能提出的要求(2)分析系统的数据要求通常采用建立概念模型的方法—层次方框图和Warnier图(3)导出系统的逻辑模型通常用数据流图、ER图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。SOFTWAREENGINEERING§3.1需求分析的任务3.1.2具体任务(4)修正系统开发计划可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。(5)验证软件需求目的:使用户通过实践获得关于未来的系统将怎样为他们工作的更直接具体的概念,从而可以更准确地提出和确定他们的要求。SOFTWAREENGINEERING§3.1需求分析的任务3.1.3出发点可行性研究阶段的数据流图3.1.4要点确定系统能“做什么”,不考虑系统“怎么做”。SOFTWAREENGINEERING§3.2分析过程3.2.1步骤(1)沿数据流图回溯(2)用户复查(3)细化数据流图(4)修正开发计划(5)书写文档(6)审查和复审SOFTWAREENGINEERING§3.2分析过程3.2.2文档(1)系统规格说明:描述目标系统的概貌、功能要求、性能要求、运行要求和将来可能提出的要求。(2)数据要求:数据字典、描绘数据结构的层次的方框图(3)用户系统描述:从用户使用的角度描绘系统,相当于一份初步的用户手册。(及早的考虑用户的需求)(4)修正的开发计划:修正后的成本估计、资源使用计划、进度计划。需求获取的内容1.用户需求分类(1)功能性需求:定义了系统做什么(描述系统必须支持的功能和过程)(2)非功能性需求(技术需求):定义了系统工作时的特性(描述操作环境和性能目标)2.两类需求包括的内容(1)功能(2)性能(3)环境(4)界面(5)用户或人的因素(6)文档(7)数据(8)资源(9)安全保密(10)软件成本消耗与开发进度(11)质量保证(1)功能需求•系统做什么?•系统何时做什么?•系统何时及如何修改或升级?(2)性能需求软件开发的技术性指标例如:•存储容量限制•执行速度、相应时间•吞吐量(3)环境需求•硬件设备:机型、外设、接口、地点、分布、温度、湿度、磁场干扰等•软件:操作系统网络数据库(4)界面需求•界面元素•用户角色•界面原型(5)用户或人的因素•用户类型?•各种用户熟练程度?•需受何种训练?•用户理解、使用系统的难度?•用户错误操作系统的可能性?(6)文档需求•需哪些文档?•文档针对哪些读者?(7)数据需求•输入、输出数据的格式?•接收、发送数据的频率?•数据的准确性和精度?•数据需保持的时间?(8)资源需求•软件运行时所需的数据、软件。•软件开发、维护所需的人力、支撑软件、开发设备等。(9)安全保密要求•需对访问系统或系统信息加以控制吗?•如何隔离用户之间的数据?•用户程序如何与其它程序和操作系统隔离?•系统备份要求?(10)软件成本消耗与开发进度需求•开发有规定的时间表吗?•软硬件投资有无限制?(11)质量保证•系统的可靠性要求?•系统必须监测和隔离错误吗?•规定系统平均出错时间?•出错后,重启系统允许的时间?•系统变化如何反映到设计中?•维护是否包括对系统的改进?•系统的可移植性?SOFTWAREENGINEERING与用户沟通获取需求的方法1访谈:正式的和非正式2面向数据流自顶向下求精需求分析的目标之一就是把数据量和数据存储定义到元素级3简易的应用规格说明技术提倡用户与开发者密切合作,共同标识问题,提出解决方案,商讨不同方案并制定基本需求4快速建立软件原型系统SOFTWAREENGINEERING§3.3分析建模与规格说明3.3.1分析建模模型:为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。需求分析过程需建立三种模型:数据模型,功能模型和行为模型。数据模型---ER图功能模型---数据流图行为模型----状态转换图数据字典数据流图E-R图状态变迁图加工规约控制规约数据对象描述分析模型的结构SOFTWAREENGINEERING§3.4实体-联系图3.3.1常用的表示概念性数据模型的方法:实体—联系法(Entity-RelationshipApproach)•数据对象•属性•联系SOFTWAREENGINEERING某校教学管理ER图SOFTWAREENGINEERING§3.5范式用范式(NormalForms)定义消除数据冗余的程度。第一范式:每个属性都是原子级的,不含内部结构第二范式:满足第一范式条件,且每个非关键字属性都由整个关键字决定第三范式:符合第二范式,且每个非关键字属性仅由整个关键字决定SOFTWAREENGINEERING§3.5范式•说明:(1)范式级别越高,存储同样数据就需要分解成更多张表,因此“存储自身”的过程也就越复杂。(2)随着范式级别的提高,数据的存储结构与基于问题域的结构间的匹配程度也随之下降,因此,在需求变化时数据的稳定性较差。(3)范式级别提高,则需要访问的表增多,因此性能(速度)下降。从实用角度看,在大多数场合选用第三范式都比较恰当。例题-软考2009下午•某集团公司下有多家连锁超市,公司需要建立一个数据库管理系统以方便管理其业务运作活动。1.商场需要记录的信息包括商场编号、商场名称,地址和联系电话。2.每个商场含有不同的部门,部门需要记录的信息包括部门编号,部门名称、位置分布和联系电话3.每个部门雇佣多名员工进行日常业务管理,每名员工只能隶属于一个部门。员工信息包括,员工编号,员工姓名,岗位、电话号码和工资4.每个部门的员工中有一名是经理,每个经理只能管理一个部门,系统需要记录每个经理的任职时间SOFTWAREENGINEERINGSOFTWAREENGINEERING§3.6状态转换图•状态—是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。•事件—是在某个特定时刻发生的事情,它是对引起系统做动作或从一个状态转换到另一个状态的外界事件的抽象。SOFTWAREENGINEERING状态图中使用的主要符号3.状态转换图(STD)•描述软件状态变迁•符号表示矩形---系统状态箭头---状态转变方向规则表达式---事件/触发行为状态1状态2事件/触发行为闲置拨号音do:响拨号音超时do:响蜂鸣音存储的信息do:播放信息接通中do:试接通振铃do:振铃拨号通话断线忙音do:响忙音挂断电话挂断电话拿起话筒超时无效号码有效号码超时数字数字占线已接通受话人回话受话人挂断电话信息播完SOFTWAREENGINEERING作业:用状态转换图描绘下述行为复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后,进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。SOFTWAREENGINEERING§3.7图形工具3.7.1层次方框图•用树形结构的一系列多层次的矩形框描绘数据的层次结构。•树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面各层的矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再分割的元素)。SOFTWAREENGINEERING例题•某计算机公司的产品由硬件、软件和服务三类产品组成。硬件又包括处理机、存储器和外部设备等。软件产品又分为系统软件和应用软件,系统软件又进一步分为操作系统、编译程序和软件工具等。服务包括软件服务、硬件维护和培训等。SOFTWAREENGINEERING层次方框图SOFTWAREENGINEERING§3.7图形工具3.7.2Warnier图•用Warnier图可以表明信息的逻辑组织,它可以指出一类信息或一个信息是重复出现的,也可以表示特定信息在某一类信息中是有条件出现的。SOFTWAREENGINEERINGWarnier图SOFTWAREENGINEERING§3.7.3图形工具3.4.3IPO图•IPO图是输入、处理、输出图的简称。-IBM•在需求分析阶段可以使用IPO图简略地描述系统的主要算法(即数据流图中各个处理的基本算法)SOFTWAREENGINEERINGIPO图的一个例子SOFTWAREENGINEERING改进的IPO图的形式SOFTWAREENGINEERING§3.8验证软件需求3.8.1从哪些方面严整软件需求的正确性(1)一致性:所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾;(2)完整性:需求必须是完整的,规格说明书应该包括用户需要的每一个功能和性能;(3)现实性:指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的;(4)有效性:必须证明需求是正确有效的,确实能解决用户面对的问题。SOFTWAREENGINEERING§3.5验证软件需求3.5.2验证软件需求的方法(1)验证需求的一致性:形式化的描述软件需求的方法。当软件需求规格说明书是用形式化的需求陈述语言书写的时候,可以用软件工具验证需求的一致性。(2)验证需求的现实性:参照以往开发类似系统的经验,必要时采用仿真或性能模拟技术。(3)验证需求的完整性和有效性使用原型系统SOFTWAREENGINEERING§3.5验证软件需求3.5.3用于需求分析的软件工具(1)必须有形式化的语法(或表),因此可以用计算机自动处理使用这种语法说明的内容;(2)使用这种软件工具能导出详细的文档;(3)必须提供分析(测试)规格说明书的不一致性和冗余性的手段,并且应该能够产生一组报告指明对完整性分析的结果;(4)使用这个软件工具之后,应该能够改进通信状况。

1 / 44
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功