软件工程的基本知识和方法

1、软件的生命周期

软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期。软件生存周期包括:

(1)问题定义:弄清”用户需要计算机解决什么样的问题”,提出”系统目标和范围的说明“,提交用户审查和确认。

(2)可行性分析:把待开发系统的目标以明确的语言描述出来,并从经济、技术、法律等多个方面进行可行性分析。

(3)需求分析:弄清用户对软件系统的全部需求,编写需求规格说明书和初步的用户手册,提交评审。

(4)开发阶段:设计、实现(完成源程序的编码)、测试

(5)维护:改正性维护(由于开发测试的不彻底、不完全),适应性维护(适应环境变化),完善性维护(使用过程中提出的一些建设性意见),预防性维护(改善软件系统的可维护性和可靠性)。

2、软件过程

软件生命周期所涉及的一系列相关过程,是指一套关于项目的阶段、状态、方法、技术和开发、维护软件的人员以及相关Artifacts(计划、文档、模型、编码、测试、手册等)组成。包含基本过程类、支持过程类、组织过程类。

(1)基本过程类包括获取过程、供应过程、开发过程、运作过程、维护过程和管理过程。

(2)支持过程类包括文档过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审计过程以及问题解决过程。

(3)组织过程类包括基础设施过程、改进过程、培训过程。

3、软件过程模型

过程模型总分为三大类:

(1)惯例过程模型:瀑布模型(又叫作生命周期模型),增量过程模型: 包括增量模型、RAD模型,演化过程模型: 包括 原型开发模型、螺旋模型、协同开发模型,专用过程模型: 包括 基于构件的开发模型、形式化方法模型、面向方面的软件开发模型

(2)面向对象模型:喷泉模型,可重用部件组装模型。

(3)敏捷过程模型:XP模型,自适应软件开发,动态系统开发, Scrum模型, Crystal模型, 特征驱动开发,敏捷建模。

常见软件工程模型如下:

1)瀑布模型:将软件生命周期中的各个活动规定为线性连接的模型,包括需求分析、设计、编码、测试、运行与维护,由前至后、相互衔接的固定顺序,如同瀑布流水逐级下落。

软件工程的基本知识和方法

瀑布模型的优点:1)容易理解,管理成本低;2)强调开发的阶段性早期计划及需求调查和产品测试。

瀑布模型的缺点:1)客户必须能够完整、正确和清晰地表达他们的需要;2)开始2个或3个阶段,很难评估真正的进度;3)项目结束时,出现大量的集成和测试工作;4)需求或设计中的错误往往只有到了项目后期才能够被发现,对于项目风险的控制能力较弱,从而导致项目常常延期完成,开发费用超出预算。

3)增量模型:融合了瀑布模型的基本成分和原型实现的迭代特征,它假设可以将需求分段为一系列增量产品,每一增量可以分别开发。

软件工程的基本知识和方法

原型模型开始于沟通,其目的是定义软件的总体目标,标识需求,然后快速制定原型开发的计划,确定原型的目标和范围,采用快速射击的方式对其进行建模,并构建原型。

根据原型的目的,可分为三种:1)探索型原型:目的是弄清目标的要求,确定所希望的特性,并探讨多种方案的可行性;2)实验型原型:目的是验证方案或算法的合理性,是在大规模开发和实现前,用于考查方案是否合适、规格说明是否可靠等;3)演化型原型:目的是将原型作为目标系统的一部分,通过对原型的多次改进,逐步将原型演化成最终的目标系统。

4.2)演化型模型之螺旋模型:将瀑布模型与演化模型结合起来,加入了两种模型均忽略的风险分析,弥补了这两种模型的不足。

螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合:

软件工程的基本知识和方法

优点:提高软件项目的开发效率,节省开发时间。缺点:开发阶段是重叠的,开发过程中需要大量的开发人员,不利于项目的管理。需要严格的管理文档,使得审核的难度加大。

6)基于构件的开发模型:利用预先包装的构件来构造应用系统,基于构件的开发模型具有许多螺旋模型的特点,它本质上是演化模型,需要以迭代的方式构建模型。分为领域工程和应用系统工程两部分。

软件工程的基本知识和方法

领域工程的目的是构建领域模型、领域基准体系结构和可复用构件库。 应用系统工程的目的是使用可复用构件组装应用系统。

7)形式化方法模型

建立在严格数学基础上的一种软件开发方法,主要活动是生成计算机软件形式化的数字规格说明。用严格的数学语言和语义描述功能规约和设计规约,通过数学的分析和推导,易于发现需求的歧义性、不完整性和不一致性,易于对分析模型、设计模型和程序进行验证。

4、结构化分析

是一种软件开发方法,一般利用图形表达用户需求,强调开发方法的结构合理性以及开发软件的结构合理性。

结构是指系统内各个组成要素之间的相互联系、相互作用的框架。结构化开发提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。针对软件生存周期各个不同的阶段,它有结构化分析和结构化程序设计等方法。

结构化分析方法给出一组帮助系统分析人员产生功能规约的原理与技术。它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表以及判定树等。 结构化分析的步骤如下:①分析当前的情况,做出反映当前物理模型的DFD;②推导出等价的逻辑模型的DFD;③设计新的逻辑系统,生成数据字典和基元描述;④建立人机接口,提出可供选择的目标系统物理模型的DFD;⑤确定各种方案的成本和风险等级,据此对各种方案进行分析;⑥选择一种方案;⑦建立完整的需求规约。


来源:qq_33783896

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年4月1日
下一篇 2018年4月1日

相关推荐