软件工程:第四章软件需求与获取分析一.ppt
第四章 软件需求获取与分析(一),软件需求分析的目标和任务软件需求分析的过程软件需求分析的原则软件需求获取技术结构化分析方法原型化方法软件需求分析的图形工具软件需求文档软件需求评审,?,1.用户在软件需求分析过程中重要吗?请说明理由2.软件需求分析是软件工程过程中交换意见最频繁的步骤,为什么交换意见的途径会经常阻塞?,软件需求分析的目标和任务,课前讨论,为什么需求分析比较困难?客户说不清楚需求 需求自身不断变动 分析人员或客户理解有误,软件需求分析的目标和任务,1.有个外星人间谍潜伏到地球刺探情报,它给上司写了一份报告:“主宰地球的是车。它们喝汽油,靠四个轮子滚动前进。嗓门极大,在夜里双眼能射出强光。有趣的是,车里住着一种叫作人的寄生虫,这些寄生虫完全控制了车。”2.有一个软件人员滔滔不绝地向客户讲解在“信息高速公路上做广告”的种种好处,客户听得津津有味。最后,心动的客户对软件人员说:“好得很,就让我们马上行动起来吧。请您决定广告牌的尺寸和放在哪条高速公路上,我立即派人去做。”,软件需求分析的目标和任务,理解有误引出的二则笑话,软件需求分析的目标是深入描述软件的功能和性能,确定软件设计的约束和软件同其它系统元素的接口细节,定义软件的其它有效性需求。,软件需求分析的目标和任务,需求分析研究的对象是软件项目的用户要求准确地表达被接受的用户要求确定被开发软件系统的元素,软件需求分析的目标和任务,软件需求的几点说明,需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。,软件需求分析的目标和任务,通俗地说,需求分析的任务就是准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么。用 规范的形式准确地表达用户的需求。,软件需求分析的目标和任务,软件需求分析的目标和任务,逻辑模型 物理模型,现行系统,目标系统,描述重要的业务功能,无论系统是如何实施的。,描述现实系统是如何在物理上实现的。,描述新系统的主要业务功能和用户新的需求,无论系统应如何实施。,描述新系统是如何实施的(包括技术)。,需求分析过程示意图,学生,(1)通过对现实环境的调查,获得当前系统的物理模型,学生,购书申请,购书单,发票,领书单,书,107张,教务科,206王,会计室,206李,出纳员,303赵,教材科,学生购买教材的物理模型,软件需求分析的目标和任务,(2)去掉具体模型中非本质因素,抽象出当前系统的逻辑模型,学生购买教材的逻辑模型,学生,学生,购书申请,购书单,发票,领书单,书,审查有效性,开发票,开领书单,发书,软件需求分析的目标和任务,(3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型,计算机售书系统的逻辑模型,学生,学生,购书单,发票,领书单,审查并开发票,开领,书单,无效书单,软件需求分析的目标和任务,通常软件开发项目是要实现目标系统的物理模型目标系统的具体物理模型是由它的逻辑模型经实例化,即具体到某个业务领域而得到的,软件需求分析的目标和任务,第五章 软件需求获取与分析,软件需求分析的目标和任务软件需求分析的过程软件需求分析的原则软件需求获取技术结构化分析方法原型化方法软件需求分析的工具软件需求文档软件需求评审,需求分析的过程,问题识别,分析与综合,编制需求分析文档,需求评审,软件需求分析过程图,需求分析的过程,(1)问题识别从系统的角度来理解软件并评审软件范围是否恰当确定对目标系统的综合要求,即软件的需求提出这些需求实现条件,以及需求应达到的标准,需求包括的内容(类型):,(1)功能(2)性能(3)环境(4)界面(5)用户或人的因素(6)文档(7)数据(8)资源(9)安全保密(10)软件成本消耗与开发进度(11)质量保证,需求分析的过程,(1)功能需求,系统做什么?系统何时做什么?系统何时及如何修改或升级?,需求分析的过程,(2)性能需求,软件开发的技术性指标例如:存储容量限制 执行速度、相应时间 吞吐量,需求分析的过程,(3)环境需求,硬件设备:机型、外设、接口、地点、分布、温度、湿度、磁场干扰等软件:操作系统 网络 数据库,需求分析的过程,(4)界面需求,有来自其它系统的输入吗?有来自其它系统的输出吗?对数据格式有规定吗?,需求分析的过程,(5)用户或人的因素,用户类型?各种用户熟练程度?需受何种训练?用户理解、使用系统的难度?用户错误操作系统的可能性?,需求分析的过程,(6)文档需求,需哪些文档?文档针对哪些读者?,需求分析的过程,(7)数据需求,输入、输出数据的格式?接收、发送数据的频率?数据的准确性和精度?数据流量?数据需保持的时间?,需求分析的过程,(8)资源需求,软件运行时所需的数据、软件。内存空间等资源。软件开发、维护所需的人力、支撑软件、开发设备等。,需求分析的过程,(9)安全保密要求,需对访问系统或系统信息加以控制吗?如何隔离用户之间的数据?用户程序如何与其它程序和操作系统隔离?系统备份要求?,需求分析的过程,(10)软件成本消耗与开发进度需求,开发有规定的时间表吗?软硬件投资有无限制?,需求分析的过程,(11)质量保证,系统的可靠性要求?系统必须监测和隔离错误吗?出错后,重启系统允许的时间?系统变化如何反映到设计中?维护是否包括对系统的改进?系统的可移植性?,需求分析的过程,问题识别的另一项工作是建立分析所需要的通信途径,以保证能顺利地对问题进行分析。,需求分析的过程,(2)分析与综合 从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的约束,分析它们是否满足功能要求,是否合理。最终综合成系统的解决方案,给出目标系统的详细逻辑模型.,需求分析的过程,常用的分析方法,面向数据流的结构化分析方法(SA)面向数据结构的Jackson方法(JSD)面向对象的分析方法(OOA)等,需求分析的过程,(3)编制需求分析阶段的文档软件需求说明书数据要求说明书初步的用户手册修改、完善与确定软件开发实施计划,需求分析的过程,(4)需求分析评审,作为需求分析阶段工作的复查手段,应该对功能的正确性、文档的一致性、完备性、准确性和清晰性,以及其它需求给予评价。为保证软件需求定义的质量,评审应以专门指定的人员负责,并按规程严格进行。评审结束应有评审负责人的结论意见及签字。除分析员之外,用户需求者,开发部门的管理者,软件设计、实现、测试的人员都应当参加评审工作。,需求分析的过程,?,1.你认为一个优秀系统分析员要有哪些素质?,2.为什么系统分析员工资比程序员高?,需求分析的过程,第四章 软件需求获取与分析,软件需求分析的目标和任务软件需求分析的过程软件需求分析的原则软件需求获取技术结构化分析方法原型化方法软件需求分析的工具软件需求文档软件需求评审,软件需求分析的原则,一.需要能够表达和理解问题的数据域和功能域数据域包括数据流,数据内容和数据结构.,软件需求分析的原则,二.要能以层次化的方式对问题进行分解和不断细化,软件需求分析的原则,三.要给出系统的逻辑视图和物理视图逻辑视图给出软件要达到的功能和处理数据之间的关系物理视图给处理功能和数据结构的实际表示形式,第四章 软件需求获取与分析,软件需求分析的目标和任务软件需求分析的过程软件需求分析的原则软件需求获取技术结构化分析方法原型化方法软件需求分析的图形工具软件需求文档软件需求评审,软件需求的获取,需求获取面临的挑战:,(1)问题空间的理解(2)人与人之间的通信(3)需求的不断变化,软件需求的获取,获取用户需求的主要方法是调查研究。,调查研究的主要方法有:访问面谈 收集查问资料 深入现场,跟班作业,软件需求的获取,如何编写调查研究表?,某出版社系统调查表,软件需求的获取,某出版社系统调查表,软件需求的获取,软件需求的获取,一个调查研究表的实例讲解,软件需求的获取,在做调查研究时,可以采取如下环节的调查方式:制定调查提纲,向不同层次的用户发调查表。按用户的不同层次,分别召开调查会,了解用户对待开发系统的想法和建议。向用户领域的专家或在关键岗位上工作的人个别咨询。实地考察,跟踪现场业务流程。查阅与待开发系统有关的资料。使用各种调查工具,如数据流图、任务分解图、网络图等。为了能够有效地获取和理清用户需求,应当打破用户(需方)和开发者(供方)的界限,共同组成一个联合小组,发挥各自的长处,协同工作。,