时间:2022-04-06 04:59:10
序论:在您撰写计算机软件论文时,参考他人的优秀作品可以开阔视野,小编为您整理的7篇范文,希望这些建议能够激发您的创作热情,引导您走向新的创作高度。
软件运行出现性能方面的故障也是不可靠性问题之一。软件产生运行故障特指客户在使用软件时,忽然出现故障问题,致使软件产生了不科学的反馈。例如软件忽然跳出或者造成系统死机。当前市场上几乎所有的软件都不可避免地存在运行问题。拿微软最著名的WORD软件来讲,用户在应用软件过程中,会发生软件没有任何征兆地跳出的情况。假使客户事前没有保存文档,就会导致之前编辑的内容统统作废。这时,软件的BUG就会给客户使用软件造成非常大的麻烦。此外,一些软件存在着安全漏洞,伴随着科学技术的不断发展,计算机网络化成为未来发展的走向,用户通常会在网络环境中应用计算机软件。但是用户发现部分软件的性能没有问题,安全方面却存在着巨大的纰漏,一旦使用这些存在安全漏洞的软件就会加大本地计算机的安全风险。我国名企生产的QQ软件,就是由于出现安全漏洞才使用户密码经常被人盗走,给用户带来非常大的麻烦。
2软件不可靠的解决对策
2.1做好软件的评估审核
在实施软件技术发展研究的过程中,需要随时做好软件的审核评估工作,以减少错误现象的发生概率。为保障软件技术发展各个环节的标准一致,我们需要把软件开发设计依据程序化实施,规避出现开发环节的跳跃性问题。能够在软件开发过程当中要及时进行对软件的审核评估,这样可以随时察觉开发过程中出现的问题。有关的审核人员需要由管理、设计及保障人员共同组成,也包括不同岗位、各个领域的专家,以确保审核的专业水准。软件的评估审核主要课题是考察设计人员交付的软件文档是否与之前文档的准则与要求相统一,而且需要在考核后通过书面报告的形式得出相关的处理方案和评估结论,而质量保障工作人员则能够根据审核的意见与结论进行具体的操作。通过这一系列环节的任务能够有效降低软件开发的不可靠风险,以提升安全可靠性。另外,我们必须建立系统的质量监控体系,完善管理机制,不应该一味地实施软件开发人员的编码、独立设计与单独测试,规避增加技术管理缺陷的发生概率。
2.2功能设计合理化
对计算机软件进行合理化功能设计是非常有必要的。应当知晓软件设计出来是要让客户使用的,因此,我们必须意识到客户是使用的主要群体,而且软件的功能设计必须符合客户的普遍需要,这样该软件的开发才有意义。假使客户要求的功能没有,用户则会以为软件设计技术存在着重大的失误。所以,软件在开发之前,程序员不能总是以满足自己的喜好来实施设计,必须要按照客户的需求合理取舍,实现软件设计与用户需求的平衡。另一方面,使用适当的语言设计软件程序过程中,如若选择的语言设计相对比较合适,就会取得事半功倍的效果,假如使用的语言设计不合适,那么该语言就很有可能不符合软件的需求。譬如你要设计一款管理学校图书馆的应用软件,就必须依据图书馆数据量的大小挑选最能符合软件功能需求的数据库软件,再选择兼容性比较强的接口软件。
3结语
嵌入式实时软件和生活的联系十分紧密,在日常生活中,许多通信设备和电器系统都是有嵌入式系统组成的,例如数码相机、手机、数字电视等都是嵌入式系统。由嵌入式系统组成的计算机,无论是键盘、硬盘,还是鼠标、耳机,都比普通计算机的功能良好。嵌入式实时软件是一个运作平台不能独立进行软件开发,需要依靠其他硬件和软件,嵌入式实时软件具有良好的实时控制能力,在计算机软件设计中有十分广阔的应用前景。嵌入式实时软件在计算机软件设计中,能设计的系统有动态分配、缓存机制、预测指令等,嵌入式实时软件能有效的提高软件设计产品的质量和软件的可靠性。在计算机软件设计中,嵌入式实时软件最重要的部分是嵌入式微处理器,嵌入式实时软件可以用于软件和硬件同步设计,嵌入式实时软件在计算机软件设计中能支持多任务的实时,能在短时间内中断多任务,具有良好的保护功能,能进行软件检测和修复。嵌入式实时软件在计算机软件设计中有极其重要的作用。
2嵌入式实时软件在计算机软件设计中的应用方法
2.1划分各程序的职责
为保证软件系统的实时,在进行嵌入式实时关键设计时,要划分各程序的职责,避免软件和硬件出现脱离现象,在计算机软件设计过程中,要根据不同的程序的功能在软件中安排特定的位置,在系统中使用优先有序的分配模式,从而减少系统对任务的反应时间。
2.2嵌入式实时软件的控制
在进行计算机软件设计时,嵌入式软件的要求会更高,在软件运行过程中,如果出现时间偏差,就可能对整个软件造成严重的影响,因此,在进行嵌入式实时软件设计时,要严格的控制时间,创建一个良好的嵌入式实时软件运行环境,确保计算机软件安全、稳定的运行。3.3嵌入式实时软件开发的作用在进行嵌入式实时软件设计过程中,需要和系统的软件和硬件紧密的结合起来,将实时处理技术融入软件开发中,利用实时机制进行事件处理,可以实现CORBA及相关模型,还可以在远程调控中增加多种服务。在计算机软件面向组件的设计过程中,嵌入式实时软件能有效的增强软件的独立性和重用性,
3软件设计实例
在本次计算机嵌入式实时软件设计中,选择能提高嵌入式实时系统的响应时间,可以同步控制的AT91RM9200微处理器。软件设计使用到的系统有C++语言、数字信号处理器、微机保护系统、IO设备等。本次计算机软件设计是在软件和硬件的系统同时进行设计开发的。在进行计算机嵌入式实时软件设计过程中,要先分析的系统的需求,然后进行计算机软件设计、软件测试固化、代码生成等步骤。在进行计算机嵌入式实时软件设计时,将软件系统的功能分成多个模块,将软件设计开发模块化,从而将系统中不同任务区分开来,建立硬件和软件交互系统,从而提高软件设计的稳定性。本次计算机嵌入式实时软件的设计,中断驱动方式采用可以提高嵌入式系统实时性的事件驱动方式,在进行计算机嵌入式系统内部功能设计时,为确保系统内部功能的积极响应,将设计任务周期化。在软件设计过程中,为实现软件内部资源共享,将控制任务转换成图形结构,从而简化设计流程。在设计计算机嵌入式实时软件结构时,要控制好软件和硬件结构的脱离现象,降低硬件对普通计算机软件设计的影响。软件设计过程中将每个任务设计在软件系统中制定的位置中,从而提高系统对任务的响应时间。最后使用C++语言进行嵌入式实时软件编程。
4嵌入式实时软件的应用前景
【论文摘要】计算机软件产业作为一个新兴产业,在互联网经济时代具有巨大的经济增长潜力。在知识经济的今天,社会已经全面进入信息时代,信息与技术产业的发展在计算机软件上表现的尤为突出。计算机软件作为人类创造性的智慧成果,其产权保护问题已经成为了当代知识产权保护的重要内容之一。文章主要通过典型案例深入探究造成计算机软件侵权的多种原因,并针对性地提出预防及保护措施。
一、引言
你的电脑是否曾经提醒过你:您是盗版软件的受害者。但是对此提醒好像大部分的人都不以为然,甚至有的人觉得不仅不是受害者还是受益者。仔细计算一下你的电脑里的操作软件,有多少是盗版,盗版WindowsXP、盗版杀毒软件、盗版MicrosoftOffice……因为你享受了廉价的盗版软件带来的便利。可是你有没有想过自己侵犯了软件企业的权益。
2005年9月,西宁某公司未经北京北大方正电子有限公司许可,在其营业场所内的一台兼容机上安装了盗版的方正软件系统。西宁某厂在其营业场所的激光照排机主控制电脑上安装了方正软件系统,据调查,该软件信息窗口处有使用胶版作业的记录。2006年2月21日,北京北大方正电子有限公司以西宁某公司、西宁某厂的上述行为严重侵犯该公司的着作权为由,向西宁市中级人民法院提讼,请求西宁某公司和某厂停止侵权、赔礼道歉并赔偿经济损失。
QQ的软件着作权是由腾讯控股有限公司所有,然而教师陈寿福对QQ做出的多项改动得到了许多用户的喜爱。这些改动包括拦截正版QQ的广告,但他却为了自己牟利而在珊瑚虫版上捆绑了其他网络公司的一些广告和垃圾信息。腾迅最早在2002年就曾指控陈寿福侵犯其软件着作权,并警告后者停止传播珊瑚虫QQ。而陈寿福也有所行动。他设计出一种非侵入性的软件补丁让自己的程序成为独立的软件,并能够在同一台电脑上与腾迅QQ并列运行。但到了2003年,他又开始对外提供珊瑚虫QQ。到了2006年,面对珊瑚虫QQ受欢迎程度呈有增无减的趋势,腾迅以侵犯其软件着作权为由将陈寿福告上法庭,并索赔人民币50万元(折合6.8万美元)。这场官司以腾迅胜诉告终,法院判陈寿福赔偿腾迅10万元,而后者也服从判决缴纳了赔款。而2007年8月初,腾迅向其总部所在的深圳警方报案,8月16日陈寿福被拘留。腾迅所称,陈寿福侵犯了腾迅的着作权并以此非法牟利。目前,此案还未有定论。
二、计算机软件侵权的原因分析
1、软件登记不被重视
按照我国颁布实施的《计算机软件保护条例》的规定,软件着作权登记采取自愿原则,登记与否不影响其开发完成的软件着作权产生和软件着作权的商业运作。由于登记并不影响实际权利的享有,故很多企业认为软件是否进行登记并不重要。然而,登记最大的作用就是对权利的公示性。而且由于软件着作权程序不同于传统的着作权,其存在方式是以虚拟数据存储于计算机中,易丢失,因此,企业应加强对软件着作权的登记工作,可以减轻在侵权诉讼中的权属举证责任,也可以减少不必要的管理需要,降低企业的运营成本。
一方面,软件登记机关在软件着作权登记的具体工作中,按照我国保护软件知识产权的法律、法规,并参照有关软件技术标准,针对在软件登记申请中的法律关系和技术状态出现的“显而易见”的问题进行必要的审查,努力做到将软件着作权纠纷隐患消除在萌芽状态,以减少软件着作权纠纷;另一方面,企业在遭遇软件着作权侵权的情况下,作为软件着作权的权利人,有举证证明权利所有的义务。在软件着作权没有登记的情况下,企业需要将软件独立研发的原始资料全部以及研发的最初时间等呈现出来才能证明自己系正当权利人。而有时由于时间问题或企业对资料保管上存在缺漏,导致软件开发的原始资料丢失,此时要主张自己是软件着作权人,就比较困难,从而导致侵权诉讼的败诉。而在已经进行了软件着作权登记的情况下,由于登记的公示性,登记记载的着作权人无需对权利所属再行举证,举证责任转由对方提供相反的证据,从而降低了诉讼风险。
2、合同约定不够明确
软件着作权使用许可合同是指软件着作权人在软件着作权保护期内授权他人在合同规定的条件、范围和时间内使用其软件,并通过这种授权而获得报酬的合同。许可使用方式主要包括:独占许可、独家许可、普通许可。企业在签订软件着作权使用许可合同中易忽略对使用方式、使用的权利范围进行明确约定。如企业原本意图签订独占许可合同,而未对使用方式进行明确约定,使得软件着作权人又将该软件许可他人使用,导致企业支付了软件使用费后所生产的产品不具有市场独立性,失去竞争优势。另外对于约定使用的权利范围不明确,由于现行法律规定,在软件着作权使用许可中,对于合同中未作约定的权利,被许可方不得使用,故在软件着作权许可使用合同中,应对被许可的权利进行列明,否则很容易在使用过程中造成权利受限或构成侵权。
3、实质性权利保护遭遇忽略
《计算机软件保护条例》第十条规定:本条例对软件着作权的保护不延及开发软件所用的思想、处理过程、操作方法或数学概念等。因此,软件着作权的保护并不能制止以不同方式表达同一构思的实质侵权。对于以不同方式表达同一构思的实质侵权如何保护,目前企业界尚不明了。特别是在目前利用反向工程获取软件结构一般不认定为侵犯软件着作权的情况下,为防止此类侵权,企业应将用于特定产品的软件与企业硬件产品相结合,申请专利保护,软件一旦与产品硬件结合,在产品申请专利的情况下,对于软件也就可以通过专利进行保护。如此,对软件就可以达到强保护的目的。
4、保密措施不够严密软件反向工程是指将他人的目标代码程序利用反汇编、反编译软件使其还原为汇编代码的过程。虽然目前对于反向工程获取软件源代码的手段是否合法、合理问题理论界尚存在争论。但在我国司法实践中已经明确对于通过反向工程手段获得软件源代码的行为本身是不构成侵权的。但同时规定:“当事人以不正当手段知悉了他人的商业秘密后,又以反向工程为由主张获取行为合法的,不予支持。”这里实际指的是对软件作为商业秘密保护的阐述。但很多时候,企业软件通常作为产品推向市场,市场的公开化导致获取产品途径正当化,此时,要防止他人通过反向工程获取软件源代码的主要手段就只能通过技术加密行为来进行。我市目前软件企业产品推向公开化市场的并不多,主要是为特定企业定制软件,另外很多企业为自身生产的需要,也有自行开发的软件。对此,企业一要加强内部软件的保密度,尽量减少非正当途径获取软件的几率,同时也不能完全依赖于对软件的商业秘密保护。对于软件本身,更应当加强技术加密手段,即使在他人通过不正当途径获取软件时,增加其反向工程的难度,减少知识产权纠纷,降低企业软件开发投资风险。
5、法律保护亟待完善
目前对计算机软件保护模式主要包括专利保护、版权(着作权)、商业秘密保护、不正当竞争保护和商标保护。而在我国,主要通过《着作权法》实施对计算机软件的着作权保护,同时我国出台了专门的《计算机软件保护条例》,以专门立法的形式加强对计算机软件的保护。对于计算机软件的专利保护、商标保护,在我国的计算机软件保护体系中很少涉及。其中专利保护仅指我国专利局1993年的《专利审查指南》中的规定:涉及计算机程序本身或者数学方法本身的发明专利申请不能授予专利。同时又指出,如果一件含有计算机程序的发明专利申请的主题能够产生技术效果,构成一个完整的技术方案,就不能仅仅因为该专利申请含有计算机程序而不授予专利权。而商标保护是指软件产品商品化后通过注册商标防止盗版软件的发行、出售等。
三、计算机软件保护的对策
根据多宗计算机软件侵权案件的判例,再结合我国目前保护计算机软件各种法律的欠缺和不完善,在保护计算机软件方面应从以下方面注意。
1、重视软件登记,加强识别能力
软件使用包括企业自行研发的软件使用,也包括企业通过购买或被许可使用他人软件。对于企业自行研发的软件使用,需要注意的是,由于软件着作权的非唯一性,其他软件开发者通过独立研发可以研发出与权利人一致或基本相似的软件,两者之间的着作权并不冲突,可以同时并存。此时,企业要做好着作权备案登记工作或保存好原始开发资料,防止在使用过程中被他人指认侵权,做好软件登记工作,减少侵权诉讼风险。
对于企业购买他人软件使用过程中,主要是做好防盗版工作,如上所述,企业应通过正当途径购买软件,并保存好购买软件的正规发票。同时加强企业采购人员对正版和盗版软件的识别能力,降低企业经营风险。另外企业在签订软件许可使用合同中,应明确许可方式,签订保密条款,并明确被许可的权利范围、使用地域范围和使用期限,对于利用被许可软件再行开发出新成果的归属双方也可事先进行约定。
2、重视自我保护,加强软件加密
就企业软件管理而言,第一,加强对软件产品的保密工作,减少不必要人员的接触。第二,对于核心技术人员,因对于软件的基本原理、构思等并不受软件着作权的保护,因此,员工的流失必然存在对软件着作权实质侵权的威胁。因此,企业应尽量保证技术核心人员的稳定性。对其工作期间所开发的软件(包括自由开发软件)应明确约定归企业所有,并设立相应的奖励制度。
对于软件本身,第一,提高软件加密程度,增加反向工程获取软件源代码的难度;第二,对于能够与企业硬件产品结合的软件,尽量与产品一起申请专利保护。第三,对推向市场的软件产品申请注册商标,通过实施品牌战略加强对软件产品的保护。
3、重视法律维权,加强侵权举证
当企业不可避免地遭遇到计算机软件侵权纠纷时,如何适当地进行举证,成为诉讼胜败的关键点。企业遭遇侵权时,首先应当提供作为权利人的证据,软件着作权进行登记的重要性也就在这里体现了。由于登记的公示性,只要没有相反的证据,软件着作权的登记人就是理所当然的着作权人。对于没有登记的软件着作权,权利人可以提供软件源程序、软件首次开发完成的时间等证据证明自己是着作权人。其次,需要举证的就是侵权事实的存在。对于这一块举证,企业通常存在难度。因为一般侵权发生地都不在企业控制范围内,企业也没有相应的适当途径能够进入侵权地。对于盗版软件销售中侵权行为的取证,可采用三种方式。
公证取证方式,由权利人与公证机关工作人员一起作为购买者购买盗版软件,并就所购软件进行封存以及对整个购买过程进行公证。这样的公证,在民事侵权诉讼中,如果没有相反的证据,一般都能够得到确认。对于软件着作权侵权行为的公证取证中,应注意的是,由于计算机软件不同于其他着作权,通过一般的拍照、复制等公证保全方式有时并不能达到证据所应有的证明力,因此,在计算机侵权取证中,应尽量聘请专家或专业鉴定机构参与取证,增加证据的证明力;通过行政执法手段对侵权行为进行认定。在公证机关工作人员无法进入的侵权地,无法通过公证取证的方式进行证据收集,此时可通过版权局对侵权地进行查处,对于行政执法机构已经认定的侵权行为,在没有相反的证据情况下,法院都予以直接认定;申请法院进行证据保全,但申请证据保全一般应提供侵权存在的初步资料,否则法院一般不予采纳。
不难看出,打击软件侵权将是一项艰巨和长期的任务。除了集中打击行动之外,我们必须建立防控一体化的反侵权制度体系。
分层技术在计算机软件开发中的应用,大大提高了开发的速度和质量,是现阶段我国软件开发中最为重要的技术种类之一。为了能够更好地发挥其技术优势,下面针对其各部分重点内容进行分析研究:在计算机软件开发中,分层技术的应用需要严格按照一定的措施和规律和进行,首先必须要将分层技术的相关理论以及概念进行掌握和熟悉。分层技术包括了计算机以及物理学两个方面的含义,在这两个方面中,物理含义的内含较为复杂。具体来说,在计算机软件研发的时候,分层技术就是将不同过程的解决方案置于不同的概念领域中,然后这整个层面就会形成一个较为封闭的体系,而这个体系中包括的不同层面在级别上都是平等的。针对软件开发的构架方面,分层技术的优势得以有效凸显,在最初的时期,软件开发构架只是一种单层的构架,直到20世纪后期才得以快速发展,并在一些小型的数据库中得以应用。而单层结构向双层结构发展,则是从服务器与计算机之间的建立联系开始的,服务器与计算机得以联系,并快速发展,从而不断完善,形成了目前的计算机软件结构。由于计算机的双层结构中存在很多难以避免的缺陷,因此在不断发展的过程中,其弊端也更加凸显,在无法满足人们需求的情况下,分层技术的出现有效解决了上述问题,并逐渐发展成为我国计算机软件开发技术的主要发展趋势。
2分层技术在计算机软件开发中的应用
分层技术目前在我国已经成为了主流的技术种类,其在我国计算机软件开发中的应用也越发普及,下面进行具体分析:
2.1双层技术的应用
从种类方面来看,分层技术主要有三层、四层以及多层次之分,但是这些都是在双层技术的基础上发展起来的。在不断的发展过程中,软件的开发效率也得以提升。我们首先针对双层技术进行研究,这项技术在我国软件开发中的应用,主要就是针对两个端点进行,也就是客户端和服务器。客户端会依据不同用户的资料为其提供所需要的使用界面,处理其中所产生的各种逻辑关系,然后服务器是用来接受客户的各项信息,在经过数据库进行相关的计算和总结,最终向客户端传达并使用。这项技术的应用大大提高了计算机的运行效率,但是其必要的条件就是用户所使用的服务器,性能方面要有所保障,同时用户使用不适合太多。一旦这两个要素没有保障,就会导致服务器因为工作负荷过重而出现系统性错误、计算机反映慢等问题也会出现,这样一来成本就会不断增加,问题严重的话,还会导致人格数据的丢失,所以说在当今的研发中,这项技术已经逐渐被其他技术所取代。
2.2三层技术的应用
上文已经提到,三层技术的研发是建立在双层技术基础之上的,针对双层技术中不完善以及有缺陷的部分进行改进,并相应地增加了应用服务器,这种服务器在计算机使用方面发挥着巨大作用,能够针对用户的各种数据进行储存和整理,同时也大大提高了计算机信息访问的效率,最为关键的一点是实现了人与计算机之间的交互。这种三层技术实际就是将业务处理、界面层次以及数据层次相结合,建立一个有机整体,相互独立运行,共同为计算机服务。其中的界面层主要是进行科学的收集用户使用软件的需求,收集完成后需要将这些需求发送到之后进行工作的业务处理层,其次由业务处理层通过对这些用户的需求进行分析,做出相关的申请请求在数据层进行数据的提取与处理,最后在数据层进行相应的处理,对相关的各种信息进行查询,针对这一系列的分析之后,将结构反馈给业务层,最终是由业务层完成工作的处理,再回到最初的界面层。以上所阐述的整个过程就是对系统的建立过程,正是因为这样的处理,实现了系统工作效率的提升。
2.3四层技术的应用
在计算机软件的开发中,双层技术和三层技术都难以应对计算机使用复杂的环境,需要将三层次技术中的界面层、业务处理层和数据库层科学地分开,这样才能够不断降低这几个层次之间的相互影响,因此需要将三层技术逐渐向四层技术发展,其中四层技术主要包含有业务处理层、web层、数据库层以及存储层。
2.4中间件技术的应用
分层技术在计算机软件开发中的应用,可以针对不同部门进行优化,目的就是充分发挥其潜能,实现优势互补,提高计算机整体的运行效率。正是因为分层技术的合理应用,才使得软件开发的质量大大提升。另外,还有效地降低了各种复杂问题的发生,简化了计算机操作,只要利用单项操作就可以独立完成计算机软件的开发,进而实现我国计算机软件开发的高效性与高质性。
3结语
1计算机软件教育模式分析与探讨
1.1高职高专计算机软件教育的情况
只要有计算机,任何学院都可以办计算机软件专业。这既说明了计算机软件教育的普遍,更说明了计算机软件教育的硬件门槛实在是相当的低。很多学院都可以办计算机软件专业,很多学院的计算机软件专业都差不多。高等教育本科以上的招生连年在扩大,从招生质量上说,高职高专招到的学生的素质是相对比较差的,而学习计算机知识往往需要比较高的逻辑能力、自学能力与刻苦精神,这让高职高专的计算机软件教育难上加难,现在社会上对计算机的应用水平在逐年提高,对计算机专业的要求也在逐年提高,学生的低素质和社会的高要求成了高职高专教育的一个突出问题,对此,几乎所有的高职院校都没有办法完全给予解决,按照原来的解决方法,以教授学生程序知识为主,在教他们知识的同时培养其它素质。因为学生的整体素质相对低,而且在入学前又没有学过任何程序知识,在入门时发生极大的困难,学生往往只能记住程序语言本身的语法,而对于程序语言的共性的知识,特别是与做程序相关的逻辑能力、自学能力、解决问题的能力与刻苦精神等都没有得到强化训练,结果在学习其它语言时又要重新把这些几乎是同样的内容学一遍,而且极容易产生以下的结果,学生学了很多门语言,但每门都不精,而且每门语言都花去了几乎相同的时间,白白浪费了很多的时间,能不能将这很多门语言都换成一门语言呢?答案是否定的,因为有些专业知识是结合语言来学习的,比如说学习数据库,就得安排Access或者vfp来教学;学习底层开发,就得安排C语言甚至汇编语言来学习;学型项目开发,就得安排visualstatio。还不算在学生毕业后,到了单位再按单位要求使用的语言。学生在语言的学习上花了太多的时间,就没法保证其在短短的一年多到两年的时间内达到社会的要求。
1.2高职高专计算机软件师资
一般说来,计算机软件这门学科需要人有强大的逻辑分析能力和归纳能力,而且因为计算机的基本核心都是国外做的,英文单词出现得不少,所以也需要有一定的英文水平,-196-因此做计算机软件这门学科的人一般来说素质不错,而且数学一般很好,这几年,高职高专院校都比较注重技能的培养,采用多种手段来提高教师的素质,将教师送去培训、读研究生;从社会上招聘一些有实际经验的原软件公司技术员;教师自学、帮教等。不少教师努力做科研、做课题、写论文、评职称,不少教师已经获得了副教授以上的职称,因此,从师资上说,高职高专的师资应该是不错的。
1.3现行高职高专计算机软件的教育模式
参考做得比较成功的软件学院的做法,甚至与它们联合办学;在课程设置上与这些软件学院同步;普遍采用案例教学法;这种教育模式无疑是先进的,效果也是非常好的,但只针对素质较好的学生,以及教学水平相当高的教师。它只说明了软件知识教育的内容和先后问题,并没有说明如果学生的素质达不到要求该怎么办?事实上,大部分的教育者都没有说明这个问题,这很正常。就算是素质较好的学生,有的对这种模式也未必适应,程序设计往往刚刚入门,就面临毕业了。所以高职高专软件教育的问题在于对学生教不教得懂?教懂的时间是多少?灵活运用程序知识的程度是多少?单单采用以上的教育模式还不足以解决这些问题。
2解决方法
2.1传统素质的培养方法
因为计算机专业脱胎于数学专业,计算机软件需要学生具有较强的逻辑分析能力,数学好的话一般来说逻辑能力也相对强,所以传统的素质培养方法是先让学生学好数学,再来学习程序设计。这种培养方法似乎无可厚非。但这里有几个问题,高职高专的学生数学会很好吗?能教好他们数学吗?要教好他们数学得用多少时间?结果可想而知。
2.2教学与程序逻辑之间的关系
一般来说,数学思维好的学生逻辑能力一般较强,而且数学是创建计算机科学的基础,所以一般来说,学习计算机程序开发在很多人眼里该先学好数学,再学计算机程序开发;那么数学和程序开发一定具有必然的一一对应关系吗?未然,因为虽然计算机科学是从数学演变而来的,在早期的计算机应用中确实以数学计算为主,但随着计算机科学的发展,特别是现在的应用系统开发,如果不是很高端应用的话,用到的数学知识是有限的,主要用到程序逻辑思维,数学思维好的学生只要将程序多加研读,一般来说,获得程序逻辑思维是不成太大问题的,但如果数学思维差点的学生。那就难了。对这样的学生,如果先把他们的数学教好了再学程序的话,那代价就太大了,也没这必要,所以设想如果直接进行程序逻辑能力的训练让他们获得比较强的程序逻辑,那么他们学习后续课程就容易多了。
2.3程序素养的培养方法
(1)特别重视学生入门语言的教学,不要为了学习语言而学习语言,入门时重点不是学习语言本身,而是程序知识的共性,与做程序相关的逻辑能力、自学能力、解决问题的能力、刻苦精神等。这些知识和素质如能迅速解决,对于后续内容的学习非常有利。对于程序语言的选择一般以VisualBasic程序设计语言为佳,因为用这门语言既可学习面向过程的程序知识,又可以学习面向对象的程序知识,而且语法相对简单,表达清析明了,往后还可以继续学习。学完了程序知识的共性与能力训练之后再扩展其他程序知识(包括各种控件的属性、事件与方法,甚至学习其他语言如C语言)。(2)改变原来的以知识教育为中心、能力教育为辅的教育模式,改为以能力教育为主、知识学习配合能力教育的教育模式。比如说对于数据库知识的学习,如果我们是用Access来学习的话,那Access本身的知识就不必学得过深,会用其做数据库即可,重点是关系数据库的各方面的知识。也就是说,在学生掌握程序能力的过程中,他那个阶段需要什么知识,我们就给他学什么知识,按知识能力过关而不是一定按原有课程的模式来学习。(3)在教学方法上采用以知识精炼基础、程序素养训练为主的教学方法。程序素养是程序设计基础知识、算法的逻辑推导能力、相应的记忆力、归纳能力、与学习能力的综合体现。教师要进一步地认识、分解程序素养,为学生构建一个更低的起点,一副更好的梯子,沿着这把梯子在老师的帮助下就能获得程序素养,进入程序开发的大门。在这里,笔者专门分解了程序知识最基本的要素:变量,以此为突破口对程序基础知识进行重构,并以此进行程序逻辑能力与归纳能力的训练。笔者认为,变量是最基本的数据结构,对变量的特点、变量的形态、变量的作用范围、特别是变量是如何同程序结构结合实现程序思路,普通的程序设计教材上并没有详细说明,这些知识要依赖学生在记忆程序知识并做大量的程序开发之后才由他们自己突然醒悟。对于程序设计基础知识,根据构建最低平台的原则,选择最易学的语言VB作为讲解语言,全部知识分为以下方面:第一部分,①数据类型②常量、变量、函数表达式③程序的三种结构顺序、分支、循环④数组⑤自定义过程与函数。第二部分,面向对象部分。并对里面的内容作了最大程度的精炼,并且各种能力的训练也融入其中。按照这种原则构建出来的基础知识,必须能做到让学生需要记忆的词最少,内容最少,内容之间或内容本身要与学生原来的知识结构挂勾,就是英语单词本身,也要给学生一个记忆的方法,根据学习的建构主义,新知识要与头脑中的旧知识发生关联,新知识才能得到好的理解,单纯的背诵很容易让人遗忘。然后再采用反复与自我讲解的方法加深这种记忆,并将其从浅性记忆上升至深度记忆,要做到回忆某种记忆时几乎是不假思索,脱口而出,这是素养训练成功的第一步,根据本人多年的程序教学的经验,如果能为学生构建好这种恰当的记忆内容与方法,学生能记住的几率大增,而且不容易遗忘,记忆的速度又快,而这些又是编程中最需要的东西。逻辑能力与归纳能力是如何训练的呢?首先要为学生构建一个推导的起始点,这个起始点要极低,极简单,简单到常人都会的程度。然后与寓复杂到简单之中。将这个简单的逻辑分解成常人都会的逻辑,让学生的固有的逻辑与程度逻辑搭上桥,让学生听到这种例子就懂,而上下例子的逻辑差一点点,通过上一例子的方法再加上教师的指点,学生应该能做出下一例子,这样就加深了对程序基本分析方法和算法的理解,每做一个例子都应有一个新的体会,经过这一连串的体会,学生就能获得一定的归纳能力与逻辑能力。比如说讲循环体,教师设置逻辑推导已为1+1,学生会做1+1后,需要讲解为什么要用这程序来解决这个问题,然后做1+1+1+1+1,5个1相加,再做1+2+3+4+5。再做1+3+5+7+9,再做2+4+6+8+10。再做1+3+6+10+15等。这些例子是简单的,简单才能让学生对于其中的数学问题一看就懂,才能不涉及更多的数学知识,我们需要做的就是尽力去挖掘这些例子所体现的程序能力。一般说来,变量是程序设计的核心概念,对于变量的分析也就等于分析了整个程序,将变量分为控制变量和累加变量两大类,控制变量主要负责程序的流向和循环的次数,而累加变量主要是存数,并在其上进行算术运算。对1+1赋值给一个变量这样一个问题,要理解累加变量的作用,也就是sam=sam+1这条语句是怎么编出来的,将它作为1+1+1+1的基础,对于1+1+1+1这个例子要理解为什么要用循环,循环所用到的控制变量和累加变量,它们的初值是多少,在哪赋初值,变量在哪使用,终值为多少,在哪变化,变化量为多少,等等,在教师讲解这些问题之后,要组织学生复述,一定要学生亲口用自己的语言说出来才算理解:然后理解上一程序与下一程序之间的不同:用这种教法处理余下的问题,学生往往易于接受,因为这些例子涉及的数学并不难,其实极简单,学生可以将注意力全部放在问题的解决上,解决方法已经标准化,只要用同一方法分析,必然能得到满意的结果,这样从简单到复杂的推演过程能大大提高学生的归纳能力、逻辑能力与解决问题的能力。如果对程序设计的教学环节重新组织,在每一环节都像循环的讲解那样分析,相信对学生程序素养的提高帮助是非常大的。(4)在教学中大量使用诱导式教育,在阶梯式的问题体系里,学生在解决问题时,教师不能直接给出答案,尽量地用学生熟悉的生活常识来启发学生,让他尽量自己解决问题;当学生解决了这个问题之后,要及时诱导学生进行总结,熟悉解决问题的思路,养成总结的习惯,加深对知识的理解,然后诱导学生进入下一个问题。(5)在教学中尽量利用多媒体课件,形象生动的多媒体教学会促进学生对于程序知识的记忆。对他们理解问题起到事半功倍的效果。
2.4实践
笔者特意选择了几类人群来试验,一类是中专生,一类是成人,一类是大专生对他们教授VisualBasic程序设计语言时用两种教学方法来试验,采用基于知识精炼的程序素养训练为主教出来的学生效果更好,解决问题的能力、学习能力更强。
3总结
[论文摘要]计算机软件作为一门学科得到了迅速发展,相关技术和方法层出不穷,研究领域不断深入和发展,计算机的应用范围也得到了很大程度的普及,人们对软件系统的需求急剧上升,随之而来的软件规模越来越大,开发费用越来越高,开发的质量和效率不断降低的问题日益严重,如何解决这些日益复杂的矛盾,满足高质量、高效率地开发各种各样日趋复杂、大型的软件系统的需求,消除所谓的“软件危机”,成为计算机软件学科所面临的重要课题。
软件复用技术的提出成为消除这种危机的一种解决方案。近年来,特别是20世纪90年代以后,面向对象方法和技术成为主流的软件开发技术,使得软件复用被视为解决软件危机一条现实可行的途径。与此同时,模型构件技术、分布式系统、领域工程、自动生成技术又为软件复用注入了新的活力,本文对面向对象系统分析阶段软件复用模型进行了研究和探讨。
一、软件复用
软件复用的概念是在1968年NATO软件工程会议上被第一次引入的,在其后的几十年中,进行了许多复用技术的研究和实践活动,但因技术和非技术方面的种种因素,造成复用技术在整体上对软件产业的影响不尽人意。面向对象方法和技术的出现及成熟,为软件复用提供了强有力的技术支持,尤其是软件构件技术的发展为其注入了新的活力,使得软件复用研究重新成为热点,被视为解决软件危机、提高软件生产效率和质量的一个现实可行的途径,同时也成为了避免软件开发中重复劳动的解决方案,并在一定程度上降低了软件开发的费用。目前,软件复用技术主要从两个方面来考虑:产品复用、过程复用。
产品复用:所谓产品复用是指复用已有的软件产品。目前基于构件的和面向服务的软件开发模式就是建立在这种软件复用的基础上的。这两种开发模式主要通过对现有的构件和服务进行合成或集成,从而生成所需要软件的过程。产品的复用是目前软件复用技术研究的焦点,在这个复用的过程中涉及到的关键技术是构件技术和软件架构技术,在成熟的构件和架构的技术上,可以使产品复用达到良好的效果。
二、面向对象系统分析(OOA)阶段软件复用模型
1.OOA阶段可重用性的本质
编程阶段不同类型的编程软件和类有不同深度的可重用性:高深度、中深度、低深度。
所谓高深度重用是指在不进行任何改变就可以直接使用重用产品的重用,像可视化开发工具中的所有控件,就属于这方面的重用;目前,面向服务的软件开发技术中对服务的重用,只要程序员获得服务者提供的接口,就可以直接使用别人开发的产品,这种复用也是高深度的复用技术,因此高深度的软件复用,可重用性最好;所谓中深度的重用,程序员可以根据自己的开发经验,开发出一些比较通用的组件,在具体的使用中,对这些通用的组件只要稍作修改就可以应用于具体的项目中去,这种复用可重用性较好。当然,对于低深度的可重用性就于具体的项目相关,它只能局限于该项目,可重用性最差。由此可见,可重用性与业务逻辑的相关性是成反比例关系的:越是与业务逻辑无关的重用,重用性越好;反之则越差。
2.OOA阶段软件复用模型研究
OOA阶段的软件复用,在一定程度上可以说是建立在许多优秀的系统分析员实践和经验基础之上的复用,是一种思想上的复用。在这个阶段的软件复用更具有通用性和重用性,因此,构造这个阶段的软件复用模型,可以使复用达到更好地效果。
3.范式抽象
所谓范式就是抽象的解决方案模板,它可在不同具体项目中使用。范式抽象就是在此基础上提出的对范式的设计方法。针对不同的问题域,就应该有与之对应的设计方法,这样可以使范式的设计达到很高的重用性。针对OOA阶段具体现状,有三种范式抽象方法:
(1)关系抽象
在OOA阶段,针对具体的项目,会分析出大量的关系模型。例如在学校排课表系统中,需要定义教师类,它包括教师姓名、性别、职称等有关教师的基本信息,同时,为了便于教师很快得出自己的上课表,还需要定义一个与教师对应的教师课表类,这个类显示了一周中教师的课程安排情况;在网上购物系统中,需要定义一个购物者类,包括了购物者的相关信息,同时为了得到购物者所购的物品,还需定义一个购物车类,该类描述了购物者与所购买的物品的对应关系。这两个系统的具体业务是不同的,但教师类与教师课表类、购物者类与购物车类的关系却是基本相同的,都是一个实体对另一个实体的拥有关系,同样,所进行的操作也基本相同,诸如都涉及到对所拥有实体的查询操作等。因此可将这种关系抽象出来,定义为拥有关系,然后在此关系的基础上定义相应的操作。这种关系就可以以范式的形式保存起来,在不同的项目中都可重用这种范式。同样,还可抽象出许多其他的关系范式,如实体——内容关系,上下级关系等。这些关系都是不依赖于具体的项目和业务的,可重复使用,只是在针对具体的业务时,在相关属性和方法上稍作修改就可以了。
(2)相似对象抽象
在不同项目的OOA阶段,还会分析出大量的相似对象或类,例如用户、用户组、角色、权限等在所有涉及到权限管理的系统中都会出现这类对象;在一些相同领域的项目中,由于涉及的领域的标准化,有些对象的相似性以及相同的机率会更大。对于这些相似程度如此大的对象来说,由于其在项目开发中的相对独立性,把这些对象模型以范式的形式保存起来会使分析的结果得到更大的重用。
按照上述思想进行的范式抽象称为相似对象抽象,这种抽象依据的是分析阶段的对象模型,这种对象模型具有独立的、高度的相似性,抽象出来的范式可称为对象范式。这种范式与具体项目之间的相似可称为表面相似性。表面相似越接近,范式的重用性就越大。
(3)领域抽象
所谓领域抽象是用于某一领域的抽象问题的解决方案。在同一个领域的项目开发过程中往往能够总结出更多的相似性,包括关系相似性和表面相似性,将二者相结合,可构建出与行业有关的构件。这种构件是建立在具体领域上的一种抽象,称为领域抽象。领域抽象的过程可借助领域工程的知识和方法。其中在OOA阶段主要用到了领域分析的方法。所谓领域分析是被称为领域工程更大的学科中的第一项技术活动。当业务、系统或产品域被定义为长期的业务策略,则可以展开持续的创建强健的可复用库的工作,其目标是能够在领域中以非常高的可复用构件率来创建软件。领域分析在领域抽象过程的作用是从OOA得出的对象、关系、行为模型的抽象出与领域相关的领域范式,其中包括关系范式、相似对象范式和处理过程范式等。这些范式与前面提到的范式唯一不同就是有了特定领域的标识,这在同一领域的开发中将达到高度的重用性。
三、总结
本文通过对软件复用技术的分析,提出了一种面向对象系统分析阶段软件复用的模型,并对此模型中所涉及到范式抽象方法做了探讨,并把它们应用于具体的项目中去,从而很好地利用的设计思想,大大提高了项目的完成速度。另外,对于范式库的研究也为建立在高层上的软件复用库管理提出了新的研究课题:例如对于编码阶段复用构件库的检索条件也可以扩展为以范式为索引的检索等。这些都成为下一步的研究课题。
[参考文献]
[1]RogerS•Pressman著,黄柏素、梅宏译:《软件工程实践者的研究方法》,机械工业出版社1999年版。
[2]黄靖、赵海光:《软件复用,软件合成与软件集成》,《计算机应用研究》2004年。
[3]王丽娟:《软件复用技术及其在软件开发中的应用》,《中山大学学报论坛》2004年第24卷第1期。
[论文摘要]计算机软件作为一门学科得到了迅速发展,相关技术和方法层出不穷,研究领域不断深入和发展,计算机的应用范围也得到了很大程度的普及,人们对软件系统的需求急剧上升,随之而来的软件规模越来越大,开发费用越来越高,开发的质量和效率不断降低的问题日益严重,如何解决这些日益复杂的矛盾,满足高质量、高效率地开发各种各样日趋复杂、大型的软件系统的需求,消除所谓的“软件危机”,成为计算机软件学科所面临的重要课题。
软件复用技术的提出成为消除这种危机的一种解决方案。近年来,特别是20世纪90年代以后,面向对象方法和技术成为主流的软件开发技术,使得软件复用被视为解决软件危机一条现实可行的途径。与此同时,模型构件技术、分布式系统、领域工程、自动生成技术又为软件复用注入了新的活力,本文对面向对象系统分析阶段软件复用模型进行了研究和探讨。
一、软件复用
软件复用的概念是在1968年NATO软件工程会议上被第一次引入的,在其后的几十年中,进行了许多复用技术的研究和实践活动,但因技术和非技术方面的种种因素,造成复用技术在整体上对软件产业的影响不尽人意。面向对象方法和技术的出现及成熟,为软件复用提供了强有力的技术支持,尤其是软件构件技术的发展为其注入了新的活力,使得软件复用研究重新成为热点,被视为解决软件危机、提高软件生产效率和质量的一个现实可行的途径,同时也成为了避免软件开发中重复劳动的解决方案,并在一定程度上降低了软件开发的费用。目前,软件复用技术主要从两个方面来考虑:产品复用、过程复用。
产品复用:所谓产品复用是指复用已有的软件产品。目前基于构件的和面向服务的软件开发模式就是建立在这种软件复用的基础上的。这两种开发模式主要通过对现有的构件和服务进行合成或集成,从而生成所需要软件的过程。产品的复用是目前软件复用技术研究的焦点,在这个复用的过程中涉及到的关键技术是构件技术和软件架构技术,在成熟的构件和架构的技术上,可以使产品复用达到良好的效果。
二、面向对象系统分析(OOA)阶段软件复用模型
1.OOA阶段可重用性的本质
编程阶段不同类型的编程软件和类有不同深度的可重用性:高深度、中深度、低深度。
所谓高深度重用是指在不进行任何改变就可以直接使用重用产品的重用,像可视化开发工具中的所有控件,就属于这方面的重用;目前,面向服务的软件开发技术中对服务的重用,只要程序员获得服务者提供的接口,就可以直接使用别人开发的产品,这种复用也是高深度的复用技术,因此高深度的软件复用,可重用性最好;所谓中深度的重用,程序员可以根据自己的开发经验,开发出一些比较通用的组件,在具体的使用中,对这些通用的组件只要稍作修改就可以应用于具体的项目中去,这种复用可重用性较好。当然,对于低深度的可重用性就于具体的项目相关,它只能局限于该项目,可重用性最差。由此可见,可重用性与业务逻辑的相关性是成反比例关系的:越是与业务逻辑无关的重用,重用性越好;反之则越差。
2.OOA阶段软件复用模型研究
OOA阶段的软件复用,在一定程度上可以说是建立在许多优秀的系统分析员实践和经验基础之上的复用,是一种思想上的复用。在这个阶段的软件复用更具有通用性和重用性,因此,构造这个阶段的软件复用模型,可以使复用达到更好地效果。
3.范式抽象
所谓范式就是抽象的解决方案模板,它可在不同具体项目中使用。范式抽象就是在此基础上提出的对范式的设计方法。针对不同的问题域,就应该有与之对应的设计方法,这样可以使范式的设计达到很高的重用性。针对OOA阶段具体现状,有三种范式抽象方法
(1)关系抽象
在OOA阶段,针对具体的项目,会分析出大量的关系模型。例如在学校排课表系统中,需要定义教师类,它包括教师姓名、性别、职称等有关教师的基本信息,同时,为了便于教师很快得出自己的上课表,还需要定义一个与教师对应的教师课表类,这个类显示了一周中教师的课程安排情况;在网上购物系统中,需要定义一个购物者类,包括了购物者的相关信息,同时为了得到购物者所购的物品,还需定义一个购物车类,该类描述了购物者与所购买的物品的对应关系。这两个系统的具体业务是不同的,但教师类与教师课表类、购物者类与购物车类的关系却是基本相同的,都是一个实体对另一个实体的拥有关系,同样,所进行的操作也基本相同,诸如都涉及到对所拥有实体的查询操作等。因此可将这种关系抽象出来,定义为拥有关系,然后在此关系的基础上定义相应的操作。这种关系就可以以范式的形式保存起来,在不同的项目中都可重用这种范式。同样,还可抽象出许多其他的关系范式,如实体——内容关系,上下级关系等。这些关系都是不依赖于具体的项目和业务的,可重复使用,只是在针对具体的业务时,在相关属性和方法上稍作修改就可以了。
(2)相似对象抽象
在不同项目的OOA阶段,还会分析出大量的相似对象或类,例如用户、用户组、角色、权限等在所有涉及到权限管理的系统中都会出现这类对象;在一些相同领域的项目中,由于涉及的领域的标准化,有些对象的相似性以及相同的机率会更大。对于这些相似程度如此大的对象来说,由于其在项目开发中的相对独立性,把这些对象模型以范式的形式保存起来会使分析的结果得到更大的重用。
按照上述思想进行的范式抽象称为相似对象抽象,这种抽象依据的是分析阶段的对象模型,这种对象模型具有独立的、高度的相似性,抽象出来的范式可称为对象范式。这种范式与具体项目之间的相似可称为表面相似性。表面相似越接近,范式的重用性就越大。
(3)领域抽象
所谓领域抽象是用于某一领域的抽象问题的解决方案。在同一个领域的项目开发过程中往往能够总结出更多的相似性,包括关系相似性和表面相似性,将二者相结合,可构建出与行业有关的构件。这种构件是建立在具体领域上的一种抽象,称为领域抽象。领域抽象的过程可借助领域工程的知识和方法。其中在OOA阶段主要用到了领域分析的方法。所谓领域分析是被称为领域工程更大的学科中的第一项技术活动。当业务、系统或产品域被定义为长期的业务策略,则可以展开持续的创建强健的可复用库的工作,其目标是能够在领域中以非常高的可复用构件率来创建软件。领域分析在领域抽象过程的作用是从OOA得出的对象、关系、行为模型的抽象出与领域相关的领域范式,其中包括关系范式、相似对象范式和处理过程范式等。这些范式与前面提到的范式唯一不同就是有了特定领域的标识,这在同一领域的开发中将达到高度的重用性。
三、总结
本文通过对软件复用技术的分析,提出了一种面向对象系统分析阶段软件复用的模型,并对此模型中所涉及到范式抽象方法做了探讨,并把它们应用于具体的项目中去,从而很好地利用的设计思想,大大提高了项目的完成速度。另外,对于范式库的研究也为建立在高层上的软件复用库管理提出了新的研究课题:例如对于编码阶段复用构件库的检索条件也可以扩展为以范式为索引的检索等。这些都成为下一步的研究课题。
[参考文献]
[1]RogerS•Pressman著,黄柏素、梅宏译:《软件工程实践者的研究方法》,机械工业出版社1999年版。
[2]黄靖、赵海光:《软件复用,软件合成与软件集成》,《计算机应用研究》2004年。
[3]王丽娟:《软件复用技术及其在软件开发中的应用》,《中山大学学报论坛》2004年第24卷第1期。