软件工程期末总复习

第一章 软件工程概述

什么是软件:程序+数据+配套文档

软件危机:计算机软件开发过程中所遇到的一系列严重问题

软件危机的背景:20世纪60年代中后期软件开发需求急剧增长

软件工程的定义:指导计算机软件开发和维护的工程学科,采用工程的概念、原理、技术和方法开发与维护软件,经济地开发出高质量软件

软件工程三要素:方法,工具,过程

习题知识点:

1.不属于软件特点的是:软件使用不涉及知识产权

2.软件危机的产生主要原因是:软件规模日益庞大

3.软件工程三要素:方法,工具,过程

4."软件工程"术语是在1968年NATO会议被首次提出

5.软件工程基本目标是开发足够好的软件

6.软件由程序、数据、文档组成

7.下面选项中,软件工程材料不属于软件工程学科要研究的

8.开发软件所需高成本和产品低质量有着尖锐矛盾,这种现象称为:软件危机

9.人数增加生产效率不加是因为参与人员之间通信困难

10.软件工程的出现主要原因是软件危机的出现

第二章 软件过程

软件生命周期:软件从定义到开发、使用到维护、最终被弃用的整个时期

软件生命周期的三周期八阶段,以及各个阶段的基本任务:

(传统的)软件过程模型(每一种模型知道它的特点)

瀑布模型:

适用于功能性能明确、完整、无重大变化的系统开发

优点:提升了软件开发质量和效率

缺点:过程不可逆,逆过程代价过大;实际开发中很难严格按照该模型进行

快速原型模型(原型化模型):

在瀑布模型的基础上增加了原型构建阶段(听取用户建议)

用户说不清楚需求,通过实践了解目标系统概貌

优点:更为准确、减少后期返工,用户参与性强,需求越来越清晰

缺点:为了演示功能往往采用不合适的算法或系统,不考虑长期维护性和整体质量

增量模型:

瀑布模型的改进模型,分解系统,以用户看得见的功能为增量单位实现迭代式开发,一次完成一个增量,在较短时间内完成一部分功能供用户使用。

优点:渐增完成,能在较短时间向用户提交可完成部分的产品;用户更能学习和适应,减少全新软件对用户的冲击

缺点:对软件体系结构要求较高,可能出现不能集成的风险;容易退化成边做边改模型。

螺旋模型:

每个阶段都增加了风险分析的快速原型模型

优点:减少了测试过多过少的风险;融入了迭代的思想;避免错误的积累

缺点:适用于大规模软件项目;一般只适用于内部开发的项目

喷泉模型:

面向对象的软件开发方法为基础,生命周期各阶段间没有明显边界

优点:逐步完善需求;节省开发使劲按;迭代开发

缺点:需要大量开发人员,对文档要求严格。

(现代的)统一过程模型和和敏捷过程模型(掌握每一种特点)

统一过程模型:

迭代式开发、管理需求、使用基于组件的体系结构、可视化建模、控制软件变更

敏捷过程模型:

个体交互胜于过程和工具

可使用的软件胜过面面俱到的文档

客户合作胜过合同谈判

响应变化胜过遵循计划

软件过程改进与CMM(了解概念和作用)

CMM:能力成熟度模型

概念:品该软件机构的软件过程能力成熟度的模型

作用:提高软件质量,让软件项目免受时间和费用超支的苦

五个等级:

1)初始级:无秩序、混乱,成功依赖于个人或小组。

2)可重复级:建立了基本的管理过程,制定了必要的纪律。

3)已定义级:文档化、标准化。所有项目使用标准的软件过程开发和维护

4)已管理级:对软件过程和产品都有定量控制

4)优先级:过程的量化反馈和现金的新思想、新技术促使过程不断改进

习题知识点:

1.瀑布模型适用于需求被清晰定义的情况

2.增量模型是一种需要快速构造核心产品的好方法

3.原型化模型适用于客户需求难以被清除定义

4.敏捷开发的优点不包括:遵循严格受控的过程和详细的项目规则

5.包含风险分析的是:螺旋模型

6.软件过程是:软件开发活动的集合

7.CMM在优化级使用定量分析不断改进和管理软件过程

8.瀑布模型把软件生命周期划分为:软件定义、软件开发、运行和维护三个阶段

9.以用户为动力、以对象作为驱动力的模型是喷泉模型

10.需求分析阶段主要任务是:获得系统完整的功能和性能需求

第四章 软件需求工程

软件需求的定义:从用户角度和开发者角度阐述需求,编写需求文档

需求工程过程(要知道每一步做了什么):

需求获取:听取客户需求,观察用户行为

需求分析:将需求分析和整理

需求规格说明:编写文档说明书

需求验证:采用评审和审议的手段对说明文档验证

需求管理:在软件生命周期中有效地管理和控制需求的变更

面向对象的需求分析:用例建模法(画)、活动图建模法(知晓概念)

活动图:实质上是一种流程图

组成:

动作状态(活动):不能有入口和出口动作,不能有内部转移

活动状态:可以有出口和入口动作,可以有内部转移

动作流:所有动作状态之间的转换流

分支与合并:转换的一部分

分叉与汇合:将动作流分为多个分支,同步这些并发分支

泳道:将活动划分为若干组,每一组指定给负责这些活动的对象

对象流:表示对象之间彼此操作与转换,许下念头表示

面向数据流的建模法(会画)

数据流图(DFD):自顶向下逐层分解,先画第一层,再画第二层

习题知识点:

1.需求分析最终结果是形成需求规格说明书文档

3.参与者之间可以存在泛化关系

7.需求规格说明描述了:计算机系统的功能、性能和约束

15.DFD基本符号不包括数据字典

16.需求验证应该从一致性、现实性、完整性、有效性方面进行验证

第五章 软件系统建模

统一建模语言:UML

定义:是一种定义良好的、易于表达的、功能强的建模语言

会画图

第七章 软件设计与实现

该画的图会画,了解基本概念

软件模块化设计(了解概念)

总体设计:

模块化:把软件划分为独立命名独立访问的模块

衡量模块好坏:模块间的耦合和模块内的内聚

模块独立性:高内聚(模块内部紧密程度),低耦合(模块之间的互联程度)

详细设计:程序流程图,判定表,判定树(还没找到)没找到

第八章 软件测试

什么是软件测试,目的,定义:课上写的

白盒测试技术

什么是白盒测试:以程序内部逻辑为依据,选取足够多的测试用例,尽可能发现程序中的错误

基本路径测试法(掌握怎么用,画图,算复杂度)

怎么画:书上P204

复杂度:

1)边-点+2

2)判定结点+1

黑盒测试技术

什么是黑盒测试:以程序的功能作为依据

第九章 软件演化

什么是软件演化: 开发和维护的综合

4类维护:

软件再工程:现有软件基础再工程

相关推荐
Da_秀1 小时前
软件工程中耦合度
开发语言·后端·架构·软件工程
天若有情67317 小时前
01_软件卓越之道:功能性与需求满足
c++·软件工程·软件
加密狗复制模拟18 小时前
坚石ET ARM加密狗复制模拟介绍
安全·软件工程·个人开发
2501_916589451 天前
Excel 批量处理BatchXLS批量替换一键更新,告别逐个修改
电脑·软件工程·开源软件
2501_916589452 天前
棱光 PDF 工具箱:水印管理 + 格式转换 + 批量处理提升效率
电脑·软件工程·开源软件
文哥工具箱22 天前
免费文件管理 智能转换GC-Prevue:PDF 转 Word 多种格式 一键完成
电脑·软件工程·开源软件
张较瘦_2 天前
[论文阅读] 人工智能 + 软件工程 | 软件架构中自然问题主动辅助研究:从挑战到解决方案
论文阅读·人工智能·软件工程
世冠科技2 天前
第2期汽车模型数字工程沙龙,世冠科技分享汽车控制系统开发国产应用
科技·汽车·软件工程·工业软件·仿真系统
雾江流2 天前
LinkAndroid 0.6.0 | 支持多部手机同时连接的全能手机投屏工具
智能手机·软件工程
Clair-Sean3 天前
【软件工程】软件复刻项目的完整流程指南
软件工程