- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关于软件开发与需求变更之间矛盾研究
关于软件开发与需求变更之间矛盾的研究 摘 要 近年来随着计算机及软件系统进一步发展,各级企业乃至个体工商户都对自己商业运作信息化提出要求,而承载企业信息化的主要媒介就是计算机系统。计算机系统主要由硬件和软件组成的,目前由于硬件发展的速度远超软件发展的速度,软件的发展已成为企业实现信息化的主要瓶颈,软件是根据用户需求而开发的,开发过程中也一定会遇到需求变更的情况。软件开发与需求变更两者之间的矛盾逐渐成为软件业关注的焦点,本文重点关注矛盾产生的背景、原因以及后果,并努力探寻缓解矛盾的方法
关键词 软件开发 需求变更 矛盾缓解
中图分类号:TP311 文献标识码:A
1矛盾产生的背景
软件开发是最早个体开发,编程人员设法使程序在计算机上运行起来,并使用该程序解决预先设定的问题,如果使用过程中发生错误也由该人员修改。在软件体量比较小、开发者和用户是同一个或同一群人、相对的“客户”就是自己的情况下,许多需求细节是可以忍受边使用边修改的,需求变更与软件开发的矛盾处于内部、易协调阶段。而随着分布式系统、网络运用的出现,软件规模不断扩大,软件的开发不再是个体模式,而是以现代工程化、模块化的模式进行设计、制作。软件的用户通常不再是软件开发者自身,这时的矛盾涉及双方,就不再是内部、易协调的了。开发者需要在用户给定的时间节点前交付满足其需求的软件产品,在开发周期内,受内部自身意识的不断改变与深化或外界环境变化,用户或多或少都会对软件的需求提出改变,要求开发者做出相应的修改以满足自己需求的变化。更有甚者在软件即将交付时还会提出需求变更,让开发者陷入被动,也会影响用户实际使用。这往往就是现今软件开发中面临的主要矛盾
2造成矛盾的原因与后果
造成这种矛盾的原因主要包括两个方面:首先,当一个系统变得相对庞大,软件开发周期往往相对漫长。而正因为如此,用户在提出需求之初,需求的内容比较片面、粗略、宽泛,有时甚至于是错误的,用户从自己对公司业务的理解角度出发,提出相应需求,希望开发者能开发出满足他们当下面临的需求的软件产品,这样的结果就是改正了旧问题又出现了新问题,以至于极端情况下,最终实现的功能与起初提出需求的相差甚远甚至是矛盾的;另一方面是因为开发者通常是软件技术方面的专家,而对于用户的业务及企业运行模式不了解,仅从技术角度去构思如何通过软件解决用户需求,出现问题就补漏洞,客户没要求就不优化。最后的软件产品往往差强人意
既然最终的产品与起初的构想有偏差或者不满意,那就需要修改,而当一个软件产品或者说一个系统通过不断的修改补充,规模无比复杂,很多功能可有可无。而必须要进行修改的一项或者几项核心功能牵一发而动全身,当用户需求变更涉及诸如数据库表结构的修改时,面临的就是非常巨大的工作量,甚至会出现对于整个软件系统来说毁灭性的结果:推倒重来
3减少矛盾的方法
用户需求的一再改变,开发者始终在追赶改变,设计过程从痛苦变为麻木,用户对软件产品迟迟不能交付也感到焦急万分。一些开发者认为,对于先期没有充分明确的需求,用户在后期提出的修改可以列入软件下一个版本进行更新,不用苦恼必须在当前版本交付之前做出这些修改,但这样造成用户的时间成本和经济成本双重增加。而用户后续提出的需求变更通常才是更为迫切的、需要尽快解决的问题,该矛盾并未解决。由于人的思维会随着时间的迁移而不断变化,同时企业的运作也不断发展,这种软件开发与需求不断变化之间的矛盾就一直会存在且不可避免。虽不能避免,但通过以下方法可以减少这种矛盾
3.1用户与开发者需要进行换位思考,找到软件开发的切入点
首先是用户在描述需求的时候能从开发者的角度出发尽可能的详细描述,这受限于用户业务领域与软件专业领域之间的差别;另一方面开发者在听取用户需求描述时能从用户业务角度出发进行理解,并从业务的角度提出一些问题,让用户对潜在的需求有所意识并及时更新。这就要求开发者不光要精通于计算机软件相关的技术,还需要对各行各业的技术、业务相关知识有所了解,在交流中形成共同语言,这样才能更准确地理解用户的需求,找到软件开发切入点,让用户和开发人员取得共识
3.2在软件需求分析环节下大工夫,抓住软件开发的重点
这个环节的任务是对系统功能作出清晰、准确、具体的要求。需求分析的结果是进行软件设计的基础,需求分析是在问题和解决问题的方案之间架设桥梁,是软件需求过程的主体和重点。一个软件项目的目标就是要开发正确的、能解决用户问题的软件,要做到这一点需要足够详细地描述用户的需求,也就是软件产品必须达到的要求或者能力。软件开发最为困难的概念性工作就是通过分析,编写出详细技术需求,包括所有面向机器、面向用户和其它系统接口的需求。这一阶段的工作如果做错,将会给系统带来难以预料的极大的损害,需求上的
文档评论(0)