首页 > 文章中心 > 程序员培训总结

程序员培训总结

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

程序员培训总结

程序员培训总结范文第1篇

三大原因阻碍进步

一、不扎扎实实地钻研理论,打好基础。虽然很多程序员也读书,但读的大多是比较热门的所谓“技术”书,业界炒什么“单词”,他就读什么,但理论基础不牢、功底太浅的缺点却不去修正。例如,一些程序员和大学生成天读.NET、J2EE、Ajax之类的书籍,但关于数据库原理、数据结构与算法等基础理论,却一窍不通。甚至有些学生不好好学习学校规定的课程,却到外面参加培训机构培训。

二、敬业精神差,程序漏洞百出。很多程序员工作带身不带脑,边写代码边上网聊天,程序漏洞百出。很少考虑程序问题给用户造成的损失,给公司带来的负面影响,很少去研究自己写的代码能否进一步优化,总认为代码只要通过编译就OK了。

三、过于频繁地跳槽,没有长期规划。刚踏入社会,就成天想着房子和车子,由此抱怨工资太低、待遇太差、老板太小气、房价太高。由于行业发展迅速,这些程序员就会频繁跳槽,他们很少结合自己的实际能力和水平衡量自身的“价值”,更缺乏通过一个长期规划不断提升自身价值的意识。

三个结合铺就坦途

把知识学习与企业需求相结合。大多数程序员都是科班出身,但大学教育是普及教育,教给学生的只是知识,而企业对学生的需求是技能。当双方都不愿意承担“衔接”的作用时,就需要学生自己想办法。目前,企业对软件工程流程越来越重视,所以,适应企业的需要就要学会规范的文档,然后才是技术。东软的副总、CTO方发和这样描述他对IT专业学生的要求:“我们要求学生注重4方面的能力:眼界、学习的方法、技能和规范。要学习如何与别人合作,比如在代码风格上统一。虽然只是一名程序员,但仍需要站在项目经理的层面上看自己的工作,这样才能更好地融入到团队中。”可见,不断积累能够和企业顺利接轨的素质与能力是迅速发展的基础。

将技术提升与行业相结合。程序员首先要在技术上做得比较深入,成为技术专家。无论是Java还是.NET,还是数据库领域,都要成为行家里手。要想出头,必须提高系统设计能力。2000年以后,软件业的编程思维和模式、方法发生了翻天覆地的转变,软件工程流程的普及,使得对程序员的基础要求降低了,但对系统设计的要求提高了。然而,系统设计能力是要与行业结合的,也就是说,要从一个行业应用软件设计的角度来看待程序员的工作,这不仅能够帮助工作,还为以后的“进阶”提供了保障。

把发展方向与自身性格相结合。已经工作两年以上的程序员有几种基本的职业规划:技术专家、软件架构师、实施顾问或销售。最主要的发展方向是技术专家,但技术专家再往上就比较困难,架构师总是只有那么几个。所以,程序员应该根据自己的情况,决定自己做软件架构师还是高级的顾问销售,或者走向行政管理。实施顾问和销售比较偏向市场,除了一定的技术能力外,需要掌握很多IT以外的知识。这些发展方向对于从其他专业转入IT的人员更为适合。比如烟草行业,一定要了解大的趋势、烟草行业的产业政策是什么、直接导致需求是什么等,这些信息对于职业发展很重要。IBM的一些顾问都是行业内的资深专家,他们的发展就非常具有代表性。

程序员培训总结范文第2篇

关键词:软件安全;漏洞;自动化识别

中图分类号:TP311

随着社会信息化的发展,大型社会服务部门对外信息服务多已建立了信息系统,也正是随着各种公众信息服务软件的应用,软件信息安全事件也不断冲击着公众的管感点,因软件安全问题引起服务中断的事情屡见报端,究其原因,很大成分是在软件规模的演变中,原来软件定位多服务于小型区域和内部使用,对软件安全的要求自然比较低,在软件功能定位已发生明显变化,服务于公众客户,承载规模越来越大的时候,软件安全的建设未随之提升,而且随着软件规模的增大,依赖人工进行软件安全漏洞风险的难度也日益增加,一点侥幸和一点为难,为软件安全隐患打开了方便之门,这种问题演变出来的影响如今不得不令人痛心决心予以考虑,这也正是软件代码安全漏洞工具用武之地。

1 软件代码安全检查工具功能评析

随着计算机软件编译技术的发展和市场的需求,目前有多种开源的和商业的静态源代码分析工具可以帮助开发人员和软件安全人员在编码阶段快速扫描出软件代码所潜在的安全隐患,这些技术在我们日常的开发过程中很普遍,只是我们平时没有注意到而已。通过源代码分析工具对代码扫描后的结果,开发人员和安全代码审查人员可以对结果再次复查,极大地提高了代码安全审查的效率,这些分析工具或者技术主要包括如下的功能:

1.1 类型检查

类型检查是静态分析使用得最为广泛的形式,也是程序员最为熟悉的方式,很多程序员并没有在类型检查方面太多的思考,毕竟类型检查的规则被编程语言事先定义好了,并被编译器强制执行,因此关于类型检查的分析器是如何执行的,程序员一般都了解得很少。类型检查能够帮助开发人员全面地排除编码类型方面的错误,比如把一个整型的值赋给一个对象的变量;在编译时捕获错误;也在一定程度上预防运行时的错误。

1.2 代码编写风格检查

Style checkers 是一个专门的代码风格检查的静态分析工具,这种工具在类型检查之外强制一些其它的编码格式的规则,比如空格检查、命名规范、不推崇函数的使用、注释、程序结构等.被style checker检查的错误通常是那些影响代码的可靠性和可维护性方面的缺陷,这些缺陷在程序运行时并不一定是一个特定的错误。

1.3 程序理解

程序理解工具帮助用户理解代码量大的程序,帮助用户理解代码,集成开发环境(IDE)也总是包含一些程序理解功能,比如:“find all uses of this method”and“find the declaration of this global variable.”一些高级的分析可以支持自动程序重构的特性.比如把单个的复杂的函数,裂解成多个更为简单的函数。

高级的程序理解工具也尽量帮助程序员去获取程序是按哪种方式工作的,有些工具尽量使用逆向工程了解代码的设计.因此会给程序员一个图形化的视图,这对程序员去理解代码量大的程序非常有用,尤其是这些代码不是程序员自己写的时候。

1.4 程序确认

程序确认工具接受一组规格要求和代码,并企图为代码提供证明:“代码的实现是满足规格要求的”,如果规格是程序应当作的每一件事情的完整描述,程序确认工具就能够执行一个等同的检查,以确保代码和规格是一致的。

1.5 属性检查

属性检查工具关注临时安全的属性上面,临时安全的属性按顺序列出一些不允许发生事件的清单,。比如不能去访问已经释放了的内存块的地址,大多数属性检查工具允许程序员写自己的规则去检测特定程序的属性。

1.6 缺陷发现

缺陷发现工具的目的并不像style checker 那样去抱怨代码的格式问题,也不去对程序代码和规格做比较。它仅仅指出在程序在哪儿,它的行为将不是程序员本身的意图,大多数程序缺陷工具是易于使用的,因为它们是与一组特定的缺陷规则相关,这些规则描述了一些特定的代码模式,这些代码模式将通常指示代码缺陷。

2 软件代码安全的审查路径

关注于安全的静态扫描工具使用了多种其它静态分析工具的技术,但它更关注识别安全问题这个目标,这就意味着它们应用这些技术的不同,它检查潜在的不安全的库函数的调用;检测边界错误和类型转换错误;使用控制流检测操作顺序不合理所带来的隐患;使用数据流跟踪技术去跟踪不安全的数据的引入及其不安全的操作…。同时也提供自定义安全规则的接口,以满足用户特定安全目的的需求.以下是数据流和控制流的例子。

数据流跟踪来自网络的数据,该数据最后在一块给定的内存执行操作,对来自网络的数据没有做大小控制,会导致缓冲区溢出。

控制流分析所有的操作路径,发现在特定的逻辑下,程序执行不安全的操作,比如下面的对同一内存块释放了两次,导致内存管理紊乱。

3 软件代码安全检测工具功能限定

静态安全扫描器并不是设计去发现架构方面的问题,或者说设计方面的缺陷,也不适合去发现集成方面的BUG,安全扫描器也有一些局限,特别是让它去分析一些大的系统,这些系统包含多种可执行的组件,或者不同的结构层次。应当强调的是:就像人工审计一样,安全扫描器并不能发现软件系统的所有代码的安全缺陷,它们也只能发现一些,毕竟安全扫描器它自己也是一个软件,这剩下的未被发现的问题仍然需要人工去把他们找出来。因此,不要仅仅单一依赖安全的扫描器去确保整个系统代码的安全。开发人员需要学会避免安全扫描器指出的问题,这是好的事情,但并不意味着能够避免那些安全扫描器没能发现的问题。安全扫描的结果不能作为仅有的判断软件质量的唯一方式。否则,软件可能从表面上看起来已经得到改善和提高了,但实际上仍然在有些方面很糟糕。

4 总结

源代码安全扫描器综合了多种静态扫描技术,能够在一定程度上帮助我们检测软件源代码的安全性,我们可以借助它的能力配合人工的安全审计快速审查代码安全。开发组织,为了开发安全的软件,不能仅仅依靠单一的源代码扫描分析工具,还需要加强开发人员安全编码的培训和教育,并结合自身组织的特点,整理出适合自身的安全编码实践,并在不断的项目实践中丰富和完善。

参考文献:

[1]Weber S,Karger P A,Paradkar A.A Software Flaw Taxonomy:Aiming Tools at Security[C]//Proc.of ACM Software Engineering for Secure Systems——Building Trustworthy Applications.Louis,Missouri,USA:[S.N.],2005.

[2]Landwehr C E.Formal Models for Computer Security[J].ACM Computing Surveys,1981,13(3):247-278.

[3]Xia Yiming.Security Vulnerability Detection Study Based on Static Analysis[J].Computer Science,2006,33(10):279-283.

程序员培训总结范文第3篇

我在学校里学的是电气自动化,程序基础仅限于C基础课程的一些知识,后来由VB、HTML转向asp,在asp上花费了不少时间,对asp比较熟悉,后来由于公司业务需要,将开发平台转向,开始对不是很感冒,以为就是asp的一点扩展(那时还不知道三层架构,数据数据访问全在页面里——!),后来招来几个北大青鸟的过来终于意识到的强大之处,经过个人的努力已经逐步掌握了,现在层次上只能讲个人觉得是入门而已,原因是多方面的,待会儿会讲到。

相信从面向过程转向面向对象的同学都有一种感觉:面向对象开始真的有点别扭,涉及到属性,尤其是类之间的各种关系,那时老想用面向过程传递参数多方面啊。于是老在想对象这种东西,从概念中跳中来,以自己的方式去理解才逐渐体会到页面对象的精华来,分层次展现、分级别访问、封装对象之间各种关系逐渐真正理解了,尤其是对象之间的关系,如对象a与对象b两者之间的关系,有些需要完全公开,有些需要隐藏,有些需要通过第三方传递,有些需要给自己的下级可见,有些需要让下级去完成具体操作——这不是现实的实际模型吗?应该这么理解,面向对象来源于现实,它不是一种凭空空想出来的理论,这些对象之间的关系可以将其还原为父子、夫妻、领导下属、同事、朋友之间的关系。相比之下,页面过程往往像是一股脑全部推给用户使用,其中的数据与数据访问方法层次不清晰,在模拟现实上它与面向对象相比更易于入门理解,实质上难于准确直接地表述。

面向对象上另一方面是它的设计模式,在之前的面向过程中对这个设计模式并没有清晰地提出来,面向过程优秀的代码要求高内聚低耦合,从个人的理解上,这仅是对软件开发方法“技”上理论总结;设计模式是达到了“道”的层次,因为它从更大的方向、更抽象的层次来去表述具体的代码模块之间的关系,可以认为设计模式是完全从实际的应用来不断总结得来的经验,之间并没有这种术语,但相信前人肯定也使用到这种思想,它从实际应用于来,当然要应用于实际工作中,认真思考不断总结每个人都会有自己的“设计模式”,可以借鉴前人的思想来去提升自己,不可去为“设计模式”而设计模式。

具体到的实现模型中,真正理解它的机制与方法也就不难理解,记住b/s中离不开post或get,所有的AutoPostBack、SelectedIndexChanged……都是去调用Form传值,加上runat=server的服务器控件打开它生成的源文件也是普通的HTML标签,微软的让软件开发更容易的思路是很好的,时代在前进,很多年前你使用C写出MIS证明你很牛,很多年之后你不在使用C去写“学生管理系统”、“图书馆管理系统”那只能说明你的脑子少一根筋,开发语言都有长处与不足的地方,因为它们适用的场合不同,类似不能拿匕首去跟炮弹比,也不能拿C与PHP比,程序员都有一种偏执的心理,但一点要记住,你面对的用户才有最终发言权,程序能不能满足需要,易用性、稳定性、成本才是应当首先放到重要位置来去谈的。

管理

最开始担任管理一职时开发团队加我在内只有四个人,那时只是抱着接受挑战的心理去做管理,加上我本人比较重感情,团队之间关系相处都不错,但严重的问题逐渐显露出来:工作的随意性、团队精神薄弱、工作方式蛮干,印象深刻的是有几个开始承诺项目不能完工,于是最后天天加班,一直做到早上6点,睡一会7点半接着上班,几个同事都是年龄差不多的小伙子,干劲十足。后来随着时间的推进,问题越来越摆在眼前:项目迟迟不能完工,又由于公司待遇方面让新员工感觉不值得,于是形成了老板抱怨员工也抱怨的状况,我在中间两点都要去“消火”,这期间是我们部门相对最累的时间但也是相对感觉最充实的时候,后来,之前的员工跟我说“再也找不到那种感觉了”,这是我能想像的。这期间主要是老总对我十分信任,工作上主要是管理方法上对我指点了不少。后来我逐步体会到,管理应该是“大家定规则去遵守”,而不应该是“人管人”。

人管人很容易陷入一个误区:领导去时时刻刻关注每个员工,这样最后往往后造成员工对领导的敷衍了事,管理松了员工会责任下下降,管理紧了造成员工与领导关系紧张,另一方面领导时间精力有限必然耗费大量的精力在日常的监督中而不能投入到全局的管理中。

于是“定制度-定分工-定进度”,明确日常所有的规章制度,这期间除了公司主要的工作规章制度外其他的日常工作纪律、日常管理等规章制度都是我本人制订,然后征求大家意见最后去贯彻执行。中间也遇到了不少问题,比如开始我们内部是允许使用QQ的,后来员工用QQ闲聊的时间增多,大大影响了工作效率,最后决心禁止,开始阻力较大(貌似程序员都喜欢挂上几个QQ去到群里搞个群主,虽然群里大多都是菜鸟),最后多次开会,逐个谈话,阐明道理,形势逐渐好转。

项目分工上针对技术水平明确分工,制订项目开发计划,由于开始技术都不是很成熟,不少时间我这边强势要求,使用野蛮方法,完不成加班——我陪着加班,这段时间能感觉到员工对我稍有怨言但总体还是认可的。

这期间公司新招人员,人员的增多更使我意识到团队管理的重要性,这期间版本控制、编码规范、文档管理、Bug管理等诸多问题都得到一一解决,技术水平上主要是我个人利用空余时间学习新知识充电,然后展开各种培训,主要是photoshop、css、js、SQL等方面,培训一方面提升了员工的技术水平,一方面我本人在学习培训的过程中得到的最多,因为这个时候个人要求去思考的会更多,加上我本人对技术兴趣比较深厚,所以后期工作慢慢踏入良性循环。

待遇低、条件艰苦、工作时间长、工作压力大是团队中最大的难题,这方面公司在某些方面决策层有着严重的错误思想,造成技术人员对公司埋怨增多,在这方面我本人只能以劝架婆的身价去安慰身边的兄弟,因为我明白现在公司的问题与当前中国软件行业的通病一样,盲目追求利益最大化,不求质量,但求速度,整个社会风气造成软件行业良莠不齐发展,整个中国三四个人的开发团队组成的公司数不胜数,整个程序员阶层生存状况可想而知,疯狂加班、代码质量低下、维护成本大、稳定性差、用户体验差……。当然我们本身不能去逃避这个现状,对于个人来讲任何假大空的口号都是没有意义的,程序员作为技术人员最重要的是心态,以良好的心态去面对各种问题,发现问题、解决问题,发现问题抱怨是解决不了问题的(“IT民工”是我个人认为IT人最没有正确的自我定位的一个称谓,试想一个人连自己都看不起自己的职业,他能做好自己的工作吗?),最主要是解决问题。

程序员培训总结范文第4篇

关键词:NIIT 引进 教学目标 教学课程 教学过程 实习

为了适应信息时代的需要,我国的计算机技术教育早已如火如荼地开展起来,为国家输送了大量的信息化人才。但是,我们培养的计算机人才依然难以适应社会的快速变化和飞速发展。究其原因,就是我们的计算机人才培养受到了传统观念的影响和制约,没有从“工业化思维”跃进到“信息化思维”,没有正确理解“信息时代”的真实含义。因此,更新观念,引进世界先进教学模式并结合我国实际情况进行教学改革和创新尤为迫切和重要。

一、NIIT培训模式及其引进

NIIT是总部设在印度的IT跨国公司,是拥有多年软件开发与IT职业教育经验的IT培训领导厂商,在发展过程中总结出一套独特、先进、高效的教学方法,以确保NIIT的学员可以在较短的时期内,不仅全面掌握业界的主流软件开发技术,而且获得自我学习、自我提高的能力,从而能够在技术快速更新的IT行业胜任多种富挑战性的职位。

NIIT的基于榜样学习法的培训模式是一种在专家引导下的独立解决实际问题的科学学习方法。在每个教学循环中,首先提出一个IT行业或工业界的实际问题,专家解决这个问题;然后向学生提出另一个类似的实际问题,学生在专家指导下参照专家的方法解决该问题;最后学生脱离专家指导综合运用所学知识解决一个新的实际问题,逐渐培养起学生独立解决实际问题的能力。

计算机专业本科类教材大多是以计算机理论为主,教师以“讲、听、谈、记、练”教学模式授课,培养的学生理论知识较强,动手能力较弱。NIIT教材基于IT行业专家经验以解决实际问题为主,专家以“观察、理解、记忆、练习”教学模式授课,培养的学生动手能力强,理论知识弱。因此,两者具有明显的互补性:NIIT重实践经验,计算机本科专业重理论知识。但是,如果不能将两者有机地结合起来,就难以达到预期的效果。例如,计算机本科教材与NIIT教材脱节、计算机本科教育的目标与NIIT培训的目标差异较大、NIIT培训模式需要有解决社会实际问题的实战经验专家、NIIT培训模式中需要有配套“软件工厂”等等。

目前,大学计算机专业教学正在为适应新的社会需求进行改革,NIIT也正在为适应中国这个新市场而调整自己的目标。我院在办学实践中,既注重从国外引进这种先进的培训模式,也根据实际情况加以创新,对重实践经验的NIIT培训模式与重理论知识的计算机本科专业教学模式取长补短,进行了融合,以解决引进NIIT培训模式后存在的问题。

二、协同教学目标

NIIT各阶段要到达的目标是:

第一学期,要求学生了解程序设计基本概念,熟悉LINUX工作环境,掌握面向对象概念,可使用C++和JAVA编写程序,成为WEB程序员。

第二学期,要求学生掌握使用SQL Server2000的数据库,能对其进行查询、修改、添加,能应用J2EE创建企业级应用程序,了解软件开发生命周期,成为面向对象的可视应用程序员。

第三学期,要求学生掌握XML数据存储和表示,连接.NET体系架构,使用VB.NET编写基于.NET,桌面应用程序,并使用VB.NET和ASP.NET编写企业级分布式网络应用程序,成为企业级应用程序工程师。

第四学期,要求学生能运用Visual C#开发com+,运用WAP.WML,J2ME与. Net技术开发移动应用程序,运用ASP.Net开发网络应用与服务程序,成为针对桌面和移动设备的企业级应用程序工程师。

引进NIIT培训模式后的以四年为期的大学本科计算机教育,不能照搬这种目标。前两年应以培养软件篮领为目标,否则只能是拔苗助长,欲速则不达。因此,新的教学目标需要进行如下调整:

第一学年的目标(里程碑一)是普通软件蓝领,要求学生夯实基础,养成有“工业化、组件化、标准化”意识的“软件蓝领”的习惯,掌握程序编码标准、COM/JavaBean组件编制技术、流水线装配流程。并以此为基础对真正合格“蓝领”进行验收。

第二学年的目标(里程碑二)是高级软件篮领,要求学生具有扎实的功底,养成有“高工效、低成本、高质量”意识的“软件蓝领”的习惯。掌握服务器端所提供的企业级基础设施、能快速而高效编制低成本的企业级COM+/EJB组件的方法。

第三学年的目标(里程碑三)是普通软件工程师,要求学生提高理论知识,养成“创新设计”意识,逐渐从软件蓝领提升到软件工程师。

第四学年的目标(里程碑四)是有经验的软件工程师,此阶段主要是让学生“走”出去,给学生提供机会与社会接触,进行生产实习。这也是大学本科计算机专业的培养目标。产品(学生)是否合格,要由社会来检验。

三、协同教学课程

NIIT教学模式是很先进的教学模式,在专家引导下用专业技能解决实际问题的同时,专家还必须引导学生探索相关的技术文献。它强调的不仅是知识的传递手段,更注重信息的获取过程。正因为如此,如果在教学过程忽略了信息获取能力的培养,就会出现知识断层。不仅会降低学生学习高级知识的兴趣和热情,而且也打破了课程的整体性和关联性。因此,新的IT课程计划需要注意以下几点:

(1)在NIIT课程之间插入部分专业或体系结构课程,防止知识断层。例如,在《C++程序设计》之前插入计算机专业课程《C语言程序设计》,打好程序设计的基础;在《C++程序设计》与《COM组件设计》之间插入《MFC》等。其中,《MFC》填补了《C++程序设计》之后的知识断层。如表一所示。

以C++系列为例,《C语言程序设计》专注于打语法基础,《C++语言程序设计》递进到面向对象思想,《Visual C++程序设计》着重讲解如何利用现有的类库以提高生产力,《用ATL设计组件》为现代软件开发模式软件工厂打下组件涉及技术基础。《用C++设计COM+》递进到开发企业级组件时如何利用已有软件基础设施以进一步提高生产力,最后在《基于.NET的软件开发》中进入真正的企业级应用开发。其它课程可联系这一主线,围绕成为真正精通C语言的程序员这一阶段性目标进行设置。按这种模式进行课程设计,因强调了整体性和联系性,不会出现知识断层,明确的方向感和不断积聚的成就感,使教师方便教,学生易于学,并逐渐形成良好的教学氛围。

(2)在专业理论课程中插入NIIT的培训内容,理论结合实践。例如,在《操作系统原理》中插入NIIT的《Linux》课程;在《数据库原理》中插入NIIT的《SQL Server》课程;在《软件工程》中插入NIIT的《UML》;在《计算机网络》中插入NIIT的《HTML》等。由于NIIT教材18个月更新一次,使我们的专业理论课能紧跟技术的发展,而这些发展了的新技术、新工艺也会作用于理论课程,促使理论知识的更新。

(3)以市场为导向,按公司类别开设课程,进行对比学习。例如:

(4)以项目为主导,突出电子商务,进行有针对性的项目训练。例如,以手机项目开发为目标,安排《电子商务》、《XML》、《网络安全》、《项目管理》等知识的学习。

四、协同教学过程

NIIT培训模式的引进能极大地促进计算机专业的教学改革,但同时也为相关教师带来了新的挑战。

首先,NIIT教师必须充分了解计算机技术体系结构,紧跟信息技术的发展,并适应其快速的变化。为了紧盯市场和新技术,NIIT教材每18个月要更新一次。这就需要NIIT教师不断地学习,以更新自己的知识结构。

其次,NIIT教师必须具备实际项目的开发能力和经验。NIIT教材面向程序员,指导学生如何按部就班地编程。如果教师只是按部就班地按照课程进行讲解,因其清晰性和流程性,还是比较容易的。但要“带”出一批合格的程序员(在我们的教学中,这些程序员的目标是“有经验的软件工程师”)就比较困难。因为NIIT教学模式要求教师必须具有各个领域的实际开发经验(这也就是NIIT为什么称为NIIT教师为“专家”的原因),用这些经验正确引导学生,用各种教学设施以及多媒体功能激发学生自身的学习兴趣和热情,现场解答他们提出的各种技术问题,并解决技术难题。

第三,NIIT教师之间必须紧密协作和配合。NIIT教学模式中强调学生自组织学习能力和创新意识的培养,课程之间的衔接非常强。例如,对于COM+和EJB的教学,教师讲得再清楚,如果学生对COM和JavaBean不是很清楚,还是没办法理解。而对于COM和JavaBean的学习,其前提是学生对组件技术软件工厂”见习经验。再如,NIIT在安排J2EE教学内容时,是基于学生已经完全掌握Java程序设计技术的,因此,J2EE内容就显得有些宽泛,包括JDBC、JavaBean、RMI、Servlet、JSP、EJB等。这就要求J2EE课程教师与Java基础课程教师之间的协同:Java基础课程教师在讲解Java课程时,引导学生了解将要学习的递进知识J2EE及相关教师的教学特点,增加学生对未来知识的学习兴趣以及为什么要打Java这个基础。J2EE教师则应适当地重复以前学习过的内容以防止遗忘,在项目实践中引导学生多使用以前的技能以防止退化等。

五、协同实习过程

随着计算机技术突飞猛进的发展,软件的应用领域也发生了根本的变化。从单机模式、C/S模式一直到现在的网络计算,特别是网络计算带领软件产业进入了一个新的时代。软件开发领域正面临着一些新的课题。如复杂的分布环境、灵活的应用模式、广泛的包容性等。传统的软件设计思想已远远不够,出现了采用构件化和软件复用等软件开发方法。NIIT的教学内容也主要围绕这些新的方法进行设计,如引导学生编制组件、生产组件、装配组件等。

为了让学生体验如何当软件“蓝领”,并成为一个合格的软件篮领,进而逐步由软件篮领提升自己成为软件“工程师”,就需要建立“软件工厂”并输入“组件化”观念。因此,有必要“创办”虚拟“软件工厂”,使之成为一个共享、协作、开放的软件群体。在按教学目标和社会实际需求决定生产什么产品后,学生可以按“厂”里的规定和要求进行设计、生产并在“厂”里测试组件,也可以在教师的带领下组队协作开发。这些由学生在学习期间按规格生产的组件将来既可以作为共享软件对外,也可以作为开源项目进行交流。学生在NIIT专家指导下还可以学习和研究的开源项目,为工厂提供更加先进的思想和便于重用的软件零部件。当学生能从实际运行看到随着自己组件的加入,应用程序功能逐渐增强和完善,而这种程序不只是练习时,其成就感是不言自明的。既感到学习的轻松,又能了解自己在一个团队里的作用。

学生在学习组件编程时如果没有“软件工厂”实习,就感觉不到编制组件的好处,也体会不到团队的协同编程能力和工业化生产的优势,就会逐渐对先进的编程技术失去兴趣。如果学生觉得想成为软件“蓝领”都那么难,又怎么会对成为软件“工程师”有信心呢。因此,这种让学生体会软件工业化大生产的实习过程是必须而且相当重要的一环。

综上所述,为了适应社会的快速变化和飞速发展,我们既要引进国际上先进的计算机人才培训模式,以摆脱传统的观念和陈旧的习惯,但同时也要注意根据我国的实际情况加以创新。21世纪对新型人才的知识结构和能力素质都提出了新的需求,从联合国教育委员会提出的新型人才“四大支柱”中可以看出,21世纪面临的全球性危机要求新型人材富有创造性、能合作共事并具有高尚的道德精神。具备创新能力是对新型人才的基本要求,这就要求我们在进行计算机专业教学改革时,既要注重“工程化”、“标准化”、“流程化”方面的蓝领技能培训,又要强化学生的自组织学习能力和创新设计意识,才能培养出合格的信息技术专业人才。

参考文献:

[1]Jim Arlow,Ila Neustadt著,UML and the Unified Process,机械工业出版社,2003年版。

[2]伊利亚·普利高津著,湛敏译,确定性的终结,上海科学教育出版社,1998年版。

[3]NIIT GNIIT(FTC) 类培训教材

[5]中国信息导报,试论创新人才,1999年第7期NO.71999。

程序员培训总结范文第5篇

【关键词】 软件文档;软件工程;设计和实现;管理和维护

一、软件文档的作用

(1)管理依据。在软件开发过程中,管理者必须了解开发进度、存在的问题和预期目标。每一阶段计划安排的定期报告提供了项目的可见性,定期报告还提醒各级管理者注意该部门对项目承担的责任及该部门效率的重要性。开发文档规定若干个检查点和进度表,使管理者可评定项目的进度。如果开发文档有遗漏、不完善或内容陈旧,管理者将失去跟踪和控制项目的重要依据。(2)任务之间联系的凭证。大多数软件开发项目通常被划分成若干任务,由不同的小组去完成,学科方面的专家建立项目,分析员阐述系统需求,设计员为程序员制定总体设计,程序员编制详细的程序代码,质量保证专家和审查员评价整个系统性能和功能的完整性,负责维护的程序员改进各种操作或增强某些功能。这些人员需要的互相联系是通过文档资料的复制、分发和引用而实现的,因而任务之间的联系是文档的一个重要功能。大多数系统开发方法为任务的联系规定了一些正式文档。分析员向设计员提供正式需求规格说明,设计员向程序员提供正式设计规格说明等等。(3)质量保证。对于负责软件质量保证和评估系统性能的人员需要程序规格说明、测试和评估计划、测试该系统用的各种质量标准以及关于期望系统完成什么功能和系统怎样实现这些功能的清晰说明;必须制订测试计划和测试规程,并报告测试结果;还必须说明和评估完全、控制、计算、检验例行程序及其他控制技术。这些文档的提供可满足质量保证人员和审查人员上述工作的需要。(4)培训与参考。软件文档的另一个功能是使系统管理员、操作员、用户、管理者和其他有关人员了解系统如何工作,以及为了达到各自的目的,如何使用系统。(5)维护支持。维护人员需要软件系统的详细说明书以帮助熟悉系统,尽可能找出并修正错误、改进系统,以适应用户需求的变化或适应系统环境的变化。(6)历史档案。软件文档可用作未来项目的一种资源。通常文档记载系统的开发历史,可使有关系统结构的基本思想为以后的项目所利用。系统开发人员通过审阅以前的系统以查明什么部分已试验过,什么部分运行的很好,什么部分因某种原因难以运行而被排除。良好的系统文档有助于把程序移植到新的系统环境中。

二、软件文档管理在项目进程中的重要作用

软件文档管理,是指在一个系统(软件)项目开发进程中将提交的文档进行收集管理的过程。文档管理在项目开发中不是很受重视,当发现其重要性时,已经为时已晚。整个项目可能因此变得管理混乱,问题无据可查。作为管理完善的项目文档,管理者完全可依顺它的轨迹看清整个项目进展的脉络,通过对阶段性文档的把握使整个项目质量得到很好的掌控。制定一套完整有序的项目文档管理规定十分必要,其作用有以下6个方面。(1)它是项目管理者了解开发进度、存在的问题和预期目标的管理依据。(2)大多数软件开发项目会被划分成若干个任务,并由不同的组去完成。文档管理则是不同小组任务之间联系的重要凭证。(3)可提供完整的文档,保证项目开发的质量。(4)项目文档是系统管理员、操作员、用户、管理者和其他相关人员了解系统如何工作的培训与参考资料。(5)项目文档将为系统维护人员提供维护支持。(6)项目文档作为重要的历史档案将成为新项目的开发资源。

现在大多数金融、通信企业为了更好的服务客户、准确掌握自身数据,都在不遗余力地建立数据仓库系统。企业数据仓库(EDW)从筹建项目组到软件开发建设再到系统上线维护,基本涉及了软件项目建设的所有环节,对文档管理提出了较全面的要求。以下就EDW建设为例作了探讨,首先,借助VSS软件建立项目文档管理服务器以保存所有的项目文档。其次,项目保存的文档要涵盖项目管理、项目调研、项目开发、项目应用、系统管理、系统测试验收、项目培训、版本控制、数据质量管理、用户手册、系统上线等整个项目周期。从项目管理者的亲身体会来讲,这些文档的保存往往是混乱无序、无法快捷地获得所需信息。究其原因,项目组在系统开发过程中虽然很重视文档的保存,但是忽视了文档的管理。文档归档没有正式的管理要求,缺少文档提交的依据和规则。最后,建立文档管理规定。由于项目文档管理员按照规定对文档进行管理,因此项目经理及小组成员都能快速得到自己所需的各类文档。项目经理还可很清晰地透过项目文档把握项目进展情况。

三、如何建立软件文档管理规定

从不同的行业和项目的个性出发,需要管理者结合实际情况制订出适合自身文档管理的规定。《软件文档管理指南》和《计算机软件产品开发文件编制指南》(以下统称《指南》)给提供了相关的指导。首先要明确关于软件项目文档的具体分类。《指南》中提出文档从重要性和质量要求方面可分为非正式文档、正式文档;从项目周期角度可分为开发文档、产品文档、管理文档;更细致还可分为l4类文档文件,具体有:可行性研究报告、项目开发计划、软件需求说明书、数据要求说明书、概要设计说明书、详细设计说明书、数据库设计说明书、用户手册、操作手册、模块开发卷宗、测试计划、测试分析报告、开发进度月报、项目开发总结报告。这样的分类细化了项目进度中各个阶段所需管理的文档。其次需要将项目文档进行归类整理。对EDW项目组文档情况与软件文档管理指南进行对比分析,可以看出,没有规范管理的EDW项目组文档存在以下4方面问题。(1)项目组在开发初期针对业务部门和科技部门进行了需求及信息调研,可覆盖部分软件需求和数据需求说明书的内容,但缺少业务部门对项目需求描述和变更的文档记录。这部分文档需建立相应目录予以保存。(2)对于设计说明,在系统较复杂的情况下,设计阶段应分解成概要设计和详细设计两个步骤。目前EDW项目组只对ETL模块提供了概要设计说明书,并没有单独的存放目录,而是同其他设计文档混乱地放在一起。对于比较复杂的应用开发项目,应将这两种设计说明文档分目录管理。(3)在项目测试验收中,项目组没有要求将测试计划文档和测试结果报告进行规档,只重视了测试过程中的问题文档,因此无法掌控测试进度与质量。(4)EDW项目组的工作分为模型设计、ETL、集市应用3个工作小组,对应的文档管理需要围绕这3个主题进行。其中模型设计和ETL都是数据仓库项目实施的模块,集市应用则包括建立在数据仓库基础上的小项目开发。因此,文档管理也应该针对这3个部分不同的性质制定管理规则。

针对EDW文档管理存在的问题,EDW项目组最终依据通用规则建立了正式的项目文档管理规定。具体规定有以下5点。(1)将文档分为两大部分提交管理。项目常规文档和项目归档文档。常规文档的提交和使用根据项目组内部小组成员任务的不同进行权限划分;项目归档文档由项目管理主管(或项目文档管理员)将项目中的重要文档从常规文档中进行分类归档。(2)常规文档管理目录分为项目日常管理文档和项目流程管理文档。(3)日常管理文档包括项目报告、会议纪要、项目管理模板、重大问题跟踪、数据质量管理。项目报告可分为个人周报、小组周报、项目周报、项目简报,项目简报。并都按照不同目录进行分类管理。(4)提交完整的项目开发、应用开发流程文档。一般包括项目计划、业务需求说明书、数据需求说明书、模块、应用开发文档、系统测试文档、详细设计文档、系统测试文档、用户手册、上线文档、培训资料、系统运行维护等。(5)所有项目组成员均建立VSS软件环境下的对应用户,各自拥有对以上各类文档的读、写、增加、删除权限。由各项目小组长保证提交已保存文档的质量;由文档管理员或项目经理整体把握项目文档在各阶段的提交情况。

参考文献

[1]李成大.软件工程基础[M].北京:电子工业出版社,2003

友情链接