软件工程期末总复习

第一章 软件工程概述

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/284553.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安装Typora

链接:https://pan.baidu.com/s/1OLHtUTziKdB0sW0UIOnBBw?pwd6666 提取码:6666

spring创建与使用

spring创建与使用 创建 Spring 项⽬创建⼀个 Maven 项⽬添加 Spring 框架⽀持添加启动类 存储 Bean 对象创建 Bean将 Bean 注册到容器 获取并使⽤ Bean 对象创建 Spring 上下⽂获取指定的 Bean 对象获取bean对象的方法 使⽤ Bean 总结 创建 Spring 项⽬ 接下来使⽤ Maven ⽅式…

css 实现圆角渐变色效果

效果图 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>css 实现圆角渐变色效果</title…

字母简化(UPC练习)

题目描述 给出一串全部为小写英文字母的字符串&#xff0c;要求把这串字母简化。简化规则是&#xff1a;统计连续出现的字母数&#xff0c;输出时先输出个数&#xff0c;再输出字母。比如&#xff1a;aaabbbaa&#xff0c;则简化为3a3b2a&#xff1b;而zzzzeeeeea&#xff0c;…

渗透线上下料控制(SCL源代码)

有关渗透线的其它详细介绍请参考下面链接文章&#xff1a; https://rxxw-control.blog.csdn.net/article/details/133611151https://rxxw-control.blog.csdn.net/article/details/133611151这里的渗透线上下料属于整个渗透线流程里的最前端和最后端&#xff0c;分别负责待处理…

机器学习的分类与经典算法

机器学习算法按照学习方式分类&#xff0c;可以分为有监督学习&#xff08;Supervised Learning&#xff09;、无监督学习&#xff08;Unsupervised Learning&#xff09;、半监督学习&#xff08;Semi-supervised Learning&#xff09;、强化学习&#xff08;Reinforcement Le…

C++面向对象基础-构造函数

1、构造函数 1.1 基本使用 构造函数是一种特殊的成员函数&#xff0c;用于创建对象&#xff0c;写法上有以下要求&#xff1a; 函数名必须与类名完全相同构造函数不写返回值如果程序员不手动编写构造函数&#xff0c;编译器就会自动添加一个无参的构造函数 手动添加构造函数&am…

小白学 PyTorch 系列:54个超强 pytorch 操作

最近观察到一个有趣的趋势&#xff0c;越来越多的人在学术界热衷于学习和应用PyTorch。在工业界&#xff0c;虽然仍有一些项目在延续使用之前的深度学习框架&#xff0c;但 PyTorch 的影响力也在逐渐渗透。 对于昨天为什么没发文&#xff0c;原因很心酸。把 PyTorch 的这篇文章…

亚马逊鲲鹏系统一款自动化全能软件

亚马逊鲲鹏系统是一款专为亚马逊买家提供全方位功能的自动化软件。它不仅可以轻松实现自动注册、养号、测评、QA等一系列操作&#xff0c;更在用户关心的账号关联问题上做出了创新性的解决方案。有的朋友可能对全自动化操作心存疑虑&#xff0c;担心可能引起关联从而导致封号&a…

24届春招实习必备技能(一)之MyBatis Plus入门实践详解

MyBatis Plus入门实践详解 一、什么是MyBatis Plus? MyBatis Plus简称MP&#xff0c;是mybatis的增强工具&#xff0c;旨在增强&#xff0c;不做改变。MyBatis Plus内置了内置通用 Mapper、通用 Service&#xff0c;仅仅通过少量配置即可实现单表大部分 CRUD 操作&#xff0…

FileZilla的使用,主动模式和被动模式思维导图

注&#xff1a;图片 &#xff08;与上面的思维导图文字配图看&#xff09;

PAT乙级1045 快速排序

著名的快速排序算法里有一个经典的划分过程&#xff1a;我们通常采用某种方法取一个元素作为主元&#xff0c;通过交换&#xff0c;把比主元小的元素放到它的左边&#xff0c;比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列&#xff0c;请问有多少个元…

node版本管理器nvm的下载和使用

介绍 nvm 全名 node.js version management&#xff0c;顾名思义是一个nodejs的版本管理工具。通过它可以安装和切换不同版本的nodejs。 下载和安装 在下载和安装nvm前&#xff0c;需要确保当前电脑没有安装node&#xff0c;否则则需要先把原来的node卸载了。 下载地址&#…

Oracle-深入了解cache buffer chain

文章目录 1.Cache buffer chain介绍2.Buffer cache的工作原理3 Buffer chains4.Multi-versioning of Buffers5.Latches6.诊断CBC latch等待7.解决 CBC Latch等待 1.Cache buffer chain介绍 经常看到会话等待事件“latch&#xff1a;cache buffers chain”。 如果想知道意味着什…

007、控制流

先看下本篇学习内容&#xff1a; 通过条件来执行 或 重复执行某些代码 是大部分编程语言的基础组成部分。在Rust中用来控制程序执行流的结构主要就是 if表达式 与 循环表达式。 1. if表达式 if表达式允许我们根据条件执行不同的代码分支。我们提供一个条件&#xff0c;并且做出…

Reac03:react脚手架配置(代理配置)

react脚手架配置 reactAjax下载Axios配置代理第二种配置代理的方式 github搜索案例 reactAjax React本身只关注于界面&#xff0c;并不包含发送ajax请求的代码前端应用需要通过ajax请求与后台进行交互(json数据)react应用中需要集成第三方ajax(或自己封装) 常用的ajax请求库 j…

ctfshow——文件上传

文章目录 文件上传思路web 151web 152web 153知识点解题 web 154web 155web 156web 157web 158web 159web160web 161 文件上传思路 web 151 打开页面显示&#xff1a;前台校验不可靠。说明这题是前端验证。 右键查看源代码&#xff0c;找到与上传点有关的前端代码&#xff1a…

[SSD 测试 1.3] 消费级SSD全生命周期测试

依公知及经验整理,原创保护,禁止转载。 专栏 《深入理解SSD》 <<<< 返回总目录 <<<< 构建消费级SSD全生命周期测试,开展性能测试、兼容性测试、功能测试、环境应力测试、可靠性测试、电器检测。 以忆联消费级存储实验室为例,消费级存储实验室面积…

docker应用部署(部署MySql,部署Tomcat,部署Nginx,部署Redis)

Docker 应用部署 一、部署MySQL 搜索mysql镜像 docker search mysql拉取mysql镜像 docker pull mysql:5.6创建容器&#xff0c;设置端口映射、目录映射 # 在/root目录下创建mysql目录用于存储mysql数据信息 mkdir ~/mysql cd ~/mysqldocker run -id \ -p 3307:3306 \ --na…

信号与线性系统翻转课堂笔记19——连续/离散系统的零极点与稳定性

信号与线性系统翻转课堂笔记19——连续/离散系统的零极点与稳定性 The Flipped Classroom19 of Signals and Linear Systems 对应教材&#xff1a;《信号与线性系统分析&#xff08;第五版&#xff09;》高等教育出版社&#xff0c;吴大正著 一、要点 &#xff08;1&#x…