软件工程基础
-
- 1. 概述
-
- 1.1 软件的生存周期
- 2. 软件过程模型
- 3. 软件开发方法
-
- 3.1 结构化方法
- 3.2 面向对象方法
- 3.3 敏捷方法
- 4. 成本估算方法
- 5. 进度管理
-
- 5.1 进度管理的基本原则
- 5.2 进度安排
- 6. 软件项目的组织
- 6.1 软件项目组织有三条原则
- 6.2 组织结构的模式
- 6.3 程序设计小组的组织方式
- 6.4 CMMI能力成熟度模型
- 7. 软件质量管理
-
- 7.1 ISO/IEC 9126软件质量模型
- 7.2 Mc Call软件质量模型
- 8. 软件配置管理
-
- 8.1 基线
- 8.2 软件配置项
- 8.3 版本控制
- 8.4 变更控制
- 9. 风险管理
- 10. 软件复杂性度量
-
- 10.1 McCabe度量法
1. 概述
1.1 软件的生存周期
- 可行性分析和项目开发计划
- 需求分析
- 概要设计
- 详细设计
- 编码
- 测试
- 维护
2. 软件过程模型
-
瀑布模型。将软件生存周期的各个部分顺序连接划分为若干个阶段。
-
增量模型
对瀑布模型的基本成分进行分版本迭代。每一个需求分段为一个增量产品,每个增量产品可以分别开发。
3. 软件开发方法
- 结构化方法
- Jackson方法
- 原型方法
- 面向对象方法
- 敏捷方法
敏捷方法的总体目标是“尽可能早地、持续地对有价值的产品的交付”使客户满意。
3.1 结构化方法
一种面向数据流的需求分析方法,使用图形表达用户需求,常用的工具有数据流图、数据字典。
(一)数据流图
用来描述数据流从输入到输出的变换流程。
3.3 敏捷方法
- 极限编程(XP)
极限编程由四部分组成,彼此相互依赖、关联,并通过行为贯穿整个软件生存周期。
(一)四大价值观:沟通、简单性、反馈和勇气
(二)五个原则:快速反馈、简单性假设、逐步修改、提倡更改和优质工作。
(三)12个最佳实践:计划游戏(快速制定计划、随着细节的不断变化而完善)、小型发布、隐喻、简单设计、测试先行、重构、结对编程、集体代码所有制、继续集成、每周工作40小时、现场客户和编码标准。 - 水晶法(Crystal)
每一个不同的项目都需要一套不同的策略、约定和方法论。 - 并列争球法(Scrum)
把每30天的一次迭代称为一个“冲刺”,并按需求的优先级来实现产品。多个自组织和自治的小组并行的递增实现产品。协调通过简短的日常会议来进行,就像橄榄球中的“并列争球”。 - 自适应软件开发(ASD)
ASD有6个基本原则:有一个使命作为指导;特征被视为客户价值的关键点;过程中的等待很重要,重做和做同样关键;变化不是改正而是对软件开发实际情况的调整;确定的交付时间迫使开发者认证考虑每个版本的关键需求;风险控制。
4. 成本估算方法
估算软件开发所需成本、时间和工作量。常用估算方法有三种:
- 基于已经完成的类似项目进行估算。
- 基于分解技术进行估算。包括问题分解和过程分解。问题分解是把问题分解为多个小问题来估算。过程分解是把软件开发过程(分析、设计、编码、测试)进行分解估算。
- 基于经验估算模型的估算。典型的经验估算模型有IBM估算模型、COCOMO估算模型、Putnam估算模型。
多个估算模型可以组合使用,提高估算精度。
- 自顶向下估算方法
- 自底向上估算方法
- 差别估算方法
- 其他估算方法
- COCOMO模型
- COCOMOII模型
- Putnam模型
5. 进度管理
5.1 进度管理的基本原则
- 划分
- 相互依赖性
- 时间分配
- 工作量确认
- 确定责任
- 明确输出结果
- 确定里程碑
5.2 进度安排
采用图示的方法展示项目的进展情况。图中需包含:
(1)各个任务计划的开始时间和完成时间
(2)各个任务的完成标志
(3)各个任务与参与的工作人数,各个任务与工作量之间的衔接情况
(4)完成各个任务所需的物理资源和数据资源
进度安排的常用图形有甘特图(Gantt)和项目计划评审技术图(PERT)。
6. 软件项目的组织
6.1 软件项目组织有三条原则
- 尽早落实责任
- 减少交流接口
- 责任均衡
6.2 组织结构的模式
- 按项目划分模式
- 按职能划分模式
- 矩阵模式
6.3 程序设计小组的组织方式
- 主程序员制小组。一名主程序员负责小组技术活动,分配任务,协调技术问题,必要时完成程序的关键部分。
- 民主制小组。小组各成员地位平等,有组长,但是工作目标和决策都是由全体成员集体决定,相互合作。
- 层次式小组。组长领导若干高级程序员,每个高级程序员领导若干程序员。
**
6.4 CMMI能力成熟度模型
CMMI是一个引导软件组织不断走向成熟的过程模型。
- 初始级:软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。
- 已管理级:建立了基本的项目管理过程来跟踪费用、进度和软件的功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
- 已定义级:已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件。
- 量化管理级:分析软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理活动有一个作出结论的客观依据,能够在定量的范围内预测性能。
7.2 Mc Call软件质量模型

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!