软件工程复习大纲
1、 软件工程定义,本质特性,出现背景。
定义:软件工程是指导计算机软件开发和维护的一门工程学科。(软件工程是: ①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件; ②研究①中提到的途径。)
本质特性:1. 软件工程关注于大型程序的构造 2. 软件工程的中心课题是控制复杂性 3. 软件经常变化 4. 开发软件的效率非常重要 5. 和谐地合作是开发软件的关键 6. 软件必须有效地支持它的用户 7. 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人
出现背景:迄今为止,计算机系统已经经历了4个不同的发展阶段,但是,我们仍然没有彻底摆脱“软件危机”的困扰,软件已经成为限制计算机系统发展的瓶颈。为了更有效地开发与维护软件,软件工作者在20世纪60年代后期开始认真研究消除软件危机的途径,从而逐渐形成了一门新兴的工程学科——计算机软件工程学
2、 软件生命周期的含义,软件生命周期可以划分成哪几个阶段,哪个阶段对软件的影响最大。
含义:软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成,每个时期又进一步划分成若干个阶段。
阶段:问题定义、可行性研究和需求分析,总体设计,详细设计,编码和单元测试,综合测试 影响最大:需求分析
3、 可行性研究时,应该从技术可行性、经济可行性、操作可行性进行可行性研
究。
4、 需求规格说明书的作用。
它是需求分析阶段得出的最主要的文档。
通常用自然语言完整、准确、具体地描述系统的数据要求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、逆向需求以及将来可能提出的要求。自然语言的规格说明具有容易书写、容易理解的优点,为大多数人所欢迎和采用。
5、 需求分析工作可以分成哪四个方面,软件需求分析的有哪三个基本原则。 四个方面:确定对系统的综合要求,分析系统的数据要求,导出系统的逻辑模型,修正系统开发计划
基本原则:必须能够表达和理解问题的数据域和功能域;必须按自顶向下、逐步分解的方式对问题进行分解和不断细化;要给出系统的逻辑视图和物理视图 6、 结构化分析方法是面向数据流进行需求分析的方法。结构化分析方法使用数据流图DFD与数据字典DD来描述。什么是数据字典。
数据字典:是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
7、 数据流图的含义和表示方法。数据流图的基本四种成分:数据输入的源点和数据输出汇点、处理、数据流和数据存储。实例:教材征订系统的第一层数据流图。
含义:简称DFD,是SA方法中用于表示系统逻辑模型的一种工具。它一图形的方式描述数据在系统中流动和处理的过程由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。
数据流图有四种基本图形符号:箭头表示数据流,圆或椭圆表示加工,双杠表示数据存储,方框表示数据的原点或终点
8、 系统流程图是描绘物理系统的传统工具。它的基本思想是用图形符号以 黑盒子形式描绘系统里的每个部件。
9、 Warnier程序设计法是一种面向数据结构的设计方法。 10、
总体设计的目的。
总体设计的基本目的就是回答“概括地说,系统应该如何实现?”这个问题 11、
耦合性和内聚性的类型。其耦合度、内聚强度的顺序。软件设计中划分
模块的准则高内聚低耦合。应该采取下述软件设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合,完全不用内容耦合。 12、 13、
软件详细设计工具可分为3类,即语言、图形和表格。
程序流程图,N-S图,PAD图的具体表示方法,PAD图的控制执行流程
为自上而下、从左到右,实例:描述在数组A(1)~A(10)中找最大数的算法 14、 15、
程序的三种基本控制结构顺序、选择和重复。
黑盒测试法的定义。黑盒测试是从用户观点的测试,白盒测试是开发人
员观点的测试 16、
软件测试要经过的步骤。及这些测试的基本任务。
步骤:1. 模块测试 2. 子系统测试 3. 系统测试 4. 验收测试 5. 平行运行 基本任务:(1)模块测试的目的是保证每个模块作为一个单元能正确运行,所以模块测试通常又称为单元测试。
(2)子系统测试是把经过单元测试的模块放在一起形成一个子系统来测试。模
块相互间的协调和通信是这个测试过程中的主要问题,因此,这个步骤着重测试模块的接口。
(3)系统测试是把经过测试的子系统装配成一个完整的系统来测试。在这个过程中不仅应该发现设计和编码的错误,还应该验证系统确实能提供需求说明书中指定的功能,而且系统的动态特性也符合预定要求。
(4)验收测试的目的是验证系统确实能够满足用户的需要,在这个测试步骤中发现的往往是系统需求说明书中的错误。验收测试也称为确认测试。
(5)所谓平行运行就是同时运行新开发出来的系统和将被它取代的旧系统,以便比较新旧两个系统的处理结果。这样做的具体目的有如下几点: (1) 可以在准生产环境中运行新系统而又不冒风险; (2) 用户能有一段熟悉新系统的时间;
(3) 可以验证用户指南和使用手册之类的文档;
(4) 能够以准生产模式对新系统进行全负荷测试,可以用测试结果验证性能指标。 17、
语句覆盖方法运用
语句覆盖的含义是,选择足够多的测试数据,使被测程序中每个语句至少执行一次 18、
路经覆盖方法运用
路径覆盖的含义是,选取足够多测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个环至少经过一次)。 19、
大型软件测试按顺序通常至少分为单元测试、集成测试和验收测试3个
基本阶段。
20、 21、
度量软件模型的常用技术主要有代码行技术和功能点技术。 如何提高软件的可维护性?
定软件可维护性的因素:1. 可理解性 2. 可测试性 3. 可修改性 4. 可移植性 5. 可重用性
大量使用可重用的软件构件来开发软件,可以从下述两个方面提高软件的可维护性:
(1) 通常,可重用的软件构件在开发时经过很严格的测试,可靠性比较高,且在每次重用过程中都会发现并清除一些错误,随着时间推移,这样的构件将变成实质上无错误的。因此,软件中使用的可重用构件越多,软件的可靠性越高,改正性维护需求越少。
(2) 很容易修改可重用的软件构件使之再次应用在新环境中,因此,软件中使用的可重用构件越多,适应性和完善性维护也就越容易。 22、
软件维护阶段通常有四类维护活动:完善性维护、改正性维护、预防性
维护和适应性维护 23、 24、
类是一组具有相同属性和相同操作的对象的集合。
通常,使用UML的 类图来建立对象模型,使用UML的状态图来建立
动态模型,使用数据流图或UML的用例图来建立功能模型。 25、
继承是自动地共享类、子类和对象中的方法和数据的机制。封装是一种
信息屏蔽技术。
相关推荐: