第1-6章名词解释
2、第一代语言:即机器语言,是用0、1组成的二进制字符串书写的程序,用纸带等光电设备或通过控制台上的扳键送入机器,得以存储和执行。
3、第四代语言(4GL):第四代语言的原意是非过程化的程序设计语言。针对以处理过程为中心的第三代语言,它希望通过某些标准处理过程的自动生成,使用户可以只要求做什么,而把具体的执行步骤的安排交给软件自动处理。
4、CASE工具:CASE工具指“计算机辅助软件工程”或“计算机辅助系统工程”,它的基本思想与软件开发工具完全一致,即应用计算机自身处理信息的巨大能力,帮助人们开发复杂的软件或应用系统。
5、所见即所得:“所见即所得”原则力图实现编程工作的可视化,即随时可以看到结果,程序的调整与后果的调整同步进行。
8、结构设计:所谓结构设计是把软件划分成若干个模块,指定每个模块的功能要求以及它们之间的相互关系。
9、模块测试:据整体设计时制定的各个模块的设计任务书,对程序员完成的模块进行验收,看它们是否实现了所要求的功能和性能指标。
10、总体测试:每个模块都达到了设计任务书的要求后,还要测试整个系统是否达到了预期的目标,另外还要检查完成的软件与编写的文档是否一致,这个工作成为总体测试。
14、工具的可靠程度:软件开发工具应具有足够的可靠性,即在各种各样的干扰下仍能保持正常工作,而不致丢失或弄错信息。
15、软件危机:指随着软件功能越来越多,规模越来越大,复杂性越来越高,引出一系列问题:软件产品交付拖延、错误多、不可靠、费用增大、不能适应应用变化等,因此怀疑大型软件的复杂性是否超越了人的处理能力。
16、水波效应:因修改程序带来的连带影响。当人们修改程序的某一处时,由于没有充分考虑到这一修改对相关部分带来的影响,结果出现了新的错误。
17、黑箱检验:输入一些信息,通过观察是否能得出预期输出来判断软件是否正确的一种软件测试方法。黑箱检验只能证明程序有错,而不能证明程序没错。
18、模块的凝聚性:模块的功能在逻辑上尽可能的单一化、明确化,最好做到模块与任务的一一对应,即每个模块完成一个任务,反之每一项任务仅由一个模块来完成。这也称为模块的凝聚性。
19、模块间的耦合(耦合性):模块之间的联系及相互影响称为耦合。
20、模块间逻辑耦合:如果模块间传递的是控制信号,则称模块间具有逻辑耦合。
21、(对象的)封装性:把对象的静态属性和相关操作作为一个整体,对外不必公开这些属性与操作。
22、(对象的)遗传性:对象所具有的性质,包括静态属性和动态操作,自然地成为其子类的性质,不必加以重复说明或规定。
27、框图:框图是人们在编写软件时最早使用的一种概念模式,它用来描述程序执行的逻辑过程。
28、结构图:结构图是描述大型软件的层次结构(模块的结构)的概念模式。它以模块调用关系为线索,从宏观上使人一目了然地掌握软件的全貌。
29、数据流程图:数据流程图是描述系统信息流程的一种概念模式,它描述系统的信息来源、存储、去向的全面情况。它的基本思想是把信息流看作一个组织或系统运作的线索,力图简明扼要地勾画出全局。
30、实体关系图:是一种用于描述静态数据结构的概念模式,它以实体、关系、属性三个基本概念概括数据的基本结构。
31、数据字典:是一种用于描述数据内容的概念模式,它用表格的形式列出数据的基本属性以及相互关系。
32、时序网络(Petri Net):主要用于描述系统状态及其转换方式的概念模式,常用于一些实时控制方面的软件的功能。
33、数学与逻辑模型:用于描述客观世界的状态与规律的概念模型,具有严格、准确、可计算性的特点,一般只能描述比较单纯、基础的功能。决策表和决策树是常用的两种表达方式。
34、计算机模拟模型:利用计算机大量、高速处理信息的能力,在计算机内设置一定的环境,用程序来表现客观系统中的某种规律与规则,这样计算机就可以高速运行,以便人们观察与预测客观系统的状况。
36、项目管理:指与固定的生产线上的日常生产活动不同的、具有更大变动性、时间性的一类管理任务。
37、版本管理:实现软件工程的跨周期管理,保持系统功能在时间上的一致性,功能逐步完善,成果不丢失,可回溯,可重用,使系统在局部和整体上保持一致性的管理工作。
38、软件配置(集成)问题:软件配置或集成问题的实质是设立一个有效的总控部分,能够在各个具体工具之上实现信息的正确传递与转换,帮助人们完成软件开发各阶段的协调与配合工作,从而形成一个统一的、完整的支撑环境,并通过一个统一的、友好的人机界面与用户对话。
39、信息流通模型:用需求分析阶段建立的逻辑模型来表达信息的来源、去向、存储及处理的逻辑过程。
40、代码生成器:代码生成器的基本任务是根据设计要求,自动或半自动地生产相应的某种语言程序。
41、项目数据库:项目数据库是信息库的一部分,它记录项目本身进展的各种信息。
42、(软件)审计:审计是对一个系统的运行状况及效率进行检测与评价,以便进一步用好或改进这个系统。
43、开发工具的工作环境:软件开发工具都是在一定的工作环境中工作的,包括硬件配置、系统软件、数据库管理系统、网络通信条件等。
第7-14章名词解释
1.JDK:Java开发工具,是一个写Java的applet和应用程序的程序开发环境。它是整个Java的核心,包括了Java运行环境、Java工具
和Java基础的类库。
2.Eclipse CDT:专门用于编写C和C++程序的Eclipse开发环境。
3.Eclipse的视图:视图是Eclipse工作台中的一个可视化的组件,它提供了用户正在工作台中使用的一些对象的详细信息。通常用来浏
览工作台中的资源,显示编辑器中的属性,显示程序状态等。
4.编译器:编译器是工作台中的一个可视化组件,是用来处理各种文档的,它允许用户打开、编辑、查看和保存文档对象。
5.项目:在Eclipse集成开发环境中,每个小程序都是以项目为单位存在的,源代码、注释、配置文件、各种文件夹等都封装在项目里。
6.归档文件:包括通过Jar命令或War命令打包后形成的压缩文件。
7.文件系统:指操作系统文件夹中的各类文件。
8.首选项文件:用户可以通过首选项文件来个性化定制Eclipse 。
9.MinGW编译器:MinGW是指用来生成纯粹的Win32可执行文件的编译环境,它是以GNU为基础的开发C/C++项目的工具集,能
够提供C/C++所需要的头文件和库文件。
10.浏览功能:浏览功能可以从多个角度快速查看并定位到程序中的各个元素,包括代码的层次结构、调用关系、继承关系等。
11.打开变量声明:Eclipse提供的浏览功能,可以从变量的任意引用位置直接定位到变量的定义行。
12.打开类型层次结构:Eclipse提供的浏览功能,可以快速打开程序中已经在使用的特定数据类型及其相关继承结构。
13.打开调用层次结构:Eclipse提供的浏览功能,可以浏览函数的定义与调用层次关系并快速定位到需要的函数。
14.文件包含浏览器:用于浏览程序中包含的头文件。
15.打开元素:Eclipse将命名空间、类、结构、类型定义符、函数、变量等定义为元素,通过浏览功能,可以迅速打开需要的元素。
16.GDB:GDB是GNU开源组织发布的一个强大的UNIX (不仅限于UNIX )工具,搭配MinGW使用,可以使用户完成整个C/C ++
程序的编译和运行工作。
17.格式化代码:格式化代码功能可以帮助用户将凌乱的程序代码格式化为自己习惯的排列方式。
18.版本控制软件:版本控制软件能够完整的保存软件开发中对应用程序每一个源文件所有的修改记录。
19.并发版本控制系统CVS:使用CVS可以对代码进行集中管理,记录代码所有的更改历史,提供协作开发的功能并支持多人同时修改
代码文件。
20.互斥性修改:某一程序在同一时间只能由一个开发人员修改。
21.CVS资源库:资源文件的集合。即软件资源的存放地,是放置开发的代码并对其进行控制管理的一个文件夹。
22.工作备份:用户对资源的修改不是直接在Server端进行的,而是根据资源库的内容创建一个本地的工作备份,用户在工作备份中工
作,工作完成后再将修改的内容提交到资源库。
23.提出(签出)Check Out:获得工作备份的操作。从CVS资源库中复制一个软件镜像到本机的工作空间中,此时代码和CVS中的代
码是一致的。这项技术称为“提出”。
24.提交:将对工作备份的修改反映到资源库中的操作。
25.代码同步:程序开发过程中,本地代码和CVS资源库代码可能会产生差别,这可能是代码之间存在增减或冲突等关系造成的,代码
同步操作可以使代码保持一致。
26.CVS中的冲突:在资源库与工作备份之间状态不一致的状态下进行签入或更新操作时,版本管理系统可能会尽量进行合并,如果版
本管理系统不能完全处理上述不一致,就称之产生了冲突。
27.插件:插件是一种遵循其所依附的软件的接口规范所编写出来的程序,是对原有软件的扩展。
28.惰性导入机制:在Eclipse启动时,仅加载必要的核心,其它的功能插件使用时才加载进来,这样节省了大量的导入和初始化插件的
时间,提高了Eclipse平台的运行效率,这一机制称为惰性机制。
29.PDE:插件开发环境,帮助开发者创建、开发、测试、调试和部署插件,同时提供开发片段、功能部件和更新站点的工具,协助开发
者完成插件开发的全过程。
30、UML:统一建模语言,是一种面向对象的建模语言,它提供了描述软件系统模型的概念和图形表示法,采用了面向对象的技术和方法,体现面向对象的分析与设计风格。它可以实现大型复杂系统各种成分描述的可视化、说明并构造系统模型,以及建立各种所需的文档,是一种定义良好、易于表达、功能强大且普遍适用的建模语言。
31、抽象:抽象是人们认识客观世界复杂性的一种基本方法。抽象是事物或现象的简括描述,突出事物或现象之间的共性,而暂不考虑它们之间的差异。
32、方法:方法是驻留在对象中的过程。方法是当对象接受消息时执行的操作,方法还能发送消息至其他请求动作或信息的对象。
33、类:类是对一组几乎相同的对象的描述。
34、属性:属性由静态的数据组成,用以描述类和对象所固有的特征,是类和对象的性质。
35、封装:封装即信息隐藏。封装使一个对象形成两个部分:接口部分和实现部分。对用户来说,接口部分是可见的,而具体实现部分则不可见。
承:继承指对象继承它所在类的结构。体现了父类和子类之间的共享机制。子类可以继承其父类的特性,同时可以有自己的新特性和新方法。
态:多态指不同事物具有不同表现形式的能力,多态机制使具有不同内部结构的对象可以共享相同的外部接口,不同对象接到同一个消息可以产生完全不同的结果。
简答题第一章
1、什么是软件开发工具?
数据可视化名词解释高级程序设计语言的(第三代语言)的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、成文和管理各方面,对软件开发者提供各种不同程度的帮助的一类广泛的软件。
件开发工具概念要点有三:(1)它是在高级程序设计语言(第三代语言)之后,软件技术进一步发展的产物;(2)它的目的是在人们开发软件过程中给予人们各种不同方面、不同程度的支持或帮助;(3)它支持软件开发的全过程,而不是仅限于某个特定的阶段。
2、简述计算机软件发展的几个阶段。
个阶段:(1)第一代计算机语言——机器语言阶段。把用户已经明确表述出来的算法,用机器语言写成一系列机器指令,供硬件运行使用。(2)第二代计算机语言——汇编语言阶段。编程工作改为汇编语言进行,编好的指令由汇编程序转化为机器指令,再交硬件执行。与用户的距离近了。(3)第三代计算机语言——高级程序设计语言,过程化语言。不再与机器指令一一对应,更加接近自然语言,离机器更远了,离用户更近了。(4)第四代计算机语言——非过程化语言(4GL)(见名词解释)
3、简述软件工作的重要性和困难性。
软件工作的重要性越来越为人们所认识,软件是计算机的灵魂,是广大使用者与计算机之间的桥梁,是人类在各个领域中积累的知识的结晶,是人类文明与知识得以延续的新的载体,是人类进一步成为一个整体、得以进一步相互联系的纽带。
人们在认识到软件工作的重要性的同时也越来越认识到了它的困难性。这就是所谓的“软件危机”问题。人类社会和客观世界的复杂性,决定了软件本身的复杂性;人类知识的丰富多彩,决定了软件的多样性;客观世界的动态性,决定了软件对可维护、可重用性越来越高的要求。面对规模日益扩大的软件,如何保证它的正确性、可靠性,如何控制软件开发的进度与成本,成为十分重要的课题。
4、简述软件开发工具的演变过程。
件开发工具的演变是从无到有,从分散到集中的过程,是软件发展的必然趋势。主要分为四个阶段:
第一阶段:利用通用软件作为辅助工具的阶段——没有专用软件开发工具的阶段。第二阶段:专用的软件开发工具阶段。第三阶段:集成的软件开发工具阶段。第四阶段:面向网络和开源软件的软件开发工具阶段。
5、试述用通用软件辅助软件开发的弱点。
通用软件来帮助开发人员编写文档或画图可以减少很多工作量,但是与软件开发工作相比,这种帮助实在太表面、太初级了。用通用软件帮助软件开发有三个主要弱点:
1)许多工作通用软件无法完成。(2)用通用软件完成某些工作,只能表现其表面的形式,不能反映其逻辑内涵(形似,神不似)。(3)常遇到难于保持一致性的困难。
6、集成化的软件开发工具是在什么背景下产生的?
批专用软件开发工具的出现并未解决一致性的问题。其根源在于对软件的开发缺乏全面的、统一的支撑环境。这些零散的、分散的支持软件开发各个阶段、各项具体工作的专用工具之间没有有机的联系起来,必然造成冲突与矛盾。这对用户造成了沉重的负担,以致抵消了使用工具带来的益处,从而导致集成软件开发工具的产生。
7、试述软件开发工作的发展变化。
软件开发工作的发展变化主要有五个阶段:
(1)——(3)阶段同第2题(4)第四阶段——以应用软件开发工具为标志,把需求分析纳入了软件开发工作中,进一步扩大了软件开发的范围。(5)新阶段——规模更大、应用更广的阶段,大量开源软件出现,总体设计的作用进一步加强,并出现了软件构架师的概念。
8、试述现阶段软件技术的特点(作为软件技术发展的一个新阶段,使用软件开发工具与以往的区别)
1)自动化程度的提高。由于代码生成等技术的应用,在特定条件下,可以较容易地自动生成第三代语言(或更低的语言)的代码,从而大大节省人力和时间。(2)明确地把需求分析纳入软件工作范围之内,从而使软件开发过程进一步向用户方面延伸,离用户更近了。这是
软件技术向前迈进的重要一步。(3)把软件开发工作延伸到项目及版本管理,从而超出了一次编程的局限,而扩大到了作为一个不断发展的客体的生长完善的全过程。这也是软件研制从个体的、手工作坊的方式向科学的、有组织、有计划的方式转变的一个重要表现。(4)吸收了许多管理科学的内容与方法,如程序员的组织,质量的控制,使软件开发技术不再只是讨论单个程序员自己工作的技术与方法问题,而是把组织、管理等项目负责人的思想与方法放到了更重要的位置。总之,软件开发工具的提出与使用,是软件技术发展的一个新阶段。
9、软件开发一般分为哪几个阶段?其主要任务和形成的文档是什么?
10、什么是功能?软件开发工具应具有什么样的功能?
能是软件能做什么事。软件开发工具的主要功能:(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、学习软件开发工具的目的是什么?
为一般的使用者,学习软件开发工具的目的在于了解软件开发工具的概念、理论基础、基本功能、发展现状与前景,以便在实际工作中正确地选择与使用软件开发工具,在必要时能参加或组织软件开发工具的自行研制,从而达到提高软件工作水平与效率的目标。
软件开发工具总结:
第二章
1、软件开发中的基本问题及解决办法是什么?(单个程序员做好软件工作的关键是什么?)
单个程序员来说,做好软件的关键是做好两个转换:
一个转换:从用户对软件功能的理解到程序员对软件功能的理解之间的转换。第二个转换:从程序员的理解到程序的实现。
证第一个转换顺利完成的手段:利用尽可能标准化的方法编写程序设计任务书,用明确的语言或图形、表格,把程序要处理的信息的内容、格式、来源、去向、存储、处理清楚地表达出来,作为双方共同理解。保证第二个转换顺利完成的手段:提高程序员的知识水平和实际经验。
2、大型软件开发中的困难体现在哪些方面?困难产生的原因是什么?
型软件开发中的困难主要有:
1)一致性的保持成为十分困难的问题(2)测试的困难大大增加(3)工作进度难以控制(4)文档与代码的协调十分困难(5)版本更新带来的困难
难产生的原因:
1)大系统的复杂性;(2)个人之间的组织与协调;(3)各应用领域间的差别;(4)时间、变化的因素。
3、几十年来,为了提高软件开发的水平和效率人们提出了哪些软件开发方法?