二、填空题2. 信息库管理功能主要是使用查询、一致性维护和______。
3. 软件开发工作过程的第二个阶段是______阶段。
4. 工具的环境一般与待开发的软件的环境______为好。
5. 程序编制中有两个转换,第一个是用户的理解到程序员的理解的转换,第二个是程序员的理解到______的转换。
6. 网络化、一体化、标准化及______是软件开发工具发展方向中值得注意的几个方向。
7. 在关于用户界面的基本原则中,用户界面的主要功能是______,且界面必须______。
8. 目前我们用的最普遍的数据库是在文件系统基础上发展起来的一种______技术。
9. 信息库是一个包罗万象的,随着______不断修改与补充的数据集合。
10. 正确理解、掌握和运用______。是做好软件开发工作的基础,也是掌握和运用软件开发工具的基础。
三、简答题1. 软件开发工具的基本功能有哪些?
软件开发工具的基本功能可以归纳为以下五个基本方面:
(1)提供描述软件状况及其开发过程的概念模式。
(2)提供存储和管理有关信息的机制与手段。
(3)帮助使用者编制、生成及修改各种文档。
(4)帮助使用者编写程序代码。
(5)对于历史信息进行跨生命周期的管理。
2. 软件开发工具一体化的困难何在?今后发展前途如何?
一体化的趋势早在20世纪80年代后期已经十分明显。但是,在开始时人们显然低估了一体化的困难。许多教训告诉我们,困难不在于技术上的问题(如速度、容量等),而在于对软件开发过程与相关信息的认识深度。只有对于软件开发中涉及的各种信息,以及在开发过程中它们的发生、变化、关系、一致性等有了完整与深刻的理解,才能真正实现软件开发工具的一体化。关于信息库的内容及处理功能的讨论,从理论上为实现一体化提供了基础。另外,客户/服务器结构的发展也为实现软件开发工具的一体化提供了启发与新思路。
3. 计算机模拟的含义是什么?
计算机模拟是指利用计算机大量、高速处理信息的能力,在计算机内设置一定的环境,以程序来实现客观系统中的某些规律或规则,以便人们观察与预测客观系统的状况。
4. 什么是结构图?
结构图用以表示大型软件的层次结构,即模块结构。它以模块的调用关系为线索,从宏观上使人一目了然地掌握软件的全貌。它的基本图例为模块,用自上而下的连线表示调用关系,并注明参数传递的方向和内容。
5. 什么是遗传性?
抽象的、较大的对象所具有的性质,包括静态属性和动态操作,自然地成为它的子类的性质,不必加以说明或规定,这就是所谓“遗传性”。
四、论述题1. 承担大型软件开发任务的程序员,必须遵守哪些规定?
(1)保证严格地在本模块范围内操作,决不使用可能干扰其他模块的命令或函数。原则上讲,有一定经验的程序员是可以通过某些命令直接影响机器内部信息的。对于单人工作的程序员来说,这常常是发挥技巧、提高效率的手段,但是对于项目组的成员来说,这必然会导致混乱,应当严格禁止。
(2)严格按总体设计的要求和理解去传递参数值,决不随意修改其内容或含义。
(3)在对公用的文件或数据库进行存取时,必须完全地、准确地按统一规定的格式去操作,决不能擅自改变。
(4)在使用标识符时,应按照统一的原则,尽量使用易于看出逻辑含义的名称。特别是涉及公用数据及参数的时候。
(5)严格按照统一的要求编写文档,在内容、格式、表达方式、符号使用上遵循项目组的统一规定。
(6)尽量保持程序风格的一致,如注释行的安排,行首空格的使用等。
总之,作为项目组的成员,必须放弃自己的某些“自由”(即独自工作时可以自主的事情),接受项目组的限制和约束,服从项目组的严格管理。可以说,作为项目组的一员参加大型软件的开发,必须具有高度的组织纪律性和团队精神。
五、应用题1. 对于单个的程序员来说,独自编写程序相当于手工作坊的工作方式。而真正的大型软件的研制必须采用现代化生产的方式才能完成。谈谈大型软件开发过程中存在的各种困难及其产生的原因以及你对这种困难与原因的认识。
大型软件开发中的困难主要有如下几点:
(1)一致性的保持十分困难。
(2)测试的困难大大增加。
(3)工作进度难以控制。
(4)文档与代码的协调十分困难。
(5)版本更新带来的困难
困难产生的原因:
(1)大系统的复杂性。
(2)许多具有主动性的个人之间的组织与协调带来大量的困难。
(3)各个应用领域之间的差别导致困难的加重
(4)时间的因素,变化的因素给软件开发工作带来许多困难。
个人认识:
软件开发工作的困难来源于多方面,而且是人类当代面临的总的困难的一部分,它是与软件的本质联系在一起的,不可能在短期内轻易地得到解决。因此我们在针对性地、积极地解决这些困难的同时,又要做好长期的准备。当然,我们在克服软件开发工作的困难的同时,也是在探索解决人类面临的一般的困难。可以说,软件危机的研究与克服,是当代人类思想发展的前沿课题之一。