当前位置:文档之家› 软件工程导论复习资料

软件工程导论复习资料

软件工程导论复习资料

第一章软件工程导论

一、软件工程是指导计算机软件开发和维护的一门工程学科

二、件工程的七条基本原则:

1. 用分阶段的生命周期计划严格管理

2. 坚持进行阶段评审

3. 实行严格的产品控制

4. 采用现代程序设计技术

5. 结果应能清楚地审查

6. 开发小组的人员应该少而精

7. 承认不断改进软件工程实践的必要性

三、软件工程方法学包含3个要素:方法、工具和过程。

方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

四、软件一程方法学:传统方法学、面向对象方法学

五、软件生命周期:软件定义、软件开发和运行维护(也称为软件维护)3个时期组成

1软件定义主要任务:问题定义、可行性研究和需求分析

2开发时期主要任务:总体设计,详细设计,编码和单元测试,综合测试

3维护时期主要任务:通过各种维护性活动使系统持久地满足用户的需求,通常有四类维护:改正性维护,也就是诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的需求改进若扩充软件使它更完善;预防性维护,即修改软件,为将来的维护活动预先做准备

//①问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”②可行性研究~:对于上一个阶段所确定的问题有行得能的解决

办法吗?③需求分析:确定目标系统必须具备哪些工能④总体设计:概括地说,应该怎样实现目标系统?⑤详细设计:应该怎样具体地实现这个系统呢?

⑥编码和单元测试:写出正确的容易理解、容易维护的程序模块

⑦综合测试:通过各种类型测(及相应的调试)使软件达到预定的要求,最基本的测试是集成测试和验收测试,集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配过程中对程序进行必要的测试;验收测试则是按照规格说明的规定,由用户对目标系统验收

六、软件过程的各种模型:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型

第二章可行性研究

一、可行性研究的任务

分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度

二、可行性

(1) 技术可行性使用现有的技术能实现这个系统吗?(2) 经济可行性这个系统的经济效益能超过它的开发成本吗?(3) 操作可行性系统的操作方式在这个用户组织内行得通吗?

三、可行性研究过程

1. 复查系统规模和目标、

2. 研究目前正在使用的系统

3. 导出新系统的高层逻辑模型、

4. 进一步定义问题

5. 导出和评价供选择的解法、

6. 推荐行动方针

7. 草拟开发计划、

8. 书写文档提交审查

四、系统流程图:是概括地描绘物理系统的传统工具。

数据流图:描绘信息流和数据从输入移动到输出的过程中所经受的变换。数据流图是系统逻辑功能的图形表示

数据字典:数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

一般说来,数据字典应该由对下列3类元素的定义组成:

(1) 数据流

(2) 数据流分量(即数据元素)

(3) 数据存储

第三章需求分析

一、需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。

二、确定对系统的综合要求

1. 功能需求

2. 性能需求、

3. 可靠性和可用性需求

4. 出错处理需求、

5. 接口需求、

6. 约束

7. 逆向需求、

8. 将来可能提出的要求

三、分析系统的数据要求

分析系统的数据要求通常采用建立数据模型的方法

3.1.3导出系统的逻辑模型

综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。

四、获取需求的方法

3.2.1 访谈

3.2.2 面向数据流自顶向下求精

3.2.3 简易的应用规格说明技术

3.2.4 快速建立软件原型

五、3.3.1 分析建模

需求分析过程应该建立3种模型,它们分别是数据模型、功能模型和行为模型。

3.4节将介绍的实体-联系图,描绘数据对象及数据对象之间的关系,是用于建立数据模型的图形。

2.4节讲过的数据流图,描绘当数据在软件系统中移动时被变换的逻辑过程,指明系统具有的变换数据的功能,因此,数据流图是建立功能模型的基础。

3.6节将介绍的状态转换图(简称为状态图),指明了作为外部事件结果的系统行为。为此,状态转换图描绘了系统的各种行为模式(称为“状态”)和在不同状态间转换的方式。状态转换图是行为建模的基础。

3.4 实体-联系图(数据对象、属性、联系)

3.6 状态转换图(状态、事件、符号)

3.7 其他图形工具、3.7.1 层次方框图

3.7.2 Warnier图、3.7.3 IPO图

六、验证软件需求

(1) 一致性所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。

(2) 完整性需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。

(3) 现实性指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。对硬件技术的

进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。

(4) 有效性必须证明需求是正确有效的,确实能解决用户面对的问题。

第五章总体设计

划分出组成系统的物理元素(黑盒子级)——程序、文件、数据

库、人工过程和文档等

2、设计软件的结构

1、确定系统中每个程序是由哪些模块组成

2、这些模块相互间的关系

二、典型设计过程

设想供选择的方案、选取合理的方案、推荐最佳方案、功能分解、设计软件结构、设计数据库、制定测试计划、书写文档、审查和复审

三、设计原理:模块化、抽象、逐步求精、信息隐藏和局部化、模块独立

四、模块独立性的度量:

两个定性标准度量:内聚和耦合

耦合:模块间互相依赖(连接)的紧密程度

内聚:模块内部各个元素彼此结合的紧密程度

五、耦合

数据耦合(Data Coupling)、特征耦合

控制耦合(Control Coupling)

公共环境耦合(Common Coupling)

内容耦合(Content Coupling)

六、设计原则

耦合是影响软件复杂程度的一个重要因素。

尽量使用数据耦合、少用控制耦合和特征耦合,限制公共环境耦合的范围、完全不用内容耦合。

七、模块内聚

八、设计原则,如果给上述7种内聚的优劣评分,将得到如下结果:

功能内聚10分顺序内聚9分

通信内聚7分过程内聚5分

时间内聚3分逻辑内聚1分

偶然内聚0分

力争做到高内聚、识别提高低内聚的模块

九、启发规则:

1.改进软件结构提高模块独立性

2. 模块规模应该适中

3. 深度、宽度、扇出和扇入都应适当

4. 模块的作用域应该在控制域之内

5.力争降低模块接口的复杂程度

6. 设计单入口单出口的模块

7. 模块功能应该可以预测

十、描绘软件结构的图形工具

层次图HIPO图结构图

面向数据流的设计方法:信息流的类型:变换流、事务流

分析步骤:

第1步复查基本系统模型、第2步复查并精化数据流图

第3步确定数据流图具有变换特性还是事务特性。

第4步确定输入流和输出流的边界,从而孤立出变换中心。

第5步完成“第一级分解”。变换型数据流图被映射成一个输入、变换和输出的信息处理过程。第6步完成“第二级分解”。把数据流图中的每个处理映射成软件结构中一个适当的模块。

第7步使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。

第6章详细设计

目标:系统的具体实现。

应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。

1、结构程序设计的经典定义如下所述:“如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。”

2、如果只允许使用顺序、IF-THEN-ELSE型分支和DO-WHILE型循环这3种基本控制结构,则称为经典的结构程序设计;

3、如果除了上述3种基本控制结构之外,还允许使用DO-CASE

型多分支结构和DO-UNTIL型循环结构,则称为扩展的结构程序设计;

4、如果再加上允许使用LEA VE(或BREAK)结构,则称为修正的结构程序设计。

人机界面设计:1. 系统响应时间、2. 用户帮助设施3. 出错信息处理、4. 命令交互

过程设计的工具:

程序流程图、盒图(N-S图)、PAD图、判定表、判定树、过程设计语言

面向数据结构的设计方法:

1 Jackson方法和Warnier方法是最著名的两个面向数据结构的设计方法.

2 使用面向数据结构的设计方法,当然首先需要分析确定数据结构,并且用适当的工具清晰地描绘数据结构。

3 Jackson方法:

(1) 分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构。

(2) 找出输入数据结构和输出数据结构中有对应关系的数据单元。所谓有对应关系是指有直接的因果关系,在程序中可以同时处理的数据单元(对于重复出现的数据单元必须重复的次序和次数都相同才可能有对应关系)。

(3) 用下述3条规则从描绘数据结构的Jackson图导出描绘程序结构的Jackson图:第一,为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框(注意,如果这对数据单元在输入数据结构和输出数据结构中所处的层次不同,则和它们对应的处理框在程序结构图中所处的层次与它们之中在数据结构图中层次低的那个对应);

第二,根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框;

第三,根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。

在导出程序结构图的过程中,由于改进的Jackson图规定在构成顺序结构的元素中不能有重复出现或选择出现的元素,因此可能需要增加中间层次的处理框

(4) 列出所有操作和条件(包括分支条件和循环结束条件),并且把它们分配到程序结构图的适当位置。

(5) 用伪码表示程序

程序复杂程度的定量度量:McCabe方法、Halstead方法

第七章实现

通常把编码和测试统称为实现。

所谓编码就是把软件设计结果翻译成用某种程序设计语言书写的程序。

测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。

单元测试、综合测试

软件测试的目标:(1) 测试是为了发现程序中的错误而执行程序的过程;(2) 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3) 成功的测试是发现了至今为止尚未发现的错误的测试。

测试方法:

黑盒测试:如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用;

白盒测试:如果知道产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。

测试步骤:

1模块测试、2 子系统测试、3. 系统测试

4. 验收测试、

5. 平行运行

集成测试:

1、自顶向下集成

2、自底向上集成

逻辑覆盖:

1. 语句覆盖

2. 判定覆盖

3. 条件覆盖

4. 判定/条件覆盖

5. 条件组合覆盖

6. 点覆盖

7. 边覆盖8 . 路径覆盖

控制结构测试:

1. 基本路径测试:

第一步,根据过程设计结果画出相应的流图。

第二步,计算流图的环形复杂度。

第三步,确定线性独立路径的基本集合。

第四步,设计可强制执行基本集合中每条路径的测试用例。

黑盒测试技术:

等价划分、边界值分析、错误推测

软件可靠性:程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。

估算平均无故障时间的方法

4. 估计错误总数的方法:

1) 植入错误法2) 分别测试法

第八章维护

8.1 软件维护的定义

所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。改正性维护:在任何大型程序的使用期间,用户必然会发现程序错误,并且把他们遇到的问题报告给维护人员。

适应性维护:也就是为了和变化了的环境适当地配合而进行的修改软件的活动,是既必要又经常的维护活动。

完善性维护:在使用软件的过程中用户往往提出增加新功能或修改已有功能的建议,还可能提出一般性的改进意见。

预防性维护:当为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改软件

软件工程导论复习资料全

名词解释: 1.软件生命周期模型 软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。 软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等 2. 模块独立性 模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且 接口简单。模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。 3. 软件的可维护性 软件可维护性指软件能够被理解、校正、适应及增强功能的容易程度。 4. 软件工程 软件工程指用科学知识和技术原理来定义、开发、维护软件的一门学科。或者说,软件工程就是运用工程学的基本原理和方法来组织管理软件的生产、研究、开发、管理、维护的过程、方法和技术。 5.数据字典 字据字典:简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的\无二义性的说明方式为系统的分析\设计及维护提供了有关元素的一致的定义和详细 的描述。 6、静态测试 静态测试是采用人工检测和计算机辅助静态分析的方法对程序进行检测。 7、面向对象:面向对象OO=类+对象+继承+通信 8、需求分析 需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。 9、软件危机 软件危机(Software Crisis) 是计算机软件在它的开发和维护过程中所遇到的一系列严重问题。概括地说,主要包含两方面的问题:如何开发软件,怎样满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。 10、软件生存周期 软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等。 简答: 1.软件生存周期有哪几个阶段? ①可行性研究②需求分析③总体设计④详细设计⑤编码⑥测试⑦维护 2.白盒测试法有哪些逻辑覆盖标准? ① 语句覆盖②判定覆盖③条件覆盖④判定/条件覆盖⑤条件组合覆盖⑥点覆盖、边覆盖、路径覆盖 3.软件的维护有哪4种类型?①校正性维护②适应性维护③完善性维护④ 预防性维护。4.软件成分的重用有哪3个级别?:①代码重用②设计结果重用③分析结果重用 5.设计任务管理子系统有哪7个任务?

软件工程导论复习知识点

软件工程导论复习知识点

一、软件: 软件定义: 软件=程序+文档+数据 软件特点: 1、具有抽象性 2、没有明显的制造过程 3、软件的维护比硬件的维护要复杂得多 4、对计算机系统有着不同程度的依赖性 5、尚未完全摆脱手工艺的开发方式 6、软件本身是复杂的 7、软件成本相当昂贵 8、相当多的软件工作涉及到社会因素软件的发展: 程序设计、程序系统、软件工程 软件危机: 软件危机指的是软件开发和维护过程中遇到的一系列严重问题。 软件危机的问题: 如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。 软件危机表现: 1.开发成本难以控制,进度不可预计; 2.软件系统的质量和可靠性很差,难以满意; 3.软件文档相当缺乏,软件系统不可维护; 4.软件开发生产率很低,软件产品供不应求。 5.软件产品成本十分昂贵。

管理科学中的方法和原理进行软件生产的管理。用数学的方法建立软件开发中的各种模型和各种算法,如可靠性模型,说明用户需求的形式化模型等。 软件工程三要素: 方法、工具和过程。 软件方法: 是完成软件开发的各项任务的技术方法,回答“如何做”的问题;工具是为方法的运用提供自动的或半自动的软件支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。包括:传统方法学面向对象方法学需要解决的问题: 软件成本、软件可靠性、软件维护、软件生产率和软件复用。 基本内容: 包括理论、结构、方法、工具、环境与规范等 目标: 以较少的投资获得易维护、易理解、可靠和高效率的软件产品。 原则: 即分解、抽象和信息隐蔽、一致性和确定性 原理: 工程化和系统化。 软件过程: 软件过程是把输入转化为输出的一组彼此相关的资源和活动

软件工程导论复习(期末_考研用)

第1章软件工程概述 1、什么是软件工程?为什么会出现软件工程? 软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。 软件工作者在20世纪60年代后期开始认真研究消除软件危机的途径,从而逐渐形成了一门新兴的工程学科——计算机软件工程学(通常简称为软件工程)。 2、软件工程的主要目标是什么?基本目标是什么? 软件工程的目标:从管理和技术两个方面开发和维护计算机软件,用低成本,开发出达标、高性能、易于移植、可靠性高的软件。软件工程的基本目标是:优质、高产。 3、什么是软件工程方法学?软件工程的3要素(软件工程方法学的3要素)是什么?分别包含什么内容? 软件工程方法学:软件生命周期全过程中使用的一整套技术方法的集合 软件工程方法学包含3个要素:方法、工具和过程。 方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题; 工具是为运用方法而提供的自动的或半自动的软件工程支撑环境; 过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。 目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。 4、什么是软件过程?什么是软件周期?常见软件生命周期模型(课件中的前5类)的特点有哪些? 软件过程:它是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。 软件生命周期:由软件定义、软件开发和运行维护(也称之为软件维护)3个时期组成 ①瀑布模型 定义:传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。 瀑布模型的特点:1.阶段间具有顺序性和依赖性;2.推迟实现的观点;3.质量保证的观点。瀑布模型的成功在很大程序上是由于它基本上是一种文档驱动的模型。 瀑布模型的主要优点:a.可强迫开发人员采用规范的技术方法; b.严格地规定了每个阶段必须提交的文档; c.每个阶段结束前必须正式进行严格的技术审查和管理复审。 瀑布模型的主要缺点:在可运行的软件产品交付给用户之前,用户只能通过文档来了解未来的产品是什么样的。开发人员和用户之间缺乏有效的沟通,很可能导致最终开发出的软件产品不能真正满足用户的需求。 ②快速原型模型 定义:所谓“快速原型”,是快速建立起来的、可在计算机上运行的程序,它所能完成的功能往往是最终的软件产品所能完成的功能的子集。原型是软件开发人员与用户沟通的强有力工具,因此有助于所开发出的软件产品满足用户的真实需求。 快速原型模型的主要优点是:A.使用这种软件过程开发出的软件产品通常能满足用户的真实需求; B.软件产品的开发过程基本上是线性顺序过程。 ③增量模型 定义:增量模型也称为渐增模型 增量模型的主要优点:A.能在较短时间内向用户提交可完成部分工作的产品; B.逐步增加产品功能,从而使用户有较充裕的时间学习和适应新产品,减少一个全新的软件给客户 组织带来的冲击。 ④螺旋模型 定义:螺旋模型的基本思想是,使用原型及其他方法尽量降低风险。理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。 螺旋模型所描述的软件过程主要适用于内部开发的大型软件项目。 使用螺旋模型开发软件,要求软件开发人员具有丰富的风险评估知识和经验。 螺旋模型主要有下述优点:A.有利于已有软件的重用; B.有助于把软件质量作为软件开发的一个重要目标; C.减少了过多测试或测试不足所带来的风险; D.软件维护与软件开发没有本质区别。 ⑤喷泉模型 定义:迭代是软件开发过程中普遍存在的一种内在属性。在面向对象范型中,软件开发过程各阶段之间的迭代或同一阶段内各个工作步骤之间的迭代,比在结构化范型中更常见。 喷泉模型,是典型的面向对象生命周期模型,它充分体现了面向对象软件开发过程迭代和平滑过渡的特性。 5、在“快速原型”模型中软件原型的作用主要是什么?在哪类生命周期模型中引入了风险分析?哪类生命周期模型是典型的传统软件工程生命周期模型?哪类生命周期模型是典型的面向对象软件工程生命周期模型? 在“快速原型”模型中软件原型的作用主要是:软件开发人员与用户沟通的强有力工具,因此有助于所开发出的软件产品满足用户的

软件工程导论知识点总结(整理)

软件工程导论知识点总结(整理) 1.什么是软件危机? 软件危机指在计算机软件的开发和维护过程中所遇到的一系列严重问题,包括用户难以满意、软件产品质量不可靠、维护困难、生产效率低下、开发成本增加、难以预估成本与进度、技术发展不能满足需求等方面。 2.为什么会产生软件危机? 软件危机的产生原因包括开发人员对软件缺乏正确认识、软件开发过程缺乏统一的方法论和规范指导、软件规模和复杂程度增加等。为了克服软件危机,需要充分吸收和借鉴人类长期以来从事各种工程项目中积累的有效原理、概念、技术与方法,并推广在实践中总结出来的成功的技术和方法,根据不同的应用领域开发更好的软件工具并使用这些工具,并且需要有必要的组织管理措施。 3.怎样克服软件危机? 为了解决软件危机,需要采取技术措施和组织管理措施。技术措施包括吸收有效原理、推广成功的技术和方法、开发更

好的软件工具等;组织管理措施包括良好的组织、严格的管理、相互友好的协作等。 4.构成软件项目的最终产品 软件项目的最终产品包括应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。 5.什么是软件生存周期? 软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。 6.软件生存周期为什么划分成阶段? 将软件生存周期划分成阶段可以降低每个阶段任务的复杂程度,简化不同阶段的联系,有利于工程的组织管理,也便于采用良好的技术方法。同时,每个阶段的具体任务独立而简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。 2)分析需求,确定系统的功能和性能要求; 3)制定问题定义报告,明确系统的范围和边界,为后续的 可行性研究提供基础。

软件工程导论复习

软件工程导论复习 一、概念: 1.软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 2.软件工程:是指导软件开发与维护的工程性学科,采用工程的概念、原理、技术和方法 来开发与维护软件。 3.软件工程的7条基本原理:(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段 评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果可以清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性 4.软件生命周期:从软件定义开始到软件被废弃所经历的整个时期,它包括软件定义、软 件开发和运行维护3个时期,每个时期又进一步划分成若干个阶段。 5.软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项 任务的工作步骤。 6.瀑布模型的特点:(1)阶段间具有顺序性和依赖性(2)推迟实现的观点(典型特点) (3)质量保证的观点 7.可行性研究的任务目的:用最小的代价和尽可能短的时间判断问题是否值得去解 8.系统流程图:用来描述物理系统的工具。 9.数据流图(DFD):是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中 所经受的变换,即数据流图描绘数据在软件中流动和被处理的逻辑过程。 10.结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。 11.数据模型中包含3种互相关联的信息:(1)数据对象(2)数据对象的属性(3)数据对 象彼此间相互连接的关系 12.信息隐藏原理:应这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对 于不需要这些信息的模块来说,是不能访问的。 13.数据耦合:如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,那么 这种耦合称为数据耦合。 14.控制耦合:如果传递的信息中有控制信息(尽管有时这种控制信息以数据的形式出现), 则这种耦合称为控制耦合。 15.黑盒测试法:把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程,是在程 序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,黑盒测试又称为功能测试。 16.白盒测试法:把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理 算法。这种方法按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。白盒测试又称为结构测试。 17.软件测试步骤:(1)模块测试(2)子系统测试(3)系统测试(4)验收测试(5)平行 运行测试 18.软件可靠性:程序在给定的时间间隔内,按照规格说明书的规定成功运行的概率。 19.软件维护的定义:在交付使用后,为改正错误或满足新需要而修改软件的过程。 20.软件维护的种类:(1)改正性维护(2)适应性维护(3)完善性维护(4)预防性维护 21.提高软件可维护性的方法:(1)建立明确的软件质量标准(2)利用先进的软件技术和 工具(3)建立明确的质量保证制度(4)选择可维护的程序设计语言(5)改进软件的文档。 22.决定软件可维护性的因素:(1) 可理解性(2) 可测试性(3) 可修改性(4) 可移植性(5) 可重 用性 23.消息的构成:(1)接收消息的对象(2)消息选择符(也称为消息名)(3)零个或多个

软件工程导论复习

名词解释 数据词典——是描述数据信息的集合,它对数据流图中的各个元素按规定格式进行详细的描述和确切的解释,是数据流图的补充工具。 数据流图——他以图形的方式反映系统的数据流程 白盒测试——按照程序内部的结构测试程序,检验程序中的每条路径是否都能按预定要求正确工作。有两种测试法既逻辑覆盖测试法和路径测试法黑盒测试——按照程序的功能测试程序,检验与程序功能有关的输入、输出与程序执行是否正确。有四种方法既等价分类法、边界值分析法、错误猜测法和因果图法 完善性维护——为了适应用户业务和机构的发展变化而对软件的功能、性能进行修改、扩充的过程称为完善性维护。因为各种用户的业务和机构在相当长的时期内不可能是一成不变的,所以功能、性能的增加是不可避免的,而且这种维护活动在整个维护工作中所占的比重很大 软件可靠性——指在给定的时间内,程序按照规定的条件成功地运行的概率软件配置——是一个软件在生存周期内,他的各种形式、各种版本的文档与程序的总称 软件再工程——运用逆向工程、重构等技术,在充分理解原有软件的基础上,进行分解、综合、并重新构建软件,用于提高软件的可理解性、可维护性可复用性或演化性。 α测试——是在一个受控的环境下,由用户在开发者的“指导”下进行的的测试,由开发者负责记录错误和使用中出现的问题。 β测试——是由软件的最终用户(多个)在一个或多个用户场所来进行。由用户负责记下遇到的所有问题,包括主观认定的和真实的问题,定期向开发者报告,开发者在综合用户的报告之后进行修改,最后将软件产品交付给全体用户使用。 聚集关系——表示类或对象之间的整体与部分的关系 泛化关系——表示类或对象之间的一般与特殊的关系 内聚——一个模块内部各个元素彼此结合的紧密程度的度量。 耦合——一一个软件结构内不同模块之间互连程度的度量。 名词解释: 一章: 软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护方法不正确有关。 软件工程:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。 软件工程的7条基本原理:(1)用分阶段的生命周期计划严格管理;(2)坚持进行阶段评审;(3)实行严格的产品控制;(4)采用现代程序设计技术;(5)结果可以清楚地审查;(6)开发小组的人员应该少而精;(7)承认不断改进软件工程实践的必要性.

(完整)软件工程导论(第6版)知识点总结、复习课,推荐文档

复习课 --------酷爱YC 第一章 1、什么是软件危机,什么是软件工程 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。 软件工程:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件,并有效地维护它。 2、完整的软件配置由哪些内容组成 软件配置主要包括程序,文档和数据等成分。 3、软件生命周期分为哪3个时期和8个阶段,每个阶段的任务(工作)分别是什么,重要性如何 概括地说,软件生命周期由软件定义、软件开发和运行维护3个时期组成

1、软件定义(系统分析)。 软件定义时期的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。这个时期的工作通常又称为系统分析,由系统分析员负责完成。软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。 (1) 问题定义,确定系统要解决的问题是什么。成果:关于问题性质、工程目标和工程规模的报告。 (2) 可行性研究,确定问题是否有可用的、能行得通的解(包括:技术、经济、操作、社会等方面的可行性)。这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。成果:可行性研究报告。 (3) 需求分析,确定软件系统的必须实现的功能、必须达到的性能、必须满足的运行环境要求。系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。在需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的基础,因此必须准确完整地体现用户的要求。成果:软件需求规格说明书(SRS),内容包括:系统的逻辑模型;系统(子系统)的名称、功能描述、接口、基本数据结构、性能、设计需求、开发标准、验收原则等。 2、软件开发。 开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。

软件工程导论 复习资料

软件工程导论复习资料 软件工程导论是计算机科学与技术专业的一门重要课程,它主要介绍了软件工程的基本概念和原理,帮助学生了解软件开发过程中的关键问题和解决方法。本文将为大家提供一份软件工程导论的复习资料,希望能够帮助同学们更好地复习和掌握这门课程。 1. 软件工程概述 1.1 软件工程定义 软件工程是一门关于开发和维护大规模软件的学科,它涉及到软件开发的各个阶段和过程。软件工程的目标是通过系统化和可量化的方法来开发、维护和管理软件,以提高软件的质量、效率和可靠性。 1.2 软件生命周期 软件生命周期是软件开发过程中的一个重要概念,它包括需求分析、设计、编码、测试、部署和维护等阶段。了解软件生命周期的各个阶段和活动,对于理解软件开发过程的全貌和整体把控至关重要。

1.3 软件工程方法学 软件工程方法学是用于指导软件开发过程的一种方法体系,包括传统的瀑布模型、敏捷开发方法、迭代开发方法等。通过学习不同的软件工程方法学,可以使软件开发过程更加有序、高效。 2. 需求工程 2.1 需求定义和分类 需求工程是软件开发过程中的第一个阶段,它主要涉及到需求的定义、分析和规范化等活动。了解需求的定义和分类能够帮助我们更好地理解用户的需求,从而制定出更准确的软件需求规格说明书。 2.2 需求获取和分析 需求获取是收集用户需求信息的过程,需求分析是将这些需求信息进行过滤、分类和分析的过程。在需求获取和分析阶段,我们需要使用一些常见的工具和技术,例如面谈、问卷调查、用例图等。

2.3 需求规格说明书 需求规格说明书是对系统需求进行详细描述和规范的文档,它包括功能需求、非功能需求、性能需求等内容。编写清晰、准确的需求规格说明书是软件开发过程中的关键一步,它对于后续的设计和编码工作具有重要的指导作用。 3. 软件设计 3.1 软件设计基础 软件设计是将需求转化为软件结构的过程,它包括模块化设计、面向对象设计、数据结构设计等。掌握软件设计的基础知识,能够帮助我们合理划分系统的功能模块,提高软件的可维护性和可扩展性。 3.2 软件设计原则 软件设计原则是在软件设计过程中应该遵循的一些准则和规范,例如单一职责原则、开闭原则、迪米特法则等。了解这些设计原则,可以帮助我们编写出结构清晰、易于理解和维护的软件代码。

软件工程导论复习题含答案

软件工程导论复习题含答案 软件工程习题集 第1章概述 (一)单项选择题 1.“软件危机”产生的主要原因是(a)。 a.软件日益巨大 b.开发方法不当 c.开发人员编写程序能力差 d.没保护不好软件2.软件就是一种(b)性工业产品。 a.理论 b.科学知识(或逻辑) c.消耗 d.体力 3.需求分析是在(b)进行的。 a.用户 b.用户和分析设计人员之间 c.开发人员内部4.软件的主要结构和功能就是在(a)阶段同意的。 a.分析设计 b.编程 c.测试 d.维护 5.软件就是计算机系统中与硬件相互依存的另一部分,它的组成部分就是(d)。 d.使用和维护人员间 a.程序、数据b.程序、文档c.程序d.程序、数据、文档 6.在软件工程时期,决定软件质量的主要因素是(a) a.管理水平b.个人程序技术c.小组技术水平d.硬件的发展 7.在软件开发模型中,提出最早、应用最广泛的模型是(a)。 a.瀑布模型 b.喷泉模型 c.增量模型 d.螺旋模型 8.瀑布模型把软件生存周期划分为软件定义、软件开发与(c)三个阶段,而每一阶段又可分为若干更小的阶段。 a.详细设计 b.可行性分析 c.运转及保护 d.测试与排错 9.计算机辅助软件工程,简称(d)。 a.sa

b.sd c.sc d.case 10.软件危机是软件产业化过程中出现的一种现象,下述现象中:(c)是其主要表现。 ①软件须要快速增长难以满足用户。②软件开发成本提升。③软件开发进度难以掌控。 ④软件质量难于确保。a.③和④ b.③和④ c.全部 d.①、②和③ 11软件工程的发生主要就是由于(c)。 a.程序设计方法学的影响c.软件危机的出现 b.其他工程科学影响d.计算机的发展 12、软件生成周期模型有多种,下列选项中,(c)不是软件生存周期模型。a.螺旋模 型b.增量模型c.功能模型d.瀑布模型 (二)简答题 1.软件产品的特点是什么? 2.软件生产的发展经历了哪几个时代?各有何特征? 3.软件危机的概念、表现形式、 产生原因、化解途径4.详述主要的软件生存期模型(或软件开发模型)。 5.简述瀑布模型的阶段划分和各阶段的主要任务以及瀑布模型存在的问题。 第2章软件可行性研究 (一)单项选择题 1.在软件的可行性研究中经常从相同角度对系统展开可行性研究,其中从功能角度对 系统展开研究属(b)的研究。 a.经济可行性 b.技术可行性 c.操作可行性 d.法律可行性2.下列不属于成本-效益分 析的度量指标是(c)。 a.货币的时间价值 b.投资回收期 c.性质因素 d.纯收入3.软件可行性研究实质上就是 必须展开一次(a)需求分析、设计过程。 a.简化、压缩的 b.详细的 c.彻底的 d.深入的4.一个项目是否开发,从经济上来说是 否可行,归根结底是取决于(a)。 a.成本估计

软件工程导论重点内容

软件工程导论重点内容 桃园文印室 第一章软件工程概述 重点掌握的内容:软件和软件工程的基本概念一.什么是软件? 1.满足功能要求和性能的指令或计算机程序集合; 2.处理信息的数据结构; 3.描述程序功能以及程序如何操作和使用所要求的文档;软件的特点: 软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。 软件是通过人们的智力活动,把知识与技术转换成信息的一种产品,是在研制、开发 中被创造出来的 在软件运行和使用的期间,没有硬件那样的机械磨损、老化问题 软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性 软件的开发至今尚未完全摆脱手工的开发方式软件的开发费用越来越高,成本相当昂贵。二.软件危机以及产生软件危机的原因? 1.软件开发生产率提高的速度,远远跟不上计算机迅速普及的趋势。软件产品“供不 应求”。 2.软件成本在计算机系统总成本中所占的比例逐年上升。 3.软件开发人员和用户之间的信息交流往往很不充分,用户对“已完成的”的软件系 统不满足的现象经常发生。 4.软件产品的质量不容易保证。 5.软件产品常常是不可维护的。 6.软件产品的重用性差,同样的软件多次重复开发。 7.软件通常没有适当的文档资料。 产生软件危机的原因可归结为两个重要的方面:软件生产本身存在的复杂性;软件 开发所使用的方法和技术。三、软件危机 1、软件危机定义:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列 严重问题。 2、软件危机的两个主要问题:如何开发软件,以满足对软件日益增长的需求;如何 维护数量不断膨胀的已有软件。

3、软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。 (2) 用 户对“已完成的”软件系统不满意的现象经常发生。 (3) 软件产品的质量往往靠不住。(4) 软件常常是不可维护的。 1 计算机科学学院软件工程(二)班软件工程导论复习资料2 星光二班 桃园文印室 (5) 软件通常没有适当的文档资料。 (6) 软件成本在计算机系统总成本中所占的比例逐年上升。 (7) 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。软 件工程 1、软件工程定义:软件工程是指导计算机软件开发和维护的一门工程学科。采用工 程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术 和当前能够得到的最好的技术方法结合起来,以经济地、高效的开发出高质量的软件并有 效地维护它,这就是软件工程。 软件工程准则可以概括为7条基本原则:用分阶段的生命周期计划严格管理;坚持 进行阶段评审实行严格的产品控制采用现代程序设计技术应能清楚地审查结果合理安 排软件开发小组的人员承认不断改进软件工程实践的必要性 3、软件工程方法学,三要素:方法、工具和过程 4、软件生命周期(概念、三时期,八阶段) 软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成。软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。软件开 发时期分为4阶段:总体设计、详细设计、编码和单元测试、综合测试 五、软件开发模型:软件开发模型是跨越整个软件生存周期的系统开发、运作、维护 实施的全部工作和任务的结构框架。 1)瀑布模型 瀑布模型即生存周期模型,由B.M.Boehm提出,是软件工程的基础模型。其核心思想 是按工序将问题化简,将功能的实现与设计分开,便于分工协作。采用结构化的分析与 设计方法,将逻辑实现与物理实现分开。特点 阶段的顺序性和依赖性(规范化)推迟实现的观点(系统化)质量保证(阶段评审)存在问题

软件工程导论复习重点总结很全(第六版)

软件工程导论复习重点总结很全(第六版) 软件工程导论复习重点总结很全(第六版) 软件工程是一门研究如何以系统化的、可管理的和可维护的方式来 构建高质量的软件的学科。在软件工程导论中,我们学习了软件开发 的基本概念、原理和方法。本文将对软件工程导论的重点内容进行总结,帮助读者巩固所学知识,为学习和工作提供帮助。 1. 软件工程概述 软件工程的定义、目标和原则;软件生命周期和过程模型;软件开 发的重要性和挑战;软件工程中的质量保证和风险管理。 2. 软件需求工程 软件需求的定义和分类;需求获取、分析和建模;需求验证和确认;需求变更和配置管理。 3. 软件设计 软件设计原则和方法;面向对象设计和结构化设计;软件架构设计;设计模式的应用。 4. 软件测试与调试 软件测试的概念和目的;测试策略和技术;测试用例的设计和执行;测试评估和管理;软件错误调试和修复。 5. 软件项目管理

软件项目管理的基本概念和流程;项目计划和进度管理;团队组织 和沟通;风险管理和变更管理;质量管理和配置管理;软件工程伦理 与法规。 6. 软件开发过程 软件开发过程模型的选择和应用;瀑布模型、迭代模型和敏捷开发 等常用模型的特点和比较;敏捷开发方法的原理和实践。 7. 软件工具与环境 软件开发工具的选择和使用;集成开发环境、版本控制工具、测试 工具和调试工具等的功能和特点;软件工程中的自动化工具和技术。 8. 软件工程的前沿技术 软件工程的新兴技术和趋势;人工智能、大数据、云计算等技术在 软件开发中的应用;软件工程的创新与创业。 通过对上述主要内容的学习和理解,我们可以全面掌握软件工程导 论的核心知识和方法。在今后的学习和实践中,我们应该注重理论与 实际的结合,不断提高自己在软件开发和项目管理方面的能力。只有 不断学习和实践,我们才能成为优秀的软件工程师,为社会和企业创 造更大的价值。 总结:软件工程导论是软件工程领域中的重要基础课程,通过对软 件开发过程和管理原理的学习,我们可以掌握软件工程的基本概念、 原则和方法。在软件工程导论的学习中,我们应该注重理论与实践的 结合,不断提高自己的实际操作能力。相信通过对本文的阅读和理解,

软件工程导论复习资料解答.doc

B.需求 D.工程 B.管理性 D.需求分析 软件工程导论复习题汇总 -、选择题 1. 软件重用的单位是. A. 软件模块 B.功能 C.系统 D.语句 2. 软件生存周期借用了 中产品生存周期的概念。 A. 计算机科学 C.数学 3. 项目开发计划是一 D 文档。 A. 技术性 C.设计 4. 在结构化分析(SA)中,C 与数据流图共同构成了系统的逻辑模型,是需 求规格说明 书的主要组成部分。 A. 模块图 B. E ・R 图 C.数据字典 D.程序流程图 5. 为了提高模块的独立性,模块之间最好是 。 A.数据耦合 B.控制耦合 C.公共耦合 D.内容耦合 6. 对一个开始是模糊的模块进行处理过程分解时,下面说法错误的是 o A. 用顺序方式对过程分解,确定各部分的执行顺序 B. 用选择方式对过程分解,确定某个部分的执行条件 C. 用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件 D. 对处理过程仍然模糊的部分反复使用循环方式对过程进行分解 7. 软件测试的关键问题是—o A.如何选择测试用例 B.如何采用综合策略 C.如何验证程序的正确性 D.如何组织软件评审 8. 软件生存期的 工作与软件的可维护性有密切的关系。 A.详细设计阶段 B.编码阶段 C.测试阶段 D.每个阶段 9. 增量模型属于一种 模型。 A.整体开发 B.非整体开发 C.较早产生工作软件 D.灵活性差 10. 下列说法正确的是一 D 。 A. 动态模型指出发生了什么 B. 对象模型确定什么时候发生 C. 功能模型确定发生的客体 D. 动态模型描述的系统属性是触发事件、事件序列、状态、事件与状态的组织 11. 用类库这种机制和结构来实现— 中的信息共享。 A.同一应用 B.不同应用 C.同一个类 D.不同类

软件工程导论复习重点总结--很全(第六版)

第1章 软件工程学概述 1.1 软件危机 1.1.1 软件危机的介绍 软件危机(软件萧条、软件困扰):是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 软件危机包含下述两方面的问题: 如何开发软件,满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。 软件危机的典型表现: (1)对软件开发成本和进度的估计常常很不准确; (2)用户对“已完成的”软件系统不满意的现象经常发生; (3)软件产品的质量往往靠不住; (4)软件常常是不可维护的; (5)软件通常没有适当的文档资料; (6)软件成本在计算机系统总成本中所占的比例逐年上升; (7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 1.1.2 产生软件危机的原因 (1)与软件本身的特点有关 (2)与软件开发与维护的方法不正确有关 1.1.3 消除软件危机的途径 对计算机软件有正确的认识。 认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研究探索。 应该开发和使用更好的软件工具。 总之,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。 1.2 1.2.1 软件工程的介绍 软件工程:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。(期中考) 软件工程的本质特性: 软件工程关注于大型程序的构造 软件工程的中心课题是控制复杂性 软件经常变化 开发软件的效率非常重要 和谐地合作是开发软件的关键 软件必须有效地支持它的用户 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品 1.2.2 软件工程的基本原理

软件工程导论期末复习大纲

软件工程导论期末复习大纲 第一章软件工程概述软件=程序+数据+文档 1.软件危机: 定义:计算机软件的开发和维护过程中所遇到的一系列严重问题; 表现:软件开发的成本和进度估计常常不准确;用户对“已完成的”软件系统不满意的现象经常发生;软件产品的质量往往靠不住;软件常常是不可维护的;软件通常没有适当的文档资料;软件产品供不应求,跟不上计算机普及速度; 产生原因:与软件本身的特点;与关软件开发与维护的方法不正确有关; 解决办法:消除各自为阵的理念;使用在实践中总结出来的成功的经验,探索更有效地技术和方法;开发和使用更好的软件工具; 2.软件工程: 定义:指导计算机软件开发和维护的一门工程学科; 七条基本原理:用分阶段的生命周期计划严格管理;坚持进行阶段评审;实行严格的产品控制;采用现代程序设计技术;结果应能清楚地审查;开发小组的人员应该少而精;承认不断改进软件工程实践的必要性; 3.软件工程方法学: 定义:通常把在软件生命周期全过程中使用的一整套技术方法的集合; 两种方法学:传统方法学、面向对象方法学; 优点 传统方法学:把软件生命周期划分成若干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,降低了整个软件开发过程的困难程度;在每个阶段都采用科学的管理技术和良好的技术方法,每个阶段都从技术和管理两个方面进行严格审查,保证软件的质量;提高了软件的可维护性,提高开发成功率; 面向对象方法学:符合人们通常的思维方式,提高了软件的可理解性;对象是相对独立的实体,重用性好;可维护性好; 三种要素:方法、工具、过程; 4.软件生命周期: 软件定义系统分析:问题定义、可行性研究、需求分析; 软件开发:总体设计+详细设计——系统设计、编码和单元测试、+测试——系统实现; 运行维护:软件维护; 5.软件过程: 生命周期模型:瀑布模型快速原型模型增量模型螺旋模型喷泉模型 RUP模型优点 瀑布模型:可强迫开发人员采用规范的方法,严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证;它基本上是一种文档驱动的模型;

软件工程导论复习重点总结 很全(第六版)

第1章 第2章 第11章软件工程学概述1.1 软件危机 1.1.1 软件危机的介绍 软件危机(软件萧条、软件困扰):是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 软件危机包含下述两方面的问题: 如何开发软件,满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。 软件危机的典型表现: (1)对软件开发成本和进度的估计常常很不准确; (2)用户对“已完成的”软件系统不满意的现象经常发生; (3)软件产品的质量往往靠不住; (4)软件常常是不可维护的; (5)软件通常没有适当的文档资料; (6)软件成本在计算机系统总成本中所占的比例逐年上升; (7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 1.1.2 产生软件危机的原因 (1)与软件本身的特点有关 (2)与软件开发与维护的方法不正确有关 1.1.3 消除软件危机的途径 对计算机软件有正确的认识。 认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研究探索。 应该开发和使用更好的软件工具。 总之,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。 1.2 1.2.1 软件工程的介绍 软件工程:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。(期中考) 软件工程的本质特性: 软件工程关注于大型程序的构造 软件工程的中心课题是控制复杂性 软件经常变化 开发软件的效率非常重要 和谐地合作是开发软件的关键 软件必须有效地支持它的用户 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品

(完整版)软件工程导论复习重点总结很全(第六版)(精)

第1章软件工程学概述 1.1 软件危机 1.1.1 软件危机的介绍 软件危机(软件萧条、软件困扰:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 软件危机包含下述两方面的问题: 如何开发软件,满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。 软件危机的典型表现: (1对软件开发成本和进度的估计常常很不准确; (2用户对“已完成的”软件系统不满意的现象经常发生; (3软件产品的质量往往靠不住; (4软件常常是不可维护的; (5软件通常没有适当的文档资料; (6软件成本在计算机系统总成本中所占的比例逐年上升; (7软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 1.1.2 产生软件危机的原因 (1与软件本身的特点有关 (2与软件开发与维护的方法不正确有关

1.1.3 消除软件危机的途径 对计算机软件有正确的认识。 认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研究探索。 应该开发和使用更好的软件工具。 总之,为了解决软件危机,既要有技术措施(方法和工具,又要有必要的组织管理措施。 1.2 1.2.1 软件工程的介绍 软件工程:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。(期中考 软件工程的本质特性: 软件工程关注于大型程序的构造 软件工程的中心课题是控制复杂性 软件经常变化 开发软件的效率非常重要 和谐地合作是开发软件的关键 软件必须有效地支持它的用户

软件工程导论

软件工程导论(总46页)本页仅作为文档页封面,使用时可以删除 This document is for reference only-rar21year.March

软件工程复习资料 一、名词解释: 1.软件:是能够完成预定功能和性能的可执行的计算机程序和使程序正常 执行所需要的数据,加上描述程序的操作和使用的文档。 2.软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问 题,长期找不到解决这些问题的方法,使问题逐渐积累起来,形成了尖 锐的矛盾,从而导致了软件危机。 3.软件生命周期:一个软件从开始计划起,到废弃不用止。 4.数据词典:是对数据流图中的每个数据规定一个定义条目,并把所有条 目按一定的次序排列起来,以便查阅。 5.数据流图:用于描述系统中数据是如何流动和变换的,以及描述使数据 流进行变换的功能。 6.加工说明:是对DFD中每个加工所作的说明。 7.SRS:(Software Requirement Specification)软件需求说明,是软 件开发人员在分析阶段需要完成的文档。 8.信息隐藏:是指在设计和确定模块时,使得一个模块内包含的信息(过 程或数据),对于不需要这些信息的其他模块来说是不能访问的。 9.模块:是一个拥有明确定义的输入、输出和特性的程序实体。 10.模块化设计:把大型软件按照规定的原则划分成一个个较小的、相对独 立但又相互关联的模块。 11.模块的作用范围:受这个模块中判定影响的模块。 12.SA:即结构化分析,是一种面向数据流的需求分析方法,结构化分析 模型中主要的描述工具包括:DFD、DD、加工逻辑等。 13.软件结构:是软件系统的模块层次结构,表示了软件的组成模块及其调 用关系和模块间接口。 14.结构图:又称SC图,是精确表达软件结构的图形表示方法。 15.内聚:是对软件内部各个成分的联系程度的度量。 16.耦合:是对一个软件结构内不同模块之间互连程度的度量。 17.IPO:输入、处理、输出图,描述模块的具体操作加工,结构图中的每一个模块均可以用一张IPO图来描述。 18.PDL:Program Design Language,一种过程设计的表达工具,用于描述过程设计。 19.测试用例:就是测试数据+期望结果。 20.纠错:找到错误的位置并纠正错误。 21.测试:为了发现程序的错误而执行程序的过程。 22.白盒测试:又称为结构测试。它将程序看成装在一个透明的盒子里,测试者完全知道程序的内部逻辑结构和处理过程。 23.黑盒测试:又称为功能测试。它将程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,它只检查程序功能是否能按规格说明书的规定正常使用,程序是否能接收输入数据并产生正确的输出信息。

相关主题
文本预览
相关文档 最新文档