软工第二次博客
软件需求是指人们为了解决社会和生活中的各种问题,要求求助于软件,人们需求五花八门,而我们软件工程团队就是要精确全面地知道这些需求。这就要求我们要会进行软件需求分析。
1.首先我们要学会获取和引导需求,我们软件团队需要找到软件的利益相关者,了解和挖掘他们对软件的需求,不同的项目需要不同的办法,这一步叫做“需求捕捉”。
2.分析和定义需求,指从各个方面进行规整,定义需求的内涵,从各个角度将需求量化
3.验证需求,与利益相关者沟通,通过一些办法向他们验证软件团队对于这些需求的认知
4.在软件生命周期中管理需求,在生命周期中,需求可能会发生变化,所以要求我们不断对需求进行重新审核并作出相应的调整
软件需求分析办法
由于软件项目的特殊性和行业覆盖的广阔性,以及需求分析的高风险性,软件需求分析的重要性是不言而喻的,同时需求分析又的的确确难做。其原因基本是由于以下情况造成的。
客户说不清楚需求
有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。例如全国各地的很多部门、机构、单位在进行应用系统以及网络建设时,客户方的办公人员大多不清楚计算机网络有什么用,更缺乏IT系统建设方面的专家和知识。此时,用户就会要求软件系统分析人员替他们设想需求。工程的需求存在一定的主观性,、需求自身经常变动
根据以往的历史经验,随着客户方对信息化建设的认识和自己业务水平的提高,他们会在不同的阶段和时期对项目的需求提出新的要求和需求变更。事实上,历史上没有一个软件的需求改动少于三次的!所以必须接受“需求会变动”这个事实,在进行需求分析时要懂得防患于未然,尽可能地分析清楚哪些是稳定的需求,哪些是易变的需求,以便在进行系统设计时,将软件的核心建筑在稳定的需求上,同时留出变更空间。咨询监理方在需求分析的功能界定上担任一个中间、公平、公正的角色,所以也必须积极参与到需求分析的准备中来,以便协助客户方和承建方来界定“做什么”、“不做什么”的系统功能界限。 4.1.3、分析人员或客户理解有误
软件系统分析人员不可能都是全才,更不可能是行业方面的专家。客户表达的需求,不同的分析人员可能有不同的理解。如果分析人员理解错了,可能会导致以后的开发工作劳而无功。记得一则笑话,有个外星人间谍潜伏到地球刺探情报,它给上司写了一份报告:“主宰地球的是汽车。它们喝汽油,靠四个轮子滚动前进,嗓门极大,双眼在夜里能射出强光„„有趣的是,车里住着一种叫作‘人’的寄生虫,这些寄生虫完全控制了车。”所以分析人员知识的专一性也会造成需求分析的误解和失败。这时,咨询监理公司就必须根据实际的项目需求调研计划,提醒承建方加强业务了解程度和注重沟通技巧。 4.2、有效性软件需求分析三步法
根据以往的工程经验,需求分析工作方法,应该定位在“三个阶段”(也称“三步法”)。
“访谈式Visitation”阶段
这一阶段是和具体用户方的领导层、业务层人员的访谈式沟通,主要目的是从宏观上把握用户的具体需求方向和趋势,了解现有的组织架构、业务流程、硬件环境、软件环境、现有的运行系统等等具体情况、客观的信息。建立起良好的沟通渠道和方式。针对具体的职能部门以及各委办局,最好能指定本次项目的接口人。
实现手段:访谈、调查表格
输出成果:调查报告、业务流程报告
“诱导式Inducement”阶段
这一阶段是在承建方已经了解了具体用户方的组织架构、业务流程、硬件环境、软件环境、现有的运行系统等等具体实际、客观的信息基础上,结合现有的硬件、软件实现方案,做出简单的用户流程页面,同时结合以往的项目经验对用户采用诱导式、启发式的调研方法和手段,和用户一起探讨业务流程设计的合理性、准确性、便易性、习惯性。用户可以操作简单演示的DEMO,来感受一下整个业务流程的设计合理性、准确性等等问题,及时地提出改进意见和方法。
实现手段:拜访(诱导)、原型演示
输出成果:调研分析报告、原型反馈报告、业务流程报告
“确认式Afirm”阶段
这一阶段是在上述两个阶段成果的基础上,进行具体的流程细化、数据项的确认阶段,这个阶段承建方必须提供原型系统和明确的业务流程报告、数据项表,并能清晰地向用户描述系统的业务流设计目标。用户方可以通过审查业务流程报告、数据项表以及操作承建方提供的DEMO系统,来提出反馈意见,并对已经可接受的报告、文档签字确认。
实现手段:拜访(回顾、确认),提交业务流程报告、数据项表;原型演示系统
输出成果:需求分析报告、数据项、业务流程报告、原型系统反馈意见(后三者可以统一归入需求分析报告中,提交用户方、监理方进行确认和存档)
整体来讲,需求分析的三个阶段是需求调研中不可忽视一个重要的部分,三个阶段或者说三步法的实施和采用,对用户和承建方都同样提供了项目成功的保证。当然在系统建设的过程中,特别在采用迭代法的开发模式时,需求分析的工作需一直进行下去,而在后期的需求改进中,工作则基本集中在后两个阶段中。 五、 软件需求分析工具
我们根据用户需求,通过反复讨论、分析,最终明确一个唯一性的用户需求,这个结果其实就是我们的软件需求分析报告。一般我们采用Word、PowerPoint、Visio、
ProntPage、Excel等Office工具,同时可能采用一些开发工具,如VC或BC等,同样也会使用一些图形工具,如Potoshop、调色板等画图工具。
使用各种工具表达软件需求分析,其具体表达手段可以分为: 效果图描述。主要是用户UI界面的描述反映用户需求功能;
逻辑图描述。根据用户需求功能,使用抽象化理论,以及需求分析理论,对用户
需求功能进行全面的分析,建立功能性逻辑关系图,流程逻辑关系图等; 关系图表描述。主要是对信息关系、数据库表格、接口函数等描述;
工程数学描述。分析用户需求,分析用户需求信息,运用工程数学进行算法推导,
进行合理化需求分析推导;甘地图描述。主要是软件项目工作安排,开发周期预估; 其它方法描述。保证完整性合理性的有效描述。
互联网时代创新是必要的,这也要求我们具有更深层次的技术,才能够更方便快捷地改变人们的生活,比如就有如下创新
智能家居
系统是基于红外和GSM网络的用于智能家居环境中的一种远程自动控制系统。其工作原理为:用户通过自身的手机发出命令短消息,在家值守的GSM模块接收到命令后发送给主机(单片机),主机通过对命令的处理,把命令通过红外传输到相应的分机(单片机)上,分机对命令处理后,启动相应设备,完成用户给出的命令并向主机回复应答,主机收到应答后,通过GSM模块发出回复短消息,报告用户完成命令。若在规定的时间内(这里定时60s)主机没有接收到分机的回复信息,即把该操作认为无效,回复操作无效短消息给用户手机,要求用户重新发出命令。若收到的短信息有误,主机便立刻回复用户该操作无效,请求重新发出命令。
浙公网安备 33010602011771号