期刊大全 杂志订阅 SCI期刊 投稿指导 期刊服务 文秘服务 出版社 登录/注册 购物车(0)

首页 > 精品范文 > 软件开发基础知识

软件开发基础知识精品(七篇)

时间:2023-07-02 09:21:57

软件开发基础知识

软件开发基础知识篇(1)

关键词:CDIO;软件工程;课程体系

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2013)10-2415-03

CDIO 工程教育模式是近年来国际工程教育改革的最新成果。CDIO 是构思(Conceive)、设计(Design)、实现(Implement) 和运作(Operate)四个英文单词的缩写[1]。CDIO 工程教学模式是一种倡导以工程项目为主线,将项目研发不同阶段涉及的知识与课程进行有机的结合,教师针对课程在工程项目的地位,运用多种教学方法引导学生进行主动学习,强调学生的学习主体性,注重能力培养的一种教学模式。

1 软件工程专业应用型人才培养理念

1.1 人才培养目标

软件工程专业要求培养适应计算机应用学科的发展,特别是软件产业的发展,具备计算机软件的基础理论、基本知识和基本技能,具有用软件工程的思想、方法和技术来分析、设计和实现计算机软件系统的能力,能在IT行业、科研机构、企事业中从事软件工程项目的开发与测试、网站开发、网络游戏设计的高素质应用型人才。

1.2 基于CDIO模式的人才培养过程

CDIO 理念下的软件工程专业人才培养以软件工程项目为主线,采用理论、实践、案例分析、综合项目实践和工程化毕业设计的一体化教学模式。在整个人才培养过程中,按照软件工程项目的基础知识、分析、开发、运行和维护的流程组织教学,同时培养学生具有较强的外语能力、扎实的软件工程基础知识,并熟练掌握软件开发与测试技术,熟悉服务外包软件开发流程。

软件工程是注重系统化和工程性的专业, 其内容具有厚基础、更新快、实践重等特点,这些特点决定了软件工程人员要具备坚实的理论基础、一定的工程实践能力和创新能力。本着培养“技术基础厚、应用能力强、综合素质高”应用型技术人才为宗旨,软件工程专业的教学安排如下:第一学年主要学习公共基础课程和部分专业基础课程,使学生掌握从事软件工程领域的专业基础知识,培养学生的数学工程职业基础和人文素养;第二学年主要学习专业基础课程和专业核心课程,重点结合工程项目进行“做中学”,形成自主学习、团队协作和计算机软件基础及软件工具软件产品的基本工程能力;第三学年主要学习方向核心课程和专业拓展课程,引进当前软件开发新技术、新方法和新平台,采取合作探究式学习方法,培养软件系统与应用及软件工程软件管理能力;第四学年主要进行综合项目实践类课程的学习,塑造学生软件工程能力、团队协作能力,对学生的职业岗位能力进行训练,使学生在进入岗位前就具备较好的工程经验,实现从学校到职场的转变。

1.3 项目贯穿学习过程

CDIO模式的核心就是项目教学,可将企业真实项目直接引入课堂,也可以由教师设计项目,要求项目涵盖该教学任务的大多数知识点,并且能有明确的阶段性目标。在项目教学中,教师的身份也就集工程师、导师、教师“三师”为一体,从软件项目的构思(C)、设计(D)、实现(I)到运行(O),教师的工程化指导至关重要,这就要求教师进行自身工程实践的经验积累。项目教学中采用过程化考核方式,以成果为考核依据。

2 软件工程专业综合能力素质的分解

2.1 综合能力素质分解原则

软件工程专业综合能力素质的分解基于以能力培养为主线,突出实践性、发展性和工程性,注重学生的基本人文素质、职业基础和创新能力的培养,注重学生潜在发展能力、职业适应能力和职业迁移能力的养成,注重专业素质和身心素质的锻炼培养。同时结合区域产业发展,强调专业素质和非专业素质并重。

2.2 综合能力素质分解

结合CDIO模式的特点,软件工程专业核心能力分解为项目构思阶段的计算机软件基础(CSE)能力、项目设计阶段的软件工程软件管理(SEM)能力、项目实现阶段的软件系统与应用(SSA)能力、项目运行阶段的软件工具软件产品(STP)能力,非专业技能素质的数学工程职业基础(MEP)能力和基本素质(BAS)贯穿这个项目的CDIO模式过程。CDIO模式下的软件工程专业综合能力素质分解如图1所示。

3 基于专业综合能力素质分解的软件工程专业课程体系模型

专业人才的培养要体现知识、能力、素质协调发展的原则。科学认识和分析知识、能力、素质的辨证关系,以“知识是基础、是载体,能力是知识的综合体现,素质是知识和能力的升华”先进理念为指导思想,要设计适当的知识为载体,实施素质和能力培养;设计适当的知识群构成知识体系,要强化知识体系的设计与建设,使专业教育内容的每一个教学模块构成一个以知识体系为载体,实施素质和能力培养有效的训练和学习系统。

3.1 课程体系开发思路

课程体系是达成人才培养目标的有力支撑,科学合理的课程体系会促成高端技能型人才的培养。根据专业综合能力素质分解的结果,基于CDIO 的软件工程专业课程体系的构建原则从以下几方面进行考虑:

1) 充分发挥工程性的专业特点,基于CDIO培养大纲设置课程体系,实现学校与企业零距离接轨。

2) 注重公共基础课程、专业基础课程、专业核心课程的课程设置, 借助当前主流的软件开发平台,做到软件开发语言和技术四年不断线。

强调学生工程性、技术性、实用性、系统性、综合性、复合型和适应软件工作流程等素质的培养,实现“熟悉软件工程技能、更完整的系统级认识、掌握某一方向的软件设计开发技术和适应软件企业的英语加计算机能力”四个目标。在这一阶段中,综合考虑主干专业课程和特色课程的设置,全面考虑课程之间的关联,强调统一设计、统一规划。

3) 结合区域经济发展特点,根据软件的新兴技术和行业软件的发展需要设置专业选修课, 形成独特的教育内容、教育途径和教育体系。

4) 遵循软件行业的先进性、灵活性、工程性原则。

3.2 模块化平台课程体系框架

按照顶层设计的方法,软件工程专业教育内容由普通教育内容、专业教育内容和综合教育内容三个类别,公共基础(通识教育、基本素质)课程平台、学科及专业基础课程平台、专业(核心)课程平台、专业拓展(选修)课程平台、集中实践教学项目平台等五个平台及13个教学模块构成:

普通教育内容包括:①人文社会科学,②自然科学,③外语,④体育,⑤实践训练等教学模块。

专业教育内容包括:①本学科专业基础,②专业核心,③专业方向,④专业实践训练等教学模块。

综合教育内容包括:①思想教育,②学术与科技活动,③文体活动,④自选活动等教学模块。

课程体系中五大教学平台之间的关系如图2所示。

各平台的内容包括:

1)公共基础课程平台

该平台是依据人才培养规格而设置的,包括较宽广的基础课程、通用课程。包括英语、政治理论课、德育和体育、数学基础等。侧重培养基本素质、职业素质和职业道德。主要课程有思想道德修养与法律基础、思想、邓小平理论和“三个代表”、马克思主义基本原理、中国近代史纲要、大学英语、体育与健康、高等数学、大学语文等课程。

2)学科及专业基础课程平台

该平台是依据软件工程学科来设置课程,侧重于软件工程中的专业技术。包括软件基础课程群、硬件基础课程群和理论基础课程群等,主干课程包括顺序开设的程序设计基础、数据结构与算法、工程数学等课程。

3)专业(核心)课程平台

该平台是依据人才培养主线而设置课程,主要培养学生面向软件开发岗位群的应用能力,并为其解决实际应用问题打下坚实的理论基础。主要包括以下顺序开设的课程:面向对象程序设计、面向对象程序设计、建模课程、系统开发、软件工程、项目管理、软件质量保证、计算机网络等。

4)专业拓展(选修)课程平台

该平台是依据应用型本科定位而设置的。考虑到计算机应用型人才在知识结构上应具有知识面宽、基础扎实、应用性强的特点,在该课程平台上设置的课程具有学科知识面宽;理论深度稍低,学科知识在应用有针对性,共设计了职业素质、软件体系、行业软件应用、游戏软件等模块,设置了如下课程:国际软件工程师职业道德、软件体系结构、软件项目管理、物流信息技术、大宗商品交易系统、管理信息系统、RIA编程技术、游戏脚本编程、3DMAX建模制作、心理学、Flas制作、中国文化史等。

5)实践教学项目平台

4 人才培养评估

CDIO 模式下的软件工程专业人才培养模式以提高学生工程实践能力为本,注重培养学生的工程基础知识、个人能力、人际团队能力和工程系统能力。在CDIO工程教育模式中,参照 CDIO 标准11,采用多元化过程式的模式评估学生的软件工程能力和职业素养。其中,工程能力主要从软件开发与实现、软件测试与质量保证、软件建模、软件开发过程管理、软件方法、文档写作和英文阅读写作能力等方面进行评估;职业素养主要从职业道德、职业素质、主动学习能力、行业知识技术和团队合作能力等方面进行评估。评估采用理论考核、实践考核、大作业和小组评价等方式。理论考核主要考查学生对软件工程基础知识的掌握程度,实践考核主要考查学生的工程系统能力,大作业主要考查学生对项目工程的理解和掌控程度,小组评价主要考查学生的团队合作能力。这种多种方式结合的考核模式能够比较全面有效地反映学生的工程构思、设计、实现和运行各个阶段的情况,促进学生全方位发展。

5 结束语

基于CDIO 的软件工程专业课程体系符合软件工程专业的工程性和学科性的特点,围绕软件工程基础知识、软件管理能力、软件系统与应用能力和软件工具和产品能力四个方面开展工作,创新了人才培养模式,加强了软件开发技术和工程方面的课程教学,这些课程通常都能使学生拥有自己的作品,教学效果良好。实践教学环节无疑是与企业无缝连接最好的渠道,通过设置多种方式的实践教学,使学生真实的接触企业项目,按照企业要求模拟软件开发流程,在毕业设计完成后,学生的实践动手能力达到企业要求。真正做到了“技术基础厚、应用能力强、综合素质高”,这是CDIO教育模式的本土化,为促进工程教育模式的改革和创新、卓越工程师的培养和现代职教体系的建设提供借鉴。

参考文献:

[1] 尹春娇, 沈桂芳. 探析CDIO模式在应用型本科院校软件工程课程实践教学中的应用[J].科技信息, 2012(31):15-16.

[2] 张锦华,丁新慧. 基于CDIO理念的创新型软件人才培养模型[J]. 周口师范学院学报,2012(9):119-122.

[3] 屈卫清. 区域产业发展与软件专业细分相关性[J]. 人民论坛, 2010(11):234-235.

[4] 田玲, 尹庆民, 马丽仪. 基于CDIO模式的服务外包人才培养探索与实践[J]. 科技管理研究,2012(16):164-167.

软件开发基础知识篇(2)

中图分类号:G642

摘要:针对软件体系结构课程内容理论性和抽象性较强,且学生大都没有大规模软件开发经验的现实问题,分析“做中学”理念在软件体系结构课程中的应用必要性,提出“做中学”理念指导的软件体系结构课堂讲授内容和实验教学环节的设计方法,说明通过强化课程实践环节教学,促进学生对课程理论知识和方法的理解,并培养学生掌握切实可用的体系结构分析和设计能力。

关键词:做中学;软件体系结构;实践教学

0 引言

软件体系结构(Software Architecture)是根植于软件工程发展起来的一门新兴学科,目前已经成为软件工程研究和实践的主要领域。软件体系结构是一种抽象的软件系统规范,主要包括用其行为来描述的功能构件和构件之间的关联关系,是研发较大规模复杂软件的基础和核心。完成有效、合理的软件体系结构设计能够极大提高软件研发效率和最终软件系统的质量,并且,优秀的软件架构师也是我国软件行业迫切需要的高端人才,因此,在高校开设软件体系结构课程,使学生真正具备进行软件体系结构分析和设计的基础知识和实际应用技能,对我国软件行业的快速、健康发展具有重要的现实意义。

软件体系结构是高校软件工程专业本科生的一门核心课程,通常在本科高年级开设。该课程知识覆盖面较广,依据软件设计经验总结出来的理论知识抽象程度较高,因此,面对刚刚接触软件项目研发、非常缺乏大规模软件实际开发经验的本科生,选取哪些内容进行本科教学,让学生在理解课程内容的基础上,掌握实际软件体系结构的设计方法,完成抽象理论知识与实践应用能力的有效结合,是软件体系结构课程教学中值得深入研究并亟待解决的关键问题。已有高校教师从教学内容选取和教学经验分析、案例驱动的教学方法、基于能力本位的课程开发方法等方面对该问题进行了教学实践和探讨。为进一步强化实践训练在课程中的重要作用,并推进以学生能力培养为主体的教学方式,笔者从加强软件体系结构实践教学、培养学生软件体系结构实际分析和设计能力的角度出发,充分利用“做中学”教学理念在工程实践类课程教学中的方法优势,提出了“做中学”理念指导下的软件体系结构课堂讲授内容和实验教学环节的设计方法,并从教学目标、课堂教学内容、实践环节设计、教学考核与评价等方面阐述了该方法的实施过程,有效改善了之前困扰教学的课程内容抽象程度高、教师讲授过于书本化、实验内容较复杂等实际问题。结合内蒙古大学计算机学院本科生软件体系结构课程的教学实践,在“做中学”理念指导下的课程教学取得了较好的教学效果,更利于学生理解抽象的课程理论知识,掌握在实际软件研发中设计软件体系结构的应用技能。

1 软件体系结构课程教学面临的问题

软件体系结构课程教学的核心问题是如何让学生更好地理解软件体系结构设计在软件研发生命周期中的作用,并掌握重要的软件体系结构分析和设计方法。然而,该课程涵盖的基本概念、原则和方法通常是对大量不同领域软件研发的共性特征和经验的总结与精化,具有很强的理论性和抽象程度。当授课对象为非常缺乏大规模软件开发经验的本科生时,教学难度较大,很容易导致照本宣科、理论远离实际,使学生认为软件体系结构是高深但没有实际应用价值的课程。

软件体系结构课程教学面临的具体困难和现状主要表现在3个方面。

(1)软件体系结构概念抽象,体系结构设计的必要性和优势很难在设计阶段得以直观体现。如果单纯讲授体系结构概念和基本原理方法,对还没有接触过较大规模软件项目实际研发的本科生而言,没有任何感性认识,非常难以理解,势必缺乏进一步学习的主动性。

(2)计算机专业本科生更习惯于先理解课堂知识、再编些小程序验证的学习方法,例如,高级语言程序设计课程可以让学生直接编写示例程序,数据结构与算法课程可以让学生编程实现算法等。而学生在学习软件体系结构课程时,很难做到在有限的课时内,通过实现多个完整的较大规模软件系统来理解体系结构设计的重要性,并掌握各种不同软件体系结构风格的设计方法。

(3)课堂教学多以教师对基本概念和基本原理的讲授为主,互动j生较差。课程教材缺乏贴近学生实际且趣味性强的软件案例库,学生对软件架构分析与设计方法缺少正确的感性认识。

为克服上述教学难题,进一步改善教学效果,软件体系结构课程教学必须立足于加强实践环节教学和考核,防止课堂知识讲授与课后实践应用脱节。为此,笔者强化“做中学”理念对软件体系结构课程教学的指导与驱动,在课堂结合实例对核心知识点的发展过程、原理及应用方式进行讲解的基础上,引导学生参与有针对性、由实际案例驱动的课程实践环节,并控制实践环节的难度和实验工作量,使学生切实体会并掌握体系结构的实际分析和设计方法。

2 “做中学”理念指导的教学设计

我国教育先驱陶行知先生曾提出:教学做是一件事,不是三件事,我们要在做上教,在做上学,不在做上用功夫,教固不成为教,学也不成为学。可见,“做中学、做中教”的理念并不是一种新出现的教育方式,但将“做中学”的理念应用于高校软件体系结构课程的教学实践仍然具有重要意义。原因在于:首先,“做中学”的目标是引导学生参与以思考和探究为中心的学习活动,学习知识的实践过程是学生亲自参与的主动过程,而不是教师向学生灌输知识的被动过程,这恰可以有效改善因课程内容理论性和抽象性强而容易造成的照本宣科、理论远离实际等不良教学效果;其次,“做中学”使学习过程变为学生提出问题、动手操作、思考讨论、得出结论、表达交流的过程,并且在此过程中培养学生的科学态度及发现、分析和解决问题的能力,这对非常缺乏大规模软件开发经验的本科生而言,利用课程实践环节辅助理解和掌握课堂知识,培养切实可用的体系结构分析和设计能力,可以在一定程度上很好地弥补他们参与实际软件研发项目经验的不足,为学生今后的学术深造或工作奠定良好的知识和能力基础。

2.1 教学目标

软件体系结构是为软件工程专业开设的一门必修课程。课程教学目标是秉承“做中学”的教学理念,强化对“3种基础知识”的学习和“2种基本能力”的培养,使学生通过实践环节理解“3种基础知识”,掌握“2种基本能力”。具体而言,课程重点讲授软件体系结构的概念与作用及软件构件化的概念与应用方式、典型的软件体系结构风格及模型描述、基于软件体系结构的软件开发方法等3个方面的基础知识。通过课程讲授与实践教学,使学生能够有意识地从软件体系结构的角度审视软件系统,培养学生的“软件体系结构分析能力”,即能够对一个具体的已有软件系统分析其体系结构的优势和不足,并提出改进意见和建议;培养学生的“软件体系结构设计能力”,即选择适合的软件体系结构风格、利用软件构件技术、设计满足软件需求的软件体系结构的能力。最终,通过本课程的学习和实践,为学生今后设计并实现较大规模的复杂软件项目奠定扎实的知识和能力基础。

2.2 教学内容安排

2.2.1 课堂教学内容

内蒙古大学计算机学院采用张友生等编写的《软件体系结构:原理、方式与实践》作为课程教材,杨芙清等编写的《构件化软件设计与实现》作为主要参考教材。为更好地在整个教学过程中贯彻“做中学”的理念,课堂教学将按照表1所示的课堂讲授内容及学时安排对核心知识点的发展过程、原理及应用方式进行重点讲授,并通过后续实践环节使学生深入理解这些知识。

2.2.2 实践环节设计

实践环节是“做中学”理念的核心,是整个教学活动的重心。表2给出了内蒙古大学计算机学院软件体系结构课程实践环节的内容设计及用时安排。实践环节要充分调动学生的积极性,使学生通过这些实践活动来深入理解课堂知识,掌握切实可用的软件体系结构分析和设计方法。

从表2所列的实践环节内容设计可以看到,内蒙古大学计算机学院软件体系结构课程实践环节的设计具有知识点覆盖广、针对性强、实用性高、学生易上手等特点,并且课程实践活动贯穿了整个学期的16个教学周,更利于学生持续、全面理解抽象的课程理论知识,并切实掌握如何对一个具体的软件系统进行体系结构分析和设计的方法,完成教学目标中“3种基础知识”的深入学习和“2种基本能力”的实际培养。

2.3 考核方式

“做中学”理念指导的软件体系结构课程教学强化了实践环节是整个教学过程的基础和核心,所以在学生成绩考核方式上,同样需要突出实践环节所占的比重。内蒙古大学计算机学院软件体系结构课程考核中,学生总成绩=期末考试成绩(30%)+实践环节考核成绩(70%)。其中,实践环节的考核方式、要求及成绩所占分值百分比如表3所示。

在内蒙古大学计算机学院软件体系结构课程教学实践过程中,表3给出的实践环节的总成绩是按照“基础分+提高分”的方式进行评定的,其中基础分对应于该项实践内容的基本要求,而对完成情况好的学生作品可以适当加上提高分,但总成绩不超过该项实践内容基础分的1.5倍。例如:对实践内容p3,如果实现了一个基本的Struts+Hibernate的软件系统就可以得到基础分,而如果实现了完整的基于SSH的软件系统就有机会得到l。5倍的基础分(超出基础分的部分就是提高分);对实践内容p4,如果实现了demo例程就可以得到基础分,而如果自行编写了实现新功能的软件就有机会得到1.5倍的基础分。此外,程序代码规范、课堂汇报精彩、文档结构合理且论述有条理的学生作业都可以适当地加上一些提高分。这样既可以要求所有学生完成“3种基础知识”的巩固和“2种基本能力”的锻炼,又可以使思考深入、动手能力强的学生脱颖而出,培养他们更加全面和深入的体系结构分析和设计能力。

2.4 教学效果分析

内蒙古大学计算机学院已连续多年为三年级本科生开设软件体系结构课程,并在近两年的教学过程中逐步深入和完善本文提出的“做中学”理念指导下的软件体系结构课堂讲授和实验环节的设计方法,取得了越来越好的教学效果,主要表现在两个方面。

从“教”的角度而言,教师通过实践环节的实训可以更直观地发现哪些知识和方法需要详细讲授(如:基于构件的软件运行机制、MVC的工作原理、CORBA标准等),而哪些知识学生可以以自学为主(如:C/S和B/S混合风格、EJB环境部署、体系结构评估等),这样使课堂讲授更加具有针对性和含金量,而不会导致照本宣科、理论远离实际。

从“学”的角度而言,学生在实践环节作业多的压力下,在灵活考核机制的激励下,能够更好地发挥其主观能动性和创新能力,很多学生的软件作品具有较好的创新性和技术含金量。实践环节学生成绩分布情况如图1所示,平均1/3的学生能够获得至少在一次实践作业中得到1.5倍的基础分,而将近80%的学生能够至少在两次实践作业中获得不同程度的提高分,这充分说明学生的学习积极性得到很好的调动。此外,通过期末考试成绩分析发现,在实践环节得到高分的学生,课程总成绩也较高,这也说明学生通过不断的实践能够更好地理解并掌握在课堂上讲授、在期末考试中考察的抽象理论知识和方法。通过作品交流和讲评能够发现学生确实掌握了有用的体系结构分析和设计方法,并极大提高了分析和解决问题的能力,这样,即便他们暂时缺乏大规模软件开发经验,但也为今后的学术深造或工作奠定了扎实的知识和能力基础。

3 结语

在为缺乏大规模软件开发经验的本科生讲授软件体系结构课程时,为防止学生产生该课程理论性强、内容抽象但没有实际应用价值的错误认知,笔者从加强软件体系结构实践教学、培养学生切实可用的软件体系结构分析和设计能力的角度出发,提出了一种在“做中学”理念指导下的软件体系结构课堂讲授和实验环节的设计方法,给出了具体教学目标、课堂讲授内容和实践环节安排以及成绩考核方式,并在内蒙古大学计算机学院本科生的课程教学过程中深入实施了该方法,取得了很好的教学效果。在“做中学”理念指导下的软件体系结构课程教学更利于学生通过不断的实践理解抽象的理论知识和方法,更深入、全面地掌握实际软件研发中所需的软件体系结构分析和设计能力,为学生今后设计并实现较大规模的复杂软件系统奠定扎实的知识和能力基础。在今后的教学工作中,我们会根据教学效果和学生的反馈逐步加强课堂教学的引导性和针对性,更重要的是不断完善、更新实践环节的内容设计,切实将“做中学”的理念贯穿于软件体系结构的完整教学过程中。

参考文献:

[1]梅宏,申峻嵘.软件体系结构研究进展[J].软件学报,2006(17):1257.1275.

[2]路纲,裘国永.软件体系架构课程本科教学探讨[J].计算机教育,2010(24):128-131.

[3]陈长青.软件体系结构课程教学探讨[J].计算机教育,2008(22):134-135.

[4]覃征,邢剑宽.软件体系结构课程教学:抽象与实践的协调与统一[J].中国大学教学,2009(7):14-15.

[5]路纲,刘侍刚.软件体系架构案例教学:连珠软件开发[J].计算机教育,2011(16):81-85.

[6]朱鹏程,管致锦.基于能力本位的“软件体系结构”实践教学环节[J].计算机教育,2011(17):39-42.

[7]马健、“做中学”:高等学校教学改革的新方向[J].高等理科教育,2009(3):9-12.

[8]黎忠文,向兆山.“做中学”模式在计算机教学中的探索[J].计算机教育,2006(10):30-32.

软件开发基础知识篇(3)

基金项目:重庆市教改项目(113037);重庆师范大学2011校教改项目

作者简介:余平(1975-),女,重庆师范大学计算机与信息科学学院副教授,主要从事数据挖掘、软件工程教育等研究,(E-mail)。

摘要:软件工程创新型人才是软件产业自主创新的根本,如何培养软件工程创新型人才是高校软件工程专业的重要任务。文章以软件工程创新型人才的能力培养为目标,阐述了重庆师范大学软件工程系在人才培养方面的具体做法以及实践效果。

关键词:软件工程;人才培养;自主创新

中图分类号:C961文献标志码:A文章编号:10052909(2013)05003103自主产权是促进国家科技和经济发展的根本。作为经济社会发展的基础性、战略性和先导性产业,软件产业的自主创新对国家的发展起着举足轻重的作用。为适应软件产业的需求,实现软件产业的可持续发展,培养创新型软件工程人才,成为中国高等教育的重要任务和目标[1]。

一、软件工程创新型人才的定位

充分认识软件工程创新型人才所需的素质是建立合理人才培养模式的基础,下面从创新型人才的基本素质出发,结合软件行业对人才的要求,建立软件工程创新型人才的能力模型。

从基本素质而言,创新型人才需具备创新精神、创新思维、创新人格、创新能力以及合理的知识结构。创新精神是创新的先导和整个创新素质的发动机;创新思维不仅能揭露客观事务的本质及其内在联系,而且能在此基础上产生新颖的、独创的、有社会意义的思维成果;创新人格能催化和激发创新能力[2];创新能力是创新实践活动赖以启动的要素;合理的知识结构是创新活动的实施工具。

根据软件产业的实际需求,软件工程专业建立了“多层次、实用型、复合型、国际化”的人才培养目标[3]。多层次要求以个性化培养为核心,培养多元化软件人才。实用型要求人才培养方式契合企业需求。复合型强调人才培养的行业导向性,要求人才能快速、准确地了解软件应用行业。国际化要求软件人才具有良好的外语沟通能力、国际化视野等国际化素质。

作为软件行业而言,创新要求人才拥有以下三方面的技能:(1)以逻辑思维能力为核心的基础知识以及软件技能;(2)在软件生产流程中要求的实践能力,如谈判能力、知识和技能的应用能力、团队合作精神、沟通能力、软件管理能力等;(3)囊括国际化素养、学习能力、宽广学科视野的非专业综合能力。在此基础上,通过发散思维、收敛思维、复合思维等创新的思维方式,产生新颖、独创、有社会意义的创新成果。而在整个创新过程中,情绪智商始终作为调节剂,抗击挫折失败,激发创新兴趣,锻炼创新意志。

二、软件工程创新型人才培养模式

重庆师范大学计算机与信息科学学院软件工程系,将探索如何培养创新型软件工程人才作为工作重点,通过剖析创新型软件工程人才的能力要求,通过三大体系——课程教学体系、实践体系、素质拓展体系,着力培养软件行业创新型优秀人才。

高等建筑教育2013年第22卷第5期

余平,等软件工程创新型人才培养模式研究

(一)重视课程教学,打牢学生根基

扎实的基础知识、专业知识以及宽阔的视野是创新的根基和保障。软件工程创新型人才不仅要理解知识,更要应用驾驭知识。

1.建立重基础、多元化的课程体系

课程体系设计是人才培养目标得以实现的有力保障,软件工程创新型人才培养课程体系设置不仅要重视基础知识,还要突出多元化的学科内容。为此,学院建立了如图1的课程体系,达到“厚实基础、全面均衡”,包括基础知识、专业知识和综合知识3个课程平台。

图1软件工程课程体系基础知识平台训练学生的逻辑思维能力、语言能力以及专业基础。软件开发是将市场需求转化成逻辑过程,再转化为程序代码的过程,要求思路清晰、思维缜密;而数学能有效锻炼分析和逻辑能力[4],因此,学院开设了高等数学、离散数学、线性代数、数值分析等课程。目前,中国与国际的软件水平还存在较大的差距,且软件产业是全球化的产业,语言能力是学生了解国际上最先进技术的基本工具。为此,学院在每学期均开设了相关英语课程,营造浓厚的英语学习氛围。专业技能作为重中之中,包括技术水平和工程能力2个方面,而在技术水平的课程设置上,将算法设计、数据结构、数据库等基础课程作为学科重点,保证课时充足。此外,开阔的眼界能有效地促进学生思考和创新,交叉性学科课程的开设必不可少,学院为学生开设了包括知识产权、企业工业管理、人文科学等多门扩大学生知识面的课程[5]。

2.实施重实践、启发式的教学方法

教学模式陈旧。一直以来国内高校的人才培养模式都是以课堂为主,填鸭式教学方法仍占主流。模式化的教学方法直接禁锢了学生的创造性、积极性和主动性,因此,学院从建设师资队伍入手,改善教师的创新素质,培养教师“为创新性而教”的教育理念,鼓励教师探索新的教学方法。在新的教育理念下,教师需要在教学实践中,通过“案例教学”“实践训练”的方式,发掘学生潜能,培养学生的自学能力,训练思维的逆向性、灵活性、发散性、独创性和敏锐性,将创新型教育落到实处[6]。

案例教学遵循巧设案例—剖析案例—引申案例问题—实践案例的教学流程。通过巧设案例,引导学生去发现分析问题,找到解决方案,在学生理清思路后,将问题引申,让学生自主思考,自由发挥,鼓励学生将复合思维与发散思维结合,抽象思维和形象思维结合,提出创新想法,并实践创新案例[7]。

实践训练结合了课程实验和课程实训。一方面学院为各种专业课程开设了相应的实验课程,让学生在理论学习基础上,走进实验室,针对一个问题,实现尽可能多的解决方案,进而训练学生的观察能力、思维能力和操作能力。另一方面,课程实训是在每门课程结束后,通过开展小型项目,让学生学会将所学知识运用到不同的软件应用中,进而训练学生的自主学习和知识应用能力,培养学生独立分析问题并解决问题的能力。

(二)重视工程实践,让学生在“做中创新”

工程实践不仅能培养优秀的应用型软件工程人才,还是创新产生的过程[8]。因此,一个创新型软件工程人才必须会动手,会实践,并且学会在实践中寻找创新的机会。

1.建立“学生工作室”为载体的人才培养模式

从大三开始,学院为学生设置了项目实践课程,在课程实施过程中,基于“团队”在软件工程中的重要性,组建“学生工作室”。

首先,软件产业的创新主要体现在软件技术知识创新和软件应用创新2个方面。学院提倡项目产品化,项目开发企业化。学生通过市场调研,自主选题,进行软件应用创新,发掘有社会价值的软件产品,进而利用现有知识和国际先进技术进行产品设计、产品需求分析、用户体验分析、程序设计与开发,并在此过程中通过优化算法、创新算法等进行软件知识的创新。为使项目实践顺利开展,学院组织了教授评审团对项目进行评估,实施了项目指导教师和项目团队“一对一” 的指导方案。

以项目实践为载体,学院组建了“学生工作室”,学院针对项目实践中的优秀项目团队,划分专门资源,形成固定的学生工作室。工作室选定各自的兴趣方向,一方面参与国家、企业和学校开展的各种学术活动和竞赛活动,另一方面参加学院内部开展的各种创新活动,包括软件应用创意赛、算法创新赛等。

2.加强产学研合作,创建实习基地

产学研一体化是知识创新体系、技术创新体系和企业生产体系的融合剂,能将断裂的创新系统连接,形成创新的完整链条。基于此,学院通过构建产学研一体化平台,不断加大校内外实习基地的建设,保证学生毕业前均能获得实习机会。根据软件产业的发展方向和学生的兴趣需求,学院陆续建立了现代软件工程、企业与系统仿真、嵌入式系统、图形图像与数字娱乐等实验室。此外,学院还注重与其他在渝企业和高校的合作,与重庆大学、西南大学、重庆邮电大学、中软重庆公司、中冶赛迪等建立了紧密的合作关系。

3.重视素质拓展,搭建学生自主创新平台

在创新人才培养过程中,思想意识和情绪管理的作用不可忽视。学院始终坚持以学生工作促进专业教学,以各类学生社团为载体,建立了一个有效的素质拓展体系,搭建学生自主创新平台。一个平台以传统的学生社团为主,包括学生党支部、团委、学生会;另一个平台是企校合作人才培养模式,由国内外优秀软件企业与学院合作组建的学生技术俱乐部。传统学生社团通过举办综合性学生活动,包括各种思想教育活动、文艺活动、素质拓展活动,比如软件工程师的社会伦理演讲比赛、软件外包产业的科学发展观演讲大赛、英语戏剧表演、野外生存大战、心理讲座等,培养学生的责任感、团队合作精神、抗压能力、情绪控制能力等综合能力。学生技术俱乐部以贴近专业为特色,以软件产品和软件技术为中心,组织各种技术性活动,如技术培训活动、技术交流沙龙、软件企业的企业文化体验、新技术讲座等,培养学生在专业上的创新意识和创新兴趣。

三、软件工程创新型人才培养模式的实践成效

重庆师范大学计算机与信息科学学院软件工程系在软件创新人才培养中取得了骄人的成绩。自学院创办以来,多名学生参加全国数学建模竞赛以及美国数学建模竞赛并获得较好成绩。由于毕业生专业能力强,综合素质高,能快速融入企业项目实践,受到企业较高评价。

四、结语

文章提出的软件工程创新型人才培养模式,是对重庆师范大学计算机与信息科学学院软件工程系人才培养的经验总结。软件工程创新型人才培养的三大体系体现了“重基础、重实践、重综合素质”,构建了从“基础”到“提高”再到“创新”能力的培养途径。此培养模式已在软件工程专业中实施,取得了较好的效果,但还存在许多有待改进之处,且当今信息产业的快速发展,对信息化的需求不断提出新的挑战,要求软件工程创新型人才的培养模式也要与时俱进,不断发展,学院会继续在软件工程创新性教育方面进行探索与实践。

参考文献:

[1]韦迎春,文俊浩,陈蜀宇.以能力培养为核心 构建示范性软件学院实践教学体系[J].中国高等教育,2011(2):49-50.

[2]刘乃琦.软件工程教育的特点与问题[J].计算机教育,2004(10):6-9.

[3]张喜平,王佐成,汪林林.国内外软件人才培养模式现状研究[J].青年与社会中外教育研究,2009 (1):6-8.

[4]文俊浩,杨丹,陈林,等.软件工程人才培养体系研究与实践[ J ].高等工程教育研究,2005(4):63-68.

[5] 蒲颖.培养国内软件人才新探索[J].神州学人, 2006(1):10.

[6] 陈丽蓉.我国软件人才培养的现状与思考[J].山西广播电视大学学报, 2008(2):20-21.

[7] 丁文武.加快软件人才培养 优化软件人才结构[J].中国高等教育, 2004(7):23-25.

[8] 王鑫, 肖化, 陈小兰.美、印、日、韩软件人才培养比较与借鉴[J].高等理科教育, 2007(1):51-55.Cultivation mode of innovative software engineering talents

YU Ping1, LIU Jun1, YANG You1, WEI Yingchun2

(1. College of Computer and Information Science, Chongqing Normal University, P. R. China;

2. School of Software Engineering, Chongqing University, P. R. China)

软件开发基础知识篇(4)

关键词:嵌入式NIIT教育;MCLA;培养模式

1软件人才培养现状

随着我国软件产业的不断发展,软件开发方式已经由传统的作坊式逐步升级为工业化、流水线式的生产模式。在这种工业化生产模式下,行业和企业对具备一定软件开发经验的软件工程师、软件项目经理等软件人才的需求日益增加。而目前的软件人才培养现状并不能满足这种社会需求。许多高校在软件人才培养方面与行业现实需求脱离,传统的教育模式中存在一些问题,如教学注重理论知识掌握、教材内容陈旧、教学方法落后、实践训练不足等,导致学生的工程实践能力不足,不能满足企业的实际开发需要。因此,软件人才培养模式有待进一步改革。

印度的NIIT教育模式是目前公认的IT软件人才培养的成功典范。NIIT教育培养模式注重培养学员的动手操作能力、工程实践能力和设计研发能力。本文在探索NIIT教育理念和教育模式基础上,结合本校计算机科学与技术软件人才培养计划和培养方案,通过构建嵌入式课程体系、有效组织教学内容、改革传统教学方法等途径进行软件人才培养模式改革的探索,对高校培养创新型应用人才具有一定借鉴意义。

2探索NIIT教育模式,构建嵌入式课程体系

NIIT是印度国家信息学院(National Institute of Information Technology, NIIT)的简称,1981年开始在印度开展IT教育培训。NIIT在发展过程中总结出一套独特、先进、高效的教学模式。在实际教学过程中,通过让学生学习使用主流软件开发方法和技术,注重培养学生的工程设计能力、软件研发能力和实践创新能力。NIIT软件人才培养模式采用以软件订单项目为基础的专业实践能力和操作开发能力培养方式,学生学习时就能参加软件订单和软件项目的设计和研发,毕业后能很快适应企业开发要求,并成为合格的专业技术人才[1]。

在嵌入式NIIT教育模式的指导下,探索构建适合软件行业要求的课程体系,是培养计划的重要组成部分。针对目前业界对IT人才的需求,NIIT课程体系主要分为Java方向和.NET两个方向,以培养学生具有数据库开发能力、J2EE开发能力、.NET开发能力、COM+组件开发能力和移动开发能力的软件工程师为目标。学生通过阶段性循序渐进的学习和实践,掌握软件开发的主流软件和技术。

因此,我们通过借鉴NIIT教育模式在软件人才培养方面的优势,在制定计算机科学与技术专业软件工程方向的培养计划时,应将以传统学科建设为导向、以追求知识完备为目标的教学转变为以企业需求为导向、以培养学生综合素质和能力为目标的教学。在新培养目标的指导下,我们对原有课程体系进行改革,在原有课程体系中嵌入NIIT部分课程,经过整合,将课程体系划分为公共基础类、专业基础类和专业类三大类,课程体系如图1所示。

图1嵌入NIIT课程体系

软件工程方向的专业类课程包括专业必修课程、专业限选课程、专业任选课程和认证课程。专业必修课程包括UML统一建模语言、软件项目管理、软件质量保证与测试、软件设计与体系结构和软件需求分析等,作为软件开发和技术知识掌握的基础;在专业限选课程中,嵌入了NIIT的两条软件开发技术方向,即.NET方向和Java方向。NIIT的课程体系基本是循着这两条技术路线搭建的,其特点是由浅入深、由点到面、技术路线明晰。.NET技术路线课程开设C#程序设计、Web应用开发、.NET应用开发等课程;Java技术路线课程开设Java程序设计、J2ME移动应用开发、Java EE应用开发等课程。同时增加了辅助这两条技术线路的专业任选课程,如软件设计模式、软件开发案例分析等。同时,根据软件行业的相关认证,我们开设一些认证课,使学生在获得素质学分的同时得到行业认可。

嵌入NIIT教育后的课程体系,既符合计算机科学与技术专业规范,又符合行业对软件人才能力培养的实际要求。根据该课程体系构建的人才培养方案,能确保学生掌握主流开发技术.NET和Java之一,毕业后能够很好地适应软件市场对人才的需求。

3合理组织教学内容,改革传统教学方法

教学内容的组织改变了传统注重书本和理论知识的方式。以往学生掌握主要技术知识后,并不能将其很好地应用到解决实际问题的过程中,课堂讲解中的理论和实践分离,学生处在被动状态,没有时间思考,没有机会参与。而嵌入式NIIT教育模式更着重知识的运用和学生实践能力的培养,针对不同课程设计合理的应用案例,这些实例基本上来自于软件生产的实际问题,教师可以根据教学实际自己编写实践教材,修订实践教学大纲,安排合理的实践环境。因此,通过合理组织教学内容,采用适应软件人才培养的教学方法,可以让学生从工程的角度学习专业知识,并有效培养学生的实践操作能力和软件研发能力。

在教学方法上,NIIT教育模式独创了软件教育的MCLA (Model Centered Learning Architecture),即基于榜样的学习方法。MCLA教学方法是遵循“专家引导―引导实践―引导探索―独立实践”这一完整的工程实践训练过程[2]。在传统教学中,学生学习某个知识点之前,首先掌握一些基本理论和概念,然后通过一些简单的验证性实验或简单实例,达到掌握理论知识的目的,这并没有注重培养学生动手解决问题的综合实践能力。而MCLA教学法以工程项目为载体,经过“学习―实践―提高”,逐步引导学生在学习和完成项目的实战训练中形成知识获取能力、解决问题能力、团队合作能力、创新开发能力。

采用MCLA教学方法,教师要设计合理的工程案例,这也需要教师有一定的工程背景或经验。然后,教师以本次课程所传授的基础知识为主线,向学生介绍实际问题的相关内容,让学生了解所要解决的问题是什么。接着,进入专家引导,经过教师示范性地使用标准方案解决问题,学生可以进行模仿,并从中掌握必备的知识。最后,开展引导实践环节,学生已经具备一定的知识基础,可以完成一个类似的实际应用问题,通过不断的练习和团队实践,可以巩固所学知识和技术。教师引导学生设计实现相似案例,将及时应用所学理论并很好地巩固,同时引导学生掌握软件开发技能。这样,学生在实践过程中能够逐步独立完成一个新的工程应用项目。

4加强实践教学环节,培养学生综合素质

突出实践技能是NIIT教育模式的侧重点。在嵌入式NIIT教育模式中,特别重视以软件订单项目为基础的专业实践能力和实际操作开发能力的培养[3]。实践可以使学生将理论与解决问题的实践相结合,从大量的实践训练中不断提升软件开发和动手操作能力。根据软件人才培养目标的要求,学校需要加强实践教学环节的设置、构建科学优化的实践教学体系,全面培养学生的综合素质和实践创新能力。

在教学计划中,我们减少单纯的实验性、验证性的实践课程,增加符合NIIT教育模式的设计性、综合性、工程性、创新性课程。经过对实践教学内容的优化整合,设置了与嵌入式课程体系相辅相成的实践教学环节,包括基础实验环节、工程基础训练环节和综合实践环节。基础实验环节注重学生对基础知识的掌握,注重基本技能的训练。与相关理论教学环节对应,主要开设一些专业课的实验课,为学生掌握扎实

的专业基础知识并锻炼动手实践能力提供基础平台。工程基础训练环节主要开设专业课程的课程设计、工程实训及一些校企合作课程,开展带有工程性质的工程基础训练。综合实践环节主要开设学年综合设计(或学年设计)、毕业设计(论文)、学生科技创新项目和科学研究训练等。在设计性和创新性实践中,由学生自己实现软件研发的全过程,充分发挥能动性和主体性,提高勇于探索的创新思维和创新能力。通过实践环节的训练,学生的实践创新能力得到逐步锻炼和提升,并且逐步与企业工程环境接轨,可以顺利地从基础实验平台上升到工程实践平台,达到企业对软件工程师的要求。

5结语

通过将适应企业需要的NIIT教育模式嵌入到计算机软件人才教育中,打破传统的以理论知识的渐进积累辅之以实验佐证为主要特征的教育模式,按照企业实际需求培养应用型和创新型软件工程人才,是软件教育改革的一种有效尝试。探索嵌入式NIIT教育模式,对于培养具有较强动手操作能力、工程实践能力的软件人才,具有一定借鉴意义,对于教育部提出的开展“卓越工程师”培养计划,是一种有效的尝试。

参考文献:

[1] 李洛,汪清明. 导入印度NIIT模式,提高高职软件人才培养水平[J]. 比较教育研究,2004(2):34-38.

[2] 刘志成,陈承欢,彭勇. 嵌入式NIIT教育模式中教学方法的研究[J]. 职业教育研究,2007(2):154-155.

[3] 李洛,古凌岚,罗佳,等. 印度NIIT软件人才培养模式的探索与实践[J]. 广东轻工职业技术学院学报,2003(9):49-52.

Discussion on Software Talents Training Mode Based on NIIT Education

SU Rina, FAN Jianbo, YU Hua, LIU Liangxu

(College of Electronic and Information Engineering, Ningbo University of Technology, Ningbo 315016, China)

Abstract: According to current status of software engineering talents training mode and practice experience of software engineering education reform, upon the analysis of the existing teaching model, the paper proposes the introduction of embedding the NIIT education training course into current teaching curriculum. By building NIIT teaching system, reasonable organization of contents, reform the traditional teaching methods, strengthening practice, the ability of engineering practice and software development capabilities are improved.

软件开发基础知识篇(5)

关键词:软件开发;实训;外包;测试

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)36-8332-02

1 背景

工信部近日印发《软件和信息技术服务业“十二五”发展规划》,规划明确了“十二五”的发展思路和发展目标,确定了10项发展重点和8项重大工程。而据业界预计,到2015年,我国软件行业收入将突破4万亿元,年均增长25%以上,出口突破600亿美元。

2 项目实施的必要性和可行性分析

外包人才的缺口从结构层次来看,不是局部的人才短缺,而是全方位的供应不足。正规院校培养出来的学生能掌握基本的软件开发技术,但缺乏软件开发工作经验、项目交流和团队合作锻炼,需要经过相当的项目知识与技能培训。超过60%的高校开设了计算机专业。但是,适应外包企业需要的大学毕业生很少,大学毕业生常常需要企业花大力气培养,而企业希望招来就用,不愿自己培养人才增加成本。本软件开发、测试实训室应此目的设置,目标培养中低端软件人才。

3 建设实训中心项目的可行性

职业教育与普通教育相比有四个特点:一是教育性质和目标不同。重在对准备就业的学生传授职业知识,培养职业技能,陶冶职业道德,提高职业能力和劳动素质教育。二是教育内容与要求不同。以提高学生的专业知识与技术能力为主,重在让学生懂得做什么、怎么做,使学生学有专长,毕业后投身于社会经济建设的实践活动。目前尽管有部分学生升学,但就总体看,其教育内容与要求未变。三是课程模式与结构不同。其课程模式注重实践教学环节,课程结构注重强化学生技能的应用性、针对性和职业性。四是学校功能与任务不同。要求实施职业教育的学校必须具有实训实操的条件,否则职业教育很难获得应有的效果。

4 软件开发和测试实训室建设目标

软件开发技术实训可以包含四类实训课程:

软件开发实训:包括完整的生命周期的软件开发过程

软件阶段实训:选取软件生命周期其中某个阶段独立工作(例如编码工作)的实训;

软件测试实训:包括软件开发过程随行测试和独立的软件测试技术实训;

软件项目管理:这是关于软件技术高级培训。

实训装备:

硬件设备:5组服务器;50台工位电脑;网络和交换设备;5组光盘刻录、扫描仪和打印机等辅助设备;1套投影和无线扩音设备;互联网接入;软件平台:Windows 和Linux服务器平台,mySQl、SQL Server数据库系统、J2EE和.net开发平台和课程相关的软件工具;LoadRunner 、WinRunner等常用测试工具;项目管理工具MS Project;办公系统 Ms Office 管理软件:实训管理软件

实训方法:采用模拟企业运营方式将教练和学员混编成项目组方式完成软件开发和测试实训;打破学科界线和知识体系,以项目目标驱动安排教学内容,编制教材和教学课件,教学内容来源于合作企业以往的实际项目,由企业和学校共同对原项目分解、重组、封装形成教学课件,以实际项目文档为基础编制实训文档。

实训课程:本实训室分设以下类型实训课程

素质教育类课程:敬业精神、团队合作

企业标准类课程:ISO9000和CMM认证,企业化管理制度

项目管理类课程:项目管理方法和项目管理系统使用;

软件开发、测试类课程:包括软件生命周期理论、文档编制和理解、软件工具、编码和测试方法、系统部署、和版本管理等;

实训过程:

先期培训:素质类、企业标准、项目管理、背景知识等

基础培训:由教师教授课题涉及的基本方法、工具和规范;

开题培训:由专业项目管理人员做课题报告,解释项目要点;

5 实训课题:软件开发实训

本实训室培训软件开发人员和软件测试人员,实训方法可以将学员分组,在同一项目中分别承担软件开发和软件测试工作,也可以独立执行软件开发和软件测试实训课程

软件开发实训包括一下实训模块:

1)背景和基础知识:包括软件开发规范,软件企业ISO9000和CMM认证,学校软件工具等;

2)搭建开发环境:能够配置自己的软件开发环境,包括安装操作系统和开发工具包;能够配置自己与别人的协同开发环境,包括网络配置,文件共享,安装远程打印机等;

编写代码:使学员能够读懂详细设计,掌握开发工具的配置与使用,掌握开发语言的基本知识和数据结构,了解简单的算法,会设计简单的界面,并应用常见控件,具有数据库编程的初步能力;

图1

3)测试:使学员除了掌握测试的理论知识外,还应该学会编写单元测试案例,编写单元测试文档,在执行单元测试的时候,记录测试结果,并分析错误原因,以利于下一步的调试。

学员应掌握以下具体技术、平台和工具,Windows系列和Linux操作系统;Visual Studio工具;Borland 公司工具,SQLServer,Oracle ;Apache+tomcat,Web Logic 等;TCP/IP,创建网络连接,网络打印;基于UML的详细设计文档,面向对象分析和设计;单元测试,黑盒测试,白盒测试,设计测试案例等;执行测试并调试错误,系统和配置技术;

软件测试实训包括以下实训模块:

计算机及常见操作系统、软件设计语言基础、 数据库基础、软件工程基础、软件测试基础、自动化测试:包括OSI模型、TCP/IP模型及常见网络协议,常用软件平台、工具使用LoadRunner 、WinRunner测试工具使用,各种测试规范

6 总结

在当今社会信息化的进程中,综合应用各种新技术的系统软件功不可没的,软件开发和测试使全社会的信息管理、信息检索、信息分析达到了新的水平,因此,学习软件开发、测试的相关基础知识,对于信息时代的每一个成员都是十分必要的。

参考文献:

[1] 杨文宏,李心辉.面向对象的软件测试[M].北京:中信出版社,2002.

[2] Ron Patton.Software Testing [M]. 2版. 北京:机械工业出版社,2006.

软件开发基础知识篇(6)

目前,高校会计学专业设置计算机课程一般有两种模式:

①“基础应用型”模式。该模式设置“计算机应用基础”(或称“计算机基础知识”、“程序设计基础”)和“电算化会计”(或称“计算机在会计中的应用”、“计算机会计学”、“会计应用软件”)两门课。如上海财经大学、中国人民大学会计学专业就是这种“基础”+“应用”的模式。

②“系列应用型”模式。该模式是在设置系列计算机课程的基础上再设置“电算化会计”课程。例如,中国矿业大学会计学专业设置“计算机基础”、“办公自动化软件基础”、“高级程序设计语言”、“微机数据库管理系统”四门计算机系列课程和“电算化会计”、“会计实务电算化”两门计算机应用于会计的课程。又如,上海财经大学会计学系教学改革设想中打算开设“计算机应用基础”、“计算机语言”、“数据结构”、“数据库系统”。四门计算机系列课程和“电算化会计”、“电算化会计决策与控制”、“电算化审计”三门计算机应用于会计的课程(财政部教育司编《会计学专业主干课教学大纲》p16)。当然,其他高校设置的课程名称可能有所不同,但均可体现一组“系列”课程和一组(门)“应用”课程的模式。

无论是“基础应用型”模式,还是“系列应用型”模式,它们均独立于会计系列课程之外。突出的问题有以下三点:

1.各门计算机课程内容与会计系列课程内容脱节。究其原因主要有三:一是教计算机课程的老师不懂或很少懂会计专业知识而会计专业课程教师又不懂或很少懂计算机知识;二是现行会计课程教材(除“电算化会计”外,下同)不反映计算机应用知识,也不要求专业课老师补充讲授计算机应用知识;三是计算机数量配备不足,无法做到两类课都安排机时。

2.单一的“电算化会计”课程,解决不了会计专业学生应具备的计算机能力问题。1995年4月27日,财政部印发了《会计电算化知识培训管理办法(试行)》,提出了会计电算化知识培训的三种证书、即初级证书、中级证书和高级证书,从能力要求看,可概括成以下三种能力。

(1)初级证书要求会计人员具备“计算机和会计核算软件的基本操作”能力。这种能力包括掌握计算机基础知识,微机基础知识及基本操作,有关汉字系统及应用软件操作,会计电算化基本知识和会计核算软件基本的工作原理五个方面,笔者简称为“操作能力”。

(2)中级证书要求会计人员具备“对会计软件进行一般维护或对软件参数进行设置”能力。要使财政部评审通过的通用会计软件更好地满足各个企业的不同要求,需要用户自已定义参数,如建立科目代码、设定计算公式、定义分配方法和结转方法等,这称为系统软件的维护或参数设置,笔者简称为“设置能力”。

(3)高级证书要求一少部分会计人员具备“进行会计软件的系统分析、开发与维护”的能力。会计软件的系统分析是指为了开发出用户所需的会计软件,必须了解和描绘用户对会计信息系统的要求,明确系统具备的功能,改进现有系统模型,形成系统的逻辑模型的过程。它是系统开发和系统维护的前提。分析、开发和维护的能力。笔者称为“开发能力”。

目前,高校“电算化会计”课程按财政部教学大纲要求,“培养学生具有组织和开发会计信息系统的能力”,包括开发工具、开发方法、开发系统(工资、固定资产、材料、销售、成本核算系统)和电算化审计五个方面。学生学完这门课后,仅仅是对部分会计核算程序进行初步的设计。当他们毕业参加工作后,在已实现会计电算化的企业,他们不会操作现行会计软件;在未实现会计电算化的企业,他们仅靠学校掌握的“电算化会计”知识,无法开发成套的会计核算系统软件。事实上,从国外会计电算化发展现状看,无论定点开发还是开发通用软件均有专门的公司从事这种业务。要求我们现在的教学能使学生具备完全的软件开发能力也是不现实的,仅能提“初步的开发能力”或具备“开发软件的基础”。这种单一能力距离国家要求会计人员应具有操作能力,设置能力和开发能力还很远,则高校改革教学,培养会计专业学生会计电算化系统能力迫在眉睫。

3.计算机在会计中的应用领域比较狭窄,就目前而言,我国会计实际工作中的电算化仅仅体现在会计核算上,虽然会计管理的软件已在开发,但应用的不太多。而西方国家早就从会计核算电算化转向会计管理电算化了。仔细分析我国会计核算电算化的现状不难发现,绝大部分会计人员是“傻瓜”操作员,是计算机的“奴隶”,他们对会计软件不能运用自如。反省一下高校会计教学,会计课程和计算机课程两层皮,使计算机在会计中的应用显得很窄。因此,只有在各门会计课程上都用上计算机,才能开拓计算机在会计中的应用领域,才能克服“傻瓜”操作员的缺陷,自主地运用计算机会计信息系统,使计算机不仅在会计核算上,而且在会计管理、分析、预测、决策等方面有所突破和发展。

解决上述问题的有效途径是实现会计系列课程电算化。

二、会计系列课程电算化的基本要求

1.两类课程安排相协调。会计教学计划必须按教育、教学规律制订,充分反映知识平铺、交叉、循序渐进的要求。计算机的系列课程应先于会计系列课程,同时会计系列课程的电算化,首先是已学计算机课程知识的直接应用,然后是后继计算机课程知识的追加应用。例如,在第一、三、四、五、六学期分别安排“计算机基础”、“办公自动化软件基础”、“高级程序设计语言”、“微机数据库管理系统”、“电算化会计”课程与此相适应,在第二、三、四、五、六、七、八学期,分别安排“基础会计”、“财务会计(上)”、“财务会计(下)”、“成本会计”和“财务管理”、“管理会计”和“高级会计”、“审计学”、“会计实务考核”课程。其中,“基础会计”课程首先是直接运用“计算机基础”课程知识完成规定任务,如用wps打印出试算平衡表、各种记帐凭证、各种明细帐等,待“办公自动化软件基础”课程学完后,再运用word编制“基础会计”课程中的成本计算公式、编排有关图形,并登记帐簿。

2.计算机知识运用时分合结合。平时,各门会计课程运用计算机知识是单项的,分散的。一般难以整体运用。因此,有必要在最终将两类课程知识进行综合运用。笔者认为,在第八学期学生即将走上社会前设置“会计实务考核”课程,一方面进行手工操作,综合各门会计知识,另一方面进行计算机操作。综合各门计算机课程知识集中运用于会计,这种分合结合的方式反映了会计学科系统性和综合性的基本特征和要求。

3.列人教学计划,教师引导,指导为主。将计算机课程知识应用于各门会计课程,并不是要增设新课程,而是对已学知识的串用。为了保证串用的成功,首先要在教学计划上加以反映。例如,在教学计划实践环节分别设置“基础会计电算化”、“财务会计电算化”、“成本会计电算化”、“财务管理电算化”、“管理会计电算化”、“会计实务考核电算化”等电算实践项目,并相应确定一定的机时。其次,将各门会计课程计算机应用问题编写成“电算化指导书”,每门指导书中列示若干个电算实践项目。提出具体应用要求;同时,为了便于学生操作。还应编制“电算化操作手册”,向学生提供详细操作步骤和范例。这样,教师在会计系列课程电算化过程中主要起着引导、指导、布置、检查和考试验收等作用,学生的自觉性、主动性和创造性会充分得到发挥。

三、会计系列课程电算化的具体设计

下面以会计主干课程为例对会计课程计算机应用进行设计。

(一)基础会计电算化

l.将已学“计算机基础”课程知识应用于“基础会计”课程。内容包括:(1)用wps打印出试算平衡表。材料明细帐、应收帐款明细帐、成本计算公式(含分子、分母两行排列格式)、生产成本明细帐和各种记帐凭证;(2)用图文混排系统spt进行成本数据的图像编辑;(3)用cced打印资产负债表和损益表。

2.将后续“办公自动化软件基础”课程知识追加应用于“基础会计”课程。内容包括:①成本计算公式的编写;②图形编排;③帐簿登记。

(二)财务会计电算化

将“办公自动化软件基础”课程中word、excel知识应用于“财务会计”课程,内容包括:外币核算、坏帐核算、存货实际成本计价法、存货计划成本计价法、存货成本与市价孰低法、折旧方法、工资结算和工资附加费核算、长期借款、应付债券、销售业务、利润分配、资产负债表和损益表编制。

(三)成本会计电算化

将“高级程序设计语言”课程知识、excel知识应用于“成本会计”课程。内容包括:要素费用的分配、辅助生产费用的分配、制造费用的分配。产品费用在完工产品和在产品之间的分配、品种法成本计算、分批法成本计算、分步法成本计算、成本分析。

(四)财务管理电算化

将“高级程序设计语言”课程知识、excel知识应用于“财务管理”课程。内容包括;货币资金最佳余额确定、企业客户信用等级评估、应用帐款最佳余额确定、存货最佳额确定、固定资产投资规模和经营杠杆、对外投资决策、筹资政策的选择评价、资金成本计算及应用、财务比率综合分析、财务计划编制。

(五)管理会计电算化

将“高级程序设计语言”课程知识、excel知识应用于“管理会计”。内容包括:成本性态分析、本量利分析、目标利润的敏感性分析、利用经营杠杆进行利润预测、边际利润最大的产品组合、销售顶测分析、投资决策评价方法的分析、内含报酬率敏感性分析。

软件开发基础知识篇(7)

通过调研发现,我国一批软件企业从为用户提供IT服务入手,利用本土企业对用户需求的深入了解实现服务创新,避开与国外企业正面竞争,形成了“竞合”关系;在把握用户需求的基础上,通过开放式创新弥补自身技术不足,从而在基础软件领域实现自主创新,技术能力也逐渐爬升,缩小了与国外企业的技术差距,最终形成服务创新、基础软件创新和技术能力成长的良性互动。这些企业明确自身在国际软件产业中的分工与定位,实现了重要的技术突破,为探索中国软件企业实现自主创新的有效途径提供了宝贵样本。

通过东软公司的案例,本文希望揭示中国软件企业技术能力成长的范式,探索中国软件企业“怎么样”从提供IT服务入手,最终实现了基础软件创新。本文的资料来源包括对东软基础软件事业部技术负责人的访谈,UniEAP产品白皮书,东软内部出版刊物,东软集团历年年度报告,及《超越技术―东软17年增长之谜》。文中也引用了其他学者的研究。

一、研究对象概况

本文中的研究对象东软集团股份有限公司(“东软”),是中国领先的IT解决方案与服务提供商,业务包括行业解决方案、产品工程解决方案及相关软件产品、平台和服务。东软主营业务是行业解决方案,解决方案指针对特定用户需求定制的IT业务系统,包括硬件、操作系统、数据库、中间件、应用软件和服务,是典型的软件服务企业。近年来,东软在基础软件创新方面也取得了突破,代表性产品包括网络安全产品NetEye、平台产品UniEAP等。

东软以行业分类建立事业部,例如电信事业部、电力事业部和社保事业部等,而基础软件事业部是企业基础研发部门,致力于平台产品开发,通过总结和提炼各个行业事业部在实施解决方案过程中积累的技术和用户经验,为东软其他事业部提供技术和工具方面的支持。

2009年,在美国《全球外包》杂志和“全球外包服务咨询公司”公布的全球IT服务100强榜单中,东软排名第九位,这是十强中唯一的中国软件企业;在“新兴亚洲市场十大领导者”中,东软排名第一。2010年,东软被世界经济论坛列为全球成长型公司的成功范例。2011年,东软作为唯一一家来自中国的软件企业,跻身普华永道的“全球软件领军者100强”榜单,并在“中国软件提供商100强”排名中荣登榜首。东软20年的发展历程堪称中国软件产业崛起的一个缩影。

二、软件产业分类和东软的核心创新产品

在美国的产业分类代码NAICS中,软件产业的代码是5112,具体包括基础软件出版、应用软件出版以及服务。大型复杂软件的体系结构自下而上分别是操作系统、数据库和中间件、以及应用软件。操作系统、数据库和中间件合称为基础软件,技术构成复杂,产品开发难度大;基础软件属于软件产业链的上游环节,核心技术和市场长期被国外垄断,这影响了我国在全球软件产业链中的地位。因此,将软件产业细分为基础软件企业,应用软件企业和软件服务企业。软件服务企业通常利用基础软件和应用软件企业的产品,根据用户的具体需求,部署整个软件体系架构。本文涉及的东软自主创新产品UniEAP是典型的中间件产品,进一步细分隶属于业务中间件,也称为业务基础平台。

业务基础平台是中国软件企业在基础软件领域重要自主创新成果,市场上主要的业务基础平台产品包括,东软集团开发的解决方案统一架构平台(UniEAP),中国软件与技术服务股份有限公司开发的睿剑业务基础平台(Sword),浪潮集团开发的Loushang企业应用平台等。业务基础平台为应用软件开发提供基本框架,预置通用的软件模块,用户可根据行业特点和企业具体需求进行选择,这提高了软件开发过程中代码复用度和开发效率,也能满足用户复杂、多变的需求。

三、软件产业技术发展模式是开放式创新

软件产业是典型的知识密集型商业服务业(knowledge-intensive business services,KIBS)。Miles等人指出,隶属于KIBS的企业显著依靠专业知识为用户提供信息和知识为基础的服务,KIBS创新中包含大量用户知识,技术熟练的用户需要产品平台支持其创新;KIBS是创新的来源,在用户企业内部发起并实施创新,他们是创新的促进者,支持用户企业创新过程,同时是创新的载体,在组织和产业内部或之间转移知识,使得知识能应用到新环境中;Miles将KIBS与传统的服务创新过程进行了比较,发现KIBS创新具有典型的特征,从设计到交付的时间更长,创新由供给和需求因素共同驱动,重视新的组织结构和交互模式等工艺创新,知识产权保护困难,创新需要标准化支持;Freel的研究表明,KIBS的雇员是高技能的,包括科学家、工程师等,用户、供应商、大学等是KIBS重要的外部技术源;Amara等人指出,知识密集型服务业除利用专利保护知识产权外,还利用登记设计模式、商标、技术机密、先行于竞争对手等方法;Hipp (1999)对德国KIBS进行了实证研究,结果表明,KIBS的R&D投入大,创新广泛利用期刊、会议、互联网等显性外部知识。

与用户密切合作是KIBS创新的主要特征。Muller和Zenker指出,隶属于KIBS的企业提供高知识附加价值服务给其他企业或组织,是“顾问型”的企业,强烈的交互性和用户相关性是KIBS的特征之一,KIBS与用户企业之间的知识流动是双向的,KIBS从用户企业获取知识从而为其提供定制的解决方案,同时也提高了自身的知识基础;Miozzo和Grimshaw研究了英国和德国的IT外包,认为由于信息和技术的不可分割性和无形性,IT外包需要融合用户的技术知识,IT提供商需要与用户企业深入交流,部分用户企业的员工可能转移到供应商企业工作;Bettencourt等人指出,KIBS企业提供的服务是复杂的、非结构化的、高度定制的,在提供知识为基础的解决方案过程中,用户必须有效地扮演合作创造者或生产者的角色,而这些用户通常具备KIBS所需要的知识和能力。

由于KIBS创新过程中需要整合用户、供应商等外部技术源,近年来,KIBS创新管理模式逐步从封闭式向开放式创新转变。美国学者Chesbrough最早提出了开放式创新的概念,强调当企业着眼于开发新技术的时候,可以并应当同时利用内部和外部的所有有价值的创意,同时使用内部和外部两条市场通道;开放式创新是有目的地利用知识的流入和流出,加速企业技术创新,并推进创新成果的市场化时;对于开放式创新的管理,Fetterhoff和Voelkel认为开放式创新的主要任务包括,寻求创新机会,评估技术前景与企业战略匹配程度,寻找技术合作者,出售知识产权获得利润;开放式创新中要利用外部技术源,也需要企业开展内部研发活动。O’Connor的研究表明,开放式创新不同于研发外包,企业必须从事内部研发,这有利于企业有效整合外部技术获取及开展非连续型创新;Chesbrough和Crowther调查了12家采用开放式创新的企业,结果表明,开放式创新目的不是降低研发成本或研发外包,实行开放式创新的企业其内部研发经费是增长的,外部技术源是补充而不是替代内部研发。

开放式创新与自主创新并不矛盾,陈劲和陈钰芬认为,开放式创新与自主创新是相辅相成的,开放条件下的技术创新是在自主创新的观念主导下,在全球范围寻求技术支持和资源,以原创性的“产品与服务概念”实现技术创新,形成具有自主知识产权的创新产品;李江蛟等认为,服务业的创新发展对服务业发展水平的提升有着积极的显著作用;杨武的研究则表明,自主创新与开放式创新紧密结合的关键是知识产权管理,知识产权管理对企业和国家技术创新的作用主要表现在它与企业技术创新管理体制、与国家技术创新体系和政策的结合上。

四、东软的自主创新过程

(一)原始积累阶段

东软来自于东北工学院(东北大学前身),1991年,“东北工学院开放软件系统开发公司”成立,主要承接国内项目;同年“沈阳东工阿尔派软件研究所(有限公司)”正式成立,东北大学占51%的股份,日本阿尔派株式会社占49%,主要承接日本项目;1993年,两家企业合并成立“沈阳东大阿尔派软件股份有限公司”,1996年,该公司股票在上海证券交易所上市,成为中国首家上市的软件公司;此后,东软在各地先后建立分支机构,2001年,东软实施品牌整合战略,统一“东软/Neusoft”品牌,2008年,东软集团完成整体上市计划。

在企业初创阶段,东软选择了软件产品开发为主导方向,这符合当时中国软件产业发展的总体趋势。20世纪90年代初期,在中国软件史上有筚路蓝缕之功的软件英雄辈出,求伯君研发中国首款字处理软件WPS,金山软件的历史就此展开;严援朝推出CCDOS,这是为中国第一台PC长城机做的汉字操作系统;王永民在发明了“五笔字型”,从根本上解决了汉字输入电脑“速度和效率”的世界性难题;王江民推出了KV系列杀毒软件,被誉为“杀毒软件之父”。在此阶段,中国软件产业的发展受到两方面因素的制约,一是盗版软件盛行,许多软件企业无法获得合理的利润,从而被迫倒闭或转型;二是微软、赛门铁克等国际软件巨头纷纷进入中国市场,处于萌芽阶段的民族软件企业技术实力远远落后,举步维艰。

中国软件产业经历了短暂的繁荣之后,一度陷入困境,不得不寻找新的发展机会。东软也不例外,企业开发出一款名为“Leader Report”的报表生成工具,但由于盗版软件的冲击而退出市场;此外,还开发出图形自动生成器Auto Win,当时的中国软件企业正处于初创阶段,并不需要此类软件,该产品因不符合用户需求而退出市场。在经历了困境之后,东软创始人刘积仁决心转型:“向针对企业的应用系统方面转移”,企业不仅重视技术的开发,还致力于为用户提供IT服务。东软开发出电信业务管理系统、房地产信息系统等行业应用软件,这为东软成为国内领先的IT服务企业奠定了基础。

东软从创建之初就积极开拓国际业务,主要承接日本企业的软件外包。1991年,沈阳东工阿尔派软件研究所(有限公司)成立,东软与阿尔派的合作正式开始,东软承担了汽车仿真测试环境软件的开发与设计,继而在车载音响系统、汽车导航系统及信息通信系统的软件开发与设计开展合作。日本企业对产品质量要求严格,东软因而从成立之初就遵循国际标准开发产品,率先实施IS09001、CMM和CMMI;东软在合作过程中培养了一批人才,不仅拥有软件技术,还掌握了软件开发的过程管理方法。此外,在对日软件外包业务中所获得的收入,是东软后期开发IT服务和软件产品的重要资金支持。

(二)行业解决方案领域的“数字圈地”

在企业发展的早期阶段,东软以开发软件产品为主。1996年,东软在上海证券交易所上市,作为第一家在资本市场上市的软件企业,东软被投资者所看好,从而获得了大量资金。关于企业该如何定位引起了争论,业界人士认为将资金投入到软件产品开发中是最好选择。东软创始人刘积仁在对世界软件产业格局和技术发展趋势做出分析后,将企业定位于“一个解决方案和软件服务公司,而不是一个提供软件产品的公司”。从1997年开始,东软改变了以软件产品开发为主的企业定位,开始大规模进入我国IT解决方案市场,被称之为“数字圈地”。

当时,我国各个行业和政府部门正着手信息化建设,IT解决方案市场尚处于启动和快速发展阶段,东软努力在行业发展初期成为业界的领导者,所谓“圈地”就是在各个行业和部门占领“数字领土”。东软积极投入到我国社会基础设施信息化的项目中,选择了有发展空间的行业作为用户,并且选择需要东软持续为其提供IT服务的行业,先后为电信、电力、社保、金融、医疗、交通、制造业等行业提供IT解决方案。以社保行业为例,1999年,东软作为骨干单位参与了国家劳动和社会保障部“社会保险管理信息系统核心平台”的研发工作,承担了总体技术负责及项目管理工作,同时参与了社保信息化建设基础规范和标准的制定;2000年,系统正式推出,东软也相继为全国各地近百家社保用户实施了核心平台。对于电信行业,1995年,邮电部电信总局提出了开发和建设“市内电话业务计算机综合管理系统”,即“九七工程”,东软承担部分试点城市“九七工程”的实施;1998年,东软为辽宁联通建设了“集中计费与客户管理系统”之后两年内,中国电信、中国网通、中国移动等电信运营商也成为东软的客户。

东软在提供解决方案的同时,并没有放弃软件产品研发,而是积累了大量平台产品构建的技术和经验,为能力成长和产品创新奠定基础;其中,以开发国土资源部的电子政务平台最具代表性。2003年,国土资源部为开发高度资源共享的电子政务统一平台进行招标,东软在竞标的21家企业中获胜。2004年初,项目正式启动,进入需求分析阶段,东软的需求设计人员与国土资源部信息中心的技术人员通过会议、产品演示、小组讨论、文档反馈等形式进行了需求交流。信息中心的技术人员提出要开发一套电子政务基础平台,国土资源部所有的业务系统都构建在这个平台之上,各地国土资源部门也可逐步在这个统一的大系统上开发自己的系统,从而形成统一的国土资源信息化体系。国土资源部要求系统必须预置部分模块化组件,未来业务流程发生改变并需要重新开发系统时,只需对这些模块进行重新组合;双方就模块化组件的大小,即组件所涵盖的功能进行了详细的讨论,组件太大,功能太多,很难满足未来业务的需求,再次开发系统还需重新设计;而组件太小,功能太少,又失去了复用的意义。双方对每个模块化组件都进行了反复讨论和定义,最终确定了合理的组件库。

(三)开放式创新与能力成长

东软在定位于解决方案和软件服务公司的同时,明确了开放式创新的发展战略。作为解决方案提供商,东软的主要业务是利用Oracle、IBM、Sun,SAP等国际企业提供的操作系统、数据库、中间件等产品,针对用户的实际经营业务,构造合适的行业解决方案。刘积仁将此比喻为:“解决方案就像一辆汽车,东软就是这辆汽车的提供者。汽车有轮胎、车厢、刹车等设备,东软会选择一些可以为我们带来更多价值的产品去开发,但不可能做所有的东西,那些就通过合作伙伴来提供吧。”

东软在开放式创新过程中积极与国外知名IT企业开展合作。有选择地与合作伙伴共建专项技术能力中心,以加强与合作伙伴合作的深度和广度,IBM、Oracle、SAP等合作伙伴通过能力中心帮助东软更懂他们的技术和产品。东软与合作伙伴的核心骨干团队经常进行互访、技术交流等活动,还积极参与合作伙伴举办的技术论坛。例如,东软的多数用户选择Oracle数据库,作为Oracle的高级认证合作伙伴,产品正式之前,Oracle会邀请东软合作测试,因而东软可以及时获得Oracle的技术信息、支持工具和资源;此外,Oracle还为东软员工进行技术培训,帮助东软掌握新产品的功能,以及如何利用这些新技术实现创新。

东软在开放式创新过程中重视对用户知识的吸收。为了及时了解用户需求和行业趋势,东软每年至少开展一次公司级客户满意度调查,了解评价质量管理体系与客户预期匹配度,针对客户反馈的问题制定改善措施,不断提高产品、服务的质量及客户满意度。东软每年都举办“东软解决方案论坛”,该论坛是政府、厂商、研究机构、行业专家、行业CIO以及媒体间相互沟通、交流思想和经验的平台,已成功举办12届,目前已成为IT业界最具影响力的年度盛会之一。论坛是一场客户大会,每届都设有用户广泛关注的主题,涉及IT行业的多个领域;此外,众多国际知名厂商IBM、SAP,Oracle等也积极参与,“东软解决方案论坛”将用户、合作伙伴以及东软有机联系起来。

东软在实施开放式创新战略的同时,坚持自主开展研究与开发,重视对外部技术知识的转化和积累;为此,东软对内建立公司级、事业部级的两级研发体系。公司级研发体系包括技术策略与发展部、基础软件事业部和解决方案技术中心,公司级研发体系注重公共技术、公共框架与构件的研发,并推动技术复用,跟踪新技术,开拓新商业模型,负责企业R&D技术交流、投入方向的监控等。事业部级研发组织则在公司级研发体系提供的技术、平台和方法论的指导下,专注于满足本行业内客户的个性化需求,提供行业解决方案。对于显性知识,东软通过知识管理门户、技术月刊和可复用资产库,确保知识与经验可被充分、及时获得与分享;而对于隐性知识,则通过建立知识地图,将技术人员能用到的知识进行有效分类,每类知识后面都列有专家详细信息,使员工能够更快速、更准确地找到解决问题的途径。此外,东软还通过技术论坛和定期的主题技术研讨会,建立互动式的交流、学习与创新平台,营造良好的技术交流氛围;将各个事业部在实施解决方案过程中积累的核心技术和用户需求知识转化为企业范围内的公有知识,使得解决方案实施过程中运用的核心技术得以在组织范围内存储和共享,这为自主开发软件平台产品奠定了知识和能力基础。

(四)中间件产品UniEAP的推出

随着企业信息化的深入推广,用户对IT系统需求的差异逐渐增大,东软在为不同行业用户提供解决方案的过程中,发现存在大量的重复工作,软件开发效率低,迫切需要在企业内部积累各个解决方案中可复用的技术,并将其抽象和封装以供重复利用。对于用户而言,IT技术发展迅速,面对海量的技术选择,用户在IT方面投资的技术资产很容易过时;此外,随着用户IT技术能力的提高,在选择行业解决方案时,越来越多的用户,尤其是大型企业用户,更希望自己能主导系统开发,并在系统实施成功后,可以根据企业业务流程的变化,自己进行系统升级和改造。

在此背景下,迫切需要一款平台产品以解决上述IT服务提供商和行业用户面临的难题。UniEAP应运而生,2007年,东软将UniEAP作为独立产品提供给广大用户企业,它的全称是Unified Enterprise Application Practices,在软件产业通常被称为业务基础平台。UniEAP具备了一个开放的、可扩展的系统架构,提供了标准接口,模块化组件通过接口可动态插拔;UniEAP包含模块化组件,可分为技术型组件和业务型组件,技术型组件可以屏蔽大量开发过程中的技术细节,业务型组件是面向各个行业常见业务的,例如,报表分析和表单等,这些组件接口简单、使用灵活,可以根据用户具体需求进行配置。为此,东软在UniEAP开发过程中采用了SOA(Service-Oriented Architecture,面向服务的架构)技术。IBM公司认为SOA是一种方法,它所设计的软件可将业务应用程序分解为一个个单独的“服务”,人们可以在不考虑它们所归属的应用程序以及所运行的技术平台的情况下使用这些服务。UniEAP是一个面向服务的业务基础平台,它可帮助用户开发、部署面向服务的应用。用户可以设计出更加合理的应用架构,并在实现业务需求的同时,生产出更多具有实用价值的可复用构件,从而为保护用户投资、形成用户软件资产带来极大的便利。

此外,UniEAP还为用户提供开发应用软件的方法学,提高应用软件开发效率,降低开发难度;用户可以使用UniEAP自带的管理控制平台监控、维护和管理IT系统,根据业务需求变化对其进行调整。UniEAP是可快速构建应用软件的平台产品,它使得应用软件的开发者可以仅关注企业的业务流程,而不必关注其具体技术实现,降低了开发难度,因此,UniEAP的出现使得用户自行开发应用软件成为可能。UniEAP能够屏蔽技术细节,从而做到技术的变化不影响企业的业务流程,还具备了可扩展性,使得系统能够跟随用户需求的变化而更新。

UniEAP提供了标准的软件架构,预置通用的软件模块;如果把各个行业解决方案比喻为建筑物,那么UniEAP就是这座建筑的“框架”和“地基”。东软的电信、电力和社保等事业部在此基础上进行应用软件开发,可跳过部分基础性的开发工作,根据行业特点和用户具体需求添加模块,这提高了软件开发过程中代码复用度和开发效率,为东软快速构建解决方案提供了工具。在开发出UniEAP之后,东软形成了IT服务和软件产品业务之间的良性互动。东软继续深耕于各个行业IT解决方案,UniEAP成为实施解决方案的基石,基于UniEAP开发出电信业务运营支撑解决方案、电力营销解决方案、公共卫生解决方案、数字化校园解决方案、政府部门解决方案(社保、税务、财政、质检、电子政务等领域)及制造和商贸流通行业的信息化解决方案。而在提供解决方案的过程中,东软与用户的密切合作也使其更加了解用户需求,从而不断完善UniEAP架构和组件,已经开发出UniEAP1.X、2.X、3.X版本,4.0版本正处于研发阶段,产品技术性能逐步提高。

五、中国软件企业技术能力成长机制分析

(一)选择从服务创新入手弥补技术基础不足

从研发效率角度分析我国企业为何选择从服务创新入手进入软件产业。研发效率是一个地区或一个企业把多种资源(如资金、人员等)通过研发最终转化为多种产出(如新产品销售额、专利申请等)的能力,对企业绩效具有深刻影响。选择数据包络模型(DEA)测算研发效率,选取软件企业研发资本存量作为投入指标,采用永续盘存法计算研发资本存量,此外,选取决策单元的人员数量和资本存量作为投入指标,资本支出指软件企业用于购买或升级固定资产(例如设备和厂房)的投入,资本存量是在资本支出基础上采用永续盘存法计算的;选择软件企业授权专利数量和销售收入作为产出指标。

本文中的研发投入、人员数量、资本投入和销售收入等指标的数据主要采集自欧盟联合研究中心(Joint Research Centre)和研究总司(Directorate General Research)年的《Monitoring industrial research:The EU Industrial R&D Investment Monitoring Industrial Research SCOREBOARD》,该报告披露了全球1000强企业的研发投入、人员数量等数据。研究遴选2006年至2011年连续6年均进入全球研发1000强的软件企业作为决策单元,共包括42家软件企业,经过数据计算清理,最终获得39家软件企业作为研究样本。其中包括8家系统软件企业,26家应用软件企业,5家服务型软件企业。采用DEAP2.1版DEA分析软件,计算研究样本企业的技术效率与规模效率。

对平均技术效率的计算结果表明,服务型软件企业的技术效率最高。技术效率是企业由给定投入集获得最大产出的能力,在软件产业,前沿技术由系统软件和应用软件企业负责开发,服务企业则及时监测技术发展趋势,力争在竞争对手之前识别出技术机会并加以利用;识别和获取相关技术后,企业针对用户特定需求进行修改,并与企业内部开发的技术相整合,最终技术被转换为新产品或服务,并实现技术与市场的有效匹配。从服务企业的R&D过程看,其目标性非常明确,因而技术效率高。对平均规模效率的计算结果表明,系统软件企业的规模效率最高。系统软件产业长期被少数企业垄断,这几家垄断企业技术能力和整体实力强,开发经验丰富,少有新企业进入该行业,现有企业投资所获的技术和能力难以被其他企业模仿,从而拥有了产业链中的核心技术;系统软件产品一旦开发成功,其复制成本低廉,盈利主要通过系统软件的大规模应用实现,这使系统软件企业规模效率表现优异。中国软件企业在创新资源和研发投入落后于发达国家企业的背景下,从研发效率角度分析,软件服务企业从R&D投入中盈利的能力最强,因而从软件服务入手有利于企业快速逾越壁垒进入产业。

(二)利用开放式创新实现技术能力快速成长

中国企业技术能力落后于国外企业,在提供IT服务过程中,需要以开放式创新来整合技术资源,弥补自身技术能力的不足。IT解决方案是一个复杂系统,底层是硬件和物理网络,中间是操作系统、数据库、中间件等,顶层是根据用户需求定制的应用软件;底层和中间层产品越来越趋于标准化,任何一家企业都不能也没有必要完成所有技术的开发。在市场需求快速变化和技术存量迅速膨胀的背景下,企业间的竞争态势发生了微妙变化,竞争优势开始倾向于那些擅长选择技术并进行整合的企业。因此,中国软件企业可以利用技术来源多样化的有利条件,有效集成外部技术资源,而开放式创新的开展为这些企业获得先进技术提供了一条有效途径。东软在提供行业解决方案的过程中正是采用开放式创新战略,大量集成IBM、Oracle、SAP等国外软件企业的先进技术,在此基础上深入了解行业用户需求和业务环境,并将技术和需求有效匹配起来提供适合的IT解决方案。

开放式创新需要企业在利用外部技术源的同时,开展内部研究与开发。集成创新的本质是创新要素的交叉与融合,集群网络和技术知识集成是集群企业技术能力持续成长的源泉。软件产品的开发过程中包含大量领域知识,尤其是隐性知识,企业必须进行内部研发,才能将外部技术知识转换为自身能力。东软在与国外一流软件企业的合作过程中积累了大量技术知识,在为各个行业实施解决方案过程中积累了丰富的用户经验,企业通过知识管理门户、技术月刊、可复用资产库、知识地图、技术论坛和定期的主题技术研讨会等方式,对这些知识进行转化和吸收,为最终推出自主创新产品一UniEAP,奠定了坚实的能力基础。企业实施开放式创新过程中,与外部技术源形成了创新网络,包括国外软件企业、用户、大学等;在与这些外部技术源共同工作过程中,通过大量正式和非正式的交流,促进了我国软件企业对知识的吸收和学习。总之,开放式创新促进了中国企业对外部知识的积累和吸收,知识是企业技术能力的构成要素,尤其对于知识密集型的软件企业,知识则是企业最重要的资源之一,也是企业自主开发软件产品的重要基础。

开放式创新促进了企业系统集成能力的成长,系统集成能力是企业进行软件产品创新的关键能力。Hobday等人指出,系统集成能力包括两个方面,一是企业内部研发能力,开发新技术并应用到新产品;二是能有效整合外部技术源(供应商、用户,竞争对手等)的元件、技能和知识,从而应对日益复杂的新产品开发。模块化是软件产品系统设计的重要方法,Baldwin和Clark认为模块化是一种特殊设计结构,其中参数和任务结构在模块内是相互依赖的,在模块之间是相互独立的。模块化设计规则下,产品被分解为高内聚性、低耦合性模块;模块之间的联系通过标准接口完成,接口是模块之间协作完成整个产品功能的一组规则。这需要企业具备系统集成能力,设计出一个良好的产品架构,才能在此架构下对产品进行模块化分解,将外部技术源提供的模块与企业内部开发的模块进行系统整合。在外部技术源多样化和产品模块化设计的背景下,企业必须发展系统集成能力,这需要具备接触多领域知识和“干中学”的机会。东软在与Oracle、IBM、SAP等企业和行业用户的频繁接触和交流过程中,对技术发展和市场需求的认识逐步深入,技术视野的广度和深度得以扩展,通过“干中学”逐步培养了系统集成能力;在此基础上开发出UniEAP,不仅满足了多样化的用户需求,也为软件企业提高了开发效率,降低了开发成本。

(三)服务创新、基础软件创新和技术能力成长的良性互动

中国软件企业在IT服务领域开展开放式创新,取得竞争优势后,企业技术能力乃至整体实力都得到不断积累和提升。IT用户需求复杂、易变且多元化,企业面临提高产品质量,缩短开发周期,降低研发成本的压力,这推动企业进行产品创新。企业利用用户创新工具箱整合开放式创新中积累的技术和需求信息,von Hippel研究了最早使用工具箱概念的LSI Logic公司,他们发现不理解用户需求的损失过高,因而开发一种设计工具,用户利用工具自己开发产品,企业将特定的设计和创新外包给用户。软件产业的业务基础平台是用户开发应用软件的工具,因而是典型的用户创新工具箱。企业在开放式创新过程中与国外企业、领先用户密切合作,获取了大量技术知识和需求信息,形成一批标准、通用的模块,能够涵盖多数用户共有的业务功能。企业根据这些模块的定义和功能,采用模块化设计规则开发出具有开放的、可扩展架构的工具箱,实现了技术复用。总之,企业借助用户创新工具箱的开发,有效整合了开放式创新中积累的技术知识和需求信息,实现了基础软件创新。

基础软件创新能提高IT服务创新的质量。平台产品采用模块化设计,分解为高内聚性、低耦合性的用户可定制模块和通用技术解决方案模块。在为不同用户提供IT服务过程中,可以利用通用模块快速建立起系统架构,再根据用户特定的需求增加或删除一些模块,从而实现技术的复用,降低了开发成本和时间。东软开发出UniEAP之后,在不同行业用户的解决方案中重复使用,一个解决方案可以利用多个UniEAP所包含的模块,而一个模块也可以被多个解决方案所利用。总之,业务基础平台产品拥有开放的、可扩展的架构,以及一些灵活的、屏蔽了技术细节的模块化组件,可以根据用户需求配置模块,以不同的方式集成模块能实现不同业务。因此,基础软件产品的自主开发有利于企业在服务创新过程中技术的重复使用,从而提高企业的创新效率和整体盈利能力。

友情链接