软件工程

更新时间:2024-05-20 18:53: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的事务分为几类?

第六章练习题答案

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/y8h7.html

Top