admin 管理员组文章数量: 1087829
2025年1月1日发(作者:excel公式锁定)
(一)三、简答题(本大题共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年代末以来,这种看法逐步发生了改变。早期计算机速度很慢,存储
容量十分有限,人们自然要计较程序的条数与内存的占用数量。随着计算机技术的发展,这
些问题逐渐变得不那么重要了。由于应用领域的复杂性造成的问题越来越突出,人们对于软
件质量的看法也发生了改变。除了结构良好之外,对于人机界面的要求,对于易于修改的要
求也都列入了质量要求之内。目前多数人的看法可以用以下几条概括。
(1)正确地实现所要求的功能,准确地给出预定的输出结果。
(2)用户界面友好,符合实际用户的使用习惯与知识能力。
(3)具有足够的速度(而不是越快越好),能在符合用户要求的时间限度内,给出所要求
的处理结果。
(4)具有足够的可靠性,能够在各种干扰下保持正常的工作。
(5)程序易读,结构良好,文档齐全,从而保证系统易于修改。
五、应用题(本大题共1小题,共15分)
1. 在Eclipse中,新建一个C/C++项目,试编程实现计算表达式
(0+1)/1+(2+3)/3+„+(98+99)/99的值。
答案:#include
#include
main()
{ float i,sum=0;
for(i=1;i<=100;i+=2)
{
sum+=((i-1)+i)/i;
}
printf("(0+1)/1+(2+3)/3+…+(99+
100)/100=%f",sum);
}
(四)三、简答题(本大题共5小题,每小题5分,共25分)
1. 在调试程序的过程中,变量视图的作用是什么?
答案:变量视图显示了整个调试过程中程序变量值的变化情况,该视图是帮助程序员查
错和纠错的主要手段。
2. 简述软件开发工具的标准化。
答案:标准化的问题是由软件部件、组合软件的想法引起的。为了解决大型软件开发的
困难,需要把软件开发工作分成两个部分:软件构件(如硬件的芯片)的开发和用这些构件组
成大型软件 (如用芯片组成主机)。显然,要做到这一点,软件构件必须实现标准化,用构
件组成大型软件的结构也必须符合一定的标准,否则就不可能提高生产效率。
3. 简述软件开发分析设计阶段的基本任务。
答案:软件开发分析设计阶段的基本任务是完成系统的总体设计,包括数据结构的详细
设计、处理过程的详细设计、子系统或模块的划分以及它们之间相互联系的具体规定,还应
当完成屏幕设计、报表设计、数据库的物理设计。
4. 什么是实体关系图?
答案:实体关系图(简称E-R图)是在数据库设计中用于描述静态数据结构的一种概念
模式。它以实体、关系和属性三个基本概念概括数据的基本结构。
5. 请列举出5种以上的专用的软件开发工具。
答案:专用的软件开发工具有:报表生成器、菜单生成器、数据字典管理系统、专用于某种
文档的编写工具、对话生成器,综合性的第四代语言等。
四、论述题(本大题共1小题,共10分)
1. 论述软件开发工具在我国的发展状况。
答案:国外发展状况:目前真正一体化的,又能应用于各种平台的工具主要有两种。一
种是用于特定平台上的、主要用于设计阶段的工具。另一种是侧重于分析方法的、独立于平
台的工具。近年来,基于互联网和开源软件的工具出现。除了前面说到的这些功能之外,帮
助人们搜索和检查开源软件的工具、自动生成和检查XML的工具、基于SOAP的工具、面
向UDDL的搜索工具都已经开始研制和使用。
国内发展状况:软件开发环境这一概念,在国内最早是由徐家福、杨芙清等专家于20
世纪80年代初期在宁波的一次学术会议上提出来的。随着改革开放的深入,国外在这方面
的研究动向迅速地传入,许多大学及研究单位也进行了相应的研究开发工作。当时,大家的
注意力集中于代码生成以及汉字处理方面。随着研究的深入,人们开始注意到分析工具、计
划工具以至一体化的集成环境,并进行了许多开发与尝试,市场上也出现了QuickMIS等产
品。从研究的水平来看,国内这方面的水平并不比国外低多少。国外同行考虑的各种问题,
我国的研究人员也都进行了相应的工作。主要的差距在于没有广泛地使用这些工具。总的来
说,我国的软件产业还没有形成一批稳定的、高度有组织的软件开发群体,因而真正能够发
挥软件开发工具作用的环境与需求还不具备。
五、应用题(本大题共1小题,共15分)
1. 在Eclipse中,新建一个C/C++项目,试编程实现以下功能:输入一个整数,判断它
能否被3、7整除,并输出以下信息:此数能同时被3、7整除;此数能被其中一个数(3或
7)整除;此数既不能被3整除,也不能被7整除。
答案:#include "stdio.h"
#include "stdlib.h"
main()
{ int m;
printf("please input a numbern");
scanf("%d",&m);
if(m%3 0&&m%7 0)
printf("此数能同时被3、7整除n");
if(m%3 0||m%7 0)
printf("此数能被其中一个数(3或7)整除n");
if(m%3!=0&&m%7!=0)
printf("此数既不能被3整除,也不能被7整除n");
}
(五)三、简答题(本大题共5小题,每小题5分,共25分)
1. 软件开发工具一体化的困难何在?今后发展前途如何?
答案:一体化的趋势早在20世纪80年代后期已经十分明显。但是,在开始时人
们显然低估了一体化的困难。许多教训告诉我们,困难不在于技术上的问题(如速度、容量
等),而在于对软件开发过程与相关信息的认识深度。只有对于软件开发中涉及的各种信息,
以及在开发过程中它们的发生、变化、关系、一致性等有了完整与深刻的理解,才能真正实
现软件开发工具的一体化。关于信息库的内容及处理功能的讨论,从理论上为实现一体化提
供了基础。另外,客户/服务器结构的发展也为实现软件开发工具的一体化提供了启发与新
思路。
2. 简述软件开发工具的网络化。
答案:软件开发工具的网络化指若干人在不同的地方利用网络合作开发同一个软
件,利用网络实现信息交流与共享,实现软件重用,进行项目管理。
3. 什么是分散存储?
答案:分散存储是信息库的一种组织方式,指将信息库的信息分别存入不同的数
据库,由不同的功能模块来处理。
4. 什么是时序网络?
答案:时序网络是一种较为特殊的概念模式。它主要描述系统状态及其转换方式,
因此常常用于一些实时控制方面的软件的功能描述。它的基本概念是状态与转换。状态指系
统在运转中某一特定的形态或工作方式,而转换指状态之间在一定条件下的相互变化。
5. 什么是对象的封装性?
答案:对象的封装性指对象作为一整体,对外不必公开属性和操作。
四、论述题(本大题共1小题,共10分)
1. 试论软件开发工具中信息库的内容。
答案:信息库中需要存放的四大类信息是:
(1)关于软件应用的领域与环境的状况。这类信息包括了这个应用领域中的有
关实体及它们之间的相互关系的描述,软件要处理的信息的种类、格式、数量、流向、应用
领域对软件的要求 (包括定性的功能要求与定量的性能要求)、使用者的情况、背景、工作
目标、工作习惯等。这些信息一般是在需求分析阶段收集并存人信息库的,它们主要用于分
析设计阶段,作为形成下一类信息的原始材料。
(2)设计成果,包括逻辑设计与物理设计的成果。这类信息是分析设计人员利用前
一类信息,通过人机交互的方式形成的设计方案。它主要包括数据流程图、数据字典、系统
结构图、数据库的逻辑设计、各模块的设计要求,以及由此形成的设计文档。这一部分信息
是人机交互的产物,它们存储在信息库中主要是为了组织实际编码工作,并准备今后运行、
维护及修改时查询。
(3)运行状况的记录。软件投入运行之后,应当对于它的运行情况进行详细的
记录,包括它的运行效率、作用、用户反映、故障情况、故障的原因及处理情况。这些信息
对于软件的有效运行与进一步发展是至关重要的。特别需要强调的是对软件的修改的记录。
如果没有这样的记录,就会造成程序与文档的脱节,进而造成系统的混乱以至崩溃。当然,
这与前两类信息的更新也有关系,为了做到这一点,首先必须把每一次修改的原因、目标、
情况、结果详细地记录下来。
(4)有关项目管理与版本管理的信息。这属于跨生命周期的信息,对于一次开发
似乎用处不大,但是对于长期的、持续的、不断更新的软件是十分重要的。它包括项目的进
度、过程、人员分工、资源投入、版本组织等。对于比较大的软件开发项目来说,项目的组
织管理人员应当依据这些信息来进行自己的管理工作。
五、应用题(本大题共1小题,共15分)
1. 在Eclipse中,新建一个C/C++项目,试编程实现以下功能:求出表达式
1-2+3-4+5-„- 100的值。
答案:#include "stdio.h"
#include "stdlib.h"
main()
{ int i,sum=0;
for(i=1;i<=100;i++)
{
if(i%2 1) sum+=i;
else sum+=-i;
}
printf("1-2+3-4+…99-100 %d",sum);
}
版权声明:本文标题:软件开发工具试题大题答案) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1735800500a1689860.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论