西门子TP700操作面板
的基础上增加少量功能的时候,这种迭代过程就是增量开发过程。
增量过程模型是用一种几乎连续的过程小幅度地推进项目,如图1.3所示。增量过程模型在项目的后期尤其适用,比如当项目处于维护阶段,或者立项的产品与原先开发出来的产品结构极为相似。代码,包括**可视化开发系统生成的代码和用第四代程序设计语言编写的代码等。
• 软件测试主要是为了发现程序中的错误。
• 运行维护主要是对软件进行修复和改动,使它能够持续发挥作用。
在实际软件开发过程中,并不是严格按照图1.1中所示各阶段顺序执行的,因此过程中的各部分之间都有某种程度的重叠。造成这种重叠的原因是上述任何一个阶段都不可能在下一阶段开始之前完全结束。软件开发人员很少像图1.1所示的那样使用单纯的瀑布过程模型,除非是很小的项目或者是开发的产品与软件开发人员以前做过的项目类似,这主要是因为绝大多数软件都是复杂的、非线性的。2. 螺旋过程模型
螺旋过程模型需要经历多次需求分析、设计、实现、测试这组顺序活动。这样做有多种原因,其中主要的原因是规避风险;另一个原因是在早期构造软件的局部版本时即交给客户以获得反馈;还有一个原因是为了避免像瀑布过程模型一样一次集成大量的代码。
螺旋过程模型的基本思路是依据前一个版本的结果构造新的版本,这个不断重复迭代的过程形成了一个螺旋上升的路径务用。软件的维护是指对软件系统进行修改或对软件需求变化作出反映的过程。
的应用效果和软件的生存周期。软件的可维护性与软件的设计密切相关,因此在软件开发过程中应该重视对软件可维护性的支持。
软件生存周期的*后一个阶段是终止对软件系统的支持,软件停止使用。
1.1.3 软件过程模型
软件开发过程包含各种复杂的风险因素,为了解决由这些因素带来的种种问题,软件开发人员经过多年的摸索,总结出了多种软件工程的实现方式——软件过程模型,如瀑布过程模型、螺旋过程模型、增量过程模型、快速原型过程模、敏捷过程模型等。这些软件过程模型是软件开发的指导思想和全局性框架,它们的提出和发展反映了人们对软件过程的认识观,体现了人们对软件过程认识的提高和飞跃。软件开发所遵循的软件过程是保证高质量软件开发的一个至关重要的因素。1. 瀑布过程模型
瀑布过程模型反映了早期人们对软件工程的认识水平,是人们所熟悉的一种线性思维的体现。
瀑布过程模型强调阶段的划分及其顺序性、各阶段工作及其文档的完备性,是一种严格线性的、按阶段顺序的、逐步细化的开发模式。2. 软件开发
软件开发是按照需求规格说明书的要求由抽象到具体、逐步完成软件开发的过程。软件开发一般由设计和实现等几个阶段组成,其中设计可分为概要设计和详细设计,主要是根据软件需求规格说明书建立软件系统的结构、
构和各程序模块之间的接口信息,规定设计约束,为编写源代码提供必要的说明。实现也称为编码,就是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中,开发人员必须要制订统一、符合标准的编写规范,以保证程序的可读性和易维护性,提高程序的运行效率。3. 软件测试
软件需经过严密的测试才能发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、集成测试、系统测试以及验收测试4个阶段进行。测试的方法主要有白盒测试和黑盒测试。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。大量统计表明,软件测试的工作量往往占软件开发总工作量的40%以上,有时软件测试的成本甚至可高达软件工程其他步骤成本总和的3~5倍。4. 软件使用和维护
软件的使用是指在软件通过测试后,将软件安装在用户确定的运行环境中移交给用户使要有必要的组织管理措施。软件工程正是从技术和管理两个方面研究如何更好地开发和维护计算机软件的一门学科。
软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。通俗来说,软件工程是一套实现一个大型程序的原则方法,是将其他工程领域中行之有效的工程学知识运用到软件开发工作中来,即按工程化的原则和方法组织软件开发工作。
1.1.2 软件工程的目标及其一般开发过程
从狭义上说,软件工程的目标是生产出满足预算、按期交付、用户满意的无缺陷的软件,进而当用户需求改变时,所生产的软件必须易于修改。从广义上说,软件工程的目标就是提高软件的质量与生产率,*终实现软件的工业化生产。
软件工程强调使用生存周期方法学,人类在解决复杂问题时,普遍采用的一个策略就是对问题进行分解,然后再分别解决各个子问题。软件工程采用的生存周期方法学就是从时间角度对软件开发和维护的复杂问题进行分解,把软件生存的漫
完成每个阶段的任务。一个软件产品从形成概念增长的软件需求,软件生产率远低于硬件生产率和计算机应用的增长率,社会出现了软件供不应求的局面。更为严重的是,软件生产效率随软件生产规模的增加和软件复杂性的提高而急剧下降。
(2)软件生产率随软件规模与复杂性提高而下降,智力密集型行业的人力成本不断增加,这些都导致软件成本在计算机系统成本构成中的比例急剧上升。
(3)软件开发的进度与成本失控。人们很难估计软件开发的成本与进度,通常情况是预算成倍突破,项目计划一再延期。软件开发单位为了赶进度、节约成本,往往只有降低软件质量。软件开发陷入成本居高不下、质量无保证、用户不满意、开发单位信誉降低的怪圈中。
(4)软件系统实现的功能与实际需求不符。软件开发人员对用户需求缺乏深入的理解,往往急于编写程序,闭门造车,*后完成的软件与用户需求相距太远。
(5)软件难以维护。程序中的错误很难改正,要想使软件适应新的运行环境几乎不可能,软件在使用过程中不能增加用户需要的新功能,大量的软件开发人员在重复开发基本类具有很多,免费的、收费的应有尽有,下面介绍几个比较常用的软件缺陷管理工具。
(4)拒绝/延期:如果经过商议之后,缺陷不是一个真正的缺陷则拒绝处理,关闭缺陷;如果经过商议之后,确定其是一个真正的缺陷,则可以根据缺陷的严重程度或优先级等选择立即处理或延期处理。
(5)处理:开发人员修改缺陷。
(6)复测:开发人员修改好缺陷之后,测试