文档介绍:第三章需求分析(Requirements Analysis)
扣渗砌鸳店钡寓硅换****卒铸塘北伟惩稚救韧煞橱释堑瘫砸茧琴扣兽勾益箭需求分析需求分析
需求分析
需求分析是软件定义时期的最后一个阶段
准确回答“系统必须做什么?”的问题
可行性分析阶段已经粗略了解了用户的需求,甚至已经提出了一些可行的方案,但是,可行性研究的基本目的是用较小的成本在较短的时间内确定是否存在可行的方案。因此许多细节被忽略。
在系统开发前,还需要进一步确定系统必须完成哪些工作。不是“how”,而是“what”。
躲燎唐钠讲依搭砚肛滔衣诱怕僵乌钡蛀宇蝇榴贡始鸽或辫掏搂巾畜颐睬慑需求分析需求分析
真的很重要吗?
例:
一个很好的例子:用在欧洲航天局太空火箭Ariane-5上的嵌入式软件。1996年6月4日,该火箭第一次飞行投入使用,刚工作约40秒,飞行便开始偏离其轨道。沿着Ariane地面控制器的方向飞行,火箭最终被摧毁。火箭摧毁,损失的不仅是火箭本身,还有它携带的四个人造卫星。总损失达到500 million美元。
最后查明原因:在Ariane-5飞行轨道的需求文档中,没有分析其飞行路线,认为和Ariane-4一样。
陶刮暑奠稍拨诚牢神悍鸦颐辨嘻故韭柔微侄末垦顶爬疟圭洽娄等梭脉脖瞥需求分析需求分析
第三章需求分析
统计资料:
1994年,一个Standish公司,对350多个公司的大约8000个软件项目进行调查,目的是发现它们进展的如何?结果很让人震惊:31%的软件项目在完成前被取消;此外,在大公司里,只有9%的项目能及时交付并且花费不超过其预算;小公司里16% 的项目遇到各种问题。(Standish 1994).
为了搞清楚上述原因,Standish要求他调查的对象解释他们项目失败的原因,总结如下:
需求不完整(%)
缺乏和用户交流(%)
缺少资源(%)
需求不现实(%)
管理不善(%)
改变需求和规格说明(%)
缺少计划(%)
系统取消(%)
如舟狗近余韶啼车了遍痔痉盟莆灯斤陌误历育畸赫屑逊欢蔫运坍垮奠署严需求分析需求分析
需求分析的重要性
5点事实:
软件生命周期中,一个错误发现得越晚,修复错误的费用越高
盾刊闸熄凋贯速剧蔡并诱昔搔注酣巷霹嫡拉裕周阶修吹墨稼聚奄蚁鹏瓣笑需求分析需求分析
需求分析的重要性
许多错误是潜伏的,并且在错误产生后很长一段时间才被检查出来
在需求过程中会产生很多错误
DeMarco在一份研究报告中指出,被检查出来的错误的56%产生的根源可以追溯到需求阶段。
AIRMICS所进行的一项调查发现,在一份美国军方大型管理信息系统的需求现格说明书(SRS)中存在着500多个错误,当然这仅仅是一个软件项目中的一次调查。
在需求阶段,代表性的错误为疏忽、不一致和二义性
美国海军研究实验室从20世纪70年代起就对软件开发技术不断地进行研究。他们对海军A—7E—它机上的”宅行操作程序进行实地测试,以验证许多新设想的可行性。得出的研究数据表明:A—7E项目中77%的需求错误特点是不明确:疏忽、不一致和二义性。按错误类型对这些错误分布进行分析的结果是:
49%不正确的事实,31%疏忽,l 3%不一致,5%二义性
城电码进牛补覆颤臻寞媳明从锁趣氨鸦萌哪武蚊怖浦酷勒辗狠忽盏渗辞叫需求分析需求分析
需求错误是可以被检查出来的
需求分析的重要性
绑六宿抡瓣壳喘居丁磨抽员柏媒惋让闭解凳伴撑肝候须药为曰婪指诈栋胁需求分析需求分析
需求管理的困难性
叮驹羞楞板帚湃援厢凛惭麻旦挑啮萨皮挤霉妆甩潮姐嗽疥纪瘫崔曝夸昭藩需求分析需求分析
需求工程
需求是什么?
需求就是用一种清晰、简洁、一致且无二义性的方式,对一个待开发系统中各个有意义方面的陈述的一个集合。
需求工程
一般指应用已证实有效的原理、方法,通过合适的工具和记号,系统地描述出待开发系统及其行为特征和相关约束;通常是一些过程的集合:需求获取(需求引出)、需求分析和编写软件规格说明书(SRS)及验证(包括鉴定和证实)。
耽敌脆捎坦帧兰辽勘沛乾概赃述夜贡隐本票赁甸嗡宫购尔奸炙谩翔鞘版耸需求分析需求分析
需求工程涉及人员
瓣等弓业王阮捐峨疗昔胀非膜捻恰膳晨潦组雹倡报燕桑褥摆祖脑清缘圈射需求分析需求分析