版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2.1软件生命周期
2.2软件开发模型第2章软件生命周期与开发模型2.1软件生命周期
软件生命周期可划分为计划阶段、开发阶段、运行与维护阶段三个阶段,如图2-1所示。图2-1软件生命周期
1.计划阶段计划阶段也叫“软件定义”阶段。它的任务是软件开发人员与用户充分沟通,从全局的角度把问题明晰化,从而进行可行性研究,探讨解决该问题的可能解决方案,结合软件开发、使用的可利用条件(计算机硬件、软件、人力等资源)、开发费用以及软件投入使用后的经济效益等方面的情况,对定义的问题做出客观评价,写出“可行性分析报告”和“需求分析报告”。计划阶段的任务可总结为:(1)确定软件项目必须完成的总目标;(2)进行可行性分析,确定项目的可行性;(3)明确项目目标及应该采用的策略;(4)估算项目需要的资源和成本,并制定项目进度表。
2.开发阶段一个软件的开发阶段大体包括需求分析、概要设计、详细设计、编码和单元测试、综合测试五个步骤(如图2-2中(4)至(8)部分所示)。图2-2软件的开发过程在图2-2中,左列表示每个过程进行前的审查,中间列表示开发过程,右列表示每个过程的交付物。上述过程中可能涉及到下列各种参与软件开发的人员的角色:用户、维护人员、使用人员、客户经理、项目经理、编程人员、测试人员、需求分析人员、系统分析人员、美工及产品发布人员。如图2-3所示。图2-3软件开发人员的角色下面对软件生命周期各阶段加以详细介绍:
1)需求分析这个阶段的任务是对用户的需求进行分析和综合,确定软件的基本目标和逻辑功能要求,解决系统要“做什么”的问题,写出软件需求规格说明书。该需求规格说明书是软件工程中最重要的文件,它准确地记录了对目标系统的要求,它是用户和软件开发人员之间共同的约定及软件开发人员进行后续开发的基础。
2)概要设计这个阶段的主要任务是解决“怎么做”的问题。概要设计决定软件系统的总体结构即模块结构,并给出模块的相互调用关系、模块间传递的数据及每个模块的功能说明。这个阶段的文档资料是软件结构图和模块功能说明。
3)详细设计这个阶段的任务是把每个模块内部过程的描述具体化,也就是回答“应该怎样具体地实现这个系统”。该阶段的任务并不是编写程序,而是设计出程序的详细规格说明书。该规格说明书类似于其他工程领域使用的工程蓝图。
4)编码和单元测试这个阶段的主要任务是程序员根据软件详细规格说明书,写出正确的、容易理解和维护的程序模块。程序员要选取一种适当的程序设计语言,把详细设计的结果翻译成用选定语言书写的程序,并仔细测试编写的每一个模块。
5)综合测试综合测试阶段的主要任务是通过各种类型的测试来发现和排除错误,对软件系统进行全面的测试和检验,检查其是否符合软件需求。在此期间,要提出测试标准,制定测试计划,设计测试用例,确定测试方法。通过对软件测试结果的分析可以预测软件的可靠性;反之,根据软件可靠性的要求,也可以决定测试和调试过程什么时候可以结束。最终还必须写出软件测试报告。
3.运行与维护阶段软件运行与维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于各种原因,软件在运行过程中可能会出现一些问题,这就要求我们对软件进行维护。软件的维护一般包括改正性维护、适应性维护、完善性维护和预防性维护等四个方面。
软件开发模型是在软件生命周期基础上构造出的软件开发全部过程、活动和任务的结构框架。因此,软件开发模型又称为软件生命周期模型。利用软件开发模型能够清晰、直观地描述软件开发全部过程,明确规定软件开发过程中所必须要完成的主要活动和任务。因此,也称为“过程模型”。软件工程研究学者和开发人员根据软件开发的实践经验,相继提出了瀑布模型、螺旋模型、增量模型和喷泉模型等多种软件开发模型。2.2软件开发模型
1.瀑布模型瀑布模型的核心思想是将软件生命周期划分为需求分析、系统设计、软件编程、软件测试和软件维护等基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。开发过程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。采用瀑布模型的软件开发过程如图2-4所示。图2-4瀑布模型的软件过程图2-4把软件开发过程划分为需求分析、系统设计(通常把概要设计和详细设计通称为系统设计)、软件编程、软件测试和软件维护五个阶段,并给出了每个阶段应该交付的文档:“需求分析报告”、“系统设计报告”、“源程序”、“测试报告”、“更改要求”。图2-4同时还给出了每一个阶段应该参与的角色:系统分析员(A)、项目管理员(M)、程序员(P)、高级程序员(T)、用户(U)。从图2-4我们可以看出瀑布模型具有以下特点:
(1)连续性。前一阶段的工作完成后,后一阶段的工作才能开始,前一阶段输出的文档是后一阶段的输入文档。另外,前后两个阶段之间不存在反馈的关系,全部活动呈现出理想的线性关系。
(2)需要严格的质量管理。由于该模型不存在反馈,如果前面阶段工作存在错误而又不能及时发现时,将造成极大的损失,因此某个阶段结束时,对该阶段提交的文档均必须进行严格的技术审查和管理复审。(技术审查是从技术的角度,对该阶段开发出的产品进行检验。管理复审是在每个阶段结束时,对项目成本、进度、实际的费用及投资回收前景从管理角度进行复查。)利用瀑布模型进行软件项目开发有利于开发过程中人员的组织及管理,有利于开发方法和工具的研究与使用,有利于提高软件项目开发的质量和效率。但由于实际软件开发过程不可能是完全理想的自上而下的线性关系,因此瀑布模型存在以下严重的缺陷:
(1)各个阶段的划分完全固定,每个阶段产生大量的文档,极大地增加了工作量;
(2)瀑布模型依赖于需求分析的准确性,但在实践中很难获得准确不变的需求说明;
(3)缺乏灵活性,一旦软件需求存在偏差,就会导致最终开发出的软件产品不能满足用户的实际需求。
(4)由于此开发模型呈线性关系,所以只有当开发工作结束时用户才能看到软件的运行效果,这也增加了项目的风险。
2.快速原型开发
1)软件原型化方法的定义软件原型化方法是指在获得一组基本需求说明后,快速构造出一个小型的软件系统(即原型系统),以此满足用户的基本要求。用户试用该原型系统,从中得到感受和启发,并对该原型系统做出反映和评价,然后开发者根据用户的意见对原型加以改进。随着不断地实验、纠错、使用、评价和修改,用户不断获得新的原型版本。如此反复,逐步减少分析中的误解,弥补不足,从而提高最终产品的质量。软件原型化方法的基本思想是花费少量代价建立一个可运行的系统,强调软件开发人员与用户的不断沟通,通过原型的演进不断适应用户的需求。将维护和修改阶段的工作尽早进行,从而使软件产品满足用户需求。
2)软件原型化方法的分类软件原型化方法主要用在需求分析阶段,但也可以用于软件开发的其他阶段。原型化方法有以下两种不同的类型。
(1)废弃型。废弃型也称快速建立需求规格原型法。先构造一个功能简单而且质量要求不高的模型系统,针对这个模型系统反复进行分析修改,从而形成较好的设计思想。据此设计出更加完整、准确、一致、可靠的最终产品。最终产品形成后,原来的模型就被废弃。
(2)追加型。追加型也称快速建立渐进原型法。它采用循环渐进的开发方式,首先构造一个功能相对简单的模型系统,作为最终系统的核心,然后将系统需要具备的功能逐步添加上去,通过不断地扩充修改,逐步追加新的要求,直至满足系统所有需求,此时的原型系统也就是最终产品。3)原型生存周期原型生存周期是指项目原型的开发和使用的整个过程,主要包括原型分析、原型构造、原型运行与评价、原型修正、判断原型完成、判定原型效果、整理原型和提供文档。图2-5(a)所示为原型开发模型,图2-5(b)所示为模型的细化过程。(1)原型分析。原型分析是指在分析者和用户的紧密配合下,快速确定软件系统的基本要求的过程。(2)原型构造。在原型分析的基础上,根据基本需求规格说明,忽略细节,只考虑主要特性,快速构造一个可运行的系统。(3)原型运行与评价。原型运行与评价阶段是软件开发人员与用户频繁沟通、发现问题、消除对需求误解的重要阶段。(4)原型修正。对于原型系统,一定要根据修改意见进行修正。(5)判定原型完成。如果原型经过修正和改进已获得了参与者的一致认可,那么原型开发的迭代过程可以结束。(6)判定原型效果。(7)整理原型和提供文档。整理原型的目的是为进一步开发提供依据。整理完成之后即可提供原型文档。4)快速原型的优点使用快速原型化开发方法进行软件开发具有以下优点:(1)增进了软件开发人员和用户对系统需求的理解,便于将用户模糊的需求明确化。(2)可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。
3.增量模型增量模型在瀑布模型的基础上进行了改进,它使得开发过程具有一定的灵活性和可修改性。增量模型又称为渐增模型,其实质是分段的线性模型。增量模型和瀑布模型之间的本质区别是:瀑布模型属于整体开发模型,它规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节。而增量模型属于非整体开发模型,它在下一阶段的工作开始之前,可以只完成前一阶段的部分任务。增量模型如图2-6所示。图2-6增量模型瀑布模型在每个阶段交付相应阶段的完整产品,而增量模型只是交付相应阶段的部分产品(这个部分产品也就是软件的构件)。这样做的好处是客户可以不断地看到所开发的软件,从而降低开发风险。但是,增量模型也存在以下缺陷:
(1)由于各个构件是逐步并入已有的软件体系结构中的,所以加入构件的前提是不破坏已构造好的系统,这就要求采用开放式的软件体系结构。
(2)在开发过程中,需求的变化是不可避免的。虽然增量模型能够较好地适应需求的变化,但很容易退化为边做边改模型,从而导致软件整体过程的失控。在使用增量模型时,第一个增量往往是实现基本需求的核心产品。核心产品交付用户使用后,经过评价形成下一个增量的开发计划,它包括对核心产品的修改和一些新功能的发布。这个过程在每个增量发布后不断重复,直到产生最终的产品。
4.迭代式模型迭代式模型是统一开发过程(RUP,详见第8章)推荐的周期模型。在统一开发过程中,每个阶段都可以细分,并进行迭代。每一次迭代都会产生一个可以发布的产品,这个产品是最终产品的一个子集。迭代式模型如图2-6所示。图2-6迭代式模型迭代开发方法具有以下优点:(1)能够适应需求的变化;(2)每一次迭代都可以发现并更正缺陷;(3)可以及早暴露风险;(4)使软件重用更加容易。
5.螺旋模型
1988年,Barry
Boehm正式发表了软件系统开发的“螺旋模型”。它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。螺旋模型被划分为若干框架活动,也称任务区域。一般情况下,有3~6个任务区域。图2-7形象地描述了包含4个任务区域的螺旋模型。图2-7螺旋模型螺旋模型沿着螺线进行若干次迭代,螺旋模型沿着螺线旋转,每个螺旋推进的过程都是渐进的实现过程,整个过程的实现,按照“制定计划、风险分析、开发与测试和客户评估”四个步骤循环实施:
(1)制定计划。确定软件目标,选定实施方案,弄清项目开发的限制条件。定义资源、进度及其他相关项目信息所需要的任务,以调整项目的目标和改善系统实施的效率。确定系统要达到的目标,同时要受预算、时间等条件的限制,而且必须作出一定的选择和取舍。
(2)风险分析。分析评估所选方案,考虑如何识别和消除风险。从风险角度分析方案的开发策略,努力排除各种潜在的风险,有时需要通过建造原型来完成。如果某些风险不能排除,该方案立即终止,否则启动下一个开发步骤。基于上述目标,评估技术及管理的风险,以决定如何实施项目。
(3)开发与测试。实施软件开发和验证,包括系统需求分析、概要设计、详细设计、编程、单元测试、系统测试和验证测试等项目具体实施的各种任务。
(4)客户评估。评价开发工作,提出修正建议,制定下一步计划。软件工程项目组按顺时针方向沿螺旋移动,从核心开始。螺旋模型的开发是沿螺线自内向外每旋转一周便开发出更为完善的一个新的软件版本。开发过程每迭代一次,螺线就增加一周,软件开发又前进一个层次,系统又生成一个更为完善的新版本。客户对该版本做出评价后,给出修正建议。在此基础上需再次计划,并进行风险分析。在每一圈螺线上的风险分析的终点做出是否继续下去的判断。如果风险太大,开发者和用户无法承受,则项目可能终止。多数情况下沿螺线的活动会继续下去,自内向外逐步延伸,最终得到一个客
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年山东省烟台市栖霞市(五四制)八年级下册期末考试数学试题 含答案
- 2026年青海省格尔木市高二生物下册期末考试检测卷附答案【夺分金卷】
- 2026年辽宁省开原市高二生物下册期末考试模拟卷及参考答案【考试直接用】
- 2025年江苏省宜兴市高二生物下册期末考试模拟卷含完整答案【全优】
- 2026年福建省武夷山市高二生物下册期末考试模拟卷参考答案
- 2026年吉林省榆树市高二生物下册期末考试考试卷(考点精练)附答案
- 2025年吉林省延吉市高二生物下册期末考试考试卷及参考答案【新】
- 2026年山东省高密市高二生物下册期末考试模拟卷带答案(巩固)
- 2026年山东省肥城市高二生物下册期末考试试卷附参考答案【黄金题型】
- 2026年吉林省梅河口市高二生物下册期末考试考试卷附完整答案【网校专用】
- 社区民兵培训知识记录课件
- 申通客服知识培训课件
- 青马培训考试题型及答案
- (正式版)DB15∕T 3201-2023 《公路工程建设项目文件材料数字化技术规程(施工工序资料)》
- 酸菜鱼鱼片质量标准
- 借调协议解除协议书范本
- 2025年航道工程考试题库
- 夏热冬冷地区居住建筑节能设计标准
- 2025年人教版高中生物必修二默写(学生版)
- 高级财务会计(第4版)习题答案-周华
- 甲状腺眼病的生物制剂治疗专家共识(2025)解读
评论
0/150
提交评论