第三章软件需求分析§3.1需求分析的任务准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么。用需求规格说明书规范的形式准确地表达用户的需求。思考、涉及的几个问题如何定义系统需求?如何识别、获取需求?你能够采取何种手段与用户进行交流沟通?何为需求建模?你如何理解模型与建模?软件需求分析的几个阶段•问题分析•问题评估和方案综合•建模•规约•复审系统分析员的主要焦点是“做什么(what)”,不是“怎样做(how)”§3.2需求获取3.2.1需求获取的目的清楚地理解所要解决的问题完整地获取用户需求需求获取面临的挑战:(1)问题空间理解(2)人与人之间的通信(3)需求的不断变化某出版社系统调查表编号提出问题1您在哪个部门工作?2出版业务流程是什么?3您每日都处理哪些文件、数据、报表?4工作中手工处理特别麻烦的事情是什么?5工作中手工处理什么问题解决不了?影响效率的问题有哪些?6您认为提高工作效率,节省工作时间,减轻工作强度可采取哪些办法?某出版社系统调查表编号提出问题7您的部门需要成本核算和统计的内容有哪些?8您的部门采用计算机管理工作情况如何?9如何改进业务流程使之更合理?10哪些问题是目前传统手工方法根本无法解决的?11出版社计算机管理信息系统需要解决什么问题?3.2.2需求获取的内容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)质量保证•系统的可靠性要求?•系统必须监测和隔离错误吗?•规定系统平均出错时间?•出错后,重启系统允许的时间?•系统变化如何反映到设计中?•维护是否包括对系统的改进?•系统的可移植性?