打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
软件工程学习心得

软件工程的特点在于它要求开发的软件具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可维护性、可重用性、可移植性、可追踪性、可互操作性。然而近年来的研究和实践表明软件危机依然存在,软件开发仍然存在成本高、质量得不到保证、进度和成本难以控制等方面的问题,许多 软件项目被迫延期甚至取消。同时,随着时代的发展,互联网的应用越来越普及,部署在网络基础上的软件系统的规模和复杂性越来越高,并表现出诸如持续性、自适应性、交互性、动态性、开放性、异构性等特点。因此,如何支持这类复杂系统的开发、缓解和消除现阶段的软件危机是当前软件工程面临的一项重要挑战。为了迎接上述挑战,近年来软件 工程领域的一些学者提出了许多新的方法和技术。比如敏捷软件开发。软件工程追求开发软件要尽力追求投入更少的成本,但却要适应现代用户的需求变化。为了解决这个问题,敏捷软件开发发挥了他的作用。软件开发一般分为两种:重型软件开发方法、轻型软件开发方法。重型软件开发方法一般具有严格和详尽的软件开发过程,软件开发需产生大量的文档。轻型软件开发方法则强调软件开发过程的简洁性和灵活性,软件开发只需编写少量的文档。敏捷软件开发是一类轻型的软件开发方法,它提供了一组思想和策略来指导软件系统的快速开发并响应用户需求的变化。不同于已有的其它软件开发方法,该方法对软件开发具有 以下四个方面的基本认识:(1)较之于过程和工具,应更加重视人和交互的价值;(2)较之于面面俱到的文档,应更加重视可运行软件的价值;(3)较之于合同谈判,应更加重视客户 合作的价值;(4)较之于遵循计划,应更加重视响应用户需求变化的价值。对我们而言,最重要的是通过尽早和不断交付有价值的软件满足客户需要。我们欢迎需求的变化,即使在开发后期。敏捷过程能够驾驭变化,保持客户的竞争优势。经常交付可以工作的软件,从几星期到几个月,时间尺度越短越好。业务人员和开发者应该在整个项目过程中始终朝夕在一起工作。围绕斗志高昂的人进行软件开发,给开发者提供适宜的环境,满足他们的需要,并相信他们能够完成任务。在开发小组中最有效率也最有效果的信息传达方式是面对面的交谈。可以工作的软件是进度的主要度量标准。敏捷过程提倡可持续开发。出资人、开发人员和用户应该总是维持不变的节奏。对卓越技术与良好设计的不断追求将有助于提高敏捷性。简单--尽可能减少工作量的艺术至关重要。最好的架构、需求和设计都源自自我组织的团队。每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为。【1】敏捷软件开发有四个原则,首先敏捷软件开发是递增而不是连续的,它要求开发软件的过程中不需要等到一个小部分完成后再完成另外一个小部分。第二个便是避免不必要的开销,这开销更多指的是时间成本。一直以来,人们将文档视为是对软件开发各个阶段成果进行记录、促进人员之间进行交流的重要媒介和工具,也是软件开发和维护的主要依据。然而,编制过多的文档不仅会耗费大量时间和精力,而且当用户需求变化时难以实现文档与代码的同步,这势必会影响软件系 统的开发和维护。敏捷软件开发方法提倡在软件开发过程中只编写少量短小精炼的文档。与其大家开会争吵半天,编写大量的文档,还不如赶紧动手做。第三个便是协作精神,一个团队,只有互相合作才能以最快的效率完成开发任务,才能在出现问题的时候迅速解决问题。敏捷软件开发方法认为人是软件开发中最为重要的因素,软件开发应坚持以人为本;优秀的软件开发团队离不开人员之间良好的沟通与合作,相比较而言团队的合作与沟通能力比单纯的编程能力更为重要,改善人员之间的交流与合作将有助于提升团队的软件开发水平;应根据软件开发团队的特点选择合适的软件开发过程第四个就是要实事求是,在团队合作中,不要害怕自己不懂的问题,害怕被别人看轻而不敢说真话。除此之外,敏捷式开发还注重与用户的交流成功的软件开发不应单纯依赖于合同条款和工作说明,而应 将用户和软件开发团队紧密地结合在一起,让用户积极参与软件开发并提供持续不断、频繁的反馈信息。在软件开发过程中,用户需求总会发生变化,这是由于用户需求难以一次性完全捕获,开发人员和用户对于需求的认识会不断地调整。此外,用户的业务本身也可能会动态地发生变化。在复杂软件系统的开发过程中,响应用户需求变化的能力常常决定着软件项目的成败。为了适应用户需求的变化,敏捷软件开发认为软件开发计划不应考虑的太远,不要进行过于周密、详细的计划,只应覆盖短期的工作任务,对于中长期的任务只需有一个粗略的规划即可,要保留计划 的充分灵活性,并根据需求的变化适时地调整计划。

敏捷软件开发与迭代式开发具有相似之处,都是注重于在较短的时间里完成软件开发,但敏捷开发方法的周期可能更短,并且更加强调队伍中的高度协作。对比瀑布式开发两者没有很多的共同点,瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂。瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。相对来讲,敏捷方法则在几周或者几个月的时间内完成相对较小的功能,强调的是能将尽早将尽量小的可用的功能交付使用,并在整个项目周期中持续改善和增强。【2】

 

 

参考文献:

【1】:敏捷软件开发宣言

【2】:基于构件的敏捷软件开发方法

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
现代软件开发方法
一个务实的软件开发团队是怎样的?
谈软件项目快速开发方法
软件开发成本测量之软件项目规模和工作量测量
理顺软件开发各个环节-4(需求管理-软件需求-1)
传统开发模型vs敏捷开发模型——过程模型的变革
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服