前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇计算机系论文范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。

论文摘要:计算科学主要讲述了一种科学的思想方法,计算科学的基本概念、基本知识它的发展主线、学科分支、还有计算科学的特点、发展规律和趋势。
引言:随着存储程序式通用电子计算机在上世纪40年代的诞生,和计算科学的快速发展以及取得的大量成果。计算科学这一学科也也应运而生。《计算科学导论》正如此书的名字,此书很好的诠释了计算科学这一学科,并且指导了我们应如何去学好这一学科。使得我们收获颇多。并且让我深深的反思了我的大学生活。正如赵老师书中所讲的:“计算科学是年轻人的科学,一旦你选择了计算科学作为你为之奋斗的专业类领域,就等于你选择了一条布满荆棘的道路。一个有志于从事计算科学研究与开发的学生,必须在大学几年的学习中,打下坚实的基础,才有可能在将来学科的高速发展中,或在计算机产品的开发和快速更新换代中有所作为。
一、什么是计算科学和它的来历
计算科学主要是对描述和变换信息的算法过程,包括其理论、分析、设计、效率分析、实现和应用的系统研究。全部计算科学的基本问题是,什么能(有效的)自动运行,什么不能(有效的)自动运行。本科学来源于对数理逻辑、计算模型、算法理论、自动计算机器的研究,形成于20世纪30年代的后期。
随着存储程序式通用电子计算机在上世纪40年代的诞生,人类使用自动计算装置代替人的人工计算和手工劳动的梦想成为现实。计算科学的快速发展以也取得大量成果,计算科学这一学科也也应运而生。
二、计算科学的发展
a、首先先介绍图灵机
图灵机的发明打开了现代计算机的大门和发展之路。图灵机通过一条两端可无限延长的袋子,一个读写头和一组控制读写头的(控制器)组成它有一个状态集和符号集,而此符号集一般只使用0和1两个符号。而就是这个简洁的结构和运行原理隐含了存储程序的原始思想,深刻的揭示了现代通用电子数字计算机的核心内容。现在通用的计算机是电子数字计算机,而电子数字计算机的发展是建立在图灵机的基础之上。他的二进制思想使计算机的制作的简化成只需两个稳定态的元器件。这在今后的计算机制作上无论是二极管或集成电路上都显示了明显的优越性。
b、计算机带动的计算学科
1946年随着现代意义上的电子数字计算机ENIAC的诞生。掀起了社会快速发展的崭新一页。计算机工作和运行就摆在了人们的面前。
1、计算机语言
我们要用计算机求解一个问题,必须事先编好程序。因此就出现了最早的机器指令和汇编语言。20世纪50年代后,计算机的发展步入了实用化的阶段。然而,在最初的应用中,人们普遍感到使用机器指令编制程序不仅效率低下,而且十分别扭,也不利于交流和软件维护,复杂程序查找错误尤其困难,因此,软件开发急需一种高级的类似于自然语言那样的程序设计语言。1952年,第一个程序设计语言ShortCode出现。两年后,Fortran问世。作为一种面向科学计算的高级程序设计语言,Fortran的最大功绩在于牢固地树立了高级语言的地位,并使之成为世界通用的程序设计语言。Algol60的诞生是计算机语言的研究成为一门科学的标志。该语言的文本中提出了一整套的新概念,如变量的类型说明和作用域规则、过程的递归性及参数传递机制等。而且,它是第一个用严格的语法规则——巴科斯范式(BNF)定义语言文法的高级语言。还有用于支持结构化程序设计的PASCAL语言,适合于军队各方面应用的大型通用程序设计语言ADA,支持并发程序设计的MODULA-2,支持逻辑程序设计的PROLOG语言,支持人工智能程序设计的LISP语言,支持面积对象程序变换的SMALLTALK、C等。
2、计算机系统和软件开发方法
现代意义上的计算机绝不是一个简单的计算机了而也包括了软件(系统软件、应用软件)。各种各样的软件使得计算机的用途大大增强。而软件开发也成为了一个重要课题和发展方向。软件开发的理论基础即是计算模型。随着计算机网络、分布式处理和多媒体的发展。在各种高级程序设计语言中增加并发机构以支持分布式程序设计,在语言中通过扩展绘图子程序以支持计算机图形学程序设计在程序设计语言中已非常的流行。之后,在模数/数模转换等接口技术和数据库技术的支持下,通过扩展高级语言的程序库又实现了多媒体程序设计的构想。进入20世纪90年代之后,并行计算机和分布式大规模异质计算机网络的发展又将并行程序设计语言、并行编译程序、并行操作系统、并行与分布式数据库系统等试行软件的开发的关键技术依然与高级语言和计算模型密切相关,如各种并行、并发程序设计语言,进程代数,PETRI网等,它们正是软件开发方法和技术的研究中支持不同阶段软件开发的程序设计语言和支持这些软件开发方法和技术的理论基础----计算模型
3、计算机图形学
在计算机的硬件的迅速发展中。随着它的存储容量的增大,也掀起了计算机的巨大改革。计算机图形学、图像处理技术的发展,促使图形化界面的出现。计算机图形学是使用计算机辅助产生图形并对图形进行处理的科学。并由此推动了计算机辅助设计(CAD)、计算机辅助教学(CAI)、计算机辅助信息处理、计算机辅助测试(CAT)等方向的发展。图形化界面的出现,彻底改变了在一个黑色的DOS窗口前敲代码输入控制命令的时代。同时也成就了一个伟大的公司Microsoft。
4、计算机网络
随着用户迫切需要实现不同计算机上的软硬件和信息资源共享。网络就在我们的需求中诞生了。网络的发展和信息资源的交换使每台计算都变成了网络计算机。这也促进计算机的发展和广泛应用。
三、计算机学科的主线及发展方向
围绕着学科基本问题而展开的大量具体研究,形成学科发展的主流方向与学科发展主线和学科自身的知识组织结构。计算学科内容按照基础理论、基本开发技术、应用以及他们与硬件设备联系的紧密程度分成三个层面:
1、计算科学应用层
它包括人工智能应用与系统,信息、管理与决策系统,移动计算,计划可视化,科学计算机等计算机应用的各个方向。
2、计算科学的专业基础层
它是为应用层提供技术和环境的一个层面,包括软件开发方法学,计算机网络与通信技术,程序设计科学,计算机体系结构、电子计算机系统基础。
3、计算科学的基础层
它包括计算科学的数学理论,高等逻辑等内容。其中计算的数学理论涵盖可计算性与计算复杂性理论形式语言与计算机理论等。
四、计算机的网络的发展及网络安全
(1)计算机网络与病毒
一个现代计算机被定义为包含存储器、处理器、功能部件、互联网络、汇编程序、编译程序、操作系统、外部设备、通信通道等内容的系统。
通过上面定义,我们发现互联网络也被加入到计算机当中。说明了网络的重要以及普及性。21世纪是信息时代。信息已成为一种重要的战略资。信息科学成为最活跃的领域之一,信息技术改变着人们的生活方式。现在互联网络已经广泛应用于科研、教育、企业生产、与经营管理、信息服务等各个方面。全世界的互联网Internet正在爆炸性的扩大,已经成为覆盖全球的信息基础设施之一。
因为互联网的快速发展与应用,我们各行各业都在使用计算机。信息安全也显得格外重要。而随着计算机网络的发展,计算机网络系统的安全受到严重的挑战,来自计算机病毒和黑客的攻击及其他方面的威胁也越来越大。其中计算机病毒更是很难根治的主要威胁之一。计算机病毒给我们带来的负面影响和损失是刻骨铭心的,譬如1999年爆发的CIH病毒以及2003年元月的蠕虫王病毒等都给广大用户带来巨大的损失。
我们想更好的让计算机为我们服务,我们就必须很好的利用它,利用网络。同时我们也应该建立起自己的防护措施,以抵抗外来信息的侵入,保护我们的信息不受攻击和破坏。
(2)计算机病毒及它的防范措施:
计算机病毒是一组通过复制自身来感染其它软件的程序。当程序运行时,嵌入的病毒也随之运行并感染其它程序。一些病毒不带有恶意攻击性编码,但更多的病毒携带毒码,一旦被事先设定好的环境激发,即可感染和破坏。
<一>、病毒的入侵方式
1.无线电方式。主要是通过无线电把病毒码发射到对方电子系统中。此方式是计算机病毒注入的最佳方式,同时技术难度也最大。可能的途径有:①直接向对方电子系统的无线电接收器或设备发射,使接收器对其进行处理并把病毒传染到目标机上。②冒充合法无线传输数据。根据得到的或使用标准的无线电传输协议和数据格式,发射病毒码,使之能够混在合法传输信号中,进入接收器,进而进人信息网络。③寻找对方信息系统保护最差的地方进行病毒注放。通过对方未保护的数据链路,将病毒传染到被保护的链路或目标中。
2.“固化”式方法。即把病毒事先存放在硬件(如芯片)和软件中,然后把此硬件和软件直接或间接交付给对方,使病毒直接传染给对方电子系统,在需要时将其激活,达到攻击目的。这种攻击方法十分隐蔽,即使芯片或组件被彻底检查,也很难保证其没有其他特殊功能。目前,我国很多计算机组件依赖进口,困此,很容易受到芯片的攻击。
3.后门攻击方式。后门,是计算机安全系统中的一个小洞,由软件设计师或维护人发明,允许知道其存在的人绕过正常安全防护措施进入系统。攻击后门的形式有许多种,如控制电磁脉冲可将病毒注入目标系统。计算机入侵者就常通过后门进行攻击,如目前普遍使用的WINDOWS98,就存在这样的后门。
4.数据控制链侵入方式。随着因特网技术的广泛应用,使计算机病毒通过计算机系统的数据控制链侵入成为可能。使用远程修改技术,可以很容易地改变数据控制链的正常路径。
<二>病毒攻击的防范的对策
1.建立有效的计算机病毒防护体系。有效的计算机病毒防护体系应包括多个防护层。一是访问控制层;二是病毒检测层;三是病毒遏制层;四是病毒清除层;五是系统恢复层;六是应急计划层。上述六层计算机防护体系,须有有效的硬件和软件技术的支持,如安全设计及规范操作。
2.严把收硬件安全关。国家的机密信息系统所用设备和系列产品,应建立自己的生产企业,实现计算机的国产化、系列化;对引进的计算机系统要在进行安全性检查后才能启用,以预防和限制计算机病毒伺机入侵。
3.防止电磁辐射和电磁泄露。采取电磁屏蔽的方法,阻断电磁波辐射,这样,不仅可以达到防止计算机信息泄露的目的,而且可以防止“电磁辐射式”病毒的攻击。
4.加强计算机应急反应分队建设。应成立自动化系统安全支援分队,以解决计算机防御性的有关问题。
很多公司都有因为电脑被入侵而遭受严重经济损失的惨痛经历,不少普通用户也未能避免电脑被破坏的厄运,造成如此大损失的并不一定都是技术高超的入侵者所为,小小的字符串带给我们的损失已经太多。因此,如果你是数据库程序开发人员、如果你是系统级应用程序开发人员、如果你是高级计算机用户、如果你是论坛管理人员......请密切注意有关字符漏洞以及其他各类漏洞的最新消息及其补丁,及时在你的程序中写入防范最新字符漏洞攻击的安全检查代码并为你的系统安装最新的补丁会让你远离字符带来的危险。经常杀毒,注意外来设备在计算机上的使用和计算机对外网的链接。也可以大大有效的避免计算机被攻击。
五、总结
在学了计算科学导论之后,让我更深入的了解了我将来要从事的学科。计算科学导论指导着我们该怎么学习计算机。让我更清楚的知道我们信息安全专业的方向。正如计算科学这座大楼一样,在不断的成长。信息安全也必将随着网络的进一步发展而更多的被人们重视。总之学习了这门课之后让我受益匪浅,也知道自己应该好好努力,争取在自己的专业领域上有所成就。
参考文献:
1、《计算科学导论》(第三版),赵志琢著,科学出版社2004版
2、《计算机病毒分析与对抗》傅建明彭国军张焕国编著武汉大学出版社2004版
虚拟磁盘技术是采用虚拟磁盘实现将磁盘集中到服务器,适用于局域网环境终端及应用类型种类不是太多的终端类型,可以根据需要选择不同的系统和应用模板工作快速实现不同类型的教学应用切换。关电源后所有针对系统的改变丢失,主要只需维护模板,平时几乎没有软件的维护工作量,设备硬件故障也仅仅需要替换硬件并加入系统即可。虚拟磁盘技术经过十来年的发展已经非常成熟。由于以前硬盘成本较高,本地终端往往不安装硬盘和操作系统,俗称无盘工作站。这种方式非常适合大面积部署教学桌面。由于虚拟化的优势已经被业内广泛地认同以及服务器虚拟化厂商对虚拟化的大规模宣传,今年来一些采用虚拟磁盘技术的桌面管理软件厂商也将此称为虚拟桌面,只是与VDI不同的是称呼上千奇百怪。这种技术的优点在于:(1)管理工作量低,管理员只需在服务器端构建终端系统与应用软件的镜像,无需分别为每台终端安装相应软件;(2)故障修复快,当终端使用中出现软件故障时只需重启就可以获得一个全新的操作环境,目前的技术已经可以使其恢复到重启前的工作状态而不丢失中间数据;(3)可以完成实时计算量较大的工作及有一定个性化的工作需求,例如高清视频播放,3D设计等。但这种技术也存在以下的问题需要在部署时加以考虑:(4)系统镜像与硬件的关联度高。由于终端是通过网络启动的,服务器端的终端系统镜像包含了终端硬件的驱动,当终端硬件类型较多时,会使得镜像的数量较大且复杂,管理工作量增大;(5)系统运行的可靠性与单机部署存在较大差异。单机工作时如果出现宕机的故障其影响面只是单台机器,但如果是无盘工作站系统的服务器端出现宕机,其关联的终端都将无法工作,影响面要大得多;(6)终端跨网段连接服务器的问题。当局域网划分多个VLAN时,校园内无盘终端很可能分布在多个VLAN中,服务器也可能与终端不在同一网段,这时候就需要终端连接与服务器之间不受同网段访问的限制。(7)工作负荷主要集中在开机时刻,易形成开机风暴,开机后服务器负荷急剧下降,其次是工作是众多客户端的数据回写。
2方案设计与测试
当学校为学员宿舍、教室、公共实验室以及图书馆阅览室等地配置计算机时,配置方案面临的问题是:如何使这些地方的公用计算机稳定地工作而管理员能够最高效地处理和解决这些计算机出现的故障以及使用中的问题?虚拟磁盘技术广泛地应用在这些场合,而云计算技术在合理配置服务器资源以及应用配置的灵活性方面是具有极大优势的,因此这两种技术的结合可以使系统运行更加高效。即,采用:“服务器虚拟化+远程桌面+虚拟磁盘”的方式部署大面积桌面管理环境。根据我校的情况,绝大部分终端适宜采用“服务器虚拟化+虚拟磁盘”作为主要的工作方式,在产品选型和硬件配置上的设计和测试时予以重点考虑。云计算技术应用可以使服务器的配置更加高效。学员宿舍、教室以及图书馆阅览室等地配置计算机的应用环境与计算机实验室的应用环境有所不同:1、这些场合在线的计算机数量往往是不确定的,例如宿舍配置1000台电脑,而同一时间在线的计算机数量有时可能只有100-500台;2、计算机实验室服务器的访问量常常是风暴式的,例如所有计算机同一时间启动,而且往往在同一时间运行同一应用任务,而宿舍等场所就大不相同,不会在同一时间开机,运行的任务也相对比较个性化。实验室为了保证课程进行,通常按极限状态设计系统的配置,如果这样的设计用在宿舍等环境,服务器资源的利用率会比较低。在云平台上,可以在服务器资源池中根据需要配置多台服务器的群集,在群集中用负载均衡的方式可以做到非常高效而且根据不同时段的应用变化灵活地调整资源配置。我校共有五栋学员宿舍楼,为每间宿舍配备一台电脑,数量约为700台,每栋楼划分一个独立VLAN,另外还有图书馆电子阅览室以及教室电脑约100台。我们首先在宿舍区进行了无盘电脑系统部署并进行了测试。系统构建方案如下:方案中配置了3台物理服务器和一台存储服务器,每台服务器配置2个6核的双线程CPU、32G内存,虚拟服务器采用2虚拟核心(未超配时相当于1个物理核)。采用了蔚云云计算平台搭建了一个私有云。蔚云云计算平台与比较流行的Vmware相比,除了可以实现硬件虚拟化外还可实现容器虚拟化,虚拟化的效率很高;蔚云云计算平台也不象Vmware那样需要一个中心控制机来管理整个云平台,所有管理配置同时写入到所有群集节点,它可以在任何一台机器上进行管理,这样可以有效防止管理节点的单点故障;由于蔚云云计算平台上具有磁盘缓存加速,可以避免大量终端开机时对磁盘的重复读取,而VMWARE上不能进行配置;蔚云云计算平台是以计算(虚拟化)、存储(网络存储和分布式存储)、网络(虚拟交换机)管理为基础上进行扩展的桌面管理,不像VMWARE那样,购买的是桌面许可,平台不能用于服务器虚拟化用途,可以有效保护硬件投资和统一调度硬件资源,即依然保留了云平台的完整功能的使用;提供灾备功能,无需第三方软件而且使用更方便,可保障关键业务故障时快速恢复;具有更好的开放性,如VDI桌面可以根据性价比和实际应用需求在RDP/SPICE/ICA等多种桌面协议进行选择等。为了保证服务器安全和便于配置,将所有虚拟服务器配置在同一VLAN,配置了一个单一桌面管理服务器集群,进行终端负载均衡。由于各终端是分布在不同VLAN的,所以无盘系统必须支持跨路由的终端连接。在系统部署时选择了两个无盘系统分别部署在不同的虚拟服务器上并分别连接两部分终端进行对比测试,两个系统测试结果表明都可以达到应用需求,其中一个系统是在Linux平台开发的,在部署的稳定性、灵活性和工作效率方面更加优越;而另一个系统的系统是在Windows平台开发的,因此操作界面更加友好。
(1)终端有缓存与无缓存启动时网络流量
其中第一个圈内所示为无缓存终端启动时网络流量;第二个圈内是有缓存终端在第一次启动时(终端缓存数据尚未建立)的流量,与无缓存终端相仿;右边两个圈内所示是终端缓存数据建立后再启动时的网络流量,相比无缓存启动的流量大为减少。
(2)测试终端运行时回写数据的网络流量
无盘终端运行时有大量临时数据需要回写到服务器,下图所示为用某无盘系统,单台服务器在线终端数52台,终端无缓存时的情况。可以看到服务器网络端口和硬盘都有一定回写数据量但不会产生很大压力,当检测有缓存硬盘或4G内存缓存的终端时发现回写数据几乎没有,只有当终端运行大文件下载等应用时才有回写。观察可以看到回写数据量与终端运行的应用类型、终端配置以及缓存策略设置都有关系。
(3)测试服务器负载均衡与热备工作模式下系统容错情况
在多服务器群集中分别配置为热备模式和负载均衡模式,终端在线情况下将其中一台服务器强行关机以模拟服务器意外宕机的情况。观察原先连接在宕机服务器上的终端,热备模式下这些终端在5秒内自动切到正常运行的服务器上,任务没有中断,用户端的感觉只是短暂停顿而已。而负载均衡模式下则任务中止,重新开机后此终端自动连接到正常服务器。从容错效果来看热备模式无疑忧于负载均衡模式,但热备模式下需要不断同步群集中各服务器的工作环境,需要耗费服务器及网络资源,测试中发现同步时甚至会造成终端工作短时间停顿。
(4)测试不同终端硬件配置下系统启动镜像的兼容性
由于不同终端硬件配置需要不同的驱动软件,因此无盘启动镜像包与硬件是相关联的。参加测试的“和信”与“网众”两个软件所制作的镜像采用通用网卡驱动包(集合了各种网卡驱动)、操作系统与硬件驱动分离等制作系统启动镜像。选择了不同年份采购的不同品牌终端三种终端对应同一启动镜像,三种终端均可以完成启动。虽然还不能确定可完全做到启动镜像与终端硬件无关,但这种关联度已大为降低。
3云平台上构建无盘终端系统的分析
目前,著名数据库管理系统有Oracle、Sybase、Informix、Microsoft、MicrosoftAccess、VisualFoxPro等,这些产品各以自己特有的功能,在数据库市场上占有一席之地。下面简要介绍几种常用的数据库管理系统。
1.Oracle。Oracle是一个最早商品化的关系型数据库管理系统,也是应用广泛、功能强大的数据库管理系统。Oracle作为一个通用的数据库管理系统,不仅具有完整的数据管理功能,还是一个分布式数据库系统,支持各种分布式功能。Oracle使用PL/SQL语言执行各种操作,具有可开放性、可移植性、可伸缩性等功能。
2.Sybase。最新版本的SybaseAdaptiveServer与以前的版本相比,具有更丰富的功能设置,Sybase比较强大的地方在于它对资源的低占有率上。在这一方面,Sybase15还引入了新的“专利查询过程技术”,显示了增强的性能和降低的硬件资源消耗。
3.MicrosoftSQLServer。MicrosoftSQLServer是一种典型的关系型数据库管理系统,可以在许多操作系统上运行,它使用Transact-SQL语言完成数据操作。由于MicrosoftSQLServer是开放式的系统,其它系统可以与它进行完好的交互操作。
4.MicrosoftOffice。作为MicrosoftOffice组件之一的MicrosoftAccess是在Windows环境下非常流行的桌面型数据库管理系统。Access既拥有用户界面(VB可以用来开发用户界面);也拥有逻辑、流程处理,即VBA语言(VB也可以用来做逻辑处理);又可以存储数据,即在“表”中存储数据。使用MicrosoftAccess无需编写任何代码,只需通过直观的可视化操作就可以完成大部分数据管理任务。在MicrosoftAccess数据库中,包括许多组成数据库的基本要素。这些要素是存储信息的表、显示人机交互界面的窗体、有效检索数据的查询、信息输出载体的报表、提高应用效率的宏、功能强大的模块工具等。
5.VisualFoxPro。VisualFoxPro是Microsoft公司VisualStudio系列开发产品之一,简称VFP是Xbase数据库家族的成员,可以运行于Windows9X/2000和WindowsNT平台的32位的数据库开发系统。VisualFoxPro提供了一个功能强大的集成化开发环境,采用可视化和面向对象的程序设计方法,使数据管理和应用程序的开发更加简便。VisualFoxPro是数据库管理软件,可实现数据与应用程序独立。
二、如何选择适合自己的数据库软件
1.按性能应从以下几个方面予以考虑:
(1)构造数据库的难易程度;(2)程序开发的难易程度;(3)数据库管理系统的性能分析;(4)对分布式应用的支持;(5)并行处理能力;(6)可移植性和可扩展性;(7)数据完整性约束;(8)并发控制功能;(9)容错能力;(10)安全性控制;(11)支持汉字处理能力。
2.按需求来选择
选择一个数据库的主要理由就是它的功能是否可以很好地支持你的应用程序。人们通常使用数据库来完成的任务有:支持Web、事务处理、文本搜索,有的情况下复制也是一个重要的要求。在事务处理方面,Oracle看上去更有领先优势,接下来是微软的SQLServer。没有一个开源数据库具有可以与Oracle相媲美的事务处理功能。
3.按易用性和管理来选择;
4.按支持性来选择;
5.按成本因素来选择。
三、结论
Oracle是商业数据库的代表,具有非常丰富的功能、广泛的平台支持和大量的附加功能。目前Access更常用一些,Access不是一种存储格式,是一种软件。ACCESS这个软件本身就具有开发者使用的界面和适合于“最终用户”的界面。但学习FoxPro可为学型数据库管理软件大典基础。微软的SQLServer只可以运行在其Windows操作系统平台上。不过由于Windows操作系统的广泛普及,缺乏对其他系统的支持并没有阻挡SQLServer的市场份额的增长。SQLServer是真正的中大型数据库,VFP是桌面数据库,使用方便、易学,但实际上牺牲了真正数据库的一些功能,如安全性;此外,VFP既是数据库又是编程语言(开发工具)。SQLServer是中大型数据库,VFP是带有自身数据库的编程语言。
总体来说,选择什么样的数据库要看你的应用程序的需要。如果它是以阅读数据库为主的Web应用,MySQL无疑是最佳选择。而如果需要那些事务处理和复杂的数据库功能,那么可选择Oracle和微软的SQLServer。如果你需要一些商业数据库的高级功,但又不想支付授权费用,那么可以考虑PostgreSQL或Ingres。对于嵌入式数据库应用,MySQL和Sybase所占有的系统资源最少。总之,最适合的才是最好的!
参考文献:
[1]刘守根.数据库管理系统的现状和发展方向初探.内江科技,2006,(2).
[2]陈业斌.分布式数据库管理系统的设计与实现.安徽工业大学学报(自然科学版),2005,(3).
[3]姬志刚.计算机、网络与信息社会.科技咨询导报,2006,(20).
[4]薛向阳.数据库管理系统的开发与程序的设计.渭南师范学院学报,2005,(2)
[5]竺洪平.数据库管理系统的设计与程序的开发.中小学电教,2005,(6).
关键词:隐蔽原则;抽象原则;关系;对象;黑盒
有关计算机软件工程的隐蔽原则一般是这样描述的:包含在模块内的信息对于无需这些信息的其他模块是不可存取的,即将不需要的信息都隐藏起来,只允许其他模块知道其本身所需的信息。
如果说最简单的就是最好的,那么计算机信息隐蔽性最强的就是最简单的。从方法学的总结到推广,从软件设计到软件实现,从手工开发到工具辅助,信息隐蔽原则无时无处不发挥着极有效的指导作用。
l计算机隐蔽原则与其他原则的统一
1.1方法学都基于软件工程基本原则
基本原则是行为所依据的法则和规范。无论什么方法学从知识工程角度来说,都是运用软件工程方法学基本原则的规则、策略及工具的集合。其中抽象原则是最重要的,它给出软件工程问题求解全过程的最基本原则,其他原则是对抽象原则的补充。
指导如何抽象的基本原则大体上可以分为体系规范原则和模块规范原则两类。前者是规范整体解题思路及解得验证,包括形式化原则、分割原则、层次原则、概念完整性原则、完备性原则;后者则是与子问题有关的原则,包括隐蔽原则、局部化原则、逻辑独立性原则。面向对象的“关系”抽象较多受前者规范,“对象”抽象较多受后者规范。
1.2基本原则间的相互关联
虽然可以做“体系规范”和“模块规范”的大体分类,但基本原则之间并不是无关的,而是整体与局部间的相互制约,形成一个统一体。
要求将信息最大限度地隐蔽在计算机模块内的隐蔽原则,使模块内部信息封装化、模块的外部形象黑盒化,与外部的关系最少,所以使满足体系抽象原则的抽象过程和验证工作简单化,同时也很容易满足模块规范的其他原则,如局部化原则和逻辑独立性原则。
例如将具有多重关联的多个数据库表的条件组合查询,
由一个驻在服务器端的存储过程来统一完成。客户端用户可以在同一个窗口上对数十项多层交叉的查询条件任意选择组合,将选定条件送给相应存储过程。从外部来看,存储过程的任务极为单纯,即根据指定条件找出所有符合条件的记录,将结果写到一个有共享结构的工作表中,然后把查询正常与否的消息通报给客户端的调用程序。该程序接到正常查询结束消息后,到指定暂时存放查询结果的工作表中,按一定格式取出结果并报告给用户。
我认为,这是一个全面符合软件工程基本原则的设计典范,而其关键技术是信息隐蔽设计。首先是遵循隐蔽原则将具有复杂关系结构的多个数据库表的操作和库表结构封装在一起,实现了完全的信息隐蔽。由于高度信息隐蔽的实现使这一组相关库表的所有多层交叉组合结构有可能在一个对象中完成,高度满足了局部化原则。由于它的功能单纯、明确,数据库表间接口通过对相应存储过程传递参数来完成,属于内聚性最强的功能内聚和耦合性最弱的数据耦合,因而具有很好的逻辑独立性。
不难想象,几十项查询条件的组合,查询结果显示方式达三四十种是很正常的。由于在局部化、功能独立化原则下应用对象只是抽象成一个超类窗口对象,在信息隐蔽设计支持下,这三四十种结果显示功能可以全部相互独立地挂在查询父窗口下,自然地满足了分割原则、层次原则、概念完整性原则等体系规范原则。
2信息隐蔽性设计的目的和优越性
2.1目的
探讨信息隐蔽性设计的目的是:分析将信息隐蔽起来有什么好处,以便使问题求解简单化。
2.1.1好理解
一般的复杂问题有两个特征,一是解题要参照的接口太多、太复杂,二是解题的方法太复杂。那么要想使之简化,无非是从问题接口和问题解法上人手。将复杂的接口信息与复杂算法隐蔽起来,剩下的自然是简单的。换句话说就是实现对象的外部数据结构与算法的封装。
需要知道的东西越少越好理解。在软件工程中,理解是最繁重的工作之一。开发过程中从分析人员对用户需求的理解,到设计人员对需求规格的理解,直至编程人员对软件设计的理解,是一个理解传递的过程。每一级开发人员的目的都应是将经过自己加工后的、更简单的抽象结果更抽象、更好理解。因此好的设计人员就是经其加工后传给下级开发人员的设计最容易理解,即给出的问题定义越简单、接口越少越好。
2.1.2好实现
有时好理解却不好实现,即实现算法复杂。但是,如果把复杂算法做成一个封装的模块对象,使实现者只需知道模块的作用和使用方法就可以得到所期待的输出结果,而无须知道模块内部的具体实现,因此实现的问题就可以得到简化。
2.1.3好验证
复杂问题也不好验证。有些设计看起来好理解,也不难实现,但验证起来却很难。例如如果设计了相当多的功能热键用户接口。对于输入数据窗口和数据项较多的应用程序,测试起来十分困难。多个功能热键、多种激活方式、多个输入数据窗口和数据项之间前后控制跳转,这些都是黑盒测试的出发点,而每个控制节点都以2以上的指数方式递增着测试用例数目。即使一般复杂的应用,其测试用例也超过200类。
由于采用了这种多控制、多转移的复杂输入方式设计,算法复杂是不可避免的。简化的办法还是信息隐蔽性设计,将每个热键的多种激活方式触发的内部处理都写成公共对象且封装起来,供各应用程序继承调用。显然这种隐蔽技术直接简化了理解和实现。由于公共父类对象已经做过全面集中测试,下层程序继承后的有关测试绝大部分可以“免检”,所以间接简化了验证,达到“好验证”的目的。
2.1.4好重用
好验证的设计方法是把算法复杂的对象泛化为超类对象,进行集中实现和集中测试,使多个下层子类共享父类的实现和测试,所以它也是一种重用方案。好重用往往是好理解、好实现、好验证的必然结果。不过它是从更高层次上审视信息隐蔽性的目的。
2.2优越性
由于信息隐蔽性设计重用性高,因此可以大大降低开发和维护成本。具体可以从两方面来看其优越性。
1)由于将复杂内容都隐蔽到公共超类之中,可以集中优势兵力对公共超类对象统一进行设计攻关、设计优化和代码优化及测试和修改,所以不仅利于保证设计和实现的正确性,而且利于提高可维护性、保证数据安全性。总之,有利于从整体上保证软件的基本质量,降低维护成本。
2)由于简化了编程难度,避免了重复劳动,降低了对程序员技术经验水平的要求,减少了设计说明和理解交流及编辑的工作量,因而利于减少开发成本。
倘若前述的软件设计不是采用信息隐蔽性设计,倘若我们只有对复杂的库表结构了如指掌之后才能进行多层交叉组合查询程序的实现,这不仅将需要许多时间理解库表结构,还需要构筑同样的数据库,录入能体现复杂数据关系的各种测试数据。由于数据关系映射着应用对象的关系,为此我们还必须了解满足各种组合查询的数据与应用业务处理间的对应关系,因为稍有理解偏差,取出的用于统计的数据就会全面失去意义。所以信息隐蔽性设计对于大型软件开发,特别是分式的异地开发,是不可或缺的。
实际上,前述软件设计提供给我们的是与复杂数据库结构封装在一起的组合查询存储过程,只是一个桩程序。在我们开发客户端组合查询程序时,它完全是个黑盒子,甚至没有放到服务器端。但是,它使得组合查询程序只剩下输入数据检验这一单纯功能了。
3信息隐蔽性设计的基本思路与实践
信息隐蔽是个原则而不是方法,按此原则设计的系统具有信息隐蔽性,这是设计优化的一种表现。结构化方法和面向对象方法都追求信息隐蔽性,并且各自具有一套抽象与实现的思路与方法。在此,我们尝试归纳一下不拘泥于方法学的有关设计思路与方法。
3.1哪些场合应考虑隐蔽性设计
总的来说,凡是可以用信息隐蔽性设计、使复杂问题简单化的场合,都应该采用此设计。
首先,可以对共同事件、共同处理采用隐蔽性设计。因为重复是问题复杂化的一个重要原因。例如“输入数据检验”、“退出事件”、“打开事件”、“打印处理”、“热键的转移控制”、“系统信息输出处理”等,甚至对打印报表的“制表时间与页号编辑”功能的共同处理。
其次,可以对接口和环境采用隐蔽性设计。因为接口也是问题复杂化的重要原因之一。例如,可将静态数据库表及其查询操作隐蔽起来,将复杂关系表及其存取操作隐蔽起来,甚至可以将所有数据库都隐蔽起来,使低级开发人员根本不必意识数据库的存在,以及将特殊输入输出装置接口处理隐蔽起来,将与其他系统的接口处理隐蔽起来等。
此外,还可以把复杂的算法、概念隐蔽起来,也可以把用户没有权限的功能隐蔽起来,以保证数据的安全性。
3.2信息隐蔽的实现方法.
我们可以把实现信息隐蔽的物理范围称为隐蔽黑盒。信息隐蔽实现方法实际上就是隐蔽黑盒的实现方法与调用方法。隐蔽黑盒一般可以用函数、存储过程、超类对象、语句系列来实现。使用隐蔽黑盒时,可以用函数、存储过程调用、祖先继承及程序段复制等相应办法来引用。
3.2.1服务器端的隐蔽黑盒设计技术
我们使用触发器来实现对一些数据库超类表(如流水号表)或共同表操作(如表头信息写操作)的盒化。触发器是通过将实现方法与调用方法封装在一起,把调用方法也隐蔽起来,是最彻底的隐蔽黑盒。这除了使复杂问题简单化以外,还有利于数据库的安全。因为再严密的客户端操作也无法完全排除网络带来的不安全因素的影响。而随着网络支持性价比的提高,把数据库相关操作集中在服务器端,客户端只负责输入数据的正确性检查和结果数据的处理,这显然是一种既讲效率又能保证数据库数据安全体系结构的方法,是“胖服务器瘦客户机”发展方向的必然取舍。
3.2.2静态表的隐蔽黑盒设计
从信息隐蔽的角度看程序中分离出去的静态表,对程序来说也是一个隐蔽黑盒,它实现了程序中存在变因的控制数据或开关数据对程序的隐蔽(隔离)。静态表放在服务器端,便于共享和维护。同时,我们用逻辑控制静态表解决了面向不同应用对象动态组合应用功能这个难题,把没有权限的那一部分功能对用户隐蔽了起来。
总之,隐藏黑盒就是重用单元,重用单元越多软件开发越简单,与数据库有关的隐蔽黑盒放在服务器端要比放在客户端好处更多,因此隐藏黑盒有着广阔的重用前景。
参考文献
[1]沈美明,温冬婵.IBM-PC汇编语言程序设计(第二版)[M].北京:清华大学出版社,2001.9.
一、中职学校计算机理论课程的培养目标。
理论课程是基础,只有在夯实了专业基础之后才能在本专业有所建树。中职学校有其自身的特点,其培养的目标是技术型人才,理论课程的开设主要是为实践服务,目的是让学生在掌握基本理论知识的基础上,通过独立思考和集体合作,进一步提高分析、解决实际问题的能力,通过对案例的分析研究积累经验,以发展自己的创造才能,使学生全面系统地掌握计算机知识。例如程序设计类的课程,首先要使学生养成基本的、良好的编程习惯,懂得编程的基本原理和常用的编程方法,能够理解编程所使用的各种语句,然后让他们投入具体的编程工作。
二、中职学校计算机理论课程教与学的现状。
1。教材、教法现状。
从教材大纲上来看,要么部分教材过于陈旧,编写的教材几年不变,跟不上计算机技术的发展和社会职业的需求;要么和流行软硬件步步紧跟,年年更新,使许多学校硬件环境频频告急。由于计算机知识更新实在太快,如果教材跟不上知识的更新,会使学校培养的人知识陈旧,不能适应社会的需要;如果教材更新速度过快,则可能由于学校硬件条件的限制,造成教材与教学的脱节,同样达不到好的教学效果。
从教学方法上来看,在教学方面,多年的职业教育没有从根本上脱离普教的教学思想和教学模式,因此,没有真正地体现出自身的教学特色。笔者在授课中往往有这样的体验,讲授理论课时由于内容抽象难理解,结果一方面教师在拼命地想讲明白,学生们也非常专注地想听明白,但计算机中的许多术语、原理、命令等等总让许多学生如坠雾里,上机操作时不知从何下手,结果造成教师教学费力,学生学习吃力,实际效果不好的现象。
2。中职学校计算机理论课堂教学现状。
(1)教学原则。计算机理论课程的教学在很大程度上仍然沿袭着“以教师为主体”、“以课程为中心”的传统教学观念:教师是知识的传递者,教学以传授知识为主等等。这样的教学理念直接影响、制约了教学模式、教学方法、教学手段的改革创新,也打击了学生学习的主动性、积极性。
(2)教学模式。传统的教学方法单一、僵化,习惯于“一言堂”、“满堂灌”,在教学的各个环节,都只从教师的角度出发,从组织内容、备课到讲授,很少关注学生的反应,课堂缺乏互动,更谈不到学生参与其中,变被动学习为主动学习。
(3)教学手段。虽然目前计算机专业课程教学中,基本普及了现代化教学手段的应用,但在课件制作的水平方面,在使用课件的尺度把握方面,还要下些功夫。
3。中职学校学生的学习现状。
从生源上来看,由于普高的扩招,中职学校的门坎很低。进入中职学校的学生,其文化课基础相对较差,许多学生的学习兴趣、主动性和积极性也不高。另外,中职学生大部分来自农村,由于目前农村乡镇中学计算机教学设施的不完备,许多学生在初中学习时还没有接触过计算机,更谈不上操作和运用了。总的来说,中职生源文化素质不高,对计算机的认知程度也很低。
学生在学习过程中,普遍对计算机理论课程的学习都不感兴趣,他们觉得理论课程枯燥、难学。他们追求的是学以致用、立竿见影的效果,尤其是家庭电脑的普及,上网热的冲击,使学生更加注重操作技能,而对计算机理论很少涉及。计算机理论是学生提高计算机水平的基础,中专生没有足够能力认识到这一点的,于是往往会把学习计算机知识分为“有用的”和“没用的”两类。比如认为学习计算机系统的基本结构和原理、进制的转换、程序的编制等是“无用的”;对于学习制图、网页设计、硬件维修等是“有用的”。
三、中职学校计算机理论课程的教学改革。
1。充分发挥教师的主导作用和学生的主体作用。
中职学校的计算机理论教学最终是通过课堂教学来完成的,因此在课堂教学的过程中,充分发挥教师的主导作用和学生的主体作用是教学成功的关键。
(1)提高教师的专业素质水平和业务水平。要实现教育现代化,必须培养和造就一支高水平的计算机师资队伍,积极探索和发挥计算机在教学和教育中的作用。作为一名计算机教师首先应不断地充实自己,不断更新自己的知识范围。计算机学科的特点就是“前沿”,即使是计算机专业的本科毕业生,若停留在原来的基础上,则意味着后退。所以,选择了计算机就是选择了“不断地学习”。在计算机教育这块园地里,要有所收获,就必须怀着对本职工作的无限热爱,怀着对学生强烈的责任感,投身到计算机的教育、教学研究上来。
(2)提高学生的学习积极性和主动性。学习积极性和主动性是从事创造性学习活动的一种心理能动状态,是影响知识、技能掌握和智能发展的一个重要因素,是学生学习上的内在动力。教学中激励、唤醒、调动学生的这个内在动力,是上好专业课、提高课堂教学效率的关键。因此,教师在进行计算机理论课程教学过程中应注重培养学生的兴趣,让学生带着兴趣、带着热情去学习,才能使学生从主观上愿意接受计算机理论知识,才会有很高的学习积极性和主动性。
2。计算机理论课程教学改革的思路。
(1)在课堂教学中渗透素质教育的理念。
一是改变教学“满堂灌”的形式,将知识的形成过程暴露给学生,让学生在接受知识时不仅“知其然”而且“知其所以然”,培养学生继续学习的能力和方法,使学生获得主动的知识。
二是计算机理论教学重在培养学生的创新思维、发散性思维。因此,教学过程要指导学生掌握正确的学习方法,努力培养学生探究学习的方法,培养学生探究科学的精神,使学生养成良好的科学素质。
三是在教学中努力培养学生先进的教育观念,使学生形成在实践中获得知识的能力。素质教育重在素质的形成,而素质最终是在实践中体现出来,计算机理论教学不能仅是理论知识的学习,而且,要加强理论联系实际,最大限度地提高学生的实践能力,让学生在实践中获得发现知识的乐趣。
(2)计算机理论课程设置的改革。
一是课程内容的设置要紧贴社会的要求,把社会的需求和学生学习的需求有机统一,从而激发学生的学习积极性。职业中专学生虽然没有高考的压力,但面临就业的挑战,所以课程的设置要以社会的需求为依据,以学生的就业为导向。这里最重要的是进行社会调查,弄清计算机专业中职学生能够就业的岗位群,由此弄清学生所需掌握的知识和技能,并由此作为课程设置的依据。只有是有利于学生就业的课程内容设置,才能激发学生的学习动机。
二是根据中职学生的学习心理特点、认知和能力水平,以及课程本身的对应关系对课程内容的顺序进行合理安排,要做到先易后难,各课程之间的承接性要合理。
三是以能力为本位进行课程内容的整合。在中职计算机中大部分课程主要是以培养学生的动手能力为目的。职业中专学生的抽象思维和数据逻辑分析能力都较弱,对理论课的学习不感兴趣,课堂上的理论讲授效果不理想。在设计和制定项目的课程任务时,把知识点和职业中专学生不需要系统学习但需要部分掌握的内容融入其中,使学习过程成为学生参与的创造实践活动,注重的不是最终的结果,而是完成项目的实践过程。这样进行教材内容的整合使学生有明确的学习目的和内容,能将知识迅速转化为实际能力。因此,教师应根据学生的实际情况和能力目标,对教材做相应的处理。
(3)教学方法的改革。
一是教学和学习方法上,采用讲、看、练一体化方法和分组讨论的教学方法。教师可根据教学内容或教学案例制作课件,使教学更具直观性,深入浅出,将原来抽象、复杂叙述用生动的图像和动画表现出来,使学生可以更直观地理解教学内容,激发学生学习兴趣。要让学生从知识的被动接收者转变为主动参与者和积极探索者,在发挥教师主导作用的同时,充分发挥学生的主体作用,鼓励学生大胆提出问题,引导学生思考探索,从而达到良好的教学效果。
二是教学的组织形式上以实训基地现场教学为主,尽可能多地为学生提供动手操作的机会。结合实际,使教学和实际真正融为一体。平时面对实物和实际进行教学,实习或业余时间可以在教师的指导下,为学校、老师、同学乃至社会进行计算机应用与维护方面的服务。组织学生进行社会调查和市场调查,让学生认识市场、了解市场,了解当前的市场技术水平和行情,了解将来的工作岗位的工作内容和要求,提高学生学习的目的性和自觉性,提高学生的岗位适应能力和综合素质。