2021 一定上岸
考纲目录
第一章 基本概念 ------------------------------------------ 3
1、软件的概念和特点 ---------------------------------------------- 3
2、软件危机的概念和产生的原因 ------------------------------------ 4
3、软件工程的定义、三要素和发展过程 (重点,考过多次问答题) ------4
第二章 过程模型 ------------------------------------------ 6
1、软件生命周期概念、软件过程概念、能力成熟度模型 CMM 概念 -------- 6
2、常见的软件过程模型:瀑布、增量、原型、螺旋、喷泉等,比较各自优缺
点 --------------------------------------------------------------- 7
1、瀑布模型(经典生命周期模型)-----------------------------------7
2、增量过程模型(增量模型+RAD模型)------------------------------7
3、演化过程模型(原型模型+螺旋模型)----------------------------8
4、喷泉模型(Water Fountain Model)----------------------------10
5、基于构件的模型(Component-baseed Development Model)--------11
6、敏捷开发过程(Agile Development)---------------------------11
第三章 需求分析 ----------------------------------------- 13
1、需求分析的概念 ----------------------------------------------- 13
2、需求分析的过程:需求确认与需求变更 --------------------------- 14
3、需求确认的步骤:需求获取→需求提炼→需求描述→需求验证 ------- 14
4、需求分析三类建模:功能模型、数据模型、行为模型。面向过程 和面向对
象的需分析过程中,三类模型各包含哪些内容?--------------- ------- 17
5、 掌握数据流图和用例图作法。 -----------------------------------33
第四章系统设计 ------------------------------------------ 34
1、系统设计分为概要设计和详细设计 ------------------------------- 34
2、设计相关的 8 个概念(抽象、体系结构、设计模式、模块化、信息隐藏、
功能独立、细化、重构),着重考察体系结构、模块化、信息隐藏、功能独立。
---------------------------------------------------------------- 35
3、系统设计从数据、体系结构、接口和组件四方面进行设计。面向过程和面
向对象的系统设计,各自包含哪些设计内容? ------------------------ 40
4、掌握流程图和顺序图作法 --------------------------------------- 46
1
2021 一定上岸
第五章 质量保证 ----------------------------------------- 51
1、质量保证的概念 ----------------------------------------------- 51
2、测试策略 V 模型概念,测试与开发的各阶段对应关系。 ------------- 53
3、单元测试的内容、集成测试的分类、系统测试的分类、验收测试的分类。
---------------------------------------------------------------- 54
4、回归测试的概念 ----------------------------------------------- 56
5、测试技术常见术语的概念:软件缺陷、验证和确认、测试与质量保证、质
量与可靠性、调 试与测试、测试用例 --------------------------------57
6、白盒测试、黑盒测试、静态分析各有哪些方法? ------------------- 58
7、掌握逻辑覆盖与等价类划分测试方法。 --------------------------- 61
第六章 软件维护 ----------------------------------------- 63
1、软件维护的基本概念 ------------------------------------------- 63
2、理解软件维护的四个基本类型:纠错性、适应性、完善性、预防性维护。
哪种占比重最大? 哪种最小? --------------------------------------63
3、可维护性的决定因素 ------------------------------------------- 64
4、软件维护过程模型、软件再工程、逆向工程的概念 ----------------- 64
第七章 项目管理 ----------------------------------------- 69
1、项目管理四要素:人员、产品、项目、过程(概念) --------------- 69
2、软件度量有哪些方法:生产率估计(基于规模(KLOC)、基于功能点(FP))、
工作量度 量(算法成本模型、COCOMO 模型)。掌握直接测量(基于规模)方
法。 ------------------------------------------------------------ 70
3、项目计划与风险管理的概念 ------------------------------------- 73
2
2021 一定上岸
第一章 基本概念
重点是软件的特性、软件工程学的研究范畴,以及学习软件工程的意义。掌握软件的概
念、特点和软件工程的基本特征;理解为什么学习软件工程、如何学习。主要知识点:
1、软件的概念和特点
①、(必背)软件概念定义: 软件=程序+数据+文档
程序:按事先设计的功能和性能需求执行的指令序列
数据:是程序能正常操纵信息的数据结构
文档:与程序开发、维护和使用有关的图文材料
②、(必背)软件的特征/特点:
软件是设计开发的或者是工程化的,并不是制造的
软件开发时间和工作量难以估计
软件会多次修改
软件的开发进度几乎没有客观衡量标准
软件测试非常困难
软件不会磨损和老化
软件维护易产生新的问题
软件生产是简单的拷贝
软件开发环境对产品影响较大
③(必背 18 年真题)按软件的功能进行划分:
系统软件:服务于其他程序的程序。
(操作系统、编译器)
应用软件:解决特定需要的独立应用程序。(管理系统、浏览器)
支撑软件:支持需求分析、设计、实现、测试和支持管理的软件。
(如中间件、数据库)
工程/科学软件:带数值计算的特征。
嵌入式软件。
产品线软件:为不同用户使用提供特定功能。
web 应用软件。
人工智能软件:利用非数值计算解决复杂问题。
④、按软件规模进行划分:
方面:参加人员数、研制期限、源程序行数。
类别:微型、小型、中型、大型、甚大型、极大型。
3
2021 一定上岸
2、软件危机的概念和产生的原因
①、(必背)软件危机的概念:
在计算机软件的开发、运行和维护过程中所遇到的一系列严重问题。(效率和质量问题)
1、项目超出预算
2、项目超过计划完成时间
3、软件运行效率很低、质量差
4、软件通常不符合要求
5、项目难以管理并且代码难以维护
6、软件不能交付
②、(必背)产生软件危机的原因
客观:软件本身特点:逻辑部件、规模庞大。
主观:不正确的开发方法:忽视需求分析,错误认为:软件开发=程序编写,轻视 软
件维护。
③、消除软件危机的途径
1、对计算机软件有一个正确的认识:(软件≠程序)
2、必须认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的
工程项目。
3、推广使用在实践中总结出来的开发软件的成功技术。开发和使用更好的软件工具。
3、软件工程的定义、三要素和发展过程 (重点,考过多次问答题)
①、(多年考过)软件工程定义为:
1、将系统的、规范的、可度量的方法应用于软件开发、运行和维护过程,即将工程应
用到软件。
2、对(1)中各种方法的研究。
②、软件工程的目标:
是在给定的时间和预算内,按照用户的需求,开发易修改、高效、可靠、可维护、适应
力强、可移动、可重用的软件。
③、(必背)软件工程三要素:方法、工具、过程
方法:软件工程方法是构建软件工程的解决方法。软件工程方法分两类:结构化方法和
面向对象方法。
工具:为软件工程的过程和方法提供自动化或半自动化的工具支持。
过程:过程贯穿软件开发的各个环节,在各环节之间建立里程碑;
4
2021 一定上岸
④、软件工程的 7 个原则
1、用阶段性生命周期计划的管理
2、进行连续的验证
3、保证严格的产品控制
4、使用现代编程工具/工程实践
5、保持清晰的责任分配
6、用更好更少的人
7、保持过程改进
⑤、(必背)软件工程的发展过程:
传统的软件工程 对象工程 过程工程 构件工程
5
2021 一定上岸
第二章 过程模型
重点是各种实用的软件过程模型,以及不同过程模型的特点比较。掌握几种典型模型的
优缺点 和能依据项目特征选择使用不同的模型;理解为什么有不同的模型、不同模型的特
征。主要知识点:
1、软件生命周期概念、软件过程概念、能力成熟度模型 CMM 概念
①、(考点)软件生命周期
定义:一个软件产品或软件系统从定义、开发、投入使用到被淘汰的全过程。
三阶段:定义、开发、维护
八步骤:问题的定义、可行性研究、需求分析、概要设计、详情设计、编码实现、测试、
维护
②(2019 年真题)软件工程的过程
定义:软件生产过程中的一系列活动、动作、任务的集合,这些活动贯穿于软件开发的
整个过程。
百度解释:软件过程也称为软件生存周期过程,是指软件生存周期中的一系列相关过程。
为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步
骤。
③、软件过程都具有以下共同活动:
沟通:该活动包括软件设计者与客户沟通,。
计划:软件开发小组讨论使用何种方法及何种工具来实现客户需求。
建模:论选择何种模型来满足需求。不同的需求需要不同的模型。
构造:编码和测试。
部署:软件交付给客户。客户给出建议和反馈,软件实施小组改进软件。
④、(考点)成熟度模型标准(CMM)
1、初始级:工作无序,缺乏健全的管理制度。
2、可重复级:管理制度化,建立了基本的管理制度和规程,初步实现标准化。
3、已定义级:过程标准化,工作和管理工作,均已实现标准化、文档化。
4、量化管理级:产品和过程已建立了定量的质量目标。开发活动中的生产率和质量是
可量度的。
5、优化级:持续的过程改进,拥有防止出现缺陷、识别薄弱环节以及加以改进的手段。
6
2021 一定上岸
2、常见的软件过程模型:瀑布、增量、原型、螺旋、喷泉等,比较
各自优缺点
(2019 年真题)【考题】什么是软件过程模型?
答:软件过程模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软
件开发全过程,明确规定要完成的主要活动、任务和开发策略。软件过程框架包括:
沟通、策划、建模、构建、部署。
1、瀑布模型(经典生命周期模型)
①、瀑布模型的特点
1、软件开发过程与软件生命周期是一致的,是经典的生命周期模型。
2、定了各项软件工程活动,以及它们自上而下,相互衔接的固定次序,如同瀑布流水,
逐级下落。
3、是一种使用广泛、以文档为驱动的模型。
②、传统瀑布模型开发软件的特点
1、阶段间具有顺序性和依赖性。
2、推迟实现的观点。
3、每个阶段必须完成规定的文档; 每个阶段结束前完成文档审查,及早改正错误。
③、瀑布模型缺点
1、线性过程太理想化。
2、各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
3、由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增
加了开发的风险。
4、早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。
④、瀑布模型使用场合
系统需求明确、技术成熟、工程管理较严格的场合
2、增量过程模型(增量模型+RAD 模型)
增量过程模型的定义
1、增量过程模型是一种非整体开发的模型,是一种进化式的开发过程。
2、它允许从部分需求定义出发,先建立一个不完整的系统,通过测试运行这个系统取得
经验和反馈,进一步使系统扩充和完善。如此反复进行,直至软件人员和用户对所设计
的软件系统满意为止。
7
2021 一定上岸
1、增量模型
①、增量模型特点
1、小而可用的软件
2、在前面增量的基础上开发后面的增量
3、每个增量的开发可用瀑布或快速原型模型
4、迭代的思路
②、增量模型的优缺点
优点:
1、不需要提供完整的需求。只要有一个增量包出现,开发就可以进行。
2、在项目的初始阶段不需要投入太多的人力资源。
3、增量可以有效地管理技术风险。
缺点:
每个增量必须提供一些系统功能,这使得开发者很难根据客户需求给出大小适合的增量。
③、增量模型适用场所:
适用于软件开发中需求可能发生变化、具有较大风险、或者希望尽早进入市场的项目
2、快速应用开发模型(RAD)
①、快速应用开发模型优缺点
优点:
1、快速应用开发模型(RAD)是一个增量过程模型,强调短暂的开发周期。
2、RAD 模型是瀑布模型的“高速”变体,通过基于组件的构建方法实现快速开发。
缺点:
1、对大型项目而言,RAD 需要足够的人力资源。
2、开发者和客户都要实现承诺,否则将导致失败。
3、并非所有系统都适合(不能合理模块化的系统、高性能需求并且要调整构件接口的、
技术风险很高的系统均不适合)。
3、演化过程模型(原型模型+螺旋模型)
演化过程模型的定义:演化过程模型的思想是首先实现软件的最核心的、最重要的功能
1、原型模型
①、原型模型的定义:
软件开发过程中,开发初期很难得到一个完整的、准确的需求规格说明,开发者往往 对
要解决的应用问题模糊不清,以至于形成的需求规格说明常常是不完整的、不准确的,有
时甚至是有歧义的。此外,在整个开发过程中,用户可能会产生新的要求,导致需求的变
更。为了适应这种需求的不确定性和变化,于是出现了原型模型开发方法。
8