logo资料库

软件工程黑书考研一轮复习笔记.docx

第1页 / 共76页
第2页 / 共76页
第3页 / 共76页
第4页 / 共76页
第5页 / 共76页
第6页 / 共76页
第7页 / 共76页
第8页 / 共76页
资料共76页,剩余部分请下载后查看
第一章 基本概念
1、软件的概念和特点
2、软件危机的概念和产生的原因
3、软件工程的定义、三要素和发展过程 (重点,考过多次问答题)
第二章 过程模型
1、软件生命周期概念、软件过程概念、能力成熟度模型 CMM 概念
2、常见的软件过程模型:瀑布、增量、原型、螺旋、喷泉等,比较各自优缺点
1、瀑布模型(经典生命周期模型)
2、增量过程模型(增量模型+RAD模型)
3、演化过程模型(原型模型+螺旋模型)
4、喷泉模型(Water Fountain Model)
5、基于构件的模型(Component-baseed Development Model)
6、敏捷开发过程(Agile Development)
第三章 需求分析
1、需求分析的概念
2、需求分析的过程:需求确认与需求变更
3、需求确认的步骤:需求获取→需求提炼→需求描述→需求验证
4、需求分析三类建模:功能模型、数据模型、行为模型。面向过程和面向对象的需分析过程中,三类模型各包
5、 掌握数据流图和用例图作法。
第四章系统设计
1、系统设计分为概要设计和详细设计
2、设计相关的8个概念(抽象、体系结构、设计模式、模块化、信息隐藏、功能独立、细化、重构),着重考察
3、系统设计从数据、体系结构、接口和组件四方面进行设计。面向过程和面向对象的系统设计,各自包含哪些设
4、掌握流程图和顺序图作法
第五章 质量保证
1、质量保证的概念
2、测试策略 V 模型概念,测试与开发的各阶段对应关系。
3、单元测试的内容、集成测试的分类、系统测试的分类、验收测试的分类。
4、回归测试的概念
5、测试技术常见术语的概念:软件缺陷、验证和确认、测试与质量保证、质量与可靠性、调试与测试、测试用例
6、白盒测试、黑盒测试、静态分析各有哪些方法?
7、掌握逻辑覆盖与等价类划分测试方法。
第六章 软件维护
1、软件维护的基本概念
2、理解软件维护的四个基本类型:纠错性、适应性、完善性、预防性维护。哪种占比重最大? 哪种最小?
3、可维护性的决定因素
4、软件维护过程模型、软件再工程、逆向工程的概念
第七章 项目管理
1、项目管理四要素:人员、产品、项目、过程(概念)
2、软件度量有哪些方法:生产率估计(基于规模(KLOC)、基于功能点(FP))、工作量度量(算法成本
3、项目计划与风险管理的概念
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
分享到:
收藏