浅谈需求工程问题

来源 :管理学家·学术版 | 被引量 : 0次 | 上传用户:wanglyyou66
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:需求工程是软件工程的初始阶段,是整个软件开发过程的基础,也是项目成败的关键阶段之一。近些年来,随着软件规模的不断增大和在各个领域的广泛应用,使软件工程研究越来越重视对需求工程的研究。众所周知,60%的软件产品的错误来源于不正确的需求,但是大部分的软件开发组织仍然没有一个正式的需求过程。许多组织看上去愿意花费巨资用于修改或调整没有很好规定需求的产品,但却不愿意投资相对很少的费用来使需求从一开始就正确。
  关键词:需求工程;功能性需求;非功能性需求;需求变更
  一、研究需求工程的必要性
  需求就是那些您必须在开始构建产品之前发现的东西。如果在构建的过程中才发现需求,或者更糟糕,直到客户已经开始使用您的产品才发现需求,那么代价将是很大的,并且效率将极其低下。在试图构造产品之前,必须明确需求。如果您没有正确的需求,就不能设计或构造正确的产品,进而产品也就不能帮助用户完成他们的工作。
  二、需求工程的两个主要活动
  需求是系统必须具有的特征,或者为了使客户接受该系统而必须满足的约束。需求工程的目标就是定义所构建系统的需求。需求工程包含两个主要活动:需求的提出(产生客户理解的系统规格说明)和分析(产生开发人员可以清楚解释的分析模型)。
  第一部分:需求提出(或需求获取)
  需求包含功能性需求和非功能性需求。功能性需求是产品必须完成的那些事,即为了向它的用户提供有用的功能,产品必须执行的动作,功能性需求源于产品存在的最基本理由。非功能性需求是产品必须具备的属性或品质。在某些情况下,非功能性需求对于产品的成功是至关重要的,有时它们作为需求的原因是为了增强产品,非功能性需求通常跟在产品功能的后面。也就是说,一旦我们知道了产品要做的事情,就可以确定它的行为方式,它需要具备什么品质以及它应该多大和多快。
  ◆功能性需求———产品的功能
  ·产品的范围———定义产品的边界,以及它与相邻系统的连接情况。
  ·功能与数据需求———产品必须做的事情和功能进行的数据操作。◆非功能性需求———产品的品质
  ·观感需求———预期的外观。
  ·易用性需求———基于预期用户的操作水平作出。
  ·性能需求———多快、多大、多精确、多安全、多可靠等等。
  ·操作需求———产品预期的操作环境。
  ·可维护性和可移植性需求———产品的可改动性必须达到什么水平。
  ·安全性需求———产品 的安全性、保密性和完整性。
  ·文化与政策需求———人的因素。
  ·法律需求———满足适用的法律。
  非功能性需求是您的产品必须具备的属性。这些属性可以看作是一些特征或属性,它们使产品有吸引力、易用、快速或可靠。例如,您可能希望您的产品在指定的时间内作出响应,或者在计算时达到指定的精度。类似地,您可能希望您的产品有某种特定的外观,或者能被无法阅读的人士使用,或者遵守适用于您的这类业务的法律。
  需求的获取主要通过下面两个途径:
  ◆◆做用户的学徒
  这一点是基于师傅和学徒的想法。系统分析师成为用户的学徒,与用户坐在一起,通过观察和问问题来学习该工作。不太可能做到许多用户都能以足够详细的方式解释清楚他们在做什么,让分析师能捕获所有的需求。但是,当人们正在做某事时,总是很善于解释他们正在做什么。如果用户正在他日常的位置上做他的工作,他就能提供一份动态的意见和建议,这样能提供一些细节,不这样做的话很可能漏掉这些细节。可能仅当用户在工作时,他才能精确地描述他的任务,告诉您他为什么在做这些事。
  ◆用户访谈
  用户访谈是需求收集的传统方法。然而,仅使用这种方法可能并不是最有效率的。我们强烈建议不要把访谈作为唯一的需求收集方法,而是将它与其他方法一起使用,有时其他方法能产生更好的效果。
  第二部分:需求分析
  分析的结果是产生准确、完整、一致并且可检验的系统模型。需求提出阶段产生了系统规格说明,开发人员在分析阶段将该系统规格说明形式化,并详细检查边界条件和异常情况。如果发现有任何错误或二义性,开发人员就纠正并澄清系统规格说明。该活动通常涉及客户及用户,特别是当需要改变系统规格说明,以及需要收集附加信息时。
  由于项目的特殊性和行业覆盖的广阔性,以及需求分析的高风险性,软件需求分析的重要性是不言而喻的,同时需求分析又的的确确难做。其原因基本上是由于以下情况造成的:
  1)客户说不清楚需求。
  2)需求自身经常变动。
  3)分析人员或客户理解有误。
  面向对象的需求分析的基本步骤如下:
  1)与用户广泛接触,收集和查看相关资料,对问题域有一个大致的了解。在此基础上,提炼和标识对象。
  2)描述对象(类)的属性。
  3)描述对象之间的关系,如整体关系和从属关系等。
  4))描述问题域的“剧情”,即描述问题域中完成每个任务需要的对象间的协作关系。
  以上四个步骤不是孤立进行,而是相互联系的。通过这四个步骤的反复执行,就可以建立一个基于对象的问题域模型。
  三、需求存在变化
  需求也会更改。通常它们的更改有个很好的理由:业务改变了,或者新的技术优势使得进行改动是值得的。这类改动常常被视为需求蔓延。需求蔓延指的是在大家认为需求过程已经结束以后又进入规格说明书的需求。但是,如果改动导致了在正式需求过程结束后产生新的需求――它们不能事先预见――那么这类需求蔓延就是不可避免的。很自然,需求过程永远不会结束(产品不断地演进),但是总存在一个项目阶段,在这个阶段您打算要开始构建产品的工作。在这个阶段之后发生的需求被视为需要蔓延。   (一)统一的方法
  统一软件开发过程是通过在项目的前期尽可能准确,全面地捕获需求,然后对需求的变化加以控制和管理,来避免范围的蔓延,并通过迭代和递增的开发方式,来应对变化。从软件工程发展的历史,我们说在项目前期全面地捕获需求一直是一个做好软件的不二法则。
  对业务逻辑相对稳定的项目,在项目实施之前做好需求的捕获绝对是受益匪浅的,因为软件的问题在生命周期的后期发现需要的成本要比在初期发现高得多。
  迭代和递增式开发也降低了项目的风险,他允许在项目进行过程中对需求进行校正,它通过递增的版本发布使得客户能在软件开发生命周期过程中就对软件有了更全面的认识,因此也能及时的提出改进意见。
  从团队的角度看,迭代的开发更符合人类学习的曲线-一个渐进的过程。在项目开发的初期,开发人员对业务逻辑和技术的掌握可能并不全面,随着项目的进展,认识会不断加深,这对于后期的迭代周期的成功是很好的保障。
  (二)敏捷方法(XP)
  以XP为例,他提出以拥抱变化来应对需求的变化,他并没有强调在项目的初期确定能确定的需求的重要意义。这与传统的软件工程观点和统一软件开发过程有差异,他不主张预防需求变化,因此也就没有强调尽可能在早期确定需求。
  拥抱变化与其说是一种方法,不如说是一种心态的调整,XP方法希望开发人员能有良好的面对变化的心态,不讨厌变化,积极面对变化。
  拥抱变化的确是一种非常优良的品质,这不仅仅对于软件需求如此,对于日新月异的软件行业不也如此吗,不跟上技术潮流就会被淘汰,作技术的人员都是深有体会的。同样,面对飞速发展的社会,如果没有积极的心态来应对各种变化,改变固有的观念,也一样会被时代所抛弃。
  XP同样采用迭代的开发方法,小版本交付,来使得客户对软件尽早有更多的认识和了解,这和统一软件过程是相同的。
  纵观统一软件开发过程和敏捷方法对于需求变化的解决方法,我们可以得出结论:
  ◆预防变化,做到在软件开发的初期就尽可能确定可以确定的需求;
  ◆控制需求变更,避免范围蔓延;
  ◆以积极的心态来拥抱变化;
  ◆采用迭代和递增的开发方法,是解决需求变化的最佳方法。
  四、总结
  需求工程的发展,使人们认识到,只有最终用户的直接参与并发挥主导作用,才能真正解决问题空间与求解空间的一致性问题,消除计算机领域和应用领域之间的鸿沟,并自动适应系统需求的不断变化。针对传统分析方式的弊端,一种新的被称为“用户主导、面向领域的需求分析方法”被提了出来。需求工程研究现状中一个明显的不足是研究理论与实践的脱节,理论解决方案通常是在对实际问题简化的基础上得到的。要获得需求突破,改善需求工程的开发质量和效率,需要探索一条有效的解决途径,缩小理论与应用之间的距离,使开发出来的系统和模型切实满足应用领域的需要。目前我们正在尝试研制一种有实用价值的面向某一行业领域的用户主导式的应用软件辅助开发工具及原型系统,建立面向领域的用户框架,继续完善用户驱动的需求分析理论和方法,推动用户工程理论的形成。
  参考文献:
  [1] Suzanne Robertson and James Robertson. Mastering the Requirements Process. Addison-Wesley ,2006
  [2] B.Bruegge and A.H.Dutoit. Object-Oriented Software Engineering—Conquering Complex and Changing Systems. Pearson Education, 2002
其他文献
摘要:中石化化工产品生产及库存信息集成项目可以实现将炼化生产企业化工产品的产出及库存信息通过MES系统及时自动推向企业ERP系统,并同时推向化销企业的ERP系统,实现企业库存信息和化工销售库存信息有效整合,实现产销双方实时共享准确的库存信息。便于化销企业及时查询各企业的化工产品生产及库存状态,及时制订销售计划,大大提高了化销企业业务运营和流程管理效率,为客户提供更好的服务。  关键词:中石化;ER
期刊
摘要:电力架空高压线路下往往违法种植高杆植物,极易造成电网短路和停电等事故,虽历经数年数次整治,目前问题依然严重,必须对高杆植物的危害原因进行分析,探讨有效的综合整治措施,以便预防和控制高杆植物带来的危害。  关键词:高压线路;高杆植物;整治  引言  《中华人民共和国电力法》第五十三条明确规定:“任何单位和个人不得种植可能危及电力设施安全的植物,在依法划定电力设施保护区前已经种植的植物妨碍电力设
期刊
摘要:目前我国车间整体围护墙体主要配合创新节能钢板进行搭接处理,双层结构保温效应完善,不过在节点归控工序上略显复杂。本文就是针对这一技术要论进行深度探析,争取利用图纸测试和安装验证举动延展后续处理方案,保证相关工业建筑工作的拓展前景,巩固应用绩效升级潜质。  关键词:结构安装;双层压型钢板;保温墙体;建筑活动;应用流程  前言  双层压型钢板材质具备保温、节能优势,具体配合保温棉等相关辅助器件处理
期刊
摘要:建筑工程技术资料是建筑档案的重要组成部分,是评判一个建筑工程质量的优劣及安全可靠程度的必要条件,是对突发的安全事故的处理的重要依据,对工程进行检查以及维修改造等方面参考的主要依据。本文对建筑工程技术资料管理问题进行了探讨,以期为相关人员提供借鉴。  关键词:建筑;工程;技术;资料;管理  一、建筑工程技术资料和组成特点  建设通常是非常复杂的,涉及各个方面,需要多种一起工作,共同完成,可见工
期刊
摘要:油田设备是石油生产与开发中所需要的重要物资基础,油田设备维修的现状影响着石油开采成本,是影响石油价格的重要因素。因此,如何充分合理的利用现有的生产设备,达到油田设备使用最大利益化,进而降低石油开采成本,是油田设备管理工作中的重要环节。本文列举了一些油田设备维修中的常见问题,并且提出了自己的解决方案,以期抛砖引玉,加强业内交流。  关键字:油田设备;设备维修;现状  引言  油田设备作为石油生
期刊
摘要:在煤矿中,煤矿的安全生产直接受煤矿通风系统的影响,而主通风机是通风系统的重要保障设备。作为煤矿的能耗大户,主通风机以其功率大、长期运行特点,消耗大量电能。主通风机的运行效率、选型合理性等对矿井能源指标造成直接影响。因此,利用变频技术改造煤矿主通风机具有十分重要的意义。本文主要对煤矿主通风机中变频调速技术的应用进行研究,为主通风机的改造提供参考。  关键词:主通风机;变频调速;节能  目前,在
期刊
摘要:监理是建筑工程独立第三方,应重点监督控制工程质量,提升质量监理能力,提高质量监理服务水平。  关键词:建筑工程;监理质量  前言  目前我国虽实行强制性监理,但大部分建设单位,尤其私营企业、股份制企业只把监理作为委托方的附属单位而不是独立的第三方,独立、公平、公正履行监理工作职责相当困难。唯有质量和安全监理才能真正发挥监理作用,这能切实维护委托人的利益。监理工作者应重点提升质量监理能力,提高
期刊
摘要:在公路工程施工过程中,出现的安全事故原因是多方面的,既有内部原因也有外部因素,在分析公路工程施工安全事故的时候,需要将这些原因进行全面分析,并针对出现的原因,对症下药地给出相应的管理措施。  关键词:公路工程;安全事故;危险源;管理措施  一、公路工程施工过程中的不安全因素解析  (一)公路工程施工安全事故的内部原因分析  在公路工程施工过程当中,安全事故的发生,将直接导致工程停止或中断,如
期刊
摘要:作为我国最为主要的能源部分,石油天然气为我国生活、生产等提供了重要基础。我国现有在役石油天然气管道几乎遍布全国各个海域十几万公里,构成了我国重要的国民经济“血脉”。天然气集气工艺性能的好坏对天然气的生产具有极大影响。为了提高天然气集气工艺,本研究提出天然气电热管单管集气工艺。下面本研究就针对此工艺进行详细分析,以供参考。  关键词:天然气;电热管;集气工艺  引言  随着社会的进步,我国天然
期刊
摘要:随着社会经济不断增长,我国工业园区建设已取得突飞猛进的发展,极大推动了我国现代化进程。新的时代背景对现代工业园建设提出了新的要求,对我国传统工业园发展模式提出了挑战。  关键词:现代工业园;发展趋势;用地控制;规划设计  在现代工业园区规划设计过程中,要以科学发展观为指导,通过合理规划现代工业园分区,提高现代工业园区规划设计的整体质量。本文通过分析现代工业园区规划设计中的注意事项,为现代工业
期刊