一、软件工程概述(老版)
软件开发生命周期:
1、软件定义时期:包括 可行性研究和详细需求分析过程,任务是软件工程必需完成的目标,具有可行问题分析、可行性研究、需求分析等。
2、软件开发时期:软件的 设计与实现,可分为概要设计、详细设计、编码、测试等。
3、软件运行和维护:把软件产品交给用户使用。
软件系统的文档:
分为 用户文档 和系统文档,用户文档主要描述 系统功能和使用方法,并不关心这些系统怎么实现,系统文档 描述 系统设计、实现和测试等各方面内容。
软件工程过程指为获得软件产品包括以下4个方面活动:
1、P(plan):软件规格说明。
2、D(do):软件开发。
3、C(check):软件确认校验。
4、A(action):软件演进。
软件系统工具 可按软件过程活动分为:
软件开发工具:需求分析工具、设计工具、编码与排错工具和测试工具等。
软件维护工具:版本控制工具、文档分析工具、开发信息库工具、逆向工程工具和再工程工具。
软件管理和软件支持工具:项目管理工具、配置管理工具、软件评价工具、软件开发工具的评价和选择。
软件设计四个活动:
数据设计、架构(体系结构)设计、人机设计(接口)和过程设计。
二、能力成熟度模型
能力成熟度模型CMM:
初始级(Initial):杂乱无章,有时甚至混乱,项目完全依靠个人努力或者核心人物完成。
可重复级(Repeatable):建立基本的项目管理过程和实践来跟踪项目,有必要的过程准则来重复同类项目成功。(不依赖个人成功,而是成功可以重复复制)
已定义级(Defined):软件过程已经文档化、标准化,并综合成标准软件过程。(已经在行业定义成标准)
已管理级(Managed):产品质量的详细度量标准,对软件过程有定量理解和控制。
优化级(Optimized):持续不断优化。
能力成熟度模型集成CMMI:
cmm能力成熟度模型指软件,CMMI则是 若干过程模型的综合改进,不仅仅软件,而是支持多个工程学科和领域的、系统、一致过程改进框架,能适应现在工程特点,提高质量和效率。
CMMI两个表示方法,一种是类似前面CMM阶段式的成熟度。
初始级:过程不可以预测。
已管理级:过程为项目服务。(之前是可重复)
已定义:标准化。
定量管理:已度量。(之前叫可管理)
优化级:可优化。
三、真题实战
1、()是系统分析阶段结束后得到的工作产品,()是系统测试阶段完成后的工作产品。
A. 系统设计规格说明
B. 系统方案建议书
C. 程序规格说明
D. 单元测试数据
A. 验收测试计划
B. 测试标准
C. 系统测试计划
D. 操作手册
答案:B D
解析:
系统设计肯定不是系统分析,程序规格肯定是开发阶段,所以选择B
四、软件过程模型
瀑布模型(SDLC):经典的软件生命周期模型。
软件开发从上往下分为:可行性分析(计划)、需求分析、软件设计(概要设计)、编码、测试和运行维护等几个阶段。
螺旋模型:原型模型 和 结构化(瀑布)模型相结合的模型。
专门解决瀑布模型弊端。
他和瀑布一样有线性计划:制定计划、风险分析、实施工程和客户评价。
是一个演化软件过程模型,先制定 一个原型。
但他又不会和瀑布一样不可以回头,还可以重复线性。
他特别适合庞大复杂高风险系统。
V模型:
强调测试,测试贯穿整个项目过程。
编码对应单元测试,详细设计对应集成测试,概要设计对应系统测试,需求分析对应验收测试。
使用需求变更不频繁的需求。
原型模型:
实际可行,构造方便,快速,造价低,适合需求不明确。
增量模型:
首先 开发核心功能。然后和用户确认开发次核心模块。
喷泉模型:
以用户需求为动力,面向对象。
基于构建CBSD:
强调复用性,有一个构建库,比如直接拉取组织结构画页面。