软件工程总结

一、软件工程概述

计算机软件

计算机软件分为十类:系统软件、应用软件、工程/科学软件、嵌入式软件、产品线软件、Web应用、人工智能软件、开放计算、网络资源、开源软件。

软件工程基本原理

7条基本原理:用分阶段的生命周期计划严格管理、坚持进行阶段评审、实现严格的产品控制、采用现代程序设计技术、结果应能清楚地审查、开发小组的人员应少而精、承认不断改进软件工程实践的必要性。

软件生存周期

软件生存周期包括可行性分析与项目开发计划、需求分析、设计(概要设计和详细设计)、编码、测试、维护。

软件过程

能力成熟度模型(CMM)分为5个级别:初始级、可重复级、已定义级、已管理级、优化级。

能力成熟度模型集成(CMMI)分为阶段式模型和连续模式模型。

阶段式模型类似CMM,有5个等级:初始的、已管理的、已定义的、定量管理的、优化的。

连续式模型有6个等级:未完成的、已执行的、已管理的、已定义级的、定量管理的、优化的。

二、软件过程模型

瀑布模型

软件工程总结_第1张图片

 优点:容易理解、管理成本低;强调开发的阶段性早期计划及需求调查和产品测试。

缺点:客户必须能够完整、正确和清晰地表达他们的需要。需求或设计中的错误往往只有到了项目后期才能够被发现,对于项目的风险的控制能力较弱,从而导致项目常常延期完成,开发费用超出预算。

增量模型

软件工程总结_第2张图片

 优点:具有瀑布模型的所有优点。此外,第一个可交付版本所需要的成本和时间很少;开发由增量表示的小系统所承担的风险不大;由于很快发布了第一个版本,因此可以减少用户需求的变更;运行增量投资,即在项目开始时,可以仅对一个或两个增量投资。

缺点:如果没有对用户的变更需求进行规划,那么产生的初始增量可能会造成后来的增量的不稳定;如果需求不像早期思考的那样稳定和完整,那么一些增量就可能需要重新开发,重新发布;管理发生的成本、进度和配置的复杂性可能会超出组织的能力。

演化模型

典型的演化模型有原型模型和螺旋模型。

原型模型

原型可以分为3种:探索型原型、实验型原型、演化型原型。

探索型原型:弄清目标的要求、确实希望的特性、并探讨多种方案的可行性。

实验型原型:验证方案或算法的合理性,是在大规模开发和实现前,用于考查方案是否合适、规格说明是否可靠等。

演化型原型:将原型作为目标系统的一部分,通过对原型的多次改进,逐步将原型演化成最终的目标系统。

螺旋模型

软件工程总结_第3张图片

 螺旋周期分为4个步骤:制订计划、风险分析、实施工程、用户评估。

喷泉模型

软件工程总结_第4张图片

 优点:提高软件项目的开发效率,节省开发时间。

缺点:需要大量的开发人员,不利于项目的管理,要求严格管理文档,审核难度加大。

基于构件的开发模型

基于构件的开发模型本质上是演化模型,需要以迭代方式构建软件。不同之处在于,基于构件的开发模型采用预先打包的软件构件开发应用系统。

形式化方法模型

统一过程模型

统一过程模型是一种“用例和风险驱动、以架构为中心、迭代并且增量”的开发过程,由UML方法和工具支持。

统一过程定义了4个技术阶段及其制品:

起始阶段:生命周期目标。

精化阶段:生命周期架构。

构建阶段:初始运作功能。

移交阶段:产品发布。

敏捷方法

敏捷方法有5种:极限编程、水晶法、并列争求法、自适应软件开发、敏捷统一过程。

极限编程由价值观、原则、实践和行为4个部分组成。

敏捷统一过程(AUP)迭代执行以下活动:建模、实现、测试、部署、配置及项目管理、环境管理。

三、需求分析

软件需求

软件需求包括:功能需求、性能需求、用户或人的因素、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全保密需求、可靠性需求、软件成本消耗与开发进度需求、其他非功能性需求。

需求分析原则

必须能够表示和理解问题的信息域。

必须能够定义软件将完成的任务。

必须能够表示软件的行为

必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节。

分析过程应该从要素信息移向细节信息。

需求工程

需求工程可以分为6个阶段:需求获取、需求分析与协商、系统建模、需求规约、需求验证、需求管理。

四、系统设计

系统设计的基本任务分为概要设计、详细设计两个步骤。

概要设计

设计软件系统总体结构、数据结构及数据库设计、编写概要设计文档、评审。

详细设计

对每个模块进行详细的算法设计、对模块内的数据结构进行设计、对数据库进行物理设计、其他设计、编写详细设计说明书、评审。

五、系统测试

系统测试与调试

系统测试遵循的原则:

应尽早并不断地进行测试。

测试工作应该避免由原开发软件的人员或小组承担。

在设计测试方案时要确定输入数据和预期输出结果。

在测试程序时不仅要检验程序,还要检验程序是否做了不该做的事。

严格按照测试计划来进行。

妥善保存测试计划、测试用例。

测试例子都是精心设计出来的。

测试过程包括以下基本测试活动:

制订测试计划。

编制测试大纲。

根据测试大纲设计和生成测试用例。

实施测试。

生成测试报告。

传统软件的测试策略

有效的软件测试分为4步:单元测试、集成测试、确认测试、系统测试。

测试面向对象软件

测试面向对象软件:单元测试、集成测试。

测试web应用

质量维度有:内容、功能、结构、可用性、导航性、性能、兼容性、安全性。

WebApp测试策略有:

测试方法

测试方法分为静态测试、动态测试。

静态测试有:人工检测、计算机辅助静态分析。

动态测试有:黑盒测试、白盒测试。

调试

调试方法有:试探法、回溯法、对分查找法、归纳法、演绎法。

六、运行和维护知识

系统转换

新旧系统转换的方式有:直接转换、并行转换、分段转换。

系统维护概述

系统可维护性的评价指标:可理解性、可测试性、可修改性。

系统维护主要包括:硬件维护、软件维护、数据维护。

系统评价

系统评价分成立项评价、中期评价、结项评价。

七、软件项目管理

软件项目管理涉及的范围

软件项目管理集中在:人员、产品、过程和项目。

软件项目估算

常用的估算方法有:

基于已完成的类似项目进行估算。

基于分解技术进行估算。

基于经验估算模型的估算。

进度管理

进度管理的基本原则:划分、相互依赖性、时间分配、工作量确认、确定责任、明确输出结果、确定里程碑。

软件项目的组织

软件项目的组织原则有:尽早落实责任、减少交流接口、责权均衡。

软件配置管理(SCM)

软件配置管理主要目标有:标识变更、控制变更、确保变更正确地实现、报告有关变更。

风险管理

项目风险威胁到项目计划。

技术风险威胁到要开发软件的质量及交付时间。

商业风险威胁到要开发软件的生存能力。

八、软件质量

软件质量特性

ISO/IEC 9126软件质量模型

软件工程总结_第5张图片

Mc Call软件质量模型

软件工程总结_第6张图片

软件质量保证

软件质量保证包括7个主要活动:应用技术方法、进行正式的技术评审、测试软件、标准的实施、控制变更、度量、记录保存和报告。

软件评审

设计质量的评审内容

程序质量的评审内容

与运行环境的接口

软件容错技术

容错软件的定义有4种:屏蔽自身错误、出错能恢复正常、出错仍完成预期功能、具有容错能力。

容错的方法有4类:结构冗余、混合冗余、时间冗余、冗余附加技术。

结构冗余有3种:静态冗余、动态冗余、混合冗余。

九、软件度量

软件度量分类

软件度量有2种分类方法。

第1种分类是:面向规模的度量、面向功能的度量、面向人的度量。

第2种分类是:生产率度量、质量度量、技术度量。

面向规模的度量

软件规模通常用代码行数来衡量。

面向规模的度量方便、直观,但是对于一些良好设计而代码量小的软件来说,这种度量不够客观。

面向功能的度量

信息域的值用下列方式来定义:外部输入数、外部输出数、外部查询数、内部逻辑文件数、外部接口文件数。

软件复杂性度量

软件复杂性的度量参数主要有:规模、难度、结构、智能度。

十、软件工具与软件开发环境

软件工具

软件开发工具有:需求分析工具、设计工具、编码与排错工具、测试工具等。

软件开发环境

软件开发环境的特征:

环境的服务是集成的。

环境应支持小组工作方式,并为其提供配置管理。

环境的服务可用于支持各种软件开发活动。

十一、软件工程标准化

基础标准

信息处理——程序构造及其表示法的约定 GB/T 13502-92

信息处理系统——计算机系统配置图符号及其约定 GB/T 14085-93

软件工程术语标准 GB/T 11457-89

软件工程标准分类法 GB/T 15538-95

开发标准

软件开发规范 GB8566-88

计算机软件单元测试 GB/T 15532-95

软件维护指南 GB/T 14079-93

文档标准

计算机软件产品开发文件编制指南 GB8567-88

计算机软件需求说明编制指南 GB/T 9385-88

计算机软件测试文件编制指南 GB/T 9386-88

管理标准

计算机软件配置管理计划规范 GB/T 12505-90

计算机软件质量保证计划规范 GB/T 12504-90

计算机软件可靠性和可维护性管理 GB/T 14394-93

信息技术、软件产品评价、质量特性及其使用指南 GB/T 16260-96

ISO9000:2000

ISO9000:2000族标准有14项标准,由4个核心标准、1个支持标准、6个技术报告、3个小册子组成。

ISO/IEC 15504过程评估标准

ISO/IEC 15504主要包括:概念和绪论指南、过程和过程能力参考模型、实施评估、评估实施指南、评估模型和标志指南、评估师能力指南、过程改进应用指南、确定供方能力应用指南、词汇。

你可能感兴趣的:(计算机,软件工程)