软件工程期末总复习

第一章 软件工程概述

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

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

软件危机的背景: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类维护:

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

相关推荐

  1. 软件工程期末复习(2)

    2024-01-01 00:52:02       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-01 00:52:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-01 00:52:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-01 00:52:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-01 00:52:02       18 阅读

热门阅读

  1. STL--映射:map

    2024-01-01 00:52:02       37 阅读
  2. 第二篇 创建型设计模式 - 灵活、解耦的创建机制

    2024-01-01 00:52:02       34 阅读
  3. 第二百三十八回

    2024-01-01 00:52:02       35 阅读
  4. C# 时间修改器,修改系统本地时间

    2024-01-01 00:52:02       32 阅读
  5. GBASE南大通用-CodeFirst 模式

    2024-01-01 00:52:02       38 阅读
  6. 关于解决el-select组件自动清除数据空格的问题

    2024-01-01 00:52:02       32 阅读
  7. Linux: eBPF: bcc-tools:tcpdrop使用需要注意的问题

    2024-01-01 00:52:02       38 阅读