浅谈小议小议传统软件开发与极限编程

更新时间:2024-02-03 作者:用户投稿原创标记本站原创
摘要:本文结合笔者多年实际工作经验,对软件开发的传统方法和开发流程进行详细介绍,在此基础上对极限编程进行研究,以期降低计算复杂度,提高软件开发效率。
关键词:软件开发;极限编程;复杂度
1007-9599 (2012) 17-0000-02
从软件工程的三要素出发,即方法、工具和过程,我们可以将软件工程方法划分为结构化方法、面向对象方法和形式化方法。所谓结构化方法,是指采用结构化技术对系统生命周期进行划分,并完成各个阶段的任务;所谓面向对象方法,是指保持概念和表示方法的一致性,保证各种大型、复杂的系统开发活动之间的平滑过渡;所谓形式化方法,是基于数学变换的一种将系统规格说明向可执行程序进行形式化转换的方法。传统软件开发方法具有其固有的缺点,那就是无法在分析阶段认识和描述问题的原有事物,并以此为基础分析其功能、数据流和数据。该种分析方式无法直接映射问题域。传统软件工程在与客户交流沟通方法缺乏坚定的原则,未能实现分析到设计的有效转换,因此很容易造成问题域和实际结果不符,严重影响开发质量,造成工程延期。
1传统软件开发的一般流程
1.1可行性分析。对于软件开发来说,必须确定软件项目是否值得开发,对其在短期内获得价值的可能性进行评估。可行性研究必须完成以下三项任务:(1)确定社会可行性,要对现有操作方式、人员素质和管理制度能否满足软件开发要求进行研究;排除项目受妨碍、侵权等责任问题困扰的可能性;(2)确定经济可行性,对项目的投资开发价值进行评估,估算项目的开发成本和应有的经济效益;(3)确定技术可行性,对现有技术资源包括硬件、软件和技术等进行评估,确保它们能够为项目的实现提供基础。
1.2需求分析。所谓需求性分析,是指开发人员在详细分析调查用户要求之后,完整定义用户需求的过程。包括识别、综合与分析、编写文档等都属于需求分析的任务。识别要求包括界面要求即人机交互要求,满足软件运行的软件和硬件环境要求,待开发软件的性能指标需求。软件功能需求是指是所开发的软件所必须具备的功能是其中最为重要的需求。综合与分析,主要是建立系统逻辑模型。编写需求分析的文档,是指采用规划的方法描述开发人员和用户的分析结果,作为日后各项工作的基础,并编成《需求规格说明书》;《初步用户使用手册》反映用户功能界面和具体使用要求;《确认测试源于:论文网站大全www.808so.com
计划》是验收和确认的主要依据;《项目开发计划》是进行详细分析的依据。
1.3过程设计。首先是概要设计,是逻辑模型向物理模型转换的过程,将软件需求转变成软件程序就是软件的概要设计过程。对于概要设计来说,要完成的任务包括整体系统结构设计、数据结构和数据库设计、概要设计文档编写。设计软件系统需要根据功能需求将一个复杂的系统分成几个部分,每个模块的功能确定要以具体需求为准,然后对各个模块间的相互调用关系进行确定,最后确定模块间的接口连接方式。对于需要处理大量数据的大型系统来说,数据库设计和数据结构是非常重要的。包括《测试计划》、《概要设计说明书》、《数据库设计说明书》、《用户手册》在内的文档都是概要设计阶段所需文档。其次是详细设计。具体来说,详细设计过程包括以下四项任务:(1)设计各个模块的算法。对系统的每个模块算法进行详细设计是该项任务的基本要求,并用详细的算法描述每个模块的处理过程;(2)设计模块内的数据结构。该项任务要求准确定义需求分析和概要设计中要求的数据类型;(3)设计数据库的物理性质;(4)编写整个软件工作的详细设计说明书。伪码的设计应该包含于《详细设计说明书》之中,伪码是一种设计语言,用于描述模块算法及细节处理。
1.4编码及测试。在程序编码中,对程序语言的选择要对以下四点加以注意:(1)软件运行的环境;(2)软件开发人员的知识面;(3)项目应用的领域;(4)正确的软件开发方法。从软件程序的设计风格来看,必须考虑四点因素:(1)输入输出结束标志和其语句构造;(2)程序设计的效率;(3)对编码进行程序化的规范;(4)数据的注释说明。
1.5后期维护。软件在投入使用之后,就进入了软件生命周期中最长的一个阶段,即软件维护阶段。软件维护主要包括以下四种类型:1.预防性维护,目的是提高软件的可维护性和可靠性,及时维修软件;2.完善性维护,目的是满足用户对软件的各种功能和性能要求;3.适应性维护,目的是适应计算机数据和硬件环境的迅速变化而进行的维护工作;4.校正性维护,许多在开发过程中未能被发现的错误会在软件交付使用之后浮现出来,这时就需要对软件进行校正性维护。
2极限编程
2.1极限编程的定义。作为一种软件开发方式,极限编程具有严谨、周密、轻量和灵巧等特点。极限编程的开发方法是对复杂的开发过程进行分解,然后对分解后的相对简单的小周期进行处理,总体上说接近于螺旋式。在极限编程模式下,无论是客户还是开发人员都能够对软件的进度、变化、待解决问题和潜在困难进行清楚地了解,方便开发人员和客户对程序开发过程进行及时地反馈和交流。人与人之间互相合作是极限编程最为强调的一点,人在软件开发中的优势在其开发过程中被充分体现出来。即使是在软件生命周期的后期,极限编程都能够对客户的需求变化进行及时的响应。包括编码规范、系统隐喻、现场客户、小型发布、代码集体所有权、持续集成、测试、规划策略方法、简单设计等都是极限编程所采取的有效方式。
2.2极限编程核心思想描述。沟通、简单、反馈、勇气是极限编程具有的四大核心思想。在这四大核心思想的指导下,极限编程能够减轻压力和开发报复,激发人的潜力、更好地帮助客户理解软件。对我们学习和理解快速变化和多样化的开发技术来说,极限编程精神具有很好的启发作用。学习好极限编程的关键在于要用在编程实践中坚持“沟通、简单、反馈、勇气”的态度;本着愉快轻松的心情来感受极限编程的实践思想;在实践之后对其进行详细认真的反馈分析。极限编程的核心思想从长远角度来看是为了能更好地节约成本,降低计算复杂度,因此必须做到尽早发现软件系统的错误。尽早发现和解决较短周期子模块中的问题,并对代码质量进行测试是极限编程最为强调的一点。
2.3极限编程的过程描述。第一,开发过程要讲究计划性,遵循持续和循序渐进的原则,每两周客户要根据成本和商务价值对需要实现的特性进行选择,开发人员必须认真估算候选特性的成本。第二,工作实践背景,对于极限编程团队来说,项目需要在一个全开放的场所中,由客户、测试人员和所有的开发人员进行软件开发工作才算完整。第三,简单的设计,团队在简单设计过程中要确保设计与系统功能相匹配,在保证能表达出开发思想的前提下不能包含任何重复代码,尽量少地使用代码。第四,客户期望的特性可以根据脚本语言进行定义,并进行自动验收测试,确保该特性能够工作。第五,驱动测试,作为一个验证的过程,对单元测试进行编写要尽量避免功能数量和验证的反馈循环。第六,结对编程,在同一台机器上面由两个程序员共同完成是所有采用极限编程方法开发的软件产品所具有的特性。第七,持续集成,对于软件系统来说完整性的保持至关重要,由此可实现代码的自由拆入和集成。第八,为了保持代码尽可能干净,具有表达力的特性,对已经腐化的代码要采用重构的方法进行改进设计。第九,为了能更直观地展现系统各个单独模块,可以将整个系统联系在一起,将其全局视图看作是整个系统的一个未来影像。
3结论
综上所述,相对于传统软件开发方法来说,极限编程具有无可比拟的优越性,能够有效解决因需求量变化和员工变动给软件开发带来的效率下降和开发周期延长等问题,大大降低计算复杂度,能够及时发现错误从而节省后期修改成本,提高软件开发效率,更好地适应当今商业信息时代经济快速发展的要求。
参考文献:
吴笛.基于构件软件工程的经济学分析[J].现代商贸工业,2009,1
梁宁利.利用软件工程基本原理对一个电子信息发布管理平台设计[J].科技经济市场,2007,10

点赞:26613 浏览:120483