软件工程

更新时间:2024-04-02 07:36:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

郑州大学现代远程教育

《软件工程》课程

学习指导书

陈园 编

? 课程内容与基本要求

“软件工程”是计算机科学与技术专业的专业基础课、必修课。软件工程是用科学知识和技术原理来定义、开发、维护软件的一门学科,是运用工程学的基本原理和方法来组织管理软件的生产、研究、开发、管理、维护的过程、方法和技术,它是一门介于计算机科学、软件科学、系统工程学和管理工程学之间的新兴的综合性交叉学科。

本课程的目的是使学生了解软件工程的基本原理、概念和技术方法,了解软件开发的一般方法、步骤和过程,能自觉地使用软件工程的技术与规范参与软件项目活动,为学生今后从事软件开发奠定良好基础。

软件工程是一门实践性比较强的课程。要求学生已学习完程序设计语言课程,并能够熟练掌握一门程序设计语言。要求学生已学完数据结构、数据库原理、操作系统等专业课程。要求学生具有个人程序设计经验,对软件的开发过程具有一定的体会。如果学生没有实践经验,则很难理解相关的理论知识。

? 课程学习进度与指导

章节 课程内容 建议学时策略 3 学习指导 以课件学习为主。 重点理解软件工程的基本概念。 以课件学习为主。 重点理解软件生存周期的划分及各软件开发模型的种类、特点。 以课件学习为主。 重点理解软件需求分析的任务、步骤,及常用的需求获取方法;理解分析模型的组成及描述工具,掌握结构化分析方法及结构化分析建模工具。 以课件学习为主。 重点理解软件设计的任务,包括四个方面的设计:体系结构设计、接口设计、数据设计及过程设计;了解软件设计的基本概念,理解模块化设计的概念及模块独立性的度量准则。 软件工程的相第一章 绪论* 关概念 软件生存周期第二章 软件的划分及软件开发模型* 开发模型 软件需求分析,结构化分第三章 需求析方法及结构分析* 化分析建模工具。 3 3 软件设计的任第四章 软件务及软件设计设计基础* 的基本概念。 2 模块的结构及表示;变换型映射方法和事第五章 传统务型映射方的设计方法* 法;结构设计的优化规则。过程设计及其工具。 编码的目的与风格及编码语第六章 编码* 言的选择原则。 3 以课件学习为主。 重点理解模块的结构及表示,了解6种模块类型。理解两种类型DFD (变换型和事务型)的结构特征,掌握软件体系结构设计中变换型映射方法和事务型映射方法;了解结构设计的优化规则。理解过程设计的目的与任务、原则与方法,掌握过程设计工具——流程图、NS图、PAD图及PDL的使用。 以课件学习为主。 重点理解编码的目的与风格编码语言的选择原则。 以课件学习为主。 重点理解软件测试的目的与任务、测试与纠错的关系、软件测试的特性、软件测试的原则、软件测试的对象、测试与软件开发各个阶段的关系、软件测试的种类等概念;理解黑盒测试与白盒测试及其方法;掌握黑盒测试的等价类划分方法和边界值分析方法设计测试用例;掌握白盒测试的逻辑覆盖方法和基本路径覆盖方法设计测试用例。理解多模块程序的测试策略,以及常用的纠错技术。 以课件学习为主。 重点理解统一建模语言UML的组成、特点和应用;理解UML静态建模、动态建模和物理架构建模。 以课件学习为主。 重点理解面向对象分析方法的步骤;理解面向对象分析的用例模型、对象模型、动态模型、数据模型的组成。掌握用例图、类对象图、类对象关系图、对象行为图。 以课件学习为主。 重点理解面向对象设计的任务1 第七章 软件软件测试方法 测试* 3 第八章 统一UML的模型组建模语言UML 成。 2 面向对象分析第九章 面向方法及其建对象分析方法 模。 1 第九章 面向面向对象设计对象设计 方法及其设计1 模型。 第十章 软件软件维护概维护 念。 1 软件工程管理第十一章 软的相关概念、件工程管理 方法及其工具。 1 第十二章 软软件质量管理件质量管理 的相关概念。 1 和设计模型,了解面向对象的设计——系统设计、对象设计和领域对象设计及其描述工具。 以课件学习为主。 重点理解软件维护的种类;了解软件可维护性的属性;了解软件维护的实施和管理内容; 以课件学习为主。 重点理解软件工程管理的概念;软件估算模型及软件成本的估计方法;人员的分配与组织的相关内容;掌握项目进度安排常用的技术和工具(PERT 技术及网络图,关键路径、Gantt图)。 以课件学习为主。 重点理解质量管理的三个阶段;软件质量保证的定义;软件质量属性的组成及三种软件质量模型;软件质量保证活动的内容;软件可靠性的定义。掌握软件可靠性与故障率之间的关系,掌握MTTF与故障率的关系,掌握软件可靠性模型并能进行可靠性的计算;了解软件容错技术及容错软件设计步骤。 第一章 绪论 (一)本章学习目标

通过本章的学习,学生应能够了解软件的定义、特征、分类及软件的发展阶段;理解软件危机产生的原因、表现及软件危机的解决途径;了解软件工程定义、目标、软件工程三要素、软件工程学的范畴。 (二) 本章学习重点和考试要求

软件的定义、特征、分类及软件的发展阶段; 产生的原因、表现及软件危机的解决途径;

软件工程定义、目标、软件工程三要素、软件工程学的范畴。

(三) 本章学习指导

本章学习课时:3

本章内容涉及软件工程的基本概念,需要大家在认真学习课程的基础上,了解这些基本概念。 (四) 本章练习题

1.软件产品的主要特征是什么?

2.什么是软件危机?其产生的原因是什么?解决软件危机的途径是什么? 3.软件发展有几个阶段?每个阶段的特点是什么? 4.软件工程的目标?软件工程三要素。

5.什么是软件开发方法学?目前使用最广泛的软件开发方法是什么方法? 第二章 软件开发模型 (一)本章学习目标

通过本章学习,学生应掌握软件生存周期的划分,掌握软件生存周期由哪些时期、哪些阶段组成;理解传统的软件开发模型、软件演化模型及面向对象的开发模型——构件集成模型,并能理解各种软件开发模型的特点;了解软件开发的基本策略。

(二)本章学习重点和考试要求

软件生命周期;各个软件开发模型及其特点。 (三)本章学习指导

本章学习课时:3

本章内容中软件生命周期的概念好理解,但是软件开发模型的概念对于没有经历过软件开发实践的同学来讲就比较难以理解,需要同学们认真揣摩其概念和各种软件开发模型的不同特点。每个开发组织都可根据自己的组织特点及开发方法,构建适合于自己的开发模型。通俗的讲,每一种开发模型都是以不同的方法和流程去组织和安排开发过程中所涉及到的各项活动,类似于硬件的生产需要涉及很多的工序,如何去组织和安排这些工序?对于这些工序的不同的组织方法和流程的安排就是不同的生产模型。

(四)本章练习题

1.什么是软件生存周期?把生存周期划分为阶段的目的是什么?

2.传统的瀑布模型把生存周期划分为哪些阶段?瀑布模型软件开发有哪些特点?瀑布模型优点?瀑布模型不适合用于什么系统? 3.什么是快速原型法?其快速表现在哪里?

4.比较增量模型和螺旋模型的特点,有什么不同和相似的地方? 5.哪些开发模型适用于面向对象的软件开发? 第三章 需求分析 (一)本章学习目标

了解软件需求分析的任务、步骤,及常用的需求获取方法;理解分析模型的组成及描述工具,掌握结构化分析方法及结构化分析建模工具。 (二) 本章学习重点和考试要求

需求分析的任务、步骤,及常用的需求获取方法;

理解分析模型的组成及描述工具,掌握结构化分析方法及结构化分析建模工具。

(三) 本章学习指导

本章学习课时:3

需求分析是涉及到软件开发成功与否的重要阶段,是开发成功的基础。现在已经将需求分析阶段的概念扩展为需求工程,其工作涉及到了生命周期的每个阶段。本章内容非常重要,需要同学们认真学习课件和相关的资料,掌握本节的内容。

(四) 本章练习题

1.需求分析的任务是什么?怎样理解分析阶段的任务是决定“做什么”,而不是“怎样做”?

2.需求分析要经过哪些步骤?简要说明。 3.需求获取的常用方法有哪些?

4.有哪两种主要的分析模型,各有哪些工具支持? 5.为什么DFD要分层?画分层的DFD要遵循哪些原则?

第四章 软件设计基础 (一)本章学习目标

了解软件设计的任务,包括四个方面的设计:体系结构设计、接口设计、数据设计及过程设计;了解软件设计的基本概念,如:模块与构件、抽象与细化、信息隐蔽、软件复用;理解模块化设计的概念及模块独立性的度量准则——内聚与耦合;了解文档复审的作用、内容、方式及原则。 (二) 本章学习重点和考试要求

软件设计的任务,包括四个方面的设计:体系结构设计、接口设计、数据设计及过程设计;

软件设计的基本概念,如:模块与构件、抽象与细化、信息隐蔽、软件复用;理解模块化设计的概念及模块独立性的度量准则——内聚与耦合;

文档复审的作用、内容、方式及原则。 (三) 本章学习指导

本章学习课时:2

本章内容讲解了软件设计的任务、基本概念和基本原则,无论采用哪种开发方法来开发软件,这些任务、概念和原则都是相同的。同学们需认真学习本章内容,在做软件设计工作时,将其作为工作的指导。 (四) 本章练习题

1.传统软件工程把设计过程分成两步:概要设计与详细设计。试述这两个阶段各自要完成的主要任务。为什么大型软件的设计必须分为两步走? 2.什么是模块独立性?用什么度量?

3.什么是自顶向下设计?为什么说它尤其适用于大型软件的开发? 第五章 传统的设计方法 (一) 本章学习目标

了解模块的结构及表示,了解6种模块类型。理解两种类型DFD (变换型和事务型)的结构特征,掌握软件体系结构设计中变换型映射方法和事务型映射方法;了解结构设计的优化规则。了解接口设计、人机界面设计、数据设计的原则;了解过程设计的目的与任务、原则与方法,掌握过程设计工具——流程图、NS

图、PAD图及PDL的使用。 (二) 本章学习重点和考试要求

模块的结构及表示, 6种模块类型;

两种类型DFD (变换型和事务型)的结构特征,软件体系结构设计中变换型映射方法和事务型映射方法;

结构设计的优化规则。

接口设计、人机界面设计、数据设计的原则;

过程设计的目的与任务、原则与方法;过程设计工具——流程图、NS图、PAD图及PDL的使用。 (三) 本章学习指导

本章学习课时:3

本章难点在于两种类型的DFD的映射方法,这一部分需认真仔细的学习,其余的概念较易理解。学生在认真学习本章内容后,应了解本章涉及的概念和原则,掌握过程设计工具的使用。 (四) 本章练习题

1.什么是结构化设计方法?其中心任务是什么? 2.简述DFD的事务型结构和变换型结构的特征。 3.简述SD方法的步骤。

4.为什么事务型软件的理想结构常常具有中间大、两头小的形状? 第六章 编码 (一) 本章学习目标

了解编码的目的与风格;了解编码语言的选择原则;程序的效率及性能分析。 (二) 本章学习重点和考试要求

编码的目的与风格; 编码语言的选择原则。 (三) 本章学习指导

本章学习课时:1

本章内容是陈述性的内容,讲述编码的目的、风格及编码语言的选择原则等。

学生需记忆理解本章内容,将之应用到编码工作中,使得程序易读、易修改、易维护。

(四) 本章练习题 1编码的目的是什么?

2.在选择程序设计语言时应考虑哪些因素?

3.列出重要的编码风格指导原则,并按照你心中的重要性排列。 4.有人说程序的质量主要由设计的质量决定,这个观点对不对? 5.为什么说良好的编码风格非常重要? 第七章 软件测试 (一) 本章学习目标

了解软件测试的目的与任务、测试与纠错的关系、软件测试的特性、软件测试的原则、软件测试的对象、测试与软件开发各个阶段的关系、软件测试的种类等概念;理解黑盒测试与白盒测试及其方法;掌握黑盒测试的等价类划分方法和边界值分析方法设计测试用例;掌握白盒测试的逻辑覆盖方法和基本路径覆盖方法设计测试用例。理解多模块程序的测试策略,以及常用的纠错技术。 (二) 本章学习重点和考试要求

软件测试的目的与任务,测试与纠错的关系;

软件测试的特性,软件测试的原则,软件测试的对象,测试与软件开发各个阶段的关系,软件测试的种类等概念;

黑盒测试与白盒测试及其方法;黑盒测试的等价类划分方法和边界值分析方法设计测试用例;白盒测试的逻辑覆盖方法和基本路径覆盖方法设计测试用例。

多模块程序的测试策略,以及常用的纠错技术。 (三) 本章学习指导

本章学习课时:3

测试是保证软件质量的重要活动,现在花费在测试方面的工作量越来越大,测试人员越来越多。本章概念和内容较多,需认真学习。本章难点在于黑盒测试和白盒测试方法及其测试用例的设计,这方面要花费时间仔细学习。

(四) 本章练习题

1.什么是软件测试?软件测试的目的和基本任务是什么?测试与纠错有什么区别?

2.软件测试存在哪两种立场?基于不同的立场存在着什么不同的测试目的? 3.测试有几种的特性? 4.测试的对象有哪些?

5.程序测试包括静态分析与动态测试。两者的主要差别在哪里? 6.为什么有了动态测试,还要用人工进行代码评审? 7.什么叫黑盒测试?有哪些黑盒测试方法? 8.什么叫白盒测试?有哪些白盒测试方法? 9.多模块程序的测试有哪些层次?

10.软件纠错有哪些策略?常用的纠错技术有哪些? 11.测试工作最终要停止,那么终止测试有哪些标准? 第八章 统一建模语言UML概述 (一) 本章学习目标

了解统一建模语言UML的组成、特点和应用;理解静态建模、动态建模和物理架构建模方法。

(二) 本章学习重点和考试要求

统一建模语言UML的组成、特点和应用; 静态建模、动态建模和物理架构建模方法。 (三) 本章学习指导

本章学习课时:2

本章需要了解统一建模语言的组成、特点应用等。重点理解UML如何进行静态建模和动态建模,静态建模和动态建模所涉及的有哪些图。 (四) 章节练习题 1.UML的特点是什么? 2.UML模型由哪些元素组成? 3.UML的事务分为几类?

4.UML中提供了哪几种图,试述每种图所描述的内容。 第九章 面向对象分析 (一) 本章学习目标

了解面向对象分析方法的步骤;理解面向对象分析的用例模型、对象模型、动态模型、数据模型的组成。掌握用例图、类对象图、类对象关系图、对象行为图。

(二) 本章学习重点和考试要求

面向对象分析方法的步骤;

面向对象分析的用例模型、对象模型、动态模型、数据模型的组成; 用例图、类对象图、类对象关系图、对象行为图。 (三) 本章学习指导

本章学习课时:1

本章要求学生了解面向对象分析方法的步骤,以及按照这个步骤如何进行分析模型的建模,了解每种模型由哪些图组成。本章内容对于没有面向对象知识和面向对象开发经验的学生来讲不易理解,需要认真学习理会。 (四) 本章练习题

1. 什么是对象?什么是类?类与对象的关系是什么? 2.面向对象分析模型由哪3种独立的模型构成? 3.对象模型的5个层次分别是什么? 4.面向对象动态模型的描述工具有哪3个图? 第十章 面向对象设计 (一) 本章学习目标

了解面向对象设计的任务和设计模型,了解面向对象的设计——系统设计、对象设计和领域对象设计及其描述工具。 (二) 本章学习重点和考试要求

面向对象设计的任务和设计模型;

面向对象的设计——系统设计、对象设计和领域对象设计及其描述工具。

(三) 本章学习指导

本章学习课时:1

本章要求学生了解面向对象设计概念和步骤。本章内容对于没有面向对象知识和面向对象开发经验的学生来讲不易理解,需要认真学习理会。 (四) 章节练习题

1.面向对象设计的任务是什么?

2.面向对象的设计过程由哪些步骤组成? 3.面向对象的设计包括哪些设计?

4.面向对象的子系统设计里把子系统分为4种,分别是哪4种子系统? 第十一章 软件维护 (一)本章学习目标

了解软件维护的种类;了解软件可维护性的属性;了解软件维护的实施和管理内容;了解软件再工程的概念和方法。 (二) 本章学习重点和考试要求

软件维护的种类; 软件可维护性的属性; 软件维护的实施和管理内容; 软件再工程的概念和方法。 (三) 本章学习指导

本章学习课时:1

本章内容较多,但是易于理解。学生只需认真学习即可。 (四) 章节练习题

1.为什么说软件维护是不可避免的?

2.软件维护有哪些种类?这些不同类型的维护分别在什么情况下进行? 3.纠错和纠错性维护有哪些异同?

4.什么是软件修改的副作用?修改的副作用有哪些? 5.什么是软件再工程?软件再工程的主要活动有哪些?

第十二章 软件工程管理 (一) 本章学习目标

了解软件工程管理的概念;了解软件估算模型及软件成本的估计方法;了解人员的分配与组织的相关内容;掌握项目进度安排常用的技术和工具(PERT 技术及网络图,关键路径、Gantt图)。 (二) 本章学习重点和考试要求

软件工程管理的概念;

软件估算模型及软件成本的估计方法; 人员的分配与组织的相关内容;

项目进度安排常用的技术和工具(PERT 技术及网络图,关键路径、Gantt图)。

(三) 本章学习指导

本章学习课时:1

软件项目管理所涉及的内容繁多,本章只讲了主要的一些管理内容,对于软件项目管理有兴趣的同学还需专门学习项目管理的有关课程。本章所涉及的内容和概念易于理解,需认真学习即可;所涉及的软件估算模型不用记忆。 (四) 本章练习题

1.软件工程管理有哪些主要内容?其目的和作用是什么? 2.为什么说“时间和人员不能交换”,试说明其含义。 3.软件的资源估算模型有哪些?试说出一二。 4.软件成本估计的方法有哪些? 5.项目进度安排的技术和工具有哪些? 第十三章 软件质量管理 (一)本章学习目标

了解质量管理的三个阶段;了解软件质量保证的定义;了解软件质量属性的组成及三种软件质量模型;了解软件质量保证活动的内容;了解软件可靠性的定义,掌握软件可靠性与故障率之间的关系,掌握MTTF与故障率的关系,掌握软件可靠性模型并能进行可靠性的计算;了解软件容错技术及容错软件设计步骤。

(二) 本章学习重点和考试要求

质量管理的三个阶段;软件质量保证的定义;软件质量属性的组成及三种软件质量模型;软件质量保证活动的内容;

软件可靠性的定义;软件可靠性与故障率之间的关系、MTTF与故障率的关系,软件可靠性模型并能进行可靠性的计算;

软件容错技术及容错软件设计步骤。 (三) 本章学习指导

本章学习课时:1

本章内容繁多,质量管理、质量保证、质量属性的组成及三种软件质量模型等内容,在认真学习的基础上都能掌握。本章难点在于软件可靠性的计算——理解软件可靠性与故障率之间的关系、MTTF与故障率的关系、软件可靠性模型,这部分内容需要认真学习理解。 (四)章节练习题

1.质量管理的三个阶段分别是什么?每个阶段的质量管理注重哪些方面? 2.软件的质量标准可有什么来表示? 3.常用的质量模型有哪些?

4.什么是软件的可靠性?软件可靠性与故障率的关系是什么? 5.什么是MTTF?MTTF与故障率的关系? 6.常用的软件容错技术有哪些?

《软件工程》考试模拟试卷一

一、单项选择题(每小题2分,共40分) 1. 软件文档是( )。

A. 程序 B. 工具 C. 文书和资料 D. 数据

2. 软件是一种( )性工业产品。

A. 理论 B. 知识(或逻辑) C. 消耗 D. 体力

3. 需求分析是在( )进行的。

A. 用户 B. 用户和分析设计人员之间 C. 开发人员内部 D. 使用和维护人员间

4. 软件的主要结构和功能是在( )阶段决定的。

A. 分析设计 B. 编程 C. 测试 D. 维护

5. 螺旋模型的开发实施基本和( )模型相吻合。

A. 瀑布 B. 再利用组装 C. 增量 D. 原型

6. 在软件开发模型中,提出最早、应用最广泛的模型是( )。

A. 瀑布模型 B. 喷泉模型 C. 增量模型 D. 螺旋模型

7. 在软件的可行性研究中经常从不同角度对系统进行可行性研究,其中从功能角度对系统进行研究属于( )的研究。

A. 经济可行性 B. 技术可行性 C. 操作可行性 D. 法律可行性

8. 下列不属于成本-效益分析的度量指标是( )。

A. 货币的时间价值 B. 投资回收期 C. 性质因素 D. 纯收入

9. 软件可行性研究实质上是要进行一次( )需求分析、设计过程。

A.简化、压缩的 B. 详细的

C. 彻底的 D. 深入的 10. 需求分析阶段最重要的技术文档之一是( )。

A. 项目开发计划 B. 设计说明书 C. 需求规格说明书 D. 可行性分析报告

11. 在需求分析之前有必要进行( )。

A. 程序设计 B. 可行性分析 C. ER分析 D. 3NF分析

12. 软件需求分析阶段建立原型的主要目的是( )。

A. 确定系统的功能和性能要求 B. 确定系统的运行要求

C. 确定系统是否满足用户需要 D. 确定系统是否满足开发人员需要

13. 软件开发的需求活动,其主要任务是( )。

A. 给出软件解决方案 B. 给出系统模块结构 C. 定义模块算法 D. 定义需求并建立系统模型

14. 软件可行性研究一般不考虑( )。

A. 是否有足够的人员和相关的技术来支持系统开发 B. 待开发的软件是否会有质量问题

C. 待开发软件是否有市场、经济上是否合算 D. 是否有足够的工具和相关的技术来支持系统开发

15. 软件维护的副作用主要有以下哪几种( )。

A. 编码副作用、数据副作用、测试副作用 B. 编码副作用、数据副作用、调试副作用 C. 编码副作用、数据副作用、文档副作用 D. 编码副作用、文档副作用、测试副作用

16. 下面说法正确的是( C )。

A. 经过测试没有发现错误说明程序正确 B. 测试的目标是为了证明程序没有错误

C. 成功的测试是发现了迄今尚未发现的错误的测试 D. 成功的测试是没有发现错误的测试

17. ( )方法需要考察模块间的接口和各模块之间的联系。

A.单元测试 B.系统测试 C.确认测试 D.集成测试

18. 在软件生存周期中,时间长、费用高、困难大的阶段是 。

A. 需求分析

B. 软件测试

C. 软件设计 D. 软件维护

19. 在软件开发中,作为软件的一个早期的可运行的版本,反映了最终系统的部分重要性能的是( )。

A.原型 B. 最初模型 C.模型 D. 进化模型

20.软件维护申请报告由( )填写。

A. 维护程序员 B.专家 C. 维护负责人 D. 用户

二、简答题(每小题5分,共40分) 21.简述软件生命周期的组成阶段。

22.简述在需求分析阶段建立逻辑模型的DFD图中应包含有几种成分? 23.软件设计的任务包含对系统的4个方面的设计,简述是哪4个方面。 24.简述软件测试与软件调试的区别。

25.简述什么是黑盒测试,常用的黑盒测试方法有哪些? 26.简述在什么情况下,需要进行完善性维护? 27. 常用的质量模型有哪些?

28. 什么是软件的可靠性?软件可靠性与故障率的关系是什么? 三、应用题(每题10分,共20分)

29. 假设汽车的车牌号可由车主人在规定范围内自选,若规定为: (1)车牌上应有7个字符;

(2)为首的字符限定为汉字“京”; (3)第2字符可任选一字母(A~Z); (4)第3~7字符可选任意数字。

请为相关的处理程序所采用的等价类划分方法设计等价类表及相应的测试用例。

30.某商场在“五一”期间,顾客购物时收费有4种情况:普通顾客一次购物累计少于100元,按A类标准收费(不打折),一次购物累计多于或等于100元,按B类标准收费(打9折);会员顾客一次购物累计少于1000元,按C类标准收费(打8折),一次购物累计等于或多于1000元,按D类标准收费(打7折)。测试对象是按以上要求计算顾客收费的模块,要求设计测试用例覆盖所有路径。

《软件工程》考试模拟试卷二

一、 单项选择(每小题2分,共40分) 1、总体设计阶段确定了( )

A.系统的具体实现方案

B.系统的逻辑模型

C.程序每个模块的处理过程 D.系统的数据要求 2、一般来说问题定义阶段结束后的下一个阶段是( )

A.编码

B.需求分析

C.可行性研究 D.总体设计

3、设计测试方案最困难的问题是( )

A.确定要测试的功能 C.确定要测试的对象

B.确定预期的正确输出 D.设计测试用例

4、影响软件可维护性的决定因素是( )

A.文档

B.可理解性

C.可测试性

D.可修改性

5、制定进度计划的常用工具有( )

A.PAD图

B.Gantt图

C.结构图

D.N_S图

6、需求分析的任务是 ( )

A.确定系统怎样完成工作 C.研究系统的软件结构 7、系统流程图是用来( )

A.描绘程序结构的

B.描绘系统的逻辑模型 D.描绘物理系统的

B.确定系统必须完成哪些工作

D.确定软件开发费用

C.表示信息层次结构的图形工具

8、 ER模型中的基本成分不包含( )

A.实体

B.联系

C.属性

D.处理

9、可行性研究实质上是进行了一次( )

A.大大压缩简化了的系统分析和设计过程 B.详尽的系统分析和设计过程 C.彻底的系统设计过程

D.深入的需求分析

10、实现单入口单出口程序的三种基本控制结构是( ) A.顺序、选择、循环

B.过程、子程序、分程序

C. 递归、堆栈和队列 D. 调用、返回和转移 11、白盒测试主要用于测试( )。

A.程序的内部逻辑 B.程序的正确性 C.程序的外部功能 D.结构合理 12、软件开发和维护过程中出现的一系列严重问题称为( )。

A.软件工程

B.软件开发

C.软件周期 D.软件危机

13.判定表比判定树( )

A.更直观、简洁 B.更直观 C.更简洁但不够直观 D.直观和简洁性相同 14. COCOMO模型可用来( )

A.度量程序复杂程度

B.计算软件开发成本

D.估计软件开发所需时间

C.估计程序的故障总数

15.通常发现系统需求说明书中的错误的测试步骤是( )。

A.模块测试 B.子系统测试 C.验收测试

D.平行运行

16.两个模块彼此传递的信息中有控制信息,这种耦合称为( )。

A.数据耦合 B.公共环境耦合 C.内容耦合 D.控制耦合 17.根据程序流程图划分的模块通常是( )

A.时间内聚的 B.逻辑内聚的 C.顺序内聚的 D.过程内聚的 18.维护活动必须应用于( )

A.软件文档 B.整个软件配置 C.可执行代码 19、.软件可行性研究一般不考虑( )

A.是否有足够的人员和相关的技术来支持系统开发 B.是否有足够的工具和相关的技术来支持系统开发 C.待开发软件是否有市场、经济上是否合算 D.待开发的软件是否会有质量问题

20、下列引入了“风险驱动”的思想,适用于大规模的内部开发项目的是( )

D.数据

A.增量模型 B.喷泉模型 二、简答题(每小题5分,共40分)

C.原型模型 D.螺旋模型

21.分析软件危机产生的主要原因有哪些? 22.说明结构化程序设计的主要思想是什么?

23.软件测试包括哪些步骤?说明这些步骤的测试对象是什么? 24.需求分析与软件设计二个阶段任务的主要区别是什么? 25.说明软件测试和调试的目的有何区别?

26.简述软件工程管理主要管理的是项目的哪些方面?软件工程管理的目的是什么?

27. 为什么说软件维护是不可避免的?

28. 软件维护有哪些种类?这些不同类型的维护分别在什么情况下进行? 三、应用题(每题10分,共20分)

29.某公司为本科以上学历的人重新分配工作,分配原则如下:

(1) 如果年龄不满38岁,学历是本科,男性要求报考研究生,女性则担任行政工作。

(2) 如果年龄满38岁不满50岁,学历本科,不分男女,任中层领导职务,学历是硕士不分男女,任课题组组长。

(3) 如果年龄满50岁,学历本科,男性任科研人员,女性则担任资料员,学历是硕士不分男女,任课题组组长。 要求:画出判定表,并进行化简。

30.根据下列条件使用边界值分析法设计测试用例:

某一8位微机,其十进制整数定义为:以非零开头的数是十进制整数,其值的范围是-128~127,如123,-45,0。

“软件工程”练习题参考解答

第一章练习题答案

1. 软件是逻辑产品,而不是物理产品,在开发、生产、维护和使用等方面与硬件有着不同的特征。

2. 软件危机:在计算机软件的开发和维护过程所遇到的一系列严重问题 (诸如:

软件开发过程控制困难、软件交工不断延期、开发费用不断上升、软件维护困难、软件质量得不到保证等)。

产生的原因:由于软件本身的特点及开发软件的方式、方法、技术和人员造成的。

? 缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作的计划很难制定。

? 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误 。 ? 软件开发过程不规范。如,没有真正了解用户的需求就开始编程序。 ? 随着软件规模的增大,其复杂性往往会呈指数级升高。需要很多人分工协作,不仅涉及技术问题,更重要的是必须有科学严格的管理。 ? 缺少有效的软件评测手段,提交用户的软件质量不能完全保证。 解决软件危机的途径:

? 彻底消除“软件就是程序”的错误观念。

? 充分认识到软件开发应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。应按工程化的原则和方法组织软件开发工作。 ? 推广和使用在实践中总结出来的开发软件的成功技术、方法和工具。 3. 软件的发展阶段可大致分为三个阶段: ? 程序设计阶段 — 上个世纪50至60年代 ? 程序系统阶段 — 上个世纪60至70年代 ? 软件工程阶段 — 上个世纪70年代以后 每个阶段的特点: 1)程序设计阶段的特点 ? 生产方式:个体手工劳动 ? 生产工具:机器语言、汇编语言

? 开发方法:追求编程技巧,追求程序运行效率。 程序难读、难懂、难修改。

? 硬件特征:价格贵、存储容量小、运行可靠性差

? 软件特征:只有程序、程序设计概念,不重视程序设计方法。 2)程序系统阶段的特点

? 生产方式:作坊式小集团合作生产 ? 生产工具:高级语言

? 开发方法:仍旧注重个人技巧,但开始提出结构化方法。

? 硬件特征:速度、容量、工作可靠性有明显提高,价格降低,销售有爆炸性增长。

? 软件特征:程序员数量猛增,但缺乏训练、素质差,软件开发技术没有根本性突破,开发人员素质和开发技术不适应规模大、结构复杂的软件开发,导致了软件危机的产生。 3)软件工程阶段的特点 ? 生产方式:工程化生产

? 生产工具:使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件。

? 硬件特征:向超高速、大容量、微型化以及网络化方向发展。 ? 软件特征:开发技术有很大进步,但未能获得突破性进展,软件价格不断上升,但仍未能完全摆脱软件危机。

4. 运用先进的软件开发技术和管理方法来提高软件的质量和生产率,以较短的周期、较低的成本生产出高质量的软件产品,并最终实现软件的工业化生产。

软件工程是一种层次化的技术,其中过程、方法和工具是软件工程的三个要素。其中软件工程方法为软件开发提供了 “如何做” 的技术;软件工具为软件工程方法提供了自动的或半自动的软件支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务框架,它规定了完成各项任务的工作步骤。

5. 软件方法学是指组织软件生产过程的一系列方法、技术和规范。通常将软件开发全过程中使用的一整套技术方法的集合称为方法学(methedology),也称为范型(paradigm)。

目前使用最广泛的软件工程方法学:传统方法(结构化方法)和面向对象方法。

第二章练习题答案

1. 一个软件从开始计划起,到废弃不用为止,称为软件的生存周期。软件生存周期包括:计划、开发与运行3个时期,每一时期又可细分为若干更小的阶段。

将软件开发过程划分生存周期的目的:把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,就能够简化每一步的工作内容,使因为软件规模增长而大大增加了的软件复杂性变得较易控制和管理。

2.传统的瀑布模型把生存周期划分为:问题定义、可行性研究、需求分析、软件设计、编码、测试、运行维护阶段。 瀑布模型特点:

? 阶段间具有顺序性和依赖性 ? 推迟实现的观点 ? 质量保证的观点 瀑布模型优点:

? 可强迫开发人员采用规范的方法(例如,结构化技术); ? 严格地规定了每个阶段必须提交的文档;

? 要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 瀑布模型不适合需求模糊或需求经常变动的系统。当需求模糊或需求经常变动时,开发过程将会不断的回溯到以前的开发活动中,重新进行。

3. 快速原型法:首先建立一个能够反映用户主要需求的原型,让用户实际看一看未来系统的概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。然后将原型反复改进,最终建立完全符合用户要求的新系统。

其快速表现在开发原型时应使用快速开发工具在尽短的时间内构造出原型提供给用户。

4. 增量模型把瀑布模型的顺序特征与快速原型法的迭代特征相结合,将软件看作一系列相互联系的增量,在开发过程的各次迭代中,每次完成其中的一个增量。

螺旋模型在瀑布模型与快速原型的基础上,增加了风险分析,软件随着过程的进展而不断演化。

两者相似的是都是迭代开发模型,不同的是增量模型每次增加一个增量,而螺旋模型是本身不断的演化。

5. 面向对象的开发模型——构件集成模型。 第三章练习题答案

1.需求分析的任务:一是通过对问题及其环境的理解、分析和综合,建立分析模

型;第二是在完全弄清用户对软件系统的确切要求的基础上,用“软件规格说明书”把用户的需求表达出来。

分析阶段的任务是决定“做什么”而不是“怎样做”,就是说,明确用户需求是什么,而不考虑如何实现这些需求。 2.需求获取、需求提炼、需求描述、需求验证。

3.需求获取方法有:一常规的需求获取方法;二快速原型方法。 4. 结构化分析模型和面向对象的分析模型。

结构化分析工具:DD、DFD和PSPEC、E-R图、CFD、CSPEC和STD。 面向对象分析工具:用例图、类-对象图、对象-关系图、对象-行为图。 5.对于数据处理复杂的软件系统,若将整个系统的DFD图画在一张图中,则DFD图将非常庞大,通常是不可能的。为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。因此在需求分析中,常常用一组DFD图由粗到精地表示同一软件在不同抽象级别上的功能模型,因此系统的功能模型常由分层的DFD图组成。 画分层的DFD要遵循原则:

? 数据流图上所有图形符号只限于前述四种基本图形元素 ? 数据流图的主图必须包括前述四种基本元素,缺一不可 ? 数据流图的主图上的数据流必须封闭在外部实体之间 ? 每个加工至少有一个输入数据流和一个输出数据流

? 在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系

? 规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡 ? 可以在数据流图中加入物质流,帮助用户理解数据流图 ? 图上每个元素都必须有名字

? 初画时可以忽略琐碎的细节,以集中精力于主要数据流 第四章练习题答案

1. 概要设计主要任务是进行体系结构的设计、接口设计及全局数据结构的设计,

并编写概要设计文档。

详细设计的任务是过程设计和局部数据结构的设计,并编写详细设计文档。 大型软件的设计分为概要设计和详细设计两个阶段从管理角度上来讲易于项目的管理。

2.模块的独立性把软件划分为模块时要遵守的准则,也是判断模块构造是不是合理的标准间。坚持模块的独立性,一般认为是获得良好设计的关键。

模块独立性用模块的内聚和耦合来度量。

3.自顶向下设计:设计人员要对系统有一个全面的了解,然后从顶层开始,连续地逐层向下分解,直至系统的所有模块都小到便于掌握为止。

对于大型软件的开发,如若采用自顶向下的方法进行设计,可以很好的把握整体系统,使得系统整体结构合理。 第五章练习题答案

1. 把结构化的思想推广到分析阶段,形成了包括SA与SD在内的基于数据流的系统设计方法。

SD方法的中心任务就是把用DFD图表示的系统分析模型转化为软件结构的设计模型。

2.变换型DFD结构:这类系统有3个部分组成:传入路径、变换中心和传出路径。流经这3个部分的数据流分别称为传入流、变换流和传出流。

事物型DFD结构:这类系统的特征是具有在多种事务中执行某类事务的能力。当外部信息沿着接受路径进入系统后,经过事务中心(或处理)获得某一个特定值,就能据此启动某一条动作的操作。

3. 1)复审DFD图,必要时可再次进行修改或细化; 2) 鉴别DFD图的结构特征:事务?变换?

3) 按照SD方法规定的一组规则,把DFD图映射为初始的SC图 ; 变换型DFD图经过变换映射生成初始SC图; 事务型DFD图经过事物映射生成初始SC图。 4)改进初始的SC图,获得最终的SC图。

4.设计良好的软件通常具有中间大、两头小的瓮型结构。这类软件在下部收拢,表明它在低层模块中使用了较多高扇入的共享模块。

第六章练习题答案

1.使用选定的程序设计语言,把模块的过程性描述翻译为用该语言书写的源程序。

2.在选择编程语言时,可以考虑以下因素。

(1) 应用领域:目标系统的应用领域不同,需要采取的系统开发范型也不同,所以要考虑支持相应范型的编程语言。 (2) 系统用户的要求。 (3) 编程语言自身的功能。 (4) 编码和维护成本及开发环境。 (5) 编程人员的技能。 (6) 软件可移植性。 3. 编码风格:

1)源程序文档化; 2)数据说明的标准化; 3)语句结构简单化; 4)输入/输出规范化。

4.程序的质量与软件生命周期的各个阶段都有密切的关系。

5.良好的编码风格使程序具有良好的可读性,使得程序具有良好的可维护性、可修改性。

第七章练习题答案

1. 程序测试是为了发现错误而执行程序的过程。

测试的目的是发现程序的错误。

测试的任务是通过执行程序,暴露潜在的错误。

测试与纠错的区别:测试是发现错误,而纠错的目的是定位和纠正错误,其任务是消除软件故障,保证程序的可靠运行。

2.软件测试存在着两种立场:用户的立场和开发者的立场。 基于不同的立场,存在着两种完全不同的测试目的:

? 从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。

? 从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。

3. 1)挑剔性:抱着为证明程序有错的目的去测试。

2)复杂性:设计测试用例是一项需要细致和高度技巧的工作。

3)不彻底性:程序测试只能证明错误的存在,但不能证明错误不存在。 4)经济性

4.软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间。需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。

5.静态分析不实际运行程序,大多采取代码评审的方式进行检查,而动态测试需要在计算机上实际运行程序进行测试。

6.代码评审和动态测试方法应结合起来使用,能够更有效的发现程序中的错误。 7.黑盒测试是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。黑盒测试又称为功能测试或数据驱动测试。

黑盒测试方法有:等价分类法、边界值分析法、错误推测法等。

8. 白盒测试以程序的结构为依据,又称为结构测试。早期的白盒测试把注意力放在流程图的各个判定框,使用不同的逻辑覆盖来表达对程序进行测试的详尽程度。随着测试技术的发展,人们越来越重视对程序执行路径的考察,并且用程序图代替流程图来设计测试用例。

常用的白盒测试方法有:逻辑覆盖、路径覆盖、基本路径测试。 9. 多模块程序测试的层次性源于错误的多样性: ? 单元(模块)测试(unit testing) ? 综合(集成)测试(integration testing) ? 确认测试(validation testing) ? 系统测试(system testing) 10. 纠错策略有:试凑法、跟踪法、推理法。

常用的纠错技术有:插入打印语句、设置断点、掩蔽部分程序、蛮力纠错技术。

11.1)规定测试策略和应达目标 2)规定至少要查出的错误数量 第八章练习题答案 1. 统一标准 ? 面向对象

? 可视化,表达能力强大 ? 独立于过程 ? 容易掌握使用

? 与编程语言的关系:支持UML的一些CASE工具可以根据 UML所建立的系统模型自动产生Java、C++ 等代码框架。 2.UML模型由事物、关系和图组成。

3. 事物是对模型中最具代表性成分的抽象,在UML中,可以分为结构事物、行为事物、分组事物和注释事物4类。 4. UML规范定义了6种类型的图: ? 用例图 ? 类 图 ? 交互图 ? 状态图 ? 活动图 ? 实现图 第九章练习题答案

1.对象:是现实世界中个体或事物的抽象表示,是其属性和相关操作的统一封装体。

类:用于表示某些对象的共同特征,可将具有相同特征和相同操作的对象组成类。 类是对象的抽象,对象是累的实例。 2. 用例模型、对象模型、交互模型。

3.复杂问题(大型系统)的对象模型应该由5个层次组成:主题层(也称为范畴

层)、类-对象层、结构层、属性层和服务层。 4. 顺序图、协作图、状态图。 第十章练习题答案

1. 设计阶段的主要任务是数据设计、体系结构设计、接口设计和过程设计。在OOD中,数据和过程被封装为类/对象的属性和操作;接口被封装成为对象之间的消息;体系结构的设计表现为具有控制流程的对象间的协作。 2.面向对象的设计过程由下列步骤组成: (1) 系统设计

(2) 对象设计 (3) 消息设计 (4) 复审设计模型

3. 面向对象的设计包括:子系统设计、类及对象设计、消息设计、责任设计。 4. 面向对象的子系统设计里把子系统分为下列4种: ? 问题域子系统:直接负责实现客户需求的子系统; ? 人机交互子系统:实现用户界面的子系统;

? 任务管理子系统:负责控制和协调并发任务的子系统; ? 数据管理子系统:负责对象的存储和检索的子系统。 第十一章练习题答案

1.维护有4个种类:完善性维护、适应性维护、纠错性维护、预防性维护。

1)完善性维护:在使用期间为了满足用户不断增长的需要,对产品进行完善和加强产品的功能与性能时,对软件做出的修改。

2)适应性维护:使软件适应运行环境的改变,而需对软件进行的修改。 3)纠错性维护:当需纠正在开发期间未能发现的遗留错误,而对软件进行的修改。

4)预防性维护:为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化,而主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰,而需对软件进行的修改。

2. 软件纠错是在开发阶段做的工作,而纠错性维护是在维护阶段做的工作。 3.对软件中的错误进行修改时,使得软件中的错误反而增加的情况,叫做软件修

改的副作用。

有三种修改的副作用:修改编码的副作用、修改数据的副作用、修改文档的副作用。

4.软件再工程就是将新技术和新工具应用于老的软件的一种较“彻底”的预防性维护。

软件再工程定义了6中主要的活动:信息库分析、文档重构、逆向工程、代码重构、数据重构、正向工程。 第十二章练习题答案

1.软件工程管理主要体现在软件的项目管理中,包括对于费用、质量、人员和进度等四个方面的管理。

软件工程管理的目的:按预定的时间和费用,完成软件的计划、开发和维护。 2.“时间和人员不能交换”,当开发人员以算术级数增长时,人员之间的通信将以几何级数增长,从而可能导致“得不偿失”的结果。

3.软件的资源估算模型有:静态单变量资源模型、Putnam资源模型、COCOMO模型。

4.软件成本估计的方法:自顶向下成本估计、由底向上成本估计、算法模型估计。 5. Gantt图和计划评审技术(PERT技术) 第十三章练习题答案

1.质量检验阶段、全面质量管理(TQC )阶段、质量认证阶段。 质量检验阶段:每一工序完成后进行检验,属于事后检验。

全面质量管理(TQC )阶段:把质量管理活动从单纯的“事后检验”向前、后延伸到生产的全过程。全面质量管理中的“全面”包含了“全过程控制”和“企业全员参加”两层意思。

质量认证阶段:把对于个别产品的质量保证扩展到对于整个企业质量体系的认证。

2.软件的质量标准可用软件的质量属性来表示。 3.三种质量模型:

1)我国国家标准GB/T16260—1996:规定了6项软件质量属性。 2)T.McCall:规定了7项软件质量属性。

3)B.Boehm:规定了11项软件质量属性。

4. 软件的可靠性R(t):在给定的时间内,程序按照规定的条件成功地运行的概率。

当软件故障率λ大时,软件的可靠性R(t)将随之下降。两者的关系是: R(t)=e-λt

5. MTTF是系统的平均故障间隔时间MTTF (Mean Time To Failure)。

在故障率为常量的情况下,MTTF=1/λ

6.常用的容错技术有:结构冗余、时间冗余、信息冗余。 模拟试卷一答案

题号 答案 题号 答案 1 C 11 B 2 B 12 A 3 B 13 D 4 A 14 B 5 C 15 C 6 A 7 B 8 C 18 D 9 A 19 A 10 C 20 D 16 17 C D 21. 软件生命周期由软件计划时期、开发时期和运行时期3个时期组成,每个时期又包括若干阶段。计划时期包括问题定义、可行性研究两个阶段,开发时期包括需求分析、软件设计、编码、测试四个阶段,运行时期只包括运行/维护阶段。 22. 由四种成分组成:加工、数据存储、数据流、数据的源点和汇点。

23. 软件设计由体系结构的设计、接口设计、数据设计和过程设计4各方面组成。 24. 软件测试是发现程序错误的过程,其任务是通过执行程序,暴露程序中潜在的错误。

软件调试是改正错误的过程,其任务是通过执行程序,消除软件故障,保证程序的可靠运行。

25. 黑盒测试是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。黑盒测试常用方法有逻辑覆盖、路径测试及错误推测法。 26. 当需对原有软件进行功能扩充或性能改进时,需对软件进行完善性维护。 27. 三种:

(1) 我国国家标准《软件产品评价、质量特性及使用指南》(GB/T16260—1996)、

规定了6项软件质量属性。

(2) T.McCall:规定了7项软件质量属性。 (3) B.Boehm:规定了11项软件质量属性。

28. 软件的可靠性即在给定的时间内,程序按照规定的条件成功地运行的概率。

软件可靠性与故障率的关系:当运行时间一定时,故障率越高,可靠性越差。 29.

1)划分等价类如下:

有效等价类 ①车牌上由7个字符组成 无效等价类 ⑤ 0个字符 ⑥ 小于7个字符 ⑦ 大于7个字符 ②为首的字符限定为汉字“京” ③第2字符可任选一字母(A~Z) ④第3~7字符可选任意数字 2)设计测试用例

测试数据 京A12345 空字符 京B234 京A123456 沪B12345 沪123456 京CBA123 注:测试用例不唯一。 30. 收费标准表:

A类 不打折 收费判定表:

B类 9折 C类 8折 D类 7折 预期结果 有效数据 无效数据 无效数据 无效数据 无效数据 无效数据 无效数据 覆盖等价类 ①②③④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑧ 第一个字符不是汉字“京” ⑨ 第2 字符不是字母( A~Z) ⑩ 第3~7字符不是数字字符

非会员 条件 会员 一次购物累计额 一次购物累计额 一次购物累计额 一次购物累计额 <100元 ≥100元 B类 <1000元 C类 ≥1000元 D类 收费标准 A类 测试用例不唯一,无标准答案。

模拟试卷二答案 题号 答案 题号 答案 1 A 11 A 2 C 12 D 3 D 13 D 4 A 14 D 5 B 15 C 6 B 7 D 8 D 18 B 9 A 19 D 10 A 20 D 16 17 D C 21. 软件危机的原因:主要由于软件本身的特点及开发软件的方式、方法、技术

和人员造成的。

? 缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作的计划很难

制定。

? 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误 。 ? 软件开发过程不规范。如,没有真正了解用户的需求就开始编程序。 ? 随着软件规模的增大,其复杂性往往会呈指数级升高。需要很多人分工协作,

不仅涉及技术问题,更重要的是必须有科学严格的管理。

? 缺少有效的软件评测手段,提交用户的软件质量不能完全保证。 22. 结构化程序设计的主要思想:自顶向下、逐步求精,在程序中采用基本控制结构以及单入口、单出口。

23. 软件测试的步骤:单元测试->集成测试->确认测试->系统测试。测试对象分别为:源程序及详细设计说明书、详细设计说明书和概要设计说明书、概要设计说明书和需求规格说明、用户要求。

24. 需求分析与软件设计二个阶段任务的主要区别:需求分析的任务是要搞清用户要“做什么”,搞清用户的真实需求;软件设计的任务是要明确“怎么做”,即怎样去实现用户的需求。

25. 软件测试是发现程序错误的过程,其任务是通过执行程序,暴露程序中潜在

的错误。

软件调试是改正错误的过程,其任务是通过执行程序,消除软件故障,保证程序的可靠运行。

26. 软件工程管理主要体现在软件的项目管理中,包括对于费用、质量、人员和

进度等四个方面的管理。

软件工程管理的目的:按预定的时间和费用,完成软件的计划、开发和维护。 27. 软件是智力劳动的结晶,是一种逻辑产品,在软件开发的各个阶段都可能会

引入缺陷或错误,尽管在软件测试阶段花费了大量的工作去发现软件中的错误,但是还是不能排除掉软件中的所有错误,因此在软件交付用户运行后不可避免地会出现各种问题,从而需对软件进行维护。

28. 维护有4个种类:完善性维护、适应性维护、纠错性维护、预防性维护。

1)完善性维护:在使用期间为了满足用户不断增长的需要,对产品进行完善和加强产品的功能与性能时,对软件做出的修改。

2)适应性维护:使软件适应运行环境的改变,而需对软件进行的修改。 3)纠错性维护:当需纠正在开发期间未能发现的遗留错误,而对软件进行的修改。

4)预防性维护:为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化,而主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰,而需对软件进行的修改。

29. 年龄<38 本科 硕士 本科 硕士 本科 硕士 男 女 男 女 男 女 男 女 男 女 男 女 T 报考 T 担任 T T T T T 任科 T 担任 T T 条 件 38≤年龄<50 年龄≥50 职位安排方案 任中层领导职任课题组组长 任课题组组长 研究生 30. 测试用例不唯一,无标准答案。 行政工作 务 研资人料员 员

本文来源:https://www.bwwdw.com/article/qjhr.html

Top