(一)三、简答题(本大题共5小题,每小题5分,共25分)1. 什么是过程化程序设计语言答案:第三代程序设计语言一般都是过程化语言,即需要由编写程序的人一步一步地安排好机器的执行次序,虽然不是一对一地指挥到机器指令,但是还必须在人的头脑中安排好实际的执行过程。
2. 代码生成器依据哪些资料工作答案:代码生成器生成代码时依据三方面的资料:(1)信息库里已有的有关资料。
(2)各种标准模块的框架和构件。
(3)使用者通过屏幕前的操作送入的信息。
3. 什么是数据字典答案:数据字典是一种描述数据内容的概念模式。
它用表格的形式列出数据的基本属性以及相互关系。
4. 简述信息库这一概念提出的背景。
答案:信息库是针对软件开发或信息系统开发中的大量信息管理工作提出来的。
早在手工进行系统分析的阶段人们已经发现,许多问题出在信息交流中的误解与损失。
按照传统的生命周期法,每一阶段都是用相应的文档实现过渡的,在信息传递中,误解与丢失十分严重。
另外,软件的修改与版本更新也引起一些问题,有时不得不从头收集基础信息,不但浪费很大,而且会引起用户的厌烦。
随着数据库技术的发展,人们很自然地想到用计算机来办这件事。
这就是信息库这个概念提出的背景。
5. 为自己所用而开发软件开发工具时,应注意哪些事项答案:为自己所用而开发软件开发工具时,应注意以下事项:(1)从实际出发,设定现实的、有限的目标。
(2)坚持短小实用,逐步积累,避免期望过高,贪大求全。
(3)注意文档的齐全和资料的积累。
四、论述题(本大题共1小题,共10分)1. 承担大型软件开发任务的程序员,必须遵守哪些规定答案:保证严格地在本模块范围内操作,决不使用可能干扰其他模块的命令或函数。
原则上讲,有一定经验的程序员是可以通过某些命令直接影响机器内部信息的。
对于单人工作的程序员来说,这常常是发挥技巧、提高效率的手段,但是对于项目组的成员来说,这必然会导致混乱,应当严格禁止。
(2)严格按总体设计的要求和理解去传递参数值,决不随意修改其内容或含义。
(3)在对公用的文件或数据库进行存取时,必须完全地、准确地按统一规定的格式去操作,决不能擅自改变。
(4)在使用标识符时,应按照统一的原则,尽量使用易于看出逻辑含义的名称。
特别是涉及公用数据及参数的时候。
(5)严格按照统一的要求编写文档,在内容、格式、表达方式、符号使用上遵循项目组的统一规定。
(6)尽量保持程序风格的一致,如注释行的安排,行首空格的使用等。
总之,作为项目组的成员,必须放弃自己的某些“自由”(即独自工作时可以自主的事情),接受项目组的限制和约束,服从项目组的严格管理。
可以说,作为项目组的一员参加大型软件的开发,必须具有高度的组织纪律性和团队精神。
五、应用题(本大题共1小题,共15分)1. 对于单个的程序员来说,独自编写程序相当于手工作坊的工作方式。
而真正的大型软件的研制必须采用现代化生产的方式才能完成。
谈谈大型软件开发过程中存在的各种困难及其产生的原因以及你对这种困难与原因的认识。
答案:大型软件开发中的困难主要有如下几点:(1)一致性的保持十分困难。
(2)测试的困难大大增加。
(3)工作进度难以控制。
(4)文档与代码的协调十分困难。
(5)版本更新带来的困难困难产生的原因:(1)大系统的复杂性。
(2)许多具有主动性的个人之间的组织与协调带来大量的困难。
(3)各个应用领域之间的差别导致困难的加重。
(4)时间的因素,变化的因素给软件开发工作带来许多困难。
个人认识:软件开发工作的困难来源于多方面,而且是人类当代面临的总的困难的一部分,它是与软件的本质联系在一起的,不可能在短期内轻易地得到解决。
因此我们在针对性地、积极地解决这些困难的同时,又要做好长期的准备。
当然,我们在克服软件开发工作的困难的同时,也是在探索解决人类面临的一般的困难。
可以说,软件危机的研究与克服,是当代人类思想发展的前沿课题之一。
(二)三、简答题(本大题共5小题,每小题5分,共25分)1. 什么是结构图答案:结构图用以表示大型软件的层次结构,即模块结构。
它以模块的调用关系为线索,从宏观使人一目了然地掌握软件的全貌。
它的基本图例为模块,用自上而下的连线表示调用关系,并注明参数传递的方向和内容。
2. 什么是遗传性答案:抽象的、较大的对象所具有的性质,包括静态属性和动态操作,自然地成为它的子类的性质,不必加以说明或规定,这就是所谓“遗传性”。
3. 简述软件开发工具与第四代程序设计语言的联系与区别。
答案:第四代语言(4GL)的原义是非过程化的程序设计语言。
针对以处理过程为中心的第三代语言,第四代语言希望通过某些标准处理过程的自动生成,使得用户可以只说明要求做什么,而把具体的执行步骤的安排交由软件自动处理。
显然,这一思路与软件开发工具是一致的,离硬件更远,离用户更近。
但是,第四代语言没有涉及需求分析、项目管理、文档生成等问题。
因此,我们认为第四代语言可以被看做软件开发工具中的一类,而不是全部。
软件开发工具的范围还要更宽一些。
4. 对于大的、历时较长的软件开发项目,购买软件开发工具有什么好处答案:(1)在某些环节上可以代替一些简单的、重复性的工作。
(2)使开发工作的组织管理比较规范。
(3)信息的管理与检索比较方便。
(4)部分地做到信息与知识的重用与共享。
5. 简述在软件开发工具的使用过程中组织管理工作的重要性。
答案:一旦购置了软件开发工具,使用者必须从一开始就对它的使用过程进行认真的组织与管理。
这种组织管理工作的成功与失败,直接影响着软件开发工具的作用的发挥程度。
一般来说,任何软件系统在运用中都应当进行认真的管理,否则就会出现混乱,以致使系统崩溃。
对于软件开发工具来说,这个问题更为突出。
因此,如果没有认真的组织管理,软件开发工具是不可能自发地、轻易地、顺利地实现的。
四、论述题(本大题共1小题,共10分)1. 论述组织管理工作的内容。
答案:第一,严格使用制度。
对于有关的各种信息,都要明确其来源、使用权限、维护职责等有关事宜。
单纯一个抽象的模型或一个空的信息库对实际工作是毫无意义的。
实质性的内容是与本软件开发有关的信息。
一方面,一个项目组在工作中使用软件开发工具时,必须明确规定各种有关的信息由哪些人在什么时候完成这种任务,而且必须对这些信息的准确性负责。
另一方面,对于已经存入信息库的信息也要规定其使用权限及维护责任,即哪些人可以使用它、修改它。
如果没有明确的规定,信息库的内容就失去了可靠性,工具的运用也就失去了基础。
第二,记录使用的详细过程。
作为使用制度的落实,对使用过程要进行认真的、尽可能完整地记录。
记录的内容包括系统运行的次数、时间;信息库的输入与更新时间;各种输出的质量与数量,使用者的反映与满意程度,各种故障的情况及处理。
这种记录工作是一项基础性的工作。
没有这样的记录,人们就很难确切地分析软件开发工具的作用与价值,也就无法改进及用好它。
这种记录工作可以由机器自动完成(如用机器已有的工作日志功能——LOG功能),也可以用手工方式进行。
不管用什么方式记录,项目的组织者必须及时地清楚地知道软件开发工具的使用情况、信息库的情况以及人们是否正确地使用了它们。
第三,培训使用人员。
既然软件开发工具的使用过程是人们转变工作方式的过程,那么,人员培训工作无疑也是使用过程中十分重要的、不可缺少的一个部分。
要使所有的有关工作人员都真正领会软件开发工具所包含的思想与方法,绝不是一两次学习所能实现的。
必须在软件开发工具的使用过程中反复强调,反复领会。
作为组织者更应当结合实际情况,以本组工作中的实际的经验与教训为教材,不断强调软件开发工具的思想与方法。
这种培训工作必须成为项目组的日常工作的一部分。
第四,经常进行审计与评价工作。
审计是指对一个系统的运行状况及效率进行检测与评价,以便进一步用好或改进这个系统。
审计的目的是为了做到心中有数、用好工具、保证取得实际的应用效果。
审计可以由本项目组的人员自行进行,也可以请外面的专家来进行。
审计的基础是日常记录的信息,没有日常信息的积累,审计工作就无法进行。
五、应用题(本大题共1小题,共15分)1. 请使用Eclipse中的搜索功能搜索.c文件,并且显示最后搜索结果。
答案:(1)打开“Search”对话框。
单击菜单栏中的“Search”菜单,选择“Search”选项可以打开搜索对话框,然后选择窗口上方的“File Search”即文件搜索。
(2)执行文件搜索。
在“File Search”选项卡中可以选择仅在特定文件类型的文件中进行搜索,输入要搜索的文件名,即.c。
然后单击“Search”按钮即可进行搜索。
(3)显示搜索结果。
搜索完成后,Eclipse将会在搜索视图中显示与文件相关的搜索结果,然后在这些后缀带.c的文件中选择你要使用的文件。
(三)三、简答题(本大题共5小题,每小题5分,共25分)1. 简述软件开发工具的一体化。
答案:一体化的趋势早在20世纪80年代后期已经十分明显。
但是,在开始时人们显然低估了一体化的困难。
许多教训告诉我们,困难不在于技术上的问题(如速度、容量等),而在于对软件开发过程与相关信息的认识深度。
只有对于软件开发中涉及的各种信息,以及在开发过程中它们的发生、变化、关系、一致性等有了完整与深刻的理解,才能真正实现软件开发工具的一体化。
2. 简述项目管理的含义。
答案:项目管理指与固定的生产线上的日常生产管理不同的,具有更大的变动性、时间性的另一类管理任务。
3. AD/Cycle的系统应用体系结构包括哪三个方向的接口答案:AD/Cycle的系统应用体系结构包括对程序员接口CPI、通信接口CCS和用户接口CUA。
4. 简述五种主要的软件开发方法。
答案:(1)结构化程序设计方法。
(2)软件工程方法。
(3)面向对象的程序设计方法。
(4)即插即用的程序设计方法。
(5)面向开源软件的程序设计方法。
5. 什么是数据库答案:数据库是在文件系统基础上发展起来的一种数据管理技术,它的重点在于合理地组织数据,体现出数据之间的逻辑关系,并尽可能地帮助用户检索,减少冗余。
四、论述题(本大题共1小题,共10分)1. 论述软件质量的评测标准。
答案:关于软件的质量,人们有许多不同的看法。
最初,人们把速度放在首位,希望能够尽可能地算得快。
这样,程序越短越好,能用五行实现的,决不要用六行实现。
在早期,程序员们常常为了减少几行程序而绞尽脑汁。
类似地,怎样少占内存和寄存器也是当时人们努力争取的目标。
以至有些考程序的题目要求考生只用指定个数的存储单元完成某项功能。
这样的结果,使得程序变得非常难懂,更谈不上修改了。
自从20世纪60年代末以来,这种看法逐步发生了改变。
早期计算机速度很慢,存储容量十分有限,人们自然要计较程序的条数与内存的占用数量。
随着计算机技术的发展,这些问题逐渐变得不那么重要了。