黑龙江省优质办学单位 | 黑龙江百分百就业单位
    
学习园地
当前位置:首页 > 校园文化 > 学习园地

软件工程专业学生

来源:本站原创 | 发布人:admin | 发布时间:2018-04-15 | 浏览次数:2389 

软件工程专业学生

开发能力培养的探索与实践

20世纪90年代开始我国软件业步入快速发展阶段,在邮电通信、交通运输、金融、网上支付等行业和领域里,国内软件产品尤其是拥有自主知识产权的技术和产品已经得到广泛的应用,现在我国的经济正在飞速发展,经济增长的“又好又快”和发展的低碳经济的目标要求,使很多企业需要信息化改造以提高生产销售效率。以信息化推动工业化,以工业化带动信息化方针的实施和内需的拉动将为软件产业开拓巨大的市场空间,同时使得市场需要大量的专业人才.

一、培养学生软件开发应用的能力

首先必须使学生具备扎实的基础知识和专业技能,如计算机导论和程序设计,微型计算机原理及其应用,数据结构算法分析及软件工程,计算机专业涉及的知识面很广,包括硬件,软件,程序设计,原理及接口技术,数据库,网络等,这种知识特点和结构特征要求学生具备所有的基础知识,但就软件开发而言应主要侧重以下几方面.

1.1认知软件体系结构,对同一座建筑物,建筑者,建筑师,室内设计师,庭院设计师以及电气工程师对其结构都有不同的视图,这些视图角度不一样,但它们却具有相关性,它们在一起共同描述了该建筑物的体系结构。软件体系结构是对软件系统结构的描述,它们是对系统不同的透视方法和不同的设计视角,它们本身存在有效性,它们之间存在交互性,例如模块结构,除非程序足够简单,一个学生就能完成,否则就有必要把工作分成一个个模块来完成,同时又要考虑模块之间的交互调用等。

1.2良好的专业基本知识

A.基础理论知识,如操作系统、编译原理、数据结构与算法、计算机原理等,它们并非不重要。如不想成为计算机科学家的话,可以采取"用到的时候再来学"的原则。

B.一门编程语言,现在基本上都是面向对象的语言,JAVA/C++/C#/ Microsoft Visual Studio/VB/VF等等。如果做WEB开发的话还要学习HTML/JavaScript/css等等。

C.一种方法学或者说思想,现在基本都是面向对象思想(OOA/OOD/设计模式)。由此而衍生的基于组件开发CBD/面向方面编程AOP等等。

D.一种关系型数据库,ORACLE/SqlServer/DB2/MySQL等等

E.一种提高生产率的IDE集成开发环境JBuilder/Eclipse/VS.NET等。

F.一种UML建模工具,用VISIO/钢笔进行建模。

G.一种软件过程,通过软件过程来组织软件开发的众多活动,使开发流程专业化规范化。当然还有其他的一些软件工程知识。

二、加强教学实践环节

加强软件开发创新基础实践环节教学,增加上机实践教学,课程设计的时数,由验证,模仿过渡到独立钻研开发,组织,指导学生开展软件开发课外活动,进行小型软件的开发训练,通过较多的软件开发活动,课程设计,毕业设计,逐步培养学生的开发创新能力.

三、培养学生软件开发与应用能力必须使学生具备良好的团队协作能力

团队精神协作能力是集体和个人成功的先决条件,更是优越条件,培养学生学会和不同的人相处,这是一个人能否成功的关键。计算机专业本身涉及面广,而且要求很强的动手能力,学生需要相互借鉴,相互探索,以求进步,一个项目的设计,如数学建模,网页制作,程序开发,OA设计,需要大量的人员参加,分组进行,相互交流,然后把每个人的劳动交互在一起才能共同完成.

如果教育者只顾培养学生学习技术而忽略培养学生的合作能力,即使再优秀的学生也不能发挥其潜能,软件开发是许多人共同参与的计划,不同的软件开发阶段需要不同的人员相互沟通。

四、培养学生软件开发能力与应用能力,必须使学生具备浓厚的软件开发兴趣和竞争意识

兴趣是最好的老师,教育工作者培养学生软件开发能力,应先激发学生软件方面的兴趣,首先给学生提供良好的学习环境,鼓励学生多操作,多熟悉工具,让学生亲自尝试挖掘自身潜力,激发软件开发兴趣,其次根据学生专业的实际抓住学生心理,由简单到复杂,必要时给学生拟定题目,让他们试着开发软件,这其中一定要给学生“吃甜头”让学生热爱计算机,热爱软件,但也必须给他们指出不足和需要改进的地方,最后,教师一定要定期定量的检验学生成果,给予全面的总结,师生共同完成一些有一定难度的题目,最终目的是使学生明白,开发软件有苦有乐,不热爱难以坚持长久的。

此外,为了培养学生软件开发能力,在平时课上要多出题目,让学生自主思考,比如说,做网站购物项目中,要给出问题:在超市中购物选中的物品可以选放在购物车或篮里,那我们在网站这虚拟商城中怎么办?我不想一个一个的去找商品只想找我指定的商品怎么办?一个网站可能有多个用户同时在线购物,那么怎么区分买到的商品是谁的等等。

五、培养学生软件编程手段

现在的软件编程大致可分为三种,代码编写,表格制作,图形图像处理,代码编写即使用字符编码写程序,实现功能,如:c 、 java、 vb、 Microsoft Visual Studio等语言,代码编写是当前学生比较难学也是比较枯燥的,同时又是基础课,为了让学生学好,并对代码产生兴趣,可由浅入深,随堂练习,每一堂课都跟据课上的内容让学生写出相应的小程序实现相应的效果,后一堂课要带前几堂课的内容,即学习了新的知识,又复习的旧的知识。表格制作即使用表格和图形设计逻辑,通过编程工具自动产生代码。如:Dreamweaver,FrontPage,等工具,图形图像处理则是使用可视的图形应用程序如vb、 asp.net等,这是学生软件开发比较流行的编程手段,前面说过,软件系统是由多个功能模块共同构成,学生可以用代码语言来构成数据框架然后用SQL 实现查询功能,把握每一个模块,每一个阶段的编程,整个设计就迎刃而解了。

六、要学生对软件开发过程有一个全面了解

软件工程中心思是把软件当作一种工业产品,要求采用工程化原理与方法对软件进行计划,开发和维护。

6.1计划时期

6.1.1 首先是问题定义(也就是用户需求调研)明确“用户要解决什么问题,想要达到什么功能”

6.1.2进行可行性研究。

6.2开发时间:

6.2.1需求分析,学生要弄清用户对软件系统的全部需求,分析出系统的全部功能走向,然后用word列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。

6.2.2概要设计

首先,学生需要学会对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。

6.2.3详细设计

在概要设计的基础上,学生需要进行软件系统的详细设计。在详细设计中,描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码。

6.2.4编码,测试

    根据详细设计方案选定开发所需要的工具(如java、 vb、 Microsoft Visual Studio等,数据库用:access/mssql)进行具体的软件编码工作,并且在编码过程中随时测试功能的实用性。

七、要对学生额外的一个能力的培训

7.1程序的能力

很多的软件开发工作不一定会从头开始,这就需要开发人员有良好的阅读程序的能力,能在尽可能短的时间里了解软件整体的架构,理解该软件初始的开发思想,能迅速并有效地参与到项目开发中去。

7.2编码能力

     这点会涉及到开发人员对所用语言的熟练程度,和该开发人员的编程风格。是否拥有良好的编程习惯,能遵循通用的编程规范,并作好注释,对该开发人员所开发代码的易读性和易维护性有很大的影响。

7.3调试和测试能力

     现代的软件行业中,代码的调试和测试时间并不比编码时间短,甚至会超出,当然,很多的调试和测试工作并不都是编码人员完成,但测试工作是很多软件开发人员的必经之路。

7.4软件的维护

     似乎维护谈不上需要什么能力,因为这时更多需要的是开发人员的耐心。

八、其它能力

前面讲的都是实际动手能力,是一个软件开发人员的基本功。而培养一个开发人员的软件开发能力,除了培养他的编程能力外,还应考虑到其他的一些很重要的能力,如:

8.1 需求分析的能力

     一个项目,最初就需要做需求分析,了解该项目的目的,对系统的需求,对功能的要求,并对其进行分析,作好项目规划和说明。

8.2建立软件框架的能力

     建立一个良好的软件框架是这个项目成功的一个保证,需要考虑整个软件的一致性和完整性。

8.3 贯穿项目始终的管理控制能力

     在项目开发过程中,不可避免会出现新需求的加入,目标的修正,或者人员的变动等问题,对此进行有效的管理控制是对开发人员的更高要求。

总之要系统的培养软件开发与应用能力,必须从多方面入手,既需要教师的指导也需要学生自身努力,教学,教与学的结合,这个环节缺一不可。教学过程讲练结合,培养学生的动手能力,合作能力及独立能力,力求学生在毕业后能达到即可团队完成项目又可独立完成项目,具有一年以上的实际工作经验,每个学生手中有几个成功案例。

 

 

 

          计算机专业教师:黄铭慧