乐鱼体育计算机软件技术涉及到的内容较多,但通常我们将计算机程序、方法以及计算机运行时所需的各种数据统称为计算机软件技术。如上所述,计算机软件技术一种较为先进的技术,对于当今世界的发展具有重要意义,同时又因其具有操作便捷、运行速度快、适用范围广等特点而备受现代人们的喜爱。计算机软件技术分类的方法较多,但我们常将其分为科学计算、数据处理、过程控制以及人工智能等几个部分。计算机软件技术是计算机实现其功能目标的保障,如果没有计算机软件技术,那么计算机就和普通的机器没有区别。如今是一个技术发展迅速的时代,在这种环境背景下要想充分发挥计算机软件技术的优势,就应加大对计算机软件技术专业人才的培养力度,提高计算机软件技术人员接受新知识、新技术的能力。
随着社会科学技术水平的不断发展,计算机软件技术也取得了较大的发展和进步,但是在其发展进步中,难免会存在一些不可靠性表现,下面具体分析一下其不可靠性。
近年来,计算机软件技术取得了较大的发展,同时我国的信息化建设工作也逐渐趋于正规化和规范化,软件产业成为促进我国经济和科学技术水平快速发展和进步的支柱型产业。在学术界,将计算机软件的可靠性定义为能对软件性能、工作效率等内容进行详细描述和评价的标准。即我们所说的,在一定的环境下、一定的时间范围内,使用计算机软件而不会引发系统故障的概率。随着计算机软件技术的推广,如何确保计算机软件的可靠性成为人们关注的重点问题。根据计算机软件技术的特点,我们发现要想提高计算机软件技术的可靠性主要还是应该做好软件开发工作。
我国软件技术发展一直备受关注,也制定了许多相关政策对其发展给予一些必要指导和帮助。因此我国软件技术与产业在近年来发展势头良好,进步较为稳定,但是与全球软件行业发展的程度来看,我国计算机软件的发展依旧存在诸多问题。
(1)计算机软件技术与计算机硬件技术不同,计算机硬件技术问题的产生主要是因为硬件材料的性能决定的。计算机硬件技术的科研重点就是解决硬件材料问题,从而增加硬件的使用寿命;计算机软件技术不存在磨损问题,也不存在使用寿命问题,计算机软件技术的问题主要是软件程序的稳定性问题。在使用计算机软件技术时最常出现的问题就是软件程序问题,程序一旦出现问题,如果处理不当就会使软件失效。而软件技术工程师在开发软件时很难预测到软件程序会出现问题乐鱼体育,这就增加了软件技术开发的难度;
(2)软硬件技术的可靠性一定程度上存在很大的相似性与互通性。两者同样运用复杂的函数作为定义缺陷和故障的标准。但计算机软件和硬件技术还是存在很大的差别性。软件技术开发过程是一个“思考创作”的过程,主要是以用户的需求为基准,通过建模、编程等步骤解决用户的问题。这一过程,主要是人的思维能力和创新能力的一种体现。但由于是人的思维过程,一定会存在思考不到位的情况,致使计算机软件技术存在漏洞和不合理性。这些漏洞和问题有的可以在软件测试阶段被检测出来,有的却难以被发现,只能等到用户使用过程中才会被发现,而一旦出现了这些问题就会造成软件失效或崩溃;
(3)计算机软件与计算机硬件在技术维修方面存在差异,计算机硬件的故障主要集中在硬件系统方面,这些故障往往都是属于可维修的故障,有解决问题的方法。但计算机软件系统一旦受到破坏就很难维修,一般只有通过重新设计软件才能解决问题。
针对上文介绍的计算机软件技术不可靠性的表现,下文将具体介绍一些解决对策,以解决计算机软件的不可靠性。
当软件出现差错时,引起软件故障,降低了软件可靠性,而致使软件出错的主要原因是人的原因。因此,在软件开发过程中应做到下述几点。第一,要确保软件开发人员的专业素养水平;第二,对于语法错误等技术性问题必须严格注意。此外,当计算和计划错误的时候,软件开发人员要进行认真的思考,直到最后版本等内容完全一致,还要学会分析工程的实际情况,做好材料的选择。
计算机软件开发中,工作人员并未参与其各阶段的评审工作,因此有时会产生各种各样的问题,为了各阶段都符合相关要求,避免跨越阶段现象的出现,要在软件开发的各个阶段组织测评工作,确保软件开发的准确性。评审人员要包括设计师、管理者等全体人员,保证专家评审的质量,这对提高工作质量有很大帮助。对评审组来说,主要工作就是对设计师提交的软件文档是否符合要求进行审核,通过专业人士的管理,对计算机硬件进行更好的维护,保证计算机软件的更深层次发展。
计算机是由硬件系统与软件系统组成,所谓的软件系统是指为运行、管理和维护计算机而编制的各种程序、数据和文档的总称。可以说,计算机软件系统是联系硬件系统与用户间的一座桥梁。通常来讲,可将计算机软件系统分为系统软件与应用软件两类。系统软件是由计算机厂家作为计算机系统资源提供给用户使用的软件总称,可以使用户更好的使用并管理计算机,为其他软件的使用提供服务。可以说,系统软件是联系硬件系统与其他软件的中介。而应用软件是专门为解决某个或某些应用领域中的具体任务而编写的功能软件。通过使用应用软件可以实现计算机多功能操作。
随着社会的不断发展,人们对计算机的需求不断增加,往往希望通过计算机来实现更多的应用,期待更加多样化的功能,这就推动了计算机软件的开发与应用。计算机软件的开发不是单一独立的,其是基于不同的平台而开发的。这里所说的基础平台主要是指硬件平台、操作系统平台、网络中间软件平台、多元化数据库开发的软件等。基于不同的开发平台,所开发出的软件就会有着不同的功能,以下是对计算机软件开发的具体探讨。
基于硬件平台开发的计算机软件功能侧重点为服务硬件系统。这类软件的开发可以有效确保各类硬件的正常应用。
基于操作系统平台开发的计算机软件具有多样性、实用性与依赖性。这类软件在开发之后,往往形成了不同的软件具有相似功能的局面,如此一来,哥软件之间的竞争力较强,软件能否进一步发展应用就在于是否把握好核心竞争力。这里所说的核心竞争力是软件的应用与更新。基于操作系统平台开发的计算机软件不仅要便于应用,更要注重的是更新完善,软件的功能要不断与变化的计算机技术、应用环境相适应。
基于网络中间软件平台开发的计算机软件主要服务于网络应用,这类软件可以有效解决网络环境下不同网络系统之间的异构问题,故而也具有较强的实用性。不仅如此,这类软件还可以辅助软件系统在不同的网络环境下正常运行,为信息的交流与共享提供了极大的便利条件。
基于多元化数据库技术开发的计算机软件主要服务于电子数据库技术,使得电子数据库的使用更加的便利,也促使电子数据库实现由单机多功能发展向多机多元化发展,更有利于信息资源的共享。
随着计算机软件系统的广泛应用,其应用平台也呈现了一定的发展趋势。现阶段的计算机软件系统应用平台逐渐发展为独立的软件系统,例如WINGE5.0嵌入式软件应用平台与AEM9软件应用平台等。而在这种发展趋势的影响下,人们对计算机软件系统应用平台的研究,也逐渐侧重为其组件技术与系统平台化。
各软件的合理应用都需要依靠组件技术,组件技术可以有效的处理软件,使得各个软件之间保持独立的功能特点并具有良好的接口功能。组件技术可以实现各组件间的有效拼接,当某个软件出现运作异常需要及时更换时,可以实现独立更换,而不影响其他软件的正常应用,相比于软件捆绑,组件技术的应用可以降低损失,更有利于各软件的应用。如此一来,组件技术的应用大大提高了软件设计效率,也降低了开发的难度,便于更多优质软件的开发。由于组件技术的不断发展与广泛应用,人们对这种技术更加的认可,基于组件技术的应用平台逐渐发展成为当前各软件应用平台的主流,组件技术本身也成为了计算机软件系统应用平台技术中最重要的技术之一。
网络技术的复杂化发展带动着软件系统的发展,软件的体系结构逐渐呈现多层发展,软件的底层基础构架与软件的业务功能逐渐独立,软件系统对应用平台的要求也越来越严格。软件平台化技术可以实现各项功能的兼容并为各种软件的应用提供有效的支持,不仅如此,这类软件平台具有一定的开放性,便于应用的同时也在最大程度上确保着软件的安全可靠性。软件系统应用平台化是软件技术发展的必然趋势,其对软件的开发提出更为严格的要求,与此同时软件研发强度也将加大,这就要求相关开发人员具备较高水平的专业素质与更加灵活的思维,力求所开发出的软件与软件系统应用平台化的发展趋势相适应。未来的计算机软件系统应用平台技术会不断呈现多元化发展,逐步向服务型转变,更加的智能化、开放化、网络化,不断融合其他先进技术,完善软件系统应用平台技术本身,保持发展优势,提高软件产业的核心竞争力,在应用中创新,在创新中应用,实现计算机软件系统的进一步发展。
要想对计算机软件技术的可靠性进行分析和研究,首先必须要对计算机软件技术的范围具有充分的了解。计算机系统由软件及硬件两部分组成,其中,软件主要是对控制程序执行的方案、相关数据的表示方法以及程序进行研究,同时还包括计算机操作过程以及资源管理的实现技术,其中主要有:①实现技术和软件工具;②数据库技术;③操作系统和实用程序;④编译技术;⑤程序设计语言。从概念上来讲,计算机在运行时的数据、计算机规则方法以及程序的文档就是所谓的计算机软件技术。通常可以将其划分为人工智能、过程控制、数据处理以及科学计算等。为了能够使计算机对某类具体问题进行有效的处理和解决,就需要编制应用程序、提出解决方法,并且能够在计算机中进行处理,从而可以获得良好的预期效果。立足于计算机的体系结构而言,计算机的灵魂就是计算机软件,在软件技术的指挥下才能够发挥计算机强大而神奇的功能。
(1)计算机软件技术的可靠性在一般情况下主要是指对软件的属性质量以及性能进行评价和描述的标准,也就是说对计算机软件进行使用的过程中在特定的环境以及时间下不会导致系统出现故障的概率。这个概率是衡量软件有无故障的重要指标。目前计算机软件技术的发展面临着一定的瓶颈,所以尽管具备了较为完整的质量保证体系以及设计体系对软件的设计和流程进行规范,在计算机软件技术可靠性的研究工作方面还是存在着一定程度的滞后性。(2)硬件材料是硬件技术的主要研究方向,硬件材料是否容易老化损耗对于硬件至关重要。硬件失效通常表现在物理故障。而对于软件来说,它不存在磨损现象,但存在陈旧落后的问题。(3)软件行业工作人员在一般情况下都会选择预防性维护技术预防故障,采用断开失效部件的办法对故障进行诊断,采用对被损坏的系统进行更换或者修复的方式实现软件功能的恢复。但是在计算机软件出现损坏的时候很难通过这些措施进行修复,只能重新设计失效的软件。(4)由于目前我国的软件开发能力和开发水平整体属于低级水平,特别是具有较低的自主创新能力,因此导致我国严重缺乏核心技术。而且在全球软件产业链中我国的软件产业处于中下游的地位,在软件市场中我国所生产的产品的品质和层次也处于最低端。尽管我国的软件经过长期的发展取得了较大的进步,但仍然存在着不合理的软件产业发展结构等问题。我国近年来一直存在着忽视软件而重视硬件的问题,因此从整体上来讲,我国的软件开发市场仍然处于正在不断成长的阶段。
要想使软件不可靠性问题得以有效解决,首先要在软件研发的初期就要对软件的需求进行认真分析,将软件的研发工作扎实认线)软件的不可靠性主要由于软件差错而导致出现软件故障;而软件差错则是在软件开发的过程中存在的人为错误。因此要想有效地提升计算机软件技术的可靠性,首先要致力于工作人员专业知识以及专业水平的不断提升,工作人员必须要对软件定义进行充分的理解,真正地掌握将用户提出来的需求。其次,工作人员要对语法错误以及变量初始化错误等各种技术层面的错误给予高度的注意。再次,在避免错误的同时要认真思考,保证内容、文档和版本达到一致,同时还要以工程的实际情况为依据对其进行切实的考虑,最终能够将具有较高可靠性的软件设计出来。(2)计算机软件经常会出现各种各样的问题往往是由于计算机开发人员并没有认真地将开发计算机软件技术中的计算机硬件维护以及各阶段的评审等工作做好。为了使软件开发的各个阶段都能够与相关的要求相符合,必须严格规范地依据流程进行软件技术开发工作,坚决避免发生跨越阶段开发的现象,在软件开发的各个阶段必须要及时实施软件评审工作,从而将各个阶段的软件开发标准明确下来。在此过程中,软件评审人员在保证计算机软件的可靠性方面具有十分重要的作用,评审人员通过审核设计师提交的软件文档是否执行了上一个阶段软件文档的标准来衡量软件开发是否符合要求。同时软件评审人员还要配合各个领域的专业人员,以提高评审质量。因此对一批软件行业的高层次研究人才进行重点培养,这样才能够对计算机硬件进行更好的维护,从而推动计算机软件技术朝着更深更广的层次发展。(3)虽然我国制定了关于开发计算机软件的一系列的规范,然而由于没有将科学的技术质量监测机制建立起来,同时也缺乏核心技术,因此现在还缺乏对计算机软件技术开发实施技术改良、评价修改以及质量测试的有效途径。要想解决这些问题,必须建立完善的“三检体制”,保证计算机系统开发的规范性,提高软件设计的整体水平。同时在软件技术开发配置管理方面建立严格的软件配置体制,并对其进行不断的完善,这样才能使计算机软件的整体技术管理水平得以提升,并且能够对软件开发技术人员出现的各种错误进行有效的控制,最终促进整个核心技术的全面提升。
信息技术相关专业课程的实验内容相对基础,各门课程的综合型实验数量不多,单门课程的实验相对独立,学生的实践教学环节的专业知识面相对狭窄。通常包括硬件设计、软件设计、系统开发等几个方面。目前,高校中“软件的学生不懂硬件,硬件的学生对软件不屑”这一现象特别突出。打破常规的实践教学理念,将相关专业的实践课程进行协同教学改革,多方共同参与同一个综合实践项目。为了进行信息技术相关专业实践教学综合改革,我们对信息技术专业各实践教学进行了相关性分析,这种综合教学改革是非常可行的。如表1。
多专业协同实践教学改革以信息技术最新发展方向为切入点。目前,嵌入式系统、物联网、3D打印技术、机器人等相关课程,都涉及硬件、软件及系统,相关项目也是非常多,这些课程实践教学内容也非常丰富,适合引入到实践教学中。如图1,嵌入式系统设计的项目中,硬件层中包含主板电路板设计,嵌入式微处理器、存储器(SDRAM、Flash等)选择,接口芯片的选择,CPLD/FPGA设计等,就构成了一个嵌入式核心控制模块。在这部分的设计中,与电子信息工程和自动化控制专业的一些课程相关,比如:电路设计与仿真、单片机与接口技术、传感器技术、嵌入式系统开发、CPLD/FPGA设计、硬件测试技术等。硬件层与软件层之间为中间层,也称为硬件抽象层,它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。系统软件层由实时多任务操作系统、文件系统、图形用户接口、网络系统及通用组件模块组成。这部分内容主要包括:BootLoader的移植、操作系统的选择与裁剪等,这部分与自动控制底层设计有很大的关系,对于硬件知识需要一定的了解。同时,也与计算机科学与技术和软件专业的课程相关,比如:操作系统、数据结构、编程语言等。应用软件层设计部分,主要是基于嵌入式硬件系统和嵌入式操作系统之上开发的应用程序。相关的应用软件一般包括管理系统、控制系统、监控系统、图形界面、游戏、网络程序等。这部分项目设计与计算机科学与技术、软件工程、自动控制等专业相关,相关的课程有:软件工程、算法分析与设计、软件测试技术、语言开发、数据库技术、计算机网络等。
高校是培养创新创业型人才的综合平台,结合课程体系改革、实践基地创建等工作促进信息技术创新型人才的培养。加强实践教学有利于创新人才的培养,实践教学改革是高校教学改革的一个重要组成部分。通过信息技术相关专业协同实践教学,有利于培养学生的对信息技术软件、硬件及系统的项目整体意识乐鱼体育,有利于培养学生的协助精神,有利于培养学生的系统级项目研发能力。
[1]何红旗,常瑞,张有为,等.计算机硬件类课程实践教学的困境与思考[J].计算机教育,2016,(2).
[2]王志英,周兴社,袁春风,等.计算机专业学生系统能力培养和系统课程体系设置研究[J].计算机教育,2013,(09).
[3]温柳英,冯丹,王世元.计算机硬件类实验教学改革探索[J].实验科学与技术,2011,(01).
[4]盛建伦,巩玉玺,刘淑霞,等.计算机专业硬件基础课程实验教学体系的研究[J].实验室研究与探索,2013,(10).
保护知识产权,盗版软件,是目前中国软件业所面临的迫切问题。可是,尽管国家一再加大力度,打击非法软件出版物,扶持正版软件,但实际效果并不理想。眼见着无孔不入的盗版软件对软件市场的侵害,更多的软件商选择了购买加密产品或者加密技术来保护自己的软件。
硬加密是在硬件加密锁上固化一些重要的加密信息如加密密钥、敏感数据、授权文件、自定义算法等,当软件程序启动时,计算机读取硬件加密锁上固化的加密信息进行检测,检测通过才能启动软件程序。硬件加密锁从CPU类型来说分两种,一种使用单片机作CPU,另一种智能卡芯片作CPU。单片机硬件本身容易被破解或复制,因此中高端的加密锁越来越多地使用智能卡芯片作CPU,以防止硬件被破解。但智能卡加密锁的破解也越来越多,一是因为芯片分析技术和仪器越来越先进;二是智能卡程序写好后要交给芯片厂去制造,在这个环节程序有可能被泄漏出去,造成大批量复制。
硬加密需要硬件器件加密锁固化加密信息,所以成本较高;缺少了硬件加密锁,软件程序启动时无法读取固化的加密信息,不能通过信息检测,程序无法启动,安全性高。
软加密是不依靠特别硬件来实现的对软件的保护技术,一般采取序列号或许可证文件的授权方式。软加密并不是对软件的所有信息都进行加密设置,仅仅是在软件安装或运行时进行加密处理。
第一种软加密方式是软件授权不与计算机硬件特征绑定,具体还分为两种:一是采用与一个软信息,如用户名等绑定的方式,一般用于个人用户授权;二是不绑定任何信息,只要序列号或授权文件验证通过,软件可以在任何机器上使用,通常用于大客户批量授权。授权的验证方式有直接比较、算法变换比较等方式。
第二种软加密方式是软件授权与系统的特征信息、计算机硬件的标识信息绑定,绑定的计算机硬件特征主要有CPU序列号、BIOS序列号、硬盘序列号、网卡MAC地址、计算机名、用户名等信息。这些计算机系统的特征信息和计算机硬件的标识信息的集合统称为计算机指纹。计算机指纹信息类似人的手指指纹信息一样,任意两台计算机的系统的特征信息或硬件的标识信息是不相同的。如:磁盘的分区卷标,不同软件系统的计算机中磁盘分区卷标不同;硬盘序列号,任意两张硬盘的序列号是不一样的。软件程序初次安装时,安装软件会读取相应的计算机指纹信息,安装软件使用用软件开发者在程序中设置的加密算法加密计算机指纹信息生成加密文件,并将加密文件写入到计算机注册表中。当下次启动运行软件程序时,软件程序再次读取相应的计算机指纹信息并采用同一种加密算法将其加密产生密文文件,然后与计算机软件注册表中的密文文件数据进行比较,如果两个文件数据相同则继续运行软件程序,否则停止运行软件。
第三种软加密方式是软件授权与互联网上的授权服务器绑定,是云计算模式的授权方案,也称云授权。云授权的安全强度非常高,甚至比加密锁还要高。这是因为加密锁随软件卖出去后是无法跟踪和监测的,黑客可以花任意长的时间去破解它,而且一旦破解了可以大批量复制。而授权服务器有防火墙和完善的入侵检测技术,任何非法的访问和异常情况都可以监测得到,安全性要高的多。服务器授权也便于实现授权软件的跟踪管理、破解补救和升级更新。
两种加密方式最根本的区别就在于“软”与“硬”上。“软加密”主要是指通过特定的软件算法进行加密,而硬加密作为物理加密技术,其主要是通过芯片对硬盘中的字符、数据进行加密。
其实,软加密一般通过加密软件的方法来实现加密功能,它并不对数据进行转换运算。通过使用加密算法将计算机指纹信息生成密码文件,这需要大量的加密运算,会占用大量的内存资源,加密速度比较慢。而硬加密需要将保护的数据转换成不可识别的数据模块。在现有的操作系统中进行加密,可直接对硬件加密锁中加密文件进行读取,无需大量的加密运算,加密速度相对较快。
第三,虽然硬加密比软加密的加密成本高,但硬加密技术更安全、更可靠,比较适用于科研院所、部队、机关、财务、各行业设计人员、个人及网络用户进行数据交换、移动办公、保密数据存储、备份等。同时,硬加密具有简单、易用、智能化的特点,将会是未来加密技术的发展趋势。
软件加密技术是软件保护的主要安全保密措施,是最常用的安全保密手段。软件加密可以有效的防止软件被盗用,维护软件开发者的知识产权,保护软件开发者的经济利益。
[1]魏会君.软件的加密保护技术探讨[J].石油工业计算机应用.2002,2:40―41.
[2]魏会君.软件的加密保护技术探讨[J].石油工业计算机应用.2002,2:40―41.
[3]刘红敏,尹志喜.计算机指纹生成技术研究[J].华北工学院学报.2004,25(1):46―48.