时间:2022-11-22 23:18:35
导语:在计算机软件论文的撰写旅程中,学习并吸收他人佳作的精髓是一条宝贵的路径,好期刊汇集了九篇优秀范文,愿这些内容能够启发您的创作灵感,引领您探索更多的创作可能。
1)在计算机中安装杀毒软件
通常,在我们使用电脑的时候,下载软件是必不可少的,必要的时候还会下载一些驱动程序等,这是在进行软件下载的过程中,有些病毒侵入到计算机软件系统内,导致电脑系统运行的速度变得越来越慢,严重的时候会使计算机出现死机,甚至主板的BIOS被CIH病毒侵入。为此,在使用电脑的过程中,电脑系统必须要安装杀毒软件,而且还要对杀毒软件进行及时的更新,以保证计算机的运转速度,保证计算机软件可以正常工作。
2)定期的对硬盘进行检测与扫描
使用计算机的过程中,要定期的对硬盘进行检测与扫苗,确保硬盘可以保持一个良好的状态。虽然,计算机中硬盘的存在并不是电脑的核心,但是如果硬盘有损坏的现象,也会为计算机一级计算机的使用者带来一定的损失。尤其在计算机硬盘中的BOOT区,如果它被破坏,很容易使整个系统陷入到瘫痪的困境当中。所以,在计算机使用的过程中,养护以及管理硬盘是一项不可缺少的工作。对磁盘进行扫描,不仅可以对磁盘的物理表面进行一定的清理,还可以对计算机软件中文件系统结构进行检测清理,确保硬盘的可靠性,保证硬盘在计算机中没有任何问题的存在。如果对计算机进行非法关机,会导致硬盘中的文件丢失。如果不进行及时的修复,那么Windows将会出现不稳定的现象,也会使程序的执行出现严重的错误。
3)对计算机软件的使用要定期检查与管理
在计算机使用者应用计算机进行长时间的工作时,很容易使计算机系统出现错误,从而给计算机软件的使用带来严重的影响。为此,要通过定期的对计算机软件的周期性管理以及软件更新,实现对计算机软件系统有效管理的目的。对于网络用户而言,他们需要知道,对计算机软件进行周期性的维护与管理,会提高自己对计算机软件使用的满意程度。所以,计算机使用者要经常性的对计算机软件进行养护与管理,从而满足他们对网络的需求。为此,在日常使用计算机的过程中,要对计算机软件进行定时的清理与缓存,这种方法是维护计算机软件的很好的方法,同时也是保证计算机软件可以正常使用的一个有效的方法。
4)完善计算机软件系统中的漏洞系统
①网络用户的控制程序分析。计算机软件系统维护中,用户所使用的控制系统对保障计算机软件的安全十分重要。该控制程序属于计算机软件安全维护的一项比较重要的维护方法,它不仅可以辨别出该用户使用计算机软件的资格,还能通过对用户身份的验证,确定用户是否正常的使用计算机软件系统,这个功能对保护个人使用计算机软件的功能起到了举足轻重的作用,也从源头上实现了对计算机有效管理与控制。②网络用户个人信息加密程序。这个程序可以有效的防止网络黑客对计算机软件的个人使用信息进行盗窃。计算机使用者通过计算机的加密技术,可以有效的防止个人信息被遗漏,有效的防止了不法分子对计算机软件信息与计算机软件功能的破坏,在计算机中属于一种安全的网络维护手段与方式。
二总结
计算机软件系统的保护技术发起于上世纪九十年代,是以计算机保护卡为基础,基于DOS系统设计的,至此计算机软件系统的保护技术研究开始受到重视。受当时科技发展限制,计算机软件保护技术的发展受到了很大制约。第一,当时的计算机软件系统保护是基于DOS系统设计的,所以有很大的局限性,只适合DOS系统应用。第二,计算机软件系统的保护技术不完善,计算机系统的兼容性很差,导致计算机的启动、运行速度缓慢。第三,计算机软件系统保护对用户的限制过多,影响了用户对计算机各项资源的利用,不利于计算机工作效率的提高。第四。计算机软件系统的保护技术不能完全的保护计算机软件,通过一些高级工具、非常手段很容易对计算机软件系统构成威胁和破坏,导致系统瘫痪、资源流失等,计算机的使用安全得不到充分的保障。第五,计算机软件系统的保护技术对系统的恢复考虑不足,软件系统被破坏后无法补救。随着计算机安全保护技术的发展,计算机软件系统保护技术的这些缺点逐渐的被克服,用户在计算机使用中只会在软件程序运用上受到限制,但可以通过注册解决这一问题,会的完整的软件程序使用权。此外,现在的计算机软件系统的保护使用了加密工具,提高了计算机硬件对计算机软件系统保护的支持度,利用访问权限设置,有效的预防的黑客的攻击、病毒的入侵,确保了计算机软件系统应用的安全、稳定。
2计算机软件系统的恢复技术
计算机软件系统保护技术是在“假写原理”指导下,利用保护卡技术,在计算机启动后对计算机的软件系统进行保护,而计算机恢复技术是先将计算机的重要软件资源进行备份,在计算机软件系统被破坏后对计算机系统进行有效恢复,以确保计算机重要数据、信息等的完整。计算机软件系统的恢复技术研究发起的时间较晚与计算机软件系统的保护技术,但却是计算机软件维护中不可缺少的一部分,其与计算机保护技术相辅相成,形成了可靠、稳定、无后顾之忧的计算机软件系统保护屏障,保障了计算机运行的安全和效率。在常规下,计算机保护技术会结合计算机系统漏洞,对系统问题进行修补处理,以确保计算机软件系统的安全。计算机恢复技术主要应用与计算机软件系统遭受严重破坏的补充,促进了计算机运行效率的提高。其主要的技术手段是利用硬盘克隆技术,将计算机内部的具体文件、重要内容、硬盘主引导、分区等重要信息进行拷贝,当计算机软件系统遭受到严重破坏时,利用这些数据对计算机软件系统进行恢复,使计算机能迅速的恢复到工作状态,以此提高计算机应用的效率。
3结语
关键词:异构计算机;软件移植;可视化仿真;指令系统
微机已经广泛应用于各种控制系统、智能仪器仪表、智能家电等领域。单片机性价比的提高,使单片机成为嵌入式系统的主流芯片。
目前,控制系统开发的常用方法是在PC机上编写和调试单片机系统程序。虽然,国内外有不少单片机开发系统,但由于单片机与PC机体系结构不同,用单片机指令编写的程序无法直接在PC机上运行,因此,系统开发时要有仿真器、编程器等专用设备,程序运行不能脱离单片机开发装置。因此,基于单片机的系统开发,源程序调试工作非常复杂,操作繁琐,调试结果的显示不够直观。针对上述情况,研究异构计算机软件移植可视化仿真技术,设计独立于单片机开发装置的可视化仿真系统,应用于控制系统和嵌入式系统的开发和实验具有重要的意义。本文在研究异构计算机软件移植可视化仿真技术的基础上,实现了在IBM-PC机上运行51系列单片机指令的可视化仿真系统,该仿真系统完全独立于单片机开发装置。
1软件移植概述
1.1软件移植方法
计算机系统层次模型[1]说明了各层次之间的关系及程序的执行情况。指令在计算机中执行的过程,实际上是指令由系统的高层逐级向低层转换的过程,从应用语言级直到微程序语言级,最后产生各种控制命令,驱动计算机的硬件完成指令功能。高层语言转换为低层语言的实现方法有翻译法和解释法:翻译法是将高层程序变换成低一层等效程序,其处理流程可描述为
while(excutingFlag)
{取指令;
分析指令;
转换成本层指令并保存;
}
执行转换后的指令;
上述流程中变量excutingFlag为执行程序是否结束标志,其值为0表示程序结束。翻译法又分为动态翻译和静态翻译。动态翻译在程序运行过程中,将被仿真的指令逐条转换成仿真程序代码;静态翻译是代一次将所有被仿真的程序转换为仿真代码后执行。解释法是低层机器仿真高层机器级语句或指令,即对高层机器级语言进行解释并执行。其处理流程可描述为
while(excutingFlag)
{取读指令;
分析指令;
解释执行;
}
翻译法速度快,但编程和调试困难;解释法易实现和调试,但速度慢。异构机之间的软件移植实际上也可以看成是将一台机器上所描述的语言在另一台机器上从高层向低层转换的过程。要实现异构机之间的软件移植,可以采用模拟和仿真两种方法[1]。模拟就是用一台机器(宿主机)的机器语言解释另一台机器(虚拟机)的指令系统来实现软件移植方法。但是这种方法运行速度显著降低、实时性差、编写程序困难。仿真是用微程序(宿主机)直接解释另一种机器(目标机)指令系统的方法。这种方法速度快,但微程序机器结构依赖于传统机器级结构,开发人员需要了解微程序机器的逻辑结构,当两种机器结构差别较大时很难仿真。
1.2软件移植步骤
在实际应用中,为了解决异构计算机之间软件移植问题,可以根据设计人员的需要开发指令仿真系统。指令仿真系统开发的一般步骤为
(1)分析仿真计算机和被仿真计算机的系统结构、指令系统、指令功能和指令结构;
(2)需求分析,编写程序模块和各模块流程图;
(3)选择合适的编程语言并编写程序;
(4)程序调试和优化;
2数据结构描述
数据结构描述关系到程序运行效率。在实际应用中,我们设计的仿真系统主要解决在IBM-PC机上执行由MCS51系列单片机指令系统所编写的汇编源程序,在分析MCS51单片机内部结构[2]的基础上,根据C语言的特点,同时兼顾程序运行的效率,合理地描述了系统设计所需的数据结构。
2.1程序存储器结构
MCS51内部虽然只有4kB的程序存储器,但在实际应用中可以在外部扩展至64kB,其内部有一个16位的程序计数器PC可寻址64kB以访问程序存储器。根据单片机指令结构[2]及C语言的数据类型关系,并考虑到程序仿真时并不会用到所有的存储单元,因此采用链式存储结构。程序存储器的数据结构描述如下:
typedefstructprogMEM
{charopCode;
unsignedlabel;
//该条指令如果有标号,则存放其地址
charopNum1;
charopNum2;
charopNum3;
pMEMrecAddr;
//存放当前指令的地址
pMEMnextIs;
//指向下一条指令的地址
}MemData,*pMEM;
pMEMPC;
在结构体中,几个字符型变量分别用于存放指令的操作码和操作数,并用结构体指针变量存放当前指令及下一条指令的地址。仿真系统将单片机源程序翻译成目标代码放在程序存储器(结构体)中,通过结构体类型的指针变量可以访问程序存储器中的指令。
2.2数据存储器结构
MCS51将工作寄存器、端口和数据存储器统一编址,存储空间为256B。堆栈区设在30H~7FH,由堆栈指针SP指向栈顶。内部RAM,除了工作寄存器、位标志、堆栈以外的单元,其余都可以当一般数据寄存器使用。如果内部数据存储器不够用,可以外接数据存储器,扩展至64kB。内部数据存储器在程序调试时需经常查看单元内容,且数量不大,因此将内部数据存储器定义为数组,堆栈指针定义为整型,并初始化为30H。
chardataRAM[256];
intramSP=0x30;
数据存储器单元的地址和数组的下标对应,这样在程序调试时,如果要查看内部数据存储器的内容,只要查看数据相应元素的值即可。另外定义一个结构体类型,模拟外部扩展的数据存储器,结构体定义如下:
typedefexDataRAM
{chardata;
unsignedaddrRAM;
//存放存储单元的地址,用于查询
exRAMptexDataP;
}RAMdata,*exRAMpt;
如果用到外部数据存储器,则将数据存在动态链式存储结构中,由于仿真程序运行时使用本机的存储器,因此其地址与仿真的单片机的地址不同,用一个变量addrRAM存放数据存储器的地址,以便于地址单元内的数据查询。
3软件移植的可视化仿真
软件移植可视化仿真系统,不仅要完成汇编指令的功能,而且应该根据要求查询程序执行后各寄存器的内容、端口的状态和运行结果。在系统开发过程中,我们详细分析了单片机指令格式[2]和计算机执行指令的过程[3],并根据仿真的速度要求,通过比较各语言的特点,选用VisualC++语言和80x86汇编语言,采用C语言环境下的在线汇编技术,用解释法实现可视化指令仿真系统。
3.1软件移植过程
解释法完成异构机指令仿真,需要对源程序中的每一条指令执行如下操作:
step1对指令从右向左扫描,如果有注释,则去掉注释;
setp2对指令从左向右扫描,如果有标号,则去掉标号,并记录标号所在位置;
step3将无标号和注释的指令从左向右逐步分离出操作码和操作数;
step4保存操作码和操作数;
step5分析操作码的功能并执行该指令。重复执行以上步骤直到程序结束,对分离出的操作码和操作数存入结构体progMEM定义的变量中。实现这一过程的函数结构如下:
pMEMStringSplit(char*IstructionString)
{IsCode_Num=newMemData;
⋯
if(scan_char==’;’)
{去除分号后的内容;}
if(scan_char==’:’)
{保存该指令所在单元地址;}
if(scan_char==’’)
{保存空格前的字符串;}
//得到的第一个字符串为操作码
⋯
return(IsCode)
}
该函数入口参数为指令字符串,返回指向保存该指令的结构体变量的指针。生成目标代码和执行指令的过程可以用switch语句或事先设计函数跳转表实现[4],本文采用switch语句实现,实现函数结构如下:
voidGetCode(pMEMinCode)
{⋯
switch(opCode)
{casecode1:excuCode1();break;
casecode2:excuCode2();break;
⋯
casecodeN:excuCodeN();break;
}
⋯
}
以上代码中excuCodeN的入口参数为指令的操作码和相应的操作数。
3.2可视化仿真的实现
可视化仿真系统应该提供一个集成开发环境,在此环境下可以编辑新的汇编程序和打开已经存在的源程序,并能将用被仿真计算机语言所编写的源程序汇编(编译或解释)成IBM-PC所能识别的代码及执行所需的操作,根据需要查询相应存储器单元的内容和端口的状态并显示查询结果。本系统在实现集成开发环境时,设计一个文本窗口,在窗口内输入的每条指令占用一行,程序输入后,选择工具菜单中的“执行”命令,则对窗口内的指令逐行扫描,完成对程序的解释执行。程序执行分单步执行和连续执行,如果是单步执行,则执行一条指令后显示相应存储单元或寄存器的内容。连续执行,则在执行完所有的指令后,弹出一个对话窗口,根据实际,可以查看所有数据存储器和特殊功能寄存器的内容,或者输入要查看的寄存器或内存单元的地址,显示相应单元内容,结果显示采用十进制或二进制。对于端口状态,显示数据为二进制形式。结果的可视化查询对于存储器和寄存器采用不同的技术,为每一个寄存器设置一个文本框,用以显示对应寄存器的内容,而所有程序中涉及到的存储单元的内容显示在同一个文本窗口中。
4结束语
本文介绍的可视化仿真系统的开发技术,使用图形用户界面(GUI),实验结果表明,该方法显示直观、结果查询方便,而且应用VC环境下在线汇编技术,编写的程序代码占用系统资源少,又能保证系统运行效率。虽然本文以IBM-PC和单片机作为应用实例,但是详细分析其它异构计算机的体系结构和指令功能,使用本文提出的软件移植的可视化仿真技术,不仅可以解决各种系统开发中的难题,而且可以解决各种异构计算机之间的软件兼容性和移植性问题。
参考文献
1张吉锋,徐炜民,严允中.计算机系统结构.北京:电子工业出版社,1997
2徐君毅,张友德,余宝洪等.单片微型计算机原理与应用.上海:上海科学技术出版社,1990
(1)计算机软件技术有助于人才测评体系的完善。
运用计算机软件技术进行相关培训的信息管理,能够科学整理相应的信息材料,方便人才信息整合和利用。在人才测评的工作中,其极大地方便了相关信息的搜索与使用。进而能够有效地建立符合企业自身特征的人才评测体系,完善考核制度,提高运作效率。
(2)计算机软件技术有助于培训信息管理的存储。
当前,许多企业在对其员工进行数次培训后,相关的培训信息就会出现一定的缺漏。在此,利用计算机软件技术进行培训信息的存储,能够有效地避免此类问题。其不仅能够及时地保存相关的培训数据,而且方便企业的人才培训档案的查找与管理。以上都是当今人力资源开发的关键。有效地掌握人才信息和资料,已经成为当今企业培训的重要内容。企业对员工培训之后,应当及时地将相关培训资料加以保存,并建立相应的资料档案,方便以后的测评工作。与此同时,企业还要利用先进的计算机软件技术,加强对员工资料的管理。
2运用计算机软件技术进行信息管理的内容与重点
(1)管理信息的采集与录入。
信息的输入工作,其重点在于对培训信息进行联网输入。主要包括基本信息和培训信息两个方面的输入。培训信息输入主要包括:员工工号、培训单位,培训时间、内容、考核成绩和证书编号等。将以上内容通过网络传输给相应的服务器,或拷贝进相关的信息系统,再由具体人员进行必要地整合,进而运用计算机软件技术进行内容的输入。基本信息输入工作主要包含有工号、姓名、性别、籍贯、出生年月和身份证号等。工作基本信息,例如工号、岗位名称、职务、编制、岗位性质和在聘情况等。其中还包含有本人的学历和获奖情况,即毕业院校、专业、学历、荣誉及其获取日期等。
(2)信息管理系统的主要功能。
方便查询。培训信息系统能够极大程度上方便企业对员工基本情况的查询。运用该系统进行检索,能够快速高效地搜索到相应人员的信息资料,极大地降低了企业信息成本,提供了企业的工作效率。过去的管理都使用纸张档案管理,不仅加大了管理时间消耗成本,从资源角度来看,也不利于整个社会的可持续发展,所以,使用信息系统管理,益处多多。
(3)注重信息库的保护。
在信息海量化的同时,诸多电脑病毒也以多种方式隐藏于信息之中,从而威胁到信息库的安全。假若病毒乘虚而入,则会造成大量信息的泄露与丢失,甚至会造成系统崩溃。采取行之有效的保护措施,加强对重要信息的保护,不仅要使用最新的防毒软件加以保护,而且要对有关信息进行保存与备份,进而建立起安全、完善的员工培训信息库管理体系。
(4)注意管理权限的设置。
1 关于计算机软件测试的介绍
1.1 软件测试的概念
软件测试是指在软件运行之前,对软件的产品介绍和代码进行审核,从而保障软件的正常运行。软件测试不仅代表软件系统出现问题的可能性,同时还表示软件能够完成预定功能的程度,这两部分对于软件测试都有重要的意义。
1.2 软件测试的特点
1.2.1软件测试的动态性
软件测试是在规定输入值的情况下运行的,是一种动态的检测软件的运行状态的过程。
1.2.2软件测试的有限性
在对软件进行测试的过程中,测试的次数是有限的,不可能无限制的测试下去,同时,整个测试过程还要具有可管理性,即在测试时需要平衡测试需求与测试资源之间的关系。
1.2.3软件测试的预测性
进行软件测试之前,应该判断测试的结果是否妥当,常常采用预示程序来预测运行的可能结果,但预测程序也是软件测试技术的一大难点。
2 软件测试技术的过程分析
2.1软件测试的方案
在进行软件测试之前,都需要制定一个合适有效的软件测试方案,以确定软件测试的目的和过程,为软件测试的完成提供一个清晰有效的目标。
2.2 软件测试的开发设计
软件测试设计就是在软件开发的过程中进行的软件质量测试工作,在测试时需要提供规范的应用说明、程序设计情况,同时,软件测试设计在软件测试过程中有着重要的作用。测试设计的基本步骤为:首先利用先进的技术手段设计分析样式,然后讨论测试结果,并做成有效的测试方案,最后确定每一项测试任务都完成了,从而保障测试结果的有效性。
2.3 软件测试的准备
在测试方案开始前,需要先进行测试准备,列举测试方案中所需要的重点问题,这些问题常常有测试数据集、驱动程序和实际执行测试所需的软件等,同时需要为整个测试过程寻找合适的测试环境和测试工具。
2.4 软件测试的实施
参照之前设计的软件测试方案,利用测试用例对软件测试的项目进行全面有效的测试,并将测试情况与实际运行情况对比起来研究,从而判断测试是否成功,并进行下一步测试工序。在测试的过程中对软件的质量问题进行记录,并进行有效的修改,修改之后再按照之前的测试步骤重新进行测试,观察问题是否会再次出现,从而确保软件的质量。同时,应制定合适的测试计划,定期将软件运行测试,以保障之前测试的问题不会在出现。每完成一个测试部分,比较整个运行结果与测试方案的不同之处,并针对不同之处进行有效的调整。
2.5 软件测试的报告
将软件测试阶段得到的运行结果拿来观察和处理,观察测试观点是否完整,确认方法是否有效,并依次评定软件测试过程中的测试用例和软件质量等级,并进行测试报告总结。
3 软件工程中存在的测试问题
软件工程出现后,软件的运行质量越来越受到人们的关注,软件测试技术也开始慢慢发展,但在软件工程中常常出现一些测试问题,导致软件的质量受到影响。下面笔者就软件工程中常见的测试问题进行阐述。
(1)目前很多软件开发公司没有比较正规的软件开发手段,没有产品说明书,因此,在进行软件测试时需要先利用试探性测试技术。而利用试探性测试技术需要先了解软件的特性,并对软件的运行情况进行有效的记录,全面描述软件的功能特点,然后应用常用的几种软件测试技术来找出软件的质量问题。但在这样的情况下,一些错误、非法的没有利用价值的数据容易被作为输入数据,这样测试软件的输出结果存在较大问题,对于软件测试的进行有较大的影响。
(2)在进行软件测试时,首先要对软件的逻辑流程进行了解,描述软件的详细状态,但在一些规模很大、结构复杂的软件测试中,了解软件的运行情况是很困难的,这时,就需要降低软件测试的状态以及数量。但是在测试中,必须对每种状态都进行测试,但在实际测试中往往忽略这一问题,这将会大大影响到软件测试的效果,并产生一定的后果。
4 计算机软件测试的常用技术
软件测试技术对于计算机软件行业的发展有重要的促进意义,关系到计算机软件的运行质量,同时,还能方便人们的日常生活。计算机软件测试主要有两种手段,即白盒测试和黑盒测试,下文笔者将对此进行阐述。
4.1 白盒测试
白盒测试即逻辑驱动测试或结构测试,该方法是对系统的内部构造进行测试,检测整个应用软件内部是否正常运行的手段,在测试中,把待测系统当作一开放的盒子,通过对系统的内部程序结构进行测试来检测它的逻辑路径,从而根据在不同区域的检测信息来测试软件的实际运行情况是否与预期结果相同。目前,采用白盒测试技术常用的方法有:基本路径测试法、逻辑覆盖法、静态结构分析法和代码检查法等。与其他的软件测试技术相比,白盒测试技术需要充分了解到系统的内部构造,以便对系统的全部逻辑路径进行检测。在应用这种测试技术时,首先要检查系统的内部构造,并从整个应用的逻辑来
统计检测数据。另外,白盒测试技术对于软件测试人员快速发现软件运行异常情况,提高软件的运行效率有重要的现实意义。 4.2 黑盒测试
黑盒测试即功能测试,该方法是对软件产品的功能进行测试,从而观察软件能否正常运行的手段,在测试中,把测试系统看成封闭的黑盒子,不需要考虑整个软件系统的内部特征,只需要依靠传输数据来得出检测结果。黑盒测试主要对软件的界面和功能进行测试,仅仅只需要考虑系统的外部结构,从而达到有效进行软件测试的目的。同时,黑盒测试主要测试软件的功能,常常用于检测这样几种错误:运行界面、程序初始化和终止、数据库的访问情况、软件性能和功能等错误。在黑盒测试之前,需要采取合适有效的测试方案,以保障软件测试有计划的进行。相比其他的软件测试技术,黑盒测试操作方便,设计代码也很简单,能够从用户的角度出发去解决问题,并实现软件的功能。
1.1教学目标定位不准确在我国的许多高职院校中出现了一个极为严重的教学怪象,许多高职院校的计算机教学将计算机的理论知识以及计算机开发工具的使用作为教学目标,而不重视对高职计算机专业学生的实际操作能力以及工作相关能力的培养。高职院校的学生应该是为毕业后的工作而学习的,而不是如许多本科学生般为深造而学习的,高职院校这样的目标定位会导致学生毕业时还不了解工作所需要的基本要求,使学生的就业变得无比艰难。
1.2教学课程设置不合理在许多高职院校中,对于计算机相关专业的教学课程设置相当不合理,与企业需求相悖。高职计算机软件技术人才所需要的基本能力就是在毕业后能够快速地融入工作环境,企业所需要的高职计算机软件技术人才是工作能力强的应用型人才。然而,许多高职院校对于计算机课程的设置过于注重理论体系的完整,而缺少针对工作需求的特色课程,导致毕业生理论知识丰富却没有必需的工作技能。
1.3教师教学水平较低随着计算机相关专业的热门,高职院校逐步扩招了许多计算机相关的教师,许多教师的教学水平却达不到专业要求。在高职院校计算机相关专业的教师队伍中,有许多教师是毕业后直接参加教学工作的,这些教师一是教学经验不够丰富,无法施行有效的教学,二是自身也没有在企业中的工作经历,无法培养学生的工作能力,从而导致培养出来的学生素质较低,无法达到企业的要求。
2高职计算机软件技术人才培养模式的改进策略
2.1明确教学目标在高职计算机软件技术人才培养模式中,必须要明确科学的教学目标。对于高职院校的计算机软件技术教学来说,教学目标应该是培养学生的实际应用能力、标准化执行能力等为就业服务的能力,而不是计算机理论系统的完整性以及软件开发工具的使用规范。因此,高职院校的计算机软件技术教学应该以培养学生工作能力为主要教学目标,以传授计算机理论知识为次要教学目标,使高职毕业生能找到计算机相关的工作,就业后能快速的融入工作环境。
2.2设置实用的教学课程设置实用的教学课程主要可以从两个方面出发:第一,高职院校可以对信息科技相关企业的需求进行调查,根据调查结果选定一些针对企业以及就业的特色教材,加入计算机软件技术相关专业的教学课程之中,使学生能学到最为实用、最符合企业要求的知识,保障毕业生的就业率;第二,高职院校可以邀请信息科技相关企业的资深工作者以及教学经验丰富的计算机教师,根据目前企业的需求以及学生的大致情况来设立合适的教学课程,将最新的计算机相关知识以及应用技巧传授给高职计算机软件技术相关专业的学生。除此之外,高职院校还可以考虑与信息科技相关企业进行合作,让学生在寒暑假时能进入企业进行实训,加强学生的工作意识。
2.3针对教师进行在职培训前文已经讲到许多计算机教师教学经验不够丰富,无法对学生进行有效的、全面的教学,因此,高职院校应该重视对教师的相关培训。对于那些没有信息科技相关企业工作经验的教师,高职院校应该为这些教师提供一些短期的在职培训,即将教师分配到合作企业,让这些教师体会到计算机工作中最需要的部分,并将自己的经验传授给学生。对于那些教学经验丰富但年纪较长的教师,高职院校应该为其提供免费的新知识培训,使这些教师能学到最新的计算机软件技术,并将新技术加入计算机软件技术教学之中,使学生所学到的计算机知识跟得上时代的脚步。
3总结
关键词:需求分析用户方干系人项目经理需求分析员
众观国内计算机软件业的发展,除远不如欧美等西方发达国家外,与人均GDP不及我国的印度相比也相距甚远,软件业的劣势正严重制约着我国IT业的发展。我国软件业的劣势表现在自主开发的成熟软件不多,而开发的大量软件工程项目(如ERP等)存在缺陷或完全开发失败。目前,国家正在加大对软件工程的研究和对软件工程人才的培养。根据资料显示,属于需求分析造成软件设计的错误和缺陷约占软件失败的6400,而属于程序代码的错误仅占软件失败的360a,数据表明需求分析是提高软件质量的基础也是决定一个软件项目成败的关键。通过对软件项目管理知识的系统学习并结合近年来自己参与部分软件项目实施的经验,介绍在需求分析研究中探索出的一些有效措施。
1尽快熟悉项目用户方干系人全貌
项目用户方干系人,指所有可能受到项目结果重大影响的人,即项目的风险承担者,他可能是项目的受益者,也可能是项目的受害者。因此,应当从项目的启动开始,需求分析员及其项目成员就要分清项目用户方干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。
有些项目在做需求调查时,由于受进度要求等客观因素影响,需求分析员与建设单位的技术部门交流较多,向业务管理部门和实际使用者调查不够深入,造成软件试用后不得不再对需求做较大调整,“从头再来”的部分比例很高,大大超过进度要求时间。因此,熟悉项目用户方干系人全貌是进行需求调查的第一步,也是需求调查的基础。在定制开发项目的项目用户方干系人中,最重要的是建设单位中的人事组织、业务关系。最好是能够用组织结构图画出相关单位的组织结构;还应当在相关单位组织结构图基础上画出全体项目用户方干系人结构图,以便更好更全面地进行需求调研分析;用责任矩阵确定各部分的调研对象;建立调研对象通讯录以保证调研及分析期间及时的沟通。
2采取正确的需求获取方法
软件开发项目的目的就是要实现项目用户方的需求,项目用户方的需求包含明确的和隐含的,也可以分为NEED,WANT,WISH等不同的层次。如果对项目所有用户方干系人没有进行足够的沟通和影响,使其尽可能地参与项目,则会出现客户方相关责任人不明确或对范围和需求责任心不强,提出的需求具有随意性,项目前期对需求的确认不够积极,或者是多个用户代表各说各话、昨是今非,项目后期需求变化随意等现象,这就会造成项目范围的蔓延,进度的拖延,成本的扩大,甚至项目的完全失败。
各种用户对系统具有不同的要求,如一个没有经验的用户关心系统是否简单易用,对于高级用户则关心产品的易用性和高效性。因而需要对用户进行分类,每一个用户类将有自己的一系列功能和非功能要求。在项目中,要尽早为产品确定并描述不同的用户类,这样就能从每一个重要的用户类代表中获取不同的需求。
项目需求具有双面性(用户与开发商)和多面性(项目中各干系人),因此,项目经理和系统集成者应了解用户干系人需求,用户干系人也应了解技术方面的需求,两者缺一不可。正确的需求获取需要了解需求的来源、用户的分类、用户的代表性、用户需求谁说了算数等因素。开发人员和项目经理要有足够的耐心聆听用户的讲述,要足够详细地了解每一个细节。项目管理者要善于将需求分类、归类,善于将需求文档化,并有所查询标记。
3可视化需求调研,引导各种客户挖掘他们的需求
有的客户因为自己缺乏计算机知识,无法提出完整准确、隐含的或潜在的需求。若这些需求不能满足将导致用户的不满。因此需求调研分析人员应善于想用户所想,不但要确定明确的需求,还要善于用启发的方式与用户探讨隐含的或潜在的需求,并结合各种调研分析技术挖掘超出客户期望的令人兴奋的需求。这就要求需求调研分析员要尽快完整地熟悉相关业务,从而能够站在用户的立场看待软件需求,想用户所想,做好业务与计算机之间的桥梁。利用可视化需求调研的方法可以很好地启发用户深人挖掘潜在的需求。可视化需求调研就是使用图表等工具来启发引导用户清楚地叙述需求,并且使需求更加全面完善。
对于高层领导,可以提供系统总体框架图;对于业务管理人员,可以用业务流程图来描述新旧系统的业务流程;对于客户中的技术人员,可以用数据流图、实体关系图或UMI中的各种图形对系统进行各种角度的描述;而对于业务管理人员、客户中的技术人员、以及各层次各流程中的用户,画出用户界面图来进行需求挖掘,是个比较有效的沟通方式。
这里特别说明一下用户界面的重要性。用户界面的设计按理来说是软件设计的责任,当然客户自己对界面有特别提出要求的除外。但是,如果把它提前到需求调研时与客户进行讨论,则可以大大改善需求调研的效果。因为这时客户对于将来的系统还没有一个形象上的概念,或者有一个模糊的预想的概念需要表述、验证、明晰化、完善化,以笔者的经验,画出用户界面草图与客户进行讨论,可以大大激发他们提供更为准确全面的需求。原来收集资料,描述业务,说明系统模型到了山穷水尽的时候,这种方法可以达到柳暗花明又一村的效果。
4详细描述各项业务,以便让所有客户确认
尽可能全面详细地调查并且描述原有系统和用户希望将来系统具有的各项业务的流程,并将这些业务流程文档化后与客户进行讨论,对描述错误或不准确不精确的进行修改,最终让客户进行确认。从近年来开发的软件看,对业务处理过程了解的完整性和准确性非常重要。虽然对数据来说都是SIDUT(查增删改传),但具体业务都是分为若干步骤,每个步骤都有其业务名称,同一步骤可能对多个数据集进行不同操作,需要调查了解清楚才能设计出适合用户业务特点和习惯的软件,使开发出来的软件更受欢迎。当然在进行软件概要设计时,要尽量排除业务流程的制约,即把流程中的各项业务节点工作作为独立的对象,充分考虑他们与其他各种业务对象的接口,在流程之间通过业务对象的相互调用实现其业务流程,这样,在业务流程发生有限的变化时,就能够比较方便地修改系统程序而实现新的需求。
对于各项业务的调查可以通过对以下资料的收集整理分析来完成,这些资料来自各种各样的项目用户方干系人:遵循的标准、组织发放的工作手册、作业流程、有关业务的上级通知、有关业务的办事指南、办理业务时需要填写的登记表、各种相关的统计报表及通过其他途径收集的类似系统的介绍、技术资料等等。
5对项目用户方干系人的愿望进行平衡
不同的项目用户方干系人其愿望和追求的目标往往相差甚远,因此对项目用户方干系人的愿望进行平衡可能是非常重要而又相当困难的事情。例如:我曾在参与的某医院计算机管理系统项目中,遇到医院管理层希望能够采集尽可能多的信息项以便对数据进行多种多样的统计分析,同时为了对信息进行有效控制而增加一些审批流程;而门诊、药房等对外办公的基层窗口则因为客流速度的压力希望减少信息项的输人量;甚至有些不良的基层部门由于害怕建立透明度高的信息系统会影响他们的利益而消极地应付,即所谓反需求;而客户的客户(就诊的病人)则希望相关机构能够简化工作流程,加快办事速度,增加诊断情况和就诊费用的透明度;甚至项目组本身因为技术、资源、进度等原因,需要对一些功能进行优先级排序和取舍。虽然不是所有人的需求都是可以满足的,特别是消极的反需求是不能接受的,但他们的需求都是应当考虑全面并进行平衡的。
如果不同的用户方干系人有不一致的需求,那么必须决策出满足哪一类用户方干系人的需求更为重要。了解可能使用产品的客户种类的信息和他们的用法与产品的业务目标的关系如何,将有助于决定哪一个用户类所占份额更大。如果系统分析人员提出的需求与开发者所想要开发的系统发生冲突时,通常由于系统分析人员作为客户的人,市场需求具有更重的分量,但是,系统分析人员不能一味地迁就客户需求。
不同的用户方干系人可能都要求产品按照他们各自的喜好来设计。运用项目的业务目标来决定哪些是你最关心的客户,非核心客户的需求可以安排在下一个版本中开发。当开发者想像的产品与客户需求冲突时,通常应该由客户作出决策,然而,不要陷人“客户总是对的”的陷阱中去,现实中,客户并不总是对的。
6强调实现项目需求的层次递进性
了解该系统或者该项目用户所能够提供的最小的工程费用。当预计经费不能支持时,应当考虑将项目分期实施。在系统上、技术上对用户进行引导性建议,使用户了解集成商所要进行的工作,了解集成商是为了帮助用户实现他的需要、达到用户的目的,而不仅仅是为了赚钱,用户更了解集成商,也更了解自己的系统,有利于以后的项目合作、工程实施和系统维护。
分析用户曾用系统模式、数据结构和库模式,看是否保持、共用、转换,这涉及保护用户投资的问题。根据现在工作业务流情况确定现有的工作模式,还应兼顾将来可能会发生的变化、扩展、新规定,及与同国际接轨可能的带来的变化。考查工程实施环境是否有保证,尤其是网络工程,必须在需求调查时充分了解用户领域的实施环境,当不具有实施环境时,要求进行配套设计和环境改造。
7编写需求文挡和进行需求评审与其他项目小组成员协作完善系统需求
文档资料是集成商重要的财富,贯穿于系统集成和项目开发的整个过程,其中包括法律文档、技术文档、资料文挡。文挡要求完整性、一致性、可修改性、可跟踪性。
1.1全球化软件协作交付
随着全球化的不断加速,全球化软件协作交付模式也是势在必行的。根据Forrester的数据,现在不少开发团队呈现分布式的状态,超过一半的团队游两个以上的开发点,而且随着目前企业合并和收购的形式的家具,新的分布式开发团队也在不断增加。而企业为了使开发能力和支持能力达到24×7的状态,也推动者全球化软件协作交付的不断发展。软件外包市场的不断繁荣发展,软件工程工具的不断进步,不少企业都开始发展软件交付项目,举个简单的例子:不少企业选择在美国完成软件的概念设计,然后将系统架构设计安排到欧洲,而在中国进行软件的编码和测试,在这样一个大环境中,24小时不间断的软件交付和支持服务完全可以实现,减少了对员工的压榨,有大大提高了交付的速度。
1.2社区驱动的软件交付
社区驱动的软件交付是IT文化不断发展的产物,现在的年轻人更倾向于社交导航,通过人和人之间的交流,使他们能够更好地获取信息,从而顺利完成指定的任务。这就使得社区驱动的软件交付应运而生,也同时出现了相应的方法和平台。在这种交付模式中,虽然每个项目都会有一个领导者,但是相对而言,它更强调个体的能力和创造性。由世界上不同国家和地区的技术人员和最终用户共同协作,从而完成项目的交付。他们以公共社区作为协作环境,然后将创新思想通过web来分享,并完成软件的开发和测试,聚集他们的一个重要理由就是对项目的热情和兴趣。
1.3模块化
随着全球化的不断发展,世界经济的竞争也在不断加剧,为了生存,企业需要更多的创新力和业务灵活性,而另一方面,目前IT环境复杂度也不断加剧,企业想要发展就必须面对新的挑战。因此模块化的提出使得企业能够在根本上解决这些问题。模块化实现了不同软件构件和应用的打包,从而使企业更好地使用现有的资源,另一方面,在模块化的指导下,SOA技术应运而生,它通过对现有资源的重新整合,将各种服务实现组件化,从而使得新业务能够快速上位,实现了企业的业务灵活性要求。
二、结束语
1 计算机软件工程管理的概述
计算机软件工程是个大范围的概念,包含的范围非常广泛。首先在计算机软件工程管理中要涉及到软件开发人员和管理人员。在计算机软件工程管理过程中,首先要对这些人进行管理。这些人员的能力水平,擅长的领域都不同,因此管理者应当针对不同的工作将这些人进行分组管理,让不同的人分管不同的工作,既能够方便管理者进行统筹管理工作,又能够充分发挥工作人员的能力,提高工作效率。其次,计算机软件管理还要关注软件开发的质量。要保证计算机软件的质量,就要对整个开发和管理的全过程进行管理,包括数据、设备等。除此之外,计算机软件工程的管理还包括对风险的管理。计算机软件工程存在着较大的风险,既有软件开发失败的风险,又包含信息泄露的风险。管理者应当提升风险意识,加强对计算机软件风险的管理和控制,最大限度的降低风险。
2 计算机软件工程管理中存在的问题
在计算机软件工程管理中管理的范围广,项目管理水平仍不成熟,管理者尚未意识到自动化管理对软件工程管理的意义。目前,在计算机软件工程管理方面存在的以下问题。
2.1 软件管理数据存在问题
计算机软件的开发和运行,离不开对数据的有效管理和运用。因此,管理者应当加强对软件数据管理的重视程度,加强对数据采集和存贮,数据存储过程中要加强风险意识,避免数据丢失、被盗或被病毒侵入。在不采用自动化的前提下,计算机软件工程的数据需要进行人工操作和管理,人工操作和管理不可避免地會存在精确度不高,易出错,难以校验等缺点。
2.2 对环境设备的管理不足
计算机软件工程的环境设备包含几个方面。首先,计算机软件工程开发需要大量计算机设备,这些设备的管理过程中存在着一定的问题,如计算机硬件的防尘、防潮不到位,计算机工作环境易受周围环境的影响,要保持干净除尘等,但实际工作中由于管理存在着一定的问题,工作人员意识度不高,导致计算机运行环境受到灰尘、烟雾、磁场等的影响。其次,在环境设备管理方面,计算机软件工程开发需要功能强大的计算机,能够保证计算机软件正常开发,但在实际工作中,常常会出现计算机兼容性差,运行速度慢,严重影响软件工程的开发效率。
2.3 软件测试管理不足
计算机软件工程是一项浩大的工程,软件测试是整个工程项目中一个十分重要的部分。因此,软件测试管理工作就显得尤为重要。但是目前有很多工作人员不重视软件的测试工作,或者没有及时进行测试,忽略了软件中存在的漏洞,给软件的使用和安全性造成了重大影响。
2.4 安全管理不足
计算机软件工程开发中,软件的安全性问题影响着整个工程项目的顺利开展。管理者应当加强安全意识,并加强对员工安全意识的培养,设置安全性管理策略。但是仍有一些员工的安全管理意识不够,没有严格执行企业的安全管理要求,导致信息泄露或者被病毒侵入,给企业造成严重的损失。
2.5 需求与实际不符
开发计算机软件是为了满足客户的需求,但是实际工作当中,软件开发人员更注重业务数据、测试及开发活动,缺乏对项目的整体规划和管理,需求分析不足,与客户的沟通协商缺乏,导致开发的软件与客户的需求不符。
3 计算机软件工程的自动化管理措施
为解决以上的计算机软件工程管理中存在的问题,提升管理水平,可以将自动化理念实施到计算机软件工程管理当中。
3.1 对软件数据的自动化管理
用自动化方式对软件工程项目进行管理,需要工作人员对自动化设备进行定期检测,以防设备出错,并对软件数据进行管理,加强对软件数据的校验,加强对软件的调试工作,判定运行是否会出错,若有错误出现要及时进行修改处理。其次,在数据的自动化管理方面也要重视数据的备份,防止数据丢失、被盗、病毒侵入等。一般情况下可以利用计算机、硬盘等设备进行存储,也可以采用云储存进行备份,云储存与传统的储存方式相比较有很多好处,如储存量大、不易丢失、易恢复等特点,可以有效保存数据,提高备份的安全性。
3.2 对环境设备的自动化管理
在计算机工程自动化管理的过程中,还有一项重要内容,就是对计算机软件的运行设备进行管理。计算机设备的正常工作对环境有一定的要求,要保持环境干燥、防止烟雾和灰尘对计算机磁场造成一定程度的影响。噪音对计算机的工作也有一定的影响,因此也要注意防止噪音对计算机环境的影响,注意隔音和消音。计算机软件对兼容性要求也很高,因此,当计算机软件工程需要用到第三方设备时也要先检测兼容性,保证软件能够在第三方品台正常运行,针对兼容性的问题,也要加强监督,实施监控数据,一旦出现问题,可及时修改。工作人员要定期对计算机硬件环境进行检测和维护,定期检测。
3.3 对软件测试的管理
软件测试管理是计算机软件工程的核心内容之一,对确保计算机正常运行有着重要意义。对软件进行测试是为了及时发现漏洞并进行纠正。采用自动化技术对软件进行测试可以提高检测效率,大大节约人力成本,对系统进行自动检测的修复,可以提高软件工程的效率和效果。利用自动化检测可以及时发现问题,随时掌握整个系统的运行状态,能够彰显出自动化管理的优势。计算机自动化测试是通过预先设定好检测程序,对需要检测的系统实施完成的测试,可以极大地减少人为检测的不足,程序还可以准确跟踪和定位检测的进程,可以准确定位系统的问题所在,有利于采取针对性的办法解决问题。
3.4 对软件安全的自动化管理
企业的计算机软件是企业的核心机密,必须保证其安全性。这里的安全性一方面是指信息被外界侵入;另一方面是指因管理不善,信息出现丢失、毁损、泄露等等情况。对此,企业应当要求相关工作人员遵守保密要求,不能私自将信息带出企业。对于企业存储的数据和工作过程中运行的数据,企业也需要加强管理,可以配置专门的人员进行安全管理,也可以利用计算机设置密码进行保护,对密码进行自动化管理,定期检测。
3.5 要制定清晰的计划,关注用户的需求
在软件开发以前,首先需要进行设置严密的计划,对用户的需求做可行性分析的,分析需求状况,根据需求进行决策。在计划阶段,要考虑项目的计划性、动态性。经济性和相关性。
4 计算机软件工程自动化管理的意义
将自动化技术运用到计算机软件工程项目的管理中对软件工程的开发维护、软件开发人员的管理、软件的质量以及软件开发的效率和效果,甚至是人们的生产和生活都有着深远的影响,有效提升管理效率,改善管理理念。具体意义阐述如下。
4.1 提高软件工程管理的效率和效果
将自动化引入软件工程管理当中,利用自动化技术对软件工程进行管理,有利于提高管理的效率。通过自动化技术,自动化设备可以按照人為输入的指令进行操作,完成需要管理的任务。自动化管理与人工管理相比,管理的任务量少,速度快,准确度高,使得软件工程项目管理效率更高,效果更好。
4.2 方便生活和工作
自动化管理技术将人从简单重复劳动中解放出来,大大改善了生产方式。同时,计算机软件的自动化管理的进一步升级,使得管理技术从生产领域运用到生活领域,极大的方便了人们的生活。
4.3 推动项目管理技术的发展
将自动化运用到计算机软件工程开发的项目管理,是自动化技术的一个新尝试,使得项目管理水平上升了一个新台阶,促进计算机软件更好地开发利用,为管理技术提供了一个新理念。