当前位置:文档之家› 软件工程复习大纲-整理

软件工程复习大纲-整理

软件工程复习大纲

题型:

选择题

判断题

简答题

应用题(60分)

① 数据流图

② 用例图

③ 程序流程+白盒测试

④ 顺序图

⑤ 黑盒测试(等价类划分和边界值分析)

⑥ 计算题(第八章 软件度量)

选择,判断,简答:重心会适当往第六章之后压

一.概述(无大题、简答题,主要是选择和判断)

1.软件的概念和特点(三个要素)

概念:

软件= 程序+数据+文档

 程序:按事先设计的功能和性能需求执行的指令序列

 数据:是程序能正常操纵信息的数据结构

 文档:与程序开发、维护和使用有关的图文材料

特点(选择或判断)

三个要素:

工具

方法:完成软件工程项目的技术手段(分为 结构化方法 和 面向对象方法)

过程:贯穿软件开发所有环节

2.软件危机和现状(不协调现象 软硬件矛盾)

软件危机定义:

在计算机软件的开发和维护过程中所遇到的一系列严重问题。(效率下降,质量下降)

现状:

 软件成本日益增加

 软件技术进步落后于需求增长

7个原则:

3.软件工程的定义和发展过程

软件工程定义:

应用系统化的、学科化的、定量的方法,来开发、运行和维护软件,即,将工程应用到软件。

发展过程:

第一软件工程 传统的软件工程

第二代软件工程 对象工程

第三代软件工程 过程工程

第四代软件工程 构件工程

软件工程知识体系

二. 过程模型(无大题)

1.软件的生命周期、软件过程概念

软件过程:(软件开发中所遵循的路线图)

软件过程可以定义软件生产的一系列活动,这些活动贯穿于软件开发的整个过程。

软件过程模型:(软件生存周期模型、软件开发模型)

软件过程模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。

(定义了若干小的框架活动,为完整的软件开发过程建立了基础。

每一个活动由一组软件工程动作组成

每一个动作都包括一系列相互关联的可考核的任务,并产生一个关键的工作产品。

每一个任务完成一个动作定义的一部分工作。)

过程具有的共同活动:

沟通 计划 建模 构建 部署

2.常见的几种软件过程模型

重点三个:瀑布模型、增量模型、原型,优点缺点,应用场合,要会举例子

另外两个,螺旋和敏捷

瀑布模型:

特点:

1. 阶段间具有顺序性和依赖性。

2. 推迟实现的观点。

3. 为了保证质量:①每个阶段必须完成规定的文档; ②每个阶段结束前完成文档审查,及早改正错误

优点:

① 提供了一个模板,使得分析、设计、编码、测试与维护工作可以在该模板的指导下有序地展开,避免了软件开发、维护过程中的随意状态。

② 对于需求确定、变更相对较少的项目,线性顺序模型仍然是一种可以考虑采取的过程模型。采用这种模型,曾经成功地进行过许多大型软件工程的开发。

缺点:

① 线性过程太理想化,不适应需求经常发生变更的环境

② 经常不能接受项目开始阶段自然存在的不确定性

③ 线性顺序模型每一步的工作都必须以前一阶段的输出为输入,这种特征会导致工作中发生“阻塞”状态。

适用场景:

系统需求明确、技术成熟、工程管理较严格的场合。

增量过程模型:

特点:

① 在前面增量的基础上开发后面的增量

② 每个增量的开发可用瀑布或快速原型模型

③ 迭代的思路

优点:

① 增量包概念的引入,以及它不需要提供完整的需求。只要有一个增量包出现,开发就可以进行。

② 在项目的初始阶段不需要投入太多的人力资源。

③ 增量可以有效地管理技术风险。

缺点:

每个增量必须提供一些系统功能,这使得开发者很难根据客户需求给出大小适合的增量。

原型模型:

适用情况:见上(客户定义……选择。)

缺点:

① 设计者在质量和原型间有所折中

② 客户意识不到一些质量问题

螺旋模型:

适用场景:

内部的大规模软件的开发,不太适合合同软件。

一般只适用于大规模软件的开发

优点:

① 支持用户需求的动态变化

② 原型可看作形式的可执行的需求规格说明,易于为用户和开发人员共同理解,还可作为继续开发的基础,并为用户参与所有关键决策提供了方便。

③ 螺旋模型特别强调原型的可扩充性和可修改性,原型的进化贯穿整个软件生存周期,这将有助于目标软件的适应能力。

④ 螺旋模型为项目管理人员及时调整管理决策提供了方便,进而可降低开发风险。

缺点:

① 如果每次迭代的效率不高,致使迭代次数过多,将会增加成本并推迟提交时间;

② 使用该模型需要有相当丰富的风险评估经验和专门知识,要求开发队伍水平较高。

敏捷模型:

三. 需求分析(有大题)

1.需求分析的概念和过程

需求分析概念:

确定系统必须具有的功能和性能,系统要求的运行环境,并且预测系统发展的前景。

需求分析过程:

2.面向过程结构化分析方法,数据流图(详情见ppt)dfd图,问画二层的话,一定要花多层。把过程写出来。0层开始。

结构化分析模型:

其基本思想是用系统工程的思想和工程化的方法,根据用户至上的原则,自始自终按照结构化、模块化,自顶向下地对系统进行分析与设计。

面向对象分析模型:

由5个层次(主题层、对象类层、结构层、属性层和服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。

数据流图:

数据流图中的主要图形元素:

(画图方式参照ppt 03需求分析-2)

3.面向对象的分析方法,用例图(详情见ppt)

UML(统一建模语言):UML是面向对象的系统分析与设计的建模语言,不要将它理解为一种方法论或是一种开发过程

功能模型:用例图

4.需求规格文档编制

四.系统设计(有大题)

1.软件设计过程、软件设计的概念和原则 7个架构

软件设计概念:

软件系统或组件的架构、构件、接口和其他特性的定义过程及该过程的结果。 {

流程图结合白盒出题

用例图大题

顺序图大题

黑盒测试一个大题

工作量计算题

}

软件设计原则:

软件设计过程:

设计相关概念:

 抽象

现实世界中一定实物、状态或过程之间总存在某些相似的方面(共性),把这些相似的方面集中和概括起来,忽略其差异性

 体系结构

软件的整体结构和这种结构为系统提供概念完整性的方式

 体系结构设计的7种模型:

 设计模式

在给定上下文环境中一类共同问题的共同解决方案

 模块化

软件被划分为命名和功能相对独立的多个组件(通常称为模块),通过这些组件的集成来满足问题的需求

软件的模块性:程序可被智能管理的单一属性

 信息隐藏

模块应该具有彼此相互隐藏的特性,模块定义和设计时应当保证模块内的信息(过程和数据)不可以被不需要这些信息的其他模块访问(私有变量和方法)

 求精(细化)

逐步求精的过程

 功能独立

每个模块只解决了需求中特定的子功能,并从程序结构的其他部分看该模块具有简单的接口

衡量标准:(高内聚低耦合!! 不要弄混! )

 内聚性(块内联系):模块的功能相对强度

 耦合性(块间联系):模块之间的相互依赖程度

 重构

不改变组件功能和行为条件下,简化组件设计(或代码)的一种重组技术

几个模型需要去看:

概念数据模型 物理数据模型 中心数据架构 数据流体形架构 调用和返回的架构 面向对象的架构 层次架构 (7个架构图必须掌握)

2.传统的系统设计方法,程序流程图(会和后面的测试里的xxx结合起来考)

程序流程图讲解见04 系统设计-2.ppt

3.面向对象的系统设计方法,顺序图结合时序图(重点)

五、程序实现(没有大题和简答)

1.编程规范(了解,能排除即可)

2.版本管理(了解,能判断掉就可)

3.CMMI模型(选择掉,判断掉)

六、质量保证(有大题)

1.质量保证相关概念

软件质量:

明确表示是否符合功能和性能要求,明确地记载开发标准和所有专业开发软件的期望的隐性特点。

软件质量管理:

用来衡量软件设计(设计品质),以及如何做好符合该设计(符合质量)的软件

质量控制:

是审查产品相关的各个方面质量的过程

质量保证:

系统地监测和评估一个工程的各个方面,以最大限度地提高正在由生产过程中实现的质量的最低标准。

软件质量保证(SQA)

一个监控的软件工程以确保软件质量的过程

软件评审:

指“一个过程或会议期间进行的软件产品的审核,是由项目人员、管理人员,用户、客户、用户代表或其他有关各方对一个软件产品进行评论或批准”

软件可靠性:

是指在给定时间内,特定环境下软件无错运行的概率

相关主题