软件工程概论复习总结
第一章 软件和软件工程的概念
(1)计算机软件的定义与组成部分;
软件是程序、数据及先挂文档的完整集合。 软件=程序+相关文档+数据+领域知识 (2)软件危机的典型表现:
1.缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作的计划很难制定。 2.软件人员与用户交流存在障碍,缺少合适的交流的工具。 3.软件开发过程不规范,缺少方法论和规范的指导。 4.随着软件规模的增大,其复杂性往往会成指数级升高。
5.缺少有效地软件评测手段,提交用户的软件质量差,运行中暴露出大量的问题。 (3)软件工程的概念与性质;
IEEE的定义:软件工程是开发、运行、维护、和修复软件的系统方法。 (4)软件工程的目标;
运用先进的软件开发技术和管理方法来提高软件的质量和生产率。 (5)软件生命周期的概念和组成阶段;
软件生命周期是由软件定义、软件开发和运行维护三个时期组成。 软件定义:问题定义、可行性研究、需求分析; 开发时期:概要设计、详细设计、编码和测试;
维护时期:改正性维护,适应性维护,完善性维护,预防性维护。 (6)软件生存期模型;
瀑布模型、快速模型、增量模型、螺旋模型喷泉模型。
第二章 软件工程方法和工具
(1)软件工程三要素:
软件工程从方法角度来看的三要素:方法、工具、过程。 (2)类与对象:
类可以看成是对象的抽象,代表了此类对象所具有的共有属性和行为。 类与对象的关系:类是对象的抽象和模板,对象是类的实例。
对象是包含现实世界物体特征的抽象实体,它反映了系统位置保存信息和与它交互的能力。
可以将现实生活中的对象经过抽象,,映射为程序中大的对象。对象在程序中是通过一种抽象数据类型描述的,则中抽象数据类型称为类。 (3)封装、继承和多态 封装的定义:
1) 清楚地辩解,所有对象的内部信息被限定在这个边界内;
2) 接口,即对象向外界提供的方法,外界可以通过这些方法与对象进行交互; 3) 受保护的内部实现,即软件对象功能的实现细节,实现细节不能从类外访问。
继承是一种联接类的层次模型,味蕾的重用提供了方便,它提供了明确表述不同类之间共性的方法。
多态是指一个程序中同名的不同方法共存的情况。主要通过子类对父类方法的覆盖来实现多态。
1 / 5
软件工程概论复习总结
(4)UML建模语言的理解;
无论在计算机学术界、软件产业还是在商业界,UML已经成为人们为各种系统建模、描述系统结构和商业过程是使用的统一工具,而且在实践过程中人们还在不断扩展它的应用领域。
UML的特点:统一标准、面向对象、可视化,表达能力强大、独立于过程、容易使用、与编程语言的关系。
第3 章:软件需求获取与结构化分析方法
(1)需求获取的主要任务;
1.发下和分析问题,并分析问题的原因、结果关系;
2.与用户进行各种方式的交流,并使用调查研究方法收集信息; 3.按照三个成分即数据、过程和接口观察问题的不同侧面。 4.将获取的需求文档化,形式有用例,决策表、决策树。
(2)获取并理解用户的需求是软件工程师所面对的最困难的任务之一的原因。 (3)软件需求分析的4个阶段:
需求获取、需求分析、需求定义、需求验证。 (4)可行性分析主要考虑哪些方面的可行性:
技术可行性、经济可行性、社会可行性(操作可行性、时间可行性) (5)实体—联系图
数据对象:用矩形表示。 属性:用椭圆或圆角矩形表示,并用无向边将属性与相关的数据对象连接在一起。 关系:一对一、一对多、多对多。下面的图只是举个例子。
(6)结构化分析模型的相关内容:
结构化分析方法是一种建模技术,它建立的分析模型如图所示。
该模型的核心是数据字典,包括在目标系统中使用和生成的所有数据对象。围绕这个核心有3中途图:数据流图(DFD)描述数据在系统中如何被传送或变换,以及描述如何对
2 / 5
软件工程概论复习总结
数据流进行表换的功能,用于功能建模;实体-关系图(ER图)描述数据对象及数据对象之间的关系,用于数据建模;状态-迁移图(STD)描述系统对外不是件如何响应、如何动作,用于行为建模。
(7)数据字典中,如何描述一个事物的数据结构(如何定义相关符号的定义)
在数据字典的编制中,分析员最常用的描述数据结构的方式有定义式、Warnier图等。 (1) 定义式。在数据流图中,数据流和数据文件都具有一定的数据结构,因此,必须以
一种清晰、准确、无二义性的方式来描述数据结构。
(2) Warnier图。Warnier图是表示数据结构的另一种图形工具,它用树形结构来描绘数
据结构。
这个考点的重点在于考察对事物的数据结构的表示,要求会用图形化的模式表示数据结构! (8)决策表和决策树的画法。
蒋老师考试的时候会出怎样画决策树。自己看吧。
第4、5章 不做重点 第6章 软件测试的方法
(1)软件测试的基本概念
软件测试是在软件投入生产性运行之前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量控制的关键步骤。 (2)黑盒测试与白盒测试的基本概念,联系和区别。
黑盒测试是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和
内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。 白盒测试是对软件的过程性细节做细致的检查。
这一方法是把测试对象看做一个打开的盒子或透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。 通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。 因此,白盒测试又称为结构测试或逻辑驱动测试。 (3)确认和验证的基本概念、联系和区别。
确认是一系列的活动和过程,其目的是想证实在一个给定的外部环境中软件的逻辑正确性。
验证则试图证明在软件生存期各个阶段,以及阶段间的逻辑协调性、完备性和正确性。 确认和验证的区别:
验证是检验开发出来的软件产品和设计规格书的一致性,即是否满足软件厂商生产要求,确认是检验产品功能有效性,即是否满足用户的真正需求。 确认和验证的联系; 确认要求更高,要能保证所凶狠铲的软件可追溯到用户需求的一系列活动。确认过程提供证据,表明软件是否满足客户需求并解决了相应问题。验证是否满足生命周期过程中的标准、时间和约定;验证为判断每一个设革命周期活动是否已经完成,以及是否可以启动其他生命周期活动建立一个新的基准。 (4)软件测试的基本流程
单元测试、组装测试、确认测试和系统测试。
第7章 统一建模语言概述
3 / 5