第1章 名词解释
1、软件开发工具:在高级程序设计语言(第三代语言)的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、成文和管理各阶段,对软件开发者提供各种不同程度帮助(支持)的一类广泛的软件。
2、第一代语言:即机器语言,是用0、1组成的二进制字符串书写的程序,用纸带等光电设备或通过控制台上的扳键送入机器,得以存储和执行。 3、语言(4GL):语言的原意是非过程化的程序设计语言。针对以处理过程为中心的第三代语言,它希望通过某些标准处理过程的自动生成,使用户可以只要求做什么,而把具体的执行步骤的安排交给软件自动处理。 4、CASE工具:CASE工具指“计算机辅助软件工程”或“计算机辅助系统工程”,它的基本思想与软件开发工具完全一致,即应用计算机自身处理信息的巨大能力,帮助人们开发复杂的软件或应用系统。 5、所见即所得:“所见即所得”原则力图实现编程工作的可视化,即随时可以看到结果,程序的调整与后果的调整同步进行。 6、需求分析:从用户提出的初始要求出发,经过大量的调查研究,抽象出应用领域中实际的信息需求,设计出在计算机系统内外的、合理的信息流程,并规定软件的功能与性能要求,最后形成严格的、明确的、可供实际开发使用的“软件功能说明书”,这个阶段称为需求分析。
7、总体设计:根据软件功能说明书的要求,完成软件的总体设计,包括整个软件的结构设计、公用数据库文件或数据库的设计、各部分的连接方式及信息交换的标准等。
8、结构设计:所谓结构设计是把软件划分成若干个模块,指定每个模块的功能要求以及它们之间的相互关系。
9、模块测试:根据整体设计时制定的各个模块的设计任务书,对程序员完成的模块进行验收,看它们是否实现了所要求的功能和性能指标。
10、总体测试:每个模块都达到了设计任务书的要求后,还要测试整个系统是否达到了预期的目标,另外还要检查完成的软件与编写的文档是否一致,这个工作成为总体测试。
11、设计工具:设计工具是最具体的,它是指在实现阶段对人们提供帮助的工具,是最直接帮助人们编写与调试软件的工具。 12、分析工具:分析工具主要指用于支持需求分析的工具。它帮助人们认识与表述信息需求和信息流程,从逻辑上明确软件功能与要求。
13、计划工具:计划工具从宏观角度看待软件开发,它不仅从项目管理的角度帮助人们组织与实施项目,而且把有关进度、资源、质量、验收情况等信息管理起来,同时考虑到了项目的反复循环、版本更新,实现了“跨生命周期”的信息管理与共享,为信息和软件重用创造了条件。
14、工具的可靠程度:软件开发工具应具有足够的可靠性,即在各种各样的干扰下仍能保持正常工作,而不致丢失或弄错信息。
第2章 名词解释
1、软件危机:指随着软件功能越来越多,规模越来越大,复杂性越来越高,引出一系列问题:软件产品交付拖延、错误多、不可靠、费用增大、不能适应应用变化等,因此怀疑大型软件的复杂性是否超越了人的处理能力。
2、水波效应:因修改程序带来的连带影响。当人们修改程序的某一处时,由于没有充分考虑到这一修改对相关部分带来的影响,结果出现了新的错误。
3、黑箱检验:输入一些信息,通过观察是否能得出预期输出来判断软件是否正确的一种软件测试方法。黑箱检验只能证明程序有错,而不能证明程序没错。
4、模块的凝聚性:模块的功能在逻辑上尽可能的单一化、明确化,最好做到模块与任务的一一对应,即每个模块完成一个任务,反之每一项任务仅由一个模块来完成。这也称为模块的凝聚性。 5、模块间的耦合(耦合性):模块之间的联系及相互影响称为耦合。
6、模块间逻辑耦合:如果模块间传递的是控制信号,则称模块间具有逻辑耦合。
7、(对象的)封装性:把对象的静态属性和相关操作作为一个整体,对外不必公开这些属性与操作。
8、(对象的)遗传性:对象所具有的性质,包括静态属性和动态操作,自然地成为其子类的性质,不必加以重复说明或规定。
1
9、即插即用程序设计:即插即用程序设计是一种软件开发方法,它的基本思想是用制造硬件的思路来生产软件。一部分人专门生产软件组件,一部分人设计整个软件结构,并且把软件组件插入这个结构,以便迅速完成大型软件的研制工作。 10、开源软件:开放源代码的软件。由开发者或知识产权所有者开放该功能模块的源代码,提供给后续开发者免费使用。
第3章 名词解释
1、概念模式:指人们在认识事物过程中,对某一事物或某一系统形成的抽象的、一般化的概念框架。
2、概念模式的两重性:概念模式是在客观事物或系统的基础上形成的,在某种程度上反映了客观现实。但它又不等同于客观事物本身,因为它常常是抽象出的某一事物的部分属性,所以往往只反映事物的某一方面。至于选取那些属性或哪些方面,还决定与观察者本身的目的与状态。所以概念模式又具有主观性。
3、框图:框图是人们在编写软件时最早使用的一种概念模式,它用来描述程序执行的逻辑过程。
4、结构图:结构图是描述大型软件的层次结构(模块的结构)的概念模式。它以模块调用关系为线索,从宏观上使人一目了然地掌握软件的全貌。
5、数据流程图:数据流程图是描述系统信息流程的一种概念模式,它描述系统的信息来源、存储、去向的全面情况。它的基本思想是把信息流看作一个组织或系统运作的线索,力图简明扼要地勾画出全局。
6、实体关系图:是一种用于描述静态数据结构的概念模式,它以实体、关系、属性三个基本概念概括数据的基本结构。 7、数据字典:是一种用于描述数据内容的概念模式,它用表格的形式列出数据的基本属性以及相互关系。 8、时序网络(Petri Net):主要用于描述系统状态及其转换方式的概念模式,常用于一些实时控制方面的软件的功能。 9、数学与逻辑模型:用于描述客观世界的状态与规律的概念模型,具有严格、准确、可计算性的特点,一般只能描述比较单纯、基础的功能。决策表和决策树是常用的两种表达方式。
10、计算机模拟模型:利用计算机大量、高速处理信息的能力,在计算机内设置一定的环境,用程序来表现客观系统中的某种规律与规则,这样计算机就可以高速运行,以便人们观察与预测客观系统的状况。
11、信息库:信息库是针对软件开发或信息系统开发中的大量信息管理工作提出来的,它是存放软件开发全过程中所有有用信息、并随着项目进展而不断修改与补充的数据集合。
12、项目管理:指与固定的生产线上的日常生产活动不同的、具有更大变动性、时间性的一类管理任务。
13、版本管理:实现软件工程的跨周期管理,保持系统功能在时间上的一致性,功能逐步完善,成果不丢失,可回溯,可重用,使系统在局部和整体上保持一致性的管理工作。
第4-6章 名词解释
1、软件配置(集成)问题:软件配置或集成问题的实质是设立一个有效的总控部分,能够在各个具体工具之上实现信息的正确传递与转换,帮助人们完成软件开发各阶段的协调与配合工作,从而形成一个统一的、完整的支撑环境,并通过一个统一的、友好的人机界面与用户对话。
2、信息流通模型:用需求分析阶段建立的逻辑模型来表达信息的来源、去向、存储及处理的逻辑过程。 3、代码生成器:代码生成器的基本任务是根据设计要求,自动或半自动地生产相应的某种语言程序。 4、项目数据库:项目数据库是信息库的一部分,它记录项目本身进展的各种信息。 5、(软件)审计:审计是对一个系统的运行状况及效率进行检测与评价,以便进一步用好或改进这个系统。
6、开发工具的工作环境:软件开发工具都是在一定的工作环境中工作的,包括硬件配置、系统软件、数据库管理系统、网络通信条件等。
7、软件开发工具的网络化:软件开发工具的网络化是指人们在异地利用网络合作开发同一个软件,利用网络实现信息的交流与共享,实现软件重用,并进行项目管理。
8、软件开发工具的标准化:软件开工具的标准化是指软件构件的标准化以及用标准构件组成大型软件结构的标准化。
9、软件开发工具的智能化:软件开发工具的智能化就是在软件开发工具的研究与使用中引用人工智能、神经网络等技术,使得软件开发工具对于不确定的信息、模糊信息具有更强的处理能力。
10、软件开发工具的一体化:软件开发工具的一体化就是集成化,是指利用统一的信息库,将支持软件开发各个阶段的专用
2
工具集成为一个整体,对软件开发的全过程给予帮助和支持。
第7-13章 名词解释
1. 运行时内核:Eclipse中的平台运行库是内核,它在启动时检查已安装了哪些插件,并创建关于其注册表信息。
2. JDK:Java开发工具,是一个写Java的applet和应用程序的程序开发环境。它是整个Java的核心,包括了Java运行环
境、Java工具和Java基础的类库。
3. Eclipse CDT:专门用于编写C和C++程序的Eclipse开发环境。
4. Eclipse工作台:Eclipse工作台是一个高级用户界面,它为用户提供了一个整体架构和可扩展的用户界面。它是使用标
准窗口工具包(SWT)和一个更高级的API(JFace)来构建的。
5. Eclipse工作空间:工作空间是Eclipse在用户计算机磁盘上划出的一块区域,用来存放用户工作资料,如代码、配置信
息等。
6. Eclipse的视图:视图是Eclipse工作台中的一个可视化的组件,它提供了用户正在工作台中使用的一些对象的详细信息。
通常用来浏览工作台中的资源,显示编辑器中的属性,显示程序状态等。
7. 导航器视图:又称资源管理器,显示当前Eclipse集成环境中加载的所有项目和各个项目中的文件列表。
8. 大纲视图:显示当前活动编辑器中所打开文件的纲要,如函数、变量等的视图,其内容是特定于某个编辑器的。 9. 控制台视图:显示程序运行结果的视图。
10. 错误视图:编写代码时,显示程序中的错误,提示用户及时改正的视图。 11. 搜索视图:显示用户搜索结果的详细信息的视图。 12. 任务视图:显示程序代码中未完成的任务的视图。
13. 编译器:编译器是工作台中的一个可视化组件,是用来处理各种文档的,它允许用户打开、编辑、查看和保存文档对象。 14. 项目:在Eclipse集成开发环境中,每个小程序都是以项目为单位存在的,源代码、注释、配置文件、各种文件夹等都封
装在项目里。
15. 归档文件:包括通过Jar命令或War命令打包后形成的压缩文件。 16. 文件系统:指操作系统文件夹中的各类文件。
17. 首选项文件:用户可以通过首选项文件来个性化定制Eclipse 。
18. MinGW编译器:MinGW是指用来生成纯粹的Win32可执行文件的编译环境,它是以GNU为基础的开发C/C++项目的
工具集,能够提供C/C++所需要的头文件和库文件。
19. 浏览功能:浏览功能可以从多个角度快速查看并定位到程序中的各个元素,包括代码的层次结构、调用关系、继承关系
等。
20. 打开变量声明:Eclipse提供的浏览功能,可以从变量的任意引用位置直接定位到变量的定义行。
21. 打开类型层次结构:Eclipse提供的浏览功能,可以快速打开程序中已经在使用的特定数据类型及其相关继承结构。 22. 打开调用层次结构:Eclipse提供的浏览功能,可以浏览函数的定义与调用层次关系并快速定位到需要的函数。 23. 文件包含浏览器:用于浏览程序中包含的头文件。
24. 打开元素:Eclipse将命名空间、类、结构、类型定义符、函数、变量等定义为元素,通过浏览功能,可以迅速打开需要
的元素。
25. 重构功能:使用Eclipse 重构功能,可以在不影响程序行为的情况下进行系统范围内的代码更改。
26. 抽取方法:将程序中多次出现的代码段抽取出来形成方法,可以减少代码的长度并增加程序的可读性和易维护性,同时
使方法的调用清晰简单。
27. 抽取常量:抽取常量是将程序中的数字、字符等定义为常量,使得对常量的调用和修改变得简单。
28. GDB:GDB是GNU开源组织发布的一个强大的UNIX (不仅限于UNIX )工具,搭配MinGW使用,可以使用户完
成整个C/C ++程序的编译和运行工作。
29. 断点:断点是程序调试中的重要概念,它可以使程序在运行到断点位置时自动暂停并且显示程序的当前状态。 30. 方法断点:对某个方法或函数设置断点,在程序运行到该方法的第一行时自动暂停。
31. 事件断点:在程序运行过程中发生特定事件时(如异常触发、线程启动、线程退出等)将程序暂停。 32. 调试视图:显示当前调试的程序的线程和所处的状态。
3
33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50.
变量视图:显示整个调试过程中程序变量值的变化情况,变量视图是帮助程序员差错和纠错的主要手段。 单步遍历程序:单步遍历程序可以让用户逐行地运行整个程序。
单步跳入:线程将运行所在行的程序,并在下一个可暂停位置后暂停执行。 单步跳过:线程将跳过该行,并运行至下一个可暂停位置后暂停执行。
单步返回:单步返回仅对函数调用时有效,如当main函数调用其他函数时,执行单步返回操作即可跳出该函数,返回main函数继续执行调试。
格式化代码:格式化代码功能可以帮助用户将凌乱的程序代码格式化为自己习惯的排列方式。
版本控制软件:版本控制软件能够完整的保存软件开发中对应用程序每一个源文件所有的修改记录。
并发版本控制系统CVS:使用CVS可以对代码进行集中管理,记录代码所有的更改历史,提供协作开发的功能并支持多人同时修改代码文件。
互斥性修改:某一程序在同一时间只能由一个开发人员修改。
CVS资源库:资源文件的集合。即软件资源的存放地,是放置开发的代码并对其进行控制管理的一个文件夹。
工作备份:用户对资源的修改不是直接在Server端进行的,而是根据资源库的内容创建一个本地的工作备份,用户在工作备份中工作,工作完成后再将修改的内容提交到资源库。
提出(签出)Check Out:获得工作备份的操作。从CVS资源库中复制一个软件镜像到本机的工作空间中,此时代码和CVS中的代码是一致的。这项技术称为“提出”。 提交:将对工作备份的修改反映到资源库中的操作。
代码同步:程序开发过程中,本地代码和CVS资源库代码可能会产生差别,这可能是代码之间存在增减或冲突等关系造成的,代码同步操作可以使代码保持一致。
CVS中的冲突:在资源库与工作备份之间状态不一致的状态下进行签入或更新操作时,版本管理系统可能会尽量进行合并,如果版本管理系统不能完全处理上述不一致,就称之产生了冲突。
插件:插件是一种遵循其所依附的软件的接口规范所编写出来的程序,是对原有软件的扩展。
惰性导入机制:在Eclipse启动时,仅加载必要的核心,其它的功能插件使用时才加载进来,这样节省了大量的导入和初始化插件的时间,提高了Eclipse平台的运行效率,这一机制称为惰性机制。
PDE:插件开发环境,帮助开发者创建、开发、测试、调试和部署插件,同时提供开发片段、功能部件和更新站点的工具,协助开发者完成插件开发的全过程。
第14章 名词解释
1、UML:统一建模语言,是一种面向对象的建模语言,它提供了描述软件系统模型的概念和图形表示法,采用了面向对象的技术和方法,体现面向对象的分析与设计风格。它可以实现大型复杂系统各种成分描述的可视化、说明并构造系统模型,以及建立各种所需的文档,是一种定义良好、易于表达、功能强大且普遍适用的建模语言。
2、抽象:抽象是人们认识客观世界复杂性的一种基本方法。抽象是事物或现象的简括描述,突出事物或现象之间的共性,而暂不考虑它们之间的差异。
3、方法:方法是驻留在对象中的过程。方法是当对象接受消息时执行的操作,方法还能发送消息至其他请求动作或信息的对象。
4、类:类是对一组几乎相同的对象的描述。
5、属性:属性由静态的数据组成,用以描述类和对象所固有的特征,是类和对象的性质。
6、封装:封装即信息隐藏。封装使一个对象形成两个部分:接口部分和实现部分。对用户来说,接口部分是可见的,而具体实现部分则不可见。
继承:继承指对象继承它所在类的结构。体现了父类和子类之间的共享机制。子类可以继承其父类的特性,同时可以有自己的新特性和新方法。
多态:多态指不同事物具有不同表现形式的能力,多态机制使具有不同内部结构的对象可以共享相同的外部接口,不同对象接到同一个消息可以产生完全不同的结果。
7、组件:组件是一个可重用的软件构件,一个预先构建的封装的代码模块,它能够与其他组件或硬编码一起很快地生成定制的应用程序。
4
8、视图:视图是从不同角度来观察待建模的系统。它是由多个图表组成的抽象体。 9、使用事件视图(用例视图):从系统外部使用者对系统的需求来描述该系统工程所应具备和完成的功能,是UML的核心视图。
10、逻辑视图:用于描述系统内实现的逻辑功能。它描述了系统的静态结构关系和系统内的动态协作关系。 11、组件视图:从系统实现的角度描述模型对象间的关系。
12、配置视图:用于说明系统的物理配置,如所用的计算机和设备以及相互间的连接关系。 13、用例图:用于描述外部项与系统提供的使用事件之间的联系。 14、类图:用于描述系统的静态结构。
15、对象图:用于表述系统的静态结构。它使用与类图一样的符号表示, 但不是同一种图,对象图表示的是类中的许多对象实例,而不是类本身。
16、状态图:用于说明类中的对象可能具有的状态,以及由事件引起的状态改变。
17、顺序图:用于描述对象间的动态协作关系。由一条纵线上的一些对象组成,以时间流动为方向,表达对象间消息的交换。 18、协作图:用于描述对象的动态协作关系。 19、活动图:用于描述系统活动的流程。
20、组件图:用于描述组件代码的物理结构。可以是代码组件、二进制文件或任意可执行的组件。 21、配置图:用于描述系统中软件和硬件的物理结构。 22、模型元素:各种图表中所用的概念符号称为模型元素。
23、UML的基本机制:UML的基本机制表现为各种图表上的附加信息,用于描述那些模型无法表达的内容。包括修饰、注释、说明三种方式。
简答题 第一章
1、什么是软件开发工具?
在高级程序设计语言的(第三代语言)的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、成文和管理各方面,对软件开发者提供各种不同程度的帮助的一类广泛的软件。
软件开发工具概念要点有三:
(1)它是在高级程序设计语言(第三代语言)之后,软件技术进一步发展的产物;
(2)它的目的是在人们开发软件过程中给予人们各种不同方面、不同程度的支持或帮助; (3)它支持软件开发的全过程,而不是仅限于某个特定的阶段。 2、简述计算机软件发展的几个阶段。
四个阶段:
第一代计算机语言——机器语言阶段。 第二代计算机语言——汇编语言阶段。
第三代计算机语言——高级程序设计语言,过程化语言 计算机语言——非过程化语言(4GL) 3、简述软件工作的重要性和困难性。
软件工作的重要性越来越为人们所认识,软件是计算机的灵魂,是广大使用者与计算机之间的桥梁,是人类在各个领域中积累的知识的结晶,是人类文明与知识得以延续的新的载体,是人类进一步成为一个整体、得以进一步相互联系的纽带。
人们在认识到软件工作的重要性的同时也越来越认识到了它的困难性。这就是所谓的“软件危机”问题。人类社会和客观世界的复杂性,决定了软件本身的复杂性;人类知识的丰富多彩,决定了软件的多样性;客观世界的动态性,决定了软件对可维护、可重用性越来越高的要求。面对规模日益扩大的软件,如何保证它的正确性、可靠性,如何控制软件开发的进度与成本,成为十分重要的课题。 4、简述软件开发工具的演变过程。
软件开发工具的演变是从无到有,从分散到集中的过程,是软件发展的必然趋势。主要分为四个阶段: 第一阶段:利用通用软件作为辅助工具的阶段——没有专用软件开发工具的阶段。 第二阶段:专用的软件开发工具阶段。如:
5
第三阶段:集成的软件开发工具阶段。如:
第四阶段:面向网络和开源软件的软件开发工具阶段。 5、试述用通用软件辅助软件开发的弱点。
用通用软件来帮助开发人员编写文档或画图可以减少很多工作量,但是与软件开发工作相比,这种帮助实在太表面、太初级了。用通用软件帮助软件开发有三个主要弱点:
(1)许多工作通用软件无法完成。
(2)用通用软件完成某些工作,只能表现其表面的形式,不能反映其逻辑内涵(形似,神不似)。 (3)常遇到难于保持一致性的困难。
6、集成化的软件开发工具是在什么背景下产生的?
大批专用软件开发工具的出现并未解决一致性的问题。其根源在于对软件的开发缺乏全面的、统一的支撑环境。这些零散的、分散的支持软件开发各个阶段、各项具体工作的专用工具之间没有有机的联系起来,必然造成冲突与矛盾。这对用户造成了沉重的负担,以致抵消了使用工具带来的益处,从而导致集成软件开发工具的产生。 7、试述软件开发工作的发展变化。
软件开发工作的发展变化主要有五个阶段:
(1)最初阶段——把用户已经明确表述出来的算法,用机器语言写成一系列机器指令,供硬件运行使用。 (2)第二阶段——编程工作改为汇编语言进行,编好的指令由汇编程序转化为机器指令,再交硬件执行。
与用户的距离近了。
(3)第三阶段——汇编语言换成了高级程序设计语言(第三代语言),不再与机器指令一一对应,更加接近自然语言,离机器更远了,离用户更近了。
(4)第四阶段——以应用软件开发工具为标志,把需求分析纳入了软件开发工作中,进一步扩大了软件开发的范围。
(5)新阶段——规模更大、应用更广的阶段,大量开源软件出现,总体设计的作用进一步加强,并出现了软件构架师的概念。
8、试述现阶段软件技术的特点(作为软件技术发展的一个新阶段,使用软件开发工具与以往的区别)
(1)自动化程度的提高。由于代码生成等技术的应用,在一些特定条件下,可以较容易地自动生成第三代语言(或更低的语言)的代码,从而大大节省人力和时间。
(2)明确地把需求分析纳入软件工作范围之内,从而使软件开发过程进一步向用户方面延伸,离用户更近了。这是软件技术向前迈进的重要一步。
(3)把软件开发工作延伸到项目及版本管理,从而超出了一次编程的局限,而扩大到了作为一个不断发展的客体的生长完善的全过程。这也是软件研制从个体的、手工作坊的方式向科学的、有组织、有计划的方式转变的一个重要表现。
(4)吸收了许多管理科学的内容与方法,如程序员的组织,质量的控制,使软件开发技术不再只是讨论单个程序员自己工作的技术与方法问题,而是把组织、管理等项目负责人的思想与方法放到了更重要的位置。
总之,软件开发工具的提出与使用,是软件技术发展的一个新阶段。 9、软件开发一般分为哪几个阶段?其主要任务和形成的文档是什么? 开发阶段 主 要 任 务 从用户提出的初始要求出发,经过大量的调查研究,抽象出应用领域中实际的信息需求,设计出在计算机系统内外的、合理的信息流程,并规定软件的功能与性能要求,最后形成严格的、明确的、可供实际开发使用的“软件功能说明书”。 根据软件功能说明书的要求,完成软件的总体设计,包括整个软件的结构设计、公用数据库文件或数据库的设计、各部分的连接方式及信息交换的标准等。 两个并行的工作:程序的编写与文档的编写 完成模块的调试与整个软件的联调 文 档 需求分析 软件功能说明书 总体设计 系统的总体设计文件(结构图、模块清单、公用数据结构)和各个模块的设计任务书 程序代码、文档(使用说明、用户手册) 测试报告 实现阶段 测试阶段 10、什么是功能?软件开发工具应具有什么样的功能?
功能是软件能做什么事。软件开发工具的主要功能:
6
(1)认识与描述客观系统
(2)存储与管理开发过程中的信息 (3)代码的编写与生成 (4)文档的编制或生成 (5)软件项目的管理
11、什么是性能?软件开发工具重要的性能指标有哪些?
性能是软件能把事情能做到什么程度。性能指标主要有: (1)表达能力或描述能力 (2)保持信息一致性的能力 (3)使用的方便程度 (4)工具的可靠程度
(5)对软、硬件环境的要求 12、试述软件开发工具的类别。
1)按支持的工作阶段把软件开发工具划分成三类:
(1)设计工具:在实现阶段对人们提供帮助,是最直接帮助人们编程、调试软件与编写文档的工具。如各种代码生成器,语言和测试的工具等。
(2)分析工具:主要用于需求分析的工具,帮助人们认识与表述信息需求和信息流程,从逻辑上明确软件功能与要求。如数据字典管理系统,绘制数据流图、系统结构图或ER图的专用工具。
(3)计划工具:从宏观角度看待软件开发,保存与管理的信息都是与整个项目相关的宏观信息,完全是为项目主管人员服务的。
2)按集成程度划分成两类:
(1)专用的工具:面对某一工作阶段或某一工作任务的软件开发工具。 (2)集成化的工具:是集成化的、面对软件开发全过程的软件开发工具。 3)按与硬件、软件的关系划分成两类:
(1)依赖于特定机器或软件的工具,如多数设计工具和集成化的工具。 (2)于硬件与软件的工具,如分析工具和计划工具。 13、对软件开发工具的研究来源于哪些方面? 对软件开发工具的研究主要来源于三方面:
(1)软件开发工具的使用者。他们是软件开发工具得以发展的基础。这些人员大致有两种:一种是计算机专业出身的技术人员;一种是应用领域的人员,如会计、金融、企业管理等。
(2)一些厂家和研究单位。既包括一些计算机硬件的制造商,也包括一些软件公司,如DEC、HP、ORACLE等,由此形成了软件开发工具的研制队伍。
(3)软件技术专家(如ACM、IEEE)和系统工程专家。 14、学习软件开发工具的目的是什么?
作为一般的使用者,学习软件开发工具的目的在于了解软件开发工具的概念、理论基础、基本功能、发展现状与前景,以便在实际工作中正确地选择与使用软件开发工具,在必要时能参加或组织软件开发工具的自行研制,从而达到提高软件工作水平与效率的目标。 软件开发工具总结: 软件开发工具 设计 工具 专用的软件 开发工具 分析 工具 各种代码生成程序(代码生成器); 综合性的语言; 专用于某种文档的编写工具; 测试工具 数据字典管理系统(CDD、Dictionary/3000);专用于画数据流程图(FLOW)、ER图或程序框图的绘图软件 非软件开发工具 通用软件 字处理软件(wordstar) 计算机硬件; 操作系统、汇编程序、编译系统; 磁盘处理程序、病毒防治程序、系统备 7
集成的软件 开发工具 IBM的AD/Cycle理论框架; Rational公司的Objectory、Rose;北大青鸟系列 份;pctools; 第三代高级程序设计语(C,COBOL,FORTRAN) 第二章
1、软件开发中的基本问题及解决办法是什么?(单个程序员做好软件工作的关键是什么?)
对单个程序员来说,做好软件的关键是做好两个转换:
第一个转换:从用户对软件功能的理解到程序员对软件功能的理解之间的转换。 第二个转换:从程序员的理解到程序的实现。
保证第一个转换顺利完成的手段:利用尽可能标准化的方法编写程序设计任务书,用明确的语言或图形、表格,把程序要处理的信息的内容、格式、来源、去向、存储、处理清楚地表达出来,作为双方共同理解。
保证第二个转换顺利完成的手段:提高程序员的知识水平和实际经验。 2、大型软件开发中的困难体现在哪些方面?困难产生的原因是什么?
大型软件开发中的困难主要有:
(1)一致性的保持成为十分困难的问题 (2)测试的困难大大增加 (3)工作进度难以控制
(4)文档与代码的协调十分困难 (5)版本更新带来的困难 困难产生的原因:
(1)大系统的复杂性;
(2)个人之间的组织与协调; (3)各应用领域间的差别; (4)时间、变化的因素。
3、几十年来,为了提高软件开发的水平和效率人们提出了哪些软件开发方法?
面对软件开发中的种种困难和问题,软件工作者千方百计从各种不同角度,用各种不同方法试图使软件开发工作的水平和效率有大幅提高。仅从软件开发方法而言,先后提出了: 结构化程序设计方法 软件工程方法
面向对象的程序设计方法 即插即用的程序设计方法 面向开源软件的程序设计方法
4、大型软件开发过程中涉及几种角色,他们承担的工作有哪些?
大型软件开发过程中涉及几种角色,他们承担的工作有: (1)用户:提出需求、验收软件、使用软件、提出修改要求
(2)程序员:编程、写文档、调试自己的程序、向项目负责人提交工作成果
(3)项目负责人:分析用户需求形成设计方案、向程序员分配任务、验收程序员的工作成果、对整个软件联调、向用户交付使用、接收与分析用户的修改要求、向程序员分配修改任务、验收修改成果、向用户提交新的版本或修改的结果
(4)计算机硬件:运行、试运行
5、试述结构化程序设计的基本思想与方法(论述)。
结构化程序设计的基本思想是把程序的结构分解成三种基本模块:处理单元、循环机制、二分决策机制,并保证模块的划分符合“结构良好”的要求:
(1)模块的功能在逻辑上尽可能的单一化、明确 (2)模块间的联系及相互影响尽可能的少
8
(3)模块的规模应当足够小,以便其易于调试
划分模块时采用“自顶向下”的方法,即不管软件多大,都采取自上而下、逐步分解的办法,分成若干部分,并把他们之间的关系明确地表达出来,画出系统结构图,直到最底层的模块达到所要求的规模为止。
实施结构化程序设计的思想时,要遵守以下原则:
(1)甚至不用GOTO语句,绝对禁止超越模块边界的GOTO语句。 (2)子程序尽可能做到只有一个入口、一个出口;
(3)程序风格应尽量明确、清晰,包括适当增加注释,书写格式体现层次结构,变量名称的选用尽量具有逻辑意义等; (4)在程序编写的同时完成有关的文档编撰,不要拖延时间。
结构化程序设计的方法主要是为程序员服务的。它的缺点是增大了程序的工作量,增加了编程中的麻烦与琐碎的工作,降低了程序的运行效率。但它保证了软件的可靠、准确与易于修改。 6、试述软件工程的基本思想和方法(论述)。
软件工程的基本思想来源于传统工程,要想大幅度地从根本上提高软件开发的质量和效率,就应当吸取各种传统产业的成功经验,从组织和管理的角度加强力量,使软件生产从程序员的个人劳动提高成为有组织、可控制的工程。软件工程借鉴传统工程的思想,从软件开发的经验中归纳出相应的工作步骤和交流标准,大家都来遵守和执行,从而保证软件开发的进度与质量。
软件工程的实施方法:
首先,对软件开发的工作过程进行规范。如IBM的AD/Cycle,对应用软件的开发过程做了如下划分和规定: 第一阶段,需求分析。了解企业的结构与功能,掌握组织及管理者的信息需求,弄清信息流通的实际情况。 第二阶段,分析与设计。进行功能分解及数据分析,完成处理过程及数据库的逻辑设计。 第三阶段,编程阶段。完成具体的程序编写工作。
第四阶段,测试阶段。对已有代码进行认真检测与试用。
第五阶段,使用及维护。组织使用者有效的使用,并及时检查与修正发现的错误。 在标准化方面主要从两个方面探索。
(1)表达方式的标准化,如统一规格的数据流程图、数据字典、模块结构图等。
(2)对工作的质量及检查制定标准,在一定的时候作一定的检查。如著名的ISO9001标准。
软件工程的思想主要集中于加强项目管理者的工作上,对程序员关系不大,与结构化程序设计方法刚好互补。目前软件开发还主要依赖程序员的个体工作,完全做到工程还是相当困难的。 7、面向对象程序设计的基本思想(论述)。
面向对象的程序设计是人们试图解决软件危机的又一种尝试,近年来,随着面向对象语言的普及,这种思想得到了广泛的传播。面向对象程序设计的基本思想可以归纳为四点:
(1)客观世界的任何事物都是对象,它们都有一些静态属性(相应于数据结构)和相关的操作(相应于程序模块)。作为一个整体,这些对象不必对外公开这些属性与操作。这就是“封装性”。
(2)对象之间有抽象与具体、群体与个体、整体与部分等几种关系。这些关系构成对象概念之间的网络结构。
(3)抽象的、较大的对象所具有的性质,包括静态属性和动态操作,自然地成为它的子类的性质,不必加以重复说明或规定。这就是“遗传性”。
(4)对象之间可以互送消息,这一消息可以是传送一个参数,也可以是使这个对象开始某个操作。
面向对象程序设计语言反映了程序设计的思想方法越来越接近人们思维的方式,它摒弃了持续许久的“自顶向下”和“自底向上”的争论,把对于复杂系统的认识归结为对一批对象及其关系的认识,通过合理地选择认识的层次,使系统的复杂性保持在可控制的范围内。
8、即插即用程序设计的基本思想?
即插即用程序设计是在面向对象程序设计方法的基础上提出来的。它的基本思想是用制造硬件的思路来生产软件。在硬件的制造中,芯片的制造与整机是分开进行的。制造芯片的厂家只管制造芯片,而制造整机的厂家则利用这些芯片组成完整的计算机。人们想用同样的思路来处理大型软件的开发,一部分人专门生产软件组件,一部分人设计整个软件结构,并且把软件组件插入这个结构,以便迅速完成大型软件的研制工作。
然而这种思想的真正实现并不那么简单。首先,标准化的问题十分困难。其次,软件部件的提供方式也是问题。 依照这种思路,一些软件公司或机构已经在标准化方面提出了方案,如著名的CORBA和COM101。
9
9、面向开源软件的程序设计的基本思想?
随着开源软件的出现和发展,利用开源软件进行程序设计,已经成为越来越普遍的方法。目前社会上和学术界对开源软件有不同看法,有支持者有反对者。在实际使用中,在一些应用面广,流程比较清晰、比较规范的应用领域,开源代码的重用是比较有把握的,如:网站的设计。但由于应用领域的复杂性和多样性,在使用开源软件前还需要仔细权衡。这里起决定作用的是两方面因素,一方面是对应用领域的充分了解,这是判断能否用开源软件的主要依据;另一方面是开源软件的质量,包括文档和代码的规范程度。
10、什么样的软件才是好的软件?
(1)正确地实现所要求的功能,准确地给出预定的输出结果; (2)用户界面友好,符合实际用户的使用习惯和知识水平; (3)具有足够的速度(不是越快越好),能在符合用户要求的时间限度内,给出所要求的结果; (4)具有足够的可靠性,能够在各种干扰下保持正常工作; (5)程序易读,结构良好,文档齐全,从而保证系统易于修改。 11、评价单个程序员的主要性能指标是什么?
就单个程序员来说,主要的指标有:
(1)具有程序设计所需要的基本知识与技能,如关于数理逻辑的知识与训练,关于各类数据结构的概念及处理方法等; (2)对本项目所在的那个领域有较深入的了解,从而能够准确的理解用户的信息需求,正确地把握有关的信息流程与信息处理原则;
(3)对于软件开发的技术环境比较熟悉,包括硬件设备、软件环境和网络环境,特别是对于所用的语言,应当有足够的、实际运用的经验。
12、作为项目组的一员,要遵守哪些要求?
作为项目组的一员,除了完成自己承担的任务之外,重要的是使自己的工作融入整个系统,与其他部分协调一致的工作,以下几点必须严格遵守:
(1)保证严格在本模块内操作,绝不要使用可能干扰其它模块的命令或函数。 (2)严格按总体设计的要求和理解去传递参数值,绝不要随意修改其内容或含义。
(3)在对公用的文件或数据库进行存取时,必须完全地、准确地按统一规定的格式去操作, 绝不能擅自改变。 (4)在使用标识符时,应按照统一的原则尽量使用易于看出逻辑含义的名称。特别是涉及公用数据及参数的时候。 (5)严格按照统一的要求编写文档,在内容、格式、表达方式、符号使用上遵循项目组的统一规定。 (6)尽量保持程序风格的一致。如注释行的安排,行首空格的使用等。 13、一个好的项目组应具备哪些条件?
好的项目组是在长期工作中逐渐形成的,根据衡量项目组的CMM模型,一个好的项目组至少应当具备以下几个条件: (1)有严格的、成文的工作规范和文档标准,而且应当为全体成员所熟知,并切实得到遵守。
(2)人员之间有严格的分工,除了程序员之外,必须有专门的秘书(负责文档的收集、审核及保管),必须有专门的测试人员(负责测试和验收有关的部分),特别是要有专职的、不陷入具体编程的项目负责人。
(3)每个项目都要事先制定详细的时间表,并且得到严格执行每一项目完成之后都有完整的资料,并得到妥善保存,一但需要修改或更新版本时可以立即使用。
第三章
1、简述在软件开发过程中,信息流通的主要内容。
软件开发过程的信息流通状况图描述了各种信息在各种人员与计算机之间的流通状况。其中涉及到四类人:用户、分析人员、程序员和维护人员。
涉及四类信息:
第一类,有关环境、现状及需求的信息。
第二类,有关软件的功能设计与物理设计的各种信息。 第三类,软件成果本身,包括程序和文档。
第四类,用户对系统的各种变更要求,以及系统的各种变更记录。是跨越开发周期的。
10
2、软件开发过程中涉及的信息管理工作有哪些?
软件开发过程中涉及的信息管理工作包括: (1)信息的存储
(2)数据的转换与加工:
① 手工形式和计算机形式之间的相互转换; ② 计算机内部不同形式数据的转换。
(3)人与人之间的信息交流:分析人员、程序员、用户和维护人员
软件开发工具正是为软件开发过程中涉及的四类信息的合理存储、正确转化和顺畅流通提供帮助的。 3、软件开发工具涉及到的理论和方法主要有哪些?
第一,认知科学中关于概念模式的概念与方法。 第二,数据库技术的理论与方法。 第三,编译技术的有关方法。
第四,关于人机界面的理论与方法。
第五,管理科学中关于项目管理与版本管理的理论与方法。 第六,系统科学与系统工程中的有关理论与方法。 4、概念模式的作用和意义。
概念模式是指人们在认识事物过程中,对某一事物或某一系统形成的抽象的、一般化的概念框架。
概念模式具有二重性意义,它既反映了客观现实,同时又具有主观性。概念模式是在客观事物或系统的基础上形成的,在某种程度上反映了客观现实。但它又不等同于客观事物本身,因为它常常是抽象出的某一事物的部分属性,所以往往只反映事物的某一方面。至于选取那些属性或哪些方面,还决定于观察者本身的目的与状态。
概念模式的作用:
(1)概念模式是人们认识客观世界的一种方法和工具。 (2)概念模式是人们进行交流与表达的重要工具。 5、举出三种常用的概念模式,说明他们的作用与使用方法。(参考名词解释) 6、什么是信息库?它与数据库、数据仓库有什么区别?
信息库是针对软件开发或信息系统开发中的大量信息管理工作提出来的,它存放软件开发全过程中所有有用信息。 数据库是指在文件系统基础上发展起来的一种数据管理技术,它的重点在于合理地组织数据,体现出数据之间的逻辑关系,并尽可能地帮助用户检索,减少冗余。数据仓库是针对大批数据的分析利用而提出的概念。基本思想是对现实中的大量原始数据进行多次加工与提炼,得出许多派生的或综合的数据,保证原始数据和派生数据的一致性,就是数据仓库的任务。
信息库是一个包罗万象的,随着项目进展而不断修改与补充的数据集合。它在规模上不一定像数据仓库那么大,分析提炼的要求也与数据仓库不同,然而作为软件开发全过程的信息管理总枢纽,它的特点是数据结构相当复杂,而且会不断变化,保持一致性的任务十分艰巨。 7、信息库中应该包括哪些内容?
(1)软件的工作环境、功能需求、性能要求,有关的各种信息来源的状况、用户状况、硬件环境以及在该领域中的作用等外部信息。
(2)需求分析阶段中收集的有关用户的各种信息。
(3)逻辑设计阶段的各种调查材料和由此生成的各种文档——调查记录、原始数据、报表及单证的样本、绘制的各种图、系统说明书。
(4)设计阶段的各种资料——数据库与数据文件格式、数据字典、程序模块的要求、总体结构、各种接口及参数的传递方式、设计方案。
(5)编程阶段的所有成果——程序代码、框图、变量说明、测试情况、验收报告、使用说明。 (6)运行及使用情况的详细记录。 (7)维护及修改的情况。
(8)项目管理的有关信息,版本信息。 8、信息库应具备哪些管理功能?
1)一般数据库的基本功能:增、删、改操作
11
2)特殊功能:
(1)把计算机内外的信息存储统一起来管理——规定复杂的内部结构以存放信息。
(2)面对分析人员、程序员和维护人员等不同的对象,他们有各自的权限和使用目标——需要认真设计有关的界面以便使用。
9、信息库应该如何保持一致性?
(1)信息库中的内容一般不删除,老信息加上时间标志移入历史信息中,并与新信息保持着历史的、逻辑的联系,在需要时可以随时调出来。
(2)由多个程序模块组成的大型软件系统中,如何保证某个模块更新后与其它模块一起构成一个新的版本。 (3)保证程序和使用手册之间的一致性。
(4)对国际性的大软件公司来说,各种语言的资料之间的一致性同样需要认真地、细致的组织与安排。 10、用户界面设计的基本原则是什么?
(1)用户界面的主要功能是通信。 (2)界面必须始终一致。
(3)界面必须使用户随时掌握任务的进展情况。 (4)界面必须能提供帮助。
(5)宁可让程序多干,不可让用户多干。
11、IBM的AD/Cycle框架中,应用系统框架SAA(系统应用体系结构)由哪几部分构成?具体内容是什么? 构成 用户接口CUA 程序员接口CPI 通信接口CCS 硬 件 键盘操作、屏幕滚动、 语言:过程化语言、非过程化语言、生成器 面向对象的结构、数据流、平 菜单选择、帮助系统、 应用服务、作业管理、 鼠标操作、色彩应用、 台 服务:数据库查询、对话显示、通信服务 网络管理、数据安全控制 数据录入、信息显示 内容 12、人机界面的技术手段有哪些?(包含在11题中)
13、与一般日常生产管理相比,项目管理的突出特点是什么?
(1)子任务多,关系复杂。
(2)任务不可重复,形势不断变更。
(3)组织协调的任务十分突出,资源浪费闲置的风险与合理地优化组合、提高效益的机会并存。 (4)信息处理工作的作用与意义更为突出。 14、项目管理的基本目标是什么?
(1)使产品(或工程)的质量得到有效的控制。 (2)保证整个系统按预定的进度完成。
(3)有效的利用各种资源,尽可能使资源的闲置与浪费减少。 (4)控制与降低成本。
15、版本管理的核心是什么?具体方法有哪些?
版本管理的核心是保持两个一致性:
从时间上说,要保证系统的逐步完善,以前达到的结果不丢失,需要时可以回溯,必要时可以重用;每一步新的进步都要切实与以前的工作一致,是改进而不是破坏或者降低系统的已有功能。
从系统各部分之间的关系上说,要求局部与整体保持一致,合理地判断每一次修改的必要性及影响范围,合理地组成每一个新版本,并通过命名、编号等方法,使新的版本成为系统进步的漫长过程中的一个台阶,一个有目的、有方向的稳定的进步。
版本管理的具体方法:规定长远的版本更新计划;制定版本有关的信息范围及收集、管理方法;在项目组内明确分工;在编程、测试、文档编写等工作中贯穿项目管理的思想及要求。
第四章
12
1、完整的、一体化的软件开发工具应具备哪些基本功能?
(1)提供描述软件状况及其开发过程的概念模式,协助软件开发人员认识软件工作的环境与要求、合理地组织与管理软件开发的过程。
(2)提供存储和管理有关信息的机制与手段。 (3)帮助使用者编制、生成及修改各种文档。 (4)帮助使用者编写程序代码,即代码生成。
(5)对于历史信息进行跨生命周期的管理,把项目运行与版本更新的有关信息科学地管理起来。 2、一体化的软件开发工具包括那几个主要部分?
(1)总控和人机界面——中心位置,使用者和工具间的桥梁,工具实用性和灵活性的保证。 (2)信息库和信息库管理模块——工具功能与作用的最基本依据。 (3)文档生成和代码生成——两个重要输出
(4)项目管理和版本管理——跨周期信息共享、知识重用、软件重用的关键问题。 3、为什么说总控和人机界面是系统开放性和灵活性的关键?
总控和人机界面是使用者和软件开发工具之间交流信息、实现所有的支持功能的桥梁。这一部分的有效实现对于软件开发工具来说,是实用性和灵活性的主要保证。
一方面,人机界面面对不同类型的用户,这些用户既有区别,又有共性,人机界面既要保持统一和一致,又要能够在正确区分和识别用户的基础上,针对不同用户的要求与习惯提供有效的帮助。
另一方面,总控部分面对系统内部的各种功能与各种信息,它要保证各部分之间相互的协调一致,保证各部分之间信息有效地、准确地流通。
4、为什么说总控和人机界面处于软件开发工具的中心位置?
(1)作为一个完整的、一体化的软件开发工具,总控和人机界面提供了各个工作环节之间的协调与配合,并在用户面前保持统一的形象。
(2)实际工作中,常采用来自不同厂家的单项工具,由使用者自己承担集成的任务。这种情况下,最关键的问题是把前半段工作的输出准确无误地转化为后半段工作要求的输入。解决这个问题的实质就是设立一个有效的总控部分,能够在各个具体工具之上实现信息的正确传递与转换,从而形成一个统一的、完整的支撑环境,并通过一个统一的、友好的人机界面与用户对话。
因此无论是建立一体化的软件开发工具,还是把单项功能的工具集成起来,总控部分和人机界面都处于中心位置。 5、总控和人机界面设计的原则是什么?
(1)面向使用者(用户)的原则 (2)保证各部分之间信息的准确传递
(3)保证系统的开放性或灵活性——理想的系统结构应当是模块式的,易于剪裁的。
6、IBM的AD/Cycle将软件开发过程分为几个阶段?每个阶段的任务是什么?
IBM的AD/Cycle将软件开发过程的每个周期分为五个阶段:
① 需求分析,建立逻辑模型(企业模型,数据模型,信息流通模型)。 ② 分析设计,完成系统的总体设计。 ③ 编码,具体编写软件的阶段。
④ 测试,对已经完成的各个模块或子系统进行试算、调整,以最终形成完整的软件。
⑤ 运行维护,组织和管理软件的日常运行,收集运行中的状态信息及出现的问题并及时进行局部修改与完善。 7、信息库技术主要涉及哪些问题?
信息库的技术主要涉及四个问题:信息库的内容、信息库的组织方式、信息库的管理功能、历史信息的处理方法。 8、信息库中应包含哪些内容?
(1)关于软件应用的领域与环境的状况。
(2)设计成果,包括逻辑设计与物理设计的成果。 (3)运行状况的记录。
(4)有关项目管理与版本管理的信息。
13
9、信息库的组织方式有几种?各自的优缺点是什么? 组 织 方 式 集中存储 分散存储 逻辑上统一、物理上分散 (信息库管理模块) 特 点 优点:充分利用已有的数据库技术,较容易保持一致性。 缺点:与模块化的要求相冲突。 优点:易于变更和剪裁,一旦某一部分发生变更,不致影响整个系统。 缺点:每个模块都要自己进行一整套删改操作,各部分间的一致性无从保证。 通过信息库管理模块对分散的各数据库进行存取,并进行一致性检查与维护,使数据库与模块都实现了模块化,保持了一致性和灵活性。 10、信息库管理模块的作用是什么?它应该具备哪些功能?
1)与一般数据库管理系统相同的功能:录入更新、使用查询、一致性维护。 2)与一般数据库不同的管理功能: (1)信息之间逻辑联系的识别与记录。
(2)如何实现定量信息与文字信息的协调一致。
11、信息库中对历史信息的处理有哪些困难?解决办法是什么?
信息库管理中历史信息的处理是一个重点和难点,主要存在两个困难: (1)历史信息的数据太大,占用存储设备过多; (2)历史信息格式不一致,难以有效利用。 第一个问题的解决一般采用脱机备份的方法。
第二个问题至今尚无令人满意的解决办法,加强标准化,稳定数据结构不能完全解决这个问题。需要用一些智能化方法,使得跨生命周期的信息得以相互转化、实现共享与重用。 12、代码生成的输出形式有几种?各有什么特点?
代码生成的输出主要有两种形式: (1)某种高级程序设计语言的代码
优点:使用者可以利用自动生成的模块为原型,在此基础上修改加工,形成自己所要求的系统或系统的某一部分。 缺点:功能较死,效率不高,需要修改 (2)某种机器环境下可运行的机器指令
优点:可以直接运行,如果不合要求可以立即调整命令或参数重新生成一遍。 缺点:这种代码一般无法直接修改,对硬件环境的依赖性大,用的不多。 13、代码生成器依据哪些资料工作?
代码生成器依据三方面的资料: (1)信息库里已有的有关资料 (2)各种标准模块的框架和构件 (3)使用者通过屏幕临时送入的信息
14、简述项目管理中应考虑的问题(项目管理的任务包括哪些方面?)
(1)研究与确定开发工作的方针与方法。如采用什么样的阶段划分方法,什么样的系统描述方法等。
(2)开发任务的划分与分工。整个开发任务如何逐层分解为具体任务,任务之间的相互关系(顺序、制约等),委托给什么人来做。
(3)资源情况。有多少人力、物力、设备、软件、资金,是否得到充分利用,是否需要增加投入。 (4)人员情况。个人进度、技术水平如何,是否需要重新培训,是否需要调动工作。 (5)变更情况。需求、环境、人员、设备、技术的变更。
(6)质量情况。检验得标准是什么,如何检验,由谁来检验,用什么数据检验。 15、版本管理的主要内容?
版本管理的主要内容包括:各版本的编号,功能改变,模块组成,文档情况,推出时间,用户数量,用户反映,封存情况等。
14
第五章
1、怎样权衡购置还是自行开发软件开发工具?必须考虑的因素有哪些?
购买市场上已有的软件开发工具的优势是能够帮助人们在某些环节上完成简单的、重复性的工作;在项目规模比较大的时,可以使工作的组织管理比较规范、信息的管理与检索比较方便,部分做到信息与知识的重用和共享。劣势是价格比较昂贵;真正经过考验的、一体化的工具不多,其作用与可靠程度不尽如人意。
自己开发软件工具的优势是目标明确,符合需要,便于进一步扩充和升级,不存在引进外面产品时的冲突与不一致。如果做的顺利还可以做成软件产品出售。劣势是单项的、专用的工具比较好开发;商品化、集成化的工具开发困难,需要大量人力物力,非一般单位所能承受。
购置与开发的权衡,必须考虑以下四个因素:
(1)准备开发的软件的性质与要求---权衡购置还是自行开发的最基本因素 (2)开发人员对支持工作与支持程度的实际需要
(3)工作环境(硬件配置、操作系统、数据库管理系统、网络通信等) (4)人员的因素
2、在选择软件开发工具之前要明确哪些问题?
在选择软件开发工具之前,首先要清楚此次引入工具要达到怎样的目标,下面几点必须明确:
(1)为哪个软件开发项目而使用工具,为了一个项目还是为了一批项目而购置软件开发工具,为哪一种类型的项目而购置这些工具?
(2)在哪个工作阶段使用工具,是单在代码生成或文档生成中使用工具,还是准备长期开发、不断更新版本?
(3)工具将供哪些人使用,这些人以前用过工具没有,他们熟悉的语言、开发环境、表达图示、交流方式是什么?这些人对于使用工具的态度、期望、可塑性如何?
(4)工具将在怎样的软件、硬件环境下运行,机器的速度、内存、外围设备、通信条件如何? 3、对软件开发工具的市场调查应包括哪些内容?
(1)工具的功能。 (2)工具的性能。
(3)工具所使用或依据的开发方法或开发理论与自己的方法、理论是否一致。 (4)工具的运行环境。
(5)这些工具的文档资料是否齐全?使用时的学习、掌握是否简单易行? (6)这些工具的服务、培训条件如何? (7)价格。
4、购置软件开发工具的步骤应当如何安排?
(1)明确购买工具的目的与要求--正确使用工具的基础工作。 (2)明确购买工具的环境条件与制约条件。 (3)市场调查。
(4)对可供选择的各种工具进行综合比较。 (5)进行测试和检验。
(6)正式签约购置。包含了技术洽谈和各种服务条件的确认。 (7)安装与试用。
5、引入软件开发工具后的组织管理工作包括哪些?
购置工具后,使用者必须对它的使用过程进行认真地组织与管理,主要包括四个方面: (1)制定严格的使用制度。 (2)记录使用的详细过程。 (3)培训使用人员。
(4)经常进行审计与评价工作。
6、对软件开发工具进行审计的范围是什么?包括哪些问题?
审计的范围包括:工具的使用环境、人员、工作负担、效果、存在的问题、改进的方向等。
15
审计的问题:参加教材P86。
7、研制为自己所用软件开发工具要注意哪些问题?研制商品化的软件开发工具应注意哪些问题?二者有什么区别?
1)为自己使用而开发软件工具时应注意的问题: (1)需要从实际出发,设定现实的、有限的目标。
(2)自行开发工具一定要坚持短小实用、逐步积累,避免期望过高、贪大求全。 (3)要注意文档的齐全与资料的积累。 2)开发商品化的软件工具时应注意的问题:
(1)必须十分谨慎地设定目标和要求,使之符合实际。
(2)在前人工作的基础上,把精力集中于进一步的开拓方面,而不是低水平的重复别人已经做过的工作。 (3)明确工具的适用范围与使用条件。工具的目标越具体、越明确越能发挥作用。 (4)注重服务与文档—决定其成败的首要因素。
开发面向实际应用领域的、商品化的软件工具,其难度要比为自己开发工具的难度大得多。
第六章
1、比较国内、外软件开发工具的发展状况
从软件开发工具的研究水平上看,国内并不比国外低,主要的差别在于没有广泛地使用这些工具。总的来说,我国的软件产业还没有形成一批稳定的、高度有组织的软件开发群体,因而能够真正发挥软件开发工具作用的环境与社会需求还不具备。
我国软件产业当务之急是大力普及软件工程及方法学的知识,提高软件开发工作的水平,这才能使软件开发工具的应用具有实践的基础。
2、软件开发工具发展的趋势是什么?(结合名词解释)
软件开发工具的发展方向:
(1)智能化。如:Knowledge Ware公司开发的以知识处理为基础的工具 (2)网络化。如:专门用于网络环境的HTML、Java
(3)一体化。信息库的内容和处理功能的讨论,从理论上为实现一体化提供了基础 (4)标准化。围绕这一思想提出的一些标准如:CORBA、COM101
3、在软件开发工具发展轨迹图上,可以看到软件开发工具包含了那些方面的工具,他们的特点是什么?
在软件开发工具发展轨迹图上可以看出,“软件开发工具”包含了从非常具体的一些计算机语言到内容丰富、功能齐全的开发环境的相当广泛的庞大谱系。
谱系的一端是从某些计算机语言,通过增添各种辅助功能发展出来的工具,它们更多地针对计算机语言特性进行了支持,以最大限度提高相应的计算机语言开发效率为依据,可以理解为计算机语言在开发方向上的一个延伸,但对软件开发过程中涉及的交互、文档管理、代码版本管理的支持略显不足。典型代表如:VB 、VC、 PB、C++ Builder/Delphi、JAVA 。
谱系的另一端是从较为抽象的概念模式或过程模式出发设计的开发平台或开发环境。对于开发周期长、交互性高的大型的、复杂的项目提供了良好的集成开发环境。如Visual Studio、Eclipse。 4、从计算机语言发展而来的工具主要有哪些?
从计算机语言发展而来的工具的典型代表:VB 、VC、 PB、C++ Builder/Delphi、JAVA 。 5、比较VisualStudio和Eclipse集成开发环境
两款软件开发环境的共同点:都具有编译、运行等基本功能,都具备代码援助、语法高亮、错误预防等扩展功能,使得开发人员可以在代码编写的过程中及时排除基本的拼写、引用错误,把精力集中到代码逻辑和算法优化上,提高了开发的准确度和代码产出的速度。
Visual Studio 的特点:与微软公司其他产品的交互协同性好,并获得了更多Windows操作系统级的支持,速度上比Eclipse有较大的优势。如果基于操作系统是Windows,开发中又需要使用大量的微软公司的产品,那么可以优先考虑Visual Studio。
Eclipse的特点:是一款免费的、面向各平台开发者的软件开发环境,在各种操作系统上表现差异非常小。安装后的核心部分大小只有数十兆,还可以根据需求添加免费的插件。Eclipse 具有“大平台,小核心,多插件”的特点,更富有灵活性,如果开发成果最终需要被部署在非Windows平台上而又希望开发环境最大程度模拟运行环境 ,使用Eclipse能够打消来自操
16
作系统方面的忧虑。
实践篇(7-13章)
1、Eclipse的主要用途是什么?
Eclipse是一个开放源代码的、基于Java的可扩展集成应用程序开发环境。其本身只是一个框架和一组服务,通过插件组件构建开发环境,Eclipse中的每样东西都是插件 。
Eclipse最初主要用来进行Java语言开发,此外还支持如C/C + + 、C#、PHP、J2EE、Javascript等编程语言的插件,如CDT。
Eclipse作为一个框架平台还包括插件开发环境(PDE),这主要是针对希望扩展Eclipse的软件开发人员,允许他们构建与Eclipse环境无缝集成的工具。
Eclipse 框架还可以用来作为与软件开发无关的其它应用程序类型的基础。 2、试述Eclipse的体系结构。
Eclipse的体系结构主要包括四部分:
(1)运行时内核。平台运行库是内核,它在启动时检查已安装了哪些插件,并创建关于其注册表信息。为降低启动时间和资源使用,平台运行库在实际需要插件时才加载。
(2)工作空间。工作空间负责管理用户资源并负责通知其他插件关于资源变更的信息。 (3)工作台。工作台为Eclipse提供用户界面。 (4)其他插件。包括帮助组件、团队支持组件等。 3、Eclipse的欢迎界面中包含了哪些图标?
Eclipse的欢迎界面中包含五个圆形图标:概况、新特点、实例、向导、工作台 4、Eclipse工作台的组成
Eclipse的工作台主要由以下几个部分组成:菜单栏、工具栏(主工具栏、视图工具栏)、透视图(视图、编辑器) 5、Eclipse中主要包含哪几种视图?各自的作用是什么?
导航器视图:资源管理器视图,显示当前Eclipse集成环境中加载的所有项目和各个项目中的文件列表。 大纲视图:显示当前活动编辑器中所打开文件的纲要,如函数、变量等。 控制台视图:显示程序的输出内容。
错误视图:编写代码时显示程序中的错误,提示用户及时改正。 搜索视图:显示用户搜索结果的详细信息。
任务视图:显示程序代码中未完成的任务,在代码中加一条以TODO开头的注释标记,就可以在任务视图中添加一
项任务。
6、Eclipse中常用的编辑器有哪些?作用是什么?
c/c + +编辑器——打开c/c + +文件 文本编辑器——打开文本文件 任务编辑器——打开任务文件
二进制文件编辑器——打开二进制文件 Web浏览器——打开网页文件
7、Eclipse提供的浏览功能包括哪些?各自的作用、打开方式以及快捷方式是什么? 功 能 打开变量声明(定位变量和变量底色标注) 打开类型层次结构 作 用 从变量的任意引用位置直接定位到变量定义行 快速打开程序中已经在使用的特定数据类型及其相关继Navigate菜单 Open Declaration 打开变量声明 Open Type Hierarchy 快捷键 F3 F4 17
承结构 打开调用层次结构 打开文件包含浏览器 打开元素 浏览函数的定义与调用层次关系并快速定位到需要的函数 浏览程序中包含的头文件 打开类型层次结构 Open Call Hierarchy 打开调用层次结构 Open Include Browser 打开文件包含浏览器 Ctrl+Alt+H Ctrl+Alt+I Ctrl+Shift+T 打开命名空间、类、结构、类型定义符、函数、变量等 Open Element 打开元素 8、Eclipse重构功能的本质是什么?包含哪些内容?各自有什么作用?
在一个复杂的项目系统中,存在继承、联合等复杂的应用和交错使用的代码,而编程中调整代码以避免冲突也是很频繁的工作,使用Eclipse 重构功能,可以在不影响程序行为的情况下进行系统范围内的代码更改。
主要包括:
(1)重命名变量:重命名功能解决了变量、类、函数等重命名的所有问题。
(2)抽取方法:将程序中多次出现的代码段抽取出来形成方法,可以减少代码的长度并增加程序的可读性和易维护性,同时使方法的调用清晰简单。
(3)抽取常量:抽取常量的本质是将程序中的数字、字符等定义为常量,使得对常量的调用和修改变得简单。 9、简述Eclipse搜索的类型及使用方式。
(1)使用查找/替换方法,这是最基本的查找功能。 方法:“Edit”菜单,“查找/替换Find/Replace”选项。快捷键:Ctrl+F (2)使用Search菜单进行搜索
在Eclipse CDT特有的Search功能中,可以执行文件、任务和C/C++搜索功能,这些搜索是针对代码结构进行的,速度更快,效率更高。包括:C/C++搜索、任务搜索、文件搜索。
搜索结果在搜索视图中显示。 10、简述GDB的功能。
GDB可以帮助用户实现如下几个功能:
1)启动C/C ++程序,可以按照用户自定义的要求运行和暂停程序。 2)可让被调试的程序在用户指定的调试的断点处停住。
3)当程序被停住时,用户可以检查此时引起程序中断的原因。 4)动态地改变程序的执行环境。
5)单步调试程序,在每个断点显示程序中各个变量的状态和值。 11、简述GDB的安装步骤。
下载GDB后(注意:下载bin文件而不是src文件),打开文件压缩包,进入bin文件夹找到gdb. exe文件;然后将gdb. exe文件解压到MinGW安装目录下的bin文件夹中。
12、什么是断点?断点有哪些可用动作?简述断点的分类。
断点可以使程序在运行到断点位置时自动暂停并且显示程序的当前状态。
Eclipse规定了四种可用动作:①声音动作 ②日志动作 ③重新启动程序动作 ④外部工具动作 断点有三种类型:
(1)行断点——使程序在运行到该断点位置时自动暂停。
(2)方法断点——对某个方法或函数设置方法断点,可以使程序运行到该方法的第一行时自动暂停。
(3)事件断点——在程序运行过程中发生特定事件时(如异常触发、线程启动、线程退出等)将程序暂停。 13、程序运行中常见的事件有哪些?
程序运行过程中的事件包括:进程和线程的开始、暂停和退出,库文件的读取,异常事件(抛出异常、捕获异常等)。
14、Eclipse调试透视图主要包含哪些内容?其中调试视图和变量视图的作用是什么?
Eclipse调试透视图主要包括:调试视图、变量视图、断点视图、编辑器、大纲视图和控制台。 调试视图:显示当前调试的程序的线程和所处的状态
变量视图:显示整个调试过程中程序变量值的变化情况,变量视图是帮助程序员差错和纠错的主要手段。
18
15、单步遍历程序的作用是什么?主要包括哪些方式?各自的作用是什么?
单步遍历程序可以让用户逐行地运行整个程序。 主要包括三种方式:
(1)单步跳入(Step into按钮或F5):线程将运行所在行的程序,并在下一个可暂停位置后暂停执行。 (2)单步跳过(Step over 按钮或F6):线程将跳过该行,并运行至下一个可暂停位置后暂停执行。 (3)单步返回(Step Return 按钮或F7):仅对函数调用时有效,如当main函数调用其他函数时,执行单步返回操作即可跳出该函数,返回main函数继续执行调试。 16、是否锁定工具栏的区别在于什么?
解锁状态——工具栏区域被竖直的虚线分成若干部分;用户可以随意更改工具栏的状态。 锁定状态——竖直的虚线消失,变成一个整体;用户不可以更改工具栏的状态。 17、简述为“About”操作设定快捷键 选中About 将光标定位到Binding绑定输入框 ③ 同时按下键盘上的 18、格式化代码的作用是什么?其操作步骤如何? 格式化代码的功能可以帮助用户将凌乱的程序代码格式化为用户习惯的排列方式。 ① 设置代码格式——新建代码格式或从外部导入已有的代码格式 ② 格式化代码 19、简述生成历史记录的作用。 Eclipse不仅支持使用版本管理软件进行版本控制,还自带有保存历史记录的功能,可以支持用户随时将程序恢复到之前某个时间点。但Eclipse只会记录较短时间的文件版本,如果需要长时间的版本控制则需要借助如CVS等版本控制软件完成。 20、在软件开发过程中使用版本控制软件的好处? (1)随时将程序恢复到以前某一时间; (2)实现程序的互斥性修改(某一程序在同一时间只能由一个开发人员修改); (3)对程序修改进行高效的管理; (4)将开发环境与测试环境、运行环境进行有效的隔离 ; (5)评估软件开发人员编写的程序质量,控制软件开发的进度。 (6)管理文档 21、简述利用版本控制软件对程序进行修改的流程。 (1)用户提交需求书,程序员提交程序设计说明书,项目主管审核通过后, 管理员将程序解冻; (2)由程序员提出程序; (3)程序员修改程序; (4)修改完成后程序员提交测试请求给测试小组,测试小组进行测试,如果测试不通过,转向第3步; (5)测试通过后程序员填写本次修改解释,然后放入程序; (6)管理员将程序冻结。 22、举出5中常见的版本控制软件,并简要说明它们的特点。 (1)Rational ClearCase——涵盖的范围包括版本控制、建立管理、工作空间管理和过程控制;支持绝大多数操作系统;安装、配置、使用相对较复杂,需要进行团队培训。 (2)Visual SourceSafe(VSS)——入门级工具,易学易用,得到微软稳定的技术支持;只用于Windows系统;安全性不高。 (3)CVS——简单易用、功能强大、跨平台、支持并发版本控制,免费;缺少相应的技术支持。 (4)Star Team——用于管理配置和变更的集成环境。 (5)Firefly——管理、维护整个企业的软件资产,包括程序代码和相关文档。 23、简述CVS的特点和优势。 CVS并发版本系统,是一个常用的代码版本控制系统。使用CVS可以对代码进行集中管理,记录代码所有的更改历史,提供协作开发的功能并支持多人同时修改代码文件。 19 CVS简单易用、功能强大、跨平台、支持并发版本控制,而且免费,它在全球中小型软件企业中得到了广泛使用。其最大的遗憾就是缺少相应的技术支持,许多问题的解决需要使用者寻找资料,甚至是读源代码。 24、CVS的访问权限分为几种? CVS的访问权限分为管理员账户和一般用户账户。 25、CVS代码同步工作完成后一般会出现几种状态?分别代表什么含义?如何对他们进行同步? 同步视图中的文件状态 含义 同步方法 Incoming(蓝色向左的箭头) CVS上文件有更改而本地文件没有 更新本地文件(Update) Outgoing (黑色向右的箭头) 本地文件有更改而CVS上的文件没有 提交本地文件( Commit) Conflict (红色双向箭头) 本地文件和CVS上的文件都有更改,可能会避免冲突(Mark as Merged) 造成代码冲突 再提交( Commit) 26、典型的插件文件夹中一般包含哪些文件?都代表什么含义? 每个插件都是由一个插件清单文件和一些可选文件组成。 (1)plugin. xml——插件清单文件,描述插件的名字、版本号、扩展点等信息。 (2)plugin. properties ——插件的一般信息,记录插件的属性设置。 (3)about. html ——记录证书信息。 (4)*. Jar——插件需要的类文件。 (5)lib ——容纳第三方JAR包。 (6)icons——容纳icon文件,通常是GIF格式。 (7)其它需要的文件。 27、清单编辑器有哪些页面构成?各有什么用途? 清单编辑器是多页编辑器,可以对插件文件进行编辑,由六个页面组成: (1)概述页面 ① “一般信息”和“执行环境” 部分定义了重要的插件属性。 ② “插件内容”、“扩展/扩展点内容” 、“测试”和“导出”部分,提供了有关如何开发、测试和部署插件的快速参考。(2)依赖性页面 ——指定了当前插件运行时所需的插件列表。 (3)运行时页面 ——显示插件提供给其他插件使用的所有包,以及插件运行时类路径中的库和文件夹。 (4)扩展页面 ——从总体上显示了当前插件可用的扩展点。 (5)扩展点页面——在该页面中可以指定当前插件为其他插件提供的扩展点。 (6)构建页面——包含了构建、打包和导出插件时所需的所有信息。 28、常用的插件模板有哪些? PDE为平台的常用扩展点提供了复杂性和功能均有所不同的模板。每个模板都可以生成功能全面的插件。 1)Hello,world模板。使用的扩展:org.eclipse.ui.actionsets 2)带有样本帮助内容的插件。使用的扩展:org. eclipse. help. toc 3)具有编辑器的插件。使用的扩展:org. eclipse. ui. editors 4)具有弹出菜单的插件。使用的扩展:org. eclipse. ui. popupMenus 5)具有多页面编辑器的插件。使用的扩展:org. eclipse. ui. editors 和 org. eclipse. ui. newWizards 6)具有视图的插件。使用的扩展:org. eclipse. ui. views 7)具有属性页面的插件。使用的扩展:org. eclipse. ui. proertyPages 8)具有增量项目构建器的插件,包括样本增量项目构建器、样本项目性质、样本问题标记和样本弹出菜单操作。 29、列举常用的插件扩展点及它们使用的扩展。 常用插件扩展点: 1)视图扩展点——为工作平台定义更多的视图,org. eclipse. ui. views 2)编辑器扩展点——将新的编辑器添加至工作台,org. eclipse. ui. Editors 3)透视图扩展点——将透视图工厂添加至工作台,org. eclipse. ui. perspective 30、什么是EMF?它的功能有哪些?简述用EMF创建一个应用的步骤。 20 EMF是Eclipse用来定义和实现结构化模型的框架(建模框架),可以看作是Eclipse上的MDA(模型驱动开发)的一个实现,它能够生成在Eclipse上执行的代码。 EMF的功能有: (1)代码生成。 (2)输入。 (3)默认的持久化机制。 (4)模型编辑器。 用EMF创建一个应用的步骤为:① 构造模型 ② 生成代码 31、什么是VE?它的功能是什么? Visual Editor插件。VE项目的目标是构建一个用于构建工具的工具,它的功能是允许使用者通过一个完全所见即所得的图形化编辑器来创建SWT/AWT/Swing应用程序。 第14章 1、面向对象方法与传统方法比较有哪些优势? 1)与传统方法相比,面向对象具有显著的优点。它解决了信息系统工程中的两个主要问题 :软件维护的复杂性和提高生产率。 2)它所表现出来的灵活性和各种性能使软件开发的风险降低、知识重用度提高。 3)面向对象方法更接近自然,实现更迅速,交互性更好,易于维护。 4)面向对象分析法是一种全新的、不同于面向过程的分析方法,它更侧重于建模而不是分析流程。 2、简述面向对象方法的基本过程。 1)标识和定义对象及类 2)组织类间的关系 3)在类中构造框架 4)建立可重用的类库和应用程序框架 3、面向对象的系统分设计方法有哪些? 1)Booch方法 2)OMT方法 3)Goad/Yourdon方法 4)OOSE方法 4、UML的应用领域有哪些? 1)信息系统 2)技术系统 3)嵌人式实时系统 4)分布系统 5)系统软件 6)商务系统 5、UML把系统开发分成几个阶段? UML把系统开发分成五个阶段:1)需求分析2)分析3)设计4)编程5)测试 6、UML的基本内容有哪些,每部分的具体内容是什么? UML基本内容包括:视图、图表、模型元素、基本机制 (1)视图:从不同角度来观察待建模的系统,由多个图表组成。 1)用例视图,UML的核心视图,从系统外部使用者对系统的需求来描述该系统工程所应具备和完成的功能。 2)逻辑视图,用于描述系统内实现的逻辑功能。它描述了系统的静态结构关系和系统内的动态协作关系。 3)组件视图,从系统实现的角度描述模型对象间的关系。 4)配置视图,用于说明系统的物理配置。 (2)图表:是描述视图内容的图 1)用例图:用于描述外部项与系统提供的使用事件之间的联系。 2)类图:用于描述系统的静态结构。 3)对象图:用于表述系统的静态结构。 21 4)状态图:用于说明类中的对象可能具有的状态,以及由事件引起的状态改变。 5)顺序图:用于描述对象间的动态协作关系。 6)协作图:用于描述对象的动态协作关系。 7)活动图:用于描述系统活动的流程。 8)组件图:用于描述组件代码的物理结构。 9)配置图:用于描述系统中软件和硬件的物理结构。 (3)模型元素:各种图表中所用的概念符号称为模型元素。另外,作为元素间关系的连接描述也称为模型元素,主要有联合、概括、依赖和聚合。 (4)基本机制:各种图标上的附加信息,用于描述那些模型无法表达的内容。有三种方式:修饰、注释、说明 7、什么是组件?它对程序设计有何意义? 组件是一个可重用的软件构件,一个预先构建的封装的代码模块,它能够与其他组件或硬编码一起很快地生成定制的应用程序。 组件技术建立在对象技术之上,它是对象技术的进一步发展。类是组件技术中一个基础的概念,但它更核心的概念是接口。组件技术的主要目标是组件的复用。一个组件可以由一个或多个类及其他元素组成,它是一个的物理单元,经常以非源码的形式存在。一个完整的组件中一般有一个主类,而其他类和元素都是为了支持该类的功能实现而存在的。 8、简述使用Rational Rose进行可视化建模的特点。 1)支持UML的建模。 2)采用基于组件的开发 3)支持多语言开发。 4)支持双向工程。 5)全面的团队支持。 6)简单易用。 7)提供可视化的差异比较以及合并工具。 8)提供框架向导。 9)提供扩展接口,以实现定制的Rose。 10)基本报告生成。可以生成数据词典。 11)COBRA/IDL生成。 12)数据库模式生成。 13)微软存储库集成。 14)实现Oracle 8的正向和逆向工程。 15)支持Forte附加项,以实现在此环境下的分析、构建企业级应用。 9、以地铁售票信息系统为例,简述使用Eclipse UML建模的过程。 软件开发工具阶段测评1(第1-2章) 一、单选题 1. 下列陈述中,正确的是( ) A.软件开发工具包括第三代语言 B.软件开发工具是指代码生成器 C.编译系统是一种软件开发工具 D.软件开发工具是帮助人们开发软件的软件 2.程序设计语言属于( ) A.汇编语言 B.机器语言C.过程化语言 D.非过程化语言 3.(2006.10真题)集成的软件开发环境是指( ) A.支持软件开发的通用软件 B.支持软件开发全过程的集成软件 C.支持某一阶段工作的专用软件 D.操作系统 4.选择软件开发工具时,首先要考虑的性能是( ) A.对软硬件环境的要求 B.工具的表达或描述能力 C. 工具的可靠程度 D.工具使用的方便程度 5. (2009.1真题)对于软件开发工具的性能来说,特别重要的是( ) A.帮助人们存储及管理各种信息 B.帮助人们编写文档 C.帮助人们进行项目与版本管理 D.使用的方便程度 6.下面选项中出现最晚、数量最少的软件开发工具是( ) A.设计工具 B.计划工具 C.专用的工具 D.分析工具 22 7.(2008.1真题)计划工具保存与管理的信息都是( ) A.源程序 B.与整个项目有关的宏观信息 C.目标代码 D.与开发有关的执行程序 8. 下面选项中属于分析工具的是( ) A.语言 B.文档生成工具 C.代码生成器 D.数据字典管理系统 9.(2009.10真题)编写文档的主要阶段是( ) A.需求分析 B.总体设计 C.实现 D.测试 10.软件开发工具在各种各样的干扰下仍能保持正常工作,而不至于丢失或弄错信息。这叙述的是工具的( ) A.准确性 B.可靠性 C.方便性 D.一致性 11.大型软件开发的困难不包括( ) A.测试的困难 B.用户与程序员沟通的困难 C.文档与代码协调的困难 D.一致性保持的困难 12.在大型软件开发中,以下哪项不是项目负责人的任务( ) A.编写程序和文档 B.分析用户需求 C.验收程序员的工作成果 D.对整个软件进行联调 13.(2008.1真题)在论述程序结构时,E.Yourdon把程序的结构分解成三个基本模块,即( ) A.处理单元、循环机制、二分决策机制 B.处理单元、循环机制、控制转移机制 C.循环机制、二分决策机制、控制转移机制 D.处理单元、二分决策机制、控制转移机制 14.模块之间的相互联系及影响称为( ) A.凝聚性 B.相关性 C.耦合性 D.传递性 15.抽象的、较大的对象所具有的性质,自然成为它的子类的性质,这称为( ) A.隐蔽性 B.遗传性 C.封装性 D.多态性 16.(2008.1真题)以下选项哪个不是面向对象程序设计的思想( ) A.任何事物都是对象,对象具有封装性 B.对象间可以互送消息 C.采用自顶向下的设计方法 D.对象之间有整体和部分的关系 17.(2009.1真题)软件工程的思想和方法主要面向( ) A.用户 B.项目负责人 C.程序员 D.操作员 18.(2009.1真题)结构化程序设计方法的服务对象是( ) A.用户 B.项目负责人 C.程序员 D.秘书 19.作为项目组的一员最重要的是( ) A.具有程序设计所需要的基本知识与技能 B.具有高度的组织纪律性和团队精神 C.对项目所在领域有较深入了解 D.对软件开发环境比较熟悉 20.(2009.10真题)从60年代末开始,人们对软件工作的认识大大深入了,在认识到软件工作的重要性的同时,也认识到了软件工作的困难性。这就是( ) A.软件的智能化问题 B.结构化程序设计的技巧问题 C.软件生存期的划分问题 D.软件危机问题 二、多选题 1.关于软件开发工具叙述正确的是( ) A.软件开发工具是在高级程序设计语言之后,软件技术进一步发展的产物 B.软件开发工具的目的是在开发软件过程中给予人们不同方面、不同程度的支持 C.软件开发工具支持软件开发的全过程 D.软件开发工具是生成代码和文档的工具 E.软件开发工具具有继承性和创新性 2、软件开工具的创新性主要体现在( ) A.使软件开发完全实现了自动化 B.把构架设计纳入到软件开发工作范围之内 C.把软件开发工作延伸到了项目管理和版本管理 D.吸收了许多管理科学的内容与方法 E.直接根据用户提供的算法编写程序代码 3.软件开发工具的主要功能有( ) 23 A.认识与描述客观系统 B.存储及管理开发过程中的信息 C.代码的编写或生成 D.文档的编写或生成 E.软件的项目管理 4. 下列各项中,属于软件开发工具范围的有( ) A.C语言 B.4GL C.360杀毒软件 D.Windows E. FLOW 5.(2006.1真题)属于设计工具的有( ) A.代码生成器 B.语言 C.数据字典管理系统 D.测试工具 E.绘制数据流程图的工具 6.与软件开发工具类似的概念、术语很多,如( ) A.Case工具 B.语言 C.即插即用程序设计 D.组件程序设计 E.最终用户计算 7.软件开发过程中总体设计的内容包括( ) A.软件的结构设计 B.公用数据库的设计 C. 程序代码设计 D.划分模块并指定模块间的相互关系 E.各部分连接方式及信息交换标准 8、对软件开发工具的研究来自( ) A.应用软件的开发人员 B.计算机硬件的制造厂商C.软件技术方面的专家 D.系统工程专家E.大型的软件公司 9. 项目负责人不必考虑的问题是( ) A.提出需求 B.验收模块 C.编程 D.验收修改成果 E.向用户交付使用 10.(2010.1真题)模块划分应该符合的基本要求是( ) A.模块的规模适中,约250行 B.应该避免逻辑耦合 C.应该避免数据耦合 D.模块的功能在逻辑上与适当的任务对应,3个任务上下 E.模块的凝聚性好 11.(2010.1真题)软件工程方法的实质是( ) A.程序员要遵守一个规范的开发过程 B.程序员要遵守标准化的表达方式 C.程序员要有精巧的编程技术 D.程序员要遵守标准化的工作质量检查标准 E.程序员要认真负责 12.大型软件开发的困难包括( ) A.工作进度难以控制 B.开发人员对一些名词和术语的理解不一致 C.采取“黑箱检验”的方法只能证明程序有错,但不能证明程序没错 D.文档复杂,难于代码保持一致 E.版本更新带来的问题 13.为了克服软件开发中的困难,仅就开发方法而言,人们提出了( ) A.即插即用程序设计方法 B.结构化程序设计方法 C.软件工程方法 D.面向对象程序设计方法 E.面向开源软件的程序设计方法 14.(2006.10真题)在软件工程中,为实现表达方式的标准化,需要统一规格的( ) A.数据流图 B.数据字典C.模块结构图 D.程序设计语言 E.数据结构 15.目前一个好的软件系统必须满足( ) A.正确实现所要求的功能,输出结果正确 B.用户界面友好,符合使用者习惯 C.速度越快越好 D.文档齐全 E.具有足够的可靠性 三、填空 1. (2007.1真题)软件开发工具是在第三代语言基础上,为提高软件开发的__质量_____和__效率_____,对开发者提供帮助的一类软件。 【答案】质量,效率 【知识点】第1章,参考教材P21 2.软件开发工作的第四个阶段的标志是大量应用______ 。 【答案】软件开发工具 【知识点】第1章,参考教材P27 3.(2006.1真题)软件能做什么事,称为软件的____功能_______;把事情做到什么样的程度,是软件的___性能________。 【答案】功能,性能 24 【知识点】第1章,参考教材P33 4.软件开发工作的第一阶段是___________,实现阶段有两个并行的工作是程序代码的编写和___________ 编写。 【答案】需求分析,文档 【知识点】第1章,参考教材P30-31 5.软件开发工具进入新阶段有两个鲜明的特点,第一个特点是面向网络,不仅基于网络,而且 ,第二个个特点是 的兴起和运用。 【答案】用于网络,开源软件 【知识点】第1章,参考教材P25 6.软件开发工具的__________要求应当尽量降低,以有利于广泛使用。 【答案】环境 【知识点】第1章,参考教材P34 7.卡内基·梅隆大学的软件工程研究所提出了 模型,作为衡量项目组的标准。 【答案】CMM 【知识点】第2章,参考教材P51 8.实现即插即用程序设计思想的主要困难首先是 的问题,其次是软件部件的提供方式。 【答案】标准化 【知识点】第2章,参考教材P48 9. 在模块之间应尽量避免传递控制型号,而仅限于传递___________。 【答案】处理对象 【知识点】第2章,参考教材P44。 10.(2008.10真题)软件开发中的困难,来源于大系统的__________,来源于人类知识的不足,来源于迅速变化的__________。 【答案】复杂性,客观世界 【知识点】第2章,参考教材P39。 11.结构化程序设计方法,增加了编程中的麻烦与琐碎工作,降低了程序的 ,但保证了软件的可靠、准确与 ,这种代价是值得的。 【答案】运行效率,易于修改 【知识点】第2章,参考教材P45。 12.作为整个项目组的一员,要使自己的工作融入整个系统,与其它部分 地工作。 【答案】协调一致 【知识点】第2章,参考教材P51。 13.一个好的项目组,必须有专门的 ,负责文档的收集和审核,必须有专门的 ,负责测试和验收有关的部分。 【答案】秘书,测试人员 【知识点】第2章,参考教材P51-52。 四、名词解释题 1、(2010.1真题)4GL 2、分析工具 3、面向开源软件的程序设计方法 4、(2008.10真题)模块间的耦合 5、(2009.10真题)封装性 五、简答题 1、简述使用通用软件辅助软件开发的主要弱点。 2、对于开源软件社会和学术界有哪些不同看法?是否使用开源软件进行程序设计应考虑哪些因素? 六、论述题 试比较结构化程序设计方法和软件工程方法。 25 软件开发工具阶段测评2(第3-4章) 一、单选题 1.软件开发过程中,由用户提出,由分析人员采集的信息是( ) A.有关系统环境、现状与需求的信息 B.有关软件功能设计的各种信息 C.有关用户对系统各种变更要求的信息 D.有关包括程序与文档的软件成果信息 2.软件开发过程中,各种信息在各种人员和计算机之间的流通状况称为( ) A.信息流 B.概念模型 C.信息流通模型 D.企业模型 3.(2008.1真题)人们在认识事物过程中,对某一事物或某一系统形成的抽象的、一般的框架称为( ) A.客观模式 B.概念模式 C.逻辑模式 D.物理模式 4.软件开发工具用到的理论和方法不包括( ) A.认知科学中的概念模式 B.管理科学中的项目管理和版本管理 C.信息隐藏技术 D.数据库技术 5.在软件开发过程中,描述数据内容的概念模式是( ) A.时序网络 B.数据结构 C.数学与逻辑模型 D.数据字典 6. 决策表和决策树属于的概念模式是( ) A.数据流程图 B.ER图 C.结构图 D.数学与逻辑模型 7.(2007.10)逻辑设计阶段的各种调查材料和由此生成的各种文档,应当存入( ) A.文件系统 B.数据仓库 C.数据库 D.信息库 8.哪一个不是人机界面设计的基本原则?( ) A.保持界面一致,不要增加用户的负担 B.给专业人员提供的界面可以不提供帮助 C.人和机器之间能够准确交流信息 D.让用户随时掌握程序的进展 9.(2007.10真题)项目管理的特点不包括( ) A.子任务多,关系复杂 B.任务可重复,变更不大 C.协调组织任务突出 D.信息处理工作的作用和意义突出 10.下面不属于SAA结构中用户接口提供的人机交互手段的是( ) A.键盘操作 B.鼠标操作 C.菜单选择 D.触摸屏 11.(2010.1真题)对于大型软件开发来说,成为信息处理瓶颈的是( ) A.提供描述软件状态的概念模式 B.提供存储和管理有关信息的机制和手段 C.对历史信息进行跨生命周期的管理 D.帮助使用者编制、生成和修改文档 12.不属于SAA对外系统的通信接口提供的功能是( ) A代码生成 B.网络管理 C.数据安全控制 D.作业管理 13.在AD/Cycle的跨周期管理中,分析设计阶段的任务是( ) A.建立逻辑模型 B.完成系统的总体设计 C.对模块进行测试、调整 D.组织管理软件的日常运行 14.(2007.1真题)为适应软件开发工具的多样性和可变性,总控与人机界面的设计必须保证系统的( ) A.灵活性 B.可靠性 C.安全性 D.有效性 15.信息库管理功能中与一般数据库管理系统不同的特点是( ) A.使用查询 B.信息之间的逻辑关系的认识与表达 C.录入更新 D.一致性维护 16.(2010.10真题)信息库(Repository)研究的核心问题是( ) A.信息的共享性 B.信息的准确性 C.信息的一致性 D.信息的安全性 17.在一个完整的软件开发工具结构中,处于中心位置的是( ) A.信息库 B.总控部分和人机界面 C.项目管理和版本管理 D.代码生成和文档生成 18.对信息库中大量的历史信息的处理方法一般采用( ) A.全部删除 B.全部处于联机状态 C.进行更新和修改 D.脱机备份 19.下面哪项不是项目数据库的主要内容( ) A.项目的预期进度 B.项目的实际进展情况 C.程序代码的编写情况 D.各工作阶段的验收情况 20.(2007.1真题)在软件工具生成的各类文档中,最难处理的是( ) 26 A.程序 B.文章 C.表格 D.图形 二、多选题 1.下列选项属于软件开发工具的概念模式的是( ) A.DFD B. Petri Net C.DD D.ERD E.DBMS 2. 实体关系图的基本元素有( ) A.实体 B.数据流 C.关系 D.状态 E.属性 3.(2006.10真题)在信息库(Repository)中应存放的信息有( ) A.系统状况 B.软、硬件资源的特点 C.系统设计成果 D.运行与测试状况记录 E.项目管理与版本管理信息 4.属于信息库中设计阶段的资料包括( ) A.系统调查记录 B.数据文件格式 C.数据字典 D.原始数据 E.总体结构 5.信息库中编程阶段的成果包括( ) A.程序代码 B.变量说明 C.测试情况 D.验收报告 E.使用说明 6.目前实施项目管理的主要方法包括( ) A.工程计划网络方法 B.甘特图 C.时序网络 D.检查点方法 E.排队论 7.(2006.10真题)项目管理的基本目标有( ) A.尽量提高产品的数量 B.有效地控制产品的质量 C.保证安全,提高保密程度 D.保证整个系统按预定的进度完成 E.合理利用各种资源,尽量减少资料浪费和闲置 8.从技术上说,信息库技术主要涉及( ) A.信息库的内容应该包括哪些 B.信息库应具备哪些管理功能 C.信息库中历史信息的处理方法 D.信息库中信息应采取什么样的存储方式 E.信息库中的信息如何删除 9.(2010.10真题)从技术方面考虑,软件开发工具的基本原则包括( ) A.面向使用者 B.保证信息的准确传递 C.保证信息存储的一致性 D.保证系统的安全性 E.保证系统的开放性 10.完整的、一体化的软件开发工具应具备的基本功能有( ) A. 提供描述软件状况及其开发过程的概念模式 B. 帮助使用者编写程序代码 ,即代码生成 C. 提供存储和管理有关信息的机制与手段 D.帮助使用者生成与修改各种文档 E.对历史信息进行跨生命周期的管理,把项目进度与版本更新的有关信息管理起来11.在一般的应用软件结构(SAA)中,为程序员接口提供的功能包括( ) A.数据库查询 B.非过程化语言 27 C.对话显示 D.数据安全控制 E.通信服务 12.(2006.10真题)属于SAA对外系统的通信接口提供的功能是( ) A.数据库查询 B.数据流 C.代码生成 D.作业管理 E.数据安全控制 13.(2010.10 真题)在软件开发工具中,文档生成与代码生成相比,其特点包括( ) A.数量大 B.语法严格 C.内容复杂 D.种类多 E.格式固定 14.项目管理应当考虑的范围包括( ) A.确定开发工作的方针与方法 B.开发任务的划分与分工 C.资源情况 D.变更情况 E.质量情况 15.版本管理的主要内容包括( ) A.各版本编号 B.文档状况 C.推出时间 D.用户反映 E.质量情况 三、填空 1. 软件成果本身包括_______和_______。 【答案】程序,文档 【知识点】第3章,参考教材P53。 2.有关软件的功能设计和物理设计的信息是由分析人员根据______ 而形成的,它体现为设计方案。 【答案】需求分析 【知识点】第3章,参考教材P53。 3.概念模式在认识中起了一种_______作用,选择某些信息,并由此做出决策,付诸行动。 【答案】筛选 【知识点】第3章,参考教材P55。 4. 对于软件产品和应用系统来说,项目管理与版本管理最重要的依据是 。 【答案】用户反馈信息 【知识点】第3章,参考教材P66。 5. 描述的是程序执行的逻辑过程。 【答案】框图 【知识点】第3章,参考教材P56。 6.(2008.10真题)时序网络主要描述的是系统___________及其___________方式。 【答案】状态,转换 【知识点】第3章,参考教材P58。 7. 是一种不需要事先做更多的理论假设的概念模式。 【答案】计算机模拟模型 【知识点】第3章,参考教材P59 8. (2006.1真题)在关于界面设计的基本原则中,用户界面的主要功能是___________,界面必须___________。【答案】通信,始终一致 【知识点】第3章,参考教材P63。 9. 软件开发工具是引导人们建立正确的、有效的 的一种手段。 【答案】概念模式 【知识点】第4章,参考教材P68。 28 10. 文档生成包括 、___________、___________三大类。 【答案】文章,表格,图形 【知识点】第4章,参考教材P78。 11.代码生成器的基本任务是根据设计要求, 或 地产生相应的某种语言的程序。 【答案】自动,半自动 【知识点】第4章,参考教材P77。 12. 实际上是信息库的一个组成部分,它记录的是项目本身进展的各种有关信息。 【答案】项目数据库 【知识点】第4章,参考教材P79。 13.信息库的组织方式主要有集中式存储,分散式存储和 、 ,并设立统一的信息库管理模块来进行管理。 【答案】逻辑上统一,物理上分散 【知识点】第4章,参考教材P75。 四、名词解释题 1.(2009.10真题)概念模式 2.项目管理 3.(2010.1真题)数据流程图 4.软件集成问题 5.(2006.10)代码生成器 五、简答题 1、列举出五种以上的概念模式 2、简述一个功能比较完整的、具有综合支持能力的软件开发工具的一般结构。 六、论述题 (2011.1真题)试论述软件开发工具信息库中的内容。 软件开发工具阶段测评3(第5-8章)一、单选题 1.下面哪项不是购买市场上已有的软件开发工具的优势( ) A.够帮助人们在某些环节上完成简单的、重复性的工作 B.使工作的组织管理比较规范 C.可以部分做到信息与知识的重用和共享 D.目前真正经过考验的、一体化的工具很多,它们的作用与可靠程度都有保证 2.选购软件开发工具首先应考虑的是( ) A.确认服务条件 B.明确环境与约束条件 C.明确目的与要求 D.市场调查的结果 3.(2009.1 单选题)一般而言,软件开发工具,我们更倾向于购买( ) A.非常通用的 B.用途十分明确的 C.使用方法精巧,复杂的 D.文档理论性很强的 4.(2010.10)对一个系统的运行状况及效率进行检测与评价的工作称为( ) A.测试 B.鉴定 C.审计 D.验收 5.(2008.10真题)对软件开发工具进行审计(Audit)的基础是( ) A.功能完善的软件 B.日常记录的信息 C.方便灵活的用户界面 D.良好的计算机系统 6.(2009.10真题)对市场上可供使用的软件开发工具进行调查研究时应包括的内容是( ) 29 A.软件开发工具供应商的规模 B.软件开发工具的管理者 C.软件开发工具销售情况 D.软件开发工具的服务和培训条件 7.判断一个商品化的软件开发工具优劣的最主要标准是( ) A.工具的功能与性能 B.工具依据的理论和方法 C.提供的服务与文档资料 D.用户界面友好 8.以下选项是一体化的软件开发工具的是( ) A.CDD B.Power Builder C.Dictionary/3000 D.Flow 9.由计算机语言发展而来的软件开发工具是( ) A.Java B.Visual Studio C.Word D.Eclipse 10.侧重分析方法并于开发平台的一体化工具是( ) A. Power House B. New Era C. Power Builder D. Rational Rose 11.从国内、外软件开发工具比较情况可以看出( ) A.国外的研究水平远高于国内 B.软件开发工具在国内应用的范围更广C.在研究水平上国内、外差不多 D.在工具的应用上国内、外差不多 12.我国软件开发工具在应用上落后的主要原因不包括( ) A.还没有形成稳定的、高度有组织的软件开发群体 B.程序员个人的技术水平不高 C.软件工程及方法学的知识还没有普及 D.真正发挥软件开发工具作用的环境和需求还不具备 13.关于软件开发工具发展轨迹图的叙述不正确的是( ) A.横轴是时间轴,跨越了40年 B.跨越了结构化时代、面向对象时代和互联网时代三个时代 C.纵轴表示抽象程度 D.随着集成程度和抽象程度的不断提高,抽象程度低的工具已经不需要了 14.关于Visual Studio说法不正确的是( ) A.由微软公司开发的一体化开发环境 B.与微软公司其它产品的交互协同性好 C.能运行于多种操作系统上,而且表现差异非常小 D.在运行速度方面表现出众 15.关于Eclipse的叙述不正确的是( ) A.是微软公司的产品 B.是一款免费的软件开发环境 C.在Windows、Linux、Mac OS操作系统上均可安装运行 D.可以添加多种插件 16. 关于Eclipse的描述不正确的是( ) A.Eclipse是基于Java语言的 B.Eclipse不能在苹果操作系统Mac OS上运行 C.Eclipse可以用来编辑HTML格式文件 D.Eclipse支持中文版 30 17. Eclipse的体系结构中除了( ),其它都是插件。 A.工作空间 B.工作台 C.帮助组件 D.运行时内核 18.Eclipse文本编辑器中查找下一个操作的快捷键是( )。 A.Ctrl+K B.Ctrl+Shift+K C.Ctrl+C D.Ctrl+ 19.关于Eclipse的视图,下列说法不正确的是( ) A.可以用来浏览工作台中的资源 B.可以显示编辑器中的属性 C.可以显示程序状态 D.可以同时有多个视图处于活动状态 20.下面哪种方法能一次关闭所有打开的编辑器( ) A.单击编辑器选项卡上的“×”图标 B.鼠标右击选项卡,选择“Close”选项 C.单击“文件”菜单,选择“Close”选项 D.单击“文件”菜单,选择“Close All”选项 二、多选题 1.自己开发软件工具的优势是( ) A.目标明确 B.符合需要C. 便于进一步扩充和升级 D. 不存在引进外面产品时的冲突与不一致 E. 做的顺利还可以做成软件产品出售 2. 软件开发工具的工作环境包括( ) A.硬件配置 B.系统软件 C.数据库管理系统 D.网络通信条件E.程序员的的知识背景 3.权衡购买或自行开发软件工具必须考虑的因素有( ) A.准备开发的软件的性质与要求 B. 工具的价格 C.工具运行的工作环境 D. 开发人员对工具的实际需要 E.程序员的知识背景 4.(2009.10 真题)下面哪项是选择软件开发工具的要点( ) A.运行环境 B.性能/价格比 C.用户的编程能力 D.主机的速度 E.对应的开发方法 5. 对软件开发工具进行审计时应考虑的问题包括( ) A.通过使用工具得到了哪些收益 B.工具的人机界面是否符合有关人员的工作习惯与要求 C.工具预期功能的实际使用状况和效果如何 D.工具使用过程中是否出现过错误或故障 E.引入工具后项目组开发了几个软件,使用的情况和效果有什么不同 6.选购软件工具必须进行市场调查。调查的重点问题有( ) A. 工具所依据的开发方法或开发理论 B. 工具的功能与性能 C.工具的价格 D.工具的文档资料是否齐全 E.工具的服务、培训条件如何 7.引入软件开发工具后的组织管理工作包括( ) A.制定严格的使用制度 B.记录使用的详细过程 C.反复培训使用人员 D.使用人员只需培训一次即可 E.经常进行审计与评价工作 8.(2009.10 真题)软件开发工具进一步的发展方向包括( ) A.网络化 B.智能化 C.一体化 D.大众化 E.标准化 9.以下选项是一体化的软件开发工具的是( ) A.CDD B.AD/Cycle C.ADT D.Flow E.Quick MIS 10.下面哪些工具是由计算机语言发展而来的( ) A.VB B.Visual Studio C.VC D.Eclipse E.Java 11.基于网络和开源软件的工具有( ) A.自动生成XML的工具 B. Rational Rose C.基于SOAP的工具 D.面向UDDL的搜索工具 E.清华大学的Auto-DbaseⅢ 31 12. Eclipse中的视图包括( )。 A.导航器视图 B.大纲视图 C.控制台视图 D.搜索视图 E.错误视图 13.Eclipse支持从外部导入( ) A.操作系统 B.归档文件 C.文件系统 D.项目 E.首选项文件 14. Eclipse常用的内部编辑器有( ) A.c/c + +编辑器 B.文本编辑器 C.任务编辑器 D.二进制文件编辑器 E.Web浏览器 15.关于Eclipse的项目说法正确的是( ) A.所有程序都是以项目为单位存在的 B.项目的名称是唯一的 C.可以将已有的外部项目导入到Eclipse集成环境中 D.项目及其内容是以树形菜单的方式组织的 E.用户创建的项目是不可以删除的 三、填空 1.自行开发工具一定要坚持短小实用、 ,避免期望过高, 。 【答案】逐步积累,贪大求全【知识点】第5章,参考教材P87。 2.(2009.1真题)决定商品化软件开发工具成败的首要因素是___________和___________。 【答案】服务,文档【知识点】第5章,参考教材P88。 3.从目前软件开发工具的发展看,智能化、 、 和标准化是值得注意的几个方向。 【答案】网络化,一体化【知识点】第6章,参考教材P92。 4. 在软件开发工具发展轨迹图中,横轴是时间轴,跨越了40年,三个时代:结构化时代、___________时代、直到今天的___________时代。 【答案】面向对象,互联网【知识点】第6章,参考教材P93。 5. 从软件开发工具历史发展的脉络,可以看到一个有趣的、值得注意的特点: 和 并存。 【答案】多样性,趋同性【知识点】第6章,参考教材P94。 6. Eclipse与Visual Studio相比,其 、小核心、___________的特点更富有灵活性。 【答案】大平台,多插件【知识点】第6章,参考教材P97。 7. Eclipse是一个 的,基于 的可扩展集成应用程序开发环境。 【答案】开放源代码,Java【知识点】第7章,参考教材P102。 8. 使用Eclipse,首先需要安装 ; 是专门用于编写C和C++程序的Eclipse开发环境。 【答案】JDK ,CDT【知识点】第7章,参考教材P102-103。 9. Eclipse的透视图包括视图和___________。 【答案】编辑器【知识点】第8章,参考教材P108。 10. 视图一般位于窗口的左侧,显示当前Eclipse集成环境中加载的所有项目和各个项目中的文件列表。 【答案】导航器【知识点】第8章,参考教材P111。 11.Eclipse的帮助文档是一种 的联机帮助文档。 【答案】实时更新【知识点】第8章,参考教材P124。 12.Eclipse支持从外面导入归档文件、文件系统和 文件。 【答案】首选项【知识点】第8章,参考教材P120。 四、名词解释题 1.软件开发工具的工作环境 2.软件开发工具的智能化 3.软件开发工具的趋同性 4. Eclipse工作台 5. Eclipse编辑器 五、简答题 1、简述对市场上已有的软件开发工具进行调查研究的重点 32 2、简述软件开发工具的选择与购置步骤。 六、论述题 试比较Visual Studio(微软)和Eclipse两款软件开发环境的优劣势。 33 软件开发工具阶段测评4(第9-14章) 一、单选题 1.关于MinGW的描述不正确的是( )。 A.MinGW支持在Linux平台运行 B.MinGW可以用来编译Java程序 C.MinGW可以用来运行C语言程序 D.MinGW 包含了C++语言库文件 2. Eclipse提供的重构功能不包括( ) A.重命名变量 B.抽取方法 C.快速查看并定位程序中的元素 D.将程序中的数字、字符定义为常量 3.在Eclipse CDT特有的Search功能中不包括( ) A.文件搜索 B.编辑器搜索 C.C/C++搜索 D.任务搜索 4.重命名变量位于菜单栏的( )菜单中。 A. Refactor B. Navigate C. Edit D. Search 5. GDB提供的功能不包括( )。 A.按用户要求运行和暂停程序 B.动态地改变程序的执行环境 C.单步调试程序 D.无法帮助用户检查程序中的语法错误 6.添加方法断点的方法正确的是( ) A.在编辑器左侧的标记区域上双击鼠标 B.在编辑器左侧的标记区域上右击鼠标,从弹出菜单中选择Toggle Breakpoint C.在断点视图的工具栏中打开视图菜单,设置方法断点 D.在大纲视图中用鼠标右键单击add方法,从弹出菜单中选择Toggle Breakpoint 7.常见的事件断点不包括( )。 A.抛出异常 B.系统调用 C.操作系统死机 D.进程结束 8.单步遍历程序不包括( )。 A.单步跳入 B.单步跳出 C.单步跳过 D.单步返回 9.以下各项中属于自定义编译器功能的是( )。 A.修改编辑器的位置 B.删除编辑器 C.跳出编辑器 D.结束编辑器 10.当工具栏处于锁定状态时( ) A.可以定制工具栏中的各个按钮 B.可以改变工具栏的位置 C.可以对工具栏解锁 D.不可以隐藏工具栏 11.关于Eclipse的生成历史记录功能说法不正确的是( ) A.支持用户随时将程序恢复到之前的某个时间点 B.可以进行长期的版本控制 C.支持用户恢复从工作台删除的历史记录 34 D.只会记录较短时间内的文件版本 12.以下各项中哪项不是CVS的特点( )。 A.简单易用且功能强大 B.支持并发版本控制 C.完全免费 D.具有稳定的技术支持 13. 在版本控制软件中,将用户分为程序员和管理员,其中管理员的工作是( )。 A.将程序解冻或冻结 B.提出程序 C.修改程序 D.放入程序 14. 描述插件的名字、版本号、扩展点等信息的是插件文件夹中的( )。 A.about.html B.plugin. xml C.plugin. properties D.*. Jar 15.以下关于插件开发环境的简称正确的是( )。 A.DDE B.PDT C.PDE D.PPT 16. PDE透视图的清单编辑器中,定义重要的插件属性,并提供有关如何开发、测试和部署插件的快速参考的页面是(A.依赖性页面 B.扩展页面 C.概述页面 D.运行时页面 17.UML的核心视图是( )。 A.用例视图 B.逻辑视图 C.组件视图 D.协作视图 18.从系统实现的角度描述模型关系的视图是( ) A.用例视图 B.组件视图 C.配置视图 D.逻辑视图 19.关于组件说法不正确的是( ) A.组件是一个可重用的软件构件 B.组件的核心是接口 C.组件的外观是复杂的、繁琐的 D.类是组件技术中的基础概念 20.在地铁售票信息系统开发的需求分析阶段使用的图表是( ) A.用例图 B.顺序图 C.类图 D.组件图 二、多选题 1. Eclipse提供的浏览功能包括( ) A.打开变量声明 B.打开文件包含浏览器 C.打开调用层次结构 D.打开元素 E.打开类型层次结构 2. Eclipse提供的重构功能包括( ) A.重命名变量 B.抽取方法 C.打开文件包含浏览器 D.打开元素 E.抽取常量 3.常见的断点类型有( ) A.程序断点 B.方法断点 C.行断点 D.事件断点 E.文件断点 4.对断点的操作包括( ) A.添加断点 B. 删除断点 C.激活断点 D. 设置断点动作 )35 E.禁用断点 5. Eclipse规定的断点动作有( ) A.结束程序动作 B. 声音动作 C.日志动作 D. 重新启动程序动作 E.外部工具动作 6.对Eclipse透视图的操作包括( ) A.定制透视图 B.复位透视图 C.保存透视图 D.覆盖现有透视图 E.删除透视图 7.常用的版本控制软件有( ) A. Rational ClearCase B. Visual SourceSafe C. CVS D. Star Team E. Firefly 8.清单编辑器是一个多页面编辑器,包括( ) A.构建页面 B.扩展点页面 C.概述页面 D.运行时页面 E.扩展页面 9.EMF插件的功能有( ) A.所有基于模型的代码都可以自动生成 B.用户能通过模型定制文件作为代码生成的输入文件 C.默认的持久化机制 D.提供标准的模型-视图-控制模式结构 E.生成模型编辑器 10. 属于面向对象的系统分析设计方法的有( ) A. Booch B. OMT C.UML D. Goad/Yourdon E. OOSE 11.(2008.10真题)OO方法的优点体现在封装、( ) A.抽象 B.概括 C.多态性 D.稳定性 E.持久性 12.UML可以应用于( ) A.信息系统 B.技术系统 C.嵌入式实时系统 D.分布系统 E.商务系统 13. UML的基本内容包括( ) A.视图 B.图表 C.表格 D模型元素 E.基本机制 14. Rational Rose可视化建模的特点包括( ) A.支持UML的建模 B.采用基于组件的开发 C.支持多语言开发 D.全面的团队支持 E.风格各异,使用复杂 15.PDE提供的插件模板包括( ) A.Hello,world模板 B.具有编辑器的插件 36 C.具有弹出菜单的插件 D.具有多页面编辑器的插件 E.具有视图的插件 三、填空 1. MinGW是指用来生成纯粹的 可执行文件的编译环境,它能够提供C/C++所需要的头文件和 。 【答案】Win32,库文件 【知识点】第9章,参考教材P127。 2.假设MinGW已安装在C盘根目录下,那么在设置环境变量的时候,应添加的路径内容为: 。 【答案】;c:\\MinGW\\bin 【知识点】第9章,参考教材P133。 3.调试透视图中的___________显示整个调试过程中程序变量值的变化情况,是帮助程序员查错和纠错的主要手段。 【答案】变量视图 【知识点】第10章,参考教材P174。 4.单步遍历程序主要包括 、 和单步返回。 【答案】单步跳入,单步跳过 【知识点】第10章,参考教材P175。 5.在调试程序过程中,当用户需要中断时,可以单击中断Terminate按钮,或按快捷键 即可中断当前线程。 【答案】Ctrl+F2 【知识点】第10章,参考教材P175。 6. Eclipse提供的__________功能,可以帮助用户将凌乱的程序代码格式化为用户习惯的排列方式。 【答案】格式化代码 【知识点】第11章,参考教材P1。 7.CVS的访问权限分为一般用户账户和 。 【答案】管理员账户 【知识点】第12章,参考教材P205。 8.在Eclipse中,同一时间只能显示一个编辑器,但是可以显示___________视图,这是视图和编辑器最显著的区别。 【答案】多个 【知识点】第13章,参考教材P223。 9.与传统方法相比,面向对象具有显著的优点,它解决了信息系统工程中的两个主要问题 :软件维护的 和提高 。 【答案】复杂性,生产效率 【知识点】第14章,参考教材P231。 10.UML是一种定义良好、 、功能强大且普遍适用的___________。 【答案】易于表达,建模语言 【知识点】第14章,参考教材P230内容提要。 11.(2008.1真题)UML的基本机制包括修饰、__________和__________。 【答案】注释,说明 【知识点】第14章,参考教材P236。 12.Rational Rose采用三层解决方案,由__________、事务处理原则层和__________组成应用模型,这种抽象的分层结构满足了当前软件系统整体结构的需求。 【答案】用户接口层,数据层 【知识点】第14章,参考教材P237。 13.UML把系统开发分成五个阶段: 、分析、 、编码和测试。 【答案】需求分析,设计 【知识点】第14章,参考教材P234。 四、名词解释题 37 1.抽取方法 2.断点 3.程序的互斥性修改 4.插件5.组件 五、简答题 1、简述版本控制软件的作用。 2、简述与传统方法比较面向对象方法的优势。 六、论述题 试述一个C/C++项目从创建、编辑到运行的整个生命周期过程。 【答案】 1) 新建C/C++项目 ① 单击“文件”菜单,选择“新建”子菜单下的“项目”选项,在打开的对话框中选择“C Project”; ② 在“C Project”窗口输入项目名称,在项目类型中选择“Hello World ANSI C Project”,在工具箱中选择“MinGW GCC”; ③ 在“Basic Setting”窗口中设置源代码的注释部分内容。 2) 新建源文件夹和C++类 ① 右击项目名称,选择“新建”子菜单中的“源文件”选项,输入文件夹名称,一般为scr; ② 右击scr文件夹,选择“新建”子菜单中的“类”选项,输入类名称。 3) 编辑C程序 在编辑器中输入源程序代码。 4) 编译C程序 在资源管理器中,右击项目名,选择“Build Configurations”-> “Build All” 。 5) 运行C程序 在资源管理器中,右击项目名,选择“运行方式”-> “运行设置”,设置完毕后,单击“Run”按钮即可运行项目,运行结果在控制台视图中显示。 【知识点】第9章 七、应用题 在你了解的软件开发工具工具中,哪一个比较接近集成工具?以地铁售票信息系统开发为例,说明这个工具在各个阶段如何支持软件开发工作。 【答案】 Rational Rose是面向对象的可视化建模的软件工具,包括面向对象的分析、设计、建模和组构,它提供了对UML的完全支持。 1、需求分析阶段:使用用例图和活动图分析需求。 1)用例图,包括角色、用例和关系。 地铁售票系统中主要有两个角色:乘客和系统管理员 乘客有六个用例:投硬币、投纸币、选择票数、取消本次操作、选择目的地、取票 管理员有三个用例:添加零钱、添加车票、结算 先用顶层用例图简要描述角色和各个用例,再进一步扩展得到扩展后的乘客用例图和管理员用例图。 2)活动图,描述系统功能流程的工具,可以很好地描述系统的活动、判定点、先后顺序和分支等。 乘客的活动流程是:登录系统,投币并选择目的地,选择购买张数,系统判断投入金额是否足够,如不够则提示乘客再投币,否则购票成功,系统出票并找零。 管理员的活动流程是:接到报警进入系统,根据具体情况或结算或添加车票或找零,退出系统。 2、系统分析阶段:使用顺序图和协作图从两个不同角度描述系统的数据流向情况。 1)顺序图,从左至右、从上到下清晰地描述出售票过程的顺序。 2)协作图,对相互间有交互作用的对象和对象间的关系建模。 3、系统设计阶段:把地铁售票信息系统的具体需求转换为设计文档,用组件图和类图实现。 1)组件图,描述软件的各种组件和他们之间的依赖关系,包括组件、接口、依赖关系。 2)类图,直接指导面向对象的编程语言实现类,是代码生成的核心要图。 4、系统实施阶段:使用配置图实现。 配置图,可以很好地描述实施时整个系统的结构与层次,并且描述系统中软件和硬件的物理结构。 38 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务