您好,欢迎访问三七文档
第4章需求工程案例某大型的电信设备供应商,案例中涉及6个部门A,B,C,D,E和F,它们之间的关系如下图所示:福州大学亓晓静2F客户E:网管软件承包商D销售机构A:增值业务研发机构C:项目管理机构B:核心平台研发机构一年前,B研制了一种数据接入服务器的原型。B对A讲:“我们的接入服务器前途很好,请你们帮助开发网管软件(属于增值业务范畴),大家合作把产品做好,一起发财。”D对B和A讲:“你们把接入服务器和网管软件做好,我们负责卖,挣了钱大家一起分。”福州大学亓晓静3A觉得机会难得,于是向C申请立项。立项后,A把项目外包给专业做网管软件的公司E,期望半年内完成。由于接入服务器是B的,于是A和E就派开发人员到B处搞需求分析。B的接入服务器并不成熟,老在变,三方折腾了好久,最终E用了一年时间把接入服务器的网管软件做出来了。E把网管软件交付给A,A付清了E的开发费用,再把网管软件交付给D,D再卖给客户F(某地电信局)。F对D讲:“你们的网管软件不是我们想要的东西,等你们把软件改好后我们再付钱。”D赶紧对A讲:“兄弟阿,货已经出手了,但是不对路,请赶紧把它改好,不然大家都没钱赚。”A很愤怒,怨天不公:“我们辛苦了一年,又花了很多钱,可是产品做完了却没人要,岂有此理!”福州大学亓晓静4祸不单行的是,C来找A的麻烦:“你们的项目延期半年多了,经费也用光了,请尽快结束项目。”A的那位项目经理为此每天愁眉苦脸,他的上司请来几位参谋商量对策,设法把事情搞定。大家挖空心思只想出一个馊主意:既然套子是B下的,那么就把套子还给B。要设法把“那么好”的网管产品转让给B,只要B能给我们成本费,以后就跟B拜拜。这个案例的问题根源在于进行软件开发之前没有搞清楚网管软件的需求,这都是B,A,E闭门造车惹的祸。最可悲的是,相关责任人关心的是如何把事情“完成”,而不是深刻了解用户的具体需求。这种类似的事情在软件开发行业中经常发生而且还会继续发生,最主要的是每发生一次就损失大量的人力和物力。用户描述的可能不是他想要的。对用户的描述每个人有不同的理解福州大学亓晓静5开发人员和用户之间的鸿沟有一家汽车厂,想为年轻人设计一款新车型,企划及设计部讨论了许久始终找不到感觉,于是对25-35岁的年轻人进行问券调查,大伙辛苦了三个月,完成了一万份的调查记录。市场部门摘要了调查内容反映给设计部门,重点:省油、外型酷、颜色鲜艳、马力足等。设计部门有了灵感开始设计,半年过去了!设计部门很得意的把样车展示给大伙看,这个时候…CEO、市场部、企划部..都傻眼了。CEO开口说:为什么这车没有”轮子”设计部回答:市场部给的调查报告里,没说要有轮子市场部回说:问卷调查中、顾客没有提到要有轮子企划部生气的说:你们都是白痴啊,汽车要有轮子是基本常识,你们都不知道吗?就这样现场吵翻天了!福州大学亓晓静6做需求要很细、很专业、很有经验福州大学亓晓静7男孩反问:“是无声枪么?”不是“枪声有多大?”80~100分贝“那就是说会震的耳朵疼?”是“您确定那只鸟真的被打死啦?”确定“鸟里有没有聋子?”没有“有没有关在笼子里的?”没有“旁边树上还有其他鸟?”没有“有残疾或饿的飞不动的鸟?”没有“算不算怀孕肚子里的小鸟?”都是公的“打鸟的人眼睛有没有花?”没有“有没有傻的不怕死的?”都怕死“会不会一枪打死两只以上?”不会“所有的鸟都可以自由活动么?”完全可以“它们受到惊吓时不会互相撞上?”不会学生满怀信心的回答,“打死的鸟要是挂在树上没掉下来,那么就剩一只,如果掉下来,就一只不剩。”某日老师在课堂上想考考学生们的智商,就问一个男孩:“树上有十只鸟,开枪打死一只,还剩几只?引言需求具有主观性、二义性、多变性、模糊性。需求分析要求很专业、很仔细、很有经验。需求分析是确定系统应具备的功能,是其他所有工作的基础,因此非常重要。有统计表明,软件项目40%~60%的问题都是在需求阶段埋下的“祸根”结论:软件需求是影响软件项目成败的关键因素福州大学亓晓静8福州大学亓晓静9第4章需求工程4.1需求工程的概念4.2确定系统目标和范围4.3需求获取方法4.4需求分析的任务4.5需求分析的原则4.6定义软件的质量属性4.7需求优先级4.8需求验证技术4.9需求管理4.1需求工程的概念1.需求的概念什么是需求?什么样的陈述可以作为需求?需求从哪里来?需求的演变需求的分类2.如何有效地获取正确的需求?3.需求的质量福州大学亓晓静10什么是需求?需求是这样一种陈述,它描述了待开发产品的功能、性能或者其它性质。软件需求是指用户对软件的功能和性能要求,就是用户希望软件能做什么事情,完成什么样的功能,达到什么样的性能。福州大学亓晓静11福州大学亓晓静12例如:(1)系统必须有能力支持100个以上的并发用户,每个用户可以处理附录A中操作任务的任选组合,平均响应时间应该小于1秒,最大响应时间应小于5秒。功能:可以处理附录A中操作任务的任选组合性能:有能力支持100个以上的并发用户,平均响应时间应小于1秒,最大响应时间应小于5秒。(2)必须在对话窗口的中间显示错误警告,其中使用红色的、14点加粗Arial字体。功能:能显示错误警告设计约束:在对话窗口的中间显示,并使用红色的、14点加粗Arial字体。什么样的陈述可以作为需求?IEEE标准830-1998要求单一需求必须具有5个基本性质(需求的基本性质):必要的(Necessary)。确实需要吗?无歧义的(Unambiguous)。是否只有一种解释方式?可测的(testable)。能否进行测试验证?可跟踪的(Traceable)。可以从一个开发阶段到另一个阶段对它进行跟踪吗?可测量的(Measurable)。是否可以测量吗?注:确定一个需求是否满足以上五个性质是复杂耗时的过程.福州大学亓晓静13从用户对当前系统的表述中提炼需求用于准确地定义新系统的目标。回答系统必须“做什么”的问题并编制需求规格说明书。需要借助于当前(业务)系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。软件开发的目标需求分析的目标需求从哪里来?福州大学亓晓静14学习、理解、分析、整理(1)获得当前系统的物理模型分析、理解当前系统(人工处理或原计算机系统)是如何运行的,了解其组织机构、输入输出、资源利用情况和日常数据处理过程。(2)抽象出当前系统的逻辑模型在理解当前系统“怎样做”的基础上,抽取其“做什么”的本质。(3)建立目标系统的逻辑模型分析目标系统与当前系统逻辑上的差别,明确目标系统到底要“做什么”,进而从当前系统的逻辑模型导出目标系统的逻辑模型。(4)对逻辑模型的补充包括说明目标系统的用户界面、系统细节和性能限制等。福州大学亓晓静15需求的演变福州大学亓晓静16能够有效地检查和纠正文档中的字词拼写错误找出文档中的拼写错误,并且对每个错误提供一个更正,列出可以替换的字词。软件提供一个打开的文档对话框;对打开的文档进行字词检查,发现拼写错误并以高亮度提示出错的字词;对错误字词显示更正建议对话框,其中列出可选的字词,以及替换范围选择。高层次的目标要求用户的期望系统功能的描述例:字词拼写检查程序业务需求(问题定义):确定软件的目标、规模和范围。是用户高层领导机构决定的,业务需求一般在需求分析之前就应该确定。业务需求通常比较简洁。用户需求:是用户使用该软件要完成的任务。用户需求应该充分调研具体的业务部门,详细了解最终用户的工作过程、所涉及的信息、当前系统的工作情况、与其他系统的接口等等。用户需求是最重要的需求,也是出现问题最多的。功能需求:软件系统必须实现的软件功能。软件分析人员在充分理解用户需求的基础上,将用户需求整理成软件功能需求。开发人员根据功能需求进行软件设计和编码。福州大学亓晓静17需求分类功能需求列举出所开发软件在功能上应做什么,这是最主要的需求性能需求给出所开发软件的技术性能指标,尤其是系统的实时性和其他时间要求,如响应时间、处理时间、消息传送时间等;资源配置要求,精确度,数据处理量等要求福州大学亓晓静18环境需求:是对软件系统运行时所处环境的要求在硬件方面,采用什么机型、有什么外部设备、数据通信接口等等。在软件方面,采用什么支持系统运行的系统软件(指操作系统、网络软件、数据库管理系统等)。在使用方面,需要使用部门在制度上、操作人员的技术水平上应具备什么样的条件等等。福州大学亓晓静19可靠性需求指软件的有效性和数据完整性。各种软件在运行时失效的影响各不相同。在需求分桥时,应对所开发软件在投入运行后不发生故障的概率,按实际的运行环境提出要求。安全保密要求工作在不同环境的软件对其安全、保密的要求显然是不同的,应当把这方面的需求恰当地做出规定。用户界面需求软件与用户界面的友好性是用户能够方便有效愉快地使用该软件的关键之一。福州大学亓晓静20资源使用需求指所开发软件运行时所需的数据、软件、内存空间等各项资源,以及软件开发时所需的人力、支撑软件、开发设备等。软件成本消耗与开发进度需求在软件项目立项后,要根据合同规定,对软件开发的进度和各步骤的费用提出要求,作为开发管理的依据。福州大学亓晓静21非功能性需求列表福州大学亓晓静22目标系统的限制性能实时性其他的时间限制资源利用,特别是硬件配置选型精确度、质量要求可靠性有效性完整性安全/保密性安全性保密性运行限制使用频度、运行期限控制方式(本地还是远程)对使用者的要求物理限制系统的规模等限制开发和维护的限制开发类型(实用型开发或试验型开发)开发工作量估计;在采用具有试验型的渐进开发方法时,对资源、开发时间及交付的安排开发方法质量控制标准里程碑和评审验收标准优先性和可维修性可维护性例:功能需求办理读者借书证,借阅图书,…性能需求查询操作延迟时间不超过1秒钟,…设计约束前台运行在Windows7OS下,…其它要求开发时间6个月,…福州大学亓晓静232.如何有效地获取正确的需求?软件的需求分析是一系列复杂的软件工程活动,为了便于对需求进行更好的管理,人们把所有与需求直接相关的活动通称为需求工程。福州大学亓晓静24需求工程需求开发需求变更控制需求管理需求版本控制需求跟踪需求获取需求分析需求定义用户需求说明书软件需求规格说明书需求跟踪矩阵需求变更控制报告需求审查需求状态跟踪控制需求评审报告3.需求质量高质量需求的特征P66影响需求质量的因素P68福州大学亓晓静254.2确定系统目标和范围作用制订需求调研计划的依据可以判断用户需求是否属于目标系统可以是一份专门的文档包含的内容,P70福州大学亓晓静26例:基金模拟项目基金代销机构(银行)为了减轻理财专员的工作量,希望开发一个基金交易系统,可以支持理财专员处理基金的申购与赎回业务,同时也希望投资人可以通过网络直接进行基金交易,从而带来更多的收益。福州大学亓晓静27例:图书管理系统为学校的图书馆开发一套系统,对图书馆藏书和借阅进行统一管理,从而可以通过开馆自选的形式借阅图书,可以通过网络查询图书信息等,方便借阅者,提高图书馆的管理水平。福州大学亓晓静28例:学生成绩管理系统为学校开发学生成绩管理系统,可以对学生成绩进行管理,并能够方便地查询到相关的教学信息,包括学生的基本信息、课程信息、教师信息、专业信息等。福州大学亓晓静294.3需求获取方法1.强调用户合作2.制定调研计划3.准备调研资料4.访谈用户5.编写调研报告6.需求的其他来源福州大学亓晓静30需求获取的对象:用户“用户”(user)是一种泛称,它可细分为:“客户”(Customer):掏钱买软件的用户“最终用户”(Enduser):真正操作软件的用户“间接用户”(或称为关系人)如果软件是面向企业用户的,那么客户与最终用户通常不是同一个人。如果软件是面向个人用户的,那么客户与最终用户通常是同一个人。福州大学亓晓静311.强调用户合作
本文标题:04需求工程
链接地址:https://www.777doc.com/doc-160006 .html