TreeMind树图在线AI思维导图
当前位置:树图思维导图模板IT互联网产品结构软件过程与模型思维脑图思维导图

软件过程与模型思维脑图思维导图

  收藏
  分享
免费下载
免费使用文件
U354455870 浏览量:12023-12-28 22:13:41
已被使用0次
查看详情软件过程与模型思维导图

软件过程概述,生命周期,过程模型等内容讲解

树图思维导图提供 软件过程与模型思维脑图 在线思维导图免费制作,点击“编辑”按钮,可对 软件过程与模型思维脑图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:98c04a218e82b33fbd2992f52c2234b7

思维导图大纲

软件过程与模型思维导图模板大纲

软件过程概述

软件从概念的形成直到软件的退役是一个过程,也称为软件的生命周期,通常把这个过程称为软件过程。软件过程是为了开发软件工程产品而需要完成的所有软件工程活动,每一项活动又可以分为一系列的工程任务。

任何一个软件开发组织,都可以规定自己的软件过程。

过程定义了方法运用的顺序,应该交付的文档资料,为保证软件质量和协调变化所需要采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。

通常采用生命周期模型简洁地描述软件过程。生命周期模型规定了把生命周期划分为哪些阶段及各个阶段的执行顺序,称为过程模型。

软件生命周期

软件生命周期的概念

从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验收、投入使用以及产品版本的不断更新,到最终该产品被市场淘汰的全过程。

软件生命周期的概念从时间的角度将软件的开发和维护的复杂过程分解为了若干个阶段,每个阶段都完成特定的相对独立的任务。

可行性研究→需求分析→软件设计→编码→软件测试→软件维护

软件过程模型

在软件工程中,人们通过建立抽象的软件开发模型,把软件生命周期中的各个活动或步骤安排到一个框架中,将软件开发的全过程清晰且直观地表达出来。

常见的软件开发模型

瀑布模型

瀑布模型是一种线性的开发模型,具有不可回溯性。开发人员必须等前一阶段的任务完成后,才能开始进行后一阶段的工作,并且前一阶段的输出往往就是后一阶段的输入。由于其不可回溯性,如果在软件生命周期的后期发现并要改正前期的错误,那么需要付出很高的代价。传统的瀑布模型是文档驱动的。

优点

过程模型简单,执行容易;缺点是无法适应变更。

瀑布模型适应于具有以下特征的软件开发项目

在软件开发的过程中,需求不发生或发生很少变化,并且开发人员可以一次性获取到全部需求。

软件开发人员具有丰富的经验,对软件应用领域很熟悉。

软件项目的风险较低。瀑布模型不具有完善的风险控制机制。

快速原型模型

快速原型的基本思想是快速建立一个能反映用户主要需求的原型系统,让用户在计算机上试用它,通过实践来了解目标系统的概貌。

快速原型的本质

是“快速”。开发人员应该尽可能快地建造出一个原型系统,以加速软件开发过程,节约软件开发成本。

快速原型的目的

是获知用户的真正需求,一旦需求确定了,原型将被抛弃。

优点

有助于获取和理解用户需求;

尽早发现软件中存在的错误;

支持项目需求的动态变化。

缺点

不能支持风险分析;

开发者为了使一个原型快速运行起来,往往在实现过程中采用折衷的手段。

适用于具有以下特征的软件开发项目

已有产品或产品的原型,只需客户化的工程项目;

简单而熟悉的行业或领域;

有快速原型开发工具;

进行产品移植或升级开发者在不了解的应用领域开发;

客户不清楚其所开发的软件项目的最终目标。

增量模型

增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。

运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。

增量模型是一种非整体开发的模型,是一种进化式的开发过程。

根据增量的方式和形式的不同,分为:

基于瀑布模型的渐增模型

基于原型的快速原型模型

增量式开发

增量式开发是指在软件开发过程中,先开发主要功能模块,再开发次要功能模块,逐步完善,最终开发出符合需求的软件产品。

优点

当产品不能在限定时间完成时,提供了先推出核心产品的途径。

逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品。

当需求变更时,需要重新完成的分析和文档数量比较少。

在开发过程中更容易得到客户对于已完成的开发工作的反馈意见。

更快速地交付和部署有用的软件给客户成为可能。

人员分配灵活,刚开始不需投入大量人力资源。

缺点

软件体系结构必须是开放的。

模型本身是自相矛盾的。整体——独立构件。

不同的构件并行进行有可能加快工程进度,有时无法集成到一起。

整个过程是不可见的。管理人员需要定期交付成果来掌握进度。

随着新的增量的添加,系统结构趋向于降级。

螺旋模型

螺旋模型是一种用于风险较大的大型软件项目开发的过程模型。该模型将瀑布模型与快速原型模型结合起来,并且加入了这两种模型忽略了的风险分析。

它把开发过程分为制定计划、风险分析、实施工程和客户评估四种活动。

螺旋模型基本思想:

迭代地进行软件产品开发;

需求获取、设计、编码和测试活动之间会有大量重叠;

如果需求的任何阶段出现缺陷,会使该需求返回到前面的阶段;

开发人员能够在任何时候演示当时产品所具有的功能;

可以降低在项目后期发现重大缺陷的风险。

优点

有助于获取用户需求,加强对需求的理解。

尽早发现软件中的错误。

支持需求的动态变化。

支持风险分析,可降低或者消除软件开发风险。

适合于需求动态变化,难以确定开发风险的系统。

缺点

螺旋模型开发的成败,很大程度上依赖于风险评估的成败。

需要开发人员具有相当丰富的风险评估经验和专门知识。

通常使用的场合

需求不能完全确定,同时又存在技术、资金或开发时间等风险因素的大型开发项目。

喷泉模型

喷泉模型是典型的面向对象生命周期模型。在面向对象的方法中,分析模型和设计模型采用相同的符号标示体系,各阶段之间没有明显的界限,而且常常重复、迭代地进行。

主要用于

喷泉模型主要用于面向对象的软件项目,软件的某个部分通常被重复多次,相关对象在每次迭代中随之加入渐进的软件成分。

喷泉”一词体现了面向对象方法的迭代和无间隙性。

迭代是指各阶段需要多次重复,例如,分析和设计阶段常常需要多次、重复进行,以更好的实现需求。

无间隙性是指各个阶段之间没有明显的界限,并常常在时间上互相交叉,并行进行。

优点

该模型的各个阶段没有明显界限,开发人员可以同步进行开发。

多次反复地增加或明确目标系统,降低了错误的可能性。

缺点

由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,不利于项目的管理。

要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。

基于组件的开发模型

基于组件的开发模型使用现有的组件以及系统框架进行产品开发。充分体现了软件复用的思想,降低了开发成本和风险,加快了产品开发。

步骤

在确定需求之后,开发人员开始从现有的组件库中筛选合适的组件,并对组件功能进行分析。

在对组件分析之后,开发人员可能适当修改需求来适应现有组件,也可能修改组件或寻找新的组件。

组件筛选完成之后,开发人员需要根据需求设计或使用现有的成熟开发框架复用这些组件,一些无法利用现有组件的地方,则需要进行单独的开发,新开发的组件在经历时间考验之后也会加入到组件库中。

最后将所有组件集成在一起,进行系统测试。

统一软件开发过程模型

统一软件开发过程模型是基于UML(统一建模语言)的一种面向对象软件开发模型。它解决了螺旋模型的可操作性问题,采用迭代和增量递进的开发策略,并以用例驱动为特点,集中了多个软件开发模型的优点。RUP模型是迭代模型的一种。

模型图中的纵轴以工作的内容为组织方式,表现了软件开发的工作流程。工作流程可以分为核心工作流程和核心支持工作流程。

模型图中的横轴以时间为组织方式,表现了软件开发的4个阶段:先启、细化、构建和产品化,每个阶段中都可能包含若干次迭代。这4个阶段按照顺序依次进行,每个阶段结束时都有一个主要里程碑。

优点

基于统一软件开发过程模型所构造的软件系统,是由软件构件建造而成的。这些软件构件定义了明确的接口,相互连接成整个系统。

在构造软件系统时,RUP采用架构优先的策略。软件架构概念包含了系统中最重要的静态结构和动态特征,架构体现了系统的总体设计。

统一软件开发过程模型适用的范围极为广泛,但是对开发人员的素质要求较高。

敏捷开发

敏捷开发是一种轻量级的软件工程方法,相对于传统的软件工程方法,它更强调软件开发过程中各种变化的必然性,通过团队成员之间充分的交流与沟通以及合理的机制来有效地响应变化。

“敏捷软件开发宣言”,该宣言给出了四个价值观。

个体与交互高于过程和工具;

可运行软件高于详尽的文档;

与客户协作高于合同谈判;

对变更及时响应高于遵循计划。

极限编程

极限编程(eXtreme Programming, XP)是一种实践性较强的规范化的软件开发方法,它强调用户需求和团队工作。利用极限编程方法进行软件开发实践的工程师,即使在开发周期的末期,也可以很快地响应用户需求。

XP特别适用于软件需求模糊且容易改变、开发团队人数少于10人、开发地点集中的场合。

极限编程包含了一组相互作用和相互影响的规则和实践。

在项目计划阶段,需要建立合理和简洁的用户故事。

在设计系统的体系架构时,可以采用CRC(Class,Responsibility,Collaboration)卡促使团队成员共同努力。

在代码编写阶段,为了保证代码的质量,可以采用结对编程以及在编码之前构造测试用例等措施。

在代码测试方面,开发人员有责任向用户证明代码的正确性,而不是由用户来查找代码的缺陷。合理的测试用例及较高的测试覆盖率是极限编程项目测试所追求的目标。

选择软件过程模型

各种软件过程模型反映了软件生命周期表现形式的多样性。在生命周期的不同阶段也可采用不同的软件过程模型。在具体的软件开发过程中,可以选择某种软件过程模型,按照某种开发方法,使用相应的工具进行软件开发

在选择软件过程模型时需要考虑以下几点

符合软件自身的特性,如规模、成本和复杂性等;

满足软件开发进度的要求;

对软件开发的风险进行预防和控制;

具有计算机辅助工具的支持;

与用户和软件开发人员的知识和技能相匹配;

有利于软件开发的管理和控制。

一般来说,结构化方法和面向数据结构方法可采用瀑布模型或增量模型进行软件开发;而面向对象方法可采用快速原型模型、喷泉模型或RUP模型进行软件开发。

相关思维导图模板

习书记法治思想形成过程思维导图

树图思维导图提供 习书记法治思想形成过程 在线思维导图免费制作,点击“编辑”按钮,可对 习书记法治思想形成过程  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:1f2a7c35c3bb783606f0157eb968d301

四个软件的优缺点分析思维导图

树图思维导图提供 四个软件的优缺点分析 在线思维导图免费制作,点击“编辑”按钮,可对 四个软件的优缺点分析  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:6e7e2ddf52031d43d564c34efe9c00ff