当前位置:文档之家› 软件工程复习重点(很重要)

软件工程复习重点(很重要)

软件工程复习重点(很重要)
软件工程复习重点(很重要)

软件工程复习:

第一章:

软件危机软件工程的目标、内容、原则、面临的问题

请举例说明软件危机的一些表现,以及按照软件工程方法开发软件的意义所谓软件危机是指在计算机软件的开发和维护过程所遇到的一系列严重问题。

软件危机主要是指如何开发软件,怎样满足对软件日益增长的需求,如何维护数量不断膨胀的现有软件。

软件危机的表现:

1.对于软件开发的成本和进度的估计很不准确。

2.开发的软件产品不能满足完全满足用户需求。

3.开发的软件可靠性差。

4.软件通常没有适当的文档。

5.软件的可维护性差。

6.软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。

软件工程定义:将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。

软件工程由方法、工具和过程三部分组成。

软件工程内容:

1.结构化理论与方法。

2.模块技术与数据抽象。

3.软件测试与程序正确性证明。

4.软件分析与设计方法、工具与环境。

5.软件工程管理与质量评价。

软件工程的目标是在给定成本、进度的前提下,开发具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性

并满足用户需求的软件产品。

软件工程研究的主要内容是指软件开发技术和软件开发管理两方面。

软件工程的原则:抽象、信息隐藏、模块化、局部化、一致性、完整性和可验证性。

软件工程面临的问题:软件费用、软件可靠性、软件可维护性、软件生产率、软件重用。按照软件工程方法开发软件的意义:

软件工程方法是完成软件工程项目的技术手段。它支持项目计划和估算、系统和软件分析、软件设计、编码、测试和维护。软件工程使用的软件工具是人类在开发软件的活动中智力和体力的扩展和延伸,它自动或半自动地支持软件的开发和管理,支持各种软件文档的生成。软件工程贯穿于软件开发的各各环节。管理者在软件工程中,要对软件开发的质量、进度、成本进行评估、管理和控制,包括人员组织、计划跟踪与控制、成本估算、质量保证和配置管理等。

第二章:

软件生命周期瀑布模型、原型模型、增量模型

结构化开发方法,面向对象的开发方法:

题目示例:

开发一个制衣厂的生产管理系统,你会选择什么样的模型?为什么?

软件生命周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。划分为问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试和维护8

个阶段。

1.瀑布模型:以文档作为驱动,适合于需求很明确的软件项目开发的模型。严格1软件生

命周期各个阶段进行开发。在开发前均可完整、准确、一致和无二义性地定义其目标、功能和性能等,如编译系统、数据库管理系统和操作系统。

2.原型模型:利用原型法技术快速实现系统的初步模型,供开发人员用户进行交流,采用

逐步求精方法使原型逐步完善,避免在瀑布模型冗长的开发过程看不到产品锥形的现象。适合不能预先确切定义需求的软件开发,项目组成员不能很好协同配合、交流或通讯上存在问题的情况,要有快速建立系统模型的软件工具和环境。

3.增量模型:将整个软件一部分一部分地开发,在需求难以完全明确的情况下,快速分析

并构造一个小的原型系统,满足用户的某些要求后,使用户在使用过程中受其启发,逐步确定各种需求。增量构造模型、演化提交模型、快速原型模型。

结构化开发方法:总的指导思想是自顶向下、逐步求精。它是一种面向数据流的开发方法。它的基本原则是功能的分解和抽象。它是软件工程中最早出现的开发方法,特别适合于数据处理领域的问题。简单实用,应用较广,相应的支持工具较多,技术成熟。但它不适应于规模大以及特别复杂的项目,难以解决软件重用问题,难以适应需求变化的问题,难以彻底解决维护问题。

面向对象的开发方法:是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法。包括面向对象分析、面向对象设计和面向对象实现。

第三章:

可行性研究的主要任务和步骤:

任务:技术可行性、经济可行性、社会可行性、操作可行性。

步骤:系统定义、对于现行系统进行分析研究、导出新系统的逻辑模型、设计方案、推荐可行的方案、编写可行性研究报告。

第四章:

需求分析的任务和方法

需求分析阶段使用的工具。

需求分析难点:

数据流图数据字典。

请写出学生证的数据流条目。

给出一段文字说明,画出流程图。

需求分析是指开发人员要进行细致的调查分析,准确理解用户的需求。

需求分析的任务:问题明确定义、导出软件的逻辑模型、编写文档。

需求分析的方法:功能分析方法、结构化分析方法、信息建模方法、面向对象的分析。

需求分析的工具:1.数据流图和数据词典(结果化分析方法)

2.E-R图(面向对象的分析)

3.EAR(数据库系统的结构)

4.判定表、判定树、结构化语言

需求分析的难点:需求易变性、问题的复杂性、交流障碍、不完备性和不一致性。

数据流图(DFD)::描述系统的逻辑模型。箭头、圆、方框、双杠。P71

数据字典(DD):定义数据流图中的各个成分的具体含义。

符号=被定义为+与m..n界域(两个点)

学生证=姓名+学号+学院+卡号

学号=“0000000001”..“9999999999”

卡号=“000001”..“999999”

学院=[“计算机学院”|“建筑学院”|“。。”|…]

流程图:DFD

第五章:

耦合、内聚

变换分析和事务分析设计。

要求能根据流程图画出模块结构图。

模块:将需求分析的结构映射为模块,是软件结构设计的基础。

模块化:解决一个复杂问题时自顶向下逐层把软件系统划分为若干模块的过程。

模块的耦合:表示软件结构内不同模块之间相互依赖的紧密程度,是度量软件模块结构质量好坏的度量,是对模块独立性的之间衡量指标。

数据耦合、控制耦合、公共环境耦合、内容耦合。

模块的内聚:标志一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。

高内聚:功能内聚、信息内聚

中内聚:通信内聚、过程内聚

低内聚:时间内聚、逻辑内聚、偶然内聚

变换分析设计:数据流图到程序结构图的转换。

1.确定数据流图中的变换中心、逻辑输入和逻辑输出

2.设计软件结构的顶层和第一层

3.设计中、下层模块

4.设计的优化

事务分析设计:事务数据流图到程序结构的变换。

1.确定数据流图中的事务中心和加工路径

2.设计软件结构的顶层和第一层

3.进行事务结构中、下层模块的设计、优化等工作

根据数据流图画出模块结构图:输入,变换中心(主模块)、输出

了解对象、类、属性、服务、继承、多态性、主动对象的概念。

要求:能举例说明这些概念。

对象:是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和一组服务构成。

属性:用来描述对象静态特征的一个数据项。

服务:用来描述对象动态特征的一个操作序列。

特例:1.有属性,没有服务,如信息系统中的人员信息、物质信息

2.有服务,没有属性,如操作系统中的屏幕中断:disable()

类:类是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的对象描述,其内部包括属性和服务两个主要部分。一个对象又称做类的一个实例。属性:是一个类中对象所具有的数据值。一个属性应是纯数据值,而不是一个对象。名字、年龄和性别是人对象的属性。

服务:服务是一种功能或一种转换,它应用于类中对象使用。一个类中所有对象共享相同的服务。打开、关闭、隐藏和重新显示是在窗口类上的服务。

封装:是把对象的属性、服务结合成为一个独立的系统单位,并尽可能隐蔽对象的内部细节。继承:特殊类的对象拥有一般类的全部属性和服务,就是称做特殊类对一般类的继承。

如class E-DATE:public DA TE

单一继承把类组织成为树,多重继承把类组织成为有向无循环图。

消息:是向对象发出的服务请求,包含:提供服务的对象标识、服务标识、输入信息和回答信息。

多态性:是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得一个属性或服务在一般类及各个特殊类中具有不同的语

义。重载、动态绑定、类属。

主动对象:主动对象是一组属性和一组服务的封装体,其中至少有一个服务不需要接收消息就能主动执行。

一般-特殊结构:描述对象间继承关系

整体-部分结构:描述对象间组成关系

实例连接:描述对象间静态联系

消息连接:描述对象间动态联系

第八章:

了解建立模型在软件开发中的意义或作用。

软件开发需要模型解决以下问题:1.复杂的系统不能直接了解

2.模型是复杂系统早期抽象的重用结构

模型的目的:1.了解问题

2.介入的工作者相互沟通

3.找出错误

4.规划和设计

5.产生程序代码

了解面向对象的分析的主要工作步骤。

有哪些方法可以帮助我们发现对象?

发现对象:1.正确地运用抽象原则

2.策略与启发:考虑问题域、考虑系统边界、考虑系统责任

3.审查和筛选:舍弃无用的对象、对象的精简、推迟到OOD考虑的对象

4.识别主动对象

面向对象分析的工作步骤 1.发现对象

2.对象标识

3.定义属性

4.定义服务

第十章:

能举例说明整体-部分结构、一般特殊结构、实例连接、消息连接关系,以及如何在面向对象的语言中实现这些关系。

能从工作步骤、目的、最后的要建立的模型、工作中的难点等方面对面向对象的需求分析和面向结构的需求分析做一个比较。

整体-部分结构:如果对象a是对象b的一个组成部分,则b为a的整体对象,a为b的部分对象,并把b和a之间的关系称做整体-部分关系。

实现:

1.把整体对象之间的这个属性变量定义成指向部分对象的指针,或定义

成不分对象的对象标识,运行时动态创建部分对象,并使整体对象中

的指针或对象标识指向它。

2.用部分对象的类作为数据类型,静态地声明整体对象中这个代表部分

对象的属性变量。

一般-特殊结构:如果类A具有类B的全部属性和全部服务,而且具有自己特有的某些属性或服务,则A叫做B的特殊类,B叫做A的一般类。

实现:

OOA中通过一种继承机制实现这一功能,只需指明一个类是另一个类的

特殊类,继承机制将保证特殊类自动地拥有一般类的全部属性与服务。

实例连接:又称为链,表达对象之间的静态关系。所谓静态关系是指最终可通过对象属性来表示的一个对象对另一个对象的依赖关系。

实现:一般可用对象指针来实现。即在被连接的两个类中选择其中一个,在它的对象中设立一个指针类型的属性,用于指向另一个类中与它有连接关系的对象实

例。

消息连接:描述对象之间的动态联系,即若一个对象在执行自己的服务时,需要请求另一个对象为它完成某个服务。消息连接是有向的,从消息发送者指向消息接收者。

第十三章

根据书中的人机界面设计准则,提出对某一个具体问题界面设计说明。比如教学管理系统中的学生成绩录入。

第十六章:

要求能对MCCALL的质量模型做一个简单的介绍。

如果你是一个经理,负责提高一个较大型的软件公司的软件开发质量(考试的时候具体提出有哪些问题,不如总是不能做好需求,或者不能按照进度完成等),可以做哪些工作?

McCall的质量模型认为软件质量由12个特性组成,分别面向软件产品的运行、修正、转移。12个特性:1.正确性 2.可靠性 3.效率 4.完整性、安全性 5.可使用性 6.可维护性

7.可测试性8.灵活性9.可移植性10.复用性11.互连性

McCall认为,软件质量要素是软件质量特征,软件质量属性是软件质量的评价标准,评价准则还需要定量的度量。质量要素、评价准则和度量构成了McCall的三层质量度量模型。

软件质量保证任务:1.正确定义用户要求

2.技术方法的应用

3.提高软件开发的工程能力

4.软件的复用

5.发挥每个开发者的能力

6.组织外部力量协作

7.排除无效劳动

8.提高计划和管理质量

软件质量管理小组

技术评审与审查

第十七章:

软件测试的目的。使用白盒或者黑盒设计测试用例。

能够从测试的阶段、测试用例的设计方法、测试的错误类型等方面对单元测试、集成测试、确认测试做一个比较。

软件测试的目的:根据软件开发各阶段的文档资料和程序的内部结构,精心设计一组测试例它们能够系统地揭示不同类型的错误,并且耗费的时间和工作量最小。

黑盒测试:把被测试对象看出一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的界面上进行测试,用来证实软件功能的可操作性,检查程序是否满足

功能要求,是否很好地接收数据,并产生正确的输出。

白盒测试:把测试对象看作一个透明的盒子,测试人员能了解程序的内容结构和处理过程,以检查处理过程为目的,对程序中尽可能多的逻辑路径进行测试,在所有的点检

验内部控制结构和数据结构是否和预期的相同。

单元测试:1.测试的内容:模块接口、局部数据结构、重用的执行路径、错误处理、边界件

2.测试的方法:为被测试模块设计驱动模块和桩模块

集成测试:1.目的:在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。单个模块能正常工作,组装后不见得仍能正常工作。

2.方法:自底向上测试、自顶向下测试

确认测试:1.目的:检查软件的功能与性能是否与需求说明书中确定的指标相符合。需求说明是确认测试的基础。

2.方法:在模拟环境下运用黑盒测试方法,由专门测试人员和用户参加的测试。

第十八章:

了解软件维护的流程分类和流程。了解软件维护一般会碰到什么样的困难?

软件维护的流程分类:非结构化维护、结构化维护

流程:1.指导维护申请报告

2.审查申请报告并批准

3.进行维护并做详细记录

4.复审

维护的困难性:根本原因是缺乏和软件有关的文档。缺乏文档有事不按照科学的软件工程方法开发软件造成的。

1.读懂别人的源程序是困难的。

2.文档的不一致性。

3.软件开发和软件维护在人员和时间上的差异。

4.软件维护不是一项具有吸引力的工作。

第十九章:

举例说明风险分析对软件项目成功的重要性。

风险分析实际上是4个不同的活动:风险识别、风险估算、风险评价、风险驾驭

风险识别:项目风险、技术风险、商业风险

风险估计:估计每一种风险发生的可能性和概率

风险评价:进一步检验在风险估计时所得到的估计的正确性,尝试对已暴露的风险进行优先排队,并着手考虑控制和消除可能出现风险的方法。

风险驾驭:利用某些技术,如原型化、软件自动化、软件心理学、可靠性工程学以及某些项目管理方法等设法避开或转移风险。

软件工程知识点总结

软件工程知识点总结-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

一、软件工程概述 1.软件特点 软件:计算机程序、方法、规则、相关的文档资料,以及计算机程序运行时所需要的数据。 软件是计算机系统中的逻辑成分,具有无形性。其主要内容包括:程序、配置文件、系统 文档、用户文档等。 2.软件分类 (1)按功能划分:系统软件、支撑软件、应用软件。 (2)按工作方式划分:实时处理软件、分时处理软件、交互式软件、批处理软件。 (3)按规模划分:微型软件、小型软件、中型软件、大型软件。 (4)按服务对象划分:通用软件、定制软件。 3.软件发展阶段 (1)程序设计时代(20世纪50年代)。 (2)程序系统时代(20世纪60年代)。 (3)软件工程时代(20世纪70年代起)。 4.软件危机 (1)危机现象:软件开发成本与进度估计不准确,软件产品与用户要求不一致,软件产品质量可靠性差,软件文档不完整不一致,软件产品可维护性差,软件生产率低。 (2)危机原因:软件的不可见性,系统规模庞大,生产工程化程度低,对用户需求关心不 够,对维护不够重视,开发工具自动化程度低。 5.软件工程 软件工程:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必须的相关文件资料。 软件工程是一门关于软件开发与维护的工程学科,它涉及软件生产的各个方面,能够为经济、高效地开发高质量的软件产品提供最有效的支持。 (1)工程方法:结构化方法、JSD方法、面向对象方法。 (2)软件工具:具有自动化特征的软件开发集成支撑环境。 (3)工程过程:在软件工具支持下的一系列工程活动,基本活动是软件定义、软件开发、 软件验证、软件维护。 (4)工程管理:项目规划,项目资源调配,软件产品控制。 (5)工程原则:分阶段生命周期计划,阶段评审制度,严格的产品控制,采用先进的技术, 成果能清楚地审查,开发队伍精练,不断改进工程实践。 (6)工程目标:开发成本较低,软件功能能满足用户需求,软件性能较好,软件可靠性高, 软件易于使用、维护与移植,能按时完成开发任务并及时交付使用。 (7)工程文化:包括工程价值、工程思想和工程行为三个方面的内容。

软件工程期末考试重点

软件工程期末考试重点 《软件工程》期末复习重点 第一章软件工程 1. 什么是软件工程。 A.把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;b.研究a中提到的途径。2. 软件工程的三要素:方法、工具和过程。 第二章软件过程 1. 软件生命周期分为哪几个阶段?每个阶段的基本任务是什么? a.软件定义:确定软件开发工程必须完成的总目标问题定义:要解决的问题是什么 可行性研究:上阶段所确定的问题是否有可行的解决办法?需求分析:目标系统必须做什么 b.软件开发:具体设计和实现在前一个时期定义的软件。概要设计:怎样宏观地解决问题 详细设计:应如何具体地实现这个系统 编码和单元测试:写出正确的、易理解、易维护的程序综合测试:通过各类型测试使达到预定要求。 c.运行维护:修正错误,使软件持久地满足用户需要。改正性维护:诊断和改正使用中的错误适应性维护:修改

以适应环境变化 完善性维护:根据用户的要求改进和扩充以完善预防性维护:修改以为将来的维护作准备 2. 常用的过程模型有哪些?各自的特点及不足。如:瀑布模型的不足是不能适应需求的动 态变更。 A.瀑布模型 特点: 可强迫开发人员采用规范化的方法。严格地规定了每个阶段必须提交的文档。要求每个阶段交出的所有产品都必须是经过验证的。 缺点:太理想化,于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。如果需求规格与用户需求之间有差异,就会发生这种情况。只适用于项目开始时需求已确定的情况。 B.快速原型模型 特点:快速 软件产品开发基本上是线性顺序进行。降低了规格说明文档变化的可能性。减少了后续阶段错误的可能性。 c.增量模型 1 优点: 人员分配灵活,刚开始不用投入大量人力资源。

软件工程重点整理

软件工程重点 (吐血整理——林新发) 红色的是重点中的重点 前面数字是课本页码 第一章概论 1 什么是计算机软件 计算机软件指计算机系统中的程序及其文档 3软件的特点 (1)软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算 (2)软件是被开发的或被设计的,它没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大 (3)软件的使用没有硬件那样的机械磨损和老化问题 4软件的分类 (1)系统软件(如操作系统、编译程序等)、 (2)支持软件(如数据库管理系统、网络软件、软件开发环境等)、 (3)应用软件(如实时软件、嵌入式软件、科学和工程计算软件、事务处理软件、人工智能软件等) 6软件工程定义 软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程 7生存周期 软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存周期 软件生存周期大体可分为如下几个活动:计算机系统工程、需求分析、设计、编码、测试、运行和维护 12能力成熟度模型CMM(了解一下) 初始级、可重复级、已定义级、已管理级、优化级 18瀑布模型(重) 系统工程、需求分析与规约、设计与规约、编码与单元测试、集成测试系统测试、运行与维护 第二章系统工程 41系统工程的任务 (1)识别用户的要求,确定待开发软件的总体要求和范围,

(2)系统建模和模拟 (3)进行成本估算,做出进度安排 (4)进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中作出选择。 (5)生成系统规格说明书 42可行性分析 (1)经济可行性(成本、效益、货币的时间价值、投资回收期、纯收入) (2)技术可行性(风险分析、资源分析、技术分析) (3)法律可行性 第三章需求工程 48软件需求 指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。 包括:功能需求、性能需求、用户或人的需求、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全保密要求、可靠性需求、软件成本消耗与开发进度需求、其他非功能需求 50需求获取方法与策略(重) 建立顺畅的通信途径、访谈与调查、观察用户操作流程、组成联合小组、用况 51 图3.2 53 创建用况模型的主要步骤 (1)确定谁会直接使用该系统,即参与者(Actor) (2)选取其中一个参与者 (3)定义该参与者希望系统做什么,参与者希望系统作的每件事将成为一个用况 (4)对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用况的基本过程 (5)描述该用况的基本过程 54需求分析原则(重) 1.必须能够表示和理解问题的信息域 2.必须能够定义软件将完成的功能 3.必须能够表示软件的行为(作为外部事件的结果) 4.必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节

软件工程问题整理版

1、软件危机定义、发生原因、常见表现,如避免软件危机? (1)软件危机定义:课本Page 8(开发和维护过程) (2)发生原因、常见表现:课本Page 8-9,练习册Page 1 (3)如避免:Page 10 (采用软件工程的法) 答案(由于大部分答案参考ppt,故仅供参考,下同) 软件危机定义:是指在计算机软件的开发和维护过程中所遇到的一系列重问题。 表现在: (1)对于软件开发的成本和进度的估计很不准确。 (2)开发的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生。 (3)开发的软件可靠性差。 (4)软件通常没有适当的文档。 (5)软件的可维护性差。 (6)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。 原因: (1)软件的规模愈发庞大; (2)软件开发的管理困难。 (3)成功的软件开发经验没被很好地应用。 (4)软件开发和维护中千金错误认识和法的形成可以归结与计算机发展早期软件开发的个体化特点。 (5)软件开发技术落后。 (6)生产式落后。 (7)开发工具落后,生产率提高缓慢。 如避免(参考,可以自己总结): 从软件开发的工程化法入手,即用现代工程的概念原理、技术和法去指导软件的开发、管理和维护,这就是软件工程思想和法。具体措施: (1)使用好的软件开发技术和法; (2)要有良好的组织、密的管理,各类人员协同配合,共同完成任务; (3)使用好的软件开发工具,提高软件生产率; (4)建立格的文档资料,重视软件开发过程的阶段评审。 2、软件生命期模型(软件生命期?)的组成,每个阶段的容? (1)组成:Page 21 (2)容:Page 22—25) 答案: 软件生存期定义: 一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存期。 软件生存期一般可分为以下阶段: (1)问题定义(2)可行性研究(3)需求分析(4)概要设计(总体设计) (5)详细设计(6)编码(7)测试(8)维护 也可以分为四个大的阶段:软件分析、软件设计、编码与测试、运行与维护

软件工程期末复习知识点整理

复习整理 、绪论 1. 软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 是指导计算机软件开发和维护的一门工程学科;采用工程化的原理与方法对软件进行计划、开发和维护;把证明正 确的管理技术和最好技术综合运用到软件开发中;研究经济地开发岀高质量的软件方法和技术;研究有效维护软件 的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。 ⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1)过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构 +算法;着眼于程序的过程和基本控制结构,粒度最小 (2)面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对 象,粒度比较大 (3)基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合 整个领域的类对象,粒度最大 二、软件生存周期与软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动 定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期 目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段, 给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。 主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护( P19) 2、软件生命周期划分为哪几个阶段 软件生命周期分为三个时期八个阶段: 软件定义:问题定义、可行性研究; 软件开发:需求分析、概要设计、详细设计、编码、测试; 软件运行:软件维护

软件工程知识点总结

软件工程(简要知识点) 一、. 软件过程五个模型对比(瀑布模型、快速原型、增量、螺旋、喷泉模型) 二、可行性研究: 1、任务:用最小的代价在尽可能短的时间内确定问题是否能够解决。 2、四个方面:技术、经济、操作可行性、法律 3、数据流图四种成分:1、源点/终点2、处理3、数据存储 4、数据流 三、需求分析: 1、任务:确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要求。 2、结构化方法就是面向数据流自顶向下逐步求精进行需求分析的方法。 3、实体联系图:1、数据对象2、属性3、联系(1:1、1:N、M:N) 四、总体设计: 1.任务:回答“概括的说,系统应该如何实现”,用比较抽象概括的方式确定系统如何完成预定的任务,也就是说应该确定系统的物理配置方案,并且进而确定组成系统的每个程序结构。 2.系统设计阶段(确定系统具体实施方案)、结构设计阶段(确定软件结构) 3.模块独立:内聚和耦合 4. 耦合表示一个软件结构内各个模块之间的互连程度,应尽量选用松散耦合的系统

5. 内聚(Cohesion): 一个模块内各元素结合的紧密程度 6.面向数据流的设计方法:变换流和事务流 五、详细设计: 1.任务:确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计工作应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 2.过程设计的工具(程序流程图、盒图、PAD图、判定表、判定树) 七、测试: 1、单元测试:又称模块测试。每个程序模块完成一个相对独立的子功能,所以可以对该模块进行单独的测试。由于每个模块都有清晰定义的功能,所以通常比较容易设计相应的测试方案,以检验每个模块的正确性。 2、集成测试: 在单元测试完成后,要考虑将模块集成为系统的过程中可能出现的问题,例如,模块之间的通信和协调问题,所以在单元测试结束之后还要进行集成测试。这个步骤着重测试模块间的接口,子功能的组合是否达到了预期要求的功能,全程数据结构是否有问题等。 3、白盒测试技术(逻辑覆盖、基本路经测试)

软件工程(清华钱乐秋版)期末复习重点

1、什么是软件工程 在《计算机科学技术百科全书》中软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。 2、软件生存周期分哪几个阶段分别简述各个阶段的任务。 答:软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。 A 计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机 系统元素之间的关系,进行成本估算,做出进度安排,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选择。 B 需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面 等要求,生成软件需求规约。 C 软件设计只要解决待开发软件“怎么做”的问题。软件设计通常可分为系统设计和详细设 计。系统设计的任务是设计软件系统的体系结构,包括软件系统的组成成分、各成分的功能和接口、成分间的连接和通信,同时设计全局数据结构。详细设计的任务是设计各个组成成分的实现细节,包括局部数据结构和算法等。 D 编码阶段的任务是用某种程序设计语言,将设计的结果转换为可执行的程序代码。 E测试阶段的任务是发现并纠正软件中的错误和缺陷。测试主要包括单元测试、集成测试、确认测试和系统测试。 F软件完成各种测试后就可交付使用,在软件运行期间,需对投入运行的软件进行维护,即可发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界环境的变化等情况出现时,对软件进行修改。 3、简述各类软件过程模型的特点。 答:典型的软件过程模型有:瀑布模型、演化模型(增量模型、原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式方法模型等。 A瀑布模型中,上一阶段的活动完成并经过评审后才能开始下一阶段的活动,其特征是: 接受上一阶段活动的结果作为本阶段活动的输入; 依据上一阶段活动的结果实施本阶段应完成的活动; 对本阶段的活动进行评审; 将本阶段活动的结果作为输出。 B 增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软 件的一个可发布的增量版本,后一个版本是对前一个版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。 C 原型方法从软件工程师与客户的交流开始,其目的是定义软件的总体目标,标识需求。 然后快速制定原型开发的计划,确定原型的目标和范围,采用快速设计的方式对其建模,并构建模型。被开发的原型应交付给客户使用,并收集客户的反馈意见,这些反馈意见可在下

软件工程知识点汇总

软件工程知识点汇总 1 软件工程、软件工程方法学:三要素 1.1 软件工程:○1应用系统化的、规范化的、可度量的方法来开发、运行和维护软件,即将工 程应用到软件;○2对○1的各种方法的研究 1.2 软件工程是一门研究用工程化方法构建和维护有效的实用的和高质量的软件的学科 1.3 软件工程三要素是:方法、工具、过程 软件工程的方法:是指完成软件开发各项任务的技术方法 软件工具:是指为软件工程方法的运用提供自动半自动的软件支撑环境 软件工程过程:是指将软件工程方法和工具综合起来以达到合理、及时地进行计算机软件开发这一目的 2 软件工程的原则包括:模块化原则、信息隐蔽原则、抽象化原则、模块独立原则(内聚、耦合)、 依赖倒转原则、开闭原则等 2.1 模块化原则:指解决一个复杂问题时自顶向下逐层把软件系统划分为若干模块的过程。模 块是程序中相对独立的成分,一个独立的编程单位,应有良好的编程接口,模块的大小要 适中,模块过大会使模块内部的复杂性增加不利于模块的理解和修改,模块过小会导致整 个系统表示过于复杂,不利于控制系统的复杂性。 2.2 信息隐蔽原则:采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单。 2.3 抽象化原则:抽取事物最基本的特性和行为,忽略非本质细节,采用分层次抽象,自顶向 下,逐层细化的办法控制软件开发过程的复杂性。 2.4 模块独立原则:是指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少 且接口简单。要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块间由松 散的偶合关系,模块内部有较强的内聚性,这有助于控制系统的复杂性。(即:高内聚低 耦合) 2.5 依赖倒转原则:抽象不应该依赖于细节,细节应该依赖于抽象。 2.6 开闭原则:软件实体应该是可扩展的,但是不可以修改。即对于扩展是开放的,对于更改 是封闭的。 3 软件开发模型:瀑布模型;快速原型;喷泉模型;各种模型的工作原理、阶段、每阶段任务、 特点、示意图; 软件开发模型(也称为软件过程模型):是从软件项目需求定义开始直至软件经使用后废弃为止,跨 越整个生命周期的系统开发、运行和维护所实施的全部过程、活动和任务的结构框架 3.1 瀑布模型(又称线性模型): 3.1.1工作原理:规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。 前一阶段的工作成果是后一阶段工作开始的基础.所以,每个阶段都必须交出合格的文档,必须对前阶段的工作进行评审,前一阶段的工作完成后才可以开始后一阶段的工作 3.1.2 阶段: 计划时期:问题定义、可行性研究 开发时期:需求分析、设计、编码、测试 运行时期:运行和维护 3.1.3 各阶段任务: 1.需求分析和定义 在软件项目进行过程中,需求分析是从软件定义到软件开发的关键步骤,是今后软件,开发的基本依据,同时也是用户对软件产品进行验收的基本依据。需求分析和定义是以用

山东大学-软件工程复习重点整理

第一章 1.1软件工程(SE)的定义、向、作用: SE:在将有关软件开发与应用的概念科学体系化的基础上,研究如有计划、有效率、经济的开发和利用能在就算机上正确运行的软件的理论和技术的工程法学,一些开发和维护软件的法、过程、原则。是一个系统工程,既有对技术问题的分析与综合,也有对开发过程和参与者的管理。 SE的向:面向对象模式,结构化模式,基于过程的模式等 SE的作用:付出较低的开发成本,达到要求的软件功能,取得较好的软件性能,开发的软件易于移植,需要较低的维护费用,能按时完成开发工作,及时交付使用。 1.2开发模式:软件开发的全部过程,活动和任务的结构框架,它能直观的表达的表达软件开发全过程,明确要完成的主要活动,任务和开发策略。 1.3说明错误、故障和失效的含义及联系(并举例): 错误:是在软件生产过程中人为产生的错误(需求说明中的错误,代码中的错误) 故障:是在功能实现过程中产生的问题;是错误导致的结果,是在软件中一个错误的表现(一个错误可能产生多个缺陷,静态存在的) 失效:是相对于系统指定行为的偏离,系统违背了它应有的行为(动态存在的) 联系:当一个开发者编写程序时,会在代码中出现错误。当这个程序被编译或集成到一个系统中时,系统就存在故障。当你运行这个系统时,可能会导致失效,即人们产生错误,故障是错误的结果(部观角:从开发者的角度看待问题),当故障执行时出现失效(外部视角:从用户角度看到的问题)。并不是所有的错误会导致故障,并非每个缺陷都对应相应的失败。1.4软件质量应从哪几个面衡量,论述之: (1产品的质量)(2过程的质量)(3商业环境背景下的质量) (1)产品的质量:用户从失败的数目和类型等外部特征进行评价,如果软件具有足够的功能并且易于学习和使用,用户就断定软件是高质量的;开发者从缺陷的数目和类型等部特征来作为产品质量的依据。 (2)过程的质量:有很多过程都会影响到最终的产品质量,只要有活动出了差错,产品的质量就会受到影响;开发和维护过程的质量与产品的质量是同等重要的。 (3)商业环境背景下的软件质量:将技术价值和商业价值统一起来。 1.5软件系统的系统组成(系统的要素有哪些):对象(实体)+ 活动+ 关系+ 系统边界活动:活动是发生在系统中的某些事情,通常描述为由某个触发器引发的事件,活动通过改变属性把一个事物变成另一个事物。 对象:活动中涉及的元素称为对象。 关系:是指活动与对象之间的关系。 系统边界:即系统包含的功能与系统不包含的功能之间的界限。 1.6现代软件工程大致包含几个阶段及各个阶段的文档: (1)需求分析:主要包括问题定义、可行性分析、需求分析《需求规格说明书》

软件工程基础知识点总结

软件工程基础部分知识点总结 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素 3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件)

1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。 1)研究软件工程的主要目的就是在规定的时间、规定的开发费用内开发出满足用户需求的高质量的软件系统(高质量是指错误率低、好用、易用、可移植、易维护等)。 2)软件工程的三个要素:方法、工具和过程。 ①方法:完成软件工程项目的技术手段;

软件工程期末考试复习题及答案

(4分) 变换型结构的数据流呈() A. 线性形状 B. 辐射状 C. 椭圆形 D. 阶梯形 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 A .解析..2. (4分) 可行性研究阶段使用的图形工具是() A. DFD图 B. N-S图 C. PAD图 D. Warnier图 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 A .解析..3. (4分) 软件的开发模式有() A. 面向过程模式、面向对象模式、混合模式 B. 变换模式、渐增模式、瀑布模式 C. 自顶向下模式、自底向上模式、关系模式 D. 分步模式、渐增模式、非渐增模式 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 B .解析..4. (4分) 模块的初始化工作和模块处理意外故障均属于() A. 时间内聚 B. 顺序内聚 C. 功能内聚 D. 逻辑内聚 得分: 0 知识点: 软件工程作业题,软件工程展开解析 .答案 A .解析..5. (4分) HIPO的含义是()

A. 层次、输入、处理、输出 B. 高速、信息、程序、目标 C. 顶层的IPO图 D. 关于输入、处理、输出的层次 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 A .解析..6. (4分) 数据字典和数据流图共同构成系统的() A. 物理模型 B. 结构模型 C. 设计说明书 D. 逻辑模型 得分: 0 知识点: 软件工程作业题,软件工程展开解析 .答案D .解析..7. (4分) 好的软件结构它的外观形状一般呈() A. 线性 B. 扇形 C. 椭圆形 D. 层次型 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 C .解析..8. (4分) CMU/SEI推出的()将软件组织的过程能力分为五个成熟度级别,每一个级别定义了一组过程能力目标,并描述了要达到这些目标应该具备的实践活动。 A. CMM B. PSP C. ISO-9000 D. RUP 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 A .解析..9. (4分) 若要保证开发出来的软件局部优化,而且能尽早发现设计上的错误,应采用()

软件工程知识点总结

软件工程知识点总结 软件工程专业是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。接下来是为大家收集的软件工程知识点总结,以供大家学习! 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素

3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件) 1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。

软件工程整理

第一章 软件工程研究的主要内容:为了在有限的资金、资源和时间条件下开发满足客户要求的高质量软件,需要研究与软件开发和管理相关的模型、方法、技术等。 在《计算机科学技术百科全书》中,对计算机软件作出如下定义:计算机软件指计算机系统中的程序及其文档。程序是计算任务的处理对象和处理规则的描述。任何以计算机为处理工具的任务都是计算任务。处理对象是数据或信息。处理规则一般指处理的动作和步骤。文档是为了便于了解程序所需的阐述性资料。 软件工程的定义:⑴IEEE在软件工程术语汇编中的定义:①软件工程是将系统化的的方法用于软件的开发、运行和维护,即将工程化应用于软件;②在①中所述方法的研究⑵软件工程是应用计算机科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源等管理。 软件工程的框架:目标,过程和原则 软件工程目标是指生产具有正确性、可用性、和开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜指软件开发、运行的整个开销满足用户要求的程度。 软件工程原则包括围绕工程设计、工程支付和工程管理所提出的以下4条基本原则 (1)选取适宜的开发模型(2)采用合适的设计方法(3)提供高质量的工程支撑 (4)重视软件工程的管理 软件生存周期是指软件产品或软件系统从产生、投入使用到被淘汰的全过程。 软件生存周期分为6个阶段:计算机系统工程、需求分析、设计、编码、测试、运行和维护 软件过程是生产一个最终满足需求且达到工程目标的软件产品所需的步骤。 软件过程是软件生存周期中的一系列相关的过程。过程是活动的集合,活动是任务的集合。软件过程有3层含义:一是个体含义,即指软件产品或系统在生存周期中的某一类活动的集合;二是整体含义,即指软件产品或系统在所有上述含义下的软件过程的总体;三是工程含义,即指解决软件过程的工程,应用软件工程的原则、方法来构造软件过程模型、并结合软件产品的具体要求进行实例化,以及在用户环境,并结合软件产品的具体要求进行实例化,以及在用户环境下运作,以此进一步提高软件生产率,降低成本。 软件过程模型也称软件开发模型,是软件开发全部过程、活动和任务的结构框架。典型的软件过程模型有:瀑布模型、演化模型(如增量模型、原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式方法模型等。 瀑布模型是1970年由W.Royce提出的,它给出了软件生存周期活动的固定顺序,上一阶段的活动完成后向下一阶段的活动过渡,最终得到所开发的软件产品。其特征是:接受上一阶段活动的结果作为本阶段活动的输入 依据上一阶段活动的结果实施本阶段应完成的活动 对本阶段的活动进行评审 将本阶段活动的结果作为输出,传递给下一阶段 瀑布模型也逐渐暴露出它的不足(1)不少软件的需求存在着不确定性,(2)如果发现不满足客户需求的问题,那么修改软件的代价是巨大的 演化模型,是从构造初始的原型出发,逐步将其演化成最终软件产品的过程。演化模型适用于对软件需求缺乏准确认识的情况。典型的演化模型有:增量模型、原型模型、螺旋模型 增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件的一个可发布的“增量”版本,后一个版本是对前一个版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。 增量模型融合了瀑布模型的基本成分和演化模型的迭代特征,强调每一次增量都发布一个可运行的产品。特征:(1)适用于需求经常发生变化的软件开发(2)在市场急需而开发人员和资金不能在设定的市场期限之前实现一个完善的产品,此时也适宜用增量模型进行开发(3)能有计划的管理技术风险

软件工程期末复习要点归纳总结精编WORD版

软件工程期末复习要点归纳总结精编W O R D 版 IBM system office room 【A0816H-A0912AAAHH-GX8Q8-GNTHHJ8】

第一章软件工程学概论 1、软件危机产生的原因 软件本身的特点:难于维护、逻辑复杂 软件开发与维护的方法不正确:忽略需求分析重要性、轻视软件维护 课本表述: 1、软件不同于硬件,它是计算机中的逻辑部件而不是物理部件 2、软件不同于一般程序,它的一个显着特点是规模庞大,而且程序的复杂性将规模 的增加而呈现指数上升。 3、软件本身特有的特点确实给开发和维护带了一些客观困难 4、软件开发与维护有关的许多错误认识与做法有关(忽略需求分析,轻视软件维 护) 5、对用户要求没有完整准确的认识就匆忙开始着手编写程序 6、在软件不同阶段进行修改需要付出的代价是很不相同的 2、软件危机的表现(什么是软件危机) (1)、成本高: (2)、软件质量得不到保证:软件质量问题导致失败的软件项目非常多 (3)、进度难以控制:

●项目延期比比皆是 ●由于进度问题而取消的软件项目较常见 ●只有一小部分的项目能够按期完成 (4)、维护十分困难: ▼软件维护的多样性 ▼软件维护的复杂性 ▼软件维护的副作用 3、克服软件危机 (1)、管理的角度: 软件开发过程的研究、文档的标准化以及人员的交流方式等 (2)、软件开发方法的研究 结构化软件开发方法, 面向对象的开发 4、软件工程的定义 概括的说,软件工程师指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

软件工程复习题复习重点及答案

软件工程复习重点 一、选择题 1、软件工程三要素是指( B )P8 A、技术、方法和工具 B、方法、工具和过程 C、方法、对象和类 D、过程、模型、方法 2、瀑布模型本质上是一种( A )。P23 A、线性顺序模型 B、顺序迭代模型 C、线性迭代模型 D、及早见产品模型 3、结构化设计是一种应用最广泛的系统设计方法,是以( B )为基础,自顶向下,求精和模块化的过 程。P79 A、数据流 B、数据流图 C、数据库 D、数据结构 4、概要设计的任务是设计系统的( B物理模型)P70 A、逻辑模型 B、物理模型 C、概念模型 D、程序流程图 5、描述软件结构的工具有( A模块结构图) A、模块结构图 B、PAD图 C、数据流程图 D、程序 6、进行需求分析可以使用多种工具,但( C )是不适用的。 A、数据流程图 B、判定表 C、PAD图(详细设计) D、数据字典 7、可行性研究要进行的需求分析和设计应该是( C )。 A、详细的 B、全面的 C、简化的、压缩的 D、彻底的 8、软件生命周期由( C )三个时期组成。 A、概要设计、详细设计和系统实现 B、可行性分析、系统设计和编码 C、定义、开发和运行维护 D、分析、设计和测试 9、以下( D )不是模块。对象是一个实体 A、过程 B、程序 C、函数 D、对象 10、程序流程图、N-S图和PAD图是( B )使用的算法表达工具。 A、设计阶段的概要设计 B、设计阶段的详细设计 C、编码阶段 D、测试阶段 11、一个模块直接控制(调用)的下层模块的数目称为模块的( B扇出)P78 A、扇入数 B、扇出数 C、宽度 D、作用域 12、下列工具哪一个是需求分析阶段常用工具?( D ) A、PAD B、PFD C、N-S D、DFD数据流程图 需求分析常用的是数据流程图和数据字典 13、为了提高测试的效率,应该( D) A、随机地选取测试数据 B、取一切可能的输入数据作为测试数据库 C、在完成编码后制定软件的测试计划 D、选择发现错误可能性大的数据作为测试数据 14、成功的测试是指( B发现程序的错误) A、运行测试实例后未发现错误项 B、发现程序的错误 C、证明程序正确 D、改正程序的错误 15、软件工程中只根据程序的功能说明而不关心程序内部的逻辑结构的测试方法,称为( C黑盒测试)

软件工程复习知识点

软件工程:选择题(25题,每题1分),填空题(20分,每空2分),简答题(5题,每题5分),综合题(3题,共30分) 知识点: 1.软件设计对模块间的耦合与模块的内聚有何原则。(p97-p99) 答:耦合原则:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合;内聚原则:设计时应力求做到高内聚,并且能够辨认出低内聚的模块,有能力通过修改提高模块的内聚程度降低低模块间的耦合程度。 2.耦合有哪些类型,各有何特点?(p97-p99) 答:(1)数据耦合:两个模块之间彼此通过参数交换信息,而且交换的信息仅仅是数据。 (2)控制耦合:如果传递的信息中有控制信息,则这种耦合为控制耦合。 3.常用软件过程有哪几种,各有何特点?(p15-p22) 答:(1)瀑布模型:阶段之间具有顺序性和依赖性,推迟实现的观点,质量保证的观点。 (2)增量模型:整个产品被分解成许多个增量构件,开发人员逐步的向用户提交产品。(3)螺旋模型:适用于内部开发的大规模软件项目。 (4)喷泉模型:提高了开发效率,缩短了开发周期但是难于打理。喷泉模型使开发过程具有迭代性和无缝性。适宜面向对象的方法。 (5)Rational统一过程(迭代式开发,采用用例分析来捕获需求并由他们驱动和实现,使用基于构件的体系结构,可视化建模,每个修改都是可接受而且能被跟踪的)(6)快速原型模型:快速原型模型是不带反馈环的,软件产品的开发基本上是线性顺序进行的,是一个循环的模型; 4.瀑布模型分为哪几个阶段。 答:需求分析验证、规格说明验证、设计验证、编码测试、综合测试、维护、变化的需求验证 5.结构化程序设计方法的发展过程。 答:p117-p118 6.流程图与N_S图如何使用。 答:p38-p39 7.可行性研究应该从哪几个方面进行。(p35) 答:技术可行性,经济可行性,操作可行性。 8.数据流图的基本符号有哪几种?(p40) 答:正方形(或立方体)表示数据的源点或终点;圆角矩形(或圆形)代表变换数据的处理;开口矩形(或两条平行横线)代表数据存储;箭头表示数据流,即特定数据的流动方向。 9.面向数据流的设计方法如何进行?(P104) 答:将软件设计为多个结构合理,功能单一的模块,建立系统的模块结构图。 10.Jackson方法有何特点?(p130) 答:在设计比较简单的数据处理系统时特别方便,当设计比较复杂的程序时常常遇到输入数据可能有错、条件不能预先测试、数据结构冲突等问题。 11.白盒测试与黑盒测试各有何特点?(p162,p171) 白盒测试:全面了解程序内部逻辑结构、对所有逻辑路径进行测试。

软件工程期末复习知识点整理

复习整理 一、绪论 1.软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 ●是指导计算机软件开发和维护的一门工程学科; ●采用工程化的原理及方法对软件进行计划、开发和维护; ●把证明正确的管理技术和最好技术综合运用到软件开发中; ●研究经济地开发出高质量的软件方法和技术; ●研究有效维护软件的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。

⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1) 过程式编程范型:把程序理解为一组被动的数据和一组能 动的过程所构成;程序=数据结构+算法;着眼于程序的过程和基本控制结构,粒度最小 (2) 面向对象编程范型:数据及其操作被封装在对象中;程序 =对象+消息;着眼于程序中的对象,粒度比较大 (3) 基于构件技术的编程范型:构件是通用的、可复用的对象 类;程序=构件+架构;眼于适合整个领域的类对象,粒度最大 二、软件生存周期及软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么, 有哪几个主要活动 ●定义:一个软件从开始立项起,到废弃不用止,统称为软件的 生存周期 ●目的:软件生存周期划分为计划、开发和运行3个时期;把整 个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的 任务,就能够化简每一步的工作内容,使因为软件规模而增长 而大大增加了软件复杂性变得较易控制和管理。 ●主要活动:需求分析、软件分析、软件设计、编码、软件测试、 运行维护(P19) 2、软件生命周期划分为哪几个阶段

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

第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、软件危机产生的原因 软件本身的特点:难于维护、逻辑复杂 软件开发与维护的方法不正确:忽略需求分析重要性、轻视软件维护 课本表述: 1、软件不同于硬件,它是计算机中的逻辑部件而不是物理部件 2、软件不同于一般程序,它的一个显著特点是规模庞大,而且程序的复杂性将规模的 增加而呈现指数上升。 3、软件本身特有的特点确实给开发和维护带了一些客观困难 4、软件开发与维护有关的许多错误认识与做法有关(忽略需求分析,轻视软件维护) 5、对用户要求没有完整准确的认识就匆忙开始着手编写程序 6、在软件不同阶段进行修改需要付出的代价是很不相同的 2、软件危机的表现(什么是软件危机) (1)、成本高: (2)、软件质量得不到保证:软件质量问题导致失败的软件项目非常多 (3)、进度难以控制: ●项目延期比比皆是 ●由于进度问题而取消的软件项目较常见 ●只有一小部分的项目能够按期完成 (4)、维护十分困难: ▼软件维护的多样性 ▼软件维护的复杂性 ▼软件维护的副作用 3、克服软件危机 (1)、管理的角度: 软件开发过程的研究、文档的标准化以及人员的交流方式等 (2)、软件开发方法的研究 结构化软件开发方法, 面向对象的开发 4、软件工程的定义 概括的说,软件工程师指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得

到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。 (1)、软件工程就是建立和使用一套合理的工程原理,从而经济地获得可靠的、可以在实际机器上高效运行的软件。 (2)、①把系统的、规的、可度量的方法应用于软件开发、运行和维护的过程,也就是把工程应用于软件.②研究①中提到的途径 总之:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。他借鉴传统工程的原理、方法,以提高质量,降低成本为目的。 5、软件工程的本质特性 1、关注与大型程序的构造 2、中心课题是控制复杂度 3、软件经常变化 4、开发软件的效率非常重要 5、和谐的合作是开发软件的关键 6、软件必须有效地支持它的用户 7、在软件工程领域常由具有一个文化背景的人替另外一种文化背景的人创造产品 6、软件工程的基本原理 1、用分阶段的生命周期计划严格管理 2、坚持进行阶段评审 3、实行严格的产品控制 4、采用现代程序设计技术 5、结果应能清楚地审查 6、开发小组应该少而精 7、承认不断改进软件工程实践的必要性 软件工程学包含3个要素:方法、工具和过程 7、软件生命周期 (1)、概念: 软件生命周期由软件定义、软件开发和运行维护(也成软件维护)3个时期组成。 (2)、容:

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