软件开发工具(自考小资料)

 第1章 绪论

1.1 软件开发工具的由来

1、软件产品的(质量)(效率)(价格)已成为各方面关注的十分重要的问题。(多选题)

2、名词解释:软件开发工具   在高级程序设计语言的基础上,为提高软件的质量和效率,从规划、分析、设计、测试、成文和管理各方面,对软件开发者提供各种不同程度帮助的一类广泛的软件。

3、简答:如何理解软件开发工具的概念

(1)是一类软件,是开发软件用的软件。

(2)它是在第三代语言的基础上发展起来的。

(3)强调对软件开发全过程中各个阶段的支持,即不仅包含狭义的编程阶段,而是包括了相当广泛的范围和相当丰富的内容。

4、60年代初期的高级语言有(FORTRAN)(ALGOL)(COBOL)。(多选或填空题)

5、第三代语言实现了对机器的(独立性),(抽象)的(逻辑)的描述处理和算法,提高了程序的(移植性)。(填空题)

6、第三代语言的瓶颈-(处理过程的描述)(单选或填空题)

7、名词解释:软件危机 认识到软件工作的重要性的同时,也认识到了软件工作的困难性。

8、简答:软件的重要性

(1)软件是计算机的灵魂。

(2)软件是使用者与计算机之间的桥梁。

(3)软件是人类在各个领域中积累的知识的结晶。

(4)软件是人类文明与知识得以延续的新的载体。

(5)软件是人类进一步成为一个整体,得以进一步相互联系的纽带。

9、简答:软件的困难性

(1)人类社会和客观世界的复杂性,决定了软件本身的复杂性。

(2)人类知识的丰富多彩,决定了软件的极大的多样性。

(3)客观世界的动态性,决定了软件对可维护性、可重用性越来越高的要求。

10、通用软件的弱点

(1)有许多工作是通用软件所无法完成的。

(2)用通用软件完成某些工作,只能表现其表面的形式,而不能反映其逻辑内涵。

(3)用通用软件来帮助人们完成软件开发工作时,常常遇到难于保持一致性的困难。

11、属于专用软件开发工具的有(代码生成器:报表生成器、菜单生成器、对话生成器)(第四代语言)(数据字典管理系统DDMS)(画数据流程图、ER图或程序框图的绘图软件)。(多选题)

12、进入集成的软件开发环境阶段的标志是IBM公司(AD/Cycle理论框架的提出)。(单选题)

1.2软件开发工具的概念

1、简答:软件开发工具概念的要点

(1)它是在高级程序设计语言之后,软件技术进一步发展的产物。

(2)它的目的是人们开发软件过程中给予人们各种不同方面、不同程度的支持或帮助。

(3)它支持软件开发的全过程,而不是仅限于编码或其它特定的阶段。

2、认识软件开发工具的概念,应同时认识它的(继承性)与(创造性)。(填空题)

3、指令是人们在实践中形成的工作(规范)与(步骤)。(填空题)

4、软件应当包括(程序)和(文档)两个不可缺少的组成部分。(填空题)

5、目前软件开发的新阶段是以(应用软件开发工具)为标志的新阶段。(单选、填空题)

6、软件和软件开发过程的实质是知识的(提炼)(表述)(固化)的作用。(多选、填空题)

7、简答:软件开发新阶段的特点(表现)

(1)自动化程度的提高。

(2)这一阶段的工作明确地把需求分析包括进了软件工作地范围之内,从而使软件开发过程进一步向用户延伸,离用户更近了。

(3)把软件开发工作延伸到项目及版本管理,从而超出了一次编程的局限,而扩展到了作为一个不断发展地客体生长完善的全过程。

(4)这一阶段的研究吸收了许多管理科学的内容与方法。

8、名词解释  第四代语言(4GL):原义是非过程化的程序设计语言。针对以处理过程为中心的第三代语言,它希望通过某些标准处理过程的自动生成,使用户可以只说明要求做什么,而不把具体的执行步骤的安排交由软件自动处理。

9、名词解释  可视化编程:强调“所见即所得”得原则,力图实现编程工作的可视化,即随时可以看到结果,程序的调整与后果的调整同步进行。

10、名词解释 CASE工具:一种理解是计算机辅助软件工程,另一种是计算机辅助系统工程,即应用计算机自身处理信息的巨大能力,帮助人们开发复杂的软件或应用系统。

1.3软件开发工具的功能与性能

1、名词解释  需求分析:从初始要求出发,经过大量的调查研究工作,抽象出应用领域中的实际的信息需求,设计出在计算机系统内外的、合理的信息流程,并规定软件系统的功能与性能要求。这些调查分析的成果体现在了软件功能说明书中。

2、总体设计包括(软件的结构设计)(公用的数据文件或数据库的设计)(各部分的连接方式)(信息交换的标准)等。(多选题)

3、总体设计的成果是(系统的总体设计文件及各个模块的设计任务书)。(单选题)

4、总体设计文件包括(结构图)(模块清单)(公用数据结构)。(多选题)

5、名词解释  模块的测试:根据总体设计时制定的各个模块的设计任务,对程序员完成的模块进行验收,看他们是否实现了所要求的功能,是否达到了所要求的性能指标。

6、认识与描述客观系统主要用在软件开发工作的第一个阶段(需求分析阶段)。(单选、填空)

7、简答:软件开发工具的性能

(1)表达能力或描述能力:选择软件开发工具时首先要考虑的。

(2)保持信息一致性的能力。

(3)使用的方便程度。

(4)工具的可靠性    可靠性:在各种各样干扰下仍能保持正常工作,而不致丢失或弄错信息。(名词解释)

(5)对硬件和软件环境的要求   一般说来,软件开发工具对环境的要求不应当超出它所支持的应用软件的环境要求。(选择题)

1.4 软件开发工具的类别

1、按工作阶段划分:(单选、多选题)

(1)设计工具   如:代码生成器、4GL、测试工具,出现最早数量最大的。

(2)分析工具  如:数据字典管理系统、画数据流程图工具FLOW、画结构图或ER图的工具。

(3)计划工具  为(项目主管人员)服务的。

2、按集成程度划分

(1)专用的、面对某一工作阶段或某一工作任务的工具。

(2)集成化的、面对软件开发的全过程的工具。

名词解释  软件工作环境:集成化的软件开发工具被称为软件工作环境。

3、按与硬件、软件的关系划分:

(1)依赖于特定的计算机或特定的软件,设计工具、集成化的软件开发工具。

(2)独立于硬件与其他软件的   分析工具、计划工具。

第2章 软件开发过程及其组织

2.1软件开发中的困难

1、软件开发的基本问题(单个程序员遇到的问题)  两个转换:

(1)第一个转换是用户对软件功能的理解与程序员对软件功能的理解之间的转换。

     手段:用尽可能标准化的方法编写程序设计任务书。

(2)第二个转换解决的是人和机器之间的交流与协调问题:人和机器之间的思维方式、工作方式上都有许多根本的区别。

     关键在于程序员的知识水平与实际经验。

2、简答:大型软件开发中的困难

(1)一致性的保持成为十分困难的问题。

(2)测试的困难大大增加。。

     名词解释:水波效应   当人们修改程序的某一处时,由于没有充分考虑到这一修改对相关部分带来的影响,结果出现了新的错误。

       “黑箱”检验方法  输入一些信息,观察是否能否得出预期输出来判断。

(3)工作进度难以控制。

(4)文档与代码的协调十分困难。

     文档包括(功能说明书)(总体设计、各模块的设计任务书)(每个部分的研制报告)(测试报告)(验收报告)(用户手册)。(多选题)

(5)版本更新带来的困难。

3、简答:大型软件开发困难产生的原因

(1)这些困难来自大系统的复杂性。

(2)许多具有主动性的个人之间的组织与协调本身也会带来大量的困难。,

(3)各个应用领域之间的差别也导致这些困难的加重。

(4)时间的因素、变化的因素也给软件开发工作开来许多困难。

2.2软件开发方法的发展

1、大型软件开发中的角色及其任务

(1)用户   任务:提出要求、验收、使用、要求修改。

(2)项目负责人  任务:分析需求,向程序员分配任务,验收程序员的工作成果代码与文档,对整个软件进行联调,向用户交付使用,接收与分析用户的修改要求,向程序员布置修改任务,验收修改成果并向用户提交新的版本或修改的结果。

(3)程序员  任务:编写程序,编写文档,调试自己编码的程序,向项目负责人提交工作成果,

2、结构化程序设计的起点标志:《GO TO语句是有害的》《结构化程序设计》。(多选题)

3、简答:结构化程序设计的思想和方法

思想:把程序的结构分解成三种基本模块:处理单元、循环机制、二分决策机制

方法(模块划分原则):

    1)模块的功能在逻辑上尽可能地单一化、明确化,最好做到模块与任务地一一对应。

    名词解释:凝聚性  每一个模块实现一项明确地任务,反之每一项任务仅有一个模块来完成。

     2)模块之间的联系及其相互影响尽可能地少,对于必要地联系都应当加以明确地说明。

    名词解释:耦合  模块之间地各种联系及其相互影响称为耦合。

      尽量避免(逻辑耦合),使用(数据耦合)(选择、填空题)

     3)模块的规模应当足够小,以便使它本身的调试易于进行。

4、如何实施结构化程序设计的思想?

(1)限制甚至不用GOTO语句,绝对禁止超越模块边界的GOTO语句。

(2)子程序尽可能做到只有一个入口、一个出口。

(3)程序风格尽量明确、清晰。

(4)在程序编写的同时完成有关的文档编撰,不要拖延时间。

5、结构化程序设计方法主要是为(程序员)服务的。(单选、填空题)

6、结构化程序设计方法的优点:保证了软件可靠、准确度,易于修改。

   缺点:增大了程序工作量,增加了编程中的麻烦与琐碎的工作。(多选题)

7、工程思想的核心:(标准化的表达方式)(规范化的工作步骤)。(填空题)

8、简答:软件工程的思想

(1)对软件开发过程进行规范,把开发过程分为:需求分析、分析与设计阶段、编程阶段、测试阶段、使用及维护阶段五个阶段。

(2)在标准化方面,一方面是表达方式的标准化,另一方面是对工作的质量及检查制定标准。

9、软件工程的思想主要集中于加强(项目管理者)的工作上。(单选、填空题)

10、Object Oriented的翻译方法有:(面向客体)、(面向目标)、(物件导向)(面向对象),(面向客体)更为准确。(选择题)

11、简答:面向对象的思想

(1)客观世界的任何事物都是对象,它们都有一些静态属性,也都有一些有关的操作。作为一个整体,这些对象对外不必公开这些属性与操作,称为“封装性(名词解释)

(2)对象之间有抽象与具体、群体与个体、整体与部分等几种关系。

(3)抽象的、较大的对象所具有的性质包括静态属性和动态操作,自然地成为它的子类的性质,不必加以重复说明或规定,这就是“遗传性”(名词解释)

(4)对象之间可以互送消息。

12、与即插即用的程序设计方法相关的概念有:(组件程序设计)(组合文件)(宏观程序设计)。(多选题)

13、名词解释:即插即用 在软件生产过程中,一部分人专门生产软件组件,而另一部分人则设计整个软件的结构,并且把软件组件插入这个结构,以便迅速地完成大型软件的研制工作。

14、名词解释:可视化程序设计 是指用图标、图像、图表,甚至随手画的素描等可视化的元素来编制程序。

2.3软件开发过程的管理

1、项目管理的要素是(进度)(质量)(费用)(资源利用)。(多选、填空题)

2、好软件、好程序员、好项目组的标准。

3、项目组中的一员必须具有高度的(组织纪律性)和(团队精神)。(填空题)

第三章 软件开发工具的理论基础

3.1软件开发过程的信息需求

1、软件开发工具对软件开发工作的支持是在(信息管理)和(信息处理)方面,即为软件开发工作者存储和管理某些信息。(填空)

2、简答:软件开发过程中涉及的信息主要有哪些?

(1)有关系统环境、现状及需求的信息。由用户提出。

(2)有关软件的功能设计与物理设计的各种信息。由分析人员设计。

(3)软件成果本身,包括程序与文档。由程序员编制。

(4)用户对系统的各种变更要求,以及系统的各种变更的记录。

前三类是一个开发周期内形成的,第四类信息是跨越开发周期的。(选择)

3、简答:对软件开发涉及的信息管理工作有哪些?

(1)许多信息需要长期保存,因为他们并非只用一次,而是需要不断更新,不断被调用。

(2)在许多环节上都要进行数据的转换或加工。

(3)还有大量的人与人之间的交流。

所以,软件开发工具是为上述四类信息的(合理存储)(正确转化)和(顺畅流通)提供帮助。(填空)

4、软件开发工具用到的理论和方法有6种:概念模式、数据库技术、编译技术、人机界面、项目管理和版本管理、系统科学与系统工程理论。(多选)

3.2概念模式及其作用

1、名词解释  概念模式:又称概念模型,原是认知科学中的一个用语,指人们在认识事物过程中,对某一事物或某一系统形成的抽象的、一般化的概念框架。

2、简答:概念模式的作用和意义有哪些?

(1)概念模式是人们认识客观世界的一种方法、工具。

(2)概念模式是人们在长期的实践活动中逐渐形成的。

(3)概念模式总是在一定的理论思想指导之下形成的,同时又不断地根据实际情况得到修正。

(4)概念模式在认识过程中十分重要,同时作为(交流)(表达工具)也是十分重要的。

3、概念模式有(相对性),必须(简单明了、易于理解)。

4、框图:是人们在编写软件时最早使用的一种概念模式,它是用来描述程序执行的逻辑过程的,它把程序的基本步骤归纳为:处理、判断、输入输出、起始或终结等几个基本功能。

5、结构图:表示大型软件的层次结构,即模块结构。它以模块的调用关系为线索,从宏观上使人一目了然地掌握软件的全面。

基本程序调用方式:顺序、选择、循环调用。

6、数据流程图(DFD):面对的是一个系统的信息流程,更多地用于描述某一业务处理系统的信息来源、存储、处理、去向的全面情况。它的基本思想是把信息流看作一个组织或系统运作的线索,力图简明扼要地勾画出全局。

与结构图相比,DFD更适用于(客观描述),而结构图则着重于软件模块之间的(控制)。

DFD的基本元素是外部实体)(数据处理)(数据存储

7、实体关系图:是一种用于描述静态数据结构的概念模式,它以实体、关系、属性三个基本概念概括数据的基本结构。

8、数据字典(DD):是一种描述数据内容的概念模式,它用表格的形式列出数据的基本属性以及相互关系,它的雏形是编写软件时的变量说明或标识符清单。

与ER图相比,更适于记录各种细节。

9、时序网络:主要用于描述系统状态及其转换方式,因此常常用于一些实时控制方面的软件的功能。它的基本概念是状态与转换。

10、计算机模拟模型:是一种强有力的概念模式,它利用计算机大量、高速处理信息的能力,在计算机内设置一定的环境,又以程序来表现客观系统中的某些规律或规则,计算机可以在设定好的环境、按定好的规则高速运行,以便人们观察与预测客观系统的状况。

11、直观模型:用可视化的图标、图像、图标、甚至随手画的素描等元素描述心目中的系统。

3.3信息库及其一致性

1、传统的信息传递方式是通过(文档)形式交流的,主要有(系统说明书)(设计方案)(使用手册)。(填空、单选、多选)

2、名词解释 信息库:是一个包罗万象的,随着项目进展而不断修改与补充的数据集合。

3、信息库研究中的核心问题是(如何保持信息库的一致性)。(单选)

4、范围:数据仓库>信息库>数据库。

3.4人机界面及其管理

1、对于用户,(界面)就是(系统本身)。(填空)

2、简答:用户界面的基本原则
(1)用户界面的主要功能是通信。

(2)界面必须保持一致。

(3)界面必须使用户随时掌握任务的进展状况。

(4)界面必须能提供帮助。

(5)能可让程序多干,不可以让用户多干。

3、人机界面设计时主要(灵活性)和(一致性)矛盾的权衡。(填空)

4、AD/Cycle的系统结构模式SAA三个接口:对程序员的接口CPI、对其他计算机系统的接口CCS、对用户的接口CUA。

5、人机交互手段的八个方面:键盘操作、屏幕滚动、菜单选择、帮助系统、鼠标操作、色彩应用、数据录入、信息显示。(多选)

3.5项目管理与版本管理

1、名词解释 项目管理:指与固定的生产线上的日常生产管理不同的,具有更大的变动性、时间性的一类管理任务。

2、简答:项目管理的特点

(1)子任务多,关系复杂。

(2)任务不可重复,形势不断变更。

(3)协调组织的任务十分突出,资源浪费闲置的风险与合理地优化组合、提高效益的机会并存。

(4)信息处理工作的作用与意义更为突出。浪费和效益究竟何者成为现实,取决于指挥决策的正确与否,而决策的正确则立足于这种管理工作。

3、软件开发最关键的问题是(进度)和(质量)。(填空、选择)

4、软件开发的项目管理不同于一般的管理的是(没有版本更新的问题)。(单选)

5、简答:项目管理的任务(目标)

(1)使产品(或工程)的质量得到有效的控制。

(2)保证整个系统按预定的进度完成。

(3)有效地利用各种资源,尽可能使资源的闲置与浪费减少。

(4)控制与降低成本。

6、项目管理中方法有工程计划网络方法,如棒状图检查点方法排队论等。(多选)

7、版本管理的方法:规定计划、制定有关信息范围及收集管理方法、明确分工、贯穿项目管理的思想。(多选)

8、项目管理与版本管理的重要依据(用户反馈信息)。(单选)

第四章 软件开发工具的技术要素

软件开发工具复杂、庞大,因此它的(功能设计)与(总体结构)是必须首先认真考虑的。(填空、多选)

4.1 基本功能与一般结构

1、简答:软件开发工具的基本功能

(1)提供描述软件状况及其开发过程的概念模式,以协助软件开发人员认识软件工作的环境与要求、合理地组织与管理软件开发的工作过程。

(2)提供存储和管理有关信息的机制与手段。

(3)帮助使用者编制、生成及修改各种文档。

(4)帮助使用者编写程序代码,即代码生成。

(5)对于历史信息进行跨生命周期的管理,把项目运行与版本更新的有关信息科学地管理起来。

2、简答:软件开发工具的一般结构

(1)总控部分和人机界面:处于中心位置,是整个工具的信息入口和调度中心,是使用者和软件开发工具之间交流信息、实现所有的支持功能的桥梁

(2)信息库及其管理:信息库的结构框架反映了人们对软件产品及软件开发过程的基本看法,信息库内容的丰富程度则是软件开发工具的功能与作用的最根本的保证。

(3)代码生成和文档生成:是软件开发工具的两种主要输出功能,是最重要的两个信息出口。

(4)项目管理和版本管理:跨越生命周期的信息管理。

4.2总控部分及人机界面

1、名次解释 软件配置或集成:建立一个有效的总控部分,能够在各个具体工具之上实现信息的正确传递与转换,帮助人们完成上述协调与配合的工作,从而形成一个统一的、完整的支撑环境,并通过一个统一的、友好的人机界面与用户对话。

2、总控和人机界面是使用者和工具之间联系的桥梁,必须严格遵循面向(使用者)的原则。(填空)

3、简答:软件开发过程及其任务

(1)需求分析阶段:任务是建立逻辑模型,包括企业模型、数据模型、信息流通模型。

(2)分析设计阶段:任务是完成系统的总体设计,包括数据结构的详细设计,处理过程的详细设计,子系统或模块的划分以及它们之间相互联系的具体规定。

(3)编码阶段:指具体编写软件的阶段,这里是实际的程序代码的产生点。

(4)测试阶段:任务是对已经完成的各个模块或子系统进行试算、调整,以便最终形成完整的软件。

(5)运行维护阶段:任务是组织和管理软件的日常运行,收集运行中的状态信息及出现的问题并及时地进行局部的修改与完善。

4、软件开发工具的技术原则:面向使用者、保证信息的准确传递、保证系统的开放性或灵活性。(多选、填空)

5、理想的系统结构应当是(模块式的)(易于裁剪的)。(填空)

4.3信息库及其管理

1、(信息库)是软件开发工具的基础。(单选、填空)

2、信息库的技术要素:信息库的内容、信息库的组织方式、信息库的管理功能、历史信息的处理方法。(多选)

3、简答:信息库的内容

信息库中需要存放四大类信息:

(1)第一类信息是关于软件应用的领域与环境的状况。包括这个应用领域中的有关实体及它们之间的相互关系的描述,软件要处理的信息种类、格式、流量,应用领域对软件的要求,使用者的情况、背景、工作目标、工作习惯等。

(2)第二类信息是设计成果,包括逻辑设计与物理设计的成果。主要包括数据流程图、数据字典、系统结构图、数据库的逻辑设计、各模块的设计要求以及由此形成的设计文档。

(3)第三类信息是运行状况与测试的记录。包括投入运行前的测试方案及测试数据。软件投入运行之后,应当对它的运行情况进行详细的记录,包括它的运行效率、作用、用户反映、故障情况、故障的原因及处理情况。

(4)第四类是有关项目管理与版本管理的信息。包括项目的进度、过程、人员分工、资源投入、版本组织等。

4、名词解释  集中存储:建立一个庞大的数据库,把各种信息都存放在这个信息库中,而各种工具,或实现各项单项功能的模块则围绕在这个信息库的周围,对这个信息库进行录入、修改、查询、删除。

分散存储:把信息分别存入不同的数据库,由不同的功能模块来处理。

5、简答:信息库的管理功能

(1)具备一般的数据库的管理功能:录入更新、使用查询、一致性维护等。

(2)与一般数据库管理系统不同的两点:

  1. 信息之间逻辑联系的识别与记录。
  2. 如何实现定量信息与文字信息的协调一致。

6、历史信息处理的两个困难:(历史信息的数量太大)(历史信息格式不一致)。

解决方法:第一个困难用(脱机备份)的方法,第二个困难用(加强标准化、稳定数据结构)的方法只能使问题得到一定程度的解决。(选择)

4.4文档生成与代码生成

1、代码生成的输入:信息库存储的有关信息、使用者通过人机界面输入的命令、参数及其它要求和用于生成代码的程序框架及组件。

2、代码代码:高级程序设计语言代码和机器语言。

3、文档包括:(文章)(表格)(图形),(表格)比较容易输出,(文章)是最难处理的。(选择、填空)

4.5项目管理与版本管理

1、项目管理与版本管理的核心问题是(跨生命周期的信息管理问题),(历史信息的处理)是项目管理与版本管理的关键问题。(单选、填空)

2、名词解释:项目数据库 是信息库的一个组成部分,它记录的是项目本身进展的各种有关信息。

3、简答:项目管理的范围

(1)研究与确定开发工作的方针与方法。

(2)开发任务的划分与分工。

(3)资源状况,即有多少人力、物力、设备、软件、资金,它们现在都在做什么,是否得到充分利用,是否需要增加投入。

(4)人员情况,每个人的进度如何,技术水平如何,是否需要重新培训,是否需要调动工作。

(5)变更情况,需求有什么变更,环境有什么变更,人员有什么变更,在开发期间设备与技术有什么变更。

(6)质量情况,检验的标准是什么,如何检验,由谁来检验,用什么数据检验。

4、版本信息包括(版本的编号)(功能改变)(模块组成)(文档状况)(退出时间)(用户数量)(用户反映)(封存情况)。(多选)

第五章 软件开发工具的使用与开发

5.1购置与开发的权衡

1、(简答)购置与开发软件开发工具的权衡因素

(1)取决于准备开发的软件的性质与要这是决定购置还是自行开发的最基本的因素。(单选)

(2)取决于开发人员对支持工作与支持程度的实际需要。

   软件开发人员包括(项目负责人)(程序员)(资料员)(测试人员)。  (多选)

(3)工作环境也是决定购置工具还是自制工具的一个重要因素。

   工作环境包括(硬件配置)(系统软件)(数据库管理系统)(网络通信)。(多选)

(4)人员的因素也是必须考虑的。

5.2软件开发工具的选择与购置

1、(简答)软件选择明确的目的与要求有哪些?

1)为哪个软件开发项目而使用工具,是为了一个项目还是为了一批项目面购置软件开发工具,是为哪一种类型的项目而购置这些工具?

2)在哪个工作阶段使用工具,是单在代码生成或是在文档生成中使用工具,还是在其段也要使用工具,是在一个生命周期内使用工具,还是准备长期开发、不断更新版本?

3)工具将供哪些人使用,这些人以前是否用过工具,他们熟悉的语育、开发环境、表达图示、交流方式是什么?这些人对于使用工具的态度、期望、可塑性如何?

4)工具将在怎样的软件和硬件环境下运行,机器的速度、内存、外围设备、通信条件婀何?

2、(简答)市场调查的内容

(1)开发工具的功能。

(2)这些工具的性能。

(3)这些工具所使用或依据的开发方法或开发理论是什么,与自己的方法理论是否一致。

(4)这些工具的运行环境是什么。

(5)这些工具的文档资料是否齐全。

(6)这些工具的服务、培训条件如何。

(7)价格。

3、(简答)软件开发工具的购置方法与步骤

(1)明确购买软件开发工具的目的与要求,这是正确使用软件开发工具的基础工作。

(2)明确购买软件工具的环境条件与制约条件。

(3)市场调查。

(4)对于可供选择的各种工具进行综合比较。

(5)进行测试和检验。

(6)正式签约购置。

(7)安装与试用。

5.3软件开发工具的使用

1、(简答)引入软件开发工具后的组织管理工作有哪些

(1)制定严格的使用制度。

(2)纪录使用的详细过程。

(3)培训使用人员。

(4)经常进行审计与评价工作。

名词解释:审计:是对一个系统的运行状况及效率进行检测与评价,以便进一步用好这个系统。

 审计的基础是(日常纪录的信息)。(填空)

5.4软件开发工具的开发

1、(简答)自发研制软件开发开发工具注意的问题

(1)首先需要从实际出发,设定现实的、有限的目标。

(2)自行开发工具一定要坚持短小实用、逐步积累,避免期望过高、贪大求全。

(3)要注意文档的齐全与资料的积累。

(4)开发面向实际应用领域的、商品化的软件开发工具,其难度要比开发为自己用的工具大得多。

第六章 软件开发工具的现状与发展

软件开发工具的发展趋势

1、简答:软件开发工具的发展趋势(智网一标)

(1)智能化:就是在软件开发工具的研究与使用中引入人工智能、神经网络等技术,使得软件开发工具对于不确定的信息、模糊信息具有更强的处理功能。(名词解释)

(2)网络化:网络的应用是计算机应用领域中的一个重要方向,目前利用网络提供条件提高工作效率的软件开发工具,以及在网络上开发应用软件工具,正在成为当前发展的一个热点。

(3)一体化:一体化的趋势在80年代后期已经十分明显,进来关于信息库的内容及处理功能的讨论,从理论上为实现一体化提供了基础。

(4)标准化:标准化的问题是由软件部件、组合软件的想法引起的,为了解决大型软件开发的困难,需要把软件开发工作分成两部分:软件构件的开发和用这些构件组成大型软件,要做到这一点,软件构件必须实现标准化,用构件组成的大型软件的结构也必须符合一定的标准,否则就不可能提高生成效率。

实践篇(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

打开变量声明

F3

打开类型层次结构

快速打开程序中已经在使用的特定数据类型及其相关继承结构

Open Type Hierarchy

打开类型层次结构

F4

打开调用层次结构

浏览函数的定义与调用层次关系并快速定位到需要的函数

Open Call Hierarchy

打开调用层次结构

Ctrl+Alt+H

打开文件包含浏览器

浏览程序中包含的头文件

Open Include Browser

打开文件包含浏览器

Ctrl+Alt+I

打开元素

打开命名空间、类、结构、类型定义符、函数、变量等

Open Element

打开元素

Ctrl+Shift+T

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调试透视图主要包括:调试视图、变量视图、断点视图、编辑器、大纲视图和控制台。 

调试视图:显示当前调试的程序的线程和所处的状态

变量视图:显示整个调试过程中程序变量值的变化情况,变量视图是帮助程序员差错和纠错的主要手段。

15、单步遍历程序的作用是什么?主要包括哪些方式?各自的作用是什么?

单步遍历程序可以让用户逐行地运行整个程序。

主要包括三种方式:

(1)单步跳入(Step into按钮或F5):线程将运行所在行的程序,并在下一个可暂停位置后暂停执行。

(2)单步跳过(Step over 按钮或F6):线程将跳过该行,并运行至下一个可暂停位置后暂停执行。

(3)单步返回(Step Return 按钮或F7):仅对函数调用时有效,如当main函数调用其他函数时,执行单步返回操作即可跳出该函数,返回main函数继续执行调试。

16、是否锁定工具栏的区别在于什么?

解锁状态——工具栏区域被竖直的虚线分成若干部分;用户可以随意更改工具栏的状态。

锁定状态——竖直的虚线消失,变成一个整体;用户不可以更改工具栏的状态。

17、简述为“About”操作设定快捷键<Ctrl+=>的方法。

选中About  将光标定位到Binding绑定输入框 ③ 同时按下键盘上的<Ctrl>和<=>键。

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可以对代码进行集中管理,记录代码所有的更改历史,提供协作开发的功能并支持多人同时修改代码文件。

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创建一个应用的步骤。

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)对象图:用于表述系统的静态结构。

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的正向和逆向工程。

相关推荐

  1. 软件开发工具自考资料

    2024-03-27 19:40:02       21 阅读
  2. 【测试工具开发

    2024-03-27 19:40:02       39 阅读

最近更新

  1. MySQL中的JOIN、LEFT JOIN、RIGHT JOIN讲解

    2024-03-27 19:40:02       0 阅读
  2. 学懂C#编程:C# 索引器(Indexer)的概念及用法

    2024-03-27 19:40:02       0 阅读
  3. c语言数据结构--链队列

    2024-03-27 19:40:02       0 阅读
  4. Ubuntu 22.04 设置swap交换空间

    2024-03-27 19:40:02       0 阅读

热门阅读

  1. AI赋能写作:ChatGPT让论文大放异彩

    2024-03-27 19:40:02       20 阅读
  2. 5.85 BCC工具之tcprtt.py解读

    2024-03-27 19:40:02       19 阅读
  3. C++入门

    C++入门

    2024-03-27 19:40:02      19 阅读
  4. Python石头、剪刀、布游戏

    2024-03-27 19:40:02       19 阅读
  5. STEP 格式三维模型读取

    2024-03-27 19:40:02       23 阅读
  6. 算法刷题day36

    2024-03-27 19:40:02       16 阅读
  7. 三、 mariadb数据库用户管理

    2024-03-27 19:40:02       24 阅读
  8. 大话设计模式之策略模式

    2024-03-27 19:40:02       23 阅读
  9. 力扣hot 100:1. 两数之和(未完成待更新)

    2024-03-27 19:40:02       19 阅读
  10. 天地图加载WMS图层服务,点击获取图层信息

    2024-03-27 19:40:02       21 阅读
  11. 零基础Web3入门到精通

    2024-03-27 19:40:02       18 阅读