软件开发论文:给排水专业CAD软件开发方法探讨 提要 本文结合笔者实际工作经验,分析了国内给排水专业CAD软件开发及应用现状,探讨了给排水CAD软件开发的原则、思路、方法及步骤等,并给出了开发实例。 一、给排水专业CAD开发应用现状 在工程设计行业,CAD技术的应用大大提高了设计及绘图效率。CAD应用软件的开发也越来越重要。 在给排水设计领域,CAD开发应用起步较晚。有些设计院从八十年代末开始尝试进行CAD开发,但进展比较慢,多数是图块和小型实用程序,在深度和广度上都存在着差距。从1993年以后给排水CAD开发步伐开始加快。1994年底全国给排水学会和给排水技术情报网组织召开了“计算机技术在给排水专业应用研讨会”,对给排水软件开发起了积极的促进作用。 目前在给排水CAD开发方面已经取得了可喜的成绩,尤其是建筑室内给排水方面涌现出一些比较优秀的给排水CAD软件,如洛阳的一家软件和北京的几家软件。这些软件都具有计算机辅助设计建筑给排水平面图、自动生成系统图、自动统计材料表;进行室外给排水管网计算、自动生成图形等功能,其中个别软件已在室外设计和泵房设计等方面有了新的进展。 现有软件都偏重于民用建筑给排水方面,而且也有待于继续完善、发展。在给排水的其它领域,由于难度大,投资回报较低,软件公司还不愿涉足,所以进展缓慢。应用CAD进行给排水及水处理系统的优化设计更是少有人涉足。此外,目前还没有专业设计CAD软件的标准和规范。商业化软件多数都不经过权威部门严谨的技术测试和鉴定,所以其数据库、计算方法、设计方法和生成图形的准确性还没有严格保障,这一点还可能成为工程设计质量的隐患。 现在设计部门的给排水CAD应用水平也参差不齐。有的购买或自行开发了给排水专业软件,提高了设计绘图效率。有的只是在用AutoCAD的简单命令绘图,虽提高了CAD出图率,却根本谈不上利用CAD提高效率。给排水专业CAD应用水平还有待于进一步提高。 目前许多有精力的设计院及研究部门都在研究开发本单位适用的专业软件及应用程序,但由于开发经验不足,成绩不明显。本文将结合笔者的工作经验,着重论述有关给排水软件开发的原则、思路、方法及步骤,旨在抛砖引玉,促进给排水CAD软件开发工作。 二、给排水软件包开发思路及原则 由于现有建筑给排水软件已经比较成熟,且仍在继续开发、升级。一般开发者在水平和起点上均与这些软件开发有一定差距,所以应该购买此类软件,而着重开发适合本单位使用的实用程序、应用软件或优化设计软件。高起点开发者则应在深度及广度上向更高层次冲击。 1.给排水CAD软件开发依据及原则 (1)设计依据为有关设计规范、制图标准以及设计手册等;保证数据库、计算方法和设计方法的准确性。 (2)软件包开发设计首先要突出专业水平,把专业设计思想转化为计算机语言是专业软件包的关键所在。 (3)符合设计人员思维习惯及设计习惯,人机界面友好,操作简单,易掌握。 (4)适用性强,容易修改,容易扩充,容易发展。 (5)尽量使用效率高、功能强的计算机语言及开发工具。 (6)严格执行标准化及规范化。 (7)通过自动绘图以及建立标准图库,提高图纸复用率等途径,提高设计绘图速度,真正发挥计算机的优势,把设计人员从图板上解脱出来。 2.设计开发步骤 (1)开发适合于给排水专业应用的CAD软件环境,包括AutoCAD的优化配置及常用专业图块及绘图工具。 (2)开发一些独立的专业绘图软件,发展标准图形库,由浅到深,从易到难,逐步提高自动成图及图纸复用比例,使软件包成为覆盖面广,功能齐全的专业绘图软件包。 (3)开发给排水专业高阶段设计方案优化软件,以及设计、绘图一体化软件,逐步成为智能化、自动化程度较高的专家系统软件包。 3.开发人员配备软件开发是一项较复杂的脑力劳动,对开发人员要求也较高,专业软件开发人员大致可分为以下几个档次: (1)初级水平:专业人员掌握一些基本计算机知识及开发工具可以进行一些专业图块制作,简单的实用程序开发。 (2)中等水平:较高专业水平加上较高计算机水平。熟悉专业设计习惯,有较丰富的设计经验的专业人员,如果掌握先进的CAD开发技术,可以开发出较高水平的CAD应用软件,可以提高设计效率,特别是可以大大提高绘图效率。 (3)高级水平:高深的专业水平加上先进的计算机开发技术。在专业方面应该熟练掌握专业基础知识,有丰富的工程设计经验,善于总结专业设计思路,发现规律,具有较强的系统工程及方案优化水平。在计算机方面要掌握LSP、ADS、DCL等开发工具(或其它高级开发工具)。这类人员开发专业CAD软件是最理想的。 由于给排水专业涉及面广,而且不同行业给排水设计习惯也不尽相同,不可能有软件可以覆盖所有给排水领域,适用于所有设计院,所以目前仍然需要分行业、分类进行开发。前述的个别建筑给排水软件包及开发人员属于较高水平,其开发设计思路非常值得向给排水其它领域延伸。 4.开发工具(软件方面) 目前较常用的CAD开发工具主要有AutoLISP语言、ADS、DCL语言以及数据库处理,也有的开发者使用BASIC、FORTRAN等高级语言与AutoCAD的图形数据交换接口进行开发;还有用C++开发或用VB等在Windows界面下开发的;此外,网络技术也越来越重要。 开发CAD软件,需要非常熟悉Auto CAD命令,以及其中的各参数、系统变量、图层、图块、线形等,这样才能方便灵活地在程序中执行各种命令,掌握CAD开发技巧,例如图块的属性可以带许多信息,一条LINE线的厚度可以存入管道的管径等。此外现在有些软件使用数据的后处理方式,使软件和AutoCAD结合得更好,这些技术还需要对AutoCAD图元数据库和数据图形交换等有更深的了解。 AutoLISP是在AutoCAD内部使用的语言,用AutoLISP编辑的程序可以定义变量,对数据进行处理和作出图形,并可能自定义函数,比较适合搞人工智能工作,特别是它的表处理功能以及递归等功能比较独特,在CAD工作中它可以独立工作,也可能与DXF图形交换文件互相配合。其不足之处是速度慢,且程序代码几乎无法保护。 ADS是AutoCAD11.0版以后新增加的用来开发应用的一个C语言编程环境。它运行速度快,代码保护性好,能更有效地利用内存空间以及访问设备与系统,具有更强大的开发功能。但掌握ADS要比LISP困难,要求开发人员具备C语言编程经验并熟悉ADS库中各函数用法。一般商业软件应该用ADS。 AutoCAD还提 供了可编程对话框(PDB)工具,使用户可以结合自身专业特点,用DCL语言构造自己的对话框,从而改善界面,提高CAD软件效率。 目前最流行、最实用的专业CAD开发工具是ADS、DCL,加上少量AutoLISP。 三、开发过程1.专业绘图环境的开发 (1)AutoCAD的配置及改善 a.选择AutoCAD版本。目前最常用的是汉化AutoCAD12.0版。但其汉字输入不太方便,应配上较先进的汉字系统,或用12.0版forWindows(中文)。 b.对AutoCAD系统变量进行重新优化配置及设定,主要包括系统变量及尺寸变量设置,层、线形设置等,使acad.dwg成为理想的样板图。 c.对acad.mnu进行优化,将许多常用命令放在最容易拾取的位置或固定位置。专业菜单部分可加入acad.mnu,也可以独立编写。 d.利用acad.pgp做简化命令(10.0版以前的版本可在acad.lsp中用defun函数设定),编写acad.lsp。 (2)专业绘图功能 a.专业图框绘制:可由菜单点取或用屏幕幻灯菜单点取,自动生成各种图框。 b.专业常用图块:由菜单点取生成,自动插入断线。 c.开发实用的专业绘图工具程序:如标注标高、管径、坐标、管道立管、代号、各种管件等的程序,绘制单、双线管道的程序,生成专业设计说明、图例、专业词组的程序,以及文字、线形、线宽编辑和表格操作等实用程序。 d.开发或引进建筑图绘图程序。 专业CAD软件包都应具有高效的绘图环境,否则一旦自动生成等功能出现故障或不能适用时,用户就只能用AutoCAD简单命令来画图了。 2.专业绘图软件的开发 在专业绘图环境的基础上逐步开发一些相对独立的专业绘图软件,逐步形成功能强,覆盖面广的给排水综合软件包。 目前已开发的较成熟的软件有:民用建筑给排水CAD软件包、室外给排水管网计算软件、给排水管道纵断面图绘图软件、给排水外部管网设计软件等。 正在开发,初见成效的软件有泵房设计软件、平流沉淀池软件、机械加速澄清池软件、和市政管网CAD软件等。 尚未深入开发,开发难度大,但预期效果好的软件包括:辐射沉淀池、旋流沉淀池、水塔、综合管沟、架空管网、过滤间、软水站、污泥脱水间设计等项目。 给排水软件开发的另一条思路是发展给排水设备和构筑物的标准CAD图形库,从而提高图纸复用率,这比编制自动成图的软件要容易得多。标准CAD图形库还可以由权威部门编制后,作为标准图出版。此外,标准图还可作为软件包的一部分,即软件包可以交互式自动生成图形,也可以通过自动计算直接调用相应的标准图。 3.高阶段设计及方案优化设计软件的开发在 利用CAD进行高阶段设计及方案优化设计方面,除在民用建筑给排水领域有个别公司研究外,在其它给排水领域中的研究国内还未见到报道。方案优化软件的难点在于系统化的设计思路和设计经验向计算机程序的转化,其中给排水及循环水流程的方案优化模型的建立本身就是给排水设计的一个难题。目前这方面进展缓慢的原因首先是它对开发人员要求高,这一领域的理想人选稀少;其次是给排水专业行业多,领域广,需开发的软件工作量巨大,具备这方面精力的研究部门或公司还很少。 总之,给排水专业绘图软件包开发是一项艰苦的工作,需要创造一个规模生产,流水线开发的环境,投入一大批高层次的人才。各部门的研究人员既要知难而进,又要避免重复劳动,在各行业、各领域开发出各有特色的实用专业软件。 四、给排水CAD软件包开发实例———BYWAT 1.软件包结构 专业绘图环境-CA AutoCAD12.0汉化版 AutoCAD配置及改- 系统配置 参数设置 菜单优化 命令简化 专业绘图功能- 专业图框绘制 专业图块绘制 专业工具程序 绘建筑图程序 BYWAT-(2.0)b. 专业绘图软件- IS泵及S泵基础绘图软件 水泵底座绘图软件 材料表等填充软件 给水管纵断面图绘图软件 排水管纵断面图绘图软件等多常 2.软件包主要技术特点 (1)符合设计人员设计习惯,简便易学。 (2)速度快,可提高设计绘图速度3到5倍。 (3)可由用户幻灯菜单自动点取专业图框。 (4)有丰富的专业图形符号,插入时管道自动断线。 (5)可方便地绘制建筑图。 (6)具有各种类型的标高、管径、坐标等标注功能以及一些方便实用的程序。 (7)绘材料表只需在屏幕菜单中点取材料名称即可将名称、材料、单位、标准图号等填入材料表中的合适位置,序号、数量也特别方便,速度快,辅助功能及提示功能强。如果需要,还可以自动填入单重,自动计算并填入总重。 (8)各型号水泵基础自动绘制,半自动生成水泵底座图形,自动计算和生成材料表。 (9)给排水管道纵断面图软件交互式、参数化绘图,可自动计算,并有辅助功能。 3.专业软件实例———排水纵断面图绘图软件 给排水纵断面图在冶金给排水设计中约占施工图总量的近10%,规律性也较强,较适合开发专业绘图软件。本软件原采用LISP语言编写,由主程序及辅助功能组成,包括程序600多句和几个图块、幻灯等。其中主程序结构较复杂,多处使用循环语句及LISP语言擅长的表处理语句。软件完全按照冶金设计院设计绘图习惯及顺序设计,操作特别简单,用户只需交互式输入简单的参数,即可完成完整理想的纵断面图。 输入比例尺后,程序自动绘制排水纵断面图表头。此后按顺序输入节点,节点平面距离、管径、地面标高、管内底标高、坡度、管材代号、平面示意图种类后,程序即可画出这段管及有关的全部文字、图形,并计算出下一点的管内底标高。以后每输入一段管的参数,即可画一段管,与前段管相同不必重新输入。每个井均可有跌水,软件还可自动画出各种平面示意图。同一表头内可结束一条管,再给起点画下一条管。软件的辅助功能可进行交叉等处理。此外软件还有较强的容错功能。 改进以后,加入可编程对话框,每确认一个对话框即可画一段管,使输入更加简洁。软件还可以从已编写的数据文件中提取数据自动生成图形,这也为从外网平面图直接提取信息生成纵断面图打下基础。 用给排水纵断面图软件绘图,比手工快5倍以上。 软件开发论文:计算机软件开发与用户实践的提升策略 1在设计方面要考虑用户对软件的印象 根据调查显示,网络用户在快速阅读过程中通常会呈现出“F”型的习惯,也就是在特定时间内,用户迅速浏览网站的时候会先看到网站的顶端与左侧内容,而中间的内容只能够被阅读到一部分。所以我们在设计网站界面的时候可以遵循“F视线追踪原则”,将各个部门按照主次次序放置到框架之中。如果一个网络用户在浏览到一个新的网站的时候,如果在三分钟之内还没有发现能够吸引自己兴趣的内容,那么这个网站就会100%地失去这个客户。在近几年,许多软件开发公司喜欢用过去的项目模版来设计主界面,这无形中是有利于提高软件开发速度,并且减少耗费创新技术、思路的时间与风险,然而如果一个软件产品长期保持一成不变的风格,那么就不会为用户留下深刻的印象,进而失去市场竞争力。软件开发商必须要根据商业营销学的理论,寻找到自己的目标客户群体,之后根据这个客户群体的偏好、特征来设计软件界面的整个风格,让使用者可以看到产品第一眼后产生一种与众不同的感受。 2在程序选择方面要注重优化与处理效率 我们在软件产品设计的算法方面要注重优化设计,当软件运行过程中耗时较多就需要我们注意处理、降低广大用户在等待过程中的不满情绪。随着科学技术的不断发展,计算机性能与运算速度的不算提升,诸多程序开发工作中将程序运行缓慢的原因归咎于计算机的问题,不会从自身编程过程找原因,因此软件开发工作效率较低,许多软件产品恶评较多,所以我们需要在能够控制的范围中优化程序代码,给予用户们科学、高效的产品体验过程。针对一些确实耗费时间的操作软件,我们可以通过进度条显示、后台运行等方式来调整,让用户心理上顺畅。笔者曾经有幸亲自参观了某通讯公司新任务的运行体验,工作人员每次点击用户的查询请求,在系统返回的时候需要几秒钟甚至几十秒钟,使得该公司用户抱怨数量众多,而这正是缺乏优化功能的原因。 3产品功能设计要结合人性化与灵活性的特征 传统设计受到信息化社会发展的影响,使其正处在改造进程的关注对象。当前计算机发展所带动的现代技术发展并没有到达高潮,但是计算机作为理想化的设计工具,正在逐步改革自身的设计途径、方法、过程,并逐渐迈向到数字化设计的时期。如果我们说数字化是现代社会的发展特征,那么人性化的设计就是对这种存在具象的诠释。我们在产品设计过程中,尽管存在着模块化设计的理论,但是作为产品设计者的我们不能忘记软件产品最终是为大众服务的,必须要将用户体验过程放在首要位置。另外,在软件产品设计过程中,要注重业务模块之间相互搭配的灵活性属性,不能盲目追求大众的操作形式。在广大用户使用计算机产品过程中,随着人们的个人喜欢与聚焦点不同,使用产品的方式也是具有差异性的。笔者曾经设计过一套工程方面的预算系统,部分用户关注最后的造价,而另一部分用户关注的是建筑材料的使用状况,侧重点不同导致自身操作步骤也是不同的,因此我们在设计产品过程中需要注意到这一点。 4结束语 随着科学技术的不断发展,用户对于计算机软件设计水平的需求不断提高,软件开发工作者务必要对目标群体进行深入性研究分析,要真正地了解到用户群体喜欢什么样的软件,需要什么样的软件,关注什么样的团结,从每种软件的运行界面、使用功能、运用条件等诸多方面来实现软件的优化设计,站在用户的角度来面对软件的多个问题,只有遵循这样的原则,才能够满足诸多用户群体的需求,开发出优质的软件。 软件开发论文:软件工程在“软件开发设计实训”课程中的应用 笔者所在学院的软件工程系是成立于2005年的新专业,为校级特色专业。近年来,随着对软件工程特色专业建设进程的推进,课程体系日趋完善。针对软件工程学科具有理论多且实践性极强的特点,本系较大幅度地加大了实践类课程和环节所占的比例,“软件开发设计实训”便是其中很重要的一门实践课程。由于软件工程学科发展速度很快,在软件产业不断发展,全国对高素质的软件人才的需求量激增的形式下,迫切需要研究和探索实践类课程的教学模式,激发学生学习兴趣,以更有效的手段和方式提高教学和指导质量,为培养更加符合社会实际需要的软件开发人才打下坚实基础。在我校教改基金的资助下,依托软件工程教学团队,本文对将软件工程应用于“软件开发设计实训”课程的教学模式及主要措施进行探讨。 1 选择适当的软件工程过程 “软件开发设计实训”课程的主要目的是使学生学会用面向对象的设计方法设计实际系统。结合软件工程学科的发展和应用现状,软件开发过程主要采用rup(rational unified process,统一软件开发过程)的方式组织软件开发。rup是风险驱动的、基于use case(用例)技术的、以架构为中心的、迭代的、可配置的软件开发流程。 rup分为初始、精化、构造和交付四个阶段,各阶段涉及多种工作流【1】。rup的核心工作流主要包括: 需求捕获工作流:需求捕获通过对问题的理解和分析,确立问题涉及的信息、功能和系统行为,将用户需求精确化、完全化。需求的焦点主要在初始和精化阶段,在精化阶段后期,需求捕获的工作量大幅下降。 分析工作流:分析的主要工作开始于初始阶段的结尾,和需求一样是精化阶段的主要焦点。精化阶段的大部分活动是捕获需求,分析工作与需求捕获在很大程度上重叠。 设计工作流:设计的主要工作是位于精化阶段的最后部分和构造阶段的开始部分的主要建模活动。系统建模最初的焦点是需求和分析,在分析活动逐步完善后,建模的焦点开始转向设计。 实现工作流:实现(实施)是关于把设计模型转换成可执行代码的过程。从系统分析师或系统设计师的角度看,实现工作流的重点就是完成软件系统的可执行代码。实现工作流是构建阶段的焦点。 测试工作流:测试是一项相当主要的工作。测试工作流贯穿于软件开发的整个过程。它开始于软件开发的初始阶段,而细化阶段和构造阶段是测试的焦点。测试是为了找出程序中的错误与缺限,而不能证明程序无错。 rup就像一个元过程,通过对rup进行裁剪可以得到很多不同的开发过程,非常灵活,所以可以将其按本课程需要进行精简,从而把深奥的理论指导融入具体软件项目的开发设计中,让学生更加深切地体会到什么叫学以致用,消除畏难情绪,培养和增强在软件开发设计中自觉遵从软件工程思想的习惯。本课程使用的case(computer aided software engineering,计算机辅助软件工程)工具集采用sybase公司的powerdesigner。 2 将有价值的软件工程知识引入课堂,教学采用项目贯通案例 为让学生在中小规模的实训项目中也能体会到较大型项目通常会用到的一些软件工程技术,让本课程更有实用价值,教师需要对学生补充一些软件工程相关知识,包括:设计模式、架构设计、类的持久化以及数据库设计、面向对象实现以及文档的书写这四个方面。 为配合上述四个方面的软件工程相关知识的介绍,教师采取“项目驱动的案例教学”方法【2】,在课堂讲授中引入一个完整的、规模适中、难易适度的软件项目案例。该案例需要通俗易懂而又具有实际意义,涉及的应用领域应该是学生较为熟悉的,这样理解起来更为容易。以此案例完整的开发设计过程为主线,借助这个贯穿整个课程教学进程、文档齐全的完整案例来将软件项目开发设计过程中的各个环节串连起来,着重展现上述四个方面的知识运用,让学生熟悉和掌握软件开发设计的具体实施步骤和技术。 3 学生实践环节分小组按项目方式进行 由于在本实训课程之前学生已经学习过一门先导课程:“软件需求分析实践”,所以可以把学生仍然按照在“软件需求分析实践”课程中的各小组成员组成来进行项目分组,这样各小组便可将该课程中的最终成果——《软件需求分析规格说明书》作为本课程的起点来进行,需求捕获工作流便只需粗略进行。由于本课程侧重于软件开发过程的分析工作流和设计工作流,对实现工作流和测试工作流也只作粗略涉及。 每个项目小组通常为3到5人,分组时采用了优势互补的方式,注意合理搭配,尽量让每组各个成员具有不同的优势能力,并让其民主推选一名组长负责组内的组织和协调【3】。 教师的项目贯通案例教学分阶段间插在学生实践过程中,每介绍一个阶段的rup理论,就紧跟几次课的学生实践环节,如此交替进行,当教师的教学案例施教完毕,学生的项目也同步进行到最后阶段。 项目进行中模仿软件公司的例会形式,定期由项目小组长召开小组讨论会(如每周一次),对最近这段时间的项目进展情况和技术问题进行讨论。每个开发设计阶段结束时教师均要求各小组给出相应的文档,且每个阶段完毕要进行一个模拟的里程碑式的评审(教师参与作为评审团的一员)【4】。 教师还应在课程即将结束的最后课时中对各小组的项目完成情况及普遍存在的共性问题作一个分析总结,并让各小组组长总结本组项目完成的经验教训,以利于同学之间取长补短,活跃思维,提高分析总结问题的能力。 4 依托教学团队,理论及案例部分采用轮流授课法 笔者所在的软件工程系于2009年底成立了软件工程教学团队。团队兼顾了职称、学历、教学、科研的合理搭配,由有大型项目开发和管理经验的老教师提供指导来提升年轻教师的教学能力,并让其参与到科研项目中积累项目经验。本课程的任课教师均由该团队中选出。本课程所用的《软件开发设计实训指导书》的编写由各任课教师分工完成,每人负责完成一章内容。本课程每个教学班安排30人左右,各教学班的教师全程负责该班整个课程的实践指导环节。而理论及案例讲授部分的教学则采用轮流授课法,实施方案是每个阶段的课堂讲授由编写实训指导书的相应章节的教师对全体教学班集体授课,其他教师同时到场辅导。具体各阶段的课堂讲授内容安排如下: 1)rup总论以及课程概述 2)设计模式 3)常用的软件架构风格及适用情况分析 4)对象持久化与数据库设计 5)面向对象实现及文档编写与整理 对应进行的学生的各阶段实践任务如下: 1)按既定方式确定各小组成员和组长,并且重新审核各组在先导课程“软件需求分析实践”中的最终成果《软件需求分析规格说明书》,进一步完成分析模型,得出用例图,分析类图,序列图及协作图。这一阶段学生需提交分析模型文档。 2)按照设计模式重新设计类。这一阶段学生需完成两个任务:一是实现设计模型中的具体设计类,具体要求学生:使用设计模式和机制;创建初始设计类;确定持久类;定义类可视性;定义操作;定义方法;定义状态;定义属性;定义依赖关系;定义关联;定义内部结构;定义泛化关系;解决用例冲突。二是完成用例实现的设计,主要设计模型内的协作关系,以设计类及其对象为基础,描述各个特定用例的实现和协作。这一阶段学生需提交设计模型、类图和用例实现。 3)完成架构设计。这一阶段学生需要设计包结构,完成系统设计模型图的实现子系统、接口设计类及架构模型(组件图),重新审查用例模型,得出用例模型的架构视图。这一阶段学生需提交子系统设计文档、接口设计文档及架构模型文档。 4)根据持久类以及数据库知识对数据库进行设计(包括字段编码设计)。这一阶段学生需提交数据库设计文档。 5)本课程的最后阶段。完成实施模型(部署图);完成界面以及输入输出(报表等)设计;完成具体子系统的编程工作,并进行二次迭代重新审核前面的设计部分;整理测试报告;整理文档并编写软件使用说明书。这一阶段学生需提交组件图、部署图、输入输出设计说明及具体子系统代码执行程序。 5 考核方式强调过程考核,开发设计能力与书写文档能力并重 本课程的实训目标是使学生能综合运用所学的知识进行中小型应用项目的软件开发设计。为此,我们提出了本课程考核的指导思想:重视实训过程,看重软件开发设计能力的提高,采用复合考核的方式,课程成绩由平时考核、过程考核和项目验收答辩成绩组成。重点突出“会不会做”,强调对学生的实际开发设计能力考核,同时注意防止轻视书写文档的观念。这种考核方式不但能更客观地反映学生的学习情况,还能引导学生有意识地加强软件开发设计技能的培养,开发设计能力与书写文档能力并重,更利于达到预期的教学效果。本课程具体的课程考核成绩组成如下: 1)平时成绩*10%(考勤成绩*50%+小组开发设计工作中的合作精神表现*50%); 2)阶段考核成绩*60%(五个阶段,各阶段的能力表现及提交的文档各占20 %); 3)项目验收成绩*30%(项目文档汇总整理占50%,项目答辩50%)。 6 结束语 “软件开发设计实训”课程是软件工程专业实践类课程中非常核心的一门,其实践性和综合性都很强,能集中训练和提高学生进行软件项目开发和设计的实际技能。其教学实施过程不应被视为只要学生针对项目要求能编写出相应的软件即可,而更应注重软件开发设计过程的方法和技能的培养,以培养具有软件工程思想的真正符合社会需求的软件人才。本课程应紧随软件工程学科的发展而不断更新。在今后的课程开展过程中,其教学模式和措施还需要不断创新、总结和改进,需要持续不断地研究和探索。 软件开发论文:计算机软件开发技术的应用 21世纪是计算机化、信息化的时代,在这个时代,计算机网络成为信息传输媒介,软件开发技术成为计算机未来发展的导向。为了满足计算机网络对软件不断增多的需求,软件开发技术必须不断发展,才能为构建完善的计算机网络系统提供可能。 1 计算机软件开发技术概述 计算机软件主要指系统软件、应用软件。系统软件是监控、管理和维护计算机的软件,比如操作系统和自检程序等。而应用软件则是解决用户具体问题的软件,比如人事管理软件和学习管理软件等等。不管是系统软件还是应用软件,都为用户提供了利用计算机代替或简化一种计算机的工作环境,对于用户来说,接触计算机其实是接触计算机软件。早在20世纪五六十年代,计算机软件的开发多是手工方式,这种软件开发技术不仅出错率较高、生产效率低下,而且不能满足软件生产需要。随着商品化、大型化软件的开发,人们意识到计算机软件的开发需要规范的文档来确保程序设计、调试和运行。到了20世纪八十年代,人们将软件工程定义为:实现计算机程序功能采取的规则、方法及与之相关联的文档和在计算机上运行程序所需的数据都是计算机软件。 软件工程的发展大体经历了程序设计时代、软件时代和软件工程三个时代。以建筑工程开发为例,可以看出计算机软件开发过程与建筑工程开发有较大的差异。建筑工程开发过程中,设计蓝图设计之后,之后的每一步都不存在回溯的问题,但计算机软件工程在开发的过程中,每一步都有可能经历多次的修改、适应等回溯问题,另外,软件开发成功投入使用后,要考虑到软件运行和维护的问题等等。 2 计算机软件开发技术的重要性 软件开发技术是软件工程较为关键的技术之一,对计算机网络发展有着极大的助推作用,计算机软件开发技术能够促使计算机网络技术的创新,使一些网络支持、远程控制成为可能。软件开发技术的应用使得计算机网络形成开发性、共存性的一种网络模式,对于计算机网络的发展有促进作用。计算机软件开发技术的应用解决了软件开发落后计算机网络需求的问题,随着软件开发技术的不断提高,软件的安全性、可靠性和便捷性也有了较大的提高。上述的计算机软件开发重要性推动了计算机软件开发技术的应用。 3 计算机软件开发方法 目前,计算机软件开发方法主要有原型化方法、软件生命周期法和自动形式的系统开发方法三种。原型化方法:软件开发之前要进行严格定义和预说明,要求用户及软件开发人员对系统整体功能及信息需求有全面、深刻、准确的认定。如果用户给出的软件目标不能详尽描述输入处理及输出需求,或者软件开发者不能确定算法效果、系统适用性或未来使用的人机界面形态,此时,适合采用原型化方法进行软件开发设计。软件生命周期法:软件生命周期法从时间角度出发对软件开发、定义、维护等问题分解成若干阶段,每一个节段的开始和结束均有标准。软件生命周期通常由6个时期,也就是6个阶段。自动形式的系统开发方法:这个方法是利用第4代技术[3]中的软件作为开发工具,其要求软件开发者说明软件实现的内容和目标,而不需要说明如何实现,这种开发方法根据系统的要求自动设计和编码。 4 计算机软件开发技术的应用 计算机作为一个工具,计算机软件开发者的存在使为了让计算机能更好地服务于人类,因此计算机软件开发技术要真正实现其应用价值才能被称得上成功。这里我通过一个计算机软件开发实例说明计算机软件开发技术的应用价值。采用两种方式开发两个产品,其中第一个产品是运用vb6.0+acess、单机版运行模式进行开发设计,第二个产品是运用web+xml+activex和高级数据库服务器进行开发设计。现利用两种产品分别安装客户机端,其中,采用第一个产品的话,在客户机可直接安装,因为vb虚拟机和acess驱动均是微软历史版本,所以系统可自动兼容;采用第二个产品的话,在客户机要安装activex组件,这时,要更改浏览器安全设置,这就要求客户端安装第二个产品的时候需要多个安装步骤。客户端安装成功后,经过一段时间运行,第一种安装方法运行稳定、无问题,若需备份还原数据或修复安装,用户可单独完成,缺点是随着客户端使用时间的增长用户数据越来越多,在客户端运行后期运行速度会下降,这时需要人为转档。而第二种安装方法在安装、运行上受浏览器安全设置或系统操作版本的限制,给用户的使用带来了一定的不便。这两个例子引起软件开发者对问题的认知。计算机作为一种工具,其存在是为了更好地服务于人类,目前,计算机已经成为大众化工具,计算机软件开发者不能要求使用计算机的工作人员都是专业化人才,因此,在计算机软件开发的过程中要根据需求、实际情况进行投入和开发。在计算机软件开发中要本着“以人为本”的理念,体现软件的易用及功能强大。 5 结束语 计算机软件以硬件为载体,是计算机思想的体现,其处理大量的逻辑、信息,为人们提供一种方便、快捷的信息处理手段。在当前这个信息化时代,软件开发技术有极大的应用价值,因此,科学运用计算机和软件开发知识,以期通过较少的投入获 取高质量、高效率、满足人们需求的软件产品,对于推动现代化、信息化发展大有裨益。 软件开发论文:浅谈软件开发技术在计算机网络教育中的重要性 论文关键词:软件开发技术 网络教育 重要性 论文摘要:随着计算机技术在教育领域的广泛应用,网络教育应运而生。软件开发技术的日趋完善为网络教育飞速发展提供了技术支持。本文从软件开发技术与网络教育的关系角度阐述了软件开发技术在计算机网络教育中的重要性。 计算机自20世纪40年代诞生以来,经过近二十多年来教育技术的发展,已经向社会的各个领域渗透。随着计算机应用的普及、深化,计算机软件技术的规模越来越大。1968年,北约组织的一次研讨会上提出了“软件工程”一词。今天,随着网络教育的不断发展,软件工程的重要性也随之突显出来。 1 计算机软件开发技术的发展过程 软件开发是一个非常复杂的过程,软件开发技术的发展经历了漫长的历史阶段。在软件开发的初期,人们对软件开发的认识主要集中在“软件危机”的解决办法上。20世纪60年代末k.w.dijkstra提出的结构化程序设计技术曾被看作是克服“软件危机”的灵丹妙药,但面对大型软件系统,系统的重要性、稳定性、扩充性却难以实现,20世纪70年代产生的面向对象方法,给软件工程产生了活力。对象管理组织omg在1997年11月将几经修改的uml正式作为基于面向对象技术的标准建模语言,从此又经不断发展、推新,uml目前已成为可视化建模语言事实上的工业标准。 随着soa体系结构的产生以及case技术的不断发展,软件工程技术日趋成熟,发生了质的飞跃,对现代网络教育产生了深远的影响。 2 现代网络教育的特点 随着计算机技术在教育领域的广泛应用,网络教育应运而生,相对传统教育模式而言,网络教育的出现不仅是对传统教育形式的有益补充,同时随着时代的发展,网络教育也越来越呈现出自身的优势,其特点明显体现为:促进了教育形式的变革,实现了传统面授教育向网络远程教育的过渡;促进了教育资源的有效利用,实现了由传统的书本、纸介文字学习材料向多媒体课件、学习软件、网络资料等教学资源转变,最大限度地有效利用学习资源;促进了学习者自主学习,实现了学习者根据自身学习时间和知识基础设计学习计划,获取知识的自主方式;促进了教学管理的自动化,实现了教学管理的软件化、平台化,提升了管理水平和工作效率。 3 软件开发技术对网络教育的意义 网络教育的飞速发展依赖于大量计算机软件的开发和技术发展,软件开发技术为实现并发展网络教育提供了操作平台和技术保障。 3.1 教育资源库的开发为网络教育提供了资源储备 目前,我国的教育资源库开发模型有很多种,资源的内容和采集的模式得到了极大的丰富,为网络教育提供了充足的资源储备。各类学科资源库、开放式教育资源库、资源中心等教育资源与资源数据库紧密结合,大大提高了资源管理的效率。改变了传统的教育资源库脱离数据库而造成数据不可重复使用,数据关联性弱和人工浪费的现状,使教育资源储备形成了快捷、高效、安全的良好发展态势。 3.2 教育管理软件的开发丰富了网络教育的管理手段 技术进步不仅推动人类文明的发展,同时也给教育提供了学习的新知识,对教育观念的转变起到积极地促进作用。教育管理软件的开发丰富了教育的管理手段,使教育的管理方式由传统的认为管理向软件化、信息化管理转化,有效地提高了管理效率,提升了信息准确率,同时也极大地方便了管理信息的存储和备份。随着教育管理软件的普及、应用,也间接地促进了教师和学校管理人员的现代教育技术水平的提高。 3.3 学科分类软件的开发使网络教育更具针对性 学科分类是教育教学资源内容划分的基本方式,它能够将每一学科根据类别划分并进一步细化知识点,促进知识的拓展。因而,在网络教育中学科分类软件的开发与应用对学科分类细化和突出网络教育针对性具有积极的促进作用。学科分类软件的广泛应用促进了课程资源的整合,使整个学科类别和知识的层级划分更加合理清晰、条理分明,结合不同学科的知识特点,更好地突出学科个性。学科分类软件的应用,在细化知识分类的同时也为学生构建了良好的知识资源环境,为教师与学生间的教与学的过程提供了依托平台,促进了互动交流。在这一过程的循环中,也能够较好地体现教师的教学风格,突显教学个性。这也是网络教育的重要特点。 3.4 辅助教学软件的开发使网络教育更具灵活性 软件辅助教学是现代教育理论倡导的新型教育模式。辅助教学软件的大量开发和实践应用使网络教育具有更加灵活的教育方式,突显网络教育的时代特色。同时教学软件的广泛应用有利于促进学生学习自主性的培养,丰富的教学软件资源使学生根据自身特点制定学习计划、选择学习内容、把握学习时长、掌控学习进度,极大地调动了学生自主学习的积极性;有利于学生自学能力的培养,培养了学生自我教育、自我管理、自我服务的良好意识,提高了有效获取知识的能力。 4 结论 网络教育开创了现代教育开放、交互、自主、和谐的教育新模式,适应了现代教育的发展变革,软件开发技术为网络教育的发展提供了有效技术依据。实践证明,随着计算机应用的普及和网络技术的广泛应用,依托于计算机网络的软件开发技术将以多形式、多层次、多角度发展态势,在教育领域乃至人类学习、工作、生活等全方位面临更加广阔的发展未来。 软件开发论文:软件开发套件到位 DaVinci平台应用开发效率再提升 达芬奇,是文艺复兴时期一位意大利籍、极富创新精神的科学家和艺术家;如今在半导体领域,它是强大视频软硬件技术的代名词,是ti德州仪器又一soc开发的心血结晶。 德州仪器dsp业务发展经理郑小龙说,“达芬奇”(davinci)平台的推出,旨在让客户成为“数字视频的创意大师”;希望客户能通过达芬奇平台,更好地实现数字视频的创意,这也是此平台命名的初衷。郑小龙介绍说,面向不同的应用,达芬奇平台目前共有三大家族;首先问世的是dm6446,它包括arm9和c64+内核,以及视频协处理器和视频前端,并具有丰富的外围和网络接口,适合做讲求视频效能的编解码工作。 ip可视电话的开发便是其一。需要同时对影像和声音进行编解码,且对“双向通信”的要求高。它的另一个典型应用是高端摄像机,需内置支持d1视频压缩码流的编解码功能(25帧/秒),以及支持h.264的视频前端,才能获得清晰图像。第二个系列是dm6443,它是履行“裁减艺术”的低成本达芬奇平台。虽然同样包括arm9和c64+内核,但主要侧重在d1解码的输出功能。最后一种是专门针对数码相机所推出的dsc系列,锁定其低功耗和静态影像的特性,特别强化电源管理增强型芯片和jpg2000算法部分,并对高端功能进一步进行裁减。同时由于其属于最终消费品,故而也特别注重对高速总线的支持。 强化组态配置功能 加快设计速度 上市时间永远是数字多媒体产品研发团队工作压力的最大来源,特别是soc化之后,系统的硬件成本虽然显著降低,但固件开发的复杂度也因而提升。如果没有适当的工具协助,研发团队可能得耗费数周以上的时间在整合并最佳化各种固件模块的工作上。以手机系统设计为例,由于硬件的整合度已经很高,因此研发团队在手机硬件设计上花不了太多时间,反倒是手机的软件与固件的编写与整合,占据了整个手机开发流程中大多数的时间。 在davinci这种高度整合的硬件平台上,开发团队也会面临相同的问题。因此德州仪器在最近所推出的软件开发套件中,提供了一套expressdsp组态配置套件(configuration kit),让开发人员可以把多个独立软件模块整合成一个系统可执行的输出文件,这能为他们省下数个月繁杂耗时的手动整合工作。这套组态配置工具还能针对特定规格产生一组量身订制的编码解码器,这不仅简化程序代码的重复使用,开发人员也有更多时间利用他们的工程资源为产品增加更多功能与价值。 此外,鉴于嵌入式系统采用linux操作系统已经成为风潮,在新版开发套件中,ti也从善如流地为davinci平台的核心──dm644x处理器提供一套数字视频最佳化linux操作系统。除了操作系统之外,此平台也包含一套由montavista提供并通过系统测试和实际考验的视频应用最佳化linux电路板支持套件。使用此平台的厂商将直接从ti取得montavista操作系统和devrocket整合开发环境的使用授权和支持,他们可借此取得业界最丰富的linux应用资源。 视频codec一应俱全 系统开发更容易 除了硬件效能与成本具有竞争力之外,完善的软件开发工具环境与庞大的第三方支持社群,一直是德州仪器能够稳居手机应用处理器市场与dsp器件市场的关键。在针对视频应用设计的达芬奇平台推出后,ti也正试图将以往带来成功的策略复制到新平台上,同时以更积极的做法来深化其市场优势。去年9月达芬奇产品正式发表,初试啼声之后,日前另一波达芬奇效应高潮宣告来临! 随着ti这套兼备音频/视频、语音/影像编码格式的全集成开发套件问世,将有效减小数字视频系统的设计复杂性。此次的开发套件由3个部分组成: expressdsp配置工具:利用首款优化的数字视频配置工具,尽可能减小设计工作的复杂性。 数据可视化工具:利用首款全面的图形系统可视化工具实现设计效率与性能的最大化;这套首创图形系统可视化技术可帮助实现系统互动分析、负载分布分析、瓶颈隔离、意外状态识别、基准应用性能,并可在同一图象上同时显示arm与dsp的任务运行情况。 montavistalinux主板支持套件:充分利用首款针对达芬奇数字视频而精心优化的linux内核加速应用开发,既可获取montavista经过验证且通过系统测试的内核与devrocketide以进行linux编程,并可直接从ti获得认证与支持。 细心的读者想必会纳闷:为什么要刻意区别“音频/语音”,以及“视频/影像”呢?我们同样也向ti提出了这么一个疑问。郑小龙的回答是:因为目的不同。动态视频的质量指针是编解码,而静态影像是的关键词在“像素”;同理,音频看重的是“压缩率不能太低”,但单纯的语音应用却想尽可能地把码流降到最低,因此有必要加以区别。 除了在组态配置与操作系统方面提供更完善的支持之外,ti与其开发社群在davinci平台上所提供的codec种类与数量也正在快速提升。从图3就可以看出,目前能在davinci平台上执行的codec几乎已经完整涵盖所有视频应用。此外,为加速先期推广,ti在推出此款开发套件时,同时也祭出60天免费评估计划。所有ti自行研发的编解码软件将免费提供给采用davinci平台的客户免费评估60天,让客户的研发团队可以对各种视频编解码算法的效进行深入评估之后,再决定是否要掏钱购买。在这60天内,如果客户需要相关技术支持,ti的授权软件供应者也将提供4小时免费的支持服务。 软件开发论文:软件开发人员认知风格评测系统开发 1 项目可行性和建设目标 1.1 编写目的 互联网行业对人才的需求量巨大。由于软件行业是当前平均薪酬最高、需求增长最快的行业,不少年轻人并没有考虑自身的特点,盲目地跨进了这一行业而深感无所适从。同时不少公司也为如何选择有潜力的软件精英而伤透脑筋。 优秀的软件从业人员在认知风格上表现出显著的群体特征。他们大多具有很强的推理能力、重组信息的能力和用计算机语言描述思维的能力。如何科学地量化这些特征,事关整个社会人力资源的合理分配和效益发挥。 本软件的设计与编写正是为了测评软件开发人员的认知风格,通过对软件设计人员的认知风格的研究来挖掘其显著特性,以便为人们在专业选择、职业选择、职业教育、公司人才甄别和培训(根据认知风格进行有目的的培训)等方面提供指导和帮助,从而促进软件行业更健康、持久地发展。 1.2 理论基础 赖丁和雷纳给出一个结构模式[1],开发了一套认知风格的综合测评系统——认知风格评测系统(csa)。此系统直接测量“整体/分析”和“言语/表象维度”的两端,由3个子测验构成[1]。第一个子测验通过每次呈现一个要求判断“对”和“错”的陈述,来测试“言语/表象维度”。测验中关于认知范畴的信息的陈述和描述外观的题目的陈述各占一半。赖丁假定表象型的个体由于物体相对容易被表征成心理表象,能够迅速获得用于比较的信息,从而对外观性的陈述做出的反应更快。同时假定言语型个体对认知范畴的项目的反应时间会更短,计算机记录对每个项目的反应时,并且计算“言语/表象”比率。低比率反应的是言语型,高比率反应的是表象型,居于中间位置的被认为是双重型。笔者采用这种方法,要求个体必须既阅读言语型项目,又阅读表象型项目,以便于阅读能力和速度同时得到测试。 另外的两个子测验用于评估“整体/分析”维度。其中的第一个子测验的项目要求个体判断成对的复杂几何图形是否相同。假定“整体型”的个体对这种任务的反应可能相对较快,其中的第二个子测验的项目要求被试通过按两个有标记的键中的一个,来指出作为参考的简单几何图形是否包含在复杂的几何图形中。假定“分析型”的个体把简单图形从镶嵌它在内的复杂几何图形中找出来的速度相对要快些。在进行这一子测验时,计算机同样要记录反应时,计算整体加工与分析加工的比率。低比率反应了整体性加工倾向。显然,高比率反应了分析性加工倾向,介于两者之间的比率被称为“中间型”。 由于在做这些测验时,被试并不知道该测验记录反应时,他们就能以一种轻松的方式接受测试任务,反映出他们通常加工信息的方式。由于使用比率,总体的反应速度并不影响风格的测试结果。在赖丁的研究[2]中给出了开发相应的csa的背景资料。 1.3 改进与实现 假定软件从业人员的认知风格在某维度更偏好些,采取ali reza rezaeia(2003)[3]等人对csa系统的建议,根据csa的测试模型进行修正后制定了具体的4个子测验。小组的成员对csa测试系统进行改进,设计了一个“软件行业从业人员的认知风格测试系统”。 赖丁的csa系统的“表象维度”的测试是用文字描述的,这可能使表象型的被试先要进行“言语/表象”的转换,增加对每个项目的反应时。考虑到这一点,在测试系统的设计中,将表象测试题设计为用图形来呈现。显然,这将提高“表象维度”的测试效度。 考虑到测试时系统主要是根据“反应时”作为衡量不同风格的依据,笔者首选c#系统进行编程。用c#语言工具设计出用于测试软件人员认知风格的系统,将4个子测验进行综合测试。由于在做这些测验时,被试并不知道该测验记录反应时,这样他们就能以一种轻松的方式接受测试任务,从而反映出他们通常加工信息的方式。由于使用了比率,所以总体的反应速度并不影响风格的测试结果。软件开发人员认知风格偏好评测系统如图1所示。 2 业务和功能需求分析 2.1 总体功能模块 本系统主要完成4个主模块,即被试信息管理、试题项目管理、四个分测评和统计分析。其中四个分测评包含两个维度的四个分测试,即整体/分析维度和言语/表象维度的四个分测试。 2.2 被试信息管理 被试信息管理是用于记录被试信息,便于随后的统计与分析的,所以应该具备被试的职业背景选择、性别、成长环境和学习偏好等相关数据。 2.3 四个子测验 1)“表象维度”测试。第一个子测评是以图形方式呈现的对外观认知的项目,用来测试“表象维度”。假设表象型的个体由于物体相对容易被表征成心理表象,从而对图形题干将会做出更快的反应,并且从这些表象中能够直接而迅速地获得用于比较的信息。样题如图2所示,要求被试尽快反应出右边的字母是否是左边字母平面旋转的结果。 2)“言语维度”测试。第二个子测验包含认知范畴的信息来测试言语维度。言语测试题如:“服法:每日服四片,日服三次。儿童减半,或遵医嘱。温开水送下”,表明儿童每天要服6片。言语型的个体对认知范畴的项目反应时间更短,因为表象型的个体需要先将抽象的言语转换为形象来表征。计算机记录被试对每个项目的反应时。 3)“整体维度”测试。第三个子测验包含有成对的简单几何图形组(如图3所示)。此子系统要求个体判断同一组的图形是否相同,从而用来评估整体维度。 4)“分析维度”测试。第四个子测验项目包含一个简单图形和一个复杂图形(如图4所示),它要求被试在复杂图形中找到简单图形用来评估分析维度,这一子测验所考察的是个体对包含在复杂图形里的简单图形的识别能力。它假定分析型的人在这一作业中做得更快。 2.4 被试认知风格所属区间 测试时,系统会随机从每个子测验的测试题目中选择10个题目共组成40题。由于测试中考虑到被试对题目可能没有兴趣,或者大多数题目没有经过大脑的认真思考就回答会影响测试分析的最终结果,因此必须对测试卷的有效性进行合理判断。如果一个测试的每一个项目的错误率达到30%,系统可判定该测试卷为无效试卷,不计于有效样本。 3 结语 系统在被试测试开始过程中,记录下被试对每一个子测验的各个项目的反应时,然后通过计算言语和表象平均反应时的比率,作为整体加工与分析加工比率值。低比率反应了整体加工倾向,高比率反应了分析加工倾向,界于这两者之间的比率为中间型。同理,计算出言语和表象反应时的比率。低比率反应了言语维度倾向,高比率反应了表象维度倾向,比率界于这两者之间的属于中间型。 软件开发论文:计算机应用软件开发中编程语言的选择研究 计算机应用软件开发中编程语言的选择研究 随着社会的发展,应用软件在我们的生活中所发挥的作用越来越大。对于软件开发企业而言,这既是机遇也是挑战,如何提升软件开发的效率和质量,进而提升企业的竞争力成为了当前的一个重要课题。这种背景下,做好计算机应用软件开发中编程语言选择的研究有着重要的意义。 1 常用编程语言分析 了解常用编程语言的特征和优缺点既是我们进行语言选择的前提,也是保证我们编程工作顺利开展的有效手段。 1.1 c语言:c语言是介于高级语言和汇编语言之间的语言,也被我们称之为中级语言,它集中了汇编语言和高级语言的很多优势。在最初的时候,c语言主要应用于unix系统,后来随着人们对其强大性的认识越来越多,到了上个世纪的90年代,这一语言已经成功的应用到了其他操作系统之中。它一直属于最为优秀的编程语言之一。 具体来说,c语言的特点主要可以分为以下几个方面:首先,c语言属于结构化语言,因此,它具有非常清晰的层次,对于我们使用模块化的方式进行程序的组织非常有利,也便于维护和调试。其次,c语言中不仅数据类型以及运算符非常丰富,还能够对内存中的物理地址进行直接的访问,方便我们进行位操作。第三,它的效率非常高,而且移植性比较强,因此,能够移植到各种计算机上,这就方便形成很多版本的c语言。第四,由于可以利用c语言实现位操作以及字节操作,因此,相当于利用这一语言能够实现部分汇编语言的作用。最后,c语言编写的代码具有较高的质量,而且程序在执行起来效率比较高。 1.2 c++语言。1986年,at t贝尔实验室开发出来了c++语言,主要是利用数据封装来减少程序变量的不利影响,进而提升程序的可靠性。它的多继承机制可以更好的对对象的行为及属性进行描述,虽然c++属于c语言的扩展,但是,我们可以将其作为一种全新的语言对待。 c++语言的特点主要有:面向对象、封装、继承以及多态性。具体来说,由于c++语言属于c语言的扩展,所以,它具有很多c语言的特点。另外,在c远的基础上,c++加入了面向对象的编程思想,这就是其能够更好地适应当前大规模项目的需求,举例来说,当前很多系统级编程使用的都是c++语言。 1.3 java语言。java语言相对于c++语言来说,在简洁性以及安全性有着更大的优势,具体来说,其主要的特点有: 首先,简单性:这一点和c++语言比较类似,但是它减少了c++语言中比较容易导致程序错误的地方,比如指针以及内存管理。其次,java语言属于完全面向对象语言,这一点和smalltalk比较类似,当然相对于smalltalk,它的很多方面又存在着巨大的优势。第三,分布式,在java语言中,包涵了支持基于tcp/ip协议的子库。第四,健壮性,java语言中的类型检查可以帮助我们查出很多软件开发初期出现的错误,降低内存出错的几率。第五,结构中立,在使用java语言编程的时候,会把程序编译为中间文件格式,也就是说只要存在java运行系统的机器都能够对这种中间代码进行执行。第六,安全,它删除了手动释放内存等,很好的防止了非法的内存操作。 此外,除了以上的优势之外,java语言还具备可移植性好、解释性强、高性能以及多线程等特点,这里限于篇幅不再对其进行详细的分析。当前,java语言主要应用在web浏览器以及网络应用系统之中。 1.4 c#语言。这种语言有着类型安全、精确、简单以及面向对象的特点。它属于.net的代表语言。具体来说,其特点是: 首先,完全面向对象。其次,对于分布式有很强的支持,也就是说其处理的过程是分布在服务器以及客户机上的,从这张语言的诞生过 程我们可以发现其注定就可以很好的解决分布式的问题。第三,健壮,在检查程序错误以及运行错误方面,c#语言一点不比java语言要差,它使用的也是自动管理内存机制。第四,灵活性比较高,比如在默认情况下,c#语言是不可以使用指针的,但是如果有必要我们可以将指针打开来使用。第五,安全性比较高,它的安全性是由.net平台来提供的。 此外,c#语言还具备可移植性、解释性、高性能、多线程、组件模式等特点,总体来说,它属于java流行之后的有一种语言,但是由于微软系统的支持,使其在windows方面相对于java有着更大的优势。当前,这一语言的主要应用有网络编程、数据库、窗体编程等方面。 1.5 pascal语言。这是计算机通用的高级程序设计语言,它的主要特点是结构化形式比较严格、数据类型非常丰富、查错能力较高以及运行的效率高等。正是由于这些优势,使得这一语言可以对各种算法以及数据结构进行描述。另外,利用这种语言,可以帮助我们编程者保持一个很好的习惯和设计风格。 总体来说,每一种语言都有其独特的优势和应用范围,在计算机应用软件开发过程中如果能够使用最合适的语言将极大地降低我们的工作量,提升我们的工作效率。 2 计算机应用软件开发中编程语言选择的原则 了解了各种编程语言的特点并不能帮助选择出最合适的语言,我们还要掌握编程语言选择过程中的原则: 首先,我们在确定编程语言以前充分考虑开发项目的整体架构,一般情况下,并不是说整个系统都必须要使用同一种编程语言进行编写,语言的选择将会给组件分解及连接带了较大的影响。其次,对开销比较大的操作要我们要进行认真的考虑,比如图形渲染、密码学、视频处理以及信号处理等操作,我们最好选择静态类型的语言。第三,如果条件允许,我们要尽量使用最为熟悉的语言,通过这种做法可以更好的对软件工程项目时间表进行预测,进而降低了变数出现的几率。第四,假如软件主要应用于重复处理手工劳动,那么我们要选择灵活、简单的编程语言,如果某种语言可以与生俱来来实现这些功能则最佳。第五,对开发硬件环境进行充分的考虑,并不是全部的编程语言都可以很好地适应于受限的硬件环境。一般来说,虽然当前的硬件基本已经足够了,但是对于以下较为特殊的应用来说,这一问题依旧严重。所以,要选择使编出来的程序可以较好的运行在这种环境中的语言。第六,不论应用软件开发过程中使用了哪种编程语言,确保编出来的程序可以实现快速调整是一项重要的前提,所以,快速原型是很重要的,基于此,动态语言是一个不错的选择,它可以和和很多相关库进行结合。第七,支持平台也是我们在编程语言选择过程中需要考虑的因素,比如,假如我们代码要在浏览器中运行,那么就可以排除很多不合适的编程语言。第八,在编程过程中,有些文件格式将会涉及到位操作,所以,我们还要对项目是否需要大量位操作进行考虑,一般来说,如果有这方面的要求,我们最好选择容易位操作而且可以提供合适数据类型的编程语言。最后,针对一些特殊领域,我们可以考虑使用专业的编程语言,它既能够节省很多的工作时间,还可以防止编程出现较大的失误。 3 结语 软件开发过程中,编程语言的选择和编程的效率、质量有着非常大的关系,做好这一工作可以使我们的工作事半功倍。因此,在具体的工作中,我们应加强学习,对这些编程语言特点进行深入的了解,以寻找出最合适的编程语言。 软件开发论文:软件开发中的嵌入式软件开发 在一般应用软件系统开发时,程序员只需要考虑软件系统的功能设计,硬件部分直接根据软件需求购买即可。嵌入式软件的开发则需要软硬件综合开发,这有两方面的原因:一方面,任何一个嵌入式产品都是软硬件的结合体;另一方面,一旦嵌入式产品研制完成后,软件就已经固化在硬件环境中,用户不能对其修改。嵌入式软件的这一特点决定了嵌入式应用开发方式不同于传统的软件工程方法。 1 嵌入式软件开发的特点 嵌入式软件的开发具有如下几方面的特点: 1)需要交叉开发工具和环境。由于嵌入式软件本身不具备自主开发能力,即使设计完成以后用户通常也不能对其中的程序功能进行修改,因此必须有一套开发工具和环境才能进行开发。这些工具和环境一般基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。开发时往往有主机和目标机交叉开发的概念,主机用于程序的开发、调试,目标机作为最后的执行机构。开发时主机和目标机需要交替结合进行。 2)软硬件协同设计。软硬件协同设计涉及以下方面:嵌入式软件设计、实时系统设计、硬件设计和软件设计。软硬件协同设计强调硬件与软件的协同性与整合性、软件与硬件的可裁减,以满足系统对功能、成本、体积和功耗等要求。 3)嵌入式软件开发人员以应用专家为主。通用计算机的开发人员一般是计算机科学或计算机工程方面的专业人士,而嵌入式软件则是要和各个不同行业的应用相结合的,要求更多的计算机以外的专业知识,其开发人员往往是各个应用领域的专家。 4)软件要求固态化存储。为了提高执行速度和系统可靠性,嵌入系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘等载体中。 5)软件代码高质量、高可靠性。尽管半导体技术的发展使处理器速度不断提高,片上存储器容量不断增加,但在大多数应用中,存储空间仍然是宝贵的,还存在实时性的要求。为此要求程序编写和编译工具的质量要高,以减少程序二进制代码长度,提高执行速度。嵌入式软件的核心是系统软件和应用软件,由于存储空间有限,因而要求软件代码紧凑、可靠,大多对实时性有严格要求。 6)系统软件的高实时性。在多任务嵌入式软件中,对重要性各不相同的任务进行统筹兼顾和合理调度是保证每个任务及时执行的关键,单纯通过提高处理器速度是无法完成和没有效率的,这种任务调度只能由优化编写的系统软件来完成,因此系统软件的高实时性是基本要求。嵌入式软件应用程序虽然可以没有操作系统直接在芯片上运行,但是为了合理地调度多任务,利用系统资源,系统一般以成熟的实时操作系统作为开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。 2 软硬件协同设计概念 嵌入式软件设计是使用一组物理硬件和软件来完成所需功能的过程。系统是指任何由硬件、软件或者两者的结合来构成的功能设备。由于嵌入式软件是一个专用系统,所以在嵌入式产品的设计过程中,软件设计和硬件设计是紧密结合、相互协调的。这就产生了一种全新的发展中的设计理论——软硬件协同设计。这种方法的特点是,在设计时从系统功能的实现角度考虑,把实现时的软硬件同时考虑进去,硬件设计包括芯片级“功能定制”设计。既可最大限度地利用有效资源,缩短开发周期,又能取得更好的设计效果。 系统协同设计的整个流程从确定系统要求开始,包含系统要求的功能、性能、功耗、成本、可靠性和开发时间等。这些要求形成了由项目开发小组和市场专家共同制定的初步说明文档。系统设计首先确定所需的功能。复杂系统设计最常用的方法是将整个系统划分为较简单的子系统及这些子系统的模块组合,然后以一种选定的语言对各个对象子系统加以描述,产生设计说明文档。其次,是把系统功能转换成组织结构,将抽象的功能描述模型转换成组织结构模型。由于针对一个系统可建立多种模型,因此应根据系统的仿真和先前的经验米选择模型。 3 嵌入式软件开发的方法论 在建立一个完整的嵌入式软件或是产品时,大部分系统都很复杂,不但功能规格很多,还必须考虑例如价格、性能等其他因素,否则很容易做出一个失败的系统或是产品。因此,在进行系统开发之前,必须先了解一些系统设计技术,使得在开发过程中更为顺利。一般来说,产品设计的过程会经历几个步骤,为了确保这些步骤的合理性,我们需要一个设计方法论来面对整个设计过程。采用方法论有以下三个重要理由。 确认所做的每一件事情都是必须要做的,不做无谓的工作,也不漏掉关键性的重要工作,其中包含性能最佳化或是功能测试。 根据设计方法论可以发展出计算机辅助工具或是设计经验累积,汲取每一次产品开发的经验。再经过量化之后,可以发展出一套工具或是方法,让往后的产品设计步入自动化。 开发团队遵循同一套方法论,可以让团队成员更容易彼此沟通。每个人都能在短时间内了解整体过程中将经历哪些过程,需要何种支持与接收到何种结果。此外,也容易通过一套已经定义好的方法论,彼此相互合作协调。设计过程的目标是做出有一定用途且具有创新点的产品。产品的典型规格包含功能性、制造成本、性能表现、省电考虑和其他特性。 4 结束语 嵌入式系统开发是在开发过程中综合考虑软硬件环境和需求,这样开发的软件产品不仅能使系统与硬件的驱动默契更高,还能有效缩短开发周期。由于能够有效解决软件危机带来的危害,嵌入式系统开发成为系统开发的主要趋势也是不可避免的。 软件开发论文:谈嵌入式系统软件开发技术 引言 嵌人式系统开发经过30多年的发展,到现在算是一个成熟的技术了。由此可以从总体上确认在嵌入式系统开发展过程中出现的几种明显趋势,这些趋势指出了一系列新兴的关键技术。 1 微处理器技术 最早的微处理器是4位和8位器件。由于制造技术越来越复杂,集成的单片8位微处理器开始出现,16位微处理器也开始使用。随着微电子技术的发展,16位的微处理器已得到广泛的应用。32位架构的器件逐渐占领了高端的应用市场,第一代的32位器件都是cisc架构,但目前,越来越多的risc芯片正在提供更高的性能。嵌人式系统设计者选择微处理器的范围比以前大了,必须根据性能、需求、支持、可用性和价格来进行选择。 2 系统架构 随着微处理器的发展系统架构也在进步。最早的系统,是由cpu和一些逻辑器件组成的。多年以来,系统变得日益复杂,但都还可以使用同样的调试技术—电路仿真、芯片级调试、rom监控器以及指令集模拟。嵌入式系统日益强劲,而功能需求的增长则更快很多设计者开始重新审视微处理器和它们的用法。 3 设计组成 嵌入式系统发展的最初阶段。所有的开发包括软件和硬件设计,通常都是一个工程师来承担。软件在整个工作址中的比例很小,大约5%-10%。随着时间的推移软件开发占工程时间的比例持续增长。至20世纪80年代中期,软件开发已经是由专业欢件人员来做,所占比例一般已超过整个开发工作量的50%。 在最近几年,虽然硬件设计变得更加复杂,但软件的份量也急剧增长,目前通常占到开发总量70%-80%。因此,需要有软件团队参与,同时也产生了一些新的挑战。这些挑战中的一个,就是要有可用的硬件平台来进行软件测试。由于要在更短的时间内开发更多的软件,就需要尽快建立测试环境。发出更多的软件,就需要尽快建立测试环境。有多种可行的方法,如本地代码执行原型环境、指令集软仿真(模拟),以及使用标准的、低成本的、现成的评估板。此外,低成本的主机一目标机连接技术,也变得越来越普及,有代表性的就是jtag接口。 4 软件内容 软件开发所占总时间的比例一直在增加。同时,来自全球贸易和竞争的压力使得产品投放市场的时间也一直在缩短。这极大地影响了设计的策略。最早的设计相当简单,仅仅由自己设计的应用代码组成。随着系统的复杂度增加,多任务的模型被软件开发者广泛采纳,很多开发者选择标准的、商用的实时操作系统产品。随着各个标准的进一步被采纳,买来的软件,或者说有“知识产权”的软件所占的比例正稳步增长。这个趋势给了软件开发者很多启示。集成标准的软件组件—和应用代码及其他—是我们所关心的。在多任务背景下调试是另一个值得关注的问题。与选择知识产权有关的商业决定尤为复杂;除了当前的要求之外,还有将来的(例如移植到别的处理器)也必须加以考虑。 5 编程语言 对于早期的4位和8位微处理器,汇编语言是唯一的选择。随着16位微处理器技术成为现实,出现了几种可供选择的语言。有pascal和c语言和pl/m语言。对某些类型的系统来说,forth语言也曾很流行,随着时间推移,32位技术的使用日益增多,出现了c和ada。后者在国防部的系统中被普遍使用。 在嵌入式软件开发中,c++开始逐步取代c语言。现在,1/4~1/3的嵌入式系统代码是用c++编写的。java语言当初是专门为嵌人式应用开发的,在要求运行时重新配置的应用场合,它找到了一席之地。统一建模语言(uml)也成为高级设计方法学的最流行选择。 6 软件队伍的规模和分布 正如先前讨论的一样,最初的嵌人式系统设计只要一个人就够了。在适当的时候,因专业化,产生了致力于软件开发的工程师。下一步就是建立嵌人式软件开发团队。管理软件开发在任何情况下都是一个挑战,嵌入式系统开发也不例外,只是有细微差别。使用传统的编程技术———过程语言,如c语言和汇编语言,团队里的大部分成员都需要对整个系统了解比较全面。随着团队变大,这就变得越来越不可行。价况住往是,团队里有一些特殊的人才,他们对某些专门领域很在行。为了有效地管理团队必须使用合适的策略,将他们的专长封装起来。尽可能使一个专家的工作成果能够被非专家以安全、可靠和直观的方式加以使用.在这种情况下,面向对象编程技术找到应用点。 虽然有很多非常大的公司,但软件队伍不是简单的人员扩充他们正在变成分布式的。团队的一些成员在一个地方,而其他的可能在别处。这些地点甚至有可能位于不同的国家。这种安排在欧洲很常见,在那里,真正关心的可能是交流的语言。其他地方,时区可能是个问题(可能也是一个优势,因为分布式的团队可以全天候工作)。随着新兴的技术中心(如印度)广泛崛起,上述情况越来越普遍。在这一背景不,软件组件的可重用性需求就变得很常见了。 7 uml和建模 最近几年,uml己经成为一项关键的设计方法,它和逐渐增七的嵌人式软件团队规模关系密切。广义上说,使用设计工具的方式有2种:或者是作为编写代码的指导,或者就作为直接生成代码的一种手段。对于嵌人式软件来说,代码生成是有争议的,它可能会被争论(而且还很有道理)—每一个系统都是不同的,都有各自的特殊需求。这正是xtuml(可执行和可翻译的uml)吸引人的地方,因为它使得应用与架构清晰地分离了。这里所遵循的,是与面向对象编程同样的原则—使用工具和技术来平衡专家意见。 追踪所有被当前各种嵌人式系统开发趋势所驱动的新技术并非易事。孤立地看待其中任何一项技术也是毫无意义的,因为它们之间有着许多联系。例如,多任务与多处理器调试相关;基于标准的rtos技术对处理器移植来说真是件幸事;使用设计方法学可以令实现更容易。 软件开发论文:关于在嵌入式软件开发中应用模型驱动开发技术的探讨 随着现代电子技术的不断发展,嵌入式系统已经广泛渗透到我们的工作、生活中,从家用电器、手持通信设备、汽车、到信息终端、仪器仪表、航天航空、军事装备、制造工业、过程控制等,都充斥着嵌入式系统的应用。 随着嵌入式软件快速发展,传统嵌入式系统的开发手段已越来越难以满足日益增长的复杂性和质量要求。当前,嵌入式软件开发大多采用文档形式。但文档形式嵌入式软件开发存在着许多弊端:文档本身在传递过程中是不可测试的,因此在软件开发的各个阶段之间形成了沟通障碍。由于不可测试,需求的错误被逐层积累,只有系统测试时才能发现。这就产生了矛盾:大部分错误已积累形成,但只能在后面发现。因此在纠正错误时,文档架构代价高昂。 为了解决上述传统嵌入式软件开发存在的问题,提高嵌入式软件开发的开发效率、保证嵌入式软件的质量,本文探讨将模型驱动开发技术应用到嵌入式软件开发过程。 一、模型驱动开发技术 模型驱动开发(model-driven development,mdd )是mda中的一部分。mda是模型驱动体系架构(model-driven architecture)的简称,由对象管理组织(object management group,omg)所驱动。mda表示了一种模型驱动开发方法的概念框架。然而,尽管完整的mda还没有成为现实,但模型驱动开发现在已成为可能[1]。 软件开发一般要经历软件需求分析、软件概要设计、软件详细设计、编码实现、软件测试几个阶段。每个阶段都可以产生每个阶段的相应模型。这些产生的模型,可以在工具环境中进行调试验证,尽可能在系统开发的早期发现其中的错误,同时也可以克服采用自然语言作为文档工具出现的不准确、不科学的描述。在开发的最后阶段,考虑软硬件平台的实现,保证开发过程与软硬件平台的无关性,有利于系统的开放性和可移植性的提高。整个过程也是一个不断迭代开发的过程,这种通过可调试模型驱动的迭代方式,由于不是首先从浩瀚复杂的代码中入手,而是首先从清晰易懂的模型出发,使得系统的更新变得比较容易[2]。 二、模型驱动开发的优势 模型驱动开发的一个优点是可以消除开发过程中各参与方之间的隔阂,需求工程师,系统分析员,软件开发人员和测试者都可以使用同一种预言。他们可能专注于语言的不同部分,以满足他们的需要,但他们都会共用一些基本的结构,并对他们工作的系统有一个统一的认识。而且使用统一的语言有助于消除角色间的界限,使得在项目的不同阶段人员转换到被需要的角色更加容易。还有另外一些人需要知道项目的进展情况,包括项目领导、经理和评估委员会。更重要的是,用户也需要知道什么将会被交付,需要加入到整个开发过程中,与创建系统的不同人员进行交流。一种图形建模语言,比如统一建模语言(unified modeling language,uml),使得各参与方之间的交流成为可能,帮助架起参与方与某些系统复杂功能之间的桥梁。模型驱动开发正逐渐获得公司高级管理者注意,其中的一个主要原因就是这种能够逐渐增加用户、管理层和大的组织机构参与的能力。 模型驱动开发的另一个优点是把系统和软件开发更多地纳入到系统和软件工程规则中。模型驱动开发是关于开发和维护系统的,系统并不只是由应用程序组成,还包括其他的部分,使得人们可以理解这个应用程序。一个模型可以包含明显可执行的部分,但它几乎总是还有其他部分,并不能被运行,比如需求、系统的粗略框架、分析模型。在项目开发时,所有这些都应该被创建出来并保持最新,它们对于将来的维护非常重要。 模型驱动开发可以使嵌入式软件开发过程花费更少的时间用于实现和测试阶段,更多的时间用于分析和设计阶段,当迭代重复这些过程时,会发现,这种方式的好处是实实在在的。 三、模型驱动开发在嵌入式软件开发中的应用前景 目前,模型驱动开发技术还处于新兴阶段,在嵌入式软件开发领域的发展仍然处于起步阶段。在一段时间内,传统的文档形式软件开发仍将是主流的嵌入式软件开发手段。但传统的嵌入式软件开发存在的诸多弊端决定了其必将被新的开发技术所取代,而模型驱动开发技术正是解决这些问题的有效手段。 嵌入式软件开发领域专业技术人员正在不断年轻化,他们能够更快的接受新的技术理念,积累新的技术知识。因此,他们会持续关注模型驱动开发技术的发展,并研究将模型驱动开发技术应用到嵌入式软件开发过程中的契合点。在年轻的专业技术人员逐渐占据主导地位后,必将会逐渐把积累的先进技术理念和知识应用到工程实践中去,采用模型驱动开发技术这种更合理、更有效的技术手段去保证项目开发的效率和质量。 四、结论 随着模型驱动开发技术的不断发展、完善和推广,相关模型驱动开发工具环境的不断出现,以及嵌入式软件领域的系统设计人员和开发人员对于模型驱动技术的不断深入了解,模型驱动开发技术在嵌入式软件开发中必将得到广泛应用。 软件开发论文:试析软件开发生命周期各阶段的应用软件安全性测试 论文关键词:网络应用软件 软件开发生命周期osd动 安全性测试 项目设计 单元测试 集成测试 验收侧试 论文摘要:文章论述了软件开发生命周期中每个阶段添加的一系列关泣安全性的活动,提出将安奋浏试整合到软件开发生命周期中,分析了软件安全性浏试片祠试人员的要求,并以一个sql注入实例来具体说明安全性浏试在软。 信息网络安全事件发生比例的不断攀升、病毒利用软件漏洞猖狂地传播使得人们越发认识到信息安全的重要性。一般认为,传统的信息安全技术可以借助防火墙(包括软件和硬件防火墙)审核通过网络的报文、限定用户的访问权限等来防止非授权用户对重要数据的访问,但是这一观点是建立在软件安全基础上的。网络应用软件需要暴露在网络环境下,并且授权外部用户可以透过网络来访问此软件。通过网络,攻击者有机会接触到软件,如果软件本身存在漏洞,那么所有的防火墙就形同虚设。暴露于网络的应用软件往往成为被攻击的目标,是网络应用软件安全的重灾区。美国国家标准与技术研究院(nist)2002年的一项研究表明,美国花费在软件缺陷方面的费用达到595亿美元。公安部2008年全国信息网络安全状况与计算机病毒疫情调查分析报b说明,在发生的安全事件中,未修补或防范软件漏洞仍然是导致安全事件发生的最主要原因。 1安全测试的定义 安全测试是鉴别信息系统数据保护和功能维护的过程。安全测试需要涵盖的6个基本安全概念是:保密性、完整性、权限(身份验证)、授权(权限分配)、可提供性、不可抵赖性阴。软件开发商都存在解决安全威胁方古的问题。对软件开发商来说,安全性是其核心要求,这是由市场力量所驱动,也是由保护关键基础结构及建立和保持计算的广泛信任的需要所决定的。所有软件开发商面对的一个主要挑战就是创建更加安全的软件,使其不需要频繁地通过修补程序进行更新。软件安全已经成为评判软件质量的一个重要标准,软件安全测试则成为保证软件产品能够符合这一标准的重要手段。软件的安全性测试主要是测试在正常和非正常情况下,软件能否对数据进行安全有效的操作。 2软件开发生命周期流程(参见图1) 对于软件行业来说,要满足当今提升安全性的需要,软件供应商必须转为采用一种更严格的、更加关注安全性的软件开发流程。这种流程旨在尽量减少设计、编码和文档编写过程中存在的漏洞,并在软件开发生命周期中尽可能早地检测到并消除这些漏洞。用于处理来自internet的输人、控制可能被攻击的关键系统或处理个人身份信息的企业和消费者软件最需要实施这种流程。在很多实际的软件开发项目中,安全测试已经成为sdl一个不可或缺的组成部分,并成为整个项目过程中的长期任务。黑盒一白盒测试方法往往执行在产品递交客户之前,但有的甚至在投人使用之后都未进行安全检测和风险评估;在一些安全性要求较高的项目中,虽然将安全风险评估纳人预算,但在实际操作中却对其并未作过多考虑。这样,所导致的直接后果是在开发工作几近完成的情况下进行问题分析处理所造成的成本将远远大于在软件开发阶段进行缺陷修改的成本。即便是从充分利用现有的有限资金和资源的角度来考虑,也有必要将安全测试囊括到sdl中。这样做虽然不能取代软件开发后期的渗透测试和脆弱性测试,却可以有效减少后者在施过程中的投人。 开发人员应该根据客户的功能需求来制定相应的安全规约,利用内建的明确的控制机制来降低安全风险。开发人员可以根据风险评估的结果来确定测试项目:软件能否可靠运行(safety)以及软件运行结果是否可靠(security)。 软件开发生命周期((sdl)中常用的测试方法有:单元测试、集成测试和验收测试。 2.1需求、设计阶段—安全性分析 在软件项目的设计过程中,人们往往只是关注系统的特性和功能,而没有充分考虑其他重要的非功能问题(例如性能、可用性、平台支持、安全,及要在稍后的软件开发生命周期中需要解决的安全性),导致了项目中许多不必要的波动和延迟。由于安全性分析影响了整个的设计和架构,因此应该在项目设计阶段充分地审查和了解它们。 安全性考虑包括一系列问题,例如访问控制和授权、敏感数据的适当处理、数据和存储器访问的适当使用,以及加密方法。一些安全性需求不是非功能的需求,如所实施的加密类型。另外,许多安全性需求是更直接地面向用例的,并且需要定义主要场景,以及定义备选路径和异常路径。在没有将功能的和非功能的需求适当地定义及并人软件中的情况下,编码错误和设计缺陷会表现出关键的信息和操作处于危险。我们应该像对待其他的需求那样处理安全性需求,并将安全性需求划分出优先级,设定范围,同时作为整体用例和功能需求的一部分进行管理。 2.2实施阶段—单元测试 受测试方式的影响,开发者对软件安全风险的评估不可能面面俱到。最典型的就是在代码设计阶段,开发者可以通过单元测试来检验代码行为,这些结果都是可以预知的,但是受到范围的局限,不能测试这些类或者模块集成后的行为。 实施单元测试可以从软件基本单位(单个类)的检测上保证输人的有效性;在可能出现恶意攻击的地方,也可以利用这一思想来组织针对单个类或者方法的单元测试,从而组织起软件内部的纵深防御策略,防止恶意行为对软件安全造成的损害。但是,这一方法将软件各组件进行强制孤立,因此对于因大量组件交互而引起的软件缺陷,利用此种方法无法检测。 单元层的安全测试比较适合于防止缓冲区溢出,格式化字符串以及数据缺失的审核。 2.3验证阶段—集成测试 在集成层,软件的整体安全属性变得可见和可测试,使得这一层的可测试属性数量相对单元层而言要多得多,但是对于跨站脚本和网络服务器提供的一些服务(例如安全套接层ssl和url过滤)的测试,存在一定的困难。我们可以将实际案例和风险分析的结果作为组织集成测试的指南。 集成测试要求测试人员通过安全测试培训,并且是有熟练技术的软件开发人员。 在这一层,我们可以开展诸如注人缺陷验证、旁路验证以及访问控制等方面的安全测试,来源于外部代码的安全审查结果也应该以集成测试的方式加以确认。 2.4阶段—验收测试 验收测试是软件产品交付客户之前的最后一个测试阶段,是在真实的测试环境中,利用基于恶意事件的安全检测模板,测试在典型的渗透活动中可被识别的安全缺陷。验收测试的这一特性(基于安全检测模板),使得我们可以借助于强大的自动化测试软件进行检测,并且可以用验收测试的结果来完善渗透测试报告内容,从而有助于开发人员理解软件的脆弱性以及针对软件脆弱性所采取的补救措施是否有效。 验收测试针对软件的外部api,因此不如单元测试和集成测试松散,并且只能测试当前已知且暴露的漏洞或者缺陷。非定制的商业软件重新设计的关键功能或者其他改变都会影响到软件的整体安全性,因此,如果改变会使得软件产生不可预知的缺陷,针对这些缺陷的测试就应该在单元层或者集成层开展,而不是在验收层。 在验收层,我们可以测试针对解释性程序(sql, xpath,ldap等)的注人式攻击、跨站脚本攻击、跨站请求伪造等。缓冲区溢出及格式化字符串等软件缺陷也可以在验收测试层得到检测。 3安全测试队伍 软件测试一度被认为是编程能力偏低的员工的工作,直到今天,仍然有许多公司把优秀的人才安排在编码工作上,也有更多公司让优秀的人才进行设计,仅有很少公司让优秀的人才进行测试工作。实际的软件工程实践证明,让对软件思想有深刻理解的工程师进行软件测试,可以大幅度地提高软件质量软件供应商还必须认识到组织测试人员进行“安全进修”对安全测试的成功实施至关重要。在这些情况下,软件供应商必须负责对其工程人员进行适当教育。根据组织的规模和可用的资源,拥有大批工程人员的组织可建立一个内部计划对其工程师进行在职安全培训,而小型组织则可能需要依赖外部培训。 测试人员要像攻击者那样带有“恶意的”想法去思考,而且在测试软件时还要扮演攻击者,攻击自己的系统,以此来帮助发现软件的安全漏洞。安全测试并不会总是直接导致安全溢出或者暴露可利用的漏洞,从而引出安全缺陷。要安全测试尽可能地发挥作用,测试人员需具备较强的分析能力,而这更多的是依靠熟练的开发技术和开发经验。 4漏洞举例:一个sql的注入式漏洞 有几种情形使得sql注人攻击成为可能。最常见的原因是,使用拼接形成的sql语句去操作数据库。譬如,传入用户输人的管理员用户名和密码,把这2个参数拼接形成sql语句,通过执行该sql语句,以便验证用户输人的管理员用户名和密码的正确性。具体过程如下: 一般情况下,用户传人正常的用户名和密码进行验证,如传人“myname”和“mypassword”进行验证,得到的sql语句将是: 这个sql语句很正常。但是,这只是开发人员预期的做法:通过管理员用户名和密码来验证账户信息。但因为参数值没有被正确地加码,黑客可以很容易地修改查询字符串的值,以改变sql语句的逻辑。譬如,分别传人“myname’ ori=1--” , "mypassword",得到的sql语句将是: 在用户名“myname’ or i=i--”中,第一个“”’结束了原有字符串中第一个单撇号的配对,"or”后面的“i=i”会导致不管前面的验证结果如何,都会返回真true值,而随后的“一”将把其后的sql语句注释掉。现在问题出现了,不管使用什么用户名和密码,都能验证通过。在存在漏洞的数据显示页面,如果注人join语句,就能获取数据库里的所有数据,显示在页面上,如获取用户名、密码等;而注入up-date/insert/delete语句将改变数据,如添加新的管理员账号等。这样,数据库将不再安全。 sql注人安全漏洞的形成,根本在于sql语句的拼接,只要放弃sql语句拼接,适用规范的加码访问方式,问题自然迎刃而解。以下便是修改后的安全验证方法: 5结论 为符合软件的安全性要求,开发人员在开发过程中应尽可能多地进行安全分析、安全性测试。安全检测效能的充分发挥依赖于开发人员与安全测试人员的密切配合以及对相关人员在安全教育方面的再投资。对于安全问题,在软件完成后进行处理比在代码编写阶段处理付出的代价要大得多。包含了安全因素在内的经过完全测试的最终产品,自然具有保密性、完整性、权限(身份验证)、授权(权限分配)、可提供性、不可抵赖性。 软件开发论文:软件开发中小型项目的开发流程与特点分析 随着计算机技术的飞速发展,软件开发也已经有了五六十年的发展历史了,从上个世纪90年代以来,世界软件产业获得了飞速的发展。 一、软件开发中小型项目发展的现状 首先项目管理意识差,在项目开发过程中,一定程度的存在有人无事情做以及有事情无人做的现象。项目开发中的技术经理一心专研技术,无暇顾及各种管理事务,同时,专门聘请的项目管理经理又由于不了解项目具体问题,不涉及系统的分析设计,出现了无事情可做的现象。其次是项目成本意识差,很多项目经理都是从技术骨干当中而来,对规格、进度和成本之间的平衡知之甚少,所以在对资源进行申请的时候很好考虑成本的因素。第三是项目计划制定不合理,在制定项目计划的时候不严谨、可操作性差、随意性大,并且也没有能够贯穿于整个项目之中。第四是文档编写不规范,没有能够进行及时的更新,往往是文档写在功能模块实现完之后,并且是凭工程师的记忆来写。第五是不重视软件测试,在开发中没有规范的测试文档、没有详尽的测试用例。第六是团队意识差,各成员之间不够团结,甚至是存在矛盾,导致技术交流缺乏,出现很多模块之间的问题。 二、软件开发的特点 软件是由程序、文档和数据组成,是为实现软件产品而进行的活动,首先它具有临时性,对于软件开发的开始和结束都很明确,和一般的日常工作不相同。其次是独特性,每一个软件开发都有自己明确的目标,和其他项目不相同。第三是渐进明细性,软件开发是一个不断改进、不断完善的过程,软件开发不可能一次性完成并永久使用,在信息技术的不断发展中,以及软件技术人员的水平不断提高的基础上,软件开发肯定是一个不断进取的过程。第四是知识与技术特性,在软件开发中,存在着大量的智力型活动,需要用到管理学、现代信息技术等知识。第五是要以客户为中心,软件开发最终是需要客户接受的,通过客户接受才能实现它的价值,因此软件开发不仅要满足系统功能和性能,还要适应不同的用户以及不同观点的人的使用。 三、软件开发中小型项目的开发流程 结合软件开发的特点,为了更好的解决软件开发中小型项目开发现状中存在的问题,提高项目管理意识、控制项目成本,软件开发中小型项目开发的流程主要分为以下几个阶段。首先是软件开发中小型项目开发的启动阶段,在这个阶段中,要建立项目管理过程规范,对各种软件项目计划和需求管理进行建立,保证工作计划在软件项目活动管理中的可行性。比如制定软件质量保证计划、软件开发计划、软件测试计划、软件配置管理计划、过程改进计划、风险管理计划等。在软件开发计划中要明确项目组的费用预算和资源安排、项目组与客户之间的介入关系、项目组各成员分工安排等。特别是在软件项目启动的时候就需要开展软件质量保证活动,对项目明显和潜在的风险进行分析识别,明确各风险管理项的跟踪管理方式。其次是软件项目的实施阶段,在这个阶段中重点关注风险和需求的跟踪,开发成果、开发计划与进度和活动的一致性。成立sqa部门,指定软件质量保证负责人,通过建立bug,实现对问题的跟踪。在同一的标准结构下建立项目配置库,有效的和客户进行沟通,对客户新的需求进行及时的更改,对工作的成果进行及时的标识和管理。控制好项目成果的入库、出库和更新,更新和都由专门的管理人员统一进行,将工作成果在的时候打上标签,保证项目成员手头是统一版本的工作成果,避免在阶段工作中,由于工作成果不一致导致版本混乱,甚至是出现返工的现象,从而影响到整个项目的进度。同时,要定期或不定期的对配置库内容和软件产品基线的状态进行检查,保证库内成果的可用性和配置库的完整性。项目阶段成果和项目重要计划都必须经过严格评审,并且要取得相关方的承诺和一致认同。在项目编码阶段,互查单个工作产品的普及代码,保证单位模块的质量。在工作成果的每一次评审之前,给各位评审人员通报评审内容和范围,使评审人员更加充分的了解评审内容,从而提高评审效率,起到保证评审质量的作用。在评审中发现的缺陷,应该立即纠正,并且同时指定责任人跟踪缺陷解决过程,使缺陷能够全部被解决掉。第三是可行性研究和分析阶段,在这个阶段中要进行充分的调研、了解、分析,有项目经理和开发部经理参与完成可行性研究报告、软件需求说明书、产品需求说明书和项目开发计划。第四是软件开发设计阶段,在这个阶段中,主要是进行设计、软件平台选型、数据库和数据文件的设计、io设计、编码设计、操作流程设计、模块接口设计等。第五是软件实现阶段,在这个阶段中,主要是代码的实现、软件的跟踪调试、软件的单元和整体测试、修订软件设计说明书、编写测试文档等。第六是软件发放和维护阶段,这个阶段主要是对产品进行评价,编写产品发放报告、综合评价产品、交付给用户使用、跟进用户的问题等。 软件开发论文:浅谈在软件开发管理中的误区及对策 【摘要】在软件项目开发的过程中,软件项目管理的成功与否是决定一个项目是否能够顺利高效率完成的重要保证。但是我国大部分的软件企业在进行项目管理时都存在着各种问题,从而使项目不能顺利有效地完成。文章探讨了在项目管理过程里出现的常见问题,并给出了相应的解决策略。 【关键词】软件项目管理;项目经理;项目计划 软件行业在现在的众多行业里是一个极具挑战性和创造性的行业,体现了软件开发者的智慧和汗水,同时软件开发是一项复杂的系统工程,牵涉到许多方面的因素,在实际工作中,经常会出现各种各样的问题,甚至会面临失败。如何总结、分析失败的原因,得出有益的教训,对于项目开发人员来说,是在今后的项目中取得成功的关键。 一、软件开发中实行项目管理的意义 项目管理就是在项目活动中运用一系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求,实际上就是通过项目各方干系人的合作,把各种资源应用于项目,以实现项目的目标,满足项目干系人的需求,其本质就是对时间、质量和成本的管理。 随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程中,项目开发的管理日益受到重视。 二、目前在软件项目管理中存在的误区 现在大多数企业都认识到了在项目中进行管理的重要性,但是仍然有许多企业在实施项目管理的过程中存在着这样那样的误区,主要表现在: 1.项目经理不够专业。在软件企业中,缺乏专业的项目管理人员来实施项目管理及担任项目经理,通常被任命的项目经理主要是因为他们能够在技术上独当一面,但是他们在管理方面特别是项目管理方面的知识比较缺乏。 2.项目计划缺乏纲领性。项目经理对总体计划、阶段计划的作用认识不足,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。 3.缺乏有效的管理意识。部分项目经理不能从总体上把握整个项目,而是埋头于具体的技术工作,造成项目组成人员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。有些项目经理没有很好的管理方法,不好安排的工作只好自己做,使项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。 4.缺乏有效的沟通制度和机制。在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;有些人没有每天定时收邮件的习惯,以至于无法及时接收最新的信息。 5.风险管理意识淡泊。有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。 6.项目干系人的不确定性。在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、工作职责等没有足够了解以至于无法得到完整需求或最终经权威用户代表确认的需求;或者是多个用户代表各说各话、昨是今非,但同时又要求项目尽早交付;项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。 7.缺乏项目团队的合理分工 。项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任分工不够清晰而造成工作互相推诿、责任互相推卸的现象;有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰,但是各项目成员只顾完成自己那部分任务,不愿意与他人协作。这些现象都将造成项目组内部资源的损耗,从而影响项目进展。 三、解决软件项目管理中存在的误区的有效策略 要想解决上面描述的误区,归根到底还是要从管理学的角度入手,即在软件项目的开发过程中加入过程管理的内容,这样我们可以在软件开发中对各个过程的质量加以控制,从而达到保证软件产品质量的目的。为了有效提高管理水平,我们应该努力做到: 1.项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。 2.计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。 3.加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。 4.制定有效的沟通制度和沟通机制,提高沟通意识;采取多种沟通方式,提高沟通的有效性。通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于特别重要的(下转第198页)(上接第196页)内容要采用多种方式进行有效沟通以确保传达到位,例如:除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。 5.通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法,掌握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。 6.项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。 7. 项目经理应当对项目成员的责任进行合理的分配并清楚地说明,同时应强调不同分工、不同环节的成员应当相互协作,共同完善。 实施有效的项目管理绝非易事,对于软件企业而言,这不是一个小的改变,而是一种变革,企业需要为此付出艰苦的努力,同时,成熟有效的项目管理无疑将对企业起着至关重要的作用,项目管理的水平将是企业核心竞争力之一。 软件开发论文:基于J2EE平台软件开发特点综述 摘要:在特定框架的基础上建立目标应用系统是当前web应用开发的主流,如面向j2ee平台的struts、spring、jsf、cocoon、axis和xalan等框架都得到了广泛的应用。这些框架是软件开发人员从以往的经验和教训中总结出的设计模式。这些模式的应用,不仅降低了软件开发的成本,同时也保证了web应用系统的质量。 关键词:j2ee平台;web应用;jsp 一.j2ee平台概述 sun的java 2 enterprise edition(j2ee)平台已经成为使用最广泛的web程序设计技术。该技术主要支持两类软件的开发和应用。一类是做高级信息系统框架的web应用服务器(web application server),另一类是在web应用服务器上运行的web应用程序(web application)。全球主要的商业网站和管理信息系统大多采用j2ee平台作为首选的web开发技术,每一个web应用服务器都将需要企业开发和运行多种web服务软件。 二.j2ee平台web应用结构分析 j2ee平台的核心技术是java server page[1]和servlet。整个j2ee平台的应用结构模型如图1所示。从应用结构图明显看出j2ee完全遵从mvc设计模式[2]。下面分别对每个组件做一个介绍。 servlet组件:servlet在web应用中担任重要角色。servlet运行于servlet容器中,可以被servlet容器动态加载,来扩展服务器的功能,并提供特定的服务。servlet按照请求/相应得方式工作。在j2ee平台下,控制器组件就是由servlet来构成的。 jsp组件:在传统的html文件中加入java程序代码和jsp标签,就构成了jsp页面。java程序段可以操控数据库、重新定向网页以及发送e-mail等,实现建立动态网站所需要的功能。jsp技术大大降低了对用户浏览器的要求,即使用户浏览器端不支持java,也可以访问jsp页面。 javabean组件:javabean是一种符合特定规范的java对象,在javabean中定义了一系列的属性,并提供了访问和设置这些属性的公共方法。javabean可以作为共享数据,存放在page、request、session或application范围内。在jsp文件中,可以通过专门的标签来定义或者访问javabean。 自定义jsp标签:jsp标签技术是在jsp1.1版本后出现的。这些可重用的标签能够处理复杂的逻辑运算和事务,或者定义jsp页面的输出内容和格式。自定义标签可以使jsp代码更加简洁,有助于将jsp文件中的java程序代码分离出去,使jsp文件侧重于提供html表示层数据。对于j2ee下不同的框架,会有自己不同的标签库。 ejb组件:enterprise java bean(ejb)组件是基于标准分布式系统对象技术、corba和rmi的服务器端java组件。ejb组件和javabean组件一样,都用于实现企业应用的业务逻辑,它们的根本区别在于:ejb组件总是分布式的,sun公司制定的ejb组件模型要求ejb组件运行于ejb服务器中,而javabean组件可以和servlet或jsp运行在由servlet/jsp容器提供的同一个java虚拟机中。 xml语言:即可扩展标记语言(extensible markup language),是一种用来创建自定义标记的标记语言。xml在web应用以及web服务开发中得到广泛的应用,可用来描述结构化的数据。如在struts框架中,有两个重要的配置文件:web.xml和struts-config.xml。web.xml文件用于配置web应用;struts-config.xml用于配置struts框架。 三.j2ee平台下web开发框架 框架 (framework)[3]不同于类库(library)。框架提供的不是一组功能性的组件,而是一个软件结构,一种业务流程,以及hollywood法则(“don’t call us,we’ll call you”)。选择框架,意味着web应用开发人员只需且只能在框架限制的范围内编写业务组件和显示组件,由框架管理这些组件之间的协作。这虽然丧失了一定的自由,但是却能得到结构更加良好,质量更加可靠的web应用软件。现在,常用的j2ee平台下web应用框架包括struts、spring、jsf、webwork等。 四.展望web应用开发 纵观web应用的发展过程,有两个现象值得注意。首先,底层功能的完善会优化上层功能,上层功能的推广对底层功能提出更高的要求。当web硬件能提供高速度的带宽时,软件公司才能开发出满足用户需要的程序。web系统被大量使用往往使现有系统不能满足要求。这就要求开发出新的硬件和软件系统。例如,在http协议上,最先只有html作为文档编辑语言。当web浏览器(ie,netscape)成为计算机必不可少的上网工具时,动态的web设计语言(java,servlet/jsp,asp,cgi,等)应运而生。其后由于这些语言需要占用系统得计算资源,高速的web应用软件和主机成为大型网站必不可少的配置。在此背景下,web应用技术在整个人类的生活中开始占据重要的位置,随着web应用平台和框架的增多,如何快速有效的进行web应用开发,而且如何尽可能的使前期开发可以为多个web框架应用,成为it业界的研究方向。
电子商务软件开发探析:电子商务软件开发技术课程的教学改革与实践 [摘 要]电子商务软件开发技术是计算机专业的方向课程,教学方法的研究与改革是一个牵涉到教学工作方方面面的系统工程。它涉及课程设置、教学方法、教学手段等研究内容。本文阐述了课程的教学改革方法,并提出了加强学生实践动手环节能力培养的观点。 [关键词]交叉学科 课程体系 课堂案例 考核改革 电子商务软件开发技术作为Internet新的应用领域,已经逐步地走向商务活动的各个环节和领域。而电子商务的发展也使得社会对电子商务人才的需求更为凸显。[1]由于计算机专业的特点以及需求的不同,针对计算机专业的电子商务软件技术开发方面的课程相对比较单一,教学研究和教学方法还较为保守,正是在这样的前提下,我们从计算机专业的角度针对该课程实行了一系列的改革措施。 一、教学改革的思路 电子商务软件开发技术作为一个新的学科领域,是建立在多学科基础上的交叉学科,涉及计算机技术、信息技术、经济管理等多个学科。[2]因此,要求学生应具有扎实的计算机技术、信息技术和系统全面的经济学和管理学知识,能将技术与管理有机地融合;能把握新型学科的特点,了解该领域的主要研究成果,关注企业信息化的发展进程及电子商务在企业的应用进展;毕业后能在相关部门从事企业级电子商务的开发、规划以及应用和管理工作,能够成为企业制订和实施电子商务战略的复合型人才。 我们的教学改革思路是从电子商务系统的软件实现角度出发,以面向复用的构件化设计思想为基础,将电子商务系统实现技术按照建设流程进行划分,将Web技术及信息安全技术分为两大技术支柱,以电子商务的交易模式、电子商务的安全技术、基于第三方支付平台的电子商务支付技术为辅助,结合国内外的电子商务平台开发的实例来让学生系统地学习这门课程,着重研究构建Web技术和电子商务安全技术以及企业级电子商务系统的开发和实现技术, 从而为将来顺利开展计算机学科的电子商务课程体系的教学提供良好的主观条件。 在教学改革中,我们设定的目标是总结出一套计算机专业的电子商务软件开发技术课程教学的完整实施方案与管理办法,从而为在计算机专业大量开设电子商务课程体系的核心课程奠定基础。同时,提高学生学习的主动性,改变课堂教学以教师讲课为中心的教学模式。教学改革的具体思路包括以下3个方面。 1.理论教学方法研究: 新型学科课程课堂教学法研究、课堂案例比例问题研究、教学中实验课的改革、学时矛盾解决方法研究、新型学科课程教学的考试方法研究、交叉学科课程在专业课程中的最佳比例研究、教材建设等。 2.实践教学方法研究:组建学生实践团队以及结合项目练习的方式,加强学生工程实践的动手能力。 3.现代教学手段研究:新型学科课程教学中现代教学方法的应用研究。 在课程的教学改革实践中,必须解决以下3个关键问题。 问题1:在计算机的相关专业中有不少课程为电子商务软件开发技术课程提供了很好的教学条件,但学生对前续课程的掌握及动手能力究竟到了何种程度? 问题2:在教学实施的过程中,教学的重点仍然是计算机专业知识,相关学科的知识不是重点。因此,在电子商务软件开发技术课程的授课环节中,教学的重点和难点究竟采用何种比例更为合适? 问题3:实践教学环节相对薄弱,难免让学生有读懂了书本,却不太能动手的感觉。因此,如何提高学生动手实践的积极性和主动性,让学生更好地掌握课程内容? 二、教学改革的实施 首先确定课时比例,根据目前的计算机专业教学环境与教学条件进行充分论证,确定出课程教学课时中理论教学和实践教学的合适比例;其次,根据交叉学科课程的特点,结合一定课时的学生课堂分组案例的以及课后的攻防模拟演习,使得学生具有系统分析、设计及技术实施的基本能力,可以进行企业级电子商务平台的规划、技术开发和应用管理;再次,组建学生的课程实践团队,结合项目进行练习,多方面锻炼学生的动手能力,使得他们具有信息组织、分析研究、传播与开发利用的基本能力,并能把握本课程作为新型学科课程的特点,具有一定的科研能力和实际动手能力。 (一)课堂教学改革 课堂教学针对课程的重点、难点进行分析、讲解,也是对相关知识进行扩展的平台,课堂教学的好坏直接影响教学效果。因此,在课堂教学中可采用以下方式。 1.采用多媒体授课,提高学生的学习兴趣,增加学生的知识信息量,较好地把原先很难在课堂上讲授好的内容体现出来。对多媒体教学过程的设计,既体现“启发”的主导作用,又体现知识性。讲义做得细致且精简,还补充了许多跟课程知识相关的重要链接。使学生在课后能通过预习和复习讲义内容,深入地理解课程的内容。 2.采用先进的国内外教学理念,注重培养学生的动手及动脑能力,增强课堂教学的互动性,增加“课堂案例”的环节:将学生进行分组,每组6-8人,教师针对每章的内容布置课堂案例,学生以分组的形式在课后进行讨论和模拟对攻演习,结合课堂所学的知识,形成分组报告以及模拟攻防后的效果截图,做好案例的电子文档和PPT演示文稿,然后在课堂上由每组派出一名同学进行案例,教师随堂进行分析和评定。这一环节不但可以培养学生的自学能力和实践动手能力,而且也加强了学生对专业技术知识的了解,调动了学生学习的主动性和积极性。 3.增加课堂讨论的环节,布置了相关的讨论题,特别是针对课堂案例部分,让学生分组讨论如何设计这个案例,并以小组为单位给出设计方案。在课堂讨论过程中,学生们各抒己见,互相学习,教学效果较好。 (二)实践教学改革 实践教学对于提高学生的综合素质、培养学生的创新精神与实践能力具有重要的作用。通过组建教学实践团队和结合项目练习的方式,多方面地锻炼了学生对电子商务网站平台建设的动手能力,具体实施方法包括:增加安全和攻击方面的演练,围绕工程开发实例,合理设计实验教学内容,撰写详细的实验指导书等。 (三)课程考核改革 改革考核方式,以考核学生的动手能力为主,测试学生在教学过程中对知识点和难点的掌握程度。根据课程本身的特点和性质,灵活运用开卷、闭卷、开闭卷结合、答辩、实践技能操作、撰写技术报告、提交作品等多种考核方式。考核形式推行在多个阶段(平时测试、作业测评、课外阅读、社会实践、期中考核、期末考核等)、多种类别(校内能力考核、社会等级考核等)的考核制度改革,强化学生课外学习。增加论文、作业、课堂表现及参考阅读等成绩考核中的比重,以此提高学生的专业基本能力与综合素质。 (四)构建案例库和运用网络教学系统 搭建案例库,采用启发式案例教学方式;改革传统教学模式,提出了主动式、网络集成化教学模式,采用基于网络的多媒体辅助教学系统,针对各教学环节设计相对独立的、方便可控的功能模块,通过有机的网络集成提供全程辅助教学服务,支持多层次、多线程学习模式,为学生提供丰富的数字化资源;通过网络交互,增加交流、反馈等机制,突出网络多媒体辅助教学中以人为本、自主学习的教学理念。 三、结束语 随着计算机科学的迅猛发展,社会人才市场对高校计算机科学教育提出了更高的要求,对新型交叉学科课程的推广教学已是势在必行。[5]电子商务软件开发技术课程的教学改革涉及课程设置、教学对象及任课教师、教材选择、教学方法、教学手段等研究内容,对学生动手能力的培养起到很好的带动作用。大部分课堂教学都是以教师讲课为主,学生被动地接受知识,较难调动学生学习的积极性。本课程在教学改革中通过课堂案例和攻防演习,使学生有了更多的动手和动脑的机会。同时,通过本课程的学习,学生的知识面更广了,而且还能把握交叉学科课程的特点,了解电子商务领域的主要研究成果,关注企业信息化的发展进程以及电子商务在企业中的发展应用。我们衷心地希望电子商务软件开发技术课程教学改革的成功能为计算机专业其他交叉学科课程教学的进一步开展奠定坚实的基础。 电子商务软件开发探析:电子商务园区软件开发项目应用 摘要: 眼下随着电子商务在国内外的蓬勃发展,一批新兴的电子商务园区在国家政策的扶持下如雨后春笋般拔地而起。对于这些创业初期的企业而言,在有限的成本控制下,开发一套适合企业发展的企业管理软件显得尤为重要。然而,在传统的项目管理模式下,软件开发周期长,开发成本高,项目返工率高等一系列因素成为了制约企业前进的绊脚石。20世纪中期,著名的管理学家彼得•德鲁克提出的目标管理法很好的解决了这些问题,本文通过分析这类企业的特点阐述了引入目标管理法的必要性和实际效果,以此给这类企业将来的管理模式以启迪。 关键词: 电子商务园区;目标管理法 电子商务是时下一个比较时髦的名词,它起源于20世纪60年代,由美国运输数据协调委员会即TDCC提出第一版的电子数据交换即EDI标准。 [1]然而那个时代的电子商务由于存在地域的局限性其实质仅仅是电子化取代纸张化的过程。随着互联网的普及,越来越多的普通大众也开始接触到电子商务,20世纪末开始电子商务逐渐由公司间的贸易形式转变为面向大众的在线电子交易平台,这一方面是科技进步的必然结果,也体现了当前市场对电子商务的需要。而我国由于庞大的消费群体成为了世界上最具潜力的电子商务市场,伴随着国家鼓励创业的优惠政策,一大批依托电子商务企业创立的电子商务园区正逐渐在大中型城市里迅速崛起。现代化的企业管理当然也离不开先进的科学技术,这其中,ERP系统的运用更是为我们大家所熟知。早在1977年,美国著名的生产管理专家奥利弗•怀特就提出了ERP的原型——MRP。[2]随着时代的变迁,以及科技的进步,目前广大企业的业务借助互联网正越做越大,产生的数据和管理的范畴也越来越多,人们对于象ERP这类的软件的需求也变得越来越迫切。 当前市场中,比较知名的ERP软件提供商如国外的SAP、Oracle以及国内的金蝶、用友等,依托庞大而专业的开发团队,他们的产品设计专业度高,企业需求匹配度高,当然,直接购买的成本也很高,这对于众多创业初期的电子商务园区来说将是一笔非常可观的支出。同时,由于这些产业园区的业务需要,他们需要的不仅仅是传统模式下对企业的自身业务的管理,更需要对客户的经营状态作出及时的分析和预判并及时作出调整,这需要软件本身能及时适应客户的需求变化。由此,固定的软件模块已经满足不了企业的需要,二次开发甚至是量身定做的ERP系统成为了许多电子商务园区的理想选择。 开发一套成熟的ERP系统,需要庞大的开发团队做支撑,也需要经历一个较长的研发周期。根据调查,一个中等规模的研发团队,开发一套基本的ERP系统至少需要4个月的时间。在传统的项目管理模式下,管理者大多应用关键路径法预留了较长的项目时间以应对可能出现的问题。然而,这种管理模式依然摆脱不了功能模块大量返工,客户需要得不到完全满足,项目人力资源调配不合理等诸多问题,由此给企业自身以及开发团队都造成了大量的资源浪费。 20世纪中期,著名的管理学家彼得•德鲁克在其名著《管理实践》中提出了目标管理这个概念。目标管理法是一种以目标的设置和分解、目标的实施以及完成情况的检查、奖惩为手段,通过员工的自我管理来实现企业目的的一种管理方法。[3]通过目标管理法,项目管理者能将原来的宏观目标按照自顶向下的原则层层拆分。以ERP项目为例,开发团队的最终目标是完成一套ERP软件,而在实际制定目标的过程中,项目经理可以依据功能模块或者开发阶段先进行大致的目标分解,然后再将每一个开发阶段或者功能的具体实现进一步细分,落到具体的开发者身上。而这整个制定目标的过程,都是由项目组的上下级共同参与的,不仅提高了目标拆分的合理性,减少了开发工作的返工概率;也能针对不同员工的实际工作效率制定相应的开发任务,提高员工的工作效率;同时,由于目标分解较细,先完成的开发人员可以马上投入到其他的任务中,相比较传统管理模式下等待某一批任务完成整体前进的工作方式在人力资源的利用率上也大大提高。 目标管理法在电子商务园区软件开发项目中的另一个优势在于它能对客户需求的变更做出及时有效的响应。传统管理模式下的项目流程图几乎无法更改,一旦关键路径上的某个节点出现变更,则几乎整个计划需要重做。在目标管理法的基础上,由于任务与任务之间大多处于平行的模式,某一个目标的更改对于其他目标的实现产生的影响较小。这种模式更能适应电子商务客户的需求变更以及技术领域企业不断进步的技术对软件的进一步需要。目标管理在人力资源管理的领域所起到的作用也不可忽视。传统的项目管理模式,大部分的项目组只有中期和收尾阶段进行绩效考评,而这种考评模式容易带来的直观问题便是问题发现晚,返工不及时影响整体项目进度,项目奖金发放周期长影响员工积极性。而目标管理法则不同,每个任务或者每一组任务结束进行考评,员工可以及时根据发现的问题自我调整,相对较高频率的奖金发放更是对员工工作的肯定从而提高员工的积极性。 实践证明,采用了目标管理法后的项目开发周期短,员工工作效率高,项目开发成本低,客户满意度高。这些都是项目管理不断进化所带来的可喜变化,也是适应现代化企业需要的管理方法。在电子商务园区的软件开发项目中应用目标管理法所带来的成功,不仅仅让我们看到了以ERP为代表的软件技术的进步,也让我们的项目管理者看到了先进管理思想给企业带来的巨大的商业利益和进步的空间。相信以目标管理法为代表的管理理念的革新必将推动我国企业管理走向更高的台阶! 作者:丁马宗 单位:上海交通大学 电子商务软件开发探析:电子商务软件开发风险管理初探 1商务软件开发项目可能存在的风险 (一)人力资源造成的风险 人力资源是电子商务软件开发过程中必不可少的因素,但是在电子商务软件开发项目过程中如果不能很好的开发人力资源也会给软件开发项目带来很大的风险,主要表现在以下几个方面:首先,由于激励措施的缺失,造成了开发项目的工作人员没有很高的积极性,造成生产能力的低下,而另外,还有某些可能对于工作环境的不适应或者是由于对于软件工具的运用不熟悉,需要更多的时间适应,造成软件项目的开发不及时而出现风险;其次,项目组各个成员之间由于思路理念等不一致,造成在实际中可能出现冲突,再加上沟通不畅而导致设计出的产品不佳,接口部分出现不匹配,重复的设计工作等增加工作量;再者,开发项目的人员不足,并且流动性非常大,特别是开发项目负责人的流动性比较大,再加上开放项目的储备人员不足与具有专业技能的人员等,不能及时的补充由于人员流动而在成的缺口,这也给软件开发项目带来不稳定的因素,增加项目的风险机率;最后,在电子商务软件开发项目的过程中撰写报告所用的时间比较长,也给项目带来较大的风险。 (二)技术问题造成的风险 软件技术不断的发展,但是在软件开发项目中缺少经验丰富的人员,这就可能因为开发项目由于缺乏技术技巧影响整体项目的进程以及最终的结果,给开放项目带来更大的风险。比如说:在功能的设计方面,由于考虑的不够全面,造成设计的产品存在性能问题,无法达到既定的要求,还比如:由于缺乏经验丰富的技术人员,不能及时的对新技术与开放的方法等及时应用等,这都在一定的程度上为电子商务软件开放项目带来很大的风险。在软件开放项目的初期,识别到风险,才能采取更有效的手段预防风险的发生。 (三)外部原因带来的风险 首先,市场的需求的变化给开发项目带来的风险,需求是软件开发项目进行的基础,但是外部的需求是不断变化着的,这给项目的开发带来很大的不确定因素,在开放项目的进程中,如果不解决这些不确定的因素,就会造成项目不能成功的完成,给项目开发增大了风险,与需求相关的一些风险如果采取不作为的能就可能制造出错误的产品,甚至是劣质的产品,不管是什么产品都加大了项目开发的风险。其次,政府部门推出的相关政策以及要求发生变化给项目的开发带来很大的风险;再次,项目外包的部分不能达到质量的要求,造成不能按要求及时交货,这也给项目开发企业带来很高的风险。 (四)资金与管理带来的风险 首先,软件的开发项目的范围发生了变化,导致资金的紧缺,而新的资金不能及时的到位,势必影响项目的成功,给项目带来很大的风险;其次,管理上带来的风险。主要是由于高层的管理人员缺少管理方面的经验,没有对市场需求等进行调研,造成决策不符合实际要求,造成项目的进度缓慢,项目开发时间比较长,另外管理部门的审核时间比较长,给项目的开发造成了更大的风险。 2商务软件开发项目风险管理工作的建议 只有及时的发现风险,才能及时的采取有效的措施规避风险,进而降低风险发生的概率,可以采取以下几种措施规避风险。 (一)注重人力资源的管理 首先,控制人力资源的成本,电子商务软件开发项目需要较高的人力资源成本,但是在实际的项目开发中,没有把人力资源的变动因素考虑到人力成本中,更没有把人力资源流动与工作量两者相结合的考虑,而是为了保障项目的质量与进程,不断的督促项目开发人员进行超时的加班或者追加人力。但是长期的加班会造成工作的效率更低。比如说:由于劳累可能对于项目的开发不够认真导致出错率更高,造成项目质量下降,这就需要再次返工,不断增加了工作的时长,而且会延误工期,而不断在项目中增加新的人力,也会由于新的工作人员对工作环境的不适应或者需要原有工作人员教授指导,也可能会出现延误工期的情况。而且这两种情况都会造成人力成本高于实际计划的成本。如果出现人力资源不足的时候可以考虑把一些任务或者是子项目采取外包的方式,进而减少项目的压力,但在外包之前要对外包的公司进行相应的考察,避免出现质量与进度体导致的风险。还可以采取部分项目人员为兼职的形式,比如说:高级技术人员以及专家等这样也可以在一定程度上节约用人的成本。其次,电子商务软件的开发项目会需要不同能力以及不同角色的人进行合作,为了保障工作质量以及工作效率,要合理的规划项目人员的管理与分工,同时还要注意选择有业绩的项目成员,并根据成员的特点进行合理的分工,从而规避成员差异带来的风险。最后,加强团队之间的沟通,团队的组建需要不同能力的人,既要有技术专家,又要有市场销售能力的人员,还要有管理方面才能的人员,只有各尽所能,才能促使团队更好地团结起来。另外还要建立良好的沟通平台,最好有完善的信息系统,促使成员之间加强联系。还要明确成员组织的结构,使每一个项目问题都能够及时的解决,从而促使风险管理工作更有效的进行。 (二)制定合理的项目计划 电子商务软件开发项目的管理估算是很必要的工作,要结合项目人员的综合能力、任务、资源以及外部条件等相关因素,才能使制定出来的计划与实际的情况相符合。但是由于电子商务软件开发项目没有更多的经验可以借鉴,在加上客户没有明确的需求,运用的又是比较先进的工具与技术、成员组成又比较复杂,市场的变化有比较快。如果没有制定科学的计划就会造成项目的进度与质量难以得到保障。项目经理在制定计划时可以采取分阶段制定的方式,先计划近期的任务与细节部分,可适当的设计少量的远期任务,从而使计划更加灵活多变。对于客户的需求变化,可以在指定的计划中留有余地,在与客户进行沟通,进而明确客户的合理需求,这有这样才能更好对风险进行管理。 (三)建立风险管理工作系统 首先,做好风险管理文档,项目经理对于项目的规划中一般不会专门做风险管理工作的文档,即便有风险管理文档,也是与项目的计划书合并在一起,甚至有些项目经理仍是不到风向管理工作的重要性,在风向管理环节只做表面的应付工作,不能及时的防范风险的发生。电子商务的软件开发项目确实是时间紧任务重的一项工程,但还是希望项目经理抽出一些时间来完善风险管理工作体系,创建风险管理的文档,并在项目的开发进程中对项目做好风险监控的工作;其次,做好风险管理的知识库系统,项目经理一般在项目结束时,不会对项目的进行细致的总结,这是不利于对电子商务软件开发项目的经验的累积,这就要求项目经理在项目结束时,把风险的应对策略与经验添加到风险管理工作的实时库系统,从而更好地避免在今后的项目开发中出现同样的问题,为风险管理工作增加经验积累,更好的规避风险。 3、结束语 总之,随着电子商务的快速发展,电子商务软件的需求越来越多复杂,这就造成电子商务软件开发项目的存在更多的风险问题,这也就要求在项目风险的管理工作中寻求更多的创新方法,从而更好规避项目开发的风险。 作者:何涛 单位:柳州市柳邕农副产品批发市场有限公司
软件开发毕业论文:冶金采矿计算机软件开发研究 摘要: 进行冶金采矿类专业计算机实验室管理系统的优化设计,确保实验室管理的高效运转。系统采用LabWindows/CVI进行实验室信息管理系统开发,采用嵌入式Linux进行内核编译,系统主要包括了信息处理模块、网络通信模块和人机交互模块。在于x86的标准PC环境实现计算机实验室管理系统的软件开发和实现。研究表明,该系统对计算机实验室的管理信息的处理效率较高,进程跟踪实时性较好,稳定可靠。 关键词: 冶金采矿;计算机;实验室管理;软件开发 在物联网和计算机网络信息平台下,设计冶金采矿类专业计算机实验室管理系统,提高计算机实验室的工作效率。大型计算机实验室的信息管理系统是构建在物联网环境下的,实现对计算机硬件设备的联网管理和集成调度,保障计算机实验室的稳定可靠运行。随着信息处理技术和软件集成开发技术的发展,对冶金采矿类专业计算机实验室管理系统软件设计,确保实验室管理的高效运转[1]。系统采用LabWindows/CVI进行实验室信息管理系统开发,采用嵌入式Linux进行内核编译,实现系统集成设计。首先进行了计算机实验室管理系统的总体设计,然后进行模块化设计和调试,得出有效性结论。 1计算机实验室管理系统设计及技术指标分析 本文设计的冶金采矿类专业计算机实验室管理系统主要分为计算机实验室管理信息处理模块、网络模块、数据存储模块、通信模块以及人机交互模块等,采用的DSP是AD公司的AD9225芯片进行计算机实验室管理信息的高速处理和采集。搭建入式Linux软件开发环境,在Windows或Linux计算机进行信息系统的数据库开发和设计,采用交叉编译环境,在Linux下编译程序生成冶金采矿类专业计算机实验室管理的目标文件[2]。在组件设计中,通过调用request_irq()函数实现译码和时序控制设置分频器和信息存储结构分布的脉宽值。根据上述参数设定,进行信息存储系统的模块化设计,在存储系统的资源配置模块设计中,先打开SCSI数据硬盘,设定源代码,在LabWindows/CVI中为用户提供GPIB488.2库,基于X86架构编译生成的可执行代码,完成系统的总体设计,根据上述系统总体设计要求,得到本文设计的冶金采矿类专业计算机实验室管理系统软件的技术指标描述为:8通道同步计算机实验室管理信息采样;D/A分辨率:12位;X86架构下的代码编译功能。根据上述技术指标分析,进行系统的模块化设计和软件开发。 2计算机实验室管理系统软件模块化 设计及集成开发实现在于x86的标准PC环境实现计算机实验室管理系统的软件开发和实现。软件开发中,首先配置和编译Linux内核,Linux配置系统包括:配置工具、配置文件、makefile。输入“#makezImage”命令,开始编译内核,计算机实验室管理系统软件的根文件系统采用库文件、脚本、配置文件进行数据保存。使用tarjxvfbusybox-1.14.2.tar.bz2命令进行计算机实验室管理系统的Busybox编译,构建实验室管理系统的数据库访问模型,计算机实验室管理系统的Busybox编译模块如图1所示。在上述进行程序编译的基础上,进行MVB总线控制设计,对冶金采矿类专业计算机实验室管理系统D/A转换器输出进行调制解调。实现了计算机辅助视觉下的冶金采矿类专业计算机实验室管理的网口、串口、USB口的控制,提高系统的集成管理和调度能力。 3系统调试和性能测试 根据上述设计的软件系统,进行计算机实验室管理系统的软件调试测试,构建管理信息数据库,实现冶金采矿类专业计算机实验室管理文件系统配置和编译集成开发,为测试性能,以实验室管理任务执行时间为测试指标,得到仿真结果如图2所示。从图可见,采用本文方法进行计算机实验室管理,实时性较好,执行时间较短。 4结束语 本文进行冶金采矿类专业计算机实验室管理系统的优化设计,系统主要包括了信息处理模块、网络通信模块和人机交互模块。在于x86的标准PC环境实现计算机实验室管理系统的软件开发和实现。研究表明,该系统对计算机实验室的管理信息的处理效率较高,进程跟踪实时性较好。 作者:惠征 李倩伟 单位:南阳理工学院 软件开发毕业论文:软件开发改进方法分析 摘要: 我国金融电子业的发展和进步使得银行软件行业进入到了一个关键时期。银行之间激烈的竞争关系使得银行对于软件的的要求越来越高,国外优秀的同类软件也在不断的参与着国内市场的竞争。巨大的市场压力迫使软件开发商放弃了传统模式的手工作坊的开发方式,转而采取更加先进的技术和方法来提高软件开发的质量,以保证企业的可持续发展和进步。 关键词: 银行;软件开发;CMM;开发方法;改进 银行软件的开发过程的改进方法直接影响到银行业的进步和发展,对银行信息化水平的提高尤其重要。银行软件项目是由技术、过程和人才三个方面共同完成的,银行软件项目的开发和改进方法离不开以上三个要素的参与,只有提高银行软件的开发质量和工作效率才能吸引创造更多地利润,提高客户的满意度。 一、银行软件的开发方法和改进方式 1、以产品化为核心的软件开发方法银行软件业发展的初期阶段,软件商针对各银行服务项目的不同进行软件的定制是当时主要的银行软件开发方式。开发人员针对每个项目中实际的需求进行调研,设计出符合要求的开发方案再进行实施,但实际上,这种方式存在很大的局限性。首先定制软件需要软件开发商将大量的技术人员派遣到不同的项目中去,他们的工作重复率十分高,极大的浪费了人力资源,效率还得不到提高,使得开发成本的投入不断增加,给企业的进步和发展带来了阻碍,定制软件的稳定性还非常差,出错几率较大,在客户满意度上始终达不到高标准。[1]使用产品化的银行软件开发方法可以很好地解决以上问题,作为一种工程技术的方式,产品化的开发方法基本的研究思路是在同类软件产品的基础上,提取出相关的业务特征来予以实现,对于不稳定的部分进行参数化的处理,使其能够在较小的变化下满足大部分客户的需求。这样项目在经过首轮的开发研究之后,对不同银行的软件都能在最短时间内进行维护和保养,非常有利于提高软件质量、减少成本的投入和增加市场竞争力。银行软件的开发方式以银行具体的业务标准作为基础和标准。从理论化的角度来看非常适合产品化的开发方式。但是针对目前银行界的发展情况来看,各银行之间有自己独特的业务处理程序,在流程和业务的处理方式上也大不相同,给产品化的开发带来一定的阻碍。以产品化为核心的银行软件的开发过程是建立在技术平台的基础之上,通过业务逻辑的思维能力在部分定制条件下可以快速完成对于产品的开发和使用。银行软件业务的平台的开发步骤是在技术平台作为基础的情况下,再深入理解和分析银行内部的业务,建立和完善业务平台,然后在基本业务平台之上构建出一个完整的业务流程,对于具有近似流程的业务建立建立相关模板来用作更高层次的平台,以支付系统为例,大笔金额交易的流程必须经过录入、审核。传输、修改和修正等步骤,就可以做成一个完整的业务模板,通过对这个模板的修改和调整就可以用到其他类似的业务上。[2]以产品化为核心的开发方式除了开发制作方便快捷之外,在后期的软件维修保养和升级方面也十分快速,虽然以产品为核心的开发方法的业务平台并不是彻底的产品化方案,还需要相应的开发人员的针对具体的银行业务进行第二次的开发,但是却是非常适合当前银行业的的一种改进方式。 2、以CMM为核心的软件开发方法CMM是管理学理念在软件行业中的具体表现,在过去的几年时间内CMM用具体的成绩证明了他对改进软件开发过程的价值,是一种更加先进的改进方式,但是并不是所有银行的软件项目都适合CMM的管理理念,比如以算法为基础的银行研究性开发项目就不行,CMM为核心的软件开发方式只适合控制方便的业务型开发项目。目前我国银行的软件大部分都是以业务作为核心的行业软件,因此在具体开发技术上是不需要十分高深的算法和复杂的逻辑的,因此十分适合使用CMM的理念对银行软件项目进行开发和使用,由于开发方式的产品化等特征,虽然整体的研究成本得以降低,但是在第一次的开发程度上却十分复杂,需要更加优良的管理方式才能保障以CMM为核心的软件开发成功。[3]我国目前对于CMM的研究已经取得了很多的成果,例如对KPA中关键过程的实践内容的解析和证明,每个目标如何在单独的软件开发项目中完成。但是CMM在银行软件的开发实施需要企业文化作为基本保障,才能确保该方法的顺利进行。CMM的管理理念提供了一系列的方案来保障银行管理的制度化,如在具体的银行业务中,软件工程作为立法机构提出相应的规范内容,所以软件在在开发过程就必须按照这些制度来执行,保障软件的质量监督规范的实施,这样就能确保软件管理的有效性。但是传统制度下的银行软件开发企业的管理者来说,自身也处在制度之下,只有企业内形成法制化的企业文化,才能保障新方法的推行管理过程。需要参与CMM为核心的各组织相对独立的发展空间。只有在不会互相影响的情况下,各组织的评估和监督工作才能从真实性和客观性出发,对软件的管理和理解才加具有意义。例如在对软件工程过程组的计划评估中,由测试组对软件工程组的产品进行性能测试时双方都需要相对独立的空间的作为前提,但是在我国的发展过程中,企业管理人员的职责范围不明确,各组织属于从属的关系非常多,个别企业甚至是一组人员负责两个项目,自我监督效果极差。这样虽然从客观上采用了CMM的理念,但是在实际操作过程问题就会不断的出现,对于开发过程并没有起到明显的作用,所以对于软件开发企业来说这是必须要面对的问题。CMM是作为一个评估系统的依据和过程改进的结构出现的,主要是针对如何建立科学有效的管理方法给出了确切的目标和建议,CMM在银行软件的开发方法中的具体实现就需要结合实际的银行业务水平和企业自身的结构,来制定出合理有效的管理方案。正确实施CMM的方法是根据各个项目中开发人员的技术经验来完成对KPA关键过程的目标实践并完成制定的目标。完成CMM2之后再从对多个项目的总结方案上开始对于CMM3的KPA研究分析,形成一个系统的组织结构,最后再反向推广,以完成对过程管理的改进。[4] 3、重视对人才的培养工作不论是以产品化为核心的银行软件开发方式还是以CMM为核心的开发方式,这些方案的实施基础是有足够的技术人员来进行操作,对于软件企业来说人才来说专业的技术人员可以分为单一的技术型、纯业务型和管理者三种,他们各自倾向于自身领域中知识的学习和管理,目前我国的软件企业内存在着管理缺乏的现象,更是在业务型人才的培养上十分薄弱,这对软件的开发和推广以及后期的维护和管理是十分不利的,软件从性能上可以看成是一种针对其他行业发展的服务,缺乏业合格的管理人员和业务人员的软件企业无法开发出优质的软件系统的。从银行软件的角度来说,业务人员是最重要的组成部门,因为银行业的主要工作就是以业务为主,本身也具备相对复杂的程序,只有技术丰富银行软件人员才能做好银行软件的开发工作。 二、结束语 银行软件的开发和改进方法主要就是包括对技术、应用过程和人才的培养上,这三个是相互关联的相互影响的,如果其中一个方面有缺失必然会相应其他方面的进步和发展,造成资源地浪费,因此在对银行软件的开发和改进中要注意对这三个方面齐头并进,避免造成短板效应,才能真正提升银行软件的质量和效率。 作者:徐伟 单位:上海浦东发展银行 软件开发毕业论文:氚分压直接测量BIXS软件开发及运用 摘要: 在聚变堆氘氚燃料循环系统中,需要进行纯或含氚混合气体中氚分压的在线测量,氚衰变产生β射线与材料组成原子相碰撞产生连续的轫致辐射X射线(BIXS),通过X射线的计数率与含氚混合气体中氚分压数值拟合关系即可实现对氚浓度的实时在线分析。氚分压BIXS应用软件就是为了实现实验室氚分压的在线测量,而独立开发的基于美国国家仪器(NI)公司LabVIEW环境的软件程序,氚分压测量仪器使用NaI(TI)探测器作为探测部件,上位机通过USB口接收仪器所测得的数据计算出压强进行实时显示,软件还根据实验需求实现了参数设置、动态显示、数据存取和压强平均值计算等功能,最终满足了用户对于氚分压在线直接测量的需求。所自主编制了软件完成了纯氚气体(0-10kPa)的氚分压直接测量标定实验应用验证,获得了较为稳定的线性标定曲线,其测量精度在纯氚压100Pa以上时优于5%,从而为聚变堆氚分压测量提供了一种简便可靠的技术手段。 关键词: BIXS;LABVIEW;氚分压;计数;压强 从氚的安全和经济角度来看,大型热核聚变反应堆如ITER和未来的聚变设施都必不可少地需要大量的高浓度氚测量手段。Matsuyama等人最近研发了BIXS能谱法可以对含氚气体的氚分压进行测量。这个技术是基于一个专门设计的小室里含氚气体放出的β射线与材料作用产生的X射线进行探测。通过探测氚衰变β射线与材料相互作用产生的韧致X射线,可分析材料中氚的深度分布或气体中氚分压。此方法一定程度上可较好弥补其它氚浓度测量方法(如电离室,激光拉曼光谱仪,质谱仪等)的缺陷,因此,日本JAERI与德国FZK都将BIXS氚分压测量技术列为聚变堆氘氚燃料循环体系中的一项重要测氚手段。本文设计并编制了基于LABView平台BIX-TP仪器应用软件,实现了数据采集、数据分析与处理(包括氚压力-时间、氚压力-计数率、氚浓度-时间等变化图)、数据记录、数据存储及计数率-时间实时显示功能,并且完成了纯氚气体(0-10kPa)的氚分压直接测量标定实验应用验证,获得了较为稳定的线性标定曲线,其测量精度在纯氚压100Pa以上时优于5%。 1BIXS氚分压上位机应用软件系统结构 在需求分析的基础上将软件主要分为氚分压测量仪驱动程序层、BIXS氚分压应用程序层和面向对象接口程序层。氚分压测量仪驱动程序层将实现对测量仪的控制与通信,考虑到USB总线具有数据传输率高、支持即插即用、使用方便等特点,BIXS氚分压软件选择了基于USB的仪器控制与通信方法。BIXS氚分压应用程序层建立在仪器驱动程序层之上,提供数据的采集、数值的计算和存取等操作功能。面向对象接口程序层直接面对操作者,提供友好的操作界面选择所需功能及设置参数。 2BIXS氚分压的仪器驱动和通信函数 驱动程序的创建首先使用DriverDevelopmentWizard(驱动程序开发向导)创建INF文档;然后安装INF文档,安装使用INF文档的USB设备;最后使用NI—VISAInteractiveControl(NI—VISA互动控制工具)对设备进行测试,以验证是否正确安装,最终获得USB设备的各属性值。驱动成功后,进行USB通讯的软件设计。在创建了USB设备的VISA驱动之后,就可以通过LabVIEW应用程序进行调用,实现对USB设备的控制和通信。该过程主要通过使用NI—VISA函数来实现。在LabVIEW软件中集成了NI—VISA库函数,USB通信软件设计主要应用了VISAOpen、VISAWrite、VISARead、VISAClose四个函数。 3BIXS氚分压上位机应用软件系统功能模块设计 3.1主控模块BIXS氚分压上位机应用软件系统功能模块设计思路如图1所示。主控模块主要包括两部分,菜单响应程序和数据采集主程序。操作者界面采用方便灵活的事件结构(EventStructure)来设计和实现,即等待事件发生,然后按照指定事件的程序代码对事件进行响应,此后再回到等待事件状态,避免了轮询(polling)方法对一定的CPU资源的占用(在没有事件发生时)。开始采集后,主程序首先将变量进行初始化,然后通过VISAOpen打开设备,并通过VISAWrite发送采集开始命令给下位机仪器,成功发送后,再通过VISARead读取从下位机接收到的数据并进行数据处理,在数据处理之前需要对接收到的数据进行检验,判断接收到的数据是否正确,数据正确,则对该数据进行数据处理和压强值计算,最后将时间-压强图像显示于主控界面,采集结束。 3.2文件模块文件模块中包括对采集并计算得到的压强数据的一系列操作,功能包括:(1)数据的默认保存和另存;(2)读取并显示已保存的数据;(3)打印主控界面。为了方便操作者对采集得到的压强数据进行各种数据处理与操作,本软件将压强数据保存为EXCEL电子表格格式,当重新打开已保存的压强数据文件后,主控界面中将会自动还原压强图像。操作者还可根据需要,对主控界面进行打印,尤其是可直接打印出当前实验的时间-压强图像结果。 3.3设置模块在采集开始之前,需要对下位机的仪器进行通讯和控制,设置模块中提供了对应的功能项。在通讯口的设置中,用户可以选择采集仪器所对应的设备资源名称,同时可通过对选择的设备进行确定操作来判断该设备是否连接成功,即检查通讯状态是否正常,如果设备连接成功,软件将提示设置成功,反之,提示失败,检查设备连接状态后重试。为了实现对下位机仪器的控制和操作,本软件提供了参数设置对话框供用户来改变所选择的下位机仪器的高压、增益以及需要的采样时间,软件同时对参数值进行了默认设置,也就是说,用户可不需要改变参数值直接开始采集数据,其中高压的默认值为700V,增益默认值为1倍。 3.4压强计算模块BIX-TP氚分压通过USB接口按照一定的通讯协议,将得到的多组十六进制数据转换为一组计数值,再按照公式推导,计算出其对应的压强值。为了实现实验过程中的自动化,减少操作者的工作量,添加了计算压强平均值功能,该功能通过ElapsedTime子VI,可以实现自动计算1、3、5、10、15、20、30分钟内的压强平均值,避免了操作者从excel中提取一定时间内的压强值,再计算平均值的繁复操作。操作者在实验过程中发现,会出现本底值较高的情况,此时本底和真正的信号值混合在一起,影响计数值和最终压力值的准确性和稳定性,所以在主控界面上添加了扣除本底输入框,操作者可根据当前实验环境和实验条件下的本底值,自行输入当前值,那么,图像显示和当前数据值显示会自动扣除掉该本底值,以还原最真实的当前值。在主控界面上添加了压强最大值输入框,操作者可根据当前图像的实际情况,随时修改该压强最大值,以便更好的观察图像所显示的操作者最关注的区域。 4BIXS氚分压上位机软件的应用 如图2是BIXS氚分压上位机软件操作界面及100Pa至10000Pa纯氚分压测量实验曲线,图2清晰显示了计数率随时间的变化,通过计数率得出氚分压测量系统中氚压强随时间的变化,进而计算出氚浓度随时间变化,得到氚分压与计数率关系数据库如表1所示,可以根据曲线拟合出纯氚分压(P)与计数率之间的公式:C=C0μP=2.28P,直接用于显示压强随时间的变化趋势,最终可以应用于聚变堆氚燃料循环系统中含氚气体中氚分压的直接测量。从上表的试验结果可看出,在纯氚压大于0.1kPa时,测量精度结果优于3.40%,满足项目内要求的技术指标 5%,此时测量精度较好;在较低压部分(纯氚压 0.1kPa)精度稍差,分析其原因为:低纯氚压条件下有效计数率与本底计数率相差无几,本底计数率对有效计数率引入的误差较大。因此,在后续项目研究中,进一步控制本底的计数率,有望提高在低压段的测量精度。 5总结 本文所研发的BIXS氚分压上位机应用软件基于LabVIEW编程环境实现了对下位机仪器简单便捷的通讯与控制方式;完成了数据采集、计算、保存等多种功能;提供了人机交互友好,美观简洁的显示界面,可实现氚工厂氘氚燃料及工艺气中氚分压的直接测量,并获得了纯氚分压与计数率之间的拟合关系,实现了在0-2kPa范围内BIXS测量纯氚分压的精度优于5%的预期目标,是聚变堆氘氚燃料循环体系中的一项重要测氚手段。该技术在国内属于首创,并首次提出将其应用于我国聚变工程实验堆氚工厂的氚测量与分析系统设计中。 作者:郭星辰 刘志珍 吉晓梅 杨洪广 单位:中国原子能科学研究院 软件开发毕业论文:软件开发的项目管理探究 摘要: 与一般项目相比,软件开发项目存在一些独有的特点,而这些特点的存在使得要想真正做好软件开发项目的管理工作是十分困难的,其在管理方法上与传统项目管理存在着一定的差别,一些通用的项目管理理论或者项目管理方法并不适用于软件开发项目的管理。在这种情况下,对软件开发项目管理进行相应的实践探究,就显得非常必要。 关键词: 软件开发项目管理;实践 进入21世纪后,伴随着计算机技术和网络技术的飞速发展,各种智能终端设备逐渐兴起,也使得人们对于软件的需求达到了一个前所未有的高度,推动了我国软件产业的发展。而在软件开发过程中,需要切实做好项目管理工作,提升管理水平,才能够促进我国软件产业的进一步发展壮大。 一、软件开发与项目管理 简单来讲,软件开发就是依照客户的需求,构建软件系统或者系统中的软件部分,其是一项包括了需求捕捉、需求分析、设计、实现和测试的系统工程,需要借助某种本程序设计语言实现。软件开发的主要流程包括:需求分析、总体设计、细部设计、编码、单元测试、综合测试、运行以及维护。项目管理则是指在一定的约束条件下,为了实现某个特定的目标,依照项目自身的内在逻辑规律所进行的系统管理活动。相对于软件开发而言,项目管理需要遵循几个基本的原则,一是依照分阶段的生命周期计划,进行严格管理;二是做好相应的阶段性评审;三是重视产品控制;四是应用现代程序设计技术;五是确保开发人员的专业素质较高,同时对人数进行控制;六是必须能够对结构进行清晰地审查;七是必须承认软件工程实践持续改进的必要性[1]。 二、基于软件开发的项目管理实践 以智能手机系统为平台,针对手机软件开发的项目管理实践进行简要分析和讨论。 2.1需求分析需求分析是软件开发的基础与前提,能够获取和记录系统需求,确保客户与项目团队在系统需求变更上的一致性,避免软件开发过程中不必要的弯路。需求分析法包括了用户问卷调查、研讨会以及原型展示等,需要安排专人做好相应的记录工作,并及时对其进行总结和归纳,做好应对策略。在该项目中,软件需要满足的需求包括:适用于主流手机操作平台,充分考虑不同硬件配置以及操作系统版本的兼容性;可以跨平台运行,同时不需要占用过多的系统资源;确保数据连接的速率以及操作的流畅性等。 2.2设计编码系统设计包括了总体设计和细部设计两个不同的阶段,其中,总体设计应该大致规划出软件的功能模块,做好相应的功能分区,并对其进行初步的设计分析,细部设计则需要给出每一个功能模块的控制流程、算法以及数据结构等,确保每一个模块都有不同的层次。对于一些难度较大、涉及面较广的模块,可以交给一些经验丰富、心细缜密的技术人员完成,并做好模块的测试与修改,保证其稳定可靠,尽可能降低风险与成本[2]。设计完成后,需要进行编码工作,采用代码版本管理工具SVN,以确保各个子系统的功能都能够得到最大限度的发挥,实现系统之间的功能互补,从而降低软件开发的风险和难度,提高软件过程的跟踪率。 2.3测试运行软件测试并非单纯的某个环节,而是贯穿于整个软件开发项目中,制定出详细全面的测试计划,并对测试用例进行用心编写。软件中的每一个子模块都应该由编程人员之外的技术人员进行反复测试,同时对测试过程中出现的问题进行记录,提出相应的修改意见,由相应的编程人员进行修改。在对测试用例进行编写时,需要对测试目标、测试环境、测试步骤、预期结果等进行记录,形成具有代表性的数据信息。在测试完成后,需要首先在小范围内,对软件的子模块进行试运行,确认无误后再对软件整体进行试运行,结合运行反馈结果,评估软件的可靠性,采取相应的完善措施。试运行成功后,需要编写相应的用户手册,制作视频说明,帮助用户了解和使用软件,同时标注联系方式,方便用户进行反馈。 2.4后期管理在系统安装试用一段时间,具备相应的验收条件后,需要进行验收准备工作,对之前的工作进行总结,列出工作成果和相应的文档,审查相关技术文档中的内容和信息。应该对系统当前的完成状况进行明确,对于尚未完成的部分,应该采取有效策略去完成,或者设置相应的回避措施,确保客户在验收时不会提出这些未实现的需求。在交付使用后,需要做好软件维护工作,结合需求变化或者硬件环境变化对程序进行修改,确保其具备良好的实用性和适用性[3]。 三、结语 综上所述,软件开发项目管理与一般的项目管理存在着很大的差别,需要相关技术人员结合软件开发的具体流程,做好全过程管理,保证管理效果,在完成预定功能目标的基础上,提升软件的可靠性与安全性,确保软件的有效应用。 软件开发毕业论文:软件开发的过程控制管理 【摘要】 大型冷水机组的开发中,控制软件作为产品的一个部件,是设备稳定运行的关键,在设计、开发、更改等全过程中必须依据相关准则和符合管理标准,本文从大型冷水机组的控制软件的设计和开发过程入手,分析了各个阶段的控制管理方式及注意事项,使软件更好满足开发需求,并使开发过程具备可追溯性。 【关键词】 控制软件;过程控制管理 1引言 大型冷水机组的开发(简称产品开发)中,控制软件作为产品的一个部件,是设备稳定运行的关键,这就意味着控制软件的管理等同产品,控制软件的管理成为必不可缺的工作。控制软件作为产品开发过程中的一个部件的开发,必须符合开发管理的全过程控制、管理。没有管理,编制的控制软件控制逻辑考虑就会不全面,特别是当出现问题时,工程师现场进行修改会很随意,没有对问题进行系统分析,只是头疼医头,脚痛医脚,同时,因为更改没有记录,再发生问题,也无法查找原始记录。 2控制软件开发的过程控制 管理按照现行的管理体系标准GB/T19001/ISO9001,控制软件作为产品的一个部件,包含管理体系的设计和开发全过程:设计和开发策划;设计和开发输入;设计和开发输出;设计和开发评审;设计和开发验证;设计和开发确认;设计和开发更改的控制。 2.1设计和开发策划对于控制软件编制,从从属的产品开发开始,了解产品需要控制的全部细节,如I/O点的需求,以及关键部件的功能确认,参数设置等,形成软件编制的逻辑图,成为控制软件的设计输入,这一过程就是设计和开发的策划。 2.2设计和开发输入和输出作为控制软件的规划来说,各功能进行模块化管理,形成软件的标准化管理,从长远来看,是提高效率的有效办法,也是标准化管理的要求,利用PaaS平台技术的应用,实现产品在客户端运行大数据采集,进行数据建模及MIS系统开发与管理,以了解客户端产品的运行情况,实时为客户提供及时的服务。作为控制软件开发的输入的逻辑图是需要经过产品设计工程师及相关部件设计工程师,以及各相关部门如测试站、服务部等进行评审的,设计和开发评审是贯穿在设计和开发过程的每个阶段节点,一旦评审通过,评审通过的逻辑图将是控制软件开发的输入。每一开发阶段的输出均要满足相应的需求及有关的开发管理和约定,并要包含或引用进入后续工作阶段的验收准则,对影响有产品安全和正常工作的重要的产品特性要进行标识。 2.3设计和开发验证控制软件编制完成后,必须进行验证,验证必须要有验证的内容和达到的目的,验证内容必须是经过评审的运行大纲,目前确认的方法有两种:一是在模拟箱上,对照输入的逻辑要求,设置产品工作的各个极限工作条件,按运行大纲运行控制软件逐条检查逻辑要求的功能,模拟测试,必须填写模拟测试报告,如实记录各功能测试的结果,软件模拟测试工程师不能是软件编制工程师;二是在正式产品上,前提是模拟测试通过,因为产品测试,不仅需要耗费巨大的电费和水费外,还需要相当长的时间,成本耗损巨大。按产品运行大纲,在产品工作的各个极限条件下,进行产品运行,并根据大纲要求检查控制软件的功能,这时的测试是动态的,通过实时的数据记录(即便测试结果未达到目标,实时的数据记录也将是后续软件修改的依据),形成产品的测试报告,证明控制软件运行正常,产品的各个极限工作条件下的测试报告将是控制软件运行正常的重要证据,同样控制软件上机测试,必须是产品设计工程师和软件测试工程师,而不能是软件编制工程师。只有经过验证的开发输出才能提交配置管理并被验收,供后续阶段使用。 2.4设计和开发评审控制软件验证完成后,必须进行相应的评审,只有在所有已发现的缺陷的影响均被消除,或缺陷的影响虽未消除,但已弄清带着缺陷进一步工作的风险之后,方可进行下一步的设计或实现工作。如有需要对控制软件进行更改,则更改后,必须再进行相应的验证,直至评审通过,并将控制软件的逻辑图、软件验证的运行报告和源代码等开发过程的技术文件进行存档管理。 2.5设计和开发测试与确认从单个软件项到一个完整的软件产品可能需要进行不同层次的测试,有一些不同的测试与集成方法,在某些情况下,可以将确认、现场测试和验收测试合为一个活动。描述测试计划的文档可以是一个独立的文档,或是其他文档的一部分,也可以由几个文档组成。在测试之前首先要制定和评审测试计划、规格说明和规程,其中应涉及测试计划、测试用例、测试数据、预期结果、测试类型、测试环境、测试工具、测试软件以及测试是否完成的测试准则等。测试时应按有关规格说明记录测试结果,同时记录发现的问题,指出可能对软件其他部分或冷水机组运作时带来的影响,并通知对此负责的人员,以便对问题能进行追踪直至问题解决;应确定受更改影响的部分,并对它们进行重新测试,同时对测试过程及结果进行评价。在需要的情况下,可以进行现场测试,可邀请供方和需求共同参与。在控制软件交付使用之前,应尽可能在实际的使用环境下对整个软件产品的运行进行确认。 2.6设计和开发更改的控制控制软件应用在产品上是需要进行反复的评审,测试验证、评审、修改,直至能达到设计目标,且没有任何bug。修改控制软件是一件很慎重的事情,修改分两种:一种是为实现某个特定的目的或要求,只是针对某个特定的Case,通常是在客户的特殊要求下进行;对于这种更改,由于是在标准软件的基础上增加特定的要求,需要在客户端验证后,将源代码特殊标号存档,并相应更改相应客户的档案信息,用于以后售后服务;二是因为某个功能性部件的更新或是存在开发过程中未发现的Bug,需要更新标准的控制软件;这种更改必须在仔细列明部件更改前后的不同之处,或是Bug的问题,对不同处进行更改,更改前必须经过慎重的评审,确认是有必要进行更改,更改后的控制软件需要重复开发过程的验证、评审过程。从某种角度来说,更改过程视同一个完整的开发过程,因为更改部分对产品的运行的稳定需要进行完整的验证,也就意味着对产品的每个极限工况条件都必须进行测试验证,验证前需要对验证用的测试大纲进行评审,确认更改部分的测试都考虑到位,测试后需形成相应的测试报告,并将整个更改过程的技术资料,测试报告,源代码等进行存档。 3结语 当准备交付经确认的控制软件产品时,应根据大型冷水机组应用需求及运行要求,同时结合相关的规定准则和方式判断该控制软件产品是否可以投入使用。在设计、开发、更改的全过程中必须符合管理标准的可追溯性,能很清晰的查阅到软件的标准号和版本号。 软件开发毕业论文:软件开发中配置管理的应用 【摘要】 针对软件开发平台应用的相关内容,对软件开发平台中配置管理应用的具体策略进行研究。先介绍了软件配置过程中KPA的相关内容,并对其中存在的问题进行研究;再结合软件开发平台的实际技术内容,对其具体应用进行研究,以进一步提高软件配置管理能力,为提高软件开发能力奠定基础。 【关键词】 软件开发平台;配置管理;应用 随着现代科学技术的进一步发展,软件开发平台开始受到社会的普遍关注,对相关人员而言,如何实现软件开发过程中的高质量、低成本成为其工作的主要内容。CMMI(软件能力成熟度模型集成)的出现有效的满足了人们的要求,其主要分为5个成熟度,每个成熟度级别都包含若干个关键过程域(KPA),而软件配置管理就是其中的一个重要KPA。在本次研究中,主要针对软件开发平台中配置管理应用的相关问题进行研究,希望洋酒内容能对相关学者研究有所帮助。 1软件配置管理过程KPA 1.1配置管理的必要性裴树军等通过研究认为,随着软件规模不断扩大,导致软件研发过程中的中间产品数量不断增多,严重增加了管理难度。而对整个软件开发而言,配置管理是软件开发的核心内容之一,若不做好配置管理工作,则势必会引发一系列问题,具体表现为以下几点: 1.1.1同时更新的问题当两个或多个人员同时研发一种软件时,同时更新现象会损害他人工作,影响了工作的整体进程。 1.1.2通用代码问题在一些特殊的大型系统中,如果相关人员已经根据相关要求修改了软件的部分功能,则会导致所有将该内容告知所有人员;如果不能及时的告知每一个软件开发人员,则会导致部分出现严重的系统操作失误问题。 1.1.3版本冲突问题从当前部分大型软件的开发过程来看,其主要通过增量式的方式实现开发的。在这种背景下,一个大型系统可能涵盖诸多活动版本,这样很容易产生冲突现象,不利于保证软件正常运行。对相关人员而言,若不能有效处理上述问题,将会造成严重的混乱现象,因此做好配置管理工作十分重要。 1.2软件配置管理分析 配置管理过程是整个软件生命周期过程中的重要元素内容之一,这在CMMI中,配置管理目标主要分为三种包括,建立基线、控制变更、跟踪等。一般认为,建立基线主要存在三种特定的实践内容: (1)保证标示能在配置管理的配置项中,并建立一个能满足配置管理的系统,完成基线创建等基础过程。 (2)在使用一个配置管理系统后,所有的变更都能在第二个目标结束之前实现被跟踪与控制。 (3)保持配置项的记录,并按照基线的相关内容开展配置审计。 2配置管理研究 2.1配置管理的基本工具 当前在开展配置管理中,常用的工具包括: 2.1.1Starteam该工具提供了真正的协同工作,保证整个开发环境内外的所有团队与功能模块都能参与到目标活动中,保证了配置工作的顺利开展。因此可以认为,Starteam是一个集合了版本控制、缺陷跟踪等多种功能于一体的软件。 2.1.2CC该工具是ROSE构建的主要组成部分,常被应用在复杂产品开发等特殊环境中,能有效解决多种产品开发与维护的要求,具有良好的应用价值。CC的主要功能包括建立管理体系、明确过程控制等,是实现配置管理的主要工具。 2.1.3VSS该工具能将所有项目原文件给进行管理,并通过特有的方式将原文件进行储存。但在操作过程中需要注意的是,相关人员不能直接修改数据库中的文件,而是需要通过该版本管理器,对项目项目的源程序进行控制,将其拷贝到成员自己的目录中进行修改,再讲修改结果提交给VSS,之后才能完成数据资料修改。 2.2软件配置管理的基本流程 有项目经理负责监督整个项目配置管理的实际情况,重点研究配置管理中存在的问题,并根据问题提出相应的解决措施;项目组成员协助开展配置管理工作。在上述工作内容的基础上,配置管理人员根据既定的项目目标计划,在项目经理的指引下参与制定《配置管理计划》并在日后工作中始终按照《计划》的相关内容展开工作,并按照相关要求调谐《配置状态报告》,做好相应的资料备份工作。在配置工作结束之后,资产管理人员收集组织资产资料,并维护组织资料库。 2.3版本控制 总体而言,版本控制是实现软件配置管理的核心内容,其主要目的就是根据具体的软件管理规则保存配置项目的版本资料,以降低发生版本丢失的概率。一般认为,在确定配置项过程中,常见的状态如图1所示。在整个配置项最初建立过程中,其产生的状态为“编辑”。在这种状态下,开发人员能编制整个配置项。在编辑结束后,经过编辑的配置项进入“评审”状态,此时若显示评审通过,则会将配置项的状态改变为“正式”;而评审未通过,则进入调试状态,对配置项进行二次修改,直至成为“正式”状态。 2.4变更控制 在整个软件配置管理过程中,变更控制的主要内容是创建产品基线,并以此为核心,在整个产品生存周期的过程进行变更,最终建立一整套完成的软件控制修改的机制,确保其质量能满足运行的要求。从其应用过程来看,需要变更的软件首先会处在“待修改”的状态,并由具体的操作人员将其分配到具体人员的手中。在经过相关人员的修改并结束后,变更软件将会改变为“关闭”状态,此时由系统进行评审,若评审结果显示无法修改,则会将其设置为“不修改状态”。而如果认定为不需要进行修改,也能将其关闭,避免过度处理现象发生。3结束语主要研究了软件开发平台中配置管理的相关内容,并对其应用进行详细的研究。总体而言,软件配置管理在软件研发中发挥着重要作用,因此对相关人员而言,在工作中要正确认识到软件配置的实际要求,并提出针对性的管理措施,为保证软件开发工作顺利进行奠定基础。 作者:殷媛 单位:南京航空航天大学金城学院 软件开发毕业论文:银行软件开发项目管理 【摘要】 金融行业对于银行软件开发的关注度往往是比较高的,尤其在新媒体环境的影响下,银行软件的数量不断增多、内容不断丰富。银行用户为了时时了解银行动态和自己的账号安全,开始越来越频繁的使用银行软件。对银行软件开发进行项目管理,能够为软件开发技术提供一个较为安全的环境,防止软件在使用过程中出现风险。文章对银行软件的开发技术和与之相关的项目管理做了详细分析。 【关键词】 银行软件;开发技术;项目管理 对银行软件开发进行项目管理,主要对其软件开发技术的成本和质量,以及它在使用过程中可能出现的风险等进行的管理。这种管理能够为银行软件开发提供一个良好的开发环境,而且能从侧面反映项目管理的重要性。对银行软件进行项目管理,需要从多方面开展。在开发软件的过程中,可能会涉及到银行的机密信息,这在无形中增加了项目管理的难度。对银行软件开发进行项目管理,能够为银行在网络环境中的各项业务的开展,提供一个更加安全的支付环境,进一步保证用户和银行自身在各项交易中都能够有安全保证,有效的将操作过程中可能出现的风险控制在一定程度之内。 一、银行软件开发技术的需求 银行软件开发,能够实实在在的为用户提供更加方便的银行业务服务,有效的减少办理业务时花费的时间和与业务相关的各项手续过程,能够大大提高银行金融业务的服务效率。特别在银行业务繁忙的时段,使用银行软件进行操作服务,能够减少银行在业务方面出现的失误,使银行处理业务的能力得到不同程度的提高。这对银行来说有很重要的意义。银行软件开发,主要是通过计算机计算以及其他软件支持进行开发的,并且开发结果要达到一定要求,这样的银行软件才能为银行提供更加安全的网上业务环境,为银行的网上系统提供便利的发展机会。 1、技术需要银行软件开发的主要内容,是银行软件开发技术。拥有开发技术做后盾的银行软件,能够使银行业务具备更加完善的服务能力,而且各个银行的分行能够将数据库连接起来,为银行数据信息的传输提供更加安全、稳固的传输环境,且传输速率也会有很大提高。在进行银行软件开发的过程中,对所需设备和数据的质量有很高的要求,而且银行开发技术中较为重要的数据需要备份。备份数据主要是为了防止突发状况。[1]银行软件一旦受到攻击,或者银行的系统出现漏洞,备份数据能在这种关键时刻立即启用,有效的防止银行软件系统的崩溃。银行软件开发完成之后,要对整个银行系统进行及时维护。这种有效维护,能够防止系统在运行过程中出现问题,弥补了系统中存在的漏洞,能够为技术需求提供有力的保障。 2、操作需求C/S开发模式,是银行软件开发技术所采取的一种有效模式。这种模式能够使银行开发技术以状体界面的形式存在于银行系统中。这种模式有它的优点,它能够有效降低开发软件在操作上的难度。银行软件开发过程中,一定要对其在现实中的应用进行全面考虑,银行工作人员在开展业务服务时不会出现操作上的困难,而且软件开发技术要符合工作人员在操作上的需求,技术开发要最大限度的满足银行操作的可进行性,为银行业务和其他各项事物的开展提供更加准确的操作支持。 3、服务需求银行软件开发技术,主要是为了提高银行在各项业务上的服务质量,这种高质量服务是银行软件开发最希望达到的主要目标。所以,银行软件开发首先需要满足的,就是银行在服务上的需求。这样才能使银行软件开发有一个科学、合理的过程。银行软件开发技术对设备的要求比较高,尤其对计算机磁盘容量的大小和计算机操作系统运行速度的快慢,有比较高的要求。只有设备的性能比较优越的时候,银行软件开发技术才能达到更好的效果,才能使银行系统在数据库的建设上有更加完善的成果。 二、银行软件开发技术 1、银行软件开发的总体技术银行的事务比较多,相应的银行软件该具备的事务也多,这些繁杂的事务给银行技术开发带来了比较大的压力。用户管理以及用户相关业务的办理工作,是银行软件开发技术要解决的两个比较重要的内容。尤其是业务办理,不同的业务办理项目的内容和办理流程不同,银行开发技术应该就这些不同的内容和流程进行不同的设计和管理,只有这种规范的技术设计,才能为银行系统提供相对安全的运作条件。用户有存取款或者转账业务需求时,银行工作人员只需要在银行软件上进行相关操作,就能完成整个业务。[2]所以银行软件开发技术需要支持的业务需求必须具备类型更加丰富设计,而且各项业务的安全保卫工作系数也要进行提高,以免在交易过程中出现信息泄露的情况,为用户提供贴心、方便、安全的服务,也从侧面显示了银行开发技术的使用价值。 2、银行软件开发技术的设计银行软件开发技术要对银行的所有业务进行设计,其中就包括了银行的计算机储蓄系统。对银行计算机储蓄系统进行技术开发,编程部分比较重要。设计编程所用的语言,要根据银行工作人员的一定操作需求进行设计,为用户提供业务服务时,选择“是”或“否”。银行软件开发技术需要对银行业务中的数据输入、数据处理和数据结果的输出进行设计。银行软件开发技术对业务中的输入情况进行设计,输入时必须将账号和密码输入完整,而且密码和账号要匹配,不匹配的账号及密码,在银行软件限制的情况下是不能允许用户登录的。接下来要对处理步骤进行设计,在输入的账号和密码正确且匹配的前提下,银行开发技术对条件检测的标准进行设计。只有用户登录银行软件之后,才能选择并操作相关的储蓄系统。且为保证用户能够进行正确的操作,开发技术需要设计操作提示,为银行用户提供周到的服务。银行软件开发技术对输入步骤进行设计,在系统完成输入和处理步骤之后,要将相关储蓄数据显示出来,并且在用户的要求下打印业务存储单据,运用完备的银行软件开发技术完成这些业务的软件设计。 三、银行软件开发项目管理的措施 银行软件开发不是一个一成不变的结果,软件开发设计人员会根据金融市场的变化和用户的需求对银行软件做出相应的调整和修正,它是一个不断更新、变化的过程。而且变化的过程比较快、使用周期比较短,这无疑给银行软件开发项目管理带来一定难度。对银行软件进行有效项目管理,主要通过以下三种方式: 1、构建责任制度针对责任感比较弱的银行软件开发项目管理人员,在管理工作中出现随意完成工作的现象,进行项目管理时必须设置完备的责任制度。这样做能够使管理人员对自己的工作重加重视,而且在重视的基础上约束自己的工作行为。责任制度必须对管理人员在工作中的责任和义务进行明确要求,要求管理人员在自己的责任范围内,做好自己的工作,完成自己任务,一旦在技术开发的过程中,出现了一定的问题,可以对管理人员进行责任追究,并且在第一时间制定出相应的、有效的解决措施。[3] 2、强化部门沟通银行软件开发需要各个部门通力合作才能完成,只有各个部门保证流畅沟通,才能全面了解软件开发的进程。各部门相关的项目管理人员在投入到管理工作之前,需要了解相关信息。而且软件开发技术要保证一定的先进性,管理人员可以将先进技术的相关讯息告知与开发人员,这样能够提高软件开发的水平。 四、结束语 银行软件开发项目管理,能够通过有效的责任制度约束管理人员的行为,确保项目管理过程中出现的问题能够得到有效处理。完备的项目管理能够防止软件开发过程中出现风险。 作者:栾家明 单位:上海浦东发展银行 软件开发毕业论文:软件开发工程师实训课程建设 摘要: 探讨在高校现有的软件开发相关专业构建Android软件开发工程师课程体系,阐述如何经过半年的实训,快速培养有一定项目开发经验的工程师,助推移动互联网行业发展。 关键词: Android;软件开发工程师;课程体系;移动互联网 1建设背景 随着3G/4G技术的不断发展和智能手机的普及,移动互联网继承了互联网所有的应用,并有自己独特的优势。互联网的应用系统几乎全部延伸到智能手机应用,例如手机银行、移动商务等。据亚太地区手机使用调查显示:2015年中国手机用户达到10亿[1],远高于宽带用户数;移动应用系统发展潜力更大,将成为全球信息通信行业的万亿元级新兴产业,急需大量的移动应用开发工程师。据计世资讯的相关研究报告,国内移动应用开发人才缺口将达到50万人以上[2]。目前主流的智能手机操作系统有谷歌公司的Android、苹果公司的iOS、微软公司的WindowsPhone,只有Android是开源的操作系统,华为、三星、小米、中兴、联想手机制作商都采用了Android操作系统,ARM、英特尔、高通等半导体制造商也采用了Android操作系统。因此Android必将成为智能手机主流操作系统,用户数最多,与之对应的软件开发工程师缺口最大;而目前少数高校开设移动应用开发专业或方向,培养周期长,培养人数少,远不能满足移动互联网行业发展对人才的需要。 2建设思路 Android软件开发工程师实训课程体系是在原来的软件技术专业基础之上构建的,结合AndroidAPP开发岗位及流程进行设计,采用基于模块化、导师制、项目化的Android开发工程师人才培养体系[3],共分成4个递进的模块,每一个模块又细化为一个教学单元,详见图1。每一个模块有基础知识学习和项目实战,前导模块考核[4]过关之后再进行下一个模块的学习,重点积累学员的项目开发经验,注重学员综合素质的培养。 3课程体系 1)模块一:JavaSE开发技能强化(约120课时)。高校软件开发相关专业基本都开设过Java程序设计或C#程序设计,两者触类旁通,因此本模块主要针对Android开发打下Java编程基础,巩固面向对象的基本概念和编程思想,为下一个模块作准备,所谓磨刀不误砍柴工,见表1。2)模块二:Web及服务平台开发(约200课时)。Web及服务平台是移动端访问的基础,后端服务器的架构决定系统的稳定性,接口的开发决定终端开发和运行的效益,因此本模块着重学习JSP和Servlet核心编程,完成服务器端业务逻辑和数据库开发,见表2。3)模块三:移动端APP开发(约220课时)。此模块真正进入Android项目开发,首先从Android基础控件入手,掌握Android开发基本原理和流程,逐步引入实际案例,综合掌握Android控件使用、UI设计、内置数据库设计、消息推送、GPS定位应用、网络接口应用等开发技术,见表3。4)模块四:作品汇报与就业指导(约30课时)。前3个模块是练好内功,本模块主要通过作品汇报会暨Android开发软件工程师专场招聘会,把学生送到对口的岗位工作,同时把参加实训的同学拉进即时交流的QQ群和微信群,方便日后在工作与学习过程中就技术与思想动态,进行交流沟通指导,提供增值服务,见表4。 4实训过程 每个模块实训过程包括实训预备期和实训期两个阶段[6]。实训预备期:参与实训的学生对Android课程体系中必须掌握的业界实用技术知识清单和相关课件进行学习,必要时进行相关课程的考试,考试合格者才能进入项目实战。实训期:以模拟公司为平台,以仿真的商业案例项目为载体,将企业文化及职业素养训练、IT技能培训、行业知识以及业务流程实践等实训内容完全贯穿在模拟公司的运营过程中,使学生在实践中体验企业工作环境,获得一定的实际经验和职业磨炼。实训中由实训教师统一指导,基本过程如下:(1)搭建环境:主要讲解搭建各种手机操作系统开发环境所需具备的软硬件及网络知识。(2)完整的软件开发过程:主要讲解实际项目所涉及的软件开发过程的各个环节,如需求开发、设计、编码与测试、项目管理、项目验收及技术文档整理等。(3)Android手机软件应用开发:这是本实训课程体系的核心部分,主要是使学员掌握软件开发的技术、编程思想与方法,了解软件开发过程中常犯的错误。课程注重实用性,重在培养学员对代码分析的能力、掌握编码规范、掌握调试知识和分析程序错误的能力。同时学习内存检查工具和软件配置管理等知识,课程中贯穿着一个开发项目,以增加学员开发项目的经验。(4)测试计划与软件缺陷:主要介绍软件测试的基本概念和基础知识、如何编写测试计划、识别软件缺陷、编写缺陷报告等。(5)数据库:通过对数据库基础的讲解,让学员掌握这些技术,数据库是以主流的Oracle和MySQL数据库的运用为主。(6)职业导向训练:进行职业引导,包括就业指导和职前引导,通过座谈会等辅助训练明确就业方向,进一步了解职业发展形势。 5结语 我校2012级软件技术班在大三下学期引入Android开发工程师实训课程体系进行实训教学试点,教学效果显著,绝大多数毕业生进入Android开发领域。在实训过程中,教师带着学生承接了企业项目“好售掌上批发系统”,完成了Web平台、Android手机APP、IOS手机APP等功能设计与实现。通过第一期的试点教学,进一步优化了教学内容和实训过程,把好售批发平台分解成若干个实训项目,构建了上述课程体系,弥补了目前Android开发工程师实训体系实用性和可操作性不强的局面,供有计划开设Android开发工程师实训课的学校和老师进行参考,同时满足传统的应用系统开发工程师向移动应用开发方向发展的自学教学资源,有利于他们快速转岗,助推移动互联网发展。 作者:钟石根 张振军 张良杰 单位:厦门南洋职业学院 信息工程学院 软件开发毕业论文:车载多媒体软件开发思考 摘要: 设计了一种基于嵌入式系统的高清晰、便携式的车载播放系统。该播放系统的软件设计以Mplayer为后台,实现对音视频文件的解码播放等工作,并以Qt的基础类库为基础设计了嵌入式多媒体播放器的前端控制图形界面,通过创建QProcess进程,实现对播放过程的控制,与后台Mplayer进行通信,实时获取并显示播放信息,并在指定窗口对音视频码流进行输出显示。 关键词: 汽车多媒体;车载播放;嵌入式系统;多媒体播放器 目前,国内车载电子设备市场极度缺乏多媒体综合软件,该软件能有效地将车载导航、影音图像、倒车雷达、娱乐互动等多个功能整合,方便乘客和车主的使用[1]。将多种娱乐和使用功能整合统一,使得设备简洁美观,同时降低了重复安装的成本和投入。可以极大地减少车内空间消耗,降低整车油耗[2]。多媒体共屏展示也能保证驾驶员的操作强度,保证行车安全。因此,将行车信息、娱乐互动、交流通信、车载导航等功能集于一体的嵌入式综合媒体系统符合市场和环境的发展要求[3]。 1车载嵌入式播放器总体设计 出于应用领域、自带资源、可扩展资源、功耗等多方面的考虑,选择Linux内核为嵌入式多媒体播放器的操作系统核心。将多媒体技术应用于嵌入式系统中面临着诸多的技术难题,嵌入式设备的特点决定了其资源通常非常有限,而有限的资源意味着需要进行多方面技术的优化[4]。首先,嵌入式设备采用蓄电池提供能源,所以对系统的功耗要求比较严格;第二,嵌入式设备上通常没有实用的图像加速器,声卡等硬件加速设备的支持;第三,不存在DirectX,DirectShow等高层多媒体的支持。基于上述考虑,有必要设计适用于嵌入式应用的嵌入式处理器,嵌入式操作系统。根据嵌入式多媒体播放器的功能需求及技术特点,通常将嵌入式多媒体播放器的体系结构划分为硬件层、内核层和应用层,具体如图1所示。系统的硬件层的硬件平台包括嵌入式微处理器和外围设备,通过合理选型和匹配可以完成满意的底层硬件组合。本系统的嵌入式MCU使用三星公司的S3C2410高速微处理器,S3C2410高速微处理器作为整个硬件系统的控制核心,接收、处理相关数据并实时发出控制指令。与其配合的系统外围设备是完成系统功能的必要组建和模块,涉及系统存储模块FLASH和E2PROM,LCD输出单元、主控外围电路和音频输出模块等。软件部分包含应用层和内核层两个部分。应用层包含嵌入式Linux操作系统和硬件驱动程序,包括BootLoader,Linux内核,根文件系统3部分。应用层包含嵌入式用户应用程序、音频解码器和GUI。本系统选择嵌入式Linux操作系统作为操作系统[5]。 2操作系统平台的构建 内核是整个Linux系统的核心,根据实际情况针对内核的配置进行选择,本质上指根据开发系统的功能需求对已有的操作系统进行选择,保留开发需求的系统单元,删除不需要的模块单元。在本系统中,嵌入式Linux内核选择ARMLinux内核。Linux内核的配置系统由Makefile、配置文件(config.in)、配置工具组成[6]。完成内核的数据参数配置后,不能将程序数据直接下载到嵌入式系统中进行调试运行,因为此时数据仍然以源代码的形式存在。此时,为了生成最终能在嵌入式操作系统上运行的可执行代码[7],需要进一步对内核进行编译。过程结束后,Image和zImage两个内核映像文件会在arch/arm/boot目录下生成,zImage为压缩后的映像文件,Image为正常大小的映像文件。得到内核映像文件后,首先在开发板使用的宿主机(PC)上建立一个tftp服务,使用DNW工具,在开发板上电时按任意键进入UBoot提示符,执行以下命令。在嵌入式操作系统正常运行时,需要使用根文件系统支持各种功能[8],在内核刚启动运行时根文件系统需要挂载起来用于支持访问外部设备,同时完成内核模块应用程序的装载和运行,避免出现Kernelpanic的情况,防止系统内核在启动时没有根文件的支持。在实际应用中,嵌入式操作系统使用动态随机存取器、同步动态随机存取器、FLASH存储器作为存储设备[9]。基于存储设备,使用JFFS2,YAFFS,CRAMFS,ROMFS,RAMFS等常见系统作为存储设备的嵌入式文件系统。在本系统中,选择NANDFLASH作为硬件提案所使用的存储芯片,选用NANDFLASH上使用比较广泛的Cramfs文件系统作为嵌入式根文件系统。嵌入式Linux操作系统的启动流程如图2所示。系统启动流程包括六个步骤:(1)系统复位,从地址0x00开始执行,进入步骤(2);(2)启动Bootloader模块,进入步骤(3);(3)判断系统是否进入Linux,启动Linux内核映像,不启动则进入Uboot的命令操作环境,如果启动内核,进入步骤(4);(4)系统从NANDFLASH加载内核到内存中,完成对硬件设备的初始化工作,进入步骤(5);(5)挂载根文件系统,执行init进程,并从/etc/inittab取得配置文件,进入步骤(6);(6)提示执行用户应用程序或用户登录信息。 3视频播放器软件设计 3.1基于Mplayer实现多媒体播放器Mplayer是一个Linux下的电影播放器(也能运行在许多其他的Unices和非X86的CPU上)。Mplayer的逻辑结构可以分为四个层次,即:输入层、分流层、解码层和输出层,其结构如图3所示。本文选择Mplayer作为后台设计播放软件。利用Qt/E为软件平台设计GUI图形控制界面,对多媒体播放器的播放过程进行控制。由于条件限制,本实验在宿主机上编译并安装了Mplayer,通过Qt设计基于X86的多媒体播放器。 3.2软件总体模块设计由于Qt/Embedded工具可以绕过XWindowsSystem协议客户端库,直接读/写帧缓存的FrameBuffer的数据信息,因此实现Qt类库对帧缓存的直接读/写操作,使用基于Qt/Embedded的应用程序可以完成。本系统使用嵌入式Linux作为操作系统,通过Qt的图形平台和函数库完成嵌入式多媒体综合播放。多媒体播放系统采用模块化设计思想,其架构如图4所示。嵌入式多媒体播放器包含五个主要的模块:(1)I/O(输入/输出模块):用于多媒体文件的读入和输出。(2)UI(用户界面单元):用户界面单元的作用是方便用户操作嵌入式媒体播放器的各项功能,提供良好的人机操作互动界面和使用体验。(3)插件接口单元:读入多媒体数据(通过输入插件获取I/O模块发送过来的数据)、调用Mplayer对文件进行解码播放、文件总的时间长度、编码类型、比特率等信息的获取、暂停、快进、快退、停止、输出、输入等的动作,输入动作具体指将输出插件完成解码的数据信息传送到系统输出输入单元的过程。(4)Mplayer解码单元:为了对不同类型的多媒体文件进行解码操作,系统选择的Mplayer解码单元由分离器、音视频解码器等部分组成。(5)GUI单元:为了方便快捷的产生读/写FrameBuffer以及用户界面,GUI单元通过使用Qt/E嵌入式工具作为底层图形库。软件总体模块中各单元之间的相互连接关系是:通过输入/输出单元读入音视频信息数据,用户界面单元在接收到播放信息指令后,调用插件模块相应的函数,产生相应的信号,调用Mplayer完成对多媒体文件的解码,完成解码之后将数据送到I/O模块输出。 3.3控制流程设计主程序设计流程如图5所示。当从菜单项打开视频文件时会触发triggered()信号,执行slotopen()槽函数,调用Qfiledialog的getOpenFileName()函数从对话框中选择要播放的视频文件。系统首先判断文件格式是否为*.avi格式,如果是,则创建一个Qprocess进程,通过该进程调用Mplayer后台对视频文件进行播放,并在指定区域进行输出显示。 4交互式图形界面设计 QImage类提供了一种与硬件访问无关的图片存储方式。QPainter则主要用来完成绘图事件。QPushButton提供了图形用户界面最长用到的命令按钮部件。此GUI交互界面利用QtDesigner以QMainWindow类为基础设计了主框架,包括菜单栏以及状态栏等;同时,以QWidget类为基础创建了一个对视频播放进行控制的插件接口,并通过合理的布局与主窗体组合在一起。 5播放系统测试在指定目录打开 avi格式视频文件,运行效果如图7所示。在播放过程中,通过状态栏实时显示当前视频文件的播放时间。通过界面下方的按钮对播放器的播放过程进行音量调节、暂停、快进、快退、停止等控制,基本达到了预期的效果。打开视频文件时,终端开始输出文件的加载路径,开始读取并输出ANS_TIME_POSITION(视频播放时间)参数值,在Qt与Mplayer之间完成了通信。当在控制台实施各种控制操作时,在终端输出执行的操作动作并发送该信号,调用相应的槽函数完成对视频播放的控制动作。以上是在主机上运行播放程序执行播放控制的过程。在主机上运行的Qt程序是基于X结构的,而在实际的嵌入式开发中,需要直接通过FrameBuffer进行显示。由于条件限制及其他因素,通过qvfb模拟程序在嵌入式开发板中运行的情况,如图8所示。从图8中可以看出,在qvfb中运行该程序时,菜单项的中文显示出现了方块型的乱码,这说明菜单项已经得到了识别,只是qtopia中缺少相应的中文字体库,在默认的情况下,qvfb会调用字体库中的默认字体,这样在显示中文时会出现如上问题。可以在网络上下载相应的中文字体库并拷贝到Trolltech/Qtopiacoreopensource4.3.0/lib/fonts中。 6结论 本文通过对车载播放系统的设计,根据车载嵌入式多媒体播放器的功能需求和技术特点,选择一款合适的嵌入式处理器,在此平台上构建了功能完整的嵌入式Linux系统开发平台。经过对Qt的GUI设计的研究,以Qt的基础类库为前端设计嵌入式多媒体播放器的前端控制图形界面。通过创建QProcess进程,实现了对播放过程的控制,与后台Mplayer进行通信,实时读取并显示播放信息,并在指定窗口对音视频码流进行输出显示。通过测试表明,本系统达到了应用于车载音视频播放的要求,对相关开发具有重要参考价值。 作者:李飞 单位:云南工商学院 设计学院 软件开发毕业论文:软件开发技术的应用与发展 [摘要] 对象编程、嵌入式开发等新开发模式的应用,使计算机软件开发更具有智能化、服务型和网络化的特点。本文主要是介绍计算机的具体应用模式,并且探讨了计算机软件的发展趋势。 [关键词] 新时期;计算机软件;开发技术 当前计算机技术的飞速发展,给人们的日常生活带来极大的便利,网络的普及更是推动额计算机软件开发。软件开发程序主要是通过代码实现功能的系统化定位,为我国各行各业提供更多的便利。 1计算机软件开发的重要性 计算机发展过程中以软件工程为主要发展核心,其是推动信息技术的主要力量。软件领域的发展对计算机网络有着至关重要的影响,网络化的普及也带动软件行业的长远发展,网络与软件相辅相成,共同推动计算机的整体发展状况。当前是计算科学不断前行和发展的时代,软件开发技术要紧跟时展潮流,抓住机遇,迎接挑战,为用户带来更多安心的服务。 2计算机软件开发现状 2.1计算机软件的概述计算机软件主要是通过开发技术得到的相应应用软件和系统软件,这是计算机发展中的重要产物。应用软件的最终工作目的是为了解决用户的具体问题,并且为用户提供方便快捷的工作方法。大到淘宝和银行客户端,小到单机游戏、应用软件,都是计算机软件的实际使用案例。系统软件是计算机本身的软件,其中比较常用的软件是监督控制软件、操作系统软件、应用软件等,其是用户正常使用计算机的必要保障。 2.2计算机软件的发展现状计算机软件具有发展迅速、方便快捷等特点,在短短的几年发展中,逐步普及到千家万户,也推动了计算机技术的发展。我国软件产业的迅速升温,造成了软件开发人才缺失,尤其在应用领域内,对技术开发人员的需求极大。 3计算机软件常用的开发方法 随着科学技术的飞速发展,计算机技术也开始日趋成熟,因而,选择合理的计算机开发方法,可以保障其开发质量,控制开发进程。当前开发时间非常重要,现在在美国硅谷,一项技术的更新换代周期是一周,所以作为开发人员要争分夺秒的开发新产品,创新理念,适应变化发展的市场。目前,比较热门的软件开发方式有三类:第一是生命周期法;二是自动系统开发法;三是原型化法。 3.1软件生命周期法该方法的出发点是时间,从时间角度拆分软件的各类问题,将软件划分为若干个开发阶段。不同的阶段开展不同的技术方法,每一个阶段都要适应阶段发展要求。通常情况下,软件生命周期分为6个阶段,换句话也是就是6个月左右。 3.2自动系统开发法该方法主要运用的工具是第四代技术中经常运用的开发软件,开发过程中强调更多的是开放的内容和实现方式,但是没有对如何实现作出具体说明。 3.3原型化法软件开发者在没有确定软件适用性的基础上,通过描述详尽的软件目标法,采用合适的原型化法开展研发工作。开发过程中开发人员要处理好整体系统化功能,并且分析和认定相关的其他事宜。 4计算机软件开发技术的应用 计算机软件开发的前提是优化创新现有软件,为社会发展提供基础性的服务,因此,相对于一种计算机软件开发技术而言,能够开发成功的关键所在就是软件的具体实用价值。接下来笔者主要通过计算机具体的开发实际例子,简要说明软件开发技术的应用价值。当前比较常用的两种运作模式,包括单机版的运作模式和VB6.0+Access开发模式,VB6.0+Access开发模式开发涉及的数据库开发对象是Web+XML+ActiveX。两个技术开发形式分别安装到客户端上面,单机运作模式的安装相对来说较为简单,直接安装就能解决问题,这主要是受到Access驱动和VB虚拟机微软历史版本的影响,也是说系统能够做到兼容,因而软件安装很方便。但是如果想要安装第二款产品,就需要在安装ActiveX时,更改浏览器,才能顺利地完成安装活动。安装结束后,用户在一定时间内做好两种使用效果的比对,在两种方法的比较中,可以发现第一种安装方法没有任何问题,并且运行比较稳定。特别是在做修复安装时,要求用户之间相互独立,简单地实现兼容。但是使用中必然会有利有弊,长时间的运行中,速度必然会减低,所以需要做好转档。第二种运行方法在系统运行和维护中,通过限制浏览器的安全设置,给用户带来诸多不便。 5计算机软件的发展趋势 第一,网络化是计算机软件当前的开发背景,计算机软件是依赖网络才能运行的系统,因而在运行时通过带动网络化发展模型,让网络和计算机软件两者双赢,网络的产生为发展平台提供更多的便利条件,因而软件开发要趋向网络化发展。第二,服务化。软件开发主要目的是更好地服务用户,在发展中为用户提供更多便利,未来的计算机软件发展应通过运用先进技术,树立人性化发展理念,满足客户需求,所以服务化是计算机发展的未来趋势。第三,智能化。在计算机的发展中,智能化是必要的发展趋势,开发人员要运用计算和其他智能化运行模式,让计算机接近人的思维,这也是新技术的革新理念。 6结语 计算机软件在现代社会经济生活中占有极其重要的地位,其发展能够带动整个社会的科学和技术的进步。计算机软件在发展中不断推动网络化的普及,并且重视计算机软件开发状况,使用新的开发技术,这为人类社会的发展提供不竭的技术支持。 作者:程艳楠 单位:大庆油田第九采油厂 信息中心
软件开发专业论文:高职院校计算机专业软件开发能力培养浅析 【摘 要】本文通过分析高职教育的特点及软件开发对技能的要求,对高职院校计算机专业教学理念、分阶段培养方法进行探索。 【关键词】高职教育;软件开发;能力培养 0 引言 教育部《关于全面提高高等职业教育教学质量的若干意见》明确指出要“加强素质教育、突出实践能力培养,改革人才培养模式”。软件行业是一种技术密集型行业,其技术性主要体现在隐性的思维过程中。从企业角度来看, 软件企业的工作过程是按用户需求进行需求分析、设计、实施和完成项目计划的生产过程;从职业角度来看,技术人员(高职培养目标――程序员)的工作过程是对具体工作任务(如功能模块、算法等)的计划、分析、编写代码的劳动过程。 当前,我国的高等职业教育发展迅猛,为高等教育大众化的实现作出了重要贡献。然而,由于起步晚,加上受到学科型普通高等教育的影响,高等职业教育的质量还不尽如人意。传统的普通高校本科教育以学科体系为核心,而高职教育的定位则要求体现职业性与学科性的结合,以培养高技能应用型人才为主。在教学实践中,没能注意这两者的差别,把高等职业教育办成了缩减版的普通高校本科教育。以电子信息类学科为例,重理论轻实践,课程过于强调学科系统化,学科体系的完整性,忽视“工作过程”,对学生的实践能力重视不足,严重地影响了高等职业教育的质量。 1 高职教育能否培养计算机软件开发所需人才 有人认为高职学生的入学水平低,难以培养出软件专业所需人才,软件专业人才只能由本科培养。这种观点没有认识到软件产业对人才的需求是全方位和多层次的。软件产业既要有需求分析师、项目经理、项目分析师和程序设计师,他们由本科和研究生教育培养;也需要大批写程序代码和用户手册的底层程序员,他们占软件专业人才总数的90%,可以由专科层次的高职教育培养。 本科与高职教育的专科不仅仅是不同层次的高等教育,而且是不同类型的高等教育,其培养目标、学习内容、就业方向等都有不同。本科开设软件专业是培养计算机软件专门人才,其培养目标是培养从事计算机软件设计、开发与系统运行的高级工程技术人才。本科教育按照计算机科学的体系来设置课程,学生主要学习计算机系统软件、应用软件的研究、设计、开发和运行的基本理论与技术。我国高职教育开设计算机专业,培养从事计算机软件程序设计、测试、系统维护的技术应用型人才。计算机软件专业高职教育按照一般程序员的职业岗位要求设置课程,学生主要学习计算机编程技术的知识和方法,理解计算机软件工程思想和软件规范设计要求,熟悉数据库技术、通用软件编程语言和软件开发工具。 如果把高职教育办成压缩型的本科,对于入学水平相对较低,学习时间短的学生,要在知识体系方面达到本科毕业生的水平,这条路自然行不通。应该改变传统的教育教学质量评价观念,不能把本科的学科本位评价观念和标准用于对高职教育的评价,而应该根据软件行业的需求,用能力本位评价观念对待高职教育。只有真正按照高职教育培养技术应用型人才的目标,以技术应用能力培养为主线建立教学体系,改革教学内容、教学思想、教学方法和教学手段,是可以把一些专科学生培养成计算机软件的高职技术人才的。有这样一个成功的例子:香港专业教育学院(IVE)是全港最大的职业教育培训机构,开设的软件工程专业类似内地的高职教育,招收中五学生(相当于内地高中毕业),全日制学习三年。这个专业多年来一直为香港的企业输送大批程序编写员,他们当中不少人后来晋升为系统分析员或初级管理人员。这个例子说明高职教育是可以培养出计算机软件专业人才的。 2 软件开发能力结构分析 对软件开发能力进行分析,要结合软件开发阶段的特点及开发过程的特点,并要结合软件开发的不同形态。下图中列出了不同学习阶段软件专业人才的能力结构,并从不同的角度进行了分析,如根据软件技术的学习阶段进行能力分析,每个后续阶段都在前面的基础上增加了新的能力。另外,要逐步实现从个人能力到团队能力的过渡。 在能力培养时,程序设计阶段仅仅是初级阶段,对应的能力要求仅仅是基本的程序设计能力与算法能力等,这时的程序设计只有几个程序文件的形式。而后两个阶段则在文件数量、程序规模等方面增加了很多,其能力要求与能力培养大不相同。进入软件开发阶段后,则需要重点对专业职业能力进行培养,这时应强调软件的总体设计,以及在此基础上展开的职业活动,并引入团队开发与管理等领域,此阶段的过渡对学生而言是一个飞跃。 在程序设计阶段的学习,重点在程序设计与算法能力培养;在软件设计阶段要进行团队开发则需要设计、管理、交流协同、文档表达等综合能力的应用,应逐步提高学生的综合能力与素质。实践表明培养学生的这些能力需要在实际开发情境下进行才能达到好的教学效果。如何设计、创造这个学习情境,是我们要重点探索的内容,要切实做好软件开发的工学结合,落实一种可持续发展的学习模式,达到培养学生专业能力与素质的目的。另外,系统应用阶段需要将软件系统本身作为一个应用产品进行设计、开发、实施、应用等,此阶段对应的岗位类型较多,在教学过程中,可根据学生的特点进行因材施教。总之,各个阶段的能力与要求不同,培养目标也不同,高职院校应把培养的重点放在程序设计阶段和软件设计阶段上,而不用强求全面。 3 用职业教育的方法培养软件蓝领 高职计算机专业应以市场为导向,对学生进行职业培训,职业认证。按照软件产业国际化、标准化和规范化的要求进行授课,注重知识的横向联系,培养学生综合运用技术的动手能力,使学生到企业后不需再培训就可以上岗操作,从而保证企业的人才需求。突破计算机专业传统的教学模式、教学内容和教学方法。学生在校期间要受到充分的职业教育训练,为此必须改革课程体系,理论教学以够用为度,不用追求全面化、体系化。通过三年的学习,要求学生能掌握计算机编程的知识和方法,深刻理解计算机软件工程思想和软件规范设计要求,熟悉数据库管理技术,精通二三门先进且通用的软件编程语言或软件开发工具,并能熟练应用于软件工程开发过程。 根据就业市场的需要,跟踪国际上先进的技术,保持与企业的联系,保证人才培养的先进性,注重调查和跟踪市场,保证人才培养方案和教学内容与I T 先进技术同步发展。例如印度的AOTECH公司是世界上最大的计算机教育培训机构之一,它由600 多位专家负责制定人才培养方案和编写教材,其中三分之一的人负责市场分析,三分之一的人负责与国际著名的I T 企业保持联系,三分之一的人根据市场分析和企业调查的结果编写教材。这个公司成立16年以来,教材更新了20版,目前教材更新的周期是半年。然而我国目前高校的计算机软件的教材通常由教师自己决定,或者由教研室、教学院系指定。实际上,教师个人、教研室、教学院系、甚至大多数学校都没有大范围跟踪企业、调查市场并根据市场需求调整教学内容的能力。 软件开发专业论文:智能科学与技术专业软件开发综合设计的教学改革与实践 摘要:针对智能科学与技术专业在软件开发教学中存在分散于各个课程/实验中的问题,在分析软件开发综合设计对培养创新型人才的重要作用基础上,文章提出统一集中教授、因材施教、分级答辩的观点,介绍武汉工程大学智能专业实验教学环节的实际情况,说明在软件综合设计实验方面取得的效果。 关键词:创新人才;软件综合设计;改革与实践 0 引言 智能科学与技术专业是面向前沿高新技术领域的本科新专业,覆盖面较广,如机器人、自动化机器、电器、楼宇、社区及物流等领域。由于本专业涉及多个学科领域,使得软件开发综合设计的实验教学与计算机其他专业存在一些不同,并且软件开发综合设计在培养创新型人才过程中也存在一些自身的特点和规律。 经过多年的教学与实践研究,我们发现本专业有关软件开发的课程与实验教学散落在多门课程与综合设计中,而这些课程与综合设计一般由不同教师担任,存在一个明显的问题:各个课程之间的衔接,以及教师之间的沟通不充分,造成学生在实验环节中经常做重复性劳动,并对相应的知识点归纳及总结时间明显不足。该问题使得教学与实践的效果不好,尤其是培养创新型人才的目的不能完全达到。笔者以武汉工程大学2011级智能专业的软件开发综合设计作为改革试点,对如何培养创新型人才提出了可操作的实践方案。 1 软件综合设计对培养创新型人才的作用进入21世纪以来,全球经济竞争进一步加剧,社会对高素质创新人才的需求更为迫切。创新是人类社会发展的强大推动力。自20世纪信息技术革命以来,创新推动人类科技与技术不断发展。特别是近十余年来,包括计算机信息科技在内的高新科技与智能技术的融合,形成了新的概念与思想、新的技术与手段,创造出新的人工智能模式。科学与技术的进步促进了智能科学与技术学科的创新与发展,同时对本专业的高等教育提出了严峻的挑战。 软件开发综合设计在智能科学与技术专业的人才培养中是重要的一个环节。软件开发综合设计实验教学要求学生在掌握软件开发技术的基础上,拥有软件行业知识、与人沟通能力、团队协作能力等,并对各种专业知识点做到融会贯通。学生通过软件开发综合设计实验训练后,熟悉软件开发流程和规范,逐渐适应常规软件开发调试环境和方法,培养出良好的软件开发人员的职业素质,促进学生软件开发能力的形成,最终平滑过渡达到企业各类开发岗位的要求与标准。 总之,在武汉工程大学培养智能专业本科生的过程中,综合设计实验的目标是通过理论指导实践,在实践中培养创新能力、提高创新能力、锻炼创新能力,对培养具有创新意识的本科生具有重要作用。为适应21世纪我国经济建设和社会发展的需要,我们从武汉工程大学2011级智能专业软件开发综合设计人手,进行深化改革,推进素质教育,开展实验教学的改革与实践研究。 2 软件综合设计的改革措施 针对本专业软件开发综合设计教学中存在的问题,我们提出以下改革措施。 2.1 统一集中教授 通过对学生进行意见调查反馈,结合多年软件开发综合设计教学经验,并引入国外先进的教学经验,对传统的软件开发综合设计进行了改革与创新。 首先,在软件开发综合设计开始的时候,先统一教授软件开发设计方法学,目的在于进一步提高学生的综合素质,拓宽学生的知识面,加深理解所学的基础理论,培养学生应用所学过的知识,独立解决工程实际问题的能力。培养学生的创新设计能力,使学生得到一次较完整的设计方法的基本训练。 让学生了解设计过程,掌握设计方法,具有创新意识与思维,在设计过程中能在认真思考的基础上提出自己的见解,而不是简单的抄袭或没有根据的臆造,充分发挥自己的创造性。重点讲解软件开发设计的方法,着重培养学生软件开发设计能力,不仅向学生提供软件开发设计中的创新思维方法,还通过实际软件开发设计示例,提高学生独立提出、分析和解决实际问题的能力。在教学体系与内容上,重视介绍本学科发展的新动态、新方向、新内容,注重激励学生的学习欲望,调动学生的积极性,开阔学生的思路,拓宽学生的知识面和视野,让学生了解更多更新的理论、技术与方法。 其次,引入当前最受学生群体欢迎的视频教学模式,将国外知名大学的视频公开课作为实例进行教学。根据视频公开课的特点,在教学体系和内容上做相应的改革,进一步扩大学生的知识面,激励学生的学习欲望,发挥学生的学习积极性,配以相应的多媒体教学环境,“请”国际一流的大师讲述现代软件开发设计手段,进一步开阔学生的思路,扩展学生的知识面和视野,让学生掌握更多更新的理论、技术与方法。通过视频公开课的辅助教学,生动具体地讲解优化软件开发设计、可靠性软件开发设计在工程中的应用,提高教学效果,培养学生提出、分析和解决问题的能力。 2.2 因材施教 创新人才的培养中,学习是基础,思考是关键,实践是根本,三者必须紧密结合。因材施教就是为了让受教育者习而化之,形成一个既有正确导向、符合实际,而又无拘无束的环境,使学生的个性在得到主动、和谐、健康和全面的发展的同时,具有本身固有的特色。没有各式各样的个性,就没有多姿多彩的世界;没有突出个性的发展,就没有杰出人才的出现。 我们将软件开发的题目公布后,只提出大致的目标,给予学生更多思考的空间,不再拘泥学生必须按照什么方法实现什么功能,而是引导学生采用自己认为最佳的方法完成最终的任务。对于较为优秀的学生,我们对其要求也不再仅仅是完成而已,而是要求其从用户角度出发,将方案设计的更加周全与完善,让用户更加方便与便捷的使用所开发的软件,并对于软件系统的优化也有所期待;对于中等的学生,我们对其要求是在单位时间内,准确无误地开发出满足所提要求的软件,对于软件系统的优化以及用户体验等细节不作要求;对于中等偏下的学生,我们对其要求是与中等或较为优秀的学生组成小组,尽力配合小组成员完成相应的软件开发;对于能力不足的学生,我们将会让其在长时间努力还不能够完成任务的情形下最终给出一个完整的解决方案,让其进行仔细研究,理解并弄清楚整个方案的细节。 2.3 分级答辩 对传统的软件开发综合设计答辩环节进行改革,提出了可进行分级答辩的政策。由于开设软件开发综合设计的目的是既能让学生学习相关学科的技术基础知识,又能训练学生的动手能力和创新设计能力,还能引导学生知道如何运用所学知识去解决软件开发中的实际问题,也就是说综合设计课程非常强调实践性。 我们对于动手能力较强的学生,允许其在完成任务后提前答辩,要求学生在设计软件时由自己独立完成从方案设计到软件开发设计的全过程。答辩时学生先对开发的软件进行动态演示,随后针对答辩老师提出的问题进行解答,最后还需要在规定时间内顺利完成答辩老师临时添加的新任务。而对于动手能力中等的学生,尽量控制其完成的时间,即让其充分利用软件开发综合设计的时间,对日常所学的知识进行细致深入的理解并应用于软件开发过程中,并在规定的软件开发综合设计完成的时间内完成开发任务,进行答辩。答辩时学生先对开发的软件进行动态演示,随后针对答辩老师提出的问题进行解答。然而,对于动手能力一般的学生,进行集中答辩,即采用传统的方式进行。最后,对于动手能力较差的学生,进行单独答辩,目的是除了降低这类学生心理的压力外,还会在答辩过程中进行深入的知识点检查与灌输,强化学生对软件开发的流程和方法的理解。 3 软件综合设计的实践 我们在武汉工程大学2011级智能专业软件开发综合设计中使用所提出的“统一集中教授、因材施教、分级答辩”的方法,要求学生采用c语言完成“学生成绩管理系统”的设计与开发,要求使用到各类数据类型与各种运算、程序控制结构、函数、数组、指针、结构体、文件等内容,实现增添、查询、修改、插入、删除、求平均值以及排序等全部常规功能。对于优秀学生可要求其使用c语言实现结构化开发后再采用C++语言实现面向对象的开发。整个软件综合设计持续2周时间,其中,“统一集中教授”占用了16学时。 随后,学生开始进行软件开发,并针对完成情况的不同,让学生分别进行答辩。根据提出的“统一集中教授、因材施教、分级答辩”的方法,我们设计了成绩评定表,如表1所示。 最后,2011级智能专业共69名学生的综合评定成绩情况为:成绩≥90分的占18%,成绩在89—80分的占42%,成绩在79—70分的占34%,成绩在69-60分的占6%。这样的成绩验证了这类综合设计实验改革的成功。 4 结语 从改革实践过程可看出其效果,确实使学生学习热情变高,尤其是在视频公开课过程中,让学生由传统的被动学习转变为主动学习、主动钻研,并成为了真正的软件设计者,大幅度地提高了学生的设计能力、创新能力、创造能力,最终的考核成绩表明改革后的教学方法对使学生成绩提升较大,改革取得了一定的成效。 软件开发专业论文:教育技术学本科专业软件开发类课程体系研究 摘要:针对目前教育技术学本科专业计算机软件开发类课程存在杂而不精,缺乏系统性等问题,提出了以“C-C#-Java”语言类课程为主线的课程体系,旨在提高教育技术学本科专业学生的计算机应用(开发和实践)能力。分析了该课程体系中的理论教学体系、实践教学体系以及教学重点内容,并对该课程体系的教学方法手段方面提出了一些建议。 关键词:教育技术学专业;软件开发;课程体系 一、教育技术专业概述 教育技术学专业是教育学和技术学相互交叉、相互作用而形成的学科。目前在我国开办教育技术学本科专业的院校已经从师范类院校扩展到综合性大学、理工类院校。开设教育技术学专业的多数高校将教育技术学本科人才培养方向之一定位为教育软件与知识工程方向,该方向着重培养多媒体素材的设计与开发、教育软件设计与开发、网络课程设计与开发以及人力绩效开发与知识管理方面的人才。就专业培养方向来看,各类软件的设计与开发都要求本专业学生有很强的计算机应用(开发和实践)能力,也即计算机应用能力培养在教育技术学专业中占有重要的地位。笔者所在院校为理工类院校,对近几届毕业生的软件开发能力进行调查分析,学生普遍感觉大学四年学了众多计算机类课程,到毕业设计的时候还是不会编程,大四最后一个学期才开始边学编程技术边做毕业设计题目。究其原因,由于教育技术学科是综合性的应用学科,不可避免地在课程设置上存在一些问题:课程开设庞杂,开设多门高级语言程序设计类课程,知识体系有广度没有深度,导致学生学而不精;课程设置缺乏系统性,课程教学内容不连贯或者重复教学;在教学过程中注重理论教学而忽视学生实践动手能力的培养,导致学生编程能力差;核心课程知识陈旧,与现实的教育技术实践应用需求脱节,与现实的计算机发展技术相脱节。课程设置是教学计划的核心,决定着学校的教学内容和学生的知识结构,直接关系到人才的培养质量。为实现应用型人才培养目标,研究并建立适合教育技术学本科专业的计算机软件开发类课程体系,切实提高该专业学生的计算机应用能力是目前重要的课题。 教学技术学专业是一个跨学科的专业,本科生在四年中所能接收的信息量是有限的,不可能将交叉学科的所有系统知识都纳入学习的范围,因此在明确培养目标的前提下,设置计算类课程时不应该“杂而全”,而应该是“专而精”;其次要注意课程与课程之间有效的衔接,避免前后脱节;再次应注意同市场需求以及计算机学科发展结合起来,开设的课程符合社会发展需求;最后突出实践能力,加强动手能力的培养。教育技术学专业本身是一门实践性很强的学科,人才的培养本着学以致用、以学促用理念。 二、课程体系建设 教育技术学本科专业计算机软件开发类课程体系建设目的是让学生熟练掌握一至两门编程语言,熟悉相关开发方法、工具和平台,综合运用所学知识去解决实际问题。鉴于目前主流的编程技术有.NET和Java编程,建立以“C-C#-Java”语言类课程为主线的课程体系,从初级到高级、由简单到复杂,循序渐进逐步提高学生的软件开发能力。 Java语言是面向对象的编程语言,也是目前阶段开发应用程序的首选语言,但是对于大一新生来说,直接接触面向对象编程思想有一定的难度,因此在大学第一学期仍然选择C语言作为程序设计的入门语言,有了C语言的基础,跳跃到C#或Java就十分容易,因为许多语法是通用的。C#是从C/C++派生来的一种简单、现代、面向对象的高级程序设计语言,由Microsoft公司设计运行于.NET框架之上,它具有语法简单、表达力强的特点,对于低年级且又是非计算机专业的学生来说,学习该语言相对比较容易,所以,在第二阶段选择学习C#语言。Java是一种可以编写跨平台应用软件的面向对象的程序设计语言,自1995年由Sun公司推出,就迅速成为全球主流的编程语言,Java基本语法规则和C语言类似,优点之一是去掉了C语言中难学的指针,有助于学习者理解和掌握。但是学习Java语言类开发技术较C#语言有一定的难度,虽然这两种编程语言都为面向对象的程序设计语言。基于上述分析,研究并建立的课程体系为学生第一学期学习C语言之后,在后续的学期过渡到面向对象的程序设计语言。围绕这三门语言类课程,再设计其余计算机软件开发类课程如何衔接。设计的课程体系结构如表1所示。 表1 课程体系结构 开课时间 必修课 大型实验 第1学期 C语言程序设计 无 第2学期 C#可视化程序设计 C#可视化程序课程设计 第3学期 数据结构 数据结构课程设计 第4学期 数据库原理及应用 (面向对象程序程序设计Java) 数据库课程设计 第5学期 Web应用系统开发(JSP) Web应用系统课程设计 第6学期 Java网络编程 Java网络编程课程设计 第7学期 J2EE企业级应用开发 J2EE企业级应用开发课程设计 第8学期 毕业设计 第一学期主修C语言程序设计,掌握面向过程的程序设计思想。第二学期主修C#可视化程序设计,这里注意的是本课程内容包括两部分:一是C#语言基础介绍,二是.NET技术,可视化界面的设计部分。通过Windows界面的设计,学生获得面向对象的感性认识以及认识到编程的实用性,从而提高编程兴趣,有助于后续学期进行软件开发类其他课程的学习。第三学期主修数据结构,目前数据结构课程的教材有C、C++以及Java语言版,由于到此阶段学生未接触Java语言,所以选择C语言版的,学生可用C语言来实现数据结构中的算法,对于Visual C#.NET掌握较好的学生,在数据结构课程设计时可选择用C#语言实现数据结构中描述的算法。第四学期主修数据库原理及应用课程,在讲授数据库编程内容时,由于学生在前面学期已经学习过可视化的程序设计(应用系统前台界面的设计),即已经掌握.NET开发平台的使用,可以重点讲述利用技术如何进行数据库的操作。第四学期同时开设面向对象程序设计(Java语言)课程,为后续课程打基础。第五学期直到第七学期每学期均开设Java语言应用开发类的一门课程,具体包括Web应用系统开发(JSP)、Java网络编程、J2EE企业级应用开发。每学期均安排相应课程的课程设计,有助于消化所学知识,同时锻炼和提高学生分析、设计、编程能力。第八学期学生主要任务是毕业设计,如果是软件开发类题目,那么学生可以利用已经学习过的主流技术.NET或J2EE来完成。 综上所述,将教育技术学专业学生计算机应用(开发和实践)能力的培养分为两个阶段:在大一、大二阶段,掌握C语言结构化编程、面向对象编程(C#)、图形用户界面编程、数据结构及算法、数据库编程,为专业培养目标打下编程基础,该阶段注重.NET技术开发;大三、大四阶段,掌握面向对象编程(Java)、小型Web应用系统的开发(JSP)、Java网络编程、J2EE企业级应用开发,该阶段注重Java程序开发。 以上课程体系安排使学生在大学四年的前两年基本会利用.NET技术进行一些简单小型应用软件项目的开发,如学生对.NET技术感兴趣的话,可以利用大学四年的剩余学期边学习新的课程,边利用业余时间拓展自己的.NET编程技术。学生从第四学期(即大二阶段)开始学习Java相关课程,即Java应用开发阶段,学生利用在校的两年时间主修Java软件类开发课程,学习主流Java开发平台和框架的使用,最后掌握企业级应用系统的开发,逐步提高学生的软件开发能力。这样,大学四年软件开发类课程不断线,且从第二学期开始,每学期都安排课程设计,通过课内实验以及课程设计实践提高学生的软件开发能力,解决学生学习了众多编程语言却不会编程的问题,学生在毕业设计前具备独立开发应用系统的能力,从而提升该专业学生就业竞争力。 三、课程内容解析 以下对课程主要教学内容及教学目标作简要阐述。 1.C语言程序设计基础 掌握C语言的基本结构、各种数据类型、控制流程、函数、数组、指针和结构体的语法及语义,使学生了解结构化程序设计思想,学会用结构化方法编写程序,初步具备解决实际问题的能力。 2.C#可视化程序设计 掌握C#高级语言基础、Visual Studio 2008集成开发环境的使用、Windows界面控件的使用、事件驱动的编程机制,使学生获得面向对象的感性认识,初步拥有Windows应用编程能力。 3.数据结构 掌握数据结构的基本概念和各种基本的数据结构,包括数据的逻辑结构(线性表、堆栈和队列、广义表和字符串、树与二叉树、图、文件等)、存储结构(顺序存储、链式存储)以及在这两种结构基础上对数据实施的基本操作(算法)的设计与分析。 4.数据库原理及应用 掌握数据库系统的一般概念、数据模型、关系模型、SQL语言、数据库安全性、完整性、关系数据库理论、数据库设计、数据库编程、数据库管理系统的使用以及运用开发平台开发数据库应用系统的方法,为从事数据库应用开发打下基础。 5.面向对象程序设计(Java) 掌握Java语言基础、面向对象程序设计思想(抽象、封装、类、继承与多态)、工具类、图形界面编程、异常处理、文件输入输出、数据库编程、Java Applet 编程、开发环境与工具的使用等。着重培养学生对Java 编程思想的体会,为进一步学习Java 语言打好基础。 6.Web应用系统开发(JSP) 掌握JSP软件体系结构、运行环境的安装与配置、JSP基础、JSP常用内置对象、JSP与JavaBean、JSP操作数据库、Java Servlet技术,使学生掌握JSP基本理论知识,能够运用JSP进行Web小型应用系统开发。 7.Java网络编程 掌握网络编程基础知识,基于TCP、UDP以及FTP等应用层协议的Java应用开发,使学生掌握“基于协议”的网络程序开发方式。 8.J2EE企业级应用开发 掌握J2EE的体系结构、Servlet、EJB以及利用开源框架(Struts、Spring和Hibernate)进行J2EE程序开发,使学生掌握基于J2EE的企业级应用系统的开发方法。 四、实践教学体系 与上述课程体系配套的实践教学体系包括每门课程的课内实验和课程设计。课内实验部分主要是基础性实验和验证型实验,重点加深学生对知识的理解,掌握基本技术和方法。从第二学期开始,每学期都安排大型的课程设计,课程设计需要综合一门或多门课程的内容。C#可视化程序课程设计,体验C#的编程思想以及组件开发原理,利用Visual Studio2008集成开发环境来完成应用系统的设计,初步体会面向对象程序开发的思想。数据结构课程设计主要针对具体问题进行数据结构与算法设计,并用C语言或C#语言实现。数据库课程设计主要针对具体问题,按照数据库设计的步骤进行,学生可利用已掌握的.NET技术实现具体数据库应用系统。本课程设计涉及技术和数据库两门课程的知识,是对学生综合分析、设计以及编程能力的检验。Web应用系统开发(JSP) 针对具体问题,运用JSP技术及JDBC数据库访问技术,利用开发平台实现小型的Web应用系统,主要检验学生运用JSP技术解决实际问题的能力。Java网络编程课程设计主要检验学生“基于协议”的网络程序开发能力,即学生运用已掌握的网络编程技术进行基于TCP、UDP、FTP等协议的小型应用软件的设计与开发。J2EE企业级应用开发课程设计主要针对Java企业级架构开发,学生使用Struts、Spring和Hibernate进行整合开发Web程序。在完成课程设计任务过程中,学生需要查阅课外知识,有助于培养学生的自学 能力,同时锻炼和提高学生综合分析、设计和编程能力,完整体验到一个应用系统开发的全过程,巩固了已学的知识,为毕业设计和就业打下良好的编程基础。 五、与课程体系相关的教学改革 1.改革教学手段 采用案例教学法。由于学生缺乏实际开发经验,为了充分调动非计算机专业学生学习软件编程积极性,在上课前期就强调应用,精心准备一些与课程相关的应用软件系统案例,使学生从接触课程开始就认识到学习编程的实用性,从而提高学习的兴趣,有利于整个教学过程的实施。 2.改革实践教学环节 转变“重理论、轻实践”的观念,建议采取课堂教学与实验教学相结合、课内与课外实践相结合的教学方法。教师可将课堂教学中技术性、操作性、应用性比较强的内容直接在实验室中进行教学,采取边讲边练的教学方法,使学生在实际操作中掌握相关的知识、技能和方法;为了更好地培养学生的实践能力,应积极加强课外实践活动,例如参与其他院系的网络精品课程建设、教学网站的设计与开发和教育游戏软件的设计与开发等,这些课题本身就属于教育技术学专业应用研究课题,学生在参与过程中,不仅锻炼了动手编程、解决问题的能力,同时还锻炼了与他人合作解决问题的能力,使人才培养方案与社会需求结合,做到学以致用。 3.改革实践教学考核方式 实验考核不但可以考核学生对知识的掌握程度,还能够激发学生的学习积极性,对学生有很大的引导作用。实验部分分数比例设置过低,会使一些学生轻视实践环节,所以适当提高实验分数比例是必要的,且对于不同类型的实验,应采用不同的考核方式。 六、结束语 教育技术学专业是一个交叉学科,学生计算机应用能力的培养在该专业的培养方案中占有重要的地位,加强学生计算机软件开发动手能力也是当前提升学生就业竞争力采取的必要措施。在本文中,主要探讨了教育技术学软件开发类课程体系的建设,通过研究,建立了以“C-C#-Java”语言类课程为主线的教学体系,突出的是该专业学生实践动手编程能力的培养,希望能够为教学技术学本科专业的计算机类课程教学提供一些帮助和启示。教育技术学专业学生计算机应用能力人才的培养是一个循序渐进的过程,该专业计算机类课程体系的改革研究,仍然需要在实践中不断深入探索和完善。 软件开发专业论文:基于CDIO的高职软件开发类专业课程体系的研究与探索 [摘要]文章从区域人才需求和高职学校的实际情况入手,结合高职学生的特点,以加强学生动手能力的培养为目标,探讨基于CDIO的教学模式,从而制订高职软件开发类人才培养方案,主要内容包括高职学生特点分析、课程体系建设、核心专业课程开发等。 [关键词]CDIO模式 软件开发 课程体系 高职 人才培养 进入21世纪以来,国内外高等职业教育体系发生了重大变化,CDIO工程教育模式是当前国际工程教育改革的最新研究成果。培养满足企业需求的人才,主要还是依靠专业课程体系的设置。本文在对台州周边区域企业充分调研的基础上,在教学中引入CDIO教学理念,设置了基于CDIO的软件开发类专业课程体系,对培养高职学生的职业技能以及岗位能力具有积极的意义。 一、软件开发类专业课程体系的特点与存在的问题 1.软件体系结构的特点。20世纪90年代,随着软件工程的发展,软件体系也随之发展起来,软件体系的基本内容和原理来源于近20年软件研发过程中逐步形成的理论成果和实践经验的总结。软件体系结构发展历史短,形成过程还在逐步完善中,理论强于实践,具有很强的学术特点。软件设计原则、方法、技术是对以前软件开发过程的经验总结,设计软件的目的是为了高效快速地运行具体项目。软件需要考虑项目功能的需求和商业因素,因此软件的设计是一门艺术的设计。 2.传统教学中存在的问题。人才培养计划是人成才的实施过程,在职业人才的形成过程中,职业能力和职业素养起了决定性作用。原有的培养计划由于体制、培养模式等因素,严重影响了毕业生的岗位适应能力。主要表现为学生对未来职业的工作环境、岗位能力目标缺乏了解,对学习课程的知识目标、能力目标不明确;单项技能强于职业技能,强调自身的知识能力,课程之间缺乏联系,学生对所掌握的技能不能融会贯通;课程教学以教师为主,学生缺乏必要的认知与体验,教学过程中缺乏必要的学习情境,忽视了学生的主动性;学生对理论知识的掌握较差,对抽象的理论感到乏味;软件的设计是从整体架构层面考虑复杂的用户需求,缺乏项目开发经验的学生很难理解抽象的理论知识,更谈不上将掌握的知识应用到实际的开发中。 3.高校毕业生与社会需求之间的矛盾。2010年全国高校毕业数量达到了630万人,而计算机相关专业的毕业生占了相当大的比例,就业形势不容乐观。有关统计数据表明,就业率在所有行业中属于最差的级别。软件产业处于高速发展阶段,近年来保持30%的增长速度,即便是2009年受国际金融危机的影响,软件产业的增长速度也达到了25.6%,而软件从业人员的增长速度为每年25%。从表面上看,软件产业的发展和人才需求基本持平,但人才供需的实际矛盾突出,究其原因主要是高校对软件产业的需求缺乏了解,培养的学生对工作岗位的适应能力差,而企业对人才需求也近乎苛刻。 二、CDIO模式在课程教学中的探索与研究 CDIO工程教育模式是21世纪国际工程教育改革的最新成果,集中概括了“做中学”“基于项目教育和学习”的教育理念,以工程项目为载体,从项目的研发到运行,让学生以主动的、实践的、有机联系的方式学习工程开发过程。CDIO模式以构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate)为主,指出了工程师必须具备的基础知识、个人能力、职业素养以及和社会环境的融合,并教学生如何掌握这些知识、能力和职业素养,强调了理论与实践的结合。 第二,案例导学,培养学生个人能力素质。个人素质和专业技能是一个优秀工程师的必备素质,包括学生认识问题、分析问题的能力,形成建模,解决问题的能力,以及整体的、系统的思考问题的能力。通常选择一些直观的、常见的、学生感兴趣的例题,由指导教师在课前将问题抛出,学生分析用户需求,构建系统体系结构,设计出满足用户需求的软件体系结构。在课堂上,以学生为主,分析、讨论、识别设计的软件体系中存在的风险和解决方案,锻炼学生分析、解决问题的能力,提高实际软件设计过程中的成本意识和风险分析能力。 第三,分组讨论,培养团队合作和交流沟通能力。团队合作和交流沟通能力是软件开发类专业学生必备的能力之一。在实际教学过程中,将学生以寝室为单位分为若干小组,每组由1名组长负责,在课堂上,组长代表本小组,直接和教师或其他小组联系;在课堂外,组长是本小组的项目领导者。在组长的安排下,各成员分工合作,相互学习,相互帮助,拉近了同学之间、学生与老师之间交流的距离。 第四,项目驱动。系统的开发、设计是在企业和社会环境下的构思、设计、实践、运作,是有一个项目系统化的设计过程,是CDIO工程教学模式的精髓的体现。以一个完整的软件开发项目为驱动,以CDIO教学模式为指导,将CDIO的四个阶段有机地融入项目中。第一步,构思。学生先对项目的研发背景和用户需求进行分析,提出系统开发的可行性、系统开发过程中可能遇到的问题,提炼出系统的功能要求及解决方案,写出必要的文档资料。第二步,设计。对系统进行建模,设计出相应的软件体系结构,进一步分析、评估。第三步,实现。设计软件进行必要的软件测试,使软件能正常运行。第四步,运行。对设计的程序进行修订、完善。将教学过程融入项目制作的具体情境中,学生掌握了每个阶段的成果,完成了具体项目的制作,了解了工程制作过程。 第五,能力考核。在考核方式上,摒弃了传统的理论考试,注重软件开发、设计能力的考核。以学生提交项目的运行情况为主,根据各小组成员分工情况进行答辩。首先由组长介绍项目的总体情况、分工情况等,然后由各成员汇报各自承担的工作,最后教师根据具体情况向学生提问,以学生做答来评定成绩。每个小组需要提供相关的技术资料,提高了学生工程能力。 三、高职软件开发类专业课程体系开发 2.岗位能力分析。一是职业发展过程设计。将学生职业发展过程分四个阶段:第一阶段,职业发展初期。上班初期,从文档等资料整理开始,要求掌握办公自动化软件及设备、局域网建设等技能。第二阶段,职业成长阶段。经过一段时间的熟悉,能根据实际需要进行数据库的设计和维护,进行静态网页的制作和图形用户界面的开发。第三阶段,职业成熟阶段。能在软件开发技能方面有提高,掌握基于B/S模式三层架构的WEB应用系统的开发,掌握基于手机的移动应用系统的开发,掌握软件测试技术。第四阶段,经过在岗位上的锻炼和实践,基本能独当一面,独立研发信息系统、大型网站的建设以及移动应用程序的开发等。 二是职业能力与素质分析。专业技术能力:具有良好的编程能力,掌握GUI、Web、移动应用程序等的开发方法,掌握数据库的开发和应用,了解企业级应用程序的基本架构,会在JAVA和.Net两种平台上编写程序和测试程序。社会交往能力:具有良好的人际关系,较强的语言表达能力,较强的团队合作精神,良好的社会适应能力,能承受挫折,学会与人共处。继续学习能力:具有较强的进取心和求知欲,较强的学习能力,独立的思考能力。 四是课程教学实施过程。高职人才培养的实施过程为:大学一年级开设Office高级应用、数据库管理、网站美工设计、静态网页设计、基于CMS的网站开发技术、Java面向对象编程、C#面向对象编程课程;大学二年级开设局域网建设与安全管理、XML应用、软件工程、企业资源规划实施、Java Web应用系统开发、.Net Web应用系统开发、.Net企业级商业站点开发课程;大学三年级开设顶岗实习、毕业设计、Java移动应用开发、C#移动应用开发课程,然后毕业。 四、总结与展望 台州职业技术学院软件开发类专业强调通过毕业设计检验专业综合能力,以课程项目实战检验模块课程的设计,考虑职业岗位的人才需求情况,以提高学生专业技术开发能力为出发点,贯彻CDIO工程教学的先进理念和教学方法,设计了高职软件开发类专业人才培养方案。在未来将在实际教学过程中不断完善方案,为高职软件开发类专业探索新思路。 软件开发专业论文:浅析电类专业仿真教学软件开发的重要性 摘 要: 随着计算机技术的飞速发展,计算机在电力系统继电保护整定计算和数据库管理等方面的发展已相当成熟和普及,但涉及二次系统的技术资料的计算机管理和仿真则相对滞后。本文介绍的二次配线仿真教学软件,可将每个元件为基本单元进行计算机仿真,模拟设备的具体连锁动作过程,设置每个元件的不同状态和不同故障等,应用于学生模拟现场人员读二次系统图,分析故障原因,从而提高运行人员的事故应变和处理能力。 关键词: 电类专业 计算机仿真教学 二次配线仿真 教学软件 一、 引言 传统的职业教育以使学生掌握经验技术和动作技能为目标,以迅速适应工作岗位的要求。但在知识经济时代,由于生产方式的根本变化,人们的职业能力构成必将有大的改变,社会需要更高层次的人才。这就要求我们培养的高等应用型人才,不只是对现有知识、技术、方法的继承性应用,而是应通过自身努力能够不断学习新知识、新技术、新方法,形成新方案、新产品、新创意,分析新情况,创造新问题。因而课程实践教学的改革应以培养的学生具有一定创新能力和创新精神、有着良好的发展潜力为主旨,以行业科技和社会发展的先进水平为标准,充分体现规范性、先进性和实效性。 在电业专业教学中利用计算机进行仿真教学,主要是借助一些具有强大仿真功能的软件平台进行电路仿真实验。这种仿真实验是在计算机上虚拟出一个元器件种类齐备、先进的电子工作台,一方面可以克服实验室各种条件的限制,另一方面可以针对不同的目的(验证、测试、设计、纠错和创新等)进行训练,培养学生分析、应用和创新的能力。与传统的实验方式相比,仿真实验突出了实验教学以学生为中心的开放模式,有效提高了实验教学的效率。 二、传统实践教学的状况及问题 在传统实践教学中,教师是“带”实训而不是“指导实训”,即实践教师是传授知识和技能的主体,而学生则被动地接受知识和技能。这种教学多采用注入式,教师根据教学计划和教学要求拟定内容,其实践内容的选择、步骤的制定和仪器设备的组织准备等概由教师进行。实践时学生只需按规定的步骤机械地操作即可。且在执行过程中,完全听从教师安排,全班统一进度和要求,不利于因材施教。 教学内容过于偏重于基础训练,所以在方法和手段上很单调,主要以“模仿”为主。通过教师详细讲解、操作示范,学生不需主动思维和创新,只需“依样画葫芦”。学生反复训练硬件接线,熟能生巧,形成一定的基本技能。另外所用设备仍以传统的电机电器为主,没有运用现代化教学设备和手段,先进性也显不足。 三、计算机仿真教学的优点 计算机仿真教学最大的特点是有助于突出教学重点,分散难点,只要点击鼠标,就可以进行大量演示。在课堂中无论一个老师多么善于表达、比划,也难以表现一些抽象的和具有共性的知识内容,而这些知识内容又往往是一节课的重点和难点。与传统的教学软件相比,计算机仿真为电气控制教学提供了新手段,弥补了传统教学中的许多缺憾,为教师、为学生创设了充满活力与生机的工作、学习环境。 与传统的方式相比,仿真教学具有如下优点:(1)为学生提供充分动手的机会。强大的交互性能,使得学生可以自己动手设置各种实验参数,并及时得到结果,这在真实世界中往往是无法实现的。(2)灵活地仿真各种真实情况。在仿真软件中可以灵活地设置各种参数、模拟条件,自如地模拟真实世界中的各种情况。(3)设定各种事故及极限运行状态。我们通过仿真,可以了解真实世界中无法实现的危险性操作,或者临界条件。(4)自动评价功能。在一般情况下,仿真软件具有评价功能,可以给学生的每一次操作实时地评分,使学生可以即时地了解自己的每一次操作的正确性或合理性。(5)安全性。所有的操作均不是现场实施,因此绝对不会带来危险的后果。(6)节省开支。 除了以上这些显而易见的优点外,仿真教学还有一些超出人们预期的效果:(1)调动学生的学习主动性。仿真软件一般都是独立操作、独立完成,学生必须开动脑筋认真分析问题,从而才能准确地解决问题。在传统教学中,学生往往会等待教师给出正确答案。(2)开拓想象空间。仿真软件的操作不存在限制,学生可以海阔天空地想象,进行各种各样的设计,并迅速地通过仿真看到结果。这在传统教学中是不可能实现的。(3)减轻教师的负担。学生们主观能动性提高,就意味着教师可以腾出手来做更多的教学工作,或进行有针对性的指导工作。在传统教学中,一个教师往往要面对几十位学生,无法跟踪每个学生的全过程。(4)增强学生的自信心和成就感。通过仿真训练,学生们能充分了解自己所学知识的应用领域,应用前景等,将理论与实践相结合,增强对专业技术的认识,从而激发敬业精神。而传统教学中,学生们掌握了一大堆知识,却不知道如何应用,往往会对本专业有一种挫败感,丧失从事专业工作的积极性。(5)增强学生的安全意识。通过计算机仿真,在虚拟世界中由于错误的操作而产生的安全事故,可以提高学生的警觉,分析故障原因,掌握排除故障的技巧。 四、结语 二次配线仿真教学软件的开发,有利于二次配线教学,能为学生提供充分动手的机会;交互性能强大,学生可以自己动手设置各种参数,并及时得到结果,可以灵活地仿真真实环境。通过仿真,学生可以了解真实世界中无法实现的危险性操作。所有的操作均不是现场实施,不会带来危险的后果。仿真软件一般都是独立操作,独立完成,学生必须开动脑筋认真分析问题,从而才能准确地解决问题,解决了传统的教学中学生等待教师给出正确答案的缺陷。仿真软件的操作不存在限制,学生可以海阔天空地想象,进行各种各样的设计,并迅速地通过仿真看到结果。通过仿真训练,学生能充分了解自己所学知识的应用领域、应用前景等,将理论与实践相结合,增强对专业技术的认识,从而激发敬业精神。通过计算机仿真,在虚拟世界中由于错误的操作而产生的安全事故,可以提高学生的警觉,分析故障原因,掌握排除故障的技巧。学生们主观能动性的提高,就意味着教师可以腾出手来做更多的教学工作,或进行有针对性的指导工作。 软件开发专业论文:影响师范院校计算机专业学生软件开发能力的原因分析 摘 要: 影响师范院校计算机专业本科毕业生就业问题的因素有很多,而学生软件开发能力薄弱是关键因素之一。本文结合现实情况,系统地分析了影响师范院校计算机专业学生软件开发能力的原因,并给出了相应的改进建议。 关键词: 师范院校 计算机专业 软件开发能力 1.提高师范院校计算机专业学生软件开发能力的必要性 大学生就业问题已经成为广受关注的社会问题,而在高等院校中发展最快、在校人数最多的计算机专业,其毕业生的就业情况显然并不乐观,尤其是师范院校计算机专业的本科生,面临的就业问题尤为突出。形成这种局势的原因是相当复杂的,关键因素可以概括为以下两个。 (1)近几年国内师范类计算机专业毕业生“供大于求”。十多年来,随着高校计算机专业的发展和生源的扩招,使得计算机教育队伍逐年壮大,而计算机老师的需求量却在逐年减少。近些年,城市中小学计算机老师几乎饱和;而在农村,由于中学“信息技术”课程还尚未正式纳入中考、高考等升学考试的范围,社会各界对中学计算机课程不重视,许多学校甚至尚未开设“信息技术”课程,即使开课,也不聘请专门的计算机老师进行授课。 (2)与工科院校相比,师范院校计算机专业毕业生实践能力差,因此降低了就业竞争力。受已有的培养方案的限制,师范院校计算机专业单纯地培养面向中等学校计算机教育师资,所开设的部分课程与社会需求脱节,培养的毕业生动手能力不强、软件开发经验不足,无法胜任软件开发和计算机应用工作[1],这显然加大了师范院校计算机专业毕业生的就业难度。 师范院校计算机专业毕业生就业难的现状很可能会一直持续下去,解决的方法除了加强社会对计算机教育的重视外,师范院校还必须从自身做起,加强对计算机专业学生软件开发能力的培养,让学生能够具有更强的竞争能力,可以到竞争激烈的人才市场去应聘。 2.影响师范院校计算机专业学生软件开发能力的原因 计算机专业培养学生的目标主要是系统掌握计算机的基础理论,学习计算机先进的设计、开发技术,成为具有良好的综合素质、较强的创新与实践能力的专业人才。软件开发能力是计算机专业学生应具备的重要的、基本的技能[2]。而师范院校培养的计算机专业毕业生软件开发能力普遍偏弱,当然产生这种结果是有多种原因的。 (1)培养方案过时。师范院校计算机专业最初的教学目标就是为中等学校培养计算机师资,所以在教学培养方案中安排了很多与计算机教育教学相关的课程,比如中学教材分析、计算机教学法等课程,这些课程占去了学生很多的学习时间,另外,学生在校期间还要去中小学教育实习几个月,可是最后几乎95%的师范院校计算机专业的学生毕业后并不去当老师;培养方案中严重忽略学生实践能力的培养,很多语言类课程没有安排与之配套的课程设计,即使有,也大多流于形式,没能达到教学目标,学生学到最后根本不知道什么是软件开发,又何来软件开发能力呢?近几年来,部分师范院校对培养方案进行了改革,在计算机专业中设置了非师类专业,然而,培养方案改革并不彻底,依然残留师范式教育的影子。 (2)教师的软件开发水平不高。教师的软件开发水平直接关系到学生的学习效果。教师的软件开发水平普遍偏低,尤其在计算机专业,一般热爱软件开发及开发能力强的人毕业后多半去软件公司,很大一部分不热衷于软件开发的人进入高校当计算机老师,所以目前不少高校计算机专业教师缺乏软件开发经验,甚至很多教师从来就没有参与过一个完整的项目研发过程,就连上课都不能现场编程,只能纸上谈兵,照本宣科,在教学过程中自然难以理论联系实际。教师的软件开发能力不高,必然不会重视学生的软件开发能力的培养,也无法培养学生的软件开发能力。 (3)教学方法老套。教学方法有待改进。大部分老师在教学过程中重理论轻实践。一方面,老师将教学重点放在程序语言细节讲解,忽视实际案例分析,无法调动学生的学习积极性。长此以往,学生对软件开发的意义、框架、方法、思想都难以整体把握,大量平淡枯燥的代码迅速削弱学生对软件开发的兴趣。另一方面,大部分老师在教学过程中忽视学生实践能力的培养,不给学生提供自己动手独立思考的机会,语言类课程的教学,实验课一般完成的多是验证性实验,很少或者几乎没有设计性和综合性的实验,学生在学习的过程中体会不到成就感,当然谈不上动手能力的提高,更不可能对软件开发产生浓厚的兴趣。 (4)考核方式教条。计算机专业课的考核方式深受应试教育大环境的影响,很多院校语言类课程的考核方式都是“平时成绩+实验成绩+笔试成绩”,只是所占比例有些区别,而实验成绩无法评价一个学生的实践能力,笔试成绩更是多半考核学生的基础知识,这种考核方式使得学生重视考试,忽视应用,运用知识的意识与能力较弱。 3.培养师范院校计算机专业学生软件开发能力的建议 综上所述,要想提高师范院校计算机专业学生软件开发能力就要从根本上解决现有的问题。第一,要修订培养方案,将提高学生的软件开发能力作为首要考虑的培养目标,不但要增加学生实践的课时安排,还要主动为学生创造实践的机会,比如安排课程设计,与企业联合,建设实训基地等。第二,要加强教师自身对软件开发的重视,同时要提高教师的软件开发能力。让教师在教学过程中带领学生结合实际情况开发实用的软件,激发学生学习的兴趣,让学生体会软件开发的意义和成就。第三,要改进教学方法,开展目标驱动教学,比如每门课程都有教学任务与实际应用结合紧密的软件系统设计和实现的目标,将学生分成多个小组,然后每次课的实验任务就是让学生运用本章所学的知识去完成本系统的一部分,课程结束后,每个小组的学生都可以收获到一个自己亲手设计和实现的软件系统。第四,要改革考核方式。考核方式不只是有笔试一种,可以采用分组进行课程设计和答辩相结合的方式。 总之,要想提高师范院校计算机专业学生的软件开发能力,就要学校、教师和学生同时行动起来,确定明确的目标,加强软件开发意识,调动学生的积极性,让学生了解软件开发的意义,加深软件开发的意识,参与软件开发的过程,从而提高自身的软件开发能力。 软件开发专业论文:计算机专业软件开发能力的培养策略 摘要:软件开发能力已成为计算机专业学生应熟练掌握的一项重要技能,我院针对当前社会对软件人才的实际需求,制定了科学合理的教学方案。本文介绍了我院的培养策略以及实践效果。 关键词:软件开发;能力培养;教学方案 1引言 随着计算机硬件、软件、网络等信息技术的快速发展,计算机已由最初单机计算为主发展为现在以网络化信息处理为主,功能不断增强,性价比不断提高,应用范围不断扩大,推动信息社会快速发展,因此社会需要大量高质量的软件产品,更需要大量高素质的软件人才。据前程无忧网统计,如图1所示,该网站2006、2007年软件开发相关的岗位总数分别是33653、42177个,对各类软件人才的需求量稳步增长,其中,高级软件工程师的岗位数增长最快,增长了1.6倍,说明市场更加欢迎高级的软件人才,以后企业间的竞争是高级人才的竞争。调查显示,2007年中国软件产业存在至少20万软件人才缺口,并且这个缺口还以每年20%左右的速度增长。IT人才的短缺严重阻碍着中国IT产业的发展。教育体系有跟不上市场需求的危机,因此如今许多IT培训机构的业务非常火暴。 图1 2006年、2007年前程无忧网的软件开发岗位数比较图 计算机专业培养学生的目标主要是系统掌握计算机的基础理论,学习计算机先进的设计、开发技术,成为具有良好的综合素质、较强的创新与实践能力的专业人才。软件开发能力是计算机专业学生应具备的重要的、基本的技能。近年来,软件人才已成为当今社会最紧缺的人才之一,一方面说明当今社会对软件人才的刚性需求,另一方面说明当前高校培养的合格的软件人才数量不足,而我国许多高校计算机专业的招生规模不断扩大,但教学质量并没有提高。主要表现在学生基础理论不扎实、应用型知识缺乏、动手能力不够、自学能力不强和软件开发经验不足等方面,因此必须加强计算机专业学生软件开发能力的培养。信息产业部日前公布的一份软件产业发展规划显示,2010年中国软件产业销售收入预计将达到13000亿元人民币。软件行业期望新的从业人员应该具备以下三个重要特征:①扎实的概念基础和技术技能,从而能够适应不断变化的IT行业;②获得行业实际项目开发所需的技术和经验,熟练掌握编程的核心技能、规范和有关工具;③具有沟通与协作技能以及团队合作精神。下面从教师和学生两方面入手,分别探求软件人才的培养方案。 2教师是教学质量的保证 2.1教师要重视软件开发 目前许多教师重视读学位、写文章,轻视软件开发实践,因为后者不但辛苦,且不容易被大家认可,如在高校评职称时,写一篇普通文章强过开发一个优秀软件,显然两者的技术含量与付出的劳动都不成正比,但从长远的角度看,软件开发有益于教师的科研与教学,如笔者在读博期间研究一种综合算法,需要编写许多软件工具,构建算法实验平台,因此软件开发能力是进行算法研究的前题。 2.2教师软件开发水平有待提高 目前不少教师缺乏软件开发经验,难以理论联系实际,只能纸上谈兵,照本宣书。笔者开发过大量高质量的软件系统,授课时经常结合自己开发过的一些软件项目讲解算法与数据结构与软件工程等课程,有许多经验和方法都是在长期实践中领悟而得,学生对此非常感兴趣,从中受益匪浅。学生不仅学到了软件开发知识,还掌握了软件开发的方法,增强了对软件开发的信心。你若没有编写过大量程序,就很理解面向过程(Procedure-Oriented)、面向对象(Object-Oriented)、面向方面(Aspect-Oriented)与面向服务(Service-Oriented)等软件设计方法的思想并在项目中灵活运用,也无法体会设计模式(Design Pattern)的精妙之处。 2.3改进教学方法 如笔者在讲授Visual Basic(VB)与Visual C++(VC)等课程时,教学方法如下。 (1) 改革课程考核指标 为引导和鼓励学生多动手,加强软件开发实践,在学期初就公布成绩计算方案,如:总成绩=笔试成绩×60%+实验成绩×20%+软件项目成绩×20%。软件开发能力很难用一份试卷反映出来,不仅要考查算法理解与运用的能力,还要考核动手实践的水平。实践证明,通过软件项目的开发,能充分反映学生的综合素质,也能准确全面地了解学生对知识和技能的掌握情况。 (2) 教学初期强调对编程细节的指导 学生尚未入门时,要具体指导,最好用多媒体讲解,教师应现场编程。有些教师担心上课时编程出错,就将程序放在幻灯片上,上课时一闪而过,教学效果不理想。教师现场编程对教师提出更高要求。编程水平是软件开发水平的基础,笔者讲授任何一种语言都是边讲边编程,有时还会结合新算法,自由发挥,考查学生的理解能力,当然编写的程序有时也会出错,通过现场代码调试或查看帮助系统,很快就能解决问题。学生不仅要学习编程,更要学习教师分析问题和解决问题的方法,因此教师编程的全过程就显得非常重要。 (3) 教学后期要加强软件项目的开发 教师可先演示编写一个小软件。现在不少学生喜欢玩游戏,为增强学生的兴趣,笔者就用VB、VC编写过俄罗斯方块等游戏软件,学生们觉得很好玩,于是许多学生都编写了游戏程序,寓教于乐。其实一个小小游戏程序几乎包含了软件开发的所有领域,如系统分析与概要设计、可视化界面设计、游戏规则的算法设计、多媒体编程,也可能涉及数据库或组件设计与编程,如果是网络游戏还涉及网络编程、软件调试与测试、制作软件安装程序、编写相关文档。学习过程中提倡学生相互讨论,互相帮助。现在互联网的信息非常丰富,学生遇到的多数问题都可在网上找到答案,可以说软件开发可以离开教师与书本,但决不能离开互联网。 (4) 课程设计或毕业设计的选题要有现实意义 鼓励或要求学生开发一些真正的软件项目,其原因主要有:①学生觉得更有现实意义;②软件需求更为实际,需要学生实际调研后,整理、分析、总结出用户的真正需求,软件要求相对较高;③当用户使用时,更容易发现软件的Bug和设计的缺陷;④有效避免学生抄袭已有代码蒙混过关。总之,这样更能反映并提高学生的软件开发水平。爱尔兰通过发展教育、培养人才、吸引软件人才和大批跨国IT公司,促进软件产业发展,从30年前的一个农业小国,一跃成为世界软件出口第一大国。最近有一位在爱尔兰的中国留学生曾向笔者请教毕业设计的问题,他说本科毕业设计是开发一个购物网站,技术含量不高,但很实用,经过数月努力圆满完成,可硕士毕业设计遇到了技术难题,设计内容是用Java开发可以操纵手机的PC程序。这个课题很新,也很实用,这也是笔者在江苏省自然基金网上项目评审系统中开发过的一个软件,主要用于联系评审专家,只是我是用C++开发的。该软件涉及到系统底层的开发,如串口通信、手机的AT指今、通信数据包与通信议协的分析与处理、通信内容的数据挖掘与智能处理;该软件还要考虑Java操控操作系统的底层和C++系统向Java系统的移植。这说明了爱尔兰的计算机教育中,毕业设计课题来源于社会,有较强实用价值。 3学生是学习的主体 3.1学生应保持良好的学习心态 (1) 学习是一条漫长的道路 软件开发的学习是一个循序渐进的过程,不可急于求成。现在不少学生不太爱学习基础课程和钻研技术,学习不踏实,总想找些速成的学习方法。一部分学生认为大学里学习的算法与数据结构等课程不实用,还不如就学VB和数据库更能直接派上用场;还有一部分同学瞧不起程序设计工作,还不如学习项目管理,可以管理程序员工作,有地位,工作轻松,收入又高,因此把学校的课程弃之不顾,主攻管理学。前一类的人是急功近利,因基本功不扎实,发展后劲不足;后一类的人是好高骛远,本末倒置,不懂软件开发的项目管理,只能是纸上谈兵! (2) 不要害怕走弯路 软件开发中充满智力与耐力的挑战,如何设计更为精巧的算法,就如同智力游戏。书写、整理软件中的大量代码与文档,没有足够的细心与耐心,就会半途而费。在学习软件开发的过程,经常或多或少会走一些弯路,但这不是坏事,因为以后会有意避免或少走这样的弯路。笔者在软件开发初期就经常走弯路,有软件工具选择不当,如将.Net改为Java;有欲速则不达的,如为简化编程使用现成报表系统,结果有些功能无法实现,最后只好编写近万行代码,开发了通用报表系统;还有技术使用不当,在一些专家的鼓动下使用了一些“最新技术”,殊不知这些最新技术隐藏了许多问题,这对软件系统是致命的,因此软件项目开发与科学研究不一样,不要选用最前沿的最新技术,而要采用成熟的主流技术。 (3) 兴趣是最大的学习动力 如果你对软件开发不感兴趣,整天面对电脑,输入代码,不停思考问题,肯定会无聊和痛苦的。据统计,中国35岁以上程序员只占5%,其中一个主要原因就是当程序员长期从事软件开发时,如果没有兴趣导向,就难以坚持,最终只能选择放弃。而国外许多软件大公司,年长的程序员却很多,主要还是他们热爱这个职业。笔者对软件开发很感兴趣,对每个技术细节总想追根求源,因为理解,学习效率倍增,开发软件的数量与质量也在不断提高。在学习新技术或开发有挑战性软件项目的过程中,会有一种满足感与成就感。当然还要消除学生对软件开发的神秘感,当他完成一项软件时,就会了解软件开发的全过程,且觉得很有意思。 3.3实践为主,注重积累 软件开发是高强度的脑力劳动,不仅要加强理论学习,更要重视实践。只有编写过大量程序之后,才能体会出软件开发的精髓。经验来自实践。软件开发中会产生问题和错误,若能解决好,可上升为经验,而这些经验是书本中学不到的。经验与代码的积累在今后的软件开发中尤为重要,时常会产生事半功倍的效果。笔者在开发软件时,构建了许多类库、函数库与通用组件,如通用查询、报表、动态界面、数据库与Office操作等组件,提高了软件开发的质量与效率。很难想象一个没有任何实践经验与代码积累的程序员可以快速开发出高质量的软件系统,这也是现在不少用人单位要求应聘者要有多年软件开发经验的原因。 3.4突出学习重点 针对学生的兴趣、特长和软件人才预期的需求热点,有选择地学习相关内容。软件知识与技术名目繁多,不可能全部学完、学精,对于需求热点可以查看一些IT人才网,多数技术较为相似,万变不离其宗,学习重点相对稳定,主要有: (1) 精通一门编程语言。从目前网络版软件主要分为C/S(客户/服务器)模式与B/S(浏览器/服务器)模式,前者可学习C++、Java、Delphi(Pascal)、C#等编程工具,后者可学习JSP(Java)、.Net(C#)、ASP、PHP等编程工具。随着互联网快速发展,目前B/S模式占据主流地位,其中Java/ J2EE和.Net人才成为热门。但对于计算机专业的学生,C++语言是一定要学好的,它是许多核心系统的唯一语言。当然Java语言是全球最热门的语言,主要原因是Java具有跨平台、开源、安全等方面的强大优势。 (2) 熟练掌握一门数据库。如Oracle、SQL Server、MySQL,能灵活使用SQL语言和编写存储过程、触发器,并能将它与前面的编程语言相结合。多数系统都与大量数据有关,因此必须使用数据库技术,最好能够掌握数据库的维护与优化技术,以提高系统的性能。 (3) 深入研究数据结构与算法。有些软件系统对性能比较敏感,因此可提出更优的数据结构与算法,从而满足系统的性能要求;它还是研究核心技术的关键。 (4) 学好英语。目前大部分第一手的技术资料都是英文的,且随着外资软件企业与软件外包项目的增多,对英语口语与写作能力提出了更高的要求。学生平时应多看一些英文版计算机教材和英文技术资料,这样可以学习到最新知识与技术,更好理解作者的思想,也培养了英文阅读能力,对以后工作也会有帮助。如不少学生进入外资企业或软件外包公司后,相关资料几乎都是英文的,有时还要与国外客户或技术员开视频会议,发送E-mail等。 如果对MIS系统感兴趣,可重点学习数据库的管理、开发与优化技术;如果热爱网络通信,可重点学习网络通信与安全技术;如果有绘画特长,可选择网页、游戏或软件的界面设计;如果有编程天赋,可重点研究算法的设计与优化;如果想成为软件高级人才,可学习系统分析与架构设计;如果觉得编程水平一般,可从事动态网页设计或软件测试等。然而作为计算机专业的学生,应努力从事较高技术含量的软件开发,进一步拓宽知识面,掌握软件开发技术的全貌,优化知识结构,提高综合素质,这将有益于今后的就业与事业的发展。 3.5加强自学能力的培养 有人认为软件技术发展很快,软件人才被淘汰也快。然而解决该问题的最好方法就是学会如何自学,一门有生命力的技术,其发展必定很快,相关人才优胜劣汰,竞争激烈,如何保证永不落伍,唯有不断学习。如果完全依靠教师讲授,显然是不够的,必须强化自学能力的培养。笔者深有体会,本科是学习物理专业,多数计算机相关课程与软件技术全部是自学而成,对于目前软件技术的学习与研发游刃有余。学习一门新的软件开发工具或技术,笔者通常是先买一本由浅入深的书,再从网上或光盘上找到多媒体教学课件,边看、边听、边想和边练,将重点内容学完后,再找一个相关的软件项目,用该软件工具或技术进行开发,这个过程会发现许多意想不到的难题,通过研究官方帮助与网上的相关资料方可解决,当项目完成时,对学习内容的理解与掌握又深入一大步。据IT168统计,软件开发者学习.NET技术的主要渠道中,自学占69.4%。 4结束语 信息时代的许多领域都需要计算机专业人员,他们不是一般的计算机操作员,而是计算机硬件与软件的研发人员。目前计算机硬件已趋于成熟与统一,而软件的个性化需求却日益增强,存在巨大的市场空间,但对软件人才的要求也在不断提高,因此计算机专业的学生应勇于承担起这样的责任与使命,经过教与学的共同努力,提高学生的软件开发能力,为社会培养出更多优秀的软件人才。 软件开发专业论文:从软件开发过程看高职软件专业方向的设置 摘要:高职教育的目的是培养生产活动需要的应用型人才,其专业方向划分要以职业岗位群为依据。本文依据国际公认的软件工程思想,对软件开发过程涉及的29种岗位加以分析,对高职软件专业方向的设置提出了相应的建议。 关键词:软件;高职教育;专业方向 我国的高等专科教育,从发展历史上可以分为本科压缩型、技术应用型和大众型三类[1]。所谓本科压缩型,是特定历史时期为了多快好省地培养急需的专业人才而设立的教育层次。其教学内容和专业设置完全仿照本科教育,但培养规格有所降低,学制也缩短一年。技术应用型专科是按照职业教育思路举办的教育形式,主要培养应用型人才。大众型专科教育主要包括各类成人教育和自学考试,具有宽进严出的特点。其产生的目的是为了在民众中普及高等教育。随着我国高等教育事业的发展,本科压缩型和大众型专科教育已经愈来愈不符合我国人才培养的需要。另一方面,由于经济的发展,应用型人才出现了严重的短缺。技术应用型专科教育呈现出旺盛的发展势头。这种技术应用型专科教育,就是今天我们所说的高等职业教育(简称高职)。 高职教育不是本科的压缩,其实质是要培养区别于本科的不同规格或者种类的人才,也就是应用型人才。因此,高职院校的专业设置思想必须不同于本科教育。普通高校的专业设置是以学科建设为基础,以基础学科专业为依托,以社会需求为导向,以课程建设为核心;高职院校专业设置是以市场需求为导向,以职业岗位(群)为依据,以技术含量为参数,以学科专业的交叉复合来综合研究专业的设置。[2]本文通过对软件开发过程和软件生产职业岗位的分析,对高职院校软件专业方向的设置进行探讨。 1软件生产过程及参与者角色 软件生产是软件产品形成、交付使用、维护和退出使用的全过程(即生命周期)中所有活动的总称。尽管不同的组织或实践者对软件生命周期中的生产活动的执行方式、先后顺序有不同的观点和做法,但对这些活动种类的认识是完全一致的。这是美国Rational公司在20世纪90年代所提出的统一过程(Rational Unified Process, RUP)理论[3]。 RUP将软件生产活动分为:业务建模、需求、分析设计、实现、测试、部署、环境支撑、项目管理、配置及变更管理。上述活动中,业务建模的目的是分析和理解将要使用软件的组织机构的业务活动,进而导出对软件的需求;需求活动是将组织机构或者个人对软件的需求进行发掘、归纳、表达和管理;分析设计活动通过对软件需求的分析,给出对软件的设计;实现活动将软件的设计转化为可以执行的代码、文件等最终形式;部署是将已经实现的软件形式应用到实际的工作环境中;环境支撑的目标是为软件生产过程提供适当、足够的支撑环境,如软件的开发工具和管理工具就是基本的环境。项目管理的目的是在规定的成本、限定的时间内通过验收。配置和变更管理是软件生产特有的保证质量、提高效率的重要活动。RUP同时归纳出完成上述活动需要以下29种角色――即职业岗位。 (1) 分析人员类:业务设计者、业务模型评审者、业务过程分析员、需求评审者、系统分析员、需求说明者、用户界面设计者。 (2) 开发人员类:软件架构师、架构评审者、封装设计者、代码评审者、数据库设计者、设计评审者、设计者、实现者、集成者。 (3) 测试人员类:测试设计者、测试员。 (4) 管理人员类:变更控制经理、配置经理、部署经理、过程工程师、项目经理、项目评审者。 (5) 其他角色:课程开发人员、图像艺术家、系统管理员、技术写作者、工具专员。 RUP对上述职业岗位的职责、候选者的经验和知识背景给出了详细的建议,这里不再引述。上述职业岗位的划分考虑了一般意义上一个完整的软件开发过程客观存在的角色。在一个具体的软件开发组织或者一个具体的软件项目上,这些角色不一定同时存在。另外,在实际的组织机构中,参与人员的职位名称并不总是与此一致,而且一个参与者通常会同时担任多种角色。但无论如何,这些角色种类对人员素质的要求,对我们思考高职软件教育的专业方向设置具有重要的参考意义。 2高职毕业生适合的软件生产角色 软件生产是公认的知识密集型过程。上一节列举的许多职业岗位的担任者需要深厚而综合的知识背景和较长的实践经验,属于软件生产中的高端人才。高职毕业生不适合担任这类角色。另一方面,尽管软件生产是高技术和知识密集型过程,高职毕业生也可以在其中发挥重要的作用,这是我们办高职软件学院解决软件生产人才缺乏问题的前提。那么,哪一些是高职学生可以担任的角色呢?通过对上一节所列各角色的分析和笔者的实践经验,可以得出最有可能使用高职毕业生的角色及其技能要求如下: (1) 分析类人员。需求说明者:参与需求发掘全过程,负责将需求以适当的方式描述出来,并与涉众进行沟通。要求具备软件工程基础知识,有良好的表达和沟通能力,包括写作能力;熟悉需求描述的专业技术和工具。用户界面设计者:根据用户需求建立界面原型,并对实际实现的界面给出评审和反馈意见。要求具备软件系统的操作使用知识,对需求的理解能力以及界面设计美术基础(不需要具备实现界面的能力)。 (2) 开发人员。实现者:按照项目采用的标准和设计文档要求编写软件系统的构成组件以及对这些组件进行测试。要求能够理解设计文档和标准规范,有熟练的编程技巧和软件测试的知识。集成者:对实现者完成的系统组件进行集成,并对集成活动进行计划和管理。要求同实现者。 (3) 测试人员。测试员:按照测试设计者提供的大纲设置和执行测试,评估测试执行情况,从测试错误中恢复过来。对初级测试者要求具备待测试的应用或系统的知识,具备测试和测试自动化方面的知识,具备诊断及解决问题的能力,当然最好也具有编程的技能。 (4) 管理人员。项目经理:负责项目的资源分配,管理项目运作,负责与客户或用户的沟通,确保项目在规定的时间和预算内完成。项目经理要求具有相关应用领域的经验和软件开发的经验;具有项目管理的专业知识,有较强的沟通能力及领导能力。配置经理:配置经理为产品开发组提供总体的配置管理基础架构和环境,负责日常的配置管理工作。配置经理要懂得配置管理原理,并且最好具有使用配置管理工具的经验或者接受过有关培训。配置经理必须注重细节,讲求原则。部署经理:部署经理负责产品移交工作,并在相关文档中作记录。部署经理要求有部署系统的经验,具备沟通及协调能力,计划性和行动力强。 (5) 其他人员。技术写作者:技术写作者产生最终用户支持材料,如用户指南,帮助文本,发行版本说明等。技术协作者应具备技术写作的经验或受过相应的培训。具备帮助系统开发和网站建设的经验或培训经历。最好具备所写作领域的背景知识。同时还要求有较强的沟通能力。图像艺术家:图像艺术家创建作为产品组成部分的艺术作品。图像艺术家必须有创新设计领域的历练。同时也必须具有相关产品生产过程的知识。相关领域的市场及公关经验对图像艺术家也很有帮助。系统管理员:系统管理员角色维护软硬件开发环境,进行系统管理、备份,等等。担任此角色的个人要求对项目所使用的特定硬件和软件组件以及他们之间可能存在的依赖关系有较深的认识。需要对开发平台的操作系统、网络以及如安全、分布等方面的内部机制有深入理解。解决问题及诊断故障也是此角色的关键技能。 上述11种角色在全部角色中只占了约1/3,但在大型的软件生产组织中,这些角色在生产中的人数比例可能超过50%,在小型的开发组织中也不会少于30%。 3高职软件学科专业方向划分 上述11种角色,可以分为6个有内在关联的角色组。第1组:软件开发人员,主要担任实现者角色;第2组:软件测试人员,主要承担软件测试工作;第3组:系统集成与管理人员,主要包括系统集成者、项目经理、配置经理、部署经理等;第4组:文档写作人员。包括需求说明者、技术写作者;第5组:美工。包括用户界面设计者、图像艺术家;第6组:系统管理员。这六个组别,就是六种就业方向。我们在培养时可以有针对性地在这6个方向上组织教学。如果把培养这6个角色组的专业方向分别命名为软件开发、软件测试、软件管理、技术作家、软件美工、系统管理,根据上一节对角色的要求,我们可以对各专业方向的培养重点给出基本的描述。 (1) 软件开发方向:重在培养学生程序设计的技能,并理解软件生产过程,要求掌握几种具体的软件开发工具(或环境)的使用。 (2) 软件测试方向:重点培养学生的软件测试技能,并了解软件生产全过程,要求学生掌握集中具体的软件测试工具(或环境)的使用。 (3) 软件管理方向:使学生具备软件开发的基本知识,重在培养学生的管理能力和通晓软件管理的知识,掌握管理工具的使用。 (4) 技术作家方向:让学生理解软件和软件产品生产过程,同时具备技术写作技能,掌握有关工具的使用。 (5) 软件美工方向:让学生理解软件和软件产品生产过程,同时具备程序界面和美术作品设计技能,掌握有关工具的使用。 (6) 系统管理方向:重点在使学生对计算机系统硬件、操作系统、网络等方面有深入了解,能够熟练操作和管理相应的软硬件系统。 上面列举的是技术方面的培养要求。实际上,在教学中还要将对学生非技术能力和基本素质的培养贯穿于始终。这包括沟通能力、团队精神、纪律、职业道德等。学生的素质实际上是技术和非技术两方面能力的综合。在制订教学计划时,要考虑既能让学生马上承担实际的工作,也要为他们进一步的学习打下基础。我们可以将用人单位的许多岗前技术培训落实在教学中,同时,也为每个专业的学生的职业发展,制定从初级到高级的路线图。 上述6个专业方向的生源,(4)、(5)两个方向既可以招文科生,也可以招理科生。其他方向主要招收理科学生。课程设置时,如果将全部课程分为公共基础课、专业基础课、专业课三个模块,则全部专业方向共享公共基础课,(1)、(2)、(3)方向和(4)、(5)方向可以分别共享两组专业基础课,系统管理方向要单独设置专业基础课。各方向的专业课程则要根据各自目标确定。 由此可见,本文提出的专业方向设置方案既与现有的专业设置思想吻合,也更加有利于高职院校软件人才的培养,同时对学生再学习能力的发展也有帮助。 4结语 通过对软件开发过程和参与者角色(即职业岗位)的分析,高职院校软件专业可以设置软件开发、软件测试、软件管理、技术作家、软件美工和系统管理等6个专业方向。这6个方向的毕业生毕业后可以担任软件生产过程中适合高职毕业生的多种角色。这种专业方向设置方案不仅与现有的专业设置思想吻合,也有利于高职院校软件人才的培养。 软件开发专业论文:软件开发专业“工学结合”的人才培养模式 摘要:为促进软件开发专业的人才培养和专业建设,根据“工学结合”人才培养模式的现状、特色及我院具体情况,探讨软件开发专业“工学结合”人才培养模式,重点阐述培养模式的实践方案和实践内容,并对我院的实践成果进行简单评析。 关键词:人才培养模式;工学结合;软件开发专业 “十五”期间,我国的职业教育迎来了难得的发展机遇。但是,职业院校的人才培养模式和教学质量仍然无法有效满足经济社会发展和用人单位需求的变化,人才培养质量与用人单位的需求存在差距。高等职业教育如何达到“培养高级应用型人才”的目标,还在研究、探索之中。针对我国应用性高校人才培养的现状,国家提出了要在实践教学、“工学结合、校企合作”、“双证”制度、“订单式”培养等各方面创新人才培养模式。其中,“工学结合、校企合作”的人才培养模式就是将学习与工作结合在一起的教育模式。它是以职业为导向,充分利用学校内、外不同的教育环境和资源,把以课堂教学为主的学校教育和直接获取实际经验的企业工作有机结合,贯穿于学生的培养过程之中[1]。 “工学结合、校企合作”的人才培养模式,不仅能增加学生的实践锻炼机会,更重要的是它能使学生感受到真实的工作场景,学到真正的技能。学生在校内以受教育者的身份,根据专业教学要求参与各种以理论知识为主要内容的学习活动,在企业及公司根据市场需求以“职业人”身份参与所学专业相关联的实际工作[2]。这种教育模式的目的是提高学生的综合素质和就业竞争能力,同时提高学校教育对社会需求的适应能力。 目前,国家积极提倡高等职业教育院校进行“工学结合、校企合作”教学模式的实践和探索,各院校都在致力于找出改革中的重点和难点,建设一批高水平的师资队伍,改革教育教学方法。因此基于“工学结合、校企合作”的软件开发专业人才培养模式的研究与探索颇具价值。 1 “工学结合”人才培养模式 1.1现状 “工学结合、校企合作”的人才培养模式是一种被国内外以培养应用型人才为目标定位的、高等学校所广泛采用的、相对成熟的人才培养模式。它是在人才培养全过程中,以培养学生的全面职业化素质、技术应用能力和就业竞争能力为主线,充分利用学校和企业两种不同的教育环境和教育资源,通过企业与学校的长期合作和双向互动,将在学校的理论学习、基本训练与在企业的实际工作经历有机结合起来实现高素质高技能人才培养。较为国人所熟悉的、对我国高等教育发展有着较大借鉴作用的国外的人才培养模式有北美国家的“合作”教育、英国的“三明治”教育、德国的“双元制”教育、日本的“产学合作”模式、新加坡工艺学院的“教学工厂”模式和澳大利亚的“技术和继续教育学院”模式等。而国内在借鉴了国外成功经验的基础上,也有了上海工程技术大学的“薄三明治”教育、江汉石油学院的“工学交替311”合作教育、武汉理工大学“工学交替,预就业”的“611”教育等人才培养模式[3]。但是,我国目前在软件开发专业尚未形成以职业资格标准为依托,按照“工学结合、校企合作”要求建立起来的完备的职业教育课程标准、课程体系。 1.2特色 1) 人才培养模式突出实用型人才教学改革的难点和重点,以凝练软件学院核心竞争力为目标,敢于面对与企业合作难、共同开发课程难的现实,探索软件人才培养模式改革的路子; 2) 人才培养模式主要以提高学生职业能力为目的、以提高就业率为导向,将不同目标的达成按照不同的教学方法和手段进行。 2推进“工学结合”人才培养模式的基础 郑州大学软件技术学院是河南省唯一的一个国家级示范性软件技术学院,有较好的师资条件和先进的软硬件环境,定位于培养实用型的软件人才,在软件开发专业的教学计划的制定与实施、实训环节的制定与实施、培养模式等方面进行了大胆探索与实践。经过几年的教学运行,在课程体系、课程内容、教师队伍建设、实训环节等方面取得了一定的教学成果。 学院从2005年开始招收软件开发专业学生,学院领导十分重视专业建设。在几年的教学实践中,大家积极地进行教学改革,取得了一定的成绩。主要有以下几个方面: 1) 根据行业发展,调整教学计划。从2004年建院开始,学院每个学期都进行教学研讨会,根据计算机行业发展的需求及要求,聚集全院老师及实训机构相关人员进行教学计划、教学内容、教学方法及实训体系的研讨,探索适合于用人单位的人才培养模式。 2) 深化教学改革,更新教材内容。2007年6月,为了能够紧跟计算机行业,特别是软件行业的发展,学院及河南省其他高职院校的老师与河南省科学技术出版社合作,成立了21世纪高职高专软件技术专业规划教材编写委员会,编写了《Web程序开发》、《Java Web开发》、《面向对象的数据结构(Java版)》等教材。这套教材的出版,有效地解决了高职高专相关教材短缺的问题,为专业教学提供了保障。 3) 开展校企合作,建立校内、校外实训基地。学院有专用实验机房,配备有4 000多台计算机,并配备专职实验员20名,能较好完成学生的实训计划。另外,学院在校内实训基地与校外实训基地上投入了大量的人力和物力,建成了多个条件和设施一流的校内外实训基地,较好满足各个专业学生的实践教学要求。学院通过多种途径与实训机构及企业建立合作关系,包括厦门万策、成都华迪、北京中软、上海达内和郑州慧文等,为学生提供专业能力实践及就业方面的帮助。 4) 重视师资队伍建设。学院软件开发专业具有结构合理、教学经验丰富的师资队伍,很多教师有着丰富的教改经历,对教学有着自己的心得。另外,为适应高职教学要求和本专业教学需求,快速提高教师的教学业务水平,我院不断派出教师外出进修培训。几年间,专业教师参加的各类培训、进修、研讨会共计50人次,通过培训、进修,有效地提高了师资队伍的水平,使教师的教学、科研能力得到了提高。 5) 加强学生实践能力培养。学院软件开发专业自开始招生起,生源一直不错,学生的基础也比较好,学习积极性比较高。为强化学生实际动手能力的培养,学院鼓励学生参加各种大赛,多次获得“挑战杯”等多项国家级大赛的一、二、三等奖。 这些条件为我院软件开发专业推进“工学结合”的人才培养模式奠定了基础。 3软件开发专业“工学结合”人才培养模式的实践 3.1实践目标 通过对“工学结合、校企合作”的人才培养模式的探索,进一步明确软件开发专业的培养目标,在课程体系设置、实训基地建设、师资队伍建设、毕业生就业以及教学管理等方面进行研究和探索,建立一套切实可行、效果良好的职业教育的教学计划、课程体系、课程内容、教学模式等解决方案,提高学生综合能力,尤其是实践能力,为提高学生就业率作努力。具体而言,包括以下几个方面:1) 进一步完善和改进软件开发专业课程体系和人才培养方案;2) 充分利用校内外实训基地,工学结合、校企合作,进行项目化教学;3) 研究适合于“工学结合、校企合作”人才培养模式的教师团队;4) 研究如何对不同的教学内容使用不同的教学方法;5) 提高学生的实践能力和就业竞争力。 3.2实践方案 基于“工学结合、校企合作”的软件开发专业人才培养模式改革,就是在教学团队、教学模式、课程体系、课程内容和实训基地等方面进行探索和实践,为提高学生的综合能力及就业率而进行的改革。为此,我院实施了多项有针对性的措施:在全体教师中明确基于“工学结合、校企合作”的课程教学是高等职业院校课程建设与改革的方向;学院领导对“工学结合”教学改革模式高度重视,多次召开教学改革研讨会,支持教学改革的氛围;选择合理的师资结构从事教学工作,包括专任教师和企业高、中级职称技术人员,为校企双方的合作机制创新研究和实践教学机制创新研究提供充分的技术力量保障;进一步加强与实训机构的合作等。 在多方支持和努力下,我院的“工学结合”人才培养方案出台,具体实践方案如图1所示。 该方案主要包括以下几个方面:1) 重点进行理论准备和文献研究,利用文献研究法,调查和查阅各个院校软件开发专业现有的基于“工学结合、校企合作”的人才培养模式的有关文献,了解各个院校在教学团队、教学模式、课程体系、课程内容和实训基地等方面的改革进展;2) 通过与相关企业及实训机构的合作,进行人才培养模式的创新研究,提出软件开发专业的人才培养模式方案;3) 通过实践及重新的调查修正,制定出合理的“工学结合、校企合作”的人才培养的课程体系和实训计划。 3.3实践内容 郑州大学软件技术学院立足软件开发企业的人才需求,建立软件开发专业“工学结合”人才培养的新模式。具体做法如下:1) 引入社会力量参与学科专业人才的培养。主要体现在培养方案的制定、教学活动的组织、实践指导、就业指导等方面与实训机构及就业单位深度合作。2) 灵活的课程设置。对于软件开发专业第三学年的专业必修课程根据软件专业发展的方向及趋势,及时更新。3) 将学生的实训内容职业化,并在时间上给予充分的保证。学生在两年的基础课程学习之后,进行一个月的短训,使其能够了解软件企业开发流程和规范,为专业必修课的学习打下坚实的基础;另外,在最后一年的实训中,实训内容充实且具有职业性。 近几年的实践主要围绕以下几个方面展开: 1) 专业培养模式的改革。采用3+1的校企联合培 养模式。前三学年教授基础课程及专业课程,主要由校方完成;后一学年为专业方向课程及应用的实践,采用以企业为主,由学校与企业共同完成的模式。 2) 专业课程体系的改革。在前三年的基础课程及专业方向课程的教学中,专业必修的基础课程为两年,改革第三年的专业必修课程,根据软件专业发展的方向及趋势,及时更新适合软件技术发展的专业课程。 3) 专业实训环节的改革。改革专业的实习、实践,增加校内、校外的实训环节。每一学期结束后,进行一个为期二周的课程实训;在前两年的专业必修的基础课程结束后,进行为期一个月的短训;在第三年的专业必修课程结束后,进行为期一年的长训、实践及毕业设计。 4) 专业技能内容的改革。加强学生的基础技能和核心技能的培训。基础技能主要包括专业外语能力、专业应用文写作能力、Java或 .Net的编程能力等。核心技能主要指桌面或Web的设计和开发能力、数据库应用开发能力等。 5) 教学团队的改革建设多样性的教学团队。教学团队中既有专职教师,又有外聘教师,还有一定比例的教师来自于企业。来自于企业的讲师有着丰富的软件开发经验,而外聘教师及来自企业的教师的思想、知识与能力素质本身就具备了“工学结合、校企合作”的特点。 3.4实践成果 我院已对软件开发专业2006、2007级学生进行“工学结合”的人才培养模式试点,并推广到我院所有的本科专业。直接受益人近3 000人。经过几年的实践,取得了较好的成效,具体如下:1) 创新了软件开发专业人才培养模式;2) 建立了适应“工学结合”的软件开发专业人才培养课程体系;3) 制定了完善合理的实训方案;4) 培养了学生的综合能力,并提高了本专业学生的就业率,2006级软件开发专业学生就业率高达90%以上。 4结语 软件开发专业人才培养模式的探索与实践是发展我国软件产业的迫切需要,实践经验证明“工学结合”的人才培养模式具有较强的生命力,可较灵活地构建社会IT 业界所需的专业课程体系,我们相信它必将对新形势下高等职业教育的发展产生深刻影响。 软件开发专业论文:基于VF环境的财会专业学生软件开发能力的培养 [摘要]财会专业的学生在学习会计信息系统这T课时,除了要熟练掌握会计软件的操作,还要知道软件开发背后的原理,并能利用软件开发工具解决具体会计问题。本文借助Visual FoxPro这一工具,以银行对账中“删除已达账”为例探讨了其功能的实现。 [关键词]Visual FoxPro;银行对账;删除已达账;企业对账文件;银行对账文件 1前言 会计电算化人才缺乏是制约我国会计电算化事业进一步发展的关键环节。会计电算化人才可分为不同层次,具体可分为系统操作人员、系统维护人员、程序设计人员和系统设计人员四级,且目前多为层次较低的软件操作人员、维护人员,而高层次的程序设计人员、系统设计人员数目寥寥。笔者认为,高等院校会计信息系统课程的教学目标不能等同专科院校,如果仅仅满足于使用会计软件进行记账、算账和报账等一般性会计工作,将失去和专科院校竞争的优势。 “授人以鱼不如授人以渔”,财会专业学生还应培养其软件开发和维护的技能。培养学生软件开发技能,绝不能照搬20世纪80年代的教学模式,让财会专业的学生花费大量的精力去编程序,而应侧重系统分析和系统设计,通过软件开发技能的培养,让学生知道软件的操作步骤,软件开发人员的思想过程是怎样的。如何在实验教学中培养学生的软件开发技能呢?笔者结合教学经验,充分考虑会计信息系统属于会计学与计算机科学交叉学科的特点,设计了Visual FoxPro环境下“删除已达账”功能的实现这一实验项目。 银行对账即银行存款清查,是指将银行存款日记账的账面余额与开户行转来的对账单的余额进行核对,以查明账实是否相符。不相符的原因通常有两个方面:一是双方或一方记账有错误,二是存在未达账项。银行对账是保证企业资金安全的重要手段,也是财会专业学生必须掌握的专业知识。 大多数商品化会计软件都是用数据库管理系统设计开发的,企业的银行存款信息及银行转来的对账单信息分别存放在后台的两个不同的数据库文件中。银行对账功能的执行,其实质就是在这两个数据库文件中找到相同记录的过程;而银行对账后的“删除已达账”就是将这两个数据库文件相同的记录删除的过程。 随着商品化会计软件功能的逐步完善,相应的数据库也是越来越大而复杂,比如国内常用的用友软件就经历了小型数据库Access、中型数据库SQL Server、大型数据库Oracle这一过程。Visual FoxPro数据库管理系统,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便,易于为初学者掌握。因此,笔者在设计实验时考虑用VisualFoxPro这一工具。 2实验设计 2.1实验目的 (1)培养软件开发的技能,使学生知道如何生成会计软件以及软件开发人员的思想形成过程。 (2)深刻体会Visual FoxPro程序设计中的代码编写与调试运行,学会使用系统给出的错误提示进行分析、判断,不断发现问题与解决问题。 (3)充分理解结构化系统开发方法中系统分析、系统设计、系统实施这三个阶段的关系,深刻认识在数据流程图转化为模块结构图的基础上,如何利用Visual FoxPro工具进行系统实施的过程。 2.2实验原理 以图1计算机银行对账数据流程图为基础,在Visual FoxPro中建立企业对账单、银行对账单两个数据库文件并录入相关记录,并通过运行Visual FoxPro中已建立的“删除已达账”程序,实现删除企业对账单与银行对账单两个数据库文件中相同的记录。 2.3相关的课程知识 2.3.1Visual FoxPro数据库管理软件 (1)利用菜单设计器设计菜单,包括创建一级菜单及其子菜单、创建过程并进行编辑。 (2)利用表设计器设计数据库文件,主要包括建立字段及设置字段类型、长度等,并添加数据库文件中的记录。 (3)菜单的预览、菜单文件的生成并运行。 2.3.2银行对账 银行对账的过程如下(如图1所示): (1)当企业收到银行提供的纸质对账单后,手工录入对账单的信息,系统自动保存在后台的银行对账文件中;当企业与银行联网时,企业通过网络获取银行对账单的信息并直接保存在银行对账文件中。 (2)通过“对账”处理,系统自动将银行对账文件和企业对账文件中的记录进行核对。 (3)通过“输出对账结果”,系统自动输出“余额调节表”“已达账项”“未达账项”。 (4)通过“删除已达账”,将银行对账文件和企业对账文件中相同的记录删除。 2.4实验步骤 2.4.1前期准备 (1)建立银行对账文件和企业对账文件两个数据库文件。包括“科目代码”“账号”“对账单日期”“摘要”“借或贷”“金额”“已达标志”等几个字段。 (2)编写两个数据库文件中的记录,且必须有相同的记录。需要注意的是,执行对账操作后有对上账的(已达账)和未对上账的(未达账)的记录,因此,两个数据库文件中各条记录的“已达标志”字段需分别写入“T”(true)或“F”(false)。 软件开发专业论文:虚拟装配及运动仿真软件开发在专业课教学中的应用 摘要:开发专业课教学中主要机器设备虚拟装配及运动仿真软件,使学生在学习专业课机器设备时更加直观的了解其结构原理,为实际操作打好基础,保证学生专业课的学习更加扎实、有效。 关键词:专业课教学;虚拟装配;运动仿真;开发 职业院校的最大特点,就是培养学生既要有一定的理论知识,又要有较强的实际动手能力。毕业生到单位后能很快适应本职工作,成为应用型的高技能人才。学生实际动手能力的提高主要体现在专业课的教学中,多年来由于受各种因素的影响,专业课的教学效果并不能令人满意。究其主要原因是现有专业课教材中许多装配图较为复杂,有些装配图不仅学生看不懂,新走上教学岗位的年轻教师也感到吃力,这些都直接影响了学生学习专业课的积极性。对此,尝试开发专业课主要机器设备虚拟装配及运动仿真软件,能使学生直观的了解机器设备的结构原理,进而进行虚拟装配,在虚拟装配熟练的基础上带动实际操作,从而改善专业课的教学效果。 一、以前专业课教学存中在的两种倾向 (一)专业课偏重于理论讲解,学生缺乏实际动手操作能力 1.近几年,由于招生规模的不断扩大,学校原有的实训条件已远远不能满足学生实训的需要,本该在实训车间完成的课程,由于实训条件有限,机器设备及其他维修课程不得不改为在教室里进行理论讲解; 2.新老教师交替更新,一些实践经验丰富的老教师退休或调离,许多新的、高学历的年轻教师走上讲台,他们理论功底扎实,但大多缺乏实践动手能力,因此,他们更偏重于将专业课教学改为在理论教室讲解; 3.实际操作耗能耗材,操作不当容易造成机器设备损坏,实训成本较高,在学校教学经费比较紧张的情况下,学校只有压缩这部分经费。因此,本应该在实训车间完成的专业课教学只能在理论课堂讲解,使得原本比较简单的机器设备结构、原理变得复杂、抽象不好理解,许多学生觉得专业课教学枯燥无味,有些干脆放弃专业课的学习。 (二)强调学生动手实践,忽视专业课教学质量的提高 为了改变这种单纯理论教学现象,提高学生实际动手能力,学校将专业课教学改到实训车间或到企业去上,这些做法虽然较前面有一定的进步,但通过实践发现还存在一些不足。主要表现有两点: 1.许多实习指导教师多年来养成侧重于实际操作的习惯,理论讲解较少,在简单讲解完机器设备的结构、原理后,让学生去实际拆装,学生只会机械地模仿拆卸装配,拆卸方法不清、操作盲目。加上学生对机器设备的结构、原理了解得并不充分,学生操作时经常不按拆装程序操作、出现野蛮拆卸,造成有些机器设备在很短的时间内精度严重受损,甚至有些干脆报废,后续班级没办法使用,达不到预期的学习目标。 2.有些学校把专业课学习放到企业进行,但企业是以生产为主,学生实习培训为辅,受生产环境影响,许多专业课的学习在企业得不到保证,使得专业课学习达不到预期效果。 二、虚拟装配及运动仿真软件的开发 针对以上专业课教学中存在的两种倾向,通过计算机辅助绘图软件使用,尝试开发专业课主要机器设备三维虚拟装配及运动仿真软件,使得学生的专业课学习更加直观、形象。 (一)确定开发小组成员及开发项目 开发专业课虚拟装配及运动仿真软件,是一项工作量大、涉及多方面知识的工作,除了要有较强的专业知识外,还要具有吃苦耐劳、勇于钻研的精神,由经验丰富的老师带领部分青年教师组成课题小组并吸收个别基础知识比较扎实的高年级同学参与其中。开发的项目本着由易到难的原则进行,从较为简单的化工管路的管件及阀门开始。如弯头、三通、大小头和管阀、球阀、蝶阀、磁力阀等,在积累了一定经验后,开发化工机器设备的各种泵,前后开发了单级离心泵、齿轮油泵、双吸泵、多级泵、磁力泵、屏蔽泵、往复泵等,在此基础上,对风机、列管式换热器等实习车间现有的机器设备进行开发。 (二)开发过程 整个开发过程步骤如下: 1.制定开发计划。为了使开发工作有序、按计划完成,开发前制定了详细的开发计划。计划包括开发各项目的时间段、主要内容、开发所需工具、量具、具体步骤及各分项目的主要负责人。 2.现场实际测绘。进入现场后,对装配体进行逐件拆卸,为了保证工作顺利进行,对每个拆下的零件编号,然后徒手绘出各零件的草图,对标准件测量其主要尺寸并确定型号,研究每个零件的装配方法并徒手画出装配示意图或装配草图,然后将机器设备恢复原位。 3.在工作室核对草图,对表达不清或尺寸不全的草图再重新核对、订正,对标准件核对型号及尺寸,理顺各草图之间的关系,保证各装配体的零部件草图及标准件、常用件型号尺寸齐全。在此基础上用计算机CAD软件画出各装配体的零件图及装配图(或装配示意图)。 4.根据零件图,用Slid Works软件画出各零件三维造型。在工作室进行二维草图绘制以及三维零件造型。为了提高效率,可将装配体的所有零件三维造型都绘制好以后,再考虑下一步装配。 5.用已经建好的三维零件进行机器设备的虚拟装配,在虚拟装配的过程中对装不进去的零件及时调整,将其尺寸及形状进行修改,然后重新装配。 6.完成装配体的拆卸及装配爆炸图,在爆炸图中分步骤将装配体装配及拆卸步骤逐项交代清楚。 7.利用Slid Works软件的制作动画功能,制作出各机器设备的拆卸和装配动画,在动画中强调拆卸和装配中注意事项及重点,以便引起学生学习时的注意。 三、采用虚拟装配及运动仿真软件在专业课教学中传授知识和技能 开发出专业课机器设备的虚拟装配及运动仿真软件后,配合机器设备的实体,指导教师在一体化教室的授课发生了根本性的变化。首先,指导教师对要拆装的机器设备进行介绍,用三维动画展示机器设备的结构原理,机器设备在在马达的带动下旋转起来,形象、直观、工作原理一目了然,增加了学生学习的兴趣和积极性,学生能够直观的掌握机器设备的结构和工作原理。其次,指导教师演示虚拟拆卸,利用Slid Works创建爆炸图,将机器设备上的零件按正确的拆卸顺序进行虚拟拆卸,在虚拟拆卸的过程中指导教师边虚拟装拆边告诉学生要点和注意事项,为了使学生真正消化吸收,对此可反复演示,(有条件的学校可让学生在电脑上反复练习虚拟装配)。第三,在学生掌握上述内容的前提下,指导教师再带学生到机器设备的实体前,实际演示机器设备的装拆过程。第四,分小组让学生实际装拆,指导教师巡回检查指导。第五,装拆结束后,指导教师及时总结,对存在的不足重新演示纠正。最后,指导教师让学生按正确的方法将机器设备装配好,恢复场地原有布局。 四、开发虚拟装配及运动仿真软件在专业课教学中的应用成效 1.通过开发专业课机器设备虚拟装配及运动仿真软件,有效地锻炼了课题组成员的综合能力,参与开发师生的徒手绘图能力、CAD绘图能力、Slid Works三维建模能力及专业知识和能力都有了显著提高。 2.通过开发和使用专业课机器设备虚拟装配及运动仿真软件,减轻了专业课指导教师的教学负担,学生掌握专业课的情况明显好转,教学成效显著。 3.减少了盲目拆卸和装配,耗材、耗能和零部件损坏情况明显改观,机器设备的使用寿命大幅度增加。 软件开发专业论文:高职高专软件开发专业实训教学方法探索 摘 要 随着近年来就业压力逐年增大,高职高专计算机软件开发专业的学生,要提升就业能力,必须提升自己的专业实践技能。目前高职高专软件开发专业的同学,在实训过程中存在哪些问题,又有些什么好的方式可以解决现在实训中存在的问题,如何通过实训切实提高同学们的实践能力。本文根据作者在高职高专实训教学过程中的经验,对如何提高高职高专实训教学效果的教学方法进行了探讨。 关键词 就业 实训 问题 改革 根据互联网资料显示,21世纪以来,高校计算机专业初次就业率连年下滑,成为社会普遍关注的问题。尤其是软件开发专业的高职类的学生,初次就业率一直不高。①首先学历是高职生就业的硬伤,专科学历无法与本科、研究生匹敌。所以,要提高高职高专学生的就业率,就只有通过提升自己的专业技能,来提升自己的就业能力。如何提升高职高专软件开发专业同学的专业技能,是我们从事这个专业教学的专业老师应该深思的一个问题,尤其是负责实训课程教学的老师,更应该思考,采用什么样的教学方法,才能让同学们更好地掌握软件开发的实际能力,增加同学们的就业砝码。笔者根据自己多年从事实训教学工作的实践,对软件开发专业的实训教学改革进行了一些浅薄的探索和总结,提出了一些实训教学改革的措施。 1 软件开发专业实训中存在的问题 当前软件开发专业实训教学存在的问题主要表现在如下几个方面: 1.1 学生真正实训的时间较少 高职高专的学生,学制一般为三年六个学期,在第一第二学期,进行基础课程和公共课的学习,第三学期开始学习专业课,甚至有些班级第四学期还在进行专业课程的理论学习。高职高专的学生一般在第五学期就要求进入岗位实习,留给同学们在学校实训的时间只有几周甚至更少,在这种情况下同学们进入岗位实习,实际的开发技能很差,对以后的就业也留下了很大的隐患。 1.2 实训教学模式仍为传统教学 在很多课程教学中,专业教师虽然在课程设计上加入了实训环节,但仍然采用传统的教学方式,以教师为中心,没有发挥学生的主动思考和创新能力。②大多数学生被要求按照老师的详细设计思路来完成预设的功能,学生照葫芦画瓢,虽然实现了老师要求的功能,但是学生没有独立思考和创新的机会,整个教学过程学生基本处于盲目的被动状态,时间久了,就缺乏参与实践环节的积极性和主动性。教师在教学过程中采用灌输式教育,很少采用启发式教学方法引导学生进行思考,不利于培养学生的创新意识和主动思考的能力。 1.3 实训内容更新较慢,跟不上软件公司技术更新的速度 计算机软件技术的一个突出特点就是技术更新快,技术种类多,相关技术发展迅速,软件开发实训课程的教学内容要随着时代的发展而不断更新。但是,在实际教学过程中,很多老师总是啃老本,抱着自己的一套技术和框架不放手,总是一招制敌、一招打遍天下无敌手的心态,③几年使用同一套实训案例和项目。有些老师拒绝学习新知识或者主动学习新知识的积极性不够。总是在使用几年前的技术指导学生实训,甚至有些技术已经被现有的新技术代替,在这种实训教学方式教下出来的学生,显然很难顺利走进就业岗位实习。 1.4 缺乏明确的考核方式和标准、考核方式陈旧 实训课程不同于传统的理论教学,一般课程的成绩组成为30%的平时成绩和70%的期末成绩。显然这种考核方式并不适用于实训课程,因为实训课程是同学们参与度很高的课程,并且学习和教学过程更能考核一个同学掌握知识的程度。有些老师沿用一般专业课程的考核方式,或者有些单位限制了平时成绩的比例不能高于30%。这样不利于对学生实际掌握情况的考核,也造成了一定的不公平,会打击部分同学的学习积极性。 2 软件开发实训课程教学改革探索 2.1 培养优秀的“双师型”师资队伍 所谓“名师出高徒”,好的教师队伍,对提高同学们的实践技能起到至关重要的作用,所以必须加强教师队伍的实践技能,才能有更好的师资指导同学们实训。④ 争取更多的机会,让我们的实训老师进入软件企业进行实践、交流、学习。目前大部分的软件开发企业都是使用较新的技术,对软件项目也有较好的解决方案,老师们可以了解并学习最新的软件开发技术,有利于老师知识的更新。 让更多的老师在工作之余和寒暑假的时候,更多地参与合作企业的商业项目的开发,在实习商业项目开发过程中,技能学习最新的开发技术,又可以将部分商业项目的模块和代码作为同学们实训的案例,这样既丰富了老师的项目和案例库,有更新了老师的知识结构。在有条件的情况下,让老师暂时脱离教学岗位,挂职到相应的软件开发企业进行软件开发工作,这样能够加快双师型教师的培养。 2.2 建立完善的考核体系 实训考核要建立包括理论和实践层面的多方面的考核,摆脱三七开(30%+70%)的束缚,实训老师可以根据项目和教学的不同阶段,采取平时成绩+期末成绩+过程考核相结合的多元化考核机制,强调过程考核的重要性,让更多的同学积极参与实训过程,对有创新性的同学给予积极的肯定和评价,同时应在考核成绩上予以体现。 实训课程的考核应该是多元化弹性的考核方式,评分标准要根据实训的项目的实际情况,由实训老师或者课程组协商制定,不应该提供模板或者一刀切的标准。 2.3 改革实训课程的教学内容和教学方法 由实训课程负责人,组织课程组成员,建立课程实训资源库。每学期根据学生的个体差异和知识结构,及时更新实训库的项目和案例,调整实训的内容和案例数量及教学方式。 课程负责人应充分重视和精心设计每一个项目或案例的实训内容,多建立一些实际商业项目的案例,提高同学们学习的积极性。在实训初期,让同学们练习相对容易的案例和项目,增强参训学生的自信心。 在第三学期分阶段加入实训课程,有针对性地加入“JQuery实训”、“数据库项目实训”,也可以在这期间增加规模较小的模拟综合项目实训,为后面综合商业项目实训做好准备。 在实训过程中,也应改变传统的教学方式和思路,教学过程老师教、老师辅导,逐步过渡到老师指导,最后实现学生自主创新。逐步使学生发挥实训的主体作用。项目的实训一般要采用分组的方式,或者直接采用项目的名称来命名分组,同学们的身份也从学生到员工第一次转变,项目组成员的角色也可以用软件公司的职位来命名,比如项目经理、开发工程师、测试工程师等。由能力较强的同学担任项目经理,并在老师的引导下,指导小组成员进行项目的启动、需求分析和设计、计划编制、开发、测试等工作。当做完一个项目完成后,可以在小组内根据组员情况进行角色转换,这样可以让同学们体验不同的工作岗位,提高实训参与度和兴趣。同时也培养了同学们的团队合作意识和相应的职业素养,为日后的工作提前做好准备,提高就业率。 2.4 校企合作、产教结合 学生最终的归宿要走出校园,进入企业,引入同行业的知名企业,对学生的培养和就业都有至关重要的作用。在学生的培养方面,可以邀请校企合作单位的优秀开发工程师,定期地给我们的学生做专业讲座和行业发展及前景介绍,条件成熟的可以邀请研发工程师参与我们的实训教学环节,实行公司化的管理,让同学们在学校就提前感受企业的文化和商业软件的开发流程。 引入商业项目,由我们的实训指导老师带领优秀的学生参与进来,这样能在实际的商业项目中锻炼我们的实训老师,同时也让同学们参与了真实的商业项目的开发。在项目条件允许的情况下,可以适当地给参训学生一定报酬补贴,更能激发同学们参与商业项目的积极性,使我们的实训达到较好的效果。在实训的时候也积累了同学们的开发经验,对以后的就业打下了坚实的基础。 我们学院的合作单位有世界500强企业微软、惠普、埃森哲、富士通等以及国内知名IT企业联想、上海宝信、中软国际、民航凯亚等200多家企事业单位,这些企业能够保证我们校企合作和产教结合的有效进行。 3 结束语 当然,培养学生的创新、实践动手能力,不是实训教师一朝一夕就能完成的,这些改革的措施是否得当,是否能有效提高同学们的专业开发技能和实践动手能力,能否有效提升同学们的就业率和专业对口率。这些问题都需要广大实训教师在实践教学过程中验证,并在实训教学中积极修改不当的教学方法,才能达到预期的效果。 软件开发专业论文:移动互联技术应用于本科游戏软件开发专业互动教学的实践研究 自2013年5月起,哈尔滨信息工程学院开始积极构建相关移动互联网站。除了传统的咨询内容以文字版显示外,学院图书馆移动互联平台也增加了很多新的参考咨询方式:资源使用和服务指南的音视频。同时,为了实现基于移动互联平台的教学资源的互动式教学,我们以2014级本科软件工程(游戏软件开发)专业为试点,进行了实验研究。 1、初步实现移动互联平台上的教学互动 据2014年9月至2014年11月为其3个月的三项初步实验及500余份问卷调查结果显示,移动互联平台上的互动教学活动在本科游戏软件开发专业学习中包含以下三方面优势: (1)符合我院学生的游戏软件开发方面的学习需求。 我院游戏软件开发专业学生在日常生活中有一定的计算机应用基础知识,其求知欲望及学习积极性相对较好,具有较强的设计创新能力和制作能力,对新的学习方式适应较快。 (2)移动互联技术的发展为本部分课题内容提供了较大便利。 学生全部拥有笔记本电脑等移动电子设备和苹果、三星等大屏幕智能手机,而且手机均拥有上网业务,已成为学生学习和生活中必不可少的通信工具。在校园内可以利用学校的无线局域网络,借助智能手机随时随地畅游互联网。 (3)游戏软件开发专业的实践性和图书馆资源优势。 游戏软件开发专业是一门需要掌握大量的基础性软件技术的实践性极强的学科,采用移动互联技术不仅可以辅助课堂教学进行理论知识的拓展和延伸,还可让师生和同学之间的针对各种软件技术和技巧的进行交互沟通、切磋,所以在游戏软件开发教学中采用移动互联技术具有先天的实践优势。 2、基于移动互联平台的游戏软件开发专业互动教学实验初步实施 游戏软件开发专业在课程设置上,从基础的二维设计,循序过渡到功能强大的三维动画设计软件的学习。通过系统全面学习3D 道具、场景设计、角色设计、特效制作等各内容模块,让学生熟悉掌握动漫游戏公司项目开发的整体流程和应用技能。本次教学实验利用移动互联技术的优势,请专业教师把涉及到专业教学的内容制作为图片、视频、动画等学生感兴趣的模块方式,并上传至图书馆移动互联学习平台,在学习过程中以任务驱动方式鼓励学生利用移动互联终端到图书馆资源网站查阅相关资料,进行自主化学习和小组合作学习,在图书馆资源网站提供的交流区域讨论交流,在完成任务后进行总结,并进行学习评价,分享学习过程和结果。 为了更好地说明此次课题实验的具体做法,以游戏软件开发的《三维游戏角色制作》课程为例进行说明,在本节课中移动互联平台上的互动教学分成以下几个步骤进行: (1)教师在图书馆游戏软件开发学习平台中引导学生讨论当下主流流行的三维游戏角色的形象特点和三维游戏角色设计的注意事项,然后提出了跟本节课主题相关的学习任务:要求学生找出自己最喜欢的三维游戏角色,并根据这个游戏角色的特点自行总结三维游戏角色设计的注意事项,积极搜索整理相关数据、事例等资料。 (2)教师把这个任务通过游戏软件开发学习平台给学生,让学生明确任务要求后,围绕任务运用手机、ipad等移动设备及时到图书馆提供的资源网站查阅相关任务资料,也可以通过微信群与组员之间进行实时讨论交流,形成更为完整丰富的答案,同时教师对学生讨论交流的过程也可以进行实时监管,给予学生一定的指导纠正。 (3)在接下来的课堂教学环节中,教师首先邀请两组的代表利用教室的多媒体设备展示自己小组从图书馆资源网站中查找出的三维游戏角色的特点及有关三维游戏角色设计的注意事项的资料并进行课堂讨论。最后,教师采用讲授和课件展示相结合的方式示范三维游戏角色制作的技术技巧,总结本节课的主要内容――如何制作三维游戏角色。 (4)本节课的学习之后,教师将学生的优秀成果和自己的教学课件上传至图书馆游戏软件开发学习平台,供本班学生及其他专业感兴趣的同学下载继续学习消化。 (5)课余时间,同学们可就课堂上没有理解的内容通过图书馆游戏软件开发学习平台随时随地给教师留言请教。教师根据自己的时间安排对学生的问题进行答疑解惑。即进行实时互动和教学辅导。 (6)为了加深同学们理解三维游戏角色的特点及有关三维游戏角色设计的注意事项,教师可以鼓励学生在图书馆游戏软件开发学习平台上分享本节课学习后的心得,如不同类别的游戏角色特点捕捉方法、男女角色制作技巧、动物角色动画技巧等等,并根据课堂上学到的软件知识结合自身特长设计一个三维游戏角色上传到平台,即上传课后作业,教师可根据每个人上传的作业情况进行适当点评和批改,同学们也可相互指点、切磋。 (7)教师同步向图书馆资源平台上传一些相关视频资料、文本资料或者链接网站,供本班学生和其他专业感兴趣的学生可以随时随地进行在线拓展阅览,即资源共享功能。 3、对移动互联平台在互动教学应用的总结及反思 图书馆游戏软件开发平台利用移动互联及数字化学习资源为本科游戏软件开发专业的教学提供了一个连通化、情境化、便捷化、个性化、互动化的软件教学环境,两者本身所固有的特点以及所具有的天然联系使之整合优势明显、效果良好。 在移动互联技术应用于游戏软件开发互动教学实践中同时发现的问题有:学生对所获得的广泛性、随意性的海量信息甄选能力有限,需要教师的再次整理、加工和提炼,才有利于消化和吸收。 诸如这些问题需要在以后的实践中深入研究。 软件开发专业论文:热能与动力工程专业本科生实践仿真教学软件开发与应用 摘 要 研发了一款适合于热能与动力工程专业本科生的实习软件。该软件对工业生产现场实际运行的炉窑进行虚拟仿真,将炉窑结构及关键设备再现,实现了炉窑操作工艺及操作步骤模拟、操作考核等功能。热能与动力工程专业本科生在完成认识实习及“工业炉窑热工及构造”课程的基础上进行本软件的学习,理论与实践相结合,既有助于学生理论知识的巩固,又体现了本专业的特色。 关键词 热能与动力工程 本科生 实践仿真 教学软件 0 引言 对于理工科专业大学本科生,实习环节对其实践能力与创新能力的培养至关重要,也是高等教育的必要环节之一。学生在校所学知识以理论为主,比较抽象,通过实习能够使教育回归实践,让学生在实习中掌握理论知识的运用,使知识变活。教育部《全面提高高等教育质量的若干意见》也特别强调要强化实践育人环节,结合专业特点和人才培养要求,分类制订实践教学标准,增加实践教学比重,确保各类专业实践教学必要的学分(学时)。 校外实习基地拥有真正的生产环境和施工现场,本应是学生规范专业技能和素养的理想训练场。然而,“联系实习单位难”却成为高校面临的普遍困境,其主要有两个原因:第一,高校规模扩大,学生数量增加,对实习场地和实习资源的需求增加,导致大多数实习单位无力接待;第二,企业担心大学生实习影响企业生产及其利益获得。企业经营的根本目的是实现利益最大化,接收学生实习所付出的代价要大于收益,在没有政策鼓励和支持的条件下,很少有企业愿意将资金和精力投入到学生实习工作上。当前,高校联系实习企业往往凭借教师与企业的私人关系,还有一些学校因企业经营状况不佳而失去了原来所建的实习基地。这表明,当前环境下企业接收实习生的积极性不高和校企关系松散的现状,严重影响了高校大学生实习工作的顺利开展,且大多达不到应有的实习效果。 鉴于以上原因,大学生实习质量不能保障,使得中国理工科教育普遍存在的突出问题是工程实践能力不足,动手能力较弱,很难适应迅速发展的市场要求和日益激烈的科技竞争需要。以上种种问题要求进一步推进教学改革,尤其是加强学生工程实践能力培养和训练,以满足行业人才的需要。在此指导思想下,我校热能与动力工程专业教师开发了“本科生实践仿真教学软件”,以期能够提高学生的综合素质。 1 软件的设计目的 目前,本专业的实习基地仅有一两家国有大中型企业,而且都是以参观为主,极少动手实践,这样不仅达不到预想的效果,还消耗企业资源。 鉴于以上原因,决定开发虚拟仿真实习场景,通过将本专业典型炉型和设备用三维软件建立实体模型,结合3D漫游、动画演示、模拟控制等方式实现生产现场的虚拟再现。该实习软件可以增强学生对专业炉型的认识、模拟生产操作、理论考试、操作测试等功能。旨在通过学生对本仿真软件系统的学习,在一定程度上与校外参观实习互相弥补,使学生对专业技能掌握得更加牢靠。 另外,该实习软件将燃料燃烧、炉内气体流动、炉内传热传质、工业炉控制系统等过程有机地结合起来,有利于师生针对炉型进行炉内各动力学参数、热力学参数以及控制过程的模拟研究,为炉型结构优化、控制优化及操作优化提供理论依据。 2 软件的主要功能 仿真软件系统主要包括三部分:认识实习部分、模拟操作部分及考核部分。 软件主要仿真内容包括:(1)以冶金和高温陶瓷行业工业炉窑为主,建立典型炉型的三维模型。以实际生产过程为指导,编制各炉型操作系统。主要包括:二级网络任务下达系统、来料工艺设定系统、上料系统、控制系统、卸料系统、炉体操作系统、安全防护系统、质量追踪系统、炉内热过程模型系统,最终达到各系统协同操作、安全连锁,实现工业实际生产的真实再现;(2)冶金行业工业炉窑系统复杂,实际生产过程中容易出现各类故障。通过收集实际生产过程中工业炉窑运行系统相关故障及对应的处理方案,形成专用数据库,编制模拟生产过程随机故障系统;(3)编制考核系统。定期组织学生学习软件,听取学生意见及建议,并做出相应调整,以获得最好的实习效果。考核系统分为三部分:炉型系统认识部分考核、“工业炉窑热工及构造”课程部分内容理论考核、工业炉窑典型炉型模拟操作考核;(4)编制仿真软件模块扩展接口。以便于教师日后对新炉型添加或新功能的开发。 学校在组织学生到企业参观实习时,企业不会因为学生实习而调整生产,因此,学生参观过程中很有可能看不到工业炉设备的动作过程,再加上生产现场噪音较大,即便是有老师讲解,也听不太清。在本仿真软件的认识实习部分,首先以工业炉各系统、各关键设备实体照片展现给学生,并配有文字介绍,可以通过教师讲解或自学的方式了解各系统、各设备的主要功能及操作要求。其次,以3D模型方式将工业炉窑全系统展现给学生,对于关键设备,软件中做了关键剖视图设计,教师可结合炉体及设备三维实体模型向学生讲解各部分的组成及功能,弥补实体照片不能观察系统及设备内部详细构造的缺陷。除此之外,软件中也包含了一些典型炉型实际生产过程的视频,同样,对于现场拍摄不便于直接观察的炉内情形,采用3D模型及动画方式进行展示,学生可将模拟现场与实际现场进行对比,加强对工业炉窑系统的认识。 学生在企业参观实习是绝对不允许动手操作的。首先是因为学生不了解生产工艺过程,很有可能发生误操作,影响企业正常生产;另外,学生大都不了解各设备的操作规程,出于安全考虑,不允许学生对设备动手操作。在认识实习基础上,生产模拟部分实现了对生产操作的实训,人机交互界面由仿真控制界面和虚拟被控场景两部分组成。仿真控制界面中的图形界面、操作手柄图案、操作按钮等的逻辑关系与生产现场保持一致,既有生产总览界面,又有各子系统分界面,便于学生分步骤练习。生产模拟部分主要操作内容包括:开炉前各系统(各气体系统、循环水、冷却水系统等)准备、各安全设施检查、上料系统上料过程、物料在炉内的运动和加热过程、炉内各部分温度控制、压力控制、卸料系统卸料过程以及生产过程中各系统间的安全连锁、相互配合等。教师结合讲解在软件上进行生产过程模拟操作,向学生介绍各系统及设备性能、各系统间相互关系、操作过程注意事项等,并指导学生进行模拟生产操作。实际生产过程中,可能由于气体压力不足或电压波动等突发情况影响企业的正常生产,在本仿真软件中,也将随机产生常见的生产故障,锻炼学生分析问题解决实际问题的能力。通过进行这一系列的模拟生产现场操作,使学生非常直观地学习工业炉的系统组成及生产操作过程。 在仿真软件的考核部分,设计了三种类型的考核内容,包括:认识学习考核、理论考核和操作考核三部分。该软件可对学生的操作即时给出评判结果,计算机详细记录学生在实训平台上的所有操作,后台实时计算。操作完成后,系统在基础知识、操作步骤、资源消耗、产品质量、产量等多方面进行考核,将操作记录和操作结果分类统计,根据指标评价体系,给出量化考核成绩。 3 软件的应用效果 目前,仿真实习技术已成为国际公认的高效现代化教学手段。结合我校热能与动力工程专业特色及学生的培养目标,我校开发的“热能与动力工程专业本科生实践仿真教学软件”很好地解决了学生下厂实习难、效果差等问题。为加强仿真软件实习的教学效果,采用先仿真训练,再下厂实习的模式。实践表明,对于从未见过现场工业炉窑生产的学生而言,到工厂参观实习前进行仿真集训是非常有必要的。通过仿真软件实习,学生已基本了解工业炉系统之间的联动过程以及生产过程中常见的生产故障问题,因此,再到工厂参观实习时,便能更加准确地了解各设备功能,也有助于学生参加工作后更加灵活运用所学专业知识。 软件开发专业论文:基于自主学习的英语专业听写训练软件开发 摘要:基于自主环境的英语听写训练软件的开发遵循传统的CAI系统设计模式,但要基于实际运行环境,在界面设计、内容模块设计、听写策略培养和强化、学习过程监控和评价等方面综合设计开发,实现其对语言自主学习资源的有效补充。 关键词:自主学习;英语专业;听写训练软件 一、引言 听写作为语言教学中常见的一种辅助手段和测试方法,在各级英语教学中一直被广泛应用,而且在英语专业四级、大学英语四、六级考试中也是重要的测试项目之一。这一具有悠久历史的教学传统长久以来得到广泛认同,被看作一种行之有效的教学方法。虽然曾在20世纪40年代受到可分能力假说理论的挑战,但70年代后,以Oller为代表的语言学家提出了整体语言能力假说,基于大量的语言测试试验及考试数据分析重新确立听写作为“一种实用、有效的综合语言能力测试手段的地位”[1]。目前国内学者对听写的相关研究主要集中在听写能力和语言能力水平的相关性及其对教学的反拨作用和影响听写能力的语言或非语言能力的因素上面。 二、英语听写类型及难点 英语听写的分类一般遵循Oller[2]提出的分类标准,即标准听写(听写者根据音频完整写出文本材料)、部分听写(听写者根据音频填写材料中的缺失文字)、干扰听写(录音中加入干扰背景音,以体现真实感,增加难度)、作文听写(通过记忆写下录音的文本内容)和复述听写(口头复述所听到的录音内容并进行录音)。英语专业四级考试(TEM-4)所设置题型中的听写项目“旨在测试学生的听力理解能力、拼写熟练程度及正确运用标点符号的能力”[3]。根据上述分类,TEM-4中的听写部分为标准听写,即短文听写。而大学英语四级(CET-4)中的听写为复合式听写,是部分听写(单词听写)与听写作文(原句或意思相近之新句)两者的结合体[4]。 张春芳[5]对国内英语听力测试及教学的研究结果表明,英语专业学生在听写测试中所暴露的问题主要包括:(1)听辨音能力弱;(2)未能达到基础的词汇和语法知识要求,导致他们在拼写和检查阶段不能还原正确的句子;(3)遭受母语思维的影响;(4)听写学习策略缺失。其中,邓媛[6]所作的关于学生听写策略的问卷调查表明,缺乏明确的学习计划以及注意力容易受干扰是多数学生在元认知策略方面普遍存在的问题。而在认知策略的使用方面,绩优者善于抓住句子意群和关键词帮助记忆,而学困生的听力理解趋向片段化,短时记忆弱,且易受干扰产生混淆,导致信息输出较为破碎化。同时,在情感策略方面,由于听写能力弱造成的紧张情绪会干扰注意力和记忆力。对自主环境下的听写训练软件开发来说,基于上述研究改善和解决听写学习策略问题对保证训练效果极为重要。 三、基于自主环境的英语专业听写训练软件设计 一般而言,教学软件开发程序要求开发者要先了解基于不同教学模式的CAI系统设计基本策略及目标运行环境,在确定选题和开发方向后选择有针对性的教学/训练模式,先行构思系统总体设计和详细的脚本设计,选择合适的开发工具。教学/训练内容的丰富与否是最终学习效果的重要支撑。在系统调试完毕后,要在教学实践应用中完成评价、修改和推广应用的过程。 基于自主环境的英语听写训练软件要遵循上述程序,注意以下几点:(1)自主学习软件应基于以学习者为中心的模式,在运行环境上要从保持学习者的注意力出发。该类软件能安装在可保证网络带宽但又不与因特网相联的校园局域网或自主学习中心的计算机终端上。(2)学习软件的界面设计应注重教学性、交互性、系统性和艺术性的协调统一。作为教学软件,其界面风格应简洁典雅,主题突出,避免主次不分,并根据需要设计明确便捷而有效、合理的导航标志。(3)内容模块设计应能让学习者根据个人的起点水平选择合适的训练层级,逐渐实现从易到难不断进步最终达到考核要求的目标。(4)重视学生听写策略问题的培养和强化,将其体现在框架设计和内容安排上。元认知策略的建立可以通过软件首页的详细介绍了解各个板块的学习目标,要求学习者根据个人水平和学习时间依次形成各个板块的详细的学习计划。通过“听写技巧”、“单句听写”、“段落听写”、“模拟听写”、“真题听写”等实现听写技巧认知和逐步强化提高。“听写技巧”综合介绍TEM-4听写考核要求及听写技巧,但这一技巧的实际掌握有赖于在后续板块中逐级达成。“单句听写”主要培训学生的听力理解和拼写速度,形成个人特有的单词和符号书写习惯。该板块难度安排较低,有利于建立基础较差的学生建立自信心。“段落听写”、“模拟听写”实现从小段落听写到标准长段落的听写,逐步增加学习难度和实践水平。需要指出的是,“模拟听写”的难度设计建议稍高于“真题听写”。这种设计有利于学生在进行历年真题听写的考前实战环节获得极大的成就感,提升其考试前的自信心。(5)融入现时教学计划,实现监控和评估的有效结合。监控可分为自我监控和他人监控。应当鼓励学生反思、总结和评估个人在各个板块的学习过程和结果,通过学习计划有效保障个人学习活动的自我监控。借助同伴,或将其融入某门当前教学计划中,通过教师的检查监督和答疑解惑保证和实现学习计划的完成。这有助于学生逐渐建立起有效的元认知策略,在各循序渐进的板块练习中掌握良好的、有效的认知策略,提高注意力、记忆力和书写技巧。同时,在此过程中,通过学伴或教师的学习交流活动,实现情感上的反哺能动效应。 四、结语 近年来,虽然智能手机、平板电脑等移动终端及网络技术获得飞速发展,但鉴于我国的国情及基础应试教育的影响惯性,可以预料语言自主学习中心在很长的一段时间内会在学习资源提供和自主学习能力培养等方面发挥重大的作用。商业开发的教学软件和课件在系统性和专业性上具有巨大的优势,是语言自主学习资源的主要组成部分。但任课教师对自主学习中心学习资源的补充更具针对性,更容易将其融入课程教学计划和评估中。两者相铺相成,互为促进,而任课教师作为开发者也会在此过程中发挥更大的作用。 软件开发专业论文:双语教学在软件开发专业中的重要性探析 【摘要】目前我国大学的双语教学是指以两种语言作为教学媒介的系统,其中除母语外的另一语言不仅作为教学媒介部分或全部地运用到非语言学科中,而且在教学过程中,要求学生逐渐基本掌握它,同时要在教学中对该学科的不同文化进行比较学习,以获得该学科先进的、系统的知识,来进行学科教育的一种教学方法组合;强调使用外语于学科教有(但并不排斥母语),在学得该学科先进文化科学知识的同时要学得基本专业外语,这便是目前我国大学双语教学的质的规定性。 【关键词】大学双语教学 学科教育 质的规定性 随着我国经济发展逐渐被纳人全球经济发展轨道,特别是在中国加人WTO以后,中国与外部世界的政治、经济、文化交往越来越频繁,各行各业与国际接轨的步伐逐步加快,我国迫切需要掌握专业知识又掌握专业外语的高素质、复合型人才。培养这种人才是现阶段中国高等教育发展的重要目标之一。为此,教育部于2001年9月颁布了《关于加强高等学校本科教学工作提高教学质量的若干意见》的4号文件,要求全国各高等院校积极推广使用英语等外语进行专业课教学,以墙养高素质、复合型人才,实现我国高等教育的可持续发展。至此,全国开始有不少高校都在尝试、探索着双语教学。但仍面临着许多问题,其中关于究竟什么是”双语教学”就争议颇大。然而,目前国内外对双语教学尚无正式统一的定性,实有必要对我国大学双语教学的本质进行认真分析研究,以统一认识,确保我国高校双语教学的顺利进行,完成培养高素质、复合型人才的任务。 一、国外有关的双语教学定义 在国外,大都采用(bilingualeducation)双语教育的提法,很少采用双语教学的提法。其中较权威的定义有:《朗文应用语言学词典》所给的”双语教学”的定义:”Theuseofasecondorforeignlanguageinschoolfortheteachingofcontentsubjects”译成中文,意思是能在学校里使用第二语言或外语进行各门学科的教学。(双语教育概论)中两位著名专家加拿大的M.F.麦凯和西班牙的M.西格恩提出”双语教学是以两种语言作为教学媒介的系统,且其中一种语言常常是但并不一定是学生的第一语言[1]”这两种定义较好地给出了”双语教学”的狭义(前者)和广义(后者)的定义。 二、我国有关的双语教学定义 在我国目前学校、教师、学生以及各类文件、论文、报刊都采用”双语教学”的提法,这已经成为大家共同认可和接受的,因此,我们都用双语教学的提法。只是由于缺乏相对的语言环境和尚未形成完善的双语教学体制,目前国内各学者对我国高校的双语教学理解分歧还较大,具体概括如下: 1.认为双语教学是一种教学方式或形式 沙丽华、韩德复在《”渗透、整合、思维”梯进式双语教学模式的结构》中认为双语教学是指用汉语和一门外语(目前在我国大部分是英语)作为课堂用语进行学科教学的方式[2]。李红兵在《高校双语教学模式的探讨》中认为双语教学是指对高等学校的部分课程采用国外具有代表性和先进性的原版教材,并采用英语授课的一种教学方式[3]。张培在《双语教学:热点间题的冷思考》中认为双语教学是以两种语言作为教学用语,其中第二语言不仅是作为学习对象,而且是作为教学媒介部分或全部地运用到非语言学科的一种教学形式[4] 2.认为双语教学是在学科教学进程或过程中使用双语当作教学手段 何全旭、吴为民在《关于开展双语教学的几个问题》中认为双语教学是指除汉语外,用一门外语作为课堂主要用语进行学科教学,目前绝大部分是用英语;教师还应利用非语言行为,直观、形象地提示和帮助学生理解教学内容,以降低学生在英语理解上的难度[5]。施敏颖在《关于在高校中实施双语教学的几点看法》中认为双语教学是指在教学进程中使用母语及一门外语[6]。任长虹在《高等学校实施双语教学的现状分析与对策》中认为双语教学是指在教材使用、课堂讲授、期末考试等教学环节同时使用外语和汉语两种语言的教学活动[7]。刘钦永在《关于双语教育和双语教学的思考》中认为双语教学是指教学中使用外语或非本民族语言进行教学的进程[8]。 3认为双语教学是一种语言教学 张谦在《关于建立双语教学型大学的论证与思考》中认为双语教学是母语和一门外国语的教学,或称之第一语言和第二语言的教学[9]。冯保才在《关于学校实施双语教学的探索》中认为双语教学是指一种语言学习的方法,指在校内同时使用母语或第二语言进行教学,主要目的是学习和掌握主流语言最终能用主流语言顺利进行各科学习[10]。邱辉忠在《化学教学中实施双语教学的思考》中认为双语教学是指将学生的外语或第二语言,通过教学和环境,经过若干阶段的训练,使之能代替,或接近母语的表达水平[11]。 4.认为双语教学是一种教学方法或教学模式 磨玉峰在《浅谈我院管理专业双语教学的发展》中认为双语教学是指非外语专业学科使用外语和汉语讲授本专业学科的一种教学方法,以用英语为例,包括使用英语教材、用英语版书、用英语布置作业、用英语命题以及使用英语口授等形式[12]。冯妍卉、格欣欣在《传热传质学”课程双语教学计划的研讨》中认为双语教学是指非外语课程利用母语和外语两种语言讲授的一种教学方法[13]。郑定阳在《实行双语教学的初步实践与思考》中认为双语教学是指非外语课程采用外语讲授的一种教学方法[14]。张维佳在《双语教学的性质、条件及相关问题》中认为双语教学是指教师在学科教育中交互使用本族语和外语甚至完全使用外语进行教学活动,以满足学习者的工具型的学习动机(instnunentalmotivation)和融合型的学习动机(integrativemotivation).通俗的讲,所谓的双语教学,就是用两种不同语言进行学科教育的教学活动,一般是指在用母语进行部分学科教学的同时,用非母语进行部分或者全部非语言学科教学的教学模式[15] 三、我国高等学校的双语教学的本质 分析以上十多种双语教学的定义,可以看出,尽管它们是从不同角度出发来解说双语教学,虽各有偏颇,但不难发现它们几乎都有一个大致基本点,那就是都强调使用外语于学科教育(但并不排斥母语),在学习该学科先进文化科学知识的同时要学得与学科发展相关的基本专业外语。这个基本点就是双语教学的质的规定性,是我国高等学校的双语教学区别其他国双语教学的根本特征,这就是我国高等学校的双语教学的本质。 总结归纳出我国高等学校双语教学的质的规定性,再对其下定义就清楚多了。根据我国高等教学的实际情况,笔者认为目前我国高校的各学科双语教学应理解为:是指以两种语言作为教学媒介的系统,其中除母语外的另一语言不仅作为教学媒介部分或全部地运用到非语言学科中,而且还作为学习对象,要求在教学过程中学生逐渐基本掌握它,同时在教学中要对该学科的不同文化进行比较学习,以获得该学科先进的、系统的文化知识,来进行学科教育的一种教学方法组合。这里需要指出的是高等学校双语教学之所以被称之为一种教学方法组合,是因为它的构成离不开常用的教学基本方法〔如讲授法、练习法等),且具有自己独特的方法结构(如必须有语言引导课等)和新的教学功能(学得专业知识技能又学得专业英语)。这种提法函括了目前我国高等学校双语教学的目的与任务,有着当今时代的鲜明特征,是较有现实意义的定义。 总之,只有真正理解目前我国高等学校的双语教学本质,才能保障我国高等学校双语教学实施的顺利进行,完成我国高等学校学科双语教学的目的与任务―培养出高素质、复合型的人才,以应对”人世”的机遇与挑战。
随着现代技术的发展,我们也逐渐进入了信息化时代,计算机也逐渐进入了人们的生活,人们对于计算机的使用也越来越熟练。计算机的使用给人们带来了极大的便利,它解放了人们的双手,使得人们的工作效率从极大程度上得到了提高,目前的生活、工作都离不开计算机的使用。当然任何东西有利就会有弊,由于计算机使用的过于频繁就出现了一系列的问题,这些问题也是急需解决的,如果这些问题得不到解决,使用计算机的意义也就会大大降低。所以,我们需要将一大部分的精力放在计算机的软件开发和应用上,不断地去提高这些软件的使用效率,让计算机的作用得到更大的发挥空间。 1软件中分层技术的阐述 1.1分层技术的简述 实践是检验真理的唯一标准,因此计算机的软件研发是需要不断地进行实践的,这样才能找出最复合大众的软件进行使用。大致可以用两点来概括,一个是字面上的意义,另一个就是在计算机软件开发中的意义。从它的字面上看就是具有多个分层,这些概念层可以用于解决不同的问题,从而形成一个比较完整的系统,让每一层都可以很好的解决自己相对应的问题。而在计算机的软件开发中,分层技术在最开始是单层结构,在单层结构中应用最为广泛也是发展最为迅速的就是小型的数据库。随着小型数据库的使用越来越频繁,出现了计算机和服务器之间需要建立对应的联系,因此就出现了后来的双层结构,它也是现在我们应用的比较多的一种结构。双层结构的出现解决了很多需求,但是在使用过程中也逐渐显现了它的弊端,这让更多的从事软件开发工作的人认识到要想满足当前甚至未来的计算机软件的发展需要,仅仅是双层结构是不够的,因此三层和多层结构就逐渐地被研发出来,也逐步的应用到软件开发的过程中,这也将在未来的软件开发中占据主要地位。 1.2分层技术的特征以及可行性 随着网络技术越来越多的应用,计算机的使用也在明显的增加,所以我们要不断的对于计算机进行开发,让软件的使用效率最大化,要想做到这一点就要充分的借助分层技术。计算机软件结构的依托关系主要就是通过分层技术来体现的,因为在开发一个软件时,有时候需要的不仅仅是一种功能,而是多种功能同时进行的,这时候分层技术就体现了它的优越性,在分层技术的支持下可以让软件同时拥有多项功能,这样就可以同时满足人们的多种需求。分层技术的特征主要是可以对计算机的软件进行拓展,还可以按照软件的多种功能进行针对性的扩张,简化系统,让计算机的升级加速,这样就可以自由的更改上层与下层。分层技术应用在软件开发中可以让软件很稳定的运行,大大提高软件开发的效率。相对于双层来说,多层的好处就在于它能够在计算机的整体性能的提高上面发挥到更大的作用,保证软件质量和性能。 2分层技术在计算机软件开发中的应用 信息时代不断在发展,计算机的应用也越来越广泛,逐渐达到了一定程度上的普及,因此而产生了一些人际需求,这也迫使计算机软件的功能需要不断地拓展以满足大家的需求,其中分层技术在计算机软件发展的同时也得到了一定程度上的发展。分层技术应用于计算机软件开发中是一种大趋势,由于计算机在工作时受到了分层技术极大的支持,正是因为分层技术的应用才使得计算机软件功能越来越强大,也越来越能够为人们的生活以及工作提供便利。计算机软件的系统能够进行分层是基于物理硬件和底层的构件之间的关系上的,对于软件整体而言就是要不断地对自己的软件进行优化处理,从而让上层和下层之间相互依赖,使软件系统可以实现一些功能。想要让这个软件在质量上达到一定的高度就一定要提高分层技术的稳定性。 2.1双层结构技术的应用 在双层技术中,构成流程的两个主要的部分就是服务器于客户端,服务器的主要作用就是接收客户端的信息,在已有的数据库中进行查找、计算,最后把结果反馈给客户端;而客户端的作用就是为用户提供使用的界面,处理一些逻辑关系。这种利用双向数据计算的关系可以在用户少以及服务器具有充足的时间来运算时可以发挥出比较大的作用,但是遇到用户多且没有充足的反应时间给到服务器时,这样的技术就没有多大的作用了,甚至会带来不好的效果,为用户带来不便。 2.2三层结构技术的应用 三层结构是在双层结构的基础上进行的拓展和延伸,它是在服务器和客户端的基础上加上了一个应用服务器端,使得系统的工作效率得到提高。应用服务器端的主要功能就是将原本属于客户端的逻辑关系的处理移至本端口,让客户端只将为用户提供使用界面做好,提高用户的人机交互的使用效率。三层结构主要包括界面层、业务处理层和数据处理层,界面层的功能是收集用户对于软件的功能方面的需求,再将其传达给业务处理层;业务处理层的功能是对收到的用户需求进行分析后向数据处理层提取数据,经过处理之后将结果反馈给界面层;数据处理层的作用就是接受到业务处理层的申请后对数据库中的数据进行查询发送给业务处理层。这样用这三个结构之间的分工合作来达到降低系统的数据分析、传输的工作量。从而提高工作效率的目的。三层结构虽然具有很多的优点,但是在实际的应用中还是要根据实际情况将双层技术和三层技术进行有机地结合,已达到用户的需求。 2.3四层结构技术的应用 计算机运算的应用环境在web技术迅猛发展的情况下也越来越复杂,各种需要处理的数据和逻辑关系也越来越多,并且现在很多客户对于数据处理的速度、准度等要求也越来越高,这时显然三层技术已经不能满足这些需求了,所以就产生了四层技术。四层技术就是在三层技术的数据层和业务层之间添加了一个封装层,从而形成了一个由存储层、业务层、数据层、web层构成的四层结构。web层的主要作用是可以根据用户的需求来选择适合的处理路径,对于各种情况都可以选择最优的处理方式。虽然四层技术在目前还没有得到广泛的应用,但是根据它强大的功能可以预见未来将会有很多的应用面的。 2.4五层结构技术的应用 其实现在在一些比较特殊的领域,有的软件开发人员已经在四层结构的基础上在研发更高配置、更强大的功能的技术了,他们通过将数据层分解呈集成层和资源层的方式来进一步地提高系统的工作效率,它能够满足一些特殊机器的一些特殊要求。这种技术虽然能够解决一些特殊问题,但是毕竟它的应用仅仅局限于特殊领域内,所以没有被人们广泛地使用。 3结束语 总而言之,在这个计算机技术发展如此迅猛的时代,计算机的使用上也出现了一些问题,但是我们会一直坚持寻找解决问题的方法。软件的开发也有被计算机软件技术的发展刺激到,使得分层技术在软件的开发中起到了极其重要的作用,传统的双层结构还是不能满足现在的需求,通过对比之后,多层结构还是具有很强的可扩展性和安全性的。如今不论是何种行业的发展都是离不开计算机的,所以计算机的安全问题也是值得我们关注的,不能让一些不法分子有机可乘。
随着我国先进科学技术的不断进步,在计算机行业我国的软件开发技术也取得了实质性的飞跃,计算机软件则作为一种计算机基础配件,逐渐走到了家家户户,在方便人们日常生活的同时也丰富了人们的日常生活。但是,由于客户的需求逐渐增加和提高,计算机软件技术的开发工作也需要面对很多的问题与困难,以促进计算机软件的升级、满足人们的个性化需求。研发人员面对着复杂的软件框架与研发环境,分层技术的升级与有效应用就是软件研发人员急需思考的问题。 1计算机软件开发中分层技术具有的优势 在计算机软件开发的发展过程中,可以发现分层技术在其中占据着非常关键的地位,分层技术经过最原始的双层技术一直发展到现在的五层结构。由此可见,在分层技术的发展历程中分层技术始终在计算机软件开发中得以应用的重要原因即分层技术本身具备其他技术无法比拟的优势,以下就分层技术中的3点优势进行分析。 1.1软件研发效率不断提高 计算机软件的研发本身就是一个很复杂的过程,在这个过程中,涉及到的学科较多、对内容的覆盖面较广,因而对软件研发工作者的专业水平与综合素质低而要求较高,且离不开对每一个环节的精心设计。传统的研发技术在计算机软件技术开发中的应用,是将其中的每一个环节逐一完成,以此来将整个设计完成,因而整个过程所需要的时间较长。而分层技术刚好不同于传统的研发技术,该技术突破了原有技术的限制,充分结合现代新兴技术,软件研发系统进行全面优化,以促进软件研发的顺利进行。分层技术对软件研发中的每一个环节以及不同层次间关系进行合理优化,这样不仅可以缩短软件研发的时间周期,还可以提高软件研发的效率。 1.2增强软件的拓展性分层技术 通过软件设计后在软件开发中得以应用,因而设计好的软件本身自带立体化、多层次的特征,在不同的层次中都有独特的处理形式,进而实现对各自问题的处理。 1.3可实现端口的完美对接 分层技术为计算机软件研发提供便利的基础是通过该技术实现对接口的自定义,然后利用自定义后的接口实现同端口的完美对接,该优势在软件开发中的操作是比较简单的。所以,在对不同的层次进度升级或调整时,只需要对本层次或是本层次的上下级进行升级与调整,从而简化了升级流程。正是因为这一优势,通过分层技术设计后的软件,可以根据自身的需求对其进行改变,以提高软件的综合性能,同时也赋予了软件运行很强的拓展性。 2分层技术在软件开发中的应用 在新时展的今天,分层技术逐渐在计算机软件开发中被普遍的应用。同时,分层技术在未来的发展过程中,将在其中占据举足轻重的地位。在计算机行业,软件开发的根本目的是符合人们对计算机软件提出的新要求与标准。故计算机软件的研发技术应该在发展与应用中不断地对其进行优化与完善,以缩短研发周期,加大对软件的检测力度,进而使得软件质量不断提高。当前的应用情况是以双层技术为主,三层技术与四层技术被应用的情况也比较多,但是五层结构只是被应用在某些领域。 2.1双层技术 在计算机方面,双层技术是软件开发中最原始的技术,该技术由客户端与服务器两大部分组成了计算机软件开发的框架。在软件开发应用中,客户端扮演的角色主要是将计算机的操作画面直接呈现给用户,或者是接收服务器传输的数据信息、处理其中的其他指示与逻辑关系。服务器扮演的角色是给客户端提供操作结果,是在服务器接收到传送来的数据信息之后,利用数据库对相应的信息进程查询、分析、处理等步骤,然后将最后的结果再次返回客户端。由于双层技术的组成比较简单,因而其中运行的原理也是显而易见且具有很强的操作性的,因为数据信息是在客户端与服务器之间传递的,在用户少、服务器性能优的基础上,数据信息的传递与处理就会体现出高于平常的效率。但是,由于用户量的不断增加,双层技术在对数据信息的处理效率会随之不断降低,同时也对该技术提出了更高的要求。如果技术不进行升级,必将导致整体系统出现反应慢、容错率较低的问题,这就会使得客户的数据信息得不到安全保障。基于此,分层技术在计算机软件开发中的应用不得不向三层技术的方向进行升级。 2.2三层技术 从计算机软件开发的发展规律的角度出发,三层技术是以双层技术为基础,经过升级发展而来的。三层技术在双层技术前提下,增加了处理层,并利用处理层对客户端传来的数据信息进行处理,然后再将其传给服务器。在三层结构中,将服务器中的处理功能转移到了处理层中,由处理层完成数据的处理以及存储。随着分层技术在计算机软件开发中的逐渐发展,由于处理层在其中的使用,不仅分担了服务器处理数据信息的负荷,而且在一定程度上降低了服务器的资金投入,进而提高了三层技术在计算机软件开发中的性价比。三层技术包括了数据层、处理层以及业务层,用户可以直接通过处理层与计算机系统进行联系,也可以利用处理层对客户端的建议与请求进行处理;数据层的作用功能是实现对数据信息的存储;业务层可以清晰地表示出不同业务之间的逻辑关系。这3个层次的有效结合虽然存在一些缺陷,但是同双层技术相比性能与功效在多方面还是具有不小的提升。 2.3四层技术 在计算机软件开发技术的应用阶段,四层技术以双层技术为基础,三层技术的延伸与升级。由于计算机软件开发的难度系数较高,因此双层技术与三层技术已经很难满足计算机软件开发的技术要求。因此,计算机软件开发人员应该及时地将三层技术中的数据层、处理层以及界面层三者之间的关系与界限科学地划分出来,以降低计算机软件中3个层次间在运行时的影响,以促进软件开发技术从三层技术向四层技术的完美升级。也是因为这样,四层技术中必将会包括三层技术的一部分,其中有数据层与处理层,同时四层技术的应用也增加了一部分三层技术所没有的内容,其中包括存储层与Web层。在四层技术中处理层被用来处理数据信息在Web层传输的结果,也可以被当做Web层与数据层之间联系的桥梁,以确保数据信息传输的准确性与稳定性。数据层在四层技术中作为存储层与数据层两者之间的联系的载体,通过隐藏在数据层中的代码,以方便计算机对数据层中数据信息的准确反映。数据层也可以将数据层与计算机之间的关系进行整理,在计算机软件解决数据层关系与对象之间的存在差异也发挥着不可替代的作用。 2.4五层结构 计算机软件开发的专业人士已经将四层技术发展为五层结构,并在一些领域得到实际应用,五层结构是以四层技术为基础,在此之上将数据层又分为了集成层与资源层。这样的划分与升级,使得计算机软件开发组成的划分更加明确,完全突破了传统的分层技术。五层结构中包括了集成层、资源层、存储层、逻辑层以及Web层。这五层结构在软件开发中的实际应用,不仅可以提升软件研发的效率、缩短了软件研发的周期,而且也促进了软件开发系统向着更加规范的方向发展。同时,由于五层结构的划分精细,因而对于一些特殊设备也能够达到使用的标准,进而促进软件技术的研发速度。不过,可惜的是五层结构在软件开发中的应用较少,只在很少的专门行业中得到了应用,可见五层结构的普遍应用还需要我们后期的推广与宣传。 2.5中间件技术 将中间件技术单独地提出来进行分析,是因为该技术本身具有的特殊性,中间件技术的本质是软件程序,在计算机软件开发中起着管理网络通信与计算机数据信息的作用,进而可以将其添加到服务器与客户端间。又因为中间件是独立存在的平台,所以,在其他结构出现问题时,该平台不会受到影响,或者暂停服务。加上中间件技术在计算软件开发中的应用,可以在很大程度上提高软件开发以及后期的运行效率。 3结语 分层技术在计算机软件中的应用,在提高计算机本身运行系统的稳定性的同时,也进一步优化了计算机软件系统。因此,分层技术在其中的具体应用,一方面可以提升计算机软件的开发效率,以确保软件循环的使用周期,另一方面也可以节约软件开发的资金投入,以推动计算机软件开发技术的进一步发展。
软件开发项目成本控制探析:关于软件开发项目成本控制的几点思考 摘要:软件开发项目的成本控制工作作为一项综合性管理工作,如何把成本控制在合理预算范围内,事关企业经营的成败。本文将对软件开发项目中成本控制的影响因素进行分析,探讨成本控制存在的问题,并思考其相关策略,以供读者参考。 关键词:软件开发;项目成本;控制;策略 一、软件开发项目成本控制的影响因素 (一)事前控制 事前控制是项目成本控制的前提,切实做好项目事前控制工作才能防范于未然,才能实现企业项目成本控制目标。 ①需求控制:在软件开发项目中,开发者大多都不清楚消费者的重点需求,使得软件项目未能达到预期目标,因此企业在项目需求阶段重视度不足,需求理解偏差,导致开发产品不能适应消费者需要,进而在不断更新的产品迭代中使得项目开发成本随之大幅增加。②项目设计:开发项目设计是成本控制的关键,产品设计的可当性事关客户需求,如若项目设计的不合理则会导致产品研发成本增加,使得消费者需求发生变动,进而不利于推进项目设计。③项目预算:在常规预算的基础上考虑到国家对软件行业的政策:开发新技术、新产品、新工艺发生的软件研究成本,所得税成本加计扣除150%,前期做好研发加计扣除的备案工作。这样常规成本预算与软件行业的特殊性两者综合性控制成本。 (二)事中控制 事中控制是项目成本控制的关键,通过及时反馈项目执行情况并做出相应调整,以实现项目成本控制目标。 ①质量控制:项目质量贯穿于设计、开发的全过程,主要从保证措施和故障维护两方面影响项目成本。在排除产品故障成本和提高质量成本上两者呈现矛盾关系,项目质量越差,其故障排除成本也越低,则后期维护成本也随之增加,导致的后期损失也越大;反之,如若前期项目质量越好,其前期故障成本会增加,但后期故障维护成本亦会随之减少。②需求变动控制:由于在需求调研的不清晰,随着软件开发的深入,才发现需求已经发生了变动,被迫完善需求方案,使得项目成本增加。有效进行需求变动控制是项目成本控制的重点,企业应及时与客户进行沟通,并有相关评估人员测定可行性,计算其相应成本,以便迅速根据客户需求变动做出相应调整,保证项目成本控制在合理范围内。③工期控制:在软件开发过程中,工期的长短对项目成本有重大影响,甚至超长工期引起的超成本会导致研发的中断,给企业带来巨大损失。比如缩短工期,便需要投入更多的人力资源成本,以此才能保证相应的项目质量;而由于工期的延误又会引起客户不满,导致巨额合同索赔,严重增加项目成本。 (三)事后控制 在软件开发过程中,由于各种因素会导致项目成本的增加,而对于其成本超支问题,应采取相应措施并不断更正,使得项目成本始终控制在合理范围内。同时,项目审计监督应贯穿于软件开发的全过程,贯彻预算执行审计和成本核算审计,并逐步建立健全项目预算管理体系,增强预算审计的约束力,以此保证预算执行活动的规范化和合理化。 二、软件开发项目成本控制存在问题 (一)项目成本管理体制的问题 当前国内大多软件开发企业的项目成本控制管理体系并未将权、责、利结合起来,只是简单的将项目成本管理的责任归咎于其主管部门,缺乏一套完整的成本管理体系,使得项目成本难以合理控制,让企业蒙受财务损失。 (二)质量成本控制的问题 国内企业尚未充分认识到质量和成本间的辩证关系,只是简单的将成本和质量放在对立面,大多项目开发经理在成本约束较少的情况下,单纯强调产品质量,缺乏对项目成本的关注,使得质量成本增加。而在成本约束的前提下,大多又单纯追求经济效益而忽视了产品质量,使得额外维护成本又随之增加,对企业信誉造成不良影响。 (三)工期成本控制的问题 工期成本是在实现项目工期目标的条件下引起的项目成本费用变动,软件开发企业能否按时按量完成合同约定事关工期成本的额外费用。国内企业虽然在工期时长上有着明确的规定,但却很少深入分析工期长短于项目成本间的关系,缺乏对工期成本的重视度,对工期的普遍认识是越早越好,使得盲目追赶工期进度而忽视产品,造成额外成本的增加。 三、项目成本控制的相关策略 (一)建立权责利相结合的成本控制机制 项目成本计划的编制与执行作为成本的控制指标,是项目成本考核的重要依据。对企业员工的工作任务和工作职责做出明确的界定,并结合其奖惩考核机制,有效建立起权责利相结合的成本控制机制,并明确各级责任方和责任人,从制度体系上对项目成本进行综合性控制,才能从根本上控制项目成本。 (二)加强对项目全过程的监管和控制 首先是要加强对开发决策阶段的成本控制,作为项目成本的首先环节必须加强对其的分析与调研,综合考量各方因素方可做出判断与选择,因为它决定了产品的研发方向和企业经营的成败。其次是要加强需求分析的成本控制,需求分析是技术人员对市场的需求进行分析,并科学评估相应项目的可行性,以此合理控制项目成本。最后是应强化需求变动控制,相关部门应及时反馈市场需求变动信息,并做出相关风险评估和合理化预算变动,以便实时做出适当性调整以适应市场需求变动。 (三)增强项目成本动态控制效率 在动态成本控制中必须结合企业发展实际,加强对企业既定资源的利用效率,在保证项目进度和质量的前提下,及时对项目成本进行有效的跟踪、分析、控制,以便有效降低项目成本,提高企业经营利润,增强其市场竞争力。 (作者单位:东冠集团有限公司) 软件开发项目成本控制探析:探析软件开发项目的成本控制对策 摘要:在软件开发所具有的特殊性决定在其成本控制过程中也具有一定的特殊性,而怎样应用其所具有特殊性做好软件开发成本控制,在信息产业相关领域的成本管理中是一个重要的课题。基于此,本文主要对软件开发的项目成本中存在的影响因素进行分析,探讨软件开发的成本控制措施。 关键词:软件开发 成本控制 对策 与传统的产品生产及工程项目等相比较,软件的开发项目具有的特殊性较为典型。其在研制过程中和生产密不可分,而产品的成功研制代表产品的生产能够基本实现,所以在软件的开发项目中,其整个开发过程都可作为设计的过程,无需投入大量物质资源,主要的核心为人力资源,并且软件开发产品主要以技术文档及程序代码为主,并无其他物质成果。此外,软件产品是一种纯知识的产品,在开发的进度与质量中难以估计与度量,并且难以预测与保证生产效率,从而使得软件开发的复杂性加大,导致难以预见与控制各种风险。 一、软件的开发项目的成本组成和影响的因素 (一)软件的开发项目成本组成 在软件开发中,其项目的成本一般由下列几个方面所组成:①人力资源的成本:主要是相关项目人员成本开销,其包含项目成员的工薪、红利与外包合同工作人员、临时雇用人员的薪酬与加班费用等;②资产类的成本:也就是资产的购置成本,指的是产生或者形成的项目交付物中所需使用的有形资产等,其包含计算的硬件与软件、网络设施、安装工具、外部及电信设备等;③管理的费用:主要用在项目的环境维护中,并保证项目在完工时所支出成本,其包含办公室的供应、房屋的租金与设备及支持服务等;④项目的特别支出费用:指的是在项目实施过程中及完工时成本支出,其包含准备费用及培训费用等。 (二)影响软件开发项目成本的主要因素 1.项目的质量对于成本所带来的影响 通常情况下,项目的质量主要从质量的保证措施与质量的故障维护两个方面分别对成本起影响作用。在排除产品的故障与确保产品恢复功能时产生的费用所形成的成本,以及提高产品的质量时产生的费用所形成的成本两者之间具有互相矛盾与反比的关系,项目的质量越差,在前期所投入的故障排除成本就越低,而因质量的不合格所造成的损失就越大,从而增加了维护成本;与之相对,项目的质量越高,出现的故障越少,前期所投入的故障排除成本提高,那么后期的维护成本也就随之降低。 2.项目的工期对于成本所带来的影响 在软件的开发项目中,工期长短对于项目成本具有很大的影响,主要体现在:项目经理部门为确保工期所需措施费用,若工期缩短,则需要投入更多技术更好的成员或者团队,并且需要投入更为密集的硬性成本,增加了直接成本;而由于工期的延误而造成的业主索赔等成本,也可以称之为工期的成本损失。 3.人力资源对于成本所带来的影响 对于软件开发的成本控制,人力资源是其重要的影响因素,对于高技能与高素质的工作人员来说,其人力资源的成本较高,在工作效率与工期长短及产品质量中所占据的优势就更为明显,并且在总体上可降低企业的成本;对于一些技能与素质还有待提高的人员,会在一定程度上延长工期,降低工作效率,甚至需要雇用更多工作人员,从而增加了成本。 4.价格对于成本所带来的影响 市场上人力资源与硬件软件价值对于成本也会产生直接的影响,并且对于项目成本的估算影响比较大。 二、软件开发的项目成本在控制过程中所存在的问题 (一)项目成本的管理问题 许多企业在当前软件开发的成本管理中没有将权责利三者很好的结合起来,对项目成本的管理责任只推到成本管理的主管身上,使得难以完善成本管理的体系,造成项目成本难以管理。 (二)项目人员的意识问题 现阶段软件开发人员虽然大部分具有软件开发的专业技术,但是其大多数缺乏相应的经济观念,对于成本控制的意识较为淡薄,尤其是一些没有单独核算项目的企业,其项目经理更偏重技术而不是管理,通常只是简单把项目的成本管理责任归到财务部门中。 (三)质量成本的控制问题 质量成本指的是为了提高与确保软件的质量而产生的所有必要费用,以及由于没达到质量的标准所遭到的经济损失。我国的软件企业长期以来都无法充分的认识到成本与质量质检的关系,其是辨证统一的,但是往往习惯将质量与成本相对立,片面的追求效益而忽视了质量,却因质量不达标而又支出额外的成本,不但会增加成本的支出,还会对企业的信誉造成严重影响。 (四)工期成本的控制问题 工期成本指的是为了实现项目的工期目标所采取的相关对策时产生的费用,在项目管理中工期目的是其重要的目标之一,企业是否能够完成合同的工期是引起成本变化的关键因素。虽然当前软件企业对于项目的工期与明确要求,而在工期和成本之间的关系中却很少深入探讨,并且不够重视工期的成本问题,使得在认识上存在误区,认为越早完工越好,甚至一些企业盲目赶工期,使得项目的额外成本增加。 (五)风险成本的控制问题 在软件开发中,风险成本指的是项目不确定引发的项目风险,并在对其成本进行管理的过程中,对于项目的风险与潜在风险甚少考虑。使得一旦出现风险,就对项目成本产生严重冲击。 三、软件开发的项目成本主要控制对策 (一)构建责权利结合的成本控制机制 成本计划的编制与下达成本的控制指标,是成本指标考核中一个重要的依据,对于每一个部门与个人的工作范围与工作职责明确界定,并给予相应权利,做到赏罚并行,能够有效的构建责权利结合的成本控制机制,并在这个机制中层层落实责任担负方,从而对形成完整的成本控制机制,并有效的控制成本具有重要意义。 (二)强化项目过程的管控,加大成本控制力度 首先,软件开发企业要加强决策阶段成本的控制,决策阶段指的是企业最终选择的经营方向,其在软件成本的成本管理中是第一个环节也是核心环节,在此阶段对于成本的控制关键是要在决策之前对市场进行科学深入的分析与调研。 其次,加强在软件开发的需求整理与分析确认的成本控制,其中,需求管理是指市场营销人员按照高管对市场的决策所提出的具体产品或项目原始需求;而需求分析指的是技术人员分析市场的需求,评估市场的可实现性和实现的难度及大概的工时等,从而提交出相关的需求报告,最后有市场的经营部门确认。 第三,提高软件开发阶段的成本管理与控制力度,在开发阶段中成本指的是需求确定,并在划清具体开发成本的管理问题上,引入最大的可控制的成本概念。 第四,强化软件开发的需求变更,对其成本进行科学管控,需求变更是指开发的过程当中,因市场部门需求的改变而造成的成本加大由此采取的控制对策,其关键是对每一个变更的步骤有效跟踪,并严格的核算每一次变更时所需工时等,做好相关评估,从而明确需求变更存在的风险,分析其必要性,促进成本的管理。 (三)加强各个要素的成本控制 正确的处理在质量成本中各个要素之间的管理,加强其成本控制,也就是处理好预防费用、质量损失及检验费用等关系,通过科学规范与先进合理的对策,在保证质量满足设计要求的基础上,尽量降低软件开发的项目成本。并且需要正确的处理好成本和工期之前的关系,加强在工期中成本的控制;凸显人力资源在成本控制中的核心地位,强化人力的成本控制等,原因是人力资源是成本控制的核心关键,工期成本与质量成本都需要归结到人力资源的管理成本中,并尽可能的降低人均成本支出,从而加大企业的经济效益。 (四)提高对成本动态控制的效率 软件开发的项目成本在动态管理的过程中必须根据企业发展的实际情况与项目具体要求,通过企业即定资源的利用,在确保项目进度与质量满足客户要求的基础上,对软件开发的项目成本实施有效的跟踪、组织、分析、实施、控制及考核等一系列管理过程。通过这个过程可以有效地降低项目的成本,提高利润。而成本动态控制主要包括资源的计划、成本的估算、预算及控制等,在这个过程中必须根据企业的实际情况,从而满足成本动态控制的要求。 四、结束语 在软件开发过程中对其项目成本的控制具有显著的特点,其与传统成本控制有所区别,软件企业的管理主要以项目的管理为主,并在项目管理的过程中有效地控制成本。因此,深入的了解在软件开发的项目成本中所具有的特点,不断加强对软件项目的开发成本控制,从而不断地提高企业在项目管理与成本管理中的管理水平,进一步增强企业竞争力,进而促进企业的高效发展。 (作者单位:北京乐金系统集成有限公司) 软件开发项目成本控制探析:浅谈软件开发项目的成本控制 摘要:对软件开发项目成本的组成及影响因素进行了分析,并从四个方面探讨了软件开发项目成本控制过程中的主要问题,最后得出软件开发项目成本控制的策略。 关键词:软件开发;成本控制;策略 一、问题的提出 21世纪是信息社会高速发展的世纪,软件作为信息技术的核心,起着至关重要的作用。软件开发项目成本的控制对软件开发项目的成功与否有着至关重要的影响。 软件开发项目和传统产品生产和工程项目相比具有典型的特殊性。首先,软件产品的研制与生产往往密不可分,产品研制成功则意味着产品生产基本完成。因此,软件开发的整个过程都是设计过程,不需要大量的物质资源,而主要是人力资源,软件开发的产品以程序代码和技术文档为主,并没有其他的物质成果;其次,软件是纯知识产品,其开发进度和质量很难估计和度量,生产效率也难以预测和保证。软件系统的复杂性也导致了开发过程中各种风险的难以预见和控制。 软件开发项目的特殊性决定了软件开发项目成本控制的特殊性。如何立足于这一特殊性搞好软件开发项目的成本控制,是信息产业领域成本管理的一个重要课题。为此,本文试图从软件开发项目成本的影响因素分析入手,对软件开发项目成本控制策略进行探讨。 二、软件开发项目成本的组成及影响因素分析 1.软件开发项目成本的组成。软件开发项目成本主要由以下四个方面构成:(1)人力资源成本:与项目人员相关的成本开销,包括项目成员工薪和红利、外包合同人员和临时雇员薪金、加班工资等。(2)资产类成本:资产购置成本,指产生或形成项目交付物所用到的有形资产,包括计算机硬件、软件、外部设备、网络设施、电信设备、安装工具等。(3)管理费用:用于项目环境维护,确保项目完工所支出的成本,包括办公室供应、房屋(租金,设备)、支持服务等。(4)项目特别费用:在项目实施以及完工过程中的成本支出,包括:训费用和准备费用等费用。 2.软件开发项目成本影响因素分析。(1)项目质量对成本的影响。一般情况下,项目质量分别从质量故障维护和质量保证措施两个方面对成本产生影响。排除产品故障、保证产品重新恢复功能的发生的费用形成成本;提高产品质量发生的费用也产生成本。这二者之间的关系是相互矛盾,相互成反比的。项目质量越低,前期投入故障排除的成本越低,质量不合格引起的损失越大,维护成本就会增加;项目质量越高,故障少,前期投入故障排除的成本提高,那后期维护成本就会降低。(2)项目工期对成本的影响。对于软件开发项目,工期的长短对项目的成本影响很大,表现在两个方面:一方面是项目经理部为了保证工期而采取的措施费用,当工期缩短时,需要更多的、技术更高的团队成员,也需要投入更密集的硬件成本,直接成本就会增加。另一方面是因为工期拖延而导致的业主索赔成本,亦可称其为工期损失。(3)人力资源对成本的影响。人力资源的素质也是影响成本的重要因素,对高技能、高素质的项目团队成员,其自身的人力资源成本是比较高的,但对应的工作效率、产品质量、工期的长短等指标上的优势更是显而易见的,而且从总体上能降低成本;对一般人员还需要技术培训,相对而言工期会延长,工作效率也会变低下,甚至要雇佣更多的人员参与,造成成本的增加。(4)价格对成本的影响。中间产品和服务,市场人力资源、硬件、软件的价格也对成本产生直接影响,对项目的成本估算影响也很大。 三、软件开发项目成本控制存在的主要问题 1.项目成本管理体制存在的问题。很多软件企业现行的软件开发项目成本管理体制没有很好地将责、权、利三者结合起来,有些项目经理部简单地将项目成本管理的责任归于成本管理主管,没有形成完善的成本管理体系。 2.项目人员观念存在的问题。目前,中国软件项目人员大多具有软件开发专业技术背景,但是普遍缺乏经济观念,成本意识淡薄,特别是项目不单独核算的企业,项目经理职能更偏重于技术而非管理,简单地将项目成本管理的责任归于财务部门。 3.质量成本控制存在的问题。质量成本是指为保证和提高软件质量而发生的一切必要费用,以及因未达到质量标准而蒙受的经济损失。长期以来,中国软件企业未能充分认识到质量和成本之间的辩证统一关系,习惯于把质量与成本对立起来。有的项目经理在成本缺乏硬约束的情况下,强调软件质量,就对项目成本关心不够,造成质量虽然有了较大提高,但增加了提高质量所付出的质量成本。有的项目经理在成本约束的条件下,片面追求经济效益而忽视质量,虽然就单个项目而言,利润指数可能提高,但是因质量标准而付出的额外质量成本,既会增加成本支出,又会对企业信誉造成很坏的影响。 4.工期成本控制存在的问题。工期成本是指为实现项目工期目标而采取相应措施所发生的一切费用。工期目标是项目管理三大主要目标之一,软件企业能否实现合同工期往往会引起成本的变化。中国软件企业虽然对项目工期有明确的要求,但对工期与成本的关系很少进行深入研究,常对工期成本的重视不够,对工期存在认识上的误区,普遍认为越早越好,有时会盲目地赶工期要进度,造成项目成本的额外增加。 5.风险成本控制存在的问题。风险成本是指项目的不确定因素导致的项目风险。在项目成本管理中,很少考虑项目风险和潜在的风险成本,而风险一旦出现,会对项目的成本造成巨大的冲击。 四、软件开发项目成本控制的策略分析 1.建立责权利相结合的成本控制体系,强化全员成本控制。编制成本计划并下达成本控制指标,同时作为成本责任指标考核的重要依据之一。对每个部门、每个人的工作职责和范围进行明确的界定,赋予相应的权利。在项目实施过程中,要定期检查和考评,做到奖罚分明,彻底打破“干好干坏一个样,干多干少一个样”的局面。在层层抓落实逐级负责的基础上,形成一个完整的责权利相结合的项目成本管理体系,强化全员成本控制。 2.加强项目过程管理和监控,强化全过程成本控制。全过程软件成本控制模式涵盖了软件开发项目经营决策阶段、需求整理分析阶段、开发阶段、需求变更阶段、测试阶段等等环节。 一是加强软件开发经营决策阶段的成本控制。经营决策阶段成本是指公司经营方向的选择,这是软件成本管理的第一个也是最为核心的环节。该阶段的成本控制,关键在于经营决策前科学而深入的市场调研及准确分析。 二是加强软件开发需求整理及分析确认阶段的成本控制。需求整理指市场经营人员根据高管对于市场方向的决策,而提出的具体的产品或者项目的原始需求,需求分析是指技术员对市场部门的需求进行分析,评估其可实现性以及实现难度,大致工时等,提交相关需求分析报告,最后市场经营部门进行确认这个阶段。提高该阶段的成本控制效率,要清晰的确定并严格执行市场和技术沟通的流程,尤其是要明确每个环节的控制点。 三是加强软件开发开发阶段的软件成本管理及其控制。开发阶段的成本指需求确定并且规划清晰后的具体开发过程的软件成本管理问题。该阶段的成本控制,可以引入最大可控制成本的概念。 四是加强软件开发需求变更软件成本管理及其控制。需求变更成本指在开发过程中,由于市场部门的需求改变导致的成本增加而实施的控制。该阶段的成本控制,最关键的是要对于需求变更过程进行严格的管理,要从需求变更的开始,对于整个变更的每个具体的步骤进行跟踪,并且严格核算每次变更所需要的工作时,从而做好评估。同时,务必要明晰需求变更的必要性和风险性,以及所带来的实际成本的增加,所以需求要尽量经过详细的论证。 五是加强软件开发测试软件成本管理及其控制。测试成本指项目开发完成阶段,在交付验收前进行的测试过程中导致的成本及其控制。该阶段的成本控制,最关键的是对测试进行错误管理模式,尽量在项目开发之前,就能整理出之前开发中出现过的所有问题,并用列表的方式进行技术会议,让所有开发人员进行错误共享,尽量把测试中可能出现的问题消灭在开发阶段。 3.加强质量成本、工期成本、人员成本控制,强化全要素成本控制。正确处理质量成本中几个方面的相互关系,加强治理成本控制。即处理好质量损失、预防费用和检验费用间的相互关系,采用科学合理、先进实用的技术措施,在确保质量达到设计要求水平的前提下,尽可能降低软件项目成本。正确处理工期与成本的关系,加强工期成本控制。在安排工期时,要注意处理工期与成本的辩证统一关系,均衡有节奏地进行工程实施,在确保工期达到合同条件的前提下,尽可能降低工期成本。突出人力资源的核心地位,加强人力成本控制。软件开发项目不同于其他工程项目,最核心的资源是人力资源,质量成本和工期成本最终归结到人员成本即人力资源成本上,要求人员结构要在能够完成任务的前提下高低搭配,降低平均人员成本。一方面要将人力成本定量化,另一方面通过高效的管理制度大力挖掘提高现有人力资源的“含金量”。 4.基于成本管理的各个阶段,强化成本的动态控制。软件项目成本管理就是根据企业的情况和项目的具体要求,利用公司既定的资源,在保证项目的进度、质量达到客户满意的情况下,对软件项目成本进行有效的组织、实施、控制、跟踪、分析和考核等一系列管理活动,最大限度地降低项目成本,提高项目利润。成本管理的过程包括资源计划、成本估算、成本预算、成本控制。要进行有效的项目成本估算和预算。项目预算是项目分配资源的计划,也是控制的标准,在项目成本管理中具有重要作用。 五、结束语 软件企业具有知识经济的明显特点,不同于传统的成本控制,软件企业管理具有以项目管理为主的重要特征。深入了解软件开发项目成本的特点,加强软件项目开发成本,从而提高软件企业的财务管理和项目管理水平,增强企业的竞争能力,促进软件企业健康发展。
浅谈审计软件开发风险评估:审计软件开发风险评价拓展 【摘 要】 审计软件项目开发风险是影响审计质量的重要因素。文章分析了审计软件开发过程中可能遇到的风险,并对风险评价指标体系进行了有效的拓展,以使关于审计软件项目开发风险的评价更为客观、科学。 【关键词】 审计软件; 开发风险; 评价指标; 拓展 一、审计软件开发过程中可能迂求的风险 (一)审计软件开发的外部风险 1.社会环境及其风险 审计软件作为计算机审计的重要工具,它具有很强的专业性。审计软件的基本功能包含审计全过程,审计计划、符合性测试、数据读取、数据分析、报告输出等都可由审计软件辅助完成。会计师事务所审计软件的设计必须严格按照国家有关会计和审计的法律制度,否则软件产品就不合格,不能在实际工作中应用,导致项目失败,这是审计软件最主要的外部风险;另外如项目延期完工,产品性能低于预期等也会让供应商不满,给项目带来风险。 2.外部资源及其风险 软件供应商或软件项目的实施咨询服务商是软件项目的外部资源条件。我国会计师事务所实施审计软件项目所需的外部资源不佳,为实施审计软件项目,会计师事务所面临着两难选择,一是选择国外较成熟的商业化软件,但这些产品的价格一般都很高,预算上难以承受;二是选择国产软件,国产软件大多不太成熟,性能不稳定。不论做何种选择,都有着极大的风险性,难以作出正确的决定。这种软件选型风险称之为软件供应商选择风险。如果软件选购的经办人员出现贪腐行为,那么这种风险更大。 (二)审计软件项目的内部风险 1.软硬件选择风险 在自身软件开发能力不足的情况下,会计师事务所审计机构可以联合软件公司共同进行审计软件的开发工作。利用这种方式开发审计软件具有以下优点:审计软件开发任务主要由外部技术力量承担,审计机构参与开发的人员主要是在软件需求和系统分析方面进行配合,因此对审计机构的软件开发能力要求低。同时在合作开发机构的技术支持下,能保证开发出来的审计软件具有较高的水平和较强的功能。 2.实施过程风险 (1)项目实施人员方面所带来的风险。审计软件的项目实施人员由软件供应商和会计师事务所两方面组成,项目能否顺利实施、实施时间能否尽量缩短,取决于实施人员的经验和参与程度。一般来说,高效可靠的项目组都有以下特点:软件供应商方面的人员经验丰富、技术扎实;会计师事务所方面参与项目的人员则是涉及面广,特别是业务部门要积极参与。不同的项目参与者在审计软件项目的实施过程中所起的作用不一样,他们有着各自的职责分工,任何一方的参与者出现问题,都会给审计软件项目带来很大风险。 (2)延期风险。是否延期是衡量项目管理水平的一个重要方面,会计师事务所审计软件项目的实施过程都较长,一般需要一到两个季度,有的甚至超过一年。因此,项目进度计划控制的好坏直接影响项目。如果能做好项目进度控制、按预定计划完成各项工作任务,就能削减项目的延期风险。 (3)超预算风险。项目预算的执行状况也是项目管理水平的重要体现。软件项目投资弹性大,成本预算偏软性,成本风险较大。同时由于软件项目实施时间长、期间通货膨胀等外部因素会导致原材料和人工成本的增加,且咨询、维护、调整、升级等预算外的支出会导致项目成本剧增,实际支出往往远超预算。如果支出远超预算,即使项目最终得以完成,客观上这些项目也是不成功的,甚至有些企业在权衡支出和效益后,如果觉得效益不明显,且支出过大,他们会终止项目的实施。 3.管理风险 软件项目不仅仅是业务或管理工作的信息化、数字化,更重要的是一次革新,是对原先工作习惯和管理思想的一次革命,它带来的是先进的管理理念。软件的生命力在于运用,只有企业的管理者和员工都能转变观念,吸收软件项目所蕴含的新的管理思想,才能发挥审计软件项目的效益。任何习惯的转变对人来说都是痛苦的。因此,如何克服这种痛苦带来的负面影响,顺利转变企业全体员工的观念,理解和消化审计软件带来的新思想,是审计软件项目成功的又一关键;否则,就会带来管理风险。 二、风险评价指标体系的拓展 (一)传统的审计软件风险识别指标体系的局限性及扩建原则 运用传统方法建立的软件项目风险识别指标体系可以发现项目中大多数的潜在风险,为进一步对风险进行分类、分析、评价提供了目标,但还存在很多局限性:一是没有考虑项目中不同风险之间的内在联系,对风险的认识不够全面,没有体现出风险数据的组织化和结构化,没有体现出指标间的低耦合性、简单性、灵敏性等特点。二是涉及审计软件开发项目的风险因素很多,这些因素相互作用、相互影响,关系错综复杂,而且风险之间还有多层次性,有些风险具有包含关系,这些都是传统方法下的指标体系所不能反映的。 因此,需要对审计软件项目风险识别指标体系进行扩建,扩建的基本原则如下:一是完全性原则。指标体系应囊括所有的潜在风险因素,兼具综合性、完整性,并通用于同类项目。二是简单性原则。在指标体系满足完全性的前提下,针对具体的项目,选择有针对性的指标,合理减少指标个数,这样便于抓住关键因素,减少不必要的混乱,从而提高效率。三是低耦合性原则。由于指标之间存在弱相关性,具有相互影响、相互作用的特点,因此允许有相关关系的指标独立出现。四是一致性原则。这包括两个层面的一致,首先是各个指标与整个指标体系不矛盾;其次是各指标相互之间没有冲突。五是客观性原则。选择的指标应该在项目中客观存在,如果某项指标与项目实际不符,则应该从体系中剔除。六是灵敏性原则。随着项目的开展,当项目的不确定因素发生变化时,能及时调整指标,改变整个体系的构成。 (二)扩建审计软件项目风险识别体系 风险指标体系的数据来源可分为主观和客观两类,这两类归纳起来共有四个途径:客观方面来源过去试验的成果和过去产品的数据两个途径,主观的数据来自专家经验数据和相似工程的数据两个途径,其中前者是完全主观的,后者是部分主观的。本研究的数据来自两个途径:主观方面的数据来自专家咨询调查表,客观方面的数据来自国内类似软件项目的统计分析。具体的指标风险包含了以下内容: 1.需求风险 产生需求风险的不确定性因素较多,包括需求分析不全面、需求分析方法不恰当、需求的定义不准确和清晰、需求未经用户确认、技术上还不能完成需求要求的功能。这些需求方面的不确定性因素给项目的进度控制和成本预算的执行带来风险。 2.技术风险 因技术难度大,系统复杂程度高,或者开发人员不熟悉开发技术或工具,导致项目开发延期。 3.进度计划风险 这主要是因缺乏应对意外事件的进度控制预案或没有对关键任务实行有效的监督控制而引起的。 4.规模风险 项目规模大小与项目成本控制偏差之间有一定的相关性,项目规模会带来风险,一般是规模越大,带来的风险也越大。 5.项目先例风险 这是因项目组缺乏相同行业或相近系统结构的项目开发经历,导致项目开发投入增加。 6.成本计划风险 与进度计划风险相似,主要是因缺乏应对意外事件的预算预案或没有对关键任务实行有效的监督控制而引起。 7.实施风险 因项目实施过程中配套软、硬件没按进度提供而引起。 8.客户参与风险 因客户没有充分参与项目的实施,导致软件的功能不能满足客户的实际需要。 9.质量风险 因缺乏有效的质量管理,没有建立起相应的质量保障组织、制度标准规范,导致项目质量无保障。 10.测试风险 缺乏有效的系统测试管理,没有建立起系统测试的相关组织,也没有制定测试计划、工作规范;或因测试工具和环境选择不当,导致测试效果不佳。 11.非功能性要求风险 因对非功能性要求缺乏必要的认识、技术难度大,增加项目投入。 12.管理层支持的风险 因软件开发企业或客户的管理层对项目的重视程度不够,导致项目的投入得不到应有的保障。 13.员工积极性风险 员工的主动性与积极性影响项目进程。 14.技术与项目构成风险 技术与项目组成风险是技术水平以及项目构成,将会对项目的风险产生重要影响。 三、风险评价标准体系的构建 风险评价标准包括风险发生的概率、风险损失影响的等级标准。在对项目风险进行识别和评价之前,需要根据具体的项目情况和项目组能力进行客观的估计,制定风险驱动因子的量化标准。按照风险标准,极高对应的概率值是0.85—1.00;很高对应的概率值是0.65—0.85;高对应的概率值是0.45—0.65;一般对应的概率值是0.25—0.45;低对应的概率值是0.05—0.25;很低对应的概率值 软件项目风险识别指标体系的建立是软件项目风险管理的第一个环节,是其他后续管理环节的基础。当风险评价标准确定后,邀请业内的专家进行综合评判,可选择两类专家,一类是研究型的;另一类是实践型的。专家们根据参照标准在专家咨询表上填写评判结果,对这些结果进行统计分析,就可以得出每个风险驱动因子发生的概率和损失影响的级别。 四、结论 合理确定审计软件项目开发风险的评价标准,是审计软件开发的必需程序,也是关键一环。希望本文的研究能够对审计软件开发项目的理论研究以及实践操作有所裨益。 浅谈审计软件开发风险评估:审计软件开发的局限性与方向 摘要:传统的手工审计方法与技术在会计电算化的过程中逐渐不能满足审计人员对于审计的需要,会计信息越来越多,需要审计人员审计的账簿也越来越多。保证审计质量的同时提高审计人员的工作效率已经成为审计行业关注的重点。审计软件的出现可以节约审计资源、提高审计工作的效率。但是目前运用的许多审计软件并不能够满足审计工作的需求,所以开发更具适用性的审计软件是目前审计工作必须关注的一个重点问题。 关键词:审计;计算机;软件开发 一、审计软件的应用情况 在大数据时代的背景下,信息技术不断改进和发展,人们的生活有了翻天覆地的变化,为了适应庞大的数据需要,从繁杂的信息中挖掘出有价值的数据,使得各个行业的工作方式逐渐由手工作业专为计算机作业,这也为审计工作方式提供了新的方法与途径。面对多而复杂的审计数据,审计软件的开发,不仅使审计的效率大大提高,还可以使审计风险大幅降低。审计软件能够进一步拓宽审计覆盖面,实现审计工作的新跨越与新发展。 目前的电子数据软件大多是通用的软件,为了使其在不同的单位适用,很多审计软件都被商品化了,并且都能在计算机环境下使用。近几年国内的许多软件公司和审计部门开发了与国内一些商品化的会计软件有良好接口的通用审计软件,虽然这些软件在功能部分与国外的一些常用审计软件还有一些差距,但这些审计软件是针对我国的市场并结合了国内会计软件的特点而设计的,所以在操作的便利程度上与适用性上相对于国外一些软件来说还是有优势的。国内的审计软件功能操作便捷,对计算机技能要求不高,这使得审计人员不必具有很高的计算机操作水平,使审计人员在审计工作中更容易接受审计软件的辅助。 二、开发审计软件的局限性 (一)资源发展的不均衡 审计信息化是一个系统又复杂的伟大工程。为了加强审计信息化的建设,我国做出了一系列关于审计的重大举措,有力的推进了审计行业的信息化发展。但是,目前国内审计软件的开发并不系统,存在各种各样的审计软件,各个单位采用的审计软件没有一个通用的设计标准,也没有实现资源共享信息共享的途径,这些问题都会使得存在重复开发的审计软件、盲目开发审计软件等问题,导致一系列的资源发展不均衡问题。 在审计信息化建设这个方面,我国起步的比较晚,一直都比较缺乏理论方面的研究与创新,所以使得审计软件方面的开发从一开始起步的时候便出现了理论不足的尴尬场面,所以使得目前我国的审计软件、审计软件的开发案例没有统一的标准,虽然开发的软件很多但没有系统的功能划分,也没有坚实的理论支持。如果没有系统的理论作为开发过程中的指导,开发出来的软件在实际应用中会有很多问题,比如具有较差的兼容性。计算机辅助审计是一个综合性很强的学科,计算机的运用已是审计工作不可分割的一部分,也是审计理论今后研究的重要方向。电子数据审计分析的技术方法、研究深度与广度还没有被审计软件充分地挖掘,目前的审计软件只聚焦于数据处理,没有对先进的信息技术进行运用处理。所以我国应加强对审计人员的培训,对信息技术进行大力的推广运用。 (二)企业信息系统建设水平急需提高 开发审计软件的局限性原因还有一方面是我国各个企业的信息化程度差别大,我国的信息系统建设阶段可以做一些简单的信息处理与管理和对一些一般性事件进行处理,可以说是处于信息系统建的初级发展阶段,企业间的资源共享还没有做到,出现较为严重的“信息孤岛”现象,企业的信息化建设的作用与优势并没有完全体现,与国外的信息化水平相比较,还是有很多差距。 (三)人才不足 从事审计行业的人员大多是对财务知识比较精通,而对计算机技术精通的审计人员是极其少数的,而审计类的软件需求在应用商品市场中是相对较低的。一些关于审计的软件开发商单位的开发人员大多是计算机专业人员,很少接触有关审计的工作,对审计知识的了解并不像专业审计人员那样深入,不能够从专业的审计角度来开发软件,造成软件的功能不合理、功能不全面,所以审计人员在实际工作中对软件运用效率并不高。审计软件的开发要求很高的综合知识,既要求开发人员具有良好的计算机汇编语言的知识,又要求开发人员能够熟悉审计的业务与流程。这样的综合性人才是我国目前审计行业比较缺少的,很多高校无法培养出既精通计算机有精通审计的专业人才。缺乏复合型的审计人才也是制约审计信息化进程的一个比较重要的原因。所以在信息化建设方面,应提高从事审计行业人员的综合素质,顺应时代的要求。 三、把握审计软件的开发方向 (一)实时监控 国内的现行审计软件大多是主要以定期的审计来设计的,通过对基础的财务进行审计,发现疑点,从而进一步明确审计活动。目前所进行的审计活动大多属于事后审计,是对结束了的经营活动进行审查。随着计算机网络技术的不断进步数据量不断加大,信息更新更快速,流动性的需求也不断增加,企业对信息的时效性要求也越来越高,对实时审计的必要性要求也极大的增加。进行实时审计能够弥补事后审计实效性不高、线索不充分的一些缺点,能够为定期审计提供便利。 (二)审计项目多样性 目前审计软件的功能在操作上是比较简单的,有一定深度的企业专用审计软件基本没有,不能够适应灵活多变的审计需要。在审计工作中,计算机技术不能完全取代人工审计,而是作为一种计算机辅助技术,但是目前计算机辅助审计工作的程度还没有完全清楚的被界定,所以审计通用软件在审计工作中的功能定位比较模糊。审计业务流程多样且具有复杂性,每个行业都有每个行业的特殊性,通用的审计软件无法满足各个行业和企业的不同要求。审计软件的功能开发需要有针对性,只有能够针对具体的审计目标与方法且适合具体企业的审计工作要求,审计软件的功能与方法才能被充分利用,审计软件才能发挥最大价值。目前的审计软件以简单的查账程序为主,无法提供灵活变通的技术与方法,各个审计软件之间的数据共享还不能实现,导致软件的效率与成果不尽如人意。 (三)可视化 在大数据的战略方向影响下,可视化分析是目前审计软件需要关注的重点。可视分析已经成为大数据审计的重要的手段与方法途径。可视化分析能够将计算机处理分析后的数据和人的感知能力融合入到一起,具有很大的优势。通过可视化技术能够有成效的改变计算机自动化的分析方法所带来的劣势,能够使得人机交互与融合。当前,国内审计软件对可视化的研究还没有那么完善,所以这也是当前和今后审计软件开发所需要持续关注的地方。目前大部分审计软件都不能很好放入可视化研究部分,这就需要在审计软件开发时结合审计工作的具体需求,开发出合适、符合审计工作内容的审计软件,这不仅能够对传统的审计技术方法做出改变和创新,还可以更好地发挥审计监督作用,提高审计工作的效率水平。 四、总结 随着科学技术的飞速发展、计算机网络技术不断创新,互联网改变着人们的生活方式。会计信息的网络化给了审计工作一个巨大的挑战,也为审计工作提出了更高的要求。从审计数据的采集与查询、处理分析等流程都逐渐采用计算机来代替。能够预见在不久的将来,计算机将会成为审计工作中的核心,网络审计将会成为未来审计事业的发展潮流。审计人员能够基于互联网借助计算机技术对企业的会计信息的合法性、合规性、真实性进行审计,这种网络办公能够极大的节约时间、提高工作效率。 努力开发结合审计工作需求的审计软件,能够使得传统的审计技术和方法进行改进创新。高效的审计软件能够很好地发挥审计监督作用,提升工作效率,全面提高审计工作的整体水平,在信息化的建设上顺应了审计人员综合素质提高的要求,而更具针对性的审计软件能够更有效地发现舞弊与违法乱纪现象与问题。 (作者单位:南京审计大学) 浅谈审计软件开发风险评估:审计软件开发风险评估探索 一般来说,高效可靠的项目组都有以下特点:软件供应商方面的人员经验丰富、技术扎实;会计师事务所方面参与项目的人员则是涉及面广,特别是业务部门要积极参与。不同的项目参与者在审计软件项目的实施过程中所起的作用不一样,他们有着各自的职责分工,任何一方的参与者出现问题,都会给审计软件项目带来很大风险。延期风险。是否延期是衡量项目管理水平的一个重要方面,会计师事务所审计软件项目的实施过程都较长,一般需要一到两个季度,有的甚至超过一年。因此,项目进度计划控制的好坏直接影响项目。如果能做好项目进度控制、按预定计划完成各项工作任务,就能削减项目的延期风险。超预算风险。项目预算的执行状况也是项目管理水平的重要体现。软件项目投资弹性大,成本预算偏软性,成本风险较大。同时由于软件项目实施时间长、期间通货膨胀等外部因素会导致原材料和人工成本的增加,且咨询、维护、调整、升级等预算外的支出会导致项目成本剧增,实际支出往往远超预算。如果支出远超预算,即使项目最终得以完成,客观上这些项目也是不成功的,甚至有些企业在权衡支出和效益后,如果觉得效益不明显,且支出过大,他们会终止项目的实施。管理风险软件项目不仅仅是业务或管理工作的信息化、数字化,更重要的是一次革新,是对原先工作习惯和管理思想的一次革命,它带来的是先进的管理理念。软件的生命力在于运用,只有企业的管理者和员工都能转变观念,吸收软件项目所蕴含的新的管理思想,才能发挥审计软件项目的效益。任何习惯的转变对人来说都是痛苦的。因此,如何克服这种痛苦带来的负面影响,顺利转变企业全体员工的观念,理解和消化审计软件带来的新思想,是审计软件项目成功的又一关键;否则,就会带来管理风险。 风险评价指标体系的拓展 (一)传统的审计软件风险识别指标体系的局限性及扩建原则运用传统方法建立的软件项目风险识别指标体系可以发现项目中大多数的潜在风险,为进一步对风险进行分类、分析、评价提供了目标,但还存在很多局限性:一是没有考虑项目中不同风险之间的内在联系,对风险的认识不够全面,没有体现出风险数据的组织化和结构化,没有体现出指标间的低耦合性、简单性、灵敏性等特点。二是涉及审计软件开发项目的风险因素很多,这些因素相互作用、相互影响,关系错综复杂,而且风险之间还有多层次性,有些风险具有包含关系,这些都是传统方法下的指标体系所不能反映的。因此,需要对审计软件项目风险识别指标体系进行扩建,扩建的基本原则如下:一是完全性原则。指标体系应囊括所有的潜在风险因素,兼具综合性、完整性,并通用于同类项目。二是简单性原则。在指标体系满足完全性的前提下,针对具体的项目,选择有针对性的指标,合理减少指标个数,这样便于抓住关键因素,减少不必要的混乱,从而提高效率。三是低耦合性原则。由于指标之间存在弱相关性,具有相互影响、相互作用的特点,因此允许有相关关系的指标独立出现。四是一致性原则。这包括两个层面的一致,首先是各个指标与整个指标体系不矛盾;其次是各指标相互之间没有冲突。五是客观性原则。选择的指标应该在项目中客观存在,如果某项指标与项目实际不符,则应该从体系中剔除。六是灵敏性原则。随着项目的开展,当项目的不确定因素发生变化时,能及时调整指标,改变整个体系的构成。(二)扩建审计软件项目风险识别体系风险指标体系的数据来源可分为主观和客观两类,这两类归纳起来共有四个途径:客观方面来源过去试验的成果和过去产品的数据两个途径,主观的数据来自专家经验数据和相似工程的数据两个途径,其中前者是完全主观的,后者是部分主观的。本研究的数据来自两个途径:主观方面的数据来自专家咨询调查表,客观方面的数据来自国内类似软件项目的统计分析。具体的指标风险包含了以下内容:1.需求风险产生需求风险的不确定性因素较多,包括需求分析不全面、需求分析方法不恰当、需求的定义不准确和清晰、需求未经用户确认、技术上还不能完成需求要求的功能。这些需求方面的不确定性因素给项目的进度控制和成本预算的执行带来风险。2.技术风险因技术难度大,系统复杂程度高,或者开发人员不熟悉开发技术或工具,导致项目开发延期。3.进度计划风险这主要是因缺乏应对意外事件的进度控制预案或没有对关键任务实行有效的监督控制而引起的。4.规模风险项目规模大小与项目成本控制偏差之间有一定的相关性,项目规模会带来风险,一般是规模越大,带来的风险也越大。5.项目先例风险这是因项目组缺乏相同行业或相近系统结构的项目开发经历,导致项目开发投入增加。6.成本计划风险与进度计划风险相似,主要是因缺乏应对意外事件的预算预案或没有对关键任务实行有效的监督控制而引起。7.实施风险因项目实施过程中配套软、硬件没按进度提供而引起。8.客户参与风险因客户没有充分参与项目的实施,导致软件的功能不能满足客户的实际需要。9.质量风险因缺乏有效的质量管理,没有建立起相应的质量保障组织、制度标准规范,导致项目质量无保障。10.测试风险缺乏有效的系统测试管理,没有建立起系统测试的相关组织,也没有制定测试计划、工作规范;或因测试工具和环境选择不当,导致测试效果不佳。11.非功能性要求风险因对非功能性要求缺乏必要的认识、技术难度大,增加项目投入。12.管理层支持的风险因软件开发企业或客户的管理层对项目的重视程度不够,导致项目的投入得不到应有的保障。13.员工积极性风险员工的主动性与积极性影响项目进程。14.技术与项目构成风险技术与项目组成风险是技术水平以及项目构成,将会对项目的风险产生重要影响。 风险评价标准体系的构建 风险评价标准包括风险发生的概率、风险损失影响的等级标准。在对项目风险进行识别和评价之前,需要根据具体的项目情况和项目组能力进行客观的估计,制定风险驱动因子的量化标准。按照风险标准,极高对应的概率值是0.85—1.00;很高对应的概率值是0.65—0.85;高对应的概率值是0.45—0.65;一般对应的概率值是0.25—0.45;低对应的概率值是0.05—0.25;很低对应的概率值 0.05。软件项目风险识别指标体系的建立是软件项目风险管理的第一个环节,是其他后续管理环节的基础。当风险评价标准确定后,邀请业内的专家进行综合评判,可选择两类专家,一类是研究型的;另一类是实践型的。专家们根据参照标准在专家咨询表上填写评判结果,对这些结果进行统计分析,就可以得出每个风险驱动因子发生的概率和损失影响的级别。合理确定审计软件项目开发风险的评价标准,是审计软件开发的必需程序,也是关键一环。希望本文的研究能够对审计软件开发项目的理论研究以及实践操作有所裨益。 作者:杨扬 余莉 单位:西南财经大学会计学院
嵌入式系统软件开发技术研究:嵌入式系统软件开发技术探析 摘 要:嵌入式系统是当前工业生产控制领域的重要计算机应用技术。随着工业现代化水平的不断提升,嵌入式系统变得更加繁琐复杂、功能也更加丰富。文章围绕嵌入式系统软件开发相关问题进行探讨,详细阐述了嵌入式系统软件开发的几个重要阶段,对各个阶段涉及到的重要技术进行了介绍。 关键词:嵌入式系统;软件开发;技术 引言 计算机技术一经问世,就成为加快推动人类社会生产活动高效开展的重要力量。在几十年的发展里程中,计算机相关技术都实现了巨大进步。伴随着工业现代化进程的不断深入,嵌入式系统获得了越来越多的关注。嵌入式系统是一种以软件和硬件相结合为特征的计算机系统。该种系统常用于工业大型机械化生产或者国防工业等领域,通过嵌入到某些专门设备中予以实现,故此得名嵌入式系统。在数十年的实际应用过程中,嵌入式系统屡经发展,不断创新改进,目前已经取得了许多项先进技术成果,为今后的相关领域开发工作指出了重要方向。 1 微处理器技术的选择 微处理器技术是嵌入式系统的重要基本元素。伴随着加工制作技术的升级,微处理器从最初的4位、8位器件开始,发展到后面的集成式单片8位微处理器、16位微处理器。时至今日,16位微处理器已经成为微处理器应用的中间类型,占据着微处理器市场的最大份额,而更高端的领域则由32位架构的器件所占据。最开始的32位器件采用的是CISC架构,而后随着技术的发展,性能更加优异的RISC芯片则成为32位器件架构形式的主要选择。嵌入式系统开发人员可以根据项目实际需要,综合比较设备性能、服务、适用性以及成本等多个指标选择最适合的微处理器。 2 系统架构的选择 架构是系统的基础组成,不仅关系到系统功能的实现,对于系统后续发展、优化也有着举足轻重的作用。微处理器的架构开始时仅仅是中央处理器和部分逻辑器件构成的简单形式。经过多年的发展,微处理器架构变得复杂、繁琐,但调试技术还是原来那些电路仿真、芯片级调试、ROM监控器以及指令集模拟等技术。随着嵌入式系统应用范围不断扩大和技术要求的不断提高,系统架构的重要性也在与日俱增,嵌入式系统开发人员必须要认真评估各类微处理器相关特性,选取合适的系统架构,这样才能保证开发出来的系统的健康水平。 3 设计组成 嵌入式系统的软件开发工作包括硬件开发和软件开发两个部分。最开始的时候,软、硬件的开发工作基本上都由一名技术人员负责。而且在系统开发项目的全部工作中,软件开发所占据的比例较小,最大十分之一。随着技术的不断发展,嵌入式系统开发工作中软件设计所占据的比例越来越大。原有工作模式因而发生丢了改变。专业人员专门负责嵌入式系统软件开发的工作模式出现在上个实际80年代中期,同期软件开发的工作量占据嵌入式系统开发工作业务量的一半以上。 近些年来,嵌入式系统发展得日渐成熟。软件、硬件方面都实现了巨大进步。系统开发业务量持续上涨。其中,软件开发的业务增长更为显著,已经达到嵌入式系统开发业务量的十分之七、八左右。巨大的工作量已经不是仅仅依靠一个开发人员就能完成的,必须依靠团队的力量。特别是随着系统开发工作的深入,一些新的技术措施、手段纷纷涌现,成为系统开发中不可或缺的重要环节。其中一个至关重要的就是用于软件开发后进行测试的硬件平台。由于软件开发业务量的高速增加,用来进行软件测试的硬件平台需求也就变得更加迫切。目前常用的方法有本地代码执行原型环境、指令集软仿真(模拟),或者是使用标准的、低成本的、现成的评估板等。而主机-目标机连接技术因为成本较低,故而推广速度很快,其中最为著名的就是JTAG接口。 4 软件内容 尽管软件开发所耗费的时间越来越多,但市场对于软件的开发周期的要求却越来越短。为了适应市场需求,嵌入式系统软件开发企业不得不在开发策略上下功夫。早期嵌入式系统软件结构简单、功能单一,使用企业自行开发的应用代码即可实现。如今系统功能丰富,功能强大,结构复杂,软件开发企业必须依赖外部的力量。目前,软件开发企业往往根据项目需求,选择对应的多任务的模型,然后使用标准的、商用的实时操作系统辅助开发。这种做法,优点是开发效率高,缺点是不可避免的遇到知识产权的问题。在全社会都越来越重视知识产权的大形势下,嵌入式系统软件开发,必须考虑到知识产权因素的影响,这种影响,不仅仅停留在当前所开发的软件上,更对后续的相关软件开发、应用拓展有着巨大的影响。 5 编程语言 编程语言是进行软件开发设计必不可少的工具。在微处理器刚刚出现,尚停留在4位、8位器件的阶段,开发人员只能选择汇编语言进行开发。当16位微处理器技术出现以后,软件编程语言的选择也变得丰富起来。使用较多的有Pascal、C语言、PL/M语言。而对于一些特别的系统,Forth语言更为适合。当32位微处理器应用日渐广泛以后,又开发出了C和ADA。其中,ADA主要应用于军事领域,在国防事业中大展身手。时至今日,C++已经逐步取代C语言成为嵌入式系统软件开发语言的主流,目前大约四分之一到三分之一的嵌入式系统是使用C++设计的。而本来专为嵌入式系统软件所开发出来的Java则在要求运行时重新配置的领域实现了更大的自身价值,统一建模语言(UML)也成为高级设计方法学的最流行选择。 6 软件队伍的规模和分布 上文提过,最初的嵌入式软、硬件开发工作通常都由一名工程师予以兼任。经过多年的发展演化,软件开发工作变得专业化、系统化、精细化,形成了专门负责软件开发的技术业务人员。而以嵌入式系统软件开发为职责的团队则是今后发展的主要方向。IT行业软件开发项目管理工作责任重大、任务艰巨。嵌入式系统软件开发同样如此。其区别仅在于嵌入式系统软件开发使用过程语言,比如C语言和汇编语言进行编程。嵌入式系统软件开发是一项技术含量和系统化要求很高的工作。开发团队中的所有人都要对目标系统有着全面的清晰的了解,而在当前项目越来越大,工作人员越来越多的情况下,受各人业务能力水平等因素的影响,要保持所有人都同样深入的认知水平显然是不现实的。实际情况是团队中部分高端人才对于某个领域认识非常深入,相关业务能力很强,这些人是开发团队的主干,团队管理者必须科学、协调、高效使用这些人力资源,确保他们的业务成果可以被其它人员正确使用。而面向对象编程技术则是这种应用策略在技术层面的现实体现。 7 结束语 我国正处于产业结构调整的重要时期,大规模的自动化生产成为工业生产的主流。嵌入式系统软件远景广阔,市场空间巨大。软件开发企业要牢牢把握这个机会,深入、扎实地研究嵌入式系统软件开发技术,吸收外部优势资源为我所用,设计出功能强大、适应广泛的优质软件产品,在实现企业自身的健康高速发展的同时,为我国经济建设提供有力支持与保障。 嵌入式系统软件开发技术研究:谈嵌入式系统软件开发技术 摘要: 针对新兴的嵌入式系统发展趋势,提出了对于嵌入式系统软件开发的几个过程,并挑选出它们所驱动的技术,从而做出一个值得注意的技术的时间表。 关键词: 嵌入式系统;软件开发 0 引言 嵌人式系统开发经过30多年的发展,到现在算是一个成熟的技术了。由此可以从总体上确认在嵌入式系统开发展过程中出现的几种明显趋势,这些趋势指出了一系列新兴的关键技术。 1 微处理器技术 最早的微处理器是4位和8位器件。由于制造技术越来越复杂,集成的单片8位微处理器开始出现,16位微处理器也开始使用。随着微电子技术的发展,16位的微处理器已得到广泛的应用。32位架构的器件逐渐占领了高端的应用市场,第一代的32位器件都是CISC架构,但目前,越来越多的RISC芯片正在提供更高的性能。嵌人式系统设计者选择微处理器的范围比以前大了,必须根据性能、需求、支持、可用性和价格来进行选择。 2 系统架构 随着微处理器的发展系统架构也在进步。最早的系统,是由CPU和一些逻辑器件组成的。多年以来,系统变得日益复杂,但都还可以使用同样的调试技术—电路仿真、芯片级调试、ROM监控器以及指令集模拟。嵌入式系统日益强劲,而功能需求的增长则更快很多设计者开始重新审视微处理器和它们的用法。 3 设计组成 嵌入式系统发展的最初阶段。所有的开发包括软件和硬件设计,通常都是一个工程师来承担。软件在整个工作址中的比例很小,大约5%-10%。随着时间的推移软件开发占工程时间的比例持续增长。至20世纪80年代中期,软件开发已经是由专业欢件人员来做,所占比例一般已超过整个开发工作量的50%。 在最近几年,虽然硬件设计变得更加复杂,但软件的份量也急剧增长,目前通常占到开发总量70%-80%。因此,需要有软件团队参与,同时也产生了一些新的挑战。这些挑战中的一个,就是要有可用的硬件平台来进行软件测试。由于要在更短的时间内开发更多的软件,就需要尽快建立测试环境。发出更多的软件,就需要尽快建立测试环境。有多种可行的方法,如本地代码执行原型环境、指令集软仿真(模拟),以及使用标准的、低成本的、现成的评估板。此外,低成本的主机一目标机连接技术,也变得越来越普及,有代表性的就是JTAG接口。 4 软件内容 软件开发所占总时间的比例一直在增加。同时,来自全球贸易和竞争的压力使得产品投放市场的时间也一直在缩短。这极大地影响了设计的策略。最早的设计相当简单,仅仅由自己设计的应用代码组成。随着系统的复杂度增加,多任务的模型被软件开发者广泛采纳,很多开发者选择标准的、商用的实时操作系统产品。随着各个标准的进一步被采纳,买来的软件,或者说有“知识产权”的软件所占的比例正稳步增长。这个趋势给了软件开发者很多启示。集成标准的软件组件—和应用代码及其他—是我们所关心的。在多任务背景下调试是另一个值得关注的问题。与选择知识产权有关的商业决定尤为复杂;除了当前的要求之外,还有将来的(例如移植到别的处理器)也必须加以考虑。 5 编程语言 对于早期的4位和8位微处理器,汇编语言是唯一的选择。随着16位微处理器技术成为现实,出现了几种可供选择的语言。有Pascal和C语言和PL/M语言。对某些类型的系统来说,Forth语言也曾很流行,随着时间推移,32位技术的使用日益增多,出现了C和Ada。后者在国防部的系统中被普遍使用。 在嵌入式软件开发中,C++开始逐步取代C语言。现在,1/4~1/3的嵌入式系统代码是用C++编写的。Java语言当初是专门为嵌人式应用开发的,在要求运行时重新配置的应用场合,它找到了一席之地。统一建模语言(UML)也成为高级设计方法学的最流行选择。 6 软件队伍的规模和分布 正如先前讨论的一样,最初的嵌人式系统设计只要一个人就够了。在适当的时候,因专业化,产生了致力于软件开发的工程师。下一步就是建立嵌人式软件开发团队。管理软件开发在任何情况下都是一个挑战,嵌入式系统开发也不例外,只是有细微差别。使用传统的编程技术———过程语言,如C语言和汇编语言,团队里的大部分成员都需要对整个系统了解比较全面。随着团队变大,这就变得越来越不可行。价况住往是,团队里有一些特殊的人才,他们对某些专门领域很在行。为了有效地管理团队必须使用合适的策略,将他们的专长封装起来。尽可能使一个专家的工作成果能够被非专家以安全、可靠和直观的方式加以使用.在这种情况下,面向对象编程技术找到应用点。 虽然有很多非常大的公司,但软件队伍不是简单的人员扩充他们正在变成分布式的。团队的一些成员在一个地方,而其他的可能在别处。这些地点甚至有可能位于不同的国家。这种安排在欧洲很常见,在那里,真正关心的可能是交流的语言。其他地方,时区可能是个问题(可能也是一个优势,因为分布式的团队可以全天候工作)。随着新兴的技术中心(如印度)广泛崛起,上述情况越来越普遍。在这一背景不,软件组件的可重用性需求就变得很常见了。 7 UML和建模 最近几年,UML己经成为一项关键的设计方法,它和逐渐增七的嵌人式软件团队规模关系密切。广义上说,使用设计工具的方式有2种:或者是作为编写代码的指导,或者就作为直接生成代码的一种手段。对于嵌人式软件来说,代码生成是有争议的,它可能会被争论(而且还很有道理)—每一个系统都是不同的,都有各自的特殊需求。这正是xtUML(可执行和可翻译的UML)吸引人的地方,因为它使得应用与架构清晰地分离了。这里所遵循的,是与面向对象编程同样的原则—使用工具和技术来平衡专家意见。 追踪所有被当前各种嵌人式系统开发趋势所驱动的新技术并非易事。孤立地看待其中任何一项技术也是毫无意义的,因为它们之间有着许多联系。例如,多任务与多处理器调试相关;基于标准的RTOS技术对处理器移植来说真是件幸事;使用设计方法学可以令实现更容易。 嵌入式系统软件开发技术研究:风河WRTM测试工具加速嵌入式系统软件开发 “今天,嵌入式设备生产厂商面临的最大问题就是软件太多,而他们能够用来进行测试的时间太少。过去,嵌入式设备设计制造团队软硬件工程师的比例为2:8,今天这个比例完全倒过来。这是因为,现在,一个设备区别于其他设备的决定性因素是软件,层出不穷的应用,使得嵌入式用软件的数量每2年翻一倍,而制造商却没有足够的能力来满足这一需求。不仅在消费产品领域,而且在工业、医疗器械领域都有time tomarketing的需求,在这种情况下我们开发了WindRiver test management(以下简称WRTM)4.0这款针对嵌入式系统的自动化测试软件。”风河设备测试产品市场营销副总裁IdoSarig说道。 风河的windriver testmanagement,是一个自动化的测试软件,能够帮助嵌入式软件进行更好的系统测试。这次开发的软件,是第一个为嵌入式软件设计的自动化的测试程序,与传统的测试程序不同,有很多新特性能够对系统进行测试。WRTM可应用于、汽车、医疗、网络、军工、航天,风河在诸多领域都展开了广泛的合作,并获得了客户的好评。 “虽然看起来,增加软件工程师的数量,进行软件开发和测试方面的投入会增加很多成本,但是如果不这么做的话,在大量依赖软件实现的创新中,软件故障会给设备制造商带来巨大的经济损失。比如几年以前,大众公司在中国市场销售的奥迪Q7SUV汽车,因为软件故障导致的召回事件,让这家汽车制造商损失数百万美元。而我们的测试软件可以帮助客户发现这类问题,并显著的降低测试的时间和成本,这样的成功案例有很多。我们的研究表明,用我们的软件可以将测试时间降低30%-40%。” WRTM4.0有一个重要的功能就是虚拟实验室管理器,他可以综合全球各个测试实验室整合出的测试信息,来查找系统问题。不仅如此,还可以为客户节约测试方面的投入。例如,一家美国电信公司,在测试管理方面的投入高达每季度100万美元,而每一位测试工程师希望拥有专属的测试设备,这在很大程度上造成了重复投资,虚拟实验室就解决了这样问题,既保证了测试设备的独立性,同时又避免了重复投资。此外,WRTM测试引擎可以测试支持各种版本程序语言的软件(C,C++语言),甚至是二进制代码,并且可以进行优化和给出参考建议。 “WMRT未来的挑战是如何降低测试的时间,现在很多公司的实验室都堆积了过多的测试案件,他们没有时间去处理或者为了不承担责任而干脆不予理会,WRTM能够帮助客户解决这些问题,找出不同版本之间的差别,并判断出最可能出现问题的位置,从而使得软件测试变得更加有针对性,节省测试时间。WRTM软件的未来目标之一就是尽可能快速、尽可能准确地发现问题。”
加强对软件工程项目执行情况的监管,保证项目的开发进度以及达到设计的目标要求,促进软件工程项目管理水平的全面提升。近年来,随着我国互联网技术的稳定发展,给软件行业发展提供了良好的前景,在当前时代快速发展的情况下,国内的软件企业有能力开发各种大型项目,有的项目甚至需要几年完成。鉴于软件开发项目这种特殊化的项目管理主体,特别是对大中型项目采用传统的管理方式是远远不够的。在实际工作中,如果能把内部控制理念运用到软件开发项目管理工作中,通过内部控制的方式,及时发现项目开发过程中出现的问题,发现问题后通过对问题的分析找出应对措施,从而规避软件开发项目开发失败的风险。 一、软件开发的项目管理概述 从项目管理角度来说,其主要指项目管理工作人员在有限资源的环境下,通过采用现代化管理方式和理念,对项目中包含的各项内容进行跟踪管理。也就是从项目设计环节入手,到项目结束整个过程进行统一规划、协调、引导和管理,以此保证项目目标的顺利落实。从软件行业来说,在落实项目管理工作时,涉及的内容主要以项目开发过程控制管理为主。软件工程项目是开发人员根据客户委托或企业为了获得新产品进行的开发活动。软件工程管理主要指对软件工程开发需求论证环节、软件开发环节以及软件支持环节等各项活动进行管理,保证给用户按时提供接受的委托工作,使用户构建高质量、高效率的软件工程项目。软件开发内部控制是对软件开发过程的各个环节做出风险评估,针对有可能出现的风险进行的防范;并在项目开发过程中通过测试分析等措施及时发现风险,并有效的将风险解决在萌芽状态,是企业的内部风险控制。也是在现代市场经济环境中,通过接受专业的控制建议,建立自我纠错的系统,通过系统的改善工作,将软件开发过程中的风险变成可管理的、可操纵的机会。 二、软件开发环节的风险识别 (一)项目设计阶段未经科学论证或论证不充分 在当前的市场经济环境下,随着全球贸易以及电子信息技术的发展,以及产业升级、软件国产化的政策引导,大数据时代已经来临,这些因素都给软件行业提供了更多发展机遇。软件企业在接受客户委托时,一般情况下是业务人员寻找客户、客户提出需求、双方多次商榷、达成委托事项签订委托协议,然后开发人员根据委托内容进行开发。但在这一过程中开发人员未参与到委托事项的论证过程中,因客户对提出的需求不明确,加上业务人员或售前工程师对软件开发知识的欠缺,导致没有从科学角度设计委托项目,造成开发人员边开发、客户边提需求、开发多次修改。最终导致软件的创新不足或加大产品成本、或造成无法按期交付产品的情况发生,情节严重导致项目停止。 (二)软件开发人员配备不合理 软件开发行业是劳动密集型企业、技术密集型企业。对工程师的技术要求较高,又是靠工程师手工完成的工作,没有办法通过智能化设备代替。项目组主要由实施工程师、需求分析师、概要设计师、详细设计师、前端开发工程师、后端开发工程师、测试工程师、部署工程师等人员组成,要根据开发项目的难易程度,配备能力匹配工程师参与开发。如果配备的工程师技能过高,可能造成资源浪费,成本提高;如果专业技能不能胜任项目开发,无法保证项目的质量和按期交付,导致成本提高或项目失败。 (三)开发过程管理不完善 项目经理是项目开发管理的责任人,软件开发中人力资源的投入成本是软件行业成本的主要组成部分。一方面反映了开发工程师经济利益,另一方面是企业经营成果和核心竞争能力的表现。所以,开发过程中人力资源管理是项目管理的重要内容。项目经理需要根据项目实施计划提前与各类别工程师协调好参与项目时间。如有项目变更,需及时调整实施计划,并通知项目组成员,方便工程师做好工作时间的调整。同时项目经理需要根据实施计划,保证各工程师在规定时间内按照设计的目标保质保量的完成工作。避免因项目进度等原因造成工程师进场后不能正常开展工作,造成成本上升的风险。 三、内部控制在软件开发项目管理中的应用 (一)项目设计阶段的内部控制 通常情况下,软件开发项目设计环节主要有两部分组成,一个是概要设计,另一个是详细设计。其中,概要设计也就是把软件需求转变成软件系统框架以及数据框架,通常涉及了系统框架设计以及数据框架设计亮点。系统框架设计往往包含软件系统中各项成分之间的关系,而数据框架设计更注重数据结构含义,该项环节主要强调宏观设计以及框架设计。项目设计阶段内部控制方面涉及的内容主要有四个方面,第一,加强对软件开发部门提供的软件框架设计方案进行核查,并监管设计执行情况。第二,结合实际情况,由软件开发部门提供的软件框架设计执行方案。第三,由监管软件开发部门对规划方案执行情况进行核查,并根据核查结果落实对应的设计工作。第四,检查软件开发部门提供的软件框架设计档案。同时,安排专业人员采用考核、评估和分析等方式对软件框架设计情况进行明确,同时保证软件框架审计和需求内外统一。确保采用的软件设计方案和标准具备合理性,提升设计方案的执行性和可行性[4]。软件开发企业在进行项目设计时由于缺乏可行性研究或者可行性研究流于形式、决策不当、盲目上马。并且因为设计环节缺乏科学的内部控制,无法合理保证项目开发成功,引发难以实现预期效益或项目失败的风险。因此,在进行项目设计时,应该注重设计内容,从实现软件设计目标和考虑软件的应用硬件环境两个方面入手进行设计工作的开展。为了避免上述问题产生,首先结合软件开发设计需求,做好相关人员岗位培训工作,使设计人员具备与岗位匹配的专业知识和胜任能力。并且,企业可以设置组织独立于项目之外的专业人员或机构进行评估论证并出具评估意见。其次,加强需求分析,需求分析作为软件工程的核心主要划分为两项内容,一个是非技术要求,另一个是技术要求。需求分析应该确保软件产品可以更好的迎合项目实际需求。在需求分析环节中,需要对客户的自身要求加以明确和核查。客户在提供软件需求分析执行规划方案时,需要客户的软件使用部门给予对应的配合。并且,客户应该根据规划要求落实对应的软件需求分析工作,客户在提供软件需求方案的过程中,要求对需求档案功能、型号、安全等级、相关数据等内容进行核查和明确。其次,编码阶段,在进行软件开发应用时可以采用流程管理的方式,实现对软件开发环节中各项资源投放情况进行监管和把控,以此让应用软件开发可以更好的满足实际需求。 (二)项目开发阶段的内部控制 项目开发阶段是项目进行投入的主要阶段,需投入大量的人力资源完成系统的整体开发与功能、性能、安全测试,并进行系统部署汇报演示。本阶段的成本在整个项目成本中占比较高,是内部控制的重点和难点,企业可以成立项目管理办公室,负责在项目整个开发过程中对项目进行定期检查和不定期对项目开发过程进行检查,及时发现风险,并做出应对措施,内部控制可以贯穿在下列的开发过程中。1.项目经理需提前将确认后的《需求规格说明书》发送给开发经理,开发经理研读《需求规格说明书》后形成问题清单,并由项目经理召开需求分析会,安排时间对《需求规格说明书》详细导读和问题答疑。开发经理及小组成员必须参与,会后形成《需求分析会会议纪要》。并对项目信息中的版本、难度、亮点三项内容进行补充修订。2.开发经理对已经明确的需求进行开发设计,向“技术评审委员会”提出进行设计评审,会后形成《设计评审会会议纪要》。3.需求导读后由项目经理和开发经理共同制定详细的《项目开发计划》以及确定的预估开发工作量,为以后需求变更时作为基准参考。4.开发经理根据《项目开发计划》安排开发人员和集中配置组对系统进行配置和开发工作。根据模块的难易程度分配开发工作。5.项目经理组织对开发组交付的系统进行功能、性能、安全、集成测试,并形成相应的测试报告。所有的bug(指电脑系统或程序的缺陷问题)项目经理负责登记,如需进行变更,填写《需求变更单》需客户确认。对在这个环节提交的bug需进行统计并计入项目绩效评价中,具体解决方案由开发经理及相关开发配置人员负责。6.项目经理对已经开发完成的系统为客户提供阶段性成果汇报,汇报期间客户提出的相关问题进行记录和汇总,如超出合同部分交由业务部门进行商务洽谈。7.系统功能整体满足客户需求后,由项目经理组织进行系统交付初验。项目经理提交初验报告及其他初验材料,包括但不限于概要设计、详细设计、数据库设计、测试用例、测试报告等,其中部分技术文档由产品中心协助准备。《初验报告》需客户确认盖章或签字。8.需归档的交付物:需求分析会议纪要、项目开发计划、概要设计、详细设计、数据库设计、测试用例、测试报告、初验报告、需求变更单、合同变更补充协议、产品/货物签收、初验材料。 (三)项目验收阶段的内部控制 首先,运行阶段。在系统试运行环节中,内部控制涉及的内容包含对试运行规划方案进行核查,设定试运行环节中业务周期、执行范畴、组织框架以及应急处理对策等;核查软件开发部门对用户培训内容、规模、对系统管理人员以及操作人员进行专业培训;考察试运行规划执行状况;监管软件开发部门试运行记录数据,在此环节中一旦发生问题,应该第一时间进行核查和分析,并做好对应的记录工作,及时进行处理。其次,系统验收移交阶段。系统验收移交作为项目是否可以顺利落实建设目标的检测标准,同时也是最终的检测结果。在此环节中,内部控制涉及的内容主要有:第一,考核竣工环节中各项数据的真实性和完善性,确保和项目实际状况吻合。第二,结合核查结果,对项目数量、质量等内容进行核实,同时给后续工程款项支付提供凭证。第三,核查软件开放项目各项资料,引导建设部门和开发部门交接对应的项目数据。第四,辅助用户对项目数据档案、源代码、产权说明文件、变更数据等内容进行核查,同时考核移交内容的合理性。具体过程如下:1.运行阶段:主要任务是完成项目试运行前期准备和培训工作,以及试运行期间的系统日常保障工作。此项工作主要由项目经理、实施工程师、运维工程师完成。(1)由项目经理编制《培训计划》,并组织项目组成员编写《培训文档》(用户权限设置、《用户操作手册》和操作视频必须准备好),并组织试运行前的用户集中培训(进行培训签到)。培训包括针对普通人员、部门领导和单位领导。(2)项目经理在试运行前和客户确认试运行时间周期和《试运行计划》方案,《试运行计划》方案中必须包括试运行的试用人员清单、业务用例、操作指标、每日的操作安排。(3)试运行分为两个阶段:第一阶段邀请有代表性的最终客户或业务骨干小范围试运行,第二阶段全员培训试运行。(4)试运行期间项目经理和运维人员督促参与试运行人员使用系统,完成试运行方案中规定的操作内容,并每周提交《试运行周报》给客户。(5)试运行期间系统出现的bug及需求变更录入进行记录,其中《需求变更单》需客户确认,所有问题由项目经理带领现场实施/运维人员跟进解决,同时开发团队保证bug不过夜。(6)试运行期间由项目经理负责记录收集系统使用情况,并提交公司需求评审和工作量评估。若产生非合同内需求变更或合同内需求变更累计超过评估总项目工作量需提交业务部门,收到经公司签批的《需求变更单》且经客户签字确认后方可继续实施。(7)完成试运行后,根据试运行期间提出的问题和需求整理成《试运行报告》提交客户确认。针对需求部分核对合同后,提请业务部门确认是否需要由商务进行洽谈,并由客户在需求变更单上签字。(8)本阶段需形成需求变更单、培训计划、培训文档(操作手册)、试运行计划、试运行周报、试运行报告、系统应急方案书面资料并归档。2.交付验收阶段的主要任务是组织召开项目终验验收会,提前准备验收材料,并邀请相关领导参加。此项工作主要由项目经理、实施工程师、业务人员完成。(1)如合同涉及第三方测评,项目验收前1个月必须启动第三方测评,项目经理根据测评要求准备相关文档,其中概要设计、详细设计、数据库设计等开发文档由产品中心协助准备。项目经理安排与第三方测评机构进行现场测评,并由第三方测评公司出具对应的《测评报告》。(2)项目上线试运行完成后,项目组根据情况申请验收,由项目经理提交《项目验收单》给客户签字盖章确认(非自然人客户确认验收必须以盖章为准),验收中必须注明“XXX项目完成验收”,或能够表达确认验收字样的文字;如客户方组织由专家进行验收,以最终《专家验收意见》单为准(需有专家签字的原件)。(3)项目经理准备验收会需要的《项目验收材料》、《项目建设情况汇报材料》以及其他相关文档。本着节能减排原则,如无特殊要求,可以提交电子版验收材料给客户存档。(4)如项目在验收前阶段接到客户书面投诉,项目在验收前阶段出现重大事故的项目整体进度延期50%以上的公司需派出专业团队进行专项处理。(5)本阶段的工作需形成测评报告、验收单、专家验收意见,验收会签到表,项目验收材料、项目建设情况汇报PPT书面资料并整理归档。 (四)质保阶段的内部控制 根据试运行方案推进系统的试运行工作,完成试运行并进入正式运行。本项工作主要由项目经理、运维工程师负责。主要控制措施应从以下几方面做起:1.正式运行期间发生的所有需求变更(非合同范围内),必须告知业务部门,由业务人员出面进行商务洽谈后方可进行,需求必须走《需求变更单》,由客户签字或盖章,如牵涉大范围变更(一般超出原合同工作量的15%),必须重新立项。2.项目经理需明确项目合同的维护服务期限和服务范围,以及是否提供人员驻场服务,并根据合同要求安排人员驻场或远程维护。3.项目运行满免费运维期后,项目经理(现场运维)应主动提醒业务部门,并由业务部门发起续签有偿维护合同事宜。如客户不签订合同实施部门有权利停止为其提供维护服务。4.进入运维期后,运维人员应定期对系统及服务器进行巡检。5.本阶段需形成的文字资料有系统巡检表、系统运维记录表、需求变更确认单。 四、结束语 总而言之,从当前软件行业发展前景来看,国内的软件开发技术越来越成熟,有能力独立承担大型软件项目的开发及研发。如果将内部控制管理有效的应用到软件开发项目中,明确各个环节中内部控制内容,结合实际情况,采取对应的内部控制对策,从源头上防止发生不必要问题,保证软件项目建设和开发安全,给软件项目的稳定发展奠定良好的基础。 参考文献: [1]王欣.房地产项目管理中内部控制的运用分析[J].中小企业管理与科技(上旬刊),2018(05):9-10. [2]贾自芳.内部控制在项目管理公司中的应用[J].财会学习,2018(11):243-244. [3]曾战锋.浅谈施工企业工程项目管理中的内部控制[J].中国国际财经(中英文),2017(24):96-97. [4]呼斯乐.试论工程项目管理中内部控制理论的应用[J].管理观察,2017(33):80-81. [5]邬维国.浅谈行政事业单位内部控制在建设项目管理中的应用[J].行政事业资产与财务,2017(09):43-44. [6]徐福艳,金颂时.核电项目管理中的内部控制审计程序及方法研究——基于三门核电内部控制制度审计案例分析[J].中国内部审计,2016(07):28-33. [7]赵景惠.内部控制理论在工程项目管理中的应用[J].合作经济与科技,2016(13):138-139. [8]卫建泽.内部控制在工程项目管理中的运用[J].山西财经大学学报,2013,35(S2):54. 作者:孔德威 单位:上海梦创双杨数据科技股份有限公司
对于软件产品,软件开发的方法以及相关技术的提高,可以促进软件产品的质量以及使用效率。在提高软件产品质量以及功能的同时,不断地缩短软件开发的周期,降低软件开发成本,是软件市场的根本。使用现代化的信息技术,对软件开发工作进行项目的管理与创新,对于相关企业具有重要意义。 1软件开发的问题以及信息化的软件开发项目优势 1.1软件开发的现状及问题 大部分企业软件开发的实际情况,是在需求活动完成之前就进行实际的开发工作,大多数团队都未能做到按照规定执行瀑布开发工作。软件的开发与硬件的开发之间最大的区别是,随着开发程度的不断加深,软件开发常常会出现变更,这就要求软件要及时的做好更新与升级。目前大多数的软件开发团队并不具备有效的开发与管理工具,使得相关管理工作效率低下,很难做到及时的对软件进行更新与管理。并且对于相关需求从设计到编码,再到对软件的实际测试,缺乏一体化的管理以及监控机制。 1.2信息化的软件开发项目优势 信息化的软件开发项目优势的第一方面就是,由传统的手工向自动化进行转变。传统软件开发项目当中,对于工时、评审、缺陷等数据的记录,要进行人工书写,并且相关的审批工作都是采取纸质的形式完成。在这一过程需要花费大量的人力和物力。而信息化技术,可以使得数据信息的产生、评估、汇总等工作做到自动化,解放大量工作人员,提高软件开发工作效率;第二方面优势是可以有效的保证信息记录的及时性以及准确性。信息化手段可以做到对相关信息的及时性以及准确性进行保证。并且在实际的项目执行过程当中,信息系统会对操作记录、工时、软件缺陷等信息进行保存,确保在这一过程信息的实时性以及有效性;第三方面优势是使得信息具有可追溯性。传统的人工记录大多使用纸质对相关信息进行保存,纸质的信息会出现模糊丢失现象的发生,而利用信息化进行保存与管理可以为相关信息提供完整的追溯性。 2基于信息化的软件开发项目管理的实施方法 2.1专业工具的部署 实现软件信息化管理,首先要部署各个阶段需要的专业工具,具体如下:(1)需求开发活动,对软件管理信息化。部署专业需求管理工具,将过去计划为主的方式变为以需求为主,驱动任务开展,建议全生命周期全维度管理模式,实现对软件的全过程跟踪管理,以需求作为信息化管理的主线,从需求到设计,再到编码与测试进行跟踪,自动识别变更影响域,收集各阶段需求信息;(2)设计活动,将线下设计工作逐渐转。为线上设计,在设计工具的应用下,人们能够以需求框架作为参考,开展设计工作,按照要素输出情况进行文档设计,满足需求覆盖了与标准符合率;(3)编码活动,以往的电子或纸质配置。流程方式逐渐被信息化手段取代,基于SVN服务器建立起专业的管理工具,开发库、受控库与产品库之间相辅相成,帮助工作人员完成编码工作与测试工作;(4)测试活动,专业的自动化测试工具。可以对单元测试、系统测试起到良好的作用,系统能够自动收集软件质量信息,并对软件质量情况加以研究。 2.2信息监控机制的不断完善 面对已经收集到的信息,工作人员对各工具数据信息完成分析以后,可以得到与产品质量有关的内容,同时获得关于人员能力与工作效率信息,这些真实信息可以作为软件评价研发工作的参数指标,也可以成为项目管理者进行决策时的有效依据。建议人们在进行信息化建设的时候打造质量信息监控系统,整个监控系统可以贯穿于项目生命周期,为人们展示软件从研发开始各个过程的质量信息,完成对信息的自动监控,对风险进行预知与监控,分析出风险趋势后予以告警,引起工作人员的关注,并根据实际风险采取有效措施。 2.3信息共享以及评估机制的建立 传统的信息化软件灵活性不足,人们对细化的信息化要求增加,希望软件可以充分体现个性化,并实现信息之间的沟通与共享,完成专业工具的部署工作后,还要将各个工具之间的信息通道打通,让信息孤岛可以连接成信息平台,实现自动化信息收集、信息分析、信息评估,将质量问题如实展示。要求工作人员明确质量信息内容,对软件产品信息、人员能力情况以及工作效率情况有所掌握,开发出相应的评估模型。进一步识别信息要素,梳理共享信息流向,将信息通道成功打通。ERP系统是一套信息化管理系统,是企业实现信息化、数据化管理的重要手段。ERP是当今世界企业经营与管理技术进步的代表,对企业来说,应用ERP的价值就在于通过系统的计划和控制等功能,结合企业的流程优化,有效地配制各项资源,降低成本的同时提高市场占有率,实现经济效益的增长与市场信息资源的共享,完成企业内外合作伙伴之间、企业各部门之间的信息共享。 2.4结合本地化、完善信息化 所谓的本地化就是集合自身软件制作团队、以及客户的需求、相关文化、相关技术以及相关工具的具体情况等因素,对软件进行信息化的管理与设计,并制定出相关工作流程。对于软件开发项目研发模式的信息化完善,要始终跟随时代的技术而进行变化。信息化手段要做到与时俱进,对于相关的软件信息系统,要做好改进以及完善工作。不断地根据客户的反馈与意见、软件实际的使用率等情况进行进一步的完善,不断地优化信息系统的相关功能,为软件的开发与管理工作提供有效的保障。 3结论 综上所述,在软件开发过程当中,使用信息化技术可以有效地提高软件开发的质量。经过上文分析,基于信息化的软件开发项目管理,可以对软件质量情况不断进行优化、对软件的风险以及生命周期做到有效的监管、不断优化信息系统的相关功能,为软件的开发与管理工作提供有效的保障以及加深软件的使用等优势。因此在以后的软件开发过程当中,要不断地结合信息化技术对软件开发进行进一步的完善与管理。
1引言 中国是人情社会,家谱是不可缺少的宗亲人事通讯录,其潜在作用越来越明显。做一个专业、系统的电子化家谱平台,不仅可以拯救没落的传统文化,拥有巨大的市场潜力,并且有着巨大商机。 2调研用户需求 2.1调查问卷 本次调查自2017年8月始至2017年10月终,共计向南昌市五所省属本科院校、高职专科院校以及三所国营企业发放纸质问卷和电子问卷800余份,回收578份,有效问卷926份,有效率约70%。 2.2调查结果分析 根据调查结果显示,在被调查的五所高校和三所国企中,与亲戚之间称呼熟悉的人群达到94.82%,但却有54.11%的人群只与直系亲属关系密切,这说明即使是身处通信极为便利的互联网时代,许多族系亲人间还是相逢不相识。我们又发现,有85.54%以上的人群希望能够增强亲人之间的联系。可见在中国,宗亲观念根深蒂固,我们的电子家谱项目非常符合人们的精神文明需求。 3电子化家谱平台的可行性分析 3.1行业现状 目前98%以上的家谱未互联网化,这一块市场几乎是一片空白。在互联网时代,家谱互联网化是历史趋势。市场上几乎全是传统旧式的家谱记载,甚至电子家谱都甚少。在市场竞争不激烈的前提下,软件推广上限高。。 3.2产品优势 1.准确、清晰、易查看。新谱资料可实时入谱,保证信息的准确性;随时对错误信息进行更新;还可节省大量旧谱重修与翻录的支出,减少因翻录造成的二次错误,减少对原老谱的编辑、审校过程。 2.安全、私密、易保存。互联网家谱相对于传统家谱来说,它具有更安全、更私密、易保存的特点。 3.便于修改、续谱。结合传统谱的模式与现代人的需求,不受时空限制,让全世界的合作者异地工作,共同管理,可以随时随地进行编修工作。 4.实现家族零距离沟通 互联网家谱不受时间和地域的限制,随时上传、随时编辑、随时修改,真正实现零距离沟通。 4关于电子家谱平台软件功能设计 4.1前端功能 1、族谱入库。一个家族设立一定数量的管理员,只有管理员才有权限添加族谱信息。其他成员可以在小程序首页自行查看家庭成员信息。这样的在线自行补充功能是旧式家谱无法达到的。 2、族谱更新记录。与数据库的日志文件相似,当管理员对族谱进行修改时,日志记录了管理员对族谱的每一笔操作,以便今后的修定。 3、众筹修谱。利用微信小程序提供的微信支付接口,一键生成支付二维码,轻松筹款,让每个人都可以为家谱略尽微薄之力,一点一滴的支持,最终汇合庞大的资金资,让修谱成为家族里人人皆可参与的事情,且让原来工作繁琐的修谱变得更加简易操作。 4、一键拉群。生成群二维码,使族内成员可以随意在微信进行交流,甚至不需要切换app。旧式家谱除了提供查阅,并未有其他特殊之处。互联网家谱将产生巨大的社交作用,氏族内的人可以自建小群体,自由交流,商讨生意等各方面潜在的社会合作,将产生不可估量的影响。 4.2后台功能 1、账户管理。由于使用的是微信用户的账户信息,即需要实现后台与微信平台的信息交互,保存账户信息以及用户所进行的其他操作。 2、权限管理。本平台有一套权限管理系统。它规定了一个家族按比例最多能有几个管理员,管理员相对于普通成员所允许的操作有增、删、改家谱信息,以及一键众筹修谱。 3、家谱管理。对于用户发送给后台的家庭成员信息,后台需要对其数据进行系统的规范化管理。对于家谱的数据结构我们采用三叉链表存储二叉树。(使用三叉链表不仅可以对字节点进行查找,还便于回溯查询父节点以及节点间关系的确定) 5电子家谱平台的应用价值 (1)互联网+电子家谱的团队提供上门录谱,现场服务的业务,使修谱更简单、更高效、更完备、省时省力,是修谱服务的最佳选择。 (2)我们将凝聚力量为客户提供族谱的相关策划设计、编辑印刷、数据库上网等优质服务。尽可能的完善用户体验。 (3)扩大宣传范围之后,我们将推出周边产品,举办各类乡村族系活动,成为各个家族不经常联络的成员联系的纽带,为社会产生正面影响。 6结束语 互联网家谱是传统家谱的延伸,互联网家谱是传统家谱的升华,是传统家谱的新家。其灵活性大大降低了修家谱的门槛,对子孙后代来说具有十分重要的意义,互联网家谱让家族观念继续向文化传承和亲情延续。作为一个高度去中心化的电子化家谱平台,有着较高的可行性和商业价值。
引言 在信息化时代下,我们的生活、生产模式都发生了巨大的改变,比如在计算机技术的不断进步和发展下,其为人们的生活就带来了巨大的便利。现如今,计算机技术已经被广泛地应用在各行各业中,并且发挥着尤为重要的作用。而计算机的运用就是根据编程语言编写的程序运行的。因为不同的编程语言在思想和方法上存在不小的差别,因此在选择不同编程语言开发软件的时候,相关工作人员就需要及时调整自己的思路,这样就可以保证计算机软件开发的质量。不仅如此,在编程方法的辅助之下,各种现实问题也可以得到解决,通过科学合理的数学模型可以让相关的工作变得更有效率,从而大大地节省了劳动资源。这其中的关键就是需要选取合适的编程语言展开软件开发。 1计算机中常被使用的几种编程语言 1.1计算机中的C/C++编程语言 在计算机当中,C语言这种变成语言是将过程作为中心的,而另一种C++语言则不同,其是以对象作为核心的一种编程语言。在诸多计算机编程语言当中,C语言算是十分有难度的一种,因为C语言拥有高等语言的特点,还拥有低等语言直接操作硬件的能力,正是因为C语言的这些特点,若是编程人员要这种编程语言熟练的掌握和深入的理解,就必须具备十分扎实的基础和熟练的操作[1]。C语言和C++语言两者之间最大的不同之处就是其解决问题的思想和方法是存在差异的。具体来说,C++语言能够把面向对象可以接触的内容扩展,不仅如此,C++语言当中具备十分丰富的设计概念,比如数据包封对于C++语言来说都是十分常见的。C语言与C++语言虽然在解决问题的思想和方法上是不同的,但如果能够将这两种编程语言可以有效地结合在一起,就能够发挥出很大的功能。 1.2计算机中的JAVA编程语言 现阶段的JAVA语言在计算机当中可以说是具备十分广泛的用途,和计算机编译执行语言与解释执行语言两者相比,JAVA语言还是存在一些不同之处的。JAVA语言拥有面向对象以及可跨平台的特点,不仅如此,JAVA语言中还包括简单、分布式性能高等优点,其能够把一个强大语言当中的全部功能都提供给计算机运用[2]。不过JAVA语言对于运行的条件也是相对严苛的,还有就是JAVA语言在桌面程序开发中的运用效率也相对较低。 1.3计算机中的C#编程语言 C#语言作为一种计算机编程语言,其拥有简洁、安全、精确等优点,其面向的对象大多是数据的处理,这也是因为微软将来的发展方向,其将会集中在分布式应用程序。具体来说就是在客户计算机以及服务器上把处理的过程一起,因此C#语言的研发针对的就是使应用程序方面的问题。相比JAVA语言,C#语言存在一定不同之处,其并未把指针以及手动内存管理完全抛开。不仅如此,正是对C#语言的不断研发,相关经验得到了大量积累,最终诞生了.net平台。 2如何对计算机编程语言做出合适的选择 在计算机软件开发当中,编程语言的使用范围其实是不确定的,这些编程语言都可以进行有效的结合,从而形成软件系统,可以说这些编程语言充满了各种可能性。不过,要想达到如此要求,其关键前提就是软件工程师必须对这些编程语言有着十分深入的理解和掌握[3]。不过,这些编程语言却是存在共同之处,这就类似于各种语言之间也有一定的相同之处。因此,软件工程师可以先对一种编程语言进行熟悉和掌握,这样其对于其他编程语言的掌握也会变得更加容易。 2.1选择编程语言时要对整体内外环境进行考虑 在软件开发的过程当中,其前提便是需要具备足够的硬件环境,因此,必须对软件开发的硬件环境加强重视,在编写程序时,选取合适的编程语言也是十分关键的阶段,需要对语言的分布选取进行有效的确定,还需要将编程语言的环境适应力以及整体框架考虑进去。在选择合适编程语言的过程中,应该尽量结合行业以及使用范围的要求[4]。一般而言会发生编程语言现在符合环境,但如果计算机设备进行更新,软件也会发生不适用等情况,如此便会导致计算机无法正常的使用。因此在开发软件程序前,必须选取和软件整体内外环境相匹配的编程语言,如此才可以让最终编写好的程序能够跟上科技发展的步伐。不仅如此,选择好的编程语言还需要具备容易调整等优点。 2.2选择编程语言前要对应用的行业和领域进行考虑 在选取编程语言之前,还需要针对各种影响因素展开深入的分析,在其中第一个要思考的问题就是编程语言应用的行业以及领域,可以从编程语言应用行业与领域的差异,对不同类型的编程语言特点进行相应的结合运用,之后再选取符合软件开发的编程语言编写。比如,若是软件开发其针对的是底层行业,其程序编写就可以选取C语言以及C++语言。由此可见,编程语言应用领域的不同也对软件开发产生很大的影响[5]。 2.3选择属性的编程语言进行使用 计算机是根据相关编程语言编写完成的程序运作的,因此,在计算机软件的开发当中,相关工作人员需要运用自身熟练的编程语言来进行编写。若是工作人员不用自己熟练掌握的编程语言编写,就会导致工作人员编程时间的增加,不仅如此,在编写程序的过程中,编程人员也会因为编程语言的不熟练而十分的吃力。人们在使用计算机的过程中,还需要输入相关的编程语言从而对计算机相应指令,之后就可以在相应的平台上利用编程语言的优势来操控计算机。除此之外,在软件的开发当中运用熟练掌握的编程语言,可以对自身熟悉的编程语言进行一定的创新,这样就能够让编程语言变得更为灵活,从而提升软件开发的效率。 3结语 随着信息化时代的不断深入,计算机在社会各行各业中发挥的作用也越来越大,作为社会中应用极为广泛的电子设备,其已经逐渐成为了人们生活、生产中的重要组成部分。本文对计算机编程语言中的C语言、C++语言、Java语言、C#语言的特点以及应用范围展开分析,除此之外,还掌握了一些编程语言在软件开发当中的使用规则。计算机就是根据编程语言所编写的程序运行的,编程语言的选取对于计算机软件开发有着很大的影响。因此,需要结合计算机软件开发的需要,选取合适的编程语言,不仅如此,还可以采用已经熟练掌握的编程语言。 参考文献: [1]张闻其.探究计算机应用软件开发过程中不同编程语言的影响[J].信息记录材料,2018,19(1):89-90. [2]成孝俊.不同编程语言对计算机应用软件开发产生的影响研究[J].电子技术与软件工程,2017(20):57-58. [3]周公平.不同编程语言对计算机应用软件开发的影响研究[J].无线互联科技,2017(15):44-45. [4]司马大伟,李超玲.分析不同编程语言对计算机应用软件开发的影响[J].电脑编程技巧与维护,2017(15):13-15. [5]周俊威.编程语言对计算机应用软件开发的影响[J].电子技术与软件工程,2017(7):57-58. 作者:戈健 单位:机械工业苏州高级技工学校
软件测试论文:嵌入式计算机软件测试关键技术初探 摘要:嵌入式计算机是计算机行业中一种比较先进的计算机技术。随着科学技术的不断发展,嵌入式计算机的使用范围也越来越广,在嵌入式计算机使用的过程中,能够有效地保证对需要的功能的实现。但是,由于嵌入式计算机软件的结构相对于其他类型的计算机来说比较复杂,这就要求我们要能够按照使用需要,及时对嵌入式计算机软件技术进行测试。文章根据现阶段嵌入式计算机与嵌入式计算机软件的概念,针对开发使用的技术进行分析,找出如何使用相关的技术对嵌入式计算机的软件进行测试。 关键词:嵌入式;计算机软件;测试;关键技术 前言 随着我国的工业不断地进步,科学技术的不断发展,嵌入式计算机技术也得到了很大程度的提升。我们身边普通的计算机并不是嵌入式计算机,嵌入式计算机指的是专门针对某一个项目或者是某一个行业进行开发的专业计算机。嵌入式计算机不仅仅能够实现对需求开发的功能,有效地提升工作的效率。嵌入式软件是嵌入式计算机中安装的软件,一般情况下,嵌入式软件都需要根据不同的工作需要,完成相应的功能,这就要求嵌入式软件要具备一定的稳定性,对嵌入式计算机软件进行测试,能够很好地保证嵌入式软件的正常工作。 1什么是嵌入式计算机 嵌入式计算机指的是针对某一种技术,或者是某一种网络、某一种功能等专门开发的计算机系统,利用计算机技术,加入嵌入式系统,能够实现对计算机硬件和软件功能的增多,能够更加适合实际运用的需要。嵌入式计算机针对某一种功能的需要进行开发,对开发的成本、功能的可靠性以及计算机的大小等因素,都有十分严格的要求。通过对计算机处理器、硬件、系统、应用等进行嵌入式技术的操作,能够更加有效地保证计算机技术的实现。嵌入式计算机大多被应用在工业生产中,能够提升工作效率,保证工作的质量[1]。 2什么是嵌入式计算机软件 嵌入式计算机软件指的是在嵌入式计算机中使用的软件,能够进行独立功能的操作,嵌入式计算机软件包括嵌入式微处理器、传感器、控制器、定时器、储存器等等。在嵌入式计算机中使用的电子芯片或是电子器件,将嵌入式计算机软件安装到嵌入式计算机中,能够有效地实现常规计算机不具备的功能,比如:实时监控功能、对设备的管理功能、数据处理功能、进行移动计算等等,真正地实现了现代化自动化的电子处理,是实现现阶段自动化与智能化的社会生产力的重要途径,嵌入式计算机软件就是自动化的核心部分[2]。我们可以将嵌入式计算机软件分为:简单嵌入式系统和复杂嵌入式系统两种。简单的嵌入式系统只能够完成一项功能,比较典型的简单嵌入式系统就是单片机。单片机通过ROM技术就能够实现对系统的使用,能够达到对程序控制的目的。复杂嵌入式系统的功能与普通的计算机系统功能并没有什么过大的区别,只不过在复杂的嵌入式系统中,安装了一些微型的嵌入式操作系统,以及嵌入式应用软件在计算机中,能够使计算机的功能得到相应的完善,这就是嵌入式计算机软件的作用[3]。 3什么是嵌入式计算机软件的测试 嵌入式计算机软件相比普通的计算机软件来说,更具有专业性,嵌入式计算机软件只能够在某一个制定的平台或者系统中运行。但是嵌入式计算机软件的开发环境与运行的环境还存在很大的差异,不能够使用同一网络环境。嵌入式计算机软件需要使用交叉开发的形式,在进行开发的计算机中,安装并运行开发工具,开始对软件进行编译,再将编译完成的软件通过下载的方式,将软件发送到目标计算机中,当开发计算机与目标计算机都有了嵌入式软件,就能够建立通讯连接,并且能够对软件下达命令、下载数据等等。两台计算机的操作系统不同,计算机的处理器也有着一定的差异,这样的方式会增加嵌入式软件开发过程的步骤,增加了开发步骤的复杂性[4]。我们将对嵌入式软件进行开发的计算机称为宿主机,对软件进行接收并运行的称为目标机。宿主机对使用开发工具,利用宿主机的操作系统对计算机软件进行开发,通过通信连接将计算机软件发送到目标集中,尽管这一系列的操作看似很简单,但是却需要强大的系统和硬件的支持。在这种形式下进行运行的嵌入式计算机软件开发的活动,一般情况下,宿主机都是我们平时工作生活中使用的通用计算机,也可以是开发微机或者是软件工作站等等。目标机与宿主机不同,目标机能够承载宿主机开发的嵌入式计算机软件的运行,将嵌入式计算机软件安装在目标机中,就能够实现嵌入式软件的功能[5]。 4对嵌入式软件测试关键技术进行研究 4.1对宿主机进行测试的技术研究 宿主机指的是对嵌入式软件进行开发的计算机,对宿主机进行测试的方式有两种,即静态测试与动态测试两种,这两种方式使用的是代码逻辑的方式对宿主机进行测试。4.1.1静态测试技术很多计算机软件开发的专家,在对计算机软件进行检测的时候,通常使用的都是人工检查的方式,由设计人员组成一个小组,小组的成员之间互相交流对软件开发使用了哪些程序、使用的是什么算法进行的计算,并交代设计数据与软件的模块之间有什么样的关系等。这样的方式虽然能够在一定程度上找出软件中是否存在相关的问题。但是,由于现阶段嵌入式计算机软件的结构越来越复杂,设计的步骤越来越繁琐,软件设计的规模也在逐渐扩大,这就要求在一款软件的设计过程中,可能会有很多的软件设计师、工程师等一起参与到软件的开发工作当中,每个工作人员的分工也大有不同,再使用从前的方式对软件进行检查,就会加重检查工作的负担[6]。这就要求我们,要根据现阶段的计算机软件开发的实际情况,找出最合适现阶段软件开发的检测技术,对原始的计算机软件的检测工作进行优化升级,能够使计算机软件的检查工作更加简便。在检查的过程中,加入适当的检测技术,先对整个嵌入式计算机软件的开发软件系统框图进行整理,并且对其设置自动连接的相关量,软件的源代码编程能够通过自动化技术进行查找。这样的方式能够使软件审查工作的工作效率有很大的提升,能够使验证工作的结果更加准确有效。我们可以通过静态测试的方式,得到软件中相关信息[7]。(1)软件的源代码程序绘制过程的逻辑图,以及对软件进行控制的工作流程。(2)软件系统完整的逻辑框图,系统内部关系调节的网络图。(3)软件程序运行的路径分析图。(4)软件生成的不同部分的显示图。(5)软件不同部分显示图的位置信息,操作的频率等信息。这些信息都能够在静态测试中得到实现,首先要使用静态测试的系统对软件的操作逻辑和控制系统进行分析,能够有效地将软件分析的更加精确,在进行软件测试的过程中,能够使测试的结果更加准确,并且能够将测试结果更加精准的表现出来,检测出软件系统中是否存在相关的问题,并以此对软件的系统进行改善。4.1.2动态测试技术对宿主机的动态测试主要指的是对软件的代码进行测试,能够有效地检测出代码的执行能力,并且分析软件代码的覆盖率,能够有效地检测出软件的功能。能够有效地了解到软件的性能,还能够通过分析更加了解软件中代码的执行情况,这样的检测方式能够促进对软件系统的改进,推进了软件系统的发展,可以根据检测的结果,对软件的功能进行优化和完善[8]。动态测试技术还能够对软件设置的完成程度进行测试,能够对其中已经开发完毕的数据进行检测,检查其中是否存在缺少的数据,这样的方式能够为软件的开发工作提供重要的依据。动态测试技术能够将软件中的每个函数的情况,以及对内存的分配情况等进行检测,能够将软件中各种元素的分配情况进行显示,并且能够同时对相对应的数据、代码、函数等进行显示。 4.2对仿真机进行测试的技术研究 仿真机作为宿主机与目标机之间重要的环节之一,通过仿真机的使用,能够有效地完善计算机软件测试的功能以及软件自身的性能,比对宿主机的测试更加直观、更加真实,并且能够对软件中主要的技术进行仿真测试,使测试的结果更具有说服力。其测试的结果既能够作用于宿主机,还能够作用于目标机。4.2.1仿真机测试数据获取技术现阶段,针对仿真机的数据监测,一直都是技术上很难实现的问题之一,很多对嵌入式软件的检测都需要在测试的过程中先提供软件设计的源代码,这样的方式需要使用的数据量比较大,这就要求我们要针对这类数据的准确性进行技术的提升,才能够保证检测数据的精准性。仿真机监测技术能够从一定程度上保证数据信息的完整性,在对数据进行完全的缓存后,再使用测试工具进行修改,能够从很大程度上保证数据的正常输入,在测试结束之后,还能够对已经进行缓存的数据进行读取,并将数据整理保存到计算机中。但是,需要注意的是,使用这种方式进行测试,还要保证数据缓存的大小不会超过测试的容量,测试才能够顺利的运行[9]。4.2.2仿真机仿真测试技术对嵌入式计算机软件进行仿真测试,能够在测试的过程中,对数据进行集中地管理和处理。仿真测试需要一定的技术支持,能够将数据进行仿真模拟,在模拟的过程中,能够看到技术的使用过程,再按照每款软件不同的性质,分类仿真,使测试的结果更加真实可靠。还要保证在对数据的检测过程中,传输信号是能够稳定运行的,才能够保证仿真测试的数据是实时的。 4.3对目标机进行测试的技术 目标机相对于其他部分来说,在测试的过程中,更需要注意目标机的综合能力,还要能够测试软件自身的交互能力,并且测试软件是否安全可靠,目标机测试的结果能够更加真实地体现计算机软件的性能[10]。4.3.1故障注入技术嵌入式计算机软件在计算机中运行的状态,可以通过人为的方式进行设置。但是,这就要求目标机的部件能够具备一定的功能,能够按照设置的时间、设置的运行方式等进行运作。故障注入技术指的是在目标机中,通过对某一部分的测试,能够更加有效地检验目标机中的性能,比如:鲁棒性测试、边界测试等等。使软件在运行时的状态能够表现的更加明显。4.3.2内存分析技术嵌入式计算机的系统,一般情况下内存都会比较小。使用内存分析技术,能够有效地保证在分析的过程中,找出计算机内存存在的问题。在问题的分析过程中,能够防止内存中的某些内存会产生分配错误的问题,很多的计算机软件故障都是因为内存分配的错误造成的。这就要求我们要通过内存分析的技术,来对内存进行判定。一般情况下,我们都会选择硬件的方式进行分析,但是硬件分析的方式需要耗费的资金比较多,而且分析工具具有一定的环境限制,但是软件分析会对计算机的代码产生一定的影响,并且会影响内存的运行。这就要求我们在进行内存分析的过程中,要能够按照不同的情况对测试的方式进行选择[11]。4.3.3程序性能分析技术在嵌入式计算机运行的过程中,还有一个十分重要的因素就是程序的性能。一般情况下,嵌入式计算机对程序的性能都有一定的要求,能够在已经设置的时间内,对某一数据进行中断处理或者是生成处理,这就要求我们要在测试的过程中,要能够根据实际情况决定先对那一部分的代码进行优化,因为嵌入式计算机的优化程序的时间是很宝贵的,要尽可能地避免对一些没有必要的程序的优化工作。使用程序性能分析技术,能够将计算机内的数据进行整理,并按照消耗的时间,消耗的类型,消耗的历时等进行分析。按照这些数据,能够对计算机中的数据进行判断,决定先对哪一部分的程序进行优化,才能够保证对数据检测的工作效率,保证对程序的优化是有效的。使用程序性能分析的工具,不仅仅能够显示计算机中每一部分的优化需要多少时间,还能够按照需要优化的程度进行排序,引导工作人员对系统程序进行优化分析[12]。在对程序进行测试的过程中,可以先对计算机软件中的代码进行分析,能够找出已经被使用的代码,以及计算机接口的工作效率等等。可以在测试的过程中使用插桩的方式进行测试,分析完毕后在可执行的代码当中适当地融入嵌入式软件,并将二者进行综合测试,得到的结果就能够明确地看出,其中的代码哪些已经执行,哪些被遗漏,或者是哪些数据的信息覆盖还不够全面。需要注意的是,使用这类分析工具进行分析,很可能会影响到计算机软件代码的运行,导致软件运行出现故障问题。 5结束语 嵌入式计算机与我们的生活之间的关系十分紧密,能够产生巨大的影响,我们身边很多部分都使用了嵌入式计算机进行功能的完成和实现,比如:飞机的飞行控制器,或者是我们家中很多的家用电器,冰箱、洗衣机等等,都在一定程度上使用了嵌入式软件技术。随着科学技术的进步越来越快,嵌入式技术也越来越繁琐。这就要求我们要在不断地使用中对嵌入式技术进行完善,对嵌入式技术进行优化升级,能够从一定程度上保证嵌入式技术的发展,对软件进行测试,能够大大地提升嵌入式计算机软件的稳定性。 作者:王琨 单位:西安外事学院工学院 软件测试论文:软件工程中软件测试的应用 1软件工程中的软件测试 1.1软件测试的含义 软件测试根据用户的使用目的,将成功开发的软件进行相应的纠错动作,从而披露该软件的各种问题及缺失因素,促进研发人员进行相应的改进,从而达到完善软件的目的。 1.2软件测试的关键性阶段 主要有以下两个关键性的检测阶段。第一阶段是软件开发过程中各主要单元模块完成后进行测试。这一阶段测试可以将缺陷控制在最小单元模块内,给研发人员最快的测试反馈,促使其完善单元模块的功能,达到用户的使用要求;第二阶段测试是软件系统全部完成后,进行全方位的综合测试,查找系统在使用过程中可能存在的问题。此时,需要根据系统要实现的功能进行多种测试工具的应用,以其找到系统不符合要求的功能或性能瑕疵。 1.3软件工程中软件测试的方法 对软件工程进行软件测试时,不同软件可以运用不同的测试方法。现阶段,主要以软件测试在测试过程中是否需要将程序进行完全运行来判断测试方法,不需要系统程序运行就能完成测试的方法称为静态方法;需要系统时时传送相应数据,并通过相应程序检测系统是否达到用户的期望值,是否存在运行逻辑上的问题和算法上的缺陷等的测试方法称为动态方法。目前,静态测试方法应用较广的有静态排演法、软件检查法和软件审查法。随着软件测试方法的不断创新和完善,新兴的测试方法如静态自动分析、分析模型等方法不断得到应用;动态测试方法随着精细化测试进程的深入逐渐细分为单元测试方法、集成测试方法、系统测试方法。这些测试方法相较于静态测试方法,具有范围广、测试成功率高、内容覆盖面大、应用程度高等特点。如白盒测试、代码覆盖测试等。 2软件测试在软件工程中的作用分析 2.1软件工程项目需要软件测试进行全方位的辅助管理 所谓软件工程项目就是将用户的要求进行立项管理,通过建立项目组、研究用户的使用目标来确立项目目标,对目标现状进行系统研究与分析、总体目标细分阶段性目标以及规划项目总体方案等,将软件开发过程建立在项目管理过程中。在这一过程中,各阶段性成果都需要软件测试来校验其可行性,从而辅助软件工程项目步入更完善的项目管理中。首先,软件工程项目需要精细化项目管理和集中项目管理两者协调统一。因此,需要设立软件测试机构,能够对项目细分的各阶段、各模块进行软件测试。其次,项目组人员组成和责任落实要依照规章制度实施。要体现软件测试的重要性和实际意义,测试机构负责人为项目组组长的最佳人选。其组员为各项目负责人和其他测试人员组成。软件测试结果必须立即反馈到软件研发人员、程序员及系统分析人员等相关人员手中,以期促进其团结协作,将软件各部分呈现出的问题解决。最终满足用户的使用要求,实现软件设计的目标。可见,软件测试的辅助作用,对于软件工程项目的精细化管理、软件相关技术的综合管理等至关重要。 2.2软件工程项目实施反促软件测试发展 研发一个新的软件系统时,其核心内容包括目标确定、框架设计、分支设计和编码应用等,这些核心内容均需要软件测试来实现其统一性和兼容性。系统目标是软件测试的最终目的,软件测试需要围绕系统目标进行缺陷的发现和反馈,从而实现各阶段测试的统一性和完整性,从而促进系统的协调和完善。经过软件测试的系统,必须保证达到项目目标,且在长时间运行下无重大bug。从这一过程来看,软件测试是在软件工程项目实施中得以发展的。软件测试机构并不是真正意义上的独立,其“独立”仅是功能上的独立。实际上,在进行软件工程项目实施的整个过程中,无论是整体设计还是精细化管理,都需要软件测试参与其中,以测试角度对软件工程项目的设计和实施进行指导和辅助,从而纠正一些设计上的错误和细节上的缺陷。这种参与的直接性促进软件测试必须紧跟项目研发现状,才能提出及时有效的参考意见,促进项目顺利开发。软件编码规范是软件研发团队必须规范执行的,而这种规范的编码刚是软件测试机构的首要任务,制定规范要严肃,执行规范要严格,才能给用户呈现出高质量的软件产品。 2.3软件测试原则 软件测试的原则是在其测试的基本目的和要求下产生的,因此,在进行软件测试时,必须注意其原则性。(1)坚持用户使用目的,坚持项目总体目标和阶段性目标的实现原则;(2)测试“精细化”即细分分支、单元模块、阶段性成果、系统全面测试等随时进行;(3)测试时间要越早越好,频率越高越好;(4)测试中逻辑性检测和算法检测要注重;(5)测试要结合数据检测进行;(6)保证测试的严肃性;(7)测试坚持第三方进行原则;(8)不合理条件值都要进行测试;(9)测试过程、方法、用便、结果、完善等都要记录在案,便于故障定位和日常维护。 3自动化软件测试技术分析 随着智能化技术和自动化技术的不断深入应用,在软件测试中,自动化软件测试技术得到创新和发展,并在软件开发中应用得越来越广泛。所以,人们将各种自动测试的效果进行评估,将成功案例进行相似引用,来判断检测的可行性。最初的自动化测试具有较严格的针对性,运用特定的测试原则和测试方法,将统计指标运用其中,从而得到测试结果,并对其进行全面评估,从而得出自动化测试的严密性。随着自动化测试的不断深入推进和创新,其测试准则和自动测试技术越来越成熟,逐渐过渡到自动测试模型化阶段。逐渐形成自动测试的等级制度,使得自动软件测试技术成为测试控制能力高低优劣的一个重要判断依据。 4结语 总之,软件测试已经发展成为软件工程中一个必不可少的重要组成部分,软件测试不仅能够对软件的质量进行一个系统的评价,而且是目前确保软件质量的主要途径之一。并实现软件产品整体质量与企业经济效益的整体提高,进而提升软件企业的核心竞争力。。 作者:栾新亮 单位:鄂尔多斯市特种设备检验所 软件测试论文:嵌入式软件测试环境研究 1嵌入式软件的特点 嵌入式系统的应用软件是实现嵌入式系统功能的关键,其主要特点如下: 1.1软件开发环境和运行环境不同 嵌入式系统软件的开发通常采用交叉编译方式,即软件的开发在通用计算机上进行,而软件的运行环境却是在嵌入式专用设备上。开发环境被认为是主机平台,运行环境为目标平台,相应的测试被称为主机测试和交叉测试。 1.2缺乏可视性 嵌入式软件缺乏可视性主要表现在两个方面:(1)数据的可视性方面:嵌入式系统通常没有显示设备和存储设备,只有在线实时观测或是将数据传输到主机上才能进行结果分析;(2)编程的可视性方面:由于嵌入式软件的开发环境和运行环境不同,在进行开发时,一方面不能实时观察程序的运行效果,另一方面程序在仿真环境和目标设备中的运行效果可能存在差异。 1.3实时性要求较高 多任务嵌入式系统中,对重要性各不相同的任务进行统筹兼顾的合理调度是保证每项任务及时执行的关键,单纯通过提高处理器速度是无法完成和提高效率的,这种任务调度只能由优化编写的系统软件来完成,因此实时性是系统软件的基本要求。 1.4软硬件紧密结合 在嵌入式系统软硬件体系结构内部,各层次、模块之间的耦合度比通用计算机更强,这是嵌入式系统要求高效的结果,而通用计算机出于可扩展等要求更强调系统的模块化、层次化和标准化。 2嵌入式软件仿真测试环境 嵌入式软件测试不同于传统的通用软件测试,由于其嵌入性、实时性、反应性、专用性等特点,它比一般的通用软件测试更加困难。因此,根据不同测试阶段的需求,建立恰当的测试环境是避免嵌入式软件测试瓶颈、提高测试效率、保证测试质量的唯一出路。由于嵌入式系统通常采用软硬件并行开发的方式,在进行软件设计与测试时,真实目标设备常常不能及时提供,而且对于单片机、DSP这些深嵌入式系统来说,数据的显示采集、测试用例输入等都需要专门的软件来实现,因此在进行嵌入式软件测试前,必须首先建立嵌入式软件仿真测试环境。嵌入式软件是软硬件耦合系统,把软硬件分离开来,建立嵌入式软件独立的运行环境是建立嵌入式软件仿真测试环境的关键。一个完整的嵌入式系统包括处理器、I/O接口以及各种外部设备,在建立嵌入式软件仿真测试环境时,需要考虑软硬件的分离原则,即哪些采用真实硬件设备,哪些需要用软件仿真实现,哪些需要用硬件仿真实现,不同的嵌入式系统以及软件测试阶段,需要建立的仿真测试环境也不相同。 3嵌入式软件仿真测试环境分类 根据运行环境和实际环境的差异,嵌入式软件仿真测试环境可分为全数字仿真测试环境、半物理仿真测试环境和全物理仿真测试环境。 3.1全数字仿真测试环境 全数字仿真测试环境是指仿真嵌入式系统硬件及外围环境的一套软件系统。全数字仿真环境是通过CPU、控制芯片、I/O、中断、时钟等仿真器的组合在宿主机上构造嵌入式软件运行所必需的硬件环境,为嵌入式软件的运行提供一个精确的数字化硬件环境模型。 3.2半实物仿真测试环境 半实物仿真测试环境是利用仿真模型来仿真被测系统的外围系统,而被测系统采用真实的系统。测试环境模拟被测软件运行所需的真实环境的输入和输出,并且能够组织被测软件的输入来驱动被测软件运行,同时接收被测软件的输出结果。外部仿真设备:为目标机提供激励信号输入,接收并处理目标机输出数据,保证软件的连续、不间断运行,实现自动化测试;可以采用软件仿真或硬件仿真(ADS2等)。并不是所有的外设都采用仿真实现,可以随着项目的进展以及根据外设的复杂性,有选择性的加入真实外部设备。 3.3全实物仿真测试环境 在全实物仿真测试环境中,被测软件处在完全真实的运行环境中,直接将整个系统和其外围的物理设备建立真实的连接,形成闭环进行测试。全物理仿真测试环境是基于真实目标机的系统测试,是对整个嵌入式系统软硬件的综合测试,只有在系统研制的后期,所有硬件研制工作都已完成后才能进行。 4嵌入式软件仿真测试环境的构建方法 根据嵌入式软件及测试环境的特点,不同测试阶段的测试环境搭建方法如下: 4.1单元测试 单元测试是针对软件设计最小单位模块而进行的内部测试。由于目标机环境资源少、实现难度大,因此嵌入式软件的单元测试主要采用白盒测试的方法,一般在宿主机上,利用集成开发环境或测试工具(Clockwork、TestBed、Cantata++等)的全数字仿真模拟器来进行,找出单元编码时产生的错误以及与软件需求设计的偏差。在极特殊情况下,也可以在目标机上进行,利用单元测试中的驱动模块和桩模块进行。 4.2集成测试 集成测试是把经过单元测试的模块按软件的结构组合在一起作为一个软件部件或部件集来进行的综合测试。嵌入式软件的集成测试可在宿主机环境上利用Clockwork、TestBed、Cantata++等测试工具来完成,也可在目标机上搭建仿真测试环境来完成,具体依赖于软硬件耦合程度和集成级别。 4.3软硬件集成测试 软硬件集成测试主要是在软件集成测试完成后,形成独立的配置项,加载到相应的硬件平台上测试其运行情况,以确定软硬件能够正确协调工作,实现软件需求规定的功能、性能等要求。软硬件集成测试必须在目标机环境下进行,交联设备可以采用仿真模型替代。可以利用半实物仿真测试工具搭建测试环境来进行确认测试,比如:ADS-2、dSPACE等。 4.4系统测试 系统测试是将被测软件和硬件资源都综合起来构成完整的应用系统进行测试,确保整个系统达到研制任务书的要求。嵌入式软件的系统测试对测试环境有严格的要求,必须在真实目标机环境下进行,包括运行平台、交联设备都要是真实的,目的是要确保嵌入式软件能够在最终的真实硬件环境下正确运行。 5结束语 嵌入式系统在人类生活中发挥着重要的作用,软件所占的比重越来越大,也越来越复杂,保证嵌入式软件的可靠性正面临严峻的挑战。由于嵌入式系统的实时性和嵌入式特性,使得嵌入式软件的测试也面临一些特殊的问题。根据嵌入式软件设计过程中不同阶段的测试需求,建立合适的测试环境,才能提高嵌入式软件的测试效率,保证软件设计工作的顺利进行。另外,虽然日前已经有一些针对嵌入式软件的测试和调试工具,但是在有些方面仍存在不足,需要进一步对嵌入式软件的测试环境和测试技术进行研究,完善和研制更先进的测试工具。 作者:于慧媛 单位:中国人民解放军91413部队 软件测试论文:软件测试在软件开发过程中的应用研究 1软件测试对于软件开发工作的重要意义 软件测试是软件开发中不可缺失的工作内容,通过有效的软件测试步骤,能够帮助软件开发工程人员减轻工作负担,在很大程度上提升了软件的实用性能。因为电子软件的生产过程极为复杂,在开发的过程中需要经历许多环节,每个环节的数据要求都极为严格,很有可能因为极小的差异造成软件应用的失误。软件测试就是为了实现对于软件开发后的使用作出初步的评估,保证下一个生产环节能够正常执行,也为了确认软件的使用具有质量保证。软件的测试能够涉及整个软件设计、开发,以及未来升级的过程。首先,能够帮助软件开发商确认软件的使用质量。其次,还能够为工程师提供有效的信息反馈,帮助工程师进行软件系统操作的风险预警评估。还有,就是实现为未来软件系统升级奠定基础,能够保证软件在未来的开发计划中添加有效的性能价值[1]。软件测试的工作具有相当高的行业地位,能够帮助工程师和开发商尽早发现问题,并且给予充足的时间去解决问题,进而提升了大众对软件的使用效果,满足了推动科学技术进步的时代要求。 2软件测试的具体步骤和方法 2.1软件测试的对象 软件测试的对象主要是针对于软件使用过程中出现的逻辑操作,其中包含软件的使用规则,还有在软件应用中的程序设定是否满足人们的应用习惯,还要考虑到软件开发的初期设计是否能够满足社会大众的需求,能够实现广泛的普及,并且获得大众的喜爱。因为软件测试与其他方式的应用测试不同,软件的测试需要遍布整个软件的设计完成过程,要求软件能够实现具体使用的功能性。 2.2软件测试的种类 软件的测试工作也分成两种形式,一种是静态的检测试验,另外一种是动态的检测试验[2]。首先进行静态种类的具体划分解释,其中的工作内容具体实施不必要展开软件的运行功能,只要进行人力的代码查询工作审核就可以了。这期间可以对整个软件的设计脚本进行分析,得到房中数据的编码,保证在网络中展开的数据时正确有效的。与此同时能够展开对软件编程的评估,其中的数据值都在控制范围内,不能超过最低的数值要求。编写数据程序的人员在结束初始工作后还要展开对程序的审查,其中的大部分工作内容需要依靠合作完成。专业的人员通过技术手段结束数据的参考值评估,要求在人工审查的途径中实现数据的核对工作。总结的角度来评定静态测试的作用,就是通过人工和数据参考工具实现对编程的审核。另外一种就是动态的测试种类,这种方式需要进行软件的启动,在运行的过程中通过既定的数据进行测试评估。按照专业的白盒与黑盒方式进行测试实验,达到动态测评的目的。白盒的功能就是测试软件的逻辑性,能够满足人们使用的正常运作,黑盒则更倾向与想软件的使用功能,以及软件的数据管理进行测试。白盒与黑盒的测试功能满足了对于软件测试的基本要求,实现了为软件后续开发提供数据的重要任务。 2.3软件测试的方法步骤 将软件的测试方法进行归纳和综合,发现主要的测试方法来源于对于测试种类的需求。将白盒和黑盒的测试程序运用到软件的测试中去,实现人工和技术的双层数据收集,实现对于软件的数据编程、应用操作,以及未来升级的发展需求都进行监管。由白盒协助人工进行数据的整理,达成数据外接的基础使用。再由黑盒的运行操作达成对于内置程序、数据的检测和观察,保证软件进入正式使用中的功能性。软件测试的整体步骤,都由数据的支持进行操作,具体的步骤首先是进行功能性检验,然后将外因排除后执行内因运行,之后找寻可能导致程序出现问题的原因,最后结合参数的运算和总结,达成软件测试的目的[3]。 3软件测试在软件开发过程中的应用实施 软件的开发是一个十分复杂的过程,为了成功的实现软件的应用和升级,就需要工程师进行严密的设计、开发,以及研制,最后成就的科学技术产品。因为人们日益增长的科学需求,完美的软件必须还要经过不断的推敲和升级。 (1)软件测试的应用主要考察软件的实用性和需求。软件的创作和制造都是为了满足人们生活的需求,在开发的过程中要考虑产品的功能性,还要考虑开发商的开发成本是否能够支持整个软件的制作完成。 (2)软件的整体设计是否合理,需要通过软件测试得到论证。工程师进行软件的数据编写,是为了满足人们的生活需要,各项开发和功能的深入研究都是为了实现软件的实用性。软件的测试能够检测出软件开发中的问题,进行及时的补救工作实施,尽量做到不浪费开发成本的目的。 (3)要求在软件测试应用实际作用于软件的后期拓展。无论是学习软件还是工作软件,甚至于游戏软件,都必须要满足未来的发展和升级要求,实现能够无限开发和研制的目的,保证软件具有创新性。软件测试很大程度上也是为了找寻软件的功能延续性,促进软件的再开发和再创造。 (4)软件的测试需要应用到软件的最终检测和维护环节中去。每款软件开发后都应该得到检测,只有质量能够达到标准才能保证软件的出售。再者就是应用到软件出售后的软件维护,保证软件高质量运行[4]。 4结语 在信息技术不断摸索前进的过程中,软件的应用托陈出新不断进步,实现了人们生活、工作,以及学习的全面提速。为了保证软件在人们生活中的使用质量,以及适用程度,进行软件开发前期的软件测试是必须严格执行的工作步骤。 作者:丁旻昊 单位:中国特种飞行器研究所 软件测试论文:软件测试实验教学设计论文 软件测试是保证软件质量的重要手段之一。目前社会上对软件测试人才需求非常旺盛,据报道其人才缺口高达30万人[1],高校学生毕业后直接从事软件测试工作的占据了软件测试行业从业人员的48%[2],许多高校都开设了软件测试课程,如苏州大学[3],北京工业大学[4]等,以培养相应的软件测试人才。我校计算机科学与技术专业2008版教学设计中新增了软件测评课程,含理论课28学时及实验课8学时,于2011年首次在大四上学期开设。软件测试主要是一门技能型课程[5],其理论性相对较弱,且和软件工程概论课存在较多内容的重复。吸取了首次授课时重理论轻实践的教训,我们将软件测试课程的目标定位为在一定理论基础的指导下使学生熟练掌握软件测试的技能,因此2012年第二次授课时将理论课减少为24学时,实验课增加到12学时。借鉴同济大学朱少民教授[6-7]的经验,实验课着重讲述一些常用开源软件测试工具的使用,包括功能测试工具Selenium和AutoIT,单元测试工具Junit,代码覆盖工具Emma以及性能测试工具Jmeter等。Jmeter是Apache组织开发的一个用于压力测试和性能测试的纯Java桌面工具,可用于对服务器、网络或对象等模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能[8]。性能测试是保证应用程序后能够稳定可靠运行的必要手段之一。以我们为某机场开发的战略规划管理系统为例,由于前未进行全面的性能测试,客户使用一段时间后经常反映系统响应速度慢。利用Jmeter对主要模块进行了性能测试,结合测试结果对数据库进行了优化,此后客户再也没有反映过响应速度慢的问题。本着科研服务于教学的宗旨,以该系统为原型,完善了基于Jmeter的性能测试及数据库优化实验教学设计。 1Web应用程序性能测试实验 这部分实验目的是使学生熟练掌握使用Jmeter测试Web应用程序的一般流程和方法。实验任务测试绩效考核子系统中的评分模块。评分人登录系统后进入评分环节,选择其未完成的评分项目(若有多个未评分项,则需要全部对其评分)。每个评分项中包含对多个部门的评分,部门数大于等于3个时需符合正态分布,如可评出优秀3个、良好6个、合格4个、基本合格2个,否则可任意评分。按照循序渐进的原则,设计了3个步骤:一是Jmeter的基本应用,包括脚本录制、添加http请求、添加断言以及查看测试结果等;二是Jmeter的逻辑控制结构,如分支和循环等;三是Jmeter的高级应用,如参数值可变以及参数个数可变等。 1.1Jmeter的基本应用 Jmeter可以手工添加脚本,但更方便的是使用脚本录制软件Badboy[9]。Badboy录制的脚本可以保存为Jmeter格式,然后在Jmeter中直接打开和修改。脚本主要是一系列的http请求,其中可以设置请求的URL,请求方法(get/post)及请求参数等,如图1所示。通过添加断言(如是否含有特定字符串)检查请求是否返回正确结果。添加查看结果树并运行测试脚本查看程序的测试结果。 1.2Jmeter的控制结构 Jmeter具有丰富的逻辑控制结构,包括控制器,switch控制器,while控制器以及forEach控制器等。实验重点练习控制器和forEach控制器。控制器判断Jmeter变量是否满足给定条件,若满足则执行其包含的测试元素,否则不执行。ForEach控制器对Jmeter变量的每一个取值都执行一遍其包含的测试元素。图2是一个控制器,其条件为变量COUNT小于10且变量VAR等于字符串“abcd”。图2Jmeter的控制器图Jmeter的变量引用使用${变量名}的方式,变量一般提取自返回页面中的某些信息,如满足特定条件记录的行数或某个特定位置的字符串取值等。变量提取可采用正则表达式或Xpath进行匹配,讲解其匹配原则并现场演示。图3利用正则表达式提取需评选优秀的单位个数,其中引用名称youxiu就是变量名。匹配失败则取设置的缺省值0。如对于页面中返回的html代码“…您当前可以评出优秀<spanid="ltYSMsg">3</span>个…”可提取出优秀个数为3。 1.3Jmeter的高级应用 本部分着重解决实际测试过程中的一些常见问题,如参数内容可变及参数个数可变等。测试登录环节时需模拟不同的用户登录行为,即图1的http请求中txtUserName一项的值应是变化的。Jmeter提供的CSVDataSetConfig可解决这一问题,如图4所示。将所有评分人的信息存储在一个CSV文件中,把其中的列名填入VariableNames项,之后将图1中的txtUserName值改为userAccount(即CSV文件的第1列)实现参数值的动态变化。进入评分项后需根据情况选择优秀和良好等的个数,且要反映在http请求的参数中。由于参评单位的个数因评分人和评分项各异,因此无法在GUI界面中一一添加。需动态添加的参数包括评分列表中的name及其value,value的取值从优秀到基本合格依次为1234。为简单起见,我们按顺序对单位进行评分。如系统要求评出3个优秀,则测试中前3个部门打优秀,其余依次类推。由于同一部门的优秀良好等单选按钮的name值相同(如图5所示),我们选择提取该组唯一的ID号,然后将其转换为name,其对应关系是用$代替下划线(如ID号为gbBSCExamList_ctl02_rbExamerLevel,name为gbBSCExamList$ctl02$rbExamerLevel)。Jmeter的Beanshellpreprocessor可在提交http请求前动态调整参数个数及参数值。下面给出了Beanshellpreprocessor的代码。其中ExamerLevel_matchNr为Jmeter的系统变量,提供了正则表达式匹配项ExamerLevel匹配成功的个数(即参评单位的个数)。如前所述匹配数量小于3时可任意评分,为简单起见我们均将其评为优秀。N=Integer.parseInt(vars.get("ExamerLevel_match-Nr"));(N>=3){YX=Integer.parseInt(vars.get("youxiu"));LH=Integer.parseInt(vars.get("lianghao"))+YX;HG=Integer.parseInt(vars.get("hege"))+LH;BHG=Integer.parseInt(vars.get("jibenhege"))+HG;for(i=1;i<=N;i++){item=vars.get("ExamerLevel_"+i);item=item.replace("_","$");(i<=YX){sampler.addArgument(item,"1");}else(i<=LH){sampler.addArgument(item,"2");}else(i<=HG){sampler.addArgument(item,"3");}else(i<=BHG){sampler.addArgument(item,"4");}}}else{for(i=1;i<=N;i++){item=vars.get("ExamerLevel_"+i);item=item.replace("_","$");sampler.addArgument(item,"1");}}设计了含35个并发线程的线程组,模拟实际35个评分人的评分过程。全部线程在1秒钟之内启动,比实际情况更严格。得到聚合报告如图6所示,其中点击考核评分页面响应时间最长,为335毫秒。且测试过程中无错误发生,说明系统评分模块可靠。 2数据库性能优化实验 除应用程序外,数据库设计的优劣亦影响系统性能。这部分实验目的是使学生熟练掌握使用SQLServer测试数据库性能的一般流程和方法,并进行简单的数据库调优。为减少复杂性,设计一个简单的由三张表组成的人员组织结构数据库:user、or-gan及userorgan表。其中user表含4586条记录,or-gan表含1722条记录,userorgan表含6804条记录(一人可在多部门任职)。实验任务根据账号查询其姓名及所在单位信息。 2.1SQL语句执行计划对应用程序中频繁执行的SQL语句检查执行计划非常重要。初始时,三张表均未建立任何索引,下面SQL语句的执行计划如图7所示。由图7知,三张表均采用全表扫描的方式。对大表全表扫描可能涉及多次磁盘I/O,非常费时,应尽力避免此种情况。SQLServer报告由于缺少索引影响了查询性能,并给出了相关建议。selectA.vcAccount,A.vcName,C.vcNamefromtest.dbo.[user]Ainnerjointest.dbo.[useror-gan]BonA.vcAccount=B.cnvcempidinnerjointest.dbo.organConB.cnvcorgid=C.nNodeIDwhereA.vcAccount='testuser'为表格建立以下索引:indexIND_USERACCOUNTontest.dbo.[user](vcAccount)clusteredindexPK_ORGANontest.dbo.[organ](nNodeID)indexIND_USERORGANontest.dbo.[userorgan](cnvcempid,cnvcorgid)再次运行后显示执行计划如图8所示。可见所有表扫描均已替换为相应的索引查找,且SQLServ-er未报告缺少索引影响查询性能。两次执行查询的磁盘I/O和CPU时间见表1,可见为表添加正确的索引可提高查询性能。 2.2索引建立原则总结 建立索引的一般满足原则如下[10](篇幅所限,未给出实例):(1)为主键所在的列创建索引。为经常进行连接但未指定为外键的字段建立索引。(2)在频繁进行排序或分组的字段上建立索引。(3)在条件表达式中经常用到的不同值较多的字段上建立索引,在不同值较少的字段上不建立索引,如性别字段。不在查询很少引用的列上创建索引。(4)若经常同时使用多个字段排序,可在这些字段上建立复合索引。要尽量使关键查询形成索引覆盖,其前导字段一定是使用最频繁的字段。(5)查看索引并删除不使用的索引。需频繁进行数据查入操作的数据库应有较少的索引,需频繁进行读取操作的数据库应有更多的索引。(6)在聚集索引中,避免包括不必要的列,尽可能使用较小的数据类型。(7)在支持排序和范围查询的字段上考虑使用聚集索引。(8)具有高选择性的列是索引的好候选列,具有高密度的列是索引最糟糕的候选列。 3结语 软件测试是保证软件质量的关键步骤。在软件正式前一般都需要经过性能测试,以保证软件在一定负荷下的平稳可靠运行。Jmeter是一款优秀的开源性能测试工具,可测试繁重负载下的系统表现。软件性能表现还取决于数据库设计的优劣,建立适当的索引可减轻数据库查询和处理负担,进而提高系统处理能力。通过本教学设计实验学生普遍反映认识到了性能测试的重要性,了解了执行计划在数据库性能优化中的作用。 作者:张志远冯兴杰单位:中国民航大学 软件测试论文:软件测试与软件开发探究 摘要: 在IT行业,人们对于软件开发与测试关系的研究热度不减;同时软件的开发与测试,也一直是软件项目团队的中坚力量,要想保证软件开发产品的质量,就要有测试人员对于质量进行验证,所以测试人员也相当于质检人员,但是两者之间的关系还有更加深入的关系,对此本文就软件测试与软件开发关系展开分析,希望对于软件设计水平的提升,起到积极促进的作用。 关键词: 软件测试;软件开发;关系 0前言 软件开发是一个系统性的过程,包括概念阶段、计划阶段、开发阶段等,而软件开发工程与软件测试工程师分别对应着软件产品生命周期的开发与验证阶段。表面看似两者是一个上下游的关系,但是不同工程师所占的立场不同们对于软件的认识也呈现差异化,对此需要工程师共同讨论等,继而确定最佳的产品方案。 1概念分析 软件开发与软件测试是软件工程的重要阶段,前者是在客户需求的基础上进行软件系统制造的过程,也包括系统设计、编码程序等内容。而后者主要是将前者各个阶段,存在的漏洞等利用测试用例找出,是对于软件需求等的最终审核,也是对于产品的质检。 2工作内容 2.1开发人员 其工作内容主要体现在以下几点;第一、加强软件需求分析,明确软件开发方向。第二、编写软件详细设计文档,包括程序流程、函数等内容;还包括单元、集成测试等文档的编写。另外只有审核完写好的文档后,才能进行代码的编写。第三、代码编写是非常重要的,直接关系着软件程序的功能发挥;而软件开发不仅仅就是写代码,还包括很多其他的内容。第四、程序编码结束后,需要由开发工程师,对其进行系统自测,保证程序正确编写;自测合格后,以及文档编写好后,一并交给软件测试人员进行检测。 2.2测试人员 第一、通过对于软件需求说明书的审核,明确软件功能开发方向。第二、积极建立测试环境,也就是指软件运行的条件,包括软硬件设施的设置等。对于软件实际工作环境的模拟,也是测试环境构建的主要内容,继而保证软件的实际应用不会出现问题,对此可见测试环节还原现场环境的重要性。第三、将配套软件进行运行,检查其是否存在缺陷、功能是否充分的发挥,对于检查出来的问题,组织相关的工程师进行软件问题的修正工作。第四、协助并指导工作人员安装软件程序。 3关系 软件开发和软件测试主要的工作目标在于用户需求的实现,保证交付软件的质量,开发与测试并存,首先由开发人员进行软件实现,然后由测试人员找出软件中存在的程序问题,最后提交开发修复,两者之间是相互合作、相互影响的关系,继而除去软件开发中的的程序问题,保证软件的高品质。两者的工作交集,在于软件缺陷,但是软件开发工程师、软件测试工程师,工作岗位不同、对于软件的看法不同,对此难免会存在意见分歧,所以测试工程师加强与软件开发师之间的关系处理尤为重要,继而更好的形成向心力,保证软件开发的高效性和该品质性。好的软件开发,不仅仅要狠抓软件开发与软件测试两个环节,更要注重产品开发的全过程;另外更不能倾向于某个环节,而要让软件开发和测试都要硬,从而更好的保证后续工作的顺利进行。 4关系处理办法 4.1尊重开发成果 测试人员的综合素养、综合技能等,直接影响着软件开发的进度与质量等,为了更好地处理测试与开发之间的关系,测试人员要抱有一定岗位职责、职业素质,本着公平、公正的心理尊重软件开发环节的工作成果;软件开发会可能会存在一系列的隐藏程序漏洞等,这都是非常正常的,而测试工程师的主要职责就是找出这些漏洞,提高开发进行修正,从而另一个角度来说也是在帮助开发工程师成长;但是实际上,部分的测试人员在检查开发提交的测试软件时,会因为发现问题而出现一系列消极的情绪,对于软件开发工程师进行谩骂侮辱等,不仅降低了软件开发工程师的工作积极性,也影响了两个工作层面的关系,最终延长了软件交付的日期,以及软件的质量。开发工程工作内容繁琐且任务重,不可能全面顾及,导致程序开发存在一定的问题,而测试人员作为软件品质完善的关键,要在尊重软件开发作品的同时,积极的进行漏洞检查,实现良好的团队协作氛围。 4.2缺陷技巧的提交 由于软件开发与软件测试工作埃的交集就是程序缺陷,对此测试人员就要做到以下几点,继而保证缺陷技巧的有效提交,保证软件开发人员的更好接受。 4.2.1换位思考测试 人员在接受软件开发提交的作品时,首要的就是了解软件开发工程师对于测试结果的关注内容、范围以及关键点等;一般软件开发人员对于测试结果最注重的就是软件逻辑、数据流转等方面的内容,对此测试人员就要合理的采用测试技巧,有效的调整程序漏洞的提交方案。软件测试也是一个复杂且繁琐的过程,首先测试工程师要按照指定的测试流程,对软件作品进行系统逻辑的测试,找出影响系统正常运转的错误逻辑问题,将其第一时间反馈给开发工程师;测试环节接触到的其他问题,但并不是影响系统逻辑的漏洞点,按照漏洞提交顺序进行依次提交更容易被开发工程师所接受。 4.2.2漏洞描述要精准 测试人员的测试结果,是开发人员漏洞改进的关键,一个精准的的Bug描述,对于开发人员来说帮助性是非常大的,能够帮助开发人员更加精准的进行漏洞定位。这就要求测试人员在进行Bug描述时,要注重语言的干练简明,语气要肯定,避免使用好像、不确定等词汇,继而模糊开发人员的工作思路。其次描述的内容要突出重点,忌讳全面开花。最后根据以往的经验,给软件开发人员提出一系列的建议,像可能会出现漏洞的部位等,继而实现软件的高品质。 4.2.3注重普遍问题的提交 软件开发人员一般工作都非常的忙碌,而重复漏洞或是无效漏洞的提交,会大大的影响其工作的心情、工作量与工作进度等,对此测试人员在测试系统漏洞时,要养成Bug分析的好习惯,分清其问题的独立性还是普遍性,若是普遍问题可以提交一个。这就要求测试时人员要加强对于软件系统的熟练度,包括业务要求、操作以及使用等,当测试人员也不确定漏洞是否存在时,可以与其他测试人员进行沟通,或是与开发工程师进行沟通,继而精准定位程序漏洞。 4.2.4加强有效沟通 考虑到测试人员与开发人员之间的矛盾问题,主要的原因在于缺乏沟通或是交流无效,对此首先测试热源就要占到用户的角度上,正确的表达出自己的想法,让开发人员也占到用户的角度进行讨论。其次由于两者工作理念不同,对此难免会存在争议,对此测试人员保持自己观点,可在下个版本中完善。最后加强两者之间的沟通,明确对方的工作想法,保证系统认知的更加深入、全面,并灵活的运用测试手段,从而更好的保证软件高品质。 5总结 综上所述,通过对于软件测试与软件开发关系的分析,发现作为软件产品全生命周期的关键环节,更要加强沟通合作,提升企业研发的凝聚力,做到就事论事奔着相同目标共同努力,从而更好的保证软件产品的进度和质量。 作者:侯中原 单位:商丘医学高等专科学校 软件测试论文:计算机软件测试技术及开发应用 [摘要] 随着我国计算机网络的不断普及和发展,无论是人们的日常生活还是工作,甚至是休闲娱乐,都离不开互联网的支持,可以说,计算机软件已经受到越来越多人的应用,并且逐步成为了影响人们生活的重要技术。随着人们对计算机应用软件需求量的不断增加,计算机应用软件的开发也越来越频繁,因此,要对其开发流程以及开发需求进行深入的分析。文章将对计算机软件测试技术与开发应用进行了研究。 [关键词] 计算机软件;测试技术;开发应用;相关研究 计算机软件测试技术对于软件开发而言具有重要的作用,能充分保障软件的精确性,为软件开发工作带来安全保证。笔者将从计算机软件开发的重要性、计算机软件开发流程、计算机软件测试技术在软件开发中的有效应用,三个部分进行阐述。 1分析计算机软件开发的重要性 相对于应用软件而言,计算机仅仅只是作为一种辅助工具,计算机之所以能够帮助人们有效地解决这类问题,促进社会迅猛发展,最重要的就是计算机内的软件应用,可见,软件的开发极为重要。随着国家经济体系的不断改革,各行各业已经逐步面向现代化发展,互联网的普及无疑为人们的发展奠定了结实的基础,也给应用软件的进一步研究开发提供强有力的保障,计算机软件的应用已经在人们的生活中得以普及,而人们的日常生活也已经离不开网络的支持。计算机软件的应用不断丰富了人们的日常生活,使人们更加重视精神的自我培养,此外,计算机网络也在不断推动着人们前进。 2计算机软件开发流程 2.1分析开发需求和设计概要 在开发计算机软件之前,对其进行需求分析是开发应用软件的首要环节,亦是最重要的环节之一。软件开发需求分析质量,会直接对应用软件开发造成影响,一般情况下研究人员要根据软件需求内容,对软件的概要进行设计,并且结合软件的功能需求情况设计出软件程序流程图,若是利用类似于C语言等的高级语言实施程序编写,还应当根据软件模块设计各模块的应用功能。概要设计为软件的开发提供了程序框架,后续的开发工作都是在这个框架基础上进行操作,可见这个框架不但能够决定计算机软件程序功能,而且还能对软件运行的效率产生一定的影响。在基于软件程序具体的开发过程中,想要实现其特定功能,可选择多个语句或者逻辑关系等来实现,但不同的逻辑关系与语句也会从一定程度上影响软件。软件开发及其需求越来越复杂,如何编写简洁而又不会存在漏洞的应用程序,已经成为了各软件开发人员最终的目标,因此,在实际研究过程当中,研究人员要十分重视概要设计环节的工作,并且保持思路清晰,设计完程序流程图之后要进行全方位的审核,不断简化软件的逻辑关系,最终实现科学合理的软件逻辑关系。 2.2详细的编码与设计 紧跟需求分析和概要设计后的一个环节就是进行程序的具体编写工作。在编写程序的过程当中,首先应当选择计算机语言,经过长时间的发展,高级计算机语言出现提高了软件的开发效率。人们按照开发软件的实际需求,有针对性地研究了很多种类的计算机语言,例如:如常见有JAVA、C语言等,到了现在出现了VF与VB等可视化的编程软件,这类软件的研发使研究人员即便没有专业知识也可完成简单的软件开发。此外,在实际编码前,研究人员应进行详细设计,在已设计的框架上,按特定的逻辑关系将软件所需实现的一些功能进行设计,根据详细设计流程进行编码。目前,计算机软件设计使用最多的是C语言,这种语言的模块形式较为简单、语句便于理解,所以非常适合在开发、维护软件过程中运用,受到研发人员的青睐。 3计算机软件测试技术在软件开发中的有效应用 软件程序的编写完成之后,研发人员还要对其实施相应测试,监测这款软件的应用效果以及功能等是否能够达到预期效果,一般情况下,测试软件的方法就是随机输入一些数据到计算机中,然后再看结果是否达到要求,为了能够确保软件功能的精准性,常常会选择几组随机数据配合一些特殊参数进行检测。如果检测出来的结果和软件功能相符合,那么则说明通过测试,反之,则不符合。近几年以来,计算机的软件开发技术得到迅猛发展,研究人员也开发了一些专门针对软件测试的程序,但是由于受到技术水平因素的影响,使用测试软件受到一定的局限,比如:一个测试软件只能对一种软件实施检测,并且测试结果只能当作参考,测试结果的准确率还需要提升,但是不管怎样,测试软件的研发就足以标志着计算机软件程序的未来发展方向。新开发软件通过检测以后,需要交予需求方进行使用,为了保证软件能满足人们的实际使用需求,使用方也会进行验收,软件验收方要求极为严格,但是验收方式基本和测试方法相似,同样采取输入参数来进行验收,因此,就增加了不必要的验收程序。研发人员还应当继续研究,争取研发出更多的测试软件,使软件的测试结果更加精确。软件测试技术作为软件开发过程中最为重要的组成部分,该技术主要目的是为了将软件产品中存在的问题及时找出,并将测试报告交给软件开发人员予以修改。可见,在软件开发工作中,软件检测技术的应用是不可缺少的环节。 4结语 总而言之,计算机网络技术已经在人们的生活中得以广泛应用,而软件就是应用计算机的关键,随着人们各类需求不断增加,开发计算机软件已经成为了研究人员的日常工作,在具体的软件研究过程中,软件测试技术的使用是必不可少的,因此软件开发人员还应切实做好相关工作,解决软件开发所面临的困境,不断提升自己的开发水平,对软件开发工作进行深入研究,促进软件事业的持续发展。 作者:高俊 邹金萍 单位:江西生物科技职业学院 软件测试论文:人才培养的软件测试课程改革 摘要: 本文针对软件测试课程的教育现状,结合软件测试的课程特点和培养目标,从面向应用型人才的培养方式出发,提出了以案例式教学为主导,走教学产业化发展的软件测试改革方案。 关键词: 软件测试;应用型人才;案例式教学;教学产业化 随着我国IT行业的发展,越来越多的企业意识到软件测试的重要性,因此软件测试人员成为当前IT业界亟需的热门人才。面对软件测试人员紧迫的需求形势,应用型人才培养单位应该扩大软件测试人员的人才培养规模,提高培养质量。 一、《软件测试》课程教育现状 我国软件测试技术发展已有十余年,但IT市场对于测试人员仍然呈现出供不应求的势态。目前国内高校对软件工程专业几乎都会开设软件测试课程,甚至有些高校已经设置有软件测试专业。2011年11月,教育部主办了“2011年高等学校软件测试课程教学论坛”,对测试人才的培养及测试领域的全面发展起到了积极地推动作用[1]。高校系统化的专业教育体系为学生奠定了扎实而科学的学科基础,并对软件测试技术的理论化和系统化发展起到了不可替代的作用。利弊相依,传统的人才培养模式对软件测试课程设置和培养方案上还是会存在以下不足。 1.重理论轻实践在传统的软件测试课程设置中,大多采用教师在课堂上讲授理论知识,学生上机时完成实验操作的教学方式。实验的目的只是为了检查学生知识点的理解和掌握,实验题目大多比较陈旧,不能与时俱进地与当前的最新技术或最热门的应用相结合,使得学生的测试知识体系过于单薄。 2.重学生个体知识积累,轻团队协作能力培养团队协作在软件工程中的重要性无须多述。软件测试作为软件工程中重要一个环节,贯穿于整个软件生命周期,测试人员与系统分析员、软件设计师、程序员、维护人员之间的沟通必不可少,良好的团队协作才能有助于项目的进行,有助于高效、正确地开发出高质量的软件产品。传统的教学模式中,很少引入分组协作的环节去锻炼学生的沟通和交流能力,更不能设计出测试人员和开发人员的沟通场景,不能满足学生在项目中去加深理解、巩固提高的需求。 3.重即有知识,轻科学创新一直以来,软件测试课程在高校的课程体系中受到重视并不多,课程结束后并没有延续测试知识的后续课程。因此,学生不能在后面的学习和实践中进行总结提升。知识在母体中是要经过消化、适应、转化、演进、创新、融合、活化,而后才称为组织的“行动知识”,现有的教学模式不能很好的产生知识发酵效果。 二、《软件测试》课程特点和培养目标 软件测试是一门应用型较强的学科,应注重理论联系实践。一个合格的软件评测师除了要掌握即有的测试理论和软件知识外,还必须具备对软件测试行业的深刻理解,必须具备对计算机专业知识,包括编程技能、数据库、网络、中间件等知识的系统掌握,必须具备沟通能力、团队协作精神。软件测试是为了尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件交给用户,这并不是一项简单的工作。要做好软件测试,测试人员不仅需要站在客户的角度思考问题,真正理解客户的需求,具备良好的分析能力和创造性思维能力,完成功能测试和界面测试,而且要能理解软件系统的实现原理和各种使用场景,具备扎实的技术功底,能使用测试工具完成相应的性能测试、安全性测试、兼容性测试和可靠性测试等更具挑战性的任务[2]。从这个角度看,一个优秀的测试工程师需要掌握更多的知识和技能。 三、《软件测试》课程教学改革方案 以上可以看出,当前高校对于测试课程的不重视,以及当前的软硬件设施及教学方法都不能满足对应用型测试技术人才的培养要求。为了适应软件产业发展对测试人才的迫切需要,实现软件人才培养的持续性发展,针对软件测试课程调整培养方案,展开深入的教学改革和实践活动十分迫切和必要。 1.加大师资力量,构建完善的软硬件测试平台教师素养的提高是软件测试教学改革得以顺利开展的前提。此前,国内对软件测试并不重视,致使国内软件测试人才短缺,大部分高校内虽然有计算机系,但多以重开发轻测试,测试教师的专业素质和数量都远远不够。因此,不仅要重视对教师测试专业技术的培训,提供更多的学习机会,也应该认真开展软件测试教学研究,构造专业的软件测试教学团队。作为一门实践性较高的课程,软件测试必须建议专门的、完备的实验教学体系和环境。目前,高校普遍缺乏软件测试的软、硬件环境,致使学生无法通过项目实践来深入理解和提高测试相关知识和技能。 2.运用案例教学,丰富软件测试项目实战案例在教学活动中,学生总是对最新、最流行的项目和案例感兴趣,陈旧的案例既不能满足当前市场上对测试人才的技术需求,又不能很好的激起学生的兴趣。运用案例教学最重要的环节就是丰富案例素材,保持案例的“鲜活性”与“生命力”。高校可以采用历年本科毕业设计中运用了流行的技术、难度适中、功能较为完整的应用作为软件测试课程的测试案例,不但可以保证素材的延续性,也使得学生毕业设计完成的质量有所提高。 3.加强校企合作,走教学产业化发展之路[3]企业需要人才,高校为企业输送人才,校园中学习的技能最终要接收用人单位的考验。所以与软件企业合作,建立对口的学生实训基地,是应用型人才培养的重要途径。软件测试技术的掌握与提高离不开项目实战,让学生在真正的软件工程过程中从事测试工作,不仅能使学生深刻体会到软件测试在整个项目中的作用,掌握测试方法和技巧,对于学生的沟通交流能力、团队协作能力都有积极的促进作用。 四、小结 软件测试是保障软件质量,验证软件可靠性的重要环节,其重要性不言而喻。重视软件测试应从企业用人的实际需求出发,高校应加强面向企业需求的软件测试改革,切实培养学生的动手操作能力,使学生掌握最新的测试方法和技巧,让企业需求促进和推动高校教学发展。 作者:于营 单位:三亚学院 软件测试论文:软件测试质量管理论文 1测试流程不合理 1.1测试设计重点偏离使用QC软件测试发现bug统计,如表1所示。根据表1工作量统计,25人/日为5个中级测试工程师一周的工作量,但是根据测试用例发现的bug数量仅占bug总量的44.18%,该比例显示测试用例的设计重点严重出现偏离。需要在测试用例设计的方向上进行调整。 1.2测试过程不可控QC软件测试计划中测试执行阶段为2013.3.8-2013.3.27,执行三轮测试;实际测试时间为2013.3.23-2013.4.20,执行测试三轮,计划完成时间严重偏离,表2为原计划与实际计划的对比。表2显示测试计划进行了较大调整,计划截止时间比原计划延迟23天。延迟原因经分析主要为开发提交测试时间延迟,开发提交版本问题较多,测试计划安排不合理,在两轮测试间为安排开发修改bug时间等。想要解决该问题,不仅需要对测试过程进行管理,同时也需要对开发提交的测试版本质量进行管理。 2软件质量管理改进对策 2.1需求工程管理软件开发过程中,需求不明确会带来需求的频繁变更,浪费了很多时间。针对此项问题,可对需求相关的活动进行统一管理,其需求管理结构图如图2所示。加强需求开发和需求管理的有机结合,不仅减少了需求的变更次数,还解决了工程师对需求不能理解到位的问题。需求开发和需求管理同样重要,只有两者互相配合才能做出用户满意的产品。 2.2立项管理为了使有限的资源发挥更高的价值,公司可通过立项管理流程进行立项管理,立项管理流程分为立项建议、立项评审和立项筹备三个阶段,其具体流程图3所示。 2.3测试流程管理针对测试流程中发现的问题,可对整体的测试流程做如下的改变:(1)测试部门可进行需求学习及需求讨论,对理解不清楚及有疑问的需求,由研发设计部门进行解答,研发设计部门不能解答的由其联系用户确认后作出解答;(2)需求确认后,针对系统功能和性能等指标,由测试工程师进行测试测用例的设计,设计从两个方面进行,一方面测试工程师根据需求进行测试用例的编写,另一方面测试工程师可根据用户反馈问题进行分析汇总;(3)使用QC功能测试工具对应用软件兼容性、操作系统兼容性进行测试,以便于使用测试工具完成多种环境下的功能和兼容性测试;(4)进行自由测试以便于对系统测试用例进行补充,分析测试用例未覆盖问题的原因;(5)定期分析缺陷库中的问题,分析问题产生的原因,进行测试用例的修改。 3结论 本文指出了软件质量管理过程中可能会引起软件质量问题的原因,对软件质量管理的相关问题进行了分析,归纳和总结,这些问题在软件开发人员中具有一定的普遍性。实践表明,通过对这些问题进行分类,开发人员可以清楚地知道在软件设计中容易出现的问题,能够及时采取相应的措施,推动软件质量的全面提高。 作者:翁婕丁铁乔扬单位:南京莱斯信息技术股份有限公司质量与技术管理部 软件测试论文:软件测试团队建设的软件工程论文 根据权威机构统计部门调查数据显示可知,在常用的软件开发项目环节中,软件测试工作大约能够占到软件开发工作总量的42%以上,而软件测试所需投入的研究经费成本也将占到总额数的50%。由此可知,软件测试环节对于整个软件工程开发应用具有十分重要的意义。然而,如何建立一支高效软件测试团队对于构建更加完善的软件工程起着直接导向性作用。BarryBoehm曾阐述了人的因素在软件测试中的重要作用,人为所占因素甚至超过了其他环节性因素,其代表理论构造性成本模型认为由于软件测试分析师与程序员的原因会导致其工作效率相差数倍。因此,加强软件测试团队的高效率建设对于构建高质量软件应用程序具有重要作用。 1高效软件测试团队建设的可行性策略 1.1软件测试团队的特质建设 软件测试团队的素质建设对于整个软件工程质量而言具有非常重要的作用,人是测试工作中最具价值也是最重要的资源。因此,应该积极构建合格的、高质量的合作团队。(1)软件测试以及软件工程开发都需要程序员具备足够的自信心,对软件检测结构以及程序的缺陷要如实汇报。对于软件项目工程中出现的各种问题要认真处理,以此减少客户可能遇到的种种问题。(2)软件测试人员还要具备足够的怀疑精神,对可能存在的漏洞性错误要及时予以检测和纠正,进而提高其自我创造力。(3)软件测试团队要积极构建沟通协调能力。可以通过与客户进行必要的沟通来及时发现软件运行中存在的不足之处,其中测试者可以针对模拟环境下用户对于软件环境的应用情况进行科学分析,以此对软件编写过程和总结文档进行反复检查检测,提高软件的运行效率和正确性。(4)必备的检测技术能力。软件测试团队必须具备重要的专业技能,需要精通数据库、通信、网络、GUI测试、测试工具、自动化测试脚本和相关业务领域等,以此全面提升他们的测试能力和测试积极性。 1.2软件测试团队的制度性建设举措 一个优秀的软件测试团队必定拥有一套完善的团队管理制度,拥有明确的职责分工和高端测试人员,通过不断规范团队管理制度,做到扬长避短,及时提升整体测试质量。其中,软件测试团队需要不断加强汇报制度建设、工作总结制度建设、奖惩制度建设、测试审核制度建设、会议制度建设等,通过科学合理地分配职责关系来进一步强化团队成员的素质建设。在此过程中,还要注重对于资深测试人员的正确引导和建设,加强彼此间的沟通交流,不断丰富团队的测试知识库,通过科学吸收先进的测试管理知识来提升整体测试技能和技巧,以此减少开发团队协同工作中的一些领域瓶颈。 2结语 综上所述,本文对目前国内软件工程的发展应用现状以及其中出现的漏洞不足之处进行了分析。只有不断加强对软件测试团队的整体素质和综合开发技能的教育,才能从根本上提升其软件测试技能,要在不断建立健全团队管理制度的基础上加强相关软件工程建设,以此全面提高测试人员的软件工程技术水平。 作者:段炼单位:郑州银行科技开发部 软件测试论文:软件工程中软件测试的必要性 1软件工程提升软件健壮性分析 软件工程目前一直缺少一个明确的定义,但是目前业内专家都一致认为软件工程一般分为需求分析、设计、编码及测试4个环节。其中前面3个环节是整个软件的编写,而最后1个环节的软件测试,则是通过各种专业测试方法来测试软件是否满足软件工程下的10种特性:可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性。 2当前软件测试的现状 从对软件工程的分析来看,软件测试是保证软件最终健壮性的最后一个工序。但是,当前很多软件设计公司,在软件测试方面投入的人力物力都非常低,甚至没有专门的软件测试部门,而是由一些软件设计人员兼职。虽然这样也有了所谓的软件测试这道工序,显然因为软件设计人员本身的先入为主,所以在软件测试的过程中,往往不容易发现潜在的问题。另外有的软件测试人员仅仅把软件推到市场上,部分使用人员来进行测试,虽然这也是一种测试方法,但是这种由用户测试的软件测试环节,更多的是在软件的操作体验的测试,并不能够发现软件潜在的bug,正确的软件测试流程,应该设计专业的测试软件,通过白盒测试的方法来针对软件代码进行测试。而上述的仅仅测试界面和操作,那只是软件测试中的黑盒测试法,只有综合白盒和黑盒,才可能获得更好的软件测试效果。但是,目前能够综合这2种测试方法的专业软件测试部门,还是非常稀缺的。这自然导致了国内整个软件行业的软件健壮性存在缺陷的主要原因之一。 3软件测试重要性分析 3.1软件危机下凸显软件测试的重要性 软件危机一直是IT行业的最重要的话题,其实在软件危机这个名词出来之前,软件工程就已经初步有了核心流程,不过正是因为很多专家有着自己的理论,所以让软件工程这门技术的解释出现了很多不同的版本,不过在众多版本中,软件测试始终占据一个重要的模块。软件危机常见的表现就是因为软件在开发的过程中,成本失控、时间跳水、稳定性和兼容性欠缺等诸多问题,而不得不一而再再而三的重新开发,特别是软件在设计的过程中,对于可维护性、可修复性不重视,导致维护的成本占据了整个软件生存周期的90%以上,这很明显是不正常的。通常而言,软件维护的成本应该是软件生存周期的70%以下,超过70%,这个软件最终的结局一定会失败。软件测试的过程,除了针对软件的运行是否稳定,同样也会对软件的可维护性进行有效的判断,尽可能的避免软件危机的产生,所以从软件危机的角度上来看,软件测试在软件工程中的地位无疑是非常重要的。 3.2软件测试的必要性 (1)是交流的问题,容易导致软件接口处的错误。现代软件设计已经不是单人作战的模式,已经上升到团队甚至全球软件工程师通过互联网这个大平台进行合作,这种方式显然对软件工程规范要求更高。其中交流往往就成了一个很重要的问题,很多软件工程师在设计的过程中,尽可能的将自己负责的模块做到完美,甚至也能够考虑到模块间的借口问题。但是因为交流上的不便,或者忽视交流,往往会产生2个模块接口不兼容,甚至还会发生软件需要重新改写的问题。 (2)软件结构有越来越复杂的趋势。虽然软件开始实施模块化设计方式,将一个软件整体拆解成无数个小的系统模块进行设计,然后将设计好的模块进行统一封装。这种化整为零的软件设计方式的确有效的改善了软件复杂性的问题,但是同样也面临着模块间的兼容问题,不同设计师的设计风格可能会导致软件可维护性降低及可移植性降低,特别是一些软件开发公司,根本就没有软件工程的概念,其研发的软件产品,更是漏洞百出,自然很难保证软件产品的健壮性。 (3)程序代码的设计问题。目前一个软件的诞生,往往会有好几千万行的代码,而且在软件正式代码编写之前,还需要撰写概要设计代码和详细设计代码,这些往往都给错误埋下伏笔。如果程序设计代码撰写不规范,没有相应的注释,没有相应的模块设计,往往计算式发现了软件的错误,最终维护起来,也很难让维护工程师定位,甚至连测试工程师也很难找到错误的地方。 (4)设计文档的组成非常少。一个软件产品的诞生,除了优秀的代码设计之外,还要一份完善的代码文档,包括软件的可行性研究、需求分析、详细设计、代码编写,以及软件测试等工作流程中所需要的一切的代码文档。如果代码文档贫乏,甚至没有,那么一旦在软件测试环节,或者在软件使用环节,出现错误时,那就很难进行维护调试了。这时候的维护成本往往会比重新编写一款软件的成本还要低,可见设计文档的错误撰写给软件健壮性的影响。 (5)一些软件测试工具和开发工具本身的问题,往往导致软件出现严重的bug。而且在设计阶段,还很难发现,因为是本身软件测试工具和软件开发工具引起的,因为软件测试工具和开发工具实际上也是一种软件,如果这些软件的健壮性有问题,自然也会导致测试结果出现偏差,最终影响到软件的健壮性。 3.3软件测试成本过半证明了软件测试的重要性 软件工程虽然在很多专家和权威机构的定义有所偏差,但是无一例外,对于软件成本构成的分析上,软件测试的成本一直占据了主要部分,最低的认为,软件测试成本要占据30%,最高的则认为占据到50%。如果将后期维护成本也放在软件测试板块中,那么这个测试成本就会变得更高。因为软件进入维护期时,一旦出现软件需要进行调试,那么修复后的软件依然要进行软件测试,否则很难保证调试后软件依然能够保证健壮性。作为一个软件系统的所有代码,都是牵一发而动全身,修改了某处代码,可能会影响到另外一个模块的功能,所以在维护期内,对软件的任何变动,都需要进行软件测试,才能够保证软件接下来的健壮性。但很明显,如果将软件测试工作放在软件推出市场之前,就来进行有效的测试,那么对于软件整个生命周期的成本,将能够得到有效的降低。软件测试的成本的高低,往往和软件的质量成正比,而软件质量提升了,后期的维护成本就能够有效的降低,所以综合起来,软件测试这部分的成本支出是非常有必要的。 4软件测试流程分析 (1)建立独立的软件测试部门,测试部门领导应该对这个专业非常精通,而不是简单的由开发人员兼职,这个测试部门需要从可行性研究开始就应该着手对软件研发进行测试,可行性研究的最终确认应该也有软件测试主管部门的签字确认才能够进行下一步的工作。 (2)软件测试工作不是等到软件全部开发完毕才来进行测试,而是跟随软件设计的整改生命周期,针对每一个环节进行测试,软件测试部门应该拥有独立的物理部门和独立于开放环境的测试环境,这样才能够提供更加完善的软件测试,尽可能的将软件bug扼杀在摇篮里。 (3)软件模块测试,因为现在软件设计都已经进入模块化设计标准,比如一个完整的软件是S,它有A、B、C、D等模块构成,那么对于A模块的软件设计过程中,就应该有独立的软件测试人员进行跟踪,直到A模块被测试证明没有隐患。以此类推,分别对B、C、D等模块分别进行测试,合格以后,组装后的软件依然进行测试,这样才能够最终提升软件健壮性。在软件设计的过程中,其实测试人员是和软件开发人员并行工作的,而不是等到软件设计完毕之后,再来对模块进行测试,这种方法才能够提升软件测试的效果。 5结语 软件测试随着软件系统复杂性的不断提升而变得越来越重要,如果现在的软件设计公司依然按照传统的软件研发,只注重软件的功能设计,而忽视软件测试,通过不断的压缩测试成本,希望以此来提升软件最终的利润作法已经行不通了,只有将软件测试做好、做精,才能够提升软件的健壮性,才能够提升软件的生存周期,才能够降低软件的整体成本。 作者:董倩范亚斌单位:石家庄学院 软件测试论文:探微软件测试在软件工程的重要性 1关于软件测试的认识 在软件开发的每一个阶段中,人员的参与都是离不开的部分,而人的工作以及人们之间的通信质量有很难做到完美无缺,这就导致了错误是不可避免的。另外,伴随着计算机控制对象越来越复杂,且软件的功能及规模也在不断的提升,这也使得错误相对而言更容易发生,比如对于WindowsNT操作系统来说,其代码约为3200万行。总体来看,在软件设计阶段,人们所犯的错位是引起软件失效的主要原因,而软件缺陷的根源则在于软件的复杂性。在确保软件可靠性以及质量的过程中,软件测试属于最为主要的手段,以当前的软件工程来看,多以结构化分析及设计作为核心,因此在开发阶段,需求分析以及设计都是以工程管理以及技术评审作为质量的保障手段,而工程管理以及技术评审又存在着主观上的缺陷,很容易遗漏错误使其延续至开发阶段。客观来说,软件测试在发掘软件中隐藏缺陷的过程中的确有着很好的效果,以英国的SHOLIS项目来看,这一项目使用形式化方法对软件规约进行描述及证明,而且利用程序正确性证明方法对前期的很多缺陷进行排除,但是通过软件测试却依旧发现了整个过程15.175%的缺陷。此外,随着人们对软件测试重要性的认识越来越深,其所在软件开发周期中所占的比例也越来越高,当前很多软件开发机构已经将其40%的研制力量投放到了软件测试中,而对一些比较重要的软件来说,其测试的费用往往会高达其他阶段费用的3至5倍,由此可见,不管从哪个角度出发,软件测试都是非常重要的。 2软件测试分类 当前的软件测试技术主要可以分为动态测试以及静态测试,其中,静态测试主要是指在不执行程序代码的情况下找到程序中有可能存在的缺陷或者对程序代码进行评估的过程中,广义上看,静态测试还包括软件需求分析以及技术评审。至于动态测试,则是通过抽样测试数据对程序进行运行以起到检查程序中存在的缺陷。在动态测试的过程中,其核心内容主要包括测试用例、运行正与以及对于程序运行结果进行验证这3部分内容,此外还包括一些数据管理、文档编制、操作规程等辅助方面的工作。 3软件测试的对象 在软件测试的过程中,不单单进行一些比较简单的程序测试,也就是说仅对程序能否运行进行测试是远远不够的。具体来看,软件测试要贯穿在软件定义以及开发的整个过程中,因此软件测试的对象包括需求分析、系统设计、程序编码以及各阶段说明文档。此外,因软件开发过程中各个阶段之间有着非常金敏的衔接,因此如果前一阶段出现问题必然会对下一阶段段的工作造成影响,所以为了确保每一个阶段的正确性,我们要做好确认及验证工作。具体来看,确认主要是对需求规格以及程序进行确认,这既含有静态确认,又有动态确认,其中静态确认大多数是由人工进行分析,而动态确认则是利用动态分析以及程序测试对程序执行的情况进行检查。至于验证,则主要是采取一定手段对程序执行情况进行检查,进而证明软件各阶段中的完备性、正确性以及逻辑协调性。举例来说,我们验证的对象包括测试用户需求和系统分析员报告是否想和、设计说明书和测试需求说明书是否匹配等。 4软件测试目的及原则 4.1软件测试目的 测试目前因立场的不同又可以分为两种,从客户角度来看,总是会希望通过测试来发现软件中的缺陷及隐蔽错误。而从软件开发者角度来看的话,则是希望产品少出现错误,对软件已经符合客户需求进行验证,在这种思路下,测试人员会使用一些导致程序失效概率小的测试模块进行测试,并对容易导致错误暴露的测试用例进行回避,而且对于有可能出现副作用的语句也并不会去刻意的检查。基于此,在程序中,还存在很多预料不到的问题,而这类问题往往要在一些比较特殊的环境之下才能够表现出来。从以上分析我们可以看出,在对软件进行测试的过程中还是要更多的站在用户角度对问题进行考虑。 4.2软件测试原则 (1)“尽早和不断的进行软件测试”,只有时刻牢记这一原则才能够降低软件开发中由于工作多样化、人员配置复杂化所带来的不利影响。具体实践的时候,我们首先要端正态度,对各阶段技术审核要认真进行,另外,我们还要将软件测试贯彻到每一个环节中,进而早对错误进行发现和预防。 (2)测试用例选择的过程中要有输入数据和以及和输入数据相对应的预期输出结果,具体来看,在我们进行软件测试的过程中要选择比较适合程序段的测试用例,这些用例可以对程序员所编制的程序是否存在错误进行分析,而给出预期的输出结果则可以对程序段是否存在错误进行更为快捷的判断。 (3)要避免程序员对自己的程序进行测试,在软件测试的过程中,冷静的情绪以及客观的态度是不可避免的,而人又很难对自己的劳动成果进行否定,因此在程序员对自己程序进行检查的过程中会从主观上出现偏差,导致测试结果不准确、不客观。 (4)设计测试用例的过程中要注意使用不合理输入套件,所谓不合理输入条件主要包括输入异常或者会导致异变的条件。在软件正常使用的过程中,不合理输入是不可避免的,轻则会导致运算错误,严重的时候甚至会使软件失效。 (5)对测试工作中的群集现象进行注意,针对测试过程中错误较多的程序段,要对其进行详细认真的检查,这是因为从经验上看,程序段中残存的错误于已发现的错误往往会成正比。 (6)对测试要认真执行,这是指我们要做好一个详细的规划,具体来说,规划主要包括:软件功能、输入、输出以及每一功能测试的进度安排等。 (7)对测试计划、用例、出错统计以及分析报告等进行妥善的保管,进而为日后的软件维护提供更为便捷的服务。总体来看,在我们的工作中如果能够把握住以上原则必然能够对提升测试工作的效果起到很强促进作用。 5结语 在软件开发工程中,软件测试属于一个重要的环节,一旦缺乏了这一环节,所开发出的产品必然难以满足用户的要求。本文关于软件测试必要性的分析还存在很多不足之处,也希望各位测试人员能够对其进行补充及指正,进而共同促进这方面研究水平的提升。 作者:楼炜单位:同济大学软件学院 软件测试论文:软件测试技术在铁路产品开发中的作用 按照软件特征分类,软件测试可分为:功能测试和性能测试。功能测试是黑盒测试的1个方面,它检查实际软件功能是否符合用户的需求。一般分为:逻辑功能测试、易用性测试、安装测试和兼容性测试等。性能测试主要有时间性能测试和空间性能测试2种。通常还包括:一般性能测试、可靠性测试、负载测试、压力测试。其它分类还包括:回归测试、冒烟测试、随机测试。回归测试是指对软件的新版本测试时,重复执行上一版本测试时的用例。冒烟测试是指对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。随机测试是指测试中所有的输入数据都是随机产生的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。 软件测试过程一般来说,软件测试工作从立项后就开始了,主要经历以下几个主要环节,如图1所示。需求分析是软件测试的1个重要环节,测试人员对这一环节的理解程度将直接影响后续测试工作的开展。一般而言,需求分析包括软件功能需求分析,测试环境需求分析,测试资源需求分析等。测试计划的依据主要是项目开发计划和测试需求分析结果而制定,测试计划指导整个测试过程。测试设计在测试活动的各个阶段,对测试策略、测试方法、测试用例进行制定和编写。测试环境搭建要尽可能模拟实际应用场景,满足项目的设计要求,从而达到理想的测试效果。测试执行和测试记录由测试工程师完成,主要是查找软件的错误和缺陷,并记录测试活动中出现的问题。缺陷管理是对测试活动中出现的BUG进行管理和跟踪,保证每个BUG得到及时修复。软件评估是在测试活动的最后,对软件进行全面地分析和总结。 铁路产品开发过程中容易忽视软件测试 铁路产品供应商普遍重视占领市场份额,追求利益的最大化,提升产品的服务质量,但是却容易忽视保证产品质量的软件测试,这给铁路安全运输带来巨大安全隐患。项目的开发过程通常是确定项目负责人和项目参与人、项目的方案以及项目需要完成的时间,然后投入项目的开发。研发过程中采用团队协作,项目分工到人,经过程序编写、调试,最后集成为产品,并在实验室和现场环境下进行测试实验。对于项目进展情况的掌握是通过不定期的召开会议和单独询问主要开发人员以及研发人员汇报来实现的。 在这种开发模式下,因为项目的开发过程中没有系统和独立的测试过程,所进行的测试也是以正向思维为主,重点验证软件是否实现了相应的功能,而不是软件在异常情况下的响应和处理。软件开发和软件测试本来就是不同的活动,开发人员的工作目标是创建相应模块,实现特定功能,从而会不自觉地朝这个方向努力,挑选那些使程序出错可能性较小的测试数据和手段,无法保证软件被全方位进行测试,会给项目带来隐患。正是认识到这一情况,才大力主张产品开发应进行科学和规范性管理,加强软件测试队伍建设,任命专职人员从事测试工作。利用软件领域中的相关技术,对软件进行科学、合理的测试。 如何在企业内部实施软件测试 企业想要在产品开发过程中,对产品软件展开相关测试,首先应建立合适企业特点和开发模式的测试流程;其次,对不同测试阶段和不同产品的软件和硬件的特点,拟采用不同的测试技术和策略。另外,在产品开发过程中,项目的配置管理、质量保证的等方面都应形成明确的制度。 1测试流程 企业应全面规范项目开发管理流程,对项目进展的各个阶段进行明确划分。软件测试是建立在软件开发的成果之上,即测试的对象就是软件开发的阶段性成果,如设计文档、程序代码和可执行的程序。 软件测试和硬件测试的侧重点有所不同。对于软件测试,采用比较通用的测试流程,如图2所示。软件项目的开发从项目立项开始,测试人员介入项目组,明确需求分析阶段的用户需求,针对不同测试阶段的工作重点,制定各阶段的测试计划。在设计测试阶段,测试人员需要确定各测试阶段的测试方法和必要的测试工具,搭建测试环境,编写相应的测试用例。接下来,按照测试计划分别进行单元测试、集成测试和系统测试,形成各阶段的测试报告,对测试过程中发现的缺陷进行跟踪,保证缺陷得到及时修复。为了保证软件在现场环境下能够正常运行,测试人员针对现场实际情况,制定现场验收计划,确定现场验收策略,对软件进行现场验收和评估。当软件通过了各阶段的测试,且全部缺陷得到修复,将进入到软件的阶段。软件阶段通过对软件版本的管理和控制,实现软件、维护和升级等。 对于硬件测试,需要面向硬件编程,即在硬件环境下,编写代码,实现采集、控制、通讯等功能。由于硬件产品的开发不能脱离硬件环境,因此,测试活动与硬件产品开发、过程调试、硬件联调都是密不可分的,软件测试作为硬件产品开发过程中的重要环节,“验证”和“确认”产品满足项目的设计需求,硬件产品开发流程如图3所示。硬件产品的开发,首先要明确硬件需求,预计产品达到的效果。在硬件总体设计阶段,获取硬件需求,并根据功能进行模块划分,定义模块之间的接口。在详细设计阶段,对各模块进行编程,搭建相应的硬件电路。过程调试可分为:软件过程调试和硬件过程调试两种,软件过程调试指的是在硬件电路的环境下,进行软件调试的过程,保证软件能够正确控制硬件电路和读取相应数据;硬件过程调试指的是产品电路部分的调试过程,验证电子器件之间逻辑是否符合系统设计要求,保证硬件产品稳定、可靠,不受干扰。各硬件功能模块调试成功后,需要进行整体硬件联调,各硬件模块被连接成1个整体,形成产品的雏形,在此阶段,主要验证各模块之间的接口是否符合设计要求,是否能够实现系统设计的各项功能。硬件产品经过整体联调后,形成样机。测试工程师根据产品的硬件需求说明,制定测试计划,确定测试方案和测试方法,并搭建测试环境,对样机进行硬件测试,确认产品符合硬件产品设计要求。 2软件测试技术在各阶段的运用 在软件测试实施的各个阶段,所采用的测试方法和测试策略也各不相同。下面对于测试过程的各阶段进行分别叙述。 2.1设计和代码审查 设计审查是由项目组和测试组成员组成评审组对软件设计和开发的输出进行评价,以判断确定设计和开发的输出能否实现软件产品预先定义的规格,同时通过审查标识出与项目需求之间的偏差。设计审查按《项目计划》所规定的评审点进行。因临时变更引起的突发性的评审随时进行。代码审查实际上属于静态测试。在代码审查之前,首先要对代码进行静态分析,其目的是通过对源程序分析、目测,但不执行程序,找出源代码中可能存在的错误和缺陷,对程序设计的结构属性,如分支、路径、转移等进行审查,尽可能地掌握程序的结构,为单元测试的测试用例的设计和执行提供信息。代码审查的目的是检查源程序编码是否符合详细设计的编码规定,确保编码与设计的一致性和可追踪性。检查的方面主要包括:书写格式、子程序或函数的入口和出口,数据,参数,程序语言的使用,存储器的使用,可读性,逻辑表达式的正确性,代码结构合理性等。静态分析和代码审查通常可以同时进行,通过静态分析掌握源程序结构,通过代码审查,尽量减少书写错误和隐含的逻辑错误,为单元测试提供比较稳定的环境。 2.2单元测试 单元测试是软件测试的基础,集成测试、系统测试都是建立在单元测试之上。单元测试是用来检验每个软件单元能否正确地实现其功能,满足性能和接口要求,还要验证程序和详细设计说明的一致性。从广义上来讲,单元测试包括静态测试和动态测试。静态测试就是上面介绍的“代码审查”,而动态测试则是通过测试用例、测试工具来执行程序,检验程序是否存在缺陷的过程。单元测试一般采用白盒测试方法,手工测试和自动测试相结合,针对程序内部的结构和逻辑来展开,单元测试工具一般针对不同编程语言和开发环境而设计开发的,种类很多。我们利用白盒测试进行代码测试,利用黑盒测试进行功能性测试,利用回归测试保证维护代码的完整性。单元测试工具固然有用,更重要的是测试策略,以及测试用例的设计。这也提醒我们在做单元测试的过程中,不可避重就轻,要抓住项目核心,进行科学、有效的测试,只有这样才能达到事半功倍的效果。 2.3集成测试 集成测试阶段采用白盒测试和黑盒测试相结合的方式,将每个独立的功能模块进行关联和集成,便于进行功能测试、界面测试、结构测试、数据正确性测试等。在进行集成测试前,测试工程师要搭建测试所需的硬件和软件环境,尽量模拟设备实际的工作环境。结合项目的不同特点,测试过程可以采用手工或自动测试。在进行多次重复测试和回归测试的情况下,可采用自动化测试工具对软件进行功能性检测。 2.4系统测试 在系统测试阶段,不仅要进行功能测试,还要对系统的性能、安全性、兼容性和可靠性等进行测试,系统测试涉及人机交互和复杂逻辑,因此系统测试多采用黑盒测试的手工测试方法。系统兼容性测试要考虑软、硬件的兼容性。项目开发的硬件和软件要在指定的环境下,进行多次反复的安装和反安装测试,以验证接口数据调用和驱动程序是否达到设计标准。安全性测试和软件的安全策略密切相关,安全性测试主要包括:用户访问权限、数据库安全性、文件安全性等。性能测试、负载测试等必须借助测试工具来实现。过分强调测试工具的作用,极力追求各种软件测试工具,是软件测试本末倒置的表现。实际上,测试过程中80%以上的缺陷是手工测试发现的,仅有不到20%的缺陷是靠工具测试发现的,而且这还得要求测试人员合理地使用工具。 3采用的测试模型 企业对产品开发应重点关注产品开发的过程控制,以及测试、管理。保证产品质量从源头开始。因此,测试过程更适合采用W模型,如图4所示。在W模型中,测试过程和开发过程都贯穿项目开发过程的整个生命周期,两者同时开始,同时结束,相辅相成、始终保持着同步的关系。这样做的原因是:测试工作尽早介入,软件存在问题的可能性就会降低。项目正式立项后,测试人员既可参与到项目组中,通过学习和阅读相关文档,加强对项目的了解,对项目有个整体认识,形成初步的测试思路。同时测试越早介入项目就能够越早发现问题,解决问题所花费的成本越小。如果在软件的最后阶段进行测试,发现功能设计不合理或性能不好,需要修改需求和设计,不得不返工到系统设计或需求定义阶段,会造成很大的代价,所以有必要将软件测试延伸到需求、设计阶段,对需求、设计进行验证。有资料表明,60%以上的软件错误不是程序错误,而是分析和设计错误。若把软件分析、设计上的问题遗留到后期,可能造成设计、编码的部分甚至全部返工,从而增加软件开发成本及延长开发周期等后果。同时,需求和设计阶段所产生的缺陷具有放大效应,严重地影响软件质量。因此,为了更早地发现并解决问题,降低修改错误和缺陷的代价,有必要将测试延伸到需求分析和设计阶段中去,使软件测试贯穿于整个生命周期,提倡软件生命周期测试的理念,即软件测试是对软件形成过程中的所有工作产品(包括程序以及相关文档)进行的测试,而不仅仅是对程序的运行进行测试。测试在对需求和设计阶段的测试活动主要是通过需求评审和设计评审来实现,可以更早发现问题,及时修改问题。即对软件开发阶段中的阶段性产品进行评审、走读或者回忆评审,发现其中的问题,是一种静态测试。通过静态测试,可以更早地发现问题,把问题消灭在萌芽中,将每个阶段产生的缺陷及时清除。 总结 软件测试作为专业性比较强的技术在我国起步较晚,受重视程度不够,但它是保证软件质量的终极手段,目前越来越受到了人们的关注。铁路行业的生产企业,认真做好产品质量把关,合理运用相关检测技术,将软件缺陷消灭在萌芽阶段,保证铁路运输和人们生命财产的安全。 作者:朱剑辉单位:哈尔滨铁路局科学技术研究所
浅谈计算机软件项目管理:浅论一种加强软件项目管理的实践模式 论文摘要:本文认真分析了目前国内软件项目管理中出现的问题,以提高软件质量、降低成本、加强软件项目的可控性为目标,在深入研究和探讨CMM的基础上结合软件过程.给出了一种加强软件项目管理的实践模式。该实践模式定义了CMM中的6个关键过程域和3个工作组.并从项目的开发时间和质量方面做效率分析,强调了软件过程对软件项目管理的重要性。 论文关键词:软件项目;软件过程;CMM;KPA 1.引言 项目管理(PM,projectmanagement)是指利用现有的知识、方法和技术手段,有效地计划、调度、控制和跟踪项目的开始、执行、直止终止的过程,是项目顺利实现的有效手段。软件项目管理则是在项目管理的基础上,结合软件产品的实际,利用工程的概念和方法来开发与维护软件,对成本、风险、时间、质量、过程、配置等进行分析、管理、控制,最终目的是为了让软件项目的整个生命周期都在管理者的控制范围内,以预定成本按期、按质完成软件的开发并交付用户使用。目前,软件产品已广泛应用于各个领域,但是很多软件项目的成功率并不高.虽然有些公司根据软件工程理论建立了一些软件开发管理规范.但并没有从根本上提高软件项目管理问题,这就导致软件产品质量不稳定甚至是项目的失败,同时也损害了用户的利益。本文结合我国软件项目管理的特点并经实践应用.以提高软件质量、降低成本、加强软件项目的可控性为目标,通过对CMM的研究和改进,给出了一个基于CMM加强软件项目管理的实践模式,在这个模式中对目前CMM中的KPA做适当的裁减,定义了6个关键过程域和3个工作组。 2.软件项目管理中目前存在的问题 影响软件项目成功率的因素主要是软件质量问题,而在整个软件项目的实施过程中需求不明确、跟踪和监督不力、缺乏客观的软件评审和软件配置以及风险管理意识不足等都阻碍着软件质量的提高。 2.1需求不明确 需求管理是软件项目管理中非常关键的一个步骤.需求分析的完整与否可以降低软件质量、延长项目周期、加大成本。由于用户对计算机系统认识的不足,对于系统的需求往往比较模糊,遗漏甚至是错误的问题经常出现(包括管理流程、业务流程、数据或报表的分析处理等),但这些问题往往没有暴露给开发人员,而是随着项目的进展才逐渐明确。对于开发人员来说,需求的变更意味着软件产品的部分内容必须重新开发,而对于整个软件项目管理而言,势必要重新分配资源、调整计划、估算成本等等,导致软件产品质量下降。 2.2跟踪和监督不力 跟踪和监督主要针对过程而言,也是项目管理中最容易被忽视的环节。软件项目过程由多个任务构成,大部分任务都有前置任务和后置任务,这就要求项目管理者要严格跟踪和监督每一个任务。任务的完成主要从时间进度和质量两方面来衡量,还要充分考虑因客户方引起的一些客观因素(更改需求分析等)。项目管理者虽然制定了具体的项目进度内容,但如果缺乏有效的跟踪和监督机制,对于每一个阶段所要完成的任务疏于评价,就会影响下阶段软件产品的质量,有时甚至是软件产品的重新开发,最终影响整个软件项目。 2.3缺乏客观的软件评审 客观的软件评审是软件产品质量的直接保障,软件评审一直贯穿于整个软件项目的过程中,对软件产品的评审应有客户使用人员和软件业中的同行来进行。客户使用人员对软件产品做阶段性的评审可以及时发现软件产品功能方面的不足,同行评审可以从软件业的规范及标准去发现问题.软件评审可以降低软件开发的成本提高软件产品的质量。大多情况下项目管理者没有做任何阶段性的评审,通常只是在软件产品开发基本完成之后来组织评审,果发现了很多问题,但要修改已经非常困难.要花费很长的时间甚至从头再来。 2.4软件配置混乱 软件配置是指软件产品在各个阶段各种版本的文档、程序及数据的集合,贯穿于整个软件项目的始终。随着软件产品开发的进行,由于各种客观原因,其中的预算、设计方案、进度等内容都有可能需要大大小小的更改(这些改动可能是合理的),整个改变的过程对软件项目的参与人员来说必须是可视的,以便提高软件的可靠性和质量,而这一切都应该有正确的软件配置来控制如果失去正确的软件配置管理,那么针对软件产品发生的任何更改或者是维护都会给软件项目带来混乱甚至是失败。 2.5风险管理意识不足 风险管理是软件项目中防止失败的一种重要手段,软件项目不同的阶段存在着不同的风险,并且风险会随着项目的进展而变化,目前国内的软件企业大都不注意软件项目的风险管理。除了社会环境风险、商业风险等这些客观风险之外.可控的软件项目风险主要指技术风险。技术风险主要是指与软件项目本身相关的的技术因素变化带来的风险,如果在一定的条件下达不到技术条件能够实现的目标,不但延缓项目的进度而且会增加项目的成本.继而使整个项目受到影响。 3.通过过程管理加强软件项目管理的实践模式 利用cMM fCapabilityMaturityModeforSoftware)的核心思想把软件项目管理看作一个软件过程,并根据这一原则对整个软件项目的开发和管理进行过程监控,监督发现过程中影响项目的关键问题并予以解决。软件过程是指软件开发人员开发和维护软件及相关产品的一套行为、方法、实践及变换过程,包括软件开发过程和软件管理过程。CMM把软件开发机构按照不同开发水平划分为5个级别。每个等级被分解为几个KPA(关键过程域),KPA是指在某个成熟度等级应重点关注的区域,也是达到此成熟度等级必须解决的关键点。①初始级,无过程意义。软件过程是无序的、随机的、缺乏总计划,无预见性,大多数活动是应付危机,经常超期超支,成功取决于个人。②可重复级,具备基本的项目管理。KPA分别是:需求管理、软件项目计划、软件跟踪与监督、软件子合同管理、软件质量保证、软件配置管理;③已定义级,已定义软件过程。已将软件管理和软件工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。KPA分别是:组织过程焦点、组织过程定义、培训大纲、集成软件管理、软件产品工程、组间协调、同行评审;④可管理级,过程可度量。已收集了软件过程和产品质量的详细度量方法,软件过程和产品均可被定量地理解和控制。KPA分别是:定量过程管理、软件质量管理;⑤优化级,过程控制。通过过程的量化反馈以及新技术、新方法促使过程不断改进。KPA分别是:缺陷预防、技术更新预防、过程更改管理。 CMM只是一个过程改进的框架.并没有给出具体实施的办法。在该模式中对目前CMM中的KPA做适当裁 减.定义了6个关键过程域:软件项目计划(SPP)、需求管理(RM)、软件项目跟踪和监督(SPTO)、软件质量保证(SQA)、软件配置(SCM)、同行评审(PR),设置了三个工作组:软件项目过程组(SPPG)、软件工程组(SEG)、软件质量保证组(SQAG)。通过工作组对关键过程域的操作来加强软件项目的管理。 3.1定义KPA 3.1.1软件项目计划(SPP) 软件项目计划是为要实施的软件项目编制软件过程活动的安排,包括进度控制、成本控制、质量控制、风险控制等,也是实施CMM2的核心此阶段在安排过程活动的同时开展项目设计的前期工作,设计和界定在整个项目中各阶段所需的开发、质量、跟踪、评审、风险、成本等工作。项目计划是指导项目过程的具体措施,要在有软件项目实施经验的人员领导下投人大量的时间和人力资源来完成。制定项目计划应注意7个问题。①在科学论证的基础上制定过程,充分调动人员积极性合理地确定项目组的参加人员;②对软件项目各程中的任务进行分解,明确项目的里程碑和检查点;③正确估计软件项目中的软件资源、硬件资源、人力资源及其它费用;④正确估计各方面因素带来的风险并制定应对措施;⑤制定项目实施过程中的跟踪和监督措施;⑥确定软件的评审和测试方法;⑦详细的文档资料。 3.1.2需求管理(RM) 需求分析主要包括面向用户的用户需求和面向开发人员的系统需求.是整个软件工程的第一步.也是非常关键的一个环节。需求分析主要针对用户的业务流程、系统功能、性能、数据分析进行严格的定义.是设计一个软件应用系统的起点与基本依据,通过它来评判软件产品是否能够解决用户问题,也是项目成功与否的标准。就目前国内现状来讲,一般签定软件项目合同的用户是主管信息技术的负责人,它所关心的可能是整个系统的目标需求,用户方中层管理人员关心的是业务流程需求.终端操作人员则注重软件本身的易操作性和功能特性,因此.面向用户的需求一定要和用户多方人员多沟通、交流.最终通过双方有关部门人员的论证以文档资料的形式确定下来。任何一个需求分析因客观原因可能存在着需求更改的现象,对于这种情况一定要注意需求更改的可控性.要建立需求的基准版本和更改版本控制文档资料.使受需求变化影响的产品与需求变更一致。但要注意在更改需求的同时要衡量需求的稳定性,如果一个需求的变更比较频繁,意味着本项目并没有真正了解用户想要解决的实际问题。可以说需求分析的完整性和变更可控性直接影响到软件过程的改进,它可以降低软件质量、加大软件开发的成本、甚至是导致项目的失败。软件工程组(SEG)中要明确定义一个需求管理员。 3.1.3软件项目跟踪和监督(SPTO) 软件项目的跟踪和监督始终贯穿于整个软件项目的过程中,是项目得以控制的前提和条件、是软件质量的根本保障,其目的是增加软件过程中进度、成本、工作量、质量、风险等内容的可视性,也是实施CMM2的核心。除去市场、法律等不可控制因素外,根据项目计划对项目进展的有关情况及影响项目实施的相关因素进行及时、客观、准确的信息采集,将采集到的需求、成本、进度、风险等内容形成文档并建立一个项目跟踪信息平台。项目负责人定期召集软件过程人员、开发人员、质量保证人员、用户方有关人员召开开放式的例会,例会的主要内容是检查项目进展、数据的分析、认识的偏差、资源的搭配、相关的风险等问题并讨论确切的解决办法,通过跟踪和监督使项目始终处于可视化的受控状态。 3.1.4软件质量保证(SQA) 软件质量保证是与软件产品满足规定的和隐含的需要能力有关的特征或特性的组合。对用户来讲主要体现在软件产品的有效性、一致性、完整性、可靠性和可操作性等方面,对于软件产品本身来讲体现在软件产品的可移植性、易维护性、健壮性、可重用性等方面。具体实践中.软件质量保证应在软件项目计划、需求分析、跟踪和监督、软件配置和软件评审的相互配合下完成.软件质量保证要做到以事先预防和跟踪为主,事后纠偏为辅。 3.1.5软件配置(SCM) 软件配置是针对软件产品的跟踪和控制活动.贯穿于整个软件项目的过程中.目的是建立和维护在整个生命周期内软件产品的完整性和一致性,使整个软件产品的演进过程处于可控的状态,继而提高软件的可靠性和质量。在实践应用中主要做到五个子项的配置①配置项的标识。标识做到唯一性。便于跟踪和管理。②版本管理。对整个软件过程中的文件和目录提供有效的跟踪手段。③变更控制。保持并传递修改信息。④配置审计。确定整个项目生产周期中产品在技术和管理上的完整性。⑤系统整合。把系统的不同部分集成后完成一组特定的功能。 3.1.6同行评审(PR) 同行评审是根据预定的规范和标准对软件产品进行评审。评审的结果是衡量软件产品质量的依据。在整个软件过程中对详细设计和软件综合测试作为两个关键评审点来进行评审,评审的过程中注意要结合本软件项目的具体要求和标准。 3.2组的定义 在具体的实践应用中设置了三个组,在降低了人员成本的同时提高了软件过程改进能力和软件质量。 软件项目过程组(SPPG)组织具体的项目实施活动,管理并协调整个软件项目的过程,主要完成SPP和SPTO。 软件工程组(SEG)负责软件工程的需求分析、概要设计、详细设计、编码、测试、维护工作。 软件质量保证组(SQAG)主要完成SPTO、SCM、PR、SQA等工作。 4.实践模式效率评估 4.1开发时间 软件开发由需求分析、概要设计、详细设计、编码、软件测试、项目维护和软件集成几部分内容组成,在需求分析和设计阶段采用CMM框架实施过程管理所花费的时间要多于没有实施过程管理花费的时间。首先对项目做大量分析,论证项目的可行性。然后在和用户做良好沟通、反复论证的基础上做需求分析,形成文档资料。这种模式下花费在需求分析和设计上的时间大约占项目总开发时间的40%,但这两个阶段完成了数据流程、算法描述、详细的规格说明等内容,为代码编写、软件测试、软件维护等后续内容的工作节省了时间,软件项目的开发周期大大缩短。经过评估,采用该实践模式实施软件过程管理的软件项目开发周期比没有实施软件过程管理的软件项目开发周期缩短20%。 4.2开发质量 采用CMM标准通过软件过程管理加强软件项目管理的实践模式使软件质量明显提高、需求分析周密、代码错误率明显降低、软件产品完整性好、功能齐全、维护量下降,软件项目最终得以顺利实现。 5.结语 本文给出的通过软件过程管理加强软件项目管理的实践模式优点非常明显.软件过程改进目标明确,可以有效地提升软件产品质量、节省开发时间、降低成本。同时该模式更能体现团队精神,摆脱了软件开发中的个人主义,从整体出发,在强调过程对整体重要性的同时,进一步降低了软件过程中的各种风险,使软件项目始终处在可视化的优良受控状态中 浅谈计算机软件项目管理:浅析计算机软件项目管理中的需求分析 论文关键词:需求分析 用户方干系人 项目经理 需求分析员 论文摘要:计算机软件项目管理中的需求分析是提高软件质量的基础也是决定一个软件项目成败的关键。本文介绍了在需求分析研究中探索出的一些有效措施。 众观国内计算机软件业的发展,除远不如欧美等西方发达国家外,与人均GDP不及我国的印度相比也相距甚远,软件业的劣势正严重制约着我国IT业的发展。我国软件业的劣势表现在自主开发的成熟软件不多,而开发的大量软件工程项目(如ERP等)存在缺陷或完全开发失败。目前,国家正在加大对软件工程的研究和对软件工程人才的培养。根据资料显示,属于需求分析造成软件设计的错误和缺陷约占软件失败的6400,而属于程序代码的错误仅占软件失败的360a,数据表明需求分析是提高软件质量的基础也是决定一个软件项目成败的关键。通过对软件项目管理知识的系统学习并结合近年来自己参与部分软件项目实施的经验,介绍在需求分析研究中探索出的一些有效措施。 1尽快熟悉项目用户方干系人全貌 项目用户方干系人,指所有可能受到项目结果重大影响的人,即项目的风险承担者,他可能是项目的受益者,也可能是项目的受害者。因此,应当从项目的启动开始,需求分析员及其项目成员就要分清项目用户方干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。 有些项目在做需求调查时,由于受进度要求等客观因素影响,需求分析员与建设单位的技术部门交流较多,向业务管理部门和实际使用者调查不够深入,造成软件试用后不得不再对需求做较大调整,“从头再来”的部分比例很高,大大超过进度要求时间。因此,熟悉项目用户方干系人全貌是进行需求调查的第一步,也是需求调查的基础。在定制开发项目的项目用户方干系人中,最重要的是建设单位中的人事组织、业务关系。最好是能够用组织结构图画出相关单位的组织结构;还应当在相关单位组织结构图基础上画出全体项目用户方干系人结构图,以便更好更全面地进行需求调研分析;用责任矩阵确定各部分的调研对象;建立调研对象通讯录以保证调研及分析期间及时的沟通。 2采取正确的需求获取方法 软件开发项目的目的就是要实现项目用户方的需求,项目用户方的需求包含明确的和隐含的,也可以分为NEED, WANT, WISH等不同的层次。如果对项目所有用户方干系人没有进行足够的沟通和影响,使其尽可能地参与项目,则会出现客户方相关责任人不明确或对范围和需求责任心不强,提出的需求具有随意性,项目前期对需求的确认不够积极,或者是多个用户代表各说各话、昨是今非,项目后期需求变化随意等现象,这就会造成项目范围的蔓延,进度的拖延,成本的扩大,甚至项目的完全失败。 各种用户对系统具有不同的要求,如一个没有经验的用户关心系统是否简单易用,对于高级用户则关心产品的易用性和高效性。因而需要对用户进行分类,每一个用户类将有自己的一系列功能和非功能要求。在项目中,要尽早为产品确定并描述不同的用户类,这样就能从每一个重要的用户类代表中获取不同的需求。 项目需求具有双面性(用户与开发商)和多面性(项目中各干系人),因此,项目经理和系统集成者应了解用户干系人需求,用户干系人也应了解技术方面的需求,两者缺一不可。正确的需求获取需要了解需求的来源、用户的分类、用户的代表性、用户需求谁说了算数等因素。开发人员和项目经理要有足够的耐心聆听用户的讲述,要足够详细地了解每一个细节。项目管理者要善于将需求分类、归类,善于将需求文档化,并有所查询标记。 3可视化需求调研,引导各种客户挖掘他们的需求 有的客户因为自己缺乏计算机知识,无法提出完整准确、隐含的或潜在的需求。若这些需求不能满足将导致用户的不满。因此需求调研分析人员应善于想用户所想,不但要确定明确的需求,还要善于用启发的方式与用户探讨隐含的或潜在的需求,并结合各种调研分析技术挖掘超出客户期望的令人兴奋的需求。这就要求需求调研分析员要尽快完整地熟悉相关业务,从而能够站在用户的立场看待软件需求,想用户所想,做好业务与计算机之间的桥梁。利用可视化需求调研的方法可以很好地启发用户深人挖掘潜在的需求。可视化需求调研就是使用图表等工具来启发引导用户清楚地叙述需求,并且使需求更加全面完善。 对于高层领导,可以提供系统总体框架图;对于业务管理人员,可以用业务流程图来描述新旧系统的业务流程;对于客户中的技术人员,可以用数据流图、实体关系图或UMI中的各种图形对系统进行各种角度的描述;而对于业务管理人员、客户中的技术人员、以及各层次各流程中的用户,画出用户界面图来进行需求挖掘,是个比较有效的沟通方式。 这里特别说明一下用户界面的重要性。用户界面的设计按理来说是软件设计的责任,当然客户自己对界面有特别提出要求的除外。但是,如果把它提前到需求调研时与客户进行讨论,则可以大大改善需求调研的效果。因为这时客户对于将来的系统还没有一个形象上的概念,或者有一个模糊的预想的概念需要表述、验证、明晰化、完善化,以笔者的经验,画出用户界面草图与客户进行讨论,可以大大激发他们提供更为准确全面的需求。原来收集资料,描述业务,说明系统模型到了山穷水尽的时候,这种方法可以达到柳暗花明又一村的效果。 4详细描述各项业务,以便让所有客户确认 尽可能全面详细地调查并且描述原有系统和用户希望将来系统具有的各项业务的流程,并将这些业务流程文档化后与客户进行讨论,对描述错误或不准确不精确的进行修改,最终让客户进行确认。从近年来开发的软件看,对业务处理过程了解的完整性和准确性非常重要。虽然对数据来说都是SIDUT(查增删改传),但具体业务都是分为若干步骤,每个步骤都有其业务名称,同一步骤可能对多个数据集进行不同操作,需要调查了解清楚才能设计出适合用户业务特点和习惯的软件,使开发出来的软件更受欢迎。当然在进行软件概要设计时,要尽量排除业务流程的制约,即把流程中的各项业务节点工作作为独立的对象,充分考虑他们与其他各种业务对象的接口,在流程之间通过业务对象的相互调用实现其业务流程,这样,在业务流程发生有限的变化时,就能够比较方便地修改系统程序而实现新的需求。 对于各项业务的调查可以通过对以下资料的收集整理分析来完成,这些资料来自各种各样的项目用户方干系人:遵循的标准、组织发放的工作手册、作业流程、有关业务的上级通知、有关业务的办事指南、办理业务时需要填写的登记表、各种相关的统计报表及通过其他途径收集的类似系统的介绍、技术资料等等。 5对项目用户方干系人的愿望进行平衡 不同的项目用户方干系人其愿望和追求的目标往往相差甚远,因 此对项目用户方干系人的愿望进行平衡可能是非常重要而又相当困难的事情。例如:我曾在参与的某医院计算机管理系统项目中,遇到医院管理层希望能够采集尽可能多的信息项以便对数据进行多种多样的统计分析,同时为了对信息进行有效控制而增加一些审批流程;而门诊、药房等对外办公的基层窗口则因为客流速度的压力希望减少信息项的输人量;甚至有些不良的基层部门由于害怕建立透明度高的信息系统会影响他们的利益而消极地应付,即所谓反需求;而客户的客户(就诊的病人)则希望相关机构能够简化工作流程,加快办事速度,增加诊断情况和就诊费用的透明度;甚至项目组本身因为技术、资源、进度等原因,需要对一些功能进行优先级排序和取舍。虽然不是所有人的需求都是可以满足的,特别是消极的反需求是不能接受的,但他们的需求都是应当考虑全面并进行平衡的。 如果不同的用户方干系人有不一致的需求,那么必须决策出满足哪一类用户方干系人的需求更为重要。了解可能使用产品的客户种类的信息和他们的用法与产品的业务目标的关系如何,将有助于决定哪一个用户类所占份额更大。如果系统分析人员提出的需求与开发者所想要开发的系统发生冲突时,通常由于系统分析人员作为客户的人,市场需求具有更重的分量,但是,系统分析人员不能一味地迁就客户需求。 不同的用户方干系人可能都要求产品按照他们各自的喜好来设计。运用项目的业务目标来决定哪些是你最关心的客户,非核心客户的需求可以安排在下一个版本中开发。当开发者想像的产品与客户需求冲突时,通常应该由客户作出决策,然而,不要陷人“客户总是对的”的陷阱中去,现实中,客户并不总是对的。 6强调实现项目需求的层次递进性 了解该系统或者该项目用户所能够提供的最小的工程费用。当预计经费不能支持时,应当考虑将项目分期实施。在系统上、技术上对用户进行引导性建议,使用户了解集成商所要进行的工作,了解集成商是为了帮助用户实现他的需要、达到用户的目的,而不仅仅是为了赚钱,用户更了解集成商,也更了解自己的系统,有利于以后的项目合作、工程实施和系统维护。 分析用户曾用系统模式、数据结构和库模式,看是否保持、共用、转换,这涉及保护用户投资的问题。根据现在工作业务流情况确定现有的工作模式,还应兼顾将来可能会发生的变化、扩展、新规定,及与同国际接轨可能的带来的变化。考查工程实施环境是否有保证,尤其是网络工程,必须在需求调查时充分了解用户领域的实施环境,当不具有实施环境时,要求进行配套设计和环境改造。 7编写需求文挡和进行需求评审与其他项目小组成员协作完善系统需求 文档资料是集成商重要的财富,贯穿于系统集成和项目开发的整个过程,其中包括法律文档、技术文档、资料文挡。文挡要求完整性、一致性、可修改性、可跟踪性。 以原来的需求为基础的工作完成后,要修补需求错误需要大量的工作,研究表明:比起在需求开发阶段由客户发现的一个错误,然后更正这一错误需要多花到倍的时间。因此,需要进行需求评审。需求审查结束的标准为:已经明确阐述了审查员提出的所有问题、已经正确修改了文档、修订过的文档已经进行了语法检查、所有TBD问题都已经解决、文档归档。 需求文档完成之后,并不是把它扔给后面的设计人员就了事了。作为项目组其他成员,对需求的有效性也起到某种程度的验证作用。虽然软件项目的生命周期按照各种开发模型有不同阶段的划分,但每个阶段的结束不是简单地把阶段工作成果塞给下一阶段的成员就可以了。特别是高科技的软件开发项目,上一阶段的工作成果往往要通过多次的沟通才能更为清晰地被下一阶段成员接受,其有效性、合理性也要被下一阶段的工作所检验,通过检验有时也有必要对上一阶段的工作结果进行相应的调整,需求分析也是如此。因此,无论是同一阶段不同人员之间,或是不同阶段人员之间都应根据需要相互协作,相互配合,共同完成软件开发任务。 浅谈计算机软件项目管理:对计算机软件项目管理中的需求分析 论文关键词:云技术 多媒体技术 改革现有的教学模式 教学资源的整合 激活学生的学习兴趣 论文摘要:在云技术架构下,建立强大的多媒体教学资濠库。这样可以集中整合各方优秀的教学资源,建最好的和最丰富的教学课库,让各奏学生均可找到适合自己,而且自己感性趣的课程和课件。建立了多媒体教学资涎库后,既可以垴小东西部教育差距,又能保障教育资泺的均衡发展。 大部分教师(尤其大学教师)的工作应该相应的从向学生灌输知识,转向引导学生学习知识,找到激活学生学习智门的钥匙。 放在云架构内的这些教学资源,随着不断的更新、增加,必将成为一笔极大的资源财富,不仅可以供在校学生学习使用,也可以提供给全社会需要再学习、需要更新知识的人士使用,为全社会形成一种不断学习的氛围,提供一个强大的资源保障。 一旦形成全社会不断学习的风气,社会就会和谐,文明程度的程度就会不断提高,人们的创新意识和能力就有了源动力,人们就会从更多的追求物质财富转而进入追求精神财富。 前文我们探讨了利用“云技术+多媒体技术改革现有的教学模式”,话题意犹未尽,还想进一步探讨一些教学模式改革的细节。当然我们暂且讨论的教学对象为大学以上的学生,或部分高中生,因为绝大部分高中生的教学活动还是基本围绕着高考指挥棒在转。 在云技术架构下,建立强大的多媒体教学资源库。这样可以集中整合各方优秀的教师资源、教学设备资源,建最好的和最丰富的教学课程库,让各类学生均可找到适合自己,而且自己感性趣的课程、课件和学习参考资料。 制作这些课程资源可以分工,高层次教师撰写课程内容,配套各类教师,可以有的整合内容、有的应用多媒体素材加工制作课件、有的制作各类课程教程、而有的则准备相关参考资料以及考试题库系统等教学资源。 这时的教学资源就不是属于某个学校、某个团体、某个局部组织,而是属于国家或全人类的资源,为全人类所共享。 这样,可能有人会担心是否教师或相应的人员都要下岗了呢?否! 大部分教师(尤其大学教师)的工作只是从向学生灌输知识,转向引导学生学习知识。大部分长期从事教学工作的教师深有体会,好学生不完全是教出来的,而且通过老师启发性的引导,激活了他们的兴趣,或打开了他们的智门,使他们自己要学习,只有激活了学习者的源动力,才能使他们朝着一个一个目标不断攀登。 那么,教师教学要包括哪些内容呢?我认为教师的教学工作应该围绕中如何能激活学习者的兴趣和以如何能打开他们的智门为衡量指标。方法可以各不相同,因为人是个性化的,当然方法也应该因人而异,当然可以对个性相近的学生采用类似的方法,但还是需要有微调。 具体做法可以不断摸索。教师可以组织学生开展各种开发、创新活动,可以组织各种竞赛活动,可以组织学生参与各种专题讨论活动,让每个学生均有机会表达自己的想法和观点,很多思想的火花是在交流中产生的,是在实践过程中绽放的,所以要多提供一些机会让学生经历各种活动的锻炼,活动的过程是最能锻炼人能力的,如果省略了过程,结果也是不丰实的。 我们提倡多开展各种创新活动来锻炼学生的能力,而现在学生这方面的锻炼机会太少,应该增加相应的比例。那么是否就不考试了呢?当然不行!期间,我们的学校大多不考试,结果中学毕业生连简单的一元一次方程都不会,这样社会如何发展?考试还是衡量学生学习掌握程度的标尺,当然考试形式可以的笔试,也可以是操作过程,更可以写论述文章、论文之类形式;考试时间可以是期中、期末考试,可以是融入平时的多次抽查中,也可以罗列各类课程统考时间安排表,学生学习到一定程度,可以报名参加考试,来检验自己知识的掌握程度,形式可以通过实践不断总结,不断改进。总之,有助于学生更有效掌握知识、能打开学生智门的方法就是好方法。 学生通过考试,当然需要有一系列学分累积机制,最好将理论课程和实践课程按不同学分比例分别统计,保证不同学科对理论和实际操作的要求不同。 这样的机制,对教师的要求不是低了,而是更高。要求教师积极思考,寻找能与学生更好沟通,激活学生心智的钥匙,这是没有一个统一模式可循的,教师也必须不断摸索、创新。 有了这种师生一对一、一对多、多对多的关系机制,学生与教师之间的距离不是远了,而是更近了,社会也会更和谐。因为从教师的角度来说,必须了解学生,走近学生,才能找出适合他们学习自嘶方法,才能激活他们的学习兴趣;从学生的角度来说,有问题、有心结就可以及时与他们所喜欢的教师沟通、请教,尽快排除障碍,琢磨出适合自己学习的好方法。要使学生学习效果好,教师与学生是一个整体,只有双方的努力、协调,才能找到最佳的教学方法。 如果学生太多,老师顾及不了怎么办?老师可以到学校与学生面对面的谈话,也可以出现在各种活动场合,如:各类研讨会老师可以当组织者,让学生大家来准备内容、畅通各自的观点,但教师更多的时间可以利用现有的网络环境、3G环境,老师可以规定时间在网上,利用视频、语音交流与学生好似面对面的交谈,也可以利用手机、短信等的形式及时进行一些师生对话。不远的将来电脑、手机、电视三网合一,利用任何IT工具都可以及时沟通,现代科学技术的发展已经具备了技术上的条件,问题是我们需要寻找到一系列行之有效的方法来强化师生间的沟通。 放在云架构内的这些教学资源,随着不断的更新、增加,必将成为一笔极大的资源财富,不仅可以供在校学生学 习使用,也可以提供给全社会需要再学习、需要更新知识的人士使用,为全社会形成一种不断学习的氛围,提供一个强大的资源保障。 一旦形成全社会不断学习的风气,社会就会和谐,文明程度的程度就会不断提高,人们的创新意识和能力就有了源动力,人们就会从更多的追求物质财富逐步进入追求精神财富,那么社会的发展也就更稳健。 随着社会的进步,我们应该摸索和寻找一种更理性和有利于学生身心健康的教学体制,让学习者获得获取知识的乐趣,让教师真正成为学生的良师益友。 人类发展方向是朝着地球村的方向发展。我们开始可以建立教学资源的私有云,局部范围的试点,逐步扩大范围,最终使我们的教学资源转而成为全社会的财富。 我们国家的教育资源本来就不够,建立了多媒体教学资源库后,既可以缩小东西部教育差距,又能保障教育资源的均衡发展,我们何乐而不为呢? 浅谈计算机软件项目管理:对软件项目管理的探讨 一、引言 随着信息技术的飞速发展,软件产品的规模也越来越庞大,个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。各软件企业都在积极将软件项目管理引入开发活动中,对开发实行有效的管理。我公司是西安一家中型软件企业,在公司中已经实行了项目管理制度,软件项目管理是整个项目管理中的一个重要组成部分。 从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。 软件开发不同于其他产品的制造,软件的整个过程都是设计过程(没有制造过程);另外,软件开发不需要使用大量的物质资源,而主要是人力资源;并且,软件开发的产品只是程序代码和技术文件,并没有其他的物质结果。基于上述特点,软件项目管理与其他项目管理相比,有很大的独特性。 二、软件项目管理的组织模式 软件项目可以是一个单独的开发项目,也可以与产品项目组成一个完整的软件产品项目。如果是订单开发,则成立软件项目组即可;如果是产品开发,需成立软件项目组和产品项目(负责市场调研和销售),组成软件产品项目组。 公司实行项目管理时,首先要成立项目管理委员会,项目管理委员会下设项目管理小组、项目评审小组和软件产品项目组。 1、项目管理委员会 项目管理委员会是公司项目管理的最高决策机构,一般由公司总经理、副总经理组成。主要职责如下: (1)依照项目管理相关制度,管理项目; (2)监督项目管理相关制度的执行; (3)对项目立项、项目撤消进行决策; (4)任命项目管理小组组长、项目评审委员会主任、项目组组长. 2、项目管理小组 项目管理小组对项目管理委员会负责,一般由公司管理人员组成。主要职责如下: (1)草拟项目管理的各项制度; (2)组织项目阶段评审; (3)保存项目过程中的相关文件和数据; (4)为优化项目管理提出建议。 3、项目评审小组 项目评审小组对项目管理委员会负责,可下设开发评审小组和产品评审小组,一般由公司技术专家和市场专家组成。主要职责如下: (1)对项目可行性报告进行评审; (2)对市场计划和阶段报告进行评审; (3)对开发计划和阶段报告进行评审; (4)项目结束时,对项目总结报告进行评审。 4、软件产品项目组 软件产品项目组对项目管理委员会负责,可下设软件项目组和产品项目组。软件项目组和产品项目组分别设开发经理和产品经理。成员一般由公司技术人员和市场人员构成。主要职责是:根据项目管理委员会的安排具体负责项目的软件开发和市场调研及销售工作。 三、软件项目管理的内容 从软件工程的角度讲,软件开发主要分为六个阶段:需求分析阶段、概要设计阶段、详细设计阶段、编码阶段、测试阶段、安装及维护阶段。不论是作坊式开发,还是团队协作开发,这六个阶段都是不可缺少的。 根据公司实际情况,公司在进行软件项目管理时,重点将软件配置管理、软件质量管理、软件风险管理及开发人员管理四方面内容导入软件开发的整个阶段。 在八十年代初,著名软件工程专家B.W.Boehm总结出了软件开发时需遵循的七条基本原则,同样,我们在进行软件项目管理时,也应该遵循这七条原则。它们是: (1)用分阶段的生命周期计划严格管理; (2)坚持进行阶段评审; (3)实行严格的产品控制; (4)采用现代程序设计技术; (5)结果应能够清楚地审查; (6)开发小组地人员应该少而精; (7)承认不断改进软件工程实践地必要性。 四、编写《软件项目计划书》 项目组成立的第一件事是编写《软件项目计划书》,在计划书中描述开发日程安排、资源需求、项目管理等各项情况的大体内容。计划书主要向公司各相关人员发放,使他们大体了解该软件项目的情况。对于计划书的每个内容,都应有相应具体实施手册,这些手册是供项目组相关成员使用的。 《软件项目计划书》一般应该包括下述内容: 1.引言 1.1计划的目的 1.2项目的范围和目标 1.2.1范围描述 1.2.2主要功能 1.2.3性能 1.2.4管理和技术约束 2.项目估算 2.1使用的历史数据 2.2使用的评估技术 2.3工作量、成本、时间估算 3.风险管理战略 3.1风险识别 3.2有关风险的讨论 3.3风险管理计划 3.3.1风险计划 3.3.2风险监视 3.3.3风险 管理 4.日程 4.1项目工作分解结构 4.2时限图(甘特图) 4.3资源表 5.项目资源 5.1人员 5.2硬件和软件 5.3特别资源 6.人员组织 6.1组织结构 6.2管理报告 7.跟踪和控制机制 7.1质量保证和控制 7.2变化管理和控制 8.附录五、软件配置管理 是否进行配置管理与软件的规模有关,软件的规模越大,配置管理就显得越重要。软件配置管理简称SCM(SoftwareConfiguratioManagement的缩写),是在团队开发中,标识、控制和管理软件变更的一种管理。配置管理的使用取决于项目规模和复杂性以及风险水平。 1、目前软件开发中面临的问题 。在有限的时间、资金内,要满足不断增长的软件产品质量要求; 。开发的环境日益复杂,代码共享日益困难,需跨越的平台增多; 。程序的规模越来越大; 。软件的重用性需要提高; 。软件的维护越来越困难。 2、软件配置管理应提供的功能 在ISO9000.3中,对配置管理系统的功能作了如下描述: 。唯一地标识每个软件项的版本; 。标识共同构成一完整产品的特定版本的每一软件项的版本; 。控制由两个或多个独立工作的人员同时对一给定软件项的更新; 。控制由两个或多个独立工作的人员同时对一给定软件项的更新; 。按要求在一个或多个位置对复杂产品的更新进行协调; 。标识并跟踪所有的措施和更改;这些措施和更改是在从开始直到放行期间,由于更改请求或问题引起的。 3、版本管理 软件配置管理分为版本管理、问题跟踪和建立管理三个部分,其中版本管理是基础。版本管理应完成以下主要任务: 。建立项目; 。重构任何修订版的某一项或某一文件; 。利用加锁技术防止覆盖; 。当增加一个修订版时要求输入变更描述; 。提供比较任意两个修订版的使用工具; 。采用增量存储方式; 。提供对修订版历史和锁定状态的报告功能; 。提供归并功能; 。允许在任何时候重构任何版本; 。权限的设置; 。晋升模型的建立; 。提供各种报告。 4、配置管理软件PVC6.0 PVCS6.0是一套非常优秀的配置管理软件,它能够实现配置管理中的各项要求,并且能和多种流行开发平台集成,为配置管理提供了很大的方便。 六、软件质量管理 随着软件开发的规模越来越大,软件的质量问题显得越来越突出。软件质量的控制不单单是一个软件测试问题,在软件开发的所有阶段都应该引入质量管理。我公司除加强了国家标准"信息技术软件生存期过程"(GB/T8566--1995)的规范管理外,还积极为通过ISO9000.3做准备。 1、软件质量保证计划 在进行软件开发前,需要有一个《软件质量保证计划》。目前较常用的是AI/IEEETOL 730--1984,983--1986标准,包括以下内容: 1.计划目的 2.参考文献 3.管理 3.1.组织 3.2.任务 3.3.责任 4.文档 4.1.目的 4.2.要求的软件工程文档 4.3.其他文档 5.标准和约定 5.1.目的 5.2.约定 6.评审和审计 6.1.目的 6.2.评审要求 6.2.1.软件需求的评审 6.2.2.设计评审 6.2.3.软件验证和确认评审 6.2.4.功能评审 6.2.5.物理评审 6.2.6.内部过程评审 6.2.7.管理评审 7.测试 8.问题报告和改正活动 9.工具、技术和方法 10.媒体控制 11.供应者控制 12.记录、收集、维护和保密 13.培训 14.风险管理 2、质量管理的基本原则 。控制所有过程的质量; 。过程控制的出发点是预防不合格; 。质量管理的中心任务是建立并实施文件化的质量体系; 。持续的质量改进; 。有效的质量体系应满足顾客和组织内部双方的需要和利益; 。定期评价质量体系; 。搞好质量管理关键在于领导。 3、软件质量因素 正确性:系统满足规格说明和用户目标的程度,即,在预定环境下能正确地完成预期功能的程度。 健壮性:在硬件发生故障、输入的数据无效或操作错误等意外环 境下,系统能做出适当响应的程度。 效率:为了完成预定的功能,系统需要的计算资源的多少。 完整性(安全性):对未经授权的人使用软件或数据的企图,系统能过控制(禁止)的程度。 可用性:系统在完成预定应该完成的功能时另人满意的程度。 风险:按预定的成本和进度把系统开发出来,并且为用户所满意的概率。 可理解性:理解和使用该系统的容易程度。 可维修性:诊断和改正在运行现场发现的错误所需要的工作量的大小。 灵活性(适应性):修改或改进正在运行的系统需要的工作量的多少。 可测试性:软件容易测试的程度。 可移植性:把程序从一种硬件配置和(或)软件系统环境转移到另一种配置和环境时,需要的工作量多少。有一种定量度量的方法是:用原来程序设计和调试的成本除移植时需用的费用。 可再用性:再其他应用中该程序可以被再次使用的程度(或范围)。 互运行性:把该系统和另一个系统结合起来需要的工作量的多少。 4、软件评审 软件评审并不是在软件开发完毕后进行评审,而是在软件开发的各个阶段都要进行评审。因为在软件开发的各个阶段都可能产生错误,如果这些错误不及时发现并纠正,会不断地扩大,最后可能导致开 发的失败。下面这组数据可以清楚的看出前期的错误对后期的影响。 软件评审是相当重要的工作,也是目前国内开发最不重视的工作。 (1)评审目标 。发现任何形式表现的软件功能、逻辑或实现方面的错误; 。通过评审验证软件的需求; 。保证软件按预先定义的标准表示; 。已获得的软件是以统一的方式开发的; 。使项目更容易管理。 (2)评审过程 A、召开评审会议:一般应有3至5人参加,会前每个参加者做好准备,评审会每次一般不超过2小时。 B、会议结束使必须做出以下决策之一:接受该产品,不需做修改;由于错误严重,拒绝接受;暂时接受该产品。 C、评审报告与记录;所提出的问题都要进行记录,在评审会结束前产生一个评审问题表,另外必须完成评审简要报告。 (3)评审准则 。评审产品,而不是评审设计者(不能使设计者有任何压力); 。会场要有良好的气氛; 。建立议事日程并维持它(会议不能脱离主题); 。限制争论与反驳(评审会不是为了解决问题,而是为了发现问题; 。指明问题范围,而不是解决提到的问题; 。展示记录(最好有黑板,将问题随时写在黑板上); 。限制会议人数和坚持会前准备工作; 。对每个被评审的产品要尽力评审清单(帮助评审人员思考); 。对每个正式技术评审分配资源和时间进度表; 。对全部评审人员进行必要的培训; 。 及早地对自己地评审做评审(对评审准则的评审)。5、ISO9000.3软件质量认证体系 ISO9000.3是ISO9000质量体系认证中关于计算机软件质量管理和质量保证标准部分。它从管理职责、质量体系、合同评审、设计控制、文件和资料控制、采购、顾客提供产品的控制、产品标识和可追溯性、过程控制、检验和试验、检验/测量和试验设备的控制、检验和试验状态、不合格品的控制、纠正和预防措施、搬运/贮存/包装/防护和交付、质量记录的控制、内部质量审核、培训、服务、统计系统等二个方面对软件质量进行了要求。 6、测试 软件测试是软件开发的一个重要环节,同时也是软件质量保证的一个重要环节。所谓测试就是用已知的输入在已知环境中动态地执行系统(或系统的部件)。测试一般包括单元测试、模块测试、集成测试和系统测试。如果测试结果与预期结果不一致,则很可能是发现了系统中的错误,测试过程中将产生下述基本文档: (1)测试计划:确定测试范围、方法、和需要的资源等。 (2)测试过程:详细描述和每个测试方案有关的测试步骤和数据(包括测试数据及预期的结果)。 (3)测试结果:把每次测试运行的结果归入文档,如果运行出错,则应产生问题报告,并且必须经过调试解决所发现的问题。测试结果:把每次测试运行的结果归入文档,如果运行出错,则应产生问题报告,并且必须经过调试解决所发现的问题。 七、软件风险管理 软件项目管理存在着风险,如果我们提前重视风险,并且有所防范,就可以最大限度减少风险的发生。进行风险管理是有效的手段。 1、风险的分类 根据风险内容,我们可以将风险分为项目风险(成本提高,时间延长等)、技术风险(技术不成熟等)、商业风险(销售问题等)、战略风险(公司的经营战略发生了变化)、管理风险(公司管理人员是否成熟等)、预算风险(预算是否准确等)等。 另外,我们还可以将风险分为已知风险(如员工离职等)、可预报风险(从以往经验得出可能有风险的)和不可预知风险。 2、风险的识别 风险识别的有效方法是建立风险项目检查表。主要涉及以下几方面检查: 。产品规模风险检查 。业务影响风险检查 。与客户相关的风险检查 。过程风险检查 。技术风险检查 。开发环境风险检查 。与人员的模式和经验有关的风险检查 3、风险评估 风险评估主要从下面七个方面进行: 。发生的可能性 。发生的结果(影响) 。建立一个尺度表示风险可能性(如,极罕见、罕见、普通、可能、极可能) 。描述风险带来的后果 。估计对产品和项目的影响 。确定风险评估的正确性 。根据影响排定有限队列 另外,要对每个风险的表现、范围、时间做出尽量准确的判断。 4、风险的评价 对风险的评价主要依据三个因素:风险描述、风险概率和风险影响。从成本、进度及性能三个方面对风险进行评价。确定项目的中止点,在中止点出再一次进行风险评价。 5、风险的驾驭和监控 风险的驾驭与监控主要要靠管理者的经验来实施。如,某开发人员的离职概率是0.7,离职后会对项目造成一定的影响,则该风险驾驭和监控的策略如下: 。与在职人员协商,确定流动原因。 。在项目开始前,把环节这些流动原因的工作列入风险驾驭计划。 。项目开始时,作好人是会流动的准备,采取一些措施确保人员一旦离开时,项目仍能继续。 。制定文档标准,并建立一种机制,保证文档及时产生。 。对所有工作进行细微详审,使更多人能够按计划进度完成自己的工作。 。对每个关键性技术人员培养后备人员。 在考虑风险成本之后,决定是否采用上述策略。 八、人员管理 1、对项目经理的要求 。能够使小组每个成员都能发挥能力 。有一定的组织能力 。能够使小组美味成员有成就感 。有提出解决问题方案的能力 。对问题的理解有一定的深度 。要能让成员知道软件质量的重要性 2、人员的通讯方式 (1)正式非个人方式,如正式会议等; (2)正式个人之间交流,如成员之间的正式讨论等(一般不形成决议); (3)非正式个人之间交流,如个人之间的自由交流等; (4)电子通讯,如E-MAIL(电子邮件)、(电子公告板系统)等; (5)成员网络,如成员与小组之外或公司之外有经验的相关人员进行交流; 在实践中发现,(5)的通讯效率最高,其次是(1)。“文秘站”版权所有 人力资源管理中的风险管理 在进行人力资源管理时,我们往往重视招聘、培训、考评、薪资等各个具体内容的操作,而忽视了其中的风险管理问题。其实,每个企业在人事管理中都可能遇到风险,如招聘失败、新政策引起员工不满、技术骨干突然离职等等,这些事件会影响公司的正常运转,甚至会对公司造成致命的打击。如何防范这些风险的发生,是我们应该研究的问题。特别是高新技术企业,由于对人的依赖更大,所以更需要重视人力资源管理中的风险管理。 浅谈计算机软件项目管理:计算机软件项目管理和计划 一 项目管理过程 一个软件项目的管理过程包括以下几个方面的内容: 1 启动一个软件项目 软件人员和用户是在系统工程阶段确定项目的目标和范围。目标标明了软件项目的目的但不涉及如何去达到这些目的。范围标明了软件要实现的基本功能,并尽量以定量的方式界定这些功能。 2 度量 进行度量工作,是为了帮助软件人员了解产品开发的技术过程和产品。度量的作用是为了有效地定量地进行管理。度量的目的是为了把握软件工程过程的实际情况和它所产生的产品质量。 3 估算 在软件项目管理过程中一个关键的活动是制定项目计划。在做计划时,必须就需要的人力、项目持续时间、成本作出估算。现在有许多用于软件开发的估算技术,基本的步骤是:事先建立软件的工作范围;以软件度量为基础作出估算;把项目分解成科单独进行估算的小块。管理人员可使用各种估算技术 。 4 风险分析 每当开始一个新的软件项目时,总是存在着某些不确定性。如是否能准确地理解用户的要求?项目的功能能否实现?是否存在目前还未发现的技术难题?等等。风险分析对于软件项目管理是决定性的。 5 进度安排 每一个软件项目都要求制定一个进度安排,但不是所有的进度都得一样安排。软件项目的进度安排与任何一个工程项目的进度安排没有实质上的不同。首先识别一组项目任务,再建立任务之间的相互关联,然后估算各个任务的工作量,分配人力和其他资源,制定进度时序。 6 追踪和控制 一旦建立了开发进度安排,就可以开始着手追踪和控制活动。由项目管理人员负责追踪在进度中标明的每一个任务。如果任务实际完成日期滞后于进度安排,则管理人员可以使用一种自动的项目进度安排工具来确定在项目中间里程碑上进度误期所造成的影响。 二 软件项目的组织与计划 1 软件项目管理的特点 软件产品与其他任何产业的产品不同,它是无形的,完全没有物理属性,但它确实是把思想、概念、算法、流程、组织、效率、优化等融合在一起了。因此对软件项目进行管理,涉及到系统工程学、统计学、心理学、社会学以及法律等方面的问题。需要用到多方面的综合知识,仅靠技术或科研项目的效率很难得到较好的解决。此外,管理技术的基础是实践,为取得管理技术的成果必须反复实践。很显然,管理能够带来效率,能够赢得时间。在技术迅速发展的今天,必须认真对待技术管理问题。总之,软件项目的组织涉及到软件项目研制中的计划制定、进度估计、资源使用、人员配备、组织机构和管理方法等软件管理的许多问题。 2 制定计划 软件开发项目的计划涉及到实施项目的各个环节,带有全局的性质。计划的合理性和准确性往往关系着项目的成败。计划应力求完备,要考虑到一些未知因素和不确定因素,考虑到可能的修改。计划应力求准确,尽可能提高所依据数据的可靠程度。 三 软件过程成熟度 多年来软件开发项目存在着不能如期完成,软件质量不能令客户满意或软件开发的开销超出预算等,这些都是软件开发机构遇到的难题。这一现象促使人们进一步考察软件过程,从而发现,关键问题在于软件过程的管理不尽人意。在无规则和混乱的管理条件下,先进的技术和工具并不能发挥应有的作用。改进软件过程的管理是解决上述难题的突破口。 对于不同的软件开发机构,在组织人员完成软件项目中所依据的管理策略有很大差别,因而软件项目所遵循的软件过程也有很大差别。在此,可用软件机构的成熟度加以区别。 成熟的软件机构具有的特点是:建立了机构级的软件开发和维护过程;软件过程必要时可做改进;软件产品的质量和客户对软件产品的满意程度是由负责质量保证的经理负责监控;项目进度和预算是根据以往项目取得的实践经验确定因而比较符合实际情况。 四 小结 为使软件项目开发获得成功,必须对软件开发项目的工作范围、可能遇到的风险、需要的资源、要实现的任务、经历的过程、花费的成本以及进度安排等做到了如指掌,而软件项目管理可以提供这些信息。
本文将通过分析分层技术的基本内容,探索计算机软件中分层技术的应用。在计算机软件开发的过程中,信息技术的发展使得开发效率得到有效提升,也逐渐促进了软件功能的不断扩展。社会的发展对于计算机软件的需求逐渐提升,不仅仅需要实现计算机软件类型的增加,还要不断完善计算机软件的功能。计算机软件开发系统也逐步完善,由单层、双层逐步向三层、四层和更多层发展。分层技术在计算机软件开发中的应用,是当前计算机软件开发的一种常见形式,主要不断完善二层技术及多层技术,才能够保障计算机软件性能的提升,满足人们日以增长的计算机软件需求,促进社会生产生活效率的提升。在计算机软件开发的过程中,通常会对软件系统有复杂性的需求,分层技术的应用,能够帮助软件开发人员在进行软件开发的过程中更加高效便捷。分层技术在计算机软件开发中的应用,能够有效促进计算机行业的发展进步。 一、分层技术的基本内容 在计算机软件开发的过程中,将其进行层次的划分,这就是分层技术的基本概念。工作流程和解决方案会因为概念层的不同而产生差异性,但是各个层次之间又会存在一定联系。分层技术能够对计算机软件内部结构的依赖关系进行阐述。在计算机软件开发架构中,分层技术由单层次结构逐步向双层次结构发展。虽然在计算机软件开发中依旧存在诸多局限性,但是多层技术的逐步应用也在不断对计算机软件开发过程进行优化。分层技术一般具有拓展性、独立性、稳定性和可操作性等特点。 二、计算机软件中分层技术的应用 (一)计算机软件中双层技术的应用 在分层技术中,双层技术是实现分层技术向三层技术、四层技术和多层技术发展的重要基础,能够实现软件开发效率的不断提升,减轻开发人员的工作压力。客户端和服务器是双层技术在计算机软件开发中应用时的两个重要端点。在提高用户使用界面的过程中,客户端能够发挥其重要作用,对于逻辑关系能够起到很好的处理作用,对于客户信息的接收则由服务器来完成,在向客户端进行传输的过程中,数据库进项相关计算和总结是从过程中的重要环节。服务器的用户数和服务器的使用效能,是双层技术影响计算机运行效率中的关键因素,只有保障服务器用户少、服务器使用效能好时,才能够不断提升计算机的工作效率。服务器计算量会随着用户数的增大而增加,导致在使用计算机软件的过程中出现错误,也会延长计算反应时间,甚至会使得用户数据安全受到影响,造成严重的损失。当双层技术不能够满足计算机软件开发的需求时,应该实现分层技术的不断拓展,保障计算机软件开发效率。 (二)计算机软件中三层技术的应用 通过在双层技术之上增加服务器,帮助计算机用户存储数据、提升计算机信息访问效率的技术,就是三层技术。三层技术的应用,还能够增强人与计算机之间的交互性,也是提升计算机软件工作性能的重要保障。界面层次、业务处理层次和数据层次,是组成三层技术结构的主要层次部分。对于用户的软件使用需求能够通过界面层完成;由业务处理层接收需求数据并进行有效分析,数据的提取和处理需要在对数据层进行申请请求;数据层分析申请请求,对数据库信息进行查询并分析,返还业务层和界面层。在此过程中能够减轻数据传输系统的工作压力,实现计算机工作效率的提升。 (三)计算机软件中四层技术的应用 双层技术和三层技术是计算机软件开发中的常用分层技术,但是社会需求的不断提升,使得双层技术和三层技术难以满足计算机软件开发的要求,这就需要对四层技术进行探索和分析,不断提升计算机软件开发的效率,提升计算机软件性能。处理层、数据库层、Web层和存储层,是四层技术结构的主要组成部分,取代了以往的界面层、业务处理层和数据层。处理数据信息的任务是由数据库来完成的,处理结果向Web层传输的过程中业务层能够发挥作用,数据的交换则在Web层进行。存储层和业务处理层之间是数据库层,在反映与计算机对象之间的关系时,主要是通过分析隐藏数据访问代码来实现的,差异匹配问题就会得到有效解决。四个层次结构的功能和职责相互独立。 (四)计算机软件中五层技术的应用 通过科学分支技术结构,并将其应用于四层技术,这就是五层技术。计算机软件开发中,对于五层技术的应用范围比较小,特殊软件的开发会用到相应的五层技术。数据库的操作和访问,能够通过数据访问服务器实现更高效地利用,科学处理应用服务器的数据,也是提升客户端显示软件功能的重要保障。系统负载平衡能够有效应对用户请求的分配问题,实现系统功能的扩充。应用服务器、HTTP服务器和数据访问服务器,也是五层技术中的重要组成部分。不同功能的处理可以由应用服务器提供有效保障,满足用户个性化服务需求。在将Web服务器生成动态化网络页面的过程中,HTTP服务器能够发挥关键作用。 三、结语 在当前计算机软件开发的过程中,分层技术以其较强的拓展性、独立性和稳定性得到了广泛的应用,能够有效提升计算机软件开发的效率,优化计算机软件性能。只有不断加强双层技术、三层技术以及多层技术的研究,才能够保障分层技术在计算机软件开发中的应用效果,不断拓展计算机软件类型和功能,为社会生产生活的高效运转提供保障。
软件项目管理论文:中小软件企业项目管理 [摘要]本文结合现阶段中小软件企业蓬勃发展的背景,结合软件开发的流程分析及管理中的成本、进度、质量分析。分析了中小软件企业项目中存在的问题并提出了相应的解决办法。 [关键词]软件;管理;项目;软件企业;生命周期;流程控制 随着我国信息产业特别是软件产业的蓬勃发展,一批批中小软件企业不断涌现。大大推动了我国软件产业的发展。但是不可忽视的是,有相当部分的软件企业特别是中小型企业在项目管理方面存在着先天的不足,大多仍然处于一种手工作坊式运营阶段,处于有章不循和无章可循的混沌阶段,缺乏科学化、系统化的管理,质量和效率都不强。由于处于企业的初创期,中小软件企业忙于找项目、揽项目,从而忽视了自身的实力和行业专攻,从而造成了什么项目都接、什么活都做的局面,且公司人员较少,分工不明确从而造成了此类软件企业管理流程混乱,重编码轻设计,甚至到编码完成后再回头编写、应付各种文档资料,无论从哪个角度来说,这是没有任何意义的。软件项目的开发流程不规范,项目延期、失败层出不穷。所以如何有效地对项目进行管理,有章可循,对于中小软件企业来说,是非常有现实意义的。对于广大的中小软件企业而言,如何能有效且比较简单地对自己的软件项目流程进行管理呢? 项目流程管理在软件项目的开发过程中是非常重要的一环,它贯穿着整个过程,所以有时它也被称为软件产品生命周期管理,主要内容包括:立项、策划、分析、实现、测试、、维护等环节。 首先我们从软件工程角度来谈谈这个问题。我们来说一下软件工程中开发模型的概念,无论大小,每个项目都必定要遵循一定的开发模型。软件常用的开发模型包括:瀑布模型、螺旋模型、渐进模型。那么具体到中小软件企业,在这几种模型中,我们要注意些什么呢?下面我们针对这几种常见的模型做一下分析。 一般而言,瀑布模型常用于在开发时间内需求没有或很少变化、分析设计人员对应用领域很熟悉、用户应用环境稳定、用户除提出需求以外,很少参与开发工作、需求使用面向过程的语言或编程工具且风险较低的项目。 螺旋模型常用于在项目开发早期需求可能有变化、分析设计人员对应用领域很熟悉、用户可不同程度地参与整个项目的开发过程、使用面向对象的浯言或第四代语言、中等风险项目。 渐进模型主要应用于在整个项目开发过程中需求都可能发生变化、分析设计人员对应用领域不熟悉、用户可参与整个软件开发过程中、使用面向对象的语言或第四代语言且高风险项目。 生存期定义可视软件项目特性识别和所选软件开发模型而异,对于软件生命周期的几个环节来说,他们并不是孤立的、时间层次非常明显的,它们之间也存在着时间的重叠交叉甚至错位。 对于项目管理人员来说,要注意区分这几个阶段并在不同的阶段定义不同的工作内容并严格执行。而具体到中小型软件企业,由于人员较少,各种工程外小组不太健全。所以,针对这种情况,我们对各个流程进行分解大致分为调查阶段、立项阶段、策划阶段、分析设计阶段、实现阶段、测试阶段、阶段、维护阶段。 在调查阶段:我们要采集用户需求信息、拟定立项建议最后要生成用户需求文档及立项建议书。 在立项阶段:我们需要编制可行性分析报告、立项申请报告并进行评审最后要形成评审记录。 在策划阶段:我们要任命项目经理、建立项目组。并对需求进行分析、评审。根据需求情况对项目进行资源准备(人、财、物)。在此阶段要形成软件需求规格说明书及测试大纲及需求评审记录。 在分析设计阶段:我们要进行下面的工作系统设计(含数据库、界面设计)、设计评审、用例准备、测试计划评审、项目计划修订、复用元素提取根据情况要形成系统设计文档、集成和验证测试计划、系统设计评审记录、测试计划评审记录、项目计划修订记录。 在实现阶段,我们要进行详细设计、详细设计评审、构造软件(编码、自测)、模块测试、组装测试要形成详细设计文档,评审记录、源程序、相关的测试数据和记录。 在测试阶段,我们要进行集成测试、界面冻结、编写用户使用手册、填写申请单之后进行申请评审要形成集成测试测试记录、报告、安装母盘、用户使用手册子版)及产品介绍。 在阶段,我们要编写培训教材、进行产品包装设计、母盘准备、服务人员培训、光盘刻制、资料印刷、产品包装、产品检验、产品和交付井进行项目总结。 在维护阶段,我们要采集产品问题反馈单、登录问题反馈台账、编发产品问题的E—mail、采集、登录问题反馈跟踪记录表、编报问题反馈跟踪月汇总表、产品问题审核、分类和交付、产品问题回复、本版本产品问题维护、新版产品母盘制作、编、发产品更改公告、问题维护审核、新需求台账登录。 众所周知.影响项目进展的三个维度是成本、进度和质量。如何平衡它们之间的关系,尽力做到快、好、省?在有限资源的情况下将结果处理得最优?这就是项目中管理的学问了。任何项目要被视为成功,都要必须达到几个目的,这其中包括质量要求、截止期及成本限制。质量规定给出了一个最终的定义包括项目的形式、适配性和功能,它定义了项目提交给用户时的最终状态,而且要确保项目符合这些规定。 同时项目的进度也是非常重要的,项目管理的一个重要的职责就是要确定一个合理的交付日期。这就是一处平衡的过程,协调好这三个方面的工作,同时所谓一个项目,进度是主线,其他的因素是围绕它来做的,同时进度也是项目管理的标尺。所以在项目中一旦将会期确定下来,就要将它转化为进度表的形式,并告诉你的项目组成员。当编制进度表时,头脑中要牢记住这个日期。如果你的团队知道要求完成项目的实际期限,他们将受到更大的激励,对他们会更有帮助:当团队成员知道进度的情况时,他们将能够加快自己的步伐,从而为项目的顺利完成做出更大贡献。合理的进度,不应该让项目组成员感到紧张。紧张是个人绩效的一个主要杀手。紧张的人更有可能犯错误,而且一般来说其表现不如最佳状态:一个人犯的错误越多,他对其工作及对其本人的感觉就越糟糕,他就越有可能死火。高死火率意味着高的人员离职率,意味着你要花更多的时间用于更新雇人和重新培训。紧张的工作环境导致雇员的紧张,他们反过来又导致环境更加紧张。这是一种恶性循环,对于人员短缺的中小软件企业而言,这显然是不希望被看到的。 作为一个项目来说,如果没有一个明确的目标。对有些人来说,这种情况可能造成令人难以置信的放松,而对另外一些人来说,它又可能造成难以置信的紧张。那些不知道自己的工作到底是什么的雇员,容易变得紧张;他们拿不准为什么来这里,这意味着不能担保明天他们还会出现。如果你向你的团队成员提出了足够明确的目标,并向 他们展示实现目标的途径,你的雇员不仅不会紧张,而会真的感觉自己是该项目的一部分。可能还会对自己取得的结果感到自豪。而当项目经理用富有挑战性的工作和专门技术来影响员工的时候,项目成果的机率就会增大。 你不仅应当向你的团队成员说明目标,而且你应当让他们参与确定这些目标。并且一般来说让他们参与计划的编制,这是绝对必要的。如果你让团队成员帮助编制计划,你将更有可能提早发现可能发生问题的领域。团队成员也感觉到对项目承担了更大的义务,因为在使项目启动方面,他们有某种利害关系。 同时,在执行项目时,项目经理一定会面对这样的要求,即不超出某种成本限制。作为项目经理,应该制定一个比较详细的预算、计划,你应当告知你的公司或客户这项工作确切地说要花费多少成本:出于你的团队是执行项目的人此时也应该像客户一样,也需要尽可能地了解有关成本的信息,所以我们考虑软件的项目管理的时候,都必须在这几方面对其加以界定及规范,在日常的项目管理工作中要注重这几方面的协调、平衡。 一个项目组,我们也要关注于组织的建设。一个软件项目的成功,团队间的合作及有效沟通也是非常重要的。在交流的过程中,要有效的减少噪音,提高沟通的效率。几乎在所有的项目管理中,沟通问题是必不可免的,对于一些项目经理来说,沟通不佳意味着“没人听我的”,而对于另外的一些经理来说,沟通不畅意味着项目组成员每天到晚一直忙,却不见多少成绩,好多人做着重复的工作,因为彼此之间没有进行有效的沟通。沟通的方式很多,比如说会议、电话、电邮、甚至行为等等。 如果团队成员看起来不愿意沟通,这并不一定表明他们不愿意合作。相反,他们仅仅可能是不愿意以自己不适应的方式进行沟通。所以,为了鼓励沟通,我们必须清楚应该选择哪种沟通渠道,应该选择哪些条件组合,以得到我们所期望的反应。 在项目工作中,万不能对他人颐指气使。维持团队的关系以促进项目组成员齐心协力地工作这才是项目经理所要取得的目标。如果项目经理过多地用权力、金钱或者处罚的手段来影响项目组成员的话,项目失败的几率会很大。和其他方面的管理一样,项目管理既是一门科学又是一门艺术。在平时的管理工作当中,我们不仅要善于将相关的管理知识及管理理论有意识的应用到管理实践中,我们更要发展艺术性的思维。没有完全相同的项目环境,外部环境和内部环境是不断变化的,我们只有在不断的实践中探索才能深刻的体会到项目管理的精髓,不断的成长。同时作为一个项目经理,要有大局观,要具有系统思维。不要受单一项目的局限,要在一个更大的组织视野下考虑项目的实施。 软件项目管理论文:中小软件企业项目管理 [摘要]本文结合现阶段中小软件企业蓬勃发展的背景,结合软件开发的流程分析及管理中的成本、进度、质量分析。分析了中小软件企业项目中存在的问题并提出了相应的解决办法。 [关键词]软件;管理;项目;软件企业;生命周期;流程控制 随着我国信息产业特别是软件产业的蓬勃发展,一批批中小软件企业不断涌现。大大推动了我国软件产业的发展。但是不可忽视的是,有相当部分的软件企业特别是中小型企业在项目管理方面存在着先天的不足,大多仍然处于一种手工作坊式运营阶段,处于有章不循和无章可循的混沌阶段,缺乏科学化、系统化的管理,质量和效率都不强。由于处于企业的初创期,中小软件企业忙于找项目、揽项目,从而忽视了自身的实力和行业专攻,从而造成了什么项目都接、什么活都做的局面,且公司人员较少,分工不明确从而造成了此类软件企业管理流程混乱,重编码轻设计,甚至到编码完成后再回头编写、应付各种文档资料,无论从哪个角度来说,这是没有任何意义的。软件项目的开发流程不规范,项目延期、失败层出不穷。所以如何有效地对项目进行管理,有章可循,对于中小软件企业来说,是非常有现实意义的。对于广大的中小软件企业而言,如何能有效且比较简单地对自己的软件项目流程进行管理呢? 项目流程管理在软件项目的开发过程中是非常重要的一环,它贯穿着整个过程,所以有时它也被称为软件产品生命周期管理,主要内容包括:立项、策划、分析、实现、测试、、维护等环节。 首先我们从软件工程角度来谈谈这个问题。我们来说一下软件工程中开发模型的概念,无论大小,每个项目都必定要遵循一定的开发模型。软件常用的开发模型包括:瀑布模型、螺旋模型、渐进模型。那么具体到中小软件企业,在这几种模型中,我们要注意些什么呢?下面我们针对这几种常见的模型做一下分析。 一般而言,瀑布模型常用于在开发时间内需求没有或很少变化、分析设计人员对应用领域很熟悉、用户应用环境稳定、用户除提出需求以外,很少参与开发工作、需求使用面向过程的语言或编程工具且风险较低的项目。 螺旋模型常用于在项目开发早期需求可能有变化、分析设计人员对应用领域很熟悉、用户可不同程度地参与整个项目的开发过程、使用面向对象的浯言或第四代语言、中等风险项目。 渐进模型主要应用于在整个项目开发过程中需求都可能发生变化、分析设计人员对应用领域不熟悉、用户可参与整个软件开发过程中、使用面向对象的语言或第四代语言且高风险项目。 生存期定义可视软件项目特性识别和所选软件开发模型而异,对于软件生命周期的几个环节来说,他们并不是孤立的、时间层次非常明显的,它们之间也存在着时间的重叠交叉甚至错位。 对于项目管理人员来说,要注意区分这几个阶段并在不同的阶段定义不同的工作内容并严格执行。而具体到中小型软件企业,由于人员较少,各种工程外小组不太健全。所以,针对这种情况,我们对各个流程进行分解大致分为调查阶段、立项阶段、策划阶段、分析设计阶段、实现阶段、测试阶段、阶段、维护阶段。 在调查阶段:我们要采集用户需求信息、拟定立项建议最后要生成用户需求文档及立项建议书。 在立项阶段:我们需要编制可行性分析报告、立项申请报告并进行评审最后要形成评审记录。 在策划阶段:我们要任命项目经理、建立项目组。并对需求进行分析、评审。根据需求情况对项目进行资源准备(人、财、物)。在此阶段要形成软件需求规格说明书及测试大纲及需求评审记录。 在分析设计阶段:我们要进行下面的工作系统设计(含数据库、界面设计)、设计评审、用例准备、测试计划评审、项目计划修订、复用元素提取根据情况要形成系统设计文档、集成和验证测试计划、系统设计评审记录、测试计划评审记录、项目计划修订记录。 在实现阶段,我们要进行详细设计、详细设计评审、构造软件(编码、自测)、模块测试、组装测试要形成详细设计文档,评审记录、源程序、相关的测试数据和记录。 在测试阶段,我们要进行集成测试、界面冻结、编写用户使用手册、填写申请单之后进行申请评审要形成集成测试测试记录、报告、安装母盘、用户使用手册子版)及产品介绍。 在阶段,我们要编写培训教材、进行产品包装设计、母盘准备、服务人员培训、光盘刻制、资料印刷、产品包装、产品检验、产品和交付井进行项目总结。 在维护阶段,我们要采集产品问题反馈单、登录问题反馈台账、编发产品问题的E—mail、采集、登录问题反馈跟踪记录表、编报问题反馈跟踪月汇总表、产品问题审核、分类和交付、产品问题回复、本版本产品问题维护、新版产品母盘制作、编、发产品更改公告、问题维护审核、新需求台账登录。 众所周知.影响项目进展的三个维度是成本、进度和质量。如何平衡它们之间的关系,尽力做到快、好、省?在有限资源的情况下将结果处理得最优?这就是项目中管理的学问了。任何项目要被视为成功,都要必须达到几个目的,这其中包括质量要求、截止期及成本限制。质量规定给出了一个最终的定义包括项目的形式、适配性和功能,它定义了项目提交给用户时的最终状态,而且要确保项目符合这些规定。 同时项目的进度也是非常重要的,项目管理的一个重要的职责就是要确定一个合理的交付日期。这就是一处平衡的过程,协调好这三个方面的工作,同时所谓一个项目,进度是主线,其他的因素是围绕它来做的,同时进度也是项目管理的标尺。所以在项目中一旦将会期确定下来,就要将它转化为进度表的形式,并告诉你的项目组成员。当编制进度表时,头脑中要牢记住这个日期。如果你的团队知道要求完成项目的实际期限,他们将受到更大的激励,对他们会更有帮助:当团队成员知道进度的情况时,他们将能够加快自己的步伐,从而为项目的顺利完成做出更大贡献。合理的进度,不应该让项目组成员感到紧张。紧张是个人绩效的一个主要杀手。紧张的人更有可能犯错误,而且一般来说其表现不如最佳状态:一个人犯的错误越多,他对其工作及对其本人的感觉就越糟糕,他就越有可能死火。高死火率意味着高的人员离职率,意味着你要花更多的时间用于更新雇人和重新培训。紧张的工作环境导致雇员的紧张,他们反过来又导致环境更加紧张。这是一种恶性循环,对于人员短缺的中小软件企业而言,这显然是不希望被看到的。 作为一个项目来说,如果没有一个明确的目标。对有些人来说,这种情况可能造成令人难以置信的放松,而对另外一些人来说,它又可能造成难以置信的紧张。那些不知道自己的工作到底是什么的雇员,容易变得紧张;他们拿不准为什么来这里,这意味着不能担保明天他们还会出现。如果你向你的团队成员提出了足够明确的目标,并向 他们展示实现目标的途径,你的雇员不仅不会紧张,而会真的感觉自己是该项目的一部分。可能还会对自己取得的结果感到自豪。而当项目经理用富有挑战性的工作和专门技术来影响员工的时候,项目成果的机率就会增大。 你不仅应当向你的团队成员说明目标,而且你应当让他们参与确定这些目标。并且一般来说让他们参与计划的编制,这是绝对必要的。如果你让团队成员帮助编制计划,你将更有可能提早发现可能发生问题的领域。团队成员也感觉到对项目承担了更大的义务,因为在使项目启动方面,他们有某种利害关系。 同时,在执行项目时,项目经理一定会面对这样的要求,即不超出某种成本限制。作为项目经理,应该制定一个比较详细的预算、计划,你应当告知你的公司或客户这项工作确切地说要花费多少成本:出于你的团队是执行项目的人此时也应该像客户一样,也需要尽可能地了解有关成本的信息,所以我们考虑软件的项目管理的时候,都必须在这几方面对其加以界定及规范,在日常的项目管理工作中要注重这几方面的协调、平衡。 一个项目组,我们也要关注于组织的建设。一个软件项目的成功,团队间的合作及有效沟通也是非常重要的。在交流的过程中,要有效的减少噪音,提高沟通的效率。几乎在所有的项目管理中,沟通问题是必不可免的,对于一些项目经理来说,沟通不佳意味着“没人听我的”,而对于另外的一些经理来说,沟通不畅意味着项目组成员每天到晚一直忙,却不见多少成绩,好多人做着重复的工作,因为彼此之间没有进行有效的沟通。沟通的方式很多,比如说会议、电话、电邮、甚至行为等等。 如果团队成员看起来不愿意沟通,这并不一定表明他们不愿意合作。相反,他们仅仅可能是不愿意以自己不适应的方式进行沟通。所以,为了鼓励沟通,我们必须清楚应该选择哪种沟通渠道,应该选择哪些条件组合,以得到我们所期望的反应。 在项目工作中,万不能对他人颐指气使。维持团队的关系以促进项目组成员齐心协力地工作这才是项目经理所要取得的目标。如果项目经理过多地用权力、金钱或者处罚的手段来影响项目组成员的话,项目失败的几率会很大。和其他方面的管理一样,项目管理既是一门科学又是一门艺术。在平时的管理工作当中,我们不仅要善于将相关的管理知识及管理理论有意识的应用到管理实践中,我们更要发展艺术性的思维。没有完全相同的项目环境,外部环境和内部环境是不断变化的,我们只有在不断的实践中探索才能深刻的体会到项目管理的精髓,不断的成长。同时作为一个项目经理,要有大局观,要具有系统思维。不要受单一项目的局限,要在一个更大的组织视野下考虑项目的实施。 软件项目管理论文:计算机软件工程项目管理 摘要:计算机软件工程项目管理和开发是一项具有复杂性以及系统性的工程,其涉及面相对较广,在实际的工作中所面临的风险也较大,因此对计算机软件工程项目实施系统和完善的管理是非常重要的。在信息技术以及科学技术高速发展的今天,计算机软件的规模以及复杂程度在不断增加,因此在实施计算机软件工程开发的工作中各种问题也逐渐地显现出来,给企业造成了不必要的损失,为了提高企业的经济利益,增加企业的综合竞争能力,促进计算机软件工程的发展就应该对计算机软件工程项目更好的管理方法和措施进行探讨和分析。 关键词:计算机软件工程;项目管理;管理方法;问题 目前,在实施计算机软件工程项目开发的过程中,软件工程项目管理工作并没有引起工作人员和企业领导人员的足够重视。在实施计算机软件工程管理的过程中,软件产品具有较强的特殊性,且计算机软件工程刚刚兴起,在实施软件工程管理的过程中很多问题并没有得到充分的认识,给工程项目管理带来了一定的困难,由此可见全面地实施计算机软件工程项目管理是非常重要的。下面该文就将计算机软件工程项目管理的内容作为基础,对计算机软件工程项目管理中存在的问题以及计算机软件工程项目管理的方法和策略进行探讨和浅析。 1计算机软件工程项目管理的内容 1.1对于组织机构的管理 在实施计算机软件工程项目管理的过程中对于组织机构的管理是一项重要的管理内容。计算机软件工程项目的管理人员在实际的管理工作中只有设置全面的组织结构,完善组织机构管理的质量才能完成科学管理制度和管理团队的建设。只有完善组织机构的管理才能清楚地划分管理的职责和权限范围,尤其是对于具有较强综合性的计算机软件工程项目来说,必须由专门的技术人员来负责组织机构的管理,进而提高计算机软件工程项目管理的有效性和质量。 1.2软件质量和配置管理 在实施计算机软件工程项目管理的过程中软件质量管理和配置管理有着不可替代的地位和作用。项目质量保证主要是定期地对总体绩效进行评估和评价,完善质量计划编制、项目质量保证以及项目质量控制等过程,对于不能保证项目质量的问题给予进一步的分析,找出具体和具有针对性的解决方法,进而更好地提高软件的质量。同时计算机软件项目管理人员也应该对软件产品的演变过程有一个精确的记录,保证软件配置管理的质量,进而完善计算机软件工程项目的管理工作。 1.3风险的评估以及管理 风险管理主要包括的内容有对风险的正确识别、风险评估以及风险监督和风险解决等,实施风险管理的主要目的是在预测到风险即将出现的时候及早采取措施给予抑制,避免风险的出现和发展。在实施计算机软件工程项目管理的过程中风险的评估和管理是一项重要的管理内容,计算机软件工程项目管理人员应该及早地对项目中存在的风险进行分析和评估,加强对各种可能出现风险的管理,降低各种风险对项目造成的影响,进而提高软件企业的经济效益。 2计算机软件工程项目管理中存在的问题 2.1缺少对计算机软件工程项目管理培训的重视 大多数企业在实施计算机软件工程项目管理的过程中往往会忽略对项目管理的培训,在项目管理培训上投入的精力、人力、物力和财力均相对较少,没有形成一个系统和完善的知识培训体系。很多软件企业只是依靠着某些项目管理工作人员精湛的技术能力以及综合素质,而在项目管理培训方面往往比较盲目,只是走一走过程而已,缺少对计算机软件工程项目管理培训的重视程度,项目管理人员缺少对项目管理知识和培训知识的掌握[1]。 2.2计算机软件工程项目风险控制的意识较薄弱 在目前我国各个企业竞争日益激烈以及经济高速发展的大背景下,各个软件企业在进行计算机软件工程项目开发过程中所面临的风险也越来越大,一旦发生风险就会给企业带来难以弥补的损失,由此可见在实施计算机软件项目管理的过程中风险管理是非常重要的。而目前大多数软件企业在实施项目管理的过程中对风险控制的意识相对较为薄弱,并没有认识到风险管理和控制对于项目管理来说的重要意义,以致不能及时地防范和控制相关管理过程中出现的风险。 2.3计算机软件工程项目管理人员团队意识低下 计算机软件工程项目管理工作人员在实施管理工作的过程中大多数工作人员并不能从宏观上对整个项目进行整体的把握,只是做好自己的本职工作,并没有从大局上对相关的管理工作进行考虑。大多数计算机软件工程项目管理工作人员缺少团队意识,这些管理人员虽然具有精湛的技术和较高的综合素质但是只注重个人能力的发挥,缺少培养新一代人才的观念,缺少带头作用和责任心,导致各种管理问题的出现,不利于企业的更好发展。 3计算机软件工程项目管理的方法和策略 3.1提高对计算机软件工程项目管理培训的重视程度 软件企业在实施计算机软件工程项目管理的过程中应该增加对项目管理培训的重视程度。企业应该增加在管理人员培训上的精力、物力和财力,注重对管理人员实践能力和理论知识的提高。让相关管理人员掌握更多的知识,让管理人员熟悉相关的培训和管理流程,进而更好地提高计算机软件工程项目管理的质量和有效性。与此同时,企业管理人员也应该建立软件工程项目管理培训的审核制度,项目管理人员在上任之前应该给予一定的考核,进而提高计算机软件工程项目管理的质量。 3.2提高计算机软件工程项目管理风险控制管理意识 计算机软件工程项目在实施管理的过程中应该建立有效的风险管理和控制机制,在实施计算机软件工程项目开发的过程中应该要求项目管理人员充分地掌握和学习风险管理知识,熟练地掌握风险识别、风险控制以及风险转移的方法,在项目启动后立即对风险进行识别和管理。与此同时项目管理人员也要保证风险控制和管理贯穿于整个软件项目管理的过程中,采用多种方法和技术手段对风险进行管理和控制,减少各种风险对企业经济效益和软件开发造成的影响[2]。 3.3培养计算机软件工程项目管理工作人员团队意识 企业管理人员在完善计算机软件工程项目管理的过程中应该让相关的项目管理人员从宏观上掌握大局,进而整体性地对整个项目管理进行掌控。同时也要充分地发挥项目管理人员在实际工作中的带头作用,合理地对员工的工作进行安排,对人力资源进行合理的运用。在此基础上也要提高项目管理人员的责任心和团队意识,在充分发挥每一个管理人员和工作人员个人能力的同时培养可以满足企业更好发展需求的新一代人才,提高计算机软件工程项目管理的质量。 4结语 总而言之,在当今这个信息技术和科学技术高速发展的时代,软件工程开发和设计过程中的各个项目所涉及的内容和范围也在不断增加,实施计算机软件工程项目管理过程中各种问题也逐渐凸显,而计算机软件工程项目工作的管理质量也逐渐成为影响软件企业核心竞争力的关键。在这样的情况下软件企业应该充分地认识到计算机软件工程项目管理过程中存在的问题,并通过一定的方法和策略给予完善,进而提高项目管理的水平和质量,促进软件企业的长期、稳定和健康发展。 作者:吴丽娜 单位:宿迁学院信息工程学院 软件项目管理论文:软件工程项目管理需求分析 摘要:科研机构、高校承担的大型科研工程越来越多,软件在工程项目中扮演着重要角色。结合科研领域软件开发特点,介绍软件开发流程管理及质量保障措施等,可为科研软件的质量提高及创新提供一定借鉴。 关键词:科研软件;需求分析;开发模型;质量保障 0引言 随着科研机构、高校承担的国家大型科学工程项目越来越多,在这些大型科学工程中,软件起到不可或缺的作用。如中国科学院高能物理研究所承担的硬X射线调制望远镜项目[1]、BESIII项目[2]中的数据采集软件、探测器和数据监测软件是获得物理成果的基础,而模拟软件和分析软件则直接关系到物理成果的处理和精度。这类软件项目有较深的物理学背景,需要使用一些物理分析和设计方法,实现手段必须符合领域特点。例如,数据存储在粒子物理实验和空间天体物理实验中的要求不同,前者主要采用ROOT[3]格式,而后者则以FITS[4]格式为主,开发所用的常见库和工具也因数据存取格式不同而不同。此外,该类软件应用面较窄,仅限于某一科研领域,其开发很难由软件公司承担,因为软件公司必须投入大量的学习成本,而产品应用又受局限。因此,这类软件的开发一般由科研院所、高校自行承担。然而,目前我国软件整体实力与创新性还不强,人才结构也需要改善[5],一些从事基础研究的机构,软件人才紧缺,且缺乏软件开发管理经验,造成软件质量不高。科研机构从事软件开发的科研人员学习能力强,热衷于追求新技术,如果在方法上给予指导,可帮助其开发出高质量的软件。依托大型工程培养所需的软件人才,不仅有利于大型工程项目的实施,而且还能为国家培养大批软件人才。本文结合该类软件项目的特点和科研机构现状,探讨其软件开发特点,并提出流程管理和质量保障措施。 1科研领域软件开发及其特点 1.1软件项目特点 (1)软件提出者。一般是项目科学家、顾问,他们具有较强的科学洞察力,也能较好地把握软件开发方向,但他们大多只关注宏观问题,而非技术细节,对软件不是很了解,不能用计算机语言和思维描述项目,也无法很好地理解和描述实现流程、细节,因此不能准确估计软件开发难度和工作量。 (2)软件开发者。一般为青年职工和学生,他们熟悉软件开发,但往往不能完全理解项目目标,也不能深刻理解其物理过程,理解过程中往往思维局限性大,缺乏方向。 (3)软件测试者。多数情况下单元测试由开发者承担,集成或系统测试由其他人员完成,部分由用户完成。与开发人员相比,测试人员往往物理基础较好,掌握基本测试方法,但是没有建立起完整的测试体系,而且将软件测试当作“副业”,测试以功能实现为主,对软件细节不了解。 (4)用户。用户一般是物理工作者,他们熟悉研究领域的物理要求,但不能用计算机语言描述需求,往往需求不实际或不够明确。他们对软件要求较高,要求通过物理测试对软件性能和输出结果精度进行测试。如通过运行大数据量检查软件内存和时间消耗,以促进开发者进行算法优化等。 1.2软件项目开发特点 (1)软件需求不够明确。科研领域软件项目一般都涉及到探测器和数据,涉及领域较广,而且需求不断变化。无论是软件提出者还是用户,往往难以用计算机思维或语言清楚描述问题;软件开发者对项目物理目标,特别是物理过程缺乏深刻理解,不能很好地理解软件功能细节及需求。比如,对于一些数据分析软件,提出者或用户难以描述出软件需要完成的功能,而开发者对数据处理流程中进行的数据转换、修正、数据结构重组也缺乏深刻理解。 (2)人员结构较为单一。软件开发中通常一人需要承担多种角色,包括软件需求分析员、设计者和开发者,甚至测试者。这样的职位设定,人员分工不明确,难以深入把握某一领域(比如测试)的特点和方法,从而影响了整个软件开发过程。 (3)软件实现细节难以把握。此类软件一般涉及复杂的物理过程,需要用一定的物理方法解决,但方法并不唯一,不同方法会对结果带来一定影响,而且不同类型数据所依赖的方法也不同。软件开发中还有些研究性课题,只能以接口形式存在于软件中,但预留接口时往往设计较为简单,考虑的情况过于理想,难以满足实际需求。然而,如果设计时考虑得比较复杂,接口较多,又往往缺乏必要的软件技术和经验,不能有效把握细节。 (4)硬件频繁改动增加软件开发风险。软件依赖于硬件,设计初期软件是在理想的硬件设计状态下运行,但如果硬件发生变更或者运行影响因素增加,软件也随之变动,从而加大开发风险。 (5)软件测试及评估缺乏专业水平。由于开发者、测试者与用户的专业测试能力都比较欠缺,难以涉及到核心质量问题,往往无法全面对软件作出专业评估。 (6)人员管理难度大。科研机构、高校一般热衷于科学研究而不是工程项目本身,因此难以兼顾两方面工作。软件提出者和管理人员往往对软件工程缺乏深入了解,难以对开发工作作出客观评价,因此对软件开发的进度和质量带来一定影响。 (7)软件不确定性因素多。随着工程实施,软件提出者、用户会不断改变、增加需求,加上开发者及测试者缺乏相关经验,代码开发不规范、开发人员流动性强等增加了软件开发的不稳定性。另外,为降低开发成本和难度,开发人员通常会引入现成的工具,这可能给软件开发带来隐患。然而,面向某一科研领域的软件开发项目也有自身的优势。如和大型专业软件相比,所需的项目功能不是特别多,部分开发平台具有可移植性,开发人员综合素质较高,学习能力强,英语基础较好。此外,很多工程与国外合作开发,可参考国外成熟软件,并方便引进一些免费的软件框架和平台,如Gaudi[6]框架、天文分析工具库Ftool[7]等。 2软件开发流程管理 2.1确定软件开发模型 科研机构,尤其是一些缺少经验的团队,习惯采用瀑布模型进行开发,主要由于该模型分阶段,且各阶段间存在因果关系,比较符合思维模式。但它会产生大量文档,到开发后期会凸显软件开发缺陷。适合科研领域的开发模型有迭代式模型[8-9](需求变更驱动型)、增量模型(功能驱动型)及快速原型开发[10]等。对于科研软件而言,模型选择需综合考虑软件框架稳定性和开放性、构件独立性以及项目组开发经验等。比如对于需求不明确、流程不清晰、算法不确定的项目(如数据处理软件、分析软件和标定软件等)采用迭代模型或者快速原型开发较好。此外,采用一种模型为主,其它模型为辅,也会得到很好的效果。 2.2加强开发流程控制 无论采用何种开发模型,开发人员必须在每一次开发或迭代中完整实现需求分析、设计、编码和测试等步骤。各阶段的评审或项目报告尤为重要,项目前期要确保软件开发人员准确理解项目需求以及软硬件环境;中期阶段要确保开发流程和方法可靠;后期要通过测试确保软件运行符合要求。 2.3需求分析中注重物理分析 科研软件中一般涉及大量数据操作,而且过程比较复杂,一些原始数据要经过转换、重建、标定及修正等步骤,而且处理不一定是线性的,即相邻数据之间可能有关联。这些功能和性能需求不容易明确,需要着重把握。软件中还可能涉及一些物理算法(比如图像修正、频率分解等),因此在需求分析中需要着重进行物理分析,包括流程梳理、特殊方法和条件选择等。 2.4采用串行开发方式 科研机构人员结构比较单一,往往多项工作并行执行,给软件开发质量提升及人才培养带来不利影响,可将相关性比较强的软件以串行方式开发,数据产品生成软件和数据分析软件可以依次开发。 2.5提高开发人员的主观能动性 软件开发过程中,保障软件项目负责人在经费使用及绩效考核中的话语权,组建凝聚力强的研发团队,对软件开发的进度、质量进行考核。 3软件质量保障措施 (1)加强开发过程中的沟通。科研项目的不确定性带来软件开发需求的变动,用户往往只注重项目需求功能满足,而不关心软件的实现细节,所提出的功能或接口可能不切实际,因此需要加强与用户的沟通,明确软件开发目标。 (2)充分调动开发人员积极性。科研机构软件开发人员往往是科研项目的幕后工作者,其工作成果容易被科研项目成果所掩盖,所以充分调动软件开发人员的工作积极性尤为必要。一方面,为其提供成果展示平台,尤其是展示创新性成果,如将开发中的文档整理成册等;另一方面,在基金申请、职称评定等方面提供支持。科研机构职称评定主要依据取得的科研成果,由于工作内容不同,如采取同样的评审条件,软件开发人员与其他研究人员在同一层次上竞争将缺乏竞争力。可能导致部分人员不愿意从事软件开发工作,或者开发软件的同时还从事其它研究,从而影响软件开发进度和质量。因此,需要根据软件开发人员工作的特殊性,通过有效的激励措施调动其积极性。 (3)培养既懂管理又懂技术的项目负责人。优秀的软件工程项目负责人不仅是一个好的软件设计师,对软件实现细节能够很好的掌控,还是一名优秀的管理者,能科学配置资源。 4结语 面向科研领域的软件具有较深的行业背景,其设计方法、实现手段有很强的领域依赖性。本文从科研领域特点及软件提出者、开发者、测试者、用户的角度出发,探讨了其需求难以明确、人员结构较单一且管理难度大的特点。在软件开发管理过程中,需要采用合适的软件开发模型,注重流程管理,充分调动开发人员的工作积极性。 作者:赵海升 李兵 聂建胤 宋黎明 单位:中国科学院高能物理研究所 软件项目管理论文:软件工程项目管理在软件开发中的应用 【摘要】 随着软件深入到我们生活的各个领域,人们对软件的特性以及功能要求越来越多,要开发出一个优秀的软件,必须综合不同的用户的不同的想法。另外加上企业、个人和政府的信息需求日益复杂,现在的计算机程序不再是一个人能够轻松构建,而是需要一个庞大的团队共同努力。并且各种形式,各种应用领域的软件都需要工程化,所以,产生了软件工程,整个软件工程过程中的项目管理方法是非常重要的,本文主要根据软件开发中项目管理涉及的人员、产品、过程和项目四个方面来讲述了软件工程项目管理的具体内容。 【关键词】软件工程;项目管理;管理方法 1软件工程开发概述 软件工程是建立和使用一套合理的工作原则,以便经济地获得可靠地、可以在实际机器上高效运行的软件。软件工程方法为构建软件提供了技术上的解决方法,包括沟通、需求分析、设计建模、编程、测试和技术支持。 2软件工程项目管理方法在软件开发中的应用 有效的项目管理集中在4个方面:人员、产品、过程和项目。 2.1人员 在IEEE发表的一项研究中提到,当向3个大型技术公司中主管工程的3位副总裁问及一个成功的软件项目中最重要的因素是什么时,他们回答会的的第一重要的因素不是他们所用的工具,而是人员。 2.1.1项目利益相关人员每个项目的利益相关人员有高级管理者、技术管理者、开发人员、客户和最终用户参与,为了高效率的完成项目,整个团队必须能够发挥好每个相关人员的能力和技术,这是团队领导者的任务。 2.1.2团队领导者项目的管理需要很多相关者的努力,作为一个团队的领导者,第一要具有一定的实力,必须能够掌握整个项目,还要能够理解团队人员,能够用自己的语言来影响整个团队。 2.1.3软件团队优秀的团队结构取决于组织的管理风格、团队里人员数目与技术书评,以及问题的总体难易程度。规划软件工程团队结构时应该考虑待解决问题的难度、开发程序的规模、团队成员需要共同工作的时间、对问题做模块化划分的程度、待开发系统的质量要求和可靠性要求、交付日期的严格程度以及项目所需要的友好交流的程度等因素。 2.2产品 不管喜欢与否,从项目一开始,就要研究应该开发哪些产品以及要解决哪些问题。至少我们要建立和界定产品的范围。 2.2.1软件范围软件项目管理首先要做的就是确定软件范围。确定范围主要考虑要开发的软件如何适应于大型的系统、产品或业务环境,软件要产生哪些客户可见的数据对象作为输出和软件要执行什么功能才能将输入数据变换成输出数据等问题。 2.2.2问题划分问题划分是软件需求分析的核心活动。在确定软件范围的活动中,并不试图去完全分解问题,只是分解其中的两个主要方面:必须交付的功能和内容和所使用的过程。 2.3过程 团队选择过程模型主要适合于需要该产品的客户和从事开发工作的人员,产品本身的特性和软件团队随处的项目工作环境。软件团队在选择最适合项目的软件过程模型时,应该具有很大的灵活性。一旦选定了过程模型,项目团队可以根据需要灵活地确定过程模型中应包含的软件工程任务。较小的项目如果与以前开发过的项目相似,可以采用线性顺序方法。如果时间要求太紧,不可能完成所有功能时,增量策略可能是最好的。同样的,如果项目具有其他特性,可能就要选择其他过程模型。作为项目负责人,要特别注意与用户保持联系,掌握用户的心理和动态防止来自用户的各种干找和阻力。 2.4项目 为了更好地管理软件项目,我们要注意以下几点: (1)在正确的基础上开始工作。通过以下两点来实现:首先努力的正确理解要解决的问题,然后为每个参与项目的人员设置现实的目标和期望。这一点又通过组建合适的开发团队,并给与团队工作时所需的自由、权利和技术而得到加强。 (2)保持动力。很多项目的启动都有一个良好的开端,但是,后来慢慢地开始瓦解。为了使整个项目开发过程人员充满动力,项目经理比喻采用激励措施,使人员变动更小,让每个任务都高质量的完成。 (3)跟踪进展。对于软件项目而言,当工作产品正在产生或被认可时,跟踪项目进展要作为质量保证活动的一部分。 (4)做出英明决策。总体上,项目经理和软件团队的决策应该“保持项的简单性”。 (5)进行事后分析。建立统一的机制,从每个项目中获取科学系的经验。 3结语 软件工程项目管理是软件工程的普适性活动。它先于任何技术活动之前开始,且持续贯穿于整个计算机软件的建模、构造和部署之中。项目管理中的人员、产品、过程和项目对软件项目管理具有重大的影响。要顺利完成软件开发,就必须将人员组织成有效的团队,激励他们完成高质量的软件工作,并协调他们实现有效的沟通。产品的需求必须考虑客户与开发者的想法,设计更合适的产品。过程必须适合于人员和产品。最后必须采用确保软件团队能够成功的方式来组织项目。 作者:王明 单位:首都经济贸易大学 软件项目管理论文:计算机软件工程项目管理研究 1软件工程项目管理中存在的问题 1.1缺乏管理意识 在软件工程项目处理中,有些项目经理没有强烈的认识到本身的责任,无法从总体上掌控全部项目,只是静心于详细的技术工作,造成项目组成员之间忙的忙、闲的闲,打算不周、使命不均、资本奢侈等近况。有些项目经理没有很好的管理方法,本身做比力坚苦的事情,使项目使命没法公道的分配给小组成员,以到达事情“负载平衡”。在涉及相关软件技术方面的企业中,项目经理大部分是团队中的技术中坚力量或者是主要技术人员。但是,在详细的项目实施细节中,无论是项目基本的常识,或是项目实施必备的能力与本领,他们还存在着很大的晋升空间。技术骨干在担当项目经理之前,最佳的选择是提前练习与实践相关的项目办理常识。项目经理需要的不仅仅是技术上的常识,更多的是与人来往配合的常识,需要指出的是人际间的交往能力是其必需的业务素质之一。另外,项目的负责人还要有比较强烈的责任意识,并且在现实工作中不断提高本身应该具备的责任品质,积极践行责任行为,树立好的标杆与榜样,为团队整体的发展负责。这是项目实施的具体路径所决定的,没有领头羊一切将很难开展与执行。 1.2存在风险管理 项目风险与预防潜在危害的意识是一种非常重要的意识,在任何项目在举行方向与正式实行以前,作为项目的负责人要从危害存在的大概性动身,对其大概致使的危害系数举行预先的判定和做好需要的预警备案。任何项目都有必然存在的潜在的风险,但是最好人工的准备,风险的危害最大水平的降低是对项目负责人能力与水平的重要考量,其必需做好足够的准备工作来应对随时发生的变故。有些项目经理在工作中并没有充分认识到风险管理的重要性,对企划书中风险管理进行了粗略介绍,敷衍了事的随意列出几条危害,写一些简略应答办法,对后来的风险防范起不到任何作用和影响。 1.3内部沟通问题 在软件工程项目的进展与实施过程中,人际间的配合与合作是不可缺少的,但是由于秉性的差异,沟通与交流中的障碍与差异会影响团队的协作与凝聚。很多开发的工程项目的规模比较庞大、复杂,项目经理就很难协调小组成员之间的关系。项目团队中就很有可能出现不同角色之间的分工不清、责任不明,导致的工作互相推诿、出现问题推卸责任的情况。有时还会发生组员之间不进行沟通联系,各做各的工作,不愿意和别人合作,最终导致的项目无法按时完成等问题,产生不必要发生的损失。为避免以上呈现的现象在软件工程项目的研发与实施过程中,项目经理应制定有效的交流轨制和交流机制,增强团队队员之间的配合意识,对由于贫乏交流而产生的差错要进行规避与责罚。进度控制的问题在软件开发工作过程中,由于种种原因无法按时完成工作进度,延期项目的进度也是经常有的事情,有可能会带来很严重的损失。这时就需要项目经理来有效的节制团队的工作进度,对应项目进度的个体意义进行判断,事前或实时采纳需要的办法,尽可能缩小预期进度与现实进度的误差,实现对项目的自动管控。 2软件工程项目管理对策 2.1完善管理体系 首先,计算机软件工程项目管理的体系要对人才进行有效并且合理的管理,建立一个完善的、合理的人力资源管理体系。其次,团队职员要有杰出的本领与功底,而且队员要有求知欲和上进心,可以不竭的进修计算机软件工程项目办理的热情,有用的将履历和实践。最后,团队中的队员要履行工程项目中的规章制度,严苛的奖惩制度也会在必然程度上增进队员,激发他们的主动性,使得队员更踊跃的为项目尽力。 2.2提高进度与风险管理工作的效能 项目经理首先应加强项目进度的处理,项目进度计划的制定指,利用时间进度完善办理进程的功效,来抉择项目的起头及完成的时刻表。成立一个实际的项目进度计划的进程,和公平合理的、有效的管控好计算机软件工程项目办理中,全数小组成员的任务状况。 计算机软件工程项目办理的职员,应答危害办理的常识、危害方法的常识、量化的方式,和危害管控的方式举行有用的把握和认知,为计算机软件工程项目办理做好有用的危害办理陈述,而且做好有用的危害防备事情。风险在项目完成之前的过程中都有可能会发生,所以需要项目经理定期的对软件工程项目进行风险评估,对不同等级的风险进行使用不同的应对措施来处理问题,必要时期可以采用规避、减缓等处理方式。当前在软件项目控制中的一个非常重要的应用是对信息的优化处理与分析,从而做出比较科学的判断与预测,随着近几年来,软件在项目控制中的深入应用,特别是各种计算方法的不断普及,项目控制在“软计算”等方面取得了非常长足的进展。这些都是我们在未来的项目工程现代化技术的发展方面应该急需解决的问题。 2.3建立合作式团队 我国在项目管理方面的科研人才存在着很大的缺口,这一点严重地制约了我国项目管理的现代化技术发展,因此,构筑合作团队非常重要。第一要素是信任感。这意味着一个有凝聚力的、高效的团队成员必须学会迅速地、平心静气地熟习自己的诟病、错误、失败。他们还要乐于承认他人的优势,即便这些优势超过了本身。以人的软弱与退缩是很难形成有战斗力的集体的,这与高效管理的初衷也不尽符合。第二要素超卓的团队需要领导带头。团队成员全力以赴,由于他们很清晰必要做什么,他们会彼此排除别人那些无助的行动而恰恰是这类无怨无悔的行为,才培育和培养了他们对彼此的负责与担当。第三要素增强职员之间的联系。可以按期见面开会,开会前先把议题准备好,会中有记实,吩咐有记实总结、存案,除正式交往,队员之间也要非正式练习,连结事情关系,增强感性与亲情的融会是队员的一种需求。 3软件工程项目对策的有效性分析 当前在软件工程项目中的一个非常重要的应用是对各种信息的优化处理与分析,然后制定相应的对策,来实施对各类问题的有效解决。 3.1对策的针对性 对策目标的针对性,是指备选的对策必须是依据项目管理中给出现的问题,提出的解决方案。文中第三部分指出的三条对策都是根据软件工程项目管理中可能出现的三种问题,一一对应提出的,每一条都是根据问题提出的相对应的解决措施。这中针对性要从不同的问题性质的本身来设定不同的方案,在实践过程中,对策的针对性是解决问题的关键所在。 3.2对策的实用性 对策必需遵循主、客观条件,并在此基础上提出清楚的而不是模糊不清的、可操作的而不是脱离实际的对策。提出的三种对策都是在现实能够达到的基础上制定出来的,清晰地指出应如何处理项目管理中出现的问题。所以,从问题对策的实用性出发,探究其发展的对策具有非常重要的积极意义。 3.3对策的可行性 对策的可行性指对策与问题之间是否存在一致性。同时,政策的制定应该遵循各种主观与客观的要求,在了解清楚的基础上进行对应性的应答。当政策与具体问题出现严重的不对称时则非常容易造成意外的损失。 作者:郎晓菲 软件项目管理论文:计算机软件工程项目管理思考 计算机软件大体分为三类,一种是总述,一种是系统软件,一种是应用软件,系统软件的作用是促使各个硬件按照一定的规律协调工作,保证计算机处于正常运转状态。而应用软件的作用则是为了实现某种使用愿望而开发出来的软件。 1计算机软件工程项目管理的基本概念 1.1工程项目管理的含义工程项目管理主要是业主通过委托从事工程项目管理的企业,签署相关协议,工程项目管理企业有义务和权力代表业主在工程项目进行的情况卜干预和服务。工程项目管理企业可以协助业主同项目工程总承包签订一系列合同,只是起到辅助性作用,不直接与总承包企业或者施工、勘察、供货和设计签署协议或合同,工程项目管理企业有责任在施工过程中监督合同的完成情况。 1.2软件工程项目的概况 1.2.1管理人员开展有序的项目计划 企业必须把人员管理放在重要位置,在软件工程项目的开发上人员的调配问题是保证工程顺利进行的重要因素,因此,项目能否成功和工作人员的工作能力、写作能力息息相关,针对工程项目的操作类别不同,可以分配成各个研究小组,进行科学合理的针对性开发和高效的协作,有利于工程的快速推进和更加完善。小组内的人员根据自身优势,确定自己的工作内容和工作时间。对项目进行正确的认识和对风险进行评估,与此同时从节约成木的方而出发,形成科学的人力资源调配机制,使项目得以顺利开展。 1.2.2质量和配置管理工作 软件的质量管理工作是整个项目的核心工作,质量管理决定着计算机软件工程项目管理是否真正的成功,通过一系列保证质量的手段,有计划的编制、控制和保证项目质量。保证项目质量的方式可以通过定期的进行质量评估得以实现,在日常项目管理中要不断的对工作进行考查,对于项目不合格的地方要提出意见并且考虑整改措施,不断完善整个软件配置管理的记录工作,使项目的质量能有一定的检测体系,这样开发者会对项目工程的质量问题有比较深入的了解。 1.2.3风险评估和管理工作 风险管理大致分为两种工作,一种是风险识别,另一种是风险评估。得到评估结果以后要针对问题提出相应的解决办法,定期检测计算机软件工程的好处是可以减小产生风险的概率,还可以避免一些因疏忽而产生风险,使项目的损失减少到最低,也减少了因项目风险而造成的一些相关责任人的利益冲突。 2计算机软件工程项目管理中存在的问题 2.1管理团队的协作问题 分工合作是我们完成一个项目的基木因素,在软件开发方而更需要每个人的智慧一起凝聚出果实,共同享受成果,而目前在计算机软件工程项目管理方而信息的交流方而存在一些问题,例如分工不清、团队不合作等问题。 2.2需求分析和实际中的业务存在差距问题 计算机软件工程项目没有结合实际的活动需求,也没有调查有效的数据分析,因此计算机软件工程项目管理在开发出新的产品以后并没有取得理想的业务效果。 2.3风险管理的问题 项目的风险工作是企业需要考虑的很重要的问题,如果风险没有相应科学管理,很容易带来巨大的损失,但是很多员工并不懂得如何规避风险,缺乏相应的专业知识,更是缺少对风险工作的管理,导致很多企业在风险来临时无法做出正确行动,造成巨大的经济损失。 3计算机软件工程项目管理的对策 3.1对风险管理和工作进度进行有效管理 制定风险管理制度。计算机软件工程项目管理的工作人员必须具有一定的风险识别意识和相应的遇到风险的专业知识,并且能有效的控制风险的能力。在平时要做好风险评估的管理报告,针对可能发生的风险要及时预测并且做出相应的解决行动。设置专门的人员对计算机软件工程项目定期进行风险的评估和检查工作。在整个项目中,根据需要进行多次的风险管理工作,因为风险无时无刻都有可能存在,检查的目的是尽量减少风险发生,在一般情况卜处理风险的措施一般有三种:减缓、规避和转移。提高工程的进度,不断的推进工程的工作效率。要制定详细的工作计划表,并且尽可能达到最高的工作目标。工作人员有严谨的工作态度和高效的作息时间安排,管理人员要密切关注工程进度,不断的督促员工完成应做的工作量,有条理、高效的完成对员工的工作任务的监督工作。 3.2建立完善的管理体系针对计算机软件工程的人员日常管理工作,要建立科学有效的管理方案。合理安排人才资源,确保在进行计算机软件项目工程时人员调配顺利进行。专业知识的培训对于工作人员来说 是必不可少的,可以极大的丰富计算机软件工程项目人员的专业水平和实践能力,减少工作上的失误,提高工作效率和工作人员的素质。奖罚制度是对企业员工优劣的衡量标准,所以在计算机软件工程项目管理方而采取奖罚制度可以极大程度上调动员工的积极性,使员工主动为企业创造效益,企业的发展才能有长远的未来。 3.3建立合作的团队 在员工内部建立有效的交流机制。员工的内部工作经验交流是非常重要的,因此要完善沟通方法,开辟多种交流方式和渠道,不断的增强各个部门的沟通意识,使团队的力量不断凝聚起来。明确分工,责任落实到个人。计算机软件工程管理非常复杂,需要的人员也众多,因此必须要使每个员工明确自己的工作内容和范围,清晰的划分自己所需要负责的区域,清楚自己的责任,这样能够确保每一个步骤都井井有条,非常有秩序。调动整个团队的工作积极性。通过一些活动、奖励措施等使每一个工作人员全身心的投入到工作中去,愿意并想要去做的更好,不断激发团队的潜力和员工的协作能力,这样项目不仅会做的越来越好,员工内部也会越来越和谐并且充满正能量,企业的效益也会不断得到提升。 4结语 计算机软件工程项目管理的工作内容十分的复杂,要保证软件工程按照工程原计划进度顺利开展工作,并且要节约成木、保证质量,必须熟练对计算机软件进行操作,在现在的大多数生产计算机软件的企业中最为重要的就是软件工程项目的管理效率,软件工程项目的成功条件是软件项目要具有科学性和高效性,在此基础上企业的合理管理也是企业走向成功的关键。 作者:陈瑾 单位:徐州工程学院 软件项目管理论文:软件开发项目管理论文 1在软件开发中实施项目管理的重要性 有时即使不开展项目管理工作,软件开发项目也能取得成功。但是如果乏项目管理,则难以将成本控制在一定范围内,容易导致软件企业面临着亏损的风险。在开展项目管理工作的过程中,需要借助技术、方法等,管理软件开发活动,如此既有助于实现软件开发目标,又能够控制软件开发的进度以及开发成本。当前,虽然有部分软件企业依据软件工程理论,制定了管理软件开发的制度,但是却没有严格控制软件开发的进度以及成本。这种做法不仅会延长软件开发的时间,还会增加软件公司的经营风险,最终损害到相关用户的利益。而在软件开发过程中,开展项目管理工作,就有助于保证软件开发工作的顺利完成,同时提高软件企业的经营管理效率。 2项目管理在软件开发中的应用现状 在二十世纪六十年代中期,人们发现了在开发软件过程中存在着很多问题,具体的问题表现在以下两个方面:一方面,不规范的生产过程;另一方面,不重视管理工作。为了能够有效解决软件开发过程中存在的问题,人们开始尝试利用过程管理方法。但是到了二十世纪八十年代,还是没有制定管理软件开发过程相关标准。近几年来,在信息技术快速发展的背景下,人们采取项目管理来控制软件开发的质量、软件开发的成本等,以此确保软件开发的质量和成本等因素,符合当时的既定标准。在软件开发过程中,每一个项目组的不同成员都应该承担不同的任务,并且企业管理者应该要求他们要在规定的时间内完成自身的任务,这种明确分工制度,有助于提高员工的工作效率。 3项目管理在软件开发中的应用 每一个软件开发项目都要经过以下几个阶段:提出问题、研究可行性、分析需求、测试等。因此项目管理工作应该贯穿于软件开发的整个过程。 3.1可行性研究 无法开发哪一个项目,都需要进行可行性分析与研究。通过利用项目管理来研究软件开发项目可行性的目的在于:在最短的时间内确定软件开发项目是否具有开发的价值。其中可行性研究的内容包括: 1)、研究技术的可行性。其主要是指:要合理地分析开发项目的功能与性能,分析其中所隐藏的技术风险。 2)、研究经济的可行性。其主要是指:估计所开发的项目给企业带来的经济效益,然后依据所估算的经济效益,确定该项目是否具有投资的价值。 3)、研究社会的可行性。其主要是指:分析此项目的运行方式是否正确,分析当前的人员技术水平以及管理制度是否具有可行性。 3.2软件项目估算 在软件开发过程中,首先要规划软件开发项目,如此便于项目管理人员制定切合实际的估算方案。规划软件开发项目的内容主要包括:明确软件开发的目标、明确软件开发过程中需要用到的各种资源、明确软件开发的进度等。在软件开发过程中,估算起着非常重要的作用。通过估算可以保证软件项目在规定的时间内完成,也可以确保软件项目的成本未超出预算。在估算资源、成本以及进度的时候,要依据自身丰富的经验以及相关的数据。但是当前所使用的估算方法较为单一,此种估算方法容易增加估算风险。对此,研究人员应该努力研究出更多科学、有效的估算方法。 3.3软件项目开发人员的管理 在开展软件项目开发人员管理工作的时候,首先要合理安排人员。通常情况下,是由多个小组成员共同完成软件开发项目。在具体安排人员任务的时候,要依据每位人员的优势进行,并且要明确小组内每一位成员的工作任务以及工作目标。在软件开发过程中,要确定不同的责任人,比如:项目经理、开发经理,并且为每一个小组安排一名组长,如此有助于确保软件开发项目的顺利完成,同时保证所开发出来的软件属于高质量产品。 4结束语 虽然项目管理过程中并没有包含较为深刻的理论,但是要想真正实施项目管理还是比较困难。对于软件开发企业来说,其应该在不断的实践中总结项目管理工作经验,以此提高项目管理工作的质量。 作者:侯凯 单位:锦州银行股份有限公司
软件质量管理论文:软件质量管理体系研究 [摘要] 随着软件行业的发展,软件质量越来越成为人们关注的焦点。本文从软件质量管理体系出发,结合笔者自身多年的软件质量管理经验,对现有软件质量管理体系进行了总结和归纳,提出了软件开发过程中质量控制的具体改进方法,并将全面质量管理观念融汇于实际软件质量管理日常事务之中。 [关键词] 软件质量管理体系 改进 全面质量管理 持续发展 一个开发团队要提高效率,就需要思考目前的管理活动中有哪些要素是可以改进的:如何把一些事务性的操作变得自动化,从而节约人力;如何找到更好的方法,让开发过程更为合理,更注重软件的质量;如何在团队中传播优秀的思想,让团队成员不断地学习和进取,自发地改进过程。这些美好的愿望几乎是所有方法论和各种认证的共同心声,但要完全做到可就太难了。在本文中,提出了一些优秀的实践,优秀实践均是来源于软件开发界中的一些新思路和新理论,它们能够为以上愿望的达成起到正面的作用。在组织中引用这些实践决不是一个容易的过程,但它们确实非常有效。这些实践包括:建立日创建、测试驱动开发、建立核心框架和面向组件进行编程。 一、软件开发的有效管理:日创建 一个组织应当拥有一个有效的工作流程,这个工作流程能够指导软件开发的进行。这个流程应当是具体的、可操作的。随意的计划和从来不遵循的进度决不是一个有效的工作流程。日创建实践提出了一种对开发过程进行精细管理的方法,它是量化软件管理的基础。有了日创建,你会发现计划的制定和进度的监控是非常容易的一件事情。 我们传统开发软件的流程一般是这样,理解领域问题,然后分配任务,由不同的人负责不同的软件部件,在开发完成之后,再把各人的部件整合起来,形成完整的软件。这个思路看起来并没有什么问题,但是在实践中却问题多多。 首先,这种方式适合开发人员之间工作彼此没有交集的情况,以前这种现象很常见,但是现在,随着软件规模的扩大、分工合作的加深,开发人员间的相互依赖程度越来越高,这种清晰的职责划分已经变得越来越难了。 其次,在软件集成时,往往会出现各种各样的问题,可是却很难发现到底问题在哪里?公说公有理,婆说婆有理。每个人的代码都没有问题,结合到一起就出现大量的问题。 所以日构建就将平时难得一见的集成工作转换成频繁进行的一件工作,从而使得原先如同噩梦般的集成变成了一件简单的工作。这也是很容易理解的,如果集成工作几个月才进行一次,谁能够记起几个月前的细节呢?但是如果集成以天,甚至以分钟为单位进行,排除bug就变成一件很容易的事情了。 二、测试驱动开发 软件质量的根源来源于测试,测试做好了,软件质量就会好。这是毫无疑问的。问题的关键在于怎么做测试,才能保证测试的投入能够带来软件质量的有效提升。测试驱动开发正是为了解决这个问题而出现的。它不是一个完整的方法论,可以和任何一种开发流程进行融合。测试驱动开发不但能够改善测试效果,还能够改进软件的设计。 测试驱动开发起源于XP法中提倡的测试优先实践。测试优先实践重视单元测试,强调程序员除了编写代码,还应该编写单元测试代码。在开发的顺序上,它改变了以往先编写代码,再编写测试的过程,而采用先编写测试,再编写代码来满足测试的方法。这种方法在实际中能够起到非常好的效果,使得测试工作不仅仅是单纯的测试,而成为设计的一部分。 在编写程序之前,每个人都会先进行设计工作。可能有些人的设计比较正式,绘制模型,编写文档。有些人的设计只是存在于脑海之中。且不论设计是精细还是粗糙,你都为随后的编码活动制定了一个标准。这个标准的明确程度和你的设计的细致程度有关。但应该承认,这个标准是不够细化的。因为你的设计不可能精细到代码级的程度。而标准不够明确则会产生一些问题,例如,在编写代码的过程中,你还可能会发现原先的设计出现问题,从而中途改变代码的编写思路。这将会导致成果难以检验,进度难以度量。 既然以设计为导向的标准不够明确、不够具体。那什么样的标准才是合适的呢?只能是代码。因为代码是最明确、最具体的。所以测试优先的本质其实是目标管理。编写测试代码其实是在制定一个小目标。这个小目标非常明确,它规定了你需要设计的类、方法,以及方法需要满足的结果。这些目标制定完成之后,你才开始编写代码来达成该目标。测试的目标要比设计的目标粒度更小,但是成本上却更为经济。 测试优先是软件开发中一种细粒度的目标管理方法,通过明确的目标,推动软件开发的进行。 三、建立核心框架 框架是一种具有高度重用性的软件,这个特性决定了它非常适合成为软件组织积累知识的一种有效手段。传统的知识积累的方法是文档,但是文档容易产生歧异,开发人员往往也不愿意去阅读和理解文档。框架提供的是一种综合的手段,包括文档、模型和代码。更容易理解,更重要的是,开发人员必须在日常的工作中使用框架,这使得他们对框架中的知识非常熟悉,并根据工作的需要来改进框架。 四、面向组件编程 有效的组织在于有效的分工。体力活动容易进行分工,脑力劳动则比较难,而软件开发似乎就更难了。所以,长久以来我们都习惯采用以功能块为单位的粗粒度划分方式。面向组件编程采用更加细密的划分方式,并以服务作为组件之间相互依赖的契约,不但定义了组件和组件之间的关系,也规定了组件开发者、组件使用者、组件测试者的权利和义务。从而能够进行软件开发工作的分配、管理、QA等工作。 软件质量管理论文:软件质量管理6大最佳实践 软件形式上是产品,本质上是服务,是高科技计算机信息技术和人类创新智慧的结合。在软件产品的研发过程中,软件质量一直处于最为核心的地位。ISO9001标准和CMM原则被誉为软件质量管理的圣经,是当今国际上最推崇的软件质量改进方法和保证措施。然而,很多实施ISO9001、CMM3级的企业过于强调过程管理,忽略了“人比过程更重要”这一原则,形式重于实质,这一做法在国外已受到猛烈抨击。如何更好地将质量管理理论和企业经营生存之道密切融合,走出一条独辟蹊径、立竿见影的“质量革命”之路,是摆在诸多企业高管面前的重要课题之一。这里总结了软件项目质量管理的6大最佳实践,供同行参考。 全面管理,塑造质量文化 全面质量管理即为全员、全过程、全方位的质量管理,它具有以下基本特点: 1.全员:质量控制从少数质量保证人员扩展到企业的所有人员。质量控制管理不是质量保证部门一个部门的事情,需要全员的大力支持、准确理解、精确执行。 2.全过程:将质量控制、质量检验、质量统计延伸扩展到整个产品生命周期。 3.全方位:全面运用一切有效方法,全面控制质量因素,如软件开发成本、进度、可靠性、安全性等。 全面质量管理可以归纳为两大基本原则: 首先是以满足顾客需求为导向,不断改善,最终实现顾客的全面满足;其次是以全员参与为基础,进行全过程的质量控制。质量管理理论认为,“质量出自计划,而非出自检查”。软件前期的质量保证主要依靠设计、生产、研发,后期的质量保证则主要依靠测试、完善、改进。全过程的质量保证依靠行之有效的管理体系。这种观点强调运用确定性、过程化的管理制度、程序、体制来控制管理潜在诸多不确定性、多变性因素的软件质量品质。事实上,影响软件项目进度、成本、质量的三大因素分别是人、过程、技术,人永远是第一位的,人永远比过程更重要,人是影响质量的最关键因素,只有在软件质量管理过程中坚持“以人为本”,强调人与过程的和谐,塑造以人为核心的质量管理文化,才能让质量管理的成效得到淋漓尽致的发挥。 分级管理,把握 质量目标的层次性 ISO9001体系认为,建立质量方针、质量目标是实施质量管理的必经之路。事实上,现代软件的架构是层次化的,这一点尤其重要,软件质量也应按照层次从里到外、功能由轻到重、地位从低到高因地制宜、区别对待,对于不同的软件层面和需求制定不同的质量目标。例如:对于一个大型网络游戏而言,大气炫丽、细腻仿真的3D动画操作界面是非常必要的;但对于一个小型超市仓库管理软件而言,只要能满足出库、入库、损益、盘点的基本需求就可以了,简单粗糙的操作界面反而更容易上手。 在进行软件工程的质量控制时,应把握关键层面,抓住质量控制的瓶颈。一般来说,越是靠近底层、核心区域(如平台、框架、引擎、关键业务等)的代码质量要求越高,开发人员的素质要求越高,质量检测及保证工作代价开销越大。精益求精只适用于靠近核心的代码层;而对于外围代码层, 可酌情适当降低代码质量,放松测试条件。 验证确认,全程质量控制 质量控制是确定项目结果与质量标准是否相符,并及时纠正产品缺陷的过程。质量控制的主要手段是验证与确认:验证是从开发者的视角来检查是否正确地构造了产品,而确认则是以用户的视角来检查是否构造了正确的产品。 事实证明,具有清晰开发模式及过程管理规范的软件产品,在质量上要明显超过那些没有明确过程模型及规范指导的软件产品。软件工程理论提出了诸多开发模型,如瀑布模型、喷泉模型、增量模型、快速原型模型、螺旋模型、迭代模型等,当前最常用的大型软件开发模式是螺旋式的增量开发方式(如图1所示)。 图中1〜7 是各阶段的输出点,也是质量控制点,有相应的输出文档和阶段性成果,均需要得到质量保证部门的确认。软件项目中最常用的质量控制工具手段,包括评审(技术评审、代码评审、设计评审、同行评审等)、审查、测试验证(黑盒测试、白盒测试、单元测试、集成测试、确认测试等)、抽查、调查、走查、旁站、缺陷跟踪等。 技术评审最初是由IBM公司为了提高软件质量和提高程序员生产率而倡导的,分为正式技术评审(FTR)和非正式技术评审(ITR)两种,该方法已经被业界广泛采用并收到了很好的效果,它被普遍认为是软件开发的最佳实践之一。需要重点指出的是,同行评审是一种特殊类型的技术评审,由与产品开发人员具有同等背景和能力的人员对产品进行技术评审,非常有利于发现产品中潜在的问题。成功的同行评审是提高质量和生产率的重要手段,评审的对象应该包括所有软件开发的中间和最终工作产品。 引入工具,复用成功模式 质量管理是可以通过信息化手段量化的,采用先进的质量管理工具可以极大地提高质量管理水平。例如:Bugzilla是Mozilla公司提供的一个开源的缺陷跟踪工具,在全世界拥有大量用户。它能够为软件组织建立一个完善的缺陷跟踪体系,包括报告缺陷、查询缺陷记录并产生报表、处理解决缺陷等。 质量和缺陷是一对无法化解的矛盾,想要提高质量必须千方百计地减少缺陷。有三种方法可以减少缺陷产生的频率、数量、规模等级。 1.事前预防:在开发过程中始终要考虑工作成果可能产生缺陷,将高质量内建于开发过程之中。主要措施包括提高技术水平和规范化水平,也就是练内功,通称为“软件过程改进”。 2.事中控制:及时对各个阶段的工作成果进行质量检查,找出并消除其中的缺陷。这种方式实践效果较好,已经被企业广泛采用,主要措施是技术评审、软件测试和过程检查。 3.事后补救:当软件产品正式交付到用户手中投入生产经营时发现了重大缺陷(如系统常常崩溃、运行速度极慢、报表统计错误等),然后再进行修改维护。这实质上反映出软件项目管理中存在较大的缺失和漏洞,建设单位、承建单位、监理单位三方都有不可推卸的责任,应规避这类水平低级、后果严重、影响恶劣的失误再次发生。 复用是在软件开发领域提高软件质量的重要方法之一。被复用的对象往往是经过反复使用验证的,自身具有较高的质量,因此,合理化复用有利于提高质量、提高生产率和降低成本,技术开发活动与管理活动中的任何成果都应尽量被复用,如思想方法、经验、程序、文档等。软件质量管理的最终目的除了能够不断持续改进之外,还在于形成有特色、有成效、可操作的质量管理模式,并最大程度地复用。 协同合作,三权分立 由于软件质量管理的专业性和复杂性,软件项目组织建设上应实行“设计、检验、监管”三权分离、鼎足而立的原则:设计部门专攻软件需求分析、规划设计、系统研发工作;检验部门从事系统测试(性能测试、回归测试等);质量监管部门制定质量管理工作计划,对各部门的质量管理工作提出指导建议,跟踪、内审、改进质量体系的运行。 技术评审、测试和质量保证是提高软件质量的三个重要法宝,但三者在作用上各不相同。技术评审与测试关注的是产品质量而不是过程质量,两者的技术强度比质量保证要高得多。技术评审和测试能弥补质量保证的不足,三者是相辅相承的质量管理方法。我们在实践中不能将质量保证、技术评审和测试混为一谈,也不能把三者孤立起来执行。建议让质量保证人员参加并监督重要的技术评审和测试工作(大约占其工作量的30%左右),只有这样他们才能更深入地了解软件的质量问题,把三者有机地结合起来,做到三位一体,全方位堵住质量缺陷的漏洞。在部门职能规划上,质量保证部门具有充分的权力,可以对质量不合格的工作成果做出处理,只有这样质量保证工作才不会被轻视,才更有助于加强全员的质量意识(质量保证过程域的主要活动如下图2所示)。 和谐管理,做好一把手工程 当前很多软件企业都组建了质量保证部门,出台了质量保证制度,然而软件质量并未得到实质性突破,质量保证人员也没有发挥预期的效果,造成这种情况的常见原因有两个:一是软件开发团队管理过程不够规范;二是企业领导者,尤其是最高领导者(即“一把手”)重视程度不足,措施不到位。 调查结果表明,在软件项目中,质量保证人员往往是最“吃力不讨好”的一族,通常没有实质性权力,项目成功功劳属于别人,自己缺乏成就感,项目失败却担负最多的责任。鉴于这种情况,领导层一定要从根本上重视、爱护、支持质量保证工作,充分发挥组织协调作用,体现人文关怀,运用管理艺术,构建和谐团队,让每一个项目组成员都树立较强的责任感、归属感和大局意识。事实上,软件开发工程是典型的“全员参与工程”、“一把手工程”,没有企业“一把手”的知情、重视、认可和支持,软件项目顺利实施和取得实效根本无从谈起。有时候企业领导层对于软件质量保证的作用往往是决定性的,这是任何技术手段都无法替代的。 链接 软件质量管理常见误区 误区一:软件质量是可以精确测量的。 软件的质量属性很多,如正确性、健壮性、可靠性等,但在大多数用户看来,实用、适用、好用的软件就是成功的。成功的软件通常都会在功能、性能、界面、操作等方面,以最简捷有效的方式满足用户的最紧迫、最直接的需求。质量是一个相对的概念,软件产品质量没有国际通用的评价标准,质量目标的弹性较大,没有绝对合格或不合格的界限,软件不可能做到“零缺陷”,有缺陷的软件仍然可以使用。 误区二:企业软件的质量越高越好,最好是“零缺陷”。 商业目标决定了软件的质量目标。软件的质量评价也不能从纯粹的软件工程、软件商品、软件技术的角度去考量。理想的软件质量目标不是“零缺陷”,而是恰好能够满足应用需求、生存发展、市场竞争需要,并且将提高质量所付出的代价控制在预算之内。一味追求高质量代码,把质量目标凌驾于赢利目标之上,是多数技术人员所犯的常见错误。 误区三:通过ISO9001、CMM3级认证就意味着软件质量一定有保证。 当前很多通过CMM3或者ISO9001质量认证的软件企业在软件项目管理上的确更加规范了,但代表核心竞争力的软件质量驾驭能力并未得到实质性的提升。产品生产过程与产品质量存在一定的因果关系,通常好的过程产生好的产品,而差的过程将产生差的产品。实践证明,软件质量保证并不能绝对保证软件质量,质量保证只能检测出哪些不符合既定程序规范、肤浅的软件缺陷,对于潜藏在软件深处符合既定设计规范的缺陷却显得无能为力。仅靠制度、规范、流程是无法全面识别出软件中的潜在缺陷的,质量保证对于保证质量而言只是必要的手段,而不是充分的手段。 误区四:拥有充足的人力资源,软件质量就有保障。 软件开发并不一定是人多力量大,相反,人力资源配置不当反而会延误工期。不同人员的水平和素质差异较大,软件项目增加新人可能会增加新的缺陷,无益于软件质量提升。软件开发是一种智力创新活动,任何程序员都无法避免缺陷的发生,缺陷发生是必然的,程序员首先必须了解决定软件质量的各个关键因素(如成本、进度、可靠性、安全性等),搞清楚质量控制的目标和计划,然后才可以在进行需求开发、系统设计、编程测试时确保交付软件的高质量。 软件质量管理论文:基于过程性能模型的软件质量管理过程的研究与应用 摘要:软件产品的质量在很大程度上受到软件开发过程的影响。为了提高竞争力、改进质量以及提高效率,软件企业就需要将更多的注意力放在过程上,通过过程控制其结果。本文对软件质量管理过程进行了研究,通过过程性能基线和过程性能模型分析和管理质量,提出了一个基于过程性能模型的软件质量管理过程模型,并在研究的基础上,构建了软件质量管理系统的体系结构。 关键词:软件质量管理过程性能基线过程性能模型 1 引言 随着软件产业的飞速发展,软件的核心竞争力主要集中体现在质量、成本和交付工期上,而质量是最显著影响其它两方面的因素。对软件企业来说,质量不再只是争夺市场的一个有利因素,而变成了公司在竞争中成功的必要条件。然而,随着软件规模和复杂度的增加,软件开发过程越来越难以控制,导致开发过程中的产品质量和过程质量处于失控状态。 过去存在着一些片面的观点,认为先进的工具和方法可以神奇地解决软件开发中的质量问题。目前的现实并不尽如人意。有的企业由于缺乏对开发过程的控制,往往很难平衡客户和公司在质量、成本和交付工期的要求,成功的项目比例很小。 面对如前所述的现状,软件质量管理一定要面向预测式管理。一个软件产品的质量主要是由它的开发、采购和维护过程决定的,为了改进软件产品的质量进而提高竞争力,就要把焦点放在能够稳定地开发优质产品所需的过程上[1],通过过程数据预测和控制结果。 过程性能模型重点强调过程和产品度量对结果的重要性,分析和建立过程和产品度量与结果的关系。其通过过程性能基线控制过程的关键因子,分析过程的性能偏差,进而预测并控制最终结果。由此可以看出,过程性能模型是解决上述问题的有效方法,本文将关注基于过程性能模型的软件质量管理过程。 本文首先归纳了软件质量和软件质量管理的研究现状,并指出了现有软件质量管理过程所存在的问题;随后引入了过程性能基线和过程性能模型,提出了基于过程性能模型的软件质量管理过程模型,阐述了过程性能基线和模型在质量计划、质量活动、质量度量和分析、质量预测和控制、质量评价和改进等五个质量管理子过程中的应用;最后在研究的基础上,构建了软件质量管理系统的体系结构,包括组织过程资产库,过程支持和软件质量管理三个子系统。 2 软件质量及管理 当前业界已将交付软件的缺陷密度作为软件产品的质量的衡量关键标准。即,已交付软件中每个单位规模的缺陷数,简称为交付缺陷密度。因此,软件质量管理通常围绕缺陷而展开,软件项目的目标是使交付的软件存在尽可能少的缺陷[2]。 质量管理的任务是计划恰当的质量活动,然后正确执行和控制这些活动,以便可以在软件开发过程中(即在软件交付以前)检测到大多数缺陷[2]。 质量管理包括确定软件的质量目标,制定实现这些目标的计划,并监控和调整软件计划、软件工作产品、活动和质量目标,以满足客户和最终用户对高质量产品的需求和愿望。 质量管理基于机构、客户和最终用户的需求建立软件产品的质量目标。为实现这些目标,机构制定相应的策略和计划,项目则为实现这些质量目标对其定义的软件过程进行具体调整[3]。 在软件质量管理过程和方法上,传统的包括:全面质量管理(Total Quality Management, TQM)是一套能控制质量、提高质量的方法;在PMBOK[4]中,软件项目的质量管理是指保证项目满足其目标要求所需要的过程,包括质量计划、质量保证和质量控制三个过程域;著名的“Juran三部曲”[5]――TQM的理论基础和基本方法的主要基石――包含质量计划、质量控制和质量改进三个步骤,突出了对过程改进的支持。最有成效的要属六西格玛质量管理方法,其理念是通过排除和预防缺陷来提高客户满意度,进而提高企业的收益率,包括过程性能度量集、多种改进框架和分析工具,尤以DMAIC框架(定义-度量-分析-改进-控制)最常用[6]。将六西格玛与CMMI实施相结合将是更有效的过程改进途径。 在软件质量管理工具方面,Ishikawa提出了质量控制的七种基本统计工具[7],包括因果图[8]、Pareto图、直方图、控制图、散布图、运行图、检查单。目前也有许多有关预测模型的论著,如:Rayleigh模型。 现有的软件质量管理过程和方法提供了质量管理的高层指导,主要关注于实施步骤以及最终结果,质量管理工具也着力于解决质量管理中的具体的某“点”的质量问题和控制,但在如何通过过程控制其结果,业界正在寻求有效的途径,是亟待解决的问题。例如:如何制定低风险且切实可行的质量计划、如何在开发过程不同的影响因素下确保项目质量目标得以实现等。这些正是本文致力于研究的主题。 3 基于过程性能模型的软件质量管理过程 过程性能模型是解决通过过程控制其结果的有效方法,具体定义如下。 过程性能基线(Process Performance Baseline, PPB)是对遵循过程所达到的实际结果的文档化刻画,用于比较实际过程性能和预期过程性能的基准[9]。 过程性能模型(Process Performance Model, PPM)是对过程属性和过程工作产品之间关系的描述,基于历史过程性能数据而建立,并使用项目中收集的过程度量和产品度量进行校准,最终用于预测遵循过程将能达到的结果[9]。 过程性能基线可用于组织内任何独立的项目,通过分析所收集的度量,建立结果的分布和极差,其刻画了所选过程的预期性能[10]。过程性能模型基于其他过程和产品的度量来估算或者预测某一过程性能的度量,刻画了过去的和当前的过程性能,对过程将来的性能进行预测。过程性能基线控制子过程的能力;过程性能模型预测过程的中间目标和最终目标,通过过程控制结果,在子过程结束时进行调整和预测,确保最终目标的实现。 基于六西格玛质量管理的方法及其DMAIC框架(定义-度量-分析-改进-控制),以及过程管理的四个核心职责(定义过程、度量过程、控制过程、改进过程),并结合过程性能基线和模型的原理,本文提出了一种基于过程性能模型的软件质量管理过程模型,该模型在质量管理过程中增加了过程性能基线和模型的指导、统计管理以及预测和控制,提供了软件开发过程中进行质量控制和持续改进的框架,如图1所示。模型主要包括:质量计划、质量活动、质量度量和分析、质量预测和控制、质量评价和改进。接下来将详细阐述过程性能基线和模型在上述五个质量管理子过程中的应用。 图1 基于过程性能模型的软件质量管理过程模型 3.1 质量计划 要生产出高质量的产品,首先必须制定质量计划。质量计划作为基于过程性能模型的软件质量管理过程模型的一个核心环节,简言之,就是怎样以及何时将质量活动和质量材料应用到一个项目中。质量计划中必须明确定义在软件开发的各个阶段应如何进行质量活动。制定质量计划的前提是项目已完成任务计划、进度计划和规模估算,故在制定质量计划之前必须进行入口准则的验证。 基于过程性能模型的软件质量管理过程要充分发挥过程性能基线和模型在质量计划制定时的指导作用。团队软件过程(Team Software Process, TSP)质量计划是一个最佳范例,本节将介绍如何使用过程性能基线和模型指导质量计划的制定。 本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文 3.1.1 TSP质量计划 团队软件过程(TSP)制定的质量计划包括以下几个方面[11]:系统无缺陷比率、各阶段排除缺陷密度、质检过失比、阶段收益、过程收益、缺陷引入率和缺陷排除率,可划分为过程质量度量和产品质量度量两大类。 为了提高客户满意度,首要解决的就是降低交付缺陷密度,即验收测试过程中发现的缺陷密度。团队在制定质量计划时,首先估算可能会引入的缺陷数,其中估算每个过程阶段所引入的缺陷数的方法有许多种,TSP质量计划使用的是缺陷引入率;然后就是估算排除的缺陷数,这里TSP质量计划使用了阶段收益。一旦团队按阶段估算了引入和排除的缺陷,那么结合项目的规模估算与任务和进度计划,就可以估算出每个阶段将会排除的缺陷密度,然后检查所估算的交付缺陷密度是否满足项目的质量目标,进而通过局部调整以完成质量计划。 3.1.2 使用过程性能基线和模型指导质量计划制定 在使用缺陷引入率和阶段收益估算缺陷的引入与排除时,传统的做法是“拍脑袋”或者基于业界数据,有经验的组织会基于历史数据,但是实际实施表明:上述情况中绝大多数的估算都是徒劳的。原因如下:一是因为对阶段缺陷引入率和阶段收益的估计值没有准确地反映缺陷引入与排除过程的能力,不应只是单个值,而应该是一个区间,包括均值和上下限;二是因为没有对缺陷引入与排除的过程进行计划,尤其是某些关键度量,例如评审速度、测试覆盖度、人员技能、经验等级、检查单条目数等,从而无法通过缺陷引入与排除的过程控制过程的执行结果(缺陷引入率和阶段收益),使得项目质量目标的实现变得不可预测和控制。 为解决上述问题,这里使用过程性能基线和模型从四个环节提供支持: (1)建立项目的质量目标,制定交付缺陷密度的计划值。 (2)基于组织的历史数据,建立阶段缺陷引入率和阶段收益的过程性能基线,参照过程性能基线计划阶段缺陷引入率和阶段收益,以“上限,均值,下限”的三元组形式。 (3)基于组织的历史数据,构建缺陷引入过程和缺陷排除过程内部的过程性能模型,建立子过程结果(也即中间目标)与子过程因子(包括可控的和不可控的)之间的关系,以及子过程可控因子的过程性能基线,参考所建立的过程性能基线和模型制定子过程的质量计划。同时在质量预测和控制时,需要对这些子过程进行统计管理。例如设计评审,代码评审,单元测试。 (4)在分别计划好项目的质量目标、缺陷引入和排除过程的中间目标、缺陷引入和排除过程因子之后,使用统计方法(例如蒙特卡洛模拟)对项目质量目标达成情况进行预测[12],通过置信度与置信区间评估目标达成情况的风险,必要时调整计划。 若软件组织处于起步阶段,没有足够的历史数据,质量计划的制定可参考TSP质量准则[13]。 3.2 质量活动 质量活动作为软件开发过程中的一项必要且非常重要的活动,负责排除开发过程中所引入的缺陷。其作为软件质量管理过程中不可缺少的环节,通常分为两大类:评审和测试。评审不但可以识别存在于可执行系统中的缺陷,而且可用于文档。评审有许多种类型,其中主要的类型有审查、走查和个人评审。审查和走查是同行评审[14]。测试则旨在发现尽可能多的缺陷。测试有七种类型,分别是单元测试、集成测试、外部功能测试、回归测试、系统测试、验收测试以及安装测试[15]。常用的有单元测试、集成测试以及系统测试等项。 以TSP为例,其任务计划中所涉及的质量活动按执行的先后顺序排列有需求审查、高层测试审查、详细设计评审、详细设计审查、代码评审、编译、代码审查、单元测试、集成测试、系统测试、验收测试。 项目的质量经理根据进度计划,按期组织任务计划中所安排的质量活动,基于既定的质量计划,具体由质量保证人员按计划实施。 3.3 质量度量和分析 在质量活动实施的过程中,软件质量保证人员应收集质量度量的实际数据,包括基本度量和派生度量。以软件审查为例,基本度量包括规模、评审准备时间、评审会时间、参与审查人数以及所发现的不同类型的缺陷数;派生度量包括总的审查时间、准备速度、审查速度、总的审查速度、缺陷密度、每小时发现缺陷数、评审准备时间与评审会时间之比、审查有效性。个体软件过程(Personal Software Process, PSP)[14]提供了非常有价值的度量和分析。 与此同时,质量人员可对收集的质量度量数据进行一些初步的探索性分析,为进一步的质量预测和控制打下基础。数据分析的切入点可以为缺陷的引入、排除以及泄漏,与评审有关的准备速度、评审速度、缺陷密度、审查有效性等,以及与测试有关的测试用例密度、测试覆盖度、测试用例有效性等。数据分析的方法包括如下: (1)推测,支持工具有Pareto图、运行图、直方图、箱线图、多变异图等; (2)提出原因的假设,支持工具有因果图和关系图等; (3)证实或排除原因,这主要是由能提供假设检验、方差分析和多元分析等方法的高级分析工具所支持。 3.4 质量预测和控制 为了有效地跟踪并控制质量活动的实施,实现质量计划中对各质量活动所设定的预期目标,进而确保项目质量目标的达成,基于过程性能模型的软件质量管理过程模型所包含的另一个核心环节就是质量预测和控制,主要涉及到统计管理子过程性能和预测项目质量目标达成两方面。具体而言就是使用过程性能基线和模型对质量计划中标注的关键子过程实施统计管理,在每一个子过程结束时使用过程性能模型预测项目质量目标达成的置信度,必要时对质量计划进行调整。 3.4.1 统计管理子过程性能 统计管理的过程[9](Statistically Managed Process)即使用基于统计的方法进行管理的过程,其中,对该过程进行了分析,过程偏差的特殊原因得以识别,过程性能也被控制在已定义的范围内。对子过程实施统计管理,可以使子过程的性能得到很好的控制,从而确保实现子过程的预期质量目标。适于统计管理的度量必须是可控的,对子过程来说是关键的,可以为人员属性、环境因子、技术因子、工具或硬件条件、过程因子、客户以及供应商等利益相关者,例如人员经验等级、人员可用性、同行评审相关度量、测试覆盖度、编程语言等[16]。 根据对相关材料的研究,本文归纳并提炼出了一个统计管理子过程性能的流程,大体将统计管理子过程划分为过程稳定性评估和过程能力评估两部分,如图2所示。 图2 统计管理子过程性能 (1)过程稳定性评估 过程稳定性评估[17]需要用到统计过程控制方法(Statistical Process Control, SPC)。SPC主要用来测量一个过程的稳定性并识别过程的各个执行情况是否超出所预期的变化范围和控制界限。控制图是实现统计过程控制强有力的工具,常用的为XmR图和U图。通常情况下,适于统计管理的度量其取值都是服从正态分布的,对于不服从正态分布的情况,可以使用箱线图。 对于不稳定的过程(子过程中出现了性能偏差),需要识别偏差的特殊原因,集中分析并采取矫正措施排除特殊原因。检测不稳定性除了Western Electric提出的4种有效测试 [17] 外,还可参考Minitab等统计软件中提供的其他测试规则。必要时可采用分组的方法。 (2)过程能力评估 在子过程执行即将结束时,需要分析子过程的能力,进行过程能力评估。过程能力[17]评估的前提是过程是稳定的或统计受控的。有能力的过程首先是稳定的,且其能力的上下限必须在规格界限之内。过程能力可以通过过程能力指数Cp和Cpk来衡量,使用控制图或直方图进行图形化展示。 本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文 过程能力指数Cp是我们描述过程能力的最重要指标,但由于Cp的计算与过程输出的均值µ无关,它是假定过程输出的均值与规格中值M重合时的过程能力。因此,Cp指数只是反映了过程的潜在能力。为此引入了过程能力指数Cpk,其被称为实际过程能力指数[18]。 合理考虑Cp和Cpk两个指数,对整个过程的状况就有了较为全面的了解。不应单独使用这两个之中的一个。 当Cp和Cpk都较小且二者差别不大时,说明过程的主要问题是σ太大,改进过程应首先着眼于降低过程的波动。 若Cp较大,而Cpk很小,二者差别较大,说明过程的主要问题是µ偏离M太多,改进过程应首先着眼于移动µ值,使之更接近M。 如果Cp本身不够好,Cpk更小,二者差别较大时,说明过程的µ和σ都有问题,通常改进过程应首先移动µ值,使之更接近M,然后设法降低过程的波动,减小σ。 需要特别强调的是,Cp和Cpk是由处于统计受控状态下的过程波动的大小和均值偏离决定的。因此首先要判断过程是否处于统计受控状态。 3.4.2 预测项目质量目标达成 在每一个子过程结束时,应使用子过程中间目标与项目质量目标之间的过程性能模型预测项目质量目标达成的置信度。 3.5 质量评价和改进 项目到达结项阶段时,软件质量管理也进入了最后一个环节:质量评价和改进。基于过程性能模型的软件质量管理过程中的质量评价和改进除了进行传统的质量总结报告之外,还包括基于正交缺陷分类[19](Orthogonal Defect Classification, ODC)的Pareto缺陷类型分析、过程性能基线和过程性能模型的分析评价。 质量总结报告提供了项目质量目标达成情况,质量活动的过程度量和结果度量实际数据,以及缺陷的引入排除情况汇总等。 考虑到ODC的缺陷类型与特定的软件开发阶段相联系,将Pareto缺陷类型分析与ODC结合起来,有利于识别最普遍的缺陷类型。而且通过Pareto分析找出缺陷数最多的缺陷类型,然后找出与该缺陷类型相关的开发阶段,从而对该阶段采取相应的改进措施。 质量评价和改进环节最重要的一步就是要对整个质量管理过程中所使用的过程性能基线和过程性能模型进行分析和评价,包括过程性能基线是否需要更新、过程性能模型的评价以及过程性能模型是否需要更新等。 3.5.1 过程性能基线更新决策 过程性能基线的建立过程是增量或迭代的,在获得新项目的实际度量数据后,要评估数据质量,然后将数据纳入已有基线的分析,确定是建立一个新基线还是使用已有基线。 判断将新的项目数据纳入已有过程性能基线是否合适的一个方法是:执行假设检验来判断新数据与已有基线是否存在显著的统计差异。如果存在显著的统计差异,我们需要使用新的项目数据建立新基线;如果假设检验的结果表明没有显著差异,则继续使用已有基线。 此外,在综合考虑项目和项目组之间的内在区别及组织业务变更的基础上,应定期评审组织过程性能基线集,以确定是否需要建立新的基线,或者是否需要合并、修订或放弃已有基线。组织过程性能基线需要合并、修订或放弃的情况如下: (1)当子过程改变时; (2)当组织的结果改变时(例如,由于过程偏移); (3)当组织的需要改变时。 3.5.2 过程性能模型评价与更新决策 基于过程性能模型的软件质量管理过程是否能真正奏效,过程性能模型自身的好坏至关重要,其是否能有效且准确地对目标进行预测和控制、其可理解程度及其可用性等都需要进行严格的评价。 通过对可靠性增长模型、质量管理模型等模型的评价标准进行调研[20],本文归纳了四条过程性能模型的评价标准,如下所示: (1)预测有效性。预测结果与实际结果偏差大不大,直接关系到模型的好坏。 (2)及时性。模型能够越早地发现问题或提高的征兆,就有越多的时间提前进行计划。 (3)开发过程的覆盖程度。开发过程的所有阶段的模型覆盖度是很重要的。每个开发阶段必须得到管理,并且应当实施适当的措施。往往需要建立模型集。 (4)简单性。数据采集简单并且代价不高;概念简单,用户不需要很多的数学基础就能理解。 过程性能模型的更新包括对模型的校准(Calibration)和修订(Revision)。 量化管理项目时,从统计管理选择的子过程中获取关键属性度量,通过使用所获得的这些实际性能数据,校准有关过程的过程性能模型,判断项目是否能够实现其目标,包括中期和最终目标(此时这些目标在项目生命周期的后面阶段才可以度量)。 需要修订过程性能模型的情况总结如下: (1)当子过程改变时; (2)当组织的结果改变时; (3)当组织的需要改变时。 4 质量管理系统体系结构 在对基于过程性能模型的软件质量管理过程的研究的基础上,研发了质量管理系统,其体系结构如图3所示。该系统建立了组织过程资产库,并提供两大功能:过程支持和软件质量管理。 图3 质量管理系统体系结构 4.1 组织过程资产库 一个组织应该拥有自己的过程资产库,包括组织的标准过程集、度量库、过程性能基线库以及过程性能模型库,分别为过程、度量、PPB和PPM建立了相应的数据字典。其中,标准过程集支持过程定义和裁剪,度量库包括过程度量和产品度量,过程性能基线库以“上限、均值、下限”的方式存储,过程性能模型库中涵盖基本的统计预测模型和高级预测模型。 4.2 过程支持 过程支持提供了从软件度量到过程性能基线直至过程性能模型的建立与维护功能。随着度量数据的不断积累,过程性能基线的控制限在建立的过程中需要不断地修订。开发过程性能模型也是一个迭代的过程,不断的选择一个或多个适当的统计建模方法,并用过去的性能数据对模型进行评估,直到得到适当的模型预测值。 过程性能基线建立的统计方法为控制图理论,支持过程性能模型建立的统计方法包括回归、方差分析、虚拟变量回归、卡方检验、逻辑斯蒂回归,以及蒙特卡洛模拟,贝叶斯信念网络(Bayesian Belief Networks, BBN)。 4.3 软件质量管理 (1)质量计划模块支持入口准则验证、质量计划概要、项目质量目标的建立、各阶段质量活动其质量目标的建立、各阶段质量活动的属性及其度量的详细计划、项目质量目标达成情况预测及结果报告。 (2)质量活动模块支持评审过程、测试过程的实施。前者包括评审计划、评审会、缺陷修复、评审总结,后者包含测试用例管理、测试报告、缺陷管理。 (3)质量度量和分析模块负责从过程中进行质量度量数据(特别是缺陷数据)的收集、分析、评价并生成质量状态报告,质量数据分析包括按阶段和项目划分的缺陷引入和排除情况分析等。 (4)质量预测和控制支持统计管理子过程性能和目标达成情况预测,为质量活动反馈偏差原因和建议的矫正措施,必要时提供质量计划调整的相关决策。 本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文 (5)质量评价和改进模块基于项目质量目标实际达成情况和软件开发过程中的质量数据,生成质量总结报告,并支持基于ODC的Pareto缺陷类型分析,重点提供过程性能基线和过程性能模型更新的决策和相关评价。 5 结语 本文对软件质量管理过程进行了研究,提出了一种基于过程性能模型的软件质量管理过程模型,包括如何使用过程性能基线和模型指导质量计划的制定、进行质量预测和控制等,解决了质量目标无法有效预测和控制的问题。基于研究,构建了软件质量管理系统的体系结构,下一步将深入研究通过开发过程控制缺陷的引入,从而全方位地实现软件质量管理。 软件质量管理论文:军用软件质量管理浅析 摘 要:通过对目前军用软件系统开发的特点和存在问题的分析,探讨了利用CMM原理来改进军用软件过程、提升软件质量的途径和方法。并对提高装备软件的质量管理水平给出了若干建议,为不断深化装备软件质量意识和完善装备软件质量工作提供了参考。 关键词:软件质量,质量管理,CMM 随着国防信息化程度的不断提高,军用软件作为信息化装备系统的神经中枢已经成为武器装备系统中不可或缺的组成部分。高新武器装备中由软件实现的功能有时甚至会超过硬件,乃至软件本身就可以看作一类重要的装备,系统中软件性能的好坏、可靠性的高低、安全性的优劣决定着整个武器装备系统效能的发挥。目前如何提高军用软件的质量已经成为提升整个武器装备系统战斗力的关键所在。 一、军用软件的特点 软件是用计算机语言表示的与计算机操作有关的程序、进程和数据的集合,具有零磨损特性,其质量完全取决于开发过程。ANSI/IEEE Std 729-1983定义软件质量为:软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体。该定义表明如果软件本身设计出来的质量特性能高度满足软件各项功能、性能需求,则其质量的优秀等级较高。 对于军用软件而言,还存在一些特殊性,表现在:①开发过程受严格的软硬件条件制约,且很难制定具体的、量化的质量标准。②规模巨大,大系统软件源代码往往会超过一千万行。③军用软件用于军事目的,要求无差错运行,对可靠性、实时性、安全性、保密性、互操作性等方面都有极高的要求。④成系统的大型军用软件面对装备情况复杂,研制参与人员较多,这些因素会造成高风险、长周期,高成本。 二、军用软件开发中的问题 随着对软件开发规律和军用软件质量重要性认识的提高,已经有越来越多的软件承制单位开始建立基本的软件过程,按照软件开发规律进行开发,但还有相当多单位,依然沿用“手工作坊”式的开发方式,全过程由软件开发设计人员“自行设计,自行编码,自行测试,自行包维护”。这种方式无法对软件开发过程进行有效的监督与管理,一旦软件产品出现故障,只能由开发者自行维护,其它人员难以介入,软件质量就会处于失控状态下,造成这种状态的主要原因除了国内软件开发整体水平较低外,限制软件的质量的原因还有:①目前相当多的军用软件是当作硬件的附件而不是独立的产品,没有按照基本的软件过程模型进行软件开发。②在研制过程中软件的评审力度不够。③软件开发文档及编制过程不规范,文档对开发过程的没有起到指导作用,软件验收和维护也没有依据。④软件测试非独立过程,软件的测试软件、测试工具缺乏,标准、规范不健全,软件检验与硬件合并进行,使得测试过程难以发现软件本身存在的问题。⑤部队使用装备投入对软件维护的力度不够。 三、CMM原理和作用 为有效针对军用软件目前存在的若干问题,保证软件产品质量,应清晰和完善的软件过程。我国于2001年基于SW2CMM1.1版的理念,制定了GJB5000―2003《军用软件能力成熟度模型》,并于08年在原标准基础上修改了若干内容,了GJB5000A-2008作为替代原文件版本,这些都标志着我国军用软件开发管理已经进入规范化管理阶段。 软件能力成熟度模型CMM主要用于软件过程评估和软件能力评价。其中软件过程评估用于确定当前软件过程的状态,发现与软件过程有关的嗜待解决的问题,进而有步骤地对软件过程实施改进,提高组织的软件过程能力。 CMM模型为软件开发组织设计了一个循序渐进的改进过程,帮助开发组织按模型进行对照检查,找出自身的强项和弱点,制定改进计划,逐步提升软件过程能力。同时也为软件委托方或采办者提供了一个评价标准,可以为对软件承包商进行软件过程能力评估,对风险进行控制。软件能力成熟度越高,软件过程越透明,软件性能越稳定,软件质量越高。 CMM将软件过程能力成熟度分为5级,从1级到5级软件能力成熟度逐步提高,每个等级有其软件过程特点,1级不含关键过程域,2级以上每一等级包含一组关键过程域,每一关键过程域中包含一组目标,当这组目标全部实现时该关键过程域相应的要求得到稳定。当一个等级及其以下所有等级的各关键过程域的全部目标实现时,就表明达到了该等级的成熟度。 四、利用CMM对军用软件能力成熟度评估 我国目前军用软件研制受整体水平的制约,还处于起步阶段,所以在引入并实施军用软件能力成熟度模型CMM时,可以从可重复级(2级)做起,帮助软件开发组织的过程能力按阶段逐步建立,逐级提高成熟度等级。可重复级共有需求管理、软件项目策划、软件项目跟踪与监督、软件质量保证、软件配置管理、软件子合同管理等6个关键过程域。为实现6个过程域的满足,应注重以下几个方面:①高层管理者应确定软件工程化方针,以CMM模型为蓝本,要求软件项目组按照软件工程要求实施软件开发,对项目进行阶段性分割,推进文档化交流方式,以便对软件开发的全过程进行有效控制和管理。②对原有组织进行适当调整,依据CMM过程域实现要求进行必要的人员配备和准备,建立软件工程过程组、系统测试组、软件质量保证组、软件配置管理组与软件配置控制委员会。③ 在全组织内进行动员、学习和培训CMM相关知识和理论;将本单位的组织、角色和术语与CMM中的相对应,完成软件开发CMM模型本地化改造;建立激励机制,鼓励软件组成员尽快地接受CMM的理念和实践推进。 五、对于军用软件质量管理实施的几点建议 军用软件成熟度模型CMM是评估软件过程和评价软件能力的重要工具,对规范军用软件承制单位按照软件开发规律进行软件开发,提高研制开发能力,保证软件质量具有非常重要的意义。我国军用软件能力水平目前大部分处在CMM初始级或可重复级阶段,GJB5000A-2008《军用软件能力成熟度模型》军用标准要求全军各部队和全国所有军用软件承制单位贯彻执行在一定程度上推进了我国军用软件过程能力的提高,但在短期内想要提升软件成熟度等级还具有一定困难。所以我们应本着长期坚持,循序渐进的工作方法,结合实际情况,制定相应的改进措施,逐步完善实施过程。 此外,我们还应结合更多的管理方法对军用软件质量管理进行完善。如加强对军用软件研制单位质量水平的审核。通过二方(顾客方,如军方)或第三方(如独立的认证机构)严格审核,可以提高军用软件研制单位对软件质量的重视;及时更新软件工程理论技术,如软件开发过程模型,软件产品的评价模型方法、质量保证方法、软件工程集成环境和工具,可靠性和安全性技术等;建立一支高水平的软件测试检验队伍,保证软件测试人员的技术水平等级不低于软件开发人员;在软件开发过程中坚持开展软件标准化、系列化、模块化设计理念,提高软件模块复用率,用以提高软件的质量和可靠性。 提高军用软件质量管理水平是一个涉及多学科多技术的综合应用系统工程,军用软件承制单位中各部门各专业只有共同努力,通力合作才能使我军电子装备软件系统开发的整体水平跨上一个新的台阶。 软件质量管理论文:软件质量管理的优化对策研究 摘要:近年来,随着我国社会经济的不断发展,我国软件技术发展速度也在不断加快,但同时我国软件技术还存在较多的问题,要想有效解决这些问题,必须加强软件质量管理,不断完善软件质量管理体系,促进软件快速交付。文章研究表明,通过软件质量管理,不仅可以促进软件开发,还可以确保软件质量。 关键词:软件;质量管理;优化对策 0引言 在软件技术快速发展和应用范围不断扩大的同时,软件复杂性也不断提升。在当前的很多软件开发企业中,软件质量管理问题开始成了关注的焦点。 1软件质量管理中存在的主要问题分析 1.1需求模糊问题 结合软件工程来说的话,软件产品的生产主要包括多个过程:第一是系统需求研究过程;第二是系统设计过程;第三是系统实现过程。但对于软件系统需求来说,往往描述不够完善,相应的软件需求调研以及研究也不够深入,没有加强对软件质量需求的管理,这样不仅会使得研发以及测试设计工作落实不到位,还会明显提升沟通成本,导致产品实现与用户需求不一致[1]。 1.2立项管理不到位问题 大量实践结果表明,通过加强立项管理,可以有效避免质量管理项目风险的产生,赋予软件项目开发深刻的意义。(1)软件项目开展。不加强深入的立项调查,以及加强项目可行性分析,落实好立项评审,则可能会导致产品需求获取不到位,软件开发产品规划出现很多问题,无法保证软件研发工作的有效开展,致使项目研发功能明显减弱,不但会导致资源浪费,还会阻碍新产品的正常[2]。(2)软件项目。如果没有加强立项管理,可能会导致成员行为涣散问题的出现。工作人员只顾自己,不顾团队利益,无法全面了解项目产品的实际开发要求与背景,也不能从根本上明确项目开发的最终目标,无法满足用户的实际软件开发需求,最终使得软件开发计划无法按期实施以及软件开发费用超支等问题出现。 1.3软件质量保证体系尚待完善 针对我国很多软件开发企业来说,往往都处于“软件质量管理”实施的最初阶段,甚至是试行阶段,很多科研制作部门对应的标准化软件质量管理体系还都不完善,甚至有一些科研部门对应的软件质量管理制度和体系还没有形成[3]。另外,一些企业虽然设立了软件质量管理的专有部门,但相应的体系文件却还不完善,需要经过大量的实践来完善。在软件开发项目研制部门质量管理普通较低的情况下,软件开发工作者的综合素质低下,也会影响软件产品的最终质量。 2软件质量管理的优化对策分析 2.1加强需求工程有效管理 在实际的软件开发当中,如果相应需求模糊,会出现需求随意变更的现象,导致时间被白白浪费。对于该问题来说,必须针对相关需求活动,加强统一化的需求管理。要在落实好软件需求开发工作的基础上加强需求管理,这样不但能够限制需求变更的实际次数,还能促进工程师对质量管理需求的深入理解。总之,软件需求开发与软件需求管理的重要性同等重要,必须实现两者的有效结合,才能保证最终产品的质量。 2.2加强软件测试流程有效管理 在软件测试的各个环节,都可能会出现一些问题,必须不断优化软件测试流程,加强对软件测试流程的有效管理。具体来说:(1)软件测试相关部门人员,必须加强需求知识学习,开展深入的需求探讨。(2)对有疑虑的需求者,研发设计工作者要做出及时而准确的解答。对于研发设计工作者也不能有效解答的问题,要让他们联系用户来有效解答。在明确需求的基础上,根据软件系统的作用以及性能,专门的测试工程师要科学合理地设计软件测试测用例,具体要结合两大方面的内容来设计:第一,针对测试工程师来说,必须结合实际需求,科学合理地编写测试用例;第二,针对测试工程师来说,要在结合实际用户反馈情况的基础上,做好分析汇总工作[4]。要大力引入和合理应用QC功能测试设备以及工具,加强对软件以及实际操作系统兼容性能的合理性测试,才能充分发挥软件测试工具使用的功能与作用,落实好软件兼容性测试工作。此外,要加强自由软件测试,适当补充软件测试用例,了解软件测试用例没有涉及的问题以及问题产生的原因;要采取定期研究和分析的方法,明确缺陷库里面存在的问题,并深入研究问题成因,进而利用测试用例来解决问题[5]。 2.3加强项目进度质量有效管理 要保证软件开发项目的顺利完成,首先必须保证软件项目质量足够好。在软件项目开始实施之前,必须保证项目开发计划足够科学、合理。如果软件开发项目计划设计人员相关工作经验足够丰富、设计能力足够强,往往可以有效保证软件开发计划的合理性与完善性,有效预见软件开发计划当中的问题,消除相关阻碍和影响因素。在软件开发项目计划设计的开始,相关人应及时组织软件质量管理人员,开展软件项目计划讨论会与评审会,并请相关技术专家、真实用户等,针对软件项目计划的科学性和合理性进行探讨,分享个人意见和看法,由专门的记录人员总结相关意见,最终形成系统化的质量记录,再以书面或者文档的形式传送给相关工作人员进行意见修改整合,确保软件项目计划的完善性。 2.4提升工作人员的综合素质 在软件开发和质量管理过程中,技术人员和管理人员是核心主体。因此,要想有效保证软件质量管理有效性,必须保证管理工作人员和技术人员的综合素质足够高。让员工全面地了解企业,正确理解自身的工作性质和要求,并不断增强自身的责任感。即使工作人员已经对工作内容很熟悉,也可能没有深入理解企业经营战略以及相应的发展规划。企业外部环境条件变化幅度比较大,企业工作人员必须及时掌握内部战略和规划变化情况,及时调整自己的工作计划和方法。对于软件质量管理人员来说,不但要主动参与到企业发展规划设计工作中,还必须及时将相关信息传达给各个部门。通常来说,企业应当定期或者不定期地开展例会,介绍企业近期情况和之后的发展规划。在掌握全体例会内容的基础上,各个部门负责人员应当再次开展部门会议,根据部门工作开展情况,做好后期工作规划调整工作,使得每位员工都掌握企业发展动态,进行自身科学合理的工作调整与规划。软件质量管理者还必须基于企业内部软件质量问题,增强创新意识,提出可以有效解决软件质量问题的措施。 3结语 综上所述,软件开发成本管理不到位、软件质量管理不到位等问题仍然存在,导致这些问题产生的主要原因是管理者管理不到位,如:软件质量管理制度不完善、随意性较强。要有效解决这些问题,必须以完善的软件质量管理体系为依据,加强软件开发的全过程监控。 软件质量管理论文:软件质量管理系统的设计与研究 摘要:将数据挖掘技术运用于软件质量管理,根据影响系统质量的属性,建立了质量管理和分析模型,并根据模型给出了系统实现的初步方案。该系统的实施,能够有效的保证软件产品的质量。 关键词:软件质量管理;数据挖掘;联机分析处理;关联规则 1 引言 随着计算机软件越来越深入地应用到社会生活的各个方面,尤其是一些关键领域,软件的规模也随之日益增大,软件的质量也越来越受到重视[1-2]。软件的质量不过关,可能会产生严重后果。目前中国软件业尚未形成规模,全国的软件企业数量不少,但是大规模软件企业聊聊无几。我国软件业竞争力低下固然有产业规模小,资金投入不足、知识产权保护不力等各方面原因,但软件产品质量不高也是一个不争的事实,它直接影响到企业的形象及其在市场上的信誉,进而影响到其生产需求,使企业存在潜在的生存危机。 目前,对于软件质量控制一般都采用ISO9000或者是CMM,通过对软件开发过程的管理来控制开发质量[3-5]。本文研究了数据挖掘技术在软件质量管理中的应用,设计了一种基于数据挖掘的软件质量管理系统。系统通过软件缺陷的数据,软件生命周期全过程中关于分析、设计、编码、测试等阶段有关人员素质、开发和管理过程的信息以及软件属性、开发机构资质和经验、目标用户评价等资料的数据库,来建立质量预测模型,发现制约质量和过程的规律,从而采取预防缺陷措施。那么就能最大限度的降低开发维护的费用,大大降低软件故障和失败的可能。 2 影响软件质量的各种因素 软件的设计开发、营销、服务与支持活动,涉及投资者、管理者、销售者、软件产品用户等各类人员及其组织。因此,需要从全面的软件质量观出发,深入分析与软件生产有关的组织、人员、活动,对软件生产过程进行模块划分,建立通用的模块化的软件生产过程模型,以识别影响软件质量的各种因素。在此基础上,构架基于过程的软件质量体系结构,提供构成软件质量系统的通用概念框架,这就在高层次上找到了满足用户的要求,使定量质量管理成为可能。同时建立通过模块化过程的质量保证以及过程网络协同运作的质量保证系统,来保证软件产品质量的质量管理方法。进而建立完善软件过程质量的质量评价体系,用软件过程能力指数评价过程质量的高低,以过程的稳定受控来保证软件产品满足规定的质量特性要求。 2.1 质量属性 软件的质量属性可分为两大类:第一类可在运行软件并观察其结果的时候进行度量,例如性能、安全性、可靠性和功能性等都属于这一类。第二类不能够在运行软件并观察其结果的时候进行度量,但可通过对开发或维护过程的观察进行度量,这一类的质量属性包括可移植性、适应性、可复用性等。 2.2 软件体系结构对软件质量的影响 软件需求确定后,软件体系架构在软件质量中会起重要作用[3],有合理的软件体系架构,可以使需求变更产生的影响变得更小。如果没有合理的体系结构,先进的编程技巧也不一定能弥补体系架构对质量的影响。 软件体系结构问题包括软件系统总体组织和全局控制、通讯协议、同步、数据存取、给设计元素分配特定功能,设计元素的组织、规模和性能,在各个设计方案间进行选择。软件体系结构的设计是从问题域到软件解空间的第一步。一些体系结构方面的问题对软件的质量属性有重大的影响。比如,模块的层次可能影响系统的可修改性;功能的划分和封装可能影响系统的可扩展;构件间的通信协议可能影响系统的效率等。从另一方面看,良好的软件体系架构并不能确保系统的功能性需求及质量需求。后阶段的设计、实现等同样可以使系统的质量发生变化甚至损坏。毕竟,软件生命周期的任何阶段都对软件质量有或大或小的影响。因此,好的软件体系结构是良好系统质量的基础。 2.3 软件过程对软件质量的影响 从质量管理模式来看,软件企业按照某种软件生命周期模型来组织软件项目或软件产品的开发。目前比较流行的有瀑布型和迭代式开发方法。瀑布型的开发方法适合小型的、需求明确的软件项目,这种模型有个根本缺陷就是没有把用户需求反映在在整个项目当中。迭代式开发方法强调软件风险管理,把项目分成一个个的开发提交阶段,把里程碑处提交的产品提交用户反馈,并将反馈信息加入到下一个阶段的软件开发当中,其本质是基于产品开发的组织方式。 长期以来,软件开发过程中需求的变化,特别是软件使用后需求的变化,一直是制约软件质量提高的“瓶颈”[4]。随着软件产品或项目规模的扩大,软件产业的兴起,软件生产的组织方式也要从面向产品的生产组织转向面向过程的组织方式,面向过程的生产是软件产品生产的主流方向,必须以面向过程的生产组织方式,对软件需求获取、设计、开发、维护服务与支持的各过程进行预防为主的过程质量控制,对产品及过程的质量全部量化。 3 数据挖掘技术 3.1 数据挖掘和联机分析处理OLAP 数据挖掘是20世纪90年代迅速兴起的一个十分活跃的研究方向。其目的在于发现大型数据集中隐含的、不为我们所知的潜在有用信息,受到了数据库、人工智能、统计学和数学等领域研究人员的广泛重视,成为继Internet之后的技术热点[5]。目前,数据挖掘在销售、金融、电信、保险、教育、政府决策和基因工程研究等许多领域都得到了成功的应用,已产生了巨大的经济效益和社会效益。数据挖掘过程一般包括三个步骤,即数据准备、数据挖掘和知识分析和获取。数据准备用于选择相关数据用于预处理,包括消除数据噪声、弥补数据缺失和解决数据冲突,然后转换成适合挖掘的形式;数据挖掘则是采用有关算法对经过清洗的数据进行分析,其结果是大量的规则;知识分析和获取用于对产生的一系列规则进行评价,并从中抽取有用的知识,以辅助决策,如图1所示。数据挖掘有分类规则挖掘、聚类规则挖掘、关联规则挖掘、转移规则挖掘、例外模式挖掘、序列模式挖掘、Web挖掘、正文挖掘、多媒体数据挖掘、空间数据挖掘和时态数据挖掘等。 联机分析处理OLAP使用多维数据模型,在数据仓库中进行一系列统计操作,使分析人员、管理人员或执行人员能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求。在企业当中得到越来越广泛的应用。 软件质量管理论文:浅谈军用软件质量管理 摘 要 本文简要介绍了军用软件特性,从软件分级管理、软件配置管理、SFRACAS三个方面探讨了如何加强军用软件的质量管理,为军用软件质量管理工作提供参考。 【关键词】军用软件 质量管理 软件配置管理 SFRACAS 随着武器装备信息化程度的不断提高,军用软件产品在武器装备上得以广泛应用,军用软件质量已经成为影响武器装备质量与安全的关键性因素之一,有必要采取措施加强军用软件的质量管理。 1 军用软件特性 军用软件是指应用于军事用途的软件。军用软件的特殊性使其开发和质量保障难度较大,具有以下特性: (1)军用软件通常要面临复杂的作战环境,可靠性、安全性要求高; (2)军用软件一般为嵌入式软件,对操作性要求较高; (3)大部分军用软件规模巨大,研制周期较长,成本较高,风险较大; (4)应用于军事用途,对开发人员、开发工具等提出较高的保密性要求。 2 军用软件质量管理措施 2.1 开展软件分级管理 军用软件应按照GJB/Z 102《软件可靠性和安全性设计准则》要求进行分级管理,按照软件失效的危险严重性等级分为A、B、C、D四个等级。其中A、B级软件失效可能导致人员死亡或严重受伤、系统报废或严重损坏,因此在软件开发的各个阶段必须开展危险性分析,降低风险。同时A级软件可能导致人员死亡或系统报废,因此必须对A级软件开展第三方测试,确保测试结果的独立性和权威性。由于军用软件的特殊性,如专业化程度更高,保密性要求高,使得第三方独立测试存在一定困难,可以考虑由军用软件承制单位进行测试,但必须由第三方组织和全程监督,必要时让军用软件用户参与进来,使测试结果更加准确有效。 2.2 开展软件配置管理 软件配置管理的对象是软件配置项。软件配置项就是在软件生命周期内各个阶段产生的各种形式的文档、程序、数据。软件配置管理目的是利用配置标识、配置控制、配置状态报告和配置审核建立和维护配置项的完整性,通过自定义三库管理策略,建立开发库、受控库和产品库,对软件配置项进行入库、访问、出库、维护、更改、等活动实施管理,以确保软件产品的正确性、完整性、可控性、可追溯性,主要包括以下四方面内容: 2.2.1 配置标识 配置标识主要包括三方面工作,一是定义项目生存周期中所建立的基线,二是识别和选择要管理的配置项,三是维护配置项标识。 2.2.2 配置控制 配置控制包括版本控制和变更控制两方面工作。软件产品为了适应不同的运行环境、不同的平台、不同用户的使用要求,导致同一软件产生或演化出不同的版本,必须进行版本控制。版本控制的目的在于对软件开发进程中文件或目录的发展过程提供有效的追踪手段,保证在需要时可回到旧版本,避免文件的丢失、修改的丢失和相互覆盖。版本控制是实现团队并行开发、提高开发效率的基础。变更管理是配置管理的一个重要组成部分,实现对需求变更及软件代码变更的高效管理。变更必须履行审批手续,首先由软件配置项负责人提交变更申请至配置管理员,再由配置管理员提交软件配置控制管理委员会进行评审,如批准及时修改并指定修改人,配置管理员将配置项检出至修改人员的开发库中进行修改,修改后经评审或确认批准后,由配置管理员将修改批准后的配置项重新入受控库(要求有版本升级记录),更新受控库状态报告;如没有批准修改或批准延后修改,配置管理员应向问题提出者提供未批准及批准延后修改的原因。当软件产品经过最终验收或交付后应提交配置管理员,入产品库。 2.2.3 配置状态报告 配置管理员通过配置管理系统收集当前基线配置项的状态,汇总形成配置状态报告,定期提交项目负责人审阅。 2.2.4 配置审核 配置审核主要是对软件开发过程进行审核,确保软件配置项正确可控,一般由质量保证人员单独执行。 2.3 建立SFRACAS SFRACAS即软件故障报告、分析和纠正措施系统,建立该系统的目的是及时报告软件发生的故障,分析软件故障产生的原因,制定纠正措施并验证其有效性,防止故障再次发生。军用软件承制单位应从软件研制开始建立SFRACAS,对故障实行闭环控制,有效地消除软件缺陷、故障,提升软件研制工作的质量。 建立SFRACAS应遵循PDCA原则,P代表计划(PLAN),D代表执行(DO),C代表检查(CHECK),A代表处理(ACTION),这四个过程循环执行,周而复始,促使军用软件质量不断改进。SFRACAS具体工作流程如下: 2.3.1 故障报告 软件在研制和使用阶段发生的故障,应由相关部门负责信息收集的人员予以及时、完整的收集,编制故障报告,并在规定的时间内向规定的管理组织报告。 2.3.2 故障核实 质量保证部门应组织有关人员对报告的故障内容都应按发生故障时的实际情况进行核实,故障核实可通过重现故障模式或依靠故障证据来完成。对缺乏证据的应给予说明。 2.3.3 故障分析 在软件的故障得到核实后,故障责任单位应尽快组织相关人员对故障进行分析,以确定故障原因,并编制故障分析报告。 2.3.4 故障纠正 故障原因确定后,故障责任单位的有关部门应根据对故障的分析结论,研究并制定纠正措施,编制纠正措施实施报告,并提交规定的管理组织审批确认,再下发有关部门组织实施。 2.3.5 纠正措施效果的验证 纠正措施实施后,有关部门应通过试验、试用等方法证实纠正措施的有效性,如达不到预期效果,则需复查故障的原因或进一步采取其它的纠正措施,直至故障彻底解决。最终,将确定的纠正措施及其实施效果提交给规定的管理组织。 2.3.6 故障信息管理 故障解决后,软件承制单位应统一管理保存全部故障信息报告及有关文档资料,并建立故障信息库,供有关人员查询。 3 结束语 对军用软件的质量管理,是当今武器装备质量管理的重要组成部分。本文简要介绍了军用软件特性,从软件分级管理、软件配置管理、SFRACAS三个方面探讨了如何加强军用软件的质量管理,为军用软件质量管理工作提供参考。 软件质量管理论文:软件工程与软件质量管理浅析 【摘要】本文首先从面向对象技术和重用的角度对软件工程进行了分析,然后结合现有的软件工程开发技术及管理成果,对提高软件生产效率的开发方法进行了进一步的探讨。 【关键词】软件工程 软件质量 质量管理 目前我国软件开发行业中拥有大量优秀的软件开发人员,虽然如此,但是我国企业的软件开发管理却始终处于一种比较低的水平上,近年来随着国内工业企业逐渐与国际标准相接轨,纷纷进行国际标准化质量体系认证,多数软件开发企业已经开始意识到软件质量管理的重要性,开始进行有关软件质量体系的标准化认证等工作,鉴于此,本文主要针对软件工程与软件质量管理领域的一些问题展开分析。 一、软件工程分析 (一)面向对象的开发方法 最终产品的特性与结构主要由开发方法所决定,在工业化过程中逐渐将软件工程技术纳入到规模化生产中,在系统开发过程中各个阶段之间的过渡变得更加平滑,系统模型也更容易维护,已有成果得到了最大程度的重用,这些目标的实现皆得益于对面向对象技术的应用。很多问题的存在利用传统的功能/数据方法根本不能得到有效解决,首先,可以利用功能/数据将系统分解成数据和功能两部分,功能部分体现出主动的色彩,伴随着相应的行为,数据部分则体现出了被动的色彩,被其不同的行为所利用;其次,人们利用功能/数据方法开发系统和软件时,不同系统和不同软件之间始终存在一些差异,一般来说是不能利用现实生活中的实体建立系统模型的,需要将实体中的功能及数据提取出来;最后,继承是面向对象技术的主要特点之一,从最大程度上利用现有的软件产品。因此,在一些大型系统开发过程中应对面向对象的技术进行有效的应用。 (二)重用 在系统开发过程中都希望可以对已有的成果进行尽可能的应用,重用可以使生产效率得到最大程度的提高,软件工程中解决危机问题通常会使用重用的方法,但是传统软件工程开发方法并不能对已有软件产品进行尽可能的应用。重用软件代码在工作中比较常见,对于生产效率的提高非常有用,但是从软件工程领域来看,解决问题的方式并不唯一,从软件开发的角度上来看,会从更为广泛的范围内对重用技术进行应用。此外,文档的重用也比较常见,不管是开发阶段还是维护阶段,通常重用文档的方式存在很多不便,加上格式的重用率比较高,因此利用面向对象的技术可以为其提供较大帮助,为重用事务的分配提供了良好的解决方法。 二、软件质量管理分析 软件质量管理领域已经提出了质量工作的相关特征,在全公司范围内展开质量控制及监督等工作,组织相关人员参加业务培训和教育,从全国范围内促进质量的提高,具体来说起其内容主要涉及到与人、机构有关的内容,要想提高质量就要与人发生关系,质量管理不能脱离人而存在。现阶段很多企业都专门设置了质量管理部门,这意味着现在很多企业领导者开始意识到了质量管理的重要性,但是这些企业对质量管理的认识也只停留在了这些部门上,企业中其他部门的人员都认为质量管理就是这些部门的事情,跟自己无关。而事实上质量的提高与企业中所有员工都有着必然的联系,企业中所有的员工都会对质量的提高起到或多或少的作用,而质量管理部门设置的目的在于针对质量的提高进行审查与监督,并展开质量培训,特别是最高管理者,只有这些人了解了质量管理的重要性,才能对质量管理措施进行贯彻落实。全面质量管理作为保证产品质量的一项重要工作,企业应将质量作为主要目标,所有企业活动都要围绕质量的提高进行。 现在我国多数企业已经将全面质量管理作为企业内部的主要管理模式,其内容主要包括生产、管理等方面,体现了效率性、科学性等一系列特点。之所以要在企业中进行全面质量管理,其主要目的在于将生产中存在的缺陷消除,这些缺陷主要是由人工和管理两方面原因导致的,其中,由于人工引起的缺陷比较容易消除,只要由工人在生产过程中加以注意就能使质量得到提高,并注意工人的培训,认识到缺陷产生的原因和解决的方法。因为管理而产生的缺陷往往是不容易解决的,因为这些缺陷往往是不易察觉的,在管理上形成了交叠,加上软件产品测试很难将方方面面考虑到,其中难免存在着一些隐藏的缺陷,所以管理制度的建立对于消除这些缺陷具有重要意义,以达到提高质量的目的。 三、结语 综上所述,近年来随着科学技术水平的快速发展,计算机的应用领域开始不断扩大,这种情况下软件系统开发也显得越来越复杂,很容易出现出现“软件危机”,为了对软件可维护性差、无法完成软件进度等问题进行解决,软件工程学科由此产生。然而开始时人们因为过分重视软件工程技术,忽视了质量管理的重要性,所以有关软件工程管理的研究并不多,本文主要基于这一方向展开了分析,供大家参考。 软件质量管理论文:浅谈航空机载软件质量管理过程的三性 摘要:通过参与机载软件研制项目的研发过程,并对机载软件全生命周期的质量管理过程进行研究和分析,从中提炼出机载软件在其生命周期过程(本文开发生命周期过程指从计划,到需求捕获和确认,经设计,到编码集成直至交付的过程)中的质量管理三个基本特性(完整性、符合性和可追溯性),同时通过对实际状态的对比分析和研究,针对机载软件质量管理的三个基本特性的意义和作用,提出了机载软件质量管理的三个基本特性在其生命周期质量管理过程中的实际应用,强调使用过程方法进行机载软件质量管理工作,以确保机载软件质量管理的系统性、根本性地全面可持续开展,继而确保机载软件在开发生命周期过程中满足相关要求,最终确保按照生命周期过程开发和生产的航空机载产品满足客户和适航的要求,最终确保产品的交付和盈利,争取更多的市场份额。 关键词:质量管理;完整性;符合性;可追溯性;适航;机载软件 一、前言 目前中国国内航空机载软件的自主研发起步比较晚,而大部分参与的公司/人员,由于之前质量管理的经验,形成一些固定的质量管理思维。随着国内民用航空产品市场的增加和国家对民用航空产品的重视,以及机载软件的技术日益发展成熟,我们需要更加重视航空机载软件质量管理的研究和分析,确保航空机载软件满足客户和适航的要求。航空机载软件质量管理相关的基础和标准,不管是国际航空标准AS9100,还是一些工业标准(包括DO-178B),以及一些已经的适航标准(包括Order8110.49)等等,更加关注产品在计划、设计、生产直至交付的所有节点中的每个过程,注重质量管理过程体系和程序的建立;按照建立的体系和程序执行相关过程,强调所有过程进行记录并保证可追溯性。笔者通过对航空机载软件生命周期研发过程质量管理的研究,包括AS9100、适航法规、先进的工业标准等进行研究,对实际质量管理状态进行总结,提炼出质量管理的三个基本特性――完整性、符合性、可追溯性,就航空机载软件生命周期过程中如何贯彻和应用这三个基本特性进行了浅显的分析,确保航空机载软件的交付满足客户及适航要求。以下内容是个人就质量管理的三个基本特性的概念及应用进行浅显的论述。 二、质量管理三个基本特性的概念 要想在机载软件的生命周期内贯彻质量管理的三个基本特性,首先需要了解三个特性的基本概念,只有对其概念和意义的理解,才能更好地在生命周期过程中应用和贯彻这三个基本特性。 1.完整性,指应确保产品生命周期过程中质量管理体系的完整覆盖。完整性是质量管理的基础,如果质量管理体系不能完全覆盖所有操作过程,也就谈不上质量管理。完整性也可以总结为“写我所做”; 2.符合性,指在设计和制造以及交付过程的所有操作应符合相应的文件/程序、符合相应的作业指导书以及产品符合经批准的设计和工艺。符合性是质量管理的主体,也是质量管理的执行过程。符合性可以总结为“做我所写”; 3.可追溯性,即应将所有过程中产生的数据进行相应的记录,确保在发生不符合时,能获得相应的数据分析的支持。可追溯性是质量管理的反馈,也是质量管理过程中持续改进的必备。可追溯性可以总结为“记我所做”。 三、理解和应用 可以将质量管理的三个基本特性总结为质量管理中的三句话:写我所做,做我所写,记我所做。也通过这三句话,可以清晰的发现这个三个基本特性涵盖了航空机载软件质量管理的全部过程和要点。以下内容就笔者在现有质量管理状态分析的基础上,分别就这三个特性如何应用,进行简单的阐述: 1.完整性 完整性,作为质量管理的基础,首要任务是是建立完整覆盖顾客要求、法律法规的质量管理体系。如何建立?民航产业有自己行业的质量标准――AS9100,按AS9100的条款,建立质量管理体系,形成质量管理体系框架。对于航空机载软件来说,仅仅满足AS9100的要求是不够的。在质量管理体系的建设中,必须同时要考虑适航规章的相关要求,包括DO-178B、Order8110.49。笔者认为以下图形象地形容AS9100和适航标准之于质量管理体系之间的关系: 图1 质量管理体系和AS9100及适航要求三者间的关系图 根据实际参与项目预投产质量管理体系的适航审定经验以及实际参与项目的开发经验,可以使用符合性矩阵分析的方法,通过建立程序和AS/9100及适航标准三者之间的符合性矩阵,一方面明确AS9100和相关适航标准的各方面的要求,一方面在矩阵中可以明显地看出当前质量管理体系完整性状态。下表为方法中采用的简易的矩阵表: 注1:由于篇幅有限,只能简单列出表头,其中横行中可以列出AS9100条款号;左侧纵列可以列出相关适航条款要求,在表的右侧某一栏中可以列出体系程序的名称。表格可以根据条款的详细程度进行调整;表格因人而异,可调整以适合本企业的相关要求。 注2:对应矩阵中,可以采用标志方式,如完全满足,用表示;如果AS9100条例满足,但是不满足适航要求,用表示;如AS9100条例不满足,但是适航要求满足,用表示; 随着适航标准不断更新以及产品研发经验的积累,公司同样需要不断改善和持续改进体系文件以切实满足质量管理的完整性要求,如DO-178B升级为DO-178C,则公司应针对升级前后版本识别,确保质量管理的动态完整性。完整性,是质量管理过程的基础,也是前提,只有确保质量管理中体系文件/程序的完整覆盖,才能有效保证质量管理的实施,才能确保企业有效率、有组织的进行。 2.符合性 符合性,之于完整性和可追溯性来说,起承上启下的作用。为确保符合性,首要任务是建立满足符合性的方法。日本质量大师石川馨认为:“当引进某种做事的方法时,很自然要考虑这种方法是否合适。通常我们根据过去的结果与经验或传统的方法做出决策。适当的评估将使这种决策变得更加有效,同时工作过程中的数据对于评估工作来说也是至关重要的。”对应质量行业中老话“不是最先进的方法就是最佳的方法,选择最合适的方法才是最佳的方法”。对于一个企业的质量人来说,应该清晰自身企业所处的规模、阶段,并选择相应的方法以确保符合性。符合性,是PDCA过程方法最重要的环节。笔者个人觉得对于一个企业来说,简要的操作流程可以按照如下流程进行: 图2 符合性实施流程图 注:对于任何产品来说,数据的积累是产品优化,行业的发展的基础。 结合上述流程图,以机载软件生命周期过程中的研发过程为例,具体操作可以参考如下: 针对机载软件研发过程,利用电子检查单(peer review)方式进行过程把关。 对各个层次的人员进行相关业务知识方面培训,要言明使用检查单的意义和作用。 建立每个过程作业指导书,找出每个过程的关键要素,将关键要素导入到电子数据库中。 依据检查单内容,对实际项目研发过程进行评审和检查,将每个关键要素的检查结果导入数据库。 以数据库为基础,针对检查结果中出现的问题分析,进行相关管理过程和/或相关产品设计构型进行改正和/或预防。 注:实现数据库与检查单相连接,通过在数据库中输入关键字,使其自动生成检查单;一方面减少不同素质的人员造成检查单内容的差异,另一方面有利于人员更专注于产品检查和改进的本身,提高执行效率。 符合性,是一个持续改进螺旋过程,是建立在公司的质量管理基础上,逐步的改善,根据机载软件的不同阶段选择相应方法以确保符合性。 3.可追溯性 对于机载软件来说,可追溯性的意义在于验证完整性和符合性,另外也在于后续过程的软件维护和升级,以及航线过程中如果发现问题,可以及时排查出问题所在,找到根本原因。机载软件的配置管理过程是确保可追溯性的前提。在DO-178B和AS9100中可以查询有关配置管理的规定,根据AS9100要求和适航要求以及DO-178B建立配置管理程序。在机载软件的配置管理过程中, 首先需要针对机载软件相关阶段建立配置基线,包括需求基线,设计基线; 针对所有需求、源代码、目标代码建立追溯矩阵; 如果机载软件已经建立配置基线,其中的任何更改,都需要按照配置管理程序(计划)的更改控制流程实施更改; 按要求定期进行配置审核,并编制配置管理报告; 按照加载规程实施机载软件加载前环境确认,并填写加载记录。 现如今各个企业更加重视信息化管理,在实际工作过程中,不断引进新的工具软件,如对于机载软件需求的管理,一般会采用DOORs软件进行管理。未来的信息化系统应该更是一个高度集成的信息化平台,能够实现简单输入自动实现,容易检索等等,给员工工作带来很大的便捷性,降低了人为错误,进一步提高了工作效率。而所谓高度化集成的信息平台,个人觉得可以通过建立不同的模块,然后在模块后台实现数据库支持。以航空机载软件的几大过程为例,包括计划过程,,需求过程,设计过程,编码过程过程,供应商管理过程,建立相应的模块,在各个模块之间共享同一个数据库;对于每个模块之间再细分子过程,为每个子过程建立窗口。高度集成化信息平台能够将一个机载软件完整生命周期所有信息记录在同一平台上实施分类保存,可以通过菜单拉取机载软件配置项,了解其当前状态,链接到供应商管理,进一步了解供应商的需求和编码状态。 可追溯性,是质量管理过程的体现,只有实际工作中进行了相应的记录和标识,才能确保机载软件的可追溯性。也才能真正确保机载软件产品满足初始适航和持续适航能力。可追溯性确保了质量管理真正的实现。 四、三个基本特性之间的关联 三性,用综合性的话语来描述:针对航空机载软件的每个过程,按照AS9100/适航要求建立完善的机载软件质量管理体系程序和方法以及计划;每个过程的操作按照既定的程序进行,做好相关记录。完整性、符合性、可追溯性,用三句话概括他们的关系:写我所做,做我所写,记我所做。实际质量管理过程中,却不能将这三个特性割裂开来对待。在实际操作中,完整性是质量管理的必备因素,充分条件,只有满足了完整性,才能确保符合性和可追溯性的实现;符合性是质量管理过程的主体,满足了符合性,才能体现了质量管理完整性的同时能确保质量管理的可追溯性;可追溯性是质量管理的必要条件,可追溯性的实现才能体现完整性和符合性的实现。三者之间密不可分,环环相扣。当三性中有一点不满足要求,其他两性也就不能满足要求,进一步说明质量管理失控。 在实际机载软件的需求和设计编码中,只有确保各项活动满足质量管理的三个基本特性――完整性、符合性、可追溯性,才能实现质量的过程方法管理,才能充分说明质量管理的完善有效,才能真正确保航空机载软件满足系统功能和适航要求,最终确保产品满足客户的要求。 五、结语 对于机载软件来说,实现其功能和运行已非难事,难点是如何使航空机载软件在满足安全的情况,实现成本降低,技术性能提高,以持续满足客户和适航要求,最终获得更高市场份额。相信通过满足质量管理的三性:从小处来看,可以培训企业所有员工的质量意识,在航空机载软件研发生命周期中更注重过程的输入和输出以及过程活动,降低了研发的成本;从大处来看,也使得缩小与国际先进航空研发企业的思想和流程上的差距,使企业有更多精力投入产品的技术研发和创新过程,以进一步缩小与其之间的技术差距。 笔者清楚,就单单质量管理本身来说,要想建立一套行之有效的质量过程管理方法,并实际应用于企业,为企业带来益处,并非一朝一夕,需要很长的路要走;笔者更清楚,质量管理,受制于产品研发技术,单单发展好质量管理流程,并不能带来根本性地变化。要想真正实现中国自主研发的民航产品进入市场,甚至走出国门,需要从技术、管理、人才等各个方面着手进行循序渐进的改善。套用屈原前辈的一句话“路漫漫其修远兮,吾将上下而求索”。 软件质量管理论文:基于质量管理体系和CMMI的气象水文软件质量控制方法浅析 摘 要:论文针对气象水文软件开发中存在的问题,分析了国内外常用的软件质量控制方法以及它们所存在的问题,提出了将质量管理体系和CMMI相结合的质量控制方法,建立了一种新的软件质量控制模型,为全面提升气象水文软件的质量提供新的思路。 关键词:软件质量;质量管理体系;CMMI;GJB9001B-2009;质量控制模型 软件在装备系统的研发过程中起着至关重要的作用,软件产品的质量已逐步成为军队信息化建设的核心,软件质量关系到武器装备系统的生命,关系到军队信息化建设的整体水平,一旦软件失效,就可能导致整套装备系统的失效,甚至导致战争的失败。目前,软件在研发过程中存在诸多问题,导致软件的质量和可靠性远不如人意,特别是与硬件的可靠性相比,软件的可靠性一般要低一个数量级[1]。 1 软件开发中存在的问题 (1)装备系统研发软硬件管理不均衡,过分强调硬件。武器装备的研发是一个非常复杂的系统工程,涉及到技术和管理的方方面面,而且其各个因素又是相互关联和制约,不均衡的过分强调某几个方面都是不科学的。而现状是系统的研发过分强调硬件的重要性,软件只是被当做硬件的一个附件来对待,未作为产品列入装备系统计划和技术配套表。 (2)总体单位不抓配套单位分系统软件的质量,监控力度不够。在软件产品的开发中不遵循软件工程的要求,而且武器装备系统的总体单位只抓本单位开发的软件质量,对配套单位分系统软件的开发过程监控不力,对配套单位交付给总体单位的软件普遍不进行软件验收测试和软件验收评审。 (3)软件设计文档的编制不规范,不符合国军标要求。编制时缺少文档化的过程描述,尤其是缺少工作文档、风险管理文档和工作量统计文档,而且文档编制水平和质量参差不齐。特别严重的是大多数单位的文档是在软件编程完成后补写的,失去了以文档指导软件实现的作用。 (4)高层管理者对软件管理不够重视,软件配置管理不到位。管理要从高层做起,但是多数高层却忽略了管理的重要性,有的软件开发组未设配置管理员,有的单位对配置管理的概念(如对基线标识和配置控制等)模糊,对软件开发库、受控库的设置与管理不当,致使软件在出厂前基本不受控。 (5)对软件测试的概念和方法认识模糊,缺乏对过程和产品进行测试。软件开发测试人员和质量控制人员之间缺乏对对方工作的基本认知,双方难以沟通,阻碍了研发工作的顺利开展。部分单位对第三方测试存有疑虑:担心泄密,难以保护知识产权,或担心经费不足和增加工作量延误工程进度。 上述问题是装备研发中普遍存在的现象,亟待改进。国内外的经验说明,为了解决上述问题,最根本的一条是必须“树立软件产品的观念”和“用软件工程方法组织软件开发”[2],并按照软件工程方法的基本原则不断改进软件开发过程。现在国内比较常用的控制软件质量的方法是质量管理体系法,而国外比较流行的是运用CMMI(Capability Maturity Model Integration,即能力成熟度模型集成)来控制软件的质量。 2 软件质量控制的常用方法及缺陷 2.1 军用软件研制质量控制的一般做法及缺陷 我国一直采用质量管理体系中全面质量管理的原则来控制军用软件的质量。按照全面质量管理的观点,“产品质量是设计、生产出来的”,关注软件开发、研制的过程,通过强调过程模式,将组织内所有的工作定义为一个个明确的过程来进行质量保证和评估,使影响软件产品质量的因素在产品形成的全过程中始终处于受控状态,以此来提高其使用的可靠性、安全性,突出的把持续改进的过程作为提高质量管理体系水平的重要手段。 目前,军用软件研制质量控制的整套模型源于GJB9001B-2009,该国军标适用面广,可面向于硬件、软件、流程性材料和服务四大产品[3],主要强调的是硬件产品的质量控制,对军用软件的适用性稍弱,没有针对软件产品及其研发的特点展开说明,尤其是在型号的不断改进,装备状态的多次更改之后,对军用软件的配置管理等方面的更高层次的问题,缺乏行之有效的解决方法,在实施该标准时无法引起高层领导的重视,没有对质量提出更高的要求,忽略了该标准反复强调的“质量管理必须坚持持续进行质量改进”,导致研制单位无法拥有一套适用的质量管理体系。 2.2 国外软件研制质量控制的一般做法及缺陷 CMM(Capability Maturity Model for Software,即软件能力成熟度模型)是对组织软件过程能力的描述[4]。CMM 中最为核心的思想是:只有好的过程才能造就好的结果。它侧重于软件开发过程的管理及软件工程能力的改进与评估,是一种高效的管理标准,有助于最大程度地降低成本,提高产品的质量和用户满意度。CMMI是CMM模型的最新版本,它把软件开发视为一个过程,并根据这一原则对软件的研发和维护进行过程监管,以使其更加科学化、规范化。CMMI项目为军工界和政府部门提供了一个集成的产品集,其主要目的是消除不同模型之间的不一致和重复性,降低基于模型的改善成本。CMMI将以更加系统和一致的框架来指导组织改善软件过程,提高软件产品的研发、获取和维护能力。 CMMI是目前国际上最流行、最实用的一种软件质量控制模型,强调各个方面的均衡发展,注重基于模型的、循序渐进的过程改进,可以帮助软件企业有效地管理软件过程,但是CMMI也存在缺陷,CMMI本身是国外的体系,是基于法治的体系,而我国强调的是人治的氛围,这种文化性问题是CMMI能否适用于我军的关键;实施该体系时单位对于软件研发人员缺少必要的有关质量管理方面的培训,导致软件研制人员与质量管理人员难以沟通,阻碍了研发工作的进度;CMMI只强调关键过程域,无法保证软件产品能被成功的研制出来。 3 基于质量管理体系和CMMI的气象水文软件质量控制方法 3.1 质量管理体系与CMMI的共同性 质量管理体系与CMMI面向的都是组织和软件产品的质量问题,都是以现代质量管理理念为基础,充分体现了质量管理、质量保证、全面质量控制、全面质量检验等思想。它们都非常关注产品的质量,都以相同的质量原理为基础,都强调通过良好的过程来保证产品的质量,都在强调外部沟通的同时强调内部沟通,都以组织的领导者和管理者作为最关键的成功条件,都采用PCDA方法,都重视规范化、活动规程和必要的文档与记录。 3.2 质量管理体系与CMMI的差异性 作为质量管理的标准性文件,CMMI与GJB 9001B是有着明显的差别的。GJB 9001B是一个适用于各类产品的通用型标准,主要是针对制造业制定的,而CMMI是专门针对软件开发设计的,可以帮助软件企业有效地管理软件过程;GJB 9001B强调完整的组织体系,可以用来建立符合ISO9000管理的组织管理,而CMMI本身对管理体系没有明确要求,默认组织体系是有效的、健全的;GJB 9001B评估的目的是要认证组织是否建立了有效的质量管理体系,为此给出比较简明、科学、原则性的要求,评估出结论合格与否,而CMMI则用于评估组织的软件能力的改善,确定采购风险,或找出软件过程的强项和弱项,明确改进途径,为此给出良好软件过程的详细描述和能力提高的简明科学途径。 3.3 基于质量管理体系和CMMI的气象水文软件质量控制模型的建立 GJB 9001B鼓励在建立、实施质量管理体系以及改进其有效性时采用过程方法,通过满足顾客要求,增强顾客满意,而CMMI的本质是通过对软件研制过程中关键过程域的精确定义,来使软件研制从一个不确定的“黑箱”操作过程,变成一个各步骤可视的、可对偏差随时控制的“透明”操作过程。根据质量管理体系和CMMI的相关理念和技术要求设计出适用于气象水文软件的质量控制模型。 质量控制是一个循序渐进的过程,该模型将质量控制归纳成七个阶段:(1)明确准备目标、项目范围和资源需求,依据CMMI的相关标准对软件的现状进行评估,定义相应的目标和指导原则,为下一阶段准备好相应的评估资料;(2)根据客户的要求和技术指标制定软件的开发流程,该阶段表达了组织层上下同心、拟定目标和愿望的状态,这是对将来有一个共同思考的过程;(3)在新的开发流程下引入GJB 9001B质量管理体系的相关要求,对组织当前的状态进行判决,及时向组织传达发现的情况和问题,并根据GJB 9001B的要求,确定需要进一步改进的方向;(4)根据上述要求拟定软件管理流程,确定关键业务主题、各团队的角色和职责、需要进行的活动以及改进进度安排;(5)在此流程的基础上导入成熟的开发和管理理论及方法,并根据客户的要求建立相应的规则、度量方法、模板,作为改进和实施的基础;(6)按层次和相关要求编写各层次文件,根据国军标的要求编写相应的工作文档、风险管理文档以及工作量统计文档;(7)依据软件运行的实际情况改进流程,在这个过程中组织的所有人员确定需要改进的目标,分析现有的工作步骤、客户需求和存在的问题,给出改进方案,验证并更新实施流程,在提高技能、绩效的同时,也提高软件的质量。质量控制是一个总结、再学习和提高的过程,通过不断的改进建立下一轮工作的更高目标,制定组织进一步工作的计划,只有通过这种反复的评估改进才能不断提高软件质量。 4 结束语 在信息化高速发展的今天,要高质量、高效率地开发出复杂的大型软件系统已不再是单个质量控制方法所能完成的任务,只有通过融合多种方法的优点推出一种新的质量控制模型,才能保证气象水文软件产品的质量和可靠性。本模型旨在GJB 9001B的基础上结合CMMI的理念和技术要求,把GJB 9001B作为CMMI的保障,而把CMMI作为GJB 9001B的“使能器”,两者相互促进,全面提升气象水文软件的质量及服务能力,进而提高武器装备软件的质量。 软件质量管理论文:仿真训练软件质量管理中的“三库”建设研究与实践 摘 要 为了加强仿真训练软件开发过程中状态变化的控制,针对仿真训练软件质量管理中存在的问题,在软件开发过程中建立“三库”,并通过“三库”的有效管理实现配置管理的部分功能,达到提高仿真训练软件质量和质量管理水平的目的。 【关键词】仿真训练 软件 质量管理 三库 1 引言 我国信息化建设突飞猛进的发展,给我们的工作和生活带来很多便捷。无论是在学校、军营,还是机关、农村,信息化覆盖率越来越高,让人们真切感受到科技带来的独特魅力,人们可以足不出户就能体验到科技给予我们的全新的感受。科技让我们距离世界很近;科技让我们工作或生活更加轻松;科技让我们颠覆过去的思维及工作、生活方式。 信息化建设如火似荼地发展,同时也催生了仿真训练软件的数量越来越多、规模越来越大、结构越来越复杂,软件质量对仿真训练软件可靠性的制约也日益凸显。为了满足日益提高的仿真训练软件质量要求,确保软件质量和可靠性,做好软件质量管控工作具有十分重要的意义。 作为软件质量管理的核心内容,配置管理是可以控制软件变化的科学管理。软件配置管理的主要内容集中在软件的版本控制、变更控制和过程支持。其中,设立“三库”,即开发库、受控库、产品库,对软件技术状态变更和版本控制的管理更是其最主要、最核心的问题,也是配置管理的重点。在军用仿真训练软件开发过程中,通过对软件“三库”的有效管理来达到控制状态的变化和标识的情况,并严格履行软件产品的出入库规定,从而实现对软件的质量监督。 2 “三库”的含义 “三库”是指软件开发库、软件受控库和软件产品库。“三库”的建立是配置管理当中的一个重点内容,不仅可以对软件开发过程中软件状态的变化进行控制,还可以对软件配置项进行有效的标识,同时又可以避免复杂的配置管理技术给开发成本造成太大的影响。 GJB 5000A《军用软件能力成熟度模型》、GJB 5235《军用软件配置管理》和GJB5716-2006《军用软件开发库、受控库和产品库通用要求》都有对“三库”建设的相关要求,其中,GJB5716-2006中给出“三库”的定义分别是: (1)软件开发库(software development library)是指在软件生存周期中,存放软件配置项的集合。 (2)软件受控库(software controlled library)是指在软件生存周期中,存放已通过测试或评审且作为阶段性产品的软件配置项的集合。 (3)软件产品库(software product library)是指在软件生存周期中,存放已定型(鉴定)且供交付、生产、检验验收的软件配置项的集合。 通俗一点的解释“三库”的含义是: 软件开发库就是在软件生存周期的某一个阶段期间,存放于该阶段软件开发工作有关的计算机可读信息和人工可读信息的库;在软件生存周期的某一个阶段结束时,开发库内的内容经过评审通过后,就可以进入到软件受控库中;在软件生存周期的组装与系统测试阶段结束后,形成的可以直接交付给用户的最终产品或可以在现场安装的软件就存放在产品库中。 3 仿真训练软件质量管理中存在的问题 目前,仿真训练软件的质量管理工作还没有采取有效的管理办法和措施,软件质量还远不能满足软件开发的要求,软件开发成本与进度计划难以准确估计,对软件产品质量的评价还缺乏标准和手段。归纳起来,军用仿真训练软件质量管理中存在的问题具体表现为以下4个方面: 3.1 软件项目质量管理意识不强 现阶段,大部分仿真训练软件开发研制单位质量管理意识不强,在软件开发过程中没有按照质量管理体系要求行之有效的管理和监督。在软件开发过程中,缺少质量保证大纲等质量保证文件和阶段性的评审制度,软件的质量保证工作基本上是由软件开发者自身完成的,而实践已经证明,采用这种方法开发的软件是无法保证软件的质量的。 3.2 缺乏软件技术状态管理和控制 在仿真训练软件开发过程中,软件的技术状态非常多,软件的一条语句或一个函数的修改都可能造成软件部分功能无法正常运行,甚至整个软件瘫痪。所以,一旦软件出现故障,由于没有对软件的技术状态实施管理和控制,很难快速准确的找出故障原因,严重的情况下,还会造成更大的损失,直接影响整个军用仿真训练软件的质量。 3.3 软件测试不够充分 大多数仿真训练软件开发单位没有设立独立的软件测试部门和专门的软件测试人员,而是在软件开发的各个阶段由开发人员采取自己设计、自己编程、自己测试、自己维护的方式来完成的。由于软件开发人员任务重,他们在测试上不可能花费很多时间和精力,所以很容易把软件测试环节变成只是走过场、讲形式,导致测试的作用和可信度大大降低,一些隐含的错误和缺陷被遗留到软件交付之后的运行阶段。 3.4 对软件文档的重视程度不够 软件文档是软件的一个重要组成部分,是保证软件质量的一个重要手段,它关系着整个软件的有效运行和维护。在军用仿真训练软件开发过程中,开发人员没有充分认识到文档在软件开发过程中的作用,所以导致开发人员对文档编制不感兴趣,编制不及时;软件文档内容不完整,与开发过程不一致,格式不规范;文档审核和管理不够严格,未经审批可随意更改文档内容等问题,最后造成软件的透明度低,软件可维护性和可移植性不好,给软件研制和维护带来很多困难和问题。 4 “三库”在仿真训练软件开发过程中的应用 在仿真训练软件的开发过程中,软件的技术状态是在不断变化的,软件在各个阶段的配置项内容是不相同的,软件的版本也是存在更新的情况。因此,对软件技术状态的管理和控制是保证军用仿真训练软件质量管理的关键。“三库”质量管理是软件质量保证的一个非常重要的手段,也是软件产品形成过程技术状态管理的核心任务。 4.1 建立“三库” 按照相应国军标的要求,在仿真训练软件生存周期中,要建立软件“三库”,通过对“三库”的集中管理,实现对软件开发过程中状态变化的控制和对软件配置项的正确有效的标识,以确保仿真训练软件产品的正确性、完整性、可控性、可追溯性。 4.1.1 开发库 从技术状态形成过程、有效控制和管理的角度看,在仿真训练软件完成详细设计阶段工作之后建立软件开发库。此时将未进行测试和评审的软件和软件相关设计文档等软件配置项存放到开发库中进行集中管理,并由软件开发项目组或分系统负责。 4.1.2 受控库 软件受控库反映的是软件研制开发过程的轨迹。在仿真训练软件形成过程初、中期等阶段建立软件受控库,对通过测试和评审,确认正确的软件版本、完整的软件文档材料,以及其它相关软件配置项,采用软件受控库管理,由系统总体负责管理。 4.1.3 产品库 在仿真训练软件研制开发的末期建立软件产品库,对通过综合测试(验收)的软件、完整的软件文档材料、软件生命周期更改的版本,以及开发研制该软件产品的相关的成套软件(包括开发环境和开发工具)集中控制管理,由研制单位质量管理部门负责。 4.2 软件开发库的管理 软件开发库建立在承担仿真训练软件开发任务的项目组,由项目组质量管理人员或分系统负责人(无分系统的由项目负责人)负责日常管理和维护。软件开发库中管理的内容包括软件开发、测试阶段对应的文档和“初始阶段”的软件。 4.2.1软件开发库入库的内容 (1)按照对应国军标要求,软件在开发过程中规定的所有系统的和阶段设计文档,包括:软件开发计划、软件技术规格书、软件需求规格说明书、接口需求规格说明书、概要设计说明、详细设计说明、接口设计文档、软件测试计划、软件测试说明、软件测试报告、软件配置管理计划等。 (2)软件开发过程中各阶段所产生的计算机软件部件、计算机软件单元及其源程序代码、目标代码和数据定义文档,软件开发过程中各阶段进行软件测试的测试用例和测试结果等。 4.2.2 软件开发库的控制要求 项目组首先根据开发软件的规模,将符合项目标识、版本等软件配置要求的软件配置项入库控制,在此基础上对开发库的每一项内容(配置项)进行标识,由专人负责记录开发库中每一个配置项的位置、标识和入库时间。如果有某个配置项需要进行修改,则需要按权限实施更改,并必须通过项目负责人的审批。在进行更改操作的同时还下需要填写《软件开发库更改记录表》以记录开发库中的有关更改信息,并保存更改前的软件或文档的标识和版本。出库控制应按规定的权限出库,记录有关出库的出库项、软件提取人和出库时间等信息。 4.3 软件受控库的管理 在仿真训练软件测试工作开始之前需要对开发库中的软件配置项进行确认工作,然后从中提取被测软件和相应文档进行测试。通过认可的测试或评审的软件配置项就可以转库到软件受控库。 4.3.1 软件受控库入库的内容 软件受控库入库的内容必须是通过测评或评审的软件配置项,以及是仿真训练软件开发单位或用户认可的内容。具体内容包括:可行性研究报告、项目开发计划、软件需求说明、概要设计说明、详细设计说明数据库设计说明、软件测试计划、软件测试分析报告、用户手册、操作手册、软件维护手册、项目总结报告、项目验收报告、质量要求文档(质量保证大纲、标准化大纲、可靠性和维修性保证大纲等)、软件(源程序、目标代码、编译成目标代码的详细步骤、可执行程序和写入可编程器件的程序等)、软件设计更改报告及审核文档,以及所有文档的电子版本。 4.3.2 受控库的控制要求 仿真训练软件的受控库控制要求要比开发库更为严格,受控库的管理控制由承研单位的质量管理部门负责,软件开发人员受控使用。 软件开发库中通过测评和审核的软件配置项必须转入到受控库进行管理,每次访问需按权限,并要通过项目负责人和质量管理部门负责人联合审批才可获得批准,同时还要记录访问人 、访问时间、访问项、访问批准人等信息。出库控制时,软件提取人的申请,项目负责人和质量管理部门负责人审批,并进行出库信息登记。更改控制时,软件开发人员先提出更改申请,质量管理部门向有关人员更改信息,并且组织评审,待更改内容通过评审后方可按要求办理出库,转入到开发库中进行更改;完成更改后按相关要求重新入库,并及时向有关人员更改信息。 4.4 产品库的管理 软件在通过综合测试或验收之后,其配置项应转入软件产品库进行管理。而其它项应纳入承研单位的档案管理。 4.4.1 产品库的内容 软件产品库入库内容应是已经完成了综合测试等待交付给用户运行或者是现场安装的最终的软件产品,具体包括可执行程序、系统配置文件、数据文件、安装文件以及电子文档和书面文档。 4.4.2 产品库的控制要求 产品库的管理控制直接由军用仿真训练软件承研单位的科研部负责。对软件产品库须按相关要求进行入库、访问、出库、更改、配置状态报告、配置审核等的控制。 产品软件版本必须与设计文件及其电子版同步归档,软件档案必须与其纸质软件文档相符。产品软件归档媒体一式两套,一套为基准盘封存保管,一套为工作盘提供利用。 5 “三库”应用的效果分析 在仿真训练软件的开发过程中应用“三库”,对软件的变化状态和有效的标识实施管理,使得软件的开发过程变得可控,杜绝了软件开发和使用的随意性,软件质量得到了保证。“三库”应用的效果具体表现为以下几个方面: (1)在仿真训练软件开发过程中应用“三库”进行有效的标识,减少了项目开发因为版本错乱、标识不清等低级错误,导致整个软件产品质量下降,保证了软件的开发周期及阶段性取得的成果。 (2)在仿真训练软件的开发各个阶段中,软件和其它软件配置项不可避免会发生更改,通过“三库”的应用,强化对开发库、受控库和产品库更改的审批控制,使软件的所有的技术状态都处于可控的范围内。 (3)在仿真训练软件的开发中应用软件“三库”实施管理,不仅可以帮助项目管理人员和软件开发人员清晰、准确的把握软件开发的每一个阶段和流程,而且通过软件“三库”的管理还可以让软件开发人员发现并避免一些重复性、阶段性的错误,使软件开发人员能够开发出高质量的软件产品。 6 结束语 随着仿真训练软件的发展,软件的质量要求也随之提高,软件的质量管理工作就成为越来越重要的问题。本文研究了仿真训练软件质量管理中的“三库”概念和建设方法,并在软件开发过程引用“三库”实施管理类,从软件开发阶段开始提高软件质量,建立和维护军用仿真训练软件在软件生存周期中各个阶段产品(包括各个文档、程序及其数据等)的完整性,确保对仿真训练软件形成过程的质量实现可追溯性,使软件开发、技术状态管理和维护过程处于受控状态,最终提高仿真训练软件质量。 作者单位 海军潜艇学院 山东省青岛市 266042 软件质量管理论文:加强我国军用软件质量管理的若干思考 [摘 要] 随着军队信息化的高速发展和广泛应用,军用软件在武器装备系统中的重要性日益突出,其质量已成为影响武器装备作战性能的关键因素。分析了我国军用软件质量管理的发展和现状,并从突出地位作用、加强理论研究、加快系统建设、提高建设水平四个方面对如何加强我国军用软件质量管理提出了思考与建议。 [关键词] 军用软件;质量管理 随着高新技术的发展和装备信息化程度的提高,软件在现代武器装备中所占的比重不断增加,在武器装备系统中的地位逐渐由硬件的配套产品上升为独立的产品,成为武器装备系统和自动化指挥系统的重要组成部分,武器系统功能的生成和发挥对软件的依赖性越来越强。军用软件的质量关系着装备系统功能的强弱和成败,直接影响甚至决定着武器装备的质量。 一、军用软件 军用软件(Military Software)是指用于保障军事装备及其配套系统正常工作,经正式立项研制并交付军方使用的特殊的专用软件产品。与常用软件相比,它实时性、时序性、精度性、安全可靠性要求更高,并具有嵌入式软件多、能适应各种恶劣军事应用环境的特点。 军用软件一般分为两类。一类是武器系统软件,包括为武器系统专门设计或专用的嵌入式软件,指挥、控制和通信软件;对武器系统及其完成军事任务进行保障的其他软件。另一类是自动化信息系统软件,主要是指执行与武器系统无关的系统使用和保障功能的软件。 二、我国军用软件质量管理的发展 同国外相比,我国军用软件质量管理起步较晚。1996年,原航天工业总公司颁发了《中国航天工业总公司软件质量管理规定》,明确规定了软件也是产品,必须和硬件一样纳入型号配套管理,列入产品配套表和技术配套表,实施产品管理。2000年3月,国防科工委颁布了《国防科工委关于加强国防科技工业质量工作问题的若干决定》,并于2001年9月颁布了《军工产品软件质量管理规定》。2002年,国防科工委专门组织软件调研组,对重点型号的软件承制单位进行了调研,并对加强软件质量与可靠性工作进行了现场指导。在2002年9月召开的国防科技工业质量工作会上指出,软件质量是当前比较薄弱的环节,应充分重视软件质量问题,积极借鉴国外软件质量管理方面的经验,加强国防科技工业内部各单位的交流,促进软件质量控制和可靠性工作。 我国军用软件质量管理基本上是以软件开发项目为中心,以软件工程化带动和推进软件质量管理,其具体方法如下: 1.依据软件工程原理,按照一定的软件开发方法学,确定适当的软件生存周期模型,分阶段实施了软件质量管理和控制。 2.型号软件纳入了产品配套表,对软件产品的研制进行了严格的质量管理。 3.根据软件的规模和安全关键性等级,对软件进行了分级分类管理。 4.落实型号研制人员的岗位职责,软件研制人员经培训合格后持证上岗。 5.制定并实施了大型项目的软件规范。 6.建立并完善了软件独立测试机构,提出并实施了软件仿真测试,加强了软件开发项目组内的软件测试力量,对A、B级软件开展了独立的确认测试。 7.为总结型号软件开发方面的教训,编写了型号软件故障启示录;为总结型号软件测试经验,编写了软件评测文集与案例,建立了测试实例库。 三、我国军用软件质量管理现状 随着军事装备体系化、复杂化、高技术化趋势逐渐显著,各类军用软件的使用日趋广泛,结构日益复杂,军用软件已不再是硬件的附属物,已经成为与硬件并列的、独立的技术状态管理项目。军用软件要求具有很高的可靠性、可维护性和安全性,以保证最大限度地发挥系统的整体作战效能。因此,军用软件开发中必须采用有效的手段和工具进行软件的质量保证活动,以支持开发人员在最短的时间内,用最小的费用开发高质量的软件,满足应用需求,同时减少维护费用。 但是,由于受多种因素的影响和制约,军用软件的质量和可靠性问题一直没有引起人们足够的重视。软件在开发、设计阶段缺乏严格的需求分析和评审;在调试、验收阶段,由于缺乏科学的测试手段也无法对软件进行必要的测试;在使用、维护阶段,不能严格按照软件配置进行管理,造成软件在生存周期中,存在着更改随意性大、质量难控制的问题。这些都不可避免地造成了软件的技术状态混乱,给用户的使用和维护工作带来了困难,影响了战斗力的提高。军用软件质量管理存在的一些不足如下: (一)承制方尚未建立完善的软件质量保证体系 目前,虽然已经建立基本的军用软件质量体系标准,如GJB9001B-2009等,但是实施程度较差。在现阶段,军事科研软件的开发大多集中于军队直属单位中,大多是院校、科研所及相关部门。参与软件开发单位一般较多,但单位内部没有建立较为完善的软件质量保证体系。由于质量体系的不完善导致了软件开发过程缺乏行之有效的管理和监督,软件的质量保证工作基本上是由软件开发者自身完成的。 (二)军方尚未有效参与软件需求定义 软件需求是度量软件质量的基础,不符合需求的软件就不具备质量。但当前的型号研制中,军用软件需求定义阶段缺少军方的有效参与,设计人员无法全面、准确地理解和定义装备的作战使用需求,同时对军用软件隐含的需求(如软件的可维护性)重视不够,导致在后续工作中软件修改、返工频繁,不但影响了软件研制进度,而且一些质量问题和缺陷也带进了后面阶段的工作中,软件质量难以保证。 (三)软件测试不够充分 目前,军用软件承制方多数没有建立专门的软件测试组,而是在软件开发的各阶段主要由开发人员采取自测和互测相结合的方式。由于软件开发人员任务重,他们在测试上不可能花费很多时间,容易走过场,致使测试的作用和可信度大大降低,一些隐含的错误和缺陷被遗留到软件产品交付投入运行阶段。 (四)文档在软件质量保证中的作用尚未引起足够的重视 软件文档是计算机软件产品不可缺少的一部分,它关系到系统能否有效运行、开发和维护,是保证软件质量的一个重要手段,它主要体现在文档本身的可追溯性和可改进性。但是,在实际工作中,文档的形成过程是一项艰苦、枯燥的劳动,人们常常忽视它,致使文档的编制和管理存在着许多亟待解决的问题。一是软件开发人员对文档编制不感兴趣,编制不及时;二是软件文档格式不规范,内容不完整,可读性差;三是文档审核、管理把关不严,未经许可随意更改的现象比较普遍。这些问题导致了软件透明度低、可维护性差。 四、加强我国军用软件质量管理的措施 (一)要突出军用软件质量管理地位作用 随着军用软件在作战、训练、战备、管理等军事领域的广泛应用,其地位和作用更加突出,必须充分认识到软件质量问题的严重性和紧迫性,努力提高军用软件的质量和管理水平。必须针对军用软件研制及使用保障过程中存在的种种不足,强化质量意识,加强质量管理制度建设,建立健全软件质量管理体系,不断提升质量管理能力。 (二)要加强军用软件质量管理的理论研究 军用软件在研制开发过程中,对质量管理理论具有明显的依赖性。针对目前对军用软件质量管理理论研究较少的现状,迫切需要加强相关领域的研究。 1.加强军用软件质量管理基础理论研究。军用软件质量管理基础理论主要包括基本概念和基本原理,军用软件质量管理的特点、要求和原则,以及面对当前软件开发和使用保障过程中遇到的新问题,提出解决的对策、措施和研究重点,以便系统地研究和解决。 2.加强军用软件质量管理基本规律研究。军用软件质量管理基本规律是进行质量管理活动的基本遵循和依据。应根据军用软件自身的特点和要求,借鉴质量管理活动的基本规律,从军用软件的需求分析、设计、开发、测试、定型与鉴定、质量监督、项目管理、验收、配置以及维护等不同活动的特点出发,来研究军用软件质量管理的基本规律。 3.加强军用软件质量管理方法手段研究。要紧贴军用软件质量管理的实际,区分不同活动的特殊要求,围绕军用软件质量形成的全过程,深入开展质量管理方法手段的研究。 (三)要加快军用软件质量管理体系建设 现代高技术武器大量采用计算机系统,军用软件为完成智能化的任务,也越来越复杂,外军已经把军用软件作为装备纳入了管理体系。我军新一代武器陆续装备,指挥自动化系统也初具规模,软件的成分大大增加。但军用软件在设计、开发、测试、维护、使用管理上还很薄弱。因此,针对军用软件的特殊性,建立系统化、正规化的质量管理体系十分重要。 1.建立军用软件质量管理部门。有必要在总部一级建立一个集中统一的软件管理部门,负责制定用以规范和指导军用软件发展的法规、制度和技术标准,在总体上规范和指导各军兵种的软件开发与采办;在各军兵种成立相应的部门,负责指导、规范本军兵种的软件开发与采办工作。 2.健全军用软件质量管理体系。在准确把握军用软件质量需求的基础上,研究如何加强组织体系建设,形成科学合理的质量管理体系,明确各层次、各部门的质量管理职责,提高质量管理的保障能力和水平。 3.健全军用软件质量管理的相关法规和技术标准。健全完善的法规和技术标准是军用软件质量管理的前提。为保证军用软件质量管理的顺利实施,必须加强顶层设计和体系结构的总体规划,建立满足军事需求的、统一的软件体系,结构和标准规范,解决好软件的发展同步、功能配套、兼容匹配。 (四)要提高军用软件质量管理建设水平 1.运用全寿命管理的思想提高质量。对军用软件从需求分析到新系统替代的整个生存周期过程中各阶段及各环节的活动,实施前后衔接、持续不断、首尾响应、协调统一的管理,明确每一个阶段、每一个部门的管理任务和目标。 2.用软件工程的原则与方法研制、开发、维护军用软件。军用软件系统复杂,软件度量、工作量估计、需求变化和风险管理难度大,开发进度和质量难以保证。运用软件工程的思想加强软件开发,有助于提高软件产品的质量和开发效率,减少维护的困难。 3.建立相应的规章制度,明确职责与职权,使软件质量管理工作规范化、标准化。软件开发时间周期长,参与人员、部门多,在整个生存周期内,软件的开发环境、运行环境都会发生变化。通过建立一套评估、控制和实施软件质量管理的机制,有利于实现软件质量管理的科学化、制度化和经常化。 软件质量管理论文:基于过程的软件质量管理在信息化中的应用 【摘 要】随着现代信息技术的发展以及计算机软件开发应用的不断进步,在积极性软件质量管理中,基于过程方法的软件开发与生产质量管理等,已经逐渐成为现代信息化发展中,软件质量管理应用的标志性管理技术方法。基于过程的软件质量管理,对于软件的开发利用来讲具有高质量保证与高可信度的优势。本文主要通过对于基于过程的软件质量管理原理的分析论述,并结合信息化发展过程中软件质量管理的问题,对于基于过程的软件质量管理在信息化中的应用进行分析论述。以提高过程方法在软件开发设计与管理中的应用,推进现代信息化的发展。 【关键词】过程方法;软件质量管理;信息化;管理平台;设计;分析 在软件技术开发与软件设计应用中,最为关键并且重要的问题之一就是对于开发设计软件以及软件技术质量的保障与成本控制实现。近年来,随着软件技术与软件开发设计应用的不断发展进步,对于软件工程的研究发展也有了很大的进步,但是在软件技术质量保证与成本控制方面的问题一直没有很好的得到解决。基于过程的软件质量管理方法技术,就是在这样的发展背景与需求下,逐渐在信息化发展实际中进行应用实现的。基于过程的软件质量管理最早是由美国软件行业在上世纪80年代初期进行提出并应用的,它实际上就是将软件技术的改进发展与软件开发设计过程的改进之间同步进行与实现,通过对于软件技术开发与设计过程的控制,实现对于软件技术质量的管理控制,这样一来不仅对于软件技术和软件应用发展有着积极的作用,而且在一定程度上也推动了社会信息化的发展进步。 1.基于过程的软件质量管理与技术概述 1.1基于过程的软件质量管理含义分析 基于过程的软件质量管理通常也被称为是过程管理方法,对于软件质量的过程管理提出与实现,最早是由美国软件行业在上世纪80年代,以进入以过程为中心的软件技术以及软件产品的开发利用时代为标志。随着美国软件行业中以过程为中心的软件产品、技术的开发利用发展,基于过程的软件质量管理方法以及管理平台在实际开发应用中越来受到欢迎,并且基于过程的软件质量管理平台开发设计的相关要求准则等,也随之出现并发展起来。在对于基于过程的软件管理平台设计建立要求准则中,以美国CMM以及PSP、TSP管理平台的设计应用实现最具有代表性和意义。 通常情况下,对于基于过程的软件质量管理平台与方法中,过程一词多被解释为将输入方式转化为输出方式的一组相互关联或者是相互作用的活动。对于软件产品以及技术的设计实现以及管理过程,又被按照一定的规律关联分解为软件工程过程以及软件管理过程、软件支持过程等三大过程类型。其中,软件工程过程主要是指软件产品以及技术的开发、生产、设计实现过程,包含对于软件技术与产品的需求分析以及编码设计、系统测试等过程步骤;而软件管理过程主要是指对于软件工程的管理维护过程,包含对于软件产品、技术的开发、生产、设计应用等的管理以及维护实施等,比如对于软件开发项目的策划、跟踪监控以及质量保证管理过程等;最后,软件过程中的支持过程主要是指对于软件技术以及产品的开发、设计、生产利用进行支持的过程行为,包括对于软件产品与技术的评审以及培训、度量等过程。在软件工程开发设计以及应用管理过程中,建立相关系统平台,实现对于软件工程系统化与自动化管理控制实现,是在现代信息化发展情况下,进行软件质量管理的有效方法与途径措施。 1.2基于过程的软件质量管理技术概述 在应用过程管理方法,对于软件质量进行管理实现的实际应用过程中,主要的软件过程质量管理技术有CMM软件过程质量管理技术以及PSP、TSP软件过程质量管理技术等,此外,还包含ISO9000系列的软件过程质量管理应用技术,以及IEC15504要求标准下的软件过程质量管理技术。 其中,CMM、PSP以及TSP软件过程质量管理应用技术,是由一家软件工程研究机构研究提出的基于过程的软件质量管理系统模型平台。CMM软件过程质量管理系统模型平台主要是在对于CMMI系统模型结构与人力资源管理思想理念、以及软件开发生产技术、产品相互融合的情况下,最终形成一个完整的CMM管理系统与体系,实现对于软件质量管理过程中的人与技术、管理过程三个方面的管理控制实现。而ISO9000标准系列的软件过程质量管理技术一种由国际标准化研究组织研究提出的通过过程方法实现对于软件工程质量管理的技术方法,它在许多国家和地区的信息化发展中有广泛以及普遍的应用实现,尤其是在政府以及工业发展、信息技术研究领域的应用实现更为突出。 2.基于过程的软件质量管理在信息化中的应用分析 2.1信息化过程中的软件质量管理问题 随着社会信息化的不断发展,信息化发展过程中出现的矛盾问题也越来越多,比如信息化的建设发展各自为政、信息化重复建设和信息化建设成果垄断等问题,在信息化发展的过程中越来越突出。作为社会信息化建设与发展的重要基础和核心部分,软件的开发利用以及发展不仅对于社会信息化的建设发展有着重要的影响作用,更是对于国家生产力水平以及综合实力情况也有着很大的影响。 根据社会信息化发展与软件质量管理的情况来看,目前,在信息化发展过程中,软件质量的管理也存在着一定的问题,首先表现在对于软件质量管理的意识比较缺乏,软件质量管理的重视程度不够。其次,在社会信息化发展过程中,对于计算机软件产品的开发设计与利用过程中,过分重视对于软件技术产品以及项目的开发设计进度、数量等问题,而忽视对于软件产品质量以及软件开发设计过程的控制管理。再次,在进行软件技术以及产品的开发设计过程中,所运用的软件产品与技术的开发设计质量管理体系相对比较落后,并且对于同一个软件产品与技术的开发设计转包现象比较严重,通常存在有多个软件开发方,这对于软件质量的管理以及软件开发的发展进步都十分不利。最后,在进行软件质量管理过程中,缺乏有效的软件质量控制管理体系,也是信息化发展中软件开发设计与管理中的重要问题,如下图1所示。 2.2基于过程的软件质量管理在信息化中的应用 在社会信息化发展中,基于过程的软件质量管理方法,就是通过对于软件需求过程以及软件设计过程等的质量控制与管理实现,同时对于软件的编码以及测试、维护等,基于过程质量控制管理的方式,实现对于软件质量的控制管理实现。具体质量控制管理方式如上图2所示。 首先,在基于软件质量控制管理的软件需求过程的质量管理中,应注意从对于客户管理以及目标控制、需求范围的控制、需求筛选等方面,进行软件需求过程的质量控制与管理实现,保证软件技术与产品的质量。其次,对于软件设计过程的质量管理控制,主要就是根据软件需求分析情况,对于软件总体结构的设计过程与质量进行控制管理,以实现软件过程设计的目标。再次,对于软件编码过程中质量控制管理,主要是通过对于软件编码的过程进行规范,以及做好相应的软件编码代码审查、单元测试的控制与管理;在软件测试过程中,做好软件的单元测试以及集成测试、系统测试三个部分的测试,并对于测试过程进行控制管理,保证软件测试过程质量符合要求。最后,在进行软件产品以及技术的维护过程中,应注意针对不同的软件维护类别,对于软件技术与产品进行改进,以满足客户对于软件产品的需求。总之,基于过程的软件质量管理,就是要结合软件技术以及产品开发设计实现的过程,对于过程方法进行控制管理实施,从而实现对于软件产品的质量管理。 3.结束语 总之,质量管理是企业管理工作中的关键与重要内容部分。而基于过程的软件质量管理更是现代软件质量管理的重要趋势方向,进行方面的应用分析,具有很大的必要性与重要性意义。
计算机软件基础论文:计算机软件开发的基础架构原理研究 摘要:计算机软件开发行业的发展得益于当前信息技术的快速发展和信息受众不断增加,当然计算机软件开发也需要遵循特定的规律,依照其基础架构原理来进行操作,才能够保证计算机软件开发朝着有效性的方向发展。且计算机软件设计的过程,就是在逻辑关系的引导下,实现软件内容的重新确定,进而形成对应的基础架构,这是软件运行的前提和基础,甚至会影响到后期软件系统的维护和管理工作。由此积极探讨计算机软件开发的基础架构原理,是很有必要的。文章由此入手,积极探究计算机软件开发的概况,进而分析计算机软件开发的基础架构原理。 关键词:计算机软件开发 基础架构原理 信息技术 计算机软件设计的过程,就是在逻辑关系的引导下,实现软件内容的重新确定,进而形成对应的基础架构,这是软件运行的前提和基础,甚至会影响到后期软件系统的维护和管理工作。由此积极探讨计算机软件开发的基础架构原理,是很有必要的。 1 计算机软件开发的概况 1.1 计算机软件开发的概况 计算机性能的不断提升,使得人机交互效益得到不断展现,越来越多的行业开始尝试以计算机软件开发的方式,实现自身运营模式的信息化转变,由此以对应需求为基础的软件开发行业得到了快速的发展。计算机软件开发具备以下的特点:持续性特点,就是软件开发是一个循环往复的完善过程,在计算机逻辑基础上,计算机软件的缺陷是一直存在的,只有不断的采取措施去修正,才能够更好的发挥计算机软件的性能;针对性比较强,往往都是针对于某一行业或者领域而开展的计算机软件开发工作,其开发工作的目的性更强,对于效益的追求也是更加强烈的。 1.2 计算机软件开发基础架构的重要性分析 当前计算机软件开发过程中,使用量比较多的基础架构,就是三层结构体系,其分别可以归结为:其一,表示层;其二,逻辑层;其三,数据层。在上述三个层次的基础上,可以使得软件的人机交互界面展现出良好的性能,使得逻辑关系和计算机语言之间得以分离,这样在后期维护和修改的时候,单独的对人机交互模式进行调整,就可以使得软件开发的节奏变得更加快捷。由此可见选择合理的计算机软件开发基础架构,对于软件性能的最大化发挥,对于软件后期的维护和管理工作质量提升而言,都是有很大帮助的。 2 计算机软件开发的基础架构原理分析 2.1 从计算机软件开发基础架构需求的角度来看 无论是开发设计怎样的软件,都需要在明确开发目的的基础上进行,也就是需要对于软件的需求进行全面分析。不同的企业,归属的领域不同,所需要展现的功能也是很有差异性的,此时企业都会提出对应的软件开发需求。在此过程中,计算机软件开发者与信息企业之间会展开大量的协商工作,对于软件的功能进行分析,结合企业业务运行特点,实现计算机软件开发方案的敲定。为了做好需求分析方面的工作,需要特别注意以下几个方面的工作:建立完善的软件企业与需求企业之间的沟通机制,保证在软件需求分析的过程中,能够充分的了解企业组织的业务特点和规律,保证软件开发需求能够更加明确。 2.2 从计算机软件开发基础架构编写的角度来看 计算机软件开发基础架构需求分析结果得出之后,就需要进行实际的软件编写工作,从当前的实际情况来看,多数使用的是C语言,这种语言的特点为:语言结构结构比较好,编写操作比较快捷,是当前程序员使用频率比较多的语言模式。在实际的软件编写的过程中,会依照对应的功能划分,实现不同模块的敲定,保证不同模块都能够发挥自己的功能,此时需要建立对应的函数模式,使用这样的主函数对于各个模块进行调节和改善,这样可以保证结构能够更好的维护。当前一个计算机软件的开发工作,都是有多个程序员来共同完成的,这样可以尽可能的保证软件编写工作的高效性。 2.3 从计算机软件开发基础架构测试的角度来看 在计算机软件开发基础架构编写工作完成之后,就需要对于软件的不同功能实现测试,实现对于软件测试阶段的管理和控制,是保证软件性能发挥的关键所在,这也是将对应计算机软件投入使用之前必然要进行的工作。在此过程中,需要关注以下几个方面的内容:其一,输入特定的参数,对于软件的运行情况进行记录,验差运行情况与理论情况之间差异性;其二,使用白盒子和黑盒子的方式去进行测试,同样对于软件测试的效果进行记录,由此实现实际计算机软件开发工作的顺利开展;其三,除了测试工作之外,还应该做好计算机软件开发基础架构的维护和管理工作,定期对于软件的性能发挥进行检查,并且推出全新的版本,进而实现软件自身的修复,这样可以使得其自身的性能得到全面提升。 3 计算机软件开发基础架构选择的基本原则 计算机软件开发基础架构的选择,关系到计算机软件效能的发挥,牵涉到各行各业信息化的快速发展和进步。在选择计算机软件开发基础架构的时候,需要关注以下几个方面的内容:其一,树立软件设计目标意识,在需求分析的基础上,对于不同的基础框架进行选择;其二,使用先进的逻辑语言和编程技术,对于计算机软件架构进行合理的编写和操作,由此才能够保证基础架构开发工作的高效性;其三,依照软件目标功能和结构选择之间的关系分析,选择合适的结构,进而使得软件开发行为朝着有目的性的方向发展和进步;其四,注重计算机软件开发团队的塑造,处理好不同模板开发之间的关系,保证计算机软件基础结构选择得更加科学和合理。 4结语 综上所述,计算机软件开发过程并不简单,其中不仅仅涉及到专业领域的知识,还关注到计算机软件基础结构的原理,处理好这两者之间的关系,才能够保证计算机软件开发的基础架构工作朝着更加高效的方向发展和进步。从当前计算机软件开发基础架构原理的运用实践来看,其基础架构选择还存在很多不合理的情况,此时就需要采取对应的措施来改善和调整,相信随着在此方面实践经验的积累,计算机软件开发的基础架构将会展现出更加大的效能。 计算机软件基础论文:计算机软件基础课程实验教学研究 摘 要 计算机软件基础是一门实践性强的课程,为增强教学效果,增强学生的编程能力,强调以学生为本,提高学生的学习兴趣;实验教学应尽早介入教学过程,让学生边学边用;建立多层次实验教学内容,发掘学生实验潜能;建立多样化实验教学方式,方便学生自学。把实验教学做好做实,既能巩固理论知识的学习,又能切实提高学生的编程能力。 关键词 计算机软件基础;实验教学;编程能力 计算机软件基础是我国高等院校电类非计算机专业本科生的一门基础课,为相关专业学生打下利用计算机语言编写程序的基础,为后续专业课的课程设计、实践环节以及最后的毕业设计做准备,其重要性不言而喻。然而在实际教学过程中,由于多方面的原因,使得本课程教学效果不佳,学生普遍编程能力不强,甚至影响了后续部分课程的学习。要提高学生的动手能力,关键还是要多练。本文在肯定理论教学重要性的前提下,着重就计算机软件基础课程的实验教学部分进行分析,对实验教学环节的介入、实验内容的优化以及实验教学方式等提出一些探讨性的做法。 1 坚持“以学生为本” 计算机软件基础教学如何实现教学目标,其关键的一点就是以谁为出发点,是以教为主,还是以学为主,还是实现教学互动,教学互长,教学互推。从目前的现实状况来看,以教为主的弊病还很明显,迫切需要改变,实现以学生为本,实现教学互动。 以“教”为主的模式已经成为制约学生创造性、积极性发挥的重要因素 计算机基础课程从本质来看应该是一门实操性课程,其涵盖的内容广泛且繁杂,而且实验性强是该课程的基本特点,甚至可以说离开了实验操作,也就实现不了其课程目的。然而从目前的课程安排状况来看,以书本理论知识教学为主仍是该课程教学的主流,计算机软件基础教学都侧重书本理论学习,而忽视了学生实验环节。实践证明,这种教学方式就跟学游泳不下泳池,学骑车而没有自行车一样,学生在学习计算机软件基础知识时,绝大部分是事倍功半,导致学用脱节,无法学以致用。更有甚者,有些学生直到课程结束连最简单的程序编写都掌握不了,这既给教师教学造成很大的困惑,也彻底地打击了学生的自信和学习该门课程的积极性,更遑论实现知识创新,成为软件人才了,这与教学初衷显然是不符的。 原因是在现有的教学模式中,课程实验环节的设置和实验环节介入的时间发生了问题。从实际情况来看,实验环节介入越早,实验安排越多,教学效果也越好。而部分采用边教学边实验,教学与实验融为一体的教学方式,其实现的教学效果更是明显。因此,改变现有的以教为主的教学模式,从理论和实践上探索该门课的一些新的教学方法,已经成为计算机软件教学题中之义,不断创新教学方式,才有可能从根本上改变现有的学习费力不讨好、效果欠佳的状况。 深入浅出地解析理论知识是增强学生学习兴趣的重要途径 “学生是教学活动的主体,教学活动要以学生为中心而展开”,这已经成为现代教学理念的主流观点。从学生学习的心理来看,一方面由于计算机软件课程是基础课程,学生对学习开始阶段接触的软件知识有一定的好奇感,求知欲也相对比较强烈。同时,由于是刚进校门的低年级学生,对大学环境还不是特别了解,仍然具备认真学习的态度,因此,好好学习知识的想法也比较明显。另一方面是由于目前大学生数量急剧增加,社会就业压力明显,学生普遍有学习好专业课,实现良好就业的外在动力。因此,可以说,学生在开始阶段的学习兴趣是比较浓厚的。但由于语言、算法、数据结构等知识,是进行程序设计所必须具备的基础知识,而低年级学生在这方面基本没有知识储备,对其学习方法也并不适应,而原有的知识结构又很难同化现有课程知识,导致难以自学和分析、解决问题,引发学生学习的挫败感,一旦处理不得当,就会使学生学习提不起兴趣,缺少主动参与的积极思维活动、创造性思维活动,更有甚者还会使学生抵触学习,削减学生本身己经调动起来的积极性,影响后续课程的开展。 教育心理学的研究也表明[1]:学生在没有精神压力和心理负担并且情绪饱满、心情舒畅的情况下,大脑皮层最容易形成兴奋中心,思维也最活跃,此时的实践能力最强。因此,如何使学生保持这种状态就成为教师应该考虑的重点问题之一。单就理论教学而言,如何使理论变得通俗易懂,接近生活,易于学生理解,这是计算机软件基础课程理论教学的关键。从实践来看,在授课过程中,教师通过深入浅出地讲解,设置理论问题情境,解答学生在实验中产生的疑问,肯定和鼓励学生的想法等方式,都能比较充分地调动学生的积极性和主动性,使学生更加容易融入教学环节中,也便于学生深入理解理论知识。比如说针对学生提出的一些设想,经常正面地肯定,能使学生更加信任自己,更加愿意去创新,从而与学生实现良好互动。 同时,在课后对学生进行必要的关心,用人格魅力引导学生参与教学,也不失为一种好的方式。比如,通过课后深入学生,与学生建立亦师亦友的关系,与学生打成一片,学生往往会因喜欢教师而喜欢该教师教授的课程,实现良好的教学效果;而相反,教师冷冰冰的态度往往也会成为影响教学效果的一个重要因素。 2 尽早引入实验教学环节 实践证明,计算机软件基础的教学,引入实验教学环节越早,教学的效果往往越好。因此,计算机软件基础课程教学要想在培养软件人才、促进软件产业发展方面有所突破,尽早引入实验教学环节是一条必由之路。 现有的实验课程安排作用并不明显 计算机软件基础是计算机软件的核心课程,其主要内容包括数据结构、操作系统、数据库系统概论,教学目的是让学生掌握数据结构的相关算法,理解操作系统的基本概念,熟悉数据库的基本操作,从而具备初步的软件编程能力。同时,从目前的教学安排来看,该课程安排了一定数量的常规上机实验练习,以便提高学生的软件素质[1]。 但现有的课程安排还存在一定的问题,突出表现在: 一是学生上机练习的题目规模较小; 二是上机内容以章节为主,有的章节有上机内容,有的没有,导致上机实验没有连贯性和系统性; 三是上机安排的内容发挥作用不充分。 从实践来看,培养学生的软件素质必须适当结合电子信息类专业的特点,这对于培养应用型人才的作用至关重要。但从目前上机安排的内容来看,主要是从计算机专业的角度提升学生的软件素质,而并没有与电子信息类专业特点充分结合,其结果就是导致学生对硬件有较好的掌握,而对信源编码等通信软件知识知之甚少,影响课程设计的整体进度。由此可见,目前安排的实验课程其作用甚微,难以达到为学生打下软件知识基础的教学目的。 尽早引入实验教学,利于学生在操作中学习,达到学以致用的目的 从现有的教学来看,学生对计算机软件基础课程学习的困难点主要在于:课程理论知识比较枯燥难懂,上机操作能力不足,导致学生学习兴趣降低,影响了教学效果。比如说在C语言教学中,C语言程序设计作为学习计算机其他课程如数据结构、JAVA语言程序设计等课程的先修课,对于培养学生的计算机技能具有至关重要的作用,因此,提高这门课程的教学质量意义也十分重大。 但是,这门课程首先要讲授C语言的特点、运算符和表达式等内容,而这部分内容恰恰又相对比较枯燥,学生难以提起学习兴趣,而这部分内容通常是安排三周学完,对于初学者来说要在这么短的时间内理解这些理论并不容易。于是等到这部分理论教完开始接触程序设计时,部分学生已经远远落后于教师的进度,导致没有继续学习下去的动力,有些学生就此掉队。 同时也有研究表明[2],部分教授在教授这门课程时,调整了讲课顺序,提前给学生讲授程序设计的内容,安排学生提前实验,让学生亲身体验计算机如何运行C语言程序,而等到学生对C语言程序有一定了解后再讲授运算符和表达式等内容。由于之前学生对C语言有了切身的体会和感受,再学习其他理论时,往往能将这些理论与实验知识结合,加深对运算符和表达式等理论的理解,也提高了学习C语言的兴趣,作用都相当明显。 由此可见,针对计算机软件基础课程的内容特点,尽早安排学生上机实验,让学生体会学以致用、现学现用、现用现学的乐趣,对培养学生兴趣和创新能力、提升教学质量有着不可替代的作用。 3 建立多层次实验教学内容,发掘学生实验潜能 学生的素质和潜能并不完全一样,孔子时代就已经讲究因材施教,实验教学中也必须根据学生的实际情况,适当地分层次安排实验教学内容,建立多层次实验教学内容体系,从而更好地提升学生的学习兴趣,激发学生潜能,实现教学目的。可以分为基础性实验、应用性实验和创新性实验。 基础性实验要求精 基础性实验是课程的统一安排,目的是验证和巩固课堂知识,针对群体为所有学生。要充分发挥这部分实验内容的作用,主要在于求精。 首先要精选实验内容,针对每个知识点,都要精推细敲,并在每个实验内容中设置开放性思考题,要求学生认真思考做答,不求数量,但求质量。 其次要精讲实验内容。针对学生实验内容的答案,要进行深入的讲解分析,肯定学生做得好的地方,指出其不足,并指导如何修改完善,务求每个实验内容都讲透,并通过实验内容夯实学生对每个知识点的理解。 最后,引导学生运用发散性思维进行解题,提升学生对知识点的认识水平,如引导学生运用多种方法解题。 基础性实验是学生对知识点的深入掌握,也是开展应用性实验的必要准备。 应用性实验要求实 应用性实验是课程的适当补充,是学生对课堂知识的具体运用,旨在培养学生应用知识的能力,针对的群体是大部分学生。其主要任务就是培养学生解决实际问题的能力,具体方法是由教师选择合适的项目,让学生自愿分组,在规定的时间内按计划完成。 在应用性实验教学中,项目的选择非常重要,其主要原则是既要覆盖计算机软件基础课程的主要内容,也要贴近实际,是实际生活中有应用价值的项目,还要便于学生理解完成项目的方法,能最终形成一个完整的软件作品。比如说各种信息管理系统都是比较合适的项目。 在这个阶段,教师重在引导学生开展项目,指导学生解决项目实施中碰到的难题,检查学生项目实施情况,及时纠正项目的方向性、原则性错误,并引导学生及时进行反思总结,便于更好地掌握编程技巧和语法知识等内容。 在应用性实验阶段,学生的实验成果,不仅是要通过提交相关文档以及编写的程序代码来体现,还要在一定的范围内进行实际测试,便于学生将理论知识与实际挂钩,也便于学生进一步认识实验项目与实际项目的环境差别,更好地融入社会实践。 本阶段的实验由于应用性强,对于学习计算机软件基础理论知识感到吃力的学生,可不强行要求。 创新性实验要求新 创新性实验是课程的升华内容,主要是激发学生的创新思维和创新能力,所针对的群体是小部分学有余力的学生。在这部分实验内容中,由学生自行选择实验项目,设计实验方案和实验步骤,学校提供相应的实验环境和其他保障措施,教师则对学生选择的实验项目进行把关指导,确保项目具有创新性。在这个实验中,整个过程都由学生独立完成,学生要自行解决实验中遇到的各种问题,总结各种错误出现的原因和避免出错的方法,并在实验结束后,自行检验实验结果的应用价值,从而达到融合知识、锻炼素质、提升能力的效果,培养软件人才。 4 建立多样化实验教学方式,方便学生自主学习 实验教学的方式要多种多样,并优化实验教学载体,为学生实验提供更多的便利。 首先是可以充分发挥校园网的作用。目前,绝大部分学校已经建立自有的校园网,一方面为学生提供了大量的实验教学资料储备,如教学大纲、实验大纲、实验指导书、实验室开放时间表、指导教师安排等实验教学的所有技术支持文献信息,为学生开展实验提供了极大的便利;另一方面还提供了学生自测系统。在自测系统中,学生可以回答教师指定的问题,并完成打分,并可对回答问题的正确与否进行分析,纠正错误答案,进一步消化知识。同时,有的学校还设计了基于C语言的计算机软件基础自学系统,学生可以通过系统进行应用程序学习,循序渐进地学习和掌握知识,有力地巩固课堂教学的知识。 其次是可以充分发挥社会单位的作用。学校可以和与计算机软件专业对口的企业合作,在企业相应建立学生实践基地,让学生参与企业的实际设计,以干代学,从而进一步提升学生对计算机知识的认识,也进一步了解软件产业对软件人才的要求,适应软件产业的环境,从而更好地增强教学效果。 5 结束语 计算机软件基础是一门实践性强的课程,其实验教学要适时推进,这是增强课程教学效果的需要,也是提升学生素质的需要。在实验教学中,教师角色的转换,学生主体地位的重申,社会单位作用的发挥,都深刻影响着学生学习本门课程的效果。在目前的形势下,要充分发挥计算机软件基础作为培养应用型人才的重要基础课程的作用,充分发挥教师、学生、社会单位在该课程中的积极作用,就必须抓好实验环节的教学工作。只有实验教学才能更好得实现教师与学生互动、学校与社会互动,才能培养出适合软件产业发展需求的应用型人才。 计算机软件基础论文:计算机软件基础教学的改革思考 【摘要】本文针对计算机软件技术基础课程教授过中出现的主要问题,提出了对教学实践环节的几点改革意见。 【关键词】计算机软件技术基础;课程;软件设计 “计算机软件技术基础”是计算机基础教育的基本内容,是学生在本专业学习和研究中,开展计算机应用和系统开发的立足点。计算机基础教育的任务和目标是培养既精通本专业知识,又能掌握计算机应用技能的复合型人才。这种复合型人才所具有的能力结构不是简单的一维层次结构,而是网状的空间结构,即包括:学生的本专业知识、计算机应用能力和信息素养。如何适应素质教育的要求,如何使学生的专业知识与计算机技术结合,如何使学生在已有的操作使用能力基础上,提高应用开发能力,培养研究创新能力,《计算机软件技术基础》课程教学有着重要的作用。 1.教学现况与存在的问题 1.1 学生方面 由于非计算机专业学生来源不同,故其基础也是不同的。学生在高中所学的前续程序课程分别为C语言、VB和VF,个别地区的高中甚至没有开设计算机语言课程。由于软件基础课的第一部分为数据结构,涉及到相当多的指针操作,所以学过C语言的学生基础相对较好,教学中容易理解教学内容。而学VB,VF的学生对指针没有任何概念,对教学内容的理解相当困难,更不用说没有学过语言的学生。这是由前续课程带来的问题。 半数以上的学员一开始对该门课程的学习抱有极大的热情,然而随着课程难度的逐渐加大,编程技术底子较薄或接受能力较差的学员开始退缩,主要反映在大型程序设计作业完成情况上,分工不均衡,出现能者干、庸者看的现象。这与课程的设置有关。 1.2 课程设置方面 这门课程涉及到的内容很多,主要包括数据结构、结构化程序设计、面向对象程序设计。这几个部分对于计算机专业而言都是单独的一门课程,但是现在要把各部分的内容综合到一门课程中去,便给教学带来一定的难度。 这门课程的学时数有限,笔者所在学校安排了58学时(理论28学时、实验28学时、考试2学时),教学的时间非常有限,要在这么短的时间内学好所有的内容,对学生和教师都是一个挑战。 2.教学改革方面的几点建议 2.1 传统的课堂教学与新兴网络教学的完美结合 传统教学模式的主要手段就是“粉笔+黑板”,这种教学手段可以充分展示教师的教学思路,展示教师的个人教学魅力,同时可以留给学生充裕的思考时间和完成笔记的时间。这种教学主要应避免“满堂灌”和“面面俱到”,而是对一些原理性、概念性较强的教学内容采用这种教学。如:链表的概念,几种查找、排序的方法以及他们之间的差异等内容都可以使用这种教学方法。例如,在讲授应用结构体处理数据时,我们举了一个显示输出输入的几组学生数据的例题,在课堂上,采用板书方式分步介绍了如何定义结构体,如何建立输入功能子函数,如何建立输出功能子函数,要求学生给出完 整的程序和输出结果。然后又给学生布置一个作业,要求使用链表处理信息,程序运行后需按序显示输入的学生信息。这样就可以让学生进一步掌握动态分配空间函数的应用及如何创建链表和它在C语言程序中的应用。 “粉笔”黑板”这种教学看似简单和落后,但如果提供了完善的网络环境,学生就能在园区网上看到教师已经制作完成的课件,就能根据自己的学习需要检索教师当天教学的板书,播放教师的某段讲解。这种教学模式使学生能够在课堂上紧跟教师思路,减少了完成笔记的时间,提高课堂效率。 2.2 目标驱动理念在课堂教学中的应用 建立在建构主义理论基础之上的目标体验教学是以学生为中心,以教学目标为驱动的教学方式,属于探究式教学模式的一种。其显著表现是:教师的教学与学生的学习都是围绕着一个目标,而这个目标又包含着几个小目标,每一个具有建构思想的目标驱动都要符合学生的“最近发展区”规律。最近发展区主要是指学生的潜在发展水平,在此水平上,学生还不能独立完成学习目标,但经过启发、帮助和努力,就能完成目标。例如,在讲述“排序”时,首先就要求教师已经介绍过冒泡排序和快速排序这两种互换类排序方法,而且学生已熟练掌握。在这基础上,就可以对学生讲解简单插入排序和希尔排序这两种插入类排序,也可以讲授简单选择排序和堆排序。在这个教学过程中,冒泡排序和快速排序就是学生现有的发展水平,学生能独立地、自如地完成教师提出的教学目标;而其他排序方法则是尚处于形成状态,还不能独立完成的教学目标,是学生的潜在发展水平,在教师帮助下,通过训练和学生自己的努力才能完成的教学目标。 2.3 注重培养学生的动手能力 在计算机课程的教授中,许多老师比较注重概念、语法的讲解,却忽略对能力的培养,这样培养出来的学生在上机时就会不知从何下手因此在教学过程中,在介绍完基本概念和语法知识后,可以利用更多的课时来对学生的思维方式进行引导对常用的软件设计方法可以从“拿到题目”“如何分析”“如何解决”“最后具体程序实现”的整个过程进行全方位的启发这样能提高学生的软件设计能力,使学生如何设计该类软件有一个基本思路,知道如何去思考问题,如何去解决问题,方向明确、思路清晰。 2.4 改变单一考试模式 考试是学生学习导向的指挥棒,也是检验教学效果的基本方法。计算机软件技术基础是典型的实践性课程,单一理论考试模式无法掌握学生上机操作水平。我们采取厂“笔试+上机”的考核方式,任何一项成绩不通过这门课程学习就不合格。机试成绩并不是一次给出,在平时上机实验中就分阶段进行考核,可以随时掌握学生的学习和应用情况。例如,可以给出一些应用题,让学生通过分析找出解决方法,训练学生掌握应用领域的知识并综合运用知识的能力。新的考核方法给了学生一个发挥才能的空间。变被动的应试为主动的学习,使学生成为考试的主人。学生在解决问题时若有创新,就可以得高分。这样。可以激发学生的学习积极性和求知欲,给他们展示自己才能的机会。充分发挥创造力和想象力。 3.结束语 “计算机软件技术基础”课程对于从事计算机应用领域的非计算机专业人员是相当重要的,同时对于计算机应用领域的发展也起着十分重要的作用本文中针对该课程现阶段教学中存在的问题,提出了改进的方法实践证明,该方法能有效地提高学生的软件设计能力和创作能力,是教学上的一种较好的开拓。 计算机软件基础论文:探究计算机软件基础数据结构之算法 摘要:近年来计算机在我国各行各业扮演的越来越重要的角色,加强对计算机的有效性探讨是实现计算机为各行各业服务的关键。计算机数据结构主要指的是信息在计算机内的寄存方式和信息的集合和整理。计算机数据结构经常与算法相联系。算法是被计算机所识别的指令,算法是通过数据结构所进行的信息储存。算法和数据结构二者是相互作用的,通过对算法蕴藏信息的分析可以有效的解决计算机存在的一些问题,提高处理效率和速度。 关键词:计算机软件 数据结构 算法 一、引言 随着计算机在在我国各行各业发挥的作用日益凸显,计算机的数据结构只的是信息在计算机 寄存方式和信息的集合和整理。计算机结构与算法关联甚广,因此加强计算机数据结构算法的研究对于计算机研究十分重要。下面我们将对计算机基础数据的算法进行相应的介绍。 二、计算机软件基础数据结构之算法概述 (一)算法的两要素 算法包括两要素,一部分指的是对信息的操作处理,这部分对信息的操作处理包括四种处理方式,分别为逻辑符合,数学计算,信息的对比以及信息的传递另一部分指的是对信息的处理方式的操作,它引导指令进行有序的进行。 (二)算法的特征 算法是有限指令的整体,这些指令表明了处理问题的步骤,针对相应的问题,算法可以对定值按照原先设定的指令进行运算处理,并且通过一定数量的运算后传送出计算机得出的最后结果。这就要求算法包含有限的指令,同时各项指令都 应该明确,不能多层含义,同时也要求这些指令都是计算机能力范围之内的,超出计算机范围以外的不仅不能起到积极效果反而会对以后的操作造成一定负面影响。算法对处理对象没有要求,同时被处理对象也不会对这些指令产生影响。 (三)算法的表示 很多人可以通过文字或者符合翻译算法,一般翻译法包括一般性文字,C语言,程序图,PAD图等。其中一般性文字和C语言是具体详细的描述算法的。他可以使学习者更容易学会。 (四)常用的算法 1.枚举法 枚举法是指对信息的某些独特特点估计运行结果的区域,然后通过一些手段检验该区域的每种结果,直到验证到所有饿都符合才加以停止。这些验证有的是可以满足算法的要求的,同时也存在着一些不能满足算法要求的,这些满足的对象就是计算机最终会传递的结果,那些不能满足算法要求的就表明该算法无解。 枚举法具有工作原理简单,容易接受的优点,但是枚举法有显著的缺点就是工程量大工作时间长,枚举法一般只适用于无法用别的方法解决的问题。 枚举法包括以下步骤: 1.1通过对问题的思考,预估问题的大致方向 1.2选出合适的枚举形式。枚举形式包括顺序法,对比法类型列举法等 1.3将可能的方向进行一一验证 1.4确定哪些情况是合理的哪些是不合理的,得出最终结果。 2.迭代法 迭代法与枚举法相比比较粗糙,生活中很多方面都需要这种方式进行问题的处理它的显著特点就是可以将一个麻烦的问题转化成为比较简单迭代算式,这样就会形成问题由难至简的循环,从何最终得出答案。 3.递推和递归法 递推和递归法是比较常用的一种方法,通过对一些特殊的公式的性质加以推导得出结果。递推法和递归法从简单入手,把前面得出的结果进行到后面的推理之间可以更加方便结果的得出。 三、计算机软件基础数据结构之算法的设计要求 算法就如同人与计算机之间进行沟通和交流的语言,通过算法作为中介可以加强人与计算机的距离,让计算机按照预先设定的指令一样去执行任务。但是要遵循一定的原则。 (一)正确性 设计者首先要按照算法的规则编译指令进行编译,只有按照规则的编译才能实现和计算机的交流,让它按照规定执行任务。如果出现错误的指令那么将会对引出不准确的结果。 (二)可读性 算法一定要具有可读性的原则,只有可读性才能让人对算法一目了然,如果算法过于复杂和晦涩会让人难以理解原理。 (三)稳定性 算法的稳定可以使得计算机在运用时的稳定性能的保持,试问如果计算机在运行的时候总会出现错误,给人的感觉整体下降。稳定性对于算法来说至关重要,同时对于计算机的规范使用也至关重要。 (四)高效低耗能性 计算机内部器件的好坏对于计算机性能的高低具有决定性作用。算法亦如此,好的算法可以在最短的时间得出答案并且使用最低的耗能得出答案。 四、计算机软件基础数据之算法的复杂性分析 (一)运行时间长 一般设计者并不是根据计算机的算法衡量时长,算法运行的载体依然是计算机,因此计算机地运行速度是受很多因素的影响的。一样的计算法在不同的载体上会产生不一样的效果,这一效果并不是对算法效率的评判而是表现在时间的耗损上,耗损程度作为评价算法的好坏标准。 (二)内存消耗 内存消耗指的是计算机在运行算法时需要用到空间大小的尺度。内存消耗有传入传出信息所占的内存以及算法在运行过程中暂时占用内存的大小。传入传出信息占据的比例和问题相关,并不会随着算法的变化而变化,在运行过程中暂时性占用的内存大小往往是由算法决定的,好的算法可以占据比较小的内存,相反坏的内存则会占据教的的内存。 五、结束语 计算机在近年来以及其迅速的脚步占领各个行业,计算机软件基础数据结构之算法是学校者了解计算机数据结构的基础,通过对它的学习可以帮助学生更科学的认识到计算机的运行情况,并且使得学习者更好的掌握。本文从计算机软件基础数据结构之算法概述,计算机软件基础数据结构之算法的设计要求,以及计算机软件基础数据之算法的复杂性分析进行了相关的介绍。 计算机软件基础论文:计算机软件基础数据结构之算法分析 摘 要:计算机软件的基础数据结构,主要负责讲解计算机内信息的寄存方式、集合和整理,通常是与算法密不可分的。算法是能够被计算机分辨和识别的指令,指令的内容就是通过计算机软件基础数据结构来进行寄存的信息。数据结构的算法分析,可以使计算机处理比较复杂的难题,提高了效率,本文对计算机基础数据结构的算法进行了分析。 关键词:计算机软件;基础数据结构;算法分析;复杂度 1 算法的概述 1.1 算法两要素 算法主要包括两部分:信息的处理操作和信息处理方式的操作结构,对信息的处理操作一般包括逻辑符号、数学计算、信息传递和信息对比,操作结构可以指引指令有序进行,通常用流程图来描述。 1.2 算法的主要特征 有限指令的主要部分就是算法,有限指令能够明确处理问题的步骤。面对问题,算法能够对各种定值指令进行预算处理,通过运算传达最后的计算结果。算法的特点主要为:指令的数量必须有限;指令不能超出计算机的能力范围;被处理的对象不受指令影响,对象数量不影响指令,必须要有至少一个传递末端。 1.3 算法表示方法 目前编译算法一般都用符号和文字来进行,主要包括程序图、C语言、PAD图,一般性文字等。C语言和一般性文字能够具体详细的描述算法,其他方法描述算法是大致内容并进行作图,更加直观的表达,便于学习理解。 1.4 常用的算法 常用的算法主要包括枚举法、迭代法、递推和递归法。枚举法内容是指通过信息特点对运行结果的可能区域进行估计,然后利用一些方法手段检查各个结果,直到所有结果都符合。在验证过程中,验证对象如果满足算法要求,这个验证对象就是最终计算机传递的结果,如果没有达到要求的对象,那么算法就无解。迭代法是一种较为粗略的方法,可以把麻烦复杂的问题转化为较为简单的迭代式子,通过循环这个步骤,达到由繁化简并最终得出答案的目的,该法适合非数值类问题的计算。递推法和递归法是主要的算法制定编写法,都通过运用特殊公式逐项推导而来的。 2 算法设计要求 算法像语言一样,是计算机和人类沟通时的语言,通过算法,人们不仅可以跟计算机进行交流,还可以按照指令执行任务。因此所有的指令必须要符合一定的行为准则,算法的设计要求主要包括以下几点: 2.1 具有正确性 设计者编译指令时必须要按照算法的规则来进行,从而保证人和计算机正确的交流,保证计算机执行好任务。正确性中最重要的就是避免语法错误的出现,从而能够为正确答案的得出做好准备。 2.2 具有可读性 算法具有可持续性,是指算法总体思路容易让人理解,是想一下,一个非常混乱的算法,即使再聪明的人也很难明白算法原理的,更不用说得出计算机答案。 2.3 具有稳定性 就像机械设备似的,如果工作状态不稳定,那么就会很容易出现难懂奇怪的问题,算法如果不够稳定,计算机在正常运行的时候,也会很容易出现错误。经常出现的错误就是乱码,就会让人感觉像是算法存在严重问题。 2.4 具有高效低耗的性能 计算机性能的好坏取决于内部的器件好坏,算法也是这样的。好算法可以用最低能耗最短时间来得出答案,计算机内部的工作原理可以决定这些因素,其中最主要的就是存储大小和运算速度的联系。 3 算法复杂度的分析 算法复杂度决定了一个算法执行并得出结果需要的总时间,设计者通常是根据算法复杂度来判断对算法的总效率来进行判断的,这是因为时间的消耗和算法需要的内存情况是直接联系挂钩的。评判者主要是依据运行的时长以及内存的消耗来进行判断的。下面就简要介绍一下运行时长以及内存消耗: 3.1 运行的时长 通常来讲设计者不是依据算法的总运行时间来衡量时间长短的,这是因为计算机仍然是算法正常运行的载体,计算机的运行速度跟许多因素有关,例如计算机的运行环境、计算机内部使用损耗等。因此,同一种算法在不同的计算机运行载体上运行的效果也是有很大差别的。一般来说,计算机运行时长的大小不是衡量算法效率的一种标准,而是判断算法运行时间损耗的一项指标,能够在一定程度上评判算法运行的好坏。 3.2 内存的消耗 计算机运行算法,会暂时占用相关的空间,被占用的空间大小尺度就是常说的内存消耗,内存消耗与相关的函数紧密联系。内存消耗主要内容是传入和传出信息占用的内存、算法在运行过程中暂时占用的内存等。传入和传出信息占用的内存跟需要解决处理的问题是相关的,不会因算法变化而变化;算法运行中暂时占用的内存大小是由算法来决定的,不同的算法需要不同的内存,因此,比较好的算法需要的内存也比较少,这也是内存消耗成为评判算法好坏的又一个非常重要的标准。 计算机软件基础论文:计算机软件技术基础课程教学探讨 摘 要:针对计算机软件技术基础课程的内容与特点,探讨了传统教学中存在的不足,提出几点行之有效的教学改革方法。这些方法在实践中取得了实效,对该课程的教学改革具有一定的意义。 关键词:计算机软件技术基础 课程 教学改革 计算机软件技术基础是为非计算机专业开设的课程,该课程是后续课程的基础,涉及内容比较广泛,包括数据结构、操作系统、数据库系统、计算机网络、软件工程技术、管理信息系统等内容,具有很强的理论和实践性。本课程有如下三个难点。 (1)该课程的内容多、跨度大、学生把握重点有些困难。 (2)计算机软件技术基础是一门内容综合的课程,涉及的知识面广,学生对基础课程的知识和理解程度有所差别,授课中比较难掌握。 (3)计算机软件技术基础是一门应用性很强的课程,需要理论与实践相结合。 针对以上难点问题,本人分析了目前该课程在授课中普遍存在的问题,并从实际要求出发,对计算机软件技术基础课程的教学改革进行探讨。 1 计算机软件技术基础课程存在的 问题 (1)目前,大多数老师采用常规的灌输式教学方法,以教师讲授为主,学生处于被动的学习接受状态,缺乏对课程学习的兴趣和主动性,启发式教学没有充分运用。 (2)有时为了增强学生的兴趣和信心,往往较低教学难度,大部分时间讲授基本概念,而对程序设计和调试技巧等较深的知识只是点到为止或者避而不谈。导致大量学生学完本课程,只会背诵几个基本概念,并没有真正掌握程序设计的很多精华思想和编程技巧,更没有了解软件是如何管理计算机全部资源的。 (3)计算机软件技术基础实验课在机房内进行验证性实验,实验时教师只是把实验目的、具体程序、程序实现的功能等内容介绍给学生,学生直接输入程序代码,然后获取实验数据,验证理论知识。这样,学生只是机械的进行程序录入,不用独立思考,所以不能深入细致的分析和调试, 2 课程教学改革 (1)教师主导性和学生主体性相结合 充分调动学生学习的主动性,引导学生自觉的学习和发展,教学过程实质是教师教和学生学的互动,只有这样,才能使师生之间和学生之间教学相长、信息交流,从而达到知识与兴趣共存,进而实现教学共赢。课程教学过程中,采用启发式教学,随时了解学生对知识点的理解和掌握,调动学生学习的热情。 (2)采用案例引导式教学 在课堂理论知识的讲授中,尤其是讲解新知识时,采用实际的案例进行演示说明,把学生带入特定的情景中进行思考;在演示过程中,逐步引出各个相关概念,加深学生对基本概念与原理的理解,进而提高学生运用理论知识分析和解决实际问题的能力。 案例引导的课程教学,能为学生在理论和实践之间搭起一座桥梁。学生带着多个基本概念和知识点的任务通过生动形象的案例进行学习,既容易激发学生的学习兴趣,又有利于学生迅速掌握抽象、枯燥的概念,以及各相关知识点之间的内在联系。在讲授的过程中循序渐进、环环相扣,优化教学内容。 (3)注重实践环节 对于计算机软件技术基础这门实践性特别强的课程,必须把理论课和实验课结合起来讲解才能培养学生的能力,而且实践教学不再是理论教学的附属,它与理论教学同等重要,学生可以通过实验课的练习领会理论教学中所学的知识,在上机的指导过程中,不仅要指导学生软件设计的基本方法、程序调试的基本技巧,还要对学生思维方式进行引导。对实践环节中的软件设计从“给定题目”―“具体分析”―“解决问题”―“程序实现”―“运行调试”的整个过程进行全方位的启发。使学生掌握软件设计的基本思想,知道如何思考问题和解决问题. 3 结语 计算机软件技术基础是一门理论与实践相结合的课程。该文针对该课程现有教学中存在的问题,提出了改进方法。实践证明,该方法取得了良好的教学效果,能够帮助学生系统掌握课程知识,切实提高实践能力。 计算机软件基础论文:计算机软件技术基础课程教学研究 【摘 要】本文阐述了计算机软件技术基础课程教学特点和教学目的,针对课程教学现状,分别从明确教学目标、丰富课堂教学手段、巧设学习情境和构建良好师生关系等几方面对计算机软件技术基础课程教学策略进行了探讨。 【关键词】软件技术基础 课程教学 研究 一、引言 科学技术的飞速发展,使计算机技术在社会生活各个领域得到了广泛的应用。计算机软件技术基础是高校计算机基础教学中的重要内容,随着《关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求(试行)》 的出台,国家对计算机基础教学提出了新的要求,即打破传统教育模式,以人为本,学生为主体,造就既精通本专业基础知识,又能掌握计算机应用技能的复合型人才,达到素质教育的培养目标。 计算机软件技术理论,是学生学以致用的基础,其涉及的知识面广、概念多、原理复杂和抽象,理解上会有一定的困难。因此,从计算机教学出发,对计算机软件技术基础课程教学知识体系、教学模式和教学方法等进行深入的分析和研究,寻找科学的教学方法,全面提升学生软件开发应用技能和解决实际问题的能力,为学生终身可持续发展提供更为广阔的空间,就显得尤为重要和迫在眉睫。 二、计算机软件技术基础课程教学特点和教学目的 计算机软件技术基础课程既是集计算机网络基础、操作系统、数据结构、软件工程以及数据库等多门专业课为一体的综合课程,涉及面广,内容相对独立,也是一门理论与实践结合性较强的课程,其线性结构、非线性结构、图、查找、排序等数据结构与算法之间关系复杂。教学中,应针对应用实例,对编程中常用的算法给予重点讲解,对典型数据结构数据元素的集合关系以及基本运算展开教学研究和深入的讲解。 计算机软件技术基础课程的教学目标,是用科学的方法引导学生,通过课程学习,既掌握计算机软件技术基本理论知识、具备开发应用软件所必需的软件基础知识、懂得高级编程语言知识、丰富编程技术和基本算法,又熟练运用程序设计的思维和方法,使其软件素质得到提高,抽象思维能力,灵活运用高级语言进行程序设计和动手编程解决实际问题的能力得到加强。 三、计算机软件技术基础课程教学现状分析与对策研究 (一)现状分析 基础知识不扎实。学生计算机知识较薄弱,尤其是该课程是以概念多、抽象而复杂的“C语言程序设计”为基础的学科,理论知识多、应用层面的内容相对较少,学生难以理解的同时,感觉枯燥乏味,产生畏难情绪,加重了思想包袱,严重影响了学生的学习热情。 教学方法单一。缺乏先进的教学理念的指导,教学策略上缺乏创新,沿袭着“你教我学”的教学模式,学生始终处于被动学习的地位,积极性受到压抑,自身创造力和潜能未能得到有效发挥,知识传输与能力培养相互割裂。 课时限制。该课程知识点较多,课程学时安排较短,教师偏重基本理论讲解,学生在短时间内难以消化吸收包括数据结构、操作系统等繁杂的基本概念,而程序设计和调试技巧等实践性较强的部分往往因课时限制只能点到为止,学生无法体会课程的乐趣,更无法进行深入研究,严重影响了教学目标的实现。 (二)对策研究 明确教学目标。摒弃传统教学方式,倡导以学生为中心,注重学生知识水平和技能的培养。教师应对计算机软件技术基础有一个全新的定位,在对教材知识点内涵与外延正确把握的基础上,精心设计和巧妙安排学生易于接受的课堂教学活动,准确驾驭计算机软件技术基础课堂教学,将“任务驱动法”、“合作学习法”等优秀教学方法组合运用,创设探究情境,激发学生的学习热情,使其对操作系统、 数据结构、 数据库技术等功能和运用产生浓厚的兴趣,不断提高学习能力。 丰富课堂教学手段。以“任务驱动法”为代表的互动教学法,是上世纪80年代后逐渐发展成熟的实践型教学方法,是国内外运用较多的、先进的教学理念。它是让学生在“做中学”,通过学生的参与和体验,在完成任务过程中主动地去分析和思考问题,加深对知识的理解和感知,共同探讨解决问题的方法,进而达到对知识、技能的理解和掌握,既增强了知识点的融会贯通,也强化了学生主动积极的学习意识。 巧设学习情境。软件技术基础课程教学目的,是让学生打破常规,启迪思想,通过探索、实践,掌握理论知识并能灵活地加以应用。“情境教学”正是基于这一先进思想的教学方式。如学习语言编译时,使用“栈”可实现函数过程的调用。当计算机输出数据打印时,打印机速度慢,为解决这个问题,教师安排学生们分组讨论,最终在操作系统中设一个打印队列,将打印任务逐个完成,避免了数据丢失或打印次序混乱。任务进行过程中,学生们热情高涨,积极思维,体会知识的奥妙,深刻认识到了这门课程的意义和作用,同时小组成员团结协作,焕发出可贵的集体智慧,在目标实现过程中体验成功带来的巨大喜悦。 构建良好师生关系。教师传道授业,是学生学习的组织者和倡导者,更应成为学生的良师益友,将抽象的、枯燥的软件技术基础,用实用化和情趣化的现代教学思想巧妙呈现,产生共鸣、碰撞智慧的火花,使学生充分感受学科魅力,从而启迪心灵,放飞思想。当学生暴露出畏难或厌烦情绪时,教师应给予最大限度的宽容和理解,并用科学的思想加以引导,鼓励他们打破常规、迎难而上,与学生共同完成知识点的跨越。 四、结论 综上所述,打造充满生机和活力的计算机软件技术基础课程教学,是新时期高校教学的需要,也是实施素质教育的关键。只有对教学现状进行深入的分析和研究,采用科学的方法正确梳理教学思路,将优秀的现代教学思想融入计算机软件技术基础课程教学,优化教学过程,才能实现教学相长,不断提高计算机软件技术基础课程教学的实效。 计算机软件基础论文:计算机软件技术基础课程的案例建设 摘要:案例教学能有效提高学生分析问题和解决问题的能力,是现代教育的常用教学方法之一。文章分析案例教学中的案例特征,以实际工程项目的一个子系统为背景,设计实时仿真监视系统案例并介绍案例的具体建设情况,指出该案例对提高学生的学习兴趣以及分析问题和解决问题的能力具有明显的效果。 关键词:软件技术基础;案例教学;案例建设;实时仿真;监视系统 1、计算机软件技术基础课程中案例教学的必要性 计算机软件技术基础是仿真工程与自动化专业的核心课程之一,是一门应用性很强的专业基础课。该课程是整合课程,主要包括c++面向对象程序设计、算法与数据结构、操作系统、软件工程等方面的内容,知识庞杂且难以掌握。学生在学习该课程之后常常感到困惑:所学知识有什么用,怎样运用所学知识?一些学生虽然能够在考试中考出高分,却不知道怎样解决实际问题。如何使学生认识所学知识的用途,融会贯通并灵活运用,是这门课应重点考虑的问题。目前,案例教学在法律类和管理类课程教学中的地位和作用已在教育界达成共识。教育部高等学校计算机科学与技术教学指导委员会于2006年6月了《关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求(试行)》白皮书,明确指出在教学方法和手段上运用案例教学的必要性,因此,将案例教学作为一种教学方法引入工科类课程的教学,具有可行性和必要性。 2、认识案例 案例教学法就是在教师的指导下,根据教学目的和要求,以案例为基本素材,把学生带人特定的教学情境中进行思考,以此加深学生对基本原理和概念的理解,进而培养并提高学生运用理论知识分析问题和锯决问题能力的一种教学方法。 案例是案例教学的基础,离开了案例,案例教学就无从谈起。案例与一般教学中的例题有着本质区别,案例教学中的案例是将多个知识点融人一个整体来解决实际问题,涉及的知识面广,知识间具有连贯性和系统性,涵盖的知识具有综合性的特点,知识和原理蕴藏于案例之中。一般教学中的例题往往是配合某一章节或某一知识点,从某个角度、某个方面或某个层次反映所学理论和方法,起着验证和说明作用,常常带有为讲知识而杜撰例子的痕迹,各个例题之间相对独立,涵盖的知识单一,知识和原理孤立地呈现在学生面前。一般说来,工科类课程的案例应具有以下基本特征。 1)真实性。 客观真实性是案例的基本特征。教学案例应源于真实,取材于工程实际或科研课题,但是又要高于真实。为了突出主题,可以对真实做一定的删减处理。 2)综合性。 案例应是综合知识的载体,既要以学生已掌握的知识为依据辐射足够多的知识点,又要在匹配教学内容的基础上对知识有一定程度的扩展。 3)完整性。 案例是完整过程的载体,涉及了解背景、查询资料、分析信息、发现问题、探求方法、采取行动、解决问题的全过程。 4)启发性。 案例教学着眼于能力的培养,希望得到的不是案例的标准答案,而是解决问题的思维方法和能力。案例中,解决问题的方式是开放性的,可以留给学生想象的空间和发挥的余地。 5)实践性。 学生可以对案例进行复现、改进和完善,也可以按照自己的思考去实现,增强理论应用于实际的能力,实现从理论到实践的转化。 3、案例建设 案例教学的前提是高质量的案例,高质量的案例既要覆盖足够的知识,又要控制合适的规模。规模过小,则不能溶入足够的知识,也不能提供足够的研讨与思维空间;规模过大,则在短时间内难以被学生接受,不能得到预期的教学效果。笔者以实际工程项目卫星实时仿真系统的一个子系统为案例背景,在突出主题的前提下,进行了适当的详略及删减处理,形成了“实时仿真监视系统”案例。 3.1 案例背景简介 卫星实时仿真系统能够对卫星的方案、设计、集成、测试和运行各个阶段进行仿真验证,是提高卫星总体设计水平的重要手段,其网络关系连接如图1所示。在此系统中,仿真模型解算、物理设备接口等苛刻实时约束的节点通过反射内存互联,构成实时内环,外环则通过普通网络互联,将人机交互、可视化、数据处理等实时约束弱的节点互联,内、外环都可以根据需要扩充且内环不受外环影响,苛刻实时得到保障。转发计算机完成内存数据的提取并转发外环,仿真管理计算机则同时管理内、外环系统。卫星仿真监控是卫星实时仿真过程中的重要一环,它将抽象的仿真活动形象化,并及时将信号数据以各种方式反馈给用户,以利于用户分析、理解和决策。卫星实时仿真监控系统,能够模拟通过控制、监视和测量星上设备的工作状态实现实时连续地记录工作过程、测试数据和描绘曲线。图1中,人机交互计算机、曲线显示计算机和三维显示等外环计算机共同实现仿真监视功能。我们将人机交互计算机和曲线显示计算机的功能提取出来,要求系统具有一定的通用性,能够适应不同监视任务和不同数据类型,形成“实时仿真监视系统”案例。 3.2 实时仿真监视系统案例 实时仿真监视系统的工作原理为:转发计算机完成内存数据的提取并转发外环,外环上的实时仿真监视系统首先进行初始化,随后自动生成系统主界面。系统支持两种运行模式:监视模式和回放模式。在监视模式下,系统既要处理主界面信息,又要处理网络数据。主界面信息的处理包括响应用户交互消息、更新实时监视界面、实时绘制曲线;网络数据的处理包接监听网络端口,接收、解析和保存数据包,将有效数据写入共享数据结构,供给系统绘制曲线。在回放模式下,不再需要对网络进行监听,直接读取监视模式下保存的原始数据文件,然后进行相应处理即可。 为实现上述目的,使系统具有一定的通用性,我们设计了如下方案: (1)在软件工程思想指导下,进行需求分析、总体设计、详细设计、编码实现以及综合测试。通过该案例,让学生对软件工程思想指导下的软件开发全过程有一个感性认识; (2)采用多线程技术实现监视模式下的主界面信息处理和网络数据处理,仅用单线程实现回放模式; (3)设计一个数据包发送测试程序,模拟转发计算机的功能。 为此,我们结合本课程的基本知识点将系统的主要功能模块划分为界面管理和数据处理两大部分,界面管理部分主要承担主界面信息的处理,数据处理部分则主要负责数据的处理。 3.2.1 界面管理 系统运行过程中始终需要对系统主界面进行管理。从运行初期的生成主界面,到运行中的监视过程的显示,再到最终的系统结束,都需要对主界面进行即时的调整。为了提高通用性,系统采用基于配置文件的方式,通过用户提供的配置文件,动态改变系统监视任务,也就是说,系统能够改变每次运行时的任务,主界面显示的内容具有不确定性。 1)读取配置文件,获取初始化信息。 系统运行之前,需要进行初始化,这就需要系统读取配置文件,包括全部信号、实时显示信号、数据包类型等配置文件。用户必须按照约定的正确格式提供配置文件,否则系统有可能无法正确识别相关信息。从软件工程的角度,配置文件的设计与确定应在总体设计阶段完成。配置文件的类型、组织方式以及数据正确性的检验,都是学生可以自由发挥和扩展的内容。 2)自动生成实时监视界面。 监视对象的不确定性使得系统的监视界面无法固定,然而,不能将界面的生成工作完全交给用户完成,这就需要设计一种适用于不同监视任务的界面生成算法,使系统将界面生成工作承担下来。另外,系统界面的尺寸等信息是用户所不知道的,因此被监视的信号在系统主界面中的显示位置无法由用户设定,这就需要系统自己完成界面的排布任务。因此,要求设计一个具有较强通用性的监视界面自适应生成算法,这部分涉及算法设计和计算机系统配置的获取等基础知识,算法设计是学生能够自由发挥并出彩的部分。 3)定时更新监视界面。 为了实现实时监视功能,系统需要对监视界面进行定时更新,以显示当前被监视信号的实时数据。为了满足用户的不同需求,系统提供0.5s、1s、2s三种刷新频率。系统可以根据用户选择的刷新频率对主界面进行更新。这部分主要涉及定时器的使用。 4)处理用户交互消息。 系统需要对用户的交互消息进行处理,主要为鼠标消息,包括运行模式的切换、仿真的开始与结束、加载历史数据包文件等。这部分涉及所选编程环境下的消息响应机制问题。 3.2.2 数据处理 系统在运行过程中,需要对数据包进行接收、解析和存储,还要为曲线绘制提供原始数据,因此需要设计一个专用的数据结构。 1)接收网络数据包。 在监控模式下,系统既要处理主界面信息,又要通过网络接收数据包。为了避免“漏掉”数据包,系统必须对网络持续进行监听。如果主线程将大量时间用在网络监听上,势必无法对用户的交互做出及时响应。因此,需要将数据包的接收放在一个单独的线程中。这涉及操作系统进程管理的相关概念,是多线程程序设计技术的典型应用;也涉及网络通信技术,需要了解网络通信协议等相关知识。 2)解析数据包。 在接收到数据包后,需要将数据包内的数据进行解析,获得数据包内的数据,将最新的数据更新至系统对应的变量中,以供实时显示。解析数据包涉及网络通信程序设计技术。 3)保存原始数据包。 系统要求有回放功能,因此需要将接收到的数据包写入文件,进行永久保存。数据包的保存有两种方式:解析后按段保存和作为整体进行二进制保存。第一种方法耗时,需较大工作量。第二种方法简便,工作量小。显然第二种方法更适合本系统。由于系统必须适应两种类型的数据包,因此,进行数据保存时,采用以形参类型为区别的方式进行同名函数的重载,实现两种类型数据包文件的存储。这部分功能涉及C++面向对象程序设计中的重载技术以及文件操作技术。 4)读取数据文件,获取数据包。 在回放模式下,系统不再对网络进行监听,不进行数据包的接收,需要通过读取之前保存的原始数据包文件获得数据包。原始数据包文件保存的是二进制形式的数据包,系统每次读取之后需要对数据包进行解析,这与接收到数据包的过程是一样的,不同之处在于回放过程不再需要将数据包进行保存。这涉及C++面向对象程序设计中的文件操作,同时,通过监视模式下的多线程程序设计与回放模式下的单线程程序设计的对比,使学生真切感受并理解多线程程序设计技术及其应用场合等。 5)共享数据。 系统嵌套了曲线绘制模块,因此,数据处理与曲线绘制之间需要有一块共享数据内存。在收到数据包并解析后,马上将有用的信息写入该共享内存。写入操作由数据包接收线程处理,读取操作由主线程内的曲线绘制模块完成,因此,需要对两个线程进行同步。这涉及数据结构的设计和操作系统的同步与互斥。 6)快速查找。 系统支持大数据量下的仿真监视,对数据的快速查找有较高的需求,因此,需要设计支持快速查找的哈希表数据结构,包括哈希函数的确定、冲突的解决等,这涉及数据结构的哈希表技术。 4、结语 “实时仿真监视系统”案例,涵盖了软件工程、c++面向对象程序设计、算法与数据结构、操作系统和网络通信等计算机软件技术基础课程及其先导与后继课程的知识点,是一个与学生所学专业密切相关的实际应用系统,容易引起学生的兴趣,也容易被学生理解和接受。这样的案例既与教学目标相吻合,又便于教师驾驭和把握。 从学生反馈的情况看,学生普遍认为,案例教学法方式新颖,实时仿真监视系统案例与专业基础结合紧密;能引导学生积极思考,提高学生的学习兴趣以及分析问题和解决问题的能力。该案例在教学过程中取得了明显的教学效果。 为了更好地开展案例教学,我们必须把建设高质量的案例作为重点来抓,选择合适的案例背景,制定合理的案例建设计划。实践证明,只有经过长时间的积累、认真的思考、精心的选择和多次教学实践,才能获得高质量的教学案例;只有经过团队的长期努力,才能建设高质量的教学案例库。 计算机软件基础论文:基于 Flex的《计算机软件基础》电子教案系统的应用研究 摘要:针对当前《计算机软件基础》电子教案开发中存在的问题,在调研了各种多媒体支持比较好的开发技术的基础上,结合多年的教学实践,提出了基于Flex 和 AIR 技术平台的《计算机软件基础》电子教案系统开发的技术解决方案。该系统提高了课程教案的可复用性和可维护性,实现单机运行功能和网络化功能,顺应了电子教案的网络化发展趋势,克服了传统 PPT 在课程电子教案制作方面的不足。 关键词:计算机软件基础 电子教案 RIA Flex 电子教案,是将传统教案中的内容转换成计算机能处理的数字信息格式后存储于记录介质(如磁盘、磁带、光盘等) 中的一种形态。同其他的电子出版物一样,在观看阅读时必须事先输人计算机主机中,由显示器输出。目前课堂上比较流行的电子教案一般有两种类型:PPT 教案和 WORD 教案,调研中发现在《计算机软件基础》课程教学当中 PPT 教案使用的比例非常高。与传统教案相比,电子教案不仅仅是形式上的变化,而是对传统教学手段、教学方法和教学模式的深层次变革。在教学过程中有效运用电子教案是新课程改革的必然要求、是教育现代化的必然要求、也是未来社会发展的必然要求。 《计算机软件基础》作为工科专业的必修专业基础课程之一,主要介绍了程序设计语言、数据结构和软件工程基础知识,强调基本算法的理解和运用。传统教学无法演示程序设计实践和算法演示,充分利用多媒体、网络技术发展带来的契机,采用新的教学模式改进原来的以教师讲授为主的单一课堂教学模式是课程发展的趋势。 一、现有《计算机软件基础》电子教案开发中存在的问题 软件复用是一种由预先构造好的、为软件复用是一种由预先构造好的、为复用目的而设计的软件构件来建立或者组装软件系统的过程。目前用 PPT 等软件开发的《计算机软件基础》电子教案的大部分内容是直接打包在一起的,用户根本看不到动态演示过程,也没法对内容进行修改,所以根本就谈不上软件的复用,网络共享也困难。目前少数一些用Authorware,Director,Flash 和 Html 等软件开发的《计算机软件基础》电子教案,由于在打包或时把教学内容和程序放在一起,一般没有计算机培训的用户根本就没有办法对其进行修改。由于现在网络的快速发展,基于 PPT 等开发工具开发出来的电子教案都不支持网络浏览,这样不利于课程电子教案内容的及时更新。同时,PPT 要做出很强的交互性需要熟悉它的脚本开发,而 PPT 的交互设计能力不强,限制了教案的二次开发能力,使得教师的教学活动设计和组织受到现有电子教案的约束,很难达到理想的教学效果。 二、系统整体设计结构 电子教案系统总体上被分为两大部分,一个是电子教案的编辑器部分,另一个是电子教案的内容前台展示部分(播放器功能)。编辑器部分的界面设计要力求简洁明了,逻辑结构清晰。播放器部分是教师上课时用来展示教学内容的程序,它包括导航部分、内容展示部分、以及电子白板。系统的功能需求主要集中在图文混排、多媒体支持、用户交互、编辑和修改、文字批注和电子排版等功能。 系统总体上采用由电子教案编辑器和播放器两部分组成,电子教案编辑器在完成电子教案内容的制作后导出素材内容,打开播放器播放电子教案。 编辑器主要是为电子教案的制作人员提供添加和修改课程电子教案内容的功能。编辑器部分包括电子教案文件处理部分,电子教案逻辑的设计,具体的每个页面内容的添加和页面相关属性的设置。其中文件处理部分对电子教案进行新建、打开、保存;逻辑结构对电子教案内容之间的逻辑结构进行安排,使其符合电子教案整体的结构或教师教学的具体要求;页面内容的添加负责在页面中添加具体的教学内容素材,如图片、文本、音频、视频等;页面相关属性的设置对页面背景颜色和背景图片的添加和修改,对页面切换效果的设置。另外还有具体的媒体素材的风格设计,同时还提供备课时添加批注的功能。播放器通主要负责对编辑器生成的电子教案素材文件的展示,供教师上课使用。播放器的交互设计和 PPT 类似,保持了 PPT 的一些版面设计风格和快捷键操作等。另外播放器提供弹出式导航栏,方便教师上课时的导航操作,每种素材对象都有自己特定的交互方式。编辑器打包把播放器和电子教案素材内容放在一起,播放器在打开时会调用同级同名文件夹里的 XML 文件和素材文件。 三、主要模块实现 1、电子教案文件操作模块 该模块在设计时把电子教案文件作为一个整体内容来进行新建、打开和保存。新建电子教案时对原有已打开电子教案的处理,如果用户对已打开电子教案做了修改,但是未保存,会提示用户先保存,然后再新建电子教案文件。 作为该系统的重要模块之一,内容结构编辑模块的设计要方便用户对电子教案文件的逻辑结构进行编辑和修改。本系统采用树的数据结构来标示电子教案的内容结构,不仅结构清晰,而且操作方便,符合一般用户的习惯。 该树形结构的节点可以拖动以调整节点的位置,在节点上单击右键会弹出右键菜单,包括对节点的添加、复制、粘贴、删除和修改等操作。 四、总结 《计算机软件基础》电子教案设计和开发的过程中,不仅使电子教案结合了桌面应用良好的用户体验与网络课件轻松部署,带给用户更好的交互体验。该系统实现了电子教案对网络的支持,提高了教案的可重用性和可扩展性。本系统结构在细节上还有部分可以改进和提高的地方。比如系统定义的各种资源素材 XML 表示文档没有遵循 Scorm 技术标准,给以后电子教案素材内容网络复用带来不便。 计算机软件基础论文:计算机软件开发基础知识浅析 一个软件从开始计划到废弃为止,称为软件的生存周期。它包括计划、开发和运行三个周期,每一时期又可细分为若干个更小的阶段。计划时期为问题定义和可行性研究;开发时期为需求分析、概要设计、详细设计和编码;运行时期为测试和维护。我们在开发软件项目时,要做到系统计划、分析、设计、编码、测试及维护等基本的六大步骤。软件开发首先从制定计划开始,这是必不可少的一步,在制定计划时,要准确地弄清软件项目最终要解决的问题,并考虑相应的对策,宁愿花一些时间充分作好计划,也不要在计划不周的情况下仓促着手。 一、系统计划:它包括系统定义及分析、可行性研究和实施计划报告的编写。1、系统定义是制定软件计划的第一步,它应决定所开发软件的总目标,其任务包括首先是确定所开发软件的总体要求和适用范围,描述所开发软件与外界接口的关系;其次是确定所需硬件和软件的支持,对开发的进度和成本作初步估计;第三是分析系统的可行性是否确定所开发软件与原软件的兼容性或其它关系;最后是确定所开发软件的性能与其内部复杂性之间的折中关系。2、可行性研究它包括技术可行性、经济可行性及社会可行性方面。技术可行性是研究应弄清现有技术条件能否顺利完成开发工作,对参加开发工作的人员应有哪些技术方面的要求。硬件配置能否满足开发的需要,估计的进度是否恰当以及对用户的技术方面的要求是否合理等等;经济可行性研究的目的是希望以最小的开发成本取得最佳的经济效益的软件产品;社会可行性研究则是指所开发的软件项目是否涉及到版权纠纷等法律问题,这样的软件产品投入运行后,对生产、管理或经营体制带来有什么社会影响。3、实施计划报告的编写是开发进度、人员投入计划、人员的组织及其资源的利用作个计划报告提纲。 二、系统需求分析:需求分析的任务在于完全地弄清用户对软件系统的确切需求,它具有三大特点:准确性和一致性;清晰性和没有二义性;直观、易读和易于修改。比如,你首先要知道做这个项目是为了解决什么问题;测试案例中应该输入什么数据等等,为了清楚地知道这些需求,你经常要和客户、项目经理交流等。需求分析的步骤:1、通过对现实环境的调查研究,获得当前系统的具体模型;2、去掉具体模型中的非本质因素,抽象于当前系统的逻辑模型;3、分析当前系统与目标的差别,建立目标系统的逻辑模型;4、对目标系统进行完善和补充,并写出完整的需求说明;5、对需求说明进行复审,直到确认文档齐全,并且符合用户的全部需求为止。 三、系统设计:主要分成两步即概要设计(总体设计或结构设计)和详细设计。概要设计阶段应着重解决实现需求的程序模块设计问题,如何把被开发软件系统划分成若干模块,并决定模块的接口,模块间的相互关系以及模块之间传递的信息。详细设计则是要决定每个模块内部的具体算法。经概要设计和详细设计完成后,需要进行必要的阶段评审,其目的在于使设计发生问题能够及时发现并得到及时的解决。实际上软件设计的主要任务是就是将软件分解成模块,该模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。 四、系统编码:系统编码即编程序是软件开发的最终目标,是产生能在计算机执行的程序,其目的是使用选定的程序设计语言,把模块的过程性描述翻译为用该语言书定的源程序。实质上,软件=程序+文档。编码的目的是产生程序,其余阶段是产生文档。软件编码是指把软件设计转换成计算机可接受的程序,写成以某一程序设计语言表示的“源程序清单”。能充分了解软件开发语言、工具特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。 五、系统测试:包括测试的方法与技术和测试步骤。测试在软件生命期中占重要地位,不仅是因为测试阶段占的时间、花费的人力和成本占软件开发的比重很大,而且它直接影响着软件的质量。程序中许多细微的地方要求绝对正确无误,不能半点马虎。软件开发工作在测试以前已经历了制定计划、需求分析、设计和编码等许多阶段,每一个人的思维不可能绝对周密,而不可能不出现差错,更不用说,在大中型软件开发项目中,系统内各部分之间、各种数据之间、各种人员之间存在着复杂的关系,因而目前可采用的开发方法都不能完全避免发生差错。1、测试的方法与技术主要是机器测试与人工测试和白盒测试与黑盒测试。机器测试是在设定的测试数据上执行被测程序的过程,又称为动态测试。人工测试并不是可有可无的,为了节约计算机机时采取的权宜措施。它是机器测试的准备,也是程序测试中不可缺少的环节。而白盒法和黑盒法主要依据是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部、外部借口、资源管理、集成化以及系统错误。2、测试步骤。分单元测试(模块测试)、综合测试、确认测试和系统测试四部分组成。它是整个计算机系统(包括软件与硬件)的测试,可与系统的安装和验收结合进行。测试的目的是让你知道,什么时候算是完成了,这样可以及时知道你是否真的完成。 测试是软件开发时期最繁重的任务,也是保证软件可靠性最主要的手段,测试的目的是发现程序的错误,而不是证明程序没有错误,软件的测试通常分散在3个阶段进行。编码阶段完成单元测试,包括静态分析与动态测试。 六、软件维护:当软件产品交付使用后,就进入生存周期的最后一个时期——运行时期。必须搞好软件的维护,才能使它正常工作,还使它扩充功能、提高性能,为用户带来显著的效益。一般软件维护工作包括三个方面的内容:改正性维护、适应性维护和完善性维护。在软件生存期中,维护工作是不可避免的,按照不同的目标,维护活动可以分为四类:1、以加强软件功能为目标的完善性维护;2、纠正软件遗留错误的纠错性维护;3、为了适应运行环境变化而进行的适应性维护;4、以及为改进软件的可维护性,减少将来的维护工作量而进行的预防性维护。软件的可维护性,主要决定开发时期的活动,用软件工程的方法来开发软件,编制齐全的文档,严格进行软件测试和阶段复审,是改善软件可维护性、降低维护费用的关键。要加强对维护的管理,尤其是配置管理。有效地对软件配置进行跟踪和控制,避免造成文档的混乱。为确保维护中修改的正确性,消除因修改不当给拥护带来的不良影响,要求对修改工作持谨慎态度。 软件工程环境是在开发软件工程时,开发者要求环境支持他们按照软件工程的方法,全面完成生存周期中的各项任务环境。它要求有适用的语言、良好的工具、有力的编辑和调试手段,以及尽可能丰富的实用程序。良好的环境可以提高开发效率和软件质量的重要条件。软件项目的特点是软件产品和其它任何产业不同,它是无形的,既没有重量,也没有体积。对于这样看不见、摸不着、完全没有物理性质的产品,如何组织生产和研制,却有许多与众不同之处。 计算机软件基础论文:计算机软件技术基础课程教学团队的建设探索与实践 摘 要:该文是将我们对于计算机软件技术基础课程教学团队的多年建设经验进行了探索与实践,为相关基础课程教学团队的建设提供一些宝贵的经验,使国家“质量工程”建设工作落到实处。 关键词:计算机软件技术;基础课程;教学团队 我校计算机软件技术基础课程教学团队经过多年的建设和发展,形成了鲜明的特色,为信息类专业学生的培养做出了一定的贡献。 一、团队设置特色 计算机软件技术基础课程教学团队是在多年的教学改革与实践中自然形成的老中青相结合的教学团队。本团队是在不断适应国家建设需要的过程中形成、发展和壮大的。当今我国经济飞速发展,在信息化建设中对高素质人才的培养提出了新要求,本团队根据这些要求大力开展计算机科学与技术人才培养模式与课程体系的研究、建设与实践,团队自身水平稳步提高。组成了以教授、博士为核心的教学小组,并结合学科发展方向,建立多渠道师资培养机制。 二、切实可行的创新性改革措施 本团队按照课程内涵,适应国家现代化建设对人才的需求,通过长期的教学实践探索、总结、形成了以下创新性改革措施。 (一)树立先进教学理念,优化课程内容 团队以“厚基础、宽口径,知识、能力、素质协调发展”的教育教学理念,针对社会发展需求,结合各专业特点,分别制定教学计划,将课程划分为“基础类”、“专业类”和“应用类”三个层次的课程类型。 (二)采用灵活教学方法和手段,提高教学质量 本团队在长期的教学研究过程中,归纳、总结和形成了若干种实用的教学方法。将省级重点学科、精品课程建设的经验应用到本课程教学改革中,充分发挥教授、博士的作用:教授、博士全部承担课程的主讲工作,定期研讨本课程的新技术及发展动向;由团队带头人主持培养方案、教学计划、教学大纲制订等教学活动;将科研课题引入课程设计和创新实验等实践活动中。紧跟学科发展的步伐,面向市场需求、结合各类专业特点,制订了一套全新的课程大纲和人才培养方案,加大基础实验的课时数,着力培养实际动手能力。 (三)强化课程设计,提升学生综合素质 从课程设计的选题、指导教师的配备、设计过程,我们从制度上实现了全方位的考核和监控。近年来,课程设计的选题中有15%来自团队成员的基金项目和科研课题,35%来自企事业单位横向课题,有30%的选题跟踪学科领域的新技术。 三、实验教学或实践性教学 (一)依托优势资源,强化实验教学 依托我校的计算机科学与技术国家级实验教学示范中心、光电技术与智能控制教育部重点实验室、甘肃省高原交通信息工程及控制重点实验室、铁道部通信与自动化重点实验室、甘肃省网络测试技术研究中心、甘肃省网络监测中心等11个实验室和研究所,建立了面向本科生的课程实践体系。实践教学中突出知识的综合运用能力培养,设立了综合性课程设计体系,并对某些专项内容单独设课,突出了计算机软件分析设计能力、创新能力和团队协作能力的培养。 (二)结合学生兴趣,建立个性化的培养方案 利用国家级实验教学示范中心的先进软硬件平台,开设设计性、创新性的综合实验,并作为实践活动的必修环节。这些活动不仅向学生提供了接触、学习先进软件工具的机会,而且也通过教师的言传身教,掌握科研的基本实验技能,为后续实践活动奠定基础;通过本科生参与团队成员承担的科研项目,使学生一开始就处在一个较高的起点,能够涉猎学科前沿。 (三)完善实验教学管理制度,保证实验教学质量 团队切实加强教师队伍和管理制度的建设,确保高质量地实施课程计划。借鉴ISO9001认证体系中的过程化管理、按要素评估的思想,建立完善的教学质量保障体系。 四、资源建设 课程建设依托计算机科学与技术国家级实验教学示范中心、光电技术与智能控制教育部重点实验室、甘肃省高原交通信息工程及控制重点实验室、铁道部通信与自动化重点实验室、甘肃省网络测试技术研究中心、甘肃省网络监测中心等实验室,先后通过教育部、甘肃省教育厅和学校共同投入,补充和更新了一大批实验设备,使实验条件得到较大的改观,能满足教学科研的需要。同时,团队通过校企联合,建立了一批计算机设备比较先进、技术力量雄厚、指导能力强、稳定的校外学生实践基地。各实习基地的实践活动按照教学大纲和任务书进行,保证了实践教学效果。 五、网络教学建设 建立本课程网上课堂及在线立体化智能教学系统。网上课堂设计的目的是能够给不同层次、不同需要的学生提供帮助,提高教学质量。根据网络立体化教学环境的要求,系统主要包括用户管理、公告系统、网上教学、动画演示、在线测试、网上答疑、课程实验、课程设计及论坛多个模块构成,系统的设计思想确定为:以知识点为中心组织教学子系统;利用动画技术设计演示子系统;建立交互式的考核子系统;建立答疑教室,为教学交流提供桥梁。 六、结束语 我校的计算机软件技术基础课程教学团队是一支实力雄厚,极具影响力的教学科研队伍。该团队很好地把握了当前“计算机”教育的特点,坚持理论与实践并重,一方面,注重对国际上新理论、新方法以及实践中的热点问题进行跟踪和研究。另一方面,注重运用现代信息技术,精心制作了多媒体课件,采用多媒体手段进行教学,同时利用现代信息技术,实现了网络化教学,方便了师生之间的教学互动,有助于促成教学质量的提高。该团队的很多研究成果已经达到国内领先水平,并被评为国家级教学团队。 计算机软件基础论文:以计算机软件工程为基础的现代化技术研究 摘 要 为了推进我国现代化产业的健康发展,各界对于计算机软件工程技术的发展非常关注。目前,电子计算机的覆盖面非常广泛,这对于计算机软件工程的发展提供了动力。为此,本文首先分析了计算机软件工程的具体情况,其次,提出了促进以计算机软件工程为基础的现代化技术发展的可行性方法,最后,就计算机软件工程未来的发展趋势作以分析。 【关键词】计算机 软件工程 现代化技术 研究 现如今,已经步入信息化时代。在此背景下,现代信息技术以其特有的优势为各个行业提供便利。其中,计算机软件工程也属于应用现代化信息技术中的重要一员,为了更接近理想发展目标,有必要提升其现代化水平。因此,了解计算机软件工程现代化技术发展现状,并提出合理性的改进意见,是非常必要的。只有这样,才能让计算机技术得到更充分的应用。 1 计算机软件工程及其发展现状 计算机软件工程,具体是指参与软件工程活动的软件工程师和管理员进行开发、维护、管理软件产品的过程。在这期间,他们需要在软件工程的方法指导下,利用计算机及其软件工具完成上述工作。自计算机软件工程技术传入我国以来,其也得到了一定的发展。分析其发展现状,不难发现,计算机软件工程技术与其他先进技术相比,存在明显的共通性。因此,计算机软件工程技术得到了众多应用领域的认可。为了促使计算机软件工程技术更好的发展,分析其存在的不足之处,有利于实践过程中调整或者改正。具体而言,在软件工程化开发过程中,会产生较多问题,例如,最突出的问题就是工程软件设计需求与实际业务需求存在出入。除此以外,关于软件工程的管理也不是一件容易的事情,其涉及的环节较多,内容较为繁杂,给软件工程的管理造成诸多不便。就其根本,限制我国计算机软件工程的发展因素主要有两个方面: (1)缺少自身的自主研发手段; (2)缺少一套计算机软件工程管理体系。 2 促进以计算机软件工程为基础的现代化技术发展的可行性方法 2.1 加强自主产权的保护 计算机软件工程借助现代化技术实现发展,因此,在计算机软件的自主创新技术上,相关企业应注重保护自主产权。在此过程中,要通过优化投资结构,创建出属于自主研发的创新技术,进而推出相应的技术与产品。除此以外,为了缩小我国计算机软件工程现代化技术与国外的差距,有必要密切关注国外的发展状况。同时,保护知识产权是一项重要工作,企业或者相关人员应增强自身的知识产权保护意识,明确科学、合理的知识产权保护举措,以促进我国现代化技术向更好的方向发展。为实现该目标,应做好以下几点, (1)针对知识产权方面的知识,应大力宣传。 (2)针对相关知识产权方面的法律法规,应积极完善。 (3)将违背知识产权保护条例的行为给予相应的处罚。 从上述几点入手,调动计算机设计人员的工作积极性。 2.2 重视创新技术和产品 我国计算机软件工程上的技术自应用以来,取得了不错的发展。但停滞不前的技术水平,很难让我国计算机软件工程技术实现更好的发展。为了扭转这种局面,我国相关部门与科研人员在技术方面应实现创新。国外的先进技术固然能够被引进或者借鉴,但是这不是长久之计。在计算机软件工程技术中融入自身更多的自主性,才是创造优质产品的根本。通过技术创新,促进行业整体平稳发展,是我国的计算机软件工程走向可持续发展的道路唯一途径。现阶段,我国相关部门与科研人员应该通过引进新型、专业型的技术人才,提出新颖的技术理念等方法实现计算机软件工程技术的创新。这样计算机软件工程的建设才能打好基础,进而推动其的整体进程。 2.3 政府增加扶持力度 信息化项目建设的发展,对于一个国家来说是非常重要的。作为信息化项目建设中的重要组成部分,现代化计算机软件工程技术相关项目应该受到政府的重视,得到更多的扶持。为此,政府部门,应该做好以下几项工作: (1)通过增加投资和融资渠道让项目建设获取更多的投资。 (2)由政府负责牵头成立相关的计算机软件工程基金,为计算机软件信息产业的发展贡献出重要的力量。 (3)政府还应该通过引导和开发,促成相应的技术改造项目顺利完成。 3 以计算机软件工程为基础的现代化技术发展方向 从计算机软件工程的技术应用现状来看,以计算机软件工程为基础的现代化技术发展前景非常好。在未来,以计算机软件工程为基础的现代化技术更倾向于向智能化方向发展。只有实现智能化,才能提升计算机在办公效率方面的能力。不仅如此,在软件工程技术开发中,也可以增强自动化的作用。因此,加大软件开发技术的智能化推进力度刻不容缓。另外,分析以计算机软件工程为基础的现代化技术发展方向,可以明显看出,其更加趋向开放性的发展趋势。计算机的应用领域越来越多,全面推动技术的开发是必然的选择,如此一来,增强开放化程度也成为了唯一方法。网络化程度增强也是以计算机软件工程为基础的现代化技术发展的一个主流。在计算机软件工程开发的过程中,涉及的信息数据越来越多,需要存贮的内容也随之扩大,因此,在未来,计算机软件工程需要更加趋向网络化。否则,将难以快速的进行信息处理。同时,与全球信息的交汇也需要增强其网络化。 4 结束语 综上所述,为推动现代化社会发展,关注并重视现代信息技术非常必要。在现如今的信息化社会的背景下,促进信息化技术的发展不能仅仅借鉴或者引入国外的先进技术。我国应该本着积极创新产品的目的,提升自主研究技术水平,为提升服务质量与水平做出努力。我国计算机软件工程的现代化发展,需要当代科研人员和相关人员贡献力量。从政府加大扶持力度到科研人员重视创新技术和产品,都是推动计算机软件的开发与进步的方法。此外,企业自身也要尽可能创造积极的环境为计算机软件工程的优化升级奠定基础。 计算机软件基础论文:认知案例教学法在“计算机软件技术基础”课程中的探讨与应用 摘要:针对目前“计算机软件技术基础”课程教学中存在的共性问题,结合专业特色,着重探讨了将基于Zadeh认知原理的认知教学法与案例教学法相结合形成的认知案例教学法及其在该课程中的应用。通过三年的教学实践,收到了良好的效果。 关键词:软件技术基础;教学法;认知;案例 一、引言 “计算机软件技术基础”课程是非计算机专业的计算机基础教学内容之一,有着广泛的应用。课程的教学目标是使学生能够全面系统地了解并掌握计算机软件技术的基本概念、思想、原理和方法,并且具有一定的软件系统设计能力,更好地利用计算机软件技术解决本专业领域中的实际问题和日常事务性问题[1-2]。目前,很多高校都开设了“计算机软件技术基础”课程并取得了一定的成效,但该课程的综合性较强,在教学过程中出现了一些不尽如人意之处。本文针对目前该课程在教学中存在的共性问题,结合作者的教学实践,从教学方法的角度出发,对该课程的教学改革进行探讨。 二、课堂教学存在的共性问题 “计算机软件技术基础”课程教学目前面临的共性问题主要体现在以下几个方面[3]:(1)学生对该课程的学习目的不明确,认识不到课程内容的重要性;缺乏学习动力、主动性和自觉性;(2)学生的程序设计、调试能力薄弱,缺乏解决实际问题的经验,对课程内容的实用性体会不深;(3)教学学时较少,一般为32或者48学时。课堂教学大部分时间集中在基本概念、原理的讲授上,而程序设计、调试等实践性较强部分通常只能点到为止,无法进行深入讲解和布置练习。 对于第一个问题,普遍采用的对策是引导学生重视课程;后面的两个问题,目前的解决方式主要集中在教学方法和教学手段的改革上,不同的授课者在具体实施的时候,会因情况而各异。本文作者承担着内蒙古大学通信工程、电子信息科学与技术两个专业的“计算机软件技术基础”课程的授课任务,面对目前该课程教学中的共性问题,进行了深入的思考、分析和研究,除了对学生进行科学研究层面的适当引导外,尝试采用合理有效的教学方法展开教学工作。 目前,一门课程大多采用一种教学方法,主要有任务驱动教学[4]、案例教学[5]、问题教学[6]、引导教学[7]、认知教学[8]等。前四种方法侧重于教学形式与手段的变新与改革,认知教学从讲授内容的本质出发,研究教学内容的认知过程。“计算机软件技术基础”课程以高级程序设计(C或C++)为基础,内容涵盖“算法与数据结构”、“操作系统技术”、“数据库技术”和“软件工程”等,各内容之间既互相联系又比较独立,每一部分内容都是计算机专业的一门专业课程。对于这样具有繁杂的内容并且注重理论联系实践的课程,仅采用单一的教学方法组织教学肯定满足不了授课的要求,同时学生也不容易掌握其内容。基于Zadeh认知原理的认知教学能够从牢牢抓住教学本质出发,深化知识的组织、粒化与因果关系,将所有知识融为一体。案例教学能够使理论和实践有机地结合起来,利于学生的思维能力、知识应用能力、团队合作精神的培养。本文将基于Zadeh认知原理的认知教学与案例教学两种教学方法紧密地结合起来(以下称认知案例教学法)并应用到该课程的教学实践中,借此加强学生的程序设计、调试能力,缓解因教学学时较少与加强实践能力间的矛盾。 三、认知案例教学法及在“计算机软件技术基础”中的应用 基于Zadeh认知原理的认知教学是按照人类认知事物的规律进行教授知识,将教学知识组织、粒化、因果化,使学生抓住知识的本质,全面地掌握知识。其中,组织是对知识宏观的掌控,粒化是对知识微观的演化,因果则是知识之间的关联。因此,认知教学能够条理地、逻辑地、系统地组织教学内容,是一种符合学生学习逻辑认知过程的科学方法[8]。案例教学是一种以教学案例为基础的教学方法,以学生在课堂内外对案例的分析、思辨为重点,目的是提升学生应用理论创新性地解决实际问题的能力。具体形式是在教师的精心策划和指导下,根据教学目的和教学内容要求,运用典型案例将学生带入特定事件的现场进行案例分析,通过学生独立思考或集体协作,进一步提高其识别、分析和解决某一具体问题的能力[5,9,10]。对于认知案例教学法,首先综合考虑认知教学法和案例教学法的内涵,认真分析课程的特点和内容,提取宏观知识点(教学内容)并把它们合理地组织在一起;然后对每个宏观知识点进行细化,得到微观知识点;接下来搭建宏观知识点之间、微观知识点之间的相互关联,从而得到一个课程的认知系统;最后在这个认知系统的基础上,对微观知识点或宏观知识点选择合适的案例开展课程教学。 根据“计算机软件技术基础”课程的内容,把“算法与数据结构”、“操作系统技术”、“数据库技术”和“软件工程”四部分作为宏观知识点,并用系统工程作为基点把它们关联起来;依靠采用的教材和使用的参考资料对这四个宏观知识点进行细化,并建立微观知识点的彼此关联,这样就得到了“计算机软件技术基础”课程的认知系统,如图1所示。图1中的宏观知识点和微观知识点形成了一个多层次、逐层深入的组织结构。每一层是其上层的粒化,每层的微观知识点之间、上层和下层之间都有直接或间接的因果关系。依据图1所示的认知系统,在实际教学中采用了对底层一个或多个关联紧密的微观知识点精选有真实场景的应用案例展开课堂授课。为了能够成功地进行认知案例教学,需要对学生进行科学研究层面的引导,较好地激发学生对课程的强烈求知欲和学习积极性,使其在课堂之外能够主动地投入更多的时间和精力认真完成课堂教学的准备工作,同时自主地学习和发现问题。对于教师,需要在图1的认知系统框架下,根据微观知识点有针对性地选择案例。仔细研究案例的内容,做好案例分析。明确给出本次案例教学重点讨论的问题、有关的背景知识、参考资料和预习要求,把这些内容文档化提供给学生,要求学生提前预习,找出具体问题,同时准备分组讨论提纲。注重程序设计和调试,布置相应的练习,要求学生提前熟悉程序,并准备调试结果。课堂教学中,引导学生就一个问题进行讨论,根据学生的发言进行相应的点评和讲解;并引导学生从一个问题的讨论过渡到另一个问题的讨论;最后进行小结和归纳。 认知案例教学注重培养学生的程序设计和调试能力,教学中布置的练习都有相应的应用背景,学生通过调试和设计程序对课程内容的实用性有了进一步的体会。一般一个案例包含多个知识点,学生的预习和准备工作缩短了授课教师讲授基本概念、原理所需的时间,这让授课教师能够在有限的课堂教学中集中更多的精力去讲解实践性较强部分。经过三年的认知案例教学实践,发现学生的学习积极性和学习效率都有了明显的提高,学习效果良好。 四、结束语 本文把认知案例教学法应用到“计算机软件技术基础”课程的教学实践中,对于该课程的教学有一定的独到性之处。较好地处理了理论与实践相结合的关系,进一步激发了学生的学习兴趣,使学生能够更加牢固地掌握课程的知识点,同时培养了学生的自学能力和创造能力,提高了教学质量。 计算机软件基础论文:计算机软件开发的基础架构原理研究 [摘 要]计算机软件开发行业的发展得益于当前信息技术的快速发展和信息受众不断增加,当然计算机软件开发也需要遵循特定的规律,依照其基础架构原理来进行操作,才能够保证计算机软件开发朝着有效性的方向发展。且计算机软件设计的过程,就是在逻辑关系的引导下,实现软件内容的重新确定,进而形成对应的基础架构,这是软件运行的前提和基础,甚至会影响到后期软件系统的维护和管理工作。由此积极探讨计算机软件开发的基础架构原理,是很有必要的。文章由此入手,积极探究计算机软件开发的概况,进而分析计算机软件开发的基础架构原理。 [关键词]计算机软件开发;基础架构原理;研究 1 引言 计算机软件设计的过程,就是在逻辑关系的引导下,实现软件内容的重新确定,进而形成对应的基础架构,这是软件运行的前提和基础,甚至会影响到后期软件系统的维护和管理工作。由此积极探讨计算机软件开发的基础架构原理,是很有必要的。 2 计算机软件开发的概况 2.1 计算机软件开发的概况 计算机性能的不断提升,使得人机交互效益得到不断展现,越来越多的行业开始尝试以计算机软件开发的方式,实现自身运营模式的信息化转变,由此以对应需求为基础的软件开发行业得到了快速的发展。计算机软件开发具备以下的特点:持续性特点,就是软件开发是一个循环往复的完善过程,在计算机逻辑基础上,计算机软件的缺陷是一直存在的,只有不断的采取措施去修正,才能够更好的发挥计算机软件的性能;针对性比较强,往往都是针对于某一行业或者领域而开展的计算机软件开发工作,其开发工作的目的性更强,对于效益的追求也是更加强烈的。 2.2 计算机软件开发基础架构的重要性分析 当前计算机软件开发过程中,使用量比较多的基础架构,就是三层结构体系,其分别可以归结为:其一,表示层;其二,逻辑层;其三,数据层。在上述三个层次的基础上,可以使得软件的人机交互界面展现出良好的性能,使得逻辑关系和计算机语言之间得以分离,这样在后期维护和修改的时候,单独的对人机交互模式进行调整,就可以使得软件开发的节奏变得更加快捷。由此可见选择合理的计算机软件开发基础架构,对于软件性能的最大化发挥,对于软件后期的维护和管理工作质量提升而言,都是有很大帮助的。 3 计算机软件开发的基础架构原理分析 3.1 从计算机软件开发基础架构需求的角度来看 无论是开发设计怎样的软件,都需要在明确开发目的的基础上进行,也就是需要对于软件的需求进行全面分析。不同的企业,归属的领域不同,所需要展现的功能也是很有差异性的,此时企业都会提出对应的软件开发需求。在此过程中,计算机软件开发者与信息企业之间会展开大量的协商工作,对于软件的功能进行分析,结合企业业务运行特点,实现计算机软件开发方案的敲定。为了做好需求分析方面的工作,需要特别注意以下几个方面的工作:建立完善的软件企业与需求企业之间的沟通机制,保证在软件需求分析的过程中,能够充分的了解企业组织的业务特点和规律,保证软件开发需求能够更加明确。 3.2 从计算机软件开发基础架构编写的角度来看 计算机软件开发基础架构需求分析结果得出之后,就需要进行实际的软件编写工作,从当前的实际情况来看,多数使用的是C语言,这种语言的特点为:语言结构结构比较好,编写操作比较快捷,是当前程序员使用频率比较多的语言模式。在实际的软件编写的过程中,会依照对应的功能划分,实现不同模块的敲定,保证不同模块都能够发挥自己的功能,此时需要建立对应的函数模式,使用这样的主函数对于各个模块进行调节和改善,这样可以保证结构能够更好的维护。当前一个计算机软件的开发工作,都是有多个程序员来共同完成的,这样可以尽可能的保证软件编写工作的高效性。 3.3 从计算机软件开发基础架构测试的角度来看 在计算机软件开发基础架构编写工作完成之后,就需要对于软件的不同功能实现测试,实现对于软件测试阶段的管理和控制,是保证软件性能发挥的关键所在,这也是将对应计算机软件投入使用之前必然要进行的工作。在此过程中,需要关注以下几个方面的内容:其一,输入特定的参数,对于软件的运行情况进行记录,验差运行情况与理论情况之间差异性;其二,使用白盒子和黑盒子的方式去进行测试,同样对于软件测试的效果进行记录,由此实现实际计算机软件开发工作的顺利开展;其三,除了测试工作之外,还应该做好计算机软件开发基础架构的维护和管理工作,定期对于软件的性能发挥进行检查,并且推出全新的版本,进而实现软件自身的修复,这样可以使得其自身的性能得到全面提升。 4 计算机软件开发基础架构选择的基本原则 计算机软件开发基础架构的选择,关系到计算机软件效能的发挥,牵涉到各行各业信息化的快速发展和进步。在选择计算机软件开发基础架构的时候,需要关注以下几个方面的内容:其一,树立软件设计目标意识,在需求分析的基础上,对于不同的基础框架进行选择;其二,使用先进的逻辑语言和编程技术,对于计算机软件架构进行合理的编写和操作,由此才能够保证基础架构开发工作的高效性;其三,依照软件目标功能和结构选择之间的关系分析,选择合适的结构,进而使得软件开发行为朝着有目的性的方向发展和进步;其四,注重计算机软件开发团队的塑造,处理好不同模板开发之间的关系,保证计算机软件基础结构选择得更加科学和合理。 5 结语 综上所述,计算机软件开发过程并不简单,其中不仅仅涉及到专业领域的知识,还关注到计算机软件基础结构的原理,处理好这两者之间的关系,才能够保证计算机软件开发的基础架构工作朝着更加高效的方向发展和进步。从当前计算机软件开发基础架构原理的运用实践来看,其基础架构选择还存在很多不合理的情况,此时就需要采取对应的措施来改善和调整,相信随着在此方面实践经验的积累,计算机软件开发的基础架构将会展现出更加大的效能。 计算机软件基础论文:基于计算机技术发展基础上的计算机软件安全检测技术 摘要:计算机软件安全检测技术已经成为了计算机软件开发过程中不可或缺的一项核心内容。计算机软件开发人员,在进行计算机软件开发过程中,非常有必要对不同类型的计算机软件进行安全性检测,以便于软件开发人员事先发现安全隐患,从而采取适当的改进措施,确保不同计算机软件在使用过程中顺利运转。 关键词:计算机软件;安全检测技术 在社会经济飞速发展的今天,计算机作为意义上的生产或者生活用品已经融入人类社会的各个领域,并且随着科技的日新月异,电子计算机科学技术也随之日臻完善和成熟。是计算机软件在支撑着计算机的正常运转,人们依赖计算机进行生产和生活要借助不同的计算机软件来进行,因而,计算机软件的安全性也就提到了计算机维护的首要日程。否则,其安全性就极有可能对计算机的使用带来极大的安全隐患,同时也会给互联网安全造成极大威胁。鉴于此,计算机软件开发人员,在进行计算机软件开发过程中,非常有必要对不同类型的计算机软件进行安全性检测,以便于软件开发人员事先发现安全隐患,从而采取适当的改进措施,确保不同计算机软件在使用过程中顺利运转。显而易见,计算机软件安全检测技术已经成为了计算机软件开发过程中不可或缺的一项核心内容。 1计算机软件安全检测的基本内容 当今社会,计算机的使用在不同领域越来越广泛,而且越来越具有依赖性,因而,计算机软件使用过程中的安全性则越来越成为计算机用户的终极要求,主要表现在以下几方面::第一,软件之间的冲突导致计算机运行的不通畅。安装某一款计算机软件后,用户发现这对计算机本身并没有产生多么明显的影响,甚至会因为该软件和其他软件冲突因而导致计算机运行速度明显变慢等;第二,计算机软件安全性得不到保证。计算机用户在使用软件的过程中许多个人信息会被留下,用户的私密信息随之就不可避免地被泄露,自然,用户的个人隐私就会得不到有效的、必要的保护。因此,在不同计算机软件开发过程中,软件开发人员要利用成熟的安全检测技术对计算机软件中存在的安全漏洞进行检测,并对其进行安全修复,从而达到提高安全性,降低风险的目的。 计算机软件安全检测是指在软件开发过程中,计算机软件开发人员采用安全检测技术,采取科学的手段,对计算机软件的漏洞和缺陷进行系统性地检测。安全漏洞检测是指计算机软件开发人员对计算机软件的安全缺陷及在使用过程中产生的安全隐患进行有针对性的检测、修复,软件升级或版本修复是这一过程的主要运用手段。不过,这类检测只是停留在技术的层面问题;而真正的技术检测,则是计算机使用过程中系统运转过程中的安全管理、授权、访问控制和机密性等核心内容。 2计算机软件安全检测的基本要求 计算机软件检测是一项复杂、严谨技术含量较高的工程,不仅对检测的软件有着科学严格的要求,同事对检测方法、技术手段、操作人员素质等都有着严格的要求。 首先,由于计算机软件程序具有复杂性的特点,要使用科学有效的安全检测方法对计算机软件安全进行实质性检测。软件中很多潜藏的安全问题,采用简单的检测方法是不能被排除的,所以开发人员一定要事先对软件的相关特性以及检测软件的使用条件进行全面了解后,再根据实际情况选择适当的检测方法,制定出科学合理的检测方案,对计算机软件安全进行实质性检测,不仅如此,开发人员还要在细节方面也要依据相关程序进行细化和深化。 其次,因为软件漏洞具有存在于软件开发程序的各个环节的特点,需要多类人员共同参与对计算机软件的检测,才可能确保尽可能多地排除软件中潜在的安全威胁。多元化的人员参与有利于实现检测方法的多极性、多样性,这有利于及时、准确地排除安全隐患。不过,在软件安全检测过程中,必须需要具有专业软件安全检测技术的人员参与,同时还需要有了解软件工作和使用特性的人员,从而实现多角度、全方位的检测,以排除更多的安全风险,满足软件使用的安全要求。 最后,对计算机软件进行安全检测必须要按计划选择合适的方法进行安全检测。选择大体说来,需要通过以下做法具体执行:首先,要对计算机软件检测的各种方案和案例进行必要地分析研究,并且最后要进行汇总,在此基础上再进行分析、归纳、总结,寻找出普遍通用的检测规律。之后,再根据检测的具体要求,对比、筛选合适的方法予以检测。但是,再进行检测之前,为了确保检测程序的顺利推行,事先必须制定出切实可行的检测方案,并将检测过程的方案制定的形象化、具体化,以确保检测过程准确无误地予以开展。以上工作做好、做细后,还要对上述拟定的检测方案采用电脑模拟建立数据模型。特别需要指出的是,在这个过程中,一定要把语言支持作为实现模型形式化表现过程中的动态帮助。以上环节结束之后,作为对软件进行运行和结构的安全测试,再开始检测模拟系统。 3 计算机软件安全检测的具体技术 3. 1 语法安全检测技术 语法安全监测技术主要是对计算机软件中的语法进行实质性、技术性检测。最初输入条件的不同会使最终检测结果产生差异。语法安全检测技术通常被用于检测源程序中的安全漏洞,该检测技术可及时有效地检测出系统函数与C语言库函数的切换,并及时恰当地做出处理,从而建立以语法为基础的测试数据。同时该检测技术还能实现对计算机软件的安全检测,排除潜存的安全风险,保证计算机安全运行。 3. 2 动态安全检测技术 这项技术是对计算机软件运行环境变量进行的必要检测,漏洞等风险因素是它主要进行的检测目标。这种安全动态检测技术的使用,计算机软件源码不需要在运作过程中进行修改,因而计算机用户的隐私安全得到了很大程度地保证。在这类检测技术应用过程中,如果计算机软件的漏洞被发现,就会自动完成相关修复工作。今天,由于计算机在商务应用中也发挥着越来越大的作用,这种软件的检测技术更加适用于商务性,随着普及率的越来越高,对保证商业机密的安全,必将发挥着越来越大的作用。 3. 3 静态安全检测技术 近年来,计算机程序开发人员根据程序代码内部特性和结构是静态安全检测技术这一特征,事先构建合理的测试模型,以满足计算机读取的相关要求,对计算机进行安全静态检测,这就是所谓的静态安全检测技术。这种检测技术的检测程序是:开发人员先利用这种安全检测技术对需要检测的计算机进行检测之后,再将选定的测试模型和待检测的程序数据进行全面比对,如果待测的计算机软件安全性能良好,其对比数据就会高度一致。近年来,由于这项技术日臻成熟,并且简洁易行,越来越多的软件技术开发人员倾向于此项研究之中,从而推动了这项技术得到更为充分的发展,并且越来越大地在计算机软件安全领域中发挥了重要的作用。 3. 4 混合安全检测技术 近年来,随着计算机检测软件越来越多样化,检测技术要求的不断提升,对计算机软件越来越趋向于多项或者混合检测,以确保效果的精准化、全面化。鉴于此,实践中,我们往往倾向于多种检测软件并行的检测方法,也即这里我们所说的混合安全检测技术。这种混合安全检测技术双管齐下,动态安全检测与静态安全检测并驾齐驱,采用了动态安全检测与静态安全检测两种检测技术的优势,扬长避短,强强联合,确保计算机软件检测过程精准、全面、不留死角,极大地扩大了检测范围。 3. 5 基于web技术的安全检测技术 计算机技术检测采用web技术是近年来计算机检测技术领域的一项尝试和技术突破。Web技术是近年来伴随着计算机互联网技术出现的网络资源开发技术。随着web技术的不断革新,这项技术也逐渐渗透到计算机软件安全检测领域中,并且和其他检测手段比起来越来显示出它独特的优越性能――与同是作为计算机软件安全检查的传统的检测技术,Web安全检测技术更具有灵活性、高效性和先进性的特点,在检测性能等各方面都表现出优异的成绩。大体说来,基于Web技术的安全检测技术不仅能够及时检测出风险和漏洞,而且能够及时对这些安全风险和漏洞进行有效修复,为计算机系统安全、可靠、高效地运行提供了有力的保障。鉴于这种检测技术的精准、高效、安全的特色,基于Web技术的安全检测技术已经越来越多的运用到不同行业的计算机检测技术中,并且大有取代传统检测软件的趋势。 4 结束语 综上所述, 随着计算机网络越来越大的影响着人类的生产和生活,计算机安全检测技术作为计算机运用过程中的辅助技术,势必越来越彰显出它的必不可少的重要作用。同时,计算机技术越先进,势必要求计算机安全检测技术也必须随之越先进,在科技日新月异的今天,相信我们人类社会在计算机安全检测技术方面,也必将取得更多成果,以更好地服务于计算机技术,更好地造福于人类。
软件技术论文:高职软件技术系列化微课设计制作 【摘要】文章在分析了当前高职软件技术专业对系列化微课需求的基础上,研究了其设计与制作过程,最后讨论了其应用效果。并提出在应用中要教学方法的改革与实践,并在实践中不断探索对于课内外课时的合理调整。使得学生的学习由课内向课外逐渐延展。 【关键词】软件技术专业;实训课程;建设;系列微课 一、高职软件技术专业系列化微课需求分析 当前,随着信息与网络技术快速发展,微课作为提高教学有效性的重要资源迅猛崛起并迅速发展。但是,纵观计算机软件技术专业的信息化情况是慕课多、资源多、质量参差不齐。当下在网络上可以获得大量计算机软件技术专业的慕课,时长多在30分钟上下,且开发者多数为企业具有实践经验的程序员。这类视频,多为“课堂实录片段”形式,其特点是知识含量大,技术难度大,讲解枯燥,随意性强,缺乏设计,语言不规范,部分程序员的操作本身就不具规范性。这类课程应用中的特点是对学习兴趣浓厚的学习者和工作中的程序员有很大帮助。但实践中我们也发现对于高职高专软件技术专业的学生而言,大多数学生在第一次看视频时就被长时间枯燥的视频打击了继续学习的兴趣,能够长期坚持观看的寥寥无几。经分析,当前我国高职高专计算机软件技术专业缺乏的是能够贯穿一门课程的系列化微课,以及能够支撑整个专业课程体系的整套微课程及其配套资源。 二、高职软件技术专业系列化微课设计与制作过程分析 1.基于项目的系列化微课的教学设计。在进行系列化微课开发之间,要针对人才培养方案进行分析,抽出核心课程,并明确课程的先后顺序,逻辑关系,明确将要开发系列微课的主干课程。计算机软件技术专业的微课资源往往是就知识点、技能点而单独讲解,缺乏其在实践中的应用,因而显得实用性不强。而基于项目的视频资源往往时间较长,已经超出了微课的范围,当然也超出了高职高专学生自主学习最大时长。因此,在高职软件技术专业系列化微课设计过程中要取二者之长,避二者之短。首先明确要设计基于项目的系列化微课。即将企业真实项目根据教学所需将其改造为教学项目,再将项目分解为若干模块,模块分解为若干子任务,每一子任务对应一个或多个知识点与技能点,最终以一节微课的形式呈现。微课的前后顺序即项目本身的开发过程。同时,还要注意微课的独立应用性,即每一节微课即是对应项目中的一部分开发内容,同时单独观看此节微课,也可以独立地学习本节课的知识点与技能点。2.基于项目的系列化微课的开发规范制定。在各课程开始制作微课之前,项目团队要首先制作微课样本,并配有明确的标准要求。具体包括制作中使用的主要软件、录制中所运用的参数、片头与片尾要求、时长、字幕运用幻灯片统一模板等。甚至是微课的整体结构要体现系列化、一致性。使得每一个开发团队都按统一思路进行系列微课的开发。同时,还要对项目进行管理,按照时间节点,进行量与质的验收。3.基于项目的系列化微课的开发。采用精细化视频制作技术进行系列化微课的制作。按以上原则进行微课设计并给出任务分解单及对于的微课单,然后按照要求开发每节微课教案,注重知识点与技能点的穿插,注重录屏软件、PPT、实拍视频的综合应用,避免枯燥乏味。为主讲教师撰写讲解稿,注重语言及操作习惯的规划性,精选形象好、气质佳、普通话标准、表达能力强的教师录制高品质微课资源,即利用电教馆设备及人力资源将录制、后期剪编各环节都进行精细化加工。使得每一节微课即能独立应用,又能与本门课贯通,最重要的是与本专业其它课程保持连贯。4.配套教学资源库的开发。为了使微课能够在应用中不孤立,要在开发微课时同时开发好配套的资源。即与微课配套应用的课件、实践教学资源、习题项目、任务工单等。5.平台应用。系列化微课开发完成之后,还需要统一的平台进行管理与应用。一方面可以整理成电子书,出版发生。另一方面可以借助网络工具平台。实践中运用蓝墨云班课平台。蓝墨云班课包括电脑版与手机版。电脑版是一款免费的教学助手软件,这款软件可以让教师轻松管理自己的班级、学生,并且还能批改作业。蓝墨云班课电脑版可以让老师的所有课程信息、学习要求、课件、微视频等学习资源都可以即时传递到学生的移动设备上,从而让学生的移动设备从此变成学习工具,不再只是社交、游戏。手机版是使用APP软件安装蓝墨云班课平台,教师使用平台信息、管理学生,学生使用平台进行学习、反馈等。对于教师来说,通常是电脑版与手机版同时使用,对于学生用户来说,通常只使用手机版就可以完成学习需要。 三、高职软件技术专业系列化微课设计与制作应用效果分析 高职软件技术专业通过运用系列化微课,配合蓝墨云班课学习任务与资源的实训教学模式,使得学生的学习由主动变被动,在观看微课视频、阅读电子书的过程当中,逐渐养成自主学习的良好习惯,最终达到提高自主学习能力的目标。系列化微课只是我们尝试的一种新的教学资源,但是真正的课堂教学还是需要配合具体的教学方法来实现。因此,各院校在运用系列化微课的同时一定要注意教学方法改革与实践,并在实践中不断探索对于课内外课时的合理调整。使得学生的学习由课内向课外逐渐延展。 作者:许春艳 单位:长春职业技术学院信息技术分院 软件技术论文:计算机软件技术中分层技术应用 【摘要】现阶段,随着计算技术的不断发展,越来越关注分层技术在计算机软件技术的应用和开发方面的问题。而且,分层技术作为应用广泛的技术,若是能够将其融入到计算机软件技术当中,可以更好地提升计算机软件处理业务的效率,而且能够逐步拓展计算机的多层次结构,对于推动计算机软件技术的稳步发展具有重要的作用。 【关键词】分层技术;计算机软件开发;运用 1引言 在当今社会,计算机已经成为不可或缺的办公工具。所以,对计算机软件技术人员来说,计算机软件技术的开发设计便显得非常重要,而且,随着社会的不断发展,计算机软件开发的环境和功能要求越来越严峻,在功能设计上从单一的功能逐步朝向多功能复合的方向发展。为此,在这种情况下,分层技术便能得到广泛的运用,在分层技术的运用方面上,能够促使计算机软件的灵活性和安全性两个方面能够提升。本文通过对分层技术在计算机软件开发中的运用进行深入分析,以此更好地进行计算机软件的开发和设计工作。 2分层技术的概述 在分层技术在运用于计算机软件开发的过程中,不仅仅可以显著提升开发的效率,而且还能够不断提升计算机软件开发的质量。而且,分层技术已经成为我国计算机软件开发中的最为重要的技术种类,并能够有效地运用于社会各个行业当中。但是,从目前来看,要想更好地的发挥分层技术在计算机软件开发中的优势,这就必须要对软件开发的重点内容进行系统研究,才能在计算机软件开发中发挥出其优势。在软件的研发过程中,必须要能够将分层技术运用在不同的方案当中去,针对不同的解决方案采取不同的设计手段,从而能够形成一种科学高效的计算机开发体系。另外一方面,在开发过程中,必须要严格按照相关的措施和规定来进行相应的操作,同时对分层技术的理论知识和概念有深入的了解,以此避免在运用过程中出现各种失误。最后,在软件的开发框架中,为了发挥分层技术的优势,必须要在单层架构中进行不断创新,从而能够将服务器和计算机进行融合。当然,随着计算机软件技术的不断发展,在开发结构中还是有很多不能避免的问题,尤其是双层结构的设计无法很好地满足企业的发展需求。 3分层技术在计算机开发中的具体运用 3.1双层技术的应用 从目前来看,计算机软件的开发过程中,为了能够不断提高计算机软件开发的速度和质量,在分层技术的具体运用的过程中,不仅仅需要在各个环节上进行科学设计,而且还需要在客户端和服务器的端点进行设计。在这一过程中,双层技术便是分层技术最为重要的技术之一,这是一种按照不同功能特点来分解计算机软件中的系统,能够修改某个功能以及上下层的结构。另外,在分层技术的发展过程中,一般来说,分层技术可以分为双层、三层以及四层等不同方面,随着计算机开发设计的不断成熟,现有的分层组成模式逐渐演变成为几个不同的技术类型。例如,在双层技术的研究上,其主要是包括客户端和服务器两个端点,对用户的数量和客户的信息都将会产生一定的影响。当然,在这一过程中,分层技术的运用,除了可以不断提升计算机的运作效率,还可以切实保障客户端的性能,有效地解决用户使用过程中的弊端。 3.2三层技术的具体运用 在上述的分析中,我们可以了解到,除了双层技术外,分层技术还有三层技术。而两者的不同,主要是在于三层技术是双层技术的升级版,对双层技术的弊端进行不断完善。例如,三层技术主要是弥补双层技术设计中的不足,在之前的设计基础上增加了应用服务器。在设计上增加了应用服务器,这对于计算机软件开发设计具有重要的作用。另外,三层技术最大的优势便是能够建立科学高效的系统,能将业务处理和界面层次两者进行融合,以此提升计算机信息访问的效率。所以,从上述的分析中,可以看出,三层技术的作用不仅仅是建立有机的整体,还需要对计算机的界面进行科学收集,从而更好地满足不同用户对软件使用的需求。 3.3四层技术的运用 众所周知,现代文明在计算机的要求越来越高,传统计算机单一的功能显然无法满足人们的需求。为此,在创新计算机软件的开发过程便成为最为迫切需求。但是,分层技术中的不同技术类型都无法跟随时代的潮流而对自身的功能进行创新,这样就难以适应当前计算机开发的需求。所以,计算机软件的开发设计者必须要在双层技术和三层技术的基础上进行创新,并能够将四层技术灵活地运用于计算机软件开发过程中去。在这一过程中,我们可以了解,四层技术的开发主要是能够将三层技术的界面层和业务处理层等几个方面进行综合处理,最大程度地降低几个层面之间的影响关系,只有通过这种方式,才能更好地发展成为四层技术,而这种全新的分层技术,其作用是体现在存储层、业务处理层等几个方面,这样的做法便可以将数据库与对象的关系进行了解,从而满足用户对计算机软件的实际需求。 4结语 总的来说,分层技术在软件开发的设计过程中具有重要的影响。而且,随着人们对计算机应用的不断深入,这就需要不断创新分层技术,以此更好地满足计算机软件开发的要求。更为重要的是,分层技术的具体运用,将会显著降低计算机软件开发的成本,全面提升计算机运行的效果和质量。 作者:资和周 单位:云南经济管理学院财经商贸学院 软件技术论文:谈软件技术课程职业岗位技能标准对接 【摘要】本文能过现状与存在问题分析;软件技术专业课程标准与职业岗位技能标准主要研究目标、内容、主要特色及解决的关键问题;软件技术专业课程标准与职业岗位技能标准对接研究的理论意义和实践意义及预期收益;四、研究的工作基础及条件等几方面对软件技术专业课程标准与职业岗位技能标准标准对接进行了分析,探讨了如何完成对接发。 【关键词】课程标准;岗位技能标准;职业教育 一、现状与存在问题分析 以就业为导向,培养符合职业岗位能力的高技能软件应用型人才,是软件技术专业的培养目标。职业教育各国有各国的特点,但发达国家普遍的特点是都是建立在市场济经济基础上的,且都结合本国国情,让学生在实践中学习。我国的职业教育体系比较分散,比较独立,尤其在学生所内容与职业需求的结合方面,仍然不够系统,规范。随着软件行业的不断发展且与世界接轨,对于软件测试专业人员需求量激增,但行业招聘一般要求有工作经验,这样对于刚毕业的学生来说是不利就业的,职业教育既然培养的是职业,就应该面向职业,不要与企业需求脱节,所以学生在校所学内容与企业岗位所需技能的矛盾冲突日益明显。 二、软件技术专业课程标准与职业岗位技能标准主要研究目标、内容、主要特色及解决的关键问题 目标:1.研究一套适合高职高专软件技术课程标准与职业岗位技能标准对接方案。2.针对对接方案的应用研究一系列切实可行的新课程标准。内容:众所周知,职业教育的终级目的是“使无业者有业,使有业者业乐。”针对在校学生面临的是顺利从业问题,职业教育应该从提高学生的职业心理素质;提高学生的职业能力;提高学生的就业能力和创新能力入手,使毕业生能够找到自己对口的职业,因此,此次研究将从以下几方面入手:1.将名师工作室职业岗位技能要求融入课程标准的研究。软件技术专业拥有长白山名师、市级名师与院级名师多个工作室,日常可承接不同种类,不同级别,不同规模的各种项目,本课题组全部成员均为名师工作室教师,在名师的带领下,选择一部分肯吃苦、勤动手、善创新的学生共同开发研究,每个名师工作室都有自己的一整套职业岗位技能规范,我们可以将其中典型的职业岗位技能规范融入课程标准当中。2.将企业职业岗位技能要求嵌入课程标准的研究。软件技术专业近来一直不断派专任教师下企业实践,这些具备企业技能的教师会把握机会将学生带入企业当中,学生每天除了在校学习外,还会利用课余时间去企业接受正规管理与训练,我们可以将企业对学生的要求嵌入到课程标准当中,使进企业的学生更快适合企业的岗位需求。3.将大赛中所需的职业心理素质及创新能力要求纳入课程标准的研究。软件技术专业每年都会有部分尖子生参加各级别大赛,参赛选择不仅要有较高的技术技能,更需要有强大的心理素质和创新精神,我们要把这种心理素质教育和创新精神的培训纳入到课程标准当中,为职业岗位技能提高奠定基础。主要特色:1.通过名师工作室承接的实际项目开发,提高学生项目实战能力;2.通过技能教师带学生走入企业,从实践中提高职业岗位技能;3.通过学生大赛,以点带面,树立榜样,提高学生自主创新能力;解决的关键问题:1.职业院校软件技术专业课程标准与职业岗位技能标准对接的方案设计;2.职业院校软件技术专业系列化新课程标准的开发。本课题研究的理论意义和实践意义及预期收益和具体成果名称。 三、软件技术专业课程标准与职业岗位技能标准对接研究的理论意义和实践意义及预期收益 理论意义:1.探索课程标准与职业岗位技能标准对接的方法;2.探索将职业岗位技能融入课堂教学的新课标。实践意义:通过新课标的开发,并将其应用的实际教学当中,从而提高学生从业能力,实现与企业顺利对接的目的。预期收益:1.开发一套软件技术专业的独具特色的新课程标准,并进行应用与推广。2.在软件技术专业15.16级进行实践应用,提高学生就业能力。 四、研究的工作基础及条件 1.国家示范校重点建设专业。2008年4月软件技术专业被教育部、财政部确认为国家示范校重点建设专业,经过三年大力建设,专业办学条件得到极大改善,师资队伍得到大幅优化,教学质量得到迅速提升,就业质量不断提高,社会影响日益扩大。2.省级优秀教学团队。软件技术专业于2010年4月被评为省级优秀教学团队,教学团队的执教能力、科研能力、开发能力得到社会认可。3.企业人员参与课程标准的制定对于软件技术专业的课程设置,均按企业的岗位技能设置,各课程的课程标准,岗位技能标准,都聘请企业专家参与制定,学院对校企合作开发课程大力支持。不断加强校企业合作,掌握企业的实际需求,逐步完善岗位技能标准,培养符合企业需求的高素所高技能型人才。 作者:于艳华 单位:长春职业技术学院 软件技术论文:计算机软件技术的开发运用 摘要: 计算机软件技术是整个计算机产业最为重要的内在动力,对社会具有很强的服务性、有效性和创新性。以计算机软件技术开发与运用作为研究重点,进而更有效地促进信息化技术的发展和运用。 关键词: 计算机; 软件技术; 开发; 运用 1 计算机软件开发技术及应用概述 1. 1 计算机软件开发技术及应用现状 网络信息技术逐渐普及到人们的日常生活中,并给人们后期的生活方式及工作形式带来了重要的影响。基于互联网的发展视角进行分析,计算机软件技术的开发已经变得越来越重要,并且在计算机软件开发技术的运用上也变得尤为便捷。计算机发展在全世界逐渐获得了推广,市场中对于这方面的人才需求量也逐渐增大。进一步对计算机软件技术进行开发和运用,并有效地吸纳优良的专业人才已成为整个行业不断推进的重要难题。 1. 2 计算机软件开发技术与运用的重要性 互联网要在这一背景下获取更为快速的发展,必须在这一阶段对计算机软件开发技术进行创新性的发展。基于互联网后期的发展角度进行分析,计算机软件技术后期的推进和演变也变得尤为重要。计算机软件技术后期的运用能够更进一步推动网络信息的传递,使其成为可能,进而促使人们日常生活方式产生丰富的变化。在网络信息逐渐存在安全性、隐私性维护程度过低的情况下,计算机软件开发技术的应用就显得尤为重要,它的维护与提升成为了维系整个网络信息安全的重要难题,成为人们安全运用网络、享受其所具有的便利性中最为重要的因素。 2 计算机软件技术发展中存在的主要问题 2. 1 软件产业缺乏一定的核心技术 我国计算机软件技术发展依旧处在初级阶段,软件开发整体水平及相关开发能力都相对较弱,尤其在进行自我研发创新力上,更是处于弱势,进而导致我国软件产业处于较为落后阶段,并在产品层次及相关质量表现上依旧存在一个较低水平。之所以会导致这种现象,主要原因是缺乏相应的核心技术,甚至在一些软件发展前沿性及关键性的领域中依旧是空白阶段。 2. 2 软件人才结构存在一定矛盾性 目前我国,很多从事软件行业的工作人员,大多是基础性没有进行过高层次专业技术训练的人员,他们主要对一些基础程序及相关软件技术进行技术等方面的支持工作,并且缺少高层次科研性人才指导,这就导致我国软件行业难以朝着更为广泛和深层次发展。另外,用人成本也在不断增大。 2. 3 软件产业产品体系表现不够合理 虽然我国目前软件产业已经取得了很大成就,但是在发展结构上一直存在着很大的不合理性,缺乏一定的领导,更是缺少国际上的影响力,所以在许多方面依旧需要进行不断地提升和发展。 2. 4 软件产业的后期发展环境有待进一步优化 我国多年以来一直存在着这么一种现象,就是对计算机硬件的关注度远远大于对计算机软件的关注度,而且投入力度也大不一样。软件产业后期发展仍旧存在很大的不足。国内软件行业在不断发展过程中,常常会出现一些盗版软件,竞争依旧不公正,价格也会不公平,对于知识产权的保护通常比较薄弱。这些都会导致软件企业对于后期的计算机技术研发投入力度不够,不能够给工作人员提供更好的开发环境及支持,导致开发人员没有激情,致使整个产品质量得不到提升,发展空间难以拓展。 3 计算机软件技术开发具有的特点及常用方法 3. 1 计算机软件开发主要特点 在计算机软件构成要素中,系统的构成与所能够运用的软件都是计算机中最为重要的构成部分,而且所具备的特点主要可以分为以下两个重要方面: a) 社会运用价值方面。在对计算机软件进行开发过程中,往往会牵扯到许多不同内容,并且还可以与不同行业中的知识点进行融合,进而对社会各方面的发展具有重要的影响,进一步构建出具有多元化特点及不同的经济效益、社会效益。b) 由于计算机软件技术的开发充满复杂性,因而在开发过程中,大多会需要许许多多的企业支持、资金支持以及大量专业性的科学研究人员的支持。如果想要后期的软件技术得到顺利的创新和发展,就必须得到各方面的支持,进而推进后期的进程,这也会对企业的发展起到良好的推动作用。 3. 2 计算机软件开发最为常用方法 软件开发主要指以下几个方面: a) 生命周期法。对所开发的项目所用时间进行充分的衡量,并对计算机软件开发中不同开发阶段予以掌控,需要在各个不同发展与构建阶段对所需要依据的标注进行严格设定。在这样一种特殊的开发过程当中,也需要计算机软件技术开发人员对每一个方面进行细致、有序的安排,并且能够对社会消费人群的需求进行更为全面的考察和了解,进而对软件所表现出来的功能性进行极为精准的确立。除此之外,这种方法的构建所表现出来的最佳点则在于,可以更好地协助软件开发者制定出更为科学合理的方案,并对不同的软件构建各个不同阶段予以优化。b) 计算机软件系统开发完整且有序。通过这样的一种运用自动化的构建体系,对所需要设计的功能以及后期的目标进行提前设定,然后在运用计 算 机 软 件 开 发 平 台 对 软 件 代 码 进 行 编 写。c) 原型化的开发形式。这一开发形式主要是通过用户还没有对计算机进行软件开发前提前进行运用的方式、方法。这一方法主要分为以下 3 个方面,即: 实验型、进化型、探索型,而且能够在生活使用中表现出极为直观的特点,甚至还具有动态性及严谨性的特点,在这当中主要可以表现客户及开发人员之间的沟通与协商。d) 可视化的开发形式。此种方式的运用主要是通过一定的开发公式提供的图形用户界面,并对其界面元素进行菜单、对话框等合理操作,然后经过可视化的开发工具对其功能进行自发形式的构建,进而对所需要的软件进行开发和运用。 4 计算机软件开发技术运用分析 随着信息技术及网络技术的迅猛发展,计算机运用也得到了更为全面的普及,从这一变化当中也逐渐显示出全球共享网络资源时代已经逐渐发展成熟,也为许多计算机用户在后期的生活及共营中带来了更为优良的便捷性和帮助。在这个时候,要想能够更有效地表现计算机所具有的独特优点,就必须保证所有用户在对软件进行使用中的流畅度。具体而言,对于计算机软件进行开发,可以通过构建网络与用户之间的连接,确保不同节点之间在表现出独立性的同时,对所有用户进行统一性掌控,并对用户所遇到的问题通过一种特殊的平台构建进行快速地解决,让用户在有限的时间中提高工作效率,更有效地促进网络及信息化,使其得到更大程度的发展。在对计算机软件进行重新构建和设计时,需要对使用者进行实时的调查和分析,进而帮助设计者在设计软件的时候充分考虑到用户的体验感受。在进行设计的时候,还需要融入最为全新的开发技术,进而促使所设计出来的作品拥有更高的使用价值。还可以对计算机内部的数据进行还原和备份,进而增强软件运用的安全性和对突发事件的应对性,促使使用者的运用更为安全、可靠。 5 结语 计算机软件技术的开发已经发展了几十年,在这发展过程中,数字化以及网络化的系统、技术都在产生很大的变化和提升。对于软件开发者来说,在对软件进行开发的时候,要进一步选择优良的系统及科学管理的方法进行开发,只有这样,才能够促使软件工程体系得到更好的完善。 作者:周军 吴珅珅 单位:焦作大学 软件技术论文:手机百度地图软件技术的侦查应用 摘要:手机软件,又称为手机APP或是手机应用,即安装在手机上的软件。通过手机厂商预装或是用户自行安装,几乎每一台智能手机都安装上地图软件,给人们的生活带来了极大便利。侦查手段的发展同样得益于工具的革新,可以看到无论是驾车导航还是查询有关地址,手机地图在侦查人员的日常工作中已经得到广泛应用,其地图导航、地址查询、路线规划等功能已经为人熟知。然而作为一款普及程度极高的手机应用,在侦查中除了主动使用手机地图软件提供的功能,还应当具备逆向思维,从涉案手机中挖掘其他信息,综合发挥手机地图软件的作用。 关键词:百度地图;侦查;软件应用 随着智能手机的逐步普及,用户对于手机地图导航的需求也同步增长。手机地图已经从最初的定位、导航、规划出行路线,发展到能够提供三维街景地图、利用大数据实时显示道路拥堵情况、公交车位置等功能。而最近几年,各大手机地图企业不断加深O2O与手机地图结合的场景化运营,从原来的导航出行工具升级为现在的出行生活服务平台[1]。信息化侦查可资利用的资源越丰富,可供有关人、事、物的信息越多,显然手机地图软件的迅猛发展给信息化侦查提供了一个良好的契机。通过对百度地图的功能挖掘,可以为在信息化侦查中如何利用手机软件起到示范作用。 1手机地图软件在侦查中的应用方向 在侦查活动中,对于百度地图的应用主要有以下两个方面:一是对嫌疑对象手机中已经安装的手机地图进行信息查证,对手机用户的行为轨迹进行回溯或关联多维信息。二是在工作中主动应用手机地图,提高工作效率。 1.1通过手机地图软件进行轨迹回溯 查清案事件真相是侦查活动的重要目标。当我们将犯罪嫌疑人或被害人视为一个目标对象时,如果能够回溯其在一段时间内的活动轨迹,显然对于查明案事件至关重要[2]。尽管从理论上说,基于手机地图的定位实质上只是对手机定位,但大多数情况下手机与持有人密切相连,因此,可将手机和人视为同一个目标对象。通过手机进行定位,从而确定手机持有者位置的技术过去往往局限于技术侦查部门,并且由于在实践中具有广泛的使用需求,甚至形成一种依赖。但是传统技术更多是基于基站的定位,事实上自从手机有了GPS模块,对手机自身在室外准确定位已经不是什么困难的事。随着传感器技术、无线通信技术的发展,基于基站或是WiFi的室内定位技术已经今非昔比,越来越准确的室内定位正在逐步走入我们的生活。众所周知,只要有了手机用户的授权,手机地图会在用户授权的时段内持续记录地理位置信息。侦查工作中,对此类信息的提取无论是单纯还原目标对象的活动轨迹,还是关联出更多信息都具有重要意义。 1.2通过手机地图软件进行信息关联 当“联网+”成为流行语,O2O也已经大行其道,手机地图软件已不再仅仅提供简单的地图浏览、路线规划这样的“在线地图”功能,而是正在与线下的企业紧密结合,提供一站式服务,演化成为一个生活搜索服务平台。例如:车辆信息、银行卡信息、团购消费信息。更有意义的是,这些信息不再是一成不变的静态信息,从中不仅可以获得准确的银行卡号和车牌信息,还可以通过实时的多点信息,发现目标对象活动轨迹的规律。例如:通过用户多次团购地点、汽车维护保养地点的分析,可以判断出其活动区域。如果在抓捕犯罪嫌疑人之前通过手机地图软件作为人口了解到其团购信息,甚至可以为抓捕创造良机。因此,通过手机地图软件进行信息关联大有潜力可挖。 1.3通过手机地图软件提高侦查效率 通过手机地图软件进行目标对象的轨迹回溯仅仅是手机地图应用的一个方面,位置信息对于侦查人员来说同样十分重要。借助微信等第三方软件,将手机地图上的位置信息分享给个人或微信群中的数人,已经是实践中的普遍做法。从主动应用来说,手机百度地图有“一路同行”等适合驾车或步行时“边看位置边聊天”,这样的多边通话+位置共享交流的功能,对于跟踪、抓捕等侦查工作同样很有意义。除了位置信息,当前的手机地图还集成了城市路况信息,通过红、黄、绿三种颜色,可以清晰地标注出路况的拥堵程度。无论是百度还是高德,其准确率已经达到80%以上。侦查工作中需要驾车出行的机会较多,而通过躲避拥堵正确选择路线无疑意义重大。一、二线城市的侦查员不少已经能够熟练使用手机地图这一功能。 2手机百度地图的侦查应用 2.1对手机地图软件的检验与调查 我们理解世界的方式取决于我们接受的信息,在案件调查过程中手机正成为一个越来越重要的情报源。越来越多的实务部门开始重视在案件侦查中对手机的检验。当我们获取了目标对象的手机后,理所应当重视对其手机的基本检验,无论是手机的IMEI号,还是通信录、短信、通话记录或是各种手机软件内包含的信息都可能对案件侦查带来突破性机会。而从轨迹侦查的角度而言,手机地图软件是回溯轨迹信息最重要的依托。本文不去讨论如何去破解用户的手机密码的技术方法,而仅仅是针对无密码或是手机使用者提供手机密码情况下该如何关注手机地图软件的有关信息。以手机百度地图为例,以下信息需要加以关注。(1)用户名。如果发现手机百度地图中有登录状态的百度用户名,那么就应当留意该手机中是否有手机百度、百度云等关联软件。百度公司将手机百度称为“6亿人都在用的手机搜索客户端”,无论是用户数量还是搜索历史、关联信息都可以在侦查中发挥作用。百度云也同样是一块值得侦查员挖掘的“富矿”,当前使用手机注册后百度免费提供了2T的网盘空间,如果该用户使用百度云作为手机相册的网盘备份目录,其作用自然不可小觑。(2)常用地址。百度地图中有“常用地址”,设计者的初衷是为了方便用户将家庭和单位地址预设,从而可以迅速找到回到家庭和单位的路线。但从侦查的角度而言则有助于发现目标对象的落脚点和常去的地址。尽管有时这些地址不会像身份证上所显示那样详细,但却更具时效性。(3)历史搜索记录。由于控制面板中没有单独列出“历史搜索”选项,因此,“历史搜索”记录很容易被忽略。与此同时,也很少有手机用户会想到去抹除地图中的历史记录。只有当在百度地图的搜索栏中点击后,下拉菜单会显示出最近9个历史搜索记录。在过去的侦查实践中,就有利用车载导航仪的案例。移动互联网时代,注意对手机地图中所史记录的信息挖掘,同样可能为案件侦破提供更丰富的信息。(4)消费信息。从互联网进入移动互联网时代,LBS——“基于地理位置的服务”[3]方兴未艾,为了寻求更多的增长点,百度在2011年成为去哪儿网第一大机构股东,2014年全资收购了糯米团,于是手机百度地图也就自然成为百度糯米和网上订酒店的入口。从信息化侦查角度而言,百度地图顺理成章地成为由线上到线下调查的重要入口。我们不仅可以知道目标对象曾经有过几笔糯米团购消费,甚至可以实地开展调查。具体操作是在控制面板中的“订单”页面查看该用户有哪些消费记录。(5)车辆信息。近两年,手机百度地图注重打造成为“一站式”平台,因此,对于车辆服务的集成正在不断加强。如果“车主用户达到了1亿”的数据真实,那么很有可能有一部分人会将自己的车辆捆绑在百度账号上,以获得车辆违章查询、维修保养等优惠等服务。我们就可以从此打开一扇该用户车辆的窗口,将车牌号码、车型信息、行使城市等内容一网打尽。尽管通过内网的查询,获得上述信息并不复杂,但诸如车辆维修保养信息等依然十分有意义。 2.2地图服务商的协查 事实上,对于个人轨迹信息,能够直接从手机上通过查询各种历史记录获取的仅仅是冰山一角。地图服务商那里会集合用户海量的个人大数据,而位置信息可以更好地还原用户在一段时空的轨迹信息。只要安装了手机百度地图并打开定位开关,无论你是否打开百度地图,它将永远在后台发送用户的个人位置信息。更重要的是,对于大多数人来说,只要你打开百度地图软件,就会提醒用户“打开定位开关”,又有多少人会拒绝打开定位,或是在退出地图软件时能够记得关闭定位呢?因此,从理论上说,手机地图服务商掌握了注册用户更多的轨迹信息。但是否能够通过像百度公司这样的地图服务商获得某一名涉及犯罪嫌疑的用户一段时间内的空间轨迹信息,还有待实践的检验。当案件侦查需要,必须由地图服务商的协查时,应当在发出调查取证请求前,通过目标对象的用户名查证是否有启用其他服务。如果有诸如前文所述的“百度云”之类的服务应当视案件侦查需求考虑是否需要一并提出协查请求。 3结语 当大小公司企业或是通过二维码发展粉丝,或是通过手机软件不断开拓用户,以各种优惠政策促使手机用户主动或被动地安装手机软件,侦查机关不应当对这些现象无动于衷。我们应当认识到,侦查手段的发展同样得益于工具的革新,大数据时代的每个移动互联网企业回溯、被还原。通过对手机上安装的软件所承载的信息进行挖掘,对侦查实践具有重要意义。 作者:刘亚辉 单位:中国刑警学院 软件技术论文:插件技术应用计算机软件技术中的价值 摘要:近年来,计算机网络相关技术得到了较为迅速的发展。这不仅体现为计算机软件种类、数量的大幅增加,同时插件技术、分层技术等现代技术的进步也反映出这一现状,新型软件技术对计算机的功能扩充起到有效促进的作用。由此,便从插件技术与分层技术的内涵出发,并结合计算机软件技术,对这两项技术的使用价值展开深入探讨,以供参考。 关键词:插件技术;分层技术;计算机软件技术;应用价值 插件技术与分层技术的运用,一方面能够有效缩短计算机软件原型的完成周期,从而节省计算机软件开发的成本投入。另一方面,这些技术的应用也促进了相关技术的进步与使用性能的提升,从而达到更好满足客户需求的效果。据此,针对插件、分层技术在计算机软件技术中的价值展开探讨,具有较为深刻的现实意义。 1插件技术与分层技术概述 1.1插件技术的内涵 插件技术指的是一种应用程序,遵循程序接口完成相应的编写,再规范接口插件,达到拓展程序功能的目的。在当前的计算机软件使用中均包含了插件结构,当应用程序中缺乏插件技术时,那么插件便只能在系统平台中完成运行任务。当前计算机软件中运用到的插件技术主要有以下几种常见类型。(1)组件对象的模型插件。该技术又被简称为COM,利用该模型可以直接定义程序接口,而不需了解插件功能的整个实现过程,同时也能达到不同插件间通信的目的。(2)脚本插件。将插件逻辑运用编程语言转换为脚本代码的实质即为脚本插件的利用过程,编程语言可以是通用语言,也可以是自行开发的。当前脚本插件的主要语言形式为XML,在利用过程中具有简便、易于操作等优势,同时也使脚本插件具备一定的风险漏洞。(3)动态函数库的DLL插件。该类插件的运用主要是针对于主程序来完成,利用动态的数据库形式,主程序可以调用DLL插件中的函数,然后再通过相应函数完成对动态数据库中DLL插件的运用。在主程序运行过程中易出现“DLLHELL”的情形,在此状态下便会导致插件无法正常运行。 1.2分层技术的内容 由于计算机软件系统内部结构中的各个层次都存在相对应的关联,所以为了保证软件运行的灵活性与可靠性,通常需要开发出不局限于某一层功能而是适应多种功能需要的技术,这便需要利用分层技术来实现。随着当前计算机在小型数据功能中的广泛使用,计算机的软件开发也逐渐由单层发展为双层结构,在此过程中也不断提高自身的现代性与科技性。分层技术在计算机软件技术中的应用包含了双层技术、三层技术、四层技术、五层技术、中间件技术等不同类型,在利用分层技术的过程中,可以达到提升软件品质的效果。从社会角度来看,分层技术也能为创造更大的经济效益奠定良好基础。 2插件技术在计算机软件技术中的价值 2.1接口、动态链接库、主程序功能 插件技术在计算机软件技术中的应用原理概括来说主要有接口、插件、主程序三大组成部分。首先,接口指的是插件同主程序之间形成的标准通信协议规则,这对于插件与主程序能够实现有效交互起着基础性的作用,接口的有效也成为影响计算机软件插件插入结果的关键要素之一。其次,插件指的是动态插入形式,通过插件技术作用的发挥,从而帮助计算机软件增加更多的功能。此外,在管理处理功能方面,插件也能为计算机软件创造更为便利的接口,从而为调动程序的快速识别奠定了良好的基础。主程序的主要任务在于启动计算机软件,Windows系统中的主程序一般表现为exe格式文件。在软件运行过程中将插件加载到进程地址中,便可以达到实现基础功能与管理程序等目的。动态链接无法独立完成运行任务,而是通过调用独立程序从而达到使用目的的软件模块。其具体实施方法包括以下几种。(1)静态调用。该方式主要通过加载DLL和卸载编码来实现,不仅操作简单,同时也具有灵活性欠缺的特点。当动态链接库产生时,运用LIB文件完成移植,从而实现对DLL函数的调动,需要注意的是在隐式调动过程,FreeLibray和LoadLibrary无需进行调动,而是在建立起DLL文件时便可以自动让链接程序产生效用,实现对LIB的匹配功能。所以LIB文件的应用又常用于对DLL编译的替代使用。(2)动态调用。此类调用方式虽然同样是利用DLL的加载与卸载来完成,但是其对象主要为API函数,这与静态调用有着显著的区别。通过对内存的充分利用,便可以编写大型程序。 2.2插件技术应用价值与意义 插件技术的应用所具有的价值与意义简要概括起来主要有如下几个方面。(1)插件技术的发展能够促进电子商务以及服务器领域获得较大发展。计算机软件可以使各项任务有序、高效完成。这不仅可以分担服务器的运行压力,同时还可以为软件提供可靠的信息访问服务,从而对服务器管理、软件运行、开发、分配等起到极大的促进作用。(2)插件技术的运用能够实现系统功能的拓展目标。插件应用是立足于硬件系统的插件技术思想而建立起来的,通过将软件程序与接口紧密连接便可以实现拓展系统功能的目的。这一巨大优势也为计算机软件的开发搭建了更为宽广的平台,让系统功能的拓展延伸可以符合先进性与规范性需要。(3)插件技术直接促进了计算机软件性能的提升。插件技术的使用在解决软件集成问题的同时也极大提高了计算机的完整性。计算机软件的研发速度日益加快,要解决软件在开发设计中遇到的问题,则可以通过插件技术的运用提升计算机技术的适用性。 3分层技术在计算机软件技术中的价值 3.1分层技术的主要应用 分层技术在计算机软件中的应用大致可以分为如下几种类型。(1)四层技术。虽然当前计算机软件使用中仍旧存在大量的双层、三层技术,但是这些分层方式却无法适应信息技术发展的真实需要。所以基于传统的界面层、业务处理层与数据层发展而来的Web层、处理层、数据库层、存储层也能够更好更快地解决计算机相应问题。例如,在Web设计中,按照职能可将应用划分为表现层、业务层、持久层与领域模型层,通过四个层面独立的功能发挥,从而达到数据通信传输的效果。(2)中间件技术。该技术是优化数据库、计算机内部操作系统以及应用软件,从而达到加快软件开发速度、提升计算机运行效率的目的。利用中间件技术开发的系统不仅更具独立性,同时也蕴含了更加复杂的技术内容,例如异构和分布集成屏蔽等,这些也为简化软件、提升质量带来巨大帮助。(3)五层技术。在J2EE环境中,五层技术已获得了较为理想的使用效果,其内容主要囊括了客户层、业务层、Web应用层、资源层、集成层。总体来说,五层技术可以按照应用逻辑产生不同组件,从而可以最大限度满足计算机系统的使用要求。 3.2分层技术的应用价值与意义 分层技术在计算机软件技术中使用的价值与意义,总体来说有以下方面的内容。(1)分层技术可以规范软件的功能层次接口,从而达到优化系统的目的。接口在计算机软件系统中具有关键性地位,通过对接口位置的适当处理,既可以提高软件综合性能水平,让用户可以更加快捷、便利地完成计算机操作,同时也可以有效缩短计算机软件的研发周期,达到节省成本的目的。由此看来,分层技术的应用可以获得开发、应用、推广等多项价值,这对于计算机领域的进步也有着重大效用。(2)分层技术直接提高了计算机使用的灵活性与可靠性。计算机软件的开发必须满足灵活性与可靠性的需求,计算机使用并不局限于某一项功能,而是随着功能单元的开发,可以拓展更多的功能。要使得软件的多用性得到保障,那么必然要利用分层技术,才能为提升软件功能的多样化开辟路径,进而才能更好维护计算机软件的可靠性与灵活性。(3)分层技术所蕴含的物理含义也使得该技术的利用能够和软件开发达到更好的匹配效果。分层技术有着特定的物理含义,而在研发计算机软件的过程中,也需要结合分层技术不同层次的特性来协助完成,通过在问题与问题间构建起相对密封的系统,并保持每个层次的平等性,从而为不同层面的问题解决创造更为有利的环境基础。例如,在双层技术的运用过程中,可由服务器与客户端的断点共同组成“双层”,再由客户端为使用者提供界面,让其可以把握相关的逻辑关系。服务器也会在接受消息之后整合信息资源,并将其快速而准确地传递至客户端中。再如三层技术的应用,通过分层也让数据的运行效率与安全性得到了更好保障,在人机交互的过程中既减轻客户端的压力,同时也避免了资源浪费,使得开发的应用资源得到更好的利用。 4结语 插件技术与分层技术在计算机软件中占据着重要地位,插件技术能够有效简化软件程序,从而提高计算机的反应速率,分层技术能为计算机软件开发出更多应用功能创造条件。由此看来,只有加强插件、分层技术的应用分析,完善软件开发的数据库,才能促使现代信息技术获得更大的发展。 作者:果颖 单位:天津电子信息职业技术学院 软件技术论文:计算机软件技术开发应用分析 摘要:随着计算机网络在人们工作、生活和学习中的普遍应用,计算机软件技术的发展逐渐引起了人们的关注。本文以计算机软件技术的开发与应用为研究内容,在分析计算机软件技术发展现状的同时,还对其应用趋势进行了深入研究,从而进一步说明计算机技术的进一步发展的重要意义. 关键词:计算机软件;开发;应用 近年来,科学技术得到了快速发展,其中,计算机软件技术的发展在一定程度上促进了人生生活质量和方式的改变。随着信息化时代的到来,计算机软件技术的应用更为广泛,并成为社会经济发展的重要推动力量之一。 1计算机软件技术概述 在计算机的使用过程中,人们除了要掌握计算机操作系统的使用技巧,还要学会相关专业计算机软件的使用方法。计算机软件包括两种类型:系统软件和应用软件。其中,系统软件实现的是计算机系统管理、维护、监控功能;而应用软件则是用来解决用户需求,例如办公软件、社交软件、设计软件等。人们在计算机的使用过程中,主要是通过软件来实现各种操作,在计算机软件技术发展初期,由于技术水平限制,软件的工作效率较低,无法实现大规模的应用。随着计算机软件技术发展的不断深入,不仅实现了基于计算机平台的软件种类、功能的丰富,其设计也更加趋于人性化。 2计算机软件技术开发现状 基于工业生产发展的需要,以及产业化结构改革的必然结果,以计算机软件技术开发为核心的现代化发展模式将逐渐取代传统产业结构类型,成为未来世界生产力发展的主导力量。在生产实践中,计算机软件技术开发的应用效果得到了肯定,并开始在社会诸多领域得到较为广泛的应用。然而,即便计算机软件技术开发在生产应用领域的优势较为明显,但是,相对于计算机软件技术开发相对落后的中国来说,计算机软件技术开发依然有待进一步的在计算机软件开发中所暴露出来的问题也不容忽视。(1)中国在计算机软件技术开发方面起步较晚,技术积累明显不足,在计算机软件技术开发方面的创新意识和能力依然有待提高。不仅如此,欧美发达国家在计算机软件技术开发领域对中国进行严密的技术封锁,在计算软件技术开发的核心领域,中国依然处于自主摸索状态,尤其是对于计算机系统软件方面的技术开发所存在的问题,对中国社会主义现代化建设产生了一定程度的影响。(2)计算机软件技术开发人才体系有待完善,尤其是高端技术人才领域的人才缺失,造成了计算机软件技术开发的周期的延长,还影响了软件质量。目前,高新技术企业在高端计算机软件技术开发人才建设方面投入了大量精力,却依然收效甚微,这已经严重影响了企业的发展。(3)中国在计算机软件技术开发过程中,由于受多种因素的共同影响,导致自主品牌的数量明显偏低,相关软件技术开发环境无法满足要求,硬件成本过高,在计算机软件市场领域无法与欧美发达国家抗衡。 3计算机软件技术的开发方法 基于计算机网络技术的不断进步,软件种类与功能得到了极大丰富,并且,随着社会发展过程中对计算机软件的需求不断提高,以及计算机软件行业的竞争日趋激烈,计算机软件技术开发方法的创新就显得尤为重要。当前,计算机软件技术开发的方法主要包括软件原型方法、生命周期软件开发方法两种类型,基于开发思想上的不同,软件开发人员可以根据实际需要选择与之相适应的方法。 3.1软件原型方法 在软件技术开发过程中,软件原型设计是其中需要完成的关键内容,在明确用户需求之后,计算机软件技术开发人员根据该需求进行软件的模型设计,并通过市场调查,对最初的模型进行修改,以提高其适应性,并最终确定软件模型。在软件原型法中,所使用的方法包括递增式、抛弃式、演化式等,设计人员与用户共同参与,从而使软件的设计更加符合用户的需求。与此同时,通过与市场同类型软件产品的对比研究进行分析,提出科学的修改建议,对软件性能进行完善,由此可以看出,借助软件模型设计,能够有效提高软件技术开发的效率。 3.2生命周期软件开发方法 在计算机软件技术开发领域,生命周期软件开发方法也被称为瀑布模型,通过对计算机软件设计开发的不同阶段,将软件开发进行项目化的管理,分为需求分析、软件设计、项目编码及测试等阶段,按照流程化的设计开发理念,逐项进行。在生命周期软件开发方法中,软件的设计开发有着明确的框架结构要求,这对于计算机软件技术的开发有着一定的指导性作用,能够提高软件设计开发效率。不仅如此,在软件后期使用过程中,也有利于软件技术维护工作的开展。 4计算机软件技术的应用 目前,计算机软件技术的应用已经覆盖到人们工作、生活和学习等方面的多个领域,随着计算机软件的不断优化,其实际应用效果将得到不断提高。在社会发展的过程中,人们对于计算机软件的要求也在不断提高,其应用领域也在随之扩大。目前,计算机软件的应用正在向着大数据处理的方向发展,基于硬件的支持,计算机软件将不仅在民用领域得到广泛应用,在军事领域的应用也不容忽视。例如,民用领域的视觉识别软件,经过软件设计人员在算法方面的调整,可实现低空飞行的地形匹配技术,从而取代传统的惯性导航和GPS制导方式。计算机软件技术的广泛应用,从另一方面也为计算机软件技术的发展提供了更多的反馈信息,基于应用领域的不同,在计算机软件设计方法与模块化设计方面均有着特定的需求。通过总结实际应用中所出现的问题,进一步调整计算机软件设计思路与方法,从而提高计算机软件的适用性,为计算机软件技术的开发积累经验。 5总结 计算机软件技术的开发水平,是一个国家综合实力的重要体现,随着计算机软件技术在生产力发展方面的作用日益明显,各国开始逐渐关注这一新的技术领域。通过专业化的开发方法,以及针对性的设计思路,计算机软件技术将得到更为广泛的应用。 作者:曾峰 单位:南阳医学高等专科学校 软件技术论文:大数据时代下计算机软件技术探析 摘要:现阶段,由于科技水平发展速度飞快,计算机软件技术也广泛应用到了各个领域,对人们的日常生活与工作均产生了一定的影响,在大数据时代的影响下,社会各个领域必须要提高计算机技术,进而促进计算机软件技术在大数据时代的使用,方可产生更多的综合效益。本文主要对计算机软件技术在大数据时代的应用情况以及发展现状展开了深入的探讨,并期望可以为今后的研究提供相应的参考. 关键词:计算机软件技术;大数据;应用 在当前社会的发展中,随着计算机技术的广泛应用,导致各个领域的运营模式与管理方式均呈现出了相应的变化。在大数据时代的影响下,各个领域均应大力发展计算机软件技术,提高信息处理能力,结合当前的发展形势而进行相应的改革,提高资源整合力度,促使企业的运营方式朝向规范化、标准化趋势发展,这样一来方可促进行业的发展,进而产生更多的经济效益与社会效益,达到可持续发展的目的。本文主要对计算机软件技术在大数据时代的应用情况以及发展现状展开了深入的探讨,对今后的研究具有一定的现实意义。 1国内计算机软件技术的发展趋势 由于计算机软件技术发展速度飞快,很多企业为了促进发展,均提高了对数据存储以及数据库研发力度,由此一来也为很多用户提供便利条件。随着大数据时代的到来,大数据逐渐受到了社会各界的广泛关注。通过对大数据进行分析后可发现,我们也可将其称之为巨量资料,实质上即为必须要采用相应的处理模式方可具备一定的决策能力、洞察能力的海量数据。随着互联网技术的飞速发展,所形成的数据信息也会逐渐增多,根据资料结果显示,数据早已高达10亿T。因此,随着大数据时代的来临,显著促进了国内计算机软件技术的发展,提供了更多发展空间,显著促进了社会经济的发展,产生了更多综合效益。 2计算机软件技术在大数据时代的应用 结合国内的发展形势进行考虑,即使大数据的发展时间比较短暂,然而却产生了极大的效果,受到了社会各界的广泛支持。在这一背景条件的作用下,国内的计算机软件技术必须要不断的完善与改革,方可产生更多的发展机遇。现阶段,很多行业早已将提升计算机软件技术作为主要宗旨,并且结合实际而推出科学规范的运营管理方案。随着大数据时代的发展,企业为了减少成本费用的支出,产生更多的综合效益,均已经加快了改革力度,朝向专业化的处理技术方向发展。在大数据时代的影响下,应用计算机软件技术后可以致使数据信息更加透明化,提高数据的真实性。除此之外,我们也能够以真实准确的数据信息为基础,判断行业的实际发展情况,进而拟定出合理的发展规划,达到可持续发展的目的,具体可从以下几个方面着手。 2.1信息通信 随着IBMSPSS预测分析软件的广泛应用,能够有效减少客流量的流失,不仅可以凭借软件而判断客户的各项行为,同时也能够找寻出在运营管理的过程中所潜在的问题,并对其进行及时解决,进而洞悉客户的行为,达到预留客户的目的。本文在研究的过程中以通讯行业为案例,电信工作人员能够应用计算机软件技术而了解海量客户的数据信息,并对客户的行为进行分析,之后销售至其他企业,产生更多的经济利益。结合当前的发展形势进行考虑,移动公司利用大数据技术,可以对客户实行全面监控与追踪,进而掌握客户的资料信息,最终采用相应的手段迅速将资料传递给负责人。 2.2商业运营 通过对动物园的运营状况进行分析后可发现,管理者利用Cognos,为I-PAD构建了即时功能软件,换而言之,在该软件的作用下能够访问游客信息,并以此作为服务依据。由此一来则可了解到,正确使用软件技术能够有效促进市场经济的发展,进而在严峻的市场竞争环境中占有重要影响力。 2.3企业信息解决方式 一般情况下,企业信息管理软件基本上则使用在以下几个方面,即:工作人员流动、获取客户信息、互联网营销以及风险监控等。在SAS/EM的影响下,企业在运营管理的过程中可以将数据信息挖掘步骤分为五个环节,具体如下所示:2.3.1抽样环节针对这一环节而言,则是产品在运营生产的过程中对数据信息进行抽样选择,例如验证集等。通常情况下来看,在选择样本容量时,我们可对其作出相应的定位,样本应具有一定的代表性意义,信息量充足,方便进行分析与应用。2.3.2开发与探索环节在此环节中可采用关联性以及趋势性等方法而获取数据信息,进而提高用户对数据信息的了解。在此环节中所采用的方式主要包括以下几种,即:统计报告以及变量选择等。2.3.3修改与更改环节在此环节中主要以模型选择为主要操作目标,用户在进行创建以及选择等操作后能够对数据集进行更改。在此环节中所采用的方式主要包括以下几种,即:变量转换以及产品编码等,最后则对数据进行分箱处理。2.3.4模型环节为了确保预测数据的精准性,工作人员在操作的过程中必须要应用辅助工具而对模型进行培训。在企业的运营规划中,这一环节尤为关键,并占有重要影响力,不仅可以确保产品质量,同时也能够产生更多的市场经济效益,对企业的运营发展可产生很多的积极影响。2.3.5评估环节通常情况下来看,在进行该项操作时,首先应对模型进行对比,并且运算出全新的拟合统计量,在此之后则让相关的工作人员对此进行研究,对所产生的运营方案进行测试,最终形成报告文件。 3结束语 综上所述,随着大数据时代的来临,显著促进了国内计算机软件技术的发展,提供了更多发展空间,推动了社会经济的发展,产生了更多综合效益。虽然国内大数据的发展时间比较短暂,但是在数据采集以及应用等方面均已经逐渐趋于完善,不但可以减少成本费用的支出,同时也可提升工作质量,对企业的发展可产生很多积极影响。 作者:张涵桐 单位:山东省威海市文登一中 软件技术论文:高职院校软件技术校企人才培养对策 摘要:目前高职院校软件专业最为有效的人才培养模式是校企合作模式,它能帮助学生快速提升专业技能,积累社会经验,较好地解决当前软件人才培养中存在的问题。本文分析了校企合作模式的现状及其存在的问题,并针对这些问题提出了解决对策,旨在进一步完善校企合作办学模式,为社会培养更多的高技能人才。 关键词:高职院校;软件技术;校企合作 目前,社会各行各业的竞争十分激烈,学生就业压力大,刚踏入社会的学生如果没有能力和经验,很难在短时间内立足。为了使职业院校学生在激烈的竞争中脱颖而出,实现自我价值,学校需要不断探索人才培养模式。经过实践证明,与企业合作办学的校企合作模式是目前最为有效、最具优势的人才培养模式。 一、高职院校软件技术专业校企合作人才培养的实施背景 校企合作不同于传统的办学模式,它包括从理论基础到社会实践的全过程,由校方和企业合作完成,帮助学生掌握专业技能。目前我国已有许多高校采用了校企合作的人才培养模式,与一些优秀的企业单位进行合作教学,这样不仅可以帮助学生打好理论基础,还能获得宝贵的实践经验。校企合作模式是我国高职教育探索出的一条人才培养新途径。 二、高职院校软件技术专业校企合作人才培养现状 目前,校企合作的很多实施方案还有待进一步完善,所以当前人才培养效果还没有达到最佳状态。在校企合作的过程中,有些企业没有提供最优质的资源,教师也没有采用灵活多变的教学方式,没有为学生带来生动有趣的教学内容,使学生在课堂中并没有有效掌握知识和技能,这在很大程度上限制了校企合作最终成果的呈现。校企合作的办学合作方案,需要校企双方达成共识,在政策、平台对接、激励制度的实施、管理制度等方面达成高度的统一。但是在实际的操作过程中,校企双方的沟通和衔接却总是没有达到预期的效果,这使教学过程中出现了一系列的不足和问题。而且,目前企业的积极性普遍不够高,导致学生在实践中并没有达到预期效果。这些因素在一定程度上影响了校企合作之间的实效性。另外,在校企合作的过程中没有有效激发学生的创新意识,这使学生学习软件技术的兴趣不高,校企合作模式并没有达到最佳效果。而且,校企合作的管理机制以及相关的法律规定并没有得到完善,这可能导致校企合作在实施过程中存在一些细节方面的漏洞及偏差。 三、实施校企合作人才培养的对策与建议 1.在校企合作人才培养中要发挥引导与保障作用 针对校企合作人才培养的模式,政府应当在法律和制度层面为校企合作提供保障。首先,学校和企业是两个不同性质、不同盈利方式的单位,学校的主要目的是教书育人,而企业单位的主要目的是盈利。因此,让校方和企业达成共识,实现共同发展,需要一个日积月累的过程。在这个过程中,法律需要发挥规范和引导的作用,使校企合作在实施过程中能够得到保障。例如,在软件技术专业校企合作人才培养中,可以对表现优异的院校和企业进行奖励,这对其他的企业和高职院校势必会起到激励的作用。另外,对学生个人来说,法律和制度能避免其正当利益遭受侵害,使其个人权益得到保障。 2.探索和实践面向软件企业需求的订单培养模式 企业是一个以生产经营为主要目的的单位。企业需要什么样的人才,学校就有针对性地培养什么样的人才,人才就如同企业的订单一样,在学校接受针对性的培养和训练。学生在上岗前接受企业准员工的培养教育模式,收获专业技能和社会实践经验,真正实现定制培养。在培养过程中,学校要根据学生和企业的实际情况,让学生了解企业的岗位设置、岗位需求、岗位要求,有针对性地提升自我知识技能,帮助学生能够真正掌握对口岗位所需的专业技能。校企双方还要达到教育理念及教育方式上的统一性,在诸多细节上进行研究,帮助学生快速适应工作岗位。总之,校企合作人才培养模式被越来越多的高职院校认可,将其广泛应用于软件人才的培养中,可以实现院校和企业双赢的结果。 作者:罗莎 汪卫星 韦大欢 单位:北海职业学院 软件技术论文:怎样提高软件技术程序课堂教学的效率 【摘要】本文基于当前软件技术专业程序课堂教学现状,详细分析了当前在教学过程中存在的不足,并提出了三点提高软件技术专业程序课堂教学效率的策略,希望能够提高软件技术专业教师在程序课堂教学中对学生实践的重视程度,从而提高软件技术专业程序课堂教学效率。 【关键词】软件技术;教学效率;策略 随着时代的发展,当前社会对软件技术专业学生需求越来越多,但同时对软件技术专业学生的要求也越来越高,为了使学生能够更好的在程序课堂教学中学习到相关知识,教师就应该积极改变传统教学模式,更新自身教学理念,通过借助多媒体、互联网、计算机等技术,为学生普及更多的软件技术专业内容,从而使学生能够更顺利的走入社会,为学生发展作出贡献。 一、软件技术专业程序课堂教学现状 (一)软件技术专业教学内容有限 由于当前企事业单位发展的需要,软件技术得到了广泛的使用,在当前社会快速发展的大背景下,软件技术也实现了快速发展,其中不仅包括了很多新内容,对设计人员要求也有所提高,而学校作为培养软件技术开发人才的基地,当前在开展软件技术专业程序课堂教学时,仍然存在着教学内容有限的问题[1]。笔者通过分析发现当前使用的软件技术专业教学仍然使用着以往的教材,虽然使用以往教材能够使学生学习到一些基础性的软件技术知识,但是无法使学生及时掌握到当前更新的软件技术教学内容,因此在一定程度上降低了课堂教学有效性,学生无法及时跟上当前软件技术发展的潮流,当学生在后期进入工作岗位时,势必会出现一些问题,降低学生的职业能力与水平。 (二)软件技术教师教学理念落后 虽然在教学改革的大背景下,软件技术专业程序课堂教学已经提高了对学生的重视程度,但是由于传统教学理念根深蒂固,大部分软件技术专业教师在教学过程中仍然采用传统教学观念,意图通过为学生灌输与软件技术相关的知识来提高学生软件技术设计能力,然而在该种教学理念引导的软件技术专业教学下,学生无法感受到自身主体在学习过程中的重要地位,不仅降低了学生学习兴趣,甚至还会造成学生出现厌恶学习软件技术知识的情况,学生普遍对程序设计出现了学习积极性不高的情况,降低了程序课堂教学有效性与学生学习有效性,对学生日后的发展也产生了不良的影响。 (三)软件技术专业程序课堂教学方法单一 除上述问题外,当前在软件技术专业程序课堂教学中,还出现了教学方法单一的问题,造成这一问题的主要原因是软件技术教师教学理念相对落后,这一问题带来的不良影响主要体现在以下几方面:一是学生学习思维受到限制[2]。由于在程序课堂教学过程中使用的教学方法相对单一,因此过度强调学生被动式学习、机械式训练,忽视了学生的主体地位以及学生对知识的接受能力,导致学生思维得不到有效发散;二是课堂效率降低,由于学生对单一的程序可能教学方法不感兴趣,因此在课堂中还可能出现玩游戏、玩手机的情况,降低了学生课堂学习的积极性以及学习效率;三是学生无法利用学习过的知识解决问题,由于学生学习积极性的降低,导致学生无法全面掌握教师所讲授的内容,降低了学生程序设计能力。 二、提高软件技术专业程序课堂教学效率的策略 (一)借助互联网技术,为学生普及更多知识 在上文的分析中,我们能够发现,当前软件技术教学知识受到限制是导致教学效率降低的主要原因之一,基于此,为了提高软件技术专业程序课堂教学效率,教师在教学过程中就应该积极借助互联网技术,通过查找一些与当前软件技术中程序设计相关的知识,了解到当前程序设计发展情况,从而为学生讲授更新的软件技术知识,使学生不仅能够及时了解到软件设计的发展情况,更能够激发出自己学习软件技术知识的兴趣。首先,软件技术专业教师应该全面总结当前软件技术专业程序课堂教学内容,从而建立起更系统的软件技术知识框架;其次,教师在借助互联网技术了解当前软件技术发展情况时,应该实现新旧内容的有机融合,从而使学生的软件技术学习系统更加清晰。 (二)开展教师培训,更新软件技术教师教学理念 虽然与以往教学相比,当前更重视学生的主体地位,但是在开展软件技术专业程序课堂教学过程中,教师的引导地位也是十分重要的,只有教师具备正确的教学理念,才能提高教学的有效性[3]。基于此,学校就应该发挥出自身作用,通过为软件技术专业教师开展培训活动,使软件技术专业教师能够认识到自己当前在程序课堂教学过程中存在的不足,同时在开展教师培训时,还应该更新教师的教学理念,使教师切实认识到学生在教学过程中学生的主体地位,从而不仅仅采用传统“理论+实践”教学模式进行教学,也能够考虑到学生接受能力、自主学习能力等方面,提高学生与课堂的融入程度,从而提高软件技术专业程序课堂教学的有效性。 (三)使用计算机技术,实现理论知识向实践的转变 在软件技术专业程序课堂教学中,实践教学与理论教学同等重要,只有学生能够将理论中所学习到的知识运用到实践中,才能够切实提高教学的有效性,为学生今后发展作出贡献,由此看来,教师在教学过程中,就应该积极使用计算机技术,实现理论知识向实践的转变。基于上述分析,教师在程序课堂教学时就应该做好以下几方面工作:一是深入分析学生在本节课的学习状态,从而找到学生学习重难点;二是根据所掌握的重难点,通过为学生布设任务的方式,使学生能够在课堂练习或课后练习中更好的运用理论知识设计实际程序,保证学生能够在练习的同时加深对理论知识的记忆,提高学生学习水平,同时也提高软件技术专业程序课堂教学效果。 总结 总而言之,要想提高软件技术专业程序课堂教学效率,教师在教学过程中就应该积极借助互联网技术,为学生普及更多的知识,使学生能够激发出自身软件技术学习兴趣,同时,教师还应该积极转变自身教学理念,采用更适合的教学方法,使学生能够积极参与到课堂学习中,从而让学生能够主动将理论知识运用到实践操作中。 作者:周海珍 单位:湖南软件职业学院
软件毕业设计论文:Solidworks软件在高职机械类毕业设计中的应用 摘要:本文介绍了多个高职机械类学生应用Solidworks软件进行毕业设计的实例,说明了Solidworks软件的应用对提高学生的学习积极性、促进学生对先进制造技术的理解和掌握、培养学生的现代工程素养和创新能力,起到了良好的教学效果。 关键词:Solidworks;毕业设计;三维造型 现代制造业日趋国际化,缩短产品开发周期,减少开发新产品投资风险,已成为企业赖以生存的关键。[1]制造企业运用先进的设计模式,采用先进的制造技术,从而在激烈的市场竞争中立于不败之地。为了适应现代制造业对人才的需求,培养掌握先进制造技术、具有现代工程素养和创新能力的技能型人才,是高职院校刻不容缓的重任。 毕业设计是高职学生三年学习的重要总结,是最重要的一次集中性实践环节,它要求学生综合运用相关知识,结合实际课题进行设计和创新,从而培养学生的动手能力和创新能力,全面提高学生运用知识的水平。[2]笔者所在的教学团队根据高职学生的知识特点,设计了多个富有创意和挑战性的实际课题,由学生选作,要求采用三维机械设计软件的主流产品Solidworks完成。主要是基于以下考虑:①学生在相关专业课程中已经学习了Pro/E软件的应用。有一定三维CAD软件应用经验者都知道,各三维CAD软件的应用思路大体相同,学习一种三维CAD软件作为基础,再学习其它三维CAD软件将很容易上手。但学生在学习阶段并没有这样的认识,因此希望他们在校学习阶段即积累一定的三维CAD软件应用的经验。②通过企业调研,我们发现目前Solidworks软件在国内外中小企业中已经得到了广泛的应用,受到广大设计人员的欢迎,为了使学生免除进入企业后,缩短适应期,减少再培训等环节,在校学习阶段即提供机会让学生深入学习Solidworks软件,为实现与工作岗位的无缝对接打下良好的基础。 一、举一反三,拓展思路 大部分的高职机械类专业都开有机械基础或机械设计基础课程,在该课程的教学环节中,有两周左右的课程设计内容,要求学生根据给定条件完成一个减速器的设计,包括设计计算、二维装配图绘制及部分零件图绘制。但在两周的时间里,学生并没有利用这一机会完成减速器三维造型。因此,在毕业设计阶段选择减速器设计课题的学生,第一个任务就是利用Solidworks软件完成减速器的三维造型,由此学习Solidworks软件的零件造型、装配、工程图及文件管理等方面的功能。 上述减速器作为经典的案例在教学中广泛采用,其设计过程已经程序化,有大量可供参考的资料,为了拓展学生的思路,提高其综合应用课本知识的能力,要求进一步独立完成其它类型减速器的设计。例如下图所示的同向三螺杆挤出机减速器、异向三螺杆挤出机减速器等。 要求学生通过查阅资料,制定设计方案,完成设计计算并利用Solidworks软件完成三维图及工程图的绘制,使他们懂得怎样将所学的知识融会贯通,灵活应用于解决实际问题。 二、从设计到加工,体验真实的生产过程 在技术进步的大背景下,产品的设计和加工工艺越来越精细,产品的成品品质越来越精致、优良。[3]机械制造类工作岗位越来越离不开计算机辅助设计与制造软件的应用。Solidworks是一款综合性的创新平台,利用它可以设计多样化的产品。下图是利用Solidwork软件设计的玩具小车,可以实现其精美的造型,如同真实的产品一样。在完成造型后,进一步制定各零件的数控加工方案,利用CAM软件编制数控加工刀路,生成NC程序,并在数控机床上实际加工出产品。 学生在此过程中可以完成机械制造业中的设计、工艺、编程、机床操作等典型工作任务,体验设计员、工艺员、编程员、操作工、检验员等岗位角色,使学生熟悉零件从设计到加工的整个过程,掌握零件的基本设计方法与数控加工的基本技能,进一步巩固与扩充以前所学的《机械设计基础》、《机械制造基础》、《数控加工工艺》、《数控编程与操作》等课程的知识。同时鼓励学生充分发挥其创新能力,设计出具有自身特色的产品。学生要利用三维软件实现自己的构想,必须钻研Solidworks软件的各种造型功能,从而提高软件应用能力。通过反复的交流与修改,设计并最终加工出属于自己的作品,培养了创新意识,加强了实际操作技能。 三、整机设计,综合能力的培养 该课题要求学生利用Solidworks设计和装配一种单螺杆膨化机。首先由教师提供设计指导书,包括膨化机原理、产量计算方法、螺杆设计方法等等资料,在充分熟悉基本资料的情况下,鼓励学生扩散思维,采用不同的结构实现所需要的功能,学生综合运用以往知识,先拟定各自的设计方案。最后集中进行各种方案展示、小组互评、指导教师点评,通过比较、筛选和组合,确定出最为合理的设计方案。 小组成员分工合作,从膨化机的功能入手,通过产量、功率等要求确定基本尺寸,还要考虑密封、润滑、加热、定位、拆装及标准件的选择等一系列问题,并进行强度验算。最终完成三维装配图和二维零件图。 在完成毕业设计的过程中,学生以独立的主体身份从事一定的、相对独立的具体工作,大大激发了他们的求知欲望。以往的毕业设计中,二维图纸的绘制和修改工作量很大,占用了学生大量的精力和时间。而三维设计软件的应用可将毕业设计的重点由二维图纸的绘制转化到不同方案的设计和创新上,突出了设计创新,培养了学生运用现代化手段解决工程实际问题的能力。对增强学生的综合分析问题、解决问题能力,建立机械设计的整体思维大有帮助。 四、理论联系实际,实现与工作岗位的顺利对接 传统的毕业设计中设计出的产品由于没有得到制造、装配以至样机试验的验证,许多不合理的设计,甚至是错误的设计很难被发现。输送机设计课题即来自真实的产品。该课题是与输送机生产厂家合作设计制造一台计量输送机,学生与指导教师一起参与到该项目中。首先由用户提出使用要求,包括输送材料、输送能力、输送距离等基本要求,然后学生与指导教师一起讨论结构设计、基本尺寸的确定、电机的选择等。确定方案后,由学生利用Solidworks完成该输送机的三维绘制,再交给用户确认。由于SolidWorks软件可以完成复杂零件的三维造型,并可根据需要生成各种剖视图,有助于了解产品复杂的内部结构,对设计方案的表达更加简单明了,与用户的交流也更加顺畅。同时,由于界面友好、造型方便、图形质量好等特点,也使得产品设计和造型的时间缩短,效率大大提高。 用户确认后,由学生输出二维工程图交由工厂进行生产。由于设计、生产、用户各方都没有该种物料计量输送机的经验,生产后出现物料架桥等问题,需要对原方案进行改进。每次改进都是首先在三维图上修改,再在实物上完成。经过不断改进,最终满足了用户的要求。整个过程由于SolidWorks软件的应用,大大缩短了试制周期,降低了成本。学生自始至终参与了该计量输送机的设计与生产,参与了各种问题的解决,其在毕业设计中所做的工作即是实际工作岗位上一名结构设计人员需要完成的工作,真正实现了与工作岗位的顺利对接。 实践证明,将SolidWorks三维设计软件引入毕业设计,可取得良好的教学效果,极大地调动学生毕业设计的积极性和创造性,由此提高了学生对先进制造技术的理解和掌握,锻炼了学生解决实际问题的能力,对学生创新能力的培养起到了积极的促进作用,毕业设计的效率和质量大大提高。 软件毕业设计论文:软件工程学在毕业设计中应用研究 摘要:毕业设计是一个十分重要的教学环节,是一个系统工程,应使用工程化的方法、步骤统筹安排以取得良好的效果。软件工程学是指导计算机应用专业软件类学生进行毕业设计的重要工具之一。将毕业生设计过程、文档书写与软件工程学紧密结合起来是提高学生毕业设计论文质量的一个重要途径。结合软件工程的基本知识,通过对软件类学生毕业设计过程存在的常见问题的研究,提出了应用软件工程学去指导学生毕业设计的方法。 关键词:软件工程;毕业设计 0引言 毕业设计是高等院校应届类毕业生在毕业前接受课题型任务,在教师指导下进行科学研究或工程实践并取得成果的过程,是高校实现人才培养目标的综合性实践教学环节,是一次理论与实践相结合的的锻炼机会。如何在新形势下改革毕业设计, 提高学生软件类毕业设计的质量,进一步规范毕业设计中的软件开发过程,抓好高校毕业设计这一实践环节,加强对毕业设计过程的管理与监控, 切实提高毕业设计的质量,对于软件类学生在毕业设计中实施合适的软件设计具有重的指导意义。 1毕业设计的必要性 高等职业教育应该是以能力为本位、以学生为主体、以实践为导向的教育。毕业设计是高等教育培养学生综合运用所学理论知识和技能解决实际问题能力的重要环节之一,是衡量毕业生是否达到相应学历层次的重要依据。毕业设计将总结专业基础和专业技术的学习成果,锻炼和开发学生的综合运用能力。 高职院校软件相关专业组织毕业设计应该符合新的人才培养标准,对培养学生的职业技能和素质要具有积极的意义。而对于即将毕业离校的应届毕业生来说,毕业设计无疑是计算机软件各相关专业理论教学、实验、实训等有机结合的途径之一。 通过毕业设计能锻炼学生的能力: (1)实践软件工程的相关原理能力。毕业设计的过程,是一个课题小组从接到开发任务到提交产品和文档的过程,其中涉及到需求分析、概要设计、详细设计、编码、测试、程序打包、编写文档等软件工程具体的各个方面。经过锻炼,学生们对软件工程学思想和方法的理解会大大加深。 (2)解决具体问题能力。在毕业设计的进行过程中,学生一定会遇到平时在课堂的理论学习中碰不到的困难和挑战, 而克服这些困难、解决实际问题的过程就是软件技术和心理素质逐步提高的过程。 (3)团结协作的意识、能力。通过毕业设计这一过程,学生就会产生团结协作的意识和能力。 2软件工程学的基本思想 软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科,包括两方面内容:软件开发技术和软件项目管理。其中,软件开发技术包括软件开发方法学、软件工具和软件工程环境,软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划。 3高职类学生毕业设计现状 毕业设计的主要目的是培养学生综合运用所学的基础理论、基本知识和基本技能,用以分析、解决工程、科研、社会实际问题的能力,使学生得到工程设计方法和科研能力的初步训练。毕业设计中存在的问题主要表现在以下几个方面。 3.1选题的盲目性 只是把毕业设计环节作为大学生活的必经环节, 纯粹是为了完成学业而去做毕业设计, 造成选题的盲目性、有的选题则是陈旧。 3.2可行性分析与需求分析重视程度不够 绝大多数毕业生在确定了毕业设计的题目后,几乎不进行调查研究工作就立即投入到整个系统的设计中, 一旦遇到了与实际不符的地方, 又重新返回, 对已经做好的设计进行修改。最终导致设计的系统杂乱无章, 甚至到了最后只能马马虎虎地仓促交工。 3.3系统开发过程中的文档不够正规,不够完备 完整的设计不仅包括所完成的可操作的系统,一般的操作帮助,还包括在开发系统的过程中所产生的各个文档等一些文字的东西,比如解释清晰、内容全面的数据字典和使用手册也是必不可少的,否则用户会感到使用起来不方便,觉得难于操作。 3.4模糊的评价标准 导致毕业设计质量下降的一个非常重要的原因就是没有建立精确细致的评价体系。 这严重影响了项目的进度和质量,并且使学生没有真正得到必要的锻炼。我们通过对这些问题进行详细深入的分析,提出一个软件过程框架,这个框架主要从需求、测试、集成这3个方面给出工作要点和规范。 4利用软件工程学思想指导学生进行毕业设计 毕业设计本身是个工程,要用工程的方法去处理。从软件工程的角度去指导学生进行毕业设计,在毕业设计过程中,要系统地将所学知识应用于实际问题,按软件工程学思想展开工作。 图1软件生命周期与毕业设计各阶段之间的映射 4.1以可行性研究指导选题目 可行性研究,应该从技术可行性、经济可行性、操作可行性三个方面去研究,在毕业设计题目的选择过程中,应立足于解决实际问题,注重发现问题、分析研究问题和开发创新的能力。选题原则上,可以参考以下几点:①毕业设计的课题应该能使计算机专业所学的理论知识进一步理解并深化,也就是说,毕业设计应尽可能包括多门专业基础课和专业课的综合运用,并且要紧密结合工程实际,以有利于学生的全面训练;②选择难度适中的课题, 保证课题的完成质量;③课题要适合于各个模块独立进行,并便于最后统一调试;④课题规模应大小适合,难易程度适中。 4.2需求分析是关键 需求分析的基本任务是准确地回答“系统必须做什么”, 也就是对目标系统提出完整、准确、清晰、具体的要求。系统分析员可以通过多种形式来获取用户需求,对用户提出的需求进行分析,以此来确定其中要实现系统的功能。对需求划分优先等级,找出核心需求和重要需求,以保证系统构建的正确性。 在进行软件类毕业设计时,为了保证需求获取的准确性和全面性,可以让项目组的所有学生都参与到用户需求的获取的工作中来,发挥集体的能力,并由指导教师进行最终的确认。 4.3规范设计过程 需求分析完成后的下一个阶段就是系统设计,包括概要设计和详细设计。 详细设计阶段的任务就是深入每个函数内部,以伪代码或注释的形式实现整个函数,设计出程序的详细规格说明。 从系统设计开始,学生要按照软件工程的要求,画出DFD图,对输入、输出数据流进行详细的说明,建立符合软件工程规范的数据字典,根据DFD 图设计出模块结构图。 4.4重视文档写作 在毕业设计的过程中,要严格遵照软件文档的思想,记载设计过程的每一阶段完成了哪些设计,下一阶段的任务、目标及技术手段,这样,把文档作为整个设计的指挥棒,使设计有条不紊地进行。 4.5重视测试工作、撰写毕业设计说明书 软件测试工作也是软件开发的重要组成部分。通过实际应用效果和测试数据,毕业设计的成效就可一目了然。 毕业设计说明书的撰写是最后一个阶段,要求学生回顾设计过程,总结劳动成果,这时学生就会对软件开发及必须经历的几个步骤都有更深刻的认识。最后,要求学生对毕业设计进行系统的总结,写出毕业论文。 5加强对学生综合能力的培养 通过实践的练习,不仅能加深对理论的理解,同时也能锻炼运用知识分析问题、解决问题的能力。毕业设计这一实践环节是高等学校培养学生实际能力的主要手段,也是高等教育的重要组成部分。充分、有效地设置软、硬件的毕业设计对学生能力的培养至关重要,可以缩短学校教育与社会流行技术、工具的差距,满足学生毕业后的工作需要。通过毕业设计必须达到培养学生以下方面能力的目的。 5.1工程实践能力 学生能够准确把握选题的逻辑重心和学术思路,能够运用丰富的专业知识进行处理,具有严谨的理论思辨过程,以锻炼毕业生的工程实践能力,使毕业论文具有一定的应用和学术探讨价值。 5.2书写和表达能力 毕业设计论文是毕业设计工作的总结和提高,和做科研开发工作一样,要有严谨求实的科学态度。在毕业设计期间,尽可能多地阅读文献资料是很重要的,毕业设计大多数是技术开发型的,其论文的主体部分应包括:总体设计、模块划分、算法描述、编程模型、数据结构、实现技术、实例测试及性能分析。这些内容根据任务所处的阶段不同,可以有所侧重。 5.3创新能力 提出创新要求后,带领学生认真复习或补学过去没学过、没有学好的课程,并在此基础上结合实际工作中出现的问题孕育出一些新的思路,将毕业设计推上一个新台阶的方式,与为每个人专门分配某一特定的作业来锻炼学生基本技能的方式相比,更能扩展学生的视野,培养创新能力。 5.4协作能力和团队精神 通过集体活动和成员沟通培养成员的团体情感,增强团队的凝聚力。毕业设计将一个学生从入学初到毕业前的软件专业课程的学习内容链接成线,实现了课程的真正衔接,也使学生在毕业前对软件方面所学的知识进行了比较完整的概括与总结,达到了良好的理论联系实际的教学效果。毕业设计弥补了课堂教学的不足,加深了对理论的理解,促使学生深入思考,敢于创新,同时使学生的动手能力、分析和解决问题的能力、书写和表达能力、协作能力等各项能力都得到了培养和提高。 6结束语 软件工程作为软件开发工程化、规范化的具体实施方法,在将其应用到毕业设计中之后,学生在软件设计的文档书写规范化等方面均有了很大的改善与提高。将软件工程应用于毕业设计中不仅仅完成了一门课程从理论到实践的过程,而且将一个学生从入学到毕业前软件专业课程的学习内容链接成线,完成了前导后续课程的真正衔接,也使学生在毕业前对软件方面所学的知识进行了比较完整的概括与总结,因此,软件工程学在计算机专业学生毕业设计中的应用具有重要的现实意义。 软件毕业设计论文:软件工程专业毕业设计论文 1概述 在应用型本科院校中,尤其是软件工程专业,毕业设计作为教学计划的重要组成部分,是实践教学中的最后一个环节,也是对学生在校期间所学知识的一次综合、全面的总结、应用和提高。由于毕业生数量的不断增加和软件行业的迅猛发展,导致就业门槛越来越高,就业压力也越来越大,通过毕业设计过程中的训练,能有效提高学生的工程应用能力,使学生得到一定的实践经验,有利于学生从学校向工作岗位的平稳过度。因此,毕业设计质量的好坏,不仅反映了一所高校的教学质量,也会直接影响到学生的就业竞争力和就业后的职场适应能力。 2存在的问题 1)思想认识上不够重视学生方面:有些学生存在完成任务式的应付心里,避重就轻,能简就简,敷衍了事。有些学生则只重视找工作而轻视毕业设计,不愿在毕业设计上花费太多时间和精力,甚至有些学生还以找工作为由,完全依赖于导师,向导师索要源代码,甚至花钱在网上购买来交差。已经找到工作的学生,更是认为毕业设计做的好与不好对自己没什么影响,对待毕业设计也更加心不在焉。导师方面:大多数指导教师除了要指导学生毕业设计之外,还要承担大量的教学和科研任务,在毕业设计指导工作上能够投入的精力和时间非常有限,致使有些导师对毕业设计的指导工作不太重视,对学生放任自流,不管不问,或者是直接将相关源代码发给学生,以“简化”指导工作。由于思想上的不重视,学生学习态度不认真,导师指导工作不到位,造成毕业设计流于形式,疏于管理,效果较差,使得学生白白浪费了毕业前的一次综合训练机会。因此,如何充分认识毕业设计的重要性,并进行相应的教学改革是软件工程专业毕业设计必须要面对并解决的问题。 2)时间安排上不够科学毕业设计一般安排在第八学期,这期间刚好是学生求职和考研的黄金时间段,由于目前就业形势的日益严峻,学生就业压力越来越大,当求职和考研时间与毕业设计时间发生冲突时,学生都会选择将主要精力投入到求职和考研上,有些还要去外地求职、应聘考试、面试等,毕业设计自然是无暇顾及。而且,学校方面,为了保证就业率,往往对学生毕业设计的质量也是睁一只眼闭一只眼,这又在无形中鼓励了学生消极对待毕业设计的态度,毕业设计质量下降也就成为必然结果。 3)题目设置上不够合理由于毕业设计在高校各类教学活动中是最具综合性和独立性的,相对于常规课程而言,对指导教师要求也就更高,尤其软件工程专业,工程实践性比较强,但每年真正来源于实际工程项目的题目所占的比例较小,很多题目都是虚构出来的,导致有些题目不是理论性太强,就是缺乏具体需求的支撑,使学生很难从毕业设计过程中真正领悟到真实的软件工程方法。而有些指导教师自己都没参与过实际的工程项目,本身就缺乏实践经验,对学生毕业设计的指导只是凭着自己的感觉来进行,缺乏系统性、整体性、科学性和严谨性,学生遇到问题后,难以得到及时的解决,导致抄袭现象时有发生,甚至有些学生直接照搬往届毕业生的设计成果。毕业设计的主要目的在于通过毕业设计的训练来提升学生对所学知识的综合应用能力以及创新能力,从而实现学生从学校到工作岗位的平稳过度。但由于题目设置上的不合理,题量太少,层次不清,导致选题匹配效果差。在选题时,部分能力差的学生所选题目难度太大,造成毕业设计很难完成,而有些能力强的学生所选题目难度过小,达不到能力提升的目的。 4)过程监管上不够到位众所周知,对于软件工程项目而言,过程控制与管理是项目执行的关注点,毕业设计也当如此。虽然学校也会在毕业设计过程中组织对各阶段的工作情况进行检查,但执行检查工作的不一定是专业教师,使得这种检查大多只是对指导老师所填写的各种表格和文档等表面内容进行检查,对毕业设计的过程起不到实际的监督作用,再加之有些学生在校外求职或实习等原因造成指导教师与学生无法定期见面和沟通不畅等问题,使得指导教师难以用软件工程方法对学生进行指导。毕业设计虽然启动较早,但实际上很多学生前期在毕业设计上很少投入时间和精力,只是在答辩前为了完成任务而赶工应付,这样的毕业设计质量自然也就不佳。 5)量化考核上不够严格毕业设计成绩一般由平时成绩+论文成绩+答辩成绩三部分按一定比例构成,平时成绩由指导教师自行把握,论文成绩则由其他有经验的教师进行评阅,答辩成绩由答辩委员会老师按照相关评分标准打分并取平均分,这样虽然基本可以保证成绩的公正性,但成绩构成太简单,未显示地将开题报告、文献翻译、分析和设计过程以及总结等纳入到考核范围,对毕业设计的前期和中期工作没有约束力。在成绩评定时,有些导师要求不严,采取宽容迁就的态度。答辩时,通过门槛较低,造成大部分学生仅以答辩及格为目标,在思想上不重视,答辩准备工作不扎实。同时,学校为了提高学生毕业率,在最终答辩时,对毕业设计的质量要求也有所放松,这也是导致毕业设计质量难以保证的一个重要原因。 3采取的对策 时间安排上,可以提前启动毕业设计工作,将原来的第八学期开始提前到第六学期中后期,此时学生已经学完大部分课程,具有了一定的知识基础,而且学生都在校,可以随时与导师见面,指导教师也有充分的时间对毕业设计项目随时跟进,随时指导。导师资格审查上,对于软件工程专业来说,学生毕业设计的导师,应该由长期从事实际工程实践或者有较好科研成果的“双师型”(双师即“教师”、“工程师”)教师来担任,也可以聘请校外科研单位或企业中水平较高的工程师来担任企业导师,这样不仅可以减轻指导教师短缺的压力,也能促进指导教师队伍多元化模式的形成。题目设置上,要求题量要充分,使得水平层次不同的学生都能选到合适的题目;难度和工作量要适中,且要有一定的创意,使学生通过毕业设计的训练,在综合应用能力和创新能力上都能够得到有效的提高。有课题的指导教师要尽量结合自己的课题来设计题目,没课题的指导教师可以从与学校有合作的企事业单位中获取有实际意义的题目。鼓励学生根据自己的兴趣点和就业取向自拟题目,允许学生到实习企业中根据企业的实际工程需要选题和实施毕业设计,这样既能解决实际问题又可完成毕业设计。过程监管上,首先要在指导教师和学生之间建立有效的沟通联系机制和问题讨论的例会制度,充分发挥指导教师的引导作用,在毕业设计过程中,坚持每周师生沟通一次。学生提出问题,指导教师引导和总结,鼓励学生发挥主观能动性和创造力。同时,学校要成立由领导牵头、具有一定工程实践经验的专业技术人员组成的督导组,对毕业设计过程包括选题、开题、中期检查、答辩和成绩评定等各个环节实施有效的监控和督导,加强管理学生的同时也要加强对指导教师工作质量的检查,确保毕业设计工作能够有序、有效的实施。量化考核上,要对毕业设计从前期的开题、文献查阅,到中期的分析、设计、实现,再到后期的总结等各个阶段的进行量化考核,前一阶段的成绩考核不合格者,不能进行下一阶段工作,必须加以整改,直到整改合格后才能进入下一阶段。对于未能按要求如期完成毕业设计的可以推迟答辩,对于首次答辩不合格的可以进行二次答辩,仍不合格的,可以缓发毕业证。只有建立严格的考核制度,才能对学生有约束力,让学生从思想上重视毕业设计,进而保证毕业设计的质量。 4结束语 软件工程是一个实践性很强的专业,软件工程专业的毕业设计作为大学四年学习的总结,是学生从学校跨入社会前仅有的一次大检验,它不仅检验了学生对所学知识的综合应用能力和学生的综合素质,同时也检验了学校的培养模式和教学质量。毕业设计质量的好坏,不仅关系到软件工程专业的培养目标,也关系到学生的就业率与就业质量。因此,在就业形势日趋严峻的情况下,软件工程专业毕业设计的教学改革也要适应就业市场需求,紧跟行业发展变化,与时俱进。 作者:张华 单位:南阳理工学院 软件毕业设计论文:软件工程毕业设计改革实践 一、软件工程专业毕业设计存在的主要问题 (一)毕业设计题目设置与选题方面 题目设置不合理,类别与层次不清晰,选题匹配效果差[2]。学生的毕业设计课题一般都按照指导老师的研究方向和实际工程项目提供,但每年真正来源于工程实践题目比例较少。部分题目理论性强,学生根据所学知识不能很好理解;部分题目开发工具复杂,占用了毕业设计的大部分时间。在选题时可能导致学生想选的题目选不上,能力差的学生所选题目难度大,影响学生的积极性,导致选题效果差,造成毕业设计很难完成。 (二)毕业设计过程监控方面 毕业设计监控工作实施困难,效果较差。软件工程专业毕业设计一般包含选题、开题、中期检查、程序测试、撰写毕业论文、答辩、成绩评定。但对这些环节的监控有时候会形成空白带,毕业设计不在实验室进行,有的学生在实习单位实习,有的学生在外地找工作,老师不能定时与学生见面,老师无法了解学生的具体情况,且学生提交的各阶段文档流于形式,只有指导教师在进行监控,未形成完善的监控体系,导致监控不到位,监控效果较差[3]。 (三)毕业设计论文答辩方面 答辩考核方法单一,答辩仅由学生的讲解和老师的提问两个环节组成,考核准确度低。答辩通过门槛较低,答辩只对学生的毕业设计进行排名,一般排名在最后的学生才可能不及格,不利于提高学生毕业设计积极性,造成大部分同学仅以答辩及格为目标,思想上不重视,答辩准备工作不扎实。再由于软件工程专业特点,毕业设计软件作品评分标准难于量化,考核具有一定难度,也造成答辩效果不好。同时为了提高学生毕业率和就业率,毕业答辩的质量控制有所放松,直接导致了软件工程专业毕业设计质量难以保障。 二、软件工程专业毕业设计的教学改革 针对上述各项实际问题,主要进行的相关工作具体如下: (一)合理设置毕业设计题目,动态选题 依照软件工程专业的以市场需求为导向,培养应用型软件工程人才的培养目标,在毕业设计题目设置环节,紧紧围绕工程实际型、创新项目型、竞赛题目型、科研项目型等类型进行题目设置,以适应市场动态需求。同时着力避免在毕业设计题目中设置虚拟型题目、理论研究型题目、综述型题目、分析设计型题目等。在选题过程中,通过毕业设计管理系统(如图1所示)进行多轮双向动态选择,动态调整题目各项技术参数以保证学生能选择一个适合自己能力且能有利于自己以后工作的题目[4]。这样,在选题之后,每个指导老师就可以根据学生不同能力进行分别指导,使不同能力的学生都能够运用其所学知识解决工程实际问题,都能够通过毕业设计增强工程实践能力、工程设计能力与创新能力。近四学年软件工程专业毕业设计各类题目汇总。 (二)毕业设计过程实行三级监控管理机制 学校成立以主管副校长为组长的毕业设计工作领导小组以加强毕业设计宏观调控,学院成立以教学副院长为组长的毕业设计工作领导小组以加强毕业设计协调与监控工作,软件工程专业成立以专业负责人为组长的毕业设计工作小组落实并实施毕业设计各环节具体工作[2]。具体参见下图2。在实现毕业设计过程管理的三级管理机制的同时,为保障毕业设计工作质量,软件工程专业要求所有指导教师必须具有中级以上技术职称或硕士以上学位且有一定工程实践经验,具有较高教学、科研水平和创新能力,师德良好,工作态度认真负责。在每年的毕业设计指导工作开始前都对指导教师进行资格审查,择优任用,且每位教师指导的学生不超过6人,以保证指导教师对学生的充分指导[5]。 (三)毕业设计过程量化考核 以往软件工程专业毕业设计成绩通常由三部分组成:一是学生的平时表现由指导老师把握;二是学生的毕业论文成绩。由专业其他指导老师进行评阅;三是现场答辩成绩。由所在组的指导教师按照相关评分标准打分并取平均分。这样基本能够保证毕业设计成绩的公正,但是由于只有毕业答辩环节具有约束力即答辩未通过则总成绩不及格,其他环节不具约束力,因此造成毕业设计前期、中期工作流于形式,前期、中期阶段提交的文档趋于应付、质量不高,最终导致毕业论文质量较低[6,7]。为此,软件工程专业经过几年的探索与实践,实施了毕业设计各阶段的软件工程生命周期量化考核法即各个阶段量化考核,且考核成绩不合格者不能进行下阶段毕业设计工作,必须加以整改,整改通过后才能进入下一阶段毕业设计工作。经过几年的实践证明该考核方法切实可行,能够保证毕业设计各个环节的质量,最终提高毕业设计总体质量。 (四)在毕业设计过程中进一步提高学生工程能力与创新能力 辽宁工业大学于2011年制定并实施了大学生创新团队机制,建立了大学生创新项目申报机制引导大学生开展创新活动;引导学生每年都参加校级、省级、国家级软件设计大赛等各类各级比赛[8]。随着学校和学院创新教育活动多年持续深入开展,软件工程专业学生的创新与创业活动取得了显著成果。超过1/4的软件工程专业学生能够独立主持创新性项目,并以该项目为原型申报毕业设计题目[9],同时参加省级、国家级计算机竞赛并获得奖项。通过主持校级及省级创新项目既毕业设计题目,学生工程能力、创新能力得到极大锻炼与提高,本专业毕业生就业率与就业质量明显提高。软件工程专业学生主持参加创新项目既毕业设计题目情况见表3。 三、结束语 软件工程专业毕业设计是一个极具综合性、实践性的重要环节,是对学生大学四年学习后面向社会与企业前的有且仅有的一次大检验,它不仅检验了学生所学知识、能力与综合素质,还检验了软件工程专业的培养目标、培养模式、课程体系、实践体系、创新体系等相关环节[10]。经过几年的探索与实践证明,软件工程专业所做的系列教学改革工作中的毕业设计教学改革工作有利于进一步增强学生的工程实践能力和创新能力,有利于提高软件工程专业毕业设计质量,有利于提高软件工程专业学生就业率与就业质量。虽然软件工程专业毕业设计教学改革工作取得了一定的成绩,社会认可度逐年稳步提高,但如何动态调整教学计划以跟进市场需求变化;如何深入开展大学生创新创业教育活动以进一步增强更多软件工程专业学生的实践能力及创新能力;如何进一步加强专业教师工程实践能力、工程设计能力与工程创新能力以提高毕业设计指导效力;如何提高毕业设计过程管理效率等问题仍然是软件工程专业所面临的严肃课题[11]。因此,软件工程专业的毕业设计教学改革工作也一定会紧跟时代变化,与时俱进。 作者:佟玉军谢文阁王恩喜刘鸿沈姜悦岭工作单位:辽宁工业大学电子与信息工程学院 软件毕业设计论文:软件开发类毕业设计中敏捷软件技术的应用 摘 要:提出了在软件开发类毕业设计中采用敏捷技术进行过程控制的方法,从实际效果中可以看出,这种方法较好地解决了软件开发类毕业设计中遇到的各种问题,能够有效提高软件开发类毕业设计的质量,使学生在毕业设计中得到充分的锻炼和提高。 关键词:毕业设计;敏捷软件开发;极限编程;软件质量 0 引言 毕业设计是本科教学中非常重要的一个教学环节,是对学生所学知识的检验和总结,是培养学生独立分析和解决问题能力的重要手段,也是学生进入工作岗位前的最后一次实战演习;并且,它是本科教学水平评估指标体系的重要指标之一,是考核学校本科教学水平和质量的重要内容。 软件开发是计算机专业毕业设计中一个重要组成部分。学生开发的软件质量直接反映出毕业设计质量,而指导教师的指导和监控对学生开发软件的质量高低有很大影响。本文首先介绍了软件类毕业设计的特点、遇到的问题及其原因分析,然后将敏捷软件开发技术应用于指导和监控软件类毕业设计,最后通过具体的实践对其进行总结。 1 目前状况及问题 1.1 软件开发类毕业设计的特点 本科计算机专业毕业设计中,软件开发占很大比重。而软件开发类毕业设计与其他专业的毕业设计以及商业化软件开发又有很大不同,主要体现在: (1)设计的最终目的是要生成可运行的、实现一定功能的、错误率较低的实际软件产品,而不仅仅是提交一份文档报告。 (2)设计小组成员分工合作,要将各人的成果整合,形成完整的软件;小组每个成员不是完全孤立的,每个人的工作都与其他人息息相关。 (3)项目小组一般只包括一个人或几个人,人数较少,远少于一般商业化软件开发项目小组的人数。 (4)小组成员没有足够的团队意识,没有足够的软件工程经验,一般没有作为一个团队的成员共同开发过软件产品。 (5)项目开发过程不完全,编码的结束即意味着项目的结束。项目不要求有完整的工程化的分析和设计文档。 (6)有些软件开发没有与商业项目挂钩,也就没有真实客户的需求对其进行功能和性能上的监控。 1.2 遇到的问题及原因分析 根据上面的特点可以看出,普通毕业设计的指导方式或是工程化的控制手段,并不能适应软件开发类毕业设计,最终会导致毕业设计质量低下,学生得不到真正锻炼。比较突出的问题主要表现在以下几个方面: (1)项目组成员各人任务不明确,能力参差不齐,并且有时没有充分地交流设计思想,最后导致软件各个功能模块无法有效整合。 (2)项目需求因为各种原因不断改变,软件不断修改,最终完成的软件产品达不到设计要求。 (3)编码开始后,软件的错误和缺陷不断涌现、不断累积,最终无法控制。 这些问题的产生,固然与设计选题、学生能力、实验环境以及教师的指导力度分不开,最重要的还是与教师的指导和监控方式有关。应当采用恰当的指导和监控方式,最大化地促进学生能力的提高,最有效地根据各个学生的特点,推动学生逐步达到毕业设计软件质量和功能的要求。 2 敏捷软件开发技术的应用 采用适当的指导和监控方式,实际就是要求教师对学生软件开发应用适当的软件过程模型,也就是软件开发的工程化控制手段。 2.1 敏捷软件开发简介 传统的软件工程方法中的架构设计与程序开发在时间上是先后分离的,这种分离常常导致一些脱离实际的设计和脱离设计构想的编程,导致最终软件开发的不理想甚至是失败。鉴于以上问题,敏捷软件开发技术应运而生。 敏捷软件开发以交付而不是以构造为核心,它强调的是交付对客户有价值的软件,而不是用户需求中所描述的软件。简言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。敏捷软件开发方法提倡采用先进的技术和高水平的小型团队,并辅以人性化的管理,充分发挥软件开发者的才华,建立畅通的交流机制,使软件开发团队水平和软件质量共同提高。 敏捷式开发采用适应性方法,而传统的软件工程学采用的是预测性方法。敏捷式开发是以人为主的,而传统的工程学是以过程为主的。二者的主要区别存在于它们对软件开发过程的描述中,也就是说,敏捷开发实现当前最需要的功能,然后根据变化来修正和改进;而传统软件工程学一开始就将软件的各种架构预测好,然后采用固定的过程来实现这种架构。软件开发中的变化是不可避免的(通常传统软件开发的失败主要原因就是不能很好适应这种不可预知的变化),因此就要找到一种新的方法能够更有效地适应变化,这其实也就是敏捷式开发方法所要达到的效果。 可以看出,上述的敏捷软件开发的许多特点正是与软件开发类毕业设计的许多特点不谋而合,例如,小型的开发小组,适应性(适应不可预测变化)的开发机制,短期的交付(毕业设计一般都在半年甚至更短时间内完成软件的交付),充分发挥小组成员的特点,建立畅通的交流机制等等。因此,将敏捷开发思想引入毕业设计中的软件开发,不失为解决后者诸多问题的很好尝试。 2.2 敏捷软件开发应用 敏捷软件开发技术包含若干的价值观、原则和实践方法。将其用于毕业设计的指导和监控,主要应包含如下原则的应用: 2.2.1 增量式开发 传统软件类毕业设计采用传统软件工程学指导方法,先进行需求分析,然后根据需求进行功能模块划分,接着开始编程。如果最初阶段不能很好地完成分析和设计任务,后面的软件开发将出现严重问题。 而在敏捷软件中,采用的是增量式开发,对于难度较大的软件设计,不是一步吃透功能,而是逐步添加功能,在改进的过程中促进学生能力的提高。在笔者指导的一项毕业设计中,要求学生用Java编制网络实时通讯软件。采用增量式开发方法,先要求学生实现基本功能,即发送字符串到另外一台计算机,使用Windows的超级终端作为接收机进行测试;接下来要求学生实现程序互相发送和接收字符信息;然后,实现聊天室的多人聊天的线程控制;进一步可以实现数据库存储登录用户信息,并进行验证;最后,实现其他功能,例如网络硬盘,文件传输等等。在开发过程中,增量式设计能够让学生逐步进入高层次的内容,而不是一开始就进行高难度的开发。并且,通过逐步修改代码,可以提高学生阅读代码和优化代码的能力,学生的编程水平得到很好的提高。 2.2.2 可持续的开发速度 敏捷开发技术不要求团队一开始就尽全力完成任务,而是尽量保持一种稳定的、可持续的开发速度;团队的成员必须始终保持旺盛的精力和警觉的思想。 在很多毕业设计中,一开始学生就以极高的热情和全力以赴的状态去工作,然而随着进度的延缓,错误不断增多,以及越来越复杂的需求变化,学生的热情迅速减退,最终影响设计成果。因此,指导老师必须充分调动学生的积极性,又不能让学生 的精力过早地消耗,要保持一个稳定的进度。 2.2.3 简单 敏捷软件开发方法采用最简单的方式实现当前最需要的功能。在毕业设计中,针对某一个功能,采用尽量简单的方式去实现,不需要考虑为了将来的功能而进行“提前的准备”。因为这种“提前的准备”往往会让学生考虑问题过多,反而忽略了当前最重要的内容。 然而,简单并不代表着功能的缩减,当某些功能的实现成为必须的时候,敏捷软件开发方法采用在代码上改进的方式来完成,并且以此为机遇,充分进行反省,让学生在改进中得到进一步提高。 2.2.4 结对编程 结对编程是敏捷开发和极限编程(XP)的重要实践,它是指两个程序员结对使用同一台计算机完成编码――其中一位控制键盘并输入代码,另一位观察输入的代码并寻找着代码中的错误和可以改进的地方。这种方式能极大地促进知识在团队中的传播,并有效降低代码的错误率。 在毕业设计中,根据学生的特点,采用结对编程方式,可以让学生充分交流,互补所短,互用所长,互相学习。例如,在网页制作类的软件开发中,ASP脚本编程人员和界面设计人员结对,能够充分利用二者的特点,将脚本程序和网页界面元素有机地结合起来,形成功能完善,界面美观的动态网页。 2.2.5 适应改变 敏捷开发的一个重要特点就是它能够很好地适应改变,并且欢迎改变。这里的改变主要是指功能需求方面的改变。而敏捷开发对改变的适应,主要是通过增量开发,持续交付以及不断地改进与反省来实现的。 在毕业设计中,设计题目一经给出,主要方向不能变。然而选择题目的学生是变化的,个体能力有时候有很大差别,并且在开发中会碰到很多不能预知的技术问题。采用敏捷开发中的过程控制手段,可以有效地让毕业设计小组更好地应对各种变化,不会因为突发因素导致软件开发的失败。 2.2.6 个体激励和交流 毕业设计的重要目的是促进学生各方面能力的提高,采用的手段可以有很多。在敏捷设计中,强调个人能力在团队中的充分展示。把这种思想应用于毕业设计指导中,可以采取定期召开小型交流会议的方式,让每一个组员充分发挥自己的能力,以“头脑风暴”的形式对系统当前状态和改进方式进行畅所欲言的交谈。通过这种形式的交流,能够充分调动整个小组成员的积极性,及时发现系统开发过程中的各种问题,增强整个小组的凝聚力,有效提高学生的团队协作能力。 2.2.7 反省 好的团队并不只是埋头工作,他们会思考如何工作和为什么工作。在毕业设计指导过程中,指导教师应当在适当的时机提醒学生对开发工作中各项内容进行反省,让学生能够有机会去辨别可能或已经发生的错误。反省不仅仅是简单的思考过程,反省的后面应该紧跟着行动,学习是反省的行为,要能够将错误造成的危害尽早地阻止,并从中学习,以免同样错误的再次发生。 2.2.8 其他原则 敏捷软件开发技术还包含其他一些原则,在设计中包含了面向对象设计的一些基本原则,例如单一职责原则(SRP)、开放一封闭原则(OCP)等等。要将这些设计原则应用到具体的软件开发中,需要学生熟悉面向对象程序设计的相关概念和技术。 将敏捷软件开发技术应用到毕业设计的指导过程中,需要指导教师本身对它有较为深刻的理解,并且勇于进行大胆的尝试一毕竟敏捷开发的很多实践是与传统软件工程学方法相悖的。指导教师可以先在某一门程序设计课的课程设计中采用这种思想,然后进行相应的调整,再将其应用于毕业设计的指导工作。 3 结束语 将敏捷软件开发技术应用于指导毕业设计,能够充分适应软件类毕业设计的特点。在实际采用这种方法对我校的两组毕业设计小组进行指导的过程中,可以看出,这两组同学在对语言工具和相关知识不是很熟悉的情况下,采用渐进的方式,逐步实现设计要求的功能,并且不断对代码进行改进,软件完成的质量比其他小组明显要高。毕业答辩中,小组成员能够很清晰地阐述其软件开发进程以及相关知识的学习过程。并且,小组成员通过毕业设计加深了交流,团队协作能力有了大幅度的提高,小组成员个人的精神面貌也有了较大的改变。 软件毕业设计论文:软件工程思想在应用型高校毕业设计中的应用研究 摘要:针对地方应用型本科高校计算机软件类毕业设计质量不高的问题,对毕业设计中存在的问题进行分析,并结合软件工程的基础理论,提出利用软件工程思想对计算机软件类毕业设计进行指导,以提高地方应用型普通本科高校毕业设计的质量。 关键词:软件工程;毕业设计;应用 一、引言 毕业设计是本科毕业生在校期间的最后实践和综合实训阶段,是实现本科教育培养目标的重要组成部分,是深化、拓展、综合应用所学理论知识的重要过程;也是综合素质与工程实践能力培养效果的全面检验;是学生毕业及学位资格认定的重要依据;是衡量高等教育质量和办学效益的重要评价,是对专业理论知识和专业技术综合应用能力的强化训练和提升[1]。在毕业设计的过程中,学生利用所学专业理论知识,通过了解社会,分析社会需求,深入实践,完成毕业设计的任务和撰写毕业论文(设计)报告等各个环节的工作。对于地方应用型普通本科高校而言,毕业设计就相当于一般高等学校的毕业论文,但是毕业设计不同于毕业论文,它的组成部分不只是一篇学术论文。应用型高校的毕业设计注重的是“应用性”和“实践性”,学生毕业设计要求学生针对某一课题,综合运用本专业有关课程的理论和技术,自己动手动脑做出解决实际问题的设计。目的是总结、检查学生在校期间的学习成果,是评定毕业成绩的重要依据。同时,通过毕业设计,可培养学生开发项目的基本综合能力,为学生就业能力中的专业能力奠定坚实的基础;培养综合运用已有知识独立解决问题的能力,从而加强学生应用能力的培养,使学生能够学以致用。 二、地方应用型普通高校计算机相关专业学生毕业设计的现状 近几年来,由于学校对毕业设计要求不断提高,学生从选题到设计再到写出毕业设计报告的过程中总存在这样那样的问题,最终有个别同学没有顺利通过毕业设计,没有拿到毕业证和学位证的情况时有发生,并且大多数毕业设计的水平不高,达不到培养学生独立解决问题和提高学生应用能力的目的。因此,如何指导学生做好毕业设计,提高学生毕业设计水平和质量,是地方应用型普通高校面临的一个重要问题。 (一)毕业设计选题现状 最近几年,我校计算机相关专业毕业生自进入大四秋季学期开始,在进行毕业实习的同时,也进入了毕业设计准备阶段:毕业设计选题,虽然毕业设计选题过程中,各级领导、指导教师和学生在态度是都很重视,但是在选题时也会存在很多的问题,主要有以下三个方面。 1.选题不够准确。部分学生选题未经深思熟虑,所选毕业设计题目要实现的功能太多,在规定时间内不能独立完成,而最终只能实现部分功能,或部分模块。 2.题目相似或重复雷同。学生选题存在浑水摸鱼的思想,在毕业设计选题过程中不是根据自己的兴趣爱好、专业知识学习情况等确定研究选题,而是选择与他人类似或雷同的选题,甚至同一批毕业的许多学生选题一致。比如:“XX管理系统”等,除了可能冠以的系统名称不同之外,其余基本相同。 3.应用价值低。部分学生的选题是当前十分成熟的项目,没有研究的必要;有些选题已经被淘汰,在实际生活和工作中没有多大用途。 (二)毕业设计需求分析阶段现状 通过调查,许多学生选题完成后,没有对自己所做毕业设计选题进行仔细了解、分析,他们认为在毕业设计中最重要的就是编程,其他方面一带而过[2],从而造成毕业设计过程中主题经常进行修改,最终使得整个系统杂乱无章,无法继续进行下去。因此学生在毕业设计的需求分析阶段主要有以下三个方面的问题。 1.选题后未进行实际调查研究,甚至未查找相应的参考文献。 2.需求分析进行得不彻底、不准确,即使选题后查找了参考文献和资料的,也未做充分了解和分析。 3.在需求分析阶段没有写出需求规格说明书或系统分析报告就匆忙进入系统设计阶段,导致随着系统设计的逐步深入,原来确定的需求不能满足毕业设计的需要,正在进行的设计与开始的期望和设想又不相符。 (三)毕业设计系统设计阶段现状 在系统设计阶段,普遍存在以下两个方面问题。 1.由于需求的不明确,在进行系统设计时,修改随意,没有严格按照软件开发的步骤进行。好多学生在进行系统设计时并没有建出相应的功能模型,不管是用例图还是DFD图都没有,而且系统设计过程中功能随意变换,并且各功能模块的层次结构不清晰,使得整个系统的功能模块划分凌乱,不符合软件设计中“高内聚,低耦合”的原则。 2.在软件设计过程中,不先进行概要设计、详细设计和模块设计,没有软件的过程性描述,直接进行编码,存在想到哪里就做到哪里,走到哪儿算哪儿的随意思想[3],当前内容没有做完便开始其他内容,使得整个系统设计杂乱无章。在这样的一种研究状态下,即使完成了设计,效率也非常低下,软件结构混乱,功能实现不完全,降低了软件设计的质量。 (四)毕业设计实现阶段现状 通常把编码和测试统称为实现。在进行软件设计后,就可以根据设计结果来实现,将软件的过程性描述编码,得到计算机可以运行的源代码。在实现阶段主要有以下几方面的问题。 1.编码随意。学生在编码的过程中,不注意编程风格的把握,导致程序的可读性、可理解性、可修改性等较差,在答辨的过程中,要求指出某个功能模块的代码时,经常要花费很多时间才找得到。 2.测试和调试可有可无。大部分学生在毕业设计的软件编码完成以后,从没有想过进行完整的系统测试,或者只对个别功能进行测试或是随意测试,没有按照测试步骤逐步进行;基本没有单元测试和集成测试,一般只是最终随便输入几个数据简单检测一下,如果有错,修改了就算完了;也没有进行回归测试,没有测试计划,没有想过用什么测试技术来检测某一类型的错识,没有相应的测试用例,也没有测试结果分析。由于学生毕业设计都是一人一题,基本上是一个人完成所有步骤,就算有测试,在测试阶段也是自己进行测试,从心理学的角度来说,自己对自己开发的软件进行测试是不可取的。 由于前面阶段的文档不完善,也不重视测试过程,不清楚是否实现了系统最初设计的功能,是否达到相应的性能要求,总以为程序做出来后毕业设计就完成了,使得毕业设计经常在更换运行环境或答辩时发生错误和问题,从而使得设计得不到好评甚至无法通过。 (五)毕业设计应用现状 最近几年,我校计算机相关专业毕业设计投入使用数量接近于零。究其原因主要是由于设计不完全,未进行测试和调试,存在的错误和缺陷较多,文档和数据不完整,导致所开发的系统或软件不能方便地转让、变更、修正、扩充和使用,也没有为后期培训、维护留下完备的资料;因此,不能投入到真正的使用过程中,也不能实现系统或软件产品的效益。 三、软件工程思想的应用 软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。软件工程中的软件生命周期是一个软件从软件定义、开发、运行和维护,直到最终被废弃的整个过程[2]。地方应用型普通高校计算机相关专业学生毕业设计基本都是开发一些中、小型应用系统或软件,因此,学生毕业设计也要经历软件生命周期各个阶段,严格遵守软件工程的各个原则,这样有助于解决毕业设计中存在的问题,提高毕业设计的质量。通过对应用型普通本科高校计算机相关专业的学生在进行毕业设计的过程中存在的问题进行分析,在毕业设计的过程中,必须运用软件工程的观点、技术和方法来指导毕业设计,这样既节约了毕业设计的时间和学生的精力,也能做出最优质的毕业设计。 1.选题过程中的应用。毕业设计选题就是软件生命周期的问题定义中的问题提出阶段,选好题目是进行深入研究的基础,也是写出高质量毕业论文的前提。地方应用型普通本科高校计算机相关专业的毕业设计选题必须做到以下几点:(1)必须在对选题做了充分调查、分析,对检索的参考文献、资料有了整体把握的基础上提出。(2)必须符合本专业培养方案规定的培养目标的要求。(3)以选择工程性较强的课题为主,确保有足够的工程性训练。(4)要有明确的设计成果,对于较大型任务的课题要明确阶段性成果。(5)要达到规定的工作量,难易度适中,确保能在规定的时间内完成整个课题工作。(6)要围绕生产生活实际,所选题目一定具有一定的理论意义和实践意义,具有一定的价值。(7)原则上一人一题,对于较大型任务的课题,每个学生必须有独立子课题。结合以上几点,分别从专业基础、现实意义等方面进行全面分析,进行取舍,最终得出选题。 2.开题过程中的应用。在毕业设计的开题过程中,需要明确所选题目的选题依据(包括选择课题的背景、选题研究的理论及实践意义)、选题研究现状(包括目前国内外对本选题的研究情况和有待解决的问题)、研究内容与方法,而这些就是软件工程中需求分析阶段应该做的事情。 需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作[3]。因此开题过程中最重要的是进行需求分析,需求分析具有决策性、方向性、策略性的作用,在软件开发的过程中具有举足轻重的地位。需求分析完成的好坏直接影响后续软件开发的质量。开题过程中需要指导学生大量地阅读相关的研究资料,同时根据资料进行分析研究,对当前毕业设计的研究进度做到心中有数,明确毕业设计的具体方向,写出毕业设计的研究内容与方法,得到相应的设计提纲,解决好设计什么,如何设计的问题。因此,应用好软件工程的思想来指导毕业设计的开题是至关重要的。根据学校对学生毕业论文的要求,在计算机相关专业的毕业设计报告中,要求要有数据流图、数据字典等相应内容,而软件工程中的数据流图(Data Flow Diagram,简称DFD),它是从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程。它是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理[3]。因此,在这个阶段,要指导学生按照DFD图的要求,确定设计的功能,然后根据系统分析结果写出分析报告,就得出毕业论文中系统分析阶段的初始文档。 3.在实践研究环节的应用。根据需求分析(开题阶段)的结果进行软件的概要设计和详细设计,注意在设计过程中要严格按照软件工程对于设计阶段的指导原则来进行设计。将概要设计阶段需求分析得到的DFD转换为软件结构和数据结构,即是根据需求确定软件和数据的总体框架,设计出软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。然后再进行详细设计,设计出每个模块的实现算法、所需的局部数据结构,并且对每个模块写出过程性描述;为每个模块设计出一组测试用例,在进行测试时就以此测试用例来进行测试。详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后将根据这个“蓝图”写出实际的程序代码。因此,指导教师要对学生的设计过程进行监督和指导,防止学生盲目的进行编码。 4.在实现阶段的应用。在编码的过程中,要注意编程风格的把握,编程的风格在很大程度上影响程序的可读性、可测试性和可维护性。 在测试阶段,可以进行交叉测试,即学生之间可以两两交叉,相互测试,以更好的达到测试效果,同时也培养了学生的团队意识和合作意识。 在测试过程中要注意运用软件工程的测试原则和测试思想,严格按照单元测试集成测试确认测试系统测试验收测试的测试步骤进行,利用白盒测试技术进行单元测试,黑盒测试技术进行其他测试,并且在找出错误并修改后要进行相应的回归测试,确认修改了错误并且没有引入新的错误,这样有利于找到软件中的各类错误,提高软件的质量。因此,在软件的测试过程中,一定要严格按照软件工程中的测试原则来进行,不可随意进行测试,并且要注意测试文档资料的收集整理,要有相应的测试计划和测试报告。对学生的创造性的思维和想法,指导教师要给予支持,积极引导,鼓励学生大胆创新,用应用型人才培养目标来要求学生,保证高质量的毕业设计的完成。 5.在毕业论文(设计)报告方面的应用。对于应用型普通本科高校计算机相关专业的毕业设计而言,不单单是完成了一个系统的设计,还要有相应的设计报告,而设计报告的编写过程中,很多学生存在文字表达能力不强的现象,为了完成报告,就有可能会抄袭,特别是在软件开发的各个阶段文档材料不全的情况下更为严重。因此,在学生进行软件开发的各个环节中,指导教师都应该按照软件工程的观点来进行指导,并要求学生在各个阶段都完成相应的文档。这样在毕业设计报告撰写的过程中,只要将各个阶段的文档进行合并、整理就得到相应的设计报告,并且是一篇重复率不高的高质量的设计报告。 6.在毕业设计实际应用方面的应用。因为学生在整个系统或软件过程中均按软件设计规范准备了文档和进行了完整的系统测试,从而为系统或软件的专利申请提供了充分必要的资料,并为毕业设计的实际应用打下良好的基础。 四、结语 计算机相关专业学生的毕业设计在学生的整个大学生活中具有极其重要的地位和作用,根据应用型普通本科高校人才培养的定位,主要是培养学生的独立思考能力、动手能力和应用能力。通过对软件工程思想在计算机相关专业学生毕业设计的过程及方法中的应用研究,逐步实现学生毕业设计的实际成果转化,从而为应用型计算机相关专业人才培养提供相应的借鉴。 软件毕业设计论文:采用Protel软件提高高职应电专业毕业设计质量的研究与实践 【摘要】高职院校的毕业设计是高职教育教学的一个重要环节,是高职人才培养计划的重要组成部分。做好毕业设计,对高职培养高素质技术技能人才,具有十分重要的作用。在应用电子技术专业毕业设计中,引入Protel软件,极大地提高了学生毕业设计质量。 【关键词】高职 应用电子技术专业 毕业设计质量 电子线路CAD 高职院校毕业设计是高职教育教学的一个重要环节,是高职人才培养计划的重要组成部分,也是高职实现人才培养目标的最后一个阶段[1]。它既是对学生在大学期间所学知识、技术与能力的检验,也是对高职院校教育教学质量的全面、综合的检查[2]。它既是学生对理论知识综合运用的过程,也是学生理论结合实践分析解决实际问题和培养初步科学研究能力的重要阶段,又是对学生团队协作能力、创新思维能力等综合素质的全面检验。做好毕业设计,对高职培养高素质技术技能人才,具有十分重要的作用。对以培养面向现代电子产品生产企业从事电子产品的生产及组织管理的应用电子技术专业来说,在毕业设计中引入Protel软件开展“基于产品研发过程”的课题研究,意义重大。本人在指导应电专业学生开展毕业设计中积极进行了这方面的探索,取得了良好的效果。 1.将Protel软件引入应电专业毕业设计的可行性 Protel软件最早是Altium公司在80年代末推出的,经过了Protel DOS版,Protel 98,Protel 99 SE,Protel DXP等多个版本,目前最高版本是altium designer。在电子行业众多的CAD软件中,它当之无愧地排在众多EDA软件的前面,是电子设计者的首选软件。该软件具有电路原理图SCH绘制、原理图元件制作、电路仿真、PCB印制电路板设计、元件封装制作、可编程逻辑器件设计、图表生成、电子表格生成等强大的电子产品开发的功能。 应用电子技术专业毕业设计内容涉及电子电路的设计,包括运用电路基础、模拟电子、数字电子、单片机、可编程逻辑器件等相关知识与理论,同时还要在万能电路板上进行元器件的安装和电路板的焊接。在这个过程中往往还需要加一个面包板的环节,就是学生要先在面包板上对所设计的电路进行验证,若电路验证成功,则再到万能电路板上进行。在毕业设计中运用Protel软件,将极大缩减电路验证的流程,并大幅提高电路的可靠性。Protel软件起到了很好的桥梁作用,有效衔接了电路设计与电子工艺制作,电路设计的合理性与否得以较可靠验证,而PCB板的制作使得电路连接简单轻松,焊接的工作也简便了不少。对学生来说,毕业设计的过程,成为检验和巩固并提高其系统专业知识的过程,同时还锻炼了逻辑思维、整体意识和时间管理能力。 2.引入Protel软件后应电专业毕业设计的步骤 学生选定毕业设计课题后,一般需经过以下七个步骤完成最终的毕业设计作品。 2.1 确定电路设计方案 根据所选课题的设计要求,结合专业已学的电子线路、单片机、PLC技术、CPLD可编程技术等相关知识,确定可实现的几个方案,通过在经济上、电路可靠性上、电路性能方面等比较各方案,选择出最佳的电路设计方案。 2.2 绘制电路原理图 根据电路设计方案,打开Protel软件,进入原理图编辑器,先设置图纸参数,后查找或制作所需元件,并把它有序放置到原理图上来,调整元器件之间的位置和间隔,再放置接插件、电源、接地符号等。然后,对电路进行连线,连线完毕放置网络标号。生成材料清单,检验所用元器件的Designator、Value、Footprint、Simulation等重要参数是否设置合理;生成网络表,检查电路信息,若发现错误及时纠正。最后,对整个电路进行编译ERC校验,确保电路正确。 2.3 电路仿真及方案修正 Protel DXP提供了10 种分析仿真方式,包括直流工作点、直流扫描、交流小信号、瞬态过程、Fourier、噪声、传输函数、温度扫描、参数扫描以及蒙特卡罗分析等。电路原理图绘制完毕后,设置仿真方式并指定要显示的数据节点,系统进行电路仿真,生成sdf 文件,同时打开窗口显示分析结果。观察电路仿真结果,分析仿真波形是否符合电路设计要求,如果不符合,则重新调整电路参数进行仿真,直到满意为止。 2.4 设计PCB板并打印图纸 电路仿真达到满意结果后,就可以进入PCB印制电路板的设计了。一般的步骤是先进入PCB编辑环境,定义PCB印制电路板,可自定义板框大小,也可以采用软件自带的PCB板制板向导来实现;接着从原理图导入网络表信息;再是对元件封装进行合理美观布局;然后进行布线规则的设置,线宽大小建议在12mil以上;最后是自动布线,布线成功后就可以使用热转印纸按1:1的比例依次选择不同层进行打印。 2.5 制作PCB板 PCB图纸打印好后,分五步完成。第一步是曝光,选择合适大小的曝光覆铜板,打开多功能制板系统抽屉式曝光机,将图和覆铜板放入,曝光约90秒左右后完成;第二步是显影,调制好一定浓度的溶液,并加热到50摄氏度左右,将线路板放入显影槽进行显影;第三步是蚀刻,蚀刻时间一般需要十几分钟;第四步是钻孔,根据焊盘大小选择不同的钻头进行钻孔;第五步是表面处理;若为双面板,还要进行第六步,过孔。线路板经过以上步骤后,可用万用表检测电路是否均连通,以保证后面的步骤顺畅进行。 2.6 元器件接插并焊接 把选用好的元器件接插到合适的位置,用电烙铁、松香等对元器件进行焊接,这里要注意不要出现虚焊、假焊和漏焊现象,要尽可能做到焊点表面完整、连续和圆滑。 2.7 电路调试 电路焊接完毕,则需要用万用表、示波器等工具对电路进行调试,发现故障,进行电路分析并排故,直到电路功能正常为止。一般来说,毕业设计的电路相对简单,在前面几个步骤都顺利的情况下,电路调试基本都能成功。有出现问题的,往往都是电路设计方案本身存在问题,并在仿真阶段也是含含糊糊过去的。 3.引入Protel软件后应电专业毕业设计的实效 将Protel软件引入到应用电子技术专业毕业设计后,总体来讲,学生毕业设计的质量大大提高。具体体现在以下四个方面。 一是学生对专业的自信加强了。毕业设计系统地考验了学生对所学专业知识的掌握和运用能力。引入Protel软件后的毕业设计里,学生既有对专业理论知识的提取、运用和消化,又有基于产品研发过程的专业实践的锻炼,理论与实践相结合,学生的专业自信明显提升。 二是学生的综合素质增强了。毕业设计过程中,碰到的可能是对某个元器件用法和功能的不熟悉,也有可能是对电路参数大小比较模糊,这些都需要学生去查找文献,提高自学能力;另外,在电路设计、电路仿真过程中,可能会出现参数不符合要求,需要修正和调整,这个过程可能是反复的,考验的是学生对某项任务的坚持不懈和百折不挠的精神;此外,还培养学生的严谨和细致。 三是学生毕业论文的内容充实了。学生对毕业设计的整个过程进行梳理和笔录的内容就可构成毕业论文的核心内容了。学生经过毕业设计的亲身实践,有过程,有感触,必然言之有物。 四是学生毕业就业的专业对口率提高了。引入Protel软件后毕业设计,不仅让学生对专业更有自信,同时学生对Protel软件的掌握也加深了,对制板的流程也熟悉了,在就业过程中,Protel绘图员工、制板工等相关岗位的工作也能承担了。 4.结束语 在应用电子技术专业毕业设计中引人Protel软件,改变了过去毕业设计只注重理论设计的纯教学性的做法,采取理论设计与实践制作相结合,动手能力与创新精神相结合[3],充分发挥学生主体性作用的方式相比,取得了良好的效果。 软件毕业设计论文:本科毕业设计中FLUENT软件相关课题可行性及问题探讨 【摘要】本文探讨了在本科毕业设计中加入运用FLUENT软件进行工程计算分析的相关课题的可行性。实践证明,学生通过运用FLUENT软件进行工程计算,夯实了理论基础,增强了解决本领域传热和流动问题的能力,提高了学生的学习兴趣和未来的专业竞争力。在做好本文所提及的三点问题(学生和课题的选择、指导过程中的问题)的前提下,在毕业设计中加入FLUENT软件工程计算相关课题不仅可行,还值得在一定范围内推广。 【关键词】FLUENT 计算流体力学 计算传热学 毕业设计 1.引言 本科毕业设计是在本科教学过程的最后阶段进行的总结性的实践教学环节。在毕业设计环节中,学生应当综合运用本科阶段所学的各科知识和技能,对所需解决的课题进行思考、分析、设计和研究,从而全面、系统地完成课题交给的任务。可见,毕业设计是对学生本科阶段学习质量的全面性的检验,也对学生能否顺利拿到毕业证书和学位证书起到直接和决定性的作用。 计算传热学又称数值传热学,是研究用数值方法求解传热问题的一门科学。它可以理解为:根据所需求解的实际问题建立合理的数学模型,利用离散化处理的数值方法,再通过用计算机高级语言编制的程序,以计算机作为工具来求解传热问题的、与工程实践密切结合的一门应用基础科学[1]。而市场占有率高达40%[2]的数值计算软件FLUENT是解决传热领域数值计算问题的较好的通用软件之一[3]。 运用FLUENT等CFD软件,可以在不具备实验条件或暂不需要对研究对象进行实验的情况下,借助计算的方法进行相关工程分析,从而极大地节约人力、物力、财力和时间成本。因此,在本科学习最后的毕业设计阶段,若能让部分学生学习并基本掌握FLUENT软件对本领域问题的计算过程,将会在很大程度上促进学生今后对相关问题的建模和分析等工作。 2.毕业设计指导工作应注意的问题 由于FLUENT软件的专业性,在指导与FLUENT软件工程计算相关课题的时候,应注意以下几个问题: (1)学生的选择 要能较好地掌握FLUENT软件相关计算过程,首先需要具有较为过硬的微积分、流体力学、传热学、计算传热学(也称数值传热学)等相关学科的基础知识。这不仅要求学生较好地理解课堂所讲知识,还要能够灵活运用课内外相关知识。有的学生学习能力和成绩相对较弱,并不具备过硬的知识储备和学习能力;有的学生未来从事的工作与本专业距离较远,或者对相关的数值计算兴趣不大,因此缺乏从事相关课题毕业设计工作的原动力;这些因素都会影响整个毕业设计工作的正常进行。因此,对于与FLUENT软件工程计算相关联的毕业设计课题,并不是所有学生都适合来做。为了有效地开展相关的毕业设计课题,在学生的选择上往往优先推荐让学习相对努力的、有兴趣和求知欲的以及未来将继续深造或从事相关科研工作的学生来进行。 (2)课题的选择 在本科教学阶段,由于受限于书本和教学大纲的安排,教师在对流体力学、传热学等课程的讲授中往往较少涉及数值计算相关知识,书本上只有一章内容与之相关,课堂上一般只传授数值计算的基本概念、简单情况下的离散方法、离散方程的建立等较为浅显的知识,这与FLUENT软件中对相应问题处理方法的深度和难度相去甚远;然而,在毕业设计的短短一学期时间内,要让学生完全掌握相关知识是比较牵强的。因此,在FLUENT软件工程计算相关课题的选择上,应选择相对基础性的、与实践结合紧密的、具有科研应用前景的课题作为毕业设计课题。这样既可保证毕业设计工作的正常开展,也能使学生在软件方面得到基本训练,为后续科研工作以及研究生阶段的学习打下良好的基础。 (3)指导过程中的问题 在毕业设计的指导过程中,笔者发现有部分学生在使用软件进行计算时,较为注重结果的可视化,而恰恰对计算中关键参数的设置、计算方法的选择等关键问题较为忽视。造成该现象的原因可能是,无论在软件中设置怎样的参数、选择怎样的计算方法,总能通过软件的计算得到一个可视化的结果,即使参数设置或计算方法的选择欠妥或有误,只要计算过程没有脱离现实太远,计算结果看上去都有一定的可信度,再加上学生对具体计算过程的“不求甚解”、不仔细推敲,往往易使人误认为该计算过程是正确的。因此,在指导过程中,应对学生使用软件的具体计算过程进行仔细地把关,确保计算过程和结果的正确性。 3.毕业设计算例 算例一:建筑空心砌块传热问题 图1a为所需计算的典型建筑空心砌块的尺寸标注图。该砌块是某典型普通混凝土空心砌块,三排孔结构,每排均由大小相等的两个孔组成,孔厚30mm。热量由室外侧(左侧)传向室内侧(右侧),室外侧为稳态或非稳态热边界条件,室内侧为稳态热边界条件。 图1b为数值计算得到的该砌块传热的某时刻温度分布图。可以看到,温度从左到右大体上呈现由高到低的分布状况。由于空心砌块为非均质构件,砌块材料的热导率与空气层的当量热导率不相等,造成了内部等温线的非均匀分布。 (a)空心砌块结构俯视图(单位:mm) (b)典型砌块温度分布图 图1 空心砌块结构俯视图 算例二:加气混凝土墙体结露问题判断 待计算的房屋的加气混凝土自保温墙体结构类型如图2所示,图中的B05表示型号为B05的加气混凝土砌块。计算中,加气混凝土砌块可以认为是热均质结构,这样导热系数相对较高的混凝土柱或梁便成为了结构体系中的热桥。由图3、图4可以看到,加气混凝土自保温墙体内表面温度最低点均发生在热桥部位室内表面宽度的中心处或阴角处。将该处的温度与当地室内空气的露点温度相比较,既可判断是否会产生结露现象。 图2 框架结构房屋自保温墙体结构 图3 B05厚度为50 mm墙体的温度场 图4 B05厚度为100 mm墙体的温度场 4.总结 利用FLUENT软件对实际工程问题进行数值计算,大大节约了经济开支和时间成本,也为学生对本领域的传热和流动问题的解决提供了有效手段,夯实了学生的理论基础,增强了其解决问题的能力。通过与从事相关毕业设计课题的学生的交流得知,学习FLUENT软件的工程计算对学生更好地掌握相关物理过程起到了很好的帮助作用,拓宽了学生的视野,也提高了学生对相关问题的兴趣,有助于提高他们的专业竞争力。由于兴趣的作用,采用FLUENT软件进行工程计算的学生的毕业设计得分总体较进行其它课题的学生的得分高约15%。由此可见,在做好本文所提及的三点问题(学生和课题的选择、指导过程中的问题)的前提下,在毕业设计中加入FLUENT软件工程计算相关课题不仅可行,还值得在一定范围内推广。 软件毕业设计论文:高职院校软件专业毕业设计 问题分析与改进建议 摘 要:高职院校毕业设计中存在着一些问题,例如,课题质量不高、学生在校外实习、课题与就业方向不符等。这些问题的产生是因为学生不重视毕业设计,进而导致设计质量下滑。针对毕业设计中出现的问题,笔者以高校管理者与指导教师的视角,对毕业设计制、学生及指导教师进行了深入调研,并且提出了改进方法。 关键词:高职院校 毕业设计 不重视 改进 1 前言 毕业设计是学生综合运用所学知识解决实际问题的环节,其质量直接关系到本专业人才培养水平。大多数高职院校的毕业设计放在最后一个学期,导师基本由校内教师担任。但最后一年学生把重心放到对自己未来更有影响的就业上,或是参加专升本寻求深造机会,校内导师被迫远程指导,缺乏监督力度。同时,设计课题内涵良莠不齐,部分课题不符合社会需求,让学生感觉实用性不强,学生不重视,进而质量下滑,降低了教学水平。因此,我们有必要通过调研发现问题、分析问题,进而解决问题。 2 现状调查 对重庆5所高职院校部分教师及所带学生进行了问卷调查。样本中包含200名毕业生、50名指导教师。数据如下: 3 调研问题分析 影响质量的主要因素有学生不重视,学生不能在校设计。需要分析学生为什么会不重视,并剖析其不能在校设计的原因。 3.1 课题内涵与需求有偏差 如表1所示,课题与学生工作方向是否吻合,以及是否一志愿选题,对成绩影响较大。调研中发现:部分学生毕业后从事Java开发,而选题时选了C#开发(选题先于实习);部分学生毕业后从事非IT工作,从而对所选课题丧失兴趣;部分学生单位实习后技能提升,回过头发现课题内涵与商业开发存在差距。此外,部分学生未能选中一志愿课题,调配课题与期望不一致,所以就抱着对付一下的心态。综上,课题本身质量是影响学生最后设计成绩的重要因素。 3.2 设计时间安排不合理 表1及表2的数据充分证明,不合理的时间安排,是导致质量下滑的重要原因。最后一个学期是找工作的关键期,在就业压力下学生忙于参加招聘会和面试。找到工作后,用人单位往往还要求到岗实习。同时,最后一学期也是专升本的关键期,寻求深造的学生亦会忙于复习参考;另有学生为提高竞争力,会选择参加推荐工作的技能培训;这都是造成学生不重视以及不能在校实习的重要原因。 3.3 自拟课题质量偏低 表3数据分证明,对外承接工程,或教师科研需要课题,具有充分驱动力可让教师在课题建设中投入更多精力,进而提高了课题与社会生产的适应性,提升课题的科学性和实践性。自拟课题往往是为了毕业设计而设定的课题,教师缺乏动力对课题进行改进,易与社会脱节。表3的统计数据也证明了选择自拟题目的学生,其优良成绩的比率显著低于其他学生。 3.4 其他因素 沟通不畅:师生双方无法面对面地沟通,存在着教师因工作忙碌疏于督促,或学生缺乏主动性的情况。(1)教师经验缺乏,高校中具有丰富项目经验的教师本来就比较少,近年又引入了大批年轻教师,这些教师毕业后直接从事教学,更缺乏项目开发经验,在指导中明显表现出不足。(2)优秀教师任务重,优秀指导教师既要承担毕业设计指导工作,又要进行繁重的教学任务,容易顾此失彼。 4 问题整改建议 4.1 加强课题库建设 课题分为对外承接工程、科研需要、自拟等几个类别。对自拟课题,须经学校专家组评审及指导,以增强与生产实践的联动性。增大来自对外承接工程及科研需要类课题,这类课题具有较强实践性,教师出于自身利益,也会对课题投入更多精力,对学生的要求也会严格,这必然提高设计质量。另外,考虑到学生未来就业不同,宜对课题难度适当分档。对不同档次的课题,设置起评成绩;有志于投身IT行业的,可选中高难度;其他学生可针对性地选择适合自己的课题。 4.2 改进设计模式,消除时间冲突 在设置课题时,要确定本专业所针对的主要就业岗位,以及岗位所需技能,再结合实际选择对应实训项目,作为本专业学生大学期间不同实践课程教学项目。学生在专业课教师的系统指导下,逐渐完成毕业设计的雏形,在最后一个学期里,再根据学生就业实际情况,予以整合,就成为了一篇具有一定质量的毕业设计。如此,不仅降低了最后一个学期的工作压力,还提升了学生在校期间教学质量。 4.3 加强指导教师能力建设 在毕业设计中,教师要加强对学生的监督与管理,可采用如定期开见面会、网上探讨等方式,学生将设计中遇到的问题、取得的成果等汇报给教师以便教师对学生情况进行分析指导。组织教师参加校内外专业培训,提高教师理论水平和实践能力。招聘教师时,倾向于在企业从事过一线工作、既有学历又有工作经验的人员,更好地将学校的理论知识与企业所需要的专业技能相结合。 5 总结与展望 毕业设计是十分重要的环节,应注重课题的针对性与适用性,使毕业设计内容与学生毕业后所从事的技术岗位相一致。同时,我们也需要加强毕业设计的机制建设,让设计贯穿整个大学教育,减少最后一学期压力。注重对教师的培养,提升指导技巧和技能。只有这样才能培养出符合社会发展、受用人单位欢迎的人才。 软件毕业设计论文:应用型本科软件专业毕业设计(论文) 质量保证体系的研究 [摘要]毕业设计是本科生培养中最重要的实践教学环节。本文针对“卓越工程师培养计划”中工程和创新的培养目标,结合“卓越计划”的“3+1”的“1”的实施,对毕业设计进行改革,通过2级毕业设计的实践,毕业设计的改革效果较好。 [关键词]毕业设计质量保证体系卓越工程师 一、前言 本科院校在对学生整个教育教学计划中,应用性本科软件专业毕业设计(论文)是学生大学生活的总结,也是在实践教育方面的最后一个环节。 目前,本科毕业设计中大学生对自己的毕业设计能够自主把握的空间十分有限,设计主体部分严重脱离工程实际情况,依靠以往经验、书本知识、网络信息等方式获得的信息量占据了信息总量的大部分,这不仅仅是因为学生或者导师愿意去投机取巧,也跟毕业设计活动经费的短缺和时间的不充足有着直接关系。纵观高校的工程教师队伍,他们自身的实践经验也很难保证做到将现实生活的实际问题引用到本科毕业设计中并展开工作。这就产生了一种很不好的现象,毕业设计的题目往往都是重复使用多次的,好一点的可能也只是简单的变化。本科毕业设计对于学生能力的培养和综合素质的提高帮助不大,在毕业后的工作实践中,学生的创新工程能力单薄的缺陷就会凸显出来,没有办法满足现代工业发展对人才的需求。高校的这种与社会需求严重脱节的现象必须要尽快解决,校内教育与科研、社会实践要在整个高校学习教育中相结合展开进行,才能满足社会新的需求。 二、卓越视野下软件工程专业毕业设计(论文)质量保证体系的构建 (一)加强校外实习基地的建设 卓越工程师的“3+1”培养方案中,“1”年的实践环节完成的好坏,很大程度取决于实习基地的建设。为了卓越工程的顺利设施,计算机学院已经与企业建立了广泛的联系,目前已经建成的实习基地有:塔塔信息技术(上海)有限公司、上海启明软件股份有限公司、上海京颐信息科技有限公司和上海文思信息技术有限公司;上海屹为信息技术有限公司;谷儒(上海)网络技术有限公司;曼恒蔚图软件技术有限公司;用友软件公司等。这些实习基地的建设,为毕业设计的课题来自生产第一线,提供了强有力的保证。 (二)建设高水平的“双师型”的毕业设计指导队伍 我们采取两种模式共同进行:一是坚持教师队伍“专任和非专任”结合。专任教师主要是以长期在工程现场实践或者有较好科研成果的教师组成;非专任教师主要是从合作单位企业聘任高水平工程师来校做兼职教师。二是加强“双师型”师资队伍建设。双师即“教师”、“工程师”,首先要加强对一线教师的工程能力素养和工程实践能力的培养,以满足在毕业设计指导过程中对教师综合能力的需求。另一方面,我们在聘请教师方面有侧重点,优先录取有企业工作经验的兼职教师,来提升有工程实践经历的教师在整个专业课教师中的比例。为了最大化地为毕业设计服务,学校还从企业聘请工程师或者让一线教师到企业参加工程实践活动等手段,致力于打造为毕业设计服务的精锐之师。 (三)严把选题关 毕业设计的题目,一般来自企业。由企业指导教师提出,经企业指导教师和学校指导教师共同商量后确定。选题要结合学生在企业实习的项目,注重实践性和创新能力的培养,同时题目应难易适中,切实可行,工作量适宜。 (四)注重教师的指导过程 选题完成后,企业指导教师下达任务书、指导学生确定毕业设计方案。在学生做毕业设计的过程中,企业教师负责具体的技术指导,学校指导教师负责时间节点的把握,协助企业教师完成对学生的共同指导。 (五)建立有效的沟通联系制度 由于本科生初次接触整体性和设计性较强的工作,肯定会遇到这样那样的问题。这时,建立有效的沟通制度,发挥指导教师的引导作用就显得非常重要。学生把毕业设计中遇到的问题,向指导教师提出,由企业指导教师和学校指导教师共同商量解决的办法。在毕业设计的过程中,应建立指导教师与学生讨论的例会制度,坚持每周师生沟通一次。每位学生总结前一阶段的工作,提出毕业设计中遇到的问题,指导教师要进行引导和总结,鼓励学生发挥主观能动性和创造力。这样,指导教师可以及时掌握学生毕业设计的进展情况。 (六)做好毕业设计的过程检查与中期检查 对本科生的毕业设计工作的中期检查,要坚持中前期和中后期两次检查。检查的形式是学生以PPT方式汇报自己目前毕业设计的进展情况,并回答老师的提问。对中期检查发现的问题,企业和学校的指导教师共同商量解决的方法。 (七)毕业设计(论文)答辩 答辩的地点一般设置在学生的实习企业,答辩委员会由企业指导老师和学校指导教师共同组成。每位学生的毕业设计答辩采用PPT形式进行汇报,对一些条件许可的企业,要有毕业设计的演示。 (八)以过程管理思想为指导,构建“方法-时间-层次”三维毕业设计质量监控体系 通过健全机构、合理资源配置、完善工作机制、强化毕业设计质量监控体系的毕业设计运行监控、毕业设计指导决策、毕业设计质量考核评价、毕业设计信息反馈功能,见图1。 三、结语 软件专业是一门实践性很强的专业。要想在短时间内较高质量地完成毕业设计,选题是一个很重要的环节。为了提高学生的做毕业设计的兴趣,高质量完成毕业设计,课题选择来自一线企业,显得非常重要。同时,建立一个毕业设计的保障体系,使得毕业设计在进行的过程中,质量能够得到保证。经过两届的毕业设计实践探索,学生做来自一线企业的毕业设计题目的兴趣很大,而且毕业设计的质量得到很大的提高。 软件毕业设计论文:《软件工程》思想在毕业设计(论文)中的应用 【摘要】主要分析了毕业设计(论文)的现状,介绍了软件生命周期的各个阶段与毕业设计(论文)各阶段的对应关系、软件生命周期各阶段应完成的任务以及在毕业设计(论文)中应注意的问题。 【关键词】软件工程 毕业设计(论文) 实践教学 一、引言 毕业设计(论文)(以下简称毕业设计)是计算机及相关专业教学计划中的一个重要环节,是培养学生对所学基本理论及基本操作技能综合运用的训练过程,是提高学生分析和解决问题能力的重要实践环节,是实现理论与实践相结合的重要途径,是对教育教学质量的全面检查。目前,计算机及相关专业的毕业设计质量正在逐年下降:学生急于找工作或考研,毕业设计得不到应有的重视;需求分析不到位,设计成果不符合实际需求;软件开发流程混乱;缺乏文档写作训练,等等。 针对上述问题,笔者认为,除了应当从管理角度严格进行过程监控外,还应当使学生通过《软件工程》课程的学习,提高毕业设计的质量。 二、软件生命周期与毕业设计过程的对应关系 软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程称为软件的生命周期。软件生命周期可以划分成若干个时期与阶段,它与毕业设计各个环节的对应关系如图1所示。 三、软件生存周期各阶段应完成的任务 1.可行性研究与计划阶段、需求分析阶段 可行性研究与计划阶段主要完成问题的定义、可行性论证以及初步计划的制定;需求分析阶段主要完成需求调查,进行功能、性能与环境约束分析;编制软件需求规格说明、制定软件系统的确认测试准则和用户手册概要。这两个阶段对应于毕业设计的课题论证、选题、调研、查资料,通过对设计题目的深刻理解,完成开题报告的撰写工作。 2.概要设计阶段和详细设计阶段 概要设计阶段主要完成软件系统总体结构的建立、定义功能模块的接口、设计全局数据库和数据结构、规定设计约束、编制概要设计文档等工作;详细设计阶段主要完成模块详细设计及编制模块的详细规格说明工作。包括模块的详细功能、算法、数据结构和模块间的接口信息等设计,拟定模块测试方案;把模块详细设计的结果汇总,形成模块详细规格说明书。这两个阶段对应于毕业设计的系统设计阶段。 3.实现阶段与组装测试阶段 实现阶段主要完成编码及单元测试工作。根据模块详细规格说明书,将详细设计转化为程序代码、对模块程序进行测试,验证模块功能及接口与详细设计文档的一致性,并形成单元测试报告;组装测试阶段主要完成模块程序组装与测试及组装测试报告的编写。 4.确认测试阶段 该阶段主要完成软件系统测试、确认测试文档编制及软件评审工作。根据软件需求规格说明定义的全部功能和性能要求及软件确认测试准则对软件系统进行总测试;向用户提供以确认测试报告为主的有关文档,包括系统操作手册、源程序清单和项目开发总结报告等;由专家、用户、软件开发人员组成的软件评审小组对软件确认报告、测试结果和软件进行评审,并将得到确认的软件产品交付用户使用。这个阶段主要对应于毕业设计(论文)中的论文评审、结题验收及毕业设计的答辨准备阶段。 5.软件运行与维护阶段 主要进入软件的使用阶段,并完成软件的维护工作。它主要对应于毕业设计中的答辩阶段。 四、毕业设计应注意的几个问题 1.摘要 摘要是对文章主要内容的摘录,要求精、短、完整。以几十字至三百字左右为宜。摘要应具有独立性和自明性,从摘要中即应获得必要的信息;摘要中只能使用第三人称;要客观如实地反应原文的内容,要着重反映论文的最新内容和作者特别强调的观点;要求结构严谨、语义确切、表述简明,一般不分段落、不进行自我评价。 2.关键词 关键词主要用于论文检索,它是从论文的题名、摘要和正文中选出的,是对表述论文的中心内容有实质意义的词汇,关键词一般以3~5个为宜。 3.结论 结论写作的内容应主要考虑本文研究结果是什么?研究结果说明了什么?对前人有关的看法作了哪些修正、补充、发展、证实或否定?本文研究的不足之处或遗留未予解决的问题以及对解决这些问题的可能的关键点和方向等。结论应该准确、完整、明确、精练。 4.需求分析 在毕业设计中,学生往往不能对所做题目进行充分的调研,需求不明确,随意想象的成分较多。特别是在数据表的建立上,大部分同学随意设置字段的类型,而字段长度基本上采用默认置。而在实际项目开发中,数据项的设置应主要注意以用户的需求和满足系统要求为准,而不应设计冗余的字段;数据的类型要依据实际需求,当某些字段可以是选择某几种类型之一,应考虑哪一种更有利于本系统或哪种更易于用户操作和维护。 5.详细设计 许多同学把详细设计阶段的任务理解为代码实现,因此,在概要设计之后就着手进行代码的编写而忽略了算法的表达及测试用例的编写环节,由此造成的结果是随意编程,大量的时间浪费在程序的修改和调试上。 6.软件测试 测试做得不够全面,大部分同学只选择了有效的测试用例,而没有进行无效的测试用例的设计,因此所做的软件BUG较多。 7.团队合作 在毕业设计中,应有意识地锻炼学生们的团队协作精神,因此,在布置毕业设计题目时,应尽量选择规模大一点的题目,然后由4~5名同学共同协作,每人完成一个子题目。这样,可以使学生们分析问题和解决问题的能力、沟通和表达能力得到充分锻炼,为今后的工作奠定基础。 软件毕业设计论文:软件工程专业本科毕业设计过程管理 摘要:分析软件工程专业本科毕业设计管理中存在的主要问题,针对软件企业对软件工程专业的人才培养要求,提出软件工程专业本科毕业设计过程管理措施,强调通过建立和完善毕业设计的管理制度,加强毕业设计过程的监控;构建完善的毕业设计管理平台,提高本科毕业设计管理水平;改革毕业论文形式,建立毕业设计过程管理评价体系,提高学生工程实践能力。 关键词:软件工程;本科毕业设计;过程管理 软件学院软件工程专业的设立是国家教育部、国家发展计划委员会为满足国家软件产业发展对人才的迫切需求于2001年批准成立的。重庆大学软件学院是国家首批示范性软件学院之一,其人才培养目标是培养“面向应用、遵循标准、适应团队、把握技术、熟知领域、外语优良”的软件工程人才。10年来,软件学院十分重视软件工程专业的工程化教学改革,采取多项政策和措施促进工程型软件实用人才的培养。本科毕业设计是实现高等学校人才培养目标的重要教学环节,是培养学生创新意识和创新能力的重要手段,是理论学习与社会实践相结合的重要体现。因此,对软件工程专业本科毕业设计进行改革,培养具有工程实践能力的软件实用人才具有重要意义。 1 软件企业对软件工程专业培养人才的要求 软件产业的迅速发展对该行业从业人员提出更高要求,不仅要求学生掌握理论知识,还要求学生具备较强的工程实践能力与创新能力。国内计算机相关专业的教学基本上仍使用传统的理工科人才培养模式,注重基础理论知识,缺少对学生工程能力和职业素质的训练,因此培养既有扎实的专业基础知识和较强工程实践能力,又能迅速适应业界环境的高素质创新型软件人才,是软件企业对软件工程专业人才培养的要求。 2 目前本科毕业设计管理中存在的问题 1)毕业设计阶段缺乏全过程的管理与监控。 毕业设计全过程的管理与监控不够规范,缺乏专门的组织机构。毕业设计的一些主要环节疏于检查和监督,因此存在影响毕业设计质量的问题,如选题陈旧、重复率高、与软件产业发展需求不适合等。 教师指导水平有限且精力投入不足,同时没有对教师指导工作的有效绩效考核,使得教师对学生的毕业设计不够重视;某些学生由于有就业压力,便将主要精力放在人才市场和各类招聘会上,没有意识到毕业设计的重要性,最后只能通过拼凑和抄袭完成毕业设计。 2)毕业设计阶段缺乏规范化的指导性文件。 毕业设计工作持续时间长,涉及所有毕业生和教师,如果没有规范化的指导性文件能够让指导教师和学生了解毕业设计工作的意义、目标、计划、流程、论文规范化格式、质量评价标准、成绩考核等具体实施细则,明确自己在该项工作中扮演的角色以及整个毕业设计流程对自身承担工作的质量要求,那么很难提高毕业设计质量。 3)毕业设计文档资料缺乏有效管理。 毕业设计成果是学校的重要知识和信息资源,完善的文档资料管理有助于毕业设计工作的传承和创新。长久以来,毕业设计作品和论文主要采用人工管理。学生答辩后提交资料袋,资料袋中包括毕业设计相关文档和设计作品的刻录光盘,但由于管理人员对毕业设计资料的重视程度不够或人员不够,导致毕业设计资料管理不善,出现查询困难、答辩记录丢失等情况,为以后查阅、成果展示及下届毕业生的论文指导工作带来不便。 3 本科毕业设计管理改革措施 1)成立毕业设计管理小组。 为了加强本科毕业设计工作的组织、管理和监督,软件学院专门成立毕业设计管理小组,小组成员由教学副院长、正副系主任及学生助管组成,负责整个毕业设计过程的管理监督工作,包括从选题、审题、任务书下达到开题、中期检查、答辩、成绩评定、推优的全过程。 2)建立和完善毕业设计的管理制度。 为了提高毕业设计质量,毕业设计管理小组根据软件工程专业特点建立学院的具体工作规范和有效的毕业设计管理模式和监控制度,加强毕业设计制度建设,使得从选题、下达任务书到学生的开题报告,从每周汇报、中期检查到设计文档撰写、论文撰写、论文重复率监测、论文评阅及论文答辩,都有切实可行的实施细则及管理规章制度;构建集中管理与跟踪管理、周报提交、外出请假、抄袭检测、讲座出勤等平时成绩评定标准;完善从平时表现、系统设计实现质量、论文或设计文档质量、答辩水平等多方面衡量的客观、公正的综合成绩评定标准和推优程序。在毕业设计全过程管理中,力求做到有章可循及有据可查。 3)多元化的毕业论文形式。 多元化的毕业论文形式有利于培养大学生创新实践能力。根据软件工程专业特点,软件学院对毕业论文形式进行改革。毕业设计形式包括传统方式和新方式,学生可以选择其中一种方式,具体采用哪种方式则由指导老师负责。 传统方式是指毕业生完成开题报告并翻译一篇相关课题的英文文献,然后对软件系统进行需求分析、设计和编码实现,或者对相应算法进行研究、分析和编码实现,最后完成毕业设计论文。 为了面向软件企业需求,培养学生的软件设计能力,新方式注重提高学生的系统设计文档编写能力。毕业生前期仍然要完成开题报告、英文文献、系统分析设计和编码,最后提交系统设计相关文档。系统设计相关文档由以下文档构成:①项目开发计划;②软件需求说明;③系统设计说明;④数据库设计说明;⑤用户手册;⑥测试分析报告;⑦项目开发总结。根据软件工程学科特点及专业人才培养的要求,结合学校的毕业设计(论文)管理办法和软件设计文档国家标准,软件学院制定了符合专业人才培养目标的设计文档规范。 为提高学生科技论文写作水平和研究报告的演讲能力,软件学院面向软件工程专业所有应届毕业生,在其毕业设计阶段开设8学时的“科技论文写作规范”“研究报告演讲技巧”讲座,强调科技论文写作的规范性和可读性,锻炼学生演讲研究报告的能力。 4)加强毕业设计过程管理和监控。 毕业设计过程管理和监控面向的对象是学生和教师。软件学院毕业学生做毕业设计有不同情况,如有在校外软件公司做毕业设计的,更多的是在校内做毕业设计,因此需要有相应的不同管理模式。为加强学生培养质量和降低指导教师管理难度,软件学院提供集中管理与跟踪管理方式。 集中管理是指学院设置固定机房和机位并安排助教作为管理人员,由指导教师给学生安排机房,由管理人员负责学生的日常考勤,学生需及时向指导老师汇报学习情况,学生若有事必须请假。跟踪管理主要针对在校外进行毕业设计的学生,要求这类学生完成校外毕业设计申请,由管理小组协助指导教师对校外学生进行跟踪,为这些学生提供及时的毕业设计信息服务。这类学生必须每周与学校指导教师联系,以便教师详细了解并掌握学生毕业设计进度。这种具体的制度和规范,对在校内进行毕业设计和赴外进行毕业设计的学生进行了有效监控。 针对指导教师的管理,毕业设计管理小组采用不定期检查和周报提交的方式。毕业设计规范要求每位指导教师每周指导时间不少于2小时,指导教师需要检查学生毕业设计的进度和质量;解答学生提出的问题,进行下一阶段工作部署与指导,保证毕业设计的质量。 不定期检查指毕业设计管理小组根据指导教师在毕业设计系统中登记的指导时间和地点,不定期对教师的指导情况进行检查。周报提交是指学院建立的毕业设计定期报告制度,教师和学生每周均需要将周报提交到系统上,教师主要汇报每周对学生指导情况以及学生毕业设计进度和质量,学生主要汇报每周的毕业设计进度、毕业设计遇到的问题等。毕业设计管理小组每周对周报进行汇总分析并,及时了解毕业设计情况,对学生和教师提出的问题进行统一解答。 5)构建完善的毕业设计管理平台。 充分利用计算机技术,构建完善的毕业设计管理平台,提高毕业设计管理水平,使毕业设计管理更加规范化。软件学院在毕业设计过程中使用的管理系统包括:重庆大学本科毕业设计系统、重庆大学网络教学综合系统、重庆大学软件学院软件工程实践教学平台。 重庆大学本科毕业设计系统用来上传和管理毕业设计相关文档。系统涵盖毕业设计工作的全过程,实现选题提交、课题双向选择、毕业设计相关文档(包括开题报告、外文翻译和毕业论文)的提交与管理、文档模板的上传和下载、毕业答辩的自动分组、指导教师和交叉教师评分、答辩记录和成绩的上传、成绩册的打印、毕业成绩的统计分析等功能。 重庆大学网络教学综合系统。用于毕业设计的过程管理,主要进行信息、周报收集、校外学生实习申请、过程检查情况公告、问卷调查、学生成果提交和查询等。 重庆大学软件学院软件工程实践教学平台是软件人才培养创新平台,提供实践教学成果展示、实践案例资源库与实践教学管理功能。利用该平台可以举办毕业设计优秀作品展,展示软件学院学生的专业学习水平,激发学生的实践热情,对下一届学生起到示范作用。平台实践案例资源库可为学生提供实践学习参考资源,为教师提供实践教学案例素材。 6)建立毕业设计过程管理评价体系。 建立毕业设计过程管理评价体系,要求所有 一学生和指导老师每周都要将周报提交到EOL(重庆大学网络教学综合平台)平台。毕业设计管理小组每周对毕业设计情况进行检查和监督,并将检查情况告知所有指导老师。指导老师每周提交周报次数与毕业设计指导工作量挂钩;学生考勤情况、周报提交情况、平时检查情况会被记入平时成绩,平时成绩不合格将被取消答辩资格。 软件学院强调学生在毕业设计期间一定要进行软件系统设计和实现,毕业答辩包括系统演示、用PPT讲解毕业设计主要工作、答辩教师提问等多环节,答辩老师根据学生工作量、完成质量、论文或设计文档质量、答辩情况进行评分。学生毕业设计的最终成绩由平时成绩、指导教师成绩、交叉评阅成绩和答辩成绩构成,以保证评分的公平性。 7)加强诚信机制建设 为了提高本科毕业设计质量,加强学术道德和学风建设,营造学术诚信氛围,软件学院使用“大学生论文抄袭检测系统”对本科毕业论文进行防抄袭检测。抽检比例为应届毕业论文的50%,抽检名单由毕业论文管理系统随机抽取。另外,各答辩小组推荐的优秀毕业论文为必检对象。 软件学院制定论文抄袭的认定标准(建议文字复制比不超过25%)和处理办法,对有问题的论文,责成指导教师对检测结果予以认定和说明或督促学生修改,取消被认定抄袭论文学生的答辩资格;对各答辩小组推荐的优秀毕业论文进行,不合格的论文取消优秀。 4 结语 培养适应我国软件产业发展的软件工程人才,提高软件工程本科毕业设计质量,毕业设计的改革势在必行。通过2届学生的毕业设计改革证明,建立和完善毕业设计的管理制度,加强毕业设计过程的监控,充分利用毕业设计管理平台,实现多元化的毕业论文形式,建立合理的毕业设计过程管理评价体系,加强诚信机制建设,能极大地促进师生在毕业设计过程中投入热情和精力,提高本科毕业设计管理水平,有效保证毕业设计质量。 软件毕业设计论文:Ant在软件开发型毕业设计中的应用 [摘要]该文结合实际指导计算机专业毕业设计过程中的体会,提出如何利用Ant工具软件来为软件开发型毕业设计服务,以提高学生的实际动手能力。 [关键词]Ant 计算机 毕业设计 一、计算机专业毕业设计的性质 计算机专业毕业设计工作是高等院校计算机人才培养计划的重要组成部分,是对学生专业知识、综合素质和实际能力训练的重要阶段,是人才培养质量的重要体现,是学生学习、研究与实践成果的全面总结。 二、软件开发型毕业设计中存在的问题 计算机专业的毕业设计主要分为软件开发型毕业设计和基础研究型毕业设计两种类型,本文探讨的是第一种类型。在软件开发型毕业设计答辩过程中,学生需要结合自己的设计实现来讲述设计实现思路及过程,这要求学生需提前部署好自己的软件作品,而答辩时所用计算机一般而言是由答辩单位提供的,只具备软件的运行环境并不负责安装相应的集成开发工具,而学生平时主要是利用集成开发工具来进行开发,一旦脱离了开发工具往往不知所措,这就违背了毕业设计的宗旨。 三、Ant在软件开发型毕业设计中的应用 Ant是一款软件项目构建工具软件,能够让我们采用定制的方式对开发出来的项目进行编译、打包和测试,更重要的是这些工作可以脱离具体的开发工具来进行,这非常适合在毕业答辩时缺少开发工具的情况下进行应急处理。下面利用一个Java类毕业设计项目为例简述Ant的具体应用。 1.安装Ant软件 到Ant的官方网站下载最新版的Ant二进制版本,它是一个扩展名为zip的文件,本文使用的是Ant 1.8版。下载后解压到某个文件夹中,例如c:\\ant_1.8,并创建一个名为ANT_HOME的环境变量,变量值设为刚才解压到的目的文件夹名,本例中即为c:\\ant_1.8(后面用%ANT_HOME%指代该文件夹),同时将%ANT_HOME%/bin文件夹加入到Path环境变量中。以上步骤需要提前安装配置好JDK环境后再进行,JDK环境安装配置在这里略过。 2.创建构建文件 构建文件相当于一个计划书,整个构建活动是严格按照构建文件的内容来进行的,所以构建文件的创建是整个构建活动的核心。构建文件是XML类型的,这不仅是因为该类型是一种通用的描述语言,更主要的是Java中提供了相当丰富的操作XML类型文件的API。创建的构建文件最好命名为build.xml,并将该文件放入工程所在文件夹中。下面阐述一下构建文件的书写规则。 首先,在构建文件中创建一个工程标签用来标识该构建项目,例如本文中构建的项目名称是TankWar ,则创建标签,其中name属性代表的就是项目名称;default指的是要执行的目标名称,所谓的目标就是要完成的任务,在这里任务名为compile,这个任务的定义在后面会有说明;basedir代表工程的根文件夹,一般设为.即当前文件夹即可。 其次,定义属性标签,定义属性其实就是定义在构建文件中要使用的变量,例如该项目要构建的项目源码位于src文件夹中,构建后的文件保存到build/class文件夹中,这时我们就可以定义“src.dir”和“build.class”两个属性变量来指代这两个文件夹,以后假设更改了文件夹名只需修改属性名即可,对应的标签如下所示: 上面${ }中括起来的是已定义的属性名,该使用方式相当于引用变量。 然后创建目标标签,目标即我们要执行的具体任务,一个工程中可以包含多个任务。假设我们执行三项任务分别是创建文件夹、清除文件夹中已有内容及编译源代码,则定义的标签如下所示: 创建文件夹 清除文件夹中已有内容 编译源代码 //name属性所指明的任务即是前面工程标签中default属性的设定值,depends属性指明一种依赖关系,表示此任务必须等待第一个任务完成后才能进行。 3.运行Ant 在命令提示符下输入ant,系统将自动执行build.xml构建文件并完成构建文件中所定义的任务。 四、总结 以上是利用Ant工具软件在软件开发型毕业设计中的应用实例,除了在Java开发平台中有Ant工具外,另一个重要的开发平台,Net平台也有相应Ant工具。由于学生在利用Ant进行软件构建时是脱离了软件开发工具的帮助,所以需要了解更多深层的知识,这无形之中也加深了学生对软件开发型毕业设计的理解,同时在配置Ant环境时需要自己不断地尝试,也锻炼了学生的动手能力,因此将Ant应用到软件开发型毕业设计中对于学生而言是非常有益的。 软件毕业设计论文:计算机软件专业毕业设计探析 提要毕业设计是高职计算机软件专业培养就业型高技能“蓝领”人才的关键环节之一。本文就毕业设计的选题、毕业设计的管理、毕业设计各环节的把握等方面,探讨如何加强和改进高职院校计算机软件专业的毕业设计,以培养出社会所需的计算机软件开发高技能型人才。 关键词:高职院校;毕业设计;软件开发 毕业设计是高职学生由在校学习到参加工作之间的、十分关键的综合教学环节,是毕业前的一次重要的系统实践训练,也是对高职院校的教学管理、师资水平和学生综合素质的集中体现和检验。这个环节把握得好,对学生就业有很大的帮助。实践证明,毕业设计是计算机软件各相关专业理论教学、实验、实训等有机结合的最佳途径之一。笔者多年来一直从事高职计算机软件专业的毕业设计指导工作,经过长期的实践和探索,同时吸取他人经验,对毕业设计工作有如下的认识。 一、毕业设计的选题 选题是毕业设计的第一步,也是非常重要的一步,包括教师选题和学生自选题两种。高职计算机软件专业实现毕业设计的途径和空间是多种多样的,只要有研究开发的环境即可。可以在学校内部组织开展,也可以走出去,到企业、到社会中去完成。例如,校企合作、产学研结合是高职毕业设计实现开放性的有效途径。一是学生到企业、公司实际工作中去,运用所学知识和单位的短期培养,按规定格式和要求写出总结报告或毕业论文,或在参与实际项目设计中完成设计,采取校内指导老师和企业指导人员共同指导学生的毕业设计,在我院的软件专业这种形式的设计占到了近1/3;二是充分挖掘校内资源,寻求多种途径开展毕业设计。例如,参与教师的科研项目,承担部分任务;主动与学校各部门联系,帮助设计各种中小型信息管理系统,如学生档案管理系统、教务管理系统、后勤水电管理系统、学校图书管理系统等,由各部门根据使用情况进行评价。 选题时的原则主要有:(1)符合专业或大类培养目标、满足教学基本要求,使学生得到比较全面的训练,要尽可能进行有软件工程背景的毕业设计;(2)应尽可能结合生产、科研和实验室建设的实际任务,促进教学、科研和生产进行选题。也可是模拟真实的软件项目课题;(3)应有一定的深度与宽度,工作量饱满,使学生在规定的时间内经过努力能按时完成,并鼓励学生有所创造;(4)毕业设计的选题应面对学院的实际情况,从培养目标出发,充分利用学院的计算机资源和人力资源,力求实现学生掌握知识的实际水平与市场经济的需求相符合。 二、毕业设计的管理 要完成高水平的毕业设计,除了要求毕业设计指导教师提供的选题应是新颖的、实用的、能适合当前社会的市场需求的外,还必须要有严格的毕业设计管理制度相匹配。 1、学生毕业前的上一个学期末,确定指导教师,并进行毕业设计动员。有关教师提供指定格式的、“毕业设计(论文)选题报告”、“毕业设计(论文)自选题目申请书”、“毕业设计(论文)格式、书写规范”等表格供学生填写或参考,其内容包括毕业设计的选题来源、要实施的技术方案、要完成的研究工作、需配备的硬件和软件环境、需要的资金等。其中,还给出近三届本专业学生做过的论文题目,防止重复或抄袭。表格填写后交由教研室集体讨论并提出修改意见,然后由计算机系部与有关指导教师统一审批。再将所有选题和指导教师名单提供给学生,由学生和指导教师进行双向选择,有关部门根据选择情况做适当调整后公布指导教师及学生的对应名单。 2、经统一审查后,指导教师给每一个学生下达“毕业设计(论文)任务书”。指导教师与学生见面时,要针对任务书向学生讲解课题目标、实施方案、需要收集的参考书目、需要自学的内容及应做社会实践活动等,并向学生提供相关网站,让学生自己上网学习有关预备知识。 3、指导教师根据系部的统一安排向学生提供“毕业设计工作进程安排表”。该表包括在毕业设计过程中,安排对学生完成毕业设计需补充的专业知识讲座的内容与时间、上机时间、教师辅导时间、检查时间、完成每一设计步骤的进度要求、毕业设计说明书初稿上交和举行毕业答辩的时间等。学生应根据毕业设计任务书的要求,在毕业设计工作开始一周内写出开题报告,内容主要包括:资料准备情况、设计的思路与期望成果、目标任务的分解、各阶段完成的内容计划等,交由指导教师审查后,再按计划开始设计。毕业设计的时间一般在12周左右。 三、毕业设计过程中的几个重点环节 1、资料查询和实地调查。任何一个课题都是有学科基础或技术基础的。学生在做毕业设计开始,通过进行资料查询,可以了解本选题在相应学科领域中的发展进程和研究方向,特别是近年来的发展趋势和最新成果,然后准备与该题目相关的参考资料。通过与对资料研究成果的比较说明自己的选题是符合当前的研究方向,或是否采用了当前的最新技术并有所改进,以进一步了解选题的意义。值得注意的是,要做好毕业设计,必须阅读一定量的近期中、外文资料,这不仅反映学生的外文阅读能力,而且有助于设计的先进性。高职学生在毕业设计之前进行必要的社会调查,是了解和加深题目理解的另一重要途径。以《企业仓储管理信息系统》这个题目为例,学生可以到实习工厂、中小企业等场所进行实地考察、了解管理信息系统的实际应用状况,通过系统现象的感性认识,逆向推测如何进行模块设计才能实现这些功能。另外,网络查询也是学习、资料查询的重要方式。指导教师要让学生按毕业设计任务书要求深入地了解本毕业设计课题,准备资料,写出文献综述并完成初步的外文翻译任务。 2、制定和论证技术方案。明确所要解决的问题后,就要提出自己解决问题的思路和方案。包括一般的程序设计、数据库设计和网站建设等,应选定编程语言、根据目标提出总体模块设计图、流程草图等,通过比较表明自己方案的价值、方案的创新之处或有新意的思路、算法和关键技术。学生阐述自己的设计方案时,要说明为什么要选择该方案,如何进一步优化数据,不足之处如何得到克服,最后完成的工作具有什么样的性能或达到什么样的水平。 3、充分发挥教师在毕业设计中的引导、辅导作用。教师在整个毕业设计工作中应该起到引导、辅导交流的作用,激励学生有足够的信心完成毕业设计工作,鼓励学生突破旧系统,展开思维的翅膀,尝试别人没有想过或没有做过的工作,注意对学生创新思维的培养。在毕业设计过程中,指导教师布置任务后,要进行具体指导和及时检查。指导教师要注重针对性与适用性,力争使毕业设计内容与学生毕业后所从事的技术岗位对口,使人才培养目标与社会的需求相一致。 4、毕业设计的先期总结和答辩准备。在毕业设计的后期,指导教师应及时进行总结,针对每个成员指出毕业设计过程中的改进之处,提出后期需要进行工作的重点和方向。并发放统一格式的编制设计说明书的有关文档,如毕业设计说明书的装订顺序、目录和正文的格式要求及正文基本结构及毕业答辩应当做的准备工作。指导教师检查资料是否齐全、是否符合规范要求、程序运行有无缺陷及答辩时要注意的问题等,然后做最后的答辩准备。毕业设计答辩开始前三天,学生需上交毕业设计的相关文档和程序资料。文档部分按规定格式装订成册,供答辩委员评阅。 5、毕业答辩、成绩评定。毕业答辩评分要做到客观、公正、公平。人员除本院教师外还聘请企业项目开发人员参与评阅和答辩工作。答辩分数可分为自述、回答问题、论文内容三部分。最后,通过答辩委员会及各位指导教师统一讨论,得出学生的答辩成绩。答辩后,答辩委员会及时总结答辩中遇到的问题,并组织部分同学参加座谈会,了解学生对毕业设计的反馈意见,以备下一届进行设计时加以改进。 四、结束语 高职学生理论基础相对较弱,但实际动手能力并不差。毕业设计给了他们一个良好的提升能力的机会。毕业 设计多选择一些项目单位的实际软件项目,让学生到公司、企业这些项目实际场合进行毕业设计,最好是在生产实际中选择那些真刀真枪的设计题目。经过我院近四届高职计算机软件专业毕业生采取以上方法和环节进行毕业设计实践,已取得较好的效果,学生适应性和实际能力有了很大提高。但也存在不完善的地方,只有通过不断地实践、研究、总结和改进方法,不断地进行毕业设计教学的改革,为培养出计算机软件专业应用型的高技能人才做贡献。 (作者单位:大连水产学院职业技术学院)
软件工程毕业设计论文:软件工程在毕业设计的作用 在学生的毕业设计中以软件工程的思想为主线,从软件工程的角度去指导学生进行毕业设计,挖掘软件工程在系统开发过程中的价值,解决毕业设计中存在的一些问题,既有助于学生更好地理解软件工程的方法、技术和思想,更有助于提高软件类毕业设计的质量。 1毕业设计中存在的问题 笔者在指导学生软件开发类毕业设计过程中发现,毕业设计存在着选题难、任务重、重视编码、轻过程、项目无法完成等现象。设计过程中没有严格地遵循软件工程的开发方法,没有规范的软件设计过程,项目能否成功主要依赖于个人能力和个人努力,这种不正确的开发方法带来了严重的后果。在项目开发的过程中常常存在以下几个方面问题: 1.1选题的盲目性 选题是毕业设计过程中的一个初始环节,选题恰当是做好毕业设计的前提,但选题不当的情况仍然时有发生。学生没有认识到毕业设计的重要性,纯粹是为了完成学业而做毕业设计,选题没有一个确切的目标,往往是随便选一个题目,造成选题的盲目性,出现了选题陈旧、选题范围狭窄、选题偏大等问题,使学生抄袭、完成不了毕业设计的情况时有发生。 1.2缺少软件的系统分析 软件开发过程的第一个阶段是系统分析,用来确定软件开发要解决的问题是什么?估算完成该项目需要的资源和成本,确定目标系统应该具备哪些功能,主要经历问题的定义、可行性分析和需求分析三个阶段。软件的系统分析确定了用户需求,同时对目标系统提出完整、具体的要求,引导开发者正确地构建系统。因此,对用户需求做出全面、正确的分析,对于最终软件开发类毕业设计的成败起着至关重要的作用。然而在完成毕业设计过程中,学生往往认为代码编写最重要,对软件开发过程中的可行性分析和需求分析阶段不重视,甚至没有系统分析,对整个毕业设计的完成造成了影响。 1.3软件设计过程杂乱无章 软件设计一般都要经历可行性分析、需求分析、总体设计、详细设计、编码和测试阶段。而部分学生在毕业设计开发的过程中,缺乏软件工程设计思想,跨越需求分析、概要设计、详细设计和功能模块设计,直接进行代码的撰写;或者从代码反推出模块设计;甚至在软件开发过程中,一边写程序,一边了解需求,程序完成了需求才确定。这种无序的软件设计过程,导致最终设计的系统杂乱无章、代码的重复率高、潜在?Bug多、系统的可集成性非常差、不能在规定时间内完成设计或者系统无法运行。 1.4开发过程中文档不完备 根据软件工程学的基本原理,软件=程序+文档,可见软件文档是软件开发过程中不可缺少的组成部分。软件文档贯穿于软件开发的各个阶段,是提高软件产品开发效率、规范软件产品开发过程、保证软件产品质量的关键。但在实际毕业设计中,很多同学认为把程序代码编出来了,毕业设计也就完成了,提交的毕业设计论文就是系统代码的复制,即只做出一个可演示可操作的系统,而忽略了软件开发的完整性、系统性。完整的毕业设计不仅包括可操作的系统,还包括在开发系统的过程中所产生的各个文档资料。文档的缺失会降低软件开发的效率、影响整个软件的开发、使用和维护。以上问题的存在,严重影响了毕业设计的进度和质量,没有达到毕业设计的目标要求。针对当前毕业设计的现状和存在不足,笔者认为应用软件工程学的思想指导毕业设计,对促进学生综合素质与工程实践能力培养具有积极意义。 2用软件工程思想指导学生进行毕业设计 2.1以可行性研究指导选题 可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。毕业设计题目的选择,应立足于解决工程实际问题,可由指导教师提供符合相关专业毕业设计要求的题目,也可以鼓励学生自己到社会、生产企业中寻求研究课题,培养他们自主学习的意识。选题过程以可行性研究为指导,从课题规模大小、难易程度、学生自己的研究方向、爱好、学生的知识层面和能力等多个方面进行考虑,对于选择的题目是否能够解决,确定在规定的时间内完成毕业设计的可行性。指导教师可根据学生选报的题目来指导学生对该选题进行调查研究,明确课题要解决的问题是什么,简要地写出关于问题性质、项目目标和项目规模的书面报告。可行性研究来指导毕业设计的选题,实质上是简化了系统分析和设计的过程,也是在较高层次上以较抽象的方式进行的系统分析和设计的过程,使学生对于课题的设计有个清晰的思路,为及时完成毕业设计提供了可能。 2.2重视软件的需求分析 需求分析的基本任务是准确地回答“系统必须做什么”,即确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求,不仅指明了系统设计时必须要实现的目标,也是软件设计、实现、测试和维护阶段的主要参考标准。用户需求的获取是软件开发中最重要、难度最大的工作,它贯穿于整个软件设计过程,不仅要涉及到软件开发方面的知识、应用领域方面的知识,还涉及到与用户沟通的能力。在进行需求获取和分析时,为了及时、准确地获取,可采用软件工程中比较成熟的方法,例如访谈、实际调查、UML的用例技术等。需求分析在软件系统分析与设计阶段起着桥梁的作用,确定了系统的需求,才能制定出软件设计的框架,保证毕业设计循序渐进、有条不紊地进行,避免后期开发过程的频繁返工,进而按时完成最终的任务。 2.3规范毕业设计过程 软件开发类毕业设计一般是开发一个软件系统,实现一定的功能。“麻雀虽小,五脏俱全”,无论软件规模的大小、功能的多少,都应该严格按照软件工程中软件生命周期每个阶段的步骤完成各项任务。要培养学生把软件工程的概念贯穿于整个毕业设计过程,也就是说,让学生把开发软件的过程看成是盖一栋大楼,修一条公路的实际工程,用工程化的思想指导毕业设计,确定完成课题的各项任务的工作步骤,注重软件类毕业设计的过程,而不是学生所认为的毕业设计就是编程序,代码调试通过即可。通过工程的概念规范毕业设计过程,让学生明白开发一个软件系统一般经过系统分析、系统设计、系统实施三个阶段,必须严格遵循软件生命周期的规律,完成各个阶段的任务,才能最终提高毕业设计的质量。 2.4重视文档的写作 软件工程中的瀑布模型严格地规定了在整个软件生命周期的各个阶段,都要提交相应的文档。文档不仅记录软件开发过程中的大量信息,在软件的开发、维护过程中也起着重要的作用。在指导学生毕业设计时,要求学生遵照软件工程的思想,把文档作为整个设计的指挥棒,记载设计过程的每一阶段完成的目标、任务及技术手段,建立健全毕业设计文档制度,确保毕业设计过程中的文献综述、译文、任务书、开题报告、选题审题表、中期检查表、设计(论文)正文、答辩记录等各环节教学资料档案完善、规范,实现对毕业设计的全程监控。 3结束语 软件工程是软件开发工程化、规范化的具体实施方法,将其应用到毕业设计中,不仅有助于学生对软件开发相关知识的巩固和实践,而且对解决目前软件开发类毕业设计中存在的问题,提高学生毕业设计质量,具有极大的促进作用。 作者:王 晓 王长波 单位:湖北医药学院 公共管理学院计算机教研室 软件工程毕业设计论文:软件工程本科毕业设计策略探究 一、利用多方资源做好毕业设计选题与立题工作 恰当的选题是做好毕业设计的必要条件和前提。近年来,随着信息技术高速发展,国家对高素质软件工程人才需求十分旺盛,并有逐年扩大的趋势。同时各个高校软件工程专业的招生数量也在逐年增加,从目前全国319所设有软件工程专业的学校看,2013年该专业平均招生300人左右。专业招生人数的增多给毕业设计选题带来了带来巨大挑战:一方面软件工程专业的毕业设计选题要求具有一定的应用价值、创新性,同时还要与行业需求相吻合;另一方面要保证选题的唯一性,不仅要避免学生之间的题目重复,还要避免与之前毕业生的题目重复,因为重复的选题会使学生产生投机的心理,导致“打酱油”现象。针对上述问题,黑龙江大学软件学院主要采取了以下几个措施: 1.充分利用企业资源 对一部分在企业实习的学生采取“三位一体”的双导师指导模式。即企业项目为载体,学生为主体的模式,校内和校外导师为主导。这部分学生一般是在大三下学期暑假就已经进入企业实习,而我们每年毕业设计选题工作是在十一月末,也就是学生进入企业实习后三到四个月的时间,学生经过企业阶段的培训,对企业的生产过程、企业文化有了一定的了解。此时,学院组织校内外导师和学生共同协商,以企业项目或子项目为学生确定毕业设计选题。 2.充分发挥导师的资源优势 学院大部分教师都有自己的科研课题,这些科研课题有些是直接来源于企业的横向课题,还有一些是信息技术领域的应用研究课题,我们鼓励教师从这些课题中提取出一些子项目让学生实践,作为毕业设计的选题。 3.充分挖掘学生的专业技术特长和兴趣点并结合学生的择业倾向 确定最能发挥自身优势和潜能的选题。毕业设计的选题不仅要与实际需求相结合,更重要的是应该结合学生自身的技术优势和兴趣。只有学生对选题有兴趣,他们才能尽早地进入状态,发挥自己的创造能力和积极主动意识。所以,选题阶段导师和学生的沟通交流就显得尤为重要,通过沟通导师可以了解学生的能力、兴趣和择业倾向,学生也可以对选题,有进一步的认识,对于不感兴趣的选题学生也可以通过与导师进一步的探讨进行题目的修订。 二、注重环节审查 加强过程监管虽然“好的开始是成功的一半”,但是如果缺乏中间环节的监管,仍然不能保证好的效果。因此,为保证毕业设计(论文)的质量,我们制定了明确的质量标准、管理条例,并由院长、学术委员会、系主任和教务办主任组成毕业设计(论文)工作委员会,负责毕业设计(论文)工作的组织、评定和监管,同时保证管理条例的严格落实及各个环节工作的正常进行。为健全毕业设计(论文)的监管机制,学院先后规范和完善了《毕业设计(论文)工作管理办法和实施细则》《开题报告》《开题评分标准》《中期报告》《中期检查标准》《毕业设计(论文)撰写规范及模版》《毕业设计(论文)盲审表》《答辩程序和评分标准》等一系列管理办法和文档标准,使毕业设计工作在制度和规范下能顺利有效地进行。每年毕业设计工作之初,我们都要给学生开一个动员会,在会上阐明毕业设计(论文)的重要性,以及毕业设计对他们未来工作的影响,调动他们学习的主动性、积极性和创造性。此外,系主任还要向学生介绍学院毕业设计(论文)管理办法和实施细则,各阶段的工作要求和时间节点,以及各环节检查的内容、需要提交的文档,使学生在毕业设计开始时能做到心中有数。同时,我们也要求指导教师随时解答学生的问题,坚持每周开例会,检查学生的工作完成情况,并提出一些有技术含量和理论深度的问题启发他们思考,激发他们的学习热情,并与学生一起确定后续任务。此外我们组织开题检查、中期检查,对开题检查成绩后30%的学生,不但检查中期报告,还要现场检查程序。对于中期检查不合格的学生,要求限期整改,如果仍然不合格则取消答辩资格。在答辩之前,我们还要对论文进行盲审,盲审不合格的学生不允许答辩,对有异议的论文要提交学术委员会做最后论证。虽然学院对毕业设计(论文)工作在各个环节上的审查都非常严格,但我们鼓励学生之间进行研讨交流,博采众长,相互提高,因为我们的目的不是抓出多少不合格的学生,而是想通过大学阶段最后的综合性实践教学环节训练,培养学生的学习能力、知识的综合运用能力、分析解决问题能力和沟通交流等综合素质。 三、严把答辩关,保证毕业设计质量 答辩是毕业设计(论文)考核阶段的最后环节,这个环节既是学院对学生毕业设计的验收和鉴定,同时也是学生对自己工作的总结和汇报。通过答辩,学生不仅展示了毕业设计工作的效果,更展示了自己的专业知识、技术水平和综合素质。作为教师,每年都要指导多个毕业设计(论文),而学生一生只能经历一次本科毕业设计,而且毕业设计答辩能否顺利通过,直接关系到学生毕业及学位资格的认定。因此对学生来讲,毕业答辩至关重要。这有点像外科医生与患者的关系:医生每年要做很多手术,对他们而言手术已是司空见惯,但对于患者本人,可能一辈子才上一次手术台,而且生命攸关。所以,我们要在毕业设计指导过程中,认真对待每一位学生。同时在毕业答辩中严格把关,保证质量,更要秉承“公开“”公正”“公平”的原则。我们的毕业设计(论文)答辩采用小组面试形式,每组由四位副高职以上教师组成。答辩当天向学生公布成绩,毕业设计(论文)总成绩由开题成绩(10%)、中期成绩(10%)、指导教师成绩(10%)、答辩成绩(70%)构成。对于优秀的和不及格的学生,我们还会重新组建答辩组进行二次答辩。这是考虑到答辩组之间认同度的差异而导致评分标准出现偏差,可能有些答辩组打分会偏低,有的组打分会偏高,即各个答辩组评分信度不能达到一致。二次答辩可以有效地消减组间评分差异,从而使申报校优秀论文人选和未通过人选的确定做到公正、公平和有效。针对软件行业特点,我们通过强化实践教学环节,合理利用多方资源拓宽毕业设计(论文)选题途径、健全和完善毕业设计(论文)的监管机制等手段,确保了毕业论文质量的稳步提高。几年来,黑龙江大学软件学院的毕业设计(论文)质量受到校内外专家的一致好评,获校优秀论文比率一直位于学校前列。实践证明,加强毕业设计(论文)质量的监管,不但提高了学生工程实践能力、独立科研能力和创新意识,为学生进入工作岗位打下了良好的基础,进而也提升了学生的就业率。 作者:任美睿 金英 郭龙江 单位:黑龙江大学 软件工程毕业设计论文:软件工程类毕业设计管理措施 规模使得精细化指导与管理变得困难原有毕业设计环节管理由于参与指导的教师人数相对较少,每名教师指导的学生也不多,而且所有教师均为本系教师,大家彼此非常熟悉,在一起教学研讨的时间也很多,所以大家对各环节的要求及约定比较容易统一,对每个学生的指导时间也较多。但随着参与指导毕业设计教师数量的提升,指导学生数的增加,特别是聘请了外系教师的支援,原有会议讨论式、心理记忆式的约定及规则已经不能适应管理要求。这就必然要求规范毕业设计环节的管理,统一考核指标,让大家在一个统一的框架下实施毕业设计的指导与考核。 软件过程及评价主观性强软件及开发是个主观性强,知识、劳动密集型工作,同一个项目或任务,由于每个人项目经历、经验的不同,不同的人所得出的满足需求的合格产品是肯定有区别的,但在质量、灵活性、可扩充性方面可能存在很大差别。同时,对于软件产品,不同人会有不同的评价,具有强主观性的特点。这种强主观性使得对毕业设计的评价难以用客观的量化的评价指标和体系进行度量,对教师间把握统一的考核尺度制造了困难。 师生面对面交流机会越来越少由于就业形式的变化,各本科院校的培养模式也作了一定的改变,为了让学生能更方便的外出找工作,更早的接触社会,大部分高校第八学期除了毕业设计,基本上就没有其他的教学任务。重庆理工大学也存在类似情况,在第八学期,大部分学生没有待在学校,有的在外联系工作单位,有的提前到单位实习,甚至有的以在外找工作为借口待在家里,学生的分散性使得教师和学生之间面对面交流的机会少之又少,给毕业设计环节的指导和管理工作带来了难度。 选题类型趋于多样性为了培养学生层次、方向的多样化,软件工程专业的毕业设计不仅只有传统的系统分析、设计与开发类的题目,还涉及论文类及算法类等类别。根据对前几届毕业设计环节的综合统计,系统分析设计开发类选题所占分量最多,占70以上。由于不同题型的毕业设计需要应用的知识、实施过程、考核重点都存在很大差异,不同题型之间的考核没有对比性,因此需要针对不同的选题类型制定相应的考核指标和评价标准。 现有管理中存在的问题 毕业设计是一次综合锻炼学生应用所学知识解决问题能力的过程,涉及的环节比较多,存在的问题也不少[3-4]。综合分析,存在以下三个典型问题: 1历史题目重复率高,抄袭现象难以控制 每年都有几个班的学生毕业,毕业设计都要实施。在纸质时代,抄袭成本大,抄袭源也比较难找到,因此抄袭现象相对较少,不同届学生的题目相同并不会影响毕业设计质量。然而,随着互联网技术在给广大民众带来方便的同时,也给学生的偷懒提供了契机。由于大部分学生在外实习,教师很难有效的监督学生,有相当一部分学生考虑到自己毕业后不从事软件开发等相关工作或工作比较忙,不愿意投入时间好好地完成毕业设计,而是从互联网抄袭,甚至通过互联网购买。 2学生对考核的公正性存在质疑 由于参与综合实践环节的学生人数和指导教师规模越来越大,综合实践环节在进行质量考核时必然要进行分组。由于大家没有统一的考核指标体系及标准,同一水平的毕业设计处于不同考核小组,可能得出截然不同的成绩;甚至有指导教师认为较好的论文在答辩时被判为不及格现象。造成的严重后果是学生对论文评审、答辩过程公平性的质疑,对学校的声誉带来不良影响。其原因是由于不同教师间、各不同小组之间缺乏一个统一的评判标准,分组的不均匀分布而导致了评审的不公平性。 3学生难以获取实际需求 由于学生人数众多,只有少部分学生能参与到教师的实际科研项目中,大部分学生只能以虚构的题目为背景,没有具体的企业为依托。因此,很获取项目的具体而详细的需求,学生所完成的也只能是一些通用功能的系统,系统业务逻辑比较简单,甚至基本没有业务逻辑,仅仅是简单增加、删除、修改等功能的拼凑,不能真正体会到系统分析和设计的内涵。 软件专业毕业设计管理对策 软件工程专业毕业设计管理是很多高校都比较棘手的问题,也有不少教师已提出了一些很好的策略[5-7]。根据对多年毕业设计执行情况的分析与总结,作者认为软件工程专业毕业设计管理和考核中存在众多问题的主要原因有以下三点:重结果轻过程的考核方法;缺乏统一的考核评价体系;管理过程不规范,随意性大。因此,本文主要从建立量化考核指标体系、规范毕业设计过程管理和其他一些辅助策略进行探讨。 1建立量化考核指标体系 建立量化考核指标体系包括细化考核指标和建立考核评价体系两部分。考核指标体系是一把双刃剑,它除了可以对学生的毕业设计过程和结果进行考核外,也给学生提供了完成毕业设计目标的指导。在实际操作中,将对毕业设计的考核从过程检查、评阅、答辩等几个环节进行考虑,各环节又有细分指标,如论文选题、工作量、分析设计,程序运行、系统界面、论文结构、熟悉程度等,用权重表示指标的重要性程度,每个指标有几个不同得分等级,每个等级对应一个可参考的评判标准,从而将以前的主观考核变为根据指标进行量化计算,有效地减少人为因素对评价的影响。 2规范毕业设计过程管理 传统的考评方式重视对结果的考核,缺少对过程的考核,大多数学生在进行实践环节任务时,没有一个良好的系统分析、设计、开发习惯,完全是“灵感触发”式的完成的,因此最终提交的往往是低劣的文档或代码。软件产品是知识密集性产品,实践证明,有效的过程管理是生产出好产品的一个必要条件。因此,必须规范毕业设计的课程管理,借助于1节建立的考核体系,对过程中的开题、需求文档、设计文档等关键环节进行考核,使学生在完成毕业设计的每一步时有明确目标的指导,通过过程的管理促使学生完成高质量的毕业设计成果。为了减少人为因素的影响,有必要建立毕业设计过程管理及控制系统[8-9],用管理信息系统规范毕业设计的过程管理。 3采用团队培养模式 系统分析与设计的能力是软件工程专业学生需要培养的一项最主要能力,而简单的系统开发或项目由于功能简单、业务单一,对锻炼学生的系统分析和设计能力作用不大。因此,可以采用多名学生组团共同完成一项较复杂系统的方式,每名学生负责其中的一部分,学生之间通过对复杂点的业务逻辑的讨论来提高系统分析和设计的能力,通过团队合作来了解项目管理与软件工程方法的精髓。 4与企业合作指导 由于企业面对的都是实实在在的项目,有自我学习的环境氛围和压力,在培养学生动手实践能力方面有其独特的优势。在企业,每天都有相应的任务,在完成任务过程中,必然会碰到各种类型的问题,会寻求问题的解决方法,在解决问题的过程中很自然地就提升了自己的能力。这种任务驱动的学习方法和实际项目环境下的压力在学校是很难提供的。近些年来,学院也在加强与企业的合作,在有条件的情况下尽量派学生深入到公司、企业进行实习,已签约的学生也可以提前到签约企业工作,以企业的项目来完成其毕业设计环节,实现企业、学校共同指导的方式。 结束语 毕业设计环节由于实践性、综合性强,涉及知识点多,其管理与考核一直是让人头疼的问题。论文描述了重庆理工大学软件工程专业毕业设计环节的背景和现状,指出了软件工程专业毕业设计质量难于管理和考核的特点。通过对近几年毕业设计开展情况的总结与分析,发现了毕业设计质量难于考核和控制的具体原因,并指出当前毕业设计管理和考核所存在的问题,最后提出了解决这些问题的一些具体实施策略。结果表明,策略的实施对毕业设计过程的管理及考核答辩工作有较大的作用,学生毕业设计质量有了显著的提高。 作者:刘智王森闫河单位:重庆理工大学计算机科学与工程学院 软件工程毕业设计论文:软件工程本科毕业设计质量提升策略 一、利用多方资源做好毕业设计选题与立题工作 恰当的选题是做好毕业设计的必要条件和前提。近年来,随着信息技术高速发展,国家对高素质软件工程人才需求十分旺盛,并有逐年扩大的趋势。同时各个高校软件工程专业的招生数量也在逐年增加,从目前全国319所设有软件工程专业的学校看,2013年该专业平均招生300人左右。专业招生人数的增多给毕业设计选题带来了带来巨大挑战[3]:一方面软件工程专业的毕业设计选题要求具有一定的应用价值、创新性,同时还要与行业需求相吻合;另一方面要保证选题的唯一性,不仅要避免学生之间的题目重复,还要避免与之前毕业生的题目重复,因为重复的选题会使学生产生投机的心理,导致“打酱油”现象。针对上述问题,黑龙江大学软件学院主要采取了以下几个措施:1.充分利用企业资源,对一部分在企业实习的学生采取“三位一体”的双导师指导模式。即企业项目为载体,学生为主体的模式,校内和校外导师为主导。这部分学生一般是在大三下学期暑假就已经进入企业实习,而我们每年毕业设计选题工作是在十一月末,也就是学生进入企业实习后三到四个月的时间,学生经过企业阶段的培训,对企业的生产过程、企业文化有了一定的了解。此时,学院组织校内外导师和学生共同协商,以企业项目或子项目为学生确定毕业设计选题。2.充分发挥导师的资源优势,学院大部分教师都有自己的科研课题,这些科研课题有些是直接来源于企业的横向课题,还有一些是信息技术领域的应用研究课题,我们鼓励教师从这些课题中提取出一些子项目让学生实践,作为毕业设计的选题。3.充分挖掘学生的专业技术特长和兴趣点并结合学生的择业倾向,确定最能发挥自身优势和潜能的选题。毕业设计的选题不仅要与实际需求相结合,更重要的是应该结合学生自身的技术优势和兴趣。只有学生对选题有兴趣,他们才能尽早地进入状态,发挥自己的创造能力和积极主动意识。所以,选题阶段导师和学生的沟通交流就显得尤为重要,通过沟通导师可以了解学生的能力、兴趣和择业倾向,学生也可以对选题,有进一步的认识,对于不感兴趣的选题学生也可以通过与导师进一步的探讨进行题目的修订。 二、注重环节审查,加强过程监管 虽然“好的开始是成功的一半”,但是如果缺乏中间环节的监管,仍然不能保证好的效果[4]。因此,为保证毕业设计(论文)的质量,我们制定了明确的质量标准、管理条例,并由院长、学术委员会、系主任和教务办主任组成毕业设计(论文)工作委员会,负责毕业设计(论文)工作的组织、评定和监管,同时保证管理条例的严格落实及各个环节工作的正常进行。为健全毕业设计(论文)的监管机制,学院先后规范和完善了《毕业设计(论文)工作管理办法和实施细则》《开题报告》《开题评分标准》《中期报告》《中期检查标准》《毕业设计(论文)撰写规范及模版》《毕业设计(论文)盲审表》《答辩程序和评分标准》等一系列管理办法和文档标准,使毕业设计工作在制度和规范下能顺利有效地进行。每年毕业设计工作之初,我们都要给学生开一个动员会,在会上阐明毕业设计(论文)的重要性,以及毕业设计对他们未来工作的影响,调动他们学习的主动性、积极性和创造性。此外,系主任还要向学生介绍学院毕业设计(论文)管理办法和实施细则,各阶段的工作要求和时间节点,以及各环节检查的内容、需要提交的文档,使学生在毕业设计开始时能做到心中有数。同时,我们也要求指导教师随时解答学生的问题,坚持每周开例会,检查学生的工作完成情况,并提出一些有技术含量和理论深度的问题启发他们思考,激发他们的学习热情,并与学生一起确定后续任务。此外我们组织开题检查、中期检查,对开题检查成绩后30%的学生,不但检查中期报告,还要现场检查程序。对于中期检查不合格的学生,要求限期整改,如果仍然不合格则取消答辩资格。在答辩之前,我们还要对论文进行盲审,盲审不合格的学生不允许答辩,对有异议的论文要提交学术委员会做最后论证。虽然学院对毕业设计(论文)工作在各个环节上的审查都非常严格,但我们鼓励学生之间进行研讨交流,博采众长,相互提高,因为我们的目的不是抓出多少不合格的学生,而是想通过大学阶段最后的综合性实践教学环节训练,培养学生的学习能力、知识的综合运用能力、分析解决问题能力和沟通交流等综合素质。 三、严把答辩关,保证毕业设计质量 答辩是毕业设计(论文)考核阶段的最后环节,这个环节既是学院对学生毕业设计的验收和鉴定,同时也是学生对自己工作的总结和汇报。通过答辩,学生不仅展示了毕业设计工作的效果,更展示了自己的专业知识、技术水平和综合素质。作为教师,每年都要指导多个毕业设计(论文),而学生一生只能经历一次本科毕业设计,而且毕业设计答辩能否顺利通过,直接关系到学生毕业及学位资格的认定。因此对学生来讲,毕业答辩至关重要。这有点像外科医生与患者的关系:医生每年要做很多手术,对他们而言手术已是司空见惯,但对于患者本人,可能一辈子才上一次手术台,而且生命攸关。所以,我们要在毕业设计指导过程中,认真对待每一位学生。同时在毕业答辩中严格把关,保证质量,更要秉承“公开”“公正”“公平”的原则。我们的毕业设计(论文)答辩采用小组面试形式,每组由四位副高职以上教师组成,答辩流程如图1所示。答辩当天向学生公布成绩,毕业设计(论文)总成绩由开题成绩(10%)、中期成绩(10%)、指导教师成绩(10%)、答辩成绩(70%)构成。对于优秀的和不及格的学生,我们还会重新组建答辩组进行二次答辩。这是考虑到答辩组之间认同度的差异而导致评分标准出现偏差,可能有些答辩组打分会偏低,有的组打分会偏高,即各个答辩组评分信度不能达到一致。二次答辩可以有效地消减组间评分差异,从而使申报校优秀论文人选和未通过人选的确定做到公正、公平和有效。针对软件行业特点,我们通过强化实践教学环节,合理利用多方资源拓宽毕业设计(论文)选题途径、健全和完善毕业设计(论文)的监管机制等手段,确保了毕业论文质量的稳步提高。几年来,黑龙江大学软件学院的毕业设计(论文)质量受到校内外专家的一致好评,获校优秀论文比率一直位于学校前列。实践证明,加强毕业设计(论文)质量的监管,不但提高了学生工程实践能力、独立科研能力和创新意识,为学生进入工作岗位打下了良好的基础,进而也提升了学生的就业率。 作者:任美睿 金英 郭龙江 单位:黑龙江大学 软件工程毕业设计论文:管窥软件工程在毕业设计中的应用 1软件工程在毕业设计中的作用 软件工程不仅是计算机科学与技术专业、软件工程专业的一门专业基础核心课程,也是其他相关专业,如信息工程、系统工程、信息与计算机科学、信息管理与信息系统等专业的重要应用技术课程。对于这些专业的学生来说,毕业设计多是以软件开发类项目为主,整个毕业设计就是开发一个软件。为了更好地完成软件开发类毕业设计,提高学生毕业设计的质量,进一步规范毕业设计中的软件开发过程是必需的。软件工程的思想正是用工程化方法构建和维护有效的、实用的和高质量的软件。按照软件工程思想,软件开发的生命周期分为可行性分析、需求分析、总体设计、详细设计、编码实现、软件测试和软件维护几个阶段。在学生的毕业设计中以软件工程的思想为主线,从软件工程的角度去指导学生进行毕业设计,挖掘软件工程在系统开发过程中的价值,解决毕业设计中存在的一些问题,既有助于学生更好地理解软件工程的方法、技术和思想,更有助于提高软件类毕业设计的质量。 2毕业设计中存在的问题 笔者在指导学生软件开发类毕业设计过程中发现,毕业设计存在着选题难、任务重、重视编码、轻过程、项目无法完成等现象。设计过程中没有严格地遵循软件工程的开发方法,没有规范的软件设计过程,项目能否成功主要依赖于个人能力和个人努力,这种不正确的开发方法带来了严重的后果。在项目开发的过程中常常存在以下几个方面问题: 2.1选题的盲目性 选题是毕业设计过程中的一个初始环节,选题恰当是做好毕业设计的前提,但选题不当的情况仍然时有发生。学生没有认识到毕业设计的重要性,纯粹是为了完成学业而做毕业设计,选题没有一个确切的目标,往往是随便选一个题目,造成选题的盲目性,出现了选题陈旧、选题范围狭窄、选题偏大等问题,使学生抄袭、完成不了毕业设计的情况时有发生。 2.2缺少软件的系统分析 软件开发过程的第一个阶段是系统分析,用来确定软件开发要解决的问题是什么?估算完成该项目需要的资源和成本,确定目标系统应该具备哪些功能,主要经历问题的定义、可行性分析和需求分析三个阶段。软件的系统分析确定了用户需求,同时对目标系统提出完整、具体的要求,引导开发者正确地构建系统。因此,对用户需求做出全面、正确的分析,对于最终软件开发类毕业设计的成败起着至关重要的作用。然而在完成毕业设计过程中,学生往往认为代码编写最重要,对软件开发过程中的可行性分析和需求分析阶段不重视,甚至没有系统分析,对整个毕业设计的完成造成了影响。 2.3软件设计过程杂乱无章 软件设计一般都要经历可行性分析、需求分析、总体设计、详细设计、编码和测试阶段。而部分学生在毕业设计开发的过程中,缺乏软件工程设计思想,跨越需求分析、概要设计、详细设计和功能模块设计,直接进行代码的撰写;或者从代码反推出模块设计;甚至在软件开发过程中,一边写程序,一边了解需求,程序完成了需求才确定。这种无序的软件设计过程,导致最终设计的系统杂乱无章、代码的重复率高、潜在?Bug多、系统的可集成性非常差、不能在规定时间内完成设计或者系统无法运行。 2.4开发过程中文档不完备 根据软件工程学的基本原理,软件=程序+文档,可见软件文档是软件开发过程中不可缺少的组成部分。软件文档贯穿于软件开发的各个阶段,是提高软件产品开发效率、规范软件产品开发过程、保证软件产品质量的关键。但在实际毕业设计中,很多同学认为把程序代码编出来了,毕业设计也就完成了,提交的毕业设计论文就是系统代码的复制,即只做出一个可演示可操作的系统,而忽略了软件开发的完整性、系统性。完整的毕业设计不仅包括可操作的系统,还包括在开发系统的过程中所产生的各个文档资料。文档的缺失会降低软件开发的效率、影响整个软件的开发、使用和维护。以上问题的存在,严重影响了毕业设计的进度和质量,没有达到毕业设计的目标要求。针对当前毕业设计的现状和存在不足,笔者认为应用软件工程学的思想指导毕业设计,对促进学生综合素质与工程实践能力培养具有积极意义。 3用软件工程思想指导学生进行毕业设计 3.1以可行性研究指导选题 可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。毕业设计题目的选择,应立足于解决工程实际问题,可由指导教师提供符合相关专业毕业设计要求的题目,也可以鼓励学生自己到社会、生产企业中寻求研究课题,培养他们自主学习的意识。选题过程以可行性研究为指导,从课题规模大小、难易程度、学生自己的研究方向、爱好、学生的知识层面和能力等多个方面进行考虑,对于选择的题目是否能够解决,确定在规定的时间内完成毕业设计的可行性。指导教师可根据学生选报的题目来指导学生对该选题进行调查研究,明确课题要解决的问题是什么,简要地写出关于问题性质、项目目标和项目规模的书面报告。可行性研究来指导毕业设计的选题,实质上是简化了系统分析和设计的过程,也是在较高层次上以较抽象的方式进行的系统分析和设计的过程,使学生对于课题的设计有个清晰的思路,为及时完成毕业设计提供了可能。 3.2重视软件的需求分析 需求分析的基本任务是准确地回答“系统必须做什么”,即确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求,不仅指明了系统设计时必须要实现的目标,也是软件设计、实现、测试和维护阶段的主要参考标准。用户需求的获取是软件开发中最重要、难度最大的工作,它贯穿于整个软件设计过程,不仅要涉及到软件开发方面的知识、应用领域方面的知识,还涉及到与用户沟通的能力。在进行需求获取和分析时,为了及时、准确地获取,可采用软件工程中比较成熟的方法,例如访谈、实际调查、UML的用例技术等。需求分析在软件系统分析与设计阶段起着桥梁的作用,确定了系统的需求,才能制定出软件设计的框架,保证毕业设计循序渐进、有条不紊地进行,避免后期开发过程的频繁返工,进而按时完成最终的任务。 3.3规范毕业设计过程 软件开发类毕业设计一般是开发一个软件系统,实现一定的功能。“麻雀虽小,五脏俱全”,无论软件规模的大小、功能的多少,都应该严格按照软件工程中软件生命周期每个阶段的步骤完成各项任务。要培养学生把软件工程的概念贯穿于整个毕业设计过程,也就是说,让学生把开发软件的过程看成是盖一栋大楼,修一条公路的实际工程,用工程化的思想指导毕业设计,确定完成课题的各项任务的工作步骤,注重软件类毕业设计的过程,而不是学生所认为的毕业设计就是编程序,代码调试通过即可。通过工程的概念规范毕业设计过程,让学生明白开发一个软件系统一般经过系统分析、系统设计、系统实施三个阶段,必须严格遵循软件生命周期的规律,完成各个阶段的任务,才能最终提高毕业设计的质量。 3.4重视文档的写作 软件工程中的瀑布模型严格地规定了在整个软件生命周期的各个阶段,都要提交相应的文档。文档不仅记录软件开发过程中的大量信息,在软件的开发、维护过程中也起着重要的作用。在指导学生毕业设计时,要求学生遵照软件工程的思想,把文档作为整个设计的指挥棒,记载设计过程的每一阶段完成的目标、任务及技术手段,建立健全毕业设计文档制度,确保毕业设计过程中的文献综述、译文、任务书、开题报告、选题审题表、中期检查表、设计(论文)正文、答辩记录等各环节教学资料档案完善、规范,实现对毕业设计的全程监控。 4结束语 软件工程是软件开发工程化、规范化的具体实施方法,将其应用到毕业设计中,不仅有助于学生对软件开发相关知识的巩固和实践,而且对解决目前软件开发类毕业设计中存在的问题,提高学生毕业设计质量,具有极大的促进作用。 作者:王晓 王长波 单位:湖北医药学院 公共管理学院计算机教研室 软件工程毕业设计论文:软件工程本科毕业设计策略 一、利用多方资源做好毕业设计选题与立题工作 恰当的选题是做好毕业设计的必要条件和前提。近年来,随着信息技术高速发展,国家对高素质软件工程人才需求十分旺盛,并有逐年扩大的趋势。同时各个高校软件工程专业的招生数量也在逐年增加,从目前全国319所设有软件工程专业的学校看,2013年该专业平均招生300人左右。专业招生人数的增多给毕业设计选题带来了带来巨大挑战:一方面软件工程专业的毕业设计选题要求具有一定的应用价值、创新性,同时还要与行业需求相吻合;另一方面要保证选题的唯一性,不仅要避免学生之间的题目重复,还要避免与之前毕业生的题目重复,因为重复的选题会使学生产生投机的心理,导致“打酱油”现象。针对上述问题,黑龙江大学软件学院主要采取了以下几个措施:1.充分利用企业资源,对一部分在企业实习的学生采取“三位一体”的双导师指导模式。即企业项目为载体,学生为主体的模式,校内和校外导师为主导。这部分学生一般是在大三下学期暑假就已经进入企业实习,而我们每年毕业设计选题工作是在十一月末,也就是学生进入企业实习后三到四个月的时间,学生经过企业阶段的培训,对企业的生产过程、企业文化有了一定的了解。此时,学院组织校内外导师和学生共同协商,以企业项目或子项目为学生确定毕业设计选题。2.充分发挥导师的资源优势,学院大部分教师都有自己的科研课题,这些科研课题有些是直接来源于企业的横向课题,还有一些是信息技术领域的应用研究课题,我们鼓励教师从这些课题中提取出一些子项目让学生实践,作为毕业设计的选题。3.充分挖掘学生的专业技术特长和兴趣点并结合学生的择业倾向,确定最能发挥自身优势和潜能的选题。毕业设计的选题不仅要与实际需求相结合,更重要的是应该结合学生自身的技术优势和兴趣。只有学生对选题有兴趣,他们才能尽早地进入状态,发挥自己的创造能力和积极主动意识。所以,选题阶段导师和学生的沟通交流就显得尤为重要,通过沟通导师可以了解学生的能力、兴趣和择业倾向,学生也可以对选题,有进一步的认识,对于不感兴趣的选题学生也可以通过与导师进一步的探讨进行题目的修订。 二、注重环节审查,加强过程监管 虽然“好的开始是成功的一半”,但是如果缺乏中间环节的监管,仍然不能保证好的效果[4]。因此,为保证毕业设计(论文)的质量,我们制定了明确的质量标准、管理条例,并由院长、学术委员会、系主任和教务办主任组成毕业设计(论文)工作委员会,负责毕业设计(论文)工作的组织、评定和监管,同时保证管理条例的严格落实及各个环节工作的正常进行。为健全毕业设计(论文)的监管机制,学院先后规范和完善了《毕业设计(论文)工作管理办法和实施细则》《开题报告》《开题评分标准》《中期报告》《中期检查标准》《毕业设计(论文)撰写规范及模版》《毕业设计(论文)盲审表》《答辩程序和评分标准》等一系列管理办法和文档标准,使毕业设计工作在制度和规范下能顺利有效地进行。每年毕业设计工作之初,我们都要给学生开一个动员会,在会上阐明毕业设计(论文)的重要性,以及毕业设计对他们未来工作的影响,调动他们学习的主动性、积极性和创造性。此外,系主任还要向学生介绍学院毕业设计(论文)管理办法和实施细则,各阶段的工作要求和时间节点,以及各环节检查的内容、需要提交的文档,使学生在毕业设计开始时能做到心中有数。同时,我们也要求指导教师随时解答学生的问题,坚持每周开例会,检查学生的工作完成情况,并提出一些有技术含量和理论深度的问题启发他们思考,激发他们的学习热情,并与学生一起确定后续任务。此外我们组织开题检查、中期检查,对开题检查成绩后30%的学生,不但检查中期报告,还要现场检查程序。对于中期检查不合格的学生,要求限期整改,如果仍然不合格则取消答辩资格。在答辩之前,我们还要对论文进行盲审,盲审不合格的学生不允许答辩,对有异议的论文要提交学术委员会做最后论证。虽然学院对毕业设计(论文)工作在各个环节上的审查都非常严格,但我们鼓励学生之间进行研讨交流,博采众长,相互提高,因为我们的目的不是抓出多少不合格的学生,而是想通过大学阶段最后的综合性实践教学环节训练,培养学生的学习能力、知识的综合运用能力、分析解决问题能力和沟通交流等综合素质。 三、严把答辩关,保证毕业设计质量 答辩是毕业设计(论文)考核阶段的最后环节,这个环节既是学院对学生毕业设计的验收和鉴定,同时也是学生对自己工作的总结和汇报。通过答辩,学生不仅展示了毕业设计工作的效果,更展示了自己的专业知识、技术水平和综合素质。作为教师,每年都要指导多个毕业设计(论文),而学生一生只能经历一次本科毕业设计,而且毕业设计答辩能否顺利通过,直接关系到学生毕业及学位资格的认定。因此对学生来讲,毕业答辩至关重要。这有点像外科医生与患者的关系:医生每年要做很多手术,对他们而言手术已是司空见惯,但对于患者本人,可能一辈子才上一次手术台,而且生命攸关。所以,我们要在毕业设计指导过程中,认真对待每一位学生。同时在毕业答辩中严格把关,保证质量,更要秉承“公开“”公正”“公平”的原则。我们的毕业设计(论文)答辩采用小组面试形式,每组由四位副高职以上教师组成,答辩流程如图1所示。答辩当天向学生公布成绩,毕业设计(论文)总成绩由开题成绩(10%)、中期成绩(10%)、指导教师成绩(10%)、答辩成绩(70%)构成。对于优秀的和不及格的学生,我们还会重新组建答辩组进行二次答辩。这是考虑到答辩组之间认同度的差异而导致评分标准出现偏差,可能有些答辩组打分会偏低,有的组打分会偏高,即各个答辩组评分信度不能达到一致。二次答辩可以有效地消减组间评分差异,从而使申报校优秀论文人选和未通过人选的确定做到公正、公平和有效。针对软件行业特点,我们通过强化实践教学环节,合理利用多方资源拓宽毕业设计(论文)选题途径、健全和完善毕业设计(论文)的监管机制等手段,确保了毕业论文质量的稳步提高。几年来,黑龙江大学软件学院的毕业设计(论文)质量受到校内外专家的一致好评,获校优秀论文比率一直位于学校前列。实践证明,加强毕业设计(论文)质量的监管,不但提高了学生工程实践能力、独立科研能力和创新意识,为学生进入工作岗位打下了良好的基础,进而也提升了学生的就业率。 作者:任美睿 金英 郭龙江 单位:黑龙江大学 软件工程毕业设计论文:论述软件工程的毕业设计运用 1软件工程在毕业设计中的作用 软件工程不仅是计算机科学与技术专业、软件工程专业的一门专业基础核心课程,也是其他相关专业,如信息工程、系统工程、信息与计算机科学、信息管理与信息系统等专业的重要应用技术课程。对于这些专业的学生来说,毕业设计多是以软件开发类项目为主,整个毕业设计就是开发一个软件。为了更好地完成软件开发类毕业设计,提高学生毕业设计的质量,进一步规范毕业设计中的软件开发过程是必需的。软件工程的思想正是用工程化方法构建和维护有效的、实用的和高质量的软件。按照软件工程思想,软件开发的生命周期分为可行性分析、需求分析、总体设计、详细设计、编码实现、软件测试和软件维护几个阶段。在学生的毕业设计中以软件工程的思想为主线,从软件工程的角度去指导学生进行毕业设计,挖掘软件工程在系统开发过程中的价值,解决毕业设计中存在的一些问题,既有助于学生更好地理解软件工程的方法、技术和思想,更有助于提高软件类毕业设计的质量。 2毕业设计中存在的问题 笔者在指导学生软件开发类毕业设计过程中发现,毕业设计存在着选题难、任务重、重视编码、轻过程、项目无法完成等现象。设计过程中没有严格地遵循软件工程的开发方法,没有规范的软件设计过程,项目能否成功主要依赖于个人能力和个人努力,这种不正确的开发方法带来了严重的后果。在项目开发的过程中常常存在以下几个方面问题: 2.1选题的盲目性 选题是毕业设计过程中的一个初始环节,选题恰当是做好毕业设计的前提,但选题不当的情况仍然时有发生。学生没有认识到毕业设计的重要性,纯粹是为了完成学业而做毕业设计,选题没有一个确切的目标,往往是随便选一个题目,造成选题的盲目性,出现了选题陈旧、选题范围狭窄、选题偏大等问题,使学生抄袭、完成不了毕业设计的情况时有发生。 2.2缺少软件的系统分析 软件开发过程的第一个阶段是系统分析,用来确定软件开发要解决的问题是什么?估算完成该项目需要的资源和成本,确定目标系统应该具备哪些功能,主要经历问题的定义、可行性分析和需求分析三个阶段。软件的系统分析确定了用户需求,同时对目标系统提出完整、具体的要求,引导开发者正确地构建系统。因此,对用户需求做出全面、正确的分析,对于最终软件开发类毕业设计的成败起着至关重要的作用。然而在完成毕业设计过程中,学生往往认为代码编写最重要,对软件开发过程中的可行性分析和需求分析阶段不重视,甚至没有系统分析,对整个毕业设计的完成造成了影响。 2.3软件设计过程杂乱无章 软件设计一般都要经历可行性分析、需求分析、总体设计、详细设计、编码和测试阶段。而部分学生在毕业设计开发的过程中,缺乏软件工程设计思想,跨越需求分析、概要设计、详细设计和功能模块设计,直接进行代码的撰写;或者从代码反推出模块设计;甚至在软件开发过程中,一边写程序,一边了解需求,程序完成了需求才确定。这种无序的软件设计过程,导致最终设计的系统杂乱无章、代码的重复率高、潜在?Bug多、系统的可集成性非常差、不能在规定时间内完成设计或者系统无法运行。 2.4开发过程中文档不完备 根据软件工程学的基本原理,软件=程序+文档,可见软件文档是软件开发过程中不可缺少的组成部分。软件文档贯穿于软件开发的各个阶段,是提高软件产品开发效率、规范软件产品开发过程、保证软件产品质量的关键。但在实际毕业设计中,很多同学认为把程序代码编出来了,毕业设计也就完成了,提交的毕业设计论文就是系统代码的复制,即只做出一个可演示可操作的系统,而忽略了软件开发的完整性、系统性。完整的毕业设计不仅包括可操作的系统,还包括在开发系统的过程中所产生的各个文档资料。文档的缺失会降低软件开发的效率、影响整个软件的开发、使用和维护。以上问题的存在,严重影响了毕业设计的进度和质量,没有达到毕业设计的目标要求。针对当前毕业设计的现状和存在不足,笔者认为应用软件工程学的思想指导毕业设计,对促进学生综合素质与工程实践能力培养具有积极意义。 3用软件工程思想指导学生进行毕业设计 3.1以可行性研究指导选题 可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。毕业设计题目的选择,应立足于解决工程实际问题,可由指导教师提供符合相关专业毕业设计要求的题目,也可以鼓励学生自己到社会、生产企业中寻求研究课题,培养他们自主学习的意识。选题过程以可行性研究为指导,从课题规模大小、难易程度、学生自己的研究方向、爱好、学生的知识层面和能力等多个方面进行考虑,对于选择的题目是否能够解决,确定在规定的时间内完成毕业设计的可行性。指导教师可根据学生选报的题目来指导学生对该选题进行调查研究,明确课题要解决的问题是什么,简要地写出关于问题性质、项目目标和项目规模的书面报告。可行性研究来指导毕业设计的选题,实质上是简化了系统分析和设计的过程,也是在较高层次上以较抽象的方式进行的系统分析和设计的过程,使学生对于课题的设计有个清晰的思路,为及时完成毕业设计提供了可能。 3.2重视软件的需求分析 需求分析的基本任务是准确地回答“系统必须做什么”,即确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求,不仅指明了系统设计时必须要实现的目标,也是软件设计、实现、测试和维护阶段的主要参考标准。用户需求的获取是软件开发中最重要、难度最大的工作,它贯穿于整个软件设计过程,不仅要涉及到软件开发方面的知识、应用领域方面的知识,还涉及到与用户沟通的能力。在进行需求获取和分析时,为了及时、准确地获取,可采用软件工程中比较成熟的方法,例如访谈、实际调查、UML的用例技术等。需求分析在软件系统分析与设计阶段起着桥梁的作用,确定了系统的需求,才能制定出软件设计的框架,保证毕业设计循序渐进、有条不紊地进行,避免后期开发过程的频繁返工,进而按时完成最终的任务。 3.3规范毕业设计过程 软件开发类毕业设计一般是开发一个软件系统,实现一定的功能。“麻雀虽小,五脏俱全”,无论软件规模的大小、功能的多少,都应该严格按照软件工程中软件生命周期每个阶段的步骤完成各项任务。要培养学生把软件工程的概念贯穿于整个毕业设计过程,也就是说,让学生把开发软件的过程看成是盖一栋大楼,修一条公路的实际工程,用工程化的思想指导毕业设计,确定完成课题的各项任务的工作步骤,注重软件类毕业设计的过程,而不是学生所认为的毕业设计就是编程序,代码调试通过即可。通过工程的概念规范毕业设计过程,让学生明白开发一个软件系统一般经过系统分析、系统设计、系统实施三个阶段,必须严格遵循软件生命周期的规律,完成各个阶段的任务,才能最终提高毕业设计的质量。 3.4重视文档的写作 软件工程中的瀑布模型严格地规定了在整个软件生命周期的各个阶段,都要提交相应的文档。文档不仅记录软件开发过程中的大量信息,在软件的开发、维护过程中也起着重要的作用。在指导学生毕业设计时,要求学生遵照软件工程的思想,把文档作为整个设计的指挥棒,记载设计过程的每一阶段完成的目标、任务及技术手段,建立健全毕业设计文档制度,确保毕业设计过程中的文献综述、译文、任务书、开题报告、选题审题表、中期检查表、设计(论文)正文、答辩记录等各环节教学资料档案完善、规范,实现对毕业设计的全程监控。 4结束语 软件工程是软件开发工程化、规范化的具体实施方法,将其应用到毕业设计中,不仅有助于学生对软件开发相关知识的巩固和实践,而且对解决目前软件开发类毕业设计中存在的问题,提高学生毕业设计质量,具有极大的促进作用。 作者:王晓王长波单位:湖北医药学院公共管理学院计算机教研室 软件工程毕业设计论文:软件工程思想在应用型高校毕业设计中的应用 摘要:针对地方应用型本科高校计算机软件类毕业设计质量不高的问题,对毕业设计中存在的问题进行分析,并结合软件工程的基础理论,提出利用软件工程思想对计算机软件类毕业设计进行指导,以提高地方应用型普通本科高校毕业设计的质量。 关键词:软件工程;毕业设计;应用 一、引言 毕业设计是本科毕业生在校期间的最后实践和综合实训阶段,是实现本科教育培养目标的重要组成部分,是深化、拓展、综合应用所学理论知识的重要过程;也是综合素质与工程实践能力培养效果的全面检验;是学生毕业及学位资格认定的重要依据;是衡量高等教育质量和办学效益的重要评价,是对专业理论知识和专业技术综合应用能力的强化训练和提升[1]。在毕业设计的过程中,学生利用所学专业理论知识,通过了解社会,分析社会需求,深入实践,完成毕业设计的任务和撰写毕业论文(设计)报告等各个环节的工作。对于地方应用型普通本科高校而言,毕业设计就相当于一般高等学校的毕业论文,但是毕业设计不同于毕业论文,它的组成部分不只是一篇学术论文。应用型高校的毕业设计注重的是“应用性”和“实践性”,学生毕业设计要求学生针对某一课题,综合运用本专业有关课程的理论和技术,自己动手动脑做出解决实际问题的设计。目的是总结、检查学生在校期间的学习成果,是评定毕业成绩的重要依据。同时,通过毕业设计,可培养学生开发项目的基本综合能力,为学生就业能力中的专业能力奠定坚实的基础;培养综合运用已有知识独立解决问题的能力,从而加强学生应用能力的培养,使学生能够学以致用。 二、地方应用型普通高校计算机相关专业学生毕业设计的现状 近几年来,由于学校对毕业设计要求不断提高,学生从选题到设计再到写出毕业设计报告的过程中总存在这样那样的问题,最终有个别同学没有顺利通过毕业设计,没有拿到毕业证和学位证的情况时有发生,并且大多数毕业设计的水平不高,达不到培养学生独立解决问题和提高学生应用能力的目的。因此,如何指导学生做好毕业设计,提高学生毕业设计水平和质量,是地方应用型普通高校面临的一个重要问题。 (一)毕业设计选题现状最近几年,我校计算机相关专业毕业生自进入大四秋季学期开始,在进行毕业实习的同时,也进入了毕业设计准备阶段:毕业设计选题,虽然毕业设计选题过程中,各级领导、指导教师和学生在态度是都很重视,但是在选题时也会存在很多的问题,主要有以下三个方面。1.选题不够准确。部分学生选题未经深思熟虑,所选毕业设计题目要实现的功能太多,在规定时间内不能独立完成,而最终只能实现部分功能,或部分模块。 2.题目相似或重复雷同。学生选题存在浑水摸鱼的思想,在毕业设计选题过程中不是根据自己的兴趣爱好、专业知识学习情况等确定研究选题,而是选择与他人类似或雷同的选题,甚至同一批毕业的许多学生选题一致。比如:“XX管理系统”等,除了可能冠以的系统名称不同之外,其余基本相同。 3.应用价值低。部分学生的选题是当前十分成熟的项目,没有研究的必要;有些选题已经被淘汰,在实际生活和工作中没有多大用途。 (二)毕业设计需求分析阶段现状 通过调查,许多学生选题完成后,没有对自己所做毕业设计选题进行仔细了解、分析,他们认为在毕业设计中最重要的就是编程,其他方面一带而过[2],从而造成毕业设计过程中主题经常进行修改,最终使得整个系统杂乱无章,无法继续进行下去。因此学生在毕业设计的需求分析阶段主要有以下三个方面的问题。 1.选题后未进行实际调查研究,甚至未查找相应的参考文献。 2.需求分析进行得不彻底、不准确,即使选题后查找了参考文献和资料的,也未做充分了解和分析。 3.在需求分析阶段没有写出需求规格说明书或系统分析报告就匆忙进入系统设计阶段,导致随着系统设计的逐步深入,原来确定的需求不能满足毕业设计的需要,正在进行的设计与开始的期望和设想又不相符。 (三)毕业设计系统设计阶段现状 在系统设计阶段,普遍存在以下两个方面问题。 1.由于需求的不明确,在进行系统设计时,修改随意,没有严格按照软件开发的步骤进行。好多学生在进行系统设计时并没有建出相应的功能模型,不管是用例图还是DFD图都没有,而且系统设计过程中功能随意变换,并且各功能模块的层次结构不清晰,使得整个系统的功能模块划分凌乱,不符合软件设计中“高内聚,低耦合”的原则。 2.在软件设计过程中,不先进行概要设计、详细设计和模块设计,没有软件的过程性描述,直接进行编码,存在想到哪里就做到哪里,走到哪儿算哪儿的随意思想[3],当前内容没有做完便开始其他内容,使得整个系统设计杂乱无章。在这样的一种研究状态下,即使完成了设计,效率也非常低下,软件结构混乱,功能实现不完全,降低了软件设计的质量。 (四)毕业设计实现阶段现状 通常把编码和测试统称为实现。在进行软件设计后,就可以根据设计结果来实现,将软件的过程性描述编码,得到计算机可以运行的源代码。在实现阶段主要有以下几方面的问题。 1.编码随意。学生在编码的过程中,不注意编程风格的把握,导致程序的可读性、可理解性、可修改性等较差,在答辨的过程中,要求指出某个功能模块的代码时,经常要花费很多时间才找得到。 2.测试和调试可有可无。大部分学生在毕业设计的软件编码完成以后,从没有想过进行完整的系统测试,或者只对个别功能进行测试或是随意测试,没有按照测试步骤逐步进行;基本没有单元测试和集成测试,一般只是最终随便输入几个数据简单检测一下,如果有错,修改了就算完了;也没有进行回归测试,没有测试计划,没有想过用什么测试技术来检测某一类型的错识,没有相应的测试用例,也没有测试结果分析。由于学生毕业设计都是一人一题,基本上是一个人完成所有步骤,就算有测试,在测试阶段也是自己进行测试,从心理学的角度来说,自己对自己开发的软件进行测试是不可取的。由于前面阶段的文档不完善,也不重视测试过程,不清楚是否实现了系统最初设计的功能,是否达到相应的性能要求,总以为程序做出来后毕业设计就完成了,使得毕业设计经常在更换运行环境或答辩时发生错误和问题,从而使得设计得不到好评甚至无法通过。 (五)毕业设计应用现状 最近几年,我校计算机相关专业毕业设计投入使用数量接近于零。究其原因主要是由于设计不完全,未进行测试和调试,存在的错误和缺陷较多,文档和数据不完整,导致所开发的系统或软件不能方便地转让、变更、修正、扩充和使用,也没有为后期培训、维护留下完备的资料;因此,不能投入到真正的使用过程中,也不能实现系统或软件产品的效益。 三、软件工程思想的应用 软件工程(SoftwareEngineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。软件工程中的软件生命周期是一个软件从软件定义、开发、运行和维护,直到最终被废弃的整个过程[2]。地方应用型普通高校计算机相关专业学生毕业设计基本都是开发一些中、小型应用系统或软件,因此,学生毕业设计也要经历软件生命周期各个阶段,严格遵守软件工程的各个原则,这样有助于解决毕业设计中存在的问题,提高毕业设计的质量。通过对应用型普通本科高校计算机相关专业的学生在进行毕业设计的过程中存在的问题进行分析,在毕业设计的过程中,必须运用软件工程的观点、技术和方法来指导毕业设计,这样既节约了毕业设计的时间和学生的精力,也能做出最优质的毕业设计。 1.选题过程中的应用。毕业设计选题就是软件生命周期的问题定义中的问题提出阶段,选好题目是进行深入研究的基础,也是写出高质量毕业论文的前提。地方应用型普通本科高校计算机相关专业的毕业设计选题必须做到以下几点:(1)必须在对选题做了充分调查、分析,对检索的参考文献、资料有了整体把握的基础上提出。(2)必须符合本专业培养方案规定的培养目标的要求。(3)以选择工程性较强的课题为主,确保有足够的工程性训练。(4)要有明确的设计成果,对于较大型任务的课题要明确阶段性成果。(5)要达到规定的工作量,难易度适中,确保能在规定的时间内完成整个课题工作。(6)要围绕生产生活实际,所选题目一定具有一定的理论意义和实践意义,具有一定的价值。(7)原则上一人一题,对于较大型任务的课题,每个学生必须有独立子课题。结合以上几点,分别从专业基础、现实意义等方面进行全面分析,进行取舍,最终得出选题。 2.开题过程中的应用。在毕业设计的开题过程中,需要明确所选题目的选题依据(包括选择课题的背景、选题研究的理论及实践意义)、选题研究现状(包括目前国内外对本选题的研究情况和有待解决的问题)、研究内容与方法,而这些就是软件工程中需求分析阶段应该做的事情。需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作[3]。因此开题过程中最重要的是进行需求分析,需求分析具有决策性、方向性、策略性的作用,在软件开发的过程中具有举足轻重的地位。需求分析完成的好坏直接影响后续软件开发的质量。开题过程中需要指导学生大量地阅读相关的研究资料,同时根据资料进行分析研究,对当前毕业设计的研究进度做到心中有数,明确毕业设计的具体方向,写出毕业设计的研究内容与方法,得到相应的设计提纲,解决好设计什么,如何设计的问题。因此,应用好软件工程的思想来指导毕业设计的开题是至关重要的。根据学校对学生毕业论文的要求,在计算机相关专业的毕业设计报告中,要求要有数据流图、数据字典等相应内容,而软件工程中的数据流图(DataFlowDia-gram,简称DFD),它是从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程。它是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理[3]。因此,在这个阶段,要指导学生按照DFD图的要求,确定设计的功能,然后根据系统分析结果写出分析报告,就得出毕业论文中系统分析阶段的初始文档。 3.在实践研究环节的应用。根据需求分析(开题阶段)的结果进行软件的概要设计和详细设计,注意在设计过程中要严格按照软件工程对于设计阶段的指导原则来进行设计。将概要设计阶段需求分析得到的DFD转换为软件结构和数据结构,即是根据需求确定软件和数据的总体框架,设计出软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。然后再进行详细设计,设计出每个模块的实现算法、所需的局部数据结构,并且对每个模块写出过程性描述;为每个模块设计出一组测试用例,在进行测试时就以此测试用例来进行测试。详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后将根据这个“蓝图”写出实际的程序代码。因此,指导教师要对学生的设计过程进行监督和指导,防止学生盲目的进行编码。 4.在实现阶段的应用。在编码的过程中,要注意编程风格的把握,编程的风格在很大程度上影响程序的可读性、可测试性和可维护性。在测试阶段,可以进行交叉测试,即学生之间可以两两交叉,相互测试,以更好的达到测试效果,同时也培养了学生的团队意识和合作意识。在测试过程中要注意运用软件工程的测试原则和测试思想,严格按照单元测试集成测试确认测试系统测试验收测试的测试步骤进行,利用白盒测试技术进行单元测试,黑盒测试技术进行其他测试,并且在找出错误并修改后要进行相应的回归测试,确认修改了错误并且没有引入新的错误,这样有利于找到软件中的各类错误,提高软件的质量。因此,在软件的测试过程中,一定要严格按照软件工程中的测试原则来进行,不可随意进行测试,并且要注意测试文档资料的收集整理,要有相应的测试计划和测试报告。对学生的创造性的思维和想法,指导教师要给予支持,积极引导,鼓励学生大胆创新,用应用型人才培养目标来要求学生,保证高质量的毕业设计的完成。 5.在毕业论文(设计)报告方面的应用。对于应用型普通本科高校计算机相关专业的毕业设计而言,不单单是完成了一个系统的设计,还要有相应的设计报告,而设计报告的编写过程中,很多学生存在文字表达能力不强的现象,为了完成报告,就有可能会抄袭,特别是在软件开发的各个阶段文档材料不全的情况下更为严重。因此,在学生进行软件开发的各个环节中,指导教师都应该按照软件工程的观点来进行指导,并要求学生在各个阶段都完成相应的文档。这样在毕业设计报告撰写的过程中,只要将各个阶段的文档进行合并、整理就得到相应的设计报告,并且是一篇重复率不高的高质量的设计报告。6.在毕业设计实际应用方面的应用。因为学生在整个系统或软件过程中均按软件设计规范准备了文档和进行了完整的系统测试,从而为系统或软件的专利申请提供了充分必要的资料,并为毕业设计的实际应用打下良好的基础。 四、结语 计算机相关专业学生的毕业设计在学生的整个大学生活中具有极其重要的地位和作用,根据应用型普通本科高校人才培养的定位,主要是培养学生的独立思考能力、动手能力和应用能力。通过对软件工程思想在计算机相关专业学生毕业设计的过程及方法中的应用研究,逐步实现学生毕业设计的实际成果转化,从而为应用型计算机相关专业人才培养提供相应的借鉴。 作者:龙亚 张仕学 余廷忠 单位:贵州工程应用技术学院 软件工程毕业设计论文:软件工程专业毕业设计论文 1概述 在应用型本科院校中,尤其是软件工程专业,毕业设计作为教学计划的重要组成部分,是实践教学中的最后一个环节,也是对学生在校期间所学知识的一次综合、全面的总结、应用和提高。由于毕业生数量的不断增加和软件行业的迅猛发展,导致就业门槛越来越高,就业压力也越来越大,通过毕业设计过程中的训练,能有效提高学生的工程应用能力,使学生得到一定的实践经验,有利于学生从学校向工作岗位的平稳过度。因此,毕业设计质量的好坏,不仅反映了一所高校的教学质量,也会直接影响到学生的就业竞争力和就业后的职场适应能力。 2存在的问题 1)思想认识上不够重视学生方面:有些学生存在完成任务式的应付心里,避重就轻,能简就简,敷衍了事。有些学生则只重视找工作而轻视毕业设计,不愿在毕业设计上花费太多时间和精力,甚至有些学生还以找工作为由,完全依赖于导师,向导师索要源代码,甚至花钱在网上购买来交差。已经找到工作的学生,更是认为毕业设计做的好与不好对自己没什么影响,对待毕业设计也更加心不在焉。导师方面:大多数指导教师除了要指导学生毕业设计之外,还要承担大量的教学和科研任务,在毕业设计指导工作上能够投入的精力和时间非常有限,致使有些导师对毕业设计的指导工作不太重视,对学生放任自流,不管不问,或者是直接将相关源代码发给学生,以“简化”指导工作。由于思想上的不重视,学生学习态度不认真,导师指导工作不到位,造成毕业设计流于形式,疏于管理,效果较差,使得学生白白浪费了毕业前的一次综合训练机会。因此,如何充分认识毕业设计的重要性,并进行相应的教学改革是软件工程专业毕业设计必须要面对并解决的问题。 2)时间安排上不够科学毕业设计一般安排在第八学期,这期间刚好是学生求职和考研的黄金时间段,由于目前就业形势的日益严峻,学生就业压力越来越大,当求职和考研时间与毕业设计时间发生冲突时,学生都会选择将主要精力投入到求职和考研上,有些还要去外地求职、应聘考试、面试等,毕业设计自然是无暇顾及。而且,学校方面,为了保证就业率,往往对学生毕业设计的质量也是睁一只眼闭一只眼,这又在无形中鼓励了学生消极对待毕业设计的态度,毕业设计质量下降也就成为必然结果。 3)题目设置上不够合理由于毕业设计在高校各类教学活动中是最具综合性和独立性的,相对于常规课程而言,对指导教师要求也就更高,尤其软件工程专业,工程实践性比较强,但每年真正来源于实际工程项目的题目所占的比例较小,很多题目都是虚构出来的,导致有些题目不是理论性太强,就是缺乏具体需求的支撑,使学生很难从毕业设计过程中真正领悟到真实的软件工程方法。而有些指导教师自己都没参与过实际的工程项目,本身就缺乏实践经验,对学生毕业设计的指导只是凭着自己的感觉来进行,缺乏系统性、整体性、科学性和严谨性,学生遇到问题后,难以得到及时的解决,导致抄袭现象时有发生,甚至有些学生直接照搬往届毕业生的设计成果。毕业设计的主要目的在于通过毕业设计的训练来提升学生对所学知识的综合应用能力以及创新能力,从而实现学生从学校到工作岗位的平稳过度。但由于题目设置上的不合理,题量太少,层次不清,导致选题匹配效果差。在选题时,部分能力差的学生所选题目难度太大,造成毕业设计很难完成,而有些能力强的学生所选题目难度过小,达不到能力提升的目的。 4)过程监管上不够到位众所周知,对于软件工程项目而言,过程控制与管理是项目执行的关注点,毕业设计也当如此。虽然学校也会在毕业设计过程中组织对各阶段的工作情况进行检查,但执行检查工作的不一定是专业教师,使得这种检查大多只是对指导老师所填写的各种表格和文档等表面内容进行检查,对毕业设计的过程起不到实际的监督作用,再加之有些学生在校外求职或实习等原因造成指导教师与学生无法定期见面和沟通不畅等问题,使得指导教师难以用软件工程方法对学生进行指导。毕业设计虽然启动较早,但实际上很多学生前期在毕业设计上很少投入时间和精力,只是在答辩前为了完成任务而赶工应付,这样的毕业设计质量自然也就不佳。 5)量化考核上不够严格毕业设计成绩一般由平时成绩+论文成绩+答辩成绩三部分按一定比例构成,平时成绩由指导教师自行把握,论文成绩则由其他有经验的教师进行评阅,答辩成绩由答辩委员会老师按照相关评分标准打分并取平均分,这样虽然基本可以保证成绩的公正性,但成绩构成太简单,未显示地将开题报告、文献翻译、分析和设计过程以及总结等纳入到考核范围,对毕业设计的前期和中期工作没有约束力。在成绩评定时,有些导师要求不严,采取宽容迁就的态度。答辩时,通过门槛较低,造成大部分学生仅以答辩及格为目标,在思想上不重视,答辩准备工作不扎实。同时,学校为了提高学生毕业率,在最终答辩时,对毕业设计的质量要求也有所放松,这也是导致毕业设计质量难以保证的一个重要原因。 3采取的对策 时间安排上,可以提前启动毕业设计工作,将原来的第八学期开始提前到第六学期中后期,此时学生已经学完大部分课程,具有了一定的知识基础,而且学生都在校,可以随时与导师见面,指导教师也有充分的时间对毕业设计项目随时跟进,随时指导。导师资格审查上,对于软件工程专业来说,学生毕业设计的导师,应该由长期从事实际工程实践或者有较好科研成果的“双师型”(双师即“教师”、“工程师”)教师来担任,也可以聘请校外科研单位或企业中水平较高的工程师来担任企业导师,这样不仅可以减轻指导教师短缺的压力,也能促进指导教师队伍多元化模式的形成。题目设置上,要求题量要充分,使得水平层次不同的学生都能选到合适的题目;难度和工作量要适中,且要有一定的创意,使学生通过毕业设计的训练,在综合应用能力和创新能力上都能够得到有效的提高。有课题的指导教师要尽量结合自己的课题来设计题目,没课题的指导教师可以从与学校有合作的企事业单位中获取有实际意义的题目。鼓励学生根据自己的兴趣点和就业取向自拟题目,允许学生到实习企业中根据企业的实际工程需要选题和实施毕业设计,这样既能解决实际问题又可完成毕业设计。过程监管上,首先要在指导教师和学生之间建立有效的沟通联系机制和问题讨论的例会制度,充分发挥指导教师的引导作用,在毕业设计过程中,坚持每周师生沟通一次。学生提出问题,指导教师引导和总结,鼓励学生发挥主观能动性和创造力。同时,学校要成立由领导牵头、具有一定工程实践经验的专业技术人员组成的督导组,对毕业设计过程包括选题、开题、中期检查、答辩和成绩评定等各个环节实施有效的监控和督导,加强管理学生的同时也要加强对指导教师工作质量的检查,确保毕业设计工作能够有序、有效的实施。量化考核上,要对毕业设计从前期的开题、文献查阅,到中期的分析、设计、实现,再到后期的总结等各个阶段的进行量化考核,前一阶段的成绩考核不合格者,不能进行下一阶段工作,必须加以整改,直到整改合格后才能进入下一阶段。对于未能按要求如期完成毕业设计的可以推迟答辩,对于首次答辩不合格的可以进行二次答辩,仍不合格的,可以缓发毕业证。只有建立严格的考核制度,才能对学生有约束力,让学生从思想上重视毕业设计,进而保证毕业设计的质量。 4结束语 软件工程是一个实践性很强的专业,软件工程专业的毕业设计作为大学四年学习的总结,是学生从学校跨入社会前仅有的一次大检验,它不仅检验了学生对所学知识的综合应用能力和学生的综合素质,同时也检验了学校的培养模式和教学质量。毕业设计质量的好坏,不仅关系到软件工程专业的培养目标,也关系到学生的就业率与就业质量。因此,在就业形势日趋严峻的情况下,软件工程专业毕业设计的教学改革也要适应就业市场需求,紧跟行业发展变化,与时俱进。 作者:张华 单位:南阳理工学院 软件工程毕业设计论文:软件工程毕业设计改革实践 一、软件工程专业毕业设计存在的主要问题 (一)毕业设计题目设置与选题方面 题目设置不合理,类别与层次不清晰,选题匹配效果差[2]。学生的毕业设计课题一般都按照指导老师的研究方向和实际工程项目提供,但每年真正来源于工程实践题目比例较少。部分题目理论性强,学生根据所学知识不能很好理解;部分题目开发工具复杂,占用了毕业设计的大部分时间。在选题时可能导致学生想选的题目选不上,能力差的学生所选题目难度大,影响学生的积极性,导致选题效果差,造成毕业设计很难完成。 (二)毕业设计过程监控方面 毕业设计监控工作实施困难,效果较差。软件工程专业毕业设计一般包含选题、开题、中期检查、程序测试、撰写毕业论文、答辩、成绩评定。但对这些环节的监控有时候会形成空白带,毕业设计不在实验室进行,有的学生在实习单位实习,有的学生在外地找工作,老师不能定时与学生见面,老师无法了解学生的具体情况,且学生提交的各阶段文档流于形式,只有指导教师在进行监控,未形成完善的监控体系,导致监控不到位,监控效果较差[3]。 (三)毕业设计论文答辩方面 答辩考核方法单一,答辩仅由学生的讲解和老师的提问两个环节组成,考核准确度低。答辩通过门槛较低,答辩只对学生的毕业设计进行排名,一般排名在最后的学生才可能不及格,不利于提高学生毕业设计积极性,造成大部分同学仅以答辩及格为目标,思想上不重视,答辩准备工作不扎实。再由于软件工程专业特点,毕业设计软件作品评分标准难于量化,考核具有一定难度,也造成答辩效果不好。同时为了提高学生毕业率和就业率,毕业答辩的质量控制有所放松,直接导致了软件工程专业毕业设计质量难以保障。 二、软件工程专业毕业设计的教学改革 针对上述各项实际问题,主要进行的相关工作具体如下: (一)合理设置毕业设计题目,动态选题 依照软件工程专业的以市场需求为导向,培养应用型软件工程人才的培养目标,在毕业设计题目设置环节,紧紧围绕工程实际型、创新项目型、竞赛题目型、科研项目型等类型进行题目设置,以适应市场动态需求。同时着力避免在毕业设计题目中设置虚拟型题目、理论研究型题目、综述型题目、分析设计型题目等。在选题过程中,通过毕业设计管理系统(如图1所示)进行多轮双向动态选择,动态调整题目各项技术参数以保证学生能选择一个适合自己能力且能有利于自己以后工作的题目[4]。这样,在选题之后,每个指导老师就可以根据学生不同能力进行分别指导,使不同能力的学生都能够运用其所学知识解决工程实际问题,都能够通过毕业设计增强工程实践能力、工程设计能力与创新能力。近四学年软件工程专业毕业设计各类题目汇总。 (二)毕业设计过程实行三级监控管理机制 学校成立以主管副校长为组长的毕业设计工作领导小组以加强毕业设计宏观调控,学院成立以教学副院长为组长的毕业设计工作领导小组以加强毕业设计协调与监控工作,软件工程专业成立以专业负责人为组长的毕业设计工作小组落实并实施毕业设计各环节具体工作[2]。具体参见下图2。在实现毕业设计过程管理的三级管理机制的同时,为保障毕业设计工作质量,软件工程专业要求所有指导教师必须具有中级以上技术职称或硕士以上学位且有一定工程实践经验,具有较高教学、科研水平和创新能力,师德良好,工作态度认真负责。在每年的毕业设计指导工作开始前都对指导教师进行资格审查,择优任用,且每位教师指导的学生不超过6人,以保证指导教师对学生的充分指导[5]。 (三)毕业设计过程量化考核 以往软件工程专业毕业设计成绩通常由三部分组成:一是学生的平时表现由指导老师把握;二是学生的毕业论文成绩。由专业其他指导老师进行评阅;三是现场答辩成绩。由所在组的指导教师按照相关评分标准打分并取平均分。这样基本能够保证毕业设计成绩的公正,但是由于只有毕业答辩环节具有约束力即答辩未通过则总成绩不及格,其他环节不具约束力,因此造成毕业设计前期、中期工作流于形式,前期、中期阶段提交的文档趋于应付、质量不高,最终导致毕业论文质量较低[6,7]。为此,软件工程专业经过几年的探索与实践,实施了毕业设计各阶段的软件工程生命周期量化考核法即各个阶段量化考核,且考核成绩不合格者不能进行下阶段毕业设计工作,必须加以整改,整改通过后才能进入下一阶段毕业设计工作。经过几年的实践证明该考核方法切实可行,能够保证毕业设计各个环节的质量,最终提高毕业设计总体质量。 (四)在毕业设计过程中进一步提高学生工程能力与创新能力 辽宁工业大学于2011年制定并实施了大学生创新团队机制,建立了大学生创新项目申报机制引导大学生开展创新活动;引导学生每年都参加校级、省级、国家级软件设计大赛等各类各级比赛[8]。随着学校和学院创新教育活动多年持续深入开展,软件工程专业学生的创新与创业活动取得了显著成果。超过1/4的软件工程专业学生能够独立主持创新性项目,并以该项目为原型申报毕业设计题目[9],同时参加省级、国家级计算机竞赛并获得奖项。通过主持校级及省级创新项目既毕业设计题目,学生工程能力、创新能力得到极大锻炼与提高,本专业毕业生就业率与就业质量明显提高。软件工程专业学生主持参加创新项目既毕业设计题目情况见表3。 三、结束语 软件工程专业毕业设计是一个极具综合性、实践性的重要环节,是对学生大学四年学习后面向社会与企业前的有且仅有的一次大检验,它不仅检验了学生所学知识、能力与综合素质,还检验了软件工程专业的培养目标、培养模式、课程体系、实践体系、创新体系等相关环节[10]。经过几年的探索与实践证明,软件工程专业所做的系列教学改革工作中的毕业设计教学改革工作有利于进一步增强学生的工程实践能力和创新能力,有利于提高软件工程专业毕业设计质量,有利于提高软件工程专业学生就业率与就业质量。虽然软件工程专业毕业设计教学改革工作取得了一定的成绩,社会认可度逐年稳步提高,但如何动态调整教学计划以跟进市场需求变化;如何深入开展大学生创新创业教育活动以进一步增强更多软件工程专业学生的实践能力及创新能力;如何进一步加强专业教师工程实践能力、工程设计能力与工程创新能力以提高毕业设计指导效力;如何提高毕业设计过程管理效率等问题仍然是软件工程专业所面临的严肃课题[11]。因此,软件工程专业的毕业设计教学改革工作也一定会紧跟时代变化,与时俱进。 作者:佟玉军谢文阁王恩喜刘鸿沈姜悦岭工作单位:辽宁工业大学电子与信息工程学院 软件工程毕业设计论文:软件工程思想在应用型高校毕业设计中的应用研究 摘要:针对地方应用型本科高校计算机软件类毕业设计质量不高的问题,对毕业设计中存在的问题进行分析,并结合软件工程的基础理论,提出利用软件工程思想对计算机软件类毕业设计进行指导,以提高地方应用型普通本科高校毕业设计的质量。 关键词:软件工程;毕业设计;应用 一、引言 毕业设计是本科毕业生在校期间的最后实践和综合实训阶段,是实现本科教育培养目标的重要组成部分,是深化、拓展、综合应用所学理论知识的重要过程;也是综合素质与工程实践能力培养效果的全面检验;是学生毕业及学位资格认定的重要依据;是衡量高等教育质量和办学效益的重要评价,是对专业理论知识和专业技术综合应用能力的强化训练和提升[1]。在毕业设计的过程中,学生利用所学专业理论知识,通过了解社会,分析社会需求,深入实践,完成毕业设计的任务和撰写毕业论文(设计)报告等各个环节的工作。对于地方应用型普通本科高校而言,毕业设计就相当于一般高等学校的毕业论文,但是毕业设计不同于毕业论文,它的组成部分不只是一篇学术论文。应用型高校的毕业设计注重的是“应用性”和“实践性”,学生毕业设计要求学生针对某一课题,综合运用本专业有关课程的理论和技术,自己动手动脑做出解决实际问题的设计。目的是总结、检查学生在校期间的学习成果,是评定毕业成绩的重要依据。同时,通过毕业设计,可培养学生开发项目的基本综合能力,为学生就业能力中的专业能力奠定坚实的基础;培养综合运用已有知识独立解决问题的能力,从而加强学生应用能力的培养,使学生能够学以致用。 二、地方应用型普通高校计算机相关专业学生毕业设计的现状 近几年来,由于学校对毕业设计要求不断提高,学生从选题到设计再到写出毕业设计报告的过程中总存在这样那样的问题,最终有个别同学没有顺利通过毕业设计,没有拿到毕业证和学位证的情况时有发生,并且大多数毕业设计的水平不高,达不到培养学生独立解决问题和提高学生应用能力的目的。因此,如何指导学生做好毕业设计,提高学生毕业设计水平和质量,是地方应用型普通高校面临的一个重要问题。 (一)毕业设计选题现状 最近几年,我校计算机相关专业毕业生自进入大四秋季学期开始,在进行毕业实习的同时,也进入了毕业设计准备阶段:毕业设计选题,虽然毕业设计选题过程中,各级领导、指导教师和学生在态度是都很重视,但是在选题时也会存在很多的问题,主要有以下三个方面。 1.选题不够准确。部分学生选题未经深思熟虑,所选毕业设计题目要实现的功能太多,在规定时间内不能独立完成,而最终只能实现部分功能,或部分模块。 2.题目相似或重复雷同。学生选题存在浑水摸鱼的思想,在毕业设计选题过程中不是根据自己的兴趣爱好、专业知识学习情况等确定研究选题,而是选择与他人类似或雷同的选题,甚至同一批毕业的许多学生选题一致。比如:“XX管理系统”等,除了可能冠以的系统名称不同之外,其余基本相同。 3.应用价值低。部分学生的选题是当前十分成熟的项目,没有研究的必要;有些选题已经被淘汰,在实际生活和工作中没有多大用途。 (二)毕业设计需求分析阶段现状 通过调查,许多学生选题完成后,没有对自己所做毕业设计选题进行仔细了解、分析,他们认为在毕业设计中最重要的就是编程,其他方面一带而过[2],从而造成毕业设计过程中主题经常进行修改,最终使得整个系统杂乱无章,无法继续进行下去。因此学生在毕业设计的需求分析阶段主要有以下三个方面的问题。 1.选题后未进行实际调查研究,甚至未查找相应的参考文献。 2.需求分析进行得不彻底、不准确,即使选题后查找了参考文献和资料的,也未做充分了解和分析。 3.在需求分析阶段没有写出需求规格说明书或系统分析报告就匆忙进入系统设计阶段,导致随着系统设计的逐步深入,原来确定的需求不能满足毕业设计的需要,正在进行的设计与开始的期望和设想又不相符。 (三)毕业设计系统设计阶段现状 在系统设计阶段,普遍存在以下两个方面问题。 1.由于需求的不明确,在进行系统设计时,修改随意,没有严格按照软件开发的步骤进行。好多学生在进行系统设计时并没有建出相应的功能模型,不管是用例图还是DFD图都没有,而且系统设计过程中功能随意变换,并且各功能模块的层次结构不清晰,使得整个系统的功能模块划分凌乱,不符合软件设计中“高内聚,低耦合”的原则。 2.在软件设计过程中,不先进行概要设计、详细设计和模块设计,没有软件的过程性描述,直接进行编码,存在想到哪里就做到哪里,走到哪儿算哪儿的随意思想[3],当前内容没有做完便开始其他内容,使得整个系统设计杂乱无章。在这样的一种研究状态下,即使完成了设计,效率也非常低下,软件结构混乱,功能实现不完全,降低了软件设计的质量。 (四)毕业设计实现阶段现状 通常把编码和测试统称为实现。在进行软件设计后,就可以根据设计结果来实现,将软件的过程性描述编码,得到计算机可以运行的源代码。在实现阶段主要有以下几方面的问题。 1.编码随意。学生在编码的过程中,不注意编程风格的把握,导致程序的可读性、可理解性、可修改性等较差,在答辨的过程中,要求指出某个功能模块的代码时,经常要花费很多时间才找得到。 2.测试和调试可有可无。大部分学生在毕业设计的软件编码完成以后,从没有想过进行完整的系统测试,或者只对个别功能进行测试或是随意测试,没有按照测试步骤逐步进行;基本没有单元测试和集成测试,一般只是最终随便输入几个数据简单检测一下,如果有错,修改了就算完了;也没有进行回归测试,没有测试计划,没有想过用什么测试技术来检测某一类型的错识,没有相应的测试用例,也没有测试结果分析。由于学生毕业设计都是一人一题,基本上是一个人完成所有步骤,就算有测试,在测试阶段也是自己进行测试,从心理学的角度来说,自己对自己开发的软件进行测试是不可取的。 由于前面阶段的文档不完善,也不重视测试过程,不清楚是否实现了系统最初设计的功能,是否达到相应的性能要求,总以为程序做出来后毕业设计就完成了,使得毕业设计经常在更换运行环境或答辩时发生错误和问题,从而使得设计得不到好评甚至无法通过。 (五)毕业设计应用现状 最近几年,我校计算机相关专业毕业设计投入使用数量接近于零。究其原因主要是由于设计不完全,未进行测试和调试,存在的错误和缺陷较多,文档和数据不完整,导致所开发的系统或软件不能方便地转让、变更、修正、扩充和使用,也没有为后期培训、维护留下完备的资料;因此,不能投入到真正的使用过程中,也不能实现系统或软件产品的效益。 三、软件工程思想的应用 软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。软件工程中的软件生命周期是一个软件从软件定义、开发、运行和维护,直到最终被废弃的整个过程[2]。地方应用型普通高校计算机相关专业学生毕业设计基本都是开发一些中、小型应用系统或软件,因此,学生毕业设计也要经历软件生命周期各个阶段,严格遵守软件工程的各个原则,这样有助于解决毕业设计中存在的问题,提高毕业设计的质量。通过对应用型普通本科高校计算机相关专业的学生在进行毕业设计的过程中存在的问题进行分析,在毕业设计的过程中,必须运用软件工程的观点、技术和方法来指导毕业设计,这样既节约了毕业设计的时间和学生的精力,也能做出最优质的毕业设计。 1.选题过程中的应用。毕业设计选题就是软件生命周期的问题定义中的问题提出阶段,选好题目是进行深入研究的基础,也是写出高质量毕业论文的前提。地方应用型普通本科高校计算机相关专业的毕业设计选题必须做到以下几点:(1)必须在对选题做了充分调查、分析,对检索的参考文献、资料有了整体把握的基础上提出。(2)必须符合本专业培养方案规定的培养目标的要求。(3)以选择工程性较强的课题为主,确保有足够的工程性训练。(4)要有明确的设计成果,对于较大型任务的课题要明确阶段性成果。(5)要达到规定的工作量,难易度适中,确保能在规定的时间内完成整个课题工作。(6)要围绕生产生活实际,所选题目一定具有一定的理论意义和实践意义,具有一定的价值。(7)原则上一人一题,对于较大型任务的课题,每个学生必须有独立子课题。结合以上几点,分别从专业基础、现实意义等方面进行全面分析,进行取舍,最终得出选题。 2.开题过程中的应用。在毕业设计的开题过程中,需要明确所选题目的选题依据(包括选择课题的背景、选题研究的理论及实践意义)、选题研究现状(包括目前国内外对本选题的研究情况和有待解决的问题)、研究内容与方法,而这些就是软件工程中需求分析阶段应该做的事情。 需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作[3]。因此开题过程中最重要的是进行需求分析,需求分析具有决策性、方向性、策略性的作用,在软件开发的过程中具有举足轻重的地位。需求分析完成的好坏直接影响后续软件开发的质量。开题过程中需要指导学生大量地阅读相关的研究资料,同时根据资料进行分析研究,对当前毕业设计的研究进度做到心中有数,明确毕业设计的具体方向,写出毕业设计的研究内容与方法,得到相应的设计提纲,解决好设计什么,如何设计的问题。因此,应用好软件工程的思想来指导毕业设计的开题是至关重要的。根据学校对学生毕业论文的要求,在计算机相关专业的毕业设计报告中,要求要有数据流图、数据字典等相应内容,而软件工程中的数据流图(Data Flow Diagram,简称DFD),它是从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程。它是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理[3]。因此,在这个阶段,要指导学生按照DFD图的要求,确定设计的功能,然后根据系统分析结果写出分析报告,就得出毕业论文中系统分析阶段的初始文档。 3.在实践研究环节的应用。根据需求分析(开题阶段)的结果进行软件的概要设计和详细设计,注意在设计过程中要严格按照软件工程对于设计阶段的指导原则来进行设计。将概要设计阶段需求分析得到的DFD转换为软件结构和数据结构,即是根据需求确定软件和数据的总体框架,设计出软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。然后再进行详细设计,设计出每个模块的实现算法、所需的局部数据结构,并且对每个模块写出过程性描述;为每个模块设计出一组测试用例,在进行测试时就以此测试用例来进行测试。详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后将根据这个“蓝图”写出实际的程序代码。因此,指导教师要对学生的设计过程进行监督和指导,防止学生盲目的进行编码。 4.在实现阶段的应用。在编码的过程中,要注意编程风格的把握,编程的风格在很大程度上影响程序的可读性、可测试性和可维护性。 在测试阶段,可以进行交叉测试,即学生之间可以两两交叉,相互测试,以更好的达到测试效果,同时也培养了学生的团队意识和合作意识。 在测试过程中要注意运用软件工程的测试原则和测试思想,严格按照单元测试集成测试确认测试系统测试验收测试的测试步骤进行,利用白盒测试技术进行单元测试,黑盒测试技术进行其他测试,并且在找出错误并修改后要进行相应的回归测试,确认修改了错误并且没有引入新的错误,这样有利于找到软件中的各类错误,提高软件的质量。因此,在软件的测试过程中,一定要严格按照软件工程中的测试原则来进行,不可随意进行测试,并且要注意测试文档资料的收集整理,要有相应的测试计划和测试报告。对学生的创造性的思维和想法,指导教师要给予支持,积极引导,鼓励学生大胆创新,用应用型人才培养目标来要求学生,保证高质量的毕业设计的完成。 5.在毕业论文(设计)报告方面的应用。对于应用型普通本科高校计算机相关专业的毕业设计而言,不单单是完成了一个系统的设计,还要有相应的设计报告,而设计报告的编写过程中,很多学生存在文字表达能力不强的现象,为了完成报告,就有可能会抄袭,特别是在软件开发的各个阶段文档材料不全的情况下更为严重。因此,在学生进行软件开发的各个环节中,指导教师都应该按照软件工程的观点来进行指导,并要求学生在各个阶段都完成相应的文档。这样在毕业设计报告撰写的过程中,只要将各个阶段的文档进行合并、整理就得到相应的设计报告,并且是一篇重复率不高的高质量的设计报告。 6.在毕业设计实际应用方面的应用。因为学生在整个系统或软件过程中均按软件设计规范准备了文档和进行了完整的系统测试,从而为系统或软件的专利申请提供了充分必要的资料,并为毕业设计的实际应用打下良好的基础。 四、结语 计算机相关专业学生的毕业设计在学生的整个大学生活中具有极其重要的地位和作用,根据应用型普通本科高校人才培养的定位,主要是培养学生的独立思考能力、动手能力和应用能力。通过对软件工程思想在计算机相关专业学生毕业设计的过程及方法中的应用研究,逐步实现学生毕业设计的实际成果转化,从而为应用型计算机相关专业人才培养提供相应的借鉴。 软件工程毕业设计论文:《软件工程》思想在毕业设计(论文)中的应用 【摘要】主要分析了毕业设计(论文)的现状,介绍了软件生命周期的各个阶段与毕业设计(论文)各阶段的对应关系、软件生命周期各阶段应完成的任务以及在毕业设计(论文)中应注意的问题。 【关键词】软件工程 毕业设计(论文) 实践教学 一、引言 毕业设计(论文)(以下简称毕业设计)是计算机及相关专业教学计划中的一个重要环节,是培养学生对所学基本理论及基本操作技能综合运用的训练过程,是提高学生分析和解决问题能力的重要实践环节,是实现理论与实践相结合的重要途径,是对教育教学质量的全面检查。目前,计算机及相关专业的毕业设计质量正在逐年下降:学生急于找工作或考研,毕业设计得不到应有的重视;需求分析不到位,设计成果不符合实际需求;软件开发流程混乱;缺乏文档写作训练,等等。 针对上述问题,笔者认为,除了应当从管理角度严格进行过程监控外,还应当使学生通过《软件工程》课程的学习,提高毕业设计的质量。 二、软件生命周期与毕业设计过程的对应关系 软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程称为软件的生命周期。软件生命周期可以划分成若干个时期与阶段,它与毕业设计各个环节的对应关系如图1所示。 三、软件生存周期各阶段应完成的任务 1.可行性研究与计划阶段、需求分析阶段 可行性研究与计划阶段主要完成问题的定义、可行性论证以及初步计划的制定;需求分析阶段主要完成需求调查,进行功能、性能与环境约束分析;编制软件需求规格说明、制定软件系统的确认测试准则和用户手册概要。这两个阶段对应于毕业设计的课题论证、选题、调研、查资料,通过对设计题目的深刻理解,完成开题报告的撰写工作。 2.概要设计阶段和详细设计阶段 概要设计阶段主要完成软件系统总体结构的建立、定义功能模块的接口、设计全局数据库和数据结构、规定设计约束、编制概要设计文档等工作;详细设计阶段主要完成模块详细设计及编制模块的详细规格说明工作。包括模块的详细功能、算法、数据结构和模块间的接口信息等设计,拟定模块测试方案;把模块详细设计的结果汇总,形成模块详细规格说明书。这两个阶段对应于毕业设计的系统设计阶段。 3.实现阶段与组装测试阶段 实现阶段主要完成编码及单元测试工作。根据模块详细规格说明书,将详细设计转化为程序代码、对模块程序进行测试,验证模块功能及接口与详细设计文档的一致性,并形成单元测试报告;组装测试阶段主要完成模块程序组装与测试及组装测试报告的编写。 4.确认测试阶段 该阶段主要完成软件系统测试、确认测试文档编制及软件评审工作。根据软件需求规格说明定义的全部功能和性能要求及软件确认测试准则对软件系统进行总测试;向用户提供以确认测试报告为主的有关文档,包括系统操作手册、源程序清单和项目开发总结报告等;由专家、用户、软件开发人员组成的软件评审小组对软件确认报告、测试结果和软件进行评审,并将得到确认的软件产品交付用户使用。这个阶段主要对应于毕业设计(论文)中的论文评审、结题验收及毕业设计的答辨准备阶段。 5.软件运行与维护阶段 主要进入软件的使用阶段,并完成软件的维护工作。它主要对应于毕业设计中的答辩阶段。 四、毕业设计应注意的几个问题 1.摘要 摘要是对文章主要内容的摘录,要求精、短、完整。以几十字至三百字左右为宜。摘要应具有独立性和自明性,从摘要中即应获得必要的信息;摘要中只能使用第三人称;要客观如实地反应原文的内容,要着重反映论文的最新内容和作者特别强调的观点;要求结构严谨、语义确切、表述简明,一般不分段落、不进行自我评价。 2.关键词 关键词主要用于论文检索,它是从论文的题名、摘要和正文中选出的,是对表述论文的中心内容有实质意义的词汇,关键词一般以3~5个为宜。 3.结论 结论写作的内容应主要考虑本文研究结果是什么?研究结果说明了什么?对前人有关的看法作了哪些修正、补充、发展、证实或否定?本文研究的不足之处或遗留未予解决的问题以及对解决这些问题的可能的关键点和方向等。结论应该准确、完整、明确、精练。 4.需求分析 在毕业设计中,学生往往不能对所做题目进行充分的调研,需求不明确,随意想象的成分较多。特别是在数据表的建立上,大部分同学随意设置字段的类型,而字段长度基本上采用默认置。而在实际项目开发中,数据项的设置应主要注意以用户的需求和满足系统要求为准,而不应设计冗余的字段;数据的类型要依据实际需求,当某些字段可以是选择某几种类型之一,应考虑哪一种更有利于本系统或哪种更易于用户操作和维护。 5.详细设计 许多同学把详细设计阶段的任务理解为代码实现,因此,在概要设计之后就着手进行代码的编写而忽略了算法的表达及测试用例的编写环节,由此造成的结果是随意编程,大量的时间浪费在程序的修改和调试上。 6.软件测试 测试做得不够全面,大部分同学只选择了有效的测试用例,而没有进行无效的测试用例的设计,因此所做的软件BUG较多。 7.团队合作 在毕业设计中,应有意识地锻炼学生们的团队协作精神,因此,在布置毕业设计题目时,应尽量选择规模大一点的题目,然后由4~5名同学共同协作,每人完成一个子题目。这样,可以使学生们分析问题和解决问题的能力、沟通和表达能力得到充分锻炼,为今后的工作奠定基础。 软件工程毕业设计论文:软件工程专业本科毕业设计过程管理 摘要:分析软件工程专业本科毕业设计管理中存在的主要问题,针对软件企业对软件工程专业的人才培养要求,提出软件工程专业本科毕业设计过程管理措施,强调通过建立和完善毕业设计的管理制度,加强毕业设计过程的监控;构建完善的毕业设计管理平台,提高本科毕业设计管理水平;改革毕业论文形式,建立毕业设计过程管理评价体系,提高学生工程实践能力。 关键词:软件工程;本科毕业设计;过程管理 软件学院软件工程专业的设立是国家教育部、国家发展计划委员会为满足国家软件产业发展对人才的迫切需求于2001年批准成立的。重庆大学软件学院是国家首批示范性软件学院之一,其人才培养目标是培养“面向应用、遵循标准、适应团队、把握技术、熟知领域、外语优良”的软件工程人才。10年来,软件学院十分重视软件工程专业的工程化教学改革,采取多项政策和措施促进工程型软件实用人才的培养。本科毕业设计是实现高等学校人才培养目标的重要教学环节,是培养学生创新意识和创新能力的重要手段,是理论学习与社会实践相结合的重要体现。因此,对软件工程专业本科毕业设计进行改革,培养具有工程实践能力的软件实用人才具有重要意义。 1 软件企业对软件工程专业培养人才的要求 软件产业的迅速发展对该行业从业人员提出更高要求,不仅要求学生掌握理论知识,还要求学生具备较强的工程实践能力与创新能力。国内计算机相关专业的教学基本上仍使用传统的理工科人才培养模式,注重基础理论知识,缺少对学生工程能力和职业素质的训练,因此培养既有扎实的专业基础知识和较强工程实践能力,又能迅速适应业界环境的高素质创新型软件人才,是软件企业对软件工程专业人才培养的要求。 2 目前本科毕业设计管理中存在的问题 1)毕业设计阶段缺乏全过程的管理与监控。 毕业设计全过程的管理与监控不够规范,缺乏专门的组织机构。毕业设计的一些主要环节疏于检查和监督,因此存在影响毕业设计质量的问题,如选题陈旧、重复率高、与软件产业发展需求不适合等。 教师指导水平有限且精力投入不足,同时没有对教师指导工作的有效绩效考核,使得教师对学生的毕业设计不够重视;某些学生由于有就业压力,便将主要精力放在人才市场和各类招聘会上,没有意识到毕业设计的重要性,最后只能通过拼凑和抄袭完成毕业设计。 2)毕业设计阶段缺乏规范化的指导性文件。 毕业设计工作持续时间长,涉及所有毕业生和教师,如果没有规范化的指导性文件能够让指导教师和学生了解毕业设计工作的意义、目标、计划、流程、论文规范化格式、质量评价标准、成绩考核等具体实施细则,明确自己在该项工作中扮演的角色以及整个毕业设计流程对自身承担工作的质量要求,那么很难提高毕业设计质量。 3)毕业设计文档资料缺乏有效管理。 毕业设计成果是学校的重要知识和信息资源,完善的文档资料管理有助于毕业设计工作的传承和创新。长久以来,毕业设计作品和论文主要采用人工管理。学生答辩后提交资料袋,资料袋中包括毕业设计相关文档和设计作品的刻录光盘,但由于管理人员对毕业设计资料的重视程度不够或人员不够,导致毕业设计资料管理不善,出现查询困难、答辩记录丢失等情况,为以后查阅、成果展示及下届毕业生的论文指导工作带来不便。 3 本科毕业设计管理改革措施 1)成立毕业设计管理小组。 为了加强本科毕业设计工作的组织、管理和监督,软件学院专门成立毕业设计管理小组,小组成员由教学副院长、正副系主任及学生助管组成,负责整个毕业设计过程的管理监督工作,包括从选题、审题、任务书下达到开题、中期检查、答辩、成绩评定、推优的全过程。 2)建立和完善毕业设计的管理制度。 为了提高毕业设计质量,毕业设计管理小组根据软件工程专业特点建立学院的具体工作规范和有效的毕业设计管理模式和监控制度,加强毕业设计制度建设,使得从选题、下达任务书到学生的开题报告,从每周汇报、中期检查到设计文档撰写、论文撰写、论文重复率监测、论文评阅及论文答辩,都有切实可行的实施细则及管理规章制度;构建集中管理与跟踪管理、周报提交、外出请假、抄袭检测、讲座出勤等平时成绩评定标准;完善从平时表现、系统设计实现质量、论文或设计文档质量、答辩水平等多方面衡量的客观、公正的综合成绩评定标准和推优程序。在毕业设计全过程管理中,力求做到有章可循及有据可查。 3)多元化的毕业论文形式。 多元化的毕业论文形式有利于培养大学生创新实践能力。根据软件工程专业特点,软件学院对毕业论文形式进行改革。毕业设计形式包括传统方式和新方式,学生可以选择其中一种方式,具体采用哪种方式则由指导老师负责。 传统方式是指毕业生完成开题报告并翻译一篇相关课题的英文文献,然后对软件系统进行需求分析、设计和编码实现,或者对相应算法进行研究、分析和编码实现,最后完成毕业设计论文。 为了面向软件企业需求,培养学生的软件设计能力,新方式注重提高学生的系统设计文档编写能力。毕业生前期仍然要完成开题报告、英文文献、系统分析设计和编码,最后提交系统设计相关文档。系统设计相关文档由以下文档构成:①项目开发计划;②软件需求说明;③系统设计说明;④数据库设计说明;⑤用户手册;⑥测试分析报告;⑦项目开发总结。根据软件工程学科特点及专业人才培养的要求,结合学校的毕业设计(论文)管理办法和软件设计文档国家标准,软件学院制定了符合专业人才培养目标的设计文档规范。 为提高学生科技论文写作水平和研究报告的演讲能力,软件学院面向软件工程专业所有应届毕业生,在其毕业设计阶段开设8学时的“科技论文写作规范”“研究报告演讲技巧”讲座,强调科技论文写作的规范性和可读性,锻炼学生演讲研究报告的能力。 4)加强毕业设计过程管理和监控。 毕业设计过程管理和监控面向的对象是学生和教师。软件学院毕业学生做毕业设计有不同情况,如有在校外软件公司做毕业设计的,更多的是在校内做毕业设计,因此需要有相应的不同管理模式。为加强学生培养质量和降低指导教师管理难度,软件学院提供集中管理与跟踪管理方式。 集中管理是指学院设置固定机房和机位并安排助教作为管理人员,由指导教师给学生安排机房,由管理人员负责学生的日常考勤,学生需及时向指导老师汇报学习情况,学生若有事必须请假。跟踪管理主要针对在校外进行毕业设计的学生,要求这类学生完成校外毕业设计申请,由管理小组协助指导教师对校外学生进行跟踪,为这些学生提供及时的毕业设计信息服务。这类学生必须每周与学校指导教师联系,以便教师详细了解并掌握学生毕业设计进度。这种具体的制度和规范,对在校内进行毕业设计和赴外进行毕业设计的学生进行了有效监控。 针对指导教师的管理,毕业设计管理小组采用不定期检查和周报提交的方式。毕业设计规范要求每位指导教师每周指导时间不少于2小时,指导教师需要检查学生毕业设计的进度和质量;解答学生提出的问题,进行下一阶段工作部署与指导,保证毕业设计的质量。 不定期检查指毕业设计管理小组根据指导教师在毕业设计系统中登记的指导时间和地点,不定期对教师的指导情况进行检查。周报提交是指学院建立的毕业设计定期报告制度,教师和学生每周均需要将周报提交到系统上,教师主要汇报每周对学生指导情况以及学生毕业设计进度和质量,学生主要汇报每周的毕业设计进度、毕业设计遇到的问题等。毕业设计管理小组每周对周报进行汇总分析并,及时了解毕业设计情况,对学生和教师提出的问题进行统一解答。 5)构建完善的毕业设计管理平台。 充分利用计算机技术,构建完善的毕业设计管理平台,提高毕业设计管理水平,使毕业设计管理更加规范化。软件学院在毕业设计过程中使用的管理系统包括:重庆大学本科毕业设计系统、重庆大学网络教学综合系统、重庆大学软件学院软件工程实践教学平台。 重庆大学本科毕业设计系统用来上传和管理毕业设计相关文档。系统涵盖毕业设计工作的全过程,实现选题提交、课题双向选择、毕业设计相关文档(包括开题报告、外文翻译和毕业论文)的提交与管理、文档模板的上传和下载、毕业答辩的自动分组、指导教师和交叉教师评分、答辩记录和成绩的上传、成绩册的打印、毕业成绩的统计分析等功能。 重庆大学网络教学综合系统。用于毕业设计的过程管理,主要进行信息、周报收集、校外学生实习申请、过程检查情况公告、问卷调查、学生成果提交和查询等。 重庆大学软件学院软件工程实践教学平台是软件人才培养创新平台,提供实践教学成果展示、实践案例资源库与实践教学管理功能。利用该平台可以举办毕业设计优秀作品展,展示软件学院学生的专业学习水平,激发学生的实践热情,对下一届学生起到示范作用。平台实践案例资源库可为学生提供实践学习参考资源,为教师提供实践教学案例素材。 6)建立毕业设计过程管理评价体系。 建立毕业设计过程管理评价体系,要求所有 一学生和指导老师每周都要将周报提交到EOL(重庆大学网络教学综合平台)平台。毕业设计管理小组每周对毕业设计情况进行检查和监督,并将检查情况告知所有指导老师。指导老师每周提交周报次数与毕业设计指导工作量挂钩;学生考勤情况、周报提交情况、平时检查情况会被记入平时成绩,平时成绩不合格将被取消答辩资格。 软件学院强调学生在毕业设计期间一定要进行软件系统设计和实现,毕业答辩包括系统演示、用PPT讲解毕业设计主要工作、答辩教师提问等多环节,答辩老师根据学生工作量、完成质量、论文或设计文档质量、答辩情况进行评分。学生毕业设计的最终成绩由平时成绩、指导教师成绩、交叉评阅成绩和答辩成绩构成,以保证评分的公平性。 7)加强诚信机制建设 为了提高本科毕业设计质量,加强学术道德和学风建设,营造学术诚信氛围,软件学院使用“大学生论文抄袭检测系统”对本科毕业论文进行防抄袭检测。抽检比例为应届毕业论文的50%,抽检名单由毕业论文管理系统随机抽取。另外,各答辩小组推荐的优秀毕业论文为必检对象。 软件学院制定论文抄袭的认定标准(建议文字复制比不超过25%)和处理办法,对有问题的论文,责成指导教师对检测结果予以认定和说明或督促学生修改,取消被认定抄袭论文学生的答辩资格;对各答辩小组推荐的优秀毕业论文进行,不合格的论文取消优秀。 4 结语 培养适应我国软件产业发展的软件工程人才,提高软件工程本科毕业设计质量,毕业设计的改革势在必行。通过2届学生的毕业设计改革证明,建立和完善毕业设计的管理制度,加强毕业设计过程的监控,充分利用毕业设计管理平台,实现多元化的毕业论文形式,建立合理的毕业设计过程管理评价体系,加强诚信机制建设,能极大地促进师生在毕业设计过程中投入热情和精力,提高本科毕业设计管理水平,有效保证毕业设计质量。 软件工程毕业设计论文:软件工程学在毕业设计中应用研究 摘要:毕业设计是一个十分重要的教学环节,是一个系统工程,应使用工程化的方法、步骤统筹安排以取得良好的效果。软件工程学是指导计算机应用专业软件类学生进行毕业设计的重要工具之一。将毕业生设计过程、文档书写与软件工程学紧密结合起来是提高学生毕业设计论文质量的一个重要途径。结合软件工程的基本知识,通过对软件类学生毕业设计过程存在的常见问题的研究,提出了应用软件工程学去指导学生毕业设计的方法。 关键词:软件工程;毕业设计 0引言 毕业设计是高等院校应届类毕业生在毕业前接受课题型任务,在教师指导下进行科学研究或工程实践并取得成果的过程,是高校实现人才培养目标的综合性实践教学环节,是一次理论与实践相结合的的锻炼机会。如何在新形势下改革毕业设计, 提高学生软件类毕业设计的质量,进一步规范毕业设计中的软件开发过程,抓好高校毕业设计这一实践环节,加强对毕业设计过程的管理与监控, 切实提高毕业设计的质量,对于软件类学生在毕业设计中实施合适的软件设计具有重的指导意义。 1毕业设计的必要性 高等职业教育应该是以能力为本位、以学生为主体、以实践为导向的教育。毕业设计是高等教育培养学生综合运用所学理论知识和技能解决实际问题能力的重要环节之一,是衡量毕业生是否达到相应学历层次的重要依据。毕业设计将总结专业基础和专业技术的学习成果,锻炼和开发学生的综合运用能力。 高职院校软件相关专业组织毕业设计应该符合新的人才培养标准,对培养学生的职业技能和素质要具有积极的意义。而对于即将毕业离校的应届毕业生来说,毕业设计无疑是计算机软件各相关专业理论教学、实验、实训等有机结合的途径之一。 通过毕业设计能锻炼学生的能力: (1)实践软件工程的相关原理能力。毕业设计的过程,是一个课题小组从接到开发任务到提交产品和文档的过程,其中涉及到需求分析、概要设计、详细设计、编码、测试、程序打包、编写文档等软件工程具体的各个方面。经过锻炼,学生们对软件工程学思想和方法的理解会大大加深。 (2)解决具体问题能力。在毕业设计的进行过程中,学生一定会遇到平时在课堂的理论学习中碰不到的困难和挑战, 而克服这些困难、解决实际问题的过程就是软件技术和心理素质逐步提高的过程。 (3)团结协作的意识、能力。通过毕业设计这一过程,学生就会产生团结协作的意识和能力。 2软件工程学的基本思想 软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科,包括两方面内容:软件开发技术和软件项目管理。其中,软件开发技术包括软件开发方法学、软件工具和软件工程环境,软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划。 3高职类学生毕业设计现状 毕业设计的主要目的是培养学生综合运用所学的基础理论、基本知识和基本技能,用以分析、解决工程、科研、社会实际问题的能力,使学生得到工程设计方法和科研能力的初步训练。毕业设计中存在的问题主要表现在以下几个方面。 3.1选题的盲目性 只是把毕业设计环节作为大学生活的必经环节, 纯粹是为了完成学业而去做毕业设计, 造成选题的盲目性、有的选题则是陈旧。 3.2可行性分析与需求分析重视程度不够 绝大多数毕业生在确定了毕业设计的题目后,几乎不进行调查研究工作就立即投入到整个系统的设计中, 一旦遇到了与实际不符的地方, 又重新返回, 对已经做好的设计进行修改。最终导致设计的系统杂乱无章, 甚至到了最后只能马马虎虎地仓促交工。 3.3系统开发过程中的文档不够正规,不够完备 完整的设计不仅包括所完成的可操作的系统,一般的操作帮助,还包括在开发系统的过程中所产生的各个文档等一些文字的东西,比如解释清晰、内容全面的数据字典和使用手册也是必不可少的,否则用户会感到使用起来不方便,觉得难于操作。 3.4模糊的评价标准 导致毕业设计质量下降的一个非常重要的原因就是没有建立精确细致的评价体系。 这严重影响了项目的进度和质量,并且使学生没有真正得到必要的锻炼。我们通过对这些问题进行详细深入的分析,提出一个软件过程框架,这个框架主要从需求、测试、集成这3个方面给出工作要点和规范。 4利用软件工程学思想指导学生进行毕业设计 毕业设计本身是个工程,要用工程的方法去处理。从软件工程的角度去指导学生进行毕业设计,在毕业设计过程中,要系统地将所学知识应用于实际问题,按软件工程学思想展开工作。 图1软件生命周期与毕业设计各阶段之间的映射 4.1以可行性研究指导选题目 可行性研究,应该从技术可行性、经济可行性、操作可行性三个方面去研究,在毕业设计题目的选择过程中,应立足于解决实际问题,注重发现问题、分析研究问题和开发创新的能力。选题原则上,可以参考以下几点:①毕业设计的课题应该能使计算机专业所学的理论知识进一步理解并深化,也就是说,毕业设计应尽可能包括多门专业基础课和专业课的综合运用,并且要紧密结合工程实际,以有利于学生的全面训练;②选择难度适中的课题, 保证课题的完成质量;③课题要适合于各个模块独立进行,并便于最后统一调试;④课题规模应大小适合,难易程度适中。 4.2需求分析是关键 需求分析的基本任务是准确地回答“系统必须做什么”, 也就是对目标系统提出完整、准确、清晰、具体的要求。系统分析员可以通过多种形式来获取用户需求,对用户提出的需求进行分析,以此来确定其中要实现系统的功能。对需求划分优先等级,找出核心需求和重要需求,以保证系统构建的正确性。 在进行软件类毕业设计时,为了保证需求获取的准确性和全面性,可以让项目组的所有学生都参与到用户需求的获取的工作中来,发挥集体的能力,并由指导教师进行最终的确认。 4.3规范设计过程 需求分析完成后的下一个阶段就是系统设计,包括概要设计和详细设计。 详细设计阶段的任务就是深入每个函数内部,以伪代码或注释的形式实现整个函数,设计出程序的详细规格说明。 从系统设计开始,学生要按照软件工程的要求,画出DFD图,对输入、输出数据流进行详细的说明,建立符合软件工程规范的数据字典,根据DFD 图设计出模块结构图。 4.4重视文档写作 在毕业设计的过程中,要严格遵照软件文档的思想,记载设计过程的每一阶段完成了哪些设计,下一阶段的任务、目标及技术手段,这样,把文档作为整个设计的指挥棒,使设计有条不紊地进行。 4.5重视测试工作、撰写毕业设计说明书 软件测试工作也是软件开发的重要组成部分。通过实际应用效果和测试数据,毕业设计的成效就可一目了然。 毕业设计说明书的撰写是最后一个阶段,要求学生回顾设计过程,总结劳动成果,这时学生就会对软件开发及必须经历的几个步骤都有更深刻的认识。最后,要求学生对毕业设计进行系统的总结,写出毕业论文。 5加强对学生综合能力的培养 通过实践的练习,不仅能加深对理论的理解,同时也能锻炼运用知识分析问题、解决问题的能力。毕业设计这一实践环节是高等学校培养学生实际能力的主要手段,也是高等教育的重要组成部分。充分、有效地设置软、硬件的毕业设计对学生能力的培养至关重要,可以缩短学校教育与社会流行技术、工具的差距,满足学生毕业后的工作需要。通过毕业设计必须达到培养学生以下方面能力的目的。 5.1工程实践能力 学生能够准确把握选题的逻辑重心和学术思路,能够运用丰富的专业知识进行处理,具有严谨的理论思辨过程,以锻炼毕业生的工程实践能力,使毕业论文具有一定的应用和学术探讨价值。 5.2书写和表达能力 毕业设计论文是毕业设计工作的总结和提高,和做科研开发工作一样,要有严谨求实的科学态度。在毕业设计期间,尽可能多地阅读文献资料是很重要的,毕业设计大多数是技术开发型的,其论文的主体部分应包括:总体设计、模块划分、算法描述、编程模型、数据结构、实现技术、实例测试及性能分析。这些内容根据任务所处的阶段不同,可以有所侧重。 5.3创新能力 提出创新要求后,带领学生认真复习或补学过去没学过、没有学好的课程,并在此基础上结合实际工作中出现的问题孕育出一些新的思路,将毕业设计推上一个新台阶的方式,与为每个人专门分配某一特定的作业来锻炼学生基本技能的方式相比,更能扩展学生的视野,培养创新能力。 5.4协作能力和团队精神 通过集体活动和成员沟通培养成员的团体情感,增强团队的凝聚力。毕业设计将一个学生从入学初到毕业前的软件专业课程的学习内容链接成线,实现了课程的真正衔接,也使学生在毕业前对软件方面所学的知识进行了比较完整的概括与总结,达到了良好的理论联系实际的教学效果。毕业设计弥补了课堂教学的不足,加深了对理论的理解,促使学生深入思考,敢于创新,同时使学生的动手能力、分析和解决问题的能力、书写和表达能力、协作能力等各项能力都得到了培养和提高。 6结束语 软件工程作为软件开发工程化、规范化的具体实施方法,在将其应用到毕业设计中之后,学生在软件设计的文档书写规范化等方面均有了很大的改善与提高。将软件工程应用于毕业设计中不仅仅完成了一门课程从理论到实践的过程,而且将一个学生从入学到毕业前软件专业课程的学习内容链接成线,完成了前导后续课程的真正衔接,也使学生在毕业前对软件方面所学的知识进行了比较完整的概括与总结,因此,软件工程学在计算机专业学生毕业设计中的应用具有重要的现实意义。
计算机网络教育论文:浅谈中职计算机网络教育的现状和发展途径 摘 要:该文根据计算机网络教育的相关理论,首先分析了中职计算机专业的教学特点,指出了中职计算机网络教育中存在的问题,最后阐述了计算机网络教育的发展途径。 关键词:中职计算机 网络教育 发展途径 如今已经全面进入到信息时代,中等职业学校的计算机专业旨在培养新型技术人才以满足我国社会发展的需求。“其教学主旨是在义务教育的基础上为我国培养更加全面的技能型人才和高素质劳动者”[1]然而就目前的教学体系来看,中职计算机专业的计算机网络课程还存在不少的问题。我们应当加以重视并不断加以完善和改进。该文便是围绕这一主题,来对中职计算机网络课程的教学进行研究和探讨,希望有助于教学现状的改善和教学效率的提高。 1 中职计算机专业的教学特点 中职学生的基础知识相对来说比较弱,缺乏扎实的基本功。和普高学生相比,其总体素质要有一定程度的差距。所以说,中职计算机专业的特点主要表现在两方面:一是因材施教;一是突出教学的实用性。中等职业学校的教学姿态一直是以开放互动为主,教学上更加轻理论而重实践。他们的教学理念重心是面向社会,前提和基础是对所学知识的应用性的强调,继而是紧密联系当前社会的发展趋势。主要的培养目的是让学生毕业后能很好地适应和服务于社会,比较强调知识技能的实用价值。关于具体的教学,计算机专业教学强调要让学生先理解教材,再以此为基础和指导,配合教师讲解,使学生的实际操作能力不断得到强化。教师试图做到讲一课、学生就能学会一课。由浅到深、循序渐进地一步步提高学生的整体素质。 2 中职计算机网络教育中存在的问题 总的来说,计算机网络教育中一些问题的存在尤其是一些突出的问题,主要还是由于我国教育体系没有足够地重视中职院校。另外,也有从教人员方面的主观原因,他们对计算机专业乃至学生都采取的可能是漠视的态度。具体看中职计算机网络教育中存在的问题,主要表现为以下几个方面。 2.1 教师的整体素质 中职院校的教师基本上可以说都是在大学毕业后就直接到中职学校参加教学工作,而计算机网络具有很强的专业性,他们对此还欠缺深厚的教学功底。另外,就开展学术交流和课题研究方面来说,中职学校还是很欠缺的。对于教师培训项目的开展更少,这样教师在既没有实践经验又没有专业培训的情况下,只能是自己去摸索着进行我们的教学工作。这样的情况导致了大部分教师的照本宣科,学生往往是学得一头雾水,并不能真正理解教师讲解的内容,教师教起来也非常吃力,最终只得敷衍了事。 2.2 对教材的依赖性 传统的教学模式是完全依赖教科书的,一切教学活动都是一次展开的。中职计算机网络教学在不少时候也是如此地效仿我国古老教学模式。这就使得课堂完全成了形式,大大忽视了学生作为学习主体的地位。最极端的一种形式也就是“教师读,学生听”。这样的教学过程是枯燥乏味的,学生听之昏昏欲睡,其进入中职学校的满怀热情也被消磨殆尽了。最后甚至完全失去了学习的兴趣。这就导致了他们转变了学习目标,他们不再是为学习而读书,却仅仅是为了那张毕业证书。 2.3 计算机网络环境的严重缺乏 由于网络资源太过复杂,学校和教师为了控制学生使用计算机网络,以防其进行一些不合规的活动。所以我国大多数的中职院校就局限了能够提供学生使用的网络平台。限制学生的上网行动多采用小型局域网或是校园网的形式。这就使学生的学习空间受到了严重的限制,这种的一个网络环境下,学生只能被动的使用网络,这就不利于营造适于学生学习和发展的良好的学习环境。 3 中职计算机网络教育的发展途径 3.1 加强师资队伍建设 加强师资队伍建设是振兴中职院校教学的重要内容和前提条件。中职院校教学规划的每一个细节都要积极落实这一任务。必要的教师专项培训是必不可少的,还应当在中职院校间的学术交流探讨方面有所加强。还可以开展一些专项的课题研究,这主要在校内进行,教师彼此之间应当加强沟通和交流、通力合作,以便真正提高中职教师队伍的整体素质。 3.2 开拓教学创新 就以Computernetwork必学课程拓扑结构这一教学内容来看,教师若只是照本宣科地教学,那么关于其中“总线型、环形、星型、树型、网状”[2]等这些概念,学生可能永远无法理解和掌握。笔者在这一课的教学实践并没有采用传统教学模式,我在上课之后便带领学生到实训室。先是为大家做了示范,学生自己在旁边观察体会,接下来就让学生自己去操作,教师从旁引导和指正。这时候再提出问题:什么是星型结构?那么学生就可以用自己的实际行动来回答这个问题。此外,计算机网络知识当中有一些内容具有很强的理论性却没有办法做实验去论证它。例如网络协议种类中的Conneetionlessprotoeol和Conneetiono6entedpotocol。我们可以“在教学过程中一般会将connectin记essprotocol比喻成给朋友寄信”[3]但是寄出信件之后对方有没有收到,你一般是收不到反馈信息的。这是一种类似eonneetionlessprotoeol,的无连接协议。这样的方式比较容易让学生了解地更为直观。对于那些常规计算机语言的具体含义也就不难理解了。这样比较容易激发他们的学习兴趣,不但使得我们的教学工作开展起来更加简单,更重要的学生找到了学习的乐趣。 3.3 加强基础设施建设,强化知识应用效果 基础设施建设是加强中职院校计算机教学的最基础的内容。这也是当前我国中职计算机网络教育面临的和需要解决的第一要务。为了给学生创造更好的学习环境,学校应当建设计算机网络实验室,不断完善其中的设备设施;还可以加强校企合作,以便获得更多的资金赞助。为了实现教育的基础目标,应当尽一切努力去加强基础设施建设,这样才能使中职院校的教学质量得到有效的加强。 4 结语 总而言之,当前的中职计算机网络教育还需要教学质量上下足功夫,不断丰富教学方法,提高教学效率。并以此为基础规划出中职计算机网络教育的美好发展前景,这也将有助于促进我国经济社会的建设和发展。 计算机网络教育论文:浅谈发挥计算机网络教育优势 【摘要】随着多媒体计算机、网络技术的日趋成熟,互联网上的资源日益丰富,宽带校园网的逐步建成和日渐普及,基于互联网。局域网环境下的教育、教学活动开展已具备了较为成熟的条件,中小学在教育实践活动中产生了一种全新的教育形式――网络教育。本文就如何发挥网络教育的优势浅谈几点体会:教师必须转变教育观念,充分利用网络教育优势,确立学生主体地位,加强学生综合能力培养,注重各学科的差合,提高学生信息素养。 【关键词】网络教育 发挥优势 科技迅猛发展,驱动着教育现代化。随着多媒体计算机、网络技术的日趋成熟,互联网上的资源日益丰富,宽带校园网的逐步建成和日渐普及,基于互联网、局域网环境下的教育、教学活动开展已具备了较为成熟的条件。中小学“网络教育”,是学校教育信息化工程推进到一定程度后,在学校教育实践活动中产生的一种全新教育形式。 所谓“网络教育”(E-Learning),就是在线学习或网络化学习。即在教育领域建立互联网平台,学生通过PC机上网,通过网络进行学习的一种全新的学习方式。多媒体网络学习资源、网上学习社区及网络技术平台,汇集了大量数据、资料、教学软件、兴趣讨论组等学习资源,形成一个高度综合集成的资源库。那么如何在教学实践中有效地发挥网络教育的优势,优化课堂结构,改进教学方式和学习方式,不断提高育人质量呢? 1 转变教师教育观念 21世纪对人才的要求不仅仅是对现成知识的记忆和模仿学习;而更重要是学会学习,能在复杂的现实环境中,收集信息,处理信息,独立思考,得出自己的见解。这些基本素质需要在青少年时代的日常教学活动中一点一滴进行培养和积累。但现实许多教师仍然停留在过去传统的教学模式中,以教师讲授为中心,忽视学生信息素养、自主创新能力的培养。这种旧的教学模式,难以提高学生的创新精神和实践能力,更难谈到学生的自主学习。在网络环境下我们应该树立以学生为中心的教学模式,教师在教学活动中,可以采取任务驱动的方法,提出相关的任务,引导学生开展讨论、研究、探索、问题解决,指导学生组成小组合作学习,进行社会调查、实地研究、阅读、网上搜寻和发表学习报告等,把学生从禁锢的学习环境中解放出来,使他们在教学活动中真正成为学习的主人。 2 凸显学生主体地位 现代信息网络的应用,大大促进教师的教学思想的转变和教学过程的优化。教师按照学生的学习过程设计教学过程,按照学生的认识规律设计知识的形成过程,按照学生的心理发展设计能力培养过程,构建以学生发展为宗旨,以教师为主导、学生为主体的新型课堂教学模式。 在信息技术课程的教学中,教师创造任务驱动的网络自主学习新模式,使学生在完成任务的过程中明确概念,掌握获取知识的方法途径,锻炼操作技能,培养学生自主学习、协作学习的习惯和精神。 下面以《计算机安全问题》一节的教学过程为例。 教师利用网络教学系统将设计好的网页框架文件发送到学生机,主要文本为:计算机病毒概念、病毒特点、病毒的危害主要体现在哪些方面、如何防治计算机病毒、知识产权法律法规有哪些、如何看待计算机犯罪。 针对这些问题,教师采取网上布置任务: (1)阅读课本,将问题的答案输入相应的编辑区; (2)上网查找有关病毒发作的实例和相关新闻报道,下载整理,链接到自己建立的超文本“实例报道”上; (3)上网查找有关知识产权法律法规的资料,下载,链接到“知识产权法律法规有哪些”的文本上; 其中任务二和任务三由小组成员合作完成,先分工查找,然后协作整合到一个文件中。教师通过监控系统巡视学生的学习过程,并随时给予遥控指导,解决学生遇到的各种问题。学生利用作业提交功能将完善后的网页交到教师机,教师以网络广播方式展示,与学生共同进行浏览评价。 在教学过程中,学生充分发挥了自主学习的能动性,老师只是组织者、指导者。教学组织形式、学习方式、作业与考评方式均发生深刻变化,从根本上改变了传统教学理念。学生通过网上资料深刻地认识到病毒给社会带来了巨大危害,思想上提高了警惕,了解到知识产权方面的法律法规,增强了法律意识,努力做合格网络公民、提高了教育效果。 3 培养学生综合能力 运用信息技术与其它学科教学的整合,自制、整合多媒体课件辅助教学,并发挥网络优势,鼓励学生探究性学习。 各学科教师充分利用网络拓展课堂容量,增加很多与教材内容有关的动画、影像、图片等素材,创作模拟仿真的教学课件,让学生多个感官并用,增加了教学效果。学生还可以根据自己的特点和进度,自主学习,利用课件中的仿真实验,在教师指导下进行研究性学习。 4 提供网络学习环境 为学生开设“绿色网吧”,提供一个更大的学习空间,不受时间、空间的限制,培养学生的个性特长。虽然网上的素材非常丰富,但是学生的信息素养还不够高,网上琳琅满目的知识学生还缺乏辨别的能力,因此难以对网上知识的质量和正误做出正确的辨析,另外学生从网上获取必需知识的能力也有待提高,如果没有教师指导,学生的学习效率将非常低。因此,在学生网络学习过程中,教师应该给学生提供丰富而直观的学习材料。当然我们也要鼓励学生利用一些搜索引擎,自己查找网上的其它素材,锻炼并提高学生的信息素养。 总之,随着学校教育信息化工程的进一步推进,计算机、网络技术普及程度的全面提高,网络教育理论不断完善,实践经验的不断积累和推广,网络教育一定会像多媒体辅助教育一样迅速得到普及。计算机网络,不仅是一种教育过程中的重要辅助手段,也最终将成为师生获取信息、开展研究、进行创新的一种必备的工具。以网络技术和网络资源飞速发展为代表的信息化、数字化时代的到来,必将使中小学教育不断面临新的挑战,而网络教育的普及,则是我们对这一挑战的必由之路。 计算机网络教育论文:人工智能技术在计算机网络教育中的应用 【摘 要】随着信息技术的发展和网络的广泛普及,人们教育观念正在悄然改变,新型的教育模式正在成形,计算机网络远程教育迅速发展,然而由于计算机网络远程教育发展尚不成熟,实际应用过程中存在诸多问题,而人工智能技术的引入,则使计算机网络教育水平提升到一个全新的发展台阶,并展现了其广阔的发展前景。本文对人工智能技术在计算机网络教育中的应用进行了浅显地探析。 【关键词】计算机 人工智能技术 系统 人工智能(Artificial Intelligence)是研究使计算机模拟人的学习、推理、思考、规划等思维过程和智能行为的学科,用过对计算机实现智能的原理的研究,制造出类似于人脑智能的计算机,使计算机实现更高层次的应用。随着信息技术的发展和网络的广泛普及,人们教育观念正在悄然改变,新型的教育模式正在成形,计算机网络远程教育迅速发展,然而由于计算机网络远程教育发展尚不成熟,实际应用过程中存在诸多问题,而人工智能的引入,则使计算机网络教育水平提升到一个全新的发展台阶,并展现了其广阔的发展前景[1]。 一、人工智能技术概况 人工智能是通过研究人的智慧机理和思维过程,利用计算机体现和模拟人的智能行为。人工智能自其正式提出至今短短几十年内取得飞速的发展,已经成为一种成熟的工具。由于人工智能的效用堪比人的智慧,在进行信息分析处理时可以采取语音识别,实现人机对话,所以其应用范围自其发展以来逐步向诸多领域扩展,如医学、建筑学、地质学、机械等,而其研究课题也不断深入,如专家系统、机器人、自然语言处理系统、博弈等。人工智能具有理解经验并从中学习、辨别模糊或互相矛盾的信息、快速而成功地对新环境做出反应、在解决问题时使用推理进行有效的推导、能处理复杂的情况、应用知识控制环境等诸多能力。人工智能是一个知识信息系统,知识在人工智能中占据重要的地位,计算机的智能只有通过对知识的发现、储存、学习、推理和决策才能展现出来。人工智能主要有以下优势:首先,由于知识储存与计算机系统中,为人们知识传播和复制带来了极大的便利,计算机网络技术的发展,使知识的传播和复制突破时间和空间的限制,为人们带来无限的知识共享。其次,人工智能系统拓展了知识信息获取渠道,同时在某些任务处理的质量和速度上,人工智能展现的能力惊人的能力,远非人类所能及[2]。 二、人工智能技术在计算机网络教育中的应用 (一)智能决策支持系统 智能决策支持系统(IntelligentDecision Support System)是由决策支持系统与人工智能结合的产物,在网络教育领域的应用展现出广阔的发展前景。智能决策支持系统在数字图书馆中的应用,则使得决策目标和进行问题的识别更加明确,帮助决策者建立起完善的决策模型,提供多种备选方案,同时对各种备选方案进行选择、优化、比较、分析,从而使决策者的决策更加准确、有效[3]。 (二)智能教学专家系统 智能教学专家系统ITES(Intelligent Teaching Expert System)是传统CAI系统转向的主要方向,是一种开放式交互教学系统,通过智能教学专家系统利用计算机对专家教授教学思维的模拟,从而为教学提供一个良好的智能环境。一方面,学生可以通过智能专家系统获取知识,另一方面,智能教学专家系统能根据学生的具体实际情况(包括知识储备、能力、学习方式等)进行知识传授,从而使教学效果大大提升。在智能教学专家系统中,智能计算机辅助教学占据重要地位,具有以下智能:首先,自动生成各种问题和练习,并在教学内容理解的基础上,形成问题解决方案,同时还能自动生成和理解自然语言;其次,能根据学生的自身实际情况,对学生的学习内容和教学进度进行合理调整,并对教学内容具有解释咨询的能力;再次,能对学生的错误进行判断,评价学生学习行为,并帮助学生纠正错误,同时使自身教学策略得到完善。 (三)智能导学系统 智能导学系统(Intelligent Induct-learning System)是现代继续安吉网络教育系统的重要组成部分,是实现计算机网络教育项目的保障。通过智能导学系统,能为学生提供一个良好的学习环境,并能快速地获取其所需要的各种资源,从而使学习者获得学习的全方位服务,进而达到学习的成功。智能Agent技术的智能导学系统,可根据学生的具体情况制定符合学生实际的导学策略,并为学生提供个性化、针对性的服务。在这种导学策略下,系统不仅能自动生成各种问题和解决方案,并且能合理规划、调整学习内容和进度,同时能针对信息反馈内容及时修正导学策略,使导学策略更加合理科学[4]。除了上述3各种系统在计算教学中的应用,还有智能仿真技术(Intelligent Simulation Technology)、智能硬件网络IHN(Intelligent Hardware Network)、智能网络组卷系统INES (Intelligent Network Examine System)、智能信息检索引擎 (Intelligence Information Retrieval Engine)等系统在计算机网络教学中应用,这些人工智能在计算机网络教学中的应用,共同推进了计算机网络教学的发展。 三、结语 计算机网络教育中加强对人工智能技术的引入,使我国现代计算机网络教育呈现蓬勃发展的态势,通过多种智能系统的应用,使计算机网络教育的学习环境得到极大的改善,计算机网络教育的时空制约进一步突破,大大延伸了计算机网络教育的服务领域。随着人工智能技术在计算机网络教育中应用的深入研究和发展,未来计算机网络教育的个性化将会更加突出,远程教育也将实现更好的发展。 计算机网络教育论文:浅谈中职计算机网络教育的现状和发展途径 摘 要:结合多年进行中职计算机网络教育的经验,阐述了计算机网络教育的现状,并从几个方面探讨其发展途径。 关键词:中职;计算机;网络教育;现状;途径 随着信息时代的全面推进,中等职业学校计算机专业成为培养我国新型技术人才的重要科目,其教学主旨是在义务教育的基础上为我国培养更加全面的技能型人才和高素质劳动者。然而就当前我国中职计算机专业计算机网络课程教学体系来看,其中存在着不少问题是需要我们重视且有待加大力度去改进与完善的。基于此,笔者结合自身从教经验以及数年来对中职计算机网络课程的教学研讨及研究,力求改善教学现状,提高教学效率。 一、中职计算机专业的教学特点 中职学生的基础知识不够扎实,总体素质与普高学生相比存在着一定程度的差距,因此,因材施教与突出教学的实用性是中职计算机专业的特点。中等职业学校一贯以其开放互动的教学姿态扎根于学生心中,在教学方式上注重实践而轻理论,教学理念以面向社会为重心,在强调所学知识应用的基础上与当前社会的发展趋势紧密相连,以期让学生在毕业后尽快服务社会,体现出所学知识的实用价值。在具体教学方面,计算机专业教学注重让学生理解教材,以教材中的基本理论为引导,结合教师讲解强化学生的实际操作能力,力求做到教授一课即让学生学会一课,由浅到深,循序渐进,逐步增强学生的整体素质。 二、中职计算机网络教育中存在的问题 总体而言,计算机网络教育中的突出问题体现了我国教育体系对中职院校的重视度不足,同时也体现了从教人员对计算机专业以及学生的漠视态度。具体表现在以下几个方面: 1.教师的整体素质 由于中职院校中的教师大多数都是师范毕业后直接参加工作,对于专业性很强的计算机网络来说他们有些还不具备深厚的教学功底,同时,中职学校在学术交流和课题研究方面开展不足,教师培训项目更是严重匮乏,教师相当于是在摸索着开展教学工作。这种教学状况造成大多数教师形成照本宣科的教学模式,学生学得一头雾水,似懂非懂,教师教得焦头烂额,应付了事。 2.对教材的依赖性 在某些时候,中职计算机网络教学又回到了我国古老而又传统的教学模式中,即完全依赖教材开展教学工作。这时,对作为教学主体的学生来说,课堂教学几乎成了一种形式,教师读,学生听,枯燥的教学过程使学生昏昏欲睡,从满怀热情地进入中职学校,到最终对学习完全失去兴趣,他们的学习目标从而也产生了转变,即不是为了学习而来,而是为了那张学习期满后的毕业证。 3.计算机网络环境的严重缺乏 在当前我国大多数的中职院校中,对计算机专科,有些学校为了避免学生利用电脑进行一些不符合教学原则的活动,将能够提供学生使用的网络平台局限化,采用小型局域网和校园网的形式来限制学生。这种做法虽然对学生起到了一定的限制效果,却也严重地限制了学生的学习空间,在这种教学状态下学生只能成为被动的网络使用者,而不能为学生创造良好的学习环境。 三、中职计算机网络教育的发展途径 1.加强师资建设 加强师资建设体现在中职院校教学规划中的每一个细节程序中,如针对教师开展专项培训课程,加强中职院校之间的学术交流探讨以及在校内开展某些专项课题研究,通过教师与教师间的通力合作,切实提高教师的整体素质。 2.开拓教学创新 笔者数年来一直从事于江苏省某中职院校计算机网络课程教学工作,在开拓教学创新之路上历经坎坷,却也有一些个人的体会。如在Computer network必学课程Topological structure(拓扑结构)一课中,如果教师还是照本宣科地依照教材开展教学工作,对于其中“总线型”“环形”“星型”“树型”“网状”等基础知识,学生大概直到走上工作岗位的那天都不清楚这些结构的具体含义。因此,作者在这一课中并没有沿用传统教学模式,而是在开课时将学生带到实训室,首先通过示范,让学生进行观摩体会,随即又让学生亲手体验,教师只在一旁做引导指正工作。如,当向学生提出“什么是星型结构”问题的时候,学生的回答不是似是而非的言语描述,而是采用实际行动来回答问题。另外,对于在计算机网络教学过程中一些理论性强但又无法进行实验论证的课题,如网络协议种类中的Connectionless protocol以及Connection oriented protocol,笔者在教学过程中一般会将Connectionless protocol比喻成给朋友寄信,至于信件寄出后对方能否收到,一般不会反馈信息给你,这种情形,即类似Connectionless protocol,无连接协议。通过这种方式,学生更加直观地了解了一些常规计算机语言的具体含义,从而使他们对学习过程产生浓厚的兴趣,既让教学工作变得简单,又让学生的学习成为一种乐趣。 3.加强基础设施建设,强化知识应用效果 加强中职院校计算机基础设施建设,给学生创造一个良好的学习环境,是我国中职计算机网络教育的头等大事。一切都是为了教育的基础目标出发,尽最大力量加强教育基础设施建设,是加强中职院校教学质量的良好途径。 综上所述,当前中职计算机网络教育要在切实提高教学质量的基础上为中职计算机网络教育规划更好的发展前景,为我国的经济社会建设作出自己的贡献。 (作者单位 江苏省淮安市淮阴区职教中心) 计算机网络教育论文:老年网络教育中计算机网络通讯存在的问题及其解决方案 摘要:网络教育以方便、快捷、覆盖面广,同时是现新型的现代化教学模式越来越被老人年所接受,这也是发展老年人网络教育的时展要求。本文结合老年人网络教育中所遇到的网络问题展开讨论学习。 关键词:老年教育 网络通讯 技术故障 1、计算机网络中遇到的主要问题 网络安全问题在互联网应用日益广泛的今天,也逐渐凸现出来。从Internet的角度看,对网络的威胁主要来自于网络硬件和软件两方面的不安全因素,网络通讯安全问题主要表现在信息泄露、信息篡改、非法使用网络资源、非法信息渗透、假冒等等方面在网络上系统既要开放,又要安全,以至于从技术方面将安全问题是整个互联网技术里较为困难的问题。一方面操作系统本身的问题,各种应用服务存在安全问题。一方面电磁泄露、搭线窃听、非法入侵、线路干扰、意外原因、病毒感染、信息截获等。从国内情况来看,目前我国95%与互联网相联的网络管理中心都遭受过境内外黑客的攻击或侵入,其中银行、金融和证券机构是黑客攻击的重点。目前统计,计算机系统遭受病毒感染和破坏的情况相当严重;电脑黑客活动频繁出现。网络信息系统具有致命的脆弱性、易受攻击性和开放性,这些不但严重侵害了网民的利益,同时制约我国网络通讯的安全发展。 2、改进措施 (1)硬件主机的技术安全:加强对网络连接计算机电脑的安全范围包括:防火墙的系统规则处理、更新增加人们潜意识中的安全意识以及漏洞系统的补丁升级更新等。可以使用Internet信息服务(IIS提供的)身份验证方法来控制对网站和FTP站点的访问。(包括下列信息:网站验证:介绍符合您验证用户网站访问要求的身份验证方法。FTP站点身份验证:介绍符合您验证用户FTP站点访问要求的身份验证方法。)同时也可以在FTP站点或、网站目录或文件级别设置身份验证。身份证验证技术可以减少或者阻止非法用户对本系统的非法操作和恶意系统的侵入。可以要求操作者在提供有效的用户密码、账户、用户名对服务器进行登录和操作。 (2)网页访问及时的处理:适当地控制对Web和FTP内容的访问是对信息的权限的控制,阻止了非授权用户进行的信息的浏览,修改甚至破坏。是安全运行Web服务器的关键。权限是与对象(如文件或文件夹)关联的规则,用于控制哪些帐户可以获得对象的访问权限。使用Windows和IIS中的安全功能,您可以有效地控制用户访问您Web和FTP内容的方式。可以控制多级访问,从整个网站和FTP站点到单独的文件。每个帐户均被授予用户特权和权限。用户特权是指在计算机或网络上执行特定操作的权力。 (3)安装防火墙技术:防火墙可以是一台有访问控制策略的路由器,一台多个网络接口的计算机,服务器等,被配置成保护指定网络,使其免受来自于非信任网络区域的某些协议与服务的影响。我们可以看成防火墙是在可信任网络和不可信任网络之间的一个缓冲。主要的技术有数据包过滤技术、应用网关和服务等;防火墙体系结构在网络中的设置应用。所以一般情况下防火墙都位于网络的边界。第二给个包过滤路由器是它置接受源于堡垒主机的数据,负责管理Dmz和内网之间的访问。例如屏蔽子网型防火墙。它是由两个包过滤路由器和两个堡垒机组成。堡垒主机和服务器放置在一个处于内外网的小型网络中。连接外网的包过滤路由器主要用来防止外网的攻击。并管理外网对dmz的访问。 通过在内部网络中的每台工作站上部署防病毒,防火墙,入侵检测,补丁管理与系统监控,我们可以集中收集内部网络中的威胁,分析面对的风险,灵活适当的调整安全管理策略。这样对外网,内部网是不可见的。同理对于内网外网是不可见的,内网眼通过服务才能访问外网。但这仅仅是不够的,还有另外一个重要的部分,就是从网络结构上的接入层,汇聚层和核心交换层设备上做好访问控制与流量管理。对于入侵者必须通过外部路由器和堡垒主机,内部路由器才能入侵到内网中。到目前可以认为是最安全的。 (4)访问安全技术:使用安全审核技术跟踪用户活动并检测对NTFS目录和文件的未经授权的访问。用户试图访问受到限制的帐户。技术的重点部分是安全策略的订制和授权信息的验证技术。可供审核的活动包括:用户成功和失败的登录。用户试图执行受到限制的命令。 (5)网络安全管理技术:新的安全管理技术的研发应用可以代替人们常规的操作减少可能由于疏忽导致的人为错误;提高管理员的安全意和管理水平,定期的安全综合培训必不可少。 计算机网络系统管理员对网络系统进行网络监控,网络服务器应记录用户对网络资源的方向。运用计算机网络在技术上实现网络系统的安全管理,确保网络系统的安全、可靠地运行,如防火墙和杀毒软件结合进行安全控制非法用户对目录、网络权限控制、实行个人网访问控制、服务器的安全控制、网络监测和锁定控制、防火墙和杀毒软件结合进行安全控制非法用户对目录、文件和其他网络资源的访问。如有非法黑客企图攻击、破坏网络系统、网络服务器应实施锁定控制,自动记录企图攻击网络系统的次数,达到所设定的数值,该账户将自动锁定,确保网络安全。计算机网络系统管理员对网络系统进行网络监控,网络服务器应记录用户对网络资源的方向。对非法的网络访问,服务器应以文字、图形或声音等形式报警来提醒网络管理员。只有在网络上的计算机实施了好的安全技术其中所要面临的危险就会少一些,安全的级别就会高一些。然而即使做好了上述的几种技术网络也不一定是安全的。为了实现安全的网络,我们应进行深入的研究,开发出自己的网络安全产品。以适应我国的需要,推动计算机网络通讯的良性发展。只有不断的更新系统补丁,实施新的安全技术,提高网络管理水平,才能将网络变的“固若金汤”。 计算机网络教育论文:计算机网络教育中的教与学 一、计算机网络教育中的“教” 1. 教学平台的系统化和网络化。网络教育的技术基础是互联网络、综合电信网络、计算机网络和有线电视网作为网络教育信息的支撑平台,保证了网络教育手段的先进性,使得信息资源更加丰富、形象、开放,信息传播更加快捷方便,信息共享成为可能。 2. 教学环境的虚拟性和交互性。网络教学平台突破了传统教育模式的校园课堂教学环境,实现了模拟课堂、虚拟教室、虚拟图书馆、虚拟实验室等,打破了时空局限,建立了虚拟学校,有效地提高了教学规模,降低了教育成本。在网络课程教学活动中,学生和教师之间、学生和学生之间的交流可以采用网络即时通信工具、网络论坛、网络聊天室、电子邮件等方式实现实时或非实时的交互。 3. 教学资源的开放性和共享性。网络教育提供的开放性教学资源,使学生能方便地获得资源,便于教师随时更新和补充教学资源,教师能根据教学需要动态地调整教学资源和教学策略。基于网络的教学资源有利于资源共享,有利于学生自主选择学习的时间、地点和适合自己的学习方法,从而提高学生独立思考的能力。学生处于教学和学习过程的主动地位,能够充分发挥学习的主动性。 4. 教学模式和学习方式的多样性和自主性。网络教学平台所带来的教学环境虚拟性、交互性以及教学资源的多样性、自主性,使得网络教育可以采用多种教学模式,协作式、讨论式、探索式、开放式教学模式与学习方式能更有效地激发学习者求知的主动性和积极性,促进他们的自主学习能力。 二、计算机网络教育中的“学” 网络教学是跨时空、大信息量、交互式和个性化的教学,学生可以根据自己的特点和兴趣,自主地选择学习内容,学习进度和学习方式,不同的教学模式对学生产生不同的效果。网络教育下,教育内容全方位、多层次,学生能按自己的兴趣在网上邀游浩瀚的知识海洋,学生的学习实现了个性化和自主化,学生成了学习的主人,实现了真正的“因材施教”和“教学相长”;网络教育下,工作与学习完全融为一体,每个人都可以在任意时间、任意地点通过网络自由地学习,这是真正意义上的终身教育;网络教育下,学生多感官并用、立体化接受信息,对需要掌握的知识,既易于理解,又便于巩固。网络提供的教育资源远大于以往任何教师、教材乃至图书馆的信息量,拓宽了学生的知识面。网络教育的交互性可以及时、迅速地反馈教学效果,可使多种观念得以沟通和交流,可改变单一的传统的教师满堂灌、学生边听边记的学习方式,学生能借助因特网与老师及其他同学交流,大大提高学生的学习兴趣,使启发式教育贯穿于整个教学过程。学习资源的多样性与共享性使得学习者与传授者随着知识的发展不断变换学习的主体,教师既可将自己的新知识、新技术通过网络教育别人,又可作为一名学生,从网络上学习新知识、新技术,因而网络教育能促使教师提高自身的素质。 三、发挥网络教育教学方法优势开展教学 1. 发挥网络教育教学方法的媒体与显示优势,为学生提供丰富的学习资源。采用网络教学方法,学生不仅能接触书本教材的内容,而且可以广泛的接触教材以外的学习资源。网络媒体的类型很多,主要包括文本、声音、图画、动画和视频等多媒体因素。多媒体表现形式,也使教学内容更加生动,促进学生学习兴趣的提高。所以,网络教育教学方法具有明显的资源优势,不仅内容量丰富,而且学习资源的形式也丰富。资源的另一个表现方式还体现在网络中的每个人都可能成为学生学习的教师,它是一种特定的丰富的人力资源。 2. 发挥网络教育教学方法的媒体模拟与放映优势,促进教学形象生动化。多媒体具有很强的模拟和放映优势,可以把真实的教学内容或真实或模式放映出来,对于突破教学重难点效果突出。网络教学方法很大程度上可以克服传统教学方法中死呆的说教活动和呆板的文字表述,实现向学生展现形象、直观和具体的网络媒体情境。 3. 运用网络教育教学方法的开放优势,充分发挥学生自主学习和协作学习精神。当今社会,是体现学生主体精神、个性发展的教育时代。教育提出了发掘每个学生的学习潜能,开展协作学习的目标和要求。网络教育教学方法和开放式的教学模式,为学生充分发挥主体性,加强协同学习和学习交流提供了条件。思维活跃的当代学生,他们也更乐于探索知识奥迷,对网络也独有情钟,这也迎合了当今学生的特点。学生的学习交流活动,可以通过网络的聊天、论坛和留言板等多种方式来实现。教师是网络教育的组织者,同时也是参与者,要当好指导员,共同参与学习互动交流。 4. 运用网络教育教学方法的灵活优势,克服传统教育教学的时空限制。运用网络教育教学方法,可以提供灵活的学习时间和广泛的学习空间。学生在课余时间利用网络学习,它是传统教育教学方法的一个有益补充,也是网络教育课堂教学的一种延伸。 5. 运用网络教育教学方法的形式多样优势,充分实现分层教学。网络教育教学方法打破了一种固定的模式和学习内容的局限,通过教学设计和网络设计,可以提供多套学习方案和学习方法,从而满足分层次教学的需要。 6. 运用网络教育教学方法的互动优势,促进探究式学习。运用网络教育教学方法,充分创设网络教学情境,在教师的启发诱导下,以学生独立自主学习和合作讨论为前提,以现行教材为基本探究内容,以学生周围世界和生活实际为参照对象,为学生提供充分自由表达、质疑、探究、讨论问题的机会。学生通过个人、小组、集体等多种解难释疑尝试活动,将自己所学知识应用于解决实际问题的一种教学形式,实现探究式学习。相对传统教育,教师运用网络教学平台和教学方法,更容易为学生的学习设置探究的情境,建立探究的氛围。学生自己去获取知识,自己能发现问题、提出问题、分析问题、解决问题。采用网络教学方法,更容易促进探究的开展,把握探究的深度,交流探究的内容。 计算机网络教育论文:计算机网络教育在社区教育中的作用浅析 摘 要 计算机网络教育是开展社区教育的重要途径之一。网络教育平台可以为社区居民提供自主选择的公平性、低成本的教育形式,让社区居民在现代化的学习环境中享受到各种学习资源和学习支持服务。 关键词 计算机网络教育 社区教育 网络平台 党的十七大提出了建立学习型社会,构建终身教育体系,努力提高全民素质的教育发展目标。《国家中长期教育改革和发展规划纲要(2010-2020)》指出“广泛开展城乡社区教育,加快各种学习型组织建设。倡导全民阅读,推动全民学习。到2020年,努力形成人人皆学、处处可学、时时能学的学习型社会”。社区教育作为建立学习型社会,构建终身教育体系的重要形式和提高市民综合素质以及生活质量的重要途径,得到了社会多方面的关注并取得了较快的发展。以计算机和网络为代表的现代信息技术的飞速发展与不断创新,为我们提供了新的交流和获取信息的渠道。计算机网络教育为社区教育提供了一种便捷、低成本、高效率的学习方式,成为开展社区教育的重要途径之一。计算机网络教育能够实现资源利用最大化,它体现了教学对象的自主性。同时计算机网络教育资源具有丰富的表现力,此外,计算机网络教育使教与学双边实现了交互化。传统教育是以教师的“教”为主体,忽视了学生的“学”。而真正的教学强调的是教与学双边的互动与交流。计算机网络教育正是利用了网络信息的交互性,使得教育者与学习者、学习者与学习者之间通过网络实现实时或非实时的双边互动,处于相互启发、相互引导、相互促进的合作关系中,从而有效解决学习者在自主学习过程中产生的盲目性、疑惑性和孤独感。 1 计算机网络教育是开展社区教育的重要途径之一 计算机网络教育具有对象开放、资源开放、形式开放和时空开放的特点,可以拓展社区居民的学习空间,摆脱工作、生活与学习之间的矛盾,教学方式丰富灵活便捷,对社区教育的实践起到了不容忽视的推动作用。 1.1 计算机网络教育是开展社区教育、建设学习化社会的技术基础 社区教育的对象具有广泛性,面向的是全体社区居民。由于社区居民所处空间和学习时间比较分散,若采用传统的教育方式开展社区教育,一方面向基层社区延伸还存在一定局限性,组织难度比较大,另一方面受教育形式和教育内容所限,社区居民多样化的学习需求很难保证。而计算机网络教育利用现代信息网络技术,建立起社区信息化教育平台,为社区居民提供了跨越时空的平等、开放的学习环境,从而实现以社区居民为主体的教学组织形式,使全体居民都能享受到教育公平的权利。 1.2 计算机网络教育促进了终身教育体系的建立 《教育法》第11条明确规定:“国家适应社会主义市场经济和社会发展需要,推动教育改革,促进各级各类教育协调发展,建立和完善终身教育体系”。教育应该贯穿于人的一生,一次性的学校教育已经不能满足人们不断更新知识的需求和社会科学发展的需要。社区信息化教育平台打破各类教育相互隔离的状况,实现各级各类教育的统筹、衔接与沟通,可以为幼儿到老人的全体居民提供普遍教育,使建立终身教育体系和学习化社会的目标最终成为现实。 1.3 计算机网络教育实现了教育信息资源的共享 社区居民的学习需求具有多元性,有可能是各类学历教育,也可能是非学历教育,可能是正规教育,也可能是非正规教育。因此,用于社区教育的教学资源应内容丰富、种类齐全、学科完备,使学习资源不会因为居民所选择的知识类别不同而有较大的差异。利用社区信息化教育平台开展社区教育的重要特点就是其资源的丰富性与共享性,只要具备上网条件,社区居民就可以自主选择学习资源,达到“一人多师,一师多用”,从而实现资源配置合理化、高效化、公平化、大众化。 1.4 计算机网络教育可以进一步提升社区教育的功能 与传统教育相比,计算机网络教育的一个重要优势就在于可以通过网络把教育信息传递到传统教育机构无法覆盖的地方。同时,由于其教学内容、教学方法和学习手段的丰富多样性和社区居民的多元选择性,为社区居民(下转第248页)(上接第243页)带来了全新的学习体验,使得居民的学习需求得到了完全的释放,从而推进了居民学习的自主性与个性化,成为进一步提升社区教育功能的有效途径。 2 利用社区教育网络平台开展社区教育的建议 社区教育网络平台是利用计算机网络开展社区教育的主要载体。通过社区信息教育平台,可以为社区居民提供自主选择的公平性、低成本的教育形式,使得全民教育的功能、价值、效益实现最大程度的优化。 2.1 社区教育网络平台的定位 社区信息教育平台应是采用现代化信息技术和网络技术,利用现代远程教育手段,主动向全体社区居民提供开放的、公益的、个性化的远程网络学习服务平台。通过为社区居民提供丰富的教育培训“菜单”,让广大市民在现代化的学习环境中享受到各种学习资源和学习支持服务,更好地满足大众终身学习、快乐学习、免费学习的需求,从而营造“人人皆学,时时能学,处处可学、样样有学”的人文环境。 2.2 社区教育网络平台的开发原则 (1)分步实施,逐步完善。由于社区教育网络平台具有用户众多、层次复杂的特点,开发建设宜采用分步实施、逐步完善的原则。社区教育网络平台必须是在深入调研与长期考察的基础上进行开发,应该最大程度的体现当地社区居民的学习需求。并在使用过程中逐步扩充和完善系统功能及学习资源,最终建设成为满足广大市民需求的网络学习平台。 (2)性能可靠、安全可控。社区教育网络平台在性能上应能支持多媒体信息传输、统一的信息和系统管理维护功能。同时要具有安全保障机制,建立标准统一、切实可行的网络安全体系,保证系统安全可靠运行。 (3)设计合理、运行高效。基于成熟的系统软硬件环境进行平台建设,以降低系统的建设成本和运行维护成本;合理建立索引、保证数据的一致性和完整性,减少数据冗余,提高数据库的访问效率。 (4)资源丰富、功能完善。社区教育网络平台建设应力求功能体系完整、助学能力强,学习资源内容全面、形式多样。除提供最基本的学习功能以外,还应包括服务、互动、管理等其它功能,以支持社区居民学习活动的有效开展。 (5)界面友好、操作简便。由于社区教育面向不同年龄阶段、不同学历层次、不同知识背景的广大市民,栏目的设置应直观醒目、导航清晰、界面友好、操作简便。 2.3 社区教育网络平台的推广使用 在推广阶段,应首先对社区居民的实际情况做好调研,要充分了解居民家庭计算机配置情况、互联网接入情况和社区教育网络平台运行情况,为平台的普及积累第一手材料。推广过程中,可先选择一些社区作为试点进行试运行,利用网络平台开展一些实用性较强的培训,同时利用社区居民集中性强的特点,加大宣传推广力度,加强社区之间横向联系,逐步提高其了解率、使用率和覆盖率,以发挥社区教育网络平台的最大效能。 计算机网络教育论文:谈软件开发技术在计算机网络教育中的重要性 摘 要:随着计算机技术在教育领域的广泛应用,网络教育应运而生。软件开发技术的日趋完善为网络教育飞速发展提供了技术支持。本文从软件开发技术与网络教育的关系角度阐述了软件开发技术在计算机网络教育中的重要性。 关键词:软件开发技术;网络教育;重要性 自20世纪40年代计算机诞生以来,在教育技能方面历经二十余载的发展,计算机正以强大的势头渗透到社会的各个领域。加之计算机应用的不断深化和普及,也扩大了计算机软件技术的规模。1968年,由此,“软件工程”一词在北约召开的一次研讨会上被众多学者提上了议案。目前,计算机网络教育不断发展,软件工程的发展也变得尤为重要。 一、计算机软件开发技术的发展过程 软件开发属于一项复杂的系统化的工作,软件开发技术也经历了相当的长的历史发展阶段。在软件开发初期,对软件开发的认识上,人们普遍的都比较重视“软件危机”的解决措施。20世纪60年代末,由K.W.Dijkstra提出了结构化程序设计技术大受世人的追捧,很多人认为这项技术可以有效解决“软件危机”,但面对大型软件系统,系统的重要性、稳定性、扩充性却难以实现,20世纪70年代产生的面向对象方法,使软件工程领域重获生机。对象管理组织OMG于1997年11月将UML正式作为基于面向对象技术的标准建模语言,自此在以后的发展历程中不断推陈出新,造就了目前UML作为可视化建模语言事实上的工业标准备受社会各界青睐。 随着SOA体系的出现和CASE技术频繁的更新,软件工程技术的不断持续更新和不断完善,在软件开发技术上及时出现了呈现出的飞跃,同时也深刻的影响着现代网络教育。 二、现代网络教育的特点 从教育培训层次来看,计算机技术也逐步用于教育界,因此网络教育应运而生,与传统教育模式相比,网络教育也在教育形式方面影弥补了传统教育模式的不足。时代是不断发展的,网络技术更新换代的周期短,因此“优势”也就意味着新技术的结束。网络教育有其自身的发展特点,具体表现在:加快了教育模式的改革,使传统面授教育逐步过渡为网络远程教育;充分利用教育资源,从使用传统的书本等纸介课件资料,逐步转变为采用网络资料、学习软件和多媒体课件等教学资源,从而做到了学习资源的充分利用;为学习者提供了自由的空间,使其按照自身条件制定学习计划,合理安排学习时间,自主地学习知识;有助于自动化的进行教学管理活动,为教学活动的开展提供了广阔的网络平台,从而使工作效率以及管理水平大大提高。 三、软件开发技术对网络教育的意义 网络教育的快速发展必须以计算机软件系统的开发为前提,软件开发技术也为网络教育的深入开展提供了操作平台和技术支持。 1.教育资源库的开发为网络教育提供了资源储备 当前,国内有很多种开发教育资源库的模型,获取资源的途径因此多样化,而且这在很大程度上充实了资源库,为网络教育储备了足够的文献资源。传统的数据库管理模式限制了数据的重复利用,而且数据之间的关联性较差,这就不可避免的造成了人工浪费。而网络教育资源库的开发,则使各类教育资源和资源数据库之间建立了紧密的联系,使资源管理的效率大大提升,这一点是我国原有的管理工作无法企及的。 2.教育管理软件的开发丰富了网络教育的管理手段 先进的技术是人类文明发展的推动力,同时也丰富了教育资源,而教育管理软件的开发也为教育管理工作提供了多种可选途径,极大的促进了教育理念的更新,也使教育管理模式的软件化和信息化,获取信息的准确率和管理效率也因此大大提升,同时,也有利于管理信息的备份及存储带。此外,教育管理软件也被广泛用于教学实践活动,在一定程度上提升了学校管理人员和教师的现代教育技术水平。 3.学科分类软件的开发使网络教育更具针对性 我们一般都根据学科分类来划分教学内容,它可以按照学科类别将教学内容归类,从而细化知识点,拓宽知识面。所以,对于网络教育来讲,准确划分学科类别,积极开发并推广应用软件技术,有助于细化学科内容,从而有目的地开展网络教育。同时,学科分类软件的广泛应用也有助于整合课业资源,促使管理者根据学科知识特点,科学的划分知识层次和学科类别,以突出自身教学活动的特色。学科分类软件的应用,也为学生提供了良好的知识氛围,教育者可通过这一网络平台加强与学生之间的交流,以确保教学活动顺利开展。在这一过程的循环中,也能够较好地体现教师的教学风格,突显教学个性。这也是网络教育的重要特点。 4.辅助教学软件的开发使网络教育更具灵活性 软件辅助教学是现代教育理论倡导的新型教育模式。辅助教学软件的大量开发和实践应用使网络教育具有更加灵活的教育方式,突显网络教育的时代特色。同时教学软件的广泛应用有利于促进学生学习自主性的培养,丰富的教学软件资源使学生根据自身特点制定学习计划、选择学习内容、把握学习时长、掌控学习进度,极大地调动了学生自主学习的积极性;有利于学生自学能力的培养,培养了学生自我教育、自我管理、自我服务的良好意识,提高了有效获取知识的能力。 四、结束语 网络教育开创了现代教育开放、交互、自主、和谐的教育新模式,适应了现代教育的发展变革,软件开发技术为网络教育的发展提供了有效技术依据。实践证明,随着计算机应用的普及和网络技术的广泛应用,依托于计算机网络的软件开发技术将以多形式、多层次、多角度发展态势,在教育领域乃至人类学习、工作、生活等全方位面临更加广阔的发展未来。 计算机网络教育论文:谈计算机网络环境下的网络教育 摘 要:网络的发展,创造出全新的网络教学的尝试。要根据网络教学不同的教学模式,发挥教师的主导作用和激发学生自主学习使学生成为认识的主体,就要了解网上教学的教学模式、特点、问题以及应对办法,在教学工作中不断实践与创新。 关键词:计算机;网络教育;模式 一、网络教育的内容 网络教学是一种新生事物,是一个开放的概念,它是在先进理念指导下,运用网络资源促进学生积极自主学习,加强师生交流,加强师生协作研讨,优化教学过程。网络教学是通过网络进行的教学法,在这一过程中,网络作为知识与信息的载体而存在,网络教学这一概念,可以视为教学的工具或媒体。网络教学是开发和利用网络知识与信息资源的过程,在此意义上,网络成为学习资源,网络教学则是对此资源的开发、利用与再生。 二、网络教育的特点 多媒体计算机网络是集多媒体的长处于网络的优点于一身,是当今科学技术发展的结晶。它有以下几个特点: 1.教学资源的共享性 学生通过网络可以共享资源,其中包括硬件的共享和软件的共享,核心是软件的共享。网上资源丰富多彩、图文并茂、形声兼备,学习者在链接或教师指导下,可轻松自如地在知识海洋中冲浪。取之不尽、用之不竭的信息资源,神奇的网络环境,对教育个性化的形成,对学生创造思维的培养,对实现教学过程要素关系的转变,对促进从应试教育向素质教育转轨都将产生重大而深远的影响。 2.多媒体信息的综合性 多媒体网络融超媒体和超文本于一体,集图形、图像、图表、声音、文字于一体,有利于学生多种感官参与认知,促进学生对知识的建构;有利于激发学生兴趣,培养学生的情感;有利于素质教育的实施。 3.教学方式的先进性 传统教学的中心是教师的教,网络教学的中心是学生的学。在网络教学中,教学不再是满堂灌,学生的学习应在教师的指导下根据自己的需要进行学习。教师的作用主要是组织、调控,并以作业的评价方式帮助学生。至于学生的步调、方式、进度、内容的数量和难易程度等则由学生本人决定。 4.教学目标的多样性 学生的个体差异,如学生的学习方法、学习风格、学习的起点等决定了教学目标的多样性。在传统的“教学流水线”上难以实现因材施教,网络教学克服了这些弊端。多媒体网络教学,带来了许多真实的情境,将生活中五光十色的现象带进了课堂,学生的学习效率将得到提高,有利于学生的身心健康。 三、网络教学的基本结构和模式 1.集体教学模式 教师先用常规教学中的讲授法创设情景,激发学生兴趣,同时将概念,原理等讲述清楚,提供途径,让学生在计算机上收集信息,或者分组讨论,协作交流,同时交待任务情景,利用计算机出现迅速和反馈及时的功能,提供化难释疑、强化应用的目的。放手让学生自行练习,学生出现疑难问题,可用电子举手,教师通过监视管理功能,选定有疑难问题的部份学生,组成一个特定的学习小组,学生可以利用语音对话,BBS论坛,留言簿、公告栏等展开讨论,进行经验交流,教师同时也可接受学生的咨询,指导学生解疑,提供帮助。 2.自主学习模式 该模式是利用光盘服务器功能,使每个学生机都能享受CD-ROM,充分利用硬件资源,使有限设备发挥最大的效率,学生利用光盘自主选择学习内容的难易、进度、并随时与教师、同学进行交互,一张光盘相当于一个小型图书馆,学生可以共享光盘上的大量信息,在网络环境中进行个别学习,使课堂教学逐步摆脱传统的教师中心模式,学生由传统的被迫学习变为主动学习。 四、对网络教育一些问题的思考 1.课堂容量问题 网络知识如果局限于现有教材,它就变成了电子课本;网络知识如果完全脱离了教材,它又变成了无源之水。网络只是教学的工具和手段,在运用其进行教学时,一定要仔细分析,深入研究教材,明确教学目标,突出主题、重点、难点,不能为了学生的兴趣而随心所欲。所以,只有合理利用网络资源,掌握好课堂容量,才能提高教学效率。 2.自主学习问题 为有利于学生自主学习,教师减少了讲授时间,增加学生自主阅读时间,在阅读过程中不加干涉。在网络教学中教师充当一个什么样的角色呢?学生随意阅读该不该干涉呢?这会影响学生自主学习吗?这是网络教学实践中感到困惑的又一个问题。经过理论研究和实践论证,网络教学中,学生是学习的主体,学习的过程是学习者头脑里自行完成意义建构的过程。教师在网络教学过程中应从传统的知识传授者的角色转变成为学生意义建构的促进者、帮助者和资源组织者的角色。网络教学中如果是良性的交流互动,教师的作用非但不会削弱,反而会增强。 3.对设备、对技术的要求偏高 网络教学对设备有一定的要求,学校没有一定数量的计算机、没有互联网接入就无法开展网络教学活动。然而,我们对网络教学认识的发展必然经历一个过程,新的学习方式也不是一朝一夕就可以实现变革的,这种变化是一个量变到质变的过程。我们可以用很低廉的成本建设一个小型的实践环境开始网络教学的探索。 计算机网络教育论文:计算机网络教育管理论文 【摘要】计算机网络的全球化为网络教育的存在与发展提供了基础,它的优势使它在各国迅速发展壮大起来,正确认识计算机网络教育中的“教”与“学”的关系对提高现代教育质量无疑是很有必要的。文章主要就计算机网络教育中的“教”与“学”进行了探讨。 网络教育是在现代技术条件支持下与教育活动相融合实现的一种新型的教育模式。由于网络技术本身具有开放性、交互性、资源共享性等特性,使网络教育也具有了与传统学校教育不同的新特点。本文旨在从计算机网络教育的“教”与“学”的特点中,寻找网络教育中“教”与“学”的合适关系,使网络教育最大可能地发挥其优势。 一、计算机网络教育中的“教” (一)教学系统的开放性 传统学校教育中由于教学条件、环境的限制,教学对象一般是有限的,且处于一种相对封闭并呈阶梯级发展的状态。相对封闭是指教学任务为特定年龄的教学对象设计,无论学习者差异如何,一般都只能按照规定进入相应的年级学习,在规定的时间内完成学习任务。呈阶梯级发展指学习者必须按基础、中等、高等教育这样的顺序发展,不可逾越。网络教育系统下的教学对象却是开放的,无论性别、健康状况、国籍或贫富贵贱,只要拥有了一台联网的计算机,学习者就可以自由选择感兴趣的任何专业、任何课程进行学习。 (二)教学资源的丰富性 传统教育中的教学资源可以分别用文字、图形、音频、视频、动画等多种媒体以线性排列方式来呈现,这种呈现方式系统性强,但灵活性不够。网络教育中的学习资源可以将文字、图形、音频、视频、动画等多种媒体按照教学需要集结在一起,以超文本方式呈现,兼具系统性和灵活性。这种基于Web的教育教学,可以创设一种符合建构主义理念的全新教育情境,让学习者更好地进行意义建构。 数据库作为资源库拥有丰富的信息资源是网络的最大魅力之一,而且网络信息资源是多样的,它涉及社会生活的各个领域、各个学科。网络信息资源具有共享性,没有人是信息的主宰者,对于网络终端的每一个学习者而言,他们在信息面前都是平等的。拥有可共享的大量信息资源,这正是网络能在教育中有强劲发展势头的主要原因之一。 (三)教学过程的交互性 互联网络作为一种强大的交互型媒体,有多种技术可以支持网上交流,交流方式也是丰富多样的,师生之间、学生与学生之间可以根据需要选择不同的交互方式。如BBS、FAQ、聊天室以及电子邮件邮件等。 这里所说的交互有两种含义。一是学习者与计算机系统之间的交互,二是学习者和指导者之间的交互。在网上远距离学习模式下,一般来讲,学习者和指导者在上机时间上是相对自由的,对学习者在学习过程中遇到的大多数问题,计算机系统可以自动检索后援引知识库的资料自动回答。有些计算机系统不能回答的问题,则由指导者通过电子邮件或其他形式将答疑内容发送给学习者。这种特殊的交互形式,使得学习者和指导者之间可以不受时间和地域的约束。当然,特殊情况下,学习者和指导者也可以在约定的时间同时上网,进行网上实时交流。 二、计算机网络教育中的“学” (一)学习模式的多样性 网络学习因不受地域和时间的限制,所以学习模式比较自由。它不但可以进行个别化学习,也可以根据学习者的不同情况分组学习,在网上进行小组讨论。若配以大屏幕显示设备,还可以实现团体教学,使教学活动的组织更加灵活方便,教学效果也可大大提高。 (二)学习的自主性 网络教学学习过程中,学生自主学习知识,自我更新知识,通过自己思考、探索来独立完成学习。网络教学并不是简单的“人—机”交互,而是复杂的“人—机—人”交互。这类交互的最大特点是强调互动,特别是学生的主动参与。这种自主性具体表现在:学生确定自已的目标后,能够借助网上优势,自主选择学习内容、学习方法和支配学习时间,从中知道了如何学习才能达到目标,也知道了如何评价自己的学习效率、测试自己的学习效果和成绩。学生根据自己的知识基础和学习进度进行个别化学习,不必跟随教师统一的教学内容和进度,而且网上没有固定的学习模式,自己不主动学习,就不可能得到新知识,这样学生就由原来被动的、不得不学转变为主动的、要求去学。从而能提高学生的领会和保持水平,有利于学生学习能力的培养。而且,学生在学习中自己制定学习计划,自己掌握学习进程,自己负责学习效果,这有助于养成学生在教育活动、工作职责和个人行为等方面的良好习惯。除此之外,学生自己选择学习时间,自己确定学习地点,学习时间、空间的灵活性大,特别适应于成年的、在职的学生的主客观条件。 网络教学是教师指导下的自学,它以促进学生的自主性学习为目标。因此,网络教学对培养学生的认知能力和创新素质有很大的潜力。但是在网络教学中,学生要对(下转第93页)(上接第91页)自己的学习负最大的责任,能积极主动地利用网络工具自主学习,这对学生的自律能力和自学能力都提出了较高的要求。缺乏自律能力,在眼花缭乱的网络面前,当最初的新鲜感消失之后,学 生就可能离开学习的轨道,忘记了学习的目标。缺乏自学能力,学生就不知道该学什么和怎样学,对年纪越小的学生这个问题越大。我们在网络远程教学中,发现这个问题带有一定的普遍性。这就存在着一个理论上的矛盾:促进自主学习是网络教学的目标,而自学能力和自律能力又是网络教学的前提,二者是相悖的。这一矛盾需要我们在理论上加以深入地探讨。 三、“教”重于“学” (一)弥补网络教育之不足需要加强“教”的研究 近年来,网络教育巨大优越性使它发展迅速。然而,网络教育同传统教育相比,也存在了很多的先天不足:1.网络教育缺乏有效的课堂管理机制;2.网络教育提供的“标准化”课件,不仅缺乏个性,而且也缺乏教学中的直接交流,因而难以真正实现因材施教;3.网络教育缺乏师生之间的感情交流,不利于学生完善人格的塑造;4.网络教育所实现的时空分离,导致对学生的社会性激励减弱,进而影响了学生学习积极性。网络教育存在的上述不足,是站在传统教育角度审视网络教育而存在的必然结果。在传统教育中,教学过程可看作是师生之间发生的“人—人”系统。而在网络教育中,教学过程则由“人—人”系统转变成为“人—机—人”系统。于是,“机”就成为师生之间的桥梁或中介。正因为教学过程发生了这样的变化,才有了人们对网络教育的上述批判。其实,网络教育与传统教育之间,并不存在着无法逾越的鸿沟。毕竟,教学过程本质上既是一个特殊的认识过程,又是一个促进学生发展的过程。就这一点而言,无论是传统教育还是网络教育,都应该完成这一双重任务,只不过在完成这一双重任务的具体教学模式上存在着差异。既然如此,我们若要弥补网络教育之不足,一个可行的办法就是加强网络教育中“教”的研究,加强网络教育中的“教”如何才能够完成认识与发展这一双重任务。 (二)学生自主性学习能力差需要加强网络教育中“教”的研究 网络教育是以学生自我管理能力为依托的教育模式,其教学质量的高低并不完全在于学校和教师,而在很大程度上取决于学生的自主性学习。自主性学习是指学生在学习过程中的积极主动的主体状态,包括自主性学习习惯,自主性学习兴趣,自主性学习思维,自主性学习方法,自主性学习能力等要素。网络教育要求学生具备良好的自主学习能力,而网络教育招收的学生则仍然是缺乏自主学习能力的学生,这是我国网络教育发展中的现实问题。 在我国传统教育中,学生的学习紧紧围绕着教师,师生之间存在着非常紧密的依赖关系,学生的自学能力普遍较差。这种惯性虽然随着学生走上社会而有弱化的趋势,但在整体教育背景下,学生对教师依赖的这种心理定势,始终顽强地存在着。在这种情况下,网络教育中的学生也不可能都在短时间内迅速摆脱对教师依赖,具备较强的自主学习能力。于是,我们的现实网络教育就陷入一种两难境地:既不能无视网络教育注重学生自主性学习的特点,又不能忽视网络教育中学生自主性学习能力较弱的现实。摆脱这种两难境地的唯一办法就是采取一些过渡性措施,使学生逐步养成自主性学习习惯。为此,就要求我们加强网络教育中“教”的研究。 计算机网络教育论文:略谈计算机网络教育的发展和实施途径 摘要:该文通过对计算机网络教育的发展的分析,提出了网络教育在计算机教育中的重要性和进行网络教育的重要性,同时也探讨如何通过一些途径更好地激发应用网络来教育的兴趣和动机,从而更好发挥网络辅助教学的作用。 关键词:计算机网络教育;辅助教学 1 计算机教育网络的发展及现状 近几年,随着网络建设的发展,通过网上进行授课已经成为可能。网络教育由于其以学生为中心,不受时间、地点、次数及进度的限制,能自由利用网上资源等优点,成为教育方式的发展新趋势、教育也随之进入网络教育的新时代。 目前,很多学校都加入了网络教育建设的行列,从网上不少的主页都可以找到远程教育的内容。但是这些教学网页普遍存在相同的一些缺点,反映出网络教育建设的速度及总体水平仍停留在起步阶段,这需要我们加强建设的力度,从而真正形成一个能胜任网络教育工作的系统。通常,网络教育容易出现如下缺点: 1)网上教育的科目较少、内容也较简单且易流于呆板不生动,缺乏吸引力; 2)网络课程内容更新的速度慢,学生不能及时获取所需知识; 3)网络课程形式单一,网上通常都是些以文本方式出现的课件,缺少形象的视频课件; 4)网络上的课件一般内容较分散、缺乏系统性。 分析这些现象,我们不难发现,要想建立一个有序、有强大生命力的网络教育系统,需要一个有组织的、专门的机构来负责这项专题建设,系统地为以后的发展做好规划。 2 网络教育的实施途径 2.1 对校园网进行维护与保障 许多学校设有电教中心,但是传统的电教管理模式不能适应校园网的管理需要。因此,校园网的管理应该成立专门信息中心或网络中心来负责,需要2~3名专职技术人员及若干计算机教师来保障校园网的畅通。校园网的管理应具备网管人员、网络及电教设备、相关资料等的常规管理,同时也包括电子邮件、网络资源及网络计费等的管理。只有形成一个完整的体系,才能分工明确,更好地对校园网进行维护和保障。 而这里主要有两方面的问题,一个是日常的维护,另一个则是技术人员的选择。由于校园网功能的不断拓展,维护工作变得十分庞杂,网站上所有栏目都需要定期更新,这些工作并不是一两名计算机教师就可以完成的,那么我们在条件允许的情况下可以由计算机教师带队的课外活动小组来完成部分维护工作。这样既锻炼了学生的动手能力又适当减轻了计算机教师的工作,有利于校园网能长期发挥作用。至于技术人员的选择,学校可以选择比较优秀的计算机教师参加专业的培训,将其训练成为网络中心的技术骨干,对学校网络进行维护。 2.2 充分发挥“教”与“学”在计算机网络教育中的应用 2.2.1 计算机教学中的“教” 计算机教学中的“教”主要表现在教学系统的开放性、教学资源的丰富性以及教学过程的相互性这三方面。 传统学校教育中由于教学条件、环境的限制,教学对象一般是有限的,且处于一种相对封闭并呈阶梯级发展的状态。这种阶梯级发展要求学习者必须按基础、中等、高等教育这样的顺序发展.不可逾越。对于有兴趣有能力学习相比较课堂上所学知识水平要高一些的知识,这样的阶梯教育往往对其是一种阻碍。而网络教育系统下的教学对象却是开放的,学习者可自由选择想学习的知识。 网络中拥有丰富的信息资源,涉及社会生活的各个领域、各个学科,更是学生拓展视野的一个很好平台。 对于传统的课堂教育,地点和时间相对比较固定。学生在学习中遇到的问题,可能无法得到及时的解决,网络教育则解决了这个问题。师生之间、学生与学生之间可以选择如BBS、QQ、聊天室以及电子邮件等平台来讨论以至于解决学习上所遇到的问题。这种网上远距离学习模式,一般来讲,学习者和指导者在上机时间上是相对自由的,对学习者在学习过程中遇到的大多数问题,计算机系统可以自动检索后援引知识库的资料自动回答。有些计算机系统不能回答的问题.则由指导者通过电子邮件或其他形式将答疑内容发送给学习者。这种特殊的交互形式.使得学习者和指导者之间可以不受时间和地域的约束。 2.2.2 计算机网络教育中的“学” 计算机网络教育中的“学”主要体现在学习模式的多样性和学习的自主性这两方面。所谓学习模式的多样性指的是网络学习因不受地域和时间的限制,所以学习模式比较自由。不但可以进行个别化学习.也可以根据学习者的不同情况分组学习,在网上进行小组讨论。甚至还可以实现团体教学,使教学活动的组织更加灵活方便,教学效果也可大大提高。而学习模式的自主性主要体现在网络教学学习过程中,学生自主学习知识. 自我更新知识,通自己思考、探索来独立完成学习。网络教学并不是简单的“人一机”交互,而是复杂的“人机一人”交互。这类交互的最大特点是强调互动,特别是学生的主动参与。这种自主性具体现在:学生确定自已的目标后.能够借助网上优势。自主选择学习内容、学习方法和支配学时间,从中知道了如何学习才能达到目标,也知道了如何评价自己的学习效率、测试自己的学习效果和成绩。学生根据自己的知识基础和学习进度进行个别化学习,不必跟随教师统一的教学内容和进度。 3 结束语 综上所述,要想真正使计算机网络教育发挥其最大的作用。除了要有完善的计算机教育体系外,也要寻找网络教育中“教”与“学”的合适关系。通过传统教育与计算机网络教育相辅相成,真正地提高教学质量与效率。 计算机网络教育论文:计算机网络教育中软件开发技术的应用分析 云南工业技师学院 【摘要】文章主要以软件开发技术为核心,了解软件开发技术的内涵与发展,并提出软件技术在计算机网络教育中的重要性,并思考软件开发技术应用在计算机网络教育中的具体方式,以供参考。 【关键词】软件开发技术;计算机网络教育;应用 计算机技术的普及与发展,使得社会步入计算机信息化时代,影响着人们的生活方式、娱乐方式和工作方式,进而推进各个领域的深入改革。同时,以网络为核心的信息传媒技术逐渐发展壮大,促进了不同功能软件平台的开发与利用,打破了软件设计传统思想,实现了软件开发与技术的改革创新。对此,为了适应计算机信息时代的发展,相关从业人员要不断挖掘与利用软件开发潜力和应用价值,发挥出软件对人们生活与社会生产的便利性功能,进而促进计算机网络教育的发展。在这样的背景下,探究软件开发技术在计算机网络教育中的重要性具有一定的现实意义。 一、计算机软件开发技术的核心 计算机软件在实际应用中包括电脑操作系统软件与应用软件,其中电脑操作系统软件由系统管理、操作以及维护等方面构成,而应用软件则是以用户操作为核心,借助用户界面操作实施命令,以满足用户的使用需求。应用软件相比于操作系统软件而言,更为专业化和高级化,其中包括各种高级语言、操作系统以及用户体验。软件开发中结合用户要求设计软件系统或部分软件的过程,作为一项包括需求捕捉、需求分析、设计、实现和测试的系统工程,一般借助某种程序设计语言实现其使用功能。软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。软件工程通过软件开发优势,将各种软件开发技术应用到计算机网络教育中,促进计算机网络教育的发展。 二、软件开发技术对计算机网络教育的重要性 (一)技术支持 从本质而言,软件开发技术属于计算机网络教育的关键技术,其先进的科技能力能够缓解传统计算机网络教育中的教学冲突,实现计算机网络教育的双向交流,进而实现计算机网络教育质量和教育水平的提升。在软件开发技术实际应用的过程中,远程教育和网络辅助教学作为教学重点,其实现功能直接关系到计算机网络教育的发展水平。而软件开发技术为计算机网络教育提供较为稳定的教育平台与教育模式,在软件学习平台上实现教育者与被教育者之间的面对面交流,实现远程控制。同时,教育双方可以在软件学习平台上进行交流与互动,还原网络教育的真实性,进而提高计算机网络教育综合质量水平。总之,软件开发技术的应用与开发,为计算机网络教育功能与教学效果提供了重要的技术支持。 (二)安全保障 从系统运行的角度上来看,软件开发技术利用先进安全协议保证计算机网络教育运行中的安全性。在网络技术迅速发展和应用的过程中,网络环境也逐渐复杂多变,同时由于网络自身开放性的特点,使得网络安全凸显出重要的地位。在计算机网络教育开展的过程中,为了保证教育过程中的稳定性与安全性,要依靠软件开发技术进行安全维护与实时监督,对外来网络访问进行限制,实现外网隔离,进而提高计算机网络教育的安全程度,使得计算机网络教育活动顺利开展。 (三)模式创新 软件开发技术的引进与应用,对计算机网络教育带来了一定的机遇和挑战。为了适应新形势,计算机网络教育必须进行改革与创新,更新教育理念、教育内容以及教育方式,融合信息时代特征,进而提高计算机网络教育的综合质量水平。从另一个角度来看,计算机网络教育作为一种信息化教育形式,在科学技术日新月异的今天,需要不断融入新的元素,升级和换代,以保持最新技术应用,保证计算机网络教育的有效性。对此,软件开发技术为计算机网络教育提供更大的发展可能性,促进计算机网络教育管理手段与教学模式的创新与改革。 三、基于软件开发技术下的计算网络教育系统设计 (一)系统模型 第一,中心服务器。中心服务器主要由管理系统、资源数据库以及教学平台等构成。管理系统主要控制系统日常管理与教学资源管理,肩负着系统性能与系统安全的重任,在服务器发生故障后,中心服务器可以实现功能转移,以保证教学环境的流畅性。资源数据管理主要负责系统教学资源与操作信号资源的管理,对这些数据进行添加、删除、修改等操作,保证服务器数据和数据库数据的统一性,以便对各个子系统中数据进行日常更新,满足教育平台的运行需求和使用功能。教学平台以教学双方相互交流为主,实现在线或者离线交流,管理传输文件,以提高服务性。第二,服务器。服务器以路由型为主,负责处理用户请求,管理通信渠道,进而保C信息通信的顺畅性。第三,S/A/C通信模型。借助ORB实现通信功能,作为平台核心通信技术,在实际运行的过程中,可以自由屏蔽底层平台,帮助系统管理人员发现问题并及时解决系统应用问题,节省分布式计算机平台的创建环节。 (二)学生客户端 在科学技术快速发展的背景下,学生客户端的功能越来越强大,目前在我国广泛使用的学生客户端主要包括以下几个方面。第一,学生注册。学生在第一次使用该系统时,必须先进行注册,根据客户端界面的提示填写学生的个人信息,只有注册成功的学生才能成为本客户端系统的合法用户。第二,使用登录。学生使用本系统前要先进行登录,根据注册时填写的密码和账户名进行登录,经系统验证以后,才能进入该系统。第三,选课。学生可以根据浏览器选择自己需要学习的课程,由系统提供各门课程说明学习要求和具体教学计划,供学生根据自己的情况进行选择,学生选定相应课程,并登记到教学管理库中备案。 (三)资源库 第一,教学资源库。在开展教学活动的过程中,教学目标、教材以及学生层次的不同,使得教学内容必须具备一定的差异性和层次性,教学课件数量逐渐增加。这些教学课件中含有大量的重复性内容。为了节省工作时间,教师可以将这些重复性内容在资源库中检索出来,使其形成各个独立构件进行保存,有效提高教学课件的制作效率。在实际应用的过程中,以积件库、课件库中的两个储存系统作为硬件,结合教学内容特点进行分类管理,提高资源利用效率。第二,题库。在软件开发技术的应用下,可以创建资源题库,其中主要涉及练习题库、考试题库以及考试样题库,利用网络资源进行题库补充,进而发挥出题库的作用与功能。第三,教学管理数据库。教学信息管理借助数据库来实现信息储存管理功能,其中主要涉及课程信息、教师信息、学生信息、学生选课信息、学生学习信息以及考试信息等内容。 四、软件开发技术在计算机网络教育中的实际应用 (一)开放式网络教学 软件开发技术为计算机网络教育的开放性提供了有利的教学平台,即远程教育系统,用户只需要通过电脑或者手机登录到教育平台上,便可快速同步观看讲师的音视频及培训资料,并可以与讲师进行实时的互动交流。这种远程教育系统具备以下几种实用功能。第一,高清流畅的音视频。1080P高清视频图像以及多种音频技术,实现唇音同步的高保真语音传输,让学习者有一种身临其境的感受,为学生创造真实的学习环境与教学氛围。第二,数据快速共享。无论是office文档、PDF、应用程序,还是音视频文件,均可同步展示给所有与会者观看,先进的矢量技术确保数据文档共享的清晰度。第三,多种互动交流方式。多种身份权限,群聊、私聊、举手发言等多种聊天方式,文字、语音、视频多种沟通渠道让互动交流丰富多彩。第四,电话邀请参会。采用PSTN通信技术,电信级的通话质量,会议组织者一键邀请,接通电话就能参会,随时随地开会或学习。 (二)交互式网络教学 基于软件开发技术下的计算机网络教育,在实际应用中具备极强的交互性,借助网络教学平台,引入软件开发技术即可实现教育者与学习者的面对面交流,强调操作交互平台与信息交互平台的应用,以交互式信息为工具,实现教学过程中的沟通和交流,形成交互式网络教学。从本质而言,这种方式拓展了计算机网络教育的使用功能,由储存视频转化为face to face教学视频,使得学习者和教育者相融合,投身于实际教学活动中,实现交互具体化和层次化,提高学习者在计算机网络教学中的实际体验。 (三)多样式网络教学 核心科技的应用是推动网络教育产业发展的有效手段,使其具有多样化的教育形式,为各个教学手段和教学模式的应用创造基本条件,进而实现计算机网络教育的多样式。在实际应用的过程中,借助软件开发技术支持多种信息教育手段的同时,帮助用户进行教学管理,解决网络教学容易出现的问题,提高计算机网络教学的远程化和制度化,提高教学质量和教学水平。 五、结束语 本文通过对软件开发技术在计算机网络教育中的重要性研究,在分析计算机软件开发技术核心的基础上,提出开放式网络教学、交互式W络教学、多样式网络教学等应用方式,发挥出软件开发技术的作用和功能,进而促进计算机网络教育的可持续健康发展。 计算机网络教育论文:简析计算机网络教育在社区教育中的作用 【摘要】目前,随着我国社会经济的快速发展,人们的生活水平有了很大的提高,人们更加重视如何通过便利的条件提高自身的文化素养。计算机网络教育在社区教育中的作用探究,逐渐成为社会公众关注的重要问题之一。计算机网络教育作为开展社区教育有效方式,对于提高人们的学习效率,发挥了极大的影响。如何促进计算机网络教育活动的开展,成为社区教育工作中的关键内容。本文将简要分析,计算机网络教育在社区教育中的作用,旨在进一步促进计算机网络教育活动的顺利开展。 【关键词】计算机 网络教育 社区教育 作用 前言:目前,党的十七大提出了建立学习型社会,构建终身教育体系,努力提高全民素质的教育发展目标。计算机网络教育在社区教育中的作用,逐渐成为社区人们关注的重要发展问题。计算机网络教育,作为当前发展社区教育的主要方式,为社区居民营造了现代化的学习氛围,促使社区居民可以随时的享受到各种学习资源和学习支持服务,有效的促进了社区教育工作的开展,对于改善社区居民的生活质量,也具有重要的影响。因此,在实际工作中,重视计算机网络教育在社区教育中的作用探究,是非常关键的发展问题之一。 一、计算机网络教育是开展社区教育的重要途径 (一)计算机网络教育是开展社区教育、建设学习化社会的技术基础 在实际生活中,社区教育对象具有广泛性,其面对的对象时全体社区的居民。正因如此,社区教育对象所处的时间相对分散,传统的社区教育方式,难以满足社区居民学习的需求。加之,受教育形式和教育内容所限,会导致社区居民多样化的学习需求很难保证。发挥计算机网络教育的优势,提高社区居民学习的效率,对于提高社区教育效率,具有积极的现实意义。计算机网络教育作为开展社区教育、建设学习化社会的技术基础,在很大程度上可以满足社区居民学习的实际需求。 (二)计算机网络教育促进了终身教育体系的建立 在计算机网络教育是开展社区教育的重要途径分析中,计算机网络教育促进了终身教育体系的建立,这是开展社区教育必须明确的一个发展问题。通过发挥计算机网络教育在社区教育中的作用,可以有效的完善传统社区教育工作中存在的问题,并进一步促进社区教育工作水平的提高。因此,结合社区教育工作发展的实际情况,在计算机网络教育促进了终身教育体系建立的前提下,深入开展计算机网络教育工作,对于社区教育工作的有效性发展非常重要。 (三)计算机网络教育实现了教育信息资源的共享 在社区教育工作中,计算机网络教育实现了教育信息资源的共享,也极大的促进了社区教育工作的完善发展。根据社区教育的实际需求,通过分析社区教育工作中存在的问题,发挥计算机网络教育信息资源的共享的优势,丰富社区居民的学习资源,促使社区居民可以随时随地的选择自己所需要的学习资源,不断提高自身的文化素养。因此,在发展社区教育工作中,重视计算机网络教育实现了教育信息资源的共享这一途径,具有积极地现实意义。 (四)计算机网络教育可以进一步提升社区教育的功能 不断的实践工作表面,计算机网络教育可以进一步提升社区教育的功能,并确保社区教育工作顺利的开展下去。通过发挥计算机网络教育的优势,全面优化社区教育资源及管理方式,有利于提高社区居民参与社区教育的积极性,并逐渐培养社区居民科学的学习方式,促使社区居民可以自主选择学习资源,根据自身的学习需求,更好的丰富自身的知识。因此,计算机网络教育可以进一步提升社区教育的功能,对于发展社区教育具有很重要的影响。 二、利用社区教育网络平台开展社区教育的建议 (一)社区教育网络平台的定位 为了更好的开展社区教育活动,充分发挥计算机网络教育的优势,是非常重要的策略之一。在利用社区教育网络平台开展社区教育的过程中,重视社区教育网络平台的定位,强化社区教育网络平台的重要性,促使社区教育可以充分发挥计算机网络教育的便捷性、全面性、及时性进行具体的教育活动,可以更好的促进社区居民参与社区教育活动,不断提升自身的素质。因此,结合社区教育工作的实际情况,进行社区教育网络平台的定位也很关键。 (二)社区教育网络平台的开发原则 在社区教育工作中,社区教育网络平台的开发原则,是利用社区教育网络平台开展社区教育的基本前提。社区教育网络平台的开发原则,主要是需要遵循分步实施,逐步完善;性能可靠、安全可控;资源丰富、功能完善;界面友好、操作简便等几个方面进行工作。根据社区教育工作开展的实际情况,重视社区教育网络平台的开发原则,也是确保社区教育工作顺利开展的重要基础。 (三)社区教育网络平台的推广使用 为了有效的促进社区教育网络工作的开展,重视社区教育网络平台的推广使用,是利用社区教育网络平台开展社区教育的有效方式之一。社区教育网络平台的推广使用,在充分了解居民家庭计算机配置情况、互联网接入情况的基础上,为社区居民学习筹划更多的学习资源,促使其可以更好的享受教育资源。因此,社区教育网络平台的推广使用,对于社区教育工作的发展也具有一定的促进作用。 结语: 综上所述,现阶段在我国社会经济快速发展的同时,计算机网络教育在社区教育中的作用探究,已经成为社区教育工作中不可缺少的一项工作内容。结合社区居民学习的实际需求,有效的开展计算机网络教育活动,发挥计算机网络教育的优势,带动更多的居民参与到自主学习活动中,可以有效的提高居民的文化素质,促使其更加全面的认识各项事物,更好的享受到现代科技给生活带来的便利。因此,在实际生活中,为了有效的促进社区教育的发展,重视计算机网络教育在社区教育中的作用探究,并积极的制定有效的工作方案,将极大的促进计算机网络教育活动的顺利开展。 计算机网络教育论文:浅谈软件开发技术在计算机网络教育中的重要性 摘 要:本文首先阐述了计算机软件开发技术的组成与发展状况,然后对软件开发技术在计算机网络教育的重要性进行了深入分析,最后则从网络教学的开放性、交互性和多样性三个方面,对软件开发技术的开发利用进行思考,其目的是为了更好的将软件开发技术应用于计算机网络教育中,提高网络教育的成效性。 关键词:软件开发;网络教育;开放性 计算机技术是上个世纪人类最伟大的一项发明,自从上个世界四十年代诞生以来,随着计算机应用技术的飞速发展,人类已经进入到计算机信息化时代,全世界的人类生活方式和工作模式,都在计算机的帮助下发生了深刻的变革。在与计算机有关的比较成熟的技术中,以网络进行信息传输媒介为特征的应用技术,是使用最为广泛、影响力最为深远的一项技术,网络信息化时代的背景下,只有不断开发出具有广泛性、实用性的软件开发平台,改变软件设计的传统固有观念,提高软件开发及其技术等方面的创新意识,不仅对充分挖掘软件开发的潜力有很大帮助,也能满足迅猛发展的计算机网络对于软件开发的需求。 1 计算机软件开发技术的组成与发展 计算机软件一般是由电脑操作系统软件和应用软件两种,电脑操作系统软件,主要包含系统管理、系统操作和系统维护三个方面,而电脑应用软件则主要是以操作用户为使用对象,通过用户进行计算机操作来满足用户需求的软件,它涵盖了各种高级语言、专业操作系统和具体的用户体验。甚至可以说,用户用来操作计算机的过程,就是接触和操作计算机软件的过程。因此,在上世纪六十年代的一次计算机技术研讨会上正式提出“软件工程”这个概念,软件工程非常注重对软件危机问题的解决,其目的是为了借助于软件开发技术的优势,来促进计算机网络教育技术的发展。 软件开发技术的演变发展大体经历了程序设计时代、面向对象设计时代和标准建模时代三个阶段,每个阶段都有软件开发的着重点。最初,软件开发技术倡导通过结构化程序设计技术来解决“软件危机”问题,这被视为是程序设计时代的开端。到了20世纪70年代,计算机软件开发技术诞生的面向对象方法,将软件作为一个独立的个体解放出来,给软件工程注入了新的开发活力。而到20世纪90年代,随着面向对象技术的标准建模语言的创建,SOA体系结构和CASE技术的不断完善,软件工程日趋完善,对现代网络教育产生了深远的影响。 2 软件开发技术对于计算机网络教育的重要性 在计算机网络教育活动中具有开放性、交互性和多样性等鲜明的特点,使得其能够摆脱传统课堂教学的弊端,成为具有时代性和先进性的教育教学模式。但是,我们需要重视的是:软件开发技术对于计算机网络教学的重要推动作用,其重要性表现为: 首先,软件开发技术为计算机网络教学提供关键技术,这种技术上的先进性很好的解决了计算机网络教学中“教”与“学”的问题。一般来看,在计算机网络教学的应用过程中,远程教学、课堂教学网络辅导和教学效果的互动交流等方面,成为计算机网络教学的重点和难点,而正是有了软件开发技术的不断开发、创新,才能为网络教学的正常开展提供技术保证。 其次,软件开发技术为计算机网络教学提供安全保障。当前网络技术处于突飞猛进的发展时期,也知道网络环境日趋复杂,为了保证计算机网络教学的正常进行,就必须保证网络教育平台的可靠性、安全性和便捷性,而这些都离不开软件开发技术的技术来实现。 最后,软件开发技术为计算机网络教学提供改革和创新的途径,没有创新的教学模式是一潭死水,计算机网络教育作为比较先进的教学模式,同样需要不断地进行改革和创新,软件开发技术不仅可以提供教学观念和教学方法的改革,也可以提供教学管理手段和教学课堂模式的创新。 3 软件开发技术在网络教学中的应用 通过我国多年以来网络教育的实践得知,如果网络教育要想实现开放性、交互性和多样性的特点,就必然离不开大量计算机软件的设计、开发和应用,从而能够为网络教育的实现和发展提供操作平台和技术保障,软件开发技术在网络教学中主要从以下几个方面进行应用: 3.1 软件开发技术在网络教学的开放性方面的应用 在网络教育中,最吸引人的就是其无比强大的教学开放性,这也是计算机网络教学迅速得到普及的重要原因。不管在任何地方、任何时间,学生都可以通过网络教学平台获取到教学资源,这种教学方法的实现离不开教育资源库的开发对于网络教育提供的资源储备。学生在参加网络教学中,只要登录到指定的网络教学平台,教育资源库的开发技术就可以将各类课程数据库、多种类型的教育数据库和数据中心等教育数据与网络教学平台的后台数据库紧密结合起来,从而提高了学生利用网络教学平台接受网络教学的效率,大大提高了资源管理的效率。其改变了过去传统的教学模式下,学生必须在指定的时间到指定的地点接受专业老师教学的束缚,学生真正摆脱了时间、地点和场景的束缚,也减少了人工的浪费,使得教育资源储备长期处于高效、快捷、平稳的发展状态。 3.2 软件开发技术在网络教学的交互性方面的应用 在网络教育中,另一个强大的功能就是其无与伦比的交互性。通过网络教学平台,采用软件开发技术开发的教学交互体系,可以倡导和建立操作交互平台、信息交互平台和概念交互平台。在教学过程中,操作交互是课堂教学的基础,信息交互是课堂教学的手段,而概念交互是课堂教学的衍生。通过软件开发技术实现的交互式教学模式,真正摆脱了过去传统教学模式下单调的“说教”模式,学习者真正以学习主体的身体参与到教学工作,通过学习者与网络教学平台之间操作的交互式设计,可以真正实现交互从具体到抽象的逐层提升的过程,教学者在教学过程中具有很强的操作性。 3.3 软件开发技术在网络教学的多样性方面的应用 只有掌握了真正核心的科学技术,才能推动产业的不断发展,网络教学的多样性同样离不开软件开发技术的发展。在网络教学中,通过软件开发技术的不断发展,可以极大地丰富网络课堂教学的教学手段,同时也可以给学习者提供最新的教学内容,进而转变课堂教学观念,提高课堂学习效率,提升网络教学品牌的价值。通过基于网络教学的教育管理软件的应用,可以使得教学者能够更好地解决网络教学的弊端,丰富课堂教学的管理手段,从而使得教学者能够在第一时间内掌握学生的学习状况,将网络课堂教学引向软件化、远程化、信息化和制度化,从而间接促进了教学者和学校管理人员的业务素质的提高。而通过使用丰富多样的辅助教学软件,可以更好地培养学生自主学习的精神,提高课堂教学的广泛性和成效性,激发教师对于课堂教学手段的深挖掘。 4 结束语 计算机网络教学开创了现代教育开创性、交互性和多样性的教学模式先河,其充分结合了网络技术、信息平台和计算机技术,适应了现代教育的发展需要,成为了将来教育发展的一个必然趋势。我们要充分认识到软件开发技术在计算机网络教育中的重要作用,通过依托计算机开发技术的不断发展,来倡导和建立多形式、多层次和多角度的网络教育平台,从而在教育领域引发深刻变革,促进教育领域乃至人类学习、工作和生活等多方面的积极发展。 计算机网络教育论文:人工智能技术在计算机网络教育中的应用 摘 要:在科技不断进步,经济发展迅速的今天,我们在学习的观念上和学习的态度上都有了长足的改变,更加强调终身学习的观念和体系的完善和建立。特别是在计算机网络教育的发展下,作为一种全新的教育手段,计算机网络教育也更加适合各种新颖的技术应用其中,人工智能技术就是其一。 关键词:人工智能技术;计算机网络教育;应用 中图分类号:TP18 1 人工智能是什么 科技改变人类生活,人工智能作为一种特别的计算机科学的一种,他是对于人类思维的研究,开发,并利用计算机对人类思维进行模仿、眼神和扩展的计算机上所实现的智能。而关于人工智能的研究是涉及多个领域的,不仅包括对机器人、语言识别和图像识别的研究,还对自然语言处理和专家系统等方面进行了深入的探析。所以人工智能可以说是一门企图了解智能实质,进而生产制造出一种崭新的能够同人类智能一样做出反应的智能机器的研究。在人工智能技术诞生以来,关于人工智能的理论和技术目前被不断的完善和改进之中,而人工智能在应用的领域上也在不断扩张,假以时日,未来人工智能下生产的科技产品,作为人类智慧的模仿,将会更好的服务于大众。 2 计算机网络教育 二十一世纪作为信息时代,信息技术发展突飞猛进,而且因特网的铺建已经成为连接世界经济、文化等的重要工具,传统的观念逐渐被社会所淘汰,越来越多的生活方式和教育方式不断改变着我们的生产生活,互联网也成为了人们生活必不可少的工具。在新世纪下,为了满足培养新时代下新新人才的需求,各类新型的教育模式渐渐的被推广而来,例如,现在我们所熟知的计算机网络教育。 目前来看,在我国的教育界中,对于人们理论和技能的培养大都依靠各类高职高专和高校,运用传统的教师和学生实际的面对面的授教为主,同计算机网络教育相比,这种教育方式虽然效果更好,可以更加系统、更加规范、更加完善的培养出各类人才,但是在教育的投资上要求过高,在人才的培养和教育的投资比例中,教育投资过大,效益不高,而且受到时间和空间上的制约,不能将新型的全民教育,终身教育推广其中,在教育方式上灵活性很差。 也正是如此,计算机网络教育被作为全民教育和终身教育的重要实践方式,因其广泛性、便利性和革命性,受到长足的推广重视。简单的讲,计算机网络教育克服了传统教育对人才培养的限制,随时随地都可以通过互联网接入资源,进行学习,而且作为新兴的科技,人们对其是富有好奇心的,反之,好奇心作为人们学习了解的动力又可以帮助人们学习知识,得到补充,但是同样的,事物的两面性决定了计算机网络教育同样存在缺陷的一面。 3 计算机网络教育中存在的问题 在我们日常的计算机网络教育中,在实际的应用中依旧存在着方方面面的问题,举例来说: (1)如果说互联网作为连接世界的工具,那么计算机就是世界各地的人们进行交流互动的窗口,这一窗口是存在有各类不同的操作系统,而且各类操作系统也是拥有不同版本的,在实际应用中,计算机网络教育对于各类系统各个版本的支持存在缺陷的,很难将自己的内容完完全全的体现在“窗口”上,而且计算机网络教育本身对于学生的导学和答疑手段都十分落后,受限于学生多,教师少,硬件等问题,不能一一解答学生心中疑惑,难以针对性的主动对学生完成教育。 (2)计算机网络教学在空间上过于分散,时间上又过分碎片化,难以系统的完成对学生们的教育培养,而且计算机网络教育自主性较差,便携性也不高,在具体的实施上也很难达到理论上所说的与传统教育的差别。 (3)计算机网络教育可以说是一种开放性的教育,保证了每个人在学习中的公平性,但是计算机网络教育对学生培养后的成果认证难以解决,不像传统考试中对考试能够做出客观性、公证性的保证,而且认证的成果是具有权威性的,计算机网络教育因为自身的特性就不能明显的确定教育的结果,更不能很好的保证教育后考试的公平性,客观性,社会对于计算机网络教育结果也难以做到认可。 (4)计算机辅助教学系统简陋,作为计算机网络教育的核心性的支撑系统,并没有完全的适应计算机网络教育的需求,大量的课件都是初级水平的幻灯片或者由图片和文字组成的网页,虽然有个别的网络教学采用视频方式,但是课程内容的更新也得不到重视,往往学生接受的计算机网络教育都做不到实时的更行,而互联网是一门日新月异的技术,互联网教育却做不到定期的更行,这不得不说是一种讽刺。 4 人工智能技术在计算机网络教育中应用 人工智能技术应用在计算机网络教育中可以这样认为,首先在教学的过程中,对于学生的教育是一个复杂的教育和学生对知识的吸收的思维过程,在整个过程中,是需要教师运用其专业的知识储备和多年的教学经验作为依据,来完成在教学过程中帮助学生吸收知识、讲解知识、推理知识、举例演示,综合的帮助学生统筹完成学习任务。以上是教师的任务,转换到计算机网络系统中,在其中就需要一个专业的教学型专家系统来完成对学生性格,学习能力以及基础知识的判断和处理,进而规划学生在计算机网络教育中的具体学生方式。而这个专业的教学型专家就可以通过人工智能技术来完成实现,在计算机网络教育中,引入人工智能技术势必成为日后计算机网络教育中的主流方式。 4.1 智能决策支持系统 智能决策系统是人工智能技术在计算机网络教育中的应用,可以有效的帮助决策者提供决策需求数据,以及各类的信息甚至背景材料,帮助决策者明确的拟定各类教学的目标,而且智能决策支持系统可以通过对各类信息的分析,构建不同的决策模型,为教学提供多重教育方案,大大削减了学生和教师的不必要时间,提升了教学的效率,目前智能决策系统已经在计算机教育中显现出了强有力的潜力和前景,所以在人工智能在计算机网络教育中的应用中要深刻理解运用其帮助决策。 4.2 智能教学专家系统 智能教学专家系统可以为学生提供近似于实际传统教学中的授课环境,也就是说,智能教学专家系统是利用计算机在人工智能技术上的发展,来模拟教师在授课中的思维模式,配合先进的人工智能技术,搭载各类影音多媒体表现形式作为计算机网络教学的手段,完成一种开放性的类似学生与教师之间关系的交互性的教学系统。在这一系统中,学生可以随时随地的根据自身所需向智能教学专家系统索取各类相关的知识,而智能教学专家系统在满足学生需求外,还可以通过对学生掌握的知识,目前的能力和学生自身的学习方式出发,因地制宜、因材施教的主动向学生反馈知识,这种互动建立在对学生方面的性格、知识、能力等的掌握上,可以最大化的帮助学生学习掌握更多的知识和技能,更好的完成教学任务,达到了无人化,区别教育的目的。 4.3 智能导学系统 智能导学系统是帮助计算机网络教育实现的重要辅助手段,一个强大的智能导学系统可以更好的了解学生的现状,更好的帮助学生解决学习问题,在具体实施中,其是保证计算机网络教育的有效开发、实际管理和具体实施的重要手段。智能导学系统旨在帮助学生建构更加良好的学习环境,帮助学生更加方便快捷地调动各类资源,更加深刻的享受计算机网络教育为学生带来的全方位的便利服务。
软件项目论文:浅析软件项目管理中人员流动风险的管理 论文关键词:软件项目 风险管理 策略 监控 论文摘要:在软件项目管理中,频繁的人员流动是软件项目的一个风险,为了缓解这种风险,项目管理者必须建立一套策略来降低人员流动,同时,还需要监控某些因素,这些因素可以提供风险是否正在变高或变低的指示,通过这种监控管理,妥善地处理风险事故造成的不利后果,最终实现项目的总体目标。 一、引言 在软件公司中,技术人员的流动性一直处于比较高的水平,因此给公司带来了很大的损失,要想改变这种现状在短期内恐怕难以做到。但这个问题又一直困扰着公司的项目管理者,特别是与软件项目组人员组织相关的频繁的人员流动给软件项目带来了极大的风险。那么,认识到这种风险后,怎样来对这种风险进行有效的控制,采取主动行动,创造条件,尽量扩大风险事件的有利后果,妥善地处理风险事故造成的不利后果,最终实现项目的总体目标,这是本文笔者要讨论的问题。 软件风险是指软件开发过程中及软件产品本身可能造成的伤害或损失。风险关注项目未来的发展,这意味着风险涉及选择及选择本身包含的不确定性,在软件开发过程及软件产品都要面临各种决策的选择。风险是介于确定性和不确定性之间的状态,是处于无知和完整知识之间的状态。同时,风险将涉及思想、观念、行为、地点等因素的改变。 一般来说,在软件项目中,存在以下一般性风险:(1)产品规模风险—与要建造或要修改的软件的总体规模相关的风险;(2)商业影响风险—与管理或市场所加诸的约束相关的风险;(3)客户相关风险—与客户的素质以及开发者和客户定期通信的能力相关的风险;(4)过程风险—与软件过程被定义的程度以及它们被开发组织所遵守的程度相关的风险;(5)技术风险—突破技术的极限极具挑战性和令人兴奋,但这也是有风险的;(6)开发环境风险—与用以建造产品的工具的可用性及质量相关的风险;(7)与人员及经验相关的风险—与参与工作的软件工程师的人数、稳定性、总体技术水平及项目经验相关的风险。 二、降低风险可采取的策略 如果软件项目组对于风险采取主动的策略,则“避免”永远是最好的目标。这可以通过建立一个风险缓解计划来达到。在软件项目中,频繁的人员流动被标注为一个项目风险,基于以往的历史和管理经验,人员流动的概率为70 %,被预测为对于项目成本及进度有严重的影响。而软件项目中,人员的频繁流动又是一个无法改变的现实,为了缓解这个风险,项目管理者必须建立一个策略来降低人员流动。可采取的策略如下: 1.找出人员流动的原因。可以与项目现有人员一起探讨人员流动的原因,比如是否公司提供的工作条件不如人意、报酬偏低、竞争激烈等。找出原因后,提出解决问题的策略,在可能的范围内改善工作条件,至于报酬,不可能无限地增加,可以把工作业绩和报酬挂钩,提高员工的工作积极性,适当控制竞争的程度,最重要的一点是要培养员工对公司的归属感。 2.在项目开始之前,分清哪些是可控的,哪些是不可控的原因,采取行动以缓解那些在管理控制之下的原因,“预防”总比“救治”更主动。 3.一旦项目启动,假设会发生人员流动并采取一些技术措施以保证当人员离开时的工作连续性。 4.对项目进行良好组织,使得每一个开发活动的信息能被广泛传播和交流,定期召开项目组工作协调会议,随时掌握项目的进展情况。 5.定义文档的标准,并建立相应的机制,以确保文档能被及时建立。 6.对所有工作进行详细复审,使得不止一个人熟悉该项工作。 7.对于每一个关键的技术人员都指定一个后备人员。 三、降低风险的监控因素 1.随着项目的进展,风险监控活动开始进行。项目管理者监控某些因素,这些因素可以提供风险是否正在变高或变低的指示。在项目组的人员管理中,应该监控下列因素:(1)项目组成员对项目压力的一般态度;(2)项目组的凝聚力;(3)项目组成员彼此之间的关系;(4)与报酬和利益相关的潜在问题;(5)在公司内及公司外工作的可能性。 2.除了监控上述因素之外,项目管理者还应该监控风险缓解步骤的效力。例如:上述风险缓解步骤要求定义“文档的标准,并建立相应的机制,以确保文档能被及时建立”。如果有关键的人物离开了项目组,项目管理者应该仔细地监控这些文档,以保证文档内容正确,当新员工加人该项目时,能为他们提供必要的信息,这是保证工作连续性的条件。 3.风险管理及意外事件计划假设缓解工作已经失败,风险变成了现实。继续前面的例子,假定项目正在进行中,有一些人宣布将要离开。如果按照缓解策略行事,则有后备人员可用,因为信息已经文档化,有关知识已经在项目组中广泛进行了交流。此外,项目管理者还可以暂时重新将资源调整到那些需要人的地方去,并调整项目进度,从而使新加人的成员能够赶上进度。同时,要求那些要离开的人员停止工作,进人“知识交接模式”。 总之.当对软件项目期望值很高时,一般都会进行风险分析。不过,即使进行这项工作,大多数软件管理者都是非正式地和表面地完成它。用在标识、分析、管理风险上的时间可以从多个方面得到回报:更加平稳的项目进展过程;较高的跟踪和控制项目的能力;因为周密计划而产生的信心。 四、总结 风险管理意味着危机还没有发生之前就对它进行处理,这就提高了项目成功的机会和减少了不可避免风险所产生的后果。实践经验证明,最成功的项目就是采取积极的步骤对要发生或即将发生的风险进行管理。对任何一个软件项目,可以有最佳的期望值,但更应该要有最坏的准备,“最坏的准备”在项目管理中就是进行项目的风险管理。 软件项目论文:浅谈软件项目管理的决策支持系统 论文关键词:软件项目管理 软件可靠性 决策支持系统 论文摘要:本文在解释软件项目管理和决策支持系统的基础上,分析出软件项目管理的局限性,进而说明应用软件项目管理的决策支持系统的必要性。最后从软件项目管理的角度来分析决策支持系统的目标,以及软件项目管理的决策具有多级性。 随着现代科技的发展,计算机应用于各个领域的管理,各个领域需要用软件系统扩展和提高自己的业务。针对不同的行业和产业,研制出了不同的项目管理软件。项目管理软件主要完成的项目管理活动分为管理活动和工程活动两类。例如:项目立项评审:评估项目立项条件是否具备,如相关部门移交资料是否齐全,客户信息是否完整,团队成员是否恰当等等;项目计划评审:评估项目计划合理性,是否与公司其他项目资源和运营目标冲突(回款):SCM(项目配置管理、Software Configuration Management):系统管理和项目有关的各类文档和软件版本,确保项目的惟一性资料信息被留存,可随时追溯项目各阶段关键文档记录(例如备忘录)。工程活动包括项目要获得实质性进展必须要做的工作,例如写计划,做需求调研,写解决方案,变更项目范围,项目启动大会,项目例会,项目里程碑会议,项目紧急事件处理会议,项目备忘录,项目验证,项目培训,项目小范围试运行,项目验收报告等等都是工程活动。 软件项目管理能完成若干事情,但是,由于软件开发过程以及应用过程中,诸多因素会造成软件的不可靠性,例如:1.需求分析定义错误。如用户提出的需求不完整,用户需求的变更未及时消化,软件开发者和用户对需求的理解不同等等。2.设计错误。如处理的结构和算法错误,缺乏对特殊情况和错误处理的考虑等。3.编码错误。如语法错误,变量初始化错误等。4.测试错误。如数据准备错误,测试用例错误等。5、文档错误。如文档不齐全,文档相关内容不一致,文档版本不一致,缺乏完整性等。另外程序代码错误,也可以造成软件的不可靠性。程序代码一个最直观的特性是长度,另外还有算法和语句结构等,程序代码越长,结构越复杂,其可靠性越难保证。所以提高可靠性从原理上看就是要减少错误。而决策支持系统(Decision Support System,简称 DSS)正好可以解决这些问题,它能很好的将那些微结构或无结构、不确定和零散的关联因素有机的综合起来,进行分析、比较和定量化,给决策者以支持,减少了决策的主观性。可见,研究并开发一个软件工程项目质量决策支持系统(Decision SupportSystem For Software Engineering Project Quality,简称SEPQDSS)对于软件企业的管理者,对于企业开发出高质量的软件产品,对于企业的长期发展来说都是至关重要和必要的。 这里所说的决策支持系统(decision support system,简称dss)是指辅助决策者通过数据、模型和知识,以人机交互方式进行半结构化或非结构化决策的计算机应用系统。决策支持系统作为一种新兴的信息技术,能够为企业提供各种决策信息以及许多商业问题的解决方案,从而减轻了管理者从事低层次信息处理和分析的负担,使得他们专注于最需要决策智慧和经验的工作,因此提高了决策的质量和效率。 决策的进程一般分为4个步骤:发现问题并形成决策目标、用概率定量地描述每个方案所产生的各种结局的可能性、决策人员对各种结局进行定量评价,一般用效用值来定量表示、综合分析各方面信息。决策支持系统的基本特征:对准上层管理人员经常面临的结构化程度不高、说明不够充分的问题:把模型或分析技术与传统的数据存取技术及检索技术结合起来;易于为非计算机专业人员以交互会话的方式使用;强调对环境及用户决策方法改变的灵活性及适应性;支持但不是代替高层决策者制定决策。 决策支持系统的灵魂是先进的管理思想。一个成功的DSS应用,应该融合了优秀的管理思想,能给应用者提供分析和解决问题的有效的方法论。DSS中所包含的计算机软硬件技术,则是将这种管理思想和方法论具体表现出来,从而让DSS用户在使用过程中能够贯彻这种管理思想、实践这种方法论。组织整体的管理绩效因此而得到提高。这从另一角度说明,应用者必须首先整合自己的管理思路,提升管理意识,明确通过DSS将实现的管理目标,才能开始DSS的实施。 从软件项目管理的角度来讲,决策支持系统的目标是使软件的功能更好地满足客户的要求,并且能在规定的时间内,在预计的资金下,开发出一个高效率,质量和可靠性能够满足要求的软件。具体包括以下五方面:软件功能完备(软件的需求完备),资金控制在计划之内,时间控制在计划之内,软件的效率和可靠性符合要求,人员之间能够合理协调达到最好的效率。 软件项目管理的决策具有多级性。因此,决策制定程序是比较复杂的。一般来说可分为三个层次:第一层,决策路线层,反映了由决策任务的提出、多级决策、批准实施的全过程;第二层,决策工作层,由决策对象进入某一个部门开始,到送出这个部门截止的部门内部处理;第三层,决策分析层,指一个部门内单个决策者或决策小组分析问题所处的环境、确定目标,并提出方案(设计)、评价分析及解决方案抉择和实施反馈的具体步骤。 由此可见,决策支持系统在软件项目管理中的应用是非常必要而且有其重要价值的。 软件项目论文:浅谈软件项目管理中的阶段收尾管理 论文关健词:软件项目管理 收尾管理阶段管理 论文摘要:在实际软件项目管理中,阶段性的收尾管理工作往往不被大家重视,其实阶段管理收尾工作也是非常重要的。本文从阶段评审,文档记录等方面来阐述软件项目管理中阶段收尾管理的重要性 随着计算机和信息产业的发展软件产品的规模也是越来越庞大,随着软件规模的扩大软件人员的增加软件项目管理的复杂性增大,各个软件企业都意识到将项目管理的理念引入到软件开发活动中开始对开发过程进行有效的管理又所谓“IT项目管理”或“软件项目管理’软件项目管理就是为了使软件项目能够按照预定的成本、进度、质量的顺利完成而对成本、人员、进度、质量、风险等进行分析和管理的活动。随着软件开发规模及开发队伍的逐渐增大软件开发活动不再是像过去的几个开发人员就可解决的事情,它需要使用开发规范或开发流程控制来约束每个开发人员、测试人员和维护人员的工作.以保证每个项目组成员按开发计划及进度准时、保质完成自己的任务。软件项目管理的各个过程主要包括二需求管理范围管理任务分解规模估算成本管理进度计划质量计划配置管理计划,风险计划文档管理团队建设,跟踪控制收尾管理项目结束。项目收尾管理作为项目结束前的最后管理工作也显得及其重要一般包括合同收尾和管理收尾两部分。合同收尾就是项目管理人员与客户对照合同一项项的核对审核是否完成了合同所要求的内容是否达到合同所提出的指标或条件也就是我们通常所讲的客户验收管理收尾就是对于项目组内部把做好的项目文档、代码、与客户交流的文件等归档保存对项目中遇到的问题及解决方法、有效的创新技术进行及时地总结,对外宣称项目结束转入维护期把相关的产品说明及技术文档转到维护组。 一、阶段收尾管理 软件项目结束的状态: 1.正常结束。2提前结束3延期结束4暂停。5取消(因变更或不可完成)。软件开发是一项复杂的系统工程牵涉到各方面的因素在实际工作中经常会出现各种各样的问题甚至面临失败。而如何总结、分析失败的原因得出有益的教训.这对一个公司来说则是今后项目中取得成功的关键。 以前会听说过这样的项目:客户验收后项目活动就随之收场,项目资料没有认真归纳总结不是束之高阁就是缺失不全但是当新项目启动时.面对新的项目问题项目组成员才发现:其实这类问题以前也遇到过,但是却无法找到相应的解决方案资料只好再投入人力、时间甚至金钱来重新经历一遍为什么相同的问题会重复出现,究其根源是因为缺少项目总结也就是说没有做好项目收尾工作。那么是不是我们只能等到项目结束或收尾时才能开始进行项目总结文档保存的工作呢:当然不是在软件项目管理的各个阶段我们都可以做收尾管理工作,也就是阶段收尾管理工作。 二、阶段收尾管理的重要性 在实际软件项目管理中.阶段性的收尾管理过程和工作往往不被大家重视其实阶段性的收尾管理工作也是非常重要的。阶段收尾管理工作的重要性主要体现在如下几个方面: 1进度管理中的里程碑每个项目都是由若干个相对独立的任务链组成的软件项目也是如此。只有在任何一条任务链都已经优化的基础上才可能进行系统的全面的优化因此保证每条任务链的效率是整个项目进度完成的前提和基础.只要能保证里程碑事件的按时完成,整个项目的进度也就有了保障。那么我们在里程碑点都来做些什么呢: 在计划好的阶段管理工作中.收集项目的最新信息和数据.并将这些数据与项目计划进行比较,来判定项目的阶段效率,进度是提前了还是落后了,成本是在控制中还是超支了?质量是否符合要求。客户对阶段工作结果满意么,及时总结经验与教训.同时及时发现项目存在的或潜在的问题以便近早采取纠正措施这就是阶段管理工作中的收尾管理,所以说阶段收尾管理是进度中的里程碑是整个项目进度优化的前提和基础。 2沟通管理中的契机沟通是保持项目顺利进行的润滑剂。与传统项目相比软件项目具有较高的技术含量和较大的风险。参与软件项目建设的用户并不都是软件开发专家.他们具有丰富的业务经验但是很少能了解软件开发的技术.随着项目工作进程的深入就会有许多新的问题出现与客户的及时有效沟通更显得尤为重要。软件项目是客户和用户共同面对的项目只有双方的积极参与才能促进项目的成功,而只有进行有效的项目沟通管理才能确保用户的积极参与。一个阶段的项目工作完成后与客户一起就前一段时间的工作进行总结和检查是十分必要的。一方面可以及时了解客户对项目工作的满意程度及时统计、分析客户对项目的意见.为下一阶段工作的顺利进行提供了保障另一方面有些因工作繁忙未能及时签署的文件,也尽快找客户给予签字确认。当双方出现纠纷时,只有双方签字的文字记录才是最有用、最有说服力的证据。 3收尾管理的基础。一个项目阶段的工作刚完成时项目组成员都保留着最新的阶段记录如阶段文档或最新的代码版本这个时候收集起米是非常容易的时间随着人员的变动或者项目的需求变更有些项目成员可能离开了项目组那时再去收集他们保存的文档资料就非常困难了,甚至有些记录永远也找不到了。好多大的软件开发项目跨几年的时间项目经理可能已经换了几任客户的项目主管也换了几位最后项目收尾管理时的文档收集、总结的工作,就是在阶段收尾管理的基础上来确保每个阶段的文档、资料都能按时完整地保存、归档。只有阶段管理收尾提供的数据信息越真实、越准确.才能保证在项目最终收尾时客观评定项目的绩效总结的经验教训和文档资料才有真正借鉴的价值总而言之.作为一个好的项目经理,一定要重视进度中的里程碑事件抓住与客户沟通的契机做好项目阶段工作的总结收尾工作如何做好这些工作呢。也就是要做好项目阶段管理收尾工作。阶段收尾管理工作是保证项目成功的重要管理手段它和项目的其他工作一样应该纳入项目计划并按计划落实。 软件项目论文:浅论系统动力学的软件项目进度管理 论文摘要:软件项目管理中存在复杂的不确定性和非线性性,特别在进度管理当中。文章采用系统动力学的方法模拟了两阶段软件项目的实施过程,该模型可以对项目的完成时间进行有效的预测,同时还讨论了人员的分配对项目进度的影响。 论文关键词:软件项目管理;进度管理;系统动力学;预测;人员分配 为解决“软件危机”,学术界和业界将项目管理理论借鉴到软件开发中,诞生了软件项目管理。众所周知进度管理、质量管理和成本管理为软件项目管理主要内容。在进度管理中,一般都采用传统项目管理方法,如甘特图、关键路径法和计划评审技术,它们都建立在项目可以分解为独立的工序上,而在实际软件项目管理中,各个阶段(工序)之间是相互联系的,如前一阶段未发现的错误会影响到后一阶段的实施,同时当后一阶段发现前一阶段有错误时需要前一阶段返工,等等如此现象很多,这种相互影响往往是非线性的,这在传统的网络图中难以表达,也超出了管理者头脑能达到的理解范围。 20世纪50年代麻省理工学院的Forrester教授创立的系统动力学为解决动态复杂问题提供了一种可行的理论、观点、方法与工具。 1系统动力学概述 20世纪50年代Forrester教授将计算机科学和反馈控制理论应用于社会、经济等系统的研究。 20世纪纪70年代,系统动力学逐渐发展成为一种了解和认识人类动态复杂系统的研究方法。2O多年来王其藩教授等学者参与了系统动力学在中国的应用研究工作,并做出了重要贡献。 系统动力学在软件项目管理中应用比较少见,用系统动力学的方法讨论了时间和成本估算,用系统动力学方法研究了项目目标进度的设定对项目表现的影响。讨论了系统动力学方法在项目风险管理中的运用,特别是在管理项目风险动态复杂性方向的特色和优势。 系统动力学强调以闭环的观点方法来认识和解决问题,这也决定了它采用反馈环路式的建模方法,即通过分析行为模式背后的反馈环路结构,改变结构中相关变量的值,了解不同策略下的不同行为模式,来完成策略的优化。 系统动力学强调反馈环路的结构关系、时间延迟、信息放大对系统行为的影响,其中结构关系表示系统各组成结构之间的相互关系,时间延迟表示决策行动落后于信息的获得,信息放大表示随着流程与时间的推移,某些信息会被放大,它对决策行为的影响会随之被放大。 2模型的建立 软件项目管理往往包括多个阶段,这些阶段之间是相互联系的,彼此构成网络。但是两阶段间的关系是问题的基础,故以2阶段软件项目开发为例。模型基于如下假设:①每个阶段开发都存在一定的错误,这些错误一部分在本阶段被改正,一部分需要到下一阶段才能发现。②在每个阶段发现错误的机率与从事调试的人员多少有关。③上一阶段遗留的错误影响下一阶段的开发以及调试。④每个阶段的人员是固定的,开发人数多必然导致调试人数少。⑤项目的进度为第一阶段开发,调试,第二阶段开发,第一阶段返工、第二阶段调试。其中第一阶段返工与第二阶段调试是并行的。 2.1状态变量以及之间的衔接 模型中的状态变量共有5个,“毛开发量1”,“已更改项目1”,“返工项目”,“毛开发量2”,已“更改项目2”分别表示第一阶段的开发、调试、返工,第二阶段的开发,调试,其关系如图1。 只有上述5个工序都完成,该项目才算完成,图2用辅助变量“整个项目进度”表示了研究关心的项目进度情况。 2.2速率变量的设定 模型中共有5个速率变量,其设置分别为:实际开发速率1=剩余工作量影响1×开发速率1×开发人效率×开发人数1。 调试1一调试人数1×调试效率×剩余错误影响1×时间衔接1。 实际开发速率2一开发人效率×开发2×剩余工作量影响2×时间衔接2。 调试2一调试人数2×调试效率×剩余错误影响2×上阶段错误×时间衔接3返工=调试人数1×调试效率×剩余遗留错误影响。 需要说明的是:“剩余工作量影响”、“剩余错误影响”、“剩余遗留错误影响”。这三个影响主要采用了如图3的参考模式。 其中“剩余工作量(错误)影响”说明当工作开始时工作速率比较低,当工作解决尾声时速率也比较低,中间速率最快;“剩余遗留错误影响”表示当第一阶段遗留的错误越多,第二阶段的速率越慢;这符合实际情况。 其它辅助变量的设置不再赘述,该模型的整体流图如图4所示。 3项目进度的估算 建立好模型后,通过设置常量和决策变量可以对系统进行模拟。这里令第一阶段和第二阶段的人员都为20人,第一阶段和第二阶段的预计工作量都为1000,错误率为0.2,第一阶段开发人员为10,调试人员为10,第二阶段开发人员为7,调试人员为13,模拟得到的项目进度如图5所示。 从图5可以看出在整个工程160(天)完成,并且在第35(天)第一阶段初次完成开发,在70天完成调试,在125天完成第二阶段初次开发,在160天完成第一阶段的返工和第二阶段的调试。 4人员分配对项目进度的影响 从模型流图(图4)可看出,问题的决策变量是每个阶段人员的分配以及人员的工作效率。提高工作效率自然会加快进度,这不需要讨论,这里主要研究人员分配,特别是第一阶段的人员分配对整个项目进度的影响。 模型假设第一阶段遗留给第二阶段的错误的多少取决于第一阶段从事调试人数,即:阶段1遗留错误一错误一(错误×调试人数1作用)。 其中“调试人数1作用”采用了“S型曲线”参考模式,表示调试人数很少时发现错误的概率小,随着人数增加发现错误概率迅速提升,到人数趋于饱和时概率趋于稳定。 在第一阶段遗留错误对第二阶段的影响上,以对第二阶段的调试工序的影响为例来说明,模型假设第二阶段的调试中能逐步发现第一阶段的遗留错误,故而交给第一阶段返工,同时第二阶段的调试继续进行,并且调试的速度受到第一阶段剩余遗留错误的影响,即:调试2一调试人数2×调试效率×剩余错误影响2×上阶段错误×时间衔接3。 图6分别模拟了总人员为20人的前提下第一阶段开发人员为5、10、15、18共四种情况对应的整个项目的进度。从图中可以看出开发人员为15时进度最快,开发人员过多(18人)和过少(5人)都会导致项目进度的增加,这符合现实情况。导致这样的原理在于:当开发人员过少,则延长了开发过程;当开发人员过多,必然导致调试人员过少,虽然第一阶段的开发过程时间缩短了,但是势必增加调试过程的时间,以及增加遗留错误进而影响下一阶段的进度。故而有一个适中的人员分配方案。 5结束语 软件项目管理系统是一个动态的复杂系统。采用系统动力学的方法有助于分析系统的变化行为,文中的模型主要分析了在总人员不变的情况下人员分配在两阶段项目管理当中的影响。由于实际当中人员可能是变动的,如除了正常的人员流动外,管理者可能通过观察项目的进度人为的调整人数。还有在实际中影响进度的因素很多,如人员更替、工作效率、经济资源等,同时这些因素是互相藕合的,如何更细致考虑这些影响因素从而准确的模拟进度管理需要深入研究。 软件项目论文:浅谈软件项目实训中的人员选择与管理 论文关键词 软件高职 项目实训 人员选择 人员管理 论文摘要 项目实训是软件高职教育课程体系中的重要环节。结合软件高职项目实训中人员管理的实际情况进行分析和论证,同时给出实训人员选择与管理工作的基本原则和方法,并总结其中的一些基本经验。 随着国家大力发展职业教育的政策的出台,职业教育在全国范围逐渐兴起,软件高职教育作为职业教育的一个重要组成部分,为国家和地方培养了大量的具有较强动手能力的一线人才,创造出巨大的生产力,带动整个IT行业的发展,推动经济和社会的进步。项目实训作为软件高职教育课程体系中的一个重要环节,无论是对学生理论知识的拓展还是动手能力的培养都起到至关重要的作用。目前,福建省的软件高职项目实训还处于初级发展阶段,无论在项目设置上还是在管理方式上都存在不足。笔者结合实际教学和管理经验,对软件高职实训中的人员管理方式和方法做初步的分析和探讨。 1 人员的选择 教育的宗旨是以学生为本,平等地对待每一位学生,让他们在最大程度上发挥潜力。但是实训工作毕竟带有一种企业模拟性质,学校注重教育公平,而企业更关注开发效率和项目成本,这两者在一定程度上是此消彼长的对立面。因此,如何通过合理的人员选择和配置,找到既能平等地对待每个学生,又能够最大限度地提高项目团队开发效率的平衡点,是实训项目管理人员所急需解决的现实而又棘手的问题。以下是笔者在实践中探索并采用的2种较为合理的人员选择与配置方案。 1.1 T R式自由组合法这里的T指的是Test,即测试,包括技术笔试和专业面试。在两项测试之后应形成一个比较合理的量化指标,该指标应着重突出候选人员的技术能力和团队意识,公布所有候选人员的各项量化指标。为保护学生的隐私,在公布时可以用编号取代学生的真实姓名。这里的R指的是rate,即比例。项目管理人员可以预先设定好小组成员结构的技术等级比例,参照学生的综合得分情况,按照1:2:1的高中低3个层次分布比例较合理。这种做法既可以避免单纯比例式自由组合给学生带来的盲目性,也能够比较真实地反映学生的能力水平,可以科学地、客观地组建起较为高效的团队,从而能够在后续阶段提高团队整体工作效率,也为管理工作带来方便。 1.2 T R交互式人员确定法首先寻找若干名班委组成评审组,项目管理人员或教师负责领导该评审组;接着参照T R方法得出候选人员的各项评估指标和综合指标,以及小组结构比例;然后由评审小组成员进行数据分析并结合每个成员实际情况确定各小组的组成人员。将初步形成的分组名单公布告知各候选人员,征求每位成员意见,由评审小组跟持反对意见的候选成员进行当面的会议式的沟通,进行合理的调整,经此步骤之后形成最终分组名单并公布。这样做实现候选成员与管理人员之间的交互,能够把纯粹的硬性考核成绩指标转化为“考核成绩指标+交互式分析”。这样较为客观且人性化的评判方式,既能够得到较为真实的数据,又能够吸纳学生合理的意见或看法,从而利于更科学的人员选择。 2 人员的管理 美国心理学家亚伯拉罕·马斯洛把人的需求分成生理需求、安全需求、社交需求、尊重需求和自我实现需求5类,依次由较低层次到较高层次排列,在管理中他建议通过满足人的需求来激发他们。 在学校实训的项目组中,成员的生理需求和安全需求都基本能够得以满足,因此,保证成员的社会需求、受尊重需求和自我实现需求的满足,对管理者来说有十分重要的意义。1)满足组员的社会需求就是为组员提供相互交往的时间和场所。实训项目的交流不应仅局限在小组的范畴,应鼓励小组与小组间的相互交流,条件具备的话可以组织学校跟学校间类似项目组间的交流。形式可以多样化,如电子邮件、组建QQ群、网络会议、座谈会和技术讲座等互动方式。2)为了满足组员受尊重的需求,应该让他们感到在项目小组中受到人格上的尊重,技术长处被认可。对于参加实训的学生来说,对他们做出的成绩给予充分的肯定就是一种简便高效的方式,如针对某个技术环节开展一次技能比赛,或者开展评审会定期对项目阶段成果进行评估,对优秀团队及其成员进行表彰等。3)为满足组员自我实现的需求,应该在项目取得一定成果的基础上,分配给组员具有一定挑战性和难度的任务,这些任务不能超过学生能力的范围,同时给他们提供课外的辅导以提高他们解决这些问题的技能。任务的完成情况可以作为附加评审内容纳入学生最终的实训综合成绩中去,给学生超越自我的动力。 3 团队的管理 3.1 增强小组凝聚力一个有强大凝聚力的小组是最高效的小组,小组中的成员在思想上能够形成共同的准则,在工作中能够紧密配合和协调,组员跟组员之间能够互相学习、相互关照,从而消除隔阂,用集体的力量解决许多工作中的问题。增强小组凝聚力的方式有许多,如给小组起个性化的名字、开展游戏或者室内或户外运动等方式增进组员间的沟通。另外,提高小组组员的责任感、诚信度以及保障他们的知情权、提供发展的空间等,都是增强小组凝聚力的有效方法。 3.2 增强小组沟通沟通作为软件开发过程中的重要环节,对于开发效率的提高和团队的整体发展具有决定性的意义。1)适当的小组规模。在编制小组成员时应考虑到人数对沟通的影响,成员太少,沟通容易但不利于开发效率;反之,成员过多会使得沟通变得十分困难,从而使效率严重下降,因此,合理的人员安排才是关键。根据经验,一个实训小组以4~8个为宜,其中6人组最为合适。2)合理的性别比例。如果小组中的组员性别均相同,可能会导致冲突,使得沟通无法正常进行,所以在确定小组结构时应注意男女比例的控制。对于软件开发类实训项目而言,小组中的男女比例应控制在3:1左右,其中女性组员可以作为小组的协调员。3)适当的小组负责人。小组负责人除了领导小组工作外,还负责协调小组成员之间的沟通。受尊重的小组负责人可以提高小组凝聚力和工作效率,无论对自身的进步还是对整个团队的发展来说都是大有裨益的。 软件项目论文:关于工作流的软件项目管理系统的设计与实现 论文摘要:本文介绍了一个基于工作流技术而研制的软件项目管理系统。文章首先描述了传统软件项目管理系统的不足之处,提出用工作流的方法来设计软件项目管理系统,然后介绍了一些理论基础。文中重点阐述了系统的设计结构和所采用的一些技术,并给出了部分的具体实现方法。 论文关键词:工作流,JMS,项目管理,SPP,建模,工作流网 1前言 2O世纪7O年代以来,为了解决软机危机,改进软件过程能力,计算机科学家提出了软件工程的概念,将系统化的、规范化的、可度量的方法用于软件开发、运行和维护的过程。近些年来,随着计算机技术的进一步发展,相应的使用软件工程方法的软件项目管理系统也有了显著的发展。但是,由于开发流程中存在的不确定性以及项目变化等因素,这些系统也暴露出一些不足之处。 传统的软件项目管理系统,一般是由图形用户接口(GUI),应用程序和数据库组成,用户通过GUI向应用程序发出请求,应用程序处理这些用户请求,并且访问数据库,返回用户所要求的结果。这种模型在流程稳定的时候是可以满足需要的,它的缺点在于: 1)建模过程是之前设定好的,无法改变; 2)缺乏柔性,系统开始运行之后,预先定义好的条件就无法改变了; 3)可扩展性较差,如果想要增加或者修改相应的功能,整个系统必须重新开发。 目前,对工作流技术的研究以及相关产品的开发是国内外学者研究的热点问题之一,很多管理系统都采用工作流技术来克服上述问题。工作流起源于生产组织和办公自动化领域,它是针对日常工作中具有固定程序的活动而提出的概念。目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高办事效率、降低生产成本、提高企业生产经营管理水平和企业竞争力的目标。 WFMC给出的工作流定义是:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行,以实现整体的业务目标。而这正适合于软件开发过程管理,基于上述的理由,我们结合江苏省十.五攻关“工作流技术的研究和应用”项目,研究并开发了基于工作流的软件项目管理系统CMMFlow,目前已应用于软件能力成熟度模型(CMM)的管理,其效果相当良好。 2理论基础 2.1 CMMI3级精简并行过程(SPP)模型 利用工作流技术可以设计和建立一个工作流环境,在此系统中,我们使用CMMI3级精简并行过程(SPP)模型来支持软件过程实施。 SPP把产品生命周期划分为产品概念、产品定义、产品开发、产品测试、用户验收和产品维护等6个阶段,包含项目管理、项目研发和机构支撑等3类过程、19个过程域。其中项目管理过程包含立项管理、结项管理、项目规划、项目监控、风险管理和需求管理等六个过程域;项目研发过程包含需求开发、技术预研、系统设计、实现和测试、系统测试、Beta测试、客户验收和项目技术评审等8个过程域;机构支撑过程包含配置管理、质量保证、培训管理、外包与采购管理以及服务与维护等5个过程域。 我们把每一个过程域都看成是一个流程,其中过程域之间的关系是线性为主,并行、迭代为辅。每个过程域包含若干原子活动。通过建立活动与角色以及角色与具体用户的关联,即可建立一个可执行的业务过程模型。 2.2基于petri网的可视化建模工具 在这个系统中,我们的建模工具是使用工作流网和XP—DL共用的策略,采用的是扩展的Petri网,对最终用户来说,足可视化的图形建模工具。为符合WfMC规范,工作流机装入的模型用XPDL存储,可使用XPDL和Petri网两种表示形式,验证是使用Petri网形式。 在Petri网的基础上,Aalst提出了工作流网(WF-net)的概念,其定义如下: 一个Petri网PN=(P,T,F)被称为工作流网,当且仅当它满足下面两个条件: 1)PN有两个特殊的库所:i和0。库所i是一个起始库所,即·i= ;库所O是一个终止库所,即O·= 。 2)如果在PN中加入一个新的变迁t,使t连接库所。与i,即·t·={0),t·={i),这时所得到的PN是强连接的。 下面我们给出一个用工作流网定义工作流的简单例子,例子描述的是软件立项管理的工作流过程。 根据工作流网的基本定义,通过使用不同类型的基本组件和触发机制,对立项管理进行建模,得到如图1所示的工作流网模型。 基本流程如下:立项建议小组进行立项调查,然后进行项目构思和可行性分析,在完成之后进行立项申请,然后立项审查小组对此立项进行审查,决定是否同意立项。如果否决,则必须重新进行立项建议,如果同意立项,进入项目筹备阶段,流程结束。 3系统设计 3.1设计思路 整个系统构架采用B/S模式,参照J2EE框架,主要分为四层: 1)展现层:主要包含客户浏览器端和Web服务器端的applet,jsp和servlet,负责和用户交互,接收数据,显示结果等。 2)商业逻辑:用于处理展现层从用户端接受到的数据,包含了控制应用处理的所有规则,同工作流执行服务通讯,并且将展现层和数据服务层连接起来。 3)工作流执行服务:是流程运行和管理的核心组件,包括工作流机和任务表管理器。 4)数据服务:负责提供对数据的存储和读取服务。 此外,在系统设计的过程中还采用了以下的技术: 1)J2EE框架 J2EE体系包括javaserverpages(JSP),javaSERVLET,enterprisebean,WEBsevrice等技术,提供了一个企业级的计算模型和运行环境用于开发和部署多层体系结构的应用。它通过提供企业计算环境所必需的各种服务,使得部署在J2EE平台上的多层应用可以实现高可用性、安全性、可扩展性和可靠性。J2EE中多数标准定义了接口,例如JNDI,JDBC等,这使得遵循这些标准的不同开发者之间的模块可以无缝地互连。 2)JMS JAVA消息服务(JMS)定义了Java中访问消息中间件的接口。JMS只是接口,并没有给予实现,实现JMS接口的消息中间件称为JMSProvider。 在JMS中,每个客户机连接到一个为发送和接收消息提供框架的消息传递程序。客户机需知晓消息格式和消息目的地。根据JMSAPI,消息传递分为两种模式,点对点和/订阅模式。 点到点消息传递方法使用下列工具,如消息队列、发送方(或消息制作者)和接收方(或消息消费者)。客户机将发向特定接收方的消息发送到唯一的队列。当接收客户机从特定队列抽取消息时,它发出确认消息,表明消息已处理。队列将保留所有消息,直至接收方收到消息或消息到期。/预订消息传递方法使用者、订户和主题的概念。客户机将消息发送到主题或内容层次结构。为了接收到消息,消息消费者必须预订此主题。因此,对于这种方法,可以将消息制作者作为者,而消息消费者则是订户。JMS供应商将多个者发来的消息分发到主题和此主题的多个订户。 点对点模式适用于使用集中式工作流机的系统,对于大规模的分布式应用,/订阅模式则相当有效,但是,在保证各个分布式工作流机的一致性问题上则稍有难度。 3.2系统结构与功能特点 CMM软件项目管理系统的系统结构如图2所示,它主要由过程建模工具,工作流机,任务表管理器,web服务,客户端和数据库接口等组成,该系统的各功能特点是:在这个系统中,我们使用浏览器作为客户端,通过Http请求与Webserver交互,Websevrer再将收到的请求加以处理,判断哪些是应当丢弃的,哪些应该交由工作流执行服务处理,并将处理后的结果发送给工作流执行服务器。工作流机收到Webserver传送过来的数据后,会根据消息的具体内容继续执行流程或者将流程挂起或是结束流程的运行,并且更新任务表管理器的内容,在需要的时候调用相应的应用程序来完成任务的需要。在过程建模工具中建立,修改,删除的模型将通过存储过程来修改数据库中已存储的模型。 websevrer和工作流执行服务也都要通过存储过程来访问数据库。各部分的功能特点描述如图2。 1)建模工具:使用基于Petri网的建模方法来对企业经营过程进行过程定义,将经营过程转化为工作流引擎可以执行的形式。同时还提供对过程模型进行分析,测试的工具。 2)工作流机:工作流引擎是工作流平台的核心,它是业务流程的任务调度器,从某种程度上看,工作流机也是业务资源管理器。它的主要作用是实例化及执行过程模型、为过程和活动的执行进行导航、与外部过程交互完成各项活动、维护工作流控制数据和工作流相关数据等。 3)任务表管理器:过程模型中的每个活动都被看作是一个由计算机自动执行的任务或由用户手动执行的任务,任务表管理器负责对这些任务的监视和维护。 4)Web服务:包含了用于处理用户请求和显示结果的jsp和sevrlet,其主要工作是将客户端与工作流执行服务连接起来。 5)客户端客户端是基于浏览器方式的瘦客户端,方便管理员管理整个工作流管理系统的运行过程,和一般用户管理和执行分配给自己的任务。 6)数据库接口:实现了底层的数据存储,包括过程定义,工作流控制数据,工作流相关数据,企业组织模型等工作流管理系统运行过程中必须的信息。 4系统的一些实现技术 4.1任务的自动分配和触发机制 可以根据模型定义自动地分配任务,当一个过程实例运行的时候,活动可以根据模型定义自动分配到指定接收者,并且,有关完成此活动所需要的数据也会传递给相应的接收者,从而提高业务过程执行效率。模型中使用角色机制,不指定具体人员,这样,人员变更不至于引起模型的变动。系统支持迟后绑定,即可以在活动运行的时刻才确定此活动由谁来完成。 流程从使能到运行的控制,采用触发机制,分为人工触发、自动触发、消息触发和时间触发。人工触发一般是用户从任务表中选取其中一项任务来完成,自动触发是一些通过程序自动执行的过程,一旦使能就被触发,消息触发是指系统外部的消息到达触发,如Email,时间触发是由定时器来触发。 4.2活动信息的统计 系统可以通过对活动信息统计,并将活动的运行状况和统计信息存储在数据库内。通过提供有关工作量的信息,可以在建模的时候预测所需要的时间,并且在活动结束时计算任务完成情况,与初始模型进行对比,生成相应的图表以判断工作效率,辅助决策经营。除系统提供的几个基本统计模型之外,用户也可以利用系统提供的工具,自行扩展新的模型来完成工作量信息统计和生成对比图表。 结论根据软件过程管理的需求,以工作流技术为核心,J2EE技术为支撑,结合SPP模型,文章给出了一个软件管理系统的体系结构和其中的一些技术实现。但是,为了更好地实施软件过程控制和度量,我们发现,还有一些问题需要进行深入的研究。 首先,软件过程模型的建立就要结合具体的实际情况,需要深人了解整个软件过程,并根据不同的需要修改模型来完成资源的动态配置和管理。另外,关于分布式工作流机之间的通讯和一致性问题也是相当重要的问题,需要拟定合适的策略来实现资源优化调度。 软件项目论文:项目管理理论中关于软件项目外包采购管理的探讨 摘要:本文分析了目前软件外包采购管理的重要意义和目前的形势,提出基于“双赢”策略的软件外包采购思想。在项目管理理论、CMM和ISO9000的基础上,提出和细化了软件项目外包采购管理的总体框架和具体操作内容。旨在通过对软件外包项目采购的选择购买、跟踪与控制、评估验收和项目后处理等过程的研究,来提高软件外包采购的项目管理水平,满足承包方对分承制方产品在质量、进度和成本等方面的要求和对外包过程的有效控制,为软件项目外包采购管理人员提供具体的操作过程。 一、基本概念和背景 项目管理理论是一门综合多门学科的新兴研究领域,共有九大知识领域,包括项目集成管理、项目范围管理、项目时间管理、项目费用管理、项目质量管理、项目人力资源管理、项目沟通管理、项目风险管理和项目采购管理。项目采购管理是指需要从执行组织以外获得货物和服务的过程。通常把货物和服务称为产品,把买方称为业主或对应分承制方的总承包商,而卖方称为承包商、厂商或供应商。项目采购管理一般包括以下主要过程:采购计划编制,询价计划编制,询价,承包商选择,合同管理,合同收尾[ 1 ].对于软件产品,一般采购可以分为两大类,一类是对已经在市场流通的软件产品进行采购。例如,某企业想做信息化建设项目,涉及到数据库,那么它就可以在目前市面流行通用的几种厂家和种类的数据库中选择。例如Oracle公司的Oracle数据库,Microsoft公司的SQL Sever,IBM公司的DB2数据库等等。然后根据自己的需求,通过询价、签合同、安装培训等过程来购买此类产品。这种采购过程基本已经形成几套通用的解决方案,比较简单,中国企业在处理这类产品的采购时,大部分都处理的较好。个别的企业由于需求分析不清晰,培训工作不到位等原因,也会产生购买的产品不适用,或不会用的情况。另外一类软件产品采购的形式是外包采购。它是指在市场上没有出现现成的产品或者没有适合自己企业需求的产品的情况下,需要以定制的方式把项目(功能模块)承包给其他企业。例如某企业需要实施企业资源计划项目(ERP),虽然可以购买BAAN软件,但是基于本企业业务流程的管理软件必须定制,对于各个原有孤立岛的集成软件,无法购买现成的产品,必须自己开发或外包给别的公司。 二、软件项目外包采购管理的意义 许多大型复杂工程项目的实施需要业主、总承包商、分承制商、供应商和开发制造商等共同合作来完成。因此在任何甲方和乙方之间必不可少的涉及到部分子项目(功能模块)的采购活动。目前社会中,企业的信息化、网络化建设正在世界范围内展开。谁先进行信息化改造,谁就早日适应社会发展的要求,获得巨额利润。大规模的企业信息化建设形成了庞大的软件产品市场,促进了软件业的发展。许多项目庞大复杂、高风险并且涉及高科技信息领域,在客观上使企业需要采购和外包许多产品,包括软件产品。主观上,在经济全球一体化形式下,这种外包采购作为采购活动的一种特殊的、更为复杂的形式,在企业中更为普遍存在。企业为了在日益竞争的社会环境中增强自身的核心竞争力,需要根据企业的特点,专门从事某一个领域或几个领域的业务,在某个业务领域内形成自己的核心业务,把企业内部的智能和资源集中在那些有核心竞争优势的活动上;把一些非自己擅长的业务领域的子项目和功能模块外包给有实力和优势的公司,才有利于加快项目的完工进度,降低风险,优化资源配制,保证项目质量,降低成本,创造更高的价值。 以电信行业为例,爱立信公司2000年底宣布把手机生产的绝大部分业务外包给新加坡的Flextronics公司,专注于移动通信网络设备业务。原因是爱立信的移动通信网络设备的销售占爱立信公司销售额的54%,利润达90%以上,占有全球的移动通信市场分额高达30%,而手机生产的投资回报率很底,甚至出现亏损情况。对于爱立信而言,手机生产“外包”是在信息化时代的战略调整,希望通过外包生产,调整投资结构,使手机降低成本并且尽快盈利,集中精力稳定和拓展电信业的新市场。出于同样目的,美国的摩托罗拉公司也表示将外包部分地区的手机生产业务。作为手机市场份额最大的诺基亚,在专注于手机生产业务的同时,大力开发周边产业。希望以手机业务带动相关产业的发展。从三大公司的投资趋势,可以看出,“外包”作为一种先进的国际专业化的生产方式正被一些大公司越来越多的采用。我国正处在信息化建设的高速发展阶段,必然会有越来越多的企业由于自身的能力限制或业务发展的战略选择,将采取业务“外包”的生产方式。 就软件项目外包采购的市场来说,2000年是企业信息化实施的第一年,国内企业,特别是大型企业的信息化项目开始运作。行业信息化改造重点将由原来的电信、金融、海关等行业转向交通、制造、医疗等传统行业。这些行业由于自身计算机技术水平和业务发展重点的原因,将会把大量的软件项目外包给软件公司。根据CCID的统计(软件可以分成平台软件、中间软件和应用软件),2000年中国软件市场中应用软件的销售额为147亿元,占软件总市场份额的63.9%.预计到2005年,计算机信息服务和软件市场销售额增长到1750亿元。届时我国软件项目“外包”市场潜力可想而知。 三、软件外包采购管理存在的问题 虽然在传统行业,许多工程项目的采购活动,例如机械工程项目或建筑工程项目等等已经形成比较成熟的管理体制和标准。但是软件项目的外包管理工作并不象其他行业那样顺利。 软件工程项目管理引起广泛注意源于20世纪70年代中期,当时发现70%的项目是因为管理不善而引起。20世纪90年代中期,美国的软件开发仍然很难预测,大约只有10%的项目能够在预定的费用和进度下交付。商用软件通常只有9%(中小型软件公司有16%)的软件项目能够及时交付且费用并不超支。 这里有多方面的原因:软件产品作为一种特殊商品形式,具有高度不可测量性和高度柔性;软件企业开发能力还不太成熟,软件开发大多数还处于手工作坊方式,软件研发企业有其自身的运做方式,人为因素比重大,不好量化管理。由于不确定因素太多,许多软件开发企业对于自己的项目都难以精确控制进度、质量、资源和成本,那么对于业主来说,想对外部企业(例如分承制商)保持良好控制力的难度就更大了。再加上具有技术优势的软件开发商一般集中在几个科技发达的大城市,与业主的距离远,相互的交流不方便,因此许多软件采购项目的实际应用效果都差强人意:不适用,进度超期,性能达不到标准,成本太高等等情况时有发生。 软件项目外包采购的成功与失败不仅仅影响到当前软件项目的质量、成本和工作进度,而且关系到企业信息化建设整个项目的整体结构、性能以及进度,意义重大。特别是当软件项目作为整体项目计划关键路径的一个环节,软件项目采购的进度直接影响整体项目的进度,并且总成本将成指数级增加。由于软件采购的情况特别复杂,涉及的学科领域不仅是科学技术上的,还有商业上的和观念上的,软件项目外包采购管理水平的高低,将直接关系到企业整个信息化建设进程。因此软件项目采购管理作为项目管理理论中一个新的研究课题,有必要给予足够的重视。 四、目前软件外包采购管理情况 美国项目管理协会的“项目管理知识体系指南”(PMBOK)[1]、美国卡内基-梅隆大学软件工程研究所的“软件能力成熟度模型”(CMM)[2,3]和国际标准ISO9000-3[4]中虽然对外包采购管理的流程有过论述,但是他们指出的只是外包采购管理的一般原则;虽然人们可以结合自身企业特点实施标准,具有一定灵活性,但是事物的另一对立面就是操作过程不具体。这给软件产品的外包采购管理者带来具体操作上的困惑。另外PMBOK体系原则上是应用在各个行业的,缺乏针对软件领域的特点做专门的论述。ISO 9000-3系列和CMM虽然是针对软件领域的标准,但是ISO 9000-3的最大的特点是只告诉你要按规定做,不强调效果和后续改善,不强调经验积累和后评估。从这个意义上讲ISO9000注重水平的评估,不太强调提高企业成长的过程,因此对于提高企业的管理水平意义不大;CMM虽然旨在强调企业的过程能力的持续改进,但是它重点强调软件的开发过程管理和产品管理,缺乏软件的分发、转交和服务等方面的管理标准,所以也有一定的局限性。 五、基于“双赢”策略的软件外包采购思想 本文作者在集成美国项目管理协会的“项目管理知识体系指南”(PMBOK)和美国卡内基-梅隆大学软件工程研究所的“软件能力成熟度模型”(SW- CMM,SA-CMM)和ISO9000-3中关于外包采购的宗旨的基础上提出“双赢”策略的软件外包采购思想。 “双赢”策略的软件外包采购思想旨在利用双方业务能力互补,通过共同合作完成软件外包项目,达到“双赢”的目的,促进双方业务总体能力的提高。这种“双赢”策略要求双方在以下方面达成共识:双方共同关注过程控制,才能保证有效结果;只能成功,不能指望依靠惩罚手段来收回采购成本,软件外包采购项目的失败对整个项目带来的损失是巨大的;在合作过程中,建立对分承制商关系的管理体系,作为以后合作的基础;重视开发过程的风险评估和采购项目后评估,使得双方业务能力得到持续提高。 传统的外包采购中,采购方只关心分承制商产品的进度和质量,以为只要分承制商按期、按质交货,就可以圆满结束此次采购活动。有些项目尽管前期进度和质量满足合同要求,但是许多是以高投入、高负荷、高消耗等手段来保证的,这给后期带来极高的风险。在阶段评审中,如果采购方对分承制商开发过程中的费用投入、人员负荷、资源消耗、组织结构变化等漠不关心,因此就不能及早预见风险、控制风险。很难想象,后期在费用透支、人员疲惫或流失严重的情况下,分承制商仍能保证产品质量和进度。这种情况下,采购方只能要么加大投入,要么终止合同,并要求赔偿,要么延期验收等等。其副作用可想而知。而分承制商为了减少损失,根据博弈论中子博弈精练纳什均衡原理,必然采取降低质量要求,减少投入的策略,来加快进度。结果最终还是采购方遭受损失。 六、软件项目外包采购管理过程 为了保证软件外包采购项目的顺利进行,本文作者在上诉理论体系和“双赢”采购策略的基础上,提出和细化了软件项目外包采购的总体框架和具体操作内容,旨在为软件项目外包采购管理人员提供具体的可操作过程。 对于本采购过程,如果业主方由于行业、人员等原因,没有健全的监控部门,可以聘请具有软件监理职责的公司,或者总承包给具有一定软件工程监控能力的公司。这时的总承包公司角色相当于本文提到的采购部。 软件项目的整个外包采购过程可以分为十个工作阶段,包括总体项目需求分析和设计、子项目的需求分析、厂商选择、分承制商开发、业主阶段评估、交验测试、安装、培训、维护,后评价。 在开始外包采购之前,首先业主要完成项目的总体需求规格说明书和承包项目的需求说明书。一般承包项目的需求分用户需求和分配需求。对于分承包商来说,业主对软件项目所提出的需求通称“用户需求”。对于业主来说,系统总体分配给软件的系统需求通称“分配需求”。如何作好子项目的需求分析和管理,请参阅《软件需求》,详见参考文献5.然后业主把需求说明书交给采购组组织采购。采购部门收到需求说明书后,再补充质询调查表、报价指南、综合条款及条件等文件,组成采购质询技术文件发往厂商进行质询。采购部门在厂商质询的基础上,准备了厂商选择和投标估价等技术文件后,向业主送审,提请业主批准和确认所选厂商。在厂商选择和投标估价这两个文件中,采购部根据拟采购的软件对被质询的至少三家以上的供应厂商,就技术开发成熟能力、资源(包括以有的产品、硬件、软件、信息和已经过的培训)、资格和信誉、过去的合作关系、价格、提供的售后服务(包括培训和维护)、分承制方组织配置结构、与质询要求的差异等方面,经过经济技术和商业战略角度出发进行全面评估,经过其他各部门(例如系统工程组、软件工程组、质保组、财务组)审核后,列出供应厂商的优劣次序,择其优者为该项目的供应厂商。采购部一般以月为单位向业主通报软件采购情况。一般以招投标方式或内部评审的方式来确定分承制商。 分承制商在接到采购部的定货以后,就可以进行工作说明书、用户需求说明书、软件需求规格说明书、软件开发详细计划和成本概预算、测试计划、质量控制方法、风险控制、拟采用的软件工程标准和软件生命周期等文档的制作。然后分承制商把有关的技术资料文件通过业主的采购部送给业主进行校核和批准,然后才能开始开发。 业主在接到分承制商的上述材料后,组织系统工程部、软件工程部、质保部、财务部、采购部、法律部就上述材料中的开发项目视图和需求范围、使用或需要购买的软硬件、进度计划和成本、测试计划与案例、使用的技术和工程标准、人员配置等进行评审,并出具评审文件和风险评估、控制建议书。并由采购部制定采购项目监督评估计划书。合格后,由采购部、质保部及法律人员与分承制商签署详细的软件采购子合同。如需要对软件项目投保,以此来降低风险,需要和分承制商协商后,纳入合同文件。 分承制商在签署合同后可以进行设计和开发。业主应该委派采购部监督分承制商的工作。采购部应该有计划的组织质保部、软件工程部的项目计划管理人员和配置管理人员,定期对分承制商的开发活动进度、质量、成本等进行评估,并形成评估建议书。送审业主方的系统工程部、项目管理人员、分承制商的此项目的负责人。分承制方的项目负责人要对评估建议书的建议进行书面回复,并确保实施。 分承制方对所有需要采购的资源(软件、硬件、人力资源等)负责进行检验;采购部有权在任何时候对分承制商所采购的资源进行验证,使之符合所采用的规格说明书、规范、标准和其他技术文件所规定的要求,确保分承制商专款专用,建立开发环境。在这个阶段之前,采购部门和分承制商首先要确定由分承制商提供的验证建议书,并作好准备工作,提交检验用的技术文件,包括厂商说明书、设备性能数据表、配制清单、试验程序、检验技术要求。在检验的物质条件和技术条件均已准备妥善后,分承包商就可以向采购部并通过采购部向业主提出书面检验申请。一般分承包商可以提前三周通知采购部,由采购部提前两周以书面形式向业主提出检验申请,由业主召集系统工程部、软件工程部、质保部组成验证组,在规定的时间、地点检验。通过检验后,分承包商进入项目开发阶段;业主进入监控和评估阶段。对于重大关键项目,业主可以派遣项目监督员短期或长期进驻分承包商单位。 由于作为外部单位,业主不便时刻监督项目的开发过程。虽然理论上需要把分承制商看作是自己的一个项目部门来对待,纳入自己的进度控制和质量控制体系,但是客观上由于分承制商与业主距离较远,人员不熟悉,各自有自己的企业文化和管理体制,双方之间的信息沟通不畅,业主难以实时监督分承制商的开发进程和质量。最好的办法就是在分承制商的软件项目的各个里程碑处和分承制商一起进行检查和评估。软件项目一般可以划分成若干个里程碑(3-5个为益),分承制商需要提前一周通知采购部组织相关人员来评估。软件项目的里程碑一般指产品设计趋于稳定,中间产品定义趋于明晰,项目开发组真正了解项目实际的关键技术难度和可行的进度计划,开发活动停止,产品进入除错和稳定、随时可以的阶段,或当产品设计被删减、资源增加、进度延误的时候。在评估软件质量、进度和功能的同时,还要评估分承制商的人员工作负荷程度、风险、费用和资源消耗情况,并形成文档。由采购部送审系统工程部、软件工程部、项目管理部和分承制商的此项目负责人。 当产品进入交验测试的时候,分承制商需要提前三周通知采购部,采购部于前两周通知业主作好交验的组织评估准备工作。这时业主组织系统工程部、软件工程部、测试部、质保部和采购部,根据分承制商和业主在分承制商开发阶段预先共同定义、评审并批准的测试计划和验收方案进行验收测试,对需求规格说明书中的各项逐个详细的测试。最后以书面的形式给出对整个软件项目的测试评估报告。并对未通过验收测试的软件产品指定相应的补救措施和计划。分承制商交付给业主方的软件产品应当包括:源代码、软件开发计划、仿真环境、软件需求规格说明书、设计文档、软件测试计划、软件测试说明、验收测试计划、软件使用手册、软件安装手册、软件维护手册。必要的话,还包括相关培训计划。 软件采购的一个重要阶段是交货,也是目前经常忽略的阶段。当所采购的软件产品以及硬件运行环境在规定的时间到达采购部时候,采购部要以书面的形式通知业主交货。业主对所交的整个软件产品清单进行验收,并事先通知采购部拆箱日期,要采购部和分承包商的代表按时到场。业主要在接到采购部交货通知后一个月内,对所检查验收的整个软件产品(包括相关的软件、硬件及其附属产品、文档、技术资料等子合同中规定的产品)出具一份交货证明,如果这些提交的软件产品没有受到损坏并与装箱清单相一致,并在业主方环境运行良好;否则出具一份书面通知,说明在某个方面此产品损坏或与装箱单不符,或在业主方提供的环境运行不良。此通知或证明应由采购部和分承制商代表签署。如果在签合同的时候,就规定分承制商负责安装和调试,则相应的过程省略。 最后业主方由采购部把所有的文档归类封存,以备后续类似项目采购的参考查询。同时采购部在两个月之内以书面形式,对分承制商的技术开发成熟能力、资源(包括以有的产品、硬件、软件、人力资源和已经过的培训)、信誉、分承制方组织配置结构,管理能力和企业文化提交后评价报告,作为建立客户关系管理(CRM)的依据。对于此次采购的经验和教训,包括进度控制、质量控制、成本控制、客户关系控制、流程控制、风险控制等方面,采购部以文档的形式在组内讨论并保存。 七、结束语: 作为大型工程项目中的软件子项目或者部分功能模块的采购(外包),由于软件开发的固有特性(风险大,柔性强,人为因素突出,结果不宜测量等),使软件项目的外包采购管理变得十分复杂。如何控制分承制商的开发进度和质量等关键因素,需要在实践中不断探索,并针对具体公司和项目对采购过程有所裁剪。 软件项目论文:Project 软件与水利工程项目管理 摘 要:本文介绍了Project软件的主要功能及基本使用方法,分析了当前水利工程建 设中 Project 软件的应用情况,阐明了 Project 软件在水利工程项目管理中的重要性。 关键词:水利工程建设;进度计划;资源分配 1 Project 软件在工程建设中的作用 Project 是一个项目管理网络计划软件,它是基于关键路径法(CPM)和项目评审技术(PERT)两种技术,主要用于大中型项目的计划制定、评审、优化、资源合理调配和现场动态跟踪的通用的肯定型网络计划软件包。Project 提供了一套完整的项目描述和计算的方法及模型,通过这个软件生成图、表或文件。 1.1 快速地建立项目计划 建立项目计划,需要完成一份正确的网络计划图,这至少需要一个星期的时间进行设计、参数计算、核对、成图。如果需要在原方案上做些修改,就不得不重新算一遍。耗费更多的时间、人力、物力、财力,无法适应当前飞速发展的形势。Project则能把这些工作都承担起来,能轻松愉快地完成项目计划的制定工作。如果需要修改、增删、优化,只需要把修改的地方输入给 Project,它会按新的意图重新计算,在几秒内就给出结果。而且 Project 会自动计算出关键路径,计算每个任务的时差和整个项目的开工、完工日期,告诉能否如期竣工,资源分配是否合理。 1.2 按工期管好项目中的任务 Project 把一个任务划分为四个阶段进行管理,即:比较基准计划(原始计划)、当前计划、实际计划和待执行计划(剩余计划或未完成计划)。它为每个阶段的计划都设置了数据域,用户随时都可以查看。比较基准计划$原始计划’里的计划数据记录了最初制定项目计划时项目的状态情况。这个计划数据在项目调整过程中始终保持不变,无论何时需要原始计划数据时都可以从这个计划数据域中得到。 当前计划是根据实际已经发生的计划和任务间的制约关系面计算出来的,它作为整个计划的重点向用户提供了极为详细的数据。例如开始时间、完成时间、工期、总时差、自由时差、工作量、费用等。 实际计划是指已经开始实施,但未完成或已经全部完成的任务计划。Project 设置“实际计划”数据域,可使用户把已经完成的工作和未完成的工作区分开来。而且一旦一个任务的实际计划生效,Project 会按实际计划自动修正当前计划。并且据此计算和预测整个项目计划。 待执行计划是需要完成的剩余工作量,Project 会根据完 成情况自动计算剩余工作量。 总之,用户把采集到的项目任务完成和变动情况输入到Project 后,系统就按项目实际发生的数据进行整个项目计划的计算,确定新的关键路径,预测整个项目前景,使得项目动态跟踪就变得非常容易。 1.3 对人员设备和资金资源进行分配 Project 把在完成项目任务活动中投入的人员、机械台班设备和材料、资金等抽象化为“资源”,建立起资源库。Project根据每个任务的资源使用情况计算整个项目的资源需求曲线,自动指出“超负荷分配”发生在那些任务上,能够帮助用户自动进行资源平衡,并能自动排出每个资源承担的任务上的日程、工作量和成本表。 1.4 提供丰富图表 Project 提供了与国际上接轨的单代号网络图,中国科学院计算所在 Project 配套的软件 “中文伴侣”中开发了双号网络图处理系统。 Project 把横道图和表结合在一起,这样既能以图形方式形象地查看任务信息,又能看到具体的数据,便于理解项目。横道图上不仅可以显示出工序的关系线,而且工序信息也可直接显示在横道条的四周。 资源图是以反映资源使用状况为重点的信息,Project 为资源分析和跟踪提供了8种图形,即:资源需求曲线图、资源工作量图、资源累计工作量图、超分配工作量图、资源已经分配的百分数图、资源当前可用工作量、成本图、累计费用图。 总之,Project 提供项目各个方面信息,使项目的管理更高效有序。无论用于项目投标、项目计划的组织施工,还是对工程项目实行监理都是一个不可多得的软件。 2 Project 与山西水利建设 近年来,我省的水利事业发展良好,按国家规定逐步实行了项目法人责任制、招标投标制、工程监理制,使工程项目管理日趋规范化。 随着计算机技术的迅猛发展,应用计算机进行管理已成为必然。然而,在我省大多项目管理仍延用传统的方式,依赖自己的老经验,总认为不使用计算机辅助管理,工程也照样能进行下去。尽管绝大多数项目部都购买了计算机,但大多数单位使用它打字、制表,由人工画道改成“计算机画道”,计算机没能发挥出其强大优势。项目施工单位用手工编制项目计划不仅要耗费大量的时间及人力,而且经常是工程已经开工,计划还没有做好,使计划管理总处于被动局面。然而,计算机在优化进度计划方面及时、快速、准确、便捷等特点是人工无法比拟的。针对传统管理的弊端,Project中文版为项目管理人员提供了众多有实用价值的功能,以及简单且方便的解决方法,使生产计划人员能高效地处理这些变化。 在我国许多建筑单位选择了Project,在应用过程中普遍反映这个软件操作简单,更改、调整非常方便,确实体会到该系统在建筑项目计划的制定管理与信息交流等方面的强大功 能,尝到了先进管理方式的甜头,认识到工程项目施工中开展全面的计算机应用,实在是非常必要的。 在我国市场经济发展日益完善的今天,建筑施工行业也面临着优胜劣汰的竞争选择。在激烈的市场竞争中,不允许任何企业偏安于一隅,任何一个拥有关键技术的小企业,都可以在很短时间里迅速成长为区域性的大企业,技术和管理的创新日益成为企业间竞争的根本,而一些大的水利工程已率先引用了先进管理软件,如我省的引黄工程,利用P3作管理软件。水利水电监理公司利用自己研制的软件进行监理控制等。这仅仅是一个开始,我们应在掌握原有技术、经验的基础上,利用先进的管理软件进行高效管理,这应该是山西水利发展方向。当然,把计算机用于工程项目施工管理不是一个简单问题,对于选择什么样的工程项目管理软件也是非常重要的。每项目工程都有各自的特点,Project作为微软的最新项目管理产品,国外项目管理的首选软件,在应用过程中,针对工程中的不同特点也会表现出一定的不足,但计算机用于工程项目施管理已成为发展的必然趋势。计算机的强大功能必须得到充分发挥。这是我省水利项目管理的需要,也是水利事业发展的必然趋势。 6 Project在工程建设中的前景展望 目前我国采用计算机进行工程项目管理的建筑施工单位还不太多,这主要是由于有些人还没有认识到这个问题的重要性,有些人还没有找到正确的方法,没有建立和制定一套完整的适应计算机管理特点的管理体制,同时也说明把计算机用于工程施工管理不是一个简单问题,它需要多方面的基础知识和技能,需要从多方面努力。 科学技术是第一生产力,项目管理科学化是大势所趋。Project软件凭借其在项目管理方面所起的显著作用,以及其操作简单,跟踪调整方便等特点,已在中国建筑市场占了一席之地,尤其是Project2000版的推出,使操作更为简单、快捷,人机界面更趋完善,功能更为强大,这必将推进我国的工程项目管理进行一场高科技的改革,使其逐步与国际惯例接轨。现在已经有越来越多的人在关注这个软件,国家也十分重视科技的推广,尤其是水利部,专门组织培训班,对全国水利单位人员进行Project项目管理软件培训,这将极大地推动软件在水利行业的推广应用。据说水利部将把是否利用Project软件进行项目管理,是否有专职人员进行过Project软件培训,作为监理资质评审的条件之一,这充分体现了国家对该软件的重视,这也将有利Project软件在全国范围内的推广,该软件在国内推广将展现光明光景 软件项目论文:关于软件项目管理流程分析与设计 论文摘要:针对软件项目和项目开发中的复杂性、易变性和不可预见性,研究了软件项目管理流程方法设计了软件项目运作过程的总体流程,分析了各阶段流程的进入条件、主要工作过程和工作结果 论文关键词:软件过程;软件项目管理;流程管理 1引言 长期以来,软件项目高失败率的状况一直困扰着人们,研究表明,软件项目失败的原因主要有两个:一是应用项目的复杂性;二是缺乏合格的软件项目管理人才。实践证明缺乏有效的项目管理是导致软件项目失控的直接原因。软件开发的风险之所以大,是由于软件过程能力低,其中最关键的问题在于软件开发组织不能很好地管理其软件过程,从而使一些好的开发方法和技术不能起到预期的作用。 流程管理作为现代企业管理的先进思想和有效工具,随着市场环境与组织模式的变化,在以计算机网络为基础的现代社会信息化背景下越发显示出其威力和效用。流程管理不仅是一种管理技术,更体现了现代管理的思想。流程管理的重点是:理清和管理好所有主、支流程间的关系,使他们相互协调发挥应有的作用。流程管理增加了部门的透明度,管理的对象不是“部门”和“部门员工”的概念,而是以工序流程为管理对象,注重流程中每一个过程和效率以及和上下游工序的关系,管理重点在于整体流程的完整性和顺畅性。目前,流程管理技术的研究已越来越受到人重视。 运用流程管理方法和技术进行软件项日管理,可以有效地改变软件过程管理混乱的局面首先埘软件项目开发过程进行有效的、规范化的定义;其次,在软件项目开发过程中,所有的活动过程均按照流程所规定的活动的逻辑关系、活动的实现方式来执行,这样可以使得所有的活动有序和可控;第三,通过明确运作流程,使项目组人员迅速融入项目和开发过程中;第四,关注每个过程的“结果”,使软件项目的所有工作产品均能得到有效的保存,保证了软件产品完整性。 2流程的概念及在软件项目管理中的作用 流程是由活动组成的。基本活动是由个人或团体来完成的,它不需要进行其他的基本活动的转化。流程的各个活动之间有着特定的流向,它包含着明确的起始活动与终止活动,因此是一个动态的概念。从结构上来看,流程有四个基本的构成因素:活动、活动的逻辑关系、活动的实现方式和活动的承担者。流程与“一系列的活动或事件”,“结果”等概念密切相关。流程管理不仅是一种管理技术,更体现了现代管理的思想,原有的以控制、塔式组织为基础的职能行政管理已经不能完全满足于现代企业发展和市场竞争的需要,管理的发展沿着分工理论运行了上百年后,现在又重新回归到整合与系统。 软件项目生命周期的一系列的开发过程是各种各样的流程活动:软件项目的计划编制、系统分析、慨要设计、详细设计、程序编码、测试与维护等活动过程都是一种流程活动:制定软件项目管理流程,重点考虑以下几点: 1)制定的流程能引导项目逐步走向成功; 2)制定的流程能适用软件开发过程; 3)制定的流程能指导项目开发活动.有利于对项日开发活动的管理; 4)制定的流程能以苴观的流程图表示.能使项目组成员清楚的知道软件开发与管理的过程和相互之间关系; 5)流程中的起始活动条件、终止活动条件明确、规范便于控制: 6)流程中的工作产品定义明确、可度趟,评价标准和方法具体、可操作 3软件项目管理总体流程设计 在软件项目开发管理过程中,不仪要努力实现项目的范围、时间、成本和质量等目际,还必须协调整个项目过程,以满足项目参与者及其他利益柑关者的需要和期望;随着软件规模和所涉及的领域不断地扩大,软件项目的管理越来越困难,纵观所有失败的软件项目.基本原因是不能管理其软件过程,在无纪律的、混乱的项目状态下,组织不可能从较好的方法和工具中获益。严谨的软件过程控制管理不仅可以在每个阶段回顾和纠正项目的偏差.别软件项目的风险甚至果断中止项目。且可以将人才流动所带来的不利影响减少到最小。要进行有效的过程控制,必须明确软件项目管理流程。 软件项目管理总体流程设计为项目搜寻、立项、售前合同生成和合同执行等5个主要阶段,分别以Pl、P2、P3、P4、P5表示;同时设计了立项完成、合同签定、功能定义、软件开发、项目验收等5个里程碑,分别以TM1、TM2、TM3、TM4、TM5表示,如图l所示。在这些流程中,合同执行流程是软件项目管理的核心,其主要过程有:产品定义、软件开发、测试执行、内部验收、项目实施与验收、项目维护. 4软件项目管理总体流程分析 4.1项目搜寻 项目搜寻是项目立项的基础,项目搜寻阶段的主要任务包括市场信息收集,用户需求跟踪,对潜存的项目进行分析和筛选。 4.2项目立项 立项阶段的主要任务是确认立项的理由,提出立项建议,提供合适的资金和资源,使立项建议成为正式项目。 4.3项目售前 售前阶段从项目立项开始到项目合同的签定结束,主要工作有:制定与客户的交流计划,详细了解客户的背景资料,了解客户启动项目的缘由、目的和期望,编制项目方案建议书,准备合同蓝本。 4.4合同生成 合同生成阶段的主要工作有:项目方案的评估与确定技术合同、商务合同的商定、评估与签署。 4.5合同执行 合同执行是软件项目管理流程的重点,可分为软件开发、测试执行;内部验收、项目验收、系统维护等五个基本工作过程。 4.5.1软件开发 软件开发阶段分为:需求调研、系统分析、系统设计、编码、单元测试等过程。主要从三个方面进行管理: 1)制定项目计划。软件项目计划是一个用来协调所有其他计划,以指导项目执行和控制的可操作文件。它体现了对客户需求的理解,是开展项日活动的基础,也是软件项目跟踪与监控的依据。 2)确定开发过程。根据软件项目和项目组的实际情况,建立起一个稳定、可控的软件开发过程模型,并按照该过程来进行软件开发 3)加强过程控制一过程控制主要包括过程管理、变更控制和配置管理,、 4.5.2测试与执行 项目测试的目的是俭查系统是否符合项目合同与任务书规定的要求、项目测试分集成测试和系统测试,主要进行功能测试、健壮性测试、性能一效率测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试等测试过程在模拟运行环境中进行。 4.5.3内部验收 项目完成集成测试和系统测试后进行项目内部验收.主要有三个步骤:①文档准备。项目经删提交内部验收计划、项目开发总结报告、产品清单:财务主管提交项目财务预算报告。②内部验收测试。内部验收测试的测试内容与方法虽然与系统测试基本相同.但应站在用户验收的角度进行,因为它是试运行的基础。通过这一步。为用户验收作充分的准备。③内部评审。对提交的所有文档及测试结果进行内部评审,完成项目开发总结报告: 4,5,4项目试运行与验收 试运行与用户验收阶段的主要任务是,使所有的工作产品得到用户的确认。主要工作有:①验收前的准备。项目经理负责检查产品的完整性。包括文卡当、介质和中间产品等,以确保现场实施的成功;负责应用软件的现场安装调试,完成安装调试总结报告;负责制定用户验收计划,并得到客户的确认。②用户进行验收测试和系统试运行,进行文档和系统的移交。③用户确认。项目经理负责与客户协测,协助用户进行项目验收,形成用户验收报告。 4 5.5项目维护 软件系统的维护分为两大类:一类是纠错性维护,由于前期的测试不可能暴露软件系统中所有潜在的和隐含的错误,诊断和改正这些错误的过程为纠错性维护。另一类是完善性维护,在软件正常使用过程中,用户还会不断地提出新的需求,为了满足用户新的需求而增加软件功能的活动称为完善性维护。如果需求变更很大,那完善性维护将转变为软件新版本的开发。系统维护的宗旨就是提高客户对软件产品的满意度。确保系统的正常运行是系统维护的根本目的。 4.6软件项目管理的里程碑 项目的考核与评审是软件项目管理流程控制的基础,我们在整个流程中设定五个基线,即确定五个里程碑,它们分别是TM1:立项完成;TM2:合同签订;TM3:产品功能定义完成;TM4:软件开发完成;TM5:验收通过。 如图1所示。各阶段的主要的进入条件和相应的工作结果是里程碑是否达到的重要标志。 5结束语 本文设计的软件项目管理总体流程及相关技术已成功运用在软件项目的研发和管理中。通过将流程管理应用于软件项目管理中,以设定软件项目总体流程为主线,确定每个阶段的主要流程和里程碑,并采用评价指标体系和一系列的模板和表格进行软件项目开发过程的控制和管理,使软件项目的成功率显著提高。 实践证明,针对企业和项目的实际情况,确定软件项目运作流程,定义软件工作产品,明确各阶段的进入条件和退出条件,进行有效的流程控制与管理,大大的提高了软件开发的效率和项目的成功率。 软件项目论文:关于工作流的软件项目管理系统的设计与实现 论文摘要:本文介绍了一个基于工作流技术而研制的软件项目管理系统。文章首先描述了传统软件项目管理系统的不足之处,提出用工作流的方法来设计软件项目管理系统,然后介绍了一些理论基础。文中重点阐述了系统的设计结构和所采用的一些技术,并给出了部分的具体实现方法。 论文关键词:工作流,JMS,项目管理,SPP,建模,工作流网 1前言 2O世纪7O年代以来,为了解决软机危机,改进软件过程能力,计算机科学家提出了软件工程的概念,将系统化的、规范化的、可度量的方法用于软件开发、运行和维护的过程。近些年来,随着计算机技术的进一步发展,相应的使用软件工程方法的软件项目管理系统也有了显著的发展。但是,由于开发流程中存在的不确定性以及项目变化等因素,这些系统也暴露出一些不足之处。 传统的软件项目管理系统,一般是由图形用户接口(GUI),应用程序和数据库组成,用户通过GUI向应用程序发出请求,应用程序处理这些用户请求,并且访问数据库,返回用户所要求的结果。这种模型在流程稳定的时候是可以满足需要的,它的缺点在于: 1)建模过程是之前设定好的,无法改变; 2)缺乏柔性,系统开始运行之后,预先定义好的条件就无法改变了; 3)可扩展性较差,如果想要增加或者修改相应的功能,整个系统必须重新开发。 目前,对工作流技术的研究以及相关产品的开发是国内外学者研究的热点问题之一,很多管理系统都采用工作流技术来克服上述问题。工作流起源于生产组织和办公自动化领域,它是针对日常工作中具有固定程序的活动而提出的概念。目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高办事效率、降低生产成本、提高企业生产经营管理水平和企业竞争力的目标。 WFMC给出的工作流定义是:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行,以实现整体的业务目标。而这正适合于软件开发过程管理,基于上述的理由,我们结合江苏省十.五攻关“工作流技术的研究和应用”项目,研究并开发了基于工作流的软件项目管理系统CMMFlow,目前已应用于软件能力成熟度模型(CMM)的管理,其效果相当良好。 2理论基础 2.1 CMMI3级精简并行过程(SPP)模型 利用工作流技术可以设计和建立一个工作流环境,在此系统中,我们使用CMMI3级精简并行过程(SPP)模型来支持软件过程实施。 SPP把产品生命周期划分为产品概念、产品定义、产品开发、产品测试、用户验收和产品维护等6个阶段,包含项目管理、项目研发和机构支撑等3类过程、19个过程域。其中项目管理过程包含立项管理、结项管理、项目规划、项目监控、风险管理和需求管理等六个过程域;项目研发过程包含需求开发、技术预研、系统设计、实现和测试、系统测试、Beta测试、客户验收和项目技术评审等8个过程域;机构支撑过程包含配置管理、质量保证、培训管理、外包与采购管理以及服务与维护等5个过程域。 我们把每一个过程域都看成是一个流程,其中过程域之间的关系是线性为主,并行、迭代为辅。每个过程域包含若干原子活动。通过建立活动与角色以及角色与具体用户的关联,即可建立一个可执行的业务过程模型。 2.2基于petri网的可视化建模工具 在这个系统中,我们的建模工具是使用工作流网和XP—DL共用的策略,采用的是扩展的Petri网,对最终用户来说,足可视化的图形建模工具。为符合WfMC规范,工作流机装入的模型用XPDL存储,可使用XPDL和Petri网两种表示形式,验证是使用Petri网形式。 在Petri网的基础上,Aalst提出了工作流网(WF-net)的概念,其定义如下: 一个Petri网PN=(P,T,F)被称为工作流网,当且仅当它满足下面两个条件: 1)PN有两个特殊的库所:i和0。库所i是一个起始库所,即·i= ;库所O是一个终止库所,即O·= 。 2)如果在PN中加入一个新的变迁t,使t连接库所。与i,即·t·={0),t·={i),这时所得到的PN是强连接的。 下面我们给出一个用工作流网定义工作流的简单例子,例子描述的是软件立项管理的工作流过程。 根据工作流网的基本定义,通过使用不同类型的基本组件和触发机制,对立项管理进行建模,得到如图1所示的工作流网模型。 基本流程如下:立项建议小组进行立项调查,然后进行项目构思和可行性分析,在完成之后进行立项申请,然后立项审查小组对此立项进行审查,决定是否同意立项。如果否决,则必须重新进行立项建议,如果同意立项,进入项目筹备阶段,流程结束。 3系统设计 3.1设计思路 整个系统构架采用B/S模式,参照J2EE框架,主要分为四层: 1)展现层:主要包含客户浏览器端和Web服务器端的applet,jsp和servlet,负责和用户交互,接收数据,显示结果等。 2)商业逻辑:用于处理展现层从用户端接受到的数据,包含了控制应用处理的所有规则,同工作流执行服务通讯,并且将展现层和数据服务层连接起来。 3)工作流执行服务:是流程运行和管理的核心组件,包括工作流机和任务表管理器。 4)数据服务:负责提供对数据的存储和读取服务。 此外,在系统设计的过程中还采用了以下的技术: 1)J2EE框架 J2EE体系包括javaserverpages(JSP),javaSERVLET,enterprisebean,WEBsevrice等技术,提供了一个企业级的计算模型和运行环境用于开发和部署多层体系结构的应用。它通过提供企业计算环境所必需的各种服务,使得部署在J2EE平台上的多层应用可以实现高可用性、安全性、可扩展性和可靠性。J2EE中多数标准定义了接口,例如JNDI,JDBC等,这使得遵循这些标准的不同开发者之间的模块可以无缝地互连。 2)JMS JAVA消息服务(JMS)定义了Java中访问消息中间件的接口。JMS只是接口,并没有给予实现,实现JMS接口的消息中间件称为JMSProvider。 在JMS中,每个客户机连接到一个为发送和接收消息提供框架的消息传递程序。客户机需知晓消息格式和消息目的地。根据JMSAPI,消息传递分为两种模式,点对点和/订阅模式。 点到点消息传递方法使用下列工具,如消息队列、发送方(或消息制作者)和接收方(或消息消费者)。客户机将发向特定接收方的消息发送到唯一的队列。当接收客户机从特定队列抽取消息时,它发出确认消息,表明消息已处理。队列将保留所有消息,直至接收方收到消息或消息到期。/预订消息传递方法使用者、订户和主题的概念。客户机将消息发送到主题或内容层次结构。为了接收到消息,消息消费者必须预订此主题。因此,对于这种方法,可以将消息制作者作为者,而消息消费者则是订户。JMS供应商将多个者发来的消息分发到主题和此主题的多个订户。 点对点模式适用于使用集中式工作流机的系统,对于大规模的分布式应用,/订阅模式则相当有效,但是,在保证各个分布式工作流机的一致性问题上则稍有难度。 3.2系统结构与功能特点 CMM软件项目管理系统的系统结构如图2所示,它主要由过程建模工具,工作流机,任务表管理器,web服务,客户端和数据库接口等组成,该系统的各功能特点是:在这个系统中,我们使用浏览器作为客户端,通过Http请求与Webserver交互,Websevrer再将收到的请求加以处理,判断哪些是应当丢弃的,哪些应该交由工作流执行服务处理,并将处理后的结果发送给工作流执行服务器。工作流机收到Webserver传送过来的数据后,会根据消息的具体内容继续执行流程或者将流程挂起或是结束流程的运行,并且更新任务表管理器的内容,在需要的时候调用相应的应用程序来完成任务的需要。在过程建模工具中建立,修改,删除的模型将通过存储过程来修改数据库中已存储的模型。 websevrer和工作流执行服务也都要通过存储过程来访问数据库。各部分的功能特点描述如图2。 1)建模工具:使用基于Petri网的建模方法来对企业经营过程进行过程定义,将经营过程转化为工作流引擎可以执行的形式。同时还提供对过程模型进行分析,测试的工具。 2)工作流机:工作流引擎是工作流平台的核心,它是业务流程的任务调度器,从某种程度上看,工作流机也是业务资源管理器。它的主要作用是实例化及执行过程模型、为过程和活动的执行进行导航、与外部过程交互完成各项活动、维护工作流控制数据和工作流相关数据等。 3)任务表管理器:过程模型中的每个活动都被看作是一个由计算机自动执行的任务或由用户手动执行的任务,任务表管理器负责对这些任务的监视和维护。 4)Web服务:包含了用于处理用户请求和显示结果的jsp和sevrlet,其主要工作是将客户端与工作流执行服务连接起来。 5)客户端客户端是基于浏览器方式的瘦客户端,方便管理员管理整个工作流管理系统的运行过程,和一般用户管理和执行分配给自己的任务。 6)数据库接口:实现了底层的数据存储,包括过程定义,工作流控制数据,工作流相关数据,企业组织模型等工作流管理系统运行过程中必须的信息。 4系统的一些实现技术 4.1任务的自动分配和触发机制 可以根据模型定义自动地分配任务,当一个过程实例运行的时候,活动可以根据模型定义自动分配到指定接收者,并且,有关完成此活动所需要的数据也会传递给相应的接收者,从而提高业务过程执行效率。模型中使用角色机制,不指定具体人员,这样,人员变更不至于引起模型的变动。系统支持迟后绑定,即可以在活动运行的时刻才确定此活动由谁来完成。 流程从使能到运行的控制,采用触发机制,分为人工触发、自动触发、消息触发和时间触发。人工触发一般是用户从任务表中选取其中一项任务来完成,自动触发是一些通过程序自动执行的过程,一旦使能就被触发,消息触发是指系统外部的消息到达触发,如Email,时间触发是由定时器来触发。 4.2活动信息的统计 系统可以通过对活动信息统计,并将活动的运行状况和统计信息存储在数据库内。通过提供有关工作量的信息,可以在建模的时候预测所需要的时间,并且在活动结束时计算任务完成情况,与初始模型进行对比,生成相应的图表以判断工作效率,辅助决策经营。除系统提供的几个基本统计模型之外,用户也可以利用系统提供的工具,自行扩展新的模型来完成工作量信息统计和生成对比图表。 结论根据软件过程管理的需求,以工作流技术为核心,J2EE技术为支撑,结合SPP模型,文章给出了一个软件管理系统的体系结构和其中的一些技术实现。但是,为了更好地实施软件过程控制和度量,我们发现,还有一些问题需要进行深入的研究。 首先,软件过程模型的建立就要结合具体的实际情况,需要深人了解整个软件过程,并根据不同的需要修改模型来完成资源的动态配置和管理。另外,关于分布式工作流机之间的通讯和一致性问题也是相当重要的问题,需要拟定合适的策略来实现资源优化调度。 软件项目论文:应用P3软件为建设项目管理服务 摘要:三峡工程是一举世嘱目的工程建设项目,项目管理的任务其中包括进度控制的任务极其艰巨。业主单位确定应用P3软件作为进度控制的辅助工具已近五年时间,取得了很大的成绩,但还存在有待改进的地方。笔者有幸从93~96年,涉及此方面的工作,对合理地应...... 关键词:P3 建设项目 管理 服务 三峡工程是一举世嘱目的工程建设项目,项目管理的任务其中包括进度控制的任务极其艰巨。业主单位确定应用P3软件作为进度控制的辅助工具已近五年时间,取得了很大的成绩,但还存在有待改进的地方。笔者有幸从93~96年,涉及此方面的工作,对合理地应用P3强大的功能为项目管理,尤其是项目进度控制服务,提一点自己的看法。现分述如下,作为抛砖引玉供有关部门参考。 1 统一规定网络进度计划的表达形式 三峡工程因其规模宏大,需要采用分项直接承发包制,业主将与多个独立的承包商建立合同关系,如果承包商们在进度计划表达形式上不统一,各自采用他们习惯的表达形式,对单个合同可能是可行的,但对整个三峡工程的进度控制而言,将产生混乱的而导致无法进行。 网络计划的类型有肯定型、非肯定型,随机型、循环型等。在土建行业大多采用称作关键线路法的肯定型计划网络。而该类型计划网络以其表达形式来分有:双代号、单代号、与单代号搭接网络等表达形式。从业主与监理方使用的网络计划大多是控制性进度网络,以及考虑到工程建设项目的复杂程度与P3软件所能支持网络计划的类型而言,以采用单代号搭接网络最合适。由于它表达相同的计划对象时,可以具有网络的规模最小,表达最为简洁的好处。因为它可免除用其肯定型计划网络时,为了表达活动之间的逻辑关系而需要增加虚活动和要把完整的须加细分的敝端。关于规定统一用搭接网络的建议,必须取得建设各方的共识,并共同执行。只有这样,才能把进度管理,纳入统一的、可操作的进度控制模型之内。 2 分析管理环境,合理确定进度计划网络整体结构 进度计划网络的整体结构是指进度网络系统中整个局部网络之间联系方式不同划分结构类型。 在选择进度计划网络的整体结构形式的时候,必须根据建设项目特点与管理模式出发予以考虑。从三峡工程业已招标发包的合同看,有的一个合同包含了若干个单项工程(如右岸一期工程合同);有的则一个扩大单位工程包含了若干项合同,如永久船闸工程。因此,业主项目与监理单位均处在多个合同管理环境下工作。这大大增加了项目管理的难度与工程协调工作量。我们在确定网络计划整体结构时,都要与上述多项目管理环境相适应,并充分利用P3软件所能提供的功能为前提。 关于进度计划网络的整体结构,可分为两类,一类是多级网络,如以三级网络为例,其示意图见图1。 图1 多级网络示意图 个工作(或称活动)。因此,分解的详细程度会直接影响网络计划中活动数目。过于详细,则增大网络图的图幅,不利于阅读与管理;分解得过粗,则对进度控制缺乏必要的指导作用。WBS分解的详细程度应考虑如下因素: (1)WBS分解的详细程度要与计划进度的功用相协调,业主方的计划进度主要用于进度控制,宜粗些。通常分解到分部工程(最多到分项工程)的层次即可;对承包商实施性的进度计划所需的CWBS,可由承包商对其合同范围工程,在业主方WBS框架基础上根据需要,再自行细分; (2)WBS的框架结构,要兼顾工程分标的具体要求。如永久五级船闸输水工程,宜将其再分成上游输水工程与下游输水工程,以避免出现一个分解单元跨两个合同的情况; (3)分解的详细程度,对整个工程各部份要做到基本一致,以便能正确确定网络计划中各活动之间的逻辑关系; (4)WBS分解的详细程度应使之对应的活动,在施工现场较易识别,有利于进度检查与进度控制工作。 总之,WBS分解结构应有利于建设项目进度控制与其他项目管理的需要。 3.2 建立工程项目管理的组织分解结构(OBS) 为使项目管理机构管辖范围清晰、职责分明,常用组织分解结构描述业主方管理机构的设置。并把它与WBS终层次的分解单元对应起来,即把WBS垂直树与OBS水平树按项目管理组织的管辖范围,得出对应的交叉点,以明确其责任主体。OBS的详细程度可分至具体责任人。 3.3 建立为项目管理服务和方便P3应用的代码体系 设计出一好的代码体系与代码方案对于项目管理及相关软件高效应用至关重要,它可使诸如统计、分类、校对、查询、计划的整合、计划的拆分、数据组织、过滤等工作变得简单方便。由于限于文章篇幅仅列项说明如下: (1)为拟订好WBS框架,建立统一的工程分解结构代码符与词典。并在最高层主网上输入,以便为各层主、子网所共亨。 (2)为拟定好OBS框架,建立统一的组织分解结构代码符与词典,并在最高层主网上输入,以便为各层主、子网所共亨。 (3)依照三峡工程分标设计,统一规定合同代号,并建立词典。 (4)约定各标合同项目活动代码,在单代号搭接网络模型下,活动代码为网络中节点代码,从活动代码易于做到唯一性的易于阅读网络图,建议活动代码的前两位为字母型(与合同代号一致),后4位为数字型混合码为宜。后4位阿拉伯数字均以0、5数字结尾,以便为以后网络中增加活动留地。 (5)约定活动分类码 活动分类码实质上是把某些特性用活动分类码的形式加以识别。P3可为活动提供20个分类码,这些活动分类码可以识别诸如:活动属何种工程;活动所在的工程部位、高程;活动的承包单位;活动的监理单位;活动的业主管理单位;施工活动还是管理性质活动;以及想要识别的其它特性。业主方统一建立活动分类码(包括代码结构、码值与词典)供参与工程建设的有关单位所共亨。 (6)制定统一资源类别代码 制定统一资源类别代码的结构、码值与词典,资源包括:资金、劳力、各种材料、各种专用施工设备等。制定统一资源类别代码,使各承包商以统一的代码把资金、劳力、各种材料、各种专用施工设备的需要量载入网络之中,不仅为承包商编制施工资源、配置计划提供依据,同时也为业主方通过主~子网络结构汇总各种资源的总量及其在时间上的分配提供方便。为业主的材料、设备的采购与供应,资金筹措,施工现场管理等提供信息支持。为了减少这方面的工作量,可仅对业主关心的资源进行,对承包商关心的资源可在其子网络上自行定义。 4 制定运行规则,避免混乱发生 业主与多个承包商建立工程施工合同关系,共同为项目进度目标的实现各自承担其相应的义务情况下,按照一定的准则,规定各方运行规则,是避免发生混乱所必须的,尤其是应用P3采用多层二阶主~子网络非直接传递结构模型时,尤为必要。其运行规则的内容概述如下: (1)有关各方均应采用为业主方制定的代码结构、码值(符)、词典。最好在最高层主网上输入,以便为各层主、子网所共亨。 (2)为使在主~子网结构内运算协调,在运行进度计划调整、更新时,必须确定相同的更新日期。所有的子网应使用相同的数据日期,以避免冲突与混乱;如果相同的数据日期不可能,应在主网更新、调整,使其数据日期在主~子网上同步; (3)进度计划调整、更新的数据日期,可统一规定在月支付后的某一天为宜; (4)承包商在其子网上调整、更新进度计划(增、删活动、调整活动时间、改变活动逻辑关系等),必须在其子网络拷贝版上进行,然后交监理审批,经批准后才能作为正式的子网络,并将原子网络备份(存档)以便恢复或查询; (5)经(4)所述步骤后,统一建立从合同到整个建设项目各层次的目标进度网络,为事后的进度评价建立基准; (6)各承包商对各自的进度进行评价时,均以经监理、业主审核确定的实际完成的工程质量为基础进行,使进度评价建立在可靠的基础之上; (7)当在主网上增加不属于子网络的活动或里程碑日期时,应为主网络定义一个前两个字符的可与子网络活动相区别的活动代码符; (8)业主、监理方为维护进度计划系统的安全,还应建立如下规定:在网络环境下,建立主网络与子网络的权限,及子网对主网络存取、访问的权限;用于所有子网络工作日历;用于调度/平衡计算如何选项的规定;资源、费用计算单位和小数点位数等。 5 扩大软件使用范围,发挥更大的作用 把P3软件作为项目进度控制的辅助工具,可发挥如下作用: (1)编制与优化项目总进度计划与标段工程进度计划,按需对进度计划作出适时调整与更新;输出各种图表; (2)计算时间参数,找出关键线路与关键活动; (3)对实际进度与计划进度作对比,得出偏差,评价实际进度。并在此基础上,实现实际进度对计划进度的跟踪; (4)汇总包括资金、材料、劳力、专用施工设备需用量计划及其在时间上的分布,为项目资源供应提供信息支持; (5)在上述基础上,为制定中、短期进度计划提供方便和依据。 笔者认为,还可以在以下方面扩大使用范围,以充分发挥其P3功能: (1)在合同管理方面,用于分析承包商提出的工期索赔要求与确定其索赔期限; (2)为业主、监理在处理不同标段合同之间在进度上发生冲突时,提供最优调度的分析工具。即当不同标段间平行作业的活动会损害工程施工质量或危及安全时,可依据对项目目标实现最佳的原则,确定活动作业顺序,而主~子网络结构模型是最合适的分析模型; (3)建立费用帐目把工程概算价格、合同价格、实际支出价格等载入网络计划之中,结合本国国情运用赢得值分析技术,还可在项目投资控制中发挥一定作用。 6 结束语 笔者所要阐明的是把P3软件作为项目进度控制的辅助工具,决不是仅涉及软件操作等纯技术性的问题。从业主方角度而言,更为重要的是从组织性质工作入手,做好上面所述及的工作。在统一组织、指挥下才能充分发挥其软件功能,为项目管理提供更好的服务。这犹如交响乐团在高水平乐队指挥下才奏出美妙动听的乐章一样。笔者曾对大型建设项目使用P3软件的情况进行一些调查,凡使用情况不理想的其症结所在大多在于此。这是要引以为戒的。也是笔者写此文的用意之所在。 软件项目论文:项目管理理论中关于软件项目外包采购管理的探讨 摘要:本文分析了目前软件外包采购管理的重要意义和目前的形势,提出基于“双赢”策略的软件外包采购思想。在项目管理理论、CMM和ISO9000的基础上,提出和细化了软件项目外包采购管理的总体框架和具体操作内容。旨在通过对软件外包项目采购的选择购买、跟踪与控制、评估验收和项目后处理等过程的研究,来提高软件外包采购的项目管理水平,满足承包方对分承制方产品在质量、进度和成本等方面的要求和对外包过程的有效控制,为软件项目外包采购管理人员提供具体的操作过程。 一、基本概念和背景 项目管理理论是一门综合多门学科的新兴研究领域,共有九大知识领域,包括项目集成管理、项目范围管理、项目时间管理、项目费用管理、项目质量管理、项目人力资源管理、项目沟通管理、项目风险管理和项目采购管理。项目采购管理是指需要从执行组织以外获得货物和服务的过程。通常把货物和服务称为产品,把买方称为业主或对应分承制方的总承包商,而卖方称为承包商、厂商或供应商。项目采购管理一般包括以下主要过程:采购计划编制,询价计划编制,询价,承包商选择,合同管理,合同收尾[ 1 ].对于软件产品,一般采购可以分为两大类,一类是对已经在市场流通的软件产品进行采购。例如,某企业想做信息化建设项目,涉及到数据库,那么它就可以在目前市面流行通用的几种厂家和种类的数据库中选择。例如Oracle公司的Oracle数据库,Microsoft公司的SQL Sever,IBM公司的DB2数据库等等。然后根据自己的需求,通过询价、签合同、安装培训等过程来购买此类产品。这种采购过程基本已经形成几套通用的解决方案,比较简单,中国企业在处理这类产品的采购时,大部分都处理的较好。个别的企业由于需求分析不清晰,培训工作不到位等原因,也会产生购买的产品不适用,或不会用的情况。另外一类软件产品采购的形式是外包采购。它是指在市场上没有出现现成的产品或者没有适合自己企业需求的产品的情况下,需要以定制的方式把项目(功能模块)承包给其他企业。例如某企业需要实施企业资源计划项目(ERP),虽然可以购买BAAN软件,但是基于本企业业务流程的管理软件必须定制,对于各个原有孤立岛的集成软件,无法购买现成的产品,必须自己开发或外包给别的公司。 二、软件项目外包采购管理的意义 许多大型复杂工程项目的实施需要业主、总承包商、分承制商、供应商和开发制造商等共同合作来完成。因此在任何甲方和乙方之间必不可少的涉及到部分子项目(功能模块)的采购活动。目前社会中,企业的信息化、网络化建设正在世界范围内展开。谁先进行信息化改造,谁就早日适应社会发展的要求,获得巨额利润。大规模的企业信息化建设形成了庞大的软件产品市场,促进了软件业的发展。许多项目庞大复杂、高风险并且涉及高科技信息领域,在客观上使企业需要采购和外包许多产品,包括软件产品。主观上,在经济全球一体化形式下,这种外包采购作为采购活动的一种特殊的、更为复杂的形式,在企业中更为普遍存在。企业为了在日益竞争的社会环境中增强自身的核心竞争力,需要根据企业的特点,专门从事某一个领域或几个领域的业务,在某个业务领域内形成自己的核心业务,把企业内部的智能和资源集中在那些有核心竞争优势的活动上;把一些非自己擅长的业务领域的子项目和功能模块外包给有实力和优势的公司,才有利于加快项目的完工进度,降低风险,优化资源配制,保证项目质量,降低成本,创造更高的价值。 以电信行业为例,爱立信公司2000年底宣布把手机生产的绝大部分业务外包给新加坡的Flextronics公司,专注于移动通信网络设备业务。原因是爱立信的移动通信网络设备的销售占爱立信公司销售额的54%,利润达90%以上,占有全球的移动通信市场分额高达30%,而手机生产的投资回报率很底,甚至出现亏损情况。对于爱立信而言,手机生产“外包”是在信息化时代的战略调整,希望通过外包生产,调整投资结构,使手机降低成本并且尽快盈利,集中精力稳定和拓展电信业的新市场。出于同样目的,美国的摩托罗拉公司也表示将外包部分地区的手机生产业务。作为手机市场份额最大的诺基亚,在专注于手机生产业务的同时,大力开发周边产业。希望以手机业务带动相关产业的发展。从三大公司的投资趋势,可以看出,“外包”作为一种先进的国际专业化的生产方式正被一些大公司越来越多的采用。我国正处在信息化建设的高速发展阶段,必然会有越来越多的企业由于自身的能力限制或业务发展的战略选择,将采取业务“外包”的生产方式。 就软件项目外包采购的市场来说,2000年是企业信息化实施的第一年,国内企业,特别是大型企业的信息化项目开始运作。行业信息化改造重点将由原来的电信、金融、海关等行业转向交通、制造、医疗等传统行业。这些行业由于自身计算机技术水平和业务发展重点的原因,将会把大量的软件项目外包给软件公司。根据CCID的统计(软件可以分成平台软件、中间软件和应用软件),2000年中国软件市场中应用软件的销售额为147亿元,占软件总市场份额的63.9%.预计到2005年,计算机信息服务和软件市场销售额增长到1750亿元。届时我国软件项目“外包”市场潜力可想而知。 三、软件外包采购管理存在的问题 虽然在传统行业,许多工程项目的采购活动,例如机械工程项目或建筑工程项目等等已经形成比较成熟的管理体制和标准。但是软件项目的外包管理工作并不象其他行业那样顺利。 软件工程项目管理引起广泛注意源于20世纪70年代中期,当时发现70%的项目是因为管理不善而引起。20世纪90年代中期,美国的软件开发仍然很难预测,大约只有10%的项目能够在预定的费用和进度下交付。商用软件通常只有9%(中小型软件公司有16%)的软件项目能够及时交付且费用并不超支。 这里有多方面的原因:软件产品作为一种特殊商品形式,具有高度不可测量性和高度柔性;软件企业开发能力还不太成熟,软件开发大多数还处于手工作坊方式,软件研发企业有其自身的运做方式,人为因素比重大,不好量化管理。由于不确定因素太多,许多软件开发企业对于自己的项目都难以精确控制进度、质量、资源和成本,那么对于业主来说,想对外部企业(例如分承制商)保持良好控制力的难度就更大了。再加上具有技术优势的软件开发商一般集中在几个科技发达的大城市,与业主的距离远,相互的交流不方便,因此许多软件采购项目的实际应用效果都差强人意:不适用,进度超期,性能达不到标准,成本太高等等情况时有发生。 软件项目外包采购的成功与失败不仅仅影响到当前软件项目的质量、成本和工作进度,而且关系到企业信息化建设整个项目的整体结构、性能以及进度,意义重大。特别是当软件项目作为整体项目计划关键路径的一个环节,软件项目采购的进度直接影响整体项目的进度,并且总成本将成指数级增加。由于软件采购的情况特别复杂,涉及的学科领域不仅是科学技术上的,还有商业上的和观念上的,软件项目外包采购管理水平的高低,将直接关系到企业整个信息化建设进程。因此软件项目采购管理作为项目管理理论中一个新的研究课题,有必要给予足够的重视。 四、目前软件外包采购管理情况 美国项目管理协会的“项目管理知识体系指南”(PMBOK)[1]、美国卡内基-梅隆大学软件工程研究所的“软件能力成熟度模型”(CMM)[2,3]和国际标准ISO9000-3[4]中虽然对外包采购管理的流程有过论述,但是他们指出的只是外包采购管理的一般原则;虽然人们可以结合自身企业特点实施标准,具有一定灵活性,但是事物的另一对立面就是操作过程不具体。这给软件产品的外包采购管理者带来具体操作上的困惑。另外PMBOK体系原则上是应用在各个行业的,缺乏针对软件领域的特点做专门的论述。ISO 9000-3系列和CMM虽然是针对软件领域的标准,但是ISO 9000-3的最大的特点是只告诉你要按规定做,不强调效果和后续改善,不强调经验积累和后评估。从这个意义上讲ISO9000注重水平的评估,不太强调提高企业成长的过程,因此对于提高企业的管理水平意义不大;CMM虽然旨在强调企业的过程能力的持续改进,但是它重点强调软件的开发过程管理和产品管理,缺乏软件的分发、转交和服务等方面的管理标准,所以也有一定的局限性。 五、基于“双赢”策略的软件外包采购思想 本文作者在集成美国项目管理协会的“项目管理知识体系指南”(PMBOK)和美国卡内基-梅隆大学软件工程研究所的“软件能力成熟度模型”(SW- CMM,SA-CMM)和ISO9000-3中关于外包采购的宗旨的基础上提出“双赢”策略的软件外包采购思想。 “双赢”策略的软件外包采购思想旨在利用双方业务能力互补,通过共同合作完成软件外包项目,达到“双赢”的目的,促进双方业务总体能力的提高。这种“双赢”策略要求双方在以下方面达成共识:双方共同关注过程控制,才能保证有效结果;只能成功,不能指望依靠惩罚手段来收回采购成本,软件外包采购项目的失败对整个项目带来的损失是巨大的;在合作过程中,建立对分承制商关系的管理体系,作为以后合作的基础;重视开发过程的风险评估和采购项目后评估,使得双方业务能力得到持续提高。 传统的外包采购中,采购方只关心分承制商产品的进度和质量,以为只要分承制商按期、按质交货,就可以圆满结束此次采购活动。有些项目尽管前期进度和质量满足合同要求,但是许多是以高投入、高负荷、高消耗等手段来保证的,这给后期带来极高的风险。在阶段评审中,如果采购方对分承制商开发过程中的费用投入、人员负荷、资源消耗、组织结构变化等漠不关心,因此就不能及早预见风险、控制风险。很难想象,后期在费用透支、人员疲惫或流失严重的情况下,分承制商仍能保证产品质量和进度。这种情况下,采购方只能要么加大投入,要么终止合同,并要求赔偿,要么延期验收等等。其副作用可想而知。而分承制商为了减少损失,根据博弈论中子博弈精练纳什均衡原理,必然采取降低质量要求,减少投入的策略,来加快进度。结果最终还是采购方遭受损失。 六、软件项目外包采购管理过程 为了保证软件外包采购项目的顺利进行,本文作者在上诉理论体系和“双赢”采购策略的基础上,提出和细化了软件项目外包采购的总体框架和具体操作内容,旨在为软件项目外包采购管理人员提供具体的可操作过程。 对于本采购过程,如果业主方由于行业、人员等原因,没有健全的监控部门,可以聘请具有软件监理职责的公司,或者总承包给具有一定软件工程监控能力的公司。这时的总承包公司角色相当于本文提到的采购部。 软件项目的整个外包采购过程可以分为十个工作阶段,包括总体项目需求分析和设计、子项目的需求分析、厂商选择、分承制商开发、业主阶段评估、交验测试、安装、培训、维护,后评价。 在开始外包采购之前,首先业主要完成项目的总体需求规格说明书和承包项目的需求说明书。一般承包项目的需求分用户需求和分配需求。对于分承包商来说,业主对软件项目所提出的需求通称“用户需求”。对于业主来说,系统总体分配给软件的系统需求通称“分配需求”。如何作好子项目的需求分析和管理,请参阅《软件需求》,详见参考文献5.然后业主把需求说明书交给采购组组织采购。采购部门收到需求说明书后,再补充质询调查表、报价指南、综合条款及条件等文件,组成采购质询技术文件发往厂商进行质询。采购部门在厂商质询的基础上,准备了厂商选择和投标估价等技术文件后,向业主送审,提请业主批准和确认所选厂商。在厂商选择和投标估价这两个文件中,采购部根据拟采购的软件对被质询的至少三家以上的供应厂商,就技术开发成熟能力、资源(包括以有的产品、硬件、软件、信息和已经过的培训)、资格和信誉、过去的合作关系、价格、提供的售后服务(包括培训和维护)、分承制方组织配置结构、与质询要求的差异等方面,经过经济技术和商业战略角度出发进行全面评估,经过其他各部门(例如系统工程组、软件工程组、质保组、财务组)审核后,列出供应厂商的优劣次序,择其优者为该项目的供应厂商。采购部一般以月为单位向业主通报软件采购情况。一般以招投标方式或内部评审的方式来确定分承制商。 分承制商在接到采购部的定货以后,就可以进行工作说明书、用户需求说明书、软件需求规格说明书、软件开发详细计划和成本概预算、测试计划、质量控制方法、风险控制、拟采用的软件工程标准和软件生命周期等文档的制作。然后分承制商把有关的技术资料文件通过业主的采购部送给业主进行校核和批准,然后才能开始开发。 业主在接到分承制商的上述材料后,组织系统工程部、软件工程部、质保部、财务部、采购部、法律部就上述材料中的开发项目视图和需求范围、使用或需要购买的软硬件、进度计划和成本、测试计划与案例、使用的技术和工程标准、人员配置等进行评审,并出具评审文件和风险评估、控制建议书。并由采购部制定采购项目监督评估计划书。合格后,由采购部、质保部及法律人员与分承制商签署详细的软件采购子合同。如需要对软件项目投保,以此来降低风险,需要和分承制商协商后,纳入合同文件。 分承制商在签署合同后可以进行设计和开发。业主应该委派采购部监督分承制商的工作。采购部应该有计划的组织质保部、软件工程部的项目计划管理人员和配置管理人员,定期对分承制商的开发活动进度、质量、成本等进行评估,并形成评估建议书。送审业主方的系统工程部、项目管理人员、分承制商的此项目的负责人。分承制方的项目负责人要对评估建议书的建议进行书面回复,并确保实施。 分承制方对所有需要采购的资源(软件、硬件、人力资源等)负责进行检验;采购部有权在任何时候对分承制商所采购的资源进行验证,使之符合所采用的规格说明书、规范、标准和其他技术文件所规定的要求,确保分承制商专款专用,建立开发环境。在这个阶段之前,采购部门和分承制商首先要确定由分承制商提供的验证建议书,并作好准备工作,提交检验用的技术文件,包括厂商说明书、设备性能数据表、配制清单、试验程序、检验技术要求。在检验的物质条件和技术条件均已准备妥善后,分承包商就可以向采购部并通过采购部向业主提出书面检验申请。一般分承包商可以提前三周通知采购部,由采购部提前两周以书面形式向业主提出检验申请,由业主召集系统工程部、软件工程部、质保部组成验证组,在规定的时间、地点检验。通过检验后,分承包商进入项目开发阶段;业主进入监控和评估阶段。对于重大关键项目,业主可以派遣项目监督员短期或长期进驻分承包商单位。 由于作为外部单位,业主不便时刻监督项目的开发过程。虽然理论上需要把分承制商看作是自己的一个项目部门来对待,纳入自己的进度控制和质量控制体系,但是客观上由于分承制商与业主距离较远,人员不熟悉,各自有自己的企业文化和管理体制,双方之间的信息沟通不畅,业主难以实时监督分承制商的开发进程和质量。最好的办法就是在分承制商的软件项目的各个里程碑处和分承制商一起进行检查和评估。软件项目一般可以划分成若干个里程碑(3-5个为益),分承制商需要提前一周通知采购部组织相关人员来评估。软件项目的里程碑一般指产品设计趋于稳定,中间产品定义趋于明晰,项目开发组真正了解项目实际的关键技术难度和可行的进度计划,开发活动停止,产品进入除错和稳定、随时可以的阶段,或当产品设计被删减、资源增加、进度延误的时候。在评估软件质量、进度和功能的同时,还要评估分承制商的人员工作负荷程度、风险、费用和资源消耗情况,并形成文档。由采购部送审系统工程部、软件工程部、项目管理部和分承制商的此项目负责人。 当产品进入交验测试的时候,分承制商需要提前三周通知采购部,采购部于前两周通知业主作好交验的组织评估准备工作。这时业主组织系统工程部、软件工程部、测试部、质保部和采购部,根据分承制商和业主在分承制商开发阶段预先共同定义、评审并批准的测试计划和验收方案进行验收测试,对需求规格说明书中的各项逐个详细的测试。最后以书面的形式给出对整个软件项目的测试评估报告。并对未通过验收测试的软件产品指定相应的补救措施和计划。分承制商交付给业主方的软件产品应当包括:源代码、软件开发计划、仿真环境、软件需求规格说明书、设计文档、软件测试计划、软件测试说明、验收测试计划、软件使用手册、软件安装手册、软件维护手册。必要的话,还包括相关培训计划。 软件采购的一个重要阶段是交货,也是目前经常忽略的阶段。当所采购的软件产品以及硬件运行环境在规定的时间到达采购部时候,采购部要以书面的形式通知业主交货。业主对所交的整个软件产品清单进行验收,并事先通知采购部拆箱日期,要采购部和分承包商的代表按时到场。业主要在接到采购部交货通知后一个月内,对所检查验收的整个软件产品(包括相关的软件、硬件及其附属产品、文档、技术资料等子合同中规定的产品)出具一份交货证明,如果这些提交的软件产品没有受到损坏并与装箱清单相一致,并在业主方环境运行良好;否则出具一份书面通知,说明在某个方面此产品损坏或与装箱单不符,或在业主方提供的环境运行不良。此通知或证明应由采购部和分承制商代表签署。如果在签合同的时候,就规定分承制商负责安装和调试,则相应的过程省略。 最后业主方由采购部把所有的文档归类封存,以备后续类似项目采购的参考查询。同时采购部在两个月之内以书面形式,对分承制商的技术开发成熟能力、资源(包括以有的产品、硬件、软件、人力资源和已经过的培训)、信誉、分承制方组织配置结构,管理能力和企业文化提交后评价报告,作为建立客户关系管理(CRM)的依据。对于此次采购的经验和教训,包括进度控制、质量控制、成本控制、客户关系控制、流程控制、风险控制等方面,采购部以文档的形式在组内讨论并保存。 七、结束语: 作为大型工程项目中的软件子项目或者部分功能模块的采购(外包),由于软件开发的固有特性(风险大,柔性强,人为因素突出,结果不宜测量等),使软件项目的外包采购管理变得十分复杂。如何控制分承制商的开发进度和质量等关键因素,需要在实践中不断探索,并针对具体公司和项目对采购过程有所裁剪。 软件项目论文:关于软件项目管理的控制研究 论文摘要:本文针对软件开发中的进度延期、费用超标、质量低下等问题,探讨了如何利用项目管理中的相关控制方法进行软件开发过程控制。、论文在阐述软件项目管理内容的基础上,针对软件项目的三要素分别进行了探讨:进度控制、费用控制和质量控制,提出了几种有效的软件项目管理控制方法。这些研究对于加强我国软件项目管理控制过程,降低开发成本,减少开发风险具有重要的意义。 论文关键词:项目管理 进度控制 费用控制 质量控制 软件开发 人类社会经历了三次经济革命从农业革命、工业革命到目前正在经历的信息革命。信息化正在日益改变人们的思维方式和生活习惯。在推动信息化过程中,计算机及其软件产品发挥着至关重要的作用。对于软件项目的管理成为项目管理领域一个令人兴奋的课题。本文将结合项目管理中的控制方法分析软件项目管理控制的相关问题.以期提高软件项目的开发效率。 1、关于软件项目管理 1.1项目与项目管理 项目是一个旨在完成一个或一些独特产品或服务的过程.它有着一系列被详细描述的属性。由于项目的独特性和一次性特征,引伸出它的其他特点.如目标的确定性.成果的不可挽回性组织的临时性和开发性等。基于项flI的这些特点.项目运作更加注重项目决策前的计划以及对实施过程的控制,以减少项目运作的风险。项目管理是2O世纪50年代后期发展起来的一种计划管理方法,它运用先进科学的管理方式.有效解决大型组织的效率低下和小型企业面临的风险增加问题以组织的机动灵活.面向客户和资源利用率高而被广泛应用。在工程设计.施工软件项目的开发、实麓中经常会遇到进度拖延.费用超支、质量不达要求等问题除去极少数是因为技术原因造成,绝大部分是源于僵化的管理和不当的管理方式。 1.2软件项目管理 各软件企业都在积极将软件项目管理引入开发活动中.对开发实行有效的管理。从概念上讲.软件项目管理是为了使软件项目能够按照预定的成本.进度、质量顺利完成.而对成本、人员、进度、质量、风险等进行分析和管理的活动。同时,随着软件开发规模及开发队伍的逐渐增大,软件开发不再是向过去那样一二个开发人员即可解决的事情。迫切需要一种开发规范来规范每个开发人员、测试人员与支持人员的工作每个项目组成员按约定的规则准时完成自己的工作。同时采用规范化管理.专业分工也可以降低对开发人员的要求,从而降低产品研发成本。 2、软件项目控制 2.1软件项目控制 软件项目跟踪和监控包括对照已文档化的估计、约定和计划评审和跟踪软件完成情况和结果。基于实际的完成情况和结果调整这些计划。软件项目的已文档化的计划(即软件开发计划,正如在软件项目计划关键过程区域中所描述的)用作跟踪软件活动传送状态和修订计划的基础管理者监控软件活动.主要通过在所选出的软件工作产品完成时和在所选择的里程碑处,将实际的软件规模工作量成本和时间表与计划相比较,来确定进展情况。当确定未实现软件项目计划时,采取纠正措施。这些措施可以包括修订软件开发计划以反映实际的完成情况和重新计划遗留的工作或者采取改进性能的措施。 2.2软件项目控制的内容 软件项目控制的目的是为软件项目的过程提供足够的能见度,从而可以在执行过程中发生对计划的严重偏离时能够采取适当的更正行为。软件项目控制包括:a。追踪软件项目的进展于表现从而与所作的估计、承诺和计划做出对比:b。追踪软件项目的风险;C。在发生对计划的严重偏离时采取适当的更正行为。 2.3软件项目控制步骤 由于软件开发是处在一个开放的动态系统中,开发环境的不断变化要求不断修改项目计划,以适应新的变化。此外项目经理及其组织在完成任务的过程中不可避免的要碰到这样或那样的问题.解决这些新的矛盾和问题均属项目控制的范畴项目的预算和进度计划只能为项目经理提供决策的依据.如果在项目实施过程中控制不住.很难在限定的时间和预算要求下实现项目管理工作的目标。因此软件项目控制的过程包括以下四个步骤:a、预测什么会发生——要做出开发计划并建立工作标准b、查明什么正在发生——用建立的工作标准检查当前的工作;c、正在(或已经)发生的实事同预测的结果进行比较——分析误差产生的原因:d及时采取补救措施.以满足项目目标,预算和进度的要求。 3、软件项目控制具体操作 3.1软件项目进度控制 为了确保软件开发中的各项工作能按照计划预定的日程顺利完成.对项目的进度要进行控制。进度控制的过程是.在项目实施过程中,不断地进行实际进度值与计划值的比较、发现偏差、检查分析其产生的原因,并采取相应的措施加以解决。 3.1.1进度控制流程 (1)进度控制的输入 进度计划。项目进度基准是项目测量和报告的基础和标准。 实施报告。实施报告提供了有关项目进度发展实情。报告未来可能发生的进度问题。 变更要求。项目变更要有严格的申请和审批手续。 进度管理的技术和工具。 (2)进度管理的技术和工具 进度控制变更系统。为有效实现进度管理与控制.进度控制系统应设立实现重新计划的全部功能。包括:文件设立.跟踪即实施报告.变更评估等。 实施情况测量。项目进度控制系统中的一个重要组成部分是决定对迟发生的进度偏差是否采取纠偏措施。而实施情况报告提供了决策的主要信息。如变更分析.趋势分析.已实现价值分析等。 纠偏计划。很少有项目能完全按计划进度进行为实现项目进度或总进度要求,在项目实施过程中.需要不断对原计划进行调整或增加新的工作内容。为此.需要不断对实施的项目进行活动时间预测。修改活动过程.替代进度方案分析。 项目管理软件。它的作用是跟踪项目按计划日期展开实际工作的情况.对照进度计划分析进度现状,找出进度的偏差.分析进度偏差对项目的影响.预测未来走势 (3)项目进度控制的输出 进度更新。包括对项目管理中任何进度信息的修改。进度调整是其中的一种.师队员进度计划中活动开始和结束时间的改变。纠偏行动。通过改变资源投入将实际进度拉回到计划的行动过程。 从中获得的教训。有关进度偏差产生的原因。纠偏方案的评估与选择以及其他方面的感受和教训都应纪录在案成为日后有用的历史资料。 3.1.2进度控制方法 一般项目进度控制采用因果分析.分析用四步完成: (1)明确问题。实际完成情况与项目里程碑相对照.确定是否超期.超期的部分是在哪里。 (2)查找产生该问题的原因。位从系统角度充分认识各方原因.应组织具有代表性任务人员并采用头脑风暴法进行。项目主管要通过他领导的办公室或小组,以及在各职能部门的人共同分析问题产生原因。 (3)确定个原因对问题产生的影响程度。对影响程度的评估可以采用专家小组打分的方法,事先确定权数.而后打分得出分析结果。 (4)画出带箭头的鱼刺图。分析出原因后各部门各就其职针对问题提出解决方案.并实施。 3.1.3软件项目进度控制具体措施 在实施进度计划过程中,会有种种故障:客户的需求进行了补充或修改;工作量估算不准,造成进度不平衡或是有人不遵从开发规范.导致产品出现缺陷;或是技术环节出现故障,这些问题往往是在进度计划外出现的.一旦出现这些问题,项目进度不得不进行调整。开发过程中为了有效控制类似问题,可以采用以下辅助措施,控制进度按计划执行: (1)政策性措施。对于不遵从开发规范,人员不按时履行职责的.给予经济或是职务上的处罚.这种措施应是建立在分配任务之前; (2)人员安排。在各子项目接口处适当安排机动人员与机动时间。这一措施有赖于项目组织的机构设置能动性好。此处比较难解决的是人员业绩评估.奖励问题。 (3)技术措施,要想很好地执行进度计划,需要事先有统一的规范例如开发语言的统一,文档的归类。这样便于下一阶段人员理解上一阶段人员意图,交流更加容易。 (4)信息流措施。该措施要求建立一个信息流系统.准时汇报项目进度.便于主控人员调整进度,并且保证信息流通顺畅。避免开发期压到最后造成严重拖工。 (5)资金措施。财务部门可以定期检查各部门财务情况.控制资金流出时间.进而控制项目进度。这与后面要讲到的三者权衡有密切关系。 3.2软件项目费用控制 费用控制就是要保证各项工作要在他们各自的预算范围内进行。其基础是实现就对项目进行费用预算。整个项目费用应包括项目范围规划阶段。软件需求分析阶段.原型设计阶段开发阶段.测试阶段和项目投入使用后的使用阶段所消耗费用的总和。软件开发项目承担公司为了完成项目目标和获得更多的利润.在实施项目过程中就要控制成本.在控制过程中,首先要拟定一个标准.即计划值.然后进行实际至于计划值的比较,确定实际值与计划标准的偏差大小.以便在此基础上采取各种措施纠正偏差.常用的分析工具是偏差分析。 偏差是指实际成本对相应计划的偏离,成本偏差的数学公式为: CV=BCWP-ACWP(负数CV表明出现超支;反之,则节资)(3—1) 其中:CV为成本偏差,BCWP为计划工作预算,ACWP为完成工作实际成本。 在进行成本偏离计划程度分析时,常用计划偏差率反应时给予计划的偏离程度。 CVP=CV/BCWP(3-2) 其中CVP为成本偏差率。 偏差值是控制分析中的一个关键参数,因而应向各级组织汇报。对于不同的项目或同一项目不同阶段或不同管理层次,对偏差的控制程度不一样,制定偏差允许值的方法也不同。由于随着时间的推移风险减少了,因而偏差允许也可降低。 3.3软件项目质量控制 对于软件产品的项目质量控制应是事前有预控,过程有监控的主动控制闭环系统。(1)事前预控:根据影响质量因素多等特点.软件项目质量必须事前预控,及根据软件的类型和特点,以及以往类似项目的常发病和预防措施,对软件项目质量提出事前预控措施,包括制定控制的计划和程序,这是项目质量控制的前提。(2)过程监控:根据易产生质量波动和易产生系统因素变异等特点,软件项目质量必须过程监控.即按照预控的计划和程序,对工序、分项、单元的全过程进行过程监控.包括监测、检查、控制和评定.这是项目质量控制的基础。 4、结语 软件开发项目在进度、费用和质量三方面均需要进行控制,因此还存在三因素的权衡问题。实践中.需要在三方面均进行行之有效的控制措施才能确保项目完成情况与计划最大限度的接近。本文提供了一些方法借鉴.对软件开发项目控制有一定的实际意义。 软件项目论文:浅谈软件项目实训中的人员选择与管理 论文关键词 软件高职 项目实训 人员选择 人员管理 论文摘要 项目实训是软件高职教育课程体系中的重要环节。结合软件高职项目实训中人员管理的实际情况进行分析和论证,同时给出实训人员选择与管理工作的基本原则和方法,并总结其中的一些基本经验。 随着国家大力发展职业教育的政策的出台,职业教育在全国范围逐渐兴起,软件高职教育作为职业教育的一个重要组成部分,为国家和地方培养了大量的具有较强动手能力的一线人才,创造出巨大的生产力,带动整个IT行业的发展,推动经济和社会的进步。项目实训作为软件高职教育课程体系中的一个重要环节,无论是对学生理论知识的拓展还是动手能力的培养都起到至关重要的作用。目前,福建省的软件高职项目实训还处于初级发展阶段,无论在项目设置上还是在管理方式上都存在不足。笔者结合实际教学和管理经验,对软件高职实训中的人员管理方式和方法做初步的分析和探讨。 1 人员的选择 教育的宗旨是以学生为本,平等地对待每一位学生,让他们在最大程度上发挥潜力。但是实训工作毕竟带有一种企业模拟性质,学校注重教育公平,而企业更关注开发效率和项目成本,这两者在一定程度上是此消彼长的对立面。因此,如何通过合理的人员选择和配置,找到既能平等地对待每个学生,又能够最大限度地提高项目团队开发效率的平衡点,是实训项目管理人员所急需解决的现实而又棘手的问题。以下是笔者在实践中探索并采用的2种较为合理的人员选择与配置方案。 1.1 T R式自由组合法这里的T指的是Test,即测试,包括技术笔试和专业面试。在两项测试之后应形成一个比较合理的量化指标,该指标应着重突出候选人员的技术能力和团队意识,公布所有候选人员的各项量化指标。为保护学生的隐私,在公布时可以用编号取代学生的真实姓名。这里的R指的是rate,即比例。项目管理人员可以预先设定好小组成员结构的技术等级比例,参照学生的综合得分情况,按照1:2:1的高中低3个层次分布比例较合理。这种做法既可以避免单纯比例式自由组合给学生带来的盲目性,也能够比较真实地反映学生的能力水平,可以科学地、客观地组建起较为高效的团队,从而能够在后续阶段提高团队整体工作效率,也为管理工作带来方便。 1.2 T R交互式人员确定法首先寻找若干名班委组成评审组,项目管理人员或教师负责领导该评审组;接着参照T R方法得出候选人员的各项评估指标和综合指标,以及小组结构比例;然后由评审小组成员进行数据分析并结合每个成员实际情况确定各小组的组成人员。将初步形成的分组名单公布告知各候选人员,征求每位成员意见,由评审小组跟持反对意见的候选成员进行当面的会议式的沟通,进行合理的调整,经此步骤之后形成最终分组名单并公布。这样做实现候选成员与管理人员之间的交互,能够把纯粹的硬性考核成绩指标转化为“考核成绩指标+交互式分析”。这样较为客观且人性化的评判方式,既能够得到较为真实的数据,又能够吸纳学生合理的意见或看法,从而利于更科学的人员选择。 2 人员的管理 美国心理学家亚伯拉罕·马斯洛把人的需求分成生理需求、安全需求、社交需求、尊重需求和自我实现需求5类,依次由较低层次到较高层次排列,在管理中他建议通过满足人的需求来激发他们。 在学校实训的项目组中,成员的生理需求和安全需求都基本能够得以满足,因此,保证成员的社会需求、受尊重需求和自我实现需求的满足,对管理者来说有十分重要的意义。1)满足组员的社会需求就是为组员提供相互交往的时间和场所。实训项目的交流不应仅局限在小组的范畴,应鼓励小组与小组间的相互交流,条件具备的话可以组织学校跟学校间类似项目组间的交流。形式可以多样化,如电子邮件、组建QQ群、网络会议、座谈会和技术讲座等互动方式。2)为了满足组员受尊重的需求,应该让他们感到在项目小组中受到人格上的尊重,技术长处被认可。对于参加实训的学生来说,对他们做出的成绩给予充分的肯定就是一种简便高效的方式,如针对某个技术环节开展一次技能比赛,或者开展评审会定期对项目阶段成果进行评估,对优秀团队及其成员进行表彰等。3)为满足组员自我实现的需求,应该在项目取得一定成果的基础上,分配给组员具有一定挑战性和难度的任务,这些任务不能超过学生能力的范围,同时给他们提供课外的辅导以提高他们解决这些问题的技能。任务的完成情况可以作为附加评审内容纳入学生最终的实训综合成绩中去,给学生超越自我的动力。 3 团队的管理 3.1 增强小组凝聚力一个有强大凝聚力的小组是最高效的小组,小组中的成员在思想上能够形成共同的准则,在工作中能够紧密配合和协调,组员跟组员之间能够互相学习、相互关照,从而消除隔阂,用集体的力量解决许多工作中的问题。增强小组凝聚力的方式有许多,如给小组起个性化的名字、开展游戏或者室内或户外运动等方式增进组员间的沟通。另外,提高小组组员的责任感、诚信度以及保障他们的知情权、提供发展的空间等,都是增强小组凝聚力的有效方法。 3.2 增强小组沟通沟通作为软件开发过程中的重要环节,对于开发效率的提高和团队的整体发展具有决定性的意义。1)适当的小组规模。在编制小组成员时应考虑到人数对沟通的影响,成员太少,沟通容易但不利于开发效率;反之,成员过多会使得沟通变得十分困难,从而使效率严重下降,因此,合理的人员安排才是关键。根据经验,一个实训小组以4~8个为宜,其中6人组最为合适。2)合理的性别比例。如果小组中的组员性别均相同,可能会导致冲突,使得沟通无法正常进行,所以在确定小组结构时应注意男女比例的控制。对于软件开发类实训项目而言,小组中的男女比例应控制在3:1左右,其中女性组员可以作为小组的协调员。3)适当的小组负责人。小组负责人除了领导小组工作外,还负责协调小组成员之间的沟通。受尊重的小组负责人可以提高小组凝聚力和工作效率,无论对自身的进步还是对整个团队的发展来说都是大有裨益的。
软件管理论文:谈软件项目中的人力资源管理 软件项目团队建设是实现软件项目目标的保证,团队文化和团队精神是团队成功的重要基础,建立一种“相互帮助,共克难关”的工作氛围十分重要。本文初步揭示了项目人力资源管理的含义与内容、软件项目中的人力资源管理流程和获取方法,以及一些常见问题的解决方法与途径。 软件项目的人力资源管理与项目的进度、成本、整体质量和存在风险等方面管理一样,也是一个项目组织必不可少的管理职能。 一、软件项目人力资源管理的含义和内容 软件项目人力资资源管理就是根据软件项目的目标、项目的进展情况和外部开发环境的变化,采用科学的方法,对项目团队成员的思想、心理和行为进行有效地管理,充分发挥他们的主观能动性,实现项目的目标。项目人力资源管理的重点集中在两个方面:一时针对个人的;另一方面是针对团队的。 软件项目人力资源管理包括计划制定、获取人员和建设团队三个阶段。按照业务管理的流程,还可以具体划分为资源规划、解雇、招聘、筛选、培训等基本活动。 软件项目人力资源管理的主要内容包括: (1)对软件项目进行组织和规划。项目组织规划是项目整体人力资源的计划和安排,是按照项目目标通过分析和预测所给出的项目人力资源的数量和质量上的明确要求、具体安排和计划。 (2)获取和分配软件项目人员。软件项目组织通过招聘获得所需要的人力资源,并根据各自的技能进行工作安排,由于项目的一次性和项目的临时性,项目组织的人员获得与配备和其他组织的人员获得与配备是不同的。 (3)软件项目组织成员的开发。包括:项目人员的培训、考核,激励等等。 (4)团队建设。 由于在项目工作中人员的需求可能是不连续的,容易造成人员的浪费和成本的提高。比如:某软件项目现有20人,设计阶段需要10人;审核阶段需要1周,但不需要项目组成员从参与;编码阶段是高峰期,需要15人,但在测试阶段只需要8人。往往这些阶段进行过程中,会出现没有工作安排的人员。根据大多数大中型软件开发项目的统计,对开发人员的要求是随机变化的,一开始资源需求量较小,然后逐渐上升,达到某个时间常数时需求量达到高峰,之后再逐步下降,减少到较低的数值。 二、软件项目团队的特点 软件项目团队建设,就是吧与软件项目相关的人员组织起来实现项目目标,这是一个持续不断的过程,也是项目经理和项目团队的共同职责。通过团队成员的共同努力能产生群体的协作效应,从而获得比个体成员绩效总和大得多的团队绩效。项目团队不仅可以通过团队成员之间相互的沟通、信任、合作和承担责任,高效地利用有限的人力资源,而且有助于加强员工间的交流与协作。一个好的软件项目管理团队应该具有以下几个特点: (1)有好的团队带头人,他对项目管理有很丰富的经验,是团队凝聚力的核心,有很好项目组织及人员协调能力。 (2)好的团体,应该有好的知识及能力体系。每个人毕竟不能什么都会,但对于一个团对应该能做很多事情。就软件项目团队而言,就应该在需求、分析设计、编码、测试等重要阶段有具有此能力的人去参与。对于不同的行业,不同的项目,对项目团队的要求也是不同的。如一个游戏项目团队和一个电信软件团队的差别就是很大的。比如:一个WEB开发项目团队,就要有美工、动画设计人员,WEB端、Server端优秀的开发人员。这样去组织一个团队才可能把WEB项目的开发阶段做好,做的很专业。 (3)好的团队,要保证团队目的与个人目的的统一。这也是管理组织学中团队效力及团队效率的问题。也只有这样才能保证团队有凝聚力,稳定、健康的发展。 (4)好的团队,目标明确,目标统一。 (5)要有良好的沟通,乐与交流习惯。融洽的团队环境。 (6)良好的团队组织及团队合作习惯,不能有什么小的派别等。 (7)好的团队,人员职责分明。 (8)好的团队,有一个好的团队学习习惯。这是团队能力提高的阶梯。 三、软件项目团队的冲突管理 冲突就是个人、团队、组织限制或阻止另一部分个人、团队、组织达到预期目标的行为。软件项目团队内部成员之间相互了解越深入,彼此合作越默契,团队建设也就越出色,效率也会因此提高,但是人与人之间相互了解需要一定的磨合时间,在这一时期必然会存在很多方面的冲突,需要及时对这些冲突做出有效处理。在项目运作过程中,存在冲突是很经常也很正常的,但如果仅仅是试图避免冲突或者是压制冲突,只能是进一步恶化冲突,导致效率的严重下降。冲突既有积极的一面,也有消极的一面,如果能有效地解决这些冲突,可以有助于改善团队的建设和项目的状况,给团队一个学习与提高的机会;如果解决不当,有可能会给项目埋下隐患或者使得整个团队处于一种混乱状态,最终导致解散、失败。因此项目团队管理者要引导冲突解决结果向着团队成员积极协作有利的方向发展,而不是向着消极的方向发展,造成不可挽救的恶果。解决冲突的方式主要有:建立完善的解决冲突的方针与管理程序;冲突双方直接沟通协调,解决矛盾;利用会议解决冲突;在所有的解决方式中都离不开沟通,解决冲突过程中,沟通的方式有很多,如:口头沟通、书面沟通、正式沟通、非正式沟通、面对面或者是通过其他方式沟通等,这需要根据项目以及冲突的不同性质选择不同的沟通方式,以达到效率最高。一般解决软件项目开发过程中的冲突可以从以下几方面出发: (1)沟通协调一定要及时。团队内必须做到及时沟通,积极引导,求同存异,把握时机,适时协调。唯有做到及时,才能最快求得共识,保持信息的畅通,而不至于导致信息不畅、矛盾积累。 (2)善于询问与倾听,努力地理解别人。倾听是沟通行为的核心过程。因为倾听能激发对方的谈话欲,促发更深层次的沟通。另外,只有善于倾听,深入探测到对方的心理以及他的语言逻辑思维,才能更好地与之交流,从而达到协调和沟通的目的。同时,在沟通中,当对方行为退缩、默不作声或欲言又止的时候,可用询问引出对方真正的想法,去了解对方的立场以及对方的需求、愿望、意见与感受。所以,一名善于协调沟通的人必定是一位善于询问与倾听的行动者。这样不但有助于了解和把握对方的需求,理解和体谅对方,而且有益于与他人达成畅通、有效的协调沟通之目的。 (3)对上级沟通要有“胆”、有理、有节、有据。能够倾听上级的指挥和策略,并作出适当的反馈,以测试自己是否理解上级的语言和理解的深刻度;当出现出入,或者有自己的想法时,要有胆量 和上级进行沟通。 (4)良好的回馈机制。协调沟通一定是双向,必须保证信息被接收者接到和理解了。因此,所有的协调沟通方式必须有回馈机制,保证接收者接收到。比如,电子邮件进行协调沟通,无论是接收者简单回复“已收到”、“OK”等,还是电话回答收到,但必须保证接收者收到信息。建立良好的回馈机制,不仅让团队养成良好的回馈工作习惯,还可以增进团队每个人的执行力,也就保证了整个团队拥有良好的执行力。 (5)控制非正式沟通。对于非正式沟通,要实施有效的控制。因为虽然在有些情况下,非正式沟通往往能实现正式沟通难以达到的效果,但是,它也可能成为散布小道消息和谣言的渠道,产生不好的作用,所以,为使团队高效,要控制非正式沟通。 要清楚的认识到软件项目人力资源管理的重要性,并掌握软件项目人力资源的筹集,项目团队信息交流的方式,成员激励的要素及处理冲突的方法。总之,人力资源管理是软件项目开发中的重要智力资源,必须做好软件项目人力资源的管理。 软件管理论文:企业管理软件和营销策略分析 随着我国信息化的建设,以软件为基础对企业进行管理更有效率。其具有很高的应用价值,也有较好的市场。但是在营销策略上如果不加以分析,那么其在市场上的销量必然无法达到理想的状态。因此,加强企业管理软件的市场分析以及营销策略的分析十分关键。 1企业管理软件在市场营销中的概况 1.1企业管理软件环境分析 目前,大多数企业的软件市场政策较为合理。很多企业已经将信息化作为推动工业化的基础。进行全面的信息化建设。软件已经逐渐渗透到企业的管理中,软件管理能够提高服务自动化,节省很多人力物力,而且其管理的精准度也相对较高。现今,很多企业在软件运用的过程中,使得其管理机制更加科学,更加合理。因此,企业管理软件在市场中占据着较好的市场,但是其市场竞争度相当激烈。因此,目前企业管理软件虽然市场环境良好,但是在销售上如果没有较好的创新,那么将很容易被其他软件公司所淘汰。所以,做好市场环境与营销策略的一体化分析十分关键。 1.2企业管理软件特点分析 其一,企业管理软件具有较强的抽象性,具体来说其没有物理实物形态,所以企业管理软件的可见性非常低。这就使得其在营销方式上,要做出一定的改变。如果使用传统的方式去营销那么必然会与这个市场极不协调。而且很多软件产品,大多数以软盘以及光盘为实物形式,这就使得很多抽象性进一步地表现出来。因此,很多时候消费者未能通过其实体表现,将软件的基础性能进一步表现出来,从而影响其在市场上的销量。其二,企业管理软件具有大量生产的潜能,其有较好的广泛适用性。简而言之,就是可以用较低的生产成本来满足顾客的需求。图1为某软件公司企业管理软件生产成本图。从图1中,我们可以很清楚地看到,其固定成本较为稳定,但是其总收入却呈正比例上升。这就说明企业管理软件实际的应用性很强,其大规模的生产,必然会在市场中发挥出其应有的价值。其三,企业管理软件具有很好的持久性以及继承性。这也是大多数软件所具备的通用性质。企业管理软件可以采用升级的方式对软件进行更新,从而获取新的管理功能。这种版本升级不同于一般产品的实体更换方式,新版本在根本程度上必须继承旧版本,并在旧版的基础上对新版本进行改进和扩充。这样就能保证管理软件的与时俱进,避免与时代的发展出现脱节。而且企业管理软件在质量上不会出现磨损现象,其使用周期与时间也没有关联。这样就能有效地保证软件使用的持久性。同时还可以通过升级来不断提高软件使用的适用性以及适时性。 2企业管理软件在市场中的分析 (1)目前,企业管理软件在市场竞争中相当激烈。其一,与国际管理软件相比较,我国的企业管理软件较为适用于一些小型企业和部分中型企业。因此企业管理软件在中小型企业中拥有的客户相对较多。这也为企业管理软件拓宽了营销渠道,促进了我国经济的快速发展。其二,我国的企业管理软件与国外相比虽然还有一定的差距,但是其也避免了成本的大量输出,与市场局势不相顺和。就国内软件的竞争趋势而言,我国在企业管理软件上的竞争已经越来越激烈。一些企业还表现出极不成熟的特点。采取不规范的市场竞争手段。很多软件公司利用打折或者安装盗版软件来获取利润,这就使得很多正版的管理软件在价位上无法竞争,从而严重影响了企业管理软件在市场竞争中的可靠性。我国当前的软件企业仍然停留在小作坊的发展水平上,软件市场的不规范从而引起市场竞争的不规范。在目前,虽然企业管理软件生产开发商较多,但是其在品牌认知度上还不高,使得各企业之间出现一种同质化的竞争。这不仅使得竞争更加混乱,也不利于企业竞争的培养和提升。(2)要对软件市场发展格局进行分析。其一,软件市场的规模比较庞大,而且其政治经济环境较好。而且企业管理软件市场前景广阔。因此,目前软件企业数量较多,其为管理软件的发展提供了良好的市场基础。而且现代化企业的全面发展需要与信息相结合,才能够实现现代化管理。这就使得软件市场初具规模。其二,从迎合国际经济的趋势来看,从我国加入WTO以后,市场经济明显有所提升。经济发展模式以及理念也有了较大的改变。从而使得企业管理模式和理念也需要更新。引进先进的现代化管理软件对于市场而言,能够起到拓宽市场的作用。其三,目前我国硬件基础较好,这就为软件的实施奠定了基础。近年来,计算机技术和信息产业发展迅速。也为我国软件的发展提供了一定的基础。我国的企业管理软件具有成本低、效率高的特点,在市场中占据着很好的优势。其不断地改进与更新为营销提供了本土优势。所以目前我国软件市场发展的综合格局呈现出竞争的激烈性和实效性。(3)要对软件市场需求特点分析。在激烈的市场竞争中,谁赢得了市场,谁就赢得了竞争的主动权。在今天的买方市场环境下,想赢得市场,就必须赢得顾客。通过了解顾客的需求和潜在需求,开发出顾客需要的产品,是赢得顾客的保证。研究市场中软件产品的需求特点对于软件企业制定软件产品的营销策略具有重要的作用。要根据软件的需求特点,软件的功能、服务、品牌、价格进行良好的定位。这也是软件需求者购买软件的首选因素。在对企业管理软件进行消费时,软件的功能、品牌、服务、价格是软件需求者的首选因素,追求品牌软件,有求廉心理。图2为我国近几年以来企业管理软件市场数据。从图2我们可以很清晰地看到,人们对企业管理软件的消费水平呈现逐年上升的趋势。但是软件的综合走势却在2009年期间逐渐趋于饱和。因此对软件进行改革以及进行及时的更新是软件市场营销的资本和基础。所以企业管理软件公司在开发软件的过程中,一定要结合市场的营销环境进行全面地分析,开发出合适的管理功能,让管理软件拥有自己的特性,这样在竞争中才能占据一席之地。并且,在生产模式上,要对管理软件进行系统的分析,建立起较为科学合理的软件体系。图3为管理软件的产业分析图。从图3中,我们可以很清楚地看到软件的产业管理是十分严格的。生产者应当按照流程进行规范生产,要根据顾客的需求制作出适合其企业的管理软件,而不是进行大批量的复制,只有在不断的创新中自制生产,企业管理软件公司才能不断进步,营销得利。 3企业管理软件营销策略探讨分析 3.1强化营销渠道建设 为了加强企业管理服务单位内部体系的营销渠道建设,就需要在企业的服务单位内部成立相应的专门化软件管理组织,并设置对应的专业的销售、实施和售前等岗位,并及时地吸纳专业人才来充实营销队伍,同时对招纳的营销人员进行工作培训,不断地扩充其专业知识,从而不断地提升其服务水平和经营意识,从而为企业的营销出谋划策。另外,还需要加强对营销体系外的渠道进行开发,通过并购的策略来不断地削弱对手营销渠道,从而将对手的营销渠道进行整合,做到内外渠道两手准备,全面地推进企业营销渠道的建设,并完善企业的营销体系,提升企业的整体软件管理营销水平。 3.2培养和提升企业的核心竞争力度 企业的核心能力是企业提升竞争力的主要来源,在企业间的竞争中,只有拥有过硬的核心竞争力,才能在企业的经营管理 战略中不断地胜出,从而不断地占据市场主导地位。在企业战略的竞争中,要不断地将遇到的问题逐渐加以转化,并在实践中通过自身的处理,来逐步地培养企业在竞争中的力度。时刻注意对企业中出现的关键问题的把握,这些问题的持续性也为企业提高竞争能力提供了动力,同时也为获得竞争对手更有价值的资源提供了便利,从而逐渐地培养和提升企业的核心竞争力度。 3.3强化营销的分解和整合能力 在企业的营销管理中,重视价值链体系的建设极为重要,既不能盲目地扩建企业生产,也不能随意地抑制企业的发展,保证企业的发展处在一个合适的发展方向上,只有这样才能不断地促进企业的良好发展。在企业的关键管理营销战略中,还需要重点强调其分解能力,也就是保证营销战略中的每一个战略都能做到最为精致,避免出现一味地追求做大做全的战略目标。在管理软件的推广方面,要结合产业价值链的发展角度对营销项目运作中的每一方面都要进行明确的分工,将工作落实到位。对于厂商而言要专注于集中资源的发展力度,从而不断地提升其核心竞争能力。同时对于负责具体项目的工作人员来说,要专注于工作的细节和工作质量。企业的整合能力主要体现在能够发现社会上的有利资源,并加以有效地利用,通过价值链的不断设计,逐渐地将有效的社会资源向有增值优势的社会环节上进行转化。在对社会有利资源不断探索的过程中,要求产商具有较强的信息获取能力和经营能力,同时还要求企业在营销管理中具有敏锐的视角和独立的创新精神,从而不断地将获得的信息资源进行整合,提高企业的营销能力。由此可知,确保企业管理软件营销的分解和整合相得益彰,可以有效地提高企业管理软件的营销能力。 4结语 企业管理软件具有较好的营销市场,其对于企业的管理有着不可忽略的作用。因此,在对企业管理软件进行营销时,要结合市场的特点进行全面的分析,让软件迎合市场的需求并进行有针对性的开发和营销。这样才能更好地让管理软件发挥出其特效。同时,在营销过程中,要强化营销手段,提升企业的核心竞争能力,用科学的营销方法,让管理软件拥有更多的市场。 软件管理论文:网络广告认识网络管理和网管软件 在计算机网络的质量体系中,网络管理是其中1个症结环节,正如1个管家对于于大家庭糊口的首要,网络管理的质量也会直接影响网络的运行质量。那末,怎么给自己的网络选择适合的网络管理系统以及网络管理软件呢? 网络是新经济时期的基础设施,信息传递、办公、营销、服务、交换、文娱等各种流动均可以通过网络完成,网络的质量直接抉择了社会糊口以及经济糊口的质量。在计算机网络的质量体系中,网络管理是其中1个症结环节,正如1个管家对于于大家庭糊口的首要,网络管理的质量也会直接影响网络的运行质量。那末,怎么给自己的网络选择适合的网络管理系统以及网络管理软件呢? 网络管理 当前计算机网络的发展特色是范围不断扩展,繁杂性不断增添,异构性愈来愈高。1个网络常常由若干个大大小小的子网组成,集成为了多种网络系统(NOS)平台,并且包含了不同厂家、公司的网络装备以及通讯装备等。同时,网络中还有许多网络软件提供各种服务。跟着用户对于网络机能请求的提高,如果没有1个高效的管理系统对于网络系统进行管理,那末就很难保证向用户提供使人满意的服务。 作为1种很首要的技术,网络管理对于网络的发展有着很大的影响,并已经成为现代信息网络中最首要的问题之1。 实际上,网络管理其实不是1个甚么新概念。从广义上讲,任何1个系统都需要管理,只是依据系统的大小、繁杂性的高下,管理在整个系统中的首要性也就有重有轻。网络也是1个系统。追溯到一九世纪末的电信网络,就已经经有了自己相应的管理“系统”,这就是整个电话网络系统的管理员,虽然他能管理的内容无比有限。而计算机网络的管理可以说伴同着一九六九年世界上第1个计算机网络——ARPANET的发生便发生了,当时,ARPANET就有1个相应的管理系统。随后的1些网络结构,如IBM的SNA、DEC的DNA、SUN的AppleTalk等,也都有相应的管理系统。无非,尽管网络管理很早就有,却1直没有患上到应有的注重。这是由于当时的网络1是范围较小,2来繁杂性不高,1个简单的网络管理系统就能够知足网络正常管理的需要,因此对于其钻研较少。但跟着网络的发展,范围逐步增大,繁杂性增添,之前的网络管理技术已经不能适应网络的迅速发展。 网络系统范围的日趋扩展以及网络利用水平的不断提高,1方面使患上网络的保护成为网络管理的首要问题之1,例如排除了网络故障更为难题、保护本钱上升等;另外一方面,如何提高网络机能同样成为网络系统利用的主要问题。尽管可以通过增强或者改善网络的静态措施来提高网络的机能,比如增强网络服务器的处理能力、采取网络交流等新技术来拓宽网络的带宽等,然而网络运行进程中负载平衡等动态措施也是提高网络机能的首要方面。通过静态或者动态措施提高的网络机能分别称为网络的静态机能以及动态机能。而网络的动态机能的提高是通过网络管理系统即“网管系统”来加以解决的。 1般说来,网络管理就是通过某种方式对于网络状况进行调剂,使网络能正常、高效地运行。其目的很明确,就是使网络中的各种资源患上到更为高效的应用,当网络呈现故障时能及时作出讲演以及处理,并调和、维持网络的高效运行等。1般而言,网络管理有5大功能,它们是:网络的失效管理、网络的配置管理、网络的机能管理、网络的安全管理、网络的计费管理。这5大功能包含了保证1个网络系统正常运行的基本功能。 现代计算机网络管理系统主要由4个要素组成:若干被管的(Managed Agents);至少1个网络管理器(Network Manager);1种公共网络管理协定(Network Management Protocol);1种或者多种管理信息库(MIB,Management Information Base)。其中网络管理协定是最首要的部份,它定义了网络管理器与被管间的通讯法子,规定了管理信息库的存储结构、信息库中症结字的含意和各种事件的处理法子。目前有影响的网络管理协定是SNMP(Simple Network Management Protocol)以及CMIS/CMIP(the Co妹妹on Management Information Service/Protocol)。它们代表了目前两大网络管理解决方案。其中,SNMP流传最广,利用至多,取得支撑也最广泛,已经经成为事实上的工业标准(详见技术部份)。 网管软件 网络管理的需求抉择网管系统的组成以及范围,任何网管系统不管其范围大小,基本上都是由支撑网管协定的网管软件平台、网管支持软件、网管工作平台以及支持网管协定的网络装备组成。其中网管软件平台提供网络系统的配置、故障、机能及网络用户散布方面的基本管理,也就是说,网络管理的各种功能终究会体现在网管软件的各种功能的实现上,软件是网管系统的“灵魂”,是网管系统的核心。 网管软件的功能可以归纳为3个部份:体系结构、核心服务以及利用程序。 首先,从基本的框架体系方面,网管软件需要提供1种通用的、开放的、可扩大的框架体系。为了向用户提供最大的选择规模,网管软件应当支撑通用平台,如既支撑Unix操作系统,又支撑Windows NT操作系统。网管软件既可以是散布式的体系结构,也能够是集中式的体系结构,实际利用中1般采取集中管理子网以及散布式管理主网相结合的方式。同时,网管软件是在基于开放标准的框架的基础上设计的,它应当支撑现有的协定以及技术的进级。开放的网络管理软件可以支撑基于标准的网络管理协定,如SNMP以及CMIP,也必需能支撑TCP/IP协定族及其它的1些专用网络协定。 网管软件应当能够提供1些核心的服务来知足网络管理的部份请求。核心服务是1个网络管理软件应具备的基本功能,大多数的企业网络管理系统都用到这些服务。各厂商常常通过提供首要的核心服务来增添自己的竞争力。他们通过改良底层系统来补充核心服务,也能够通过增添可选组件对于网管软件的功能进行扩充。核心服务的内容良多,包含网络搜寻、查错以及纠错、支撑大量装备、友好操作界面、讲演工具、警报通知以及处理、配置管理等等。 另外,为了实现特定的事务处理以及结构支撑,网管软件中有必要加入1些有价值的利用程序,以扩大网管软件的基本功能。这些利用程序可由第3方供应商提供,网管软件集成水平的高下取决于网络管理系统的核心服务以及厂商产品的功能。常见网管软件中的利用程序主要有:高档警报处理、网络仿真、策略管理以及故障标记等。 由上面的介绍可以看出:体系结构、核心服务以及利用程序3者之间是互相联络、密不可分的。体系结构提供1个系统平台,1个多种资源有机联络的场所;核心服务提供最基本、最首要的服务,就象糊口中保持人正常生存的部份;利用程序知足具体的、个性化的需求,有如糊口中不同人的不同习气以及喜爱。 软件管理论文:软件公司的商帐管理 软件公司的商帐管理 北京中关村的一家软件企业,同时兼营一些网站制作及推广业务。公司在经营中累积了大量的债权,严重影响公司的运营。这些债权有这样的特点:1、债权极为分散,债权总数只有一百多万元,但是却有一千多笔,最少的一百块,最多的也只有几万块;2、时间长,这是公司经营中历年积累下来的,大约有三分之一已经过了两年的诉讼时效;3、材料混乱,这些债权的形成以及相关材料很多无处查询,没有人很清楚的知道;4、这样一些小的债权还在不断产生;5、公司并没有任何人具体负责这些债权的催收。 无疑那家软件公司的债权催收将面临巨大的困难。1、债务人公司是否存在?一些小的公司,经营不好就不去年检,让公司自然消亡,公司都没有了,自然债权也要不到了;2、公司的经营地址和联系方式是否发生变化?一般的公司都是租赁写字楼办公,一年一搬家很常见,一搬家联系方式等全部发生变化,必须重新找到新地址所在;3、原来的经办人是否还在?这看起来与债权的催收并没有关系,其实关系很密切,一般小公司没有完善的文件保管制度,经办人走了,这么小的一件事情,也许移交工作时并没有做交代,没有人知道这件事情,那么当然不会轻易付给你钱;4、如果债权数额较大还要考虑,债务人是否有偿还的经济能力。 如果债务人不想还钱,那么只有起诉,但是起诉的成本巨大。无论案件的大小,基本工作量是一样的,必须捋清法律关系,整理好证据材料,去工商局查询债务人的工商注册材料,找到公司注册地址和法定代表人,然后才能制作诉讼文书。起诉要去法院五次,立案一次、开庭一次、领判决书一次,申请执行一次,领执行款一次,如果幸运的话,可以少去几次,当然也可能比五次要多。很多小公司被郊区的税收优惠政策吸引注册在郊区,但是却在市里办公,这样必须要去郊区起诉,往返郊区的时间和交通成本是很高昂的。到法院起诉要交诉讼费,工商局查询要交纳查询费,如果加上律师费,每个案件的成本可能高达一万元,那么对于标的额在一万以下的诉讼案件根本就没有诉讼的意义。 根据美国商法联盟调查数据显示,当逾期时间为一个月时间,追帐成功率为93.7%,当逾期半年时,成功率降为57.8%,当逾期两年左右,成功率为13.5%。美国企业的应收帐款回收期平均只有37天,而中国企业平均为100多天。美国公司追帐的成功率为60%以上,而中国企业的成功率不到20%。根据中国的国情,以及我们工作中的实务经验,对于这些小额的债务必须建立一套完整的催收制度才能有所保障,下面将探讨这个催收制度的建立。 一、健全内部合同管理 合同管理不仅仅是保管合同原件,更需要保留好合同相关的往来传真、备忘录、相关人员签署的收货凭证等等,都要妥善保管好。很多公司是没有合同管理的,对于一些小的合同,原件虽然在公司的专人手中,但是在执行过程中有关材料随意分散在业务人员手中,业务人员走了,该资料也就没有了,合同的执行情况也就没有人知道了。一旦发生纠纷没有人能完全知道事情的来龙去脉,没有人手头有完整的材料。 合同保管要强调责任制,在合同执行阶段,合同可以由业务人员或业务部门经理保管,凡是和合同执行有关的材料统一在第一时间交给该人保管。业务办理完毕应当完整移交到公司专职保管人员。我们建议在移交的材料中加上一个合同执行说明,由具体经办人对合同的执行情况进行说明,将材料列个清单,可以做成格式直接填写。 二、强化催收 中国讲人情,在我们的实务工作中发现,越是关系好,可能款项越晚兑现。大部分款项并不是对方没有能力支付,而是不想支付,想想现金在自己公司握着多主动,而且可以生息,总比还给别人好。所以很多公司是看哪个催得急,谁急就先付给谁。而如果碍于面子,就只能等到最后了,万一对方资金一紧张,这帐就成了陈年老帐了,所以要加强货款催收。 催收也要讲策略,按过程分别进行排布。 第一步,直接由业务人员负责催收。业务员的待遇是与业务量挂钩的,业务人员应当对帐款承担催收责任。业务人员是公司最底层的工作人员,可以可怜兮兮去找对方,“大哥,你要是不给我钱,我就要失业了。”,这样博得同情心,小的帐款一般都能这样催收回来。这一步的时间不要太长,给予两周的时间就行了,没有效果进入下一步。 第二步,财务部核帐。财务部核帐有两个目的,第一告诉对方这笔帐款开始移交到公司统一来处理了,二是和对方核帐,确认欠款的事实与数额。这个很重要,一旦发生诉讼有这张核帐单,双方的法律关系就非常的简单了,不需要对合同执行中的质量、数量等双方可能发生争议的事项进行纠缠了。这个时候双方还没有闹僵,拿到这样的核帐单一般比较容易。当然财务部目的不是要核帐,还要催收款项,财务部人少,自然没有人专职来打要帐电话,可以让单位前台或其他人以财务部的名义打这个电话。 第三步,以上措施都没有效果,那么说明对方有想赖帐的可能。如果对方说,你再等几天,我们马上有一笔到帐,一到就给你,这样的话,最多只能信一次,不要有太多的指望。以上两个步骤已经进行了三个月,仍然没有效果就应当考虑移交公司法律部门,由法律部门进行处理。 三、果断采取法律措施 很多公司顾虑采取法律措施会伤了彼此友好的业务关系,失去了一个客户。这是中国国情,确实是要考虑的,但是只要想想,做任何的业务都是以赢利为目的的,如果对方不支付帐款,那么要这个友好的业务关系做什么?与其拖到以后翻脸,再对簿公堂,不如现在采取法律措施早点将款项收回来更 为塌实。 采取法律措施,也能考虑到中国国情,不是一开始就直接将对方告上法庭。可以先给对方打招呼,说要采取法律措施了,再不理睬,发个律师函,最后才起诉,这样的话对方就自己陷入了不人情了,再有什么埋怨也不好讲了。 软件管理论文:ISO9000在软件工程管理的应用 杨挚 ISO9000系列标准及软件质量认证 近年来,国际上影响最为深远的质量管理标准当属国际标准化组织于1987年公布的ISO9000系列标准,这一国际标准发源于欧洲经济共同体,但很快就波及美国、日本及世界各国。到目前为止,已有70多个国家在它们的企业中采用和实施这一系列标准。中国对此也十分重视,也采取了积极态度。一方面确定对其等同采用,与其相应的质量管理国家标准系列GB/T19000;同时积极组织实施和开展质量认证工作。计算机软件行业自然也和其它领域一样被席卷进去。 ISO9000系列标准如此迅速地在国际上广为流行,其原因主要在于: 1)市场经济,特别是国际贸易的驱动。无论任何产业,其产品的质量如何都是生产者、消费者、以及中间商十分关注的问题。市场的竞争很大程度上反映了在质量方面的竞争。ISO9000系列标准客观地对生产者(也称供方)提出了全面的质量管理要求、质量管理办法,并且还规定了消费者(也称需方)的管理职责,使其得到双方的普遍认同,从而将符合ISO9000标准的要求作为国家贸易活动中建立互相信任关系的基石,并且在国际贸易中,把生产者是否达到ISO9000质量标准作为购买产品的前提条件,取得ISO9000质量标准认证被人们当作进入国际市场的通行证。 2)ISO9000系列标准适用领域广阔。它的出现最初针对制造行业,但现已面向更为广阔的领域,这包括: (1)硬件:指不连续的具有特定形状的产品,如机械、电子产品,不只是计算机硬件。 (2)软件:通过支持媒体表达的信息所构成的智力产品。计算机软件当然属于其中。 (3)流程性材料:将原料转化为某一特定状态的产品。如,流体、粒状、线状等,通过瓶装、袋装等或通过管道传输交付。 (4)服务:为满足客户需求的更为广泛的活动。 ISO9000系列标准的内容 2000版ISO9000系列标准的内容 ISO9000:2000质量管理体系基本原则和术语 ISO9001:2000质量管理体系——要求 ISO9004:2000质量管理体系——业绩改进指南 ISO19011:2000质量和环境审核指南 2000版ISO9000族标准的特点 新版ISO9000族标准对比现行的1994版而言,具有以下的特点。 1.面向所有组织,通用性强。新版ISO9000族标准适用于所有的产品类别、所有的行业和各种规模的组织,总之,新版标准面向所有组织,通用性很强,将成为适用范围最广的国际标准之一,表现在: (1)新版标准消除了1994版对硬件产品制造业的偏向性。 2000版标准巧妙地采用了“产品实现”、“动作控制”、“过程的测量和监控”和“产品的测量和监控”等词汇和要求,消除了行业的偏向性,对非制造业贯彻ISO9000族标准所带来的方便是不容置疑的。 (2).为特种行业制定行业附加要求奠定了共同的基础。有些行业确有其特殊性,2000版本标准允许在ISO9001基础上增加行业特殊要求的条款。这样既能使所有组织的质量体系基本要求具有一致性,又确保行业特殊要求的适用小性。已有软件.通讯.汽车.等行业都已用此方式制定各自的行业特殊要求。 (3)。‘‘允许裁剪“的规定使2000版ISO9001标准的适用范围扩大到1994版ISO9001/9002/9003/三个保证摸式的标准户群。三个保证没摸式的差异都在第7章产品实现过程中,2000版ISO9001,1.2允许对第7章要求中不影响满足顾客和法规要求,不及组织责任的标准条款进行裁剪,从扩大了ISO9001标准的适用范围,又获得”以一顶是三(三个质量保证摸式),减少标准数量的功效。 (4)。考虑了小型企业的适用性。2000版标准保留了大小企业都是必要的条款,有的还进行强化,对小型企业可能不太上适合的具体要求则进行弱化。使2000版ISO9001标准的通用性更强了。 2.确立八项原则,统一留念理念。 3.鼓励过程方法,操作性强。2000版标准的修订采用了过程摸式,提倡用过程方法来识别和建立体系。 4.强化关键:领导作用。 5.自我评价测量,突出改进。 6.关心各相关方,利益共享。 ISO9000系列标准原本是为制造硬件产品而制定的标准,不能直接用于软件制作。后来曾试图将ISO9001改写用于软件开发方面,但效果不佳。于是,以ISO9000系列标准的追加形式,另行制定出ISO90003标准。这样,ISO90003就成了用于“使ISO9001适用于软件开发、供应及维护”的“指南”。不过,在ISO90003的审议过程中,日本等国曾先后提出过不少意见。所以,在内容上与ISO9001已有相当不同。ISO90003(即GB/T19000.394),全称《质量管理和质量保证标准第三部分:在软件开发、供应和维护中的使用指南》。 制定与实施ISO9000系列标准 1)强调质量并非在产品检验中得到,而是形成于生产的全过程。ISO90003叙述了需方和供方应如何进行有组织的质量保证活动,才能得到较为满意的软件;规定了从双方签订开发合同到设计、实现以至维护整个软件生存期中应当实施的质量保证活动,但并没有规定具体的质量管理和质量检验方法和步骤。 ISO90003的核心思想是“将质量制作入产品之中”。其实道理是很明显的,软件在完成编码以后,不论花多大的力气用于测试,提高质量都是有限度的,更不必说需求规格说明存在的问题常常是测试无法发现的。事实上,软件产品的质量取决于软件生存周期。 2)为把握产品的质量,ISO9000要求“必须使影响产品质量的全部因素在生产全过程中始终处于受控状态”。为使软件产品达到质量要求,ISO90003要求软件开发机构建立质量保证体系。首先要求明确供需双方的职责,针对所有可能影响软件质量的各个因素都要采取有力措施,作出如何加强管理和控制的决定。对与质量有关的人员规定其职责和职权,使之责任落实到人,产品质量真正得到控制。 3)ISO9000标准要求证实:“企业具有持续提供符合要求产品的能力”。质量认证是取得这一证实的有效方法。产品质量若能达到标准提出的要求,由不依赖于供方和需方的第三方权威机构对生产厂家审查证实后出具合格证明。显然,如果这一认证工作是公正的、可靠的,其公证的结果应当是可以信赖的。正确实施产品质量认证制度自然会在促进产品质量提高,指导消费者选购产品,提高质量合格产品企业的声誉,以及节省社会检验大量费用等方面发挥积极作用。 生产企业为了达到质量标准,取得质量认证,必须多方面开展质量管理活动。其中,企业负责人的重视以及企业全体人员的积极参与是取得成功的关键。 4)ISO9000标准还强调“质量管理必须坚持进行质量改进”。贯彻ISO9000标准是企业加强质量管理、提高产品质量的过程,这个过程包含许多工作绝非轻而易举、一蹴而就所能奏效的。即使已经取得了质量认证也不能认为一劳永逸而放松质量管理。实际上认证通常以半年为有效期。取得认证之后尚需接受每年1~2次的定期检查,其目的在于促使企业坚持进 行质量改进。 软件管理论文:论软件生命周期的信息安全管理 1软件生命周期中信息安全管理控制 在各主流IT或信息安全评价体系中,都或多或少对软件生命周期中的信息安全控制进行了要求和规定,本文综合了流行的ISO27000,Cobit5,PCI-DSS等评价体系,结合国家信息安全标准,及审计咨询公司常用的SOX,SAS70等第三方评价标准,就如何设计与实施软件生命周期中信息安全的相关控制点归纳总结如下 1.1软件生命周期中信息安全的整体要求 (1)制定并正式的软件生命周期控制文件:明确说明开发过程的控制方法和人员的行为准则,并应充分考虑对信息安全方面的要求,确保开发出来的系统可以满足公司整体信息安全的需要、相关法律法规的信息安全要求,以及特殊部门或流程的信息安全需要。(2)软件生命周期中对信息安全的总体要求:虽然由于系统所对应企业、部门、业务或流程的差异,每个系统的安全要求有所不同,例如通常来讲,金融行业对安全的要求较高,金融行业里,涉及客户信息、财务信息的系统安全要求较高等等。每个企业、部门必须根据自己的流程评估风险,确定对数据完整性、安全性、可用性的要求,从而进一步确定信息安全要求。 1.2对环境的要求 (1)确保开发环境与实际运行环境物理相分离,开发环境应该由一系列足以支持开发工作且尽量与生产环境接近的设备搭建而成,所有的开发和测试工作均应该在此开发环境中进行。在实际工作中,也可以实行开发环境、测试环境及生产环境的分离控制,或开发环境、测试环境、用户验收测试环境及生产环境的分离控制。在上述环境中,开发环境可以相对较弱,以可以支持代码开发、进行模块测试及基本的集成测试为标准;测试环境,特别是用户验收测试的测试环境,则要求较高,应与实际环境保持一致或尽可能接近。(2)对开发环境(及测试环境)实施安全控制:例如未经授权的人员不得访问开发环境(测试环境),对开发(测试)中的软件实施严格的版本控制,开发(测试)环境的机器必须安装杀毒软件并及时更新病毒库,并及时对操作系统及相关应用软件进行补丁修正和升级。 1.3对人员的要求 (1)软件生命周期中的工作人员必须具有足够的专业胜任能力及职业道德素养,足以从事相关工作。(2)对开发人员和测试人员实施职责分离,开发人员未经授权不得访问或修改生产环境的程序或数据。1.4业务需求阶段在业务需求制定阶段,应注重对信息安全方面的需求制定。在业务需求书中,应明确对系统安全的详细要求,并在系统设计阶段开始之前,由各利益相关方(含信息安全的负责人)书面确认。业务需求阶段完成后,任何对系统安全需求的修改,也应视为对业务需求书的修改,需经过正式的系统变更流程。 1.5系统设计阶段 (1)对系统进行整体设计和详细设计,通过分析系统的数据流,包括数据录入、系统内部模块间的数据传输、信息存储、数据库访问及管理、系统间数据传输,、数据输出等,确保实现所有过程中对数据的全面保护,特别是对特定业务的特定数据进行保护,例如密码,客户信息,财务数据等,对重要数据的存储和传输设置权限和校验,并进行加密。(2)在软件的应用层面应至少包含如下的控制设计:i)输入检查:对系统的输入数据进行验证,比如设置强制输入完成才可进一步处理的字段;对输入数据的类型或范围进行检查,例如日期;对输入数据的长度进行检查,例如手机号码位数;对数据进行正确性校验,例如利用身份证校验码策略检查身份证号码,对比身份证号码与出生日期。ii)数据处理过程中的检查:对系统处理过程中的数据进行检查,比如在自动化转换或传输过程中,比对数据记录的总条数和数据总和;设置流程,提醒将系统数据与纸质数据进行比对验证。iii)输出检查:对输出结果的合理性进行系统检测,以及设置流程提示将系统输出数据与手工证据进行核对等。 1.6系统实施阶段 制定代码编写安全规范,要求开发人员参照规范编写代码;严格禁止不安全的实施方法,例如将用户名或密码编写在程序中,使用未经审核过的代码包,使用未授权的网络工具等。对源代码的访问和修改必须严格控制,例如通过配置管理工具进行代码访问及代码版本控制。 1.7系统测试阶段 (1)系统测试整体要求:对系统测试验收的控制方法和人员行为准则应进行书面规定,确保系统在开发期间直至验收需对软件、硬件、服务等元素进行一系列的测试,确保系统及数据的完整性和可用性。对源于生产环境的测试数据去敏感化,如客户身份证信息等,在传输过程中进行加密,并确保在测试后被完全清除。(2)测试通常应覆盖业务需求书中的所有要求,包括系统功能、软硬件性能、平台兼容性、系统容量、系统恢复等,也应特别保护对信息安全的测试,如防攻击测试、穿透性测试等。(3)用户接受测试:接收测试的测试人员应由非开发人员担当,且必须包含业务人员。测试范围应涉及系统所有的功能,包括数据库及操作系统。接收测试也应特别注意对系统安全方面的测试,例如审查关键代码,查找后门程序及穿透性测试等。(4)测试结果:测试结果需书面记载,与用户期望结果进行比对和确认。此记录及确认中需包含对信息安全方面的测试结果,确认测试结果符合系统设计及公司整体的信息安全需要,或已经授权采取了充分、恰当的补偿性措施。 1.8系统上线 (1)系统上线前需进行如下确认,信息安全评估已充分进行,安全方面的缺陷已被充分确认及记录,系统的性能和容量可以满足要求,所有与系统相关的补丁或更新已经实施,所有开发中遇到的问题已得到妥善解决,建立了充分恢复措施,测试数据已被擦除,服务水平协议已经建立,以及各利益相关者已经对系统上线做了批准等。(2)系统上线时需进行的操作:对初始数据迁移或输入的确认,对技术人员及用户进行培训,设置恰当的上线窗口期并对可能产生的业务中断进行准备,明确新旧系统交接程序,制定详细的系统交付清单,提供软件的使用指南,确保上线后对系统提供持续性支持(例如IT服务台)。另外,对旧系统信息,包括系统配置、操作手册、支持软件、系统数据等进行归档。(3)上线后审核:系统运行一段时间后对系统进行评估,评价系统对业务的满足情况,其中包含信息安全的符合情况、信息安全控制措施的运行效果和效率,发生的信息安全事故以及潜在的需要改进的信息安全措施。 1.9质量控制 在整个软件生命周期中实施质量控制以确保信息安全策略的有效实施,包括评价系统风险(例如与业务需求、技术、效果、成本、时间相关的风险),评估及定义系统的安全需求,且在整个软件生命周期的节点上进行检查,以确 保安全需求在开发的系统中进行了充分实施。 2结论 本文通过九个方面,就如何在软件开发生命周期中进行信息安全管理,提出了较为全面和系统的设计与实施办法,可以满足当前流行的绝大多数信息安全评价体系的要求,对企事业单位的信息安全和软件质量管理有一定的参考意义。 软件管理论文:对RBAC的权限管理软件的开发及应用 现在几乎每台个人电脑上都安装了浏览器,这导致了只要在一个局域网的范围内,如果不做权限限制,每台计算机都能轻易的访问Web项目,所以权限管理是Web应用项目中关键环节之一。如果不建立权限管理系统,任何“非法用户”都可以轻而易举通过浏览器访问到Web应用项目中的所有功能,这将对信息系统的安全造成威胁。因此,应用系统均需要相关的权限管理软件进行权限检测与管理,确保只有经过授权的用户才能正常合法的使用已授权的功能,同时禁止那些未经过授权的非法用户进入系统。 因此,开发一套具有通用性并能克服上述不足的权限管理软件来确保信息系统的信息安全是十分必要作。本文基于B/S架构,设计开发了一套权限管理软件。该软件用户体验性强,客户端无需下载控件,能同时支持多种数据库;实现了按一定的组织结构访问网页,确保信息系统安全。 1 软件设计 1.1软件整体设计 权限管理软件设计是基于角色的访问控制(Role-Based Access Control,简称RBAC)设计模型。RBAC是美国NIST于20世纪90年代初提出了一种基于角色的访问控制模型。其核心思想是:不是直接将用户和权限进行关联,而是引入“角色”概念,将代表行为的权限和角色相互关联,角色与用户相互关联,用户和权限通过角色而间接关联。 在软件具体设计中,首先通过系统的域验证来保证用户合法性;域验证通过后,从数据库中读取该用户具备哪种角色,然后根据用户的角色,来确定该用户可以访问的页面;最后将这些页面生成菜单,从而实现权限管理的功能。 1.2软件体系架构的设计 在软件体系架构设计中,采用分层式结构,添加了Model层,并将数据访问层做了一定程度上的扩展,具体软件体系架构图1所示。 表示层:是系统的展示部分,负责用户与整个系统的交互。表示层仅仅包含页面上控件的逻辑代码,只与界面上的元素有关,而与系统的业务逻辑无关。 业务逻辑层:是整个系统的核心。它与这个系统的业务逻辑相关。在权限管理软件中,业务逻辑层的相关设计主要涉及到页面、角色和菜单处理的业务逻辑。如果涉及到数据库的访问,则调用数据访问层。 数据访问层:其功能主要是负责数据库操作。该层包括DAL接口、DAL工厂、Oracle Dal、SqlServer Dal以及最后产生的Model层。该数据访问层中完全采用了“面向接口编程”的思想。抽象出来的IDAL模块,脱离了与具体数据库的依赖,从而使得整个数据访问层更加有利于数据库迁移。只需添加一个相应数据库版本的DAL并且实现IDAL接口即可连接到各种数据库。业务逻辑层和表现层不需要任何的改动,从而提高了代码的复用率。 实体层:该层主要将数据库中定义的表映射成程序可以访问的业务实体,并且只定义实体的属性,并无实体的行为。该层由数据访问层产生,贯串了业务管理层和表示层。权限管理系统主要涉及的实体有:用户类、页面类和角色类等。 1.3系统功能设计 权限管理软件主要包括四个模块:用户管理、页面管理、角色管理和菜单管理。具体功能架构图如图2所示。 图2 权限管理软件功能架构图 1.4系统数据库设计 数据库设计是软件开发过程中的基础环节。良好的数据库设计不但有利于提高系统的整体性能,而且也方便将来使用过程中的数据维护。权限管理软件数据库设计达到了第三范式(3NF),这种设计能够有效保证数据的完整性和参照完整性,同时降低数据的冗余度。 2 软件实现 该软件实现了与域无缝集成。用户登录后首先通过域验证来确保登录用户的合法性。这样既方便了用户,避免用户记住多个用户名和密码也保证了系统的安全性。 在权限管理系统中,利用了C#中DLLImport直接调用Windows已经存在的域验证功能。DllImport所在的名字空间是 using System.Runtime.InteropServices。 MSDN中对DllImportAttribute的解释是这样的:可将该属性应用于方法。DllImportAttribute 属性提供对从非托管 DLL 导出的函数进行调用所必需的信息。作为最低要求,必须提供包含入口点的 DLL 的名称。 3 软件应用 权限管理软件已应用在多个系统中,系统运行稳定,响应速度快,操作简单,功能健全,满足了用户的需求。权限管理软件的直接使用,在很大程度上节省了开发人员的时间和精力,提高了软件开发效率。随着信息化建设的步伐越来越大,B/S架构的系统的投用越来越多的投用,该软件的应用范围将越来越广阔。 软件管理论文:做管理项目就象用杀毒软件 一天到一家公司拜访一位老总,席间偶然谈起这家公司电脑中病毒泛滥,弄得许多电脑不敢使用。由于我一直对电脑技术颇有业余兴趣,就自告奋勇地提出要教他们杀毒。主人同意之后,我就开始在一台电脑上操作示范。我先用公司现有的杀毒软件进行查杀,杀掉了部分病毒。然后我又从互联网站上下载了若干软件,轮番查杀。有的软件只能防不能杀,有的软件一个病毒也查不出来,有的软件查出病毒却杀不了,有的软件杀不了几个病毒,却造成电脑出现种种异象,比如死机。尽管如此,这些杀毒软件还是功劳不小,杀掉了不少病毒,电脑可以正常使用了。然后我又对各个杀毒软件进行分别处理,留下了个别经证明能查杀病毒的软件,面对那些干不了活的甚至造成电脑死机的软件,试过就删了。还有几个病毒无论用哪个软件都杀不掉,最后我只好删掉有毒文件。 查杀病毒示范做完之后,我就和老总坐下来谈公司管理,老总就谈起以前也请过管理顾问来做诊断和治疗,可是那些项目做完之后,许多问题依然存在,弄得大家很失望,老总问我这是怎么回事。我顺手就把杀毒软件和管理项目做了比较,说明各个管理项目就象一个个杀毒软件,每一个项目至少只能解决管理中的一部分问题,不能指望引入一了一套管理项目,就可以一劳永逸地解决所有问题。不少人一开始对某些管理项目(比如ISO9000)抱有不切实际的幻想,指望它们能包医百病;一旦事实证明并不是那么回事,他们又对所有管理项目一概怀疑和排斥,觉得还是自己凭经验治理的好。 我就接触过一个老板,开始是不顾公司一片混乱,哭着喊着非要搞ISO9000不可,劝都劝不住。因为他觉得一搞ISO9000,一切都会好起来。后来刚开始搞ISO9000,他一听说ISO9000基本上不涉及财务,不能帮助他解决财务管理中的问题,大大出乎他的意料,立马就对ISO9000失去了兴趣。后来人们花了九牛二虎之力总算把这家管理混乱的公司的ISO9000做完了,而且通过了认证,这位老板却一点感谢没有;反而觉得公司里还有很多问题,ISO9000没做好,连费用都不想付,证书也不想拿,而在管理上却基本上回到了老路上去。 不少类似企业好不容易走上了"法治"轨道,略受挫折,就又一头扎回到"人治"的轨道,而且再也不肯回头,让人觉得真是可悲又可笑。文秘站版权所有 其实各个管理项目又岂止是不能解决所有问题?有的项目还根本不适合你和企业,至少是不适合现阶段下的你的企业,如果硬要导入,说不定会使你的企业"死机"呢! 有的管理项目,恐怕也只能"查",不能"杀";可以帮您诊断企业一些毛病,至于解决问题,对不起,恐怕您得另请高明。再者,现在人们推出的各种管理项目五花八门,即使您的企业把这些所有的项目都"做"了,也不可能解决您企业所有的问题,就象将现有的全部杀毒软件都用上,也有可能无法解决全部病毒一样。 您在企业实施的各种管理项目,还存在一个互相衔接、配套的问题,否则就会互相抵销或冲突。这也象各种杀毒软件一样,不能随便混用。有一次我在一台已经安装了某种杀毒软件的电脑上运行另一个杀毒软件,结果一运行就死机,三番五次,不知原因。后来我把电脑原先的杀毒软件卸载掉,新的杀毒软件才得以顺利运行。 最后,您的企业要做什么管理项目,需要一番认真调查,深入了解和系统思考,这一点可不象运行杀毒软件那样,可以不管三七二十一,拿过来试一下再说。 胡乱做一个管理项目,有时不仅无助于企业,还会有害于企业,使企业付出代价。至少,做一个无效的管理项目,即使无害,你也是要花一笔顾问费的。 总之,企业要导入某一个管理项目,一定要事先进行认真调查,深入了解和系统思考。要考虑以下因素: 1)这套管理项目是否确实适合于本企业? 2)这套管理项目用来解决哪些问题? 3)这套管理项目不能解决哪些问题? 4)这套管理项目与其他管理是否兼容、如何兼容? 5)对于通过管理项目实在解决不了的问题,您是否有决心和信心整个端掉染病的个人或群体? 如果您充分考虑了以上问题,我们认为您已经在实施管理项目之前有了充分的思想准备,实施项目的主观因素已经成熟了。 软件管理论文:软件技术在信息管理上的应用 1、计算机软件技术有利于培训信息管理的保存 很多企业在对员工进行多次的培训之后,大量的培训信息管理工作有所流失。而利用计算机软件技术进行培训信息的保存,有助于企业建立相关的人才培训信息,及时保存数据对相应的信息进行存底和保留。这样既方便日后培训档案的查找,节省时间节省人力资源,以及查找到的相关数据准确较高。以上皆是当今人力资源开发的关键,能否掌握住大量的人才信息和人才资料成为企业培训的重要内容。企业在对员工进行培训后,应该及时保存其培训资料,并及时建立相关的培训基础资料,方便以后考核的参考。企业更应该完善管理,充分利用计算机软件技术,做好人员资料的管理工作。 2、利用计算机软件技术进行培训信息管理的相关内容 2.1信息系统的采集输入。信息的输入工作重点是培训信息的联网输入。其信息的输入包括对基本的信息和培训信息的输入。培训信息地的输入是该人员的工号、培训的单位,以及何时参加该培训,以及培训结束的时间,另外培训的内容是什么,培训的考核成绩,证书的编号是什么等相关的内容。这些相应的内容是通过网络传给相关的服务器,或者拷贝到相应的信息系统中去,由具体经办人员根据个人的相关培训信息的整合之后,并利用相关的计算机软件技术进行输入操作工作。基本信息输入工作包括各自的姓名、性别、工号、籍贯、身份证号码,出生年月等一系列的基本信息。工作的基本信息,比如说工号、职务、编制、岗位名称、岗位性质、在聘情况。其中还包括本人的学历情况及获奖的情况,即毕业学校、毕业专业、学历情况以及荣誉名称、获取日期等。 2.2培训信息管理系统的主要功能。方便查询。培训信息系统的建立和完善,是企业方便查询员工基本情况的便利途径。通过该系统的检索查询,能快速为需要的人员提供相应的查询资料。能否及时准确地查询到相关的培训信息,是大大降低信息成本提供工作效益的关键所在。信息库的保护。信息海量化的同时,各种电脑病毒以各种形式存在于信息中,是信息库安全维护的一大隐患。如果病毒乘虚而入,将会对信息库造成信息泄露,数据丢失系统崩溃等严重后果。对相关重要信息的保护需要采用最新的防毒软件,并对相关信息进行独立备份和保存。采取行之有效的保护手段,建立安全、完善的员工培训信息库管理体系。管理设置的权限。通过利用加密的技术,根据相关人员的职务设置不同的访问权限。专门的系统管理人员对培训信息管理和更新,允许对某一模块的修改和设置权限。对于信息录入人员、查询管理工作的人员、信息修改人员分别进行规范的管理,以便保证系统信息的安全性和完整性。打印功能的丰富。对于已经录入的培训信息,根据需要可以打印一个人的全部资料,也可以根据需要任性一部分人的信息打印,再或者需要的情况打印一段时间的资料信息等。丰富的打印功能,能快速满足企业对人员信息资料的需要。 3、重视计算机软件技术在信息管理中的应用 计算机技术的快速发展,信息化时代已成为不可阻挡的趋势,计算机软件的应用更是与人们的工作息息相关。尤其是企业的信息管理更是需要用到计算机软件技术,由于管理人员的更替,容易造成档案流失,自从计算机技术融入到信息管理中,从最大程度解决了人力、物力的管理缺失问题。,在企业及各个领域发挥着越来越重要的作用,也是信息管理工作效率显着提升。 3.1计算机软件技术的应用方便保存和浏览。企业通过利用计算机软件技术进行培训信息管理,方便了繁琐信息的管理,也便于长久的保存员工的培训情况。同时,计算机软件技术的准确性、统一输入和规则,使企业的管理者在浏览信息时更快捷更全面。这样可以避开繁杂的查询,可以杜绝信息不全的缺点,能够有效及时地找出企业所需要的人才,企业领导的思路也理顺。 3.2培训企业相关的人才。如何有效推进计算机软件技术在信息管理中的应用,需要企业重视培训和引进相关计算机软件系统工作,营造积极向上的人才机制。对于员工培训信息及取得的成绩需要有所了解才能充分使用人才,员工的相关培训资料信息企业要及时储备完善。亦可让人才引入人才带动的方式,加强员工的计算机软件技术培训,从而能够使企业的计算机软件技术迅速发展。 3.3计算机软件技术进行培训信息管理的实现与设计。为使培训管理工作更加系统化、自动化和科学化,应系统的开发和使用计算机软件技术。企业现代化管理需要采用计算机技术来规范人才管理,加强对企业人才的培训是行之有效的方法之一。企业也可自行的研发适合自身发展的计算机软件系统,这一举措既能体现企业自身的魅力,又能为企业的大力培养软件开发的人才。同时,也为企业的开发经费节约了一笔钱,还能做到企业人员培训学以致用的好出。 4、小结 伴随计算机软件技术的不断升级和更新,企业借助计算机软件技术的运用范围也越来越宽广。而企业顺应时代的发展要求是利用计算机软件技术进行培训信息管理,重视人员的相关技术培训,充分利用计算机软件技术体系,建立相关的技术体系,完善计算机软件技术在企业的操作运用。计算机软件技术的利用将会为企业的远久发展创造强大的动力,提高企业运行的效率,改善企业发展中不足的方方面面。企业充分运用计算机软件技术系统,对培训人员的资料进行保存和建立数据库管理,有利于企业的进一步系统化操作。而员工基本信息库以及培训信息库将会作为系统开发的核心所在。 软件管理论文:项目管理理论中关于软件项目外包采购管理的探讨 摘要:本文分析了目前软件外包采购管理的重要意义和目前的形势,提出基于“双赢”策略的软件外包采购思想。在项目管理理论、CMM和ISO9000的基础上,提出和细化了软件项目外包采购管理的总体框架和具体操作内容。旨在通过对软件外包项目采购的选择购买、跟踪与控制、评估验收和项目后处理等过程的研究,来提高软件外包采购的项目管理水平,满足承包方对分承制方产品在质量、进度和成本等方面的要求和对外包过程的有效控制,为软件项目外包采购管理人员提供具体的操作过程。 一、基本概念和背景 项目管理理论是一门综合多门学科的新兴研究领域,共有九大知识领域,包括项目集成管理、项目范围管理、项目时间管理、项目费用管理、项目质量管理、项目人力资源管理、项目沟通管理、项目风险管理和项目采购管理。项目采购管理是指需要从执行组织以外获得货物和服务的过程。通常把货物和服务称为产品,把买方称为业主或对应分承制方的总承包商,而卖方称为承包商、厂商或供应商。项目采购管理一般包括以下主要过程:采购计划编制,询价计划编制,询价,承包商选择,合同管理,合同收尾[ 1 ].对于软件产品,一般采购可以分为两大类,一类是对已经在市场流通的软件产品进行采购。例如,某企业想做信息化建设项目,涉及到数据库,那么它就可以在目前市面流行通用的几种厂家和种类的数据库中选择。例如Oracle公司的Oracle数据库,Microsoft公司的SQL Sever,IBM公司的DB2数据库等等。然后根据自己的需求,通过询价、签合同、安装培训等过程来购买此类产品。这种采购过程基本已经形成几套通用的解决方案,比较简单,中国企业在处理这类产品的采购时,大部分都处理的较好。个别的企业由于需求分析不清晰,培训工作不到位等原因,也会产生购买的产品不适用,或不会用的情况。另外一类软件产品采购的形式是外包采购。它是指在市场上没有出现现成的产品或者没有适合自己企业需求的产品的情况下,需要以定制的方式把项目(功能模块)承包给其他企业。例如某企业需要实施企业资源计划项目(ERP),虽然可以购买BAAN软件,但是基于本企业业务流程的管理软件必须定制,对于各个原有孤立岛的集成软件,无法购买现成的产品,必须自己开发或外包给别的公司。 二、软件项目外包采购管理的意义 许多大型复杂工程项目的实施需要业主、总承包商、分承制商、供应商和开发制造商等共同合作来完成。因此在任何甲方和乙方之间必不可少的涉及到部分子项目(功能模块)的采购活动。目前社会中,企业的信息化、网络化建设正在世界范围内展开。谁先进行信息化改造,谁就早日适应社会发展的要求,获得巨额利润。大规模的企业信息化建设形成了庞大的软件产品市场,促进了软件业的发展。许多项目庞大复杂、高风险并且涉及高科技信息领域,在客观上使企业需要采购和外包许多产品,包括软件产品。主观上,在经济全球一体化形式下,这种外包采购作为采购活动的一种特殊的、更为复杂的形式,在企业中更为普遍存在。企业为了在日益竞争的社会环境中增强自身的核心竞争力,需要根据企业的特点,专门从事某一个领域或几个领域的业务,在某个业务领域内形成自己的核心业务,把企业内部的智能和资源集中在那些有核心竞争优势的活动上;把一些非自己擅长的业务领域的子项目和功能模块外包给有实力和优势的公司,才有利于加快项目的完工进度,降低风险,优化资源配制,保证项目质量,降低成本,创造更高的价值。 以电信行业为例,爱立信公司2000年底宣布把手机生产的绝大部分业务外包给新加坡的Flextronics公司,专注于移动通信网络设备业务。原因是爱立信的移动通信网络设备的销售占爱立信公司销售额的54%,利润达90%以上,占有全球的移动通信市场分额高达30%,而手机生产的投资回报率很底,甚至出现亏损情况。对于爱立信而言,手机生产“外包”是在信息化时代的战略调整,希望通过外包生产,调整投资结构,使手机降低成本并且尽快盈利,集中精力稳定和拓展电信业的新市场。出于同样目的,美国的摩托罗拉公司也表示将外包部分地区的手机生产业务。作为手机市场份额最大的诺基亚,在专注于手机生产业务的同时,大力开发周边产业。希望以手机业务带动相关产业的发展。从三大公司的投资趋势,可以看出,“外包”作为一种先进的国际专业化的生产方式正被一些大公司越来越多的采用。我国正处在信息化建设的高速发展阶段,必然会有越来越多的企业由于自身的能力限制或业务发展的战略选择,将采取业务“外包”的生产方式。 就软件项目外包采购的市场来说,2000年是企业信息化实施的第一年,国内企业,特别是大型企业的信息化项目开始运作。行业信息化改造重点将由原来的电信、金融、海关等行业转向交通、制造、医疗等传统行业。这些行业由于自身计算机技术水平和业务发展重点的原因,将会把大量的软件项目外包给软件公司。根据CCID的统计(软件可以分成平台软件、中间软件和应用软件),2000年中国软件市场中应用软件的销售额为147亿元,占软件总市场份额的63.9%.预计到2005年,计算机信息服务和软件市场销售额增长到1750亿元。届时我国软件项目“外包”市场潜力可想而知。 三、软件外包采购管理存在的问题 虽然在传统行业,许多工程项目的采购活动,例如机械工程项目或建筑工程项目等等已经形成比较成熟的管理体制和标准。但是软件项目的外包管理工作并不象其他行业那样顺利。 软件工程项目管理引起广泛注意源于20世纪70年代中期,当时发现70%的项目是因为管理不善而引起。20世纪90年代中期,美国的软件开发仍然很难预测,大约只有10%的项目能够在预定的费用和进度下交付。商用软件通常只有9%(中小型软件公司有16%)的软件项目能够及时交付且费用并不超支。 这里有多方面的原因:软件产品作为一种特殊商品形式,具有高度不可测量性和高度柔性;软件企业开发能力还不太成熟,软件开发大多数还处于手工作坊方式,软件研发企业有其自身的运做方式,人为因素比重大,不好量化管理。由于不确定因素太多,许多软件开发企业对于自己的项目都难以精确控制进度、质量、资源和成本,那么对于业主来说,想对外部企业(例如分承制商)保持良好控制力的难度就更大了。再加上具有技术优势的软件开发商一般集中在几个科技发达的大城市,与业主的距离远,相互的交流不方便,因此许多软件采购项目的实际应用效果都差强人意:不适用,进度超期,性能达不到标准,成本太高等等情况时有发生。 软件项目外包采购的成功与失败不仅仅影响到当前软件项目的质量、成本和工作进度,而且关系到企业信息化建设整个项目的整体结构、性能以及进度,意义重大。特别是当软件项目作为整体项目计划关键路径的一个环节,软件项目采购的进度直接影响整体项目的进度,并且总成本将成指数级增加。由于软件采购的情况特别复杂,涉及的学科领域不仅是科学技术上的,还有商业上的和观念上的,软件项目外包采购管理水平的高低,将直接关系到企业整个信息化建设进程。因此软件项目采购管理作为项目管理理论中一个新的研究课题,有必要给予足够的重视。 四、目前软件外包采购管理情况 美国项目管理协会的“项目管理知识体系指南”(PMBOK)[1]、美国卡内基-梅隆大学软件工程研究所的“软件能力成熟度模型”(CMM)[2,3]和国际标准ISO9000-3[4]中虽然对外包采购管理的流程有过论述,但是他们指出的只是外包采购管理的一般原则;虽然人们可以结合自身企业特点实施标准,具有一定灵活性,但是事物的另一对立面就是操作过程不具体。这给软件产品的外包采购管理者带来具体操作上的困惑。另外PMBOK体系原则上是应用在各个行业的,缺乏针对软件领域的特点做专门的论述。ISO 9000-3系列和CMM虽然是针对软件领域的标准,但是ISO 9000-3的最大的特点是只告诉你要按规定做,不强调效果和后续改善,不强调经验积累和后评估。从这个意义上讲ISO9000注重水平的评估,不太强调提高企业成长的过程,因此对于提高企业的管理水平意义不大;CMM虽然旨在强调企业的过程能力的持续改进,但是它重点强调软件的开发过程管理和产品管理,缺乏软件的分发、转交和服务等方面的管理标准,所以也有一定的局限性。 五、基于“双赢”策略的软件外包采购思想 本文作者在集成美国项目管理协会的“项目管理知识体系指南”(PMBOK)和美国卡内基-梅隆大学软件工程研究所的“软件能力成熟度模型”(SW- CMM,SA-CMM)和ISO9000-3中关于外包采购的宗旨的基础上提出“双赢”策略的软件外包采购思想。 “双赢”策略的软件外包采购思想旨在利用双方业务能力互补,通过共同合作完成软件外包项目,达到“双赢”的目的,促进双方业务总体能力的提高。这种“双赢”策略要求双方在以下方面达成共识:双方共同关注过程控制,才能保证有效结果;只能成功,不能指望依靠惩罚手段来收回采购成本,软件外包采购项目的失败对整个项目带来的损失是巨大的;在合作过程中,建立对分承制商关系的管理体系,作为以后合作的基础;重视开发过程的风险评估和采购项目后评估,使得双方业务能力得到持续提高。 传统的外包采购中,采购方只关心分承制商产品的进度和质量,以为只要分承制商按期、按质交货,就可以圆满结束此次采购活动。有些项目尽管前期进度和质量满足合同要求,但是许多是以高投入、高负荷、高消耗等手段来保证的,这给后期带来极高的风险。在阶段评审中,如果采购方对分承制商开发过程中的费用投入、人员负荷、资源消耗、组织结构变化等漠不关心,因此就不能及早预见风险、控制风险。很难想象,后期在费用透支、人员疲惫或流失严重的情况下,分承制商仍能保证产品质量和进度。这种情况下,采购方只能要么加大投入,要么终止合同,并要求赔偿,要么延期验收等等。其副作用可想而知。而分承制商为了减少损失,根据博弈论中子博弈精练纳什均衡原理,必然采取降低质量要求,减少投入的策略,来加快进度。结果最终还是采购方遭受损失。 六、软件项目外包采购管理过程 为了保证软件外包采购项目的顺利进行,本文作者在上诉理论体系和“双赢”采购策略的基础上,提出和细化了软件项目外包采购的总体框架和具体操作内容,旨在为软件项目外包采购管理人员提供具体的可操作过程。 对于本采购过程,如果业主方由于行业、人员等原因,没有健全的监控部门,可以聘请具有软件监理职责的公司,或者总承包给具有一定软件工程监控能力的公司。这时的总承包公司角色相当于本文提到的采购部。 软件项目的整个外包采购过程可以分为十个工作阶段,包括总体项目需求分析和设计、子项目的需求分析、厂商选择、分承制商开发、业主阶段评估、交验测试、安装、培训、维护,后评价。 在开始外包采购之前,首先业主要完成项目的总体需求规格说明书和承包项目的需求说明书。一般承包项目的需求分用户需求和分配需求。对于分承包商来说,业主对软件项目所提出的需求通称“用户需求”。对于业主来说,系统总体分配给软件的系统需求通称“分配需求”。如何作好子项目的需求分析和管理,请参阅《软件需求》,详见参考文献5.然后业主把需求说明书交给采购组组织采购。采购部门收到需求说明书后,再补充质询调查表、报价指南、综合条款及条件等文件,组成采购质询技术文件发往厂商进行质询。采购部门在厂商质询的基础上,准备了厂商选择和投标估价等技术文件后,向业主送审,提请业主批准和确认所选厂商。在厂商选择和投标估价这两个文件中,采购部根据拟采购的软件对被质询的至少三家以上的供应厂商,就技术开发成熟能力、资源(包括以有的产品、硬件、软件、信息和已经过的培训)、资格和信誉、过去的合作关系、价格、提供的售后服务(包括培训和维护)、分承制方组织配置结构、与质询要求的差异等方面,经过经济技术和商业战略角度出发进行全面评估,经过其他各部门(例如系统工程组、软件工程组、质保组、财务组)审核后,列出供应厂商的优劣次序,择其优者为该项目的供应厂商。采购部一般以月为单位向业主通报软件采购情况。一般以招投标方式或内部评审的方式来确定分承制商。 分承制商在接到采购部的定货以后,就可以进行工作说明书、用户需求说明书、软件需求规格说明书、软件开发详细计划和成本概预算、测试计划、质量控制方法、风险控制、拟采用的软件工程标准和软件生命周期等文档的制作。然后分承制商把有关的技术资料文件通过业主的采购部送给业主进行校核和批准,然后才能开始开发。 业主在接到分承制商的上述材料后,组织系统工程部、软件工程部、质保部、财务部、采购部、法律部就上述材料中的开发项目视图和需求范围、使用或需要购买的软硬件、进度计划和成本、测试计划与案例、使用的技术和工程标准、人员配置等进行评审,并出具评审文件和风险评估、控制建议书。并由采购部制定采购项目监督评估计划书。合格后,由采购部、质保部及法律人员与分承制商签署详细的软件采购子合同。如需要对软件项目投保,以此来降低风险,需要和分承制商协商后,纳入合同文件。 分承制商在签署合同后可以进行设计和开发。业主应该委派采购部监督分承制商的工作。采购部应该有计划的组织质保部、软件工程部的项目计划管理人员和配置管理人员,定期对分承制商的开发活动进度、质量、成本等进行评估,并形成评估建议书。送审业主方的系统工程部、项目管理人员、分承制商的此项目的负责人。分承制方的项目负责人要对评估建议书的建议进行书面回复,并确保实施。 分承制方对所有需要采购的资源(软件、硬件、人力资源等)负责进行检验;采购部有权在任何时候对分承制商所采购的资源进行验证,使之符合所采用的规格说明书、规范、标准和其他技术文件所规定的要求,确保分承制商专款专用,建立开发环境。在这个阶段之前,采购部门和分承制商首先要确定由分承制商提供的验证建议书,并作好准备工作,提交检验用的技术文件,包括厂商说明书、设备性能数据表、配制清单、试验程序、检验技术要求。在检验的物质条件和技术条件均已准备妥善后,分承包商就可以向采购部并通过采购部向业主提出书面检验申请。一般分承包商可以提前三周通知采购部,由采购部提前两周以书面形式向业主提出检验申请,由业主召集系统工程部、软件工程部、质保部组成验证组,在规定的时间、地点检验。通过检验后,分承包商进入项目开发阶段;业主进入监控和评估阶段。对于重大关键项目,业主可以派遣项目监督员短期或长期进驻分承包商单位。 由于作为外部单位,业主不便时刻监督项目的开发过程。虽然理论上需要把分承制商看作是自己的一个项目部门来对待,纳入自己的进度控制和质量控制体系,但是客观上由于分承制商与业主距离较远,人员不熟悉,各自有自己的企业文化和管理体制,双方之间的信息沟通不畅,业主难以实时监督分承制商的开发进程和质量。最好的办法就是在分承制商的软件项目的各个里程碑处和分承制商一起进行检查和评估。软件项目一般可以划分成若干个里程碑(3-5个为益),分承制商需要提前一周通知采购部组织相关人员来评估。软件项目的里程碑一般指产品设计趋于稳定,中间产品定义趋于明晰,项目开发组真正了解项目实际的关键技术难度和可行的进度计划,开发活动停止,产品进入除错和稳定、随时可以的阶段,或当产品设计被删减、资源增加、进度延误的时候。在评估软件质量、进度和功能的同时,还要评估分承制商的人员工作负荷程度、风险、费用和资源消耗情况,并形成文档。由采购部送审系统工程部、软件工程部、项目管理部和分承制商的此项目负责人。 当产品进入交验测试的时候,分承制商需要提前三周通知采购部,采购部于前两周通知业主作好交验的组织评估准备工作。这时业主组织系统工程部、软件工程部、测试部、质保部和采购部,根据分承制商和业主在分承制商开发阶段预先共同定义、评审并批准的测试计划和验收方案进行验收测试,对需求规格说明书中的各项逐个详细的测试。最后以书面的形式给出对整个软件项目的测试评估报告。并对未通过验收测试的软件产品指定相应的补救措施和计划。分承制商交付给业主方的软件产品应当包括:源代码、软件开发计划、仿真环境、软件需求规格说明书、设计文档、软件测试计划、软件测试说明、验收测试计划、软件使用手册、软件安装手册、软件维护手册。必要的话,还包括相关培训计划。 软件采购的一个重要阶段是交货,也是目前经常忽略的阶段。当所采购的软件产品以及硬件运行环境在规定的时间到达采购部时候,采购部要以书面的形式通知业主交货。业主对所交的整个软件产品清单进行验收,并事先通知采购部拆箱日期,要采购部和分承包商的代表按时到场。业主要在接到采购部交货通知后一个月内,对所检查验收的整个软件产品(包括相关的软件、硬件及其附属产品、文档、技术资料等子合同中规定的产品)出具一份交货证明,如果这些提交的软件产品没有受到损坏并与装箱清单相一致,并在业主方环境运行良好;否则出具一份书面通知,说明在某个方面此产品损坏或与装箱单不符,或在业主方提供的环境运行不良。此通知或证明应由采购部和分承制商代表签署。如果在签合同的时候,就规定分承制商负责安装和调试,则相应的过程省略。 最后业主方由采购部把所有的文档归类封存,以备后续类似项目采购的参考查询。同时采购部在两个月之内以书面形式,对分承制商的技术开发成熟能力、资源(包括以有的产品、硬件、软件、人力资源和已经过的培训)、信誉、分承制方组织配置结构,管理能力和企业文化提交后评价报告,作为建立客户关系管理(CRM)的依据。对于此次采购的经验和教训,包括进度控制、质量控制、成本控制、客户关系控制、流程控制、风险控制等方面,采购部以文档的形式在组内讨论并保存。 七、结束语: 作为大型工程项目中的软件子项目或者部分功能模块的采购(外包),由于软件开发的固有特性(风险大,柔性强,人为因素突出,结果不宜测量等),使软件项目的外包采购管理变得十分复杂。如何控制分承制商的开发进度和质量等关键因素,需要在实践中不断探索,并针对具体公司和项目对采购过程有所裁剪。 软件管理论文:关于软件项目管理的控制研究 论文摘要:本文针对软件开发中的进度延期、费用超标、质量低下等问题,探讨了如何利用项目管理中的相关控制方法进行软件开发过程控制。、论文在阐述软件项目管理内容的基础上,针对软件项目的三要素分别进行了探讨:进度控制、费用控制和质量控制,提出了几种有效的软件项目管理控制方法。这些研究对于加强我国软件项目管理控制过程,降低开发成本,减少开发风险具有重要的意义。 论文关键词:项目管理 进度控制 费用控制 质量控制 软件开发 人类社会经历了三次经济革命从农业革命、工业革命到目前正在经历的信息革命。信息化正在日益改变人们的思维方式和生活习惯。在推动信息化过程中,计算机及其软件产品发挥着至关重要的作用。对于软件项目的管理成为项目管理领域一个令人兴奋的课题。本文将结合项目管理中的控制方法分析软件项目管理控制的相关问题.以期提高软件项目的开发效率。 1、关于软件项目管理 1.1项目与项目管理 项目是一个旨在完成一个或一些独特产品或服务的过程.它有着一系列被详细描述的属性。由于项目的独特性和一次性特征,引伸出它的其他特点.如目标的确定性.成果的不可挽回性组织的临时性和开发性等。基于项flI的这些特点.项目运作更加注重项目决策前的计划以及对实施过程的控制,以减少项目运作的风险。项目管理是2O世纪50年代后期发展起来的一种计划管理方法,它运用先进科学的管理方式.有效解决大型组织的效率低下和小型企业面临的风险增加问题以组织的机动灵活.面向客户和资源利用率高而被广泛应用。在工程设计.施工软件项目的开发、实麓中经常会遇到进度拖延.费用超支、质量不达要求等问题除去极少数是因为技术原因造成,绝大部分是源于僵化的管理和不当的管理方式。 1.2软件项目管理 各软件企业都在积极将软件项目管理引入开发活动中.对开发实行有效的管理。从概念上讲.软件项目管理是为了使软件项目能够按照预定的成本.进度、质量顺利完成.而对成本、人员、进度、质量、风险等进行分析和管理的活动。同时,随着软件开发规模及开发队伍的逐渐增大,软件开发不再是向过去那样一二个开发人员即可解决的事情。迫切需要一种开发规范来规范每个开发人员、测试人员与支持人员的工作每个项目组成员按约定的规则准时完成自己的工作。同时采用规范化管理.专业分工也可以降低对开发人员的要求,从而降低产品研发成本。 2、软件项目控制 2.1软件项目控制 软件项目跟踪和监控包括对照已文档化的估计、约定和计划评审和跟踪软件完成情况和结果。基于实际的完成情况和结果调整这些计划。软件项目的已文档化的计划(即软件开发计划,正如在软件项目计划关键过程区域中所描述的)用作跟踪软件活动传送状态和修订计划的基础管理者监控软件活动.主要通过在所选出的软件工作产品完成时和在所选择的里程碑处,将实际的软件规模工作量成本和时间表与计划相比较,来确定进展情况。当确定未实现软件项目计划时,采取纠正措施。这些措施可以包括修订软件开发计划以反映实际的完成情况和重新计划遗留的工作或者采取改进性能的措施。 2.2软件项目控制的内容 软件项目控制的目的是为软件项目的过程提供足够的能见度,从而可以在执行过程中发生对计划的严重偏离时能够采取适当的更正行为。软件项目控制包括:a。追踪软件项目的进展于表现从而与所作的估计、承诺和计划做出对比:b。追踪软件项目的风险;C。在发生对计划的严重偏离时采取适当的更正行为。 2.3软件项目控制步骤 由于软件开发是处在一个开放的动态系统中,开发环境的不断变化要求不断修改项目计划,以适应新的变化。此外项目经理及其组织在完成任务的过程中不可避免的要碰到这样或那样的问题.解决这些新的矛盾和问题均属项目控制的范畴项目的预算和进度计划只能为项目经理提供决策的依据.如果在项目实施过程中控制不住.很难在限定的时间和预算要求下实现项目管理工作的目标。因此软件项目控制的过程包括以下四个步骤:a、预测什么会发生——要做出开发计划并建立工作标准b、查明什么正在发生——用建立的工作标准检查当前的工作;c、正在(或已经)发生的实事同预测的结果进行比较——分析误差产生的原因:d及时采取补救措施.以满足项目目标,预算和进度的要求。 3、软件项目控制具体操作 3.1软件项目进度控制 为了确保软件开发中的各项工作能按照计划预定的日程顺利完成.对项目的进度要进行控制。进度控制的过程是.在项目实施过程中,不断地进行实际进度值与计划值的比较、发现偏差、检查分析其产生的原因,并采取相应的措施加以解决。 3.1.1进度控制流程 (1)进度控制的输入 进度计划。项目进度基准是项目测量和报告的基础和标准。 实施报告。实施报告提供了有关项目进度发展实情。报告未来可能发生的进度问题。 变更要求。项目变更要有严格的申请和审批手续。 进度管理的技术和工具。 (2)进度管理的技术和工具 进度控制变更系统。为有效实现进度管理与控制.进度控制系统应设立实现重新计划的全部功能。包括:文件设立.跟踪即实施报告.变更评估等。 实施情况测量。项目进度控制系统中的一个重要组成部分是决定对迟发生的进度偏差是否采取纠偏措施。而实施情况报告提供了决策的主要信息。如变更分析.趋势分析.已实现价值分析等。 纠偏计划。很少有项目能完全按计划进度进行为实现项目进度或总进度要求,在项目实施过程中.需要不断对原计划进行调整或增加新的工作内容。为此.需要不断对实施的项目进行活动时间预测。修改活动过程.替代进度方案分析。 项目管理软件。它的作用是跟踪项目按计划日期展开实际工作的情况.对照进度计划分析进度现状,找出进度的偏差.分析进度偏差对项目的影响.预测未来走势 (3)项目进度控制的输出 进度更新。包括对项目管理中任何进度信息的修改。进度调整是其中的一种.师队员进度计划中活动开始和结束时间的改变。纠偏行动。通过改变资源投入将实际进度拉回到计划的行动过程。 从中获得的教训。有关进度偏差产生的原因。纠偏方案的评估与选择以及其他方面的感受和教训都应纪录在案成为日后有用的历史资料。 3.1.2进度控制方法 一般项目进度控制采用因果分析.分析用四步完成: (1)明确问题。实际完成情况与项目里程碑相对照.确定是否超期.超期的部分是在哪里。 (2)查找产生该问题的原因。位从系统角度充分认识各方原因.应组织具有代表性任务人员并采用头脑风暴法进行。项目主管要通过他领导的办公室或小组,以及在各职能部门的人共同分析问题产生原因。 (3)确定个原因对问题产生的影响程度。对影响程度的评估可以采用专家小组打分的方法,事先确定权数.而后打分得出分析结果。 (4)画出带箭头的鱼刺图。分析出原因后各部门各就其职针对问题提出解决方案.并实施。 3.1.3软件项目进度控制具体措施 在实施进度计划过程中,会有种种故障:客户的需求进行了补充或修改;工作量估算不准,造成进度不平衡或是有人不遵从开发规范.导致产品出现缺陷;或是技术环节出现故障,这些问题往往是在进度计划外出现的.一旦出现这些问题,项目进度不得不进行调整。开发过程中为了有效控制类似问题,可以采用以下辅助措施,控制进度按计划执行: (1)政策性措施。对于不遵从开发规范,人员不按时履行职责的.给予经济或是职务上的处罚.这种措施应是建立在分配任务之前; (2)人员安排。在各子项目接口处适当安排机动人员与机动时间。这一措施有赖于项目组织的机构设置能动性好。此处比较难解决的是人员业绩评估.奖励问题。 (3)技术措施,要想很好地执行进度计划,需要事先有统一的规范例如开发语言的统一,文档的归类。这样便于下一阶段人员理解上一阶段人员意图,交流更加容易。 (4)信息流措施。该措施要求建立一个信息流系统.准时汇报项目进度.便于主控人员调整进度,并且保证信息流通顺畅。避免开发期压到最后造成严重拖工。 (5)资金措施。财务部门可以定期检查各部门财务情况.控制资金流出时间.进而控制项目进度。这与后面要讲到的三者权衡有密切关系。 3.2软件项目费用控制 费用控制就是要保证各项工作要在他们各自的预算范围内进行。其基础是实现就对项目进行费用预算。整个项目费用应包括项目范围规划阶段。软件需求分析阶段.原型设计阶段开发阶段.测试阶段和项目投入使用后的使用阶段所消耗费用的总和。软件开发项目承担公司为了完成项目目标和获得更多的利润.在实施项目过程中就要控制成本.在控制过程中,首先要拟定一个标准.即计划值.然后进行实际至于计划值的比较,确定实际值与计划标准的偏差大小.以便在此基础上采取各种措施纠正偏差.常用的分析工具是偏差分析。 偏差是指实际成本对相应计划的偏离,成本偏差的数学公式为: CV=BCWP-ACWP(负数CV表明出现超支;反之,则节资)(3—1) 其中:CV为成本偏差,BCWP为计划工作预算,ACWP为完成工作实际成本。 在进行成本偏离计划程度分析时,常用计划偏差率反应时给予计划的偏离程度。 CVP=CV/BCWP(3-2) 其中CVP为成本偏差率。 偏差值是控制分析中的一个关键参数,因而应向各级组织汇报。对于不同的项目或同一项目不同阶段或不同管理层次,对偏差的控制程度不一样,制定偏差允许值的方法也不同。由于随着时间的推移风险减少了,因而偏差允许也可降低。 3.3软件项目质量控制 对于软件产品的项目质量控制应是事前有预控,过程有监控的主动控制闭环系统。(1)事前预控:根据影响质量因素多等特点.软件项目质量必须事前预控,及根据软件的类型和特点,以及以往类似项目的常发病和预防措施,对软件项目质量提出事前预控措施,包括制定控制的计划和程序,这是项目质量控制的前提。(2)过程监控:根据易产生质量波动和易产生系统因素变异等特点,软件项目质量必须过程监控.即按照预控的计划和程序,对工序、分项、单元的全过程进行过程监控.包括监测、检查、控制和评定.这是项目质量控制的基础。 4、结语 软件开发项目在进度、费用和质量三方面均需要进行控制,因此还存在三因素的权衡问题。实践中.需要在三方面均进行行之有效的控制措施才能确保项目完成情况与计划最大限度的接近。本文提供了一些方法借鉴.对软件开发项目控制有一定的实际意义。 软件管理论文:浅谈软件项目实训中的人员选择与管理 论文关键词 软件高职 项目实训 人员选择 人员管理 论文摘要 项目实训是软件高职教育课程体系中的重要环节。结合软件高职项目实训中人员管理的实际情况进行分析和论证,同时给出实训人员选择与管理工作的基本原则和方法,并总结其中的一些基本经验。 随着国家大力发展职业教育的政策的出台,职业教育在全国范围逐渐兴起,软件高职教育作为职业教育的一个重要组成部分,为国家和地方培养了大量的具有较强动手能力的一线人才,创造出巨大的生产力,带动整个IT行业的发展,推动经济和社会的进步。项目实训作为软件高职教育课程体系中的一个重要环节,无论是对学生理论知识的拓展还是动手能力的培养都起到至关重要的作用。目前,福建省的软件高职项目实训还处于初级发展阶段,无论在项目设置上还是在管理方式上都存在不足。笔者结合实际教学和管理经验,对软件高职实训中的人员管理方式和方法做初步的分析和探讨。 1 人员的选择 教育的宗旨是以学生为本,平等地对待每一位学生,让他们在最大程度上发挥潜力。但是实训工作毕竟带有一种企业模拟性质,学校注重教育公平,而企业更关注开发效率和项目成本,这两者在一定程度上是此消彼长的对立面。因此,如何通过合理的人员选择和配置,找到既能平等地对待每个学生,又能够最大限度地提高项目团队开发效率的平衡点,是实训项目管理人员所急需解决的现实而又棘手的问题。以下是笔者在实践中探索并采用的2种较为合理的人员选择与配置方案。 1.1 T R式自由组合法这里的T指的是Test,即测试,包括技术笔试和专业面试。在两项测试之后应形成一个比较合理的量化指标,该指标应着重突出候选人员的技术能力和团队意识,公布所有候选人员的各项量化指标。为保护学生的隐私,在公布时可以用编号取代学生的真实姓名。这里的R指的是rate,即比例。项目管理人员可以预先设定好小组成员结构的技术等级比例,参照学生的综合得分情况,按照1:2:1的高中低3个层次分布比例较合理。这种做法既可以避免单纯比例式自由组合给学生带来的盲目性,也能够比较真实地反映学生的能力水平,可以科学地、客观地组建起较为高效的团队,从而能够在后续阶段提高团队整体工作效率,也为管理工作带来方便。 1.2 T R交互式人员确定法首先寻找若干名班委组成评审组,项目管理人员或教师负责领导该评审组;接着参照T R方法得出候选人员的各项评估指标和综合指标,以及小组结构比例;然后由评审小组成员进行数据分析并结合每个成员实际情况确定各小组的组成人员。将初步形成的分组名单公布告知各候选人员,征求每位成员意见,由评审小组跟持反对意见的候选成员进行当面的会议式的沟通,进行合理的调整,经此步骤之后形成最终分组名单并公布。这样做实现候选成员与管理人员之间的交互,能够把纯粹的硬性考核成绩指标转化为“考核成绩指标+交互式分析”。这样较为客观且人性化的评判方式,既能够得到较为真实的数据,又能够吸纳学生合理的意见或看法,从而利于更科学的人员选择。 2 人员的管理 美国心理学家亚伯拉罕·马斯洛把人的需求分成生理需求、安全需求、社交需求、尊重需求和自我实现需求5类,依次由较低层次到较高层次排列,在管理中他建议通过满足人的需求来激发他们。 在学校实训的项目组中,成员的生理需求和安全需求都基本能够得以满足,因此,保证成员的社会需求、受尊重需求和自我实现需求的满足,对管理者来说有十分重要的意义。1)满足组员的社会需求就是为组员提供相互交往的时间和场所。实训项目的交流不应仅局限在小组的范畴,应鼓励小组与小组间的相互交流,条件具备的话可以组织学校跟学校间类似项目组间的交流。形式可以多样化,如电子邮件、组建QQ群、网络会议、座谈会和技术讲座等互动方式。2)为了满足组员受尊重的需求,应该让他们感到在项目小组中受到人格上的尊重,技术长处被认可。对于参加实训的学生来说,对他们做出的成绩给予充分的肯定就是一种简便高效的方式,如针对某个技术环节开展一次技能比赛,或者开展评审会定期对项目阶段成果进行评估,对优秀团队及其成员进行表彰等。3)为满足组员自我实现的需求,应该在项目取得一定成果的基础上,分配给组员具有一定挑战性和难度的任务,这些任务不能超过学生能力的范围,同时给他们提供课外的辅导以提高他们解决这些问题的技能。任务的完成情况可以作为附加评审内容纳入学生最终的实训综合成绩中去,给学生超越自我的动力。 3 团队的管理 3.1 增强小组凝聚力一个有强大凝聚力的小组是最高效的小组,小组中的成员在思想上能够形成共同的准则,在工作中能够紧密配合和协调,组员跟组员之间能够互相学习、相互关照,从而消除隔阂,用集体的力量解决许多工作中的问题。增强小组凝聚力的方式有许多,如给小组起个性化的名字、开展游戏或者室内或户外运动等方式增进组员间的沟通。另外,提高小组组员的责任感、诚信度以及保障他们的知情权、提供发展的空间等,都是增强小组凝聚力的有效方法。 3.2 增强小组沟通沟通作为软件开发过程中的重要环节,对于开发效率的提高和团队的整体发展具有决定性的意义。1)适当的小组规模。在编制小组成员时应考虑到人数对沟通的影响,成员太少,沟通容易但不利于开发效率;反之,成员过多会使得沟通变得十分困难,从而使效率严重下降,因此,合理的人员安排才是关键。根据经验,一个实训小组以4~8个为宜,其中6人组最为合适。2)合理的性别比例。如果小组中的组员性别均相同,可能会导致冲突,使得沟通无法正常进行,所以在确定小组结构时应注意男女比例的控制。对于软件开发类实训项目而言,小组中的男女比例应控制在3:1左右,其中女性组员可以作为小组的协调员。3)适当的小组负责人。小组负责人除了领导小组工作外,还负责协调小组成员之间的沟通。受尊重的小组负责人可以提高小组凝聚力和工作效率,无论对自身的进步还是对整个团队的发展来说都是大有裨益的。 软件管理论文:浅析软件项目管理是决定软件产品质量的主要因素 论文关键词:软件项目 管理软件 产品质量因素 论文摘要:软件项目管理的核心是全面客户满意。其管理体系包括:战略管理、范围管理、成本管理、时间管理、人力资源管理、沟通管理、风险管理和质量管理。 在软件和信息科技行业,项目管理经常决定了一个产品或者企业能否成功。项目管理得到越来越多的企业和政府部门的重视,例如中国于2002年4月召开了有关项目管理的首次国际研讨会。具体操作与项目最根本的不同在于具体操作是具有连续性和重复性的,而项目则是有时限性和唯一性的。项目是一项为了创造某一唯一的产品或服务的时限性工作。所谓时限性是指每一个项目都具有明确的开端和明确的结束;所谓唯一是指该项产品或服务与同类产品或服务相比在某些方面具有显著的不同。各种层次的组织都可以承担项目工作。项目有时只涉及一个组织的某一部分,有时则可能需要跨越好几个组织。项目是执行组织商业战略的关键。 一、软件产品项目管理的重要性 20世纪80--90年代,许多大型企业管理信息系统M IS的开发都以失败而告终。这是为什么?一个重要原因是软件项目管理水平上不去,尤其是需求分析管理水平上不去,使得项目快要验收或交付时,却出了大问题:要么发现用户需求获取不准确,要么发现用户需求变了,致使做好的系统不能用或不好用。20世纪90年代初,上海一家公司在青岛做一个港口M IS项目,北京有一个单位在天津做一个港口M IS项目,都是因为甲乙双方软件工程基本知识不具备,使得项目管理不到位,导致2个大型项目不成功。现在软件应用领域空前广阔,深人到社会和科学研究等领域的各个方面。软件的需求也比以往更加多,软件系统设计也空前复杂。软件的项目管理问题也就因此而产生了。90年代中期,软件项目管理不善的问题仍然严重。据美国软件工程状况调查,只有10%的项目能够在预定的费用和进度下交付。于是软件项目管理成为软件项目发展中最重要的核心问题。为了使软件项目开发获得成功,必须对软件开发项目的工作范围、可能遇到的风险、需要的资源(人、硬件、软件)、要实现的任务、经历的里程碑、花费的工作量(成本),以及进度安排等做到心中有数。软件项目管理的目的就是提供这些信息,分析信息,并根据分析结果对项目做出调整。软件项目管理开始于技术工作之前,在软件开发的整个过程中持续进行,最后中止于软件过程结束。 二、软件项目管理体系 随着软、硬件技术以及通信技术的日益成熟,软件技术可以与所有的传统产业相结合,促进产品的更新换代,大幅度提高产品的附加值,提高劳动生产率,推动产业结构与产品结构的调整。因此,软件的开发以及应用不仅仅是软件开发机构的任务,更深地涉及软件使用者的切身利益,尤其像管理信息系统MIS(Managcment Information System)、计算机集成制造系统CIMS ( Computer Integration Manufacturing System )、企业资源计划ERP(Enterprise Resource Planning)及商业智能BI(Business Intelligence)等大型的复杂软件更是综合了管理科学、计算机科学、通信技术以及数学等各方面的知识,需要各类人员的协调工作才能完成。因此也就有必要从项目管理的角度去管理软件的开发和运行。从用户的角度来看,软件项目的生命周期应该包括项目前期的论证工作、项目计划、软件开发、运行、维护以及项目后评价。由此可见软件项目管理的范围不仅包括传统的软件开发过程,还应该包括开发之前的准备工作以及运行中的维护工作和对项目的总结工作。同时,在软件项目生命周期中存在着许多活动。根据活动之间的相关性,可以将软件项目的各种活动分为九大类。 (1)战略管理。根据用户的经营目标制定软件项目的策略,以便为其他各方面的活动提供指导。在制定项目策略的时候应该充分考虑用户和其他利益相关者的实际需求和市场因素。另外创造和谐的项目环境和连续改进也是战略管理的重要任务 (2)范围管理。其目的是控制软件项目的全部活动过程都在需求范围内,以确保项目各种资源的高效利用。成功的项目管理离不开用户、软件开发队伍和项目经理的一致理解和协调配合 (3)成本管理。软件项目的成本不仅包括开发成本,也包括开发之前立项阶段以及软件在运行中的费用。操作者的培训费用和项所使用的各种硬件设施费用也都是整个项目成本的一部分。这些成本都需要很好地计划和控制。 (4)时间管理。其内容有确定各项活动之间的时间相关性;估计各项活动的持续时间,跟踪各项活动的进展情况,动态调筷各项活动之间在时间上的协调。 (5)人力资源管理。在软件项目中应该为软件开发人员和管理人员等各类项目人员创造一个和谐良好的工作氛围。使他们能感到项目成功的把握和积极的工作心态,确保项目队伍的稳定性和连续性。 (6)沟通管理。沟通管理是一个收集、存储、配置和项目生命周期内所形成的各种信息的过程为了让每个项目相关人员及时得到所需的信息,需要很好地解决“什么时候、向什么人礼报什么的”的问题,此外软件开发队伍和用户之间的沟通也是沟通管理中的一项重要工作。 (7)风险管理。由于软件项目中存在着很多的不确定因索,也就必然存在着各种风险而且风险有可能造成不良的结果,对风险进行分析和监控贯穿于整个软件项目生命周期。 (8)质量管理。目前软件的质量还是一个模糊的概念并且难以衡量由于软件质量主要是在开发阶段形成的,因此软件项目质量管理的重点应放在系统分析、系统设计和编码阶段,走查、评审、调试和测试是保证软件质量的重要手段软件工程能力成熟度模型CMM(Capability Maturity Model)较好地解决了软件开发过程中的质量管理问题。 综合管理。综合管理的任务是对前面讨论的各类管理活动进行协调和控制,使这些活动相互配合。其核心任务是对各种方案进行评价,协调各方面的利益冲突确保项目总体标的最终实现。 三、软件项目管理的核心是全面客户满意 当前,不少软件业管理人上认为,软件开发的问题主要在软件开发的工程化、规范化和软件开发管理体制。他们按照CMM(Capability Maturity Model),IS09002的标准来建立他们的管理体系。这里有商业竞争的因素在起作用。但是,他们忽略了商业竞争中取胜最重要的因素—客户满意。他们没有考虑到他们的管理方法能否满足客户不断变化的需求。从长远来看,软件项目真正的成功是客户的全面满意。以客户满意为中心的质量是必需的。漠视质量或只关心产品/服务是否符合需要的方法再也不足以留住和获得客户。因此,软件开发项目组织必须先确定什么产品/服务可以让顾客满意,然后再努力满足客户的需求和期望。要实现此目标,组织必须识别对软件产品的各种特性中哪些是对客户的满意起决定作用的要素。例如,服务器操作系统软件,需要长时间稳定连续工作。稳定性则是该软件产品的关键要素。因此系统的开发管理围绕着这一关键要素来展开。尽管不少的组织明白没有客户一个组织就不能生存和发展,或者说没有客户就没有组织,但在项目实施过程中,仍然存在着客户满意的障碍: (1)项目管理组织没有发展和完善对客户不断变化的需求和期望作出快速响应的能力。 (2)项目管理组织没有听取客户意见和建议的能力。 (3)项目管理组织努力倾听客户对项目的要求,却没有确认客户的需要和期望。 (4)项目管理组织不与客户保持密切关系,也不正视客户变更需求的可能性。这样通常会导致脱离客户,其后果则是失败,甚至最后客户不接受交付的成果。 软件质量是软件开发项目管理的核心问题。而质量的评价与度量应该由客户的满意度决定。因此,软件开发的项目管理应该围绕着客户全面满意这一中心来展开。客户驱动的项目管理方法体系提供了实现这一要求的基本理论和方法体系。提高软件质量势在必行,只有认识到软件质量的重要性,了解影响软件质量的因素,才能有的放矢,采用科学的管理技术和先进的技术方法,才可以确保软件的质量。 软件管理论文:浅析软件项目管理有效实施的研究 论文关键词:软件产业 软件项目 软件工程 项目管理 论文摘要:信息系统以及相关软件项目的设计开发已经不是企业运作管理中的一部分了,各软件企业都在积极地将软件项目管理引人开发活动中,对软件项目开发实行有效的管理。 目前,中国的软件企业正处于高速发展、急需规范管理并以项目为主导的环境中。企业每天所面对的不仅仅是几个越来越大的大型项目,而将是成百上千不断发生和进行的项目。产生这种变化的因素是多方面的,这包括客户需求的不断提高导致产品生命周期缩短;产品开发项目数量大增;新技术导致了对研究和开发项目需求的增加;为了提高业务赢利能力,改进业务模式的项目需求大增等。在这种多项目并发、技术含量高、变化速度快、资源有限的环境下,如何对企业、项目、资源实施科学的管理,加强团队能力,实现软件企业的生产规模化、规范化、国际化,是当前我国软件业面临的最大挑战。 中国目前软件业的落后状况,实际已经不是技术本身的问题,而是科学管理的问题,软件工程理论与软件项目管理的实际应用与经验,是我国软件企业急待学习与渴求的。中国软件业各个层次上的管理问题,目前可以说已经制约了中国软件业走向国际化的进程。 一、软件项目管理的概念 从概念上讲,软件项目管理是根据管理科学的理论,结合软件产品开发的实际,保证工程化系统开发方法顺利实施的管理实践,为了使软件项目能够按照预定的成本、进度、质量顺利完成,从而对成本、人员、进度、质量、风险、文档等进行分析、管理和控制的一系列活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。 软件项目的开发不同于其他产品的制造,软件开发的整个过程都是以设计过程为主(几乎没有制造过程);另外,软件开发不需要使用大量的物质资源,而主要使用的是人力资源;并且,软件项目开发的产品大多数是程序代码和技术文档,并没有其他的物质结果。基于上述特点,软件项目管理与其他项目管理相比,具有很大的独特性。 二、软件项目管理的目的 随着信息技术的飞速发展,计算机软件产品的规模和复杂度也随之增加。个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。与此同时,软件项目中“项目黑洞”也应运而生:项目无法按期完成、项目合作方的工作难以协调、用户需求经常变动、工作质量难以保证,给企业带来为了愈来愈多的损失。这种情况说明了软件项目开发及管理过程中,存在着许多的问题,需要更多的重视和研究。 没有运用软件项目管理是面临如此众多问题主要原因之一。软件项目管理作为一种科学的管理手段,是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的一系列活动。因此,对于以“项目”为基本运作单位的各软件开发企业,都在积极地将软件项目管理引人开发活动中,对软件开发实行有效的管理。因此,决定一个软件项目实施成功与否,软件项目管理无疑起着举足轻重的作用,软件项目管理已经是公认的软件开发企业的核心竞争力之一。 三、软件项目管理的原则 1.平衡原则 在我们讨论软件项目为什么会失败时可以列出很多的原因,如管理问题、技术问题、人员问题等等,但是有一个根本的思想问题是最容易忽视的,也是软件系统的用户、软件开发商、销售商最不想正视的,那就是:需求、资源、工期、质量这四个要素之间的平衡关系问题。 需求定义了“做什么”,定义了系统的范围与规模,资源决定了项目的投人(人、财、物),工期定义了项目的交付日期,质量定义了做出的系统好到什么程度,这四个要素之间是有制约平衡关系的。如果需求范围很大,要在较少的资源投人下,很短的工期内,很高的质量要求来完成某个项目,那是不现实的,要么需要增加投资,要么工程延期;如果需求界定清楚了,资源固定了,对系统的质量要求很高,则可能需求延长工期。对于上述四个要素之间的平衡关系最容易犯的一个错误,就是鼓吹“多快好省”四个字。正视这四个要素之间的平衡关系是软件用户、开发商、商成熟理智的表现,否则系统的成功就失去了一块最坚实的理念基础。 2.高效原则 在需求、资源、工期、质量四个要素中,很多的项目决策者是将进度放在首位的,现在市场的竞争越来越激烈,“产品早上市一天,就早挣一天钱,挣的就比花的多,所以一定要多挣”,基于这样一个理念,软件开发越来越追求开发效率,大家从技术、工具、管理上寻求更多更好的解决之道。基于高效的原则,对项目的管理需要从几个方面来考虑:要选择精英成员;目标要明确,范围要清楚;沟通要及时、充分;要在激励成员上下工夫。 3.分解原则 “化繁为简,各个击破”是自古以来解决复杂问题的不二法门,对于软件项目来讲,可以将大的项目划分成几个小项目来做,将周期长的项目化分成几个明确的阶段。 项目越大对项目组的管理人员、开发人员的要求越高,参与的人员越多,需要协调沟通的渠道越多,周期越长,开发人员也容易疲劳,将大项目拆分成几个小项目,可以降低对项目管理人员的要求,减少项目的管理风险,而且能够充分地将项目管理的权力下放,充分调动人员的积极性,目标会比较具体明确,易于取得阶段性的成果,使开发人员有成就感。 4.实时控制原则 实时控制项目进度的机制,依靠一套规范的过程来保证实时监控项目的进度,以实现实时控制项目的进展,将项目的进展情况完全的实时的置于你的控制之下。实时控制确保项目经理能够及时发现问题、解决问题,保证项目具有很高的可见度,保证项目的正常进展。 5.分类管理原则 对于不同的软件项目其项目目标差别很大,项目规模也是不同的,应用领域是不同的,采用的技术路线差别也很大,因而,针对每个项目的不同特点,其管理的方法、管理的侧重点应该是不同的。就像古人讲的,“因材施教”,“对症下药”。项目经理需要根据项目的特点,制订不同的项目管理的方针政策。 6.简单有效原则 项目经理在进行项目管理的过程中,往往会得到开发人员这样的抱怨“太麻烦了,浪费时间,没有用处”,这是很普遍的一种现象。当然这样的抱怨要从两个方面来分析,一方面从开发人员本身可能存在不理解,或者逆反心理的情况,另一方面,项目经理也要反思:我所采取的管理措施是否简单有效?搞管理不是搞学术研究,没有完美的管理,只有有效的管理,而项目经理往往试图堵住所有的漏洞,解决所有的问题,恰恰是这种理想,会使项目的管理陷人一个误区,作茧自缚,最后无法实施有效的管理,导致项目的失败。 7.规模控制原则 该原则是和上面提到的其他原则相配合使用的,即要控制项目组的规模,不要人数太多,人数多了,进行沟通的渠道就多了,管理的复杂度就高了,对项目经理的要求也就高了。在微软的MSF中,有一个很明确的原则就是要控制项目组的人数不要超过10人,当然这不是绝对的,也和项目经理的水平有很大关系。但是人员“贵精而不贵多”,这是一个基本的原则,这和我们上面提到的高效原则、分解原则是相辅相成的。 8.组织的知识积累原则 有效的积累知识的方法是:人员专业化培养,知识与载体分离。具体的做法是,把需要度量的知识实体分为固定知识(项目成果)和流动知识(参与人员),再把知识实体的价值体现划分成不同的度量平面。根据所有知识实体在不同度量平面上的知识度量值,可以形成不同的知识平面指数和公司知识指数,并可根据此知识指数体系来全面分析公司的知识积累状况,并迅速做出恰当的反应。知识与载体分离体现的是,在组织中人力资本与组织资本是有区别的,简单地说,人力资本属于员工个人,企业只可租借使用;而组织资本就是8小时以外员工带不回家的企业资产,它为公司所有。对企业来说,相比于人力资本,组织资本更为重要。一个管理者(领导者)必须知道如何容纳和积累知识,使之为公司所有。 软件管理论文:浅析软件项目管理中人员流动风险的管理 论文关键词:软件项目 风险管理 策略 监控 论文摘要:在软件项目管理中,频繁的人员流动是软件项目的一个风险,为了缓解这种风险,项目管理者必须建立一套策略来降低人员流动,同时,还需要监控某些因素,这些因素可以提供风险是否正在变高或变低的指示,通过这种监控管理,妥善地处理风险事故造成的不利后果,最终实现项目的总体目标。 一、引言 在软件公司中,技术人员的流动性一直处于比较高的水平,因此给公司带来了很大的损失,要想改变这种现状在短期内恐怕难以做到。但这个问题又一直困扰着公司的项目管理者,特别是与软件项目组人员组织相关的频繁的人员流动给软件项目带来了极大的风险。那么,认识到这种风险后,怎样来对这种风险进行有效的控制,采取主动行动,创造条件,尽量扩大风险事件的有利后果,妥善地处理风险事故造成的不利后果,最终实现项目的总体目标,这是本文笔者要讨论的问题。 软件风险是指软件开发过程中及软件产品本身可能造成的伤害或损失。风险关注项目未来的发展,这意味着风险涉及选择及选择本身包含的不确定性,在软件开发过程及软件产品都要面临各种决策的选择。风险是介于确定性和不确定性之间的状态,是处于无知和完整知识之间的状态。同时,风险将涉及思想、观念、行为、地点等因素的改变。 一般来说,在软件项目中,存在以下一般性风险:(1)产品规模风险—与要建造或要修改的软件的总体规模相关的风险;(2)商业影响风险—与管理或市场所加诸的约束相关的风险;(3)客户相关风险—与客户的素质以及开发者和客户定期通信的能力相关的风险;(4)过程风险—与软件过程被定义的程度以及它们被开发组织所遵守的程度相关的风险;(5)技术风险—突破技术的极限极具挑战性和令人兴奋,但这也是有风险的;(6)开发环境风险—与用以建造产品的工具的可用性及质量相关的风险;(7)与人员及经验相关的风险—与参与工作的软件工程师的人数、稳定性、总体技术水平及项目经验相关的风险。 二、降低风险可采取的策略 如果软件项目组对于风险采取主动的策略,则“避免”永远是最好的目标。这可以通过建立一个风险缓解计划来达到。在软件项目中,频繁的人员流动被标注为一个项目风险,基于以往的历史和管理经验,人员流动的概率为70 %,被预测为对于项目成本及进度有严重的影响。而软件项目中,人员的频繁流动又是一个无法改变的现实,为了缓解这个风险,项目管理者必须建立一个策略来降低人员流动。可采取的策略如下: 1.找出人员流动的原因。可以与项目现有人员一起探讨人员流动的原因,比如是否公司提供的工作条件不如人意、报酬偏低、竞争激烈等。找出原因后,提出解决问题的策略,在可能的范围内改善工作条件,至于报酬,不可能无限地增加,可以把工作业绩和报酬挂钩,提高员工的工作积极性,适当控制竞争的程度,最重要的一点是要培养员工对公司的归属感。 2.在项目开始之前,分清哪些是可控的,哪些是不可控的原因,采取行动以缓解那些在管理控制之下的原因,“预防”总比“救治”更主动。 3.一旦项目启动,假设会发生人员流动并采取一些技术措施以保证当人员离开时的工作连续性。 4.对项目进行良好组织,使得每一个开发活动的信息能被广泛传播和交流,定期召开项目组工作协调会议,随时掌握项目的进展情况。 5.定义文档的标准,并建立相应的机制,以确保文档能被及时建立。 6.对所有工作进行详细复审,使得不止一个人熟悉该项工作。 7.对于每一个关键的技术人员都指定一个后备人员。 三、降低风险的监控因素 1.随着项目的进展,风险监控活动开始进行。项目管理者监控某些因素,这些因素可以提供风险是否正在变高或变低的指示。在项目组的人员管理中,应该监控下列因素:(1)项目组成员对项目压力的一般态度;(2)项目组的凝聚力;(3)项目组成员彼此之间的关系;(4)与报酬和利益相关的潜在问题;(5)在公司内及公司外工作的可能性。 2.除了监控上述因素之外,项目管理者还应该监控风险缓解步骤的效力。例如:上述风险缓解步骤要求定义“文档的标准,并建立相应的机制,以确保文档能被及时建立”。如果有关键的人物离开了项目组,项目管理者应该仔细地监控这些文档,以保证文档内容正确,当新员工加人该项目时,能为他们提供必要的信息,这是保证工作连续性的条件。 3.风险管理及意外事件计划假设缓解工作已经失败,风险变成了现实。继续前面的例子,假定项目正在进行中,有一些人宣布将要离开。如果按照缓解策略行事,则有后备人员可用,因为信息已经文档化,有关知识已经在项目组中广泛进行了交流。此外,项目管理者还可以暂时重新将资源调整到那些需要人的地方去,并调整项目进度,从而使新加人的成员能够赶上进度。同时,要求那些要离开的人员停止工作,进人“知识交接模式”。 总之.当对软件项目期望值很高时,一般都会进行风险分析。不过,即使进行这项工作,大多数软件管理者都是非正式地和表面地完成它。用在标识、分析、管理风险上的时间可以从多个方面得到回报:更加平稳的项目进展过程;较高的跟踪和控制项目的能力;因为周密计划而产生的信心。 四、总结 风险管理意味着危机还没有发生之前就对它进行处理,这就提高了项目成功的机会和减少了不可避免风险所产生的后果。实践经验证明,最成功的项目就是采取积极的步骤对要发生或即将发生的风险进行管理。对任何一个软件项目,可以有最佳的期望值,但更应该要有最坏的准备,“最坏的准备”在项目管理中就是进行项目的风险管理。 软件管理论文:浅析软件项目的质量管理 论文关健词:软件项目 软件质量 软件质量管理 软件项目管理 论文摘要:软件产品是软件项目的最终结果,其功能度和复杂性要比制造业的产品高得多,而且在投入使用后,软件发挥的功效也是其它任何形式的硬件产品所无法比拟的。为了保证软件产品在交付后能够按照用户的需求发挥正常的功效,因此在项目实施过程中进行有效的质量管理是很有必要的。本文结合作者的经历就软件项目中的质量管理做了一些探讨。 一、引言 软件产品是软件项目的最终结果与其相关的质量问题主要来自项目开发过程。但软件是一个纯智力的特殊产品描述软件质量的定义则比描述实际物品质量定义面临着更多的潜在因素。所以保证软件质量比保证设备质量更具挑战性和不确定性。 国际化标准组织Iso在ISOPIEC9126中将软件质量定义为:“反映软件产品满足规定需求和潜在需求能力的特征和特征的总和”。而M .J .Fisher将软件质量定义为:“所有描述计算机软件优秀程度的特性的组合“。目前对软件质量的研究主要从两方面展开:一是软件开发过程的质量保证以过程文档化和管理科学化为内容:二是软件过程和产品的质量评估包括中间产品和最终产品采用软件度量技术作为软件质量特性量化的主要技术。本文将就第一个方面展开讨论通过给出或设计一些符合文档化开发标准的管理规范和文档模板以达到使软件质量满足之前用户对各项功能或性能的精确定义的目的。 二、项目概况及背景 某船厂在信息集成系统CIMS第一期结束后初步建立起企业的基础信息资源的共享平台,并将物资管理与财务管理进行了整合。但在第一期CIMS平台中没有对其涂装生产管理建立相应的系统。为尽快解决涂装生产管理的问题项目组在进行一个月的需求调研后就进入了开发。但是由于前期需求阶段没有细化需求涉众范围太小在开发阶段代码管理松散导致项目在开始不久后就处于一边开发一边继续需求分析细化的状态并伴随不断的需求变更最后在拖期半年后才交付了一个带有隐患的产品而且原定两周的试运行期因为修改不断发现的缺陷也延长为两个月。 在完成涂装项目后,项目组又接到船厂关于开发生产安全监管系统的任务为了避免同样的问题发生和提高软件质量,项目组认为要在软件开发项目过程中引入完善的质量管理,并针对船厂项目特点,结合实际情况重点覆盖需求、编码、测试三个阶段。 三、分析及应对措施 1.定义合适的项目过程 软件过程是指开发和维护软件产品的活动技术和实践的集合。在以计算机网络为基础的现代社会信息化背景下过程管理作为现代企业管理的先进思想和有效工具,随着外部环境与组织模式的变化而变化。因此作为一个好的软件项目过程,必须针对企业和项目的实际情况,确定软件项目运作流程,定义软件功能及相关性能明确各阶段的进入条件和退出条件进行有效的过程控制与管理,在提高软件开发的效率和项目的成功率的基础上进一步保证所开发软件的质量。 在现阶段主流的软件工程过程主要是RUP (Rational Unified Process)和XP (Extreme Programming)。由于新项目的需求明确,并且项目组成员的构成方式是新老搭配,在经过综合考虑后,我们决定采用RUP方法。最后,项目组根据项目实际情况对传统的RUP模式进行按需裁剪,具体方案是将”需求与分析”和‘’设计”两个活动合并为‘’需求分析”,将”配置”和”变更管理”统一纳入’‘项目管理‘’,移除”环境活动‘’环节。 2.明确项目需求 对于任何软件项目过程而言,需求不仅是一个不可避免的环节,也是软件开发的基础。往往用户需求明确变更少的项目的成功率就高而那些用户需求混乱变更频繁的项目几乎从一开始就注定了失败的命运。但是,在现实生活中,用户需求总是在开发进入中后期时,因为各种不同的原因而发生变化。这就给软件项目过程实施带来不确定因素。在涂装项目中,由于前期需求不明确以及随意变更需求,导致项目组在开发阶段不停的返工,进而造成代码质量低下,测试拖期等一系列问题。因此在项目实施过程中,为了保证软件开发的顺利进行和最后交付的产品质量,应该对项目需求变更进行管理。 (1)需求说明书要描述明确详尽。由于与用户沟通的需求人员并不是最后的开发人员,所以有可能导致开发人员对需求说明书的理解与用户真正的意图会产生一定的偏差。另外,当项目在进行到开发(编码)阶段时,由于记忆的缺失,对当初所作的需求说明书的理解也会产生偏差。 (2)要对需求变更进行管理。通常需求分析完成后项目就进入开发阶段,用户可能会因为市场或策略的变化而提出需求变更的要求。此时,若是合理变更则有利于项目实施,但有时所作的变更可能会影响项目整体的设计和开发,造成项目进度的延期。对于这一情况,项目组应该积极与用户沟通,制订需求变更说明书,在双方都认可的情况下方可实施。 (3)在项目开发过程中要尽早明确用户需求,有些内容一时无法确定则应该暂缓该部分的开发,尽量降低因需求变更而带来的风险。 3.代码走查 软件质量在很大程度上依赖于代码质量。在实际环境中对于同一项目而言,由于项目组成员的编程能力、习惯、风格、对需求的理解和个性的不同所开发的代码质量也不尽相同。再加上一些难以预测的人为因素由此带来的隐患将严重影响代码质量最终造成软件质量低下,使得用户无法正常使用并为以后的维护带来更大的工作量和难度。 考虑到项目进度以及实际情况,要进行完整的代码评审不太现实,因此在软件开发过程中可以根据需要引进代码走查。每周在规定的时间内,轮流让程序员讲解其所开发代码的主要部分。这项措施一方面可以从侧面促使程序员本人注意所开发代码的质量,另一方面在走查过程中可以获得他人的意见进一步改善代码效率,使开发成员共享项目实施过程中问题解决的思路和方法同时还可以促进项目组成员之间的交流并加深对需求的理解关注软件开发过程中的各个环节并进行过程改善的讨论,使得软件质量更有保障。 4.进行正式的测试,并形成制度 测试就是对软件产品的检验。软件测试的目的是根据用户需求检查系统是否符合项目合同与任务书规定的要求。项目测试分集成测试和系统测试,主要进行功能测试、健壮性测试性能一效率测试用户界面测试、安全性测试、压力测试可靠性测试安装/反安装测试等活动。测试过程通常在模拟环境中进行。只有通过了上述全部测试的软件,才可以称之为符合用户质量要求的合格的软件。 测试活动要尽可能覆盖整改项目过程,从最初的需求到部署阶段,都应该制订详细的计划并编制相应的文档,如测试计划测试用例文档测试报告等。通过测试活动尽可能早得发现每个阶段中软件存在的缺陷,以方便后续阶段的实施。在这测试活动过程中,我们应该遵守一条基本原则—按照用户需求进行测试。我们即不能为求速度而缩短测试规模,也不能忽视用户需求而提高测试要求。总之一切测试应该符合用户需求。 四、结论 除了上述几个方面外,对于软件产品的质量管理还有其他要考虑的因素,如风险控制、变更管理和配置管理等等。其实,美国软件工程研究所(SEI )开发的软件过程能力成熟度模型(CMMI )和}S09001标准,都着眼与质量和过程管理。而且在组织结构方面,国外成熟的软件企业一般都设有单独的QA (Quality Assure)部门,它与开发部门独立,负责监督流程的执行。但是,对于任何一个具体项目的实施都应制订合适的质量管理方案,不能生搬硬套而这些需要项目经验的积累以及不断的学习新知识。 软件管理论文:浅谈软件开发管理策略 论文关键词:软件项目管理 项目经理 项目计划 论文摘要:在软件项目开发的过程中,软件项目管理的成功与否是决定一个项目是否能够顺利高效率完成的重要保证。但是我国大部分的软件企业在进行项目管理对都存在着各种问题,从而使项目不能顺利有效地完成。文章探讨了在嚼目管理过程里出现的常见问题,并给出了相应的解决策略。 我国软件产业的现状是数量已上规模,但质量亟待提高。在软件项目开发中,发现了一些普遍存在的问题,如项目严重误期、代码质量达不到标准、程序员疯狂工作仍然毫无进展等。本文针对软件开发过程中存在的一些问题,分析这些问题产生的原因,并且提出一些解决方法和管理策略。希望有助于程序员以较少的无用工作开发出高质量的软件,有助于项目以较快的速度圆满地完成。 1软件开发中实行项目管理的意义 项目管理就是在项目活动中运用一系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求,实际上就是通过项目各方干系人的合作,把各种资源应用于项目,以实现项目的目标,满足项目千系人的需求,其本质就是对时间、质量和成本的管理。随着软件开发的深入、各种技术的不断创新以及 软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程中,项目开发的管理日益受到重视。 2目前在软件项目管理中存在的误区 现在大多数企业都认识到了在项目中进行管理的重要性,但是仍然有许多企业在实施项目管理的过程中存在着这样那样的误区,主要表现在以下几点。 项目经理不够专业。在软件企业中,缺乏专业的项目管理人员来实施项目管理及担任项目经理,通常被任命的项目经理主要是因为他们能够在技术上独当~·面,但是他们在管理方面特别是项目管理方面的知识比较缺乏。 项目计划缺乏纲领性。项目经理对总体计划、阶段计划的作用认识不足,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。 缺乏有效的管理意识。部分项目经理不能从总体上把握整个项日,而是埋头于具体的技术工作,造成项目组成人员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。有些项目经理没有很好的管理方法,不好安排的工作只好自己做,使项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。 缺乏有效的沟通制度和机制。在项目中一些重要信息没有进行充分和有放的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;有些人没有每天定时收邮件的习惯,以至于无法及时接收最新的信息。 风险管理意识淡泊。有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。 项目干系人的不确定性。在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、工作职责等没有足够了解以至于无法得到完整需求或最终经权威用户代表确认的需求;或者是多个用户代表各说各话、昨是今非,但同时又要求项目尽早交付;项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。 缺乏项目团队的合理分工。项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任分工不够清晰而造成工作互相推诿、责任互相推卸的现象;有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰,但是各项目成员只顾完成自己那部分任务,不愿意与他人协作。这些现象都将造成项目组内部资源的损耗,从而影响项目进展。 3解决软件项目管理中存在的误区的有效策略 要想解决上面描述的误区,归根到底还是要从管理学的角度入手,即在软件项目的开发过程中加入过程管理的内容,这样我们可以在软件开发中对各个过程的质量加以控制,从而达到保证软件产品质量的目的。为了有效提高管理水平,我们应该努力做到以下几点。 项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。 计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。 加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项E1经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。 制定有效的沟通制度和沟通机制,提高沟通意识;采取多种沟通方式,提高沟通的有效性。通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如:除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。 通过学习项目管理知识掌握风险识别、量化、对策研究,反应控制的工具和方法,掌握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。 项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。 项目经理应当对项目成员的责任进行合理的分配并清楚地说明,同时应强调不同分工、不同环节的成员应当相互协作,共同完善。 实施有效的项目管理绝非易事,对于软件企业而言,这不是一个小的改变,而是一种变革,企业需要为此付出艰苦的努力,同时,成熟有效的项目管理无疑将对企业起着至关重要的作用,项14管理的水平将是企业核心竞争力之一。 软件管理论文:试谈软件开发项目管理 论文关键词:软件项目管理 项目经理 项目 论文摘要:在软件项目开发的过程中,软件项目管理的成功与否是决定一个项目是否能够顺利高效率完成的重要保证。但是我国大部分的软件企业在进行项目管理时都存在着各种问题,从而使项目不能顺利有效地完成。文章探讨了在项目管理过程里出现的常见问题,并给出了相应的解决策略。 计划软件行业在现在的众多行业里是一个极具挑战性和创造性的行、体现了软件开发者的智慧和汗水,同时软件开发是‘项复杂的系统]:程,牵涉到许多方面的因索,在实际工作中,经常会出现各种各样的问题,甚至会面临失败。如何总结、分析失败的原因,得出有益的教训,对于项目开发人员来说,是在今后的项目中取得成功的关l键。 一、软件开发中实行项目管理的意义 项目管理就是在项目活动中运用系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求,实际上就是通过项目各方干系人的合作,把各种资源应用于项目,以实现项日的目标,满足项日于系人的需求,其本质就是对时问、质量和成本的管理。 随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程l}f,项目开发的管理日益受到重视。 二、目前在软件项目管理中存在的误区 现在大多数企业都认识到了在项目中进行管理的重要性,是仍然冉许多企、在实施项目管理的过程中存在着这样那样的误区,主要表现在: 1.项目经理不够专业。在软件企业中,缺乏专业的项目管人员来实施项目管理及担任项H经理,通常被任命的项日经主要是因为他们能够在技术上独当一面,但是他们在管理方面特别是项目管理方面的知识比较缺乏。 2.项目规划缺乏纲领性。项目经理对总体计划、阶段计划的作用认识不足,凶此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。 3.缺乏有效的符理意识。部分项目绎理不能从总体上把握整个项目,而是埋头具体的技术工作,造成项目组成人员之间忙的忙、闲的闲,计划不周、任务小均、资源浪费。有些项目经押没有很好的管理方法,不好安排的工作J好自己做,使项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。 4.缺乏有效的沟通制度和机制。在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;有些人没有每天定时收邮件的习惯,以至=无法及时接收最新的信息。 5.风险管理意识淡泊。有些项目经理没有充分意识到风险管理的重要性,对计划中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。 6.项目干系人的不确定性。在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、工作职责等没有足够了解以至于无法得到完整需求或最终经权威用户代表确认的需求;或者是多个用户代表各说各话、昨是今非,但同时又要求项目尽早交付:项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩火。 7.缺乏项目团队的合理分工。项目团队内有时由于各阶段不同角色或同阶段不同角色之间的责仟分工不够清晰而造成工作互相推诿、责任互相推卸的现象;有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰,但是各项目成员只顾完成自己邢部分任务,不愿意与他人协作。这些现象都将造成项目组内部资源的损耗,从而影响项目进展。 三、解决软件项目管理中存在的误区的有效策略 要想解决上面描述的误Ⅸ,归根到底还足要从管理学的角度入手,即在软件项目的开发过程中加入过程管理的内容,这样我们可以在软件开发中对各个过程的质量加以控制,从而达到保证软件产品质量的目的。为了有效提高管理水平,我们应该努力做到: 1.项目经理接受系统的项目管理知识培训是非常必要的,有了专、I领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平 2.计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项臼经理的计划意识,采用项目计划制定相关知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。 3.加强项H管理方面的培训,并通过对考核指标的合理设定和宣传f导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并Ⅱ在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。 4.制定有效的沟通制度和沟通机制,提高沟通意识:采取多种沟通方式,提高沟通的有效性。通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如:除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。 5.通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法,掌揖项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。 6.项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。 7.项目经理应当对项目成员的责任进行合理的分配并清楚地说明,同时应强调不同分工、不同环节的成员应当相互协作,共同完善。实施有效的项目管理绝非易事,对于软件企业而言,这是一个小的改变,而是一种变革,企、世需要为此付出艰苦的努力,同时,成熟有效的项目管理无疑将对企业起着至关重要的作用,项日管理的水平将是企业核心竞争力之一。 软件管理论文:浅谈软件项目管理的决策支持系统 论文关键词:软件项目管理 软件可靠性 决策支持系统 论文摘要:本文在解释软件项目管理和决策支持系统的基础上,分析出软件项目管理的局限性,进而说明应用软件项目管理的决策支持系统的必要性。最后从软件项目管理的角度来分析决策支持系统的目标,以及软件项目管理的决策具有多级性。 随着现代科技的发展,计算机应用于各个领域的管理,各个领域需要用软件系统扩展和提高自己的业务。针对不同的行业和产业,研制出了不同的项目管理软件。项目管理软件主要完成的项目管理活动分为管理活动和工程活动两类。例如:项目立项评审:评估项目立项条件是否具备,如相关部门移交资料是否齐全,客户信息是否完整,团队成员是否恰当等等;项目计划评审:评估项目计划合理性,是否与公司其他项目资源和运营目标冲突(回款):SCM(项目配置管理、Software Configuration Management):系统管理和项目有关的各类文档和软件版本,确保项目的惟一性资料信息被留存,可随时追溯项目各阶段关键文档记录(例如备忘录)。工程活动包括项目要获得实质性进展必须要做的工作,例如写计划,做需求调研,写解决方案,变更项目范围,项目启动大会,项目例会,项目里程碑会议,项目紧急事件处理会议,项目备忘录,项目验证,项目培训,项目小范围试运行,项目验收报告等等都是工程活动。 软件项目管理能完成若干事情,但是,由于软件开发过程以及应用过程中,诸多因素会造成软件的不可靠性,例如:1.需求分析定义错误。如用户提出的需求不完整,用户需求的变更未及时消化,软件开发者和用户对需求的理解不同等等。2.设计错误。如处理的结构和算法错误,缺乏对特殊情况和错误处理的考虑等。3.编码错误。如语法错误,变量初始化错误等。4.测试错误。如数据准备错误,测试用例错误等。5、文档错误。如文档不齐全,文档相关内容不一致,文档版本不一致,缺乏完整性等。另外程序代码错误,也可以造成软件的不可靠性。程序代码一个最直观的特性是长度,另外还有算法和语句结构等,程序代码越长,结构越复杂,其可靠性越难保证。所以提高可靠性从原理上看就是要减少错误。而决策支持系统(Decision Support System,简称 DSS)正好可以解决这些问题,它能很好的将那些微结构或无结构、不确定和零散的关联因素有机的综合起来,进行分析、比较和定量化,给决策者以支持,减少了决策的主观性。可见,研究并开发一个软件工程项目质量决策支持系统(Decision SupportSystem For Software Engineering Project Quality,简称SEPQDSS)对于软件企业的管理者,对于企业开发出高质量的软件产品,对于企业的长期发展来说都是至关重要和必要的。 这里所说的决策支持系统(decision support system,简称dss)是指辅助决策者通过数据、模型和知识,以人机交互方式进行半结构化或非结构化决策的计算机应用系统。决策支持系统作为一种新兴的信息技术,能够为企业提供各种决策信息以及许多商业问题的解决方案,从而减轻了管理者从事低层次信息处理和分析的负担,使得他们专注于最需要决策智慧和经验的工作,因此提高了决策的质量和效率。 决策的进程一般分为4个步骤:发现问题并形成决策目标、用概率定量地描述每个方案所产生的各种结局的可能性、决策人员对各种结局进行定量评价,一般用效用值来定量表示、综合分析各方面信息。决策支持系统的基本特征:对准上层管理人员经常面临的结构化程度不高、说明不够充分的问题:把模型或分析技术与传统的数据存取技术及检索技术结合起来;易于为非计算机专业人员以交互会话的方式使用;强调对环境及用户决策方法改变的灵活性及适应性;支持但不是代替高层决策者制定决策。 决策支持系统的灵魂是先进的管理思想。一个成功的DSS应用,应该融合了优秀的管理思想,能给应用者提供分析和解决问题的有效的方法论。DSS中所包含的计算机软硬件技术,则是将这种管理思想和方法论具体表现出来,从而让DSS用户在使用过程中能够贯彻这种管理思想、实践这种方法论。组织整体的管理绩效因此而得到提高。这从另一角度说明,应用者必须首先整合自己的管理思路,提升管理意识,明确通过DSS将实现的管理目标,才能开始DSS的实施。 从软件项目管理的角度来讲,决策支持系统的目标是使软件的功能更好地满足客户的要求,并且能在规定的时间内,在预计的资金下,开发出一个高效率,质量和可靠性能够满足要求的软件。具体包括以下五方面:软件功能完备(软件的需求完备),资金控制在计划之内,时间控制在计划之内,软件的效率和可靠性符合要求,人员之间能够合理协调达到最好的效率。 软件项目管理的决策具有多级性。因此,决策制定程序是比较复杂的。一般来说可分为三个层次:第一层,决策路线层,反映了由决策任务的提出、多级决策、批准实施的全过程;第二层,决策工作层,由决策对象进入某一个部门开始,到送出这个部门截止的部门内部处理;第三层,决策分析层,指一个部门内单个决策者或决策小组分析问题所处的环境、确定目标,并提出方案(设计)、评价分析及解决方案抉择和实施反馈的具体步骤。 由此可见,决策支持系统在软件项目管理中的应用是非常必要而且有其重要价值的。 软件管理论文:浅谈软件项目管理中的阶段收尾管理 论文关健词:软件项目管理 收尾管理阶段管理 论文摘要:在实际软件项目管理中,阶段性的收尾管理工作往往不被大家重视,其实阶段管理收尾工作也是非常重要的。本文从阶段评审,文档记录等方面来阐述软件项目管理中阶段收尾管理的重要性 随着计算机和信息产业的发展软件产品的规模也是越来越庞大,随着软件规模的扩大软件人员的增加软件项目管理的复杂性增大,各个软件企业都意识到将项目管理的理念引入到软件开发活动中开始对开发过程进行有效的管理又所谓“IT项目管理”或“软件项目管理’软件项目管理就是为了使软件项目能够按照预定的成本、进度、质量的顺利完成而对成本、人员、进度、质量、风险等进行分析和管理的活动。随着软件开发规模及开发队伍的逐渐增大软件开发活动不再是像过去的几个开发人员就可解决的事情,它需要使用开发规范或开发流程控制来约束每个开发人员、测试人员和维护人员的工作.以保证每个项目组成员按开发计划及进度准时、保质完成自己的任务。软件项目管理的各个过程主要包括二需求管理范围管理任务分解规模估算成本管理进度计划质量计划配置管理计划,风险计划文档管理团队建设,跟踪控制收尾管理项目结束。项目收尾管理作为项目结束前的最后管理工作也显得及其重要一般包括合同收尾和管理收尾两部分。合同收尾就是项目管理人员与客户对照合同一项项的核对审核是否完成了合同所要求的内容是否达到合同所提出的指标或条件也就是我们通常所讲的客户验收管理收尾就是对于项目组内部把做好的项目文档、代码、与客户交流的文件等归档保存对项目中遇到的问题及解决方法、有效的创新技术进行及时地总结,对外宣称项目结束转入维护期把相关的产品说明及技术文档转到维护组。 一、阶段收尾管理 软件项目结束的状态: 1.正常结束。2提前结束3延期结束4暂停。5取消(因变更或不可完成)。软件开发是一项复杂的系统工程牵涉到各方面的因素在实际工作中经常会出现各种各样的问题甚至面临失败。而如何总结、分析失败的原因得出有益的教训.这对一个公司来说则是今后项目中取得成功的关键。 以前会听说过这样的项目:客户验收后项目活动就随之收场,项目资料没有认真归纳总结不是束之高阁就是缺失不全但是当新项目启动时.面对新的项目问题项目组成员才发现:其实这类问题以前也遇到过,但是却无法找到相应的解决方案资料只好再投入人力、时间甚至金钱来重新经历一遍为什么相同的问题会重复出现,究其根源是因为缺少项目总结也就是说没有做好项目收尾工作。那么是不是我们只能等到项目结束或收尾时才能开始进行项目总结文档保存的工作呢:当然不是在软件项目管理的各个阶段我们都可以做收尾管理工作,也就是阶段收尾管理工作。 二、阶段收尾管理的重要性 在实际软件项目管理中.阶段性的收尾管理过程和工作往往不被大家重视其实阶段性的收尾管理工作也是非常重要的。阶段收尾管理工作的重要性主要体现在如下几个方面: 1进度管理中的里程碑每个项目都是由若干个相对独立的任务链组成的软件项目也是如此。只有在任何一条任务链都已经优化的基础上才可能进行系统的全面的优化因此保证每条任务链的效率是整个项目进度完成的前提和基础.只要能保证里程碑事件的按时完成,整个项目的进度也就有了保障。那么我们在里程碑点都来做些什么呢: 在计划好的阶段管理工作中.收集项目的最新信息和数据.并将这些数据与项目计划进行比较,来判定项目的阶段效率,进度是提前了还是落后了,成本是在控制中还是超支了?质量是否符合要求。客户对阶段工作结果满意么,及时总结经验与教训.同时及时发现项目存在的或潜在的问题以便近早采取纠正措施这就是阶段管理工作中的收尾管理,所以说阶段收尾管理是进度中的里程碑是整个项目进度优化的前提和基础。 2沟通管理中的契机沟通是保持项目顺利进行的润滑剂。与传统项目相比软件项目具有较高的技术含量和较大的风险。参与软件项目建设的用户并不都是软件开发专家.他们具有丰富的业务经验但是很少能了解软件开发的技术.随着项目工作进程的深入就会有许多新的问题出现与客户的及时有效沟通更显得尤为重要。软件项目是客户和用户共同面对的项目只有双方的积极参与才能促进项目的成功,而只有进行有效的项目沟通管理才能确保用户的积极参与。一个阶段的项目工作完成后与客户一起就前一段时间的工作进行总结和检查是十分必要的。一方面可以及时了解客户对项目工作的满意程度及时统计、分析客户对项目的意见.为下一阶段工作的顺利进行提供了保障另一方面有些因工作繁忙未能及时签署的文件,也尽快找客户给予签字确认。当双方出现纠纷时,只有双方签字的文字记录才是最有用、最有说服力的证据。 3收尾管理的基础。一个项目阶段的工作刚完成时项目组成员都保留着最新的阶段记录如阶段文档或最新的代码版本这个时候收集起米是非常容易的时间随着人员的变动或者项目的需求变更有些项目成员可能离开了项目组那时再去收集他们保存的文档资料就非常困难了,甚至有些记录永远也找不到了。好多大的软件开发项目跨几年的时间项目经理可能已经换了几任客户的项目主管也换了几位最后项目收尾管理时的文档收集、总结的工作,就是在阶段收尾管理的基础上来确保每个阶段的文档、资料都能按时完整地保存、归档。只有阶段管理收尾提供的数据信息越真实、越准确.才能保证在项目最终收尾时客观评定项目的绩效总结的经验教训和文档资料才有真正借鉴的价值总而言之.作为一个好的项目经理,一定要重视进度中的里程碑事件抓住与客户沟通的契机做好项目阶段工作的总结收尾工作如何做好这些工作呢。也就是要做好项目阶段管理收尾工作。阶段收尾管理工作是保证项目成功的重要管理手段它和项目的其他工作一样应该纳入项目计划并按计划落实。
1计算机软件工程管理的对象分析 1.1对相关工作人员的管理 计算机软件工程的工作人员的主要任务就是收集有效信息并应用编程等技术对这些信息进行处理分析。软件的开发是环环相扣的一个过程,在这个过程中每个工作人员的工作重点都是不同的,因此,要根据工作性质合理选用适合的工作人员是人员分配与管理的一大准则。而且对员工的管理不能是分散的,要将他们进行统一的安排和调分配,增强他们之间的默契程度,提高团队的合作能力。 1.2对软件使用者的管理 开发一个软件是为了让更多的人使用,并且让他们有很好的使用感受。在开发软件的时候要充分了解客户的需求,做出让客户满意度高的产品。而且在软件开发上市后还要继续收集客户的意见以及建议,对软件进行完善。 1.3对资料及档案的管理 计算机的软件开发是一个极其复杂的过程,因此在这个过程中也会产生大量的文件及信息,这些资源对于软件的再开发很重要,因此,相关工作人员要做好保护及备份的工作。只有这样才能为以后的软件开发保存大量珍贵的数据,才能使软件开发拥有安全稳定的环境。1.4对相关机构的管理管理组织机构内部也应该制定合理的规章制度,让每个人都能够严于律己,做好自己分内的工作。一定要明确每一个人的具体职责,使每一份细微的工作都有人将其做到做好,这样才能提高整体的工作效率。 2计算机软件工程管理应用中经常出现的问题 2.1组织管理结构不合理 个工作人员具体的责任不太明确,容易出现“踢皮球”的现象,这就导致工作中一旦出现问题就无法得到妥善的解决,从而降低了工作效率,给公司带来损失。 2.2技术人员管理存在漏洞 在实际的工作中存在对于技术人员管理很随意的问题。软件开发是一个极富创造性的过程,但如果对相关员工进行一般的管理,往往会降低他们的工作热情,使他们难以制作出具有创新意识的产品,而且这样的人员管理模式也无法发挥出工作人员的价值与优势,因此要改变技术人员管理的方式。 2.3用户管理无序 用户管理也应该是软件管理当中很重要的一个环节,但有一些软件公司就没有对用户管理予以足够的重视。他们不能完整地收集客户的需求与反馈,也不能对已收集到的信息做出有针对性的处理。总之,他们并没有认识到计算机交互性的重要性,不能和用户产生双向互动,这就意味着他们不能够做出符合用户需求的软件。 2.4档案资料管理不严密 在计算机软件工程管理的过程中,档案资料的管理还存在很多的纰漏。例如,文档资料并没有按照一定的标准进行归类和整理,当有人想要查找相关资料的时候往往会耗费很多的时间和精力。而且还存在资料缺失的问题,由于工作人员的失误使一些重要文件和资料丢失,给公司带来巨大的损失。 3解决计算机软件工程管理问题的方法探究 3.1合理规范组织管理体制 要健全组织管理体制,让管理工作能够高效进行。(1)要规范各项管理工作,使每一项任务都能具体落实到固定的人员身上,让他们对自己的责任和任务有着更清晰明确的认识。(2)工作人员要坚守自己的责任,保证管理工作的有效进行。(3)要对工作人员进行统一的管理和分配,加强各个部门之间的合作意识,培养团队精神。 3.2使用奖惩制度管理技术人员 要建立奖惩制度来对技术人员进行更有效地管理。通过奖励机制可以让技术工作人员对软件开发充满热情,他们的积极性提高了,才能制作出更有活力、更有创意的软件。而适当的惩罚可以让消极怠慢的技术人员重新把注意力集中到软件开发当中,让他们保持健康积极的工作状态。 3.3合理有序地管理软件用户 客户的需求和反馈对于软件开发极其重要,在计算机软件工程管理中要重视对客户的管理。首先,要积极了解用户的喜好和需求,针对他们的要求,做出让客户满意的软件。在软件运行之后也要继续收集客户的意见并按照这些意见对软件进行完善。只有这样制作出的软件才能具有很强的实用性,才能吸引到更多的客户。 3.4加强档案资料的管理工作 为了发挥档案资料的参考性作用,就一定要加强档案资料的管理工作。(1)要对档案资料进行合理有序地整理,减轻之后查找资料的工作负担。(2)要保证档案资料的安全性,做好保密措施,防止黑客攻击。(3)为了避免意外的发生,一定要做好备份,让档案资料完整地保存下来。 4结语 为了使计算机软件工程管理的工作更高效地进行:(1)保证建立合理规范的管理制度;(2)要合理地应用奖惩制度,提高相关工作人员的积极性,让他们更高效地工作;此外,还应该重视和客户的交流与沟通,使软件变得更加完善实用;(3)一定要做好档案资料的管理工作,保证资料的有序和安全。只有做到这些,才能使计算机软件开发的效率变得更高效,才能更多地让计算机软件工程的好处惠及到人们的生活生产当中。 参考文献: [1]曹璨.计算机软件工程管理及运用研究[J].无线互联科技,2014(07):45-45. [2]肖云.浅析计算机软件工程的管理和应用[J].电脑知识与技术,2016,12(12):88-89. [3]杨晓庆.计算机软件工程管理与应用分析[J].网络安全技术与应用,2017(05). [4]李田英,苏艳.计算机软件工程管理与应用分析[J].电脑知识与技术,2015,11(10):72-73. 作者:刘华宇 赵诚轶 单位:河南师范大学;东北师范大学
随着计算机技术的迅速发展,对于计算机软件工程的管理应当提高重视程度,不断的探索和关注软件工程管理的发展。因此,本文通过计算机软件工程管理的应用分析进行研究,阐述了计算机软件工程管理过程中的问题及解决策略,通过对软件工程项目管理进行分析,为目前我国的计算机软件工程管理提供一些建议和指导。 目前我国的计算机技术走在世界的前沿,但对于计算机软件工程的管理仍存在忽视的情况,对于计算机软件工程的管理仍处在探索的阶段,对于如何进行计算机软件工程管理并提高整体的管理水平,最大限度的为计算机软件工程提供帮助者,是当前我国计算机技术发展中应考虑的首要问题。在计算机软件工程发展的过程中,离不开管理的作用,管理可以为计软件工程提供一些技术上的指导,对于计算机软件工程未来也可以提供发展和帮助。在计算机软件工程中,不同的软件有着不同的产品特性,因而对于不同的产品进行的管理也都不相同。所以,在计算机软件工程中,应当利用管理的特殊性和独特性,在当前软件工程管理模式的基础上,针对不同产品的不同特性,采取相应的管理模式,实现计算机软件工程的良好发展,综合提高计算机软件工程的管理水平,为计算机技术在我国中的应用提供坚实的力量。 1计算机软件工程管理的主要内容 1.1组织机构管理 在计算机软件工程管理的过程中,组织机构的管理尤为重要,健全的组织结构能够有效提高管理的水平。在计算机软件工程项目中,对于项目管理的人员的综合素质要求较高,导致管理人才稀缺,工程管理的水平达不到基本的标准。管理中的团队不仅仅是简单的部门,而是管理人才与组织形成完整的结构,保证项目管理整体水平的稳定性和计算机软件工程的明确性。良好的组织机构管理不仅能够对管理人员进行整合作用,同时通过组织机构管理可以实现人力资源最大化,提高整体的管理水平要求,对于计算机软件工程的发展有着重要的意义。 1.2工作人员管理 计算机软件工程管理中的工作人员主要负责收集和整合计算机软件工程项目中的主要信息,软件的编程和完善后续的工作等等。对于计算机软件工程中的管理人员来讲,工作人员的工作具体就是在软件工程项目工作过程中进行细致化的管理。在管理的过程中,工作人员各司其职,每个员工都有不同的责任。因此,在分配工作量的过程中,应当将负责人与负责的岗位相分配,共同进行管理工作。在了解员工管理工作的模式后,应当根据不同的软件工程项目进行不同的安排和分配,利用工作人员不同的专业技能和工作水平,结合实际的软件工程管理工作进行不同的分配。进行软件工程管理的工作人员不仅需要大量的知识储备,同时也需要和其他部门合作,共同协调完成管理工作。 1.3软件用户管理 在计算机软件工程管理的过程中,软件用户管理成为了管理中重要的核心部分。实行有效的软件用户管理可以提高计算机软件工程管理水平的不断增长,为吸引更多的软件用户打下良好的基础。软件工程开发的目的是有用户使用,在软件开发的过程中,应当以用户为核心,通过对不同用户的不同需求进行设计,并且积极推荐给用户使用,在使用的同时对软件不断进行改进。因此,在软件用户管理的过程中,应当先进行市场调查,确定客户群体的基本信息,对于不同软件用户的不同需求进行适当的采集和整体,了解不同用户对于软件的各类个性化和需求和操作方法,以便于在软件工程设计过程中,可以结合多方面因素进行设计,保证用户数量的同时,也降低了软件工程的成本。在软件用户管理的过程中,相关部门还应与研发部门、开发部门等部门进行沟通,深入了解不同用户群体的使用体验,收集相关的意见和建议,以便于更好的完善软件,实现软件的实用性。 1.4档案资料管理 在计算机软件工程建设过程中,档案资料的管理也较为重要。因计算机软件工程涉及的数据量、信息量较为庞大,档案资料既多又复杂,对于软件工程的建设又有着十分重要的参考作用。因此,在档案资料管理的过程中,工作人员应当将重要的档案和资料进行备份,同时整理项目过程中的全部档案和资料,以免有遗漏。一方面能够为软件工程项目建设提供参考资料,保证项目的安全性,另一方面也能保证项目无差异性,提高了软件工程整体的开发效率和使用效率。 2计算机软件工程管理工作问题 2.1无法估计工作量管理计算机软件 在计算机软件工程管理过程中,由于工程项目庞大,计算机技术的迅速发展,有许多外界因素干扰项目的进行和管理的时效性。其中影响较大的因素就是人的因素。在项目建设的过程中,工作人员会影响到计算机软件工程管理水平的发展,例如工作人员的综合素养、技术水平、有无责任感等等。在软件开发的过程中,若不考虑工作人员的因素,计算机软件工程可能会比较容易估算。所以,在软件工程项目按开发的过程中,类似工作人员的因素必须要首先解决,只有最快速的找到解决问题的方法,才能实现软件水平的正常化。 2.2计算机软件工程在实际应用中存在不足 计算机软件工程在实际应用的过程中,会存在许多业务方面的问题。利用计算机软件工程对于业务的处理和分析还不够成熟,为软件工作管理带来了严重的影响。在实际业务应用的过程中,存在需求阶段的项目,工作人员可以通过研发更为便携的应用软件,为软件工程的开发提供其他的开发能力,同时计算机软件工程的企业应当对有潜力的职工进行大力的培养,增强工作人员的工作责任和工作意识。 3计算机软件工程的主要策略 3.1强化管理体系建设,提高管理效率 在计算机软件工程管理的过程中,应当加强计算机软件工程管理建设,同时加强对计算机软件工程管理人才的培养,提高对人才的重视程度,提升人才的综合能力和责任心,充分调动成员的积极性。好的人才才能为企业带来高收益。在企业的建设过程中,加强对人才的培养,对专业人员进行定期培训,不断更新软件工程相关的知识和技术,了解软件工程相关的最新信息,意识到人力资源的重要性,直接决定了软件工程项目的运行效率和质量。在对工作人员进行计算机软件工程培养时,应当注重工作人员的工作素养和工作作风,以确保项目的顺利开展。同时,应当加强对企业的培训工作,若想提高计算机软件工程管理的工作效率和工作质量,就要提高管理人员的知识和水平,提高管理能力。在强化软件工程管理水平的过程中,应当对建立有效的管理模式和机制,提高管理效率,不断学习计算机软件工程项目相关的各类先进技术,提高工作人员的整体水平,采取科学的手段建立健全管理机制,激发员工的工作动力,以确保软件工程的顺利开展。同时,在管理的过程中,应当将理论与实践相结合,促进软件工程管理的发展,提升软件工程的价值,提高工程开发的运行效率,加强对各类管理机制的完善,在结合实际的基础上,对于管理不断更新和发展,使得软件工程管理有更好的发展,为计算机技术的发展提供坚实的动力。 3.2加强软件风险管理,确保工作进度 在计算机软件工程开展的过程中,伴随着一定的软件风险,如何预防风险,切实推进计算机技术的发展成为了当前项目开展首要考虑的问题。因此,在软件开发的过程中,应当加强对软件风险的管理,建立健全风险管理模式,不论是在工作人员方面还是在日常软件运行方面都要进行适当的防范。一方面,加强工作人员的风险意识,可以有助于提高日常工作的安全性,工作人员在掌握风险管理知识的基础上,能够对于日常的风险管理有更好的应用措施。强化工作人员的风险管理意识,便于日常的风险通报。另方一面,应当建立健全风险管理机制,完整的风险管理机制是软件工程运行的前提。定期对计算机软件工程进行风险管理,可以更好的防范风险的发生,提高软件自身的经济效益。 3.3提升团队合作意识,发挥团队潜能 在计算机软件工程管理的过程中,应当加强团队合作意识,发挥团队潜能。好的团队合作会给企业带来巨大的经济效益。加强团队的合作意识是计算机软件项目开发成功的基础。作为软件工程开发中的重要环节和项目,建议团队合作意识刻不容缓。所以,若想建立良好的团队合作精神,首先应建立团队合作的意识,让团队中的每个员工都发挥自身的技术和才能,加强员工与员工,员工与组长间的相互交流,建立良好的团队合作关系,提高团队整体的合作效率。此外,还应适当进行团队管理,好的团队管理也是提高团队合作的关键。在团队合作的过程中,确保每个员工的工作职责,使每个员工充分投入到工作当中去,将团队潜能发挥到最大,提高计算机软件工程管理工作的效率。 3.4软件开发平台进行统一规划 在计算机软件开发的过程中,应当对软件开发平台进行统一的规划,这样可以避免重复开发在多种平台。随着我国计算机软件工程技术的飞速发展,网络建设软件开发平台也随之增多。所以,在规划的过程中,应当建立同统一的规划机制,由各个部门的工作人员共同建立统一平台,进行统一的计算机软件工程的管理。 3.5安全防御的身份验证 在计算机软件工程的运行中,应当构建其相应的网络安全体系。通过对各类信息的整合可以实现对使用计算机软件的人进行安全验证,通过计算机软件技术对用户进行身份的查验,保证信息在传输过程中的安全性。通过构建安全防御的验证系统,可以更好地实现对不同用户进行身份确定,实现对计算机软件工程的安全性,同时对于计算机网络安全提供了加密的作用,提升了计算机软件工程的安全性。 4计算机软件工程的应用 随着我国计算机信息技术的高速发展,计算机软件工程应用广泛,特别是在社会上和日常生产生活中的应用相对较为广泛,在使用过程中发挥出了巨大的作用。随着计算机和网络的日渐普及,计算机软件工程的优势日渐突出,其在社会中的应用范围越来越广泛,发挥的作用也越来越大。利用计算机软件工程对软件进行研发和运用,因此,在研发的过程中要求工作人员具备一定的专业技能,以提高研发的科学性和严谨性。在软件开发的过程中,各类计算机软件层出不穷,常见的软件有办公软件,良好的办公软件可以为各行各业服务,使得办公流程变得更加简单和便捷,随着办公软件的不断更新和优化,未来的办公软件可以向着精细化的方向发展。企业中应用计算机软件较多,办公软件的使用可以使得企业内部工作流程更为简单,传输信息的过程中使得信息确保安全性,传输效率更高,在工作过过程中沟通更为顺畅,大大提高企业整体的运行效率。在教育体系中利用计算机软件也较为常见,由于学校中的学生数量较多,若不利用计算机软件进行系统的录入和编号,很可能会出现问题。所以,在教学体系中,良好的利用计算机软件,不仅能够对学生的各类信息进行保存和分类,还可以进一步提高学生和教师间的良好沟通,提高师生间的关系,同时也提升了知识的传播速率。便携化的教育体系不仅提高了课堂整体的效率,同时对教育的发展也有助力。 5结论 随着我国计算机水平的不断发展,计算机技术对人们日常的生产生活水平有着重要影响,对于国内外应用计算机技术的各行各业来说,都具有十分重要的发展意义和前景。计算机软件工程在我国的发展已经具有一定的规模,同时也在不断完善和创新计算机软件工程。在计算机软件工程发展的过程中,应当优化软件工程管理的整体水平,提高计算机软件工程管理的质量和运行效率。在计算机软件工程发展过程中,强化其软件工程管理大大提高了软件工程的运作和发展,对于计算机技术的变革和创新也有着十分重要的作用。有效提高软件工程管理水平,能够提高计算机软件工程的整体质量和运行效率,提高计算机技术行业的经济效益,也能提高我国的社会效益,促进我国计算机技术的不断发展和提高。
软件工程论文:ISO9000在软件工程管理的应用 杨挚 ISO9000系列标准及软件质量认证 近年来,国际上影响最为深远的质量管理标准当属国际标准化组织于1987年公布的ISO9000系列标准,这一国际标准发源于欧洲经济共同体,但很快就波及美国、日本及世界各国。到目前为止,已有70多个国家在它们的企业中采用和实施这一系列标准。中国对此也十分重视,也采取了积极态度。一方面确定对其等同采用,与其相应的质量管理国家标准系列GB/T19000;同时积极组织实施和开展质量认证工作。计算机软件行业自然也和其它领域一样被席卷进去。 ISO9000系列标准如此迅速地在国际上广为流行,其原因主要在于: 1)市场经济,特别是国际贸易的驱动。无论任何产业,其产品的质量如何都是生产者、消费者、以及中间商十分关注的问题。市场的竞争很大程度上反映了在质量方面的竞争。ISO9000系列标准客观地对生产者(也称供方)提出了全面的质量管理要求、质量管理办法,并且还规定了消费者(也称需方)的管理职责,使其得到双方的普遍认同,从而将符合ISO9000标准的要求作为国家贸易活动中建立互相信任关系的基石,并且在国际贸易中,把生产者是否达到ISO9000质量标准作为购买产品的前提条件,取得ISO9000质量标准认证被人们当作进入国际市场的通行证。 2)ISO9000系列标准适用领域广阔。它的出现最初针对制造行业,但现已面向更为广阔的领域,这包括: (1)硬件:指不连续的具有特定形状的产品,如机械、电子产品,不只是计算机硬件。 (2)软件:通过支持媒体表达的信息所构成的智力产品。计算机软件当然属于其中。 (3)流程性材料:将原料转化为某一特定状态的产品。如,流体、粒状、线状等,通过瓶装、袋装等或通过管道传输交付。 (4)服务:为满足客户需求的更为广泛的活动。 ISO9000系列标准的内容 2000版ISO9000系列标准的内容 ISO9000:2000质量管理体系基本原则和术语 ISO9001:2000质量管理体系——要求 ISO9004:2000质量管理体系——业绩改进指南 ISO19011:2000质量和环境审核指南 2000版ISO9000族标准的特点 新版ISO9000族标准对比现行的1994版而言,具有以下的特点。 1.面向所有组织,通用性强。新版ISO9000族标准适用于所有的产品类别、所有的行业和各种规模的组织,总之,新版标准面向所有组织,通用性很强,将成为适用范围最广的国际标准之一,表现在: (1)新版标准消除了1994版对硬件产品制造业的偏向性。 2000版标准巧妙地采用了“产品实现”、“动作控制”、“过程的测量和监控”和“产品的测量和监控”等词汇和要求,消除了行业的偏向性,对非制造业贯彻ISO9000族标准所带来的方便是不容置疑的。 (2).为特种行业制定行业附加要求奠定了共同的基础。有些行业确有其特殊性,2000版本标准允许在ISO9001基础上增加行业特殊要求的条款。这样既能使所有组织的质量体系基本要求具有一致性,又确保行业特殊要求的适用小性。已有软件.通讯.汽车.等行业都已用此方式制定各自的行业特殊要求。 (3)。‘‘允许裁剪“的规定使2000版ISO9001标准的适用范围扩大到1994版ISO9001/9002/9003/三个保证摸式的标准户群。三个保证没摸式的差异都在第7章产品实现过程中,2000版ISO9001,1.2允许对第7章要求中不影响满足顾客和法规要求,不及组织责任的标准条款进行裁剪,从扩大了ISO9001标准的适用范围,又获得”以一顶是三(三个质量保证摸式),减少标准数量的功效。 (4)。考虑了小型企业的适用性。2000版标准保留了大小企业都是必要的条款,有的还进行强化,对小型企业可能不太上适合的具体要求则进行弱化。使2000版ISO9001标准的通用性更强了。 2.确立八项原则,统一留念理念。 3.鼓励过程方法,操作性强。2000版标准的修订采用了过程摸式,提倡用过程方法来识别和建立体系。 4.强化关键:领导作用。 5.自我评价测量,突出改进。 6.关心各相关方,利益共享。 ISO9000系列标准原本是为制造硬件产品而制定的标准,不能直接用于软件制作。后来曾试图将ISO9001改写用于软件开发方面,但效果不佳。于是,以ISO9000系列标准的追加形式,另行制定出ISO90003标准。这样,ISO90003就成了用于“使ISO9001适用于软件开发、供应及维护”的“指南”。不过,在ISO90003的审议过程中,日本等国曾先后提出过不少意见。所以,在内容上与ISO9001已有相当不同。ISO90003(即GB/T19000.394),全称《质量管理和质量保证标准第三部分:在软件开发、供应和维护中的使用指南》。 制定与实施ISO9000系列标准 1)强调质量并非在产品检验中得到,而是形成于生产的全过程。ISO90003叙述了需方和供方应如何进行有组织的质量保证活动,才能得到较为满意的软件;规定了从双方签订开发合同到设计、实现以至维护整个软件生存期中应当实施的质量保证活动,但并没有规定具体的质量管理和质量检验方法和步骤。 ISO90003的核心思想是“将质量制作入产品之中”。其实道理是很明显的,软件在完成编码以后,不论花多大的力气用于测试,提高质量都是有限度的,更不必说需求规格说明存在的问题常常是测试无法发现的。事实上,软件产品的质量取决于软件生存周期。 2)为把握产品的质量,ISO9000要求“必须使影响产品质量的全部因素在生产全过程中始终处于受控状态”。为使软件产品达到质量要求,ISO90003要求软件开发机构建立质量保证体系。首先要求明确供需双方的职责,针对所有可能影响软件质量的各个因素都要采取有力措施,作出如何加强管理和控制的决定。对与质量有关的人员规定其职责和职权,使之责任落实到人,产品质量真正得到控制。 3)ISO9000标准要求证实:“企业具有持续提供符合要求产品的能力”。质量认证是取得这一证实的有效方法。产品质量若能达到标准提出的要求,由不依赖于供方和需方的第三方权威机构对生产厂家审查证实后出具合格证明。显然,如果这一认证工作是公正的、可靠的,其公证的结果应当是可以信赖的。正确实施产品质量认证制度自然会在促进产品质量提高,指导消费者选购产品,提高质量合格产品企业的声誉,以及节省社会检验大量费用等方面发挥积极作用。 生产企业为了达到质量标准,取得质量认证,必须多方面开展质量管理活动。其中,企业负责人的重视以及企业全体人员的积极参与是取得成功的关键。 4)ISO9000标准还强调“质量管理必须坚持进行质量改进”。贯彻ISO9000标准是企业加强质量管理、提高产品质量的过程,这个过程包含许多工作绝非轻而易举、一蹴而就所能奏效的。即使已经取得了质量认证也不能认为一劳永逸而放松质量管理。实际上认证通常以半年为有效期。取得认证之后尚需接受每年1~2次的定期检查,其目的在于促使企业坚持进 行质量改进。 软件工程论文:浅析软件工程 摘要:软件工程专业是计算机领域发展最快的学科分支之一,软件工程(software engineering,简称为se)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。这一学科包括许多的内容,具体来讲有程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等。当今社会,网络化迅速发展,软件的应用领域越来越广。现在比较普遍的软件有电子邮件,人机界面,办公套件,操作系统,游戏等。目前,基本上每个行业都会某种程度的运用到计算机软件。这些应用对于推动经济和社会的发展起到了举足轻重的作用,提高了工作效率,改善了人们的生活质量。 关键词:软件工程 计算机领域 程序设计 开发工具 设计模式 生命周期、软件开发 1 概述 软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。这一学科包括许多的内容,具体来讲有程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等。当今社会,网络化迅速发展,软件的应用领域越来越广。现在比较普遍的软件有电子邮件,人机界面,办公套件,操作系统,游戏等。目前,基本上每个行业都会某种程度的运用到计算机软件。这些应用对于推动经济和社会的发展起到了举足轻重的作用,提高了工作效率,改善了人们的生活质量。 我们究竟是将软件的开发看成一门科学,还是将其看成是一门工程,关于这个问题已经讨论了很长时间了。事实上,软件的开发具备这两者的特征。但是我们不能将二者混淆了。大多数人认为软件工程基于计算机科学和信息科学就像是传统意义上的工程学之于物理和化学。在世界各个国家,尤其是美国大约有40%的软件工程师都有计算机科学的学位。他们可能不经常运用到计算机科学上的知识,但是会经常运用到软件工程上的知识。许多应用都需要软件工程,在软件开发的许多程序中也需要软件工程。软件工程的主要作用就是指导软件项目的方方面面。在软件工程中,软件开发与各种市场活动紧密相连。软件工程的方法学认为程序员在开发软件的时候是处在一个团队中的,而且在编写程序时要符合软件的需求,设计,以及客户的利益。 伴随着开发技术的不断进步,软件开发过程也在不断的改进。从早期的瀑布式(waterfall)的开发模型直到最近开始兴起的敏捷开发方法(agile),表现出来的是随着时代的变化,软件产业对于开发过程的认识也在不断的变化,对于各种类型项目的理解方法也在发生着变化。在美国曾经有权威机构对软件组织的绩效做过评估,所得到结论是:软件工程的专业分工不足,是造成品质低落、时程延误、预算超支的最关键因素。2003年,the standish group年度报告指出,在他们调查的13522个专案中,有66%的软件专案失败、82%超出时程、48%推出时缺乏必需的功能,总计约550亿美元浪费在不良的计划、预算或软件估算上。 2 软件工程的需求分析 有一种观点认为软件工程是学习怎么做软件的,对吧?我认为,这种观点算对,但不是全对。得到一个软件产品,自然是软件工程的目的所在,但是软件工程所包含的却不仅仅是这些。就拿软件业界比较常见的例子来给大家讲一下,这个例子就是盖房子,我们盖房子,是不是就买块地,然后准备好建材,就哐当哐当地开始建房子了呢?大家明白不是这样,要建好一座房子,先要对土地进行测量勘察,确定可以在上面建房屋,之后还得先规划出整个房子的蓝图来,接下来才是对根据蓝图开始建房子。建好房子后,还得经过一些检测,比如甲醛有没有超标啊,包工头有没有偷工减料啊,这些都合格之后才能交付使用。于是有人入住了,住久了,发现浴室漏水,那就得修补一下。再住久了,住了几十年,房子旧得不成样子了,这时候它的寿命也到了终点了。 软件工程之所以叫软件工程,就是因为它使用了工程学方法来帮助软件开发,建筑也是一门工程学,所以它们之间是会有些共通之处的,不信?请看:首先,我们在对土地进行测量勘察的时候,是在确定它是否适宜建房子,在软件工程上来讲,这个术语叫“可行性分析”,可行性分析的任务就是确定开发这个软件是否在技术上可以做到,在资金上有充足支持,在市场上能够受欢迎,如果答案是肯定的,那么就可以继续下一步的开发步骤。规划 房子的蓝图,在软件工程上被分为两个过程:“需求分析”、“设计”。需求分析就是得到软件需要做什么,需要实现什么功能。而设计就是告诉开发人员怎么实现这些功能。也就是规划出软件的一个蓝图,在“编码”阶段再对其进行实现,这就对应着建房的关键阶段,就是按照蓝图盖好房子啦。房子在入住前需要检测是否合格,软件在交付给用户使用的时候自然也需要检测是否合格,这个阶段叫做“测试”。检测合格了,那就可以交付给用户使用,在市场上销售。软件不可能完美无缺,所以在使用过程中,一定会出现某些问题,这时候就要将问题提交给软件开发人员,修复问题,这个阶段就是软件过程中的“维护”阶段。过了一段时间,这段时间可能很长,也可能很短,这软件已经不适应生产力的发展了,那么就可以正式宣告这软件寿终正寝了,至此,软件的生命周期才正式结束。 我们还要注意,软件生命周期包括制定计划、需求分析和定义、软件设计、程序编码、软件测试、运行维护这六个阶段,是指一个计算机软件从功能确定、设计直到不再使用该软件的全过程。 软件工程,正是贯穿在一个软件的整个生命周期中的。从开发某个软件的计划被提起或者立项,软件工程就开始发挥着作用,用自己的一套方法体系,来指导软件开发的整个过程。因此软件工程不等于编程,编程只是软件工程整个过程中的一个重要环节而已。据统计,在整个开发周期中,平均编码这个过程只占了整个周期的大约30%的时间。 3 软件工程原则 软件工程学主要是用来对软件开发和维护进行指导,是为了经济地获得能够在实际机器上有效运行的可靠软件而建立和使用的一系列完整的工程化原则。它充分的运用计算机科学、数学及管理科学等方面的知识,并借鉴传统工程的原则、方法来完成开发软件的任务,这样就能够最大限度的开发高质量的软件,并且能够减少成本。 boehm是一位知名的软件工程专家,在借鉴了许多的专家和学者的经验之后,再加上自己在开发软件方面的经验,在1983年总结出了软件工程的七条基本原理: ①用分阶段的生存周期计划严格管理; ②坚持进行阶段评审; ③对产品严格把关; ④在技术上运用现代程序设计; ⑤结果能清楚地审查; ⑥开发小组的人员不要太多,但是这些人员要有真才实学; ⑦不断对软件工程实践进行改进是很有必要的。 一般来说,一个软件方法往往规定了明确的工作步骤、具体的描述方式以及确定的评价标准。软件开发的基本方法包括结构化方法、面向对象方法等。 随着软件工程学的发展和软件开发的实践,软件开发模型依次被提出:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、形式化方法模型等。 目前,已经推出很多软件开发工具,如需求分析阶段的psl/psa系统;编码阶段的各种语言编译工具、编辑程序、连接程序等,都是软件编码阶段的软件工具;测试阶段的测试数据产生程序、动态分析程序、静态分析程序等软件自动测试工具;维护阶段的版本控制系统等。从广义上来讲,软件分析、设计阶段的各种图形工具,如数据流(dfd)等也可以称为软件开发工具。 从技术和管理上采取多项措施后,组织实施软件工程的最终目的是保证项目成功,即达到以下几个主要目标: ①使开发成本最少; ②达到预期的软件功能; ③软件性能更好; ④使软件易于移植; ⑤最大限度降低维护费用; ⑥按时完成开发任务,及时交付使用。 4 结束语 软件工程的方法的意义是非常广泛的。具体来讲包括项目管理,分析,设计,程序的编写,测试和质量控制。有些人认为人们要认真遵守这些方法进行软件开发,但是有些人还没有足够的能力实施这些方法。事实上,具体运用哪种方法开发软件是受很多方面因素的限制的。 软件工程论文:信息系统开发中面向对象软件工程方法的应用分析 随着科学技术的不断进步,计算机硬件也进入了高速发展阶段,软件开发方法也随之得到不断更新。面向对象(oo)方法于60年代后期被提出,但花了近乎20年才被人们广泛认识和使用。如今,面向对象软件已成为行业内的主流,并在软件行业中占据着非常重要的位置。传统的软件工程方法常把数据与处理的过程分开,大大增加了软件开发的难度。面向对象方法吧软件工作视作离散解空间对象的结合,并使问题空间与解空间的结构、描述模型相一致,简化了程序的同时降低了软件系统开发的难度。 目前,国内普遍采用传统的结构化分析设计和面向对象程序相结合的方式进行项目开发,并且大部分项目也取得了成功。但这种方法无法让实现两者的平滑过渡及连续性,并且不利于软件重用、维护、测试等工作的进行。如果全过程仅采用面向对象软件工程方法,则能确保信息系统开发的完整性和一致性。由于面向对象数据库产品尚未完善,因此此方法很难应用于实际中。为此,必须制定相应的规则和算法,确保面向对象分析、面向对象设计的结果能正确地向关系数据库转换。 一、关于面向对象软件工程 1.面向对象。面向对象主要是指在满足客户需求的基础下,将需求合理构建成独立的业务模块,之后利用多态、继承、封装、抽象的编程思想对业务逻辑进行构建,使之与业务需求相一致,最后将各模块整合以达到最佳的预期效果。 2.面向对象软件工程。面向对象软件工程时面向对象技术和软件工程相结合的产物。面向对象技术贯穿到面向对象软件工程的全过程,并将过程中形成的面向对象分析、面向对象设计和面向对象程序设计三部分,贯穿到软件工程的各个相应阶段。面向对象软件工程所采用的具体模型不外乎以下几种:整体——部分模型、类——对象模型、对象模型、分类模型和状态模型。 3.面向对象的方法。随着时代的发展,面向对象分析和面向对象设计的理论和技术都得到了逐步完善,软件开发方法也不断地推陈出新。国内外目前已衍生出多种的面向分析方法,其中最有影响力的主要有:booch方法、rumbaugh方法、coad和yourdon方法、jacobson方法、统一的ooa方法(uml)。从面向对象分析到面向对象设计是一个将模型逐渐扩充的过程。在这个过程中,主要考虑的是如何分析处理问题,对于与特定计算机相关的问题则可以忽略不计。面向对象设计可以分为高层设计和低层设计两个阶段,高层设计主要用于建立体系整体架构,低层设计则主要用于对类的详细设计。 二、面向对象方法在医院收费信息系统的应用 为了更好地理解面向对象软件工程方法在信息系统开发中的应用,我们采用了医院的收费信息系统为例。首先,可将医院收费的需求构建成三个独立的业务模块——功能模型、动态模型、对象模型。 1.功能模型 对收费信息系统进行业务分类,其中主要包括划价和查询统计两个子系统。分类的目的是为了业务模块的构建更合理清晰,节省和减少了系统操作人员的工作时间和工作量。病人缴费以后,操作人员可通过划价子系统输出其收费单据,并按有关规定将单据导入数据库中。如果病人想清楚医院的具体收费,操作人员可键入查询条件,从而为病人输出相关单据。 2.动态模型 医院收费信息系统被划分为两个子系统,其中划价子系统的动态模型主要显示为一些列的前台操作,其主要表现为:病人请求→划价员根据相关单据进行划价;病人付款→操作人员打出收据→将信息导入数据库→修改记录。查询统计子系统跟划价子系统类似,主要均是由病人提出请求,操作员再根据病人需求键入查询条件,从而输出病人的相关统计表单。 3.对象模型 本系统主要涉及到的重要的类模型为——库存类图、人员类图和单据类图。 (1)库存类图。库存类模型所增加的属性(库存量、生产日期、保质期)主要跟药物和其特性密切相关。医院内各种药物及材料都标明了库存量和保质期,而药品则常被细分为:西药、中药、中成药。 (2)人员类图。病人和医院工作人员均继承在人员类中,其中病人是医院收费信息系统的主角,划价请求、查询请求、缴费等划价子系统业务都是病人类的方法。医院工作人员类又可细分为三个子类,包括医生类、收费员类和操作员类。医生类是必然的存在,病人的病情及其主治医生,这些都需要存档。操作员是除病人外在系统中的又一主角,查询、划价、统计均是其工作。由此可见,系统的操作运行离不开操作员。收费员的工作极为简单,只需进行收费操作即可。 (3)单据类图。单据可分为治疗单据和收费单据。治疗单据在病人治疗后由医生开出,单据上主要标有:单据号、医生和病人的姓名、日期等项目。其中父类为单据号、医生和病人的姓名,子类为治疗项目如手术项目类、药品项目类等。收费单据时是系统根据治疗单据划价、病人缴费后所打印出的凭据。其父类为收费项目类,子类则为药品收费项目类、手术收费项目类等。由于单据的不同,子类会根据其属性而有所变化,因而系统可以根据需要打印出不同类别的单据。 软件工程论文:软件工程在“软件开发设计实训”课程中的应用 笔者所在学院的软件工程系是成立于2005年的新专业,为校级特色专业。近年来,随着对软件工程特色专业建设进程的推进,课程体系日趋完善。针对软件工程学科具有理论多且实践性极强的特点,本系较大幅度地加大了实践类课程和环节所占的比例,“软件开发设计实训”便是其中很重要的一门实践课程。由于软件工程学科发展速度很快,在软件产业不断发展,全国对高素质的软件人才的需求量激增的形式下,迫切需要研究和探索实践类课程的教学模式,激发学生学习兴趣,以更有效的手段和方式提高教学和指导质量,为培养更加符合社会实际需要的软件开发人才打下坚实基础。在我校教改基金的资助下,依托软件工程教学团队,本文对将软件工程应用于“软件开发设计实训”课程的教学模式及主要措施进行探讨。 1 选择适当的软件工程过程 “软件开发设计实训”课程的主要目的是使学生学会用面向对象的设计方法设计实际系统。结合软件工程学科的发展和应用现状,软件开发过程主要采用rup(rational unified process,统一软件开发过程)的方式组织软件开发。rup是风险驱动的、基于use case(用例)技术的、以架构为中心的、迭代的、可配置的软件开发流程。 rup分为初始、精化、构造和交付四个阶段,各阶段涉及多种工作流。rup的核心工作流主要包括: 需求捕获工作流:需求捕获通过对问题的理解和分析,确立问题涉及的信息、功能和系统行为,将用户需求精确化、完全化。需求的焦点主要在初始和精化阶段,在精化阶段后期,需求捕获的工作量大幅下降。 分析工作流:分析的主要工作开始于初始阶段的结尾,和需求一样是精化阶段的主要焦点。精化阶段的大部分活动是捕获需求,分析工作与需求捕获在很大程度上重叠。 设计工作流:设计的主要工作是位于精化阶段的最后部分和构造阶段的开始部分的主要建模活动。系统建模最初的焦点是需求和分析,在分析活动逐步完善后,建模的焦点开始转向设计。 实现工作流:实现(实施)是关于把设计模型转换成可执行代码的过程。从系统分析师或系统设计师的角度看,实现工作流的重点就是完成软件系统的可执行代码。实现工作流是构建阶段的焦点。 测试工作流:测试是一项相当主要的工作。测试工作流贯穿于软件开发的整个过程。它开始于软件开发的初始阶段,而细化阶段和构造阶段是测试的焦点。测试是为了找出程序中的错误与缺限,而不能证明程序无错。 rup就像一个元过程,通过对rup进行裁剪可以得到很多不同的开发过程,非常灵活,所以可以将其按本课程需要进行精简,从而把深奥的理论指导融入具体软件项目的开发设计中,让学生更加深切地体会到什么叫学以致用,消除畏难情绪,培养和增强在软件开发设计中自觉遵从软件工程思想的习惯。本课程使用的case(computer aided software engineering,计算机辅助软件工程)工具集采用sybase公司的powerdesigner。 2 将有价值的软件工程知识引入课堂,教学采用项目贯通案例 为让学生在中小规模的实训项目中也能体会到较大型项目通常会用到的一些软件工程技术,让本课程更有实用价值,教师需要对学生补充一些软件工程相关知识,包括:设计模式、架构设计、类的持久化以及数据库设计、面向对象实现以及文档的书写这四个方面。 为配合上述四个方面的软件工程相关知识的介绍,教师采取“项目驱动的案例教学”方法【2】,在课堂讲授中引入一个完整的、规模适中、难易适度的软件项目案例。该案例需要通俗易懂而又具有实际意义,涉及的应用领域应该是学生较为熟悉的,这样理解起来更为容易。以此案例完整的开发设计过程为主线,借助这个贯穿整个课程教学进程、文档齐全的完整案例来将软件项目开发设计过程中的各个环节串连起来,着重展现上述四个方面的知识运用,让学生熟悉和掌握软件开发设计的具体实施步骤和技术。 3 学生实践环节分小组按项目方式进行 由于在本实训课程之前学生已经学习过一门先导课程:“软件需求分析实践”,所以可以把学生仍然按照在“软件需求分析实践”课程中的各小组成员组成来进行项目分组,这样各小组便可将该课程中的最终成果——《软件需求分析规格说明书》作为本课程的起点来进行,需求捕获工作流便只需粗略进行。由于本课程侧重于软件开发过程的分析工作流和设计工作流,对实现工作流和测试工作流也只作粗略涉及。 每个项目小组通常为3到5人,分组时采用了优势互补的方式,注意合理搭配,尽量让每组各个成员具有不同的优势能力,并让其民主推选一名组长负责组内的组织和协调【3】。 教师的项目贯通案例教学分阶段间插在学生实践过程中,每介绍一个阶段的rup理论,就紧跟几次课的学生实践环节,如此交替进行,当教师的教学案例施教完毕,学生的项目也同步进行到最后阶段。 项目进行中模仿软件公司的例会形式,定期由项目小组长召开小组讨论会(如每周一次),对最近这段时间的项目进展情况和技术问题进行讨论。每个开发设计阶段结束时教师均要求各小组给出相应的文档,且每个阶段完毕要进行一个模拟的里程碑式的评审(教师参与作为评审团的一员)【4】。 教师还应在课程即将结束的最后课时中对各小组的项目完成情况及普遍存在的共性问题作一个分析总结,并让各小组组长总结本组项目完成的经验教训,以利于同学之间取长补短,活跃思维,提高分析总结问题的能力。 4 依托教学团队,理论及案例部分采用轮流授课法 笔者所在的软件工程系于2009年底成立了软件工程教学团队。团队兼顾了职称、学历、教学、科研的合理搭配,由有大型项目开发和管理经验的老教师提供指导来提升年轻教师的教学能力,并让其参与到科研项目中积累项目经验。本课程的任课教师均由该团队中选出。本课程所用的《软件开发设计实训指导书》的编写由各任课教师分工完成,每人负责完成一章内容。本课程每个教学班安排30人左右,各教学班的教师全程负责该班整个课程的实践指导环节。而理论及案例讲授部分的教学则采用轮流授课法,实施方案是每个阶段的课堂讲授由编写实训指导书的相应章节的教师对全体教学班集体授课,其他教师同时到场辅导。具体各阶段的课堂讲授内容安排如下: 1)rup总论以及课程概述 2)设计模式 3)常用的软件架构风格及适用情况分析 4)对象持久化与数据库设计 5)面向对象实现及文档编写与整理 对应进行的学生的各阶段实践任务如下: 1)按既定方式确定各小组成员和组长,并且重新审核各组在先导课程“软件需求分析实践”中的最终成果《软件需求分析规格说明书》,进一步完成分析模型,得出用例图,分析类图,序列图及协作图。这一阶段学生需提交分析模型文档。 2)按照设计模式重新设计类。这一阶段学生需完成两个任务:一是实现设计模型中的具体设计类,具体要求学生:使用设计模式和机制;创建初始设计类;确定持久类;定义类可视性;定义操作;定义方法;定义状态;定义属性;定义依赖关系;定义关联;定义内部结构;定义泛化关系;解决用例冲突。二是完成用例实现的设计,主要设计模型内的协作关系,以设计类及其对象为基础,描述各个特定用例的实现和协作。这一阶段学生需提交设计模型、类图和用例实现。 3)完成架构设计。这一阶段学生需要设计包结构,完成系统设计模型图的实现子系统、接口设计类及架构模型(组件图),重新审查用例模型,得出用例模型的架构视图。这一阶段学生需提交子系统设计文档、接口设计文档及架构模型文档。 4)根据持久类以及数据库知识对数据库进行设计(包括字段编码设计)。这一阶段学生需提交数据库设计文档。 5)本课程的最后阶段。完成实施模型(部署图);完成界面以及输入输出(报表等)设计;完成具体子系统的编程工作,并进行二次迭代重新审核前面的设计部分;整理测试报告;整理文档并编写软件使用说明书。这一阶段学生需提交组件图、部署图、输入输出设计说明及具体子系统代码执行程序。 5 考核方式强调过程考核,开发设计能力与书写文档能力并重 本课程的实训目标是使学生能综合运用所学的知识进行中小型应用项目的软件开发设计。为此,我们提出了本课程考核的指导思想:重视实训过程,看重软件开发设计能力的提高,采用复合考核的方式,课程成绩由平时考核、过程考核和项目验收答辩成绩组成。重点突出“会不会做”,强调对学生的实际开发设计能力考核,同时注意防止轻视书写文档的观念。这种考核方式不但能更客观地反映学生的学习情况,还能引导学生有意识地加强软件开发设计技能的培养,开发设计能力与书写文档能力并重,更利于达到预期的教学效果。本课程具体的课程考核成绩组成如下: 1)平时成绩*10%(考勤成绩*50%+小组开发设计工作中的合作精神表现*50%); 2)阶段考核成绩*60%(五个阶段,各阶段的能力表现及提交的文档各占20 %); 3)项目验收成绩*30%(项目文档汇总整理占50%,项目答辩50%)。 6 结束语 “软件开发设计实训”课程是软件工程专业实践类课程中非常核心的一门,其实践性和综合性都很强,能集中训练和提高学生进行软件项目开发和设计的实际技能。其教学实施过程不应被视为只要学生针对项目要求能编写出相应的软件即可,而更应注重软件开发设计过程的方法和技能的培养,以培养具有软件工程思想的真正符合社会需求的软件人才。本课程应紧随软件工程学科的发展而不断更新。在今后的课程开展过程中,其教学模式和措施还需要不断创新、总结和改进,需要持续不断地研究和探索。 软件工程论文:计算机软件工程管理工作探析 论文 关键词:软件工程管理 开发人员 组织结构用户 论文摘要:通过对软件产品特点的分析,讨论软件工程管理可能涉及的人员、组织机构、用户、控制、文档资料等内容. 一、引言 软件工程管理目前还没有引起人们的足够重视。究其原因:首先是人的传统观念,工程管理不为人们所重视;另一方面软件工程是一个新兴的学科领域,软件工程管理的问题也是刚被提出的。同时,由于软件产品的特殊性,使软件工程管理涉及到很多学科。因此.对软件工程管理,人们还缺乏经验和技术。但事实证明,由管理失误造成的后果要比程序错误造成的后果更为严重。很少有软件项目的实施进程能准确地符合预定目标、进度和预算的,这也就足以说明软件工程管理的重要。 二、软件工租,理的内容 目前软件生产自动化程度很低,在开发过程中人是起决定性的因素,因此,软件工程管理很大程度上是对人的管理。我们可根据软件产品的特点.分析软件下程管理的具体内容,它包括对开发人员、组织机构、用户、文档资料等方而的管理。 (一)开发人员 软件开发人员一般分为:项目负责人、系统分析员、高级程序员、初级程序员、资料员和其他辅助人员.根据项目的规模人小,有可能一人身兼数职,但职责必须明确。不同职责的人,要求的素质不同。如项目负责人需要有组织能力、判断能力和对重大问题能做出决策的能力;系统分析员则要有概括能力、分析能力和社交活动能力;程序员需要有熟练的编程能力等。人员要少而精,选人要慎重。软件生命期各个价段的活动有分工又互相联系。因此,要求选择各类人员既能胜任工作,又要能相互很好地配合.没有一个和谐的工作气氛很难完成个复杂的软件项目。 (二)组织机构 组织机构不等于开发人员的简单集合。这里的组织机构要求:好的组织结构、合理的人员分工和有效的通讯。软件开发的组织机构没有统一的模式。下面简单介绍三种组织机构。 1.主程序员组织机。ibm公司提出的主程序员组是软件系统结构化思想在组织上的体现。它的目的是为了保证全组的协调和统一。一位高级工程师(主程序员)主持计划、协调和复审组的全部技术活动。技术人员(一般25人)负责分析和开发活动,一位后援工程师支持高级工程师的工作,并且在该项目继续进行时,可以代替高级工程师工作,以减少可能的损失. 2.专家组。专家组强调每个人的才能,把每个人都看作是某一方面的专家,由这些专家组成一个开发机构。这种组织结构虽然能发挥所有工作人员的积极性,但往往有可能出现协调上的困难,选择这种方式要慎重. 3.民主组织.民主组织由从事各方面工作的人员轮流担任组长。很显然,这种组织结构对调动积极性和个人的创造性是很值得称道的。但是由于过多地进行组长信息“转移”不符合软件工程化的方向。 (三)用户 我们是为用户开发软件的,在开发过程中自始至终必须得到用户的密切合作和支持。作为项目负责人,要特别注意与用户保持联系,掌握用户的心理和动态.防止来自用户的各种干找和阻力。 1.用户不积极,不配合。这种表现通常来自对采用先进技术持怀疑态度的用户,他们心理上的抵触情绪会在行动上表现为消极、漠不关心。在需求阶段,做好这部分人的工作很重要,通过他们中的业务骨千,才能真正了解到用户的要求。要使他们认识到: 计算 机的 发展 和应用是 现代 化的必然趋势,使用计算机将会带来巨大的 经济 效益:让他们掌握新的技术和方法去取代某些可能过时的或淘汰的专长。 2.用户求快求全.这种表现来自对使用计算机持积极态度的人.他们中一部分人希望一个早上就能用上计算机,并且全能用上计算机。要他们认识到;开发一个软件项目不是一朝一夕就能完成的,软件工程不是靠人海战术就能加快的工期。另外,即使计算机能够处理的事情,系统也不能下于包罗万象,贪大求全。要根据现有的条件量力而行。如果系统大而全,必然会很复杂,开发时间就拖得很长,因此可能会导致一个系统的失败或性能太差. 3.用户需求变化.在软件开发过程中,用户可能会不断提出新的要求和修改以前提出的要求。从软件工程的角度不希望有这种变化。但实际上,不允许用户提出变动的要求是不可能的.因为一方面每个人对新事物有一个认识过程,不可能一下子提出全面的、准确的要求:另一方而还要考虑到与用户的关系。对来自用户的这种变化要正确对待:要向用户解释软件工程的 规律 ,并在可能的条件下部分或有条件地满足用户的合理要求.例如:软件需求分析阶段结束后软件的设计口标已经确定,这时用户要求的重大变化要导致设计目标的变化,特别是到软件开发的后期,一般不可能满足这种变化的要求。要向用户解释清楚工程的内在规律,但对用户提出的如性能等局部方而的要求,只要是合理的,就要加以考虑。 4控制。人员控制是对开发组织内部人员控制。就是要保证开发人员的积极性和稳定性。人员的频繁更换或流动将会大大增加软件出错误的机会。至少要保证软件项目每一期工程或软件生命期每一阶段中人员的相对稳定性。同时注意发挥每个开发人员的积极性和创造性。经费控制要编制详细的经费预算。并在各阶段进行经费的核算。在经费上失去控制,软件项目就没有经济保证。质量控制与各阶段的复审在意义和作用上是一致的,在此不再叙述。 5.文档资料。开发过程的各种活动后都要反映在文档资料上。每一个阶段的文档资料是以后各阶段工作的基础,又是对前面各阶段工作的复审。软件工程管理很大程度上是通过对文档资料管理来实现的。因此,要把开发过程中的初步设计、中间过程、最后结果等建立成一套完整的文档资料。文档标准化是文档管理的重要方面。 三、结束语 在当今的软件工程时代,每个项目涉及众多的人力和物力,管理问题日益突出。在实际工作中,不管是否正式提出管理问题。都在自觉或不自觉地进行着管理,只不过是管理的好坏程度不同而已。随着软件规模的不断增大.开发人员也随着增多,开发时间也相应持续增长。而对于规模大、人员多、开发时间长的软件项目,必须要有良好的管理和力求在确定的时间和预算范围内有效地、合理地组织人力、物力.按计划完成预定的软件项目。 软件工程论文:“软件工程专业卓越工程师培养方案”的探索与实践 2004年,世界工程师大会在中国召开,会议的主题是“工程师塑造可持续发展的未来”。这个主题告诉我们,“工程师”对人类未来发展的重要性,同时也告诉我们“工程教育”对人类未来发展的重要性。[1]应该看到,尽管一些应用型本科院校把培养“一线工程师”作为学校的办学宗旨,并在此基础上对教学模式、教学方法进行了一系列的教学改革,但由于与企业的结合不够紧密,高等工程教育所培养出的“一线工程师”与企业、与社会的脱节比较严重,不能适应现代社会发展的需求。 2010年6月教育部基于提高工科院校专业教育教学水平而正式启动推出的“卓越工程师教育培养计划”(以下简称“卓越计划”)[4]是贯彻落实《国家中长期教育改革和发展规划纲要(2010-2020年)》和《国家中长期人才发展规划纲要(2010-2020年)》的重大教育计划。该计划旨在培养造就一大批创新能力强、适应经济社会发展需要的高质量各类型工程技术人才,为国家走新型工业化发展道路、建设创新型国家和人才强国战略服务,对促进高等教育面向社会需求培养人才,全面提高工程教育人才培养质量具有十分重要的示范和引导作用。 上海应用技术学院“软件工程”专业从 2010 年起即着手准备,在原有专业设置基础上不断探索与实践,根据it学科行业发展的特殊性,制定具有前瞻性的人才培养标准,并通过全面修订人才培养方案、实施人才培养模式、教学方式、训练方式和评价方式等的改革。 一、培养模式 本专业实施“3+1”校企联合培养模式,学生须接受3年的在校培养,累计1年的企业实践和毕业设计。前三年学生在校学习学科基础知识和软件工程的基本理论知识和技能,打好从事软件工程领域工作的扎实专业基础。在校学习过程中,定期聘请企业教师参与到教学实践中,使学生对企业的生产实际有初步的了解。 第四年学生将被安排在合作企业进行为期一年的学习与实践。一些与企业联系密切的专业课程及毕业设计在企业完成,学生参与到企业的各个项目组,随项目组一起参与实际项目的开发。项目组负责人将视学生为自己的员工,分派合适的工作要学生随导师或独立完成。通过参加一个或几个实际项目的工作,独立地完成一部分工作,并以企业标准进行考核,使学生对软件标准化设计的全过程有更深入的了解。增强学生的责任心,提高学生的实际工作能力。 二、培养标准 按照教育部“卓越工程师教育培养计划”的总体工作思路和标准要求,上海应用技术学院“软件工程专业卓越计划”将以“培养面向未来国家建设需要,适应未来科技发展,德智体全面发展,掌握软件工程学科的基本原理和基本知识,具有扎实的基础理论、宽厚的专业知识和良好的实践能力,获得工程师基本训练,能胜任软件工程项目的规划、设计、实施、管理、研究、教育,以及投资与开发等工作,具有创新精神和国际视野的卓越的专业工程师”。 三、培养方案架构 按照课程群和模块化的指导思想搭建培养方案的课程架构,满足不同学生、企业对知识能力培养的需求。培养方案课程体系总体架构如图1所示。1-5学期按照课程群进行教学,满足学生对不同知识能力的需求;第6学期根据学生实习企业对知识能力的需求分模块进行教学;第7-8学期进入对口的企业实习并完成毕业设计。 四、校内培养方案 校内培养方案的设计目标是通过学习使学生具有较强的工程意识、工程素质、工程实践能力,成为专业知识扎实、动手能力突出、素质优良的卓越软件技术人才。为了保证卓越工程师培养计划的实现,制定了卓越工程师计划专业知识与能力的实现矩阵,进一步明确了本科课程体系设置,包括课程模块的构成、具体翔实的课程教学目标以及教学考查方式。结合专业特点以及学校学院的教学平台、 教学设施、教学创新实践基地等,加强了教育教学中的基础性、创新性、实践性、国际化,使专业的教育教学更上一个新的台阶。 (一)课程群划分 将课程划分为三条主线进行教学:1.基本理论课群,包括操作系统、计算机网络、离散数学、数据结构、算法、计算机原理等。本部分课程培养学生计算机学科的基本理论和体系结构,使学生具备坚实的理论基础,为其今后的继续学习和发展打下基础,同时满足学生考研需求。2.程序设计能力课程群,.net、java两个主流平台并重,再加上三门培养综合设计能力的课程,以提高学生的实践动手能力,并满足不同企业对开发工具的需求。为了加强学生的程序设计能力,我们在课程设置上体现了在校学习期间三年不断线的思想,每学期都有与程序设计有关的课程和实训。要求学生第一年编写代码不少于5000行,第二年不少于10000行,第三年不少于20000行。在进入企业之时,已经具备了较强的程序设计能力。3.软件工程能力课程群,以提供学生软件工程的管理与被管理能力。 (二)课程模块划分 根据合作企业的知识能力的不同需求划分为若干不同模块。通过对学生工作去向的跟踪调查和软件工程行业需求调查,确定了erp开发、web应用开发、手机应用开发、软件咨询服务等几个方向。每个方向设立若干课程构成若干课程模块,对应不同的去向,满足不同企业的需求。在基本能力培养的基础上,根据学生第四年去向选择模块,在第6学期完成,由企业方参与教学,完成学生进入企业的过渡。 五、企业培养方案 企业培养方案突出了理论和实践综合素质的培养,在教学体系上形成了企业导师教学讲解、专题实训、项目实践的“三位一体”、工学交替的人才培养方案。 整个企业阶段的培养方案划分为企业工程教育或专业特色实习(累计15周)、现场工程实践和专业综合设计(累计25周)两个部分,共40周,其中: 1.企业工程教育或专业特色实习(15周) 根据企业的业务和项目情况设置相关课程,折合15周。目的是培养软件企业需要的一线工程人才。为了提高本专业特色实习的质量,聘用计算机软件工程专业知识过硬、实践经验丰富的技术人员为教师。在实习过程中,采用案例教学法,把企业实际软件工程项目纳入学生实习范围,让学生接触和开发企业实际的工程项目。为了提高实习效果,企业工程教育要做到讲授、训练、实践穿插进行,使学生全面感受企业的工作环境、管理体制和项目开发过程,做到学生学习的专业特色内容与企业实践相结合。 2.现场工程实践或专业综合设计(25周) 为使学生成为满足软件产业需求的创新型人才,专业综合设计采用项目驱动的实习模式,专业综合设计通过参与企业实际项目完成,共25周。专业综合设计课题全部来源于企业的工程项目,实行1人1题,由实习单位的专业技术人员和学校的专业教师担任设计指导教师。专业综合设计结合实际工程问题,进行有针对性的研究与实践,培养学生综合运用所学知识和技能、分析与解决实际问题的能力,培养学生勇于探索的创新精神、严肃认真的科学态度和严谨求实的工作作风。 经过一年多的实践,卓越工程师人才培养成效显著,一批特色鲜明、实践能力强的工程应用型创新人才脱颖而出,2012届参加卓越工程师培养方式的学生,在就业方面占据了明显的优势。受到了企业的普遍欢迎。目前,2013届学生参加卓越工程师培养计划的工作正在进行,受到2012届成功运作的影响,学生们积极性很高。在卓越工程师计划的实施过程中,我们也发现了一些培养计划中的不足之处,并在2013届的实施中加以以调整。相信经过几年的努力,我们的培养方案会愈加成熟。 软件工程论文:地方院校软件工程校企合作 实训教学改革的探索与实践 地方院校教学目标是培养社会所需要的应用型人才,这是其优势所在。实训教学是指独立设课的实训课和理论课中的实训环节,是实现培养目标的主体教学环节之一。实训教学是培养学生专业技术应用能力及分析问题和解决问题能力的重要途径,是教育过程中不可缺失的重要环节。本课题的研究基于某些国内外知名企业提供技术服务为基础,以梧州学院软件工程专业为探索平台进行的教学改革实践。校企合作的内容主要包括实践教学体系建设、实训教材建设、实训基地建设、产学研等多方面。 着力打造“4+5”的实践教学体系 学院软件专业打破传统的三段式教学,着力打造“4+5”的实践教学体系。“4”是指突出培养学生四种能力(实践能力、创造能力、就业能力和创业能力);“5”是指培养过程的“课程实验—期末实训--毕业实训—顶岗实习—创新性实践活动”五个模块。五个模块是根据软件工程特点,循序渐进地培养四种能力,体现工学结合。这五个模块和整个课程体系,都是围绕主线来展开。其中的“创新性实践活动”对软件技术人才来说是非常重要的,一个软件就像一个作品,必须有创意和实用的算法。 校企合作,共同开发实训课程和教材 为了支持“一条主线,五个模块”的实践教学体系,学院软件专业采取校企合作方式,共同开发实训课程,分别用于各个模块教学中。目前,已与多家企业共同建设基于任务驱动、项目导向、工作过程的《信息开发技术》课程,基于工作过程的 “教学做”一体化情景化教学的《网络综合布线》课程。与企业合作开发《信息开发技术教程》、《多媒体技术与应用实训教程》、《网站规划与设计实训教程》、《计算机组装与维护实训教程》、《角色动画教程》等教材。 校企合作,共建校内生产性实训基地 学院软件专业采取校企合作方式,与多家企业共建网络构建、服务器、综合布线实训室,实训室建设贯彻先进性、真实性、工程性、开放性的建设原则,将实训基地建成具备多类网络架构真实环境,集教学、科研、工程、培训、技能鉴定等多种功能于一体的网络技术与软件工程中心,着力培养学生的职业技能和创新能力,提高人才培养质量,提升社会服务能力。 以产学研充实教学内容,提高教学和管理水平 为搞好产学研,学院建立二级科研机构软件开发中心,软件专业教师在研究所兼职搞开发,取得了良好的效果。先后完成了梧州市国税限时办结税务系统、广西财政厅的预算单位银行账户管理系统、基于cmpp的短信系统的研究、广西科技厅的nsq物流信息实时智能配对系统、新型农村合作医疗信息系统等。在重大课题研究中积累了丰富的研究经验。特别是在医疗卫生行业, 建立医疗卫生行业综合信息平台。医疗卫生行业以新型农村合作医疗、城镇居民健康档案管理系统为切入点,以现有系统为基础,以国家农村合作医疗建设政策为指导思想,以具体的信息化项目作为实际载体,参与到医疗卫生行业“一个平台、四大系统”的建设中(即建立一个包含网络硬件和基础软件的统一技术基础平台,建立卫生行政管理信息系统(卫生电子政务)、突发公共卫生事件应急系统(突发公共卫生事件应急指挥决策、疾病预防控制、卫生监督、医疗救治等系统)、医疗服务信息系统(医院信息)和卫生应用信息系统(合作医疗、社区卫生、妇幼保健、医教科研等系统)),在加快全市公共卫生信息化建设进程,全面提高突发公共卫生事件监测、应急反应、医疗救治、执法监督和指挥决策的能力方面作出我们应有的贡献。 总结 软件工程专业的“3+0.5+0.5”的教学模式的实训环节是按照校内半年、校外半年的方式进行组织的。校内实训基地引入来自企业的真实项目,学生在贴合软件企业工作环境的实训室中完成校内综合实训。校外实训基地由来自企业的兼职教师带领在企业顶岗实习的学生参加企业项目的研发,在实战中进一步深化所掌握的专业知识。通过分方向、多层次、分阶段来逐步训练学生的专业技术能力和职业素质。整个实训环节包括专业认知、基本技能实训、核心技术实训、综合实训、顶岗实习几个环节,实训涵盖了基础知识、专业核心技术及综合能力培养等各个方面,所建立的实训教学体系有一定的借鉴意义。 软件工程论文:基于软件工程开发的领域本体构建研究 目前流行的领域本体构建方法有:英国edinbunrgh大学ai应用研究所的enterprise项目组开发的“骨架法”,该方法使用middle—out开发方式提供与商业和企业有关的术语及其定义的集合;加拿大toronto大学企业集成实验室开发了tove项目本体,通过该本体来建立指定知识的逻辑模型;bernaras等人开发的欧洲eaprit kactus项目中由应用来控制本体的开发,每个应用都有相应的知识本体,这些本体即能复用其他的本体,又能集成到项目以后的本体应用中;西班牙madrid理工大学ai实验室开发的,methontology法构建知识级本体;美国southern california大学信息科学研究所开发的sensus法,主要通过自然语言处理,提取和合并不同电子知识源的信息而得到该领域本体的内容。 本文借鉴了上述传统领域本体构建方法中的基本思想,并在构建框架中融合了软件工程开发方法中的结构化开发方法和原型化开发方法。 1 传统领域本体构建方法分析 1.1 共同点分析 纵观上述“骨架法”、“评估法”、“bernaras”、“methonotology”及“sensus”方法构建领域本体过程中的思路,它们之间存在以下共同点: (1)许多本体构建方法都以一个具体任务为起点,这样易于知识的获取和本体功能的描述。 (2)本体构建大致可划分为阶段法(如骨架法)和演化法(如methontology法)。 (3)在构建过程中可分为“非形式化描述本体”和用正规描述语言“形式化描述本体”前后两个阶段。 (4)希望通过累积的方法构建本体,即先构建一个基础本体,然后做进一步开发。 (5)对于由同一个基础本体构建出的领域本体,由于高层概念的共享,本体系统之间具有互操作能力。 1.2 缺陷分析 ieee 1074—1995标准是软件开发生命周期过程的标准,其中包括模型阶段、项目管理阶段、软件开发阶段与集成阶段4个开发阶段,其中软件开发阶段的具体步骤如下: (1)开发前期:主要进行可行性研究等活动; (2)开发阶段:主要进行需求分析、设计和实现等活动; (3)开发后期:主要进行软件的安装、试运行、操作和维护等活动。 与ieee 1074—1995标准对比而言,目前领域本体构建还远远没有成为一种工程性活动,还具有如下缺陷: (1)没有一种方法是完全成熟的,不论是bemaras法、sensus法、骨架法、评估法,还是methontology法。 (2)缺乏工程化的本体通用构造方法和标准。由于每个研发团队处于不同的学科领域,虽然总结出各个领域不同的开发方法和体系结构,但是各个本体开发方法都不尽统一,缺乏通用的标准。 本文在领域本体构建过程中扬弃上述5种领域本体构建方法中的优缺点,而且借鉴了软件工程开发的基本标准。 2 基于软件工程开发的领域本体构建 2.1 构建框架 本文在领域本体框架构建的形式上采用结构化方法中分段式模式,将整个领域本体构建过程分为领域本体规划阶段、领域本体分析阶段、领域本体设计阶段、领域本体实施阶段及领域本体运行阶段,每个阶段都有自己独立的目标及主要任务,前一阶段任务的完成是后一阶段任务开始的前提和基础,后一阶段任务通常是对前一阶段提出的解决问题方法的进一步具体化,即该过程是按照软件工程开发的生命周期流程来逐步解决问题的。在领域本体分析阶段,根据领域本体规划阶段提出的具体要求和目标,采用原型化方法不断地对分析结果进行修改和完善。其构建框架如图1所示。 2.2 构建框架分析 2.2.1 领域本体规划阶段 (1)确定领域本体的用途和范围 确定领域本体范围的方式之一是设计并填写本体的性能调查表,以下从需求的角度对本体支持的性能调查表进行简单的分类: ①需求细化。需求细化过程必须满足何种标准?会产生多余的需求吗?需求是客户的清晰表述吗? ②需求追溯能力。需求还能分解吗?需求的来源是什么?谁记录需求?需求在特定的设计团队中适用吗? ③需求满足。需求能够满足吗?两个或多个需求间相互冲突吗?更高抽象级别的需求怎样满足评估? ④文档生成。需求属于哪类文档?哪些是与需求文档中的段落相符的需求?不属于客户报告的需求有哪些(商业机密)? ⑤升级。这是需求的最新版本吗?需求的旧版本有哪些?为什么还要改变需求?变化对需求文档的一致性和完整性有影响吗? (2)考虑复用现有领域本体 一些本体已经初具规模,可以在网上找到相应的本体库及相关资料,在具体开发之前,有必要在这些本体中寻找系统可以重用的本体,这样可以省去元本体和顶层本体的建立,而把本体建立的目标重点放在领域本体的建立上。 2.2.2领域本体分析阶段 (1)定义类和类层次 类描述了领域的概念而非单词。在类和类层次的定义过程中,需要依据以下8个原则: ①确保类层次的正确性 恰当使用is—a和kind-of等类间关系,is-a关系指类a是类b的子类,前提是b的每个实例也是a的实例。类的子类表示概念是kind-of父类表示的概念;层次关系间具有传递性,并应区分直接子类和间接子类的关系;避免类层次的循环,确保类层次随着领域发展而进化。 ②分析类层次中的兄弟关系 在类层次中,兄弟关系是同一类的直接子类,并在同一抽象级别上。关于直接子类的个数并没有明确规定,但父类一般只有2-12个直接子类,过多或过少不都合适。 ③多重继承关系 一个类可以是几个类的子类,则子类的实例是其所有父类的实例,子类将继承所有父类的属性和关系约束。 ④引入新类的时机 当类的子类有其父类不具有的新属性,或有已定义的新属性值,或覆盖父类属性的约束,此时可以引入一个新类。新类可以没有任何新的属性,没有必要为了一个额外的限定条件来创建新类。 ⑤新类或特性值 如果有不同属性值的概念变成其他类中不同属性的约束,则应该生成新类,以便加以区别;类的单个实例不应经常改变,当使用概念的外在(非固有)属性来区别类时,这些类的实例将需从一个类移动到另一类。 ⑥类或实例 判断类结束和单个实例开始依赖于知识表示中最低的粒度级,而粒度级又由本体应用来确定;如果概念已经形成自然的层次,则应表述为类,单个实例是最特殊的概念表述,实例没有层次性。 ⑦限定范围 确保不包括类具有的所有特性,仅在本体中表述类最突出的特性,不增添所有类(术语)间全部的关系。 ⑧不相关子类 很多系统明确指定某些子类不相交,如果类没有任何共同的实例,则它们不相交。 (2)定义类的属性及其约束 类的属性是描述类和实例的特性,也是类间区分的特性。通常有四种对象特性能变成本体中的属性: ①固有的特性,如圆柱的半径和高度。 ②外在的属性,如螺旋的设计者。 ③局部,若对象是结构化的,物理和抽象的部分。 ④与其他个体间的关系。 不同的约束可以用来描述属性的值类型、值范围、值基准,及值的其他特征。下面从5个方面来描述属性普通的约束: ①属性基数。基数定义属性有多少值。有些系统定义单一和多个基数,而有些系统用最小和最大基数来描述属性值的个数。有些属性设置最大基数为o,目的是为了表示特定子类的属性不能有任何值。 ②属性值类型。通常属性值类型可分为字符串型(string)、“浮点或整数”数值型(float或integer number)、“是或否”布尔型(yes或no boolean)、枚举型或符号型(enumerated或symbol)、实例型(instance)。 ③属性的领域和范围 属性应能描述其领域中所有的类,属性应能填充其范围内所有类的实例,同时不应指定属性的范围是本体中最通用的类。 ④逆属性 属性值可能会依赖于另一属性值,称为逆关系,在两个方向保存此数据是冗余的,通常使用逆属性,可以自动填充另一逆关系的值。 ⑤默认值 如果类的多数实例的特定属性值是相同的,则可把该值定义成默认值。当类的每个新实例包含这个属性值时,系统自动填充默认值,还能把此值改成约束允许的其他值。 (3)生成实例 定义类的单个实例首先需要选择类,接着生成这些类的单个实例,最后填充属性值。 为了使生成的类、类间层次关系、类属性及约束、类实例等更符合构建目标和用途,并为了保障在较短时间内适合用户的需求,在领域专家的指导下,采用原型化软件工程开发方法对该阶段产生的成果不断修改和完善。 2.2.3 领域本体设计阶段 (1)领域本体的形式化表示 一般用语义模型表示领域本体。perez等人用分类法组织领域本体,归纳出5个基本建模元语: ①类(classes)或概念(concepts) 从语义上讲,它表示的是对象的集合,其定义一般采用框架(frame)结构,包括概念的名称、与其他概念之间的关系集合、以及用自然语言对概念的描述。 ②关系(relatiom) 在领域中概念之间的交互作用,形式上定义为n维笛卡尔积的子集,即:r=c1×c2×……×cn ③函数(functions) 一类特殊的关系。该关系的前n-1个元素可以惟一决定第n个元素。形式化定义为f:c1×c2×……×cn-1→cn。 ④公理(axioms) 代表永真断言,如概念乙属于概念甲的范围。 ⑤实例(instances) 代表元素,从语义上讲实例表示的就是对象。 另外,从语义上讲基本的关系有4种:整体与部分关系(part—whole)、分类关系(is—a)、实例与概念关系(instance—concept)和属性关系(attribute-of)。但在实际建模过程中,概念之间的关系不限于上述4类关系,可以根据领域的具体情况定义相应的关系。 (2)领域本体的形式化描述语言 领域本体可用自然语言、框架、语义网络或逻辑语言等来描述。但对计算机来说,形式化描述语言做为一种可供计算机处理的概念模型,应具备以下条件: ①应该具有较强的表示能力,同时也应兼顾推理能力,以满足智能检索中进一步实现推理的需求。 ②应该具有较强的内在逻辑系统支持。 ③应该具备一致的描述概念和表示数据的能力。 ④应该尽可能与w3c已有标准兼容,从而保证其持续发展需求。 ⑤应该具备xml语法特性,最好是基于语义web。 ⑥所表示的领域知识是形式化的,即机器可读和可理解的。 目前已经开发了6种本体语言,有些是直接基于xml语言的语法,如简单html本体扩展(simple html ontologyextension,shoe)、本体标记语言(ontology markup language,oml)和基于xml的本体交换语言(xml—based ontology exchange language,xol);另外有2种本体语言是建立于rdf(s)之上,以便改善rdf(s)的特征:本体交互语言(ontology interchange language,oil)和darpa主体标记语言+本体推理层(darap agent markup language with ontology inference layer,daml+oil)。最近,以oil和daml+oil语言为起点,已开发出语义网所用的web本体语言(web ontology language,owl)。各个本体语言之间的层次化关系如图2所示: (3)领域本体的文档化构建和存储 构建领域本体文档,可对后续领域本体修改和进化奠定基础。1个owl文档由以下4个部分组成: ①本体首部:包含了文档的元数据,如导入数据、版本数据及与其他owl文档的兼容数据。 ②类的定义:通过(owl:class)标签定义类,使用(rdfs:subclassof)来继承1个或多个类,由此建立类的层次关系。类的语义用类的描述来表达。owl区分了6种类的描述:1个类标识,1个详细的列举,1个属性的限定,2个或多个类描述的交,2个或多个类描述的并,1个类描述的补。 ③属性的定义:owl存在2种类型的属性,即对象属性(object property)和数据类型属性(datatype property)。对象属性是用来表述2个类实例之间的关系,而数据类型属性则描述类的实例、rdf literals,以及xml schema数据类型之间的关系。属性之间还能够定义子属性关系以及为属性声明额外的特征(传递属性和逆属性)。如能够定义father是parent的子属性,定义anceator为传递属性,定义child为parent的逆属性。 ④个体(实例)的定义:一个个体是一个特定类的实例,并与其属性相联系。 2.2.4 领域本体实施和运行阶段 (1)领域本体评价 这里采用gruber在1995年提出的5条准则: ①清晰性。所定义的术语应尽量客观,避免受社会背景和客观环境的影响;给出的定义应尽可能完整。 ②一致性。即本体中定义的公理应该是逻辑一致的,概念和概念间关系在逻辑上也应该是一致的。 ③可扩展性。本体应该能够保证添加新的通用或专用术语,而不需要修改原有的定义,即能支持在已有的概念基础上定义新术语。 ④编码偏好程度最小。概念应该在知识层次上说明,而不应该依赖于特定的符号层次的编码,因为不同的系统可能采用不同的表示风格。 ⑤最小本体承诺。一般地,本体承诺只要满足特定的知识共享需求即可,这可以通过定义约束最弱的公理及只定义交流所需的基本词汇来保证。 (2)领域本体试运行 可针对某一应用目标,可利用初始生成的领域本体在特定的应用范围内进行试运行,来验证初始领域本体是否能够满足领域范围应用的需求,特别是要检验其一致性、完整性和可扩展性。经过试运行,若符合要求则转向(4);若不符合要求则要重新经过本体分析阶段,然后转向(3)与(4)。 (3)领域本体文档的修改 针对试运行的结果,可在owl文档的基础上做一些标注性的修改。 (4)领域本体应用 对于修改后的领域本体,可正式投入实际运行应用过程。 3 总结和展望 本文在总结与分析传统领域本体构建方法中的基本思想及缺陷的基础上,提出了基于软件工程开发角度来构建领域本体的思路。其中利用结构化开发方法构建领域本体整体开发流程,充分借鉴了结构化开发方法中的用户至上原则,结构化、模块化、自顶向下地对系统进行分析和设计等优点,但由于结构化开发方法中存在开发周期过长、不易满足用户需求并难易修改等缺陷,因此在领域本体构建的重要环节,即在领域本体分析阶段采用原型化开发方法,使用户与开发者通过不断地沟通尽快确定领域本体初始模型,并通过结构化开发方法所划分的层次结构过程不断地优化和修改初始模型,使其能够尽快满足用户的需求。 软件工程论文:计算机专业“软件工程”课程的教学研究 摘要:针对“软件工程”这门课的课程特点,本文提出几种实用的教学方法和手段,目的为了提高“软件工程”的教学质量。 关键词:软件工程 教学改进 实践 中图分类号: 1、 引言 提起软件,在当今社会人们并不陌生,正是由于软件的发展,使计算机应用逐步渗透到社会生活的各个角落,使各行各业都发生很大的变化。这同时也促进人们对软件的品种、数量、功能和质量等提出了越来越高的要求。然而,软件的规模越大、越复杂,人们的软件开发能力越显得力不从心。于是,人们开始重视软件开发过程、方法、工具和环境的研究,软件工程应运而生。 “软件工程”主要介绍软件工程的基本原理、开发方法和开发工具,通过本课程的学习,使学生了解和初步掌握开发1个软件项目所使用的方法和工具,以及“软件工程”的发展过程和发展趋势,为进行软件开发打下1个良好的基础。 2、 课程特点 1。 课程综合性强。 软件工程与其他计算机课程,如程序设计语言、数据结构、编译原理、数据库以及操作系统等课程都是相互作用和影响的。在1定程度上说,软件工程讨论的是在实际开发当中综合运用这些课程中讲过的理论和方法,将这些课程的理论和方法放在1个统1的目标下,这个目标就是在有限的时间及预算条件下,开发出高质量的令用户满意的软件。 2。 课程内容不断更新。 软件工程课程的教学培养目标应该以市场需求为导向,使课程培养的学生真正能够在软件行业中发挥作用。因此,在授课时,我们不能拘泥于教材内容的限制。在讲解基本原理、基本概念和基本方法的同时,介绍1些新方法、新技术。这样,有助于开拓学生的视野和培养创新意识与开发能力,使他们走向社会后不至落伍。 3。 课程的实践性强。 软件工程是1门实践性很强的课程,它是各种开发经验的总结与提炼。在学习过程中不但应注重概念、原理、方法和技术的掌握,更应注重方法、技术的实际应用。学习软件工程必须投身于软件开发的实践,才能真正领悟软件工程的精髓。 实际教学当中,这门课的教学效果往往不是很理想,教师觉得这门课教起来较困难,学生学习中多数也觉得枯燥无味,很难达到较好的教学效果或获得较强的实践能力等预期目的。如何改善?结合软件工程的课程特点,笔者认为可以从以下几个方面来改进《软件工程》的教学质量。 三、软件工程教学改进的内容和方法 1。 教学过程引入实际案例 软件工程课程涉及面很广,如果不结合实际工程项目进行教学,很难把教学内容教授给学生。因此,在教学过程中引入案例,将复杂抽象的概念用具体生动的实例进行诠释,能够收到事半功倍的效果。例如,在授课时教师可结合1个“学校教材购销系统”实例,给学生介绍具体的开发过程和方法。 另外,学校还可邀请领域内有实际经验的资深程序员,针对软件工程中具体理论和方法在实际开发中的应用,在课堂上和学生进行面对面讲座,深入浅出地作讲解。这样,学生可以更加熟悉、掌握软件开发的过程。 2。 组织课堂讨论,形成教学互动 我国有句名言:“授人以鱼,不如授人以渔”。学生是教学活动的核心,教师要利用合适的方法调动学生的积极心理和参与意识,改变传统的教师高高在上的教学方式,让学生参与教学过程,有机会发表自己的看法。 比如在讲授需求分析这章内容时,可结合“学校教材购销系统”这个案例,要求学生按照软件工程教学的思想和方法认真做好需求分析。在实施过程中,首先由学生独立思考,给出解决方案。然后在课堂上,组织学生进行讨论,分析各自解决方案的优劣,并进行综合。最后由老师进行总结和评价,指出该案例所涉及的理论知识及其应用方法,就学生提出的问题进行解答。这样通过组织学生讨论,可使学生进1步理解和掌握课程内容的方法和步骤,使抽象的知识变得看得见,用得着,大大激发了学生学习的兴趣和自信。 3。 加强实践环节 从本质上看,软件工程的实践性和综合性是其他相关课程难以比拟的。因此,必须结合设计项目和实际应用加以施教,才能取得良好的教学效果。那么,在把握教学进度的同时,必须及早安排好课程设计,让学生同步开展课程设计。这样,理论课讲完了,课程设计也基本结束,学生们能从理论和实践的结合上,加深对软件工程知识难点、重点的理解,进1步深刻理解软件过程和系统消化理论知识,训练项目设计的思路,锻炼实际开发能力,培养严格规范的项目开发方法和步骤,体验文档编写整理、阶段性评审总结以及软件测试等各个方面的工作流程,直接培养了学生从事实际开发的能力。 四、结束语 在教学中,我们还应根据学生的具体情况,因材施教。总之,通过不断改进教学,使学生能更好地理解、掌握知识,运用所学服务社会。 软件工程论文:如何面向学生主体与项目驱动设计软件工程教学模式 摘要:提出了面向学生主体和项目驱动的软件工程教学模式。从开展以学生为主体的理论教学过程、实施基于项目驱动的实践教学环节、制定符合教学特点的课程考核体系三个方面出发,对该模式进行了研究和探讨。 关键词:软件工程;教学模式;软件工程;学生主体;项目驱动 1 引言 长期以来,在我国《软件工程》课程教学中强调理论学习而忽视实践能力培养的现象比较普遍,现有的国内不少教材对实践能力的培养重视不够,表现为:①教材中的案例缺乏完整性、统一性和实用性;②缺乏与理论教学相适应的实验教材。evelyn等在他们的著作《project-based software engineering an object-oriented approach》中强调了学生具备开发项目经历的重要性,认为现有的教材过分强调软件工程理论的教学,不能有效地培养学生的软件开发技能。由于缺少软件开发各个阶段的经历,因此,学生较难理解、掌握所学的课程内容。 我们主要围绕《软件工程》课程的内容体系、教学方法、课程考核等方面对该门课程的教学模式进行了改革,其根本思想是开展以学生为主体的理论教学过程;实施基于项目驱动的实践教学环节;根据教学过程的特点,制定该课程的考核体系。我们把改革后的、新的教学模式称为“面向学生主体和项目驱动的软件工程教学模式”。 2 开展以学生为主体的理论教学过程 2.1 建立合理的课程内容体系 建立合理的课程内容体系首先应合理地选择教材,我们选用的教材为shari lawrence pfleeger 编著的《software engineering(theory and practice)》。该教材内容的特点是:①理论性,教材比较全面地介绍了软件工程中的基本原理、概念和方法;②实践性,课程的内容体系强调基本原理、方法在实践中的具体应用;③先进性,教材较为详细地介绍了软件工程中的新技术、新方法。同时,我们选用的辅助教材为清华大学张海藩编著的《软件工程导论(第四版)》。 其次,应根据学生的培养方向、学时数等因素对所讲授的内容作必要地取舍。我们以传统的生命周期方法学和面向对象方法学为主线,建立了课程内容体系,参考国内外先进的软件工程理论和应用实例,对教学内容进行了必要的补充和删减;以培养学生的软件开发过程中的技能为目标,制作了内容丰富、联系项目开发实际的多媒体教学课件;建立了较为完善的软件工程典型项目案例库,为每一个案例提供详细的分析说明;编写了供实践环节使用的《软件工程项目案例实施指南》。 2.2 开展以学生为主体的案例式教学 在教学过程中,开展以学生为主体的案例式教学,克服了传统的“教师教、学生学”的模式。在课程的开始,即将学生分为若干个项目小组(每个小组5至7人),并为每个小组确定一个负责人,各个项目小组选定一个互不相同的项目,并明确所选项目的总体要求及考核标准。教师以一个完整的项目案例贯穿于整个理论教学过程中,学生则带着自己项目中的问题去理解、思考教师所讲授的内容。学生的作业主要体现为项目的阶段性的分析和设计文档,项目小组的成员在讨论、协作的基础上,每次均以小组的形式提交作业。 2.3 建立《软件工程》课程教学资源平台 该课程的教学辅助资料围绕《软件工程》网络课程建设而展开,所建设的网络课程主要内容包括:教学大纲,教学内容,电子教案,课程习题,模拟试题,多媒体课件,实验部分,课程评价反馈等。建立网络课程平台的目的是为了便于学生进行网上自学、讨论交流、作业提交、在线测试、教学效果评价等功能,充分发挥学生在学习过程中的主体作用。 通过该门课程的理论教学改革,学生普遍反映能够较好地理解、掌握软件工程项目的开发理论和方法,和单纯的理论教学相比,改革后的教学方式更容易让人接受,学习的主动性得到了提高。 3 实施基于项目驱动的实践教学环节 我们把实践教学和项目开发相结合,实施基于项目驱动的实践教学环节。不同的项目小组开发不同的项目,学生在实践环节中主要完成在理论学习过程中形成的分析、设计文档,以小组成员分工协作的方式共同开发一个完整的项目。完成一个符合要求的项目是该门课程实践考核的主要内容。学生的学习活动是在项目开发的各项过程和活动的驱动下完成的。在具体的实施过程中应注意以下几个问题: (1)由项目负责人在课外时间召集项目组成员讨论、进行人员分工,使项目小组的所有成员熟悉和感受软件开发小组的组织和管理。 (2)实验内容应覆盖软件生存周期的各个阶段,使学生通过实验加深对理论知识的理解。项目小组的所有成员均应参加软件开发的每一个阶段。 (3)应保证实验内容具有可操作性和适当的难度。可操作性保证学生都能完成实验,帮助学生树立学习信心,并在一定程度上减少学生抄袭的现象;适当的难度有助于培养优秀学生进一步钻研的精神。 4 制定符合教学特点的课程考核体系 传统的考核方法不能在教学的过程中把握学生的学习效果,不能充分调动学生学习的主动性和提高学生的学习兴趣,课程的考核应该和课程的教学特点相适应。因此,我们制定了分阶段、互评定的二次考核体系,具体措施为: (1)课程考核由三部分组成:理论考核占40%,实践考核占40%,平时考核(作业、考勤)占20%。 (2)实践成绩的评定包括小组成绩和个人成绩两部分,各占50%。小组成绩为小组中所有成员的第一次考核成绩,个人成绩为小组成员的第二次考核成绩。 (3)小组成绩由各个小组阶段成绩的平均值与完成的项目的最终验收的情况(包括系统是否达到需求规格说明中的功能性、非功能性要求,文档是否全面、合理、规范等)组成。小组的阶段性成绩由教师和该项目组之外的其他项目组共同评定。 (4)个人成绩由教师根据小组每个成员的答辩成绩来评定,答辩的内容为小组成员在项目开发中所完成的任务,其中,评定项目负责人个人成绩时,还应考查其项目开发的组织、 管理能力。 考核结果表明,我们采用的考核方法提高了学生按照软件工程的原理、方法、技术、标准和规范进行软件开发的综合能力和软件项目的管理能力,特别在基础技能、团队协作、人际交流、项目规划几个方面明显具备较强的能力。 5 结束语 《软件工程》课程的教学模式改革主要体现在以下三个方面:在理论教学方面,以学生为主体的教学模式,表现为以分组形式的案例教学过程;在实践教学方面,通过小组内成员分工协作的方式,完成小组所选定的项目案例;在课程考核方面,制定了符合教学特点的课程考核体系。在整个教学过程中,学生始终处于主导地位,是学习的主体,教师处于指导和评价学生阶段性学习效果的地位。从学生反馈的结果来看,通过对该门课程的教学模式进行改革,使学生经历了软件开发的全过程,锻炼和培养了学生的系统分析能力、设计能力、编程能力、测试和维护能力、团队协作能力和文档书写能力,全面地提高了学生的综合素质。 软件工程论文:基于软件工程理论的信息工程监理的研究 摘要:信息工程是企业信息系统中不可或缺的一部分,其包括信息网络工程、信息资源工程、信息应用工程。该文将凭借着软件工程理论,从信息工程开发的角度,进行信息工程的三维监理,从而构建一种新型监理模式,即“三控四管一协调”。从而使信息工程监理走向更深入、更全面、更有效的水平。 关键词:软件工程;信息工程监理;监理模型 自从二零零二年十二月我国信息产业部颁布《信息系统工程监理暂行规定》(简称《规定》)之后,信息工程监理公司越来越多。根据《规定》,信息工程监理主要是指依法设立且具备相应资质的信息系统工程监理单位,受业主单位委托,依据国家有关法律法规、技术标准和信息系统工程监理合同,对信息系统工程项目实施的监督管理。[1] 1 信息工程的特点 跟其他的一般的建设工程项目相比,企业信息工程有着复杂高度、能见度低等不确定因素。其主要有以下几个特点: 1.1 组织驱动技术 企业信息工程项目的组织和建设越来越表现出不可分割的一面。工程项目组织要求信息工程必须严格确定“前期准备-工程项目规划-工程项目设计-工程项目实施-工程项目验收-工程项目维护”的“组织思维”过程,设立周密的“组织标准”通过这些组织标准来带动技术标准的设立,通过组织的需求来带动技术方面的需求,也通过组织的满意度还评价技术方面的满意程度。 1.2 全员全程参与 信息工程并不能跟那种“交钥匙”工程一样,其要求建设单位的所有员工进行全程参与。这主要是由于企业信息工程项目不并简单,而是一个非常复杂的知识传递的过程,其要求建设单位的所有员工必须学习并接受相关知识;因此建设单位与开发单位之间必须相互适应、相互协调,必须协同共进。企业信息工程系统是一个人机相结合的有机系统,没有建设单位人员的全程参与,信息工程系统将不可能实现其有效性、完整性、全面性。 1.3 复杂度高,不确定因素多 由于信息工程项目的需求比较复杂,其不像其他建筑工程那样具有可见性。检验复杂,较长的维护期,还有其它非技术因素原因导致企业信息化项目失败[2]。因此,企业的信息工程项目具有搞复杂度、低能见度,存在许多不确定的因素。 2 信息工程监理的必要性 现在,我国企业实现信息工程项目的成功几率还非常低,根据我国企业信息工程项目的自身特点,保证信息工程项目的成功几率的提高,必须进行信息工程建立,即必须通过第三方监理单位对企业信息工程项目的实施进行监督。信息工程监理将有利于开发单位跟企业的相互协调,彼此协同共进,能确保信息工程项目的有效进行。对于信息工程监理的必要性,主要原因在于:目前我国企业信息工程监理对过去传统的建筑工程监理模式进行了参考,但又跟一般的建筑工程的监理有一定的差别。第一,信息工程的可见度非常低,开发过程相当多变、复杂,其知识密度也相当高。不像建筑工程项目的监理那样能随时对施工现场进行其质量、进度进行监督管理,信息工程监理根本无法对信息工程的操作现场、质量进行监督和管理,信息工程的进合同执行情况、软件质量、资金使用情况、进度等很难把握和操控。从而致使了信息工程监理低能见度、高复杂度、差操作度等现象。为了解决这些监理中出现的问题,必须采用软件工程理论。通过软件工程,可以将高复杂度的信息工程项目进行分解,对信息工程中低“能见度”的难题设置了一套有效的解题方案。根据现有的软件工程平台和工具,将能为信息工程项目的监理提供一套“复杂度”低、“可见性”高的监理平台,很大程度上满足了现阶段我国企业信息工程项目建设的需要。 3 基于软件工程理论的信息工程监理模型 软件工程是一门通过工程化的手段来维护和构建高质量的、实用的、有效的软件的学科。软件工程涉及到的内容有:设计模式、软件标准、系统平台、软件开发工具、数据库、程序设计语言等多个方面。在目前的现实生活中,软件的应用领域非常广泛,政府部门、航空、银行、农业、工业都会应用到软件,其最具典型的软件有:游戏、数据库、编译器、操作系统、办公套件、人机界面、嵌入式系统和电子邮件等等。软件工程的应用将对社会和经济有着极大的促进作用。多年的实践证明,通过软件工程的方法对信息工程进行监理能更易被监理活动过程中的三方接受,因此将软件工程引入信息工程项目监理中,将能为信息工程项目的监理提供一套“复杂度”低、“可见性”高的监理平台。 3.1 设立信息工程监理的目标 进行软件工程最主要的目的是利用科学的有效的管理方法来促进软件开发质量的提高。其主要要求是要将过去的软件开发模式(小作坊开发模式)进行转变,对过去的开发模式其进行细分和分解,按照各阶段的特征选用不同的方法和工具,从而使复杂度较高的软件生产进行可度量、可控的设置。再者,经过对各个阶段进行严密的、有效的控制,从而促使一些可能出现的风险和问题在前期阶段就得以解决和重视,从而促使软件开发风险的降低和软件质量的提升。总之,企业信息工程监理的最主要的任务就是对工程的进度、质量、投资等进行有效的、科学的控制和规划,其最基本的方法是进行有效的合同管理、展开合理的组织协调、实现工程的动态控制、完成理想的目标规划,使监理贯穿于整个“前期准备-工程项目规划-工程项目设计-工程项目实施-工程项目验收-工程项目维护”的工程项目过程。因此,信息工程监理的最终目的是通过合同管理、质量控制、进度控制、成本控制、信息管理来保证工程项目的有效、高质量、顺利的进行。 3.2 构建信息工程监理的模型 根据信息工程监理的目标,信息工程项目应该分为:项目分析、项目设计、项目实施以及项目维护等四个阶段[3]。基于软件工程理论的信息工程监理并不是机械地复杂软件工程的相关理论于信息工程的监理中,而是根据软件工程理论,对搞复杂度、低能见度的工程项目进行设计和管理,并将其融入到信息工程的监理中去的一种方法。根据这中方法,从而建立基于软件工程理论的信息工程监理模型。该模型以信息工程项目过程控制为主线,对企业信息工程的项目分析、项目设计、项目实施以及项目维护等四个阶段进行全方位控制和监督,从管理上对其进行风险管理、需求管理、合同管理、信息管理,从控制上对其进行进度管理、质量管理、成本控制,并从管理角度对项目阶段进行总体协调,形成企业信息化项目监理的“三控四管一协调”三维监理模型。其监理模型如图1所示。 4 结束语 综上所述,软件工程是一门通过工程化的手段来维护和构建高质量的、实用的、有效的软件的学科。通过软件工程的方法对信息工程进行监理能更易被监理活动过程中的三方接受,因此将软件工程引入信息工程项目监理中,将能为信息工程项目的监理提供一套“复杂度”低、“可见性”高的监理平台。进行软件工程最主要的目的是利用科学的有效的管理方法来促进软件开发质量的提高。其基于软件工程理论的信息工程监理的模型应该以信息工程项目过程控制为主线,对企业信息工程的项目分析、项目设计、项目实施以及项目维护等四个阶段进行全方位控制和监督。 软件工程论文:基于工作过程的软件工程师职业课程体系研究 摘要:课程体系的研究,是通过对软件企业软件工程师的职业工作过程分析,建立软件工程师的职业能力模型,然后建立针对工作领域的岗位特定能力模型、行业通用能力模型、核心能力模型。根据以上模型映射出实训体系的四个组件:实训教程、流行技术、职业素质、软件素养,然后建立不同技术特点的课程开发标准。 关键词:职业能力模型;核心能力;岗位特定能力 1 基于工作过程的课程开发模式的必要性 近年来在政府推动与经济发展需求的刺激下,我国高等职业教育的规模有了很大发展;全国职业教育工作会议的召开,又为高职发展迎来了新的历史机遇。然而,我们可以在短短几年内建设起大量被称为高职学校的校舍,却无法在短期内形成真正的高职教育。受传统教育体制的影响,教材更新速度也严重滞后于软件技术发展,师资素质又得不到提高,人才培养模式缺乏创新,这种传统教育模式无法真正适应软件企业对软件人才的需求。一方面是大批企业找不到急需的技能型、实用型、国际化、规范化的软件职业技术人才;另一方面,学校培养出的软件人才由于不能适应企业需求而找不到理想的工作。如何凸显特色已经成为高职发展的重大课题;如何开发一套既适合高职生学习特点,又能增强其就业竞争能力的教材,是高职课程建设面临的另一个重大课题。 要有效地解决这些问题,建立能综合反映高职发展多种需求的课程体系,必须进一步明确高职人才培养目标。为此,不能仅仅满足于对“高职到底培养什么类型人才”的论述,而是要从具体的岗位与知识分析入手。高职专业的定位要通过理清其所对应的工作岗位来解决,而其课程特点应该通过特有的知识框架来阐明。也就是说,高职课程与学术性大学的课程相比,其特色不应仅仅体现在理论知识少一些,技能训练多一些,而是要紧紧围绕基于工作过程和工作目标重构其知识、技能、素质的课程体系。 2 软件工程师能力素质模型 2.1 软件工程师能力素质模型 职业人的能力分为三层:岗位特定能力、行业通用能力、核心能力。每个具体的职业、工种、岗位和工作都会对应一些岗位特定能力。岗位特定能力从总量上是最多的,但是适应范围又是最窄的,对每个行业来说,又存在着一定数量的通用能力,从数量上看,它比特定能力少得多,但他们的适应范围要宽些,涵盖整个行业活动领域。而整体上,存在着每个人都需要的,从事任何职业或工作都离不开的能力,这就是核心能力。核心能力往往是人们职业生涯中更重要的、最基本的能力,对人的影响和意义更深远。我们在日常生活中看到的岗位特定能力,其实是浮出海面的冰山一角,而行业通用能力和核心能力则是海面下的冰山主体,它们是每个人在职业生涯中,甚至日常生活中必备的最重要的能力,它们具有普遍的适用性和广泛的可迁移性,对人的终身发展和成就影响极其深远,目前核心能力包括:交流表达、数字运算、革新创新、自我提高、与人合作、解决问题、信息处理、外语运用。 2.2 软件工程师岗位特定能力分解 根据软件工程从业人员的岗位不同,从java软件工程师和.net软件工程师两个方面,提取了基于工作过程的能力描述。 (1)java软件工程师 (2).net软件工程师 2.3 行业通用能力分解 2.4 核心能力分解 3 软件工程师课程内涵 根据软件工程师能力模型影射出职业课程中的四个组件:实训教程、软件素养、职业素质、流行技术。 根据软件工程师能力形成规律,我们分s1、s2、s3三个阶段逐步实施。通过s1阶段的训练,学生具备了利用面向过程思想、面向对象思想分析设计解决问题的能力,掌握c/s软件体系的程序开发方法。通过s2、s3阶段的训练,使学生具备利用b/s软件体系结构进行软件开发、设计的能力;掌握大型企业级应用问题的分析、设计方法。 3.1 实训教程 “实训教程”以项目为主线,分为learning案例、training案例、mentoring案例三种。项目案例均为企业真实项目,由经验丰富的软件工程师编写而成,在实施环节由实训工程师带领学生完成。 “实训教程”重点提高学生的职业特定能力,通过项目实训,学生能够将理论知识与实际项目相结合,不但提高了软件开发技术水平,还能够具备大型项目的开发经验与行业知识,增强团队合作的能力。 3.2 软件素养 软件素养要求对软件行业知识的认识有足够的深度与广度。它是软件工程师应具备的基本素质,是软件行业通用能力,软件素养组件与大学的计算机相关课程共同培养学生的这一能力。 “软件素养”主要包括实用操作系统知识,各种软件开发团队模型的理解与认识,项目开发流程与规范,项目文档编写,软件开发中各种工具的配置与管理,设计模式的原理与实现等。 3.3 职业素质 职业素质是劳动者对社会职业了解与适应能力的一种综合体现,在软件开发中包括责任心、学习能力、创新能力、沟通与合作能力、高效的团队协作能力、积极主动的心态、扎实的工作作风、科学的工作方式及较强的解决问题能力等。 3.4 流行技术 it业正在以传统行业七倍的速度快速发展,软硬件技术在以摩尔定律的速度更新,即使学生在大学中学习的是最新软件版本与技术,毕业之后,版本也已经更新,“流行技术”正是为解决此问题而提出的,目的是让学生与it信息同步,把自我知识与最新知识做到无缝衔接。 软件工程论文:预审制度在软件工程硕士学位论文质量监控中的作用 1. 引言 软件工程硕士专业学位的设立,是我国学位与研究生教育改革的重大举措。经过近十年的发展,已经逐渐发展壮大成为我国规模最大、覆盖面最广的专业硕士学位之一。随着数量的不断扩大, 软件工程硕士生的培养中出现了不少问题。如导师难以对每一个硕士生进行悉心指导和严格要求, 而且招生生源有着不同的理论及实践基础。在这种情况下,硕士学位论文质量难以提高,因此, 确保软件工程硕士的培养质量已成为一个不容忽视的问题。需要进一步对培养质量进行审视,并采取切实措施,保障培养质量。 2. 预审制度的必要性 硕士学位论文是综合衡量软件工程硕士培养质量的重要标志。它体现了研究生综合运用基础理论、专业知识与科学方法、解决行业实际问题的能力,以及反映具有新思想,新方法或新进展的创新能力。在数量不断扩大、培养质量面临严峻挑战的背景下,科学公正地评价软件工程硕士学位申请者的学位论文, 是保证培养质量的一个重要环节。 2.1目前软件工程硕士学位论文主要存在如下的问题: 论文缺乏自己的实际创新点和具体工作。部分论文停留在对以往研究内容的重组或综述的水平,缺乏对自己实际工作的阐述和验证,技术难度和工作量不够。论文写作缺乏整体性思路,很多学生论文撰写结构欠合理,对本领域内的工程和学术动态了解不全面,缺乏实用价值和社会效益。论文格式不够规范。主要表现在各级标题字号、错别字、参考文献引用格式不够规范、图标排版不符合要求等方面。 2.2目前学位论文评阅及答辩制度存在以下问题: 2.2.1校内外评阅制度难以切实起到监控作用:以往硕士学位论文评审实行的是校内外专家的实名评阅制度,校内、校外两位专家评审意见中有一人没有通过的,就不能直接进入答辩阶段;如果两位专家评审意见都是可以通过的,就可以直接进入答辩阶段。评阅制度是对论文质量的一种监控方式,是对硕士生是否达到培养要求及质量的检验,但目前现实情况是对评审专家没有一套严格、完整的遴选机制,往往评审专家都是圈内熟人, 甚至是硕士生指导老师的好友、课题合作人等,他们事先知道论文作者和导师是谁, 碍于情面,论文一般均可顺利通过评审。即使觉得论文不符合评审要求的,也不会直接给出不同意进行答辩的意见结论。 2.2.2“双盲”抽检制度不能全覆盖所有硕士学位论文:硕士学位论文“双盲”抽检制度(即评审专家不知道被评人、被评人也不知道评审专家),在多年实践中的确是提高学位论文水平的一项重要举措,实现并达到了非常好的效果,但由于实行的是抽检机制,并不全部覆盖所有的学生,抽中参加双盲审的学生比例有限,大部分学生和导师在得知未抽中参加“双盲”后,往往对论文的重视程度不足。 2.2.3硕士学位论文答辩流于形式:学位论文答辩成员组成尽管回避了导师,聘请了一些校外企业专家,但由于答辩专家通常是由导师聘请,会导致答辩专家们答辩时往往留面子,缺乏打破沙锅问到底的精神, 即使有些专家坚持原则认真负责的, 但在投票时少数比率起不了作用, 结果常常是评审结论与实际水准不符, 答辩流于形式。目前硕士学位论文一旦进入答辩程序,就很少有不通过的,使得论文答辩本应该具有的权威性大有所失。 2.2.4无法确保论文修改质量:答辩专家即使指出论文中有些较大的缺陷和问题,需要进行修改,但是由于答辩已经完毕,并且决议通过答辩,在申请学位之前,学生就没有动力也不会去花时间对要求修改的论文内容去做充分的修改和完善。答辩专家组也很难在答辩之后继续跟踪确保对原答辩论文进行修改质量的监控。 目前学位论文评审方式与答辩方式不足以及时发现和有力遏制以上所述的问题,而学位论文作为全面衡量软件工程硕士生培养质量的主要指标,因在各环节上予以严格要求,并在制度上给予切实的保证。因此,有必要在正式答辩之前建立一套硕士学位论文质量的内部控制管理机制,以确保硕士学位论文的质量。 3. 我们的预审制度和执行效果 预审,就是在硕士学位论文成型之后论文正式评阅之前进行的一项审查过程,采用匿名方式请专家对论文进行评审、以决定是否可否进入答辩阶段的一项论文评审制度。对于达不到要求的,就要求其继续修改或者下一次再申请。设立预审制度的目的是想通过匿名评审专家组对硕士学位论文进行内容和形式上的审查,发现问题,查找缺陷,提出改进意见,并决定可否提交正式评阅并进入答辩流程,以保证论文写作和论文答辩的较高质量。这是对以往论文答辩制度的一种修正、补充。它把对硕士学位论文的质量监控重心提前到评阅前,使得学生拥有充足的时间修改论文,并采用匿名审核,力争做到公平公正。对保证论文质量有较大的作用。 3.1预审制度的主要内容 预审由硕士学位候选人提出书面申请, 经导师同意并签署书面意见后,于每学期开学后第3周之前(大致在每年3月31日前、9 月30 日前)向学院软件工程硕士教学管理中心(以下简称管理中心)提交完备的申请材料。申请材料包括学位论文一式2份以及已发表的符合学校有关规定要求的论文复印件, 并由管理中心形式审查相关培养环节是否全部完成。符合条件者进人预审程序。管理中心根据论文研究内容,选择2名以上相关领域的教授或副教授组成预审小组进行匿名预审。导师不得作为本论文预审组成员。论文预审的主要内容是审查论文选题、分析框架结构、研究方法、工作量、引用资料文献数据和写作规范、基本结论,并进行原创性审查,看是否存在抄袭、剽窃等问题。预审组在规定时间内本着认真负责的态度严格把关论文质量,对预审中提出的问题要求进行书面记录并填写《软件学院--工程硕士学位论文预审意见表》反馈至管理中心,由管理中心及时反馈预审结论至相关导师告知答辩申请人。硕士生根据预审小组提出的问题和建议认真修改论文。 预审结论分为以下几种: (1)可以参加答辩:认为论文达到了硕士学位论文水平,且不需要修改,可以直接参加答辩; (2)修改后再审:认为论文及课题工作接近硕士学位水平。但论文需要修改,并给出具体修改意见。学生需根据预审意见认真进行修改,修改后的论文经导师审查确认后,再提交管理中心提请原预审专家组审核。符合要求的,可正常参加答辩,否则就不能参加本次答辩,需整改后下一学期再重新申请。逾期未提交修改论文的,视为自动放弃本次答辩申请; (3)不通过:认为未达到工程硕士学位论文要求,不能参加本次答辩。导师应指导答辩申请人完善课题工作,修改论文,下一学期再申请参加论文预审和答辩。 (4)涉嫌抄袭:发现论文涉嫌抄袭、并经查实的,则一律退回,并至少一年内不得再申请答辩。如果以后再次发现抄袭,则直接取消答辩资格和申请学位的资格。 3.2预审制度实施效果 预审制度实施以来,迄今已经完成了对1367位硕士学位论文申请者的审查, 其中通过预审的629人、推迟答辩的167人、需要修改的544人、抄袭27人,共授予学位1143人。从总体上看,预审制度真正起到了对论文质量的监控、提高作用。由于论文预审不是最终性的,且匿名进行评审,排除了论文本身之外的因素,预审专家组本着对学生负责任、帮助提高论文质量的态度对硕士学位论文提出问题和修改建议,有助于硕士生多方位思考并对论文进行有效改进,起到了协助其导师把住质量关的作用。论文预审不仅对当事人有很大的帮助, 并且对其他准备提交论文的学生也具有很大的促进作用,导师们也更加重视论文的质量和指导。? 4. 预审制度实施的总结和思考 预审制度最主要的优势是对硕士学位申请人的论文质量进行事前监控,在正式答辩前,学位申请人能够在导师指导下根据预审专家提出的修改意见对论文进行修改和完善。预审未通过的论文不许提交答辩,这在制度上将那些质量差的论文隔离在外,有效地把好了硕士生出口的质量。 在看到预审制度效果的同时, 我们也清醒地认识到要最大限度地发挥预审的功能, 必须同时严格硕士生的开题工作,只有抓牢抓实开题工作,才能在论文工作的源头保障论文的质量;同时引起导师及其论文作者对论文质量的重视,导师是保障论文质量的关键因素,只有导师和论文作者共同重视,才能保障培养的质量。为了更好的完善论文预审制度,我们觉得今后还需要在以下方面进行进一步的改进: (1)落实论文预审的后续检查机制,预审结束后, 学位申请人应该严格按照专家提出的修改意见认真仔细地修改论文。在评阅和正式答辩阶段, 评阅专家及答辩专家除了对论文的主要工作给予评价外, 也要评判硕士生的学位论文是否按预审意见进行了修改和完善。如果后续的检查机制落实不彻底, 预审专家所提的修改意见得不到严格贯彻, 预审也难免会流于形式。 (2)预审过程中,为了避免论文预审的偏颇,尽量做到同一位导师所指导的学生论文分送到不同的预审组,以尽量提高论文预审的公正性和合理性。 (3)进一步细化预审复议环节的工作,对导师、学生提出的论文预审复议要求交由学科专业委员会复议,并指导导师、学生对论文做后续的修改。 (4)增强预审奖惩机制管理,促进导师持续关注论文质量,对预审结果优秀的老师予以适当的奖励,反之则需对导师增强后续再培训,鼓励导师改进研究生培养质量。 预审制度在我院已取得一定效果,我们将继续总结经验,不断探索和完善预审制度,切实提高我院的研究生培养质量。 软件工程论文:有关软件工程案例教学法分析 摘要:本文就案例教学法在软件工程中的应用作了初步的探讨,同时,简要介绍我们在尝试软件工程案例教学中的一些体会。 关键词:软件工程;案例教学法;分析设计 1 引言 随着计算机应用日益普及和深化,正在运行使用着的计算机软件的数量以惊人的速度急剧膨胀,而且现代软件的规模往往十分庞大,所以指导计算机软件开发和维护的工程学科—软件工程,日益显示其重要地位。然而学习者一般不好理解软件工程的实践性,不能将所学的知识真正应用到软件开发过程中去。如何将理论与实际联系起来呢?我们认为在软件工程中采用案例教学发将会弥补这一缺憾。 案例教学法以对案例的分析解决为主线,通过对案例中的问题进行分析,激发学生的求知欲,调动学生的积极性,使学生自觉主动的学习案例,掌握原理和方法,实行科学的教育思想观念的一种教学方式。它是一种互动式的教学方法,可以实现启发式教学,能够极大的促进学生的学习兴趣,实现真正的教学相长。它更是实现理论联系实际的现实可实施的途径。案例教学法在软件工程教学中的应用将在更大程度上激发学生学习的学习兴趣和参与的积极性。同时,利于学生掌握理论知识,并运用知识解决软件开发中的实际问题,最终提高教学质量,达到学校教育培养的目标。 有鉴于此,本文试对案例教学法在软件工程中的应用作了初步探讨,以期对教育同行和广大学习者有所启发和借鉴。 2 案例教学法的含义 案例教学法(case methods of teaching)可简单地界定为一种运用案例进行教学的一种方法,它是美国当今教育行业中非常盛行而有效的一种方法,在我国正在慢慢推广开来。1910年,美国哈佛商学院最先使用案例教学,开创了案例教学的先河。案例教学法于20世纪80年代初传入我国,它有利于培养学生分析问题、解决问题的能力,提高教学效果。 案例教学是在学生掌握了有关基本知识和分析技术的基础上,在教师的精心策划和指导下,根据教学目的和教学要求,运用典型案例,将学生带入特定的现场进行案例分析,通过学生的独立思考和集体协作,进一步提高识别,分析和解决某一具体问题的能力,同时培养学生的沟通能力和协作精神的教学方式。通过案例分析,学生可以获得蕴涵其中的那些已形成的教育原理、教学方法等知识,同时可以提高和发展学生的创造能力以及解决实际问题能力。更重要的是,通过案例教学获得的知识是内化了的知识,是“做中学”获得自己理解了的能驾驭的知识,不再像传统教学下获得的抽象的、过度概括化的生硬知识,它能立即被用到类似教学实践情境中去解决处理类似的疑难教学问题。所以从美国教育家舒尔1986年在美国教育研究协会(aera)年会重要演讲中发出要发展关于教学的案例知识的呼吁,时至今日,在众多国家的教育研究领域中都能发现案例教学法的应用。 3 软件工程案例的选择 概括而言,案例是含有问题或疑难情境在内的真实发生的典型性事件。没有案例,案例教学无从谈起,没有好的案例,便没有有效的案例教学,所以案例的选择在案例教学中至关重要。一个高质量的案例应该具备以下几个特点。 (1)目的性。案例教学的目的是为了让学生理论联系实际,通过案例让学生掌握基本的原理和概念,提高发现问题,解决实际问题的能力。一个好的案例应该使学生在讨论中加深对教材中某一重点或难点知识的理解和把握,能利用课堂学习的理论知识来分析和解决案例中所涉及的问题。所以案例的选择一定要围绕教学目的和教学要求来。如果脱离这两个中心,即使案例再生动,其教学效果也大打折扣。 (2)真实性。案例一定是现实中发生的真实事件,是常见又复杂的问题,有助于学生实践能力的提高。 (3)启发性。一个好的案例需要蕴涵一定的问题,能启发学生思考,发现多种解决的途径。问题越诱人深入,越能够给学生留下较多的思维空间,教学效果越好。 (4)生动性。案例必须生动活泼,引人入胜,这样才能引起学生的兴趣,以便展开深入的思考。 软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。它强调使用生存周期方法学和各种结构分析及结构设计技术,所以软件工程案例即是选择一些典型的软件开发系统,介绍其开发和维护的过程。 我们根据讲解软件工程课的具体体会和开发软件的实际经验,撰写了五个案例,开发了《软件工程案例分析》网络课件,详细介绍五个软件系统的开发过程,互动的方式讲述了用软件工程的方法是如何进行分析和设计的,同时在系统开发的每个过程中提出大量的问题供学生思考。案例选择了房产管理系统、财务管理系统、机票预定系统、计算机储蓄系统四个应用软件系统,同时为了提高学习者理解开发软件的难度,特别介绍l-simple语言编译系统。采用传统的生命周期方法学,从问题定义、可行性研究、需求分析、总体设计到详细设计做了比较详细的研究。系统中五个案例涉及到当前人们日常生活中关注的几个领域:房产管理、财务管理、计算机储蓄、机票预定,还有计算机的语言编译系统。案例既具有典型性,同时又具有真实性。我们选择四个应用软件和一个系统软件,一方面考虑到目前软件市场涉及应用范围的广泛性,另一方面考虑到软件工程学习者中大部分为计算机专业,对于系统软件也有一定爱好,对于将来开发系统软件作一个铺垫。 4 软件工程案例教学的主要环节 案例教学的需要具备三个主要环节: 阅读案例,个人分析——分组讨论,集体交流——总结归纳,消化提升 我们尝试的软件工程案例教学中同样采用了这三个阶段: (1)阅读案例,个人分析 学生首先对具体案例进行必要的基础知识的了解,认真阅读案例,并且要有个人的研究与分析,用软件工程的传统途径—生命周期方法学作为理论指导,熟悉软件开发过程各阶段的基本任务。 其次,学生需要尽快进入案例情境,了解、掌握案例中揭示的有关事实、情况,自居案例中的教师角色,设身处地地分析思考案例中教师的行为及对策的合理性与不合理性。在案例的分析过程中,要注意寻找其中的因果关系,只有弄清问题产生的原因,才可能找到问题的合理解决手段。注意区分基本性问题和现时性问题。基本性问题即抽象或一般的问题,常与事实背后的概念、原理、规则等有关,需要通过对案例中所包括的信息进行解释、分析、演绎、推理和抽象以得到概括化的结论。现时性问题即案例中教师所面对的特殊决定、疑难问题等要求在一定的时间范围内得到解决的那些问题,需将自己已有的知识或过去形成的经验与案例展示的背景材料、内外部因素等整合起来进行综合评判来提出多种经得起别人反驳的见解、对策以及方案。 (2)分组讨论,集体交流 分组讨论是案例教学中非常重要的环节,本质上是一种概念或想法的交流。围绕案例的重点,难点,疑点,进行讨论,辩论和争论。每个学生可以自由的抒发己见,相互启迪,互相借鉴,重点是想法的交流。要求每个学生简要介绍自己对软件开发所做的分析设计,并提出自己对该软件开发流程的看法,供大家讨论与切磋,可以按照案例中所提出的问题一个一个讨论。在教师的引导下,让学生进行课堂发言,进行全体学生的交流。本阶段要讨论主要解决两个问题:1、小组讨论没有达成共识的问题;2、按照教学目标,有意引导学生掌握软件工程的生命周期法各阶段所做的具体工作以及进行相关工作的必要性。 为了使分组讨论有效地开展,教师要作好充分的课前准备。除了熟知案例陈述的事实、观点外,还要谙知案例反映或蕴涵的原理、规则等知识,以便引导学生概括出来。要认真学习研究案例后给出的教学指南,具体拟定出课堂教学计划,这要求教师认真思考回答以下问题:希望课堂上发生些什么?如何引导这些情况的发生?讨论如何开展?时间如何安排?自己扮演什么角色?是先得结论再分析,还是相反?并对课堂讨论中可能出现的情况作出预测。教师还要依据课程目标、案例目标及教学计划的具体安排重点分析以下方面的内容:案例中反映的那些重要论题、案例中易得出两可结论的那些材料、案例中反映的情况发生的根源、案例中人物的行为、案例中所反映的而学生可能设想不到的情况等。在讨论掌握上,教师要力保讨论沿预期的轨道进行,把讨论引导到问题的解决上去,并引导出与论题相关的理论知识,力争班上每个学生都至少有一次发言的机会,切实做到有效参与。 (3)总结归纳,消化提升 总结归纳是软件工程案例教学的最后阶段,要求学生要对每个案例写出学习报告。该报告中包含学生在阅读案例中所得到的具体收获;通过分析与设计软件,提出自己所解决的实际问题;对理论上软件工程概念和案例中的实际是否一一相对应;以及对软件工程仍然存在的困惑。通过反思进一步加深对案例的认识,真正作到理论和实践的相结合。 案例教学中,师生都要注意角色转换,如果学生仍然热衷于将自己置身于教学过程之外,只做一名旁观者,案例教学也就失去了它的价值。学生只有真正地深入案例、体验角色,才会有案例情境的“再现”,案例教学的价值才能被体现。而教师在教学过程中也要不断变换自己的角色,可充当监督员,激励启发学生,监督案例分析、讨论情况;可充当示范员,向学生演示、讲解、分析案例中的事实、图表、材料等;可充当主人翁,制定下一步的工作计划并在实施中起主导作用;可作仲裁,解决各种争端;可充当交警,使讨论回到预定的轨道上来;等等。 5 结束语 传统的“黑板教育学”越来越受到冷落,案例教学已经提到教育改革的重要日程上来。华东师范法学教育系郑金洲曾指出,案例教学并不是单纯的一种教学方法,它实际上是以教学内容的变革为前提条件的,正是有了形形色色的案例,才使案例教学成为可能;案例教学也并不是一种单纯的教授法,它实际上也是以学生行为的转变为前提条件的;如果学生仍然热衷于自己先前的角色,把自己置身于教学过程之外,只是一个旁观者,案例教学也就失去意义。 笔者从事软件工程的教学工作,在软件工程中进行案例教学法的尝试,并且在实践中得到了一定的效果。然而,在软件工程案例教学中仍有很多问题需要进一步研究探讨,比如在案例中如何体现软件的测试阶段,它需要具体的环境来实现;如何在案例中能够让学生更深入理解软件的维护过程等等问题,都是有待于我们进一步完善,使案例教学在软件工程中得到进一步的推广。 软件工程论文:软件工程专业“计算机组成原理”课程教学探讨 计算机组成原理在我院的软件工程系被定为专业基础课,在学科体系中起着基础性和准备指导性的作用。目标是通过该课程的学习,使学生掌握计算机各功能部件及整机运行的工作原理和方法,并为学生建立起整机的概念。为后期的系统开发的理论、实践的学习奠定基础。但该门课程具有概念多、知识点多、内容抽象等特点,加上学生思想上有“偏软”现象,使该课程的组织教学有一定难度。本文将对计算机组成原理的教学现状、教学方法、教学内容、及通过实践等辅助教学手段来改进教学等方面进行阐述,以期对一般本科院校的计算机组成原理教学有一定借鉴促进作用。 一、计算机组成原理的课程的教学现状 (一)课程本身的特点决定这门课程教学难度大 1、基础概念多的特点 计算机组成原理这门课程由于内容较多,所涉及的基础概念也较多。在cpu模块有微程序、微指令及流水线等系统类概念,其中alu部分有原码、补码等与编码相关的概念;在存储器部分,与存储器单元相关的有ram、sram、dram、rom及各种rom设备,与存储系统相关的有cache存储器、虚拟存储器等概念;外设部分有中断等信息的各种传送方法。对整个计算机系统,有计算机的各种性能指标。对各个概念,靠单纯记忆的方法很难掌握,必须放在系统中学习。 2、理论性强的特点 计算机组成原理这门课程首先要考虑其原理性,现在仍然采用冯.诺依曼式计算机模型作为基本模型,但也要考虑现代计算机的发展,以融入实际的需要。如何对内容进行合理的安排、衔接,对任课教师来说,是一不小的挑战。 3、内容抽象的特点 要让学生明白计算机的工作原理、方法和实现,需弄清数据和信号在计算机各部件件间的流动情况,对学生来说,这看不见也摸不着,如何将信息流动的复杂情况形象、生动地向学生展示、讲解,教师对此需要作出相当的努力。 (二)学生对该们课程的认识误区 大部分的学生认为,我们学的专业是软件工程,专业是“偏软”的,而计算机组成原理这门课程是“偏硬”的,对其转为实际能力表示怀疑。由于对这门课程在学科中的作用认识不明确,在学生中就有一种印象,学习这门课程主要目的是修学分的需要,另外还有考研的需要,但考研的学生比例较小,再加上这门课程本身的学习难度,因此认真学习且能学好这门课程的人数就不多了。 二、对组成原理教学的几点建议 (一)对学生对该门课程的认识进行相应正确引导 由于是一门基础理论课,加上本身的教学内容特点,可能内容较为枯燥,因此学生可能会因为课程内容本身而不感兴趣。因此我们要在思想上要对学生加以引导,使学生认识到,学习这门课程不仅对计算机本身的运转有更深刻的认识,更对与硬件相关的嵌入式系统设计,软件的设计实现有基础指导作用。并为学生在计算机领域的进一步研究和发展奠定基础。因此,学生不能因为这门课程“偏硬”,而自己的专业和就业方向“偏软”就否定这门课程的重要性。 (二)根据课程设置需要对教学学时进行相应调整 根据不同的专业,学生的不同层次,及大部分学生的就业方向对该课时设置不同的教学学时。报告[3]中指出,对于多数调查对象为毕业生的调查结果,多数人认为这门课开设为64、48或32学时。而48学时的人稍多些。这与本人想法基本一致,对于非计算机专业,作为导论型的,32学时足矣;对于软件专业,其目的主要是通过掌握其基本原理,能更好的为软件系统的设计服务,开设48学时,其中8学时实验较合理。而对于偏硬件的计算机专业,可以根据需要,开设56或64学时。 (三)根据专业要求及课程设置对教学内容作出调整 计算机组成原理在学科中的地位被定为专业基础课,在学科中具有承上启下的作用,希望通过本门课程的学习,使学生对计算机硬件的组成、各部件及各部件之间运转情况进行了解。对于软件专业的学生来说,为硬件相关的嵌入式系统设计及其他软件的设计奠定基础。计算机组成原理从内容上主要分为三部分:cpu、存储器、外设。但由于学时的限制及课程的安排(本专业开设了微机原理课,外设是其讲授重点),重点讲授cpu和存储器两部分。存储器内容分为主存储器和存储体系两部分内容。前者讲述存储元器件的基本原理,而后者则是cache、主存和辅存之间的区别与联系,如果开设了计算机体系结构这么课程,这存储体系的内容可简略介绍,具体内容由计算机体系结构讲解。cpu部分与存储器一样,在详细介绍完其核心部件alu后,重点即是中央处理器章节,即指令的运行,而指令的运行需要访问存储器,这就将cpu与存储体系联系起来了。故这两部分又是有联系的。由此有关硬件的内容就脉络清晰、分工明确了。 (四)对实验内容进行合理的学时分配 实验课对于一门课程来说,主要目的是加深对知识点认识,使抽象的理论变得形象、具体。因此,对本身理论性强,内容抽象的计算机组成原理课程,实验课就显得尤为重要。我们采用的是西安唐都科教仪器公司生产的实验箱作为实验设备。与其相配套的实验有9个,其中主要包括与cpu中的与alu相关的3个实验、静态存储器存取实验、微程序控制实验及4个模型机的设计类实验。根据实验学时的设置,只有8个学时的实验课。8个学时全部完成这些实验有一定难度,因此,可将这些试验进行合理的学时分配,如第1、2个学时完成第一、二个实验,因为刚开始做硬件实验不熟悉,但第二个运算器进位实验教简单,可顺便完成;有了前面的基础,完成第三个运算器移位控制实验就简单多了,因此和第四个稍麻烦的静态存储器存取试验合并在第3、4学时完成;第5个实验内容较复杂,可单独安排2个学时完成;这样就留出了2学时来研究后面的模型及设计与实现的实验了。 (五)以实践为手段带动学生的学习积极性 为了提高学生的学习积极性,加深对知识的掌握,实践就显得尤为重要。对软件专业的学生来说,利用软件对所学知识进行模拟不失为一种好的办法。对于计算机组成原理这门课程,实验内容较为抽象,不易被理解,因此,采用“硬件软化”的方法,对课程的实验内容等进行模拟,既可加深对知识的掌握,又可提高大家的软件设计、编程能力。本系为了提高大家参与的积极性,采用了学生科技立项的办法,系里拿出一部分资金,将“计算机组成原理虚拟实验系统的设计与实现”作为一学生科技项目,鼓励学生组队参加,和其他项目一起参加评比,并进行奖励的办法,在学生中得到了良好的响应。学生做出的项目教师可拿来作为课堂教学用,并可鼓励学生在此基础上进行改进,进一步完善。以后甚至可以将系统分块,让学生分组做,并作为课后作业的一部分,计入学生平时成绩。以此提高学生的学习兴趣和动力。 三、结语 计算机组成原理这门课程由于其本身知识点多、内容相对抽象、知识“偏硬”等特点,对软件专业的学生来说,普遍学习的积极性不高,对知识的掌握不能达到预期的目的。本文从对学生的引导、课时的设置、教学内容的调整等方面进行了讨论,特别提出通过“硬化软件”的方法,提高大家学习的积极性。相信经过多方面的努力,学生会喜欢并学好这门课程,该课程也将很好地发挥其在学科体系中的作用。
软件和集成电路产业布局的问题及对策:计算机毕业新世纪软件产业和集成电路产业 为推动我国信息产业和集成电路的发展,增强信息产业创新能力和国际竞争能力,带动传统产业改造和产品升级换代,国家实行“集成电路税收优惠、软件企业上市优先”的政策,国务院已于1999年7月印发了《鼓励软件产业和集成电路产业发展的若干政策》。 为打破几十年来,国内“硬件不做CPU,软件不做操作系统”的现象,中国国家高技术智能计算机系统专家组日前以国家的行为通过各种方式联合攻关,这为新世纪的软件与集成电路产业大发展吹响了世纪的号角。 中国科技大学的金西老师,获邀参加了中国国家高技术智能计算机系统(863-306)专家组主办的第一届中国自由软件发展战略研讨会,并作了演讲。现在我们将其在会议演讲文稿及通过各种渠道了解到的发展动态综述出来,答谢读者多年来对我刊的支持与厚爱,同时衷心祝贺我国的软件与集成电路产业在新世纪蒸蒸日上。 1国家鼓励的主要产业政策 国家鼓励的有关软件产业和集成电路产业的主要产业政策如下: 第十条支持开发重大共性软件和基础软件。国家科技经费重点支持具有基础性、战略性、前瞻性和重大关键共性软件技术的研究与开发,主要包括操作系统、大型数据库管理系统、网络平台、开发平台、信息安全、嵌入式系统、大型应用软件等基础软件和共性软件。属于国家支持的上述软件研究开发项目,应以企业为主,产学研相结合,通过公开招标方式,择优选定项目承担者。 第十一条支持国内企业、科研院所、高等学校与外国企业联合设立研究与开发中心。 第四十二条符合下列条件之一的集成电路生产企业,按鼓励外商对能源、交通投资的税收优惠政策执行。 (一)投资额超过80亿元人民币; (二)集成电路线宽小于0.25μm的。 2软件产业 2.1我国软件业现状 进入21世纪,信息技术将渗透到经济建设和社会生活的各个方面,软件将会成为突出体现一个国家经济优势的产业。我国软件业在1990年软件的销售额仅为2.2亿元人民币,1999年中国软件市场总销售额增加到176元亿人民币,增长79倍,每年的发展速度都在20%以上;2000年中国软件市场的销售额约225亿元人民币左右,较1999年增长27.8%。软件产业做为支柱产业的形象越来越明显。 2.2我国软件业与印度软件业的差距 我国软件业的发展和国外软件业相比还有很大的差距,独立自主开发的软件所占比例还很小。早在1998年的统计资料就表明软件产品市场销售额为138亿元人民币,约占当年世界软件市场份额的1%;软件产品出口约为6500万美元,而同期印度的软件出口额已达到26.5亿美元,约是我国的40倍。2000年印度软件产业销售额达57亿美元左右,出口达39亿美元,这比我国2000年销售总额要多40%左右。 2.3我国政府对软件产业的态度 软件业已成为衡量一个国家综合国力的标志之一。软件产业的快速发展对各国保持经济稳定、持续发展起到了关键作用。在发达国家,软件业已超过钢铁、汽车和石油等传统产业成为国民经济的重要支柱;而在中国信息产业中,软件市场尚不及硬件的20%,软件产业发展的滞后已经引起我国政府和有志之士的高度重视。 科技部副部长徐冠华谈到,90年代以来,信息技术及其产业发展令人目不暇接,国际信息产业结构正在进行战略调整。由以硬件为主导向以软件为主导过渡,软件的重要性日益显著。在软件产业方面,正在发生着由销售导向向服务导向转变。以Linus为代表的共享软件的出现,促使软件由垄断封闭型开发,向社会开放型的开发方向演化,这代表已在网络上合作进行研发的新趋势。这种趋势迫切要求不甘落后的国家,必须尽快形成自己的软件开发实力,壮大自己的软件产业,在未来经济和产业之林中占有一席之地。软件园在国家整个软件产业发展中的核心作用、牵引作用和示范作用都已得到体现,软件园的建设发展,已成为当地开拓新经济增长点的重要方向,集中发展是实现软件产业能够快速发展的战略选择。 软件产业是以智力和人力为主要经营资源,以知识和信息为经营载体,以创新为主要经营特色的知识、智力密集型产业,是典型的知识产业,是知识经济的核心。信息产业部副部长曲维枝指出,软件产业有以下两个显著的特点: (1)软件产业以人才为本,高素质、高水平、稳定的软件技术人才队伍是产业发展的必要条件。 (2)软件产业以创新为主要发展动力,必须在技术、产品、市场和管理的不断创新中取得发展。 曲副部长还指出:我国政府应从以下几方面着手,为软件产业营造良好的政策和经济环境: (1)尽快制定配套的软件产业政策,推动我国软件产业的快速发展。 (2)通过设立软件专项基金等措施启动市场,推动软件产业发展。 (3)重视对软件的产业化、软件人才队伍的稳定和培养。 (4)强化行业管理、严格质量控制。要在系统集成商与软件开发商中大力推广ISO9000和CMM认证及软件企业的资质认证,以及对系统集成工程要实行工程监理制度。 (5)开展国际合作,开拓国际市场。 3CMM模型 3.1CMM的由来 软件是知识产品,是人类智慧的结晶,软件系统的复杂程度也是超乎想象,不同于一般的生产过程。美国卡内基·梅隆大学软件工程研究所(CMN/SE)受美国国防部的委托,开发了软件能力成熟度模型(CMM),为软件工程过程管理和实施开辟了一条新的途径。CMM主要用于评估和改进软件企业中的以软件能力为标志的软件活动。它能帮助软件企业改进和优化管理,在提高软件开发水平和效率的同时提高产品的质量和可靠性,实现软件生产工程化。根据软件生产的历史和现状,CMM框架用5个不断进货的层次来表达软件组织活动的行为特征及相应问题,其中初始层是混沌的过程;可重复层是经过训练的软件过程;定义层是标准一致的软件过程;管理层是可预测的软件过程;优化层是能持续改善的软件过程。在CMM框架的不同层次中,需要解决具有相应层次特征的软件过程问题。因此,一个软件组织首先需要了解自己处于哪一个层次,然后才能针对该层次的行为特征解决相关问题。任何软件组织致力于软件过程改善时,只能是循序渐近地向相邻的上一层进化;而且向更成熟层次进化时,原有层次中那些已具备的能力还应该保持和发扬。 3.2CMM的国际地位 CMM已得到了国际上普遍的认可,并对计算机软件行业产生了深远的影响,它可以通过对软件组织软件能力的评价、软件过程的评估及改进,提高开发软件产品的能力和质量,是我国软件企业走向世界迅速发展的必由之路。我国软件业和印度相比出口额差别很大,其中原因很多,就企业自身管理而言,我们比印度差得更多。从行业本身角度来看,印度软件行业导入CMM模型是其成功的重要因素。目前,全球已有72家企业通过了CMM4级和5级评估,其中印度就有24家,通过CMM模式的管理,印度大幅度提高了其软件开发能力及软件产品的质量,保证了向美国和欧洲软件出口的高速增长。与此相比,我国软件企业2000年前只有北京鼎新公司通过CMM2级认证。 我国的软件开发整体水平是印度十年前的水平,软件生产方式普遍是手工作坊的软件生产过程,处于有章不循和无章可循的混沌状态。外部环境的改善、政府的支持和保护、资金问题的改善,给软件业的发展提供了一个良好的发展平台;但外因是要通过内因来起作用的,在我们抱怨资金缺乏、不堪税赋、人才流失等问题时,应该好好的反思软件企业的自身问题,用CMM作为一面镜子去发现、查找、评估企业在软件生产过程中的问题,我们缺乏的是科学化、系统化、规范化的管理,也就是突破CMM2级的问题。实施CMM是软件企业加强自身管理,提高素质,摆脱困境的必经之路,是软件业与国际接轨的重要举措。 3.3中国的CMM认证 令人欣慰的是,在这次2000年中国自由软件发展及应用战略研讨会上,摩托罗拉中国软件中心的经理在演讲中公布,摩托罗拉中国软件中心是中国大陆第一个基于“软件能力成熟模型”(CMM)开展其业务的软件开发机构。CMM由五级组成,第一级为最低,第五级代表最高水平。目前,大部分软件组织通过的认证属于一级或二级。摩托罗拉中国软件中心已于2000年9月通过了顶级(五级)评估,成为中国首家达到顶级的软件企业,也使中国成为继美国、印度之后第三个拥有顶级企业的国家。那位经理特别强调整个摩托罗拉中国软件中心完全是由中国人组成,中国人也能做到CMM顶级。 会上,有不少软件开发商质询摩托罗拉中国软件中心说,CMM2级认证过程需百万美金以上费用,有没有这个必要吗?摩托罗拉中国软件中心用一组数据展示其在向争取高级别认证过程中的大幅提高效率作了肯定的答复,也就说明了,随着项目复杂度的日益增加,“软件能力成熟模型”已经成为及时和高品质软件产品的保障,是企业竞争力提高的象征。摩托罗拉中国软件中心不仅在公司内部使用“能力成熟模型”,而且积极倡导并推广该模型的应用,同时为国内外其他软件组织提供软件工程方面的咨询服务。 CMM的思想、原理、工具、方法无疑对我国软件产业的加速发展起到巨大的推动作用,它必将对我国软件产业的评估、认证、引导以及软件企业内部的优化与发展产生深远的影响。 4集成电路产业 4.1集成电路制造技术已推进到深亚微米领域 集成电路制造技术进入深亚微米领域的发展趋势主要有: 1.加工微细化 微细化的关键是光刻。据研究,光学光刻的极限是0.12μm。通过开发短波长光源、大数值孔径镜头、变形照明、移相掩膜以及先进的抗蚀剂工艺技术等已将光学光刻推进到实用线宽0.25μm,可满足256MDRAM制造的需要。日立公司已用这些技术实现了0.13μm的线宽。 2.硅片大直径化 芯片尺寸随着集成度提高而增大,使圆片能分割的芯片数减少,导致成本增大。世界各大IC厂商集团经讨论决定将新世纪第一个主流硅片直径定为12英寸。 3.加工环境、设备及材料超净化 随着加工微细化、超净要求越来越高,如线宽为0.25μm时,要求硅片缺陷尺寸小于0.05μm,工艺气体>0.02μm的杂质每立方英尺少于1个,对生产环境、设备以及各种气体、化学品、原材料等的尘粒及杂质都有严格的限制。 4.生产线自动化、柔性化 加工的复杂性、精度和净化的要求不断提高,生产线自动化。 4.2新材料、新器件研究 除了Si和GaAs、InP等Ⅲ-Ⅴ族化合物半导体器件之外,近年来SiGe、SiC和金刚石材料及器件的研究取得了较大进展。 SiGeIC在高速、高频、低噪声、低电压工作等许多方面其特性比GaAsIC更优越,而且成本低、对环境污染小。特别是与Si工艺兼容,可沿用成熟的Si工艺技术和设备。目前SiGeIC技术已逐步从实验室走向商品生产。IBM已建立了SiGeIC制造线,1994年中已可商品生产。IBM已采用0.25μmBiCMOSSiGe工艺和HBT工艺进行IC设计。据报道SiGe器件能在高达125GHz的频率下工作。而且还可用于制作太阳能电池及其它光电子器件。AnalogDevices公司已可提供1GHz12位D/A转换器,据说其功耗仅为GaAsIC的1/4。SiGe技术将扩大市场,并经济地满足日益增长的高性能应用的要求。 SiC的材料性质使它适于制作高频、高功率、耐高温、抗辐射的器件,并可制作发光器件。近年来在材料和器件研制方面都取得了较大进展,已对SiC的MOSFET、MESFET、JFET(结型)以及双极晶体管进行了实验研究,并取得了一定进展,但目前还在进行实用化研究,在SiC衬底及外延层质量、肖特基接触、低阻欧姆接触、刻蚀技术及SiC/SiO2界面等器件制造工艺方面都还需做大量实用化工作。 作为Si器件后的新型晶体管的研究也在广泛地进行,如量子器件、超导晶体管、神经网络器件、单电子器件、塑料晶体管及柔韧型晶体管等等。 4.3国内集成电路设计与投片 国内通过引进、吸收,已经有了可以投产0.35μm甚至0.25μm线宽的集成电路工艺线,正在建设中还有更小线宽的工艺线。集成电路设计水平也在不断提高,已具有几百万门级集成电路的前端设计能力。相信通过类似像CPU一类大型集成电路设计、投片试制,将对我国微电子事业起到实质性推动作用。 5信息家电的发展与动态 目前,最有量产效益和时代特征的信息产品应是与Internet上有关的信息家电(InformationAppliance),如Web可视电话、Web游戏机、WebPDA、WAP手机、STB(机顶盒)、DVD播放机、电子阅读机等。 5.1信息家电的定义 在因特网的迅猛发展下,加上集成电路芯片制造能力的快速提高以及嵌入式软件的应用,一些产品的形态变得更加轻薄短小、简单易用且价格低廉,我们称这些产品为信息家电(InformationAppliance,IA)。一般可认为,那些低单价、操作简单、可通过因特网发送或获取信息,将逐步分割或替代PC的某些功能,并能与其它信息产品交换资料或讯息的产品可统称为IA。 5.2信息家电的分类 IA产品按类型可大致分为: (1)网络电视(NetTV)。(2)网上游戏机(Internetgamingdevice)。(3)智能掌上型设备(Internetsmarthandhelddevice)。(4)网络电话(InternetscreenPhone)。(5)ConsumerNCclient等。 因此,综合市场上对于IA产品的认知条件与需求要素来看,IA产品具下列4点特性: (1)处理器发展趋向低成本、高整合性与低耗能。 (2)整合数字与模拟处理的技术。 (3)较PC更强调通讯能力。 (4)利用软件增加产品的差异性(高附加价值的关键)。 5.3我国IA产品的应用情况 据计算机与微电子发展研究中心市场信息中心(CCID—MIC)分析和预测,到2003年我国有4723万人需要不通过计算机而实现联网,嵌入式操作系统作为信息家电的核心,仅机顶盒一种产品的市场容量就达2000万台,市场估值达到40亿元。其它家电如VCD、电冰箱、洗衣机、微波炉等,如果都实现信息化,嵌入式操作系统每年将带来上百亿元的收入。 CNNIC最新统计我国上网人数1680万,每半年可增长100%,2000年底将达到3000万,可能超过日本,成为仅次于美国的国家。目前,机顶盒(Set-TopBox)是最接近家电的IA产品,从增加电视遥控选台功能,到配备MPEG解压缩功能、数字加密功能,未来可能整合在数码电视中,很可能成为家庭信息、娱乐中枢。 目前,国内有很多IA的开发厂商正加大投入、开发和研制新产品,特别是一些外资大公司积极和国内电器方面的大公司合作推出很具竟争力的IA产品。 5.4嵌入式Linux在IA上的应用开发前景 (1)与硬件芯片的紧密结合 新世纪的智能设备已经逐渐地模糊了硬件与软件的界限,SOC系统(SystemOnChip)的发展就是这种软硬件无缝结合趋势的明证。随着处理器片内微码的发展,在将来可能出现在处理器片内嵌进操作系统的代码模块。 嵌入式Linux的一大特点是:与硬件芯片(如SOC等)的紧密结合。它不是一个纯软件的Linux系统,而比一般操作系统更加接近于硬件。嵌入式Linux的进一步发展,逐步地具备了嵌入式RTOS的一切特征:实时性、与嵌入式处理器的紧密结合。 (2)开放的源代码 嵌入式Linux的另一大特点是:代码的开放性。代码的开放性是与后PC时代的智能设备的多样性是相适应的。代码的开放性主要体现在源代码可获得上,Linux代码开发就像是“集市式”开发,任意选择并按自己的意愿整合出新的产品。 对于嵌入式Linux,事实上是把BIOS层的功能实现在Linux的driver层。目前,在Linux领域,已经出现了专门为Linux操作系统定制的自由软件的BIOS代码,并在多款主板上实现此类的BIOS层功能。 嵌入式Linux技术的普及发展,为国内单片机工程师在软件功能方面提供了极大的支持,为软件引入了TCP/IP网络特性,引入了软件操作系统的健壮性,这都极大增加了系统的功能和极大提高了系统的性能。 (3)嵌入式Linux与硬件芯片的紧密结合 对于许多信息家电的应用来说,嵌入的性能指标是最难满足的,只有靠提高芯片的集成度与装配密度来解决。 嵌入式Linux与标准Linux的一个重要区别是嵌入式Linux与硬件芯片的紧密结合。这是一个不可逾越的难点,也是嵌入式Linux技术的关键之处。嵌入式Linux和商用专用RTOS一样,需要编写BSP(BoardSupportPackage),这相当于编写PC机的BIOS。这不仅仅是嵌入式Linux的难点,也是使用商用专用RTOS开发的难点。硬件芯片(SOC芯片或者是嵌入式处理器)的多样性也决定了代码开放的嵌入式Linux的成功。信息家电的发展,必然导致软硬件无缝结合趋势,逐渐地模糊了硬件与软件的界限,在将来可能出现SOC片内的操作系统代码模块。 随着处理器片内微码的发展,在将来应出现在处理器片内嵌进操作系统的代码模块,很显然模块将具有安全性好、健壮性强、代码执行效率高等特点。着眼于未来的信息家电等智能设备的发展,我们基于对嵌入式Linux技术的深入研究,更重要的是对嵌入式处理器以及SOC系统的深刻理解和研究,发挥对EDA技术的深入研究,以及对模拟数字混合集成电路芯片的深入研究,正在对SOC片内进行嵌入式Linux操作系统代码的植入研究。此类的研究有可能减轻系统开发者对BSP开发的难度要求,并使得嵌入式Linux能够成为普及的嵌入式操作系统,而大大提高嵌入式Linux的易用性,大大提高其开发出的高智能设备的安全性、稳定性,同时也大大提高智能设备的计算能力、处理能力。 (4)解决好软件开发问题 目前,中国众多的家电厂商以制造业为主,当投身IA领域之际,首先面临了不擅长的软件开发工作,找到容量小、稳定性高且易于开发的操作系统对于大家至关重要,嵌入式Linux核心则扮演了一个很好的桥梁的角色,这是一个跨平台的操作系统,到目前为止,它可以支持二三十种CPU,众多家电业的芯片都开始做嵌入式Linux的平台移植工作,在网络方面一般要支持TCP/IP和标准的以太网协议,支持标准的X-Window和中文输入。建议开发商选择一个成熟的方案提供商,从而达到降低开发平台门槛的目的。众多的开发商在成熟的开发平台上可以较为容易加入用户的应用程序,形成个性化、系列化的应用产品。 (5)自身开发实力的评估 我们认为主要应从以下几个方面考虑: 有没有技术积累优势?有没有将待开发IA产品有关领域的整合能力?产品有没有可重用性、模块化?有没有成系列化的可能?有没有市场和售后服务保证?最终用户群的拓展范围有多大? 解决好这些问题后,关键就是开发人才梯队的建设,资金融入等运营管理问题。 6结束语 在21世纪,软件产业、集成电路产业大发展时期中,加入WTO后的中国将迎来新机遇、新挑战,也随时有被抛弃的危险。我们认为软件产业应以CMM模型来规范我们的软件企业、软件圆区建设,将国家的“集成电路税收优惠、软件企业上市优先”的政策落到实处。集成电路从业人员要努力提高设计能力,找准市场需求,融入世界上最新有关集成电路的创新成果,尽快缩短与世界先进水平的差距。对信息家电这样的热点,应紧紧把握用户的消费需求,迅速融入和整合最新科技成果,努力达到以具有高附加值的IC芯片和版本免费的嵌入式Linux方式来开发,并成为面向计算机、通讯与消费性信息家电领域的解决方案。我们期待着我国的厂商能够在信息家电的核心芯片设计以及软件开发中拥有自主产权和广泛的应用。 软件和集成电路产业布局的问题及对策:新世纪的软件产业和集成电路产业 为推动我国信息产业和集成电路的发展,增强信息产业创新能力和国际竞争能力,带动传统产业改造和产品升级换代,国家实行“集成电路税收优惠、软件企业上市优先”的政策,国务院已于1999年7月印发了《鼓励软件产业和集成电路产业发展的若干政策》。 为打破几十年来,国内“硬件不做CPU,软件不做操作系统”的现象,中国国家高技术智能计算机系统专家组日前以国家的行为通过各种方式联合攻关,这为新世纪的软件与集成电路产业大发展吹响了世纪的号角。 中国科技大学的金西老师,获邀参加了中国国家高技术智能计算机系统(863-306)专家组主办的第一届中国自由软件发展战略研讨会,并作了演讲。现在我们将其在会议演讲文稿及通过各种渠道了解到的发展动态综述出来,答谢读者多年来对我刊的支持与厚爱,同时衷心祝贺我国的软件与集成电路产业在新世纪蒸蒸日上。 1国家鼓励的主要产业政策 国家鼓励的有关软件产业和集成电路产业的主要产业政策如下: 第十条支持开发重大共性软件和基础软件。国家科技经费重点支持具有基础性、战略性、前瞻性和重大关键共性软件技术的研究与开发,主要包括操作系统、大型数据库管理系统、网络平台、开发平台、信息安全、嵌入式系统、大型应用软件等基础软件和共性软件。属于国家支持的上述软件研究开发项目,应以企业为主,产学研相结合,通过公开招标方式,择优选定项目承担者。 第十一条支持国内企业、科研院所、高等学校与外国企业联合设立研究与开发中心。 第四十二条符合下列条件之一的集成电路生产企业,按鼓励外商对能源、交通投资的税收优惠政策执行。 (一)投资额超过80亿元人民币; (二)集成电路线宽小于0.25μm的。 2软件产业 2.1我国软件业现状 进入21世纪,信息技术将渗透到经济建设和社会生活的各个方面,软件将会成为突出体现一个国家经济优势的产业。我国软件业在1990年软件的销售额仅为2.2亿元人民币,1999年中国软件市场总销售额增加到176元亿人民币,增长79倍,每年的发展速度都在20%以上;2000年中国软件市场的销售额约225亿元人民币左右,较1999年增长27.8%。软件产业做为支柱产业的形象越来越明显。 2.2我国软件业与印度软件业的差距 我国软件业的发展和国外软件业相比还有很大的差距,独立自主开发的软件所占比例还很小。早在1998年的统计资料就表明软件产品市场销售额为138亿元人民币,约占当年世界软件市场份额的1%;软件产品出口约为6500万美元,而同期印度的软件出口额已达到26.5亿美元,约是我国的40倍。2000年印度软件产业销售额达57亿美元左右,出口达39亿美元,这比我国2000年销售总额要多40%左右。 2.3我国政府对软件产业的态度 软件业已成为衡量一个国家综合国力的标志之一。软件产业的快速发展对各国保持经济稳定、持续发展起到了关键作用。在发达国家,软件业已超过钢铁、汽车和石油等传统产业成为国民经济的重要支柱;而在中国信息产业中,软件市场尚不及硬件的20%,软件产业发展的滞后已经引起我国政府和有志之士的高度重视。 科技部副部长徐冠华谈到,90年代以来,信息技术及其产业发展令人目不暇接,国际信息产业结构正在进行战略调整。由以硬件为主导向以软件为主导过渡,软件的重要性日益显着。在软件产业方面,正在发生着由销售导向向服务导向转变。以Linus为代表的共享软件的出现,促使软件由垄断封闭型开发,向社会开放型的开发方向演化,这代表已在网络上合作进行研发的新趋势。这种趋势迫切要求不甘落后的国家,必须尽快形成自己的软件开发实力,壮大自己的软件产业,在未来经济和产业之林中占有一席之地。软件园在国家整个软件产业发展中的核心作用、牵引作用和示范作用都已得到体现,软件园的建设发展,已成为当地开拓新经济增长点的重要方向,集中发展是实现软件产业能够快速发展的战略选择。 软件产业是以智力和人力为主要经营资源,以知识和信息为经营载体,以创新为主要经营特色的知识、智力密集型产业,是典型的知识产业,是知识经济的核心。信息产业部副部长曲维枝指出,软件产业有以下两个显着的特点: (1)软件产业以人才为本,高素质、高水平、稳定的软件技术人才队伍是产业发展的必要条件。 (2)软件产业以创新为主要发展动力,必须在技术、产品、市场和管理的不断创新中取得发展。 曲副部长还指出:我国政府应从以下几方面着手,为软件产业营造良好的政策和经济环境: (1)尽快制定配套的软件产业政策,推动我国软件产业的快速发展。 (2)通过设立软件专项基金等措施启动市场,推动软件产业发展。 (3)重视对软件的产业化、软件人才队伍的稳定和培养。 (4)强化行业管理、严格质量控制。要在系统集成商与软件开发商中大力推广ISO9000和CMM认证及软件企业的资质认证,以及对系统集成工程要实行工程监理制度。 (5)开展国际合作,开拓国际市场。 3CMM模型 3.1CMM的由来 软件是知识产品,是人类智慧的结晶,软件系统的复杂程度也是超乎想象,不同于一般的生产过程。美国卡内基·梅隆大学软件工程研究所(CMN/SE)受美国国防部的委托,开发了软件能力成熟度模型(CMM),为软件工程过程管理和实施开辟了一条新的途径。CMM主要用于评估和改进软件企业中的以软件能力为标志的软件活动。它能帮助软件企业改进和优化管理,在提高软件开发水平和效率的同时提高产品的质量和可靠性,实现软件生产工程化。根据软件生产的历史和现状,CMM框架用5个不断进货的层次来表达软件组织活动的行为特征及相应问题,其中初始层是混沌的过程;可重复层是经过训练的软件过程;定义层是标准一致的软件过程;管理层是可预测的软件过程;优化层是能持续改善的软件过程。在CMM框架的不同层次中,需要解决具有相应层次特征的软件过程问题。因此,一个软件组织首先需要了解自己处于哪一个层次,然后才能针对该层次的行为特征解决相关问题。任何软件组织致力于软件过程改善时,只能是循序渐近地向相邻的上一层进化;而且向更成熟层次进化时,原有层次中那些已具备的能力还应该保持和发扬。 3.2CMM的国际地位 CMM已得到了国际上普遍的认可,并对计算机软件行业产生了深远的影响,它可以通过对软件组织软件能力的评价、软件过程的评估及改进,提高开发软件产品的能力和质量,是我国软件企业走向世界迅速发展的必由之路。我国软件业和印度相比出口额差别很大,其中原因很多,就企业自身管理而言,我们比印度差得更多。从行业本身角度来看,印度软件行业导入CMM模型是其成功的重要因素。目前,全球已有72家企业通过了CMM4级和5级评估,其中印度就有24家,通过CMM模式的管理,印度大幅度提高了其软件开发能力及软件产品的质量,保证了向美国和欧洲软件出口的高速增长。与此相比,我国软件企业2000年前只有北京鼎新公司通过CMM2级认证。 我国的软件开发整体水平是印度十年前的水平,软件生产方式普遍是手工作坊的软件生产过程,处于有章不循和无章可循的混沌状态。外部环境的改善、政府的支持和保护、资金问题的改善,给软件业的发展提供了一个良好的发展平台;但外因是要通过内因来起作用的,在我们抱怨资金缺乏、不堪税赋、人才流失等问题时,应该好好的反思软件企业的自身问题,用CMM作为一面镜子去发现、查找、评估企业在软件生产过程中的问题,我们缺乏的是科学化、系统化、规范化的管理,也就是突破CMM2级的问题。实施CMM是软件企业加强自身管理,提高素质,摆脱困境的必经之路,是软件业与国际接轨的重要举措。 3.3中国的CMM认证 令人欣慰的是,在这次2000年中国自由软件发展及应用战略研讨会上,摩托罗拉中国软件中心的经理在演讲中公布,摩托罗拉中国软件中心是中国大陆第一个基于“软件能力成熟模型”(CMM)开展其业务的软件开发机构。CMM由五级组成,第一级为最低,第五级代表最高水平。目前,大部分软件组织通过的认证属于一级或二级。摩托罗拉中国软件中心已于2000年9月通过了顶级(五级)评估,成为中国首家达到顶级的软件企业,也使中国成为继美国、印度之后第三个拥有顶级企业的国家。那位经理特别强调整个摩托罗拉中国软件中心完全是由中国人组成,中国人也能做到CMM顶级。 会上,有不少软件开发商质询摩托罗拉中国软件中心说,CMM2级认证过程需百万美金以上费用,有没有这个必要吗?摩托罗拉中国软件中心用一组数据展示其在向争取高级别认证过程中的大幅提高效率作了肯定的答复,也就说明了,随着项目复杂度的日益增加,“软件能力成熟模型”已经成为及时和高品质软件产品的保障,是企业竞争力提高的象征。摩托罗拉中国软件中心不仅在公司内部使用“能力成熟模型”,而且积极倡导并推广该模型的应用,同时为国内外其他软件组织提供软件工程方面的咨询服务。 CMM的思想、原理、工具、方法无疑对我国软件产业的加速发展起到巨大的推动作用,它必将对我国软件产业的评估、认证、引导以及软件企业内部的优化与发展产生深远的影响。 4集成电路产业 4.1 集成电路制造技术已推进到深亚微米领域 集成电路制造技术进入深亚微米领域的发展趋势主要有: 1. 加工微细化 微细化的关键是光刻。据研究,光学光刻的极限是0.12μm。通过开发短波长光源、大数值孔径镜头、变形照明、移相掩膜以及先进的抗蚀剂工艺技术等已将光学光刻推进到实用线宽0.25μm,可满足256M DRAM制造的需要。日立公司已用这些技术实现了0.13μm的线宽。 2.硅片大直径化 芯片尺寸随着集成度提高而增大,使圆片能分割的芯片数减少,导致成本增大。世界各大IC厂商集团经讨论决定将新世纪第一个主流硅片直径定为12英寸。 3.加工环境、设备及材料超净化 随着加工微细化、超净要求越来越高,如线宽为0.25μm时,要求硅片缺陷尺寸小于0.05μm,工艺气体 0.02μm的杂质每立方英尺少于1个,对生产环境、设备以及各种气体、化学品、原材料等的尘粒及杂质都有严格的限制。 4.生产线自动化、柔性化 加工的复杂性、精度和净化的要求不断提高,生产线自动化。 软件和集成电路产业布局的问题及对策:我国软件和集成电路产业布局和结构的现状、问题及对策 一、布局和结构的现状 我国软件和IC产业地区间发展差异显著,企业集中分布在经济文化相对发达的京津环渤海、长三角和珠三角地区。全国85%的软件产业和95%以上的IC产业的销售收入集中在这三个地区。中西部地区软件和IC产业,依赖个别省市中心城市,如西安、成都、长沙和武汉等的带动。 在软件业方面。北京的产业规模位居全国首位,企业产值和就业人数占全国总量的1/3,加上天津和大连,初步形成了环渤海湾软件产业带。广东(主要是深圳)的软件业仅次于北京。上海、浙江、山东3省市软件产业规模相当。以上7省市软件业销售收入占全国的比重超过75%。 在IC产业方面。长三角地区是国内最主要的IC基地,聚集了全国近1/2的IC设计企业和制造企业以及4/5的封装测试企业。京津环渤海地区在IC研发、设计和制造领域,拥有与长三角地区规模相当的产业基础。珠三角地区依托强大的计算机产品制造能力,形成了有一定特色的IC设计企业群。2004年,我国IC产业销售收入在长三角、京津环渤海和珠三角地区的分布情况大致是60%、30%和5%。 近年来,在有关政策推动下,软件和IC企业集群效应日益显现。大企业集中分布在城市基础设施与产业配套基础好、科研机构和高等院校相对集中、软件人才相对密集、有一定技术能力储备与市场规模优势的中心城市。在北京、天津、大连、沈阳、上海、杭州、无锡、苏州、南京、济南、厦门、深圳、珠海、香港、广州和中西部个别城市,初步形成了一批初具规模和各有特色的软件和IC产业群。 二、存在的问题 2004年,我国软件市场占世界软件市场的份额,从1999年的1%提高为3%,规模为2424亿元;IC市场规模为2908亿元,仅次于美国、日本,约占世界市场份额的1/5。 我国软件和IC产业规模与市场需求规模不协调。国内企业规模小,生产集中度低,大多聚集在产业链的下游或低技术、低附加值的环节,在资金与技术密集的关键领域发展严重不足。这些问题,使国内软件和IC产业并没有从近年来市场需求的快速扩张中获得应有的益处,其落后局面尚未得到根本改变,国内市场需求仍然高度依赖进口和外资企业来满足。 (一)软件业 1.软件业比重偏低。从软硬件产业构成关系看,我国软件业与硬件规模的比例关系是1∶2,而在信息产业发达的国家,其比例关系一般不低于1∶1。美国正好与我国相反,软件业规模是硬件业规模的2倍。 2.软件产品的本国供应率偏低。国产软件产品占我国软件产品市场的份额为1/3。而在软件强国美国,本国企业软件产品的自给率高达97%;与我国软件业规模相当的韩国,这一比率也高于50%。 3.关键领域的自主研发严重不足。软件产品分为系统软件、支撑软件和应用软件。长期以来,国内企业在应用软件领域发展迅速,但在系统软件、支撑软件的关键技术领域,始终没有形成完整系统和拥有自主知识产权的产品。在这种格局下,一方面,国内企业在应用软件领域的竞争优势地位,有助于推动软件业规模的扩张;另一方面,国内企业在系统软件、支撑软件领域的竞争弱势地位,又决定了我国软件业一时还难以摆脱受制于人、技术创新乏力和盈利能力差的局面。 4.企业数量众多,规模小,独立软件开发企业发展慢。近几年,我国软件企业数量增长较快;新的问题是出现了大量规模小、技术层次低、在产业链低端重复竞争的小企业。在逾万家软件企业中,员工数在250人以下的占90%。另一方面,迄今为止我国还没有营业额达数亿美元的大型软件企业。软件业百强中排名前列的都不是纯粹的软件公司,而是华为、中兴、海信、海尔这样的电子与通信制造企业。2004年,我国的独立软件开发企业中,只有中软一家营业额超过1亿美元,近5000家独立软件开发企业营业总额为240亿元人民币,平均每家的营业额不足500万元。许多软件企业因规模不经济,存在劳动生产率低和盈利能力弱的问题。 (二)IC产业 1.与软件业相比,我国IC产业的特点是市场需求规模更大,自给供应能力更弱。从产量上看,国产IC产品仅能满足25―30%的国内市场需求;且国产的多为低端低价的产品,大量IC产品需要出口到海外进行再设计和加工。这使得我国IC产业呈现“大进大出”的特点。从产值上看,国产IC占我国市场销售收入的比重不超过20%,国内市场所需的IC产品80%以上需要进口,尤其是高技术的核心芯片,完全依赖进口。 2.产业内各环节比例关系不合理,IC设计发展滞后。在IC产业链上,有设计、制造和封装测试3个环节。2004年,三类行业占我国IC产业的比重分别是15%、30%和55%。与IC产业发达的国家和地区相比,我国IC封装测试业所占比重高,上游的设计、制造所占比重低。2000―2004年的5年间,我国IC产业投资额为100亿美元,超过自建国以来至上个世纪末IC产业投资总额的4倍,但这些投资增量的绝大部分,投入了IC制造和封装测试领域。伴随这批投资陆续批量化生产,我国IC制造和封装测试环节的产业能力将大大增强。届时,如果国内IC设计企业没有足够设计能力来满足下游环节的生产要求,那么,国内IC制造和封装测试厂家,即使生产工艺技术、产能达到了国际先进水平,也只能在产业链下游被动地为国外厂商代工。 3.产业技术水平低,核心技术受制于人。我国IC技术水平与领先国家相差2―3代,整体水平落后国际水平6―8年,关键领域技术瓶颈十分严重,自主版权产品非常少。目前,我国申请的IC专利仅占世界的1.74%;国内IC领域申请专利数目最多的是日本企业,占43.5%,其次是美国和韩国,而我国本土企业的申请比例仅为8%。即使在国内相对较强的封装环节,国内企业也只是在低档封装方面有量大效率高的优势;在高档封装及技术含量相对高的测试环节,近两年国内只有一些外资和合资企业开始起步。 三、对策建议 (一)在关键技术领域确保足够的投入强度。为实现产业技术赶超,在关键技术领域进行集中、高强度且持续的投资是必要的。以IC产业为例,20世纪七八十年代的日本及90年代的韩国和我国台湾地区,在赶超阶段每年对IC产业的投资与其IC产业规模的比例不低于2∶5。按照这一比例,我国对IC产业的年投资水平应为200亿元。2000―2004年,我国IC产业投资强度基本达到这一要求。未来一段时期,伴随我国IC产业规模继续扩张,投资力度还应有所加强,不宜减弱。在保证产业投资总量的同时,还必须确保必要的研发经费投入。现在,我国软件和IC产业的市场规模已超过5300亿元,以工业发达七国集团研发投入占GDP比重的平均水平1.67%为最低标准计算,我国全社会软件和IC产业的年研发经费不应低于90亿元。目前,我国实际投入的研发经费不超过40亿元,其缺口至少为50亿元。 (二)充分发挥国家在引导社会资本参与关键技术研发方面的能动作用。软件和IC产业上游基础性、关键性、带动力强技术领域的研发,资金需求量大、风险高,社会资本通常不具备进入这些领域的实力,也缺乏主动进入这些领域的意愿。只有政府的强力介入,才有可能吸引和带动更多的民间资本对关键技术研发的投资。今后,应使有限的政府资源在关键领域的集中使用。同时,要建立有效的扩散机制,以形成政府资源对广泛社会资本的带动力。我国现行科研经费使用体制,不利于发挥国家在引导全社会投资高技术上的带动作用,在一定程度上削弱了国家对关键技术研发的投资力度。政府科研投入总量有限,资金用途过于分散,加之各机构获取资金的运作成本高,最终使得真正能够进入关键技术研发领域的资金非常有限。 (三)加快培育大企业。我国软件和IC企业数量众多,但生产集中度低,缺少世界级的大企业。当务之急是要集中投资,加快培育有综合性技术实力和国际竞争力、能带动产业发展的大企业。同时,应鼓励软件和IC企业并购、重组,以从根本上解决企业资源分散,规模不经济、生产组织方式粗放和技术创新层次低等问题。 (四)为小企业提供获得较低成本的资金的渠道。这是保证软件和IC产业创新活力的基础和前提。在我国社会信用机制不健全的情况下,银行信贷在支持高技术小企业发展方面的作用不显著。改善小企业融资条件的关键,在于依托资本市场,形成和完善投资者的进入与退出机制。 (五)推动软件园区、软件基地和IC基地的企业向集群化方向发展。软件园区、软件基地和IC基地的发展,有效改变了长期以来产业资源分散化的状况。下一阶段的工作重点,是要依托软件园区、软件基地和IC基地,加强公共服务体系和中间组织建设,突出不同地区的比较优势和产业特色,促进园区和基地内大中小企业之间的分工协作,完善产业配套体系,推动有条件的企业群向集群化的方向发展。 (六)高度重视软件与IC人才培养。除了必要的资金投入外,政府应该综合运用各项教育政策,确保向关键技术领域不断地输入产业发展所必须的人力资源。我国是一个人力资源大国,但同时又面临着严峻的软件和IC人才短缺问题,这种人才短缺既是总量性的,又是结构性的。对此,一方面,要加快制订符合我国产业中长期发展需要的软件与IC人才规划;另一方面,应尽快启动低端软件人才的专项培养计划。近年来,我国低端软件人才用工成本不断攀升,在软件企业聚集的一些中心城市,“软件蓝领”的薪酬水平已近印度同类人才的2倍,直接影响了国内软件业的竞争力。 (作者系中国社科院工经所副研究员)
软件技术毕业论文:计算机软件技术开发思路 【摘要】对计算机软件技术的开发与应用进行分析和介绍。研究内容在社会经济不断发展的今天,在人们生活以及工作的方方面面都已经广泛的运用到了计算机软件技术,因此关于计算机软件技术的开发应用受到了人们的普遍重视。本文对计算机软件技术的发展现状进行了分析和介绍,并且对开发计算机软件技术的研究进行了简单的分析。结论计算机软件技术在未来具有广阔的应用和发展前景。 【关键词】计算机应用;软件技术开发;应用前景 引言 计算机技术自从诞生以来,就在国民经济的各个领域中得到了非常广泛的应用,而且计算机在很多领域中已经占据了主导的作用。计算机主要包括两个部分也就是硬件和软件,其中保证计算机的运行的核心部分就是软件系统,不同的计算机软件系统在计算机中也具有不同的作用。与此同时,现在随着人们需求的不断变化,计算机软件的多功能性也在不断的拓展中,其深刻的影响到了人类社会的发展和改革。虽然与全球其他发达国家的软件产业总额比起来,我国软件产业的总额还存在着一定的差距,然而现在这个状况正在不断的改善当中,目前在全球软件产业总额中我国软件产业总额占据了越来越高的比例。 1计算机软件技术的开发现状分析 作为一种能够操作软件系统的高级技术,计算机软件技术的主要研究内容就是保证高效运营的运行模型、积极的优化相应的支撑体系、进一步的探索相关的手段等。 1.1对操作系统的开发 作为计算机的重要组成部分,计算机的操作系统在计算机的运行过程中具有十分重要的作用,比如管理各种硬件以及资源的硬件资源管理系统,其主要包括显示器、存储器以及处理器等;同时其也能够操作各种软件运营系统,从而能够统筹管理软件的运行情况;除此之外,其还能够有效的支撑相对应的一些软件。现在计算机软件技术发展的越来越快,而且操作的合理性以及便捷性已经成为了计算机软件系统在未来的主要发展方向。作为一种新兴技术,嵌入式技术在操作系统中的应用也变得越来越广泛,而且已经取得了较好的发展。所谓的嵌入式技术就是使计算机的硬件和软件有机的结合别的机电设备,最终将一个全新的设备系统形成。现在嵌入式系统产品种类变得越来越多,而且广泛地运用在了各个领域中[2]。 1.2对数据库操作系统的开发 作为计算机系统的关键组成部分,数据库系统在计算机系统中处于核心的地位。现在数据库系统的安全技术问题受到了很多人的关注,因此其也具有了良好的发展。数据库系统的支柱在数据库系统中具有十分重要的作用,各大数据库公司以及软件学术界都开始积极的研发数据库系统,而且已经将数据库系统的研发放在了首要的位置。 1.3软件工程环境的开发 对工具技术以及方法等实施合理的安排是软件工程的主要侧重点,软件工程环境的主要定义就是一系列的能够在一起工作的系统构件,并且能够保证日常工作活动中自动化支持的实现。在早期开发软件工程环境主要属于一种整体的研发,现在已经开始出现了细节化以及分散化的特点[3]。 2计算机软件技术的具体应用分析 2.1在项目工程中计算机软件的应用 在信息化社会,不管是信息的传播方式也好还是信息量也好都具有多种多样的特点,而这一特点也使得项目各方在具体的交流过程中变得比较困难,因此信息的交流和传递对一个工程的管理来说具有十分重要的作用。将计算机软件充分的运用到项目工程中就能够使这一问题得到有效的解决,现在按照功能可以将工程项目管理软件划分为两种,比如高档次的P3具有十分强大的功能,但是也相对的具有较高的价格,TimeLine属于一种低档次的软件,其只能解决工程中的某一方面的问题。 2.2在工程制图中对计算机软件的应用 在工程制图中对计算机软件进行充分的运用能够使工程师的劳动力可以极大降低,并且也使得工程开发的进度得加快。现在制图软件技术随着计算机软件技术的不断发展也出现了较快的提升,一般可以将工程制图的软件发展过程划分为三个阶段,也就是初步使用光栅扫描显示器,广泛使用PC机以及飞速发展的工程制图软件。现在有很多软件都在计算机工程制图中得到了广泛的应用,比如Java以及AutoCAD等都属于比较常用的软件[4]。当前,应用计算机软件进行工程制图已经基本实现了智能化、数字化及一体化,将人们的创造潜能发挥到了更大的限度,其流程见图1。 2.3在移动计算机通信中对计算机软件技术的应用 现在在IT技术中移动通信和Internet属于两大热点技术,有效的结合这两大这点技术就诞生了移动计算机通讯网络。移动计算机通信网络主要指的是可以在网内随意移动主机的一种网络,这样就极大地方便了计算机用户的使用。比如PDA(个人数字助理)以及HandbookPC(笔记本电脑)等基本上都对无线通信设备进行了配置,用户可以在任何无线网络覆盖到的位置对各种不同的数据信息进行随意的发送或者接收。计算机通信的主要功能包括信息通信与网络技术的应用、分布处理功能、资源共享功能、数据通信功能。目前移动计算机通信网络技术应用的越来越广泛,主要包括移动internet的应用、纵向应用以及横向应用,而且具有非常广阔的应用前景[5]。 2.4在移动数据中计算机软件的应用 在移动通讯数据业务不断发展的今天诞生了多媒体应用处理器,现在3G移动通信技术已经在世界上很多国家和地区得到了普及。3G网络能够将更加有效地支撑起共给移动业务的发展,其除了使通信质量得以极大提升之外,同时也保证了视频通话的实现。全方位的移动数据服务时代是3G时代的一个显著的特点,在各方面3G移动通讯技术都表现出了非常大的优势,在我国移动通信技术不断发展过程中,现在又已经推出了第四代移动通信技术,与3G移动通信网络比较起来,4G移动通信网络的优势更为显著,其能够保证全球性的互通和漫游在不同同接入技术之间的实现,并且能够对多媒体互动业务进行支持,因此其具有更强的相互交错的功能性,年轻一代在未来市场上的多样化需求势必会由于4G移动通信技术的不断普及而得到更好的满足。 3结语 总之,人类社会由于大规模的计算机软件技术的开发和应用而出现了巨大的进步,在这个过程中,人们的日常工作和生活也越来越多的依赖于计算机软件技术,因此计算机软件技术对于信息化时代的人类而言具有十分重要的作用。现在我国的计算机软件技术还处于不断发展的阶段,因此我们必须要对开发和应用计算机软件技术的成果予以更多的关注,并且与我国的国情有效的结合在一起,最终能够将具有中国特色的计算机应用软件开发出来,使其在社会主义现代化建设中发挥更加重要的作用。 作者:郭晨鲜 单位:中州大学 软件技术毕业论文:软件技术专业JavaWeb课程改革思考 摘要:软件技术中一个重要的分支就是动态网站的制作。现在很多资源都可以从网络中获取,而人们获得这些数据与资源的最直接方式就是通过网页来浏览、下载与共享。JavaWeb可以说是一个综合的学科。他不仅仅是Java语言,还涵盖HTML、脚本语言、网站的设计思想、特效脚本语言乃至数据库等多方面知识的运用。目的是能够完成动态网站构建的全部过程。本文从该门课程的内容开始介绍,分析了课程中存在的问题以及问题形成的原因。针对原因有效的提出了改革措施。 关键词:脚本语言;网站设计思想;多样化评价;教材编写;实践能力 1软件技术专业JavaWeb课程的涵盖内容 1.1课程的产生 这们课程是高职针对软件专业发展,面向社会软件研发企业岗位需求,设立的特色专业。具有针对性强,就业岗位多,人才需求量大的特点。因为网站制作是很多软件研发企业必需要做的工作。无论何种功能的系统,随着网络化的普及,人们都需要让这种应用系统具备联网功能。就常常要使用到浏览器服务器模式。而浏览器呈现的友好界面就要以动态网站的形式呈现。所以,软件研发企业,对动态网站构建的技术人员需求量巨大。高职院校通过深入调研,应对岗位需求,建立了这个特色专业。这系列还被很多培训机构青睐,例如北大青鸟等都有类似的培训课程。 1.2涵盖的技术 作为一名技术人员,在动态网站研发过程中,最先要掌握的基本语言,应该是超文本标记语言。这种语言从名字就可以看出是专门为制作网页和网站服务的。因为代码简单,方便易懂。所以可以作为前导的基础课程。其次,要开发动态网站,至少要掌握一门面向对象的高级编程语言,从本门课程的名字大家也能分析出,这里选用的是Java高级编程语言。当然在动态网站制作过程中,脚本语言必不可少。目前较为成熟、流行的脚本语言有,PHP、C#和JSP,后者跟JAVA有着天然的结合性,技术也不逊色于前两者。是教学中不错的选择。当然动态特效脚本语言也是需要了解的,这里面选择性较大,不一一介绍。最后,选讲一门数据库技术,让网站从静态变为动态,才真正实现网站的意义。SQL可以进行简单介绍。除了技术角度之外,还应该介绍网站的功能设计、主题与内容的安排,风格的确定等。如果课时允许的情况下,还可以适当拓展网页美化相关的专题。 2软件技术专业JavaWeb课程存在的问题 在课程内容上未能紧跟技术发展趋势,现有的JavaWeb开发高职高专教材多以基础的知识和技能为重点来讲解,与用人企业对JavaWeb开发人才需求相差太大,不能满足用人单位的需要。比如企业多需熟练掌握SSH框架的JavaWeb开发人才,但学生没有深入地学习实践这些主流的开发框架,就业时面对企业人才需求比较被动。在教学模式上,能够采用任务驱动,项目导向的方式,但是每个项目只针对某些知识点,相对单一,虽然全部项目涵盖了全部知识点和技能,但是系统性不够,不能很好地引导学生将这些零碎的知识和技能应用于综合的系统开发中。另外,课堂和实训地点相分离,缺乏职业氛围,与企业联系不多,学生在校学习与实际工作存在不一致性。 3软件技术专业JavaWeb课程改革的有效措施 首先打破传统教学观念,以“任务为驱动”、“案例+项目”的方式进行教学,从学生熟悉的实例出发,首先提出问题,引导学生解决问题,问题扩展,再解决问题,再扩展,再解决。这种通过一个程序的层层推进,引入课程内容,使得学生的每一步学习都有基础,是循序渐进,螺旋式上升的过程,使学生的学习是在“走台阶”,而不是“三级跳”。其次在课堂教学上采用师生互动、小组讨论等形式,也通过老师巡回指导,发现学习中普遍性问题和同学中的新思路、新方法,实时地提出问题,学生进行正误判析,解决普遍性问题,或者请有独特思路的同学演示自己的方法或程序,对比各种方法的优缺点,鼓励大家再提出新方法。再次计算机类课程的学习有其自身的特点,听不会,也看不会,只能练会,所以在课程教学中必须强调程序设计训练。学生只有通过大量的练习,才能真正掌握语言知识,培养程序设计的能力,逐步理解和掌握程序设计的思想和方法,能利用计算机解决实际问题。最后课程采用过程性评价和结果性评价相结合的考核评价模式。其中,过程性评价成绩占课程总成绩的60%,结果性评价成绩占课程总成绩的40%。过程性评价以项目为单元来进行。结果性评价通过学期末的集中考试进行,重点考查学生对JavaWeb开发的基础知识及常用开发框架的理解掌握情况以及代码编写能力。每个项目成绩都是从知识、技能、态度三方面考核,考核依据是提交的成果、项目总结、平时表现、小组内部评价、组间评价等。 作者:宋磊 杨文 吴奇英 单位:哈尔滨职业技术学院 软件技术毕业论文:软件技术专业实训基地创建 实训基地不仅是为高职教育提供实践教学的重要处所,也是实现高职教育人才培养目标的重要保障.如何合理建设并充分利用好实训基地这个实践平台,是研究的首要问题. 1软件技术专业实训基地建设思路 1.1校内实训基地建设思路 (1)设立专业实训室.在建立校内实训室时,经费是首要考虑的问题,在有限经费条件下,可以根据专业特点及专业班级人数来设置实训室的功能与数量,也可以与计算机其他专业共用实训室,来达到控制成本,提高利用率的效果.如软件技术专业计算机类课程分为计算机基础课、专业基础课和专业核心课.对于计算机基础课与专业基础课可以和计算机类其他专业共用实训室,针对专业核心课程可以成立软件开发测试等实训室.在规划软件开发测试等实训室数量时,要充分考虑软件专业各年级的班级数量及专业课程设置要求与特点.计算机软件技术专业课程教学一般都采用理论实训一体化的教学模式,学期教学中会有整周的阶段性专业技能训练,要做到正常课程教学与阶段性实训不冲突,要有一定的实训室冗余.在规划实训室规模时,可以考虑专业学生班级人数成立大小不等的实训室. (2)成立软件工作室.利用校内实训室的条件,创建软件工作室.软件工作室的成员由校内的专业教师和校外周边地区软件企业的兼职教师,及来自计算机专业的对软件设计与开发感兴趣的学生组成.软件工作室可以承接一定的软件项目,在专兼职教师带领下,与学生共同完成承接的项目.在完成项目的过程中,不但可以提高教师的实践教学能力,还可以进一步锻炼学生的专业素质能力和团队合作能力. 1.2校外实训基地建设思路 校外实训基地是对校内实训基地设备、场所和功能缺陷的有效补充,能有效缓解学校实训基地建设所需经费和空间不足的矛盾.在建设校外实训基地时,可以选择与企业合作的方式,将学生送到企业进行顶岗实习.实习期间,在学生自愿的情况下,企业可以有偿或无偿对学生在软件项目开发整个流程及团队合作进行短期培训,使学生能更好地适应岗位,并为企业及学生双方创造更多价值. 2软件技术专业实训基地建设成效 2.1校内实训基地建设情况 根据专业实际需求,在满足教学实践教学要求的前提下,在学院原有实训设备的基础上,重新整合并更新了软件技术专业实训基地,成立了计算机应用实训室、计算机组装维护实训室、Java开发实训室、.NET开发实训室、软件测试实训室、软件综合项目实训室和项目开发实训室(软件工作室).为了使实训基地发挥其作用,有序的开展各项实习实训活动,制定了完善的实训室管理制度,在实训基地管理上还配备了专门的实训室管理教师与学生.教师负责实训室软件环境运行维护,学生负责实训室的日常管理,如实训室卫生的打扫及实训室开关门,在教师的带领下参与实训室软硬件的维护管理等工作.利用校内实训室资源成立了一个软件工作室,为了营造更真实的软件开发实践情境,更好地维护工作室的运营,工作室成员可以争取更多的软件设计客户,为学生提供更多的实践机会.为了争取更多的客户,工作室既要向企业展示自身的优势,如较强的技术实力等.在争取客户过程中,为工作室的员工提供了更多与企业进一步接触的机会,为学生提供更多就业机会,也为企业招收优秀的软件技术人员提供了便利. 2.2校外实训基地建设情况 软件技术专业与北大青鸟签订了合作协议,成立了青鸟软件技术专业,由我院和北大青鸟共同研究专业课程体系,共同为学生联系对口的实习岗位.在学习期间,由北大青鸟企业教师对学生进行专业、职业培训,并带领学生参与到一些项目的开发中来,提高了学生的实践能力.在与北大青鸟的合作中,学生每年都可以参加北大青鸟组织的院校赛,并设立了奖金,充分调动了学生学习的积极性及参加比赛的热情. 3结束语 软件技术专业实训基地的建立是培养具有创新意识、创造能力及应用型人才的实践场所,是提高教学质量的重要途径,是培养学生职业能力、提高职业技能水平和提升职业素质的基础保障,也是职业教育的必由之路. 作者:翟秋菊 何鑫 孙守梅 卢长鹏 单位:黑龙江农业经济职业学院信息工程系 软件技术毕业论文:软件技术服务业营改增税负影响 【摘要】1994年我国推行营业税改收增值税来调整国内工商营业税收模式、推动经济结构性减税、转变市场经济发展形式。进行试点区域化税收模式的改革带动国内各行业产业链的转型性发展突破。针对第三产业的崛起趋势具有良好的市场导向性和效益型。可以说“营增改”税收政策的实施正是为了适应第三产业发展需求和经济行业的不断转型和升级。通过平衡和制约产业结构与税收结构来为其打造有利的税收环境。 【关键词】营改增;技术服务业;税负影响 税收政策作为国家的宏观财政手段对国家财政大局和经济有着不可言喻的重要性。国内各类型经济产业是税收政策的直接作用对象。因此对经济企业和工商行业等不同产业的划分和税收制度尤为突出。随着以服务行业为代表的第三产业发展和崛起,原本的税收制度呈现多种问题,不能满足其要求。服务行业自兴起以来依据自身资源消耗低,经济附加值大的特点迅速导向市场。为协调第三产业在传统经济模式下的融合性和连带性,“营增改”应运而生。 一、我国服务行业的发展现状和分析 随着人类文明的进步、社会和谐的安定、生活与市场的负责化和经济科学的发展等诸多因素,服务行业为人提供便捷、解答和维护,为社会经济产业化便于接轨人民生活的宗旨早在二战期间就已经初现端倪。现代服务行业的确定是由美国社会学家丹尼尔提出来的。他指出服务行业在工业发展模式中最直接的表象是交通运输业和商品零售业。服务行业的出现和发展使各经济产业无不通过人性化的吸纳和融合来大范围提升企业价值和经济营销模式。这一现象导致市场规模的模糊和混乱。对行业之间的确立关系被服务行业的介入而打破。执行传统的以企业营业税为税收对象导致经济性产业和服务性产业出现双重税收,这对服务行业的发展造成巨大阻碍。尽快给服务行业找一个“安身立命”的市场并合理控制各企业之间产业链的调整和延伸,进而完成服务型行业的华丽转型。所以面对服务行业跻身各产业链的同时有效的规划市场服务类别并针对其市场经济转型和服务型经济的发展完善落实税收政策的改革是十分必要的。根据世界贸易组织的国际服务贸易分类表显示:现代服务行业可分为商业服务、通信服务、建筑有关工程服务、教育服务、环境服务、销售服务、金融服务、旅游服务、健康和社会服务、交通运输服务、娱乐文化服务等诸多类型。由于服务行业的发展迅速和其本身具有复杂化和多变化,致使现在理论界都不能统一的为服务行业有一个明确的概念分析。而通过服务行业在人民生活和产业工作的融入中的行业规整确定了服务行业典型的三大支柱,分别为生产性服务、科技型服务、新兴性服务。中国虽然发展成为世界贸易大国,但是服务行业的起步还是相对发达国家较晚。中国服务业的发展应该优先借鉴国外成功的服务发展模式,取其精华、因地制宜、推陈出新。尽快确立服务行业规章制度,通过完善的服务体系运用制度化,科学化的管理手段创造具有中国特色的服务行业。 二、实施“营增改”税收政策的试点分析 “营增改”的宗旨就是通过现代服务行业的结构性减税来解决市场行业重复征税的问题。这对企业化的结构调整和转型升级有长远的影响。2012年“营增改”税收模式率先在上海市的交通运输和现代服务业作为试点研究分析。根据国民经济和社会发展统计数据发现上海市在2011年的国民生产总值是14900.93亿元,其中以交通运输和现代服务行业为代表的第三产业贡献值比例占58.05%。第三产业的发展和建设已经成为上海经济发展和未来产业发展的焦点。因此国家税务局和财政部于2012年1月1日将上海作为“营增改”税收政策试点研究进行税收政策的改革,一年期间上海市的试点企业扩展到15.9万家,市场经济企业和纳税人的税收相对减少了166亿元,“营增改”的推行减轻了90%的企业税收负担。同年八月份国家税务局将北京、天津、广东等八个省份纳入新型税收政策试点范围中,两年后“营增改”推行全国。在现行增值税17%和13%两档税率的基础上,新增11%和6%两档税率。虽然在“营增改”税收模式下国家财政局的税收值明显下降,但相对于我国经济市场转型服务经济的发展来说。“营增改”对我国现代服务行业的优先发展和经济水平是利大于弊。当然还需要分析试点地区税收政策实施的优劣并综合国家和区域特点来进一步对新型税收政策进行考验和修正。国家税务总局为缓解试点地区产业税收转变的过度影响将传统税收模式中纳税人的营业税减免政策调整为增值税免税或者即征即退方式,非试点地区一般纳税人可凭借增值税专用发票抵扣进项税额,而原本试点地区的营业税收入依然归属于试点地区。通过传统营业税和新型增值税的双向计算和抵扣有效的链接了原本税收模式进项税额抵扣链。缓解了地方经济企业转型服务经济中税收模式的阻碍和压力,同时保持了中央和地方现行财政体制的基本稳定。本次“营增改”税收模式改革仍采用纳税人分类管理模式。以应税服务中增值税销售额为500万为界限分为一般纳税人和小规模纳税人。 三、数据分析“营增改”前后服务行业的税负影响 1、对小规模纳税人的税负影响 “营增改”后小规模纳税人的税收计算为:应纳增值税额=营业收入÷(1+3%)×3%。虽然在“营增改”后小规模纳税人征收率沿用传统税收仍为3%,但是相比于之前的纳税方式以营业收入全额乘以百分之五的税率来看,小规模纳税人收益比较明显。况且“营增改”后小规模纳税人的营业收入包括了含税销售额,这使应纳税额进一步降低。例证分析:假设某家小型服务公司的年营业额为200万元。在“营增改”钱应纳税额=100×5%=5万元;“营增改”后应纳税额=100÷(1+3%)×3%=2.91万元。经过分析计算比较“营增改”前后纳税额的比率为(5-2.91)÷5=0.418。由此可见运用增值税纳税模式小规模纳税额明显降低。 2、对一般纳税人的税负影响 改征增值税后一般纳税人有原本缴纳5%营业税改为缴纳6%增值税,企业购进的固定资产和按照进项税额进行税收抵扣,购进企业营运设备,加大固体成本额等成为了一般纳税人税收筹划的最佳选择。增值税的计税对象由传统纳税的营业总额改成营业增值计税。这里的营业收入总额也是包括含税销售额的。具体税收计算方式为:销项税额=营业收入÷(1+6%)×6%进项税额=经济成本÷6%应纳增值税额=销项税额-进项税额例证分析:假设有家大型技术服务企业其年营业额假定为1000万元,并且单从营业销售额(不考虑企业固定资本的进项税额抵扣)来计算比较“营增改”前后该企业所承担税额的比率和企业营业总额。那么该企业在“营增改”前改年度的营业缴纳税额=1000×5%=50万元;附加税费(城建税7%、教育费3%)=50×(7%+3%)=5万元。所以该年度本企业的税收总额为50+5=55万元;营业总额=1000-55=945万元。改征增值税后本年度企业应缴纳的增值税=1000÷(1+6%)×6%=943.40×6%=56.60万元,由于这里的营业销售额包含税销售额,所以附加税可在所得税前抵扣。最终企业应纳税所得额=56.60×(7%+3%)=5.66万元,出去应缴纳的增值税和附加税后改企业的净营业额=943.40-5.66=937.74万元。通过数据分析发现:改征增值税后实际税流转率为0.66%,正是应为实际税率小于名义税率,即0.66%<(6%-5%)才能有效的保证企业利益。由此可见税负的下降取决于进项税额和年营业总额的比率大小。0.66%作为“营增改”后的实际流转税率成为衡量企业年缴纳税额比例的临界点。如果进项税额和营业总额的比率大于0.66%,那么该企业的税负就会降低,企业盈利指标也会随之提高。反之企业就有可能出现税负升高的情况。 四、软件技术服务行业“营增改”税收问题和措施 通过数据的计算分析可以知道当企业进项税额和营业税额的比率小于0.66%时企业的税负是呈现一个增长的趋势,就是说“营增改”政策也有可能加重部分行业的税负。软件开发服务行业就是“营增改”中税负不减反增的服务行业之一。由于营业税和增值税都是属于流转税,软件开发服务业固定资产相对不足、技术成本大都是人力知识成本,这是导致软件服务业税负增加的主要原因。在对上海服务行业的试点政策统计中发现,“营增改”后税负下降的服务业占比为90%,但其中有35.6%的企业反映“营增改”后税负水平升高或者基本不变。其中有形租赁业和公共运输业相比之下税负增长严重制约了其发展,上海政府积极出台了相关财政扶持政策。通过实行特别行业税收即征即退、先征后退或者建议征税的方式来缓解“营增改”税负的过渡期。“营增改”税负不减反增的反常现象并不是意外,这种税负变化是长期发展可持续、可控制的。增值税和营业税并存的双轨税制正处在发展探索阶段,“十二五”计划以来我为实现软件服务行业的健康发展,财政部和税务局制定实施了18号文和70号文,不断加强税收政策方面的优惠制度和扶持力度,在“企业据实申请、财政分类扶持、资金及时预拨”的影响下尽可能的减轻税负对软件服务业的影响。软件服务业也要积极响应国家政策和法规,及时务实的向国家反馈市场经济税负变化和影响,在国家的制度方针下考虑企业发展,寻求新的发展机遇。同时“营增改”中对服务行业的进项抵扣范围也应该适当的扩大,增强增值税抵扣链条的完整性和科学性。解决企业增值税务的正规发票是当下解决软件服务业税负问题的可行措施。 五、结语 “营增改”的实施降低了现代技术服务业的流转税负,进而提高经济企业的盈利能力,发展运营能力和资金流转能力。为实现经济和服务之间更加融洽的转型和升级提供政策上的助力。然我国服务行业中改收增值税的政策税务模式仍处于初级阶段,在实际过程中要注意规避风险,设计融资方式,进而探索出一条适用经济市场发展和服务行业高水准的税务税收多极化途径。 作者:苏辉 单位:北京洛斯达数字遥感技术有限公司 软件技术毕业论文:计算机软件技术不可靠性思考 [摘要]近些年来,我国的科学技术得到了迅速的发展,尤其是计算机技术的发展。随着我国计算机应用水平的不断提高,在计算机软件方面我国已经有了很大的优势,但是随着社会的不断发展,计算机软件技术也开始逐渐显现出其弊端。 [关键词]计算机技术;软件技术;不可靠性 1前言 计算机软件技术是一项比较先进的技术,随着当今社会的不断发展,越来越多的领域都开始对计算机软件技术加以利用,对于软件技术的利用给人们的生产生活带来了极大的便利,但同时,计算机软件技术也有着一定的不可靠性。 2计算机软件技术及其组成成分 所谓的计算机系统,是由硬件系统和软件系统两个方面的内容所组成的,其中,软件技术就是指的计算机程序、规则和方法的稳定记载及计算机上运行时所必须的数据。从计算机诞生至今,人们对于软件技术的研究主要包括了以下几个方面的内容,第一是计算机设计语言、编译技术和操作系统,第二是实用程序、数据库技术、软件工具及其实现技术等等。对于软件技术而言,它大致分为了数据处理、过程处理、科学计算和人工智能几个大类,所谓的软件技术,就是将现实中的问题通过建立相应模型的方法,然后再针对相应的模型进行分析并提出解决方案,最后再通过程序的编制来对问题加以解决,最终通过计算机来显示预期的处理结果。一个计算机系统离开了计算机软件技术是不完整的,因为计算机各种功能的实现都必须要依靠软件,而这些功能软件都是在软件技术的基础上创造出来的。 3计算机软件技术的特点 3.1高技术性 对于一个计算机软件而言,在其创作过程中,必然是存在一定的组织性和程序性的,因此进行软件设计时,工作人员的分工也是十分有序的,而且他们的操作都十分的精密。除此之外,在计算机软件的设计过程中,往往还需要运用到一些高科技的工具,通过对这些高科技工具的利用,一方面可以使得工作的效率和质量得到提高,另一方面,也充分地保证了其精度。计算机软件也是一种科技的产物,它是随着科技的发展才得以诞生的,也是人类智慧的结晶,所以说在开发的过程中,难度也是相对较大的,而且其开发成本往往也较高,开发的周期相对较长,因此有着高技术性。 3.2强大的功能性 计算机的运行是离不开计算机程序的,计算机程序的设计不同于文学创作等,计算机程序的开发是具有非常大的价值的,因此对其进行设计必然要使其完成一定的功能。所以说计算机软件主要是用来为人们提供服务的,人们可以通过对其功能的利用来实现人们的某些目的。所以说计算机软件技术是有着很强大的功能性的,如果人们不能够通过软件来实现自己的一些目的,那么软件的存在就是毫无意义的。计算机软件的功能性主要体现在三个方面,第一是计算机的可执行性,简而言之,就是说计算机软件必须是在计算机能够处理和执行的条件下,才是有价值的;第二是计算机软件的序列性,序列性主要是指的代码化的指令序列、符号化的指令序列和符号化的语言序列;第三是计算机软件的目的性,计算机软件在其运行过程中,都必然是围绕着某一个明确的目标来展开的。 3.3互相渗透性 计算机软件是一个整体,通过计算机软件,可以充分地对人类的思维进行模拟,同时,计算机软件也综合了多种技术,它不但具有与文字相似的表现形式,同时还有这很强的使用性,所以说计算机软件实现了这两者的统一。相比于计算机硬件系统而言,软件更加地能够体现出人们的智慧,正是由于计算机软件有着诸多的优势,所以使得计算机软件技术成功地渗透进了许多领域,任何领域都可以通过对自身需求的总结和对计算机软件技术的利用来设计出相应的软件,来帮助人们完成相应的任务,实现相应的目标,一方面大大地节省了人力和物力,另一方面,也使得工作效率得到了大大的提高。 4计算机软件技术不可靠性的定义 要定义计算机软件技术的不可靠性,我们可以通过对计算机软件技术可靠性的分析来实现。所谓的计算机软件的可靠性,指的是在规定的条件下和规定的时间内,软件可以对用户下达的指令加以完成。根据计算机软件可靠性的定义我们可以看出要对一款软件的可靠性进行衡量,主要应该依据两个方面的内容,第一是指定的时间,第二是指定的条件。但是在软件的实际应用过程中,往往会因为各方面的因素使得软件不能够在指定的时间内或者指定的条件下来完成相应的指令,这就是计算机软件的不可靠性。正是因为计算机软件技术存在一定的不可靠性,所以也就出现了市面上许多的软件往往在其说明书中对其实际功能有所夸大,在软件的实际运用过程中,并不能够完全按照说明书来实现相应的功能。 5计算机软件技术的不可靠性分析 5.1系统危险 所谓的系统危险,指的是有可能会导致人员伤亡或者设备财产遭受损失的现象。随着我国当前计算机技术的不断发展,软件在各行各业中的使用频率也越来越高,在各行各业中所扮演的角色也越来越重要,虽然软件的使用可以带来极大的便利,但是由于计算机软件技术尚还存在着一些不可靠性,所以有可能因为软件的问题而导致整个产业系统面临着一些风险,使得系统工作不能够正常的进行。 5.2安全性风险 计算机技术与信息技术有着密不可分的关系,二十一世纪是一个信息化的时代,随着信息技术的不断发展,在软件运行的过程中,网络的安全就显得越来越重要。计算机网络的意义就在于提供给用户以相应的服务和信息资源,虽然网络的使用给人们的工作和生活带来了极大的便利,但同时网络也在通过一些软件来对人们的生活和工作造成一些不必要的负面影响。所以说当前计算机软件技术的不可靠性还体现在安全风险方面,在对计算机软件进行设计的过程中,如果没有相应的网络安全防范机制,就很可能使得软件用户面临诸多的信息安全风险,给人们带来一些不必要的损失,所以安全风险也是计算机软件技术不可靠性的一个重要内容。 5.3程序容易被篡改 对于计算机技术而言,硬件技术主要是对硬件所使用的材料进行研究,而一般硬件出现不可靠情况的主要因素也是硬件的老化或者损耗,因此一般而言硬件的失效主要都是一些物理故障,它是物体物理变化的必然结果,而且硬件也会出现浴盆曲线现象;但软件则不同,在软件的开发和使用过程中,软件是不发生变化的,不会出现像硬件一样的磨损和老化,更没有浴盆曲线现象的产生。但是由于软件的核心是其代码,如果代码被人为地进行了改变,软件就不能够完成其相应的功能,或者在完成功能的同时会使得用户的信息遭到泄露。软件在遭到篡改之后,十分容易造成一些数据错误,从而使得软件失效。 5.4人为影响较大 其实计算机软件技术的可靠性与硬件技术的可靠性也有着一定程度上的相似。比如说二者都是通过复杂的函数来对其缺陷和故障标准进行定义的,而且也都是通过运行来对自身的不可靠性加以发现,计算机软件技术的可靠性和硬件技术的可靠性都是系统在固定的条件下完成预定功能的可能性。在软件的开发过程中,实质上就是将开发者的思维转换为计算机语言,然后再编译成相应的软件,这是一个思考和创作的过程。软件的开发是以用户的需求为出发点的,然后通过设计师对于需求的分析和设计,最终将其通过计算机技术来加以实现。而在对软件进行设计的每一个环节中,都离不开人的参与,人的思维对软件有着极大的影响。但是往往由于人类认知和知识水平的有限,所以说在软件的开发过程中,难免会出现一些遗忘和不合理的情况,所以说就使得设计出来的软件不能够完成预期的功能,进而使得计算机软件技术的不可靠性增大。正是由于对软件技术的利用过程离不开人的参与,所以也就使得软件技术在很大程度上都会受到人为因素的影响,使得计算机软件技术具有不可靠性。 5.5软件界面不合理 一个实用的软件除了能够在指定的时间内和指定的条件下完成用户的指令之外,还应该有着直观和舒适的操作界面,因为它关系着人们的工作效率,如果软件的界面设计不合理,那么其操作就会变得十分复杂,甚至于在短时间内用户还不能够对软件的功能有一个全面的了解,这就极大的影响了人们对于软件的使用,给用户的使用带来极大的不便,使得计算机软件技术的不可靠性增加。 6计算机软件不可靠性产生的原因 6.1软件差错 软件技术的可靠性主要就是指的软件在使用过程中的安全性、可靠性、稳定性和流畅性等等,如果软件在运行过程中缺乏了以上特性,就说明其具有不可靠性。软件技术之所以会产生不可靠性,主要就是因为软件中的差错引起了相应的软件故障,而所谓的软件差错,就是指的在软件的开发过程中,由于开发人员的疏忽所导致的人为错误。比如说对于用户需求分析的错误,软件设计者没有很好地理解用户的真正需求,因此所开发出的软件必然是不能够被用户正常使用的,因而就导致了不可靠性的产生。还有就是测试错误,在软件的测试阶段,往往也会因为测试对象选取的错误而导致软件差错,最终使得软件具有不可靠性。 6.2缺少相应的评审机制 为了使得软件能够更好地满足用户的需求,软件的开发工作必须是按照一定的顺序和流程来进行的,如果不按照相应的顺序和流程来开展工作,就很容易使得所设计出来的软件不能够满足用户的需求。因此在软件开发的各个阶段,都必须要按照一定的评审机制来对软件进行评审,从而保证软件开发是朝着正确的方向在前进。但是当前的软件开发往往是缺乏相应的评审机制的,许多的软件开发仅仅是在初步设计阶段和最后的测评阶段有相应的专家参与,而在开发过程中是没有相应的人员参与测评的,所以也就使得软件产生了不可靠性。 6.3软件质量监管不严 当前我国对于软件质量的监管还不是很严,所以就使得许多功能不完善的软件流入市场,许多软件生产商都是在软件被人们广泛使用后才逐步地对其软件所存在的问题进行修复。由于缺乏严格的质量监管体系,也使得软件技术的不可靠性得以存在。 7结语 计算机软件技术在我们的生活中发挥着越来越重要的作用,所以说我们必须要对计算机软件技术的可靠性引起足够的重视,尤其是当前我们正处在一个信息化的时代,信息的安全与否关系到每一个人,而当前人们对于软件的使用频率也越来越高,所以说必须加强各种软件的可靠性,避免计算机软件的不可靠性,使得计算机软件技术能够更好地服务于人类。 作者:杨云卿 单位:渤海大学软件与服务外包学院 软件技术毕业论文:嵌入式系统低功耗软件技术分析 摘要:嵌入式系统分析的时候,最重要和最关键的就是功耗问题,想要保证有效降低功耗,应该从系统角度来分析嵌入式系统问题,低功耗嵌入式系统不但需要硬件设备的保证,也需要系统软件技术的支持,合理优化配合系统软件和硬件技术,才能达到真正降低嵌入式系统功耗的目的,本文主要分析了嵌入式系统低功耗软件技术。 关键词:嵌入式系统;低功耗;软件技术 一、嵌入式系统功耗问题概述 目前,不断发展计算机技术,开始广泛应用嵌入式系统,越来越高要求系统功耗问题。在嵌入式系统中应用电池供电的便携设备,因为是有限的电池存储量,不能持续为设备提供电量。一般来说,为了能够具备比较高性能,需要合理安置高性能CPU,依据实际运行规范,适当提高外围设备数量,会降低系统功耗,衡量嵌入式系统性能的关键就是低耗能,为了能够具备最平衡的高耗能和高性能需求,在符合系统实际运行性能要求基础上,尽可能降低系统耗能,从而确保可以长期运行系统,从软件和硬件两方面分析系统节能问题[1]。 二、嵌入式系统低功耗软件技术设计 (一)应用软件编写的节能设计。 第一,中断替代系统中查询。系统简单应用中,不管应用哪种程序方式都不会出现很大差异,差别大的就是消耗功率。中断方式处理系统中,中央处理器可以不做任何事,或者能够直接进入到等待或停止模式;如果是查询形式,需要中央处理器不断访问I/O寄存器,出现额外功率。第二,代替子程序。设计人员都知道,相比较读RAM来说,读Flash消耗功耗比较小,因此,在设计CPU的时候,RAM会展现低功耗性能,但是仅仅只能一次调用子程序,子程序进入到CPU以后,会暂时存储中央处理器寄存器,离开系统的时候,CPU会弹出寄存器,此时至少需多次操作RAM,因此,设计人员在设计程序系统的时候,利用宏来代替子程序来。设计中是在子程序、还是宏上调用系统没有很大区别,但是编译的时候会依据中央处理器进行实施,避免调用子程序,但是最重要的就是增加代码数量,上述方式可以适当降低系统功耗[2]。 (二)应用程序编译的节能设计。 第一,降低冗余代码。处理器处理系统时候消耗30%能量就是cache消耗的能量,此外,如果不能命中cache的时候,会交换内容,所以,外部总线被驱动的过程中会增加能量,编译程序的时候适当降低冗余代码,会极大程度降低cache活动,以便于达到降低系统功耗的目的。第二,优化I/O功耗技术。系统中比重中,驱动I/O端口需要的能量在整个系统中具备极大比重,因此,为了能够降低系统耗能量,应该适当降低应用驱动I/O端口次数,也就是依据编码设计技术来不断降低和压缩I/O数据,从而达到降低I/O频率的目的。优化和分析应用程序存储局部性访问性能和交换总线地址活动性质的时候合理应用编译器,从而达到编译编码的目的,此外,还需要系统硬件具备一定解码作用。在分析系统程序的过程中,不断优化局部高频数据性能,从而降低操作访问系统频率和次数,不仅可以降低系统功耗,还能为系统运行提供能量。 (三)硬件低功耗节能技术。 第一,DPM。动态管电源管理(DynamicPowerManagement)可以依据嵌入式系统实际运行情况来适当关闭不需要的系统设备,如,硬盘或者显示器等,第二,依据系统运行实际负载来合理调整总线频率和中央处理器波率。目前,已经具备完全智能化的管理动态电源方式,在没有人为原因接入和干扰的前提下,能够快速转换系统运行速度,一般每秒能够实施几百次,从而能够达到节能的作用。第三,APM。高级电源管理(advancedPowerManagement)主要就是用来为系统提供BISO管理电源机制,在开发系统的时候适当把硬件编程接口加入BISO中,能够成为沟通操作系统和主办的重要枢纽,建立APM-BISO,上述方式能够依据实际情况来有效合理调整系统自身硬件耗能[3]。 结语 总之,由于不断发展微电子技术,嵌入式系统开发中低耗能成为重要问题,从应用程序编译的节能设计、硬件低功耗节能技术、应用软件编写的节能设计三方面分析优化系统功耗问题,尽可能降低系统功耗。 作者:付强 单位:北京信息职业技术学院 软件技术毕业论文:嵌入式软件技术的现状与发展 摘要:本文主要就嵌入式软件技术特征和发展现状进行分析,然后结合实际对嵌入式软件技术的发展方向进行探究。 关键词:嵌入式软件技术;特征;现状 一、嵌入式软件技术特征概述 嵌入式软件主要是针对嵌入式系统来说的,而这一系统也称为是以应用为中心,对于这方面的系统主要涵盖着外围硬件设备以及嵌入式微处理器和嵌入式操作系统、应用软件系统几个部分。嵌入式的软件主要是在一定技术下把操作系统以及其他开发软件嵌入到硬件中,从生产过程层面来看主要就是先实施芯片开发,然后对嵌入式系统软件加强设计,最后再进行嵌入式电子设备制造当中,而在嵌入式系统方面主要是独立运行的计算机系统[1]。在嵌入式的软件系统方面主要是强调着以应用作为基础,然后对软硬件的协调比较重视,在这一基础上才能够将预定的计划得以完成。从嵌入式软件技术自身的主要特征层面来看,在实用性以及灵活性上有着显著呈现。灵活性特征是因为这一软件技术能够随时性的开发,由于软件的小巧所以能比较方便的嵌入到计算机系统中,对其功能不会造成相应影响。 二、嵌入式软件技术现状分析 从当前我国嵌入式软件技术的发展过程来看,在当前还有着诸多挑战,这就需要这一技术能够结合多方面的发展需求进行创新改变。当前我国的科学技术发展的速度比较迅速,在嵌入式这一软件方面已经有了广泛应用,对人们的工作生活以及学习等都提供了方便[2]。网络技术下嵌入式软件的自身优越功能以及在操作系统作用下,能够为小型电子设备的低成本以及小型化目标的人机界面交流提供了技术层面的支持。在对嵌入式软件技术的应用层面主要是在软件应用和系统开发层面有着重要体现。从嵌入式软件的应用领域来看,在通信工程以及消费电子和工业生产等方面都有着广泛应用。通信工程方面主要是智能手机以及全球定位系统等;在消费电子方面则主要是数字电视以及数码相机、家庭网关等层面;在工业生产方面则主要是数控机床以及制造工厂等层面。除此之外在金融交易以及医疗卫生和交通运输等方面也有着比较广泛的应用。 三、嵌入式软件技术发展态势思考 3.1无线网。 嵌入式软件技术的广泛应用也说明在作用发挥层面比较显著,为能够对国际市场竞争态势有效应对,就需要对嵌入式软件技术进行升级。其中在无线网的操作系统发展上已经逐渐得到了应用,在以后的发展过程中,移动通信网络能够在丰富的多媒体数据业务上进行提供,并且在支持功能上和更多的移动终端设备上也比较突出。为能够将第三代移动通信系统优势得到有效发挥,在无线网的操作系统开发研究上就加大的力度[3]。在嵌入式设备的不断发展以及网络发展需求的加大下,无线网的技术应用就会成为嵌入式软件的重要发展方向,当前的EPOC就是比较稳定的无线操作系统,其主要是通过C++进行编写的,然后应用全面向对象设计方法对低端智能电话到全功能个人通信器要求能得到有效满足。 3.2人工智能。 由于嵌入式软件技术的开发应用主要是对人们实际需求满足而存在,所以这就需要根据人们的需求变化及时地进行升级改造,将服务性这一特征充分体现。在人工智能的技术下就能够对实际的需求得到有效满足,在和嵌入式软件技术得到有效结合下,能实现人机交互这一目标,并能够最大范围地将嵌入式软件技术得以应用。在医疗卫生领域中的人工智能技术和嵌入式软件技术的结合应用相对比较突出,在具体应用过程中就能有效减小对你患者的伤害。人工智能技术的应用在今后将会成为必然发展趋势,例如在生活中的智能仪表以及自动控温等仪器都是人工智能技术的呈现。 3.3网络互连。 为能够将嵌入式软件技术分布处理结构对上网的需求得到满足,就需要配备标准的多网络通信接口,新一代的嵌入式设备也需提供相应通信组网协议软件以及物理层驱动软件。从以往的单片机技术的情况来看,对当前的实际需求已经不能有效满足,而在新一代嵌入式软件层面的发展就很好解决了这一问题。嵌入式处理器能够在内嵌网络接口上对TCP/IP协议有效支持,同时在USB等通信接口方面也能够支持,在新的嵌入式技术方面对通信网的协议和物理驱动软件都能够具备就能方便的上网,同时也能有效满足诸多移动用户设备的上网需求。随着我国的网络技术的进一步发展,对嵌入式软件技术的优化也会使得人们的工作生活等方面更加的方便。 四、结语 综上所述,随着当前我国科学技术的发展,一些比较先进的技术在实际生活中已经得到了广泛应用,其中在嵌入式的软件技术发展方面,这是PC时期计算机最为普遍的应用形式。在迅速发展的信息化时代,单纯的计算机机器对人们的生活以及工作需求得不到满足,所以采用嵌入式软件技术和系统就能从很大程度上满足实际的应用需求。 作者:高立军 单位:北京信息职业技术学院 软件技术毕业论文:计算机支持的协同工作软件技术探究 【摘要】 所谓计算机支持的协同工作软件,就是利用网络环境以及先进的计算机技术为人们创造出一种协同工作环境,在这一工作环境下,人们可以开展深度合作,共同研发某个新产品或者是开发某个新项目,有效提升工作效率,本文对计算机支持的协同工作软件进行概述,并分析了计算机支持的协同工作软件技术。 【关键词】计算机支持 协同工作软件技术 研究 1前言 随着社会经济的发展,人们的生活、工作脚步不断加快,开展任何工作时都讲求效率,在这种形式下,计算机支持的协同工作软件应运而生,该技术的应用能够加强各个部门以及工作人员的之间的联系,形成一种协同的工作环境,为工作伙伴之间的交流合作合作提供支持,对于提升工作质量和效率具有重要意义。 2计算机支持的协同工作软件概述 首先,该软件具有灵活性的特征,可以根据实际需要随之增加或者减少参与者,软件整个结构表现出较高的灵活性,产品研发过程或者是项目开发过程的每个环节都以动态化的方式进行,设备的使用、任务的调整以及成员之间的相互协调都是一个动态过程;其次,该软件具有交互性的特征,就是说系统并不支持一个人使用群件,群体内所有成员必须进行交互;第三是具有异时性的特征,群内成员进行交互操作的方式有两种,一种是同步方式,另一种是异步方式,同步方式很好理解,就是进行交互的成员同时在场,实时沟通,而异步操作则不要求进行交互的成员同时在场,只需要在规定的时间段内即可,因此这种方式的灵活性较高,尤其是协调国际群体时表现出独特优势[1]。 3计算机支持的协同工作软件技术研究 3.1技术层次划分 将协同软件按技术层次划分主要有以下几点:首先是群组通信,通信方式由原来的一点到一点向着多点到多点的方向转变,就是可以将一台或者几台计算机中的数据同时传输到协同环境中的所有计算机中,这种方式提升了数据传输效率,实现群组内信息共享;其次是分布式对象技术,计算机集合体是构成该系统的基础,这些计算机共享网络资源,同时计算机与计算机使用者相互协作,为实现某个目标共同工作。分布式对象技术能够同时面对多层客户端,在客户端以及服务器的中间产生了中间层,在这种软件体系中,客户端可以从系统中分离出来,系统的扩展性大大提升,可以根据实际需要灵活伸缩,能够实现对整个工作过程的集中控制。系统可以为所有对象提供服务,各个对象之间也可以相互提供、享受服务,也就是说所有的对象都有两个身份,一个身份是用户,另一个身份是服务者,与原有的体系结构相比,这种结构具有更高的灵活性,所有对象之间能够实现透明访问,提升信息的利用率[2]。第三是面向服务,随着信息技术的发展,各个企业计算机应用系统的界限越来越模糊,协同软件的功能不再局限于公文管理层面,还包括对工作人员、财务以及业务流程等多方面的管理,这就要求协同软件能够与企业的管理系统有效融合起来,形成一种面向服务的体系结构,该结构属于一种组件模型,它能够实现各个服务之间的无缝对接,使用统一的方式进行交互,SOA就与该组件的思想一样,用户可以根据自己的需要调用其中的程序,建立属于自己的软件应用功能,满足协同软件管理的需要。 3.2协同方式分析 计算支持的系统软件中的重点技术就是协同方式,我们可以根据群组成员之间的协作程度将协同方式划分为以下几种:首先是角色协同,这种协同方式主要涉及到两个技术要点,其一是要为所有协作成员之间建立协作场景,每个成员都可以与场景进行信息交换,各个写作成员之间也可以直接进行信息交换,我们将其称之为群体感知技术;其次是要对所有成员的协作行为进行控制,除了加入和退出行为以外,还要消解冲突,我们将其称之为协作控制技术,上下文技术的兴起就为这两项技术提供了支持,将所有感知到的信息建模并分析,形成一种更加完整的感知环境。其次是信息协同,开展协同共组时,人们需要传递并分享自己掌握的信息,这些信息的格式各异,因此就需要系统能够共享不同数据源的信息,避免出现信息孤岛现象,比较常用的就是扩展标记语言技术,传递信息的过程中要使用统一的语言标准,同时可以对数据进行处理和显示,因此技术性程序也完全可以应用,由于该技术的基础是文字,因此即使是非技术性人员也很容易就能理解其中内含。最后是流程协同,就是强调业务流程的协同性,整个过程要依赖计算机系统,系统会自动记录流程中的每个任务,并根据任务的内容和难易程度做出自动协调,主要是应用工作流技术,目前该项技术仍旧处于进一步发展之中,一方面,工作流技术将不断扩大应用范围,将更广泛的发挥自身的协调功用;另一方面,工作流技术将不断改善自身缺陷,以更加灵活的方式为人们解决现实问题[3]。最后是计算协同,数据计算也是协同工作软件中的重要技术,它能够帮助人们的在短时间内完成复杂的计算,得到精确的计算结果,为数据的应用奠定基础。实际上到目前为止对于网络计算并没有一个统一的定义,其本质是将网络中的虚拟化资源联系起来,从而加快程序的应用速度,分布式计算是计算协同的核心,所有用户可以将整个网络结构当做一个巨型计算机,享受计算协同服务,该技术具备很强的数据处理能力,同时能够有效利用网络中的闲置处理能力,进一步加快处理速度。 4结语 协同软件为人们开展协同工作提供了技术上的支持,该技术将网络环境作为基础,可以建设出一种协同工作环境,促进工作之间的交流和合作,人们可以向协同环境中获取自己需要的信息,同时也可以将自己掌握的信息分享在协同环境中,提升信息的使用效率,进而提升工作质量。 作者:何松林 单位:浙江理工大学 软件技术毕业论文:软件技术实践教学质量研究 【摘要】 高素质、高质量的专业人才,对社会企业快速发展起着决定性作用。高校软件技术的专业实践教学尤为重要。高质量的实践教学才能培养出高质量的软件技术人才。如何拥有好的高质量的实践教学效果,是目前最困扰高校软件专业教师的问题。在软件技术实践教学中,教师自身素质的高低,教师专业技能的高低,教师课堂的把控能力以及教师运用教学方法的能力,都决定实践课堂的教学质量。 【关键字】软件技术;实践教学;教学质量;教学方法 0引言 未来的经济繁荣、社会和谐都有赖于人们的良好教育。高素质、高质量的专业人才的培养,对社会的发展起着决定性作用,没有专业技术性人才的支撑,社会的发展就会停滞不前,所以专业技术性人才在整个社会体系中显得尤为重要。高校实行的是专业性很强的高等教育,高等教育是大学、文理学院、理工学院和师范学院等机构所提供的各种类型的教育,包括专修科教育、本科教育和研究生教育。也就是说,高等教育,培养出来的是专业方向很强的高等技术性人才。目前,我国受到社会对高等教育强烈需求的影响和高等教育改革潮流的有力驱动,高等教育已非常清晰的展现在人们面前,那么人们对高等教育的教学效果和教学质量就尤为关注。对于软件技术专业,要培养出能适应社会,能满足社会的软件专业人才,高质量的实践教学是重要的途径。高校软件技术专业之间的竞争也愈加激烈,对于软件技术专业,提高专业技能的教学,提高教师的教学能力,提高课堂教学和实践教学的质量,是专业发展的重中之重。在这种优胜劣汰的形势下,如何推进软件专业教学改革,提高专业教育的质量,更好的为社会服务,是该专业亟需解决的问题。实践教学的质量起着关键性作用。 1软件技术专业教师自身的责任心和耐心 教师既是知识种子的传播者,又是文明之树的培育者,是年轻一代健康成长的引路人和光辉典范。教师在工作中需要足够的耐心和责任心。教师的责任心和耐心是体现平凡而严谨的教学生活中的,一个人要干好自己的本职工作,就要有高度的责任感,教师的责任心不是表现给别人看的,而是让自己无愧于教师身份的!教师作为“人类灵魂的工程师”,不仅要教好书,还要育好人,各个方面都要为人师表。教师的责任心和耐心是构成对学生影响的最现实的因素之一,它不仅影响着学生学习状况及其效果,而且影响着学生人格等心理品质的形成和心理健康的发展水平。因此,教师要胜任教育工作首先自身应具备良好的职业责任心和耐心,其中包括“爱岗、敬业、严谨、奉献”,要有个人的职业操守。“教书育人”首先要“育己”,只有自身成为一个道德高尚、有着美好情操、真正从感情上关心学生的老师,才能赢得师生的尊重,才能胜任教书育人的工作。责任心和耐心是教师品德的核心。责任心和耐心对任何人来说都是不可推卸的,对教师的尤为重要。然而,教师对于自己所承担的责任意识和自觉的程度是不同的,在对待教学和学生,有的教师忠于职守、尽职尽责,有的教师却消极怠工、得过且过,这其中就反映出了教师的工作责任心的强弱。很显然,教师养成了高度的责任心和耐心,对学校,对同事,对学生都是非常有利的。责任心和耐心的强弱,能够反映一个教师的品德优劣,也能反映一个教室是否高尚的人格。 2软件技术专业教师自身专业知识和实践能力 教师不仅应是“传道、授业、解惑”的严师,而且更应是拓展心灵智慧的人师。教师除了具有很高的责任心和耐心,还应该提高自身的知识结构与专业素质,要有丰厚的专业知识和专业能力。高校教师,不仅要求对自己所教学科的专业知识有深入透彻的了解,还要了解学科的知识架构体系、发展方向,还应该知道学科专业知识在社会企业的应用实践和扩展引用,以及如何将这些信息传递给学生。这就要求软件技术专业实践教师在专业领域的学习要持续不断、日积月累。 2.1实践指导教师要加强自身学习,潜心于教学,积极进行教育教学研究,不懈地追求新知识和教学的新境界。 面对新课程,面对新专业知识,要不畏缩的去探究和学习,将自己对知识的理解进行转化,转化成如何能让学生轻松的接受并掌握应用的信息。“三人行,必有我师。”多向其他教师请教和沟通。 2.2实践指导教师在教学过程中,逻辑思维要清晰,对所教授的知识的结构体系要熟悉和准确,讲解要简练、通俗和生动,有启发性和感染力。 所以教师讲解语言表达能力,是教师教学的最重要的基本功。如果表达不善,即使自身对专业知识非常的熟知,逻辑思维再强,也很难教好学生,让学生很好的掌握知识。对专业知识要足够的准确,不能含糊,模棱两可。在实践教学中,对学生在实践中遇到的问题,要有足够的耐心去讲解,让学生真正做到学以致用。 2.3实践指导加强沟通,注重教学效果,灵活应用教学技巧和教学方法。 教学的目的在于取得良好的教学效果,而教学效果评价的主体是学生。教学方法是实现教学目的和完成教学任务的手段,不同的教学目的和任务,要求运用不同的教学方法。任何教学方法都是为一定的教学目的和任务服务的。教师必须注意选用与教学目的和任务相适应并能实现教学目的和任务的教学方法。教学目的和任务是通过教学内容来实现的,教学内容的性质和特点不同,就应选用不同的教学方法。只有选用的教学方法与教学内容的性质和特点相符合,才能使教学内容发挥出更大的效益。否则只会适得其反。教学对象的年龄、性别、经历、气质、性格、思维类型、审美情趣等的不同,也对教学方法提出不同的要求。只有选用与此相适应的教学方法,才能真正有效地提高教学对象的知识能力和思想水平,促进其健康向上的发展。教师自身的素养条件和驾驭能力,直接关系到选用的教学方法能否发挥其应有的作用。教师应对自身素养及所具备的条件实事求是地进行分析,根据其特点和条件选用恰当的教学方法,以扬长避短。哪怕别人行之有效的方法,也不可盲目照搬,这样才能确保教学方法运用自如。每种教学方法都具有不同的特点与功能,教师应认清各种教学方法的优缺点,把握其适应性和局限性,或有所侧重地使用,或进行优化组合,不可盲目地选用教学方法。教学方法的选择与使用,体现着教师的智慧,标志着其教学艺术水平的高低。 3实践教学指导教师课堂组织管理能力 课堂组织管理能力是指教师对课堂教学中各种要素进行调控,使教学得以顺利进行的能力。而教师要想对课堂教学进行有效的组织与管理,就必须有按照教学设计实施教学方案的能力,有序实施、营造课堂学习气氛、调动学生积极参与教学和控制课堂教学的节奏。课堂教学是一个双向活动过程,应营造一个宽松和谐、兴趣盎然的学习氛围。教与学必须有一个和谐课堂步骤,形成一个完整的教学步骤来实施素质教育,使学生学得积极主动,真正成为课堂学习的主人。达到有效教学,创设情境,形成问题,使学生愿学。情境的创设关键在于情,以情激境,以最好的境、最浓的情导入新课,形成问题。要完全的掌控课堂,教师要认真研究教材,吃透教材是教师进行有效课堂教学的立足点。除了教学的重点,难点的把握,教师还应该考虑到教材的重组与知识的延伸;仔细推敲教学方法,多种教学方法灵活综合应用;有针对性的设计课堂教学案列和实践练习。教师在整个教学过程中,时刻做好学生学习活动的组织者、合作者、引导者和鼓励者。 4结束语 高质量的实践课堂教学是有效的。有效的实践教学是建立在教师高度的责任心和耐心上的;有效的实践教学应引导学生积极、主动地参与;有效的实践教学应使教师与学生、学生与学生之间保持有效的互动;有效的实践教学应该使学习者形成对知识的真正理解。教师要时刻提高自己的责任心和耐心,保持对教育工作的严谨态度,真正把教育教学工作当作事业,而非职业。教师要有用自己丰富知识和智慧去完成自身所肩负的使命的责任感和完成使命后的成就感、自豪感。只有这样,高质量的实践教学才有质量,培养出来的学生才能掌握专业技能而为社会所需要。 作者:郑蕾 单位:广西国际商务职业技术学院 信息工程系 软件技术毕业论文:传感器原理与计算机软件技术结合 摘要: 计算机技术在飞速发展,计算机软件也随之被广泛的应用。软件技术比硬件技术有着更大的发展空间,并且还有广泛的发展领域。人们最为重视的是应用软件技术,现在非常流行的硬件技术是传感器技术,而其经过计算机软件的开发和结合,使传感器的功能有了进一步的发展和优化。基于此,重点对传感器原理与计算机技术的结合进行了分析。 关键词:传感器;计算机软件;应用范围 现在物联网正在快速的发展,物联网中一项较为重要的技术就为传感技术,有效的对传感器原理进行应用可以制作出多种感知世界的物品,并将自然界中存在的终端转变成物联网的客户端点。有效的对传感技术进行应用可以准确识别物品,之后再经过计算机技术互联网对物品进行信息采集,使物联网中的数据管理系统得以构建。本文依次介绍了传感器的原理和实际的应用,之后通过计算机对传感器的编程进行了分析。 1传感器概述 1.1传感器概念 传感器与我们的感官非常类似,通过感觉器官对外界的一切信息进行有效感知,然后将这部分信息按照相关规定协议对其进行修改,从而将其转变成能够有效使用的信号装置。并且将现阶段使用的模拟信号转换成电子信号,这就是我们说的模数变换过程。一般由感官和信号交换两部分组成,其中感官就是传感器的末梢,还有一类是将这两部分进行结合起来的。 1.2传感器分类 传感器可以应用到所有工业产业及相应电子产品开发中,按照传感器的工作原理对其进行相应的分离。例如,按照物理工作原理可分为光学传感器、力学传感器及声学传感器等。而按照化学反应可将其划分为化学传感器;依据感应功能进行区分,可以分为基于酶、抗体、激素等和生物类相关的传感器;而按照传感器的相关使用功能进行划分,可以分为热敏、光敏、气敏、力敏、磁敏、湿敏、声敏、放射线、色敏和味敏等十大类元件传感器。 2传感器应用 随着信息化时代的到来,使半导体技术得到迅猛发展,将先进的信息和科学技术灌输到传统的工业生产中,使其具有新的活力和生机。而使用半导体技术能够有效地使各类型传感器进行单独工作,成为一个独立的个体,并且对其周围环境参数进行相应的检测,在很多领域,自动化系统都得到了广泛的使用。例如,在煤矿生产的控制系统中,使用传感器对矿井周围的环境中气体参数进行监测,能够在一定程度上对煤矿安全生产做出保障。 2.1传感器中计算机技术的应用 计算机软件水平促进科技发展得到有效提升,并被应用到很多方面中,计算机软件技术包括软件开发及嵌入式软件开发,而软件开发中也包含了对处理器单片机及相应程序。软件开发结合实际应用才能发挥其意义,用户结合实际需要开发出的计算机程序有更高的工作效率,可以让人们顺利进行生活。有效把传感器原理结合到计算机技术当中,就可以通过单片机的应用来对传感器进行读写,以往使用的传感原件就是利用热敏电阻感应来降低热敏电阻值,然而在后续环节中需要对信号进行相应的处理,而热敏电阻不具有良好的稳定性,不能对温度的变化进行准确的测量,对整个系统的精度也不能进行有效检测。 2.2传感器应用范围 如今我们身边无处没有传感器,常见例子就是温度计。温度计可以用来感知人体的温度,在温度上升到与人体温度相同时就不再变化。我们人体的温度可以通过温度传感器感受,当温度达到一定的时间后将不再发生变化,电子温度计将对这时的温度进行显示并且语音提示。把传感器应用到汽车运行中将会有很大的作用。在发动机上应用温度传感器,不但可以显示当前温度,汽车的中心控制还可以接收传来的温度信息,对喷油量进行控制;排气前段有氧传感器,汽车废气中的氧气分数信息可以通过传感器感知,中心控制接受信息后调节发动机,让发动机正常运作,并在利用率得到最大发挥的基础上控制尾气排放;流量传感器能够将一些流量信息传输到中心控制器中,再由中心控制器把其转变成最恰当的压力和流量状态。 3计算机技术编写传感器技术 温度测量是较为常见的应用。具体生产工艺过程中对温度控制的要求非常的高,如电子产品。计算机在应用CPU进行温度监测时,当温度不在规定的范围时将会及时发出报警信号,在生产工艺中对温度控制有严格的要求,很多电子产品有较高的温度环境要求,器件在正常工作中也要有适合的温度,如计算机对CPU有检测温度的功能,当温度超出规定范围时就会报警,23℃~25℃是一般机房所要求的环境温度。机器中的马达控制器在温度方面也有要求。通常情况下温度传感器都会被当作成计算机软件的参数控制计算机的程序流向,在工业上有着很大意义。LM75是美国国家半导体元件公司生产的,有广泛的应用,其芯片由温度感应、模数变换和通信接口三部分构成。针对将温度值在数码管理上显示的问题,笔者应用C语言编程进行了相应的举例,代码如下://主程序:逐一获取温度Voidmain(){intt;SysInit();for(;;){t=LM75A_GetTemp();DispClear();DispTemp(t);Delay(1000);}}通过LM75传感器进行编程,可以在温度升高时发出报警,而MCU则是根据自己获取到的信息来对报警范围进行设置,在温度超出设计范围之后就会发出报警提示。 4结语 传感器技术是高新技术,所有国家都关注其发展。传感器在网络技术过程中表现出了巨大作用,为了让传感器技术有更广泛的适应范围,应该从多方面进行创造。应用传感器技术可以使感知能力比感官能力更高,所以,我们生活当中经常会发现传感器技术的存在,其成为环境检测、普及物联网和自动化工业中的一员。本文对传感器原理进行了相关介绍,而且还进行了传感器的编程举例,把传感器原理和计算机软件技术进行了有效的结合。 作者:薛军 单位:常州机电职业技术学院 软件技术毕业论文:计算机软件技术不可靠性探析 随经济的迅猛发展,计算机技术发展也越来越快,特别是计算机软件技术,发展的势头愈发强劲。计算机软件技术具有操作方便、适用范围广、灵活性强等优势,越来越受到人们的喜爱。但近年来人们逐渐认识到计算机软件技术的安全性问题,业内人员注意到了计算机软件技术的不可靠性,下面就简单介绍其不可靠性以及一些简单的解决方法。 1计算机软件技术概述 计算机软件技术涉及到的内容较多,但通常我们将计算机程序、方法以及计算机运行时所需的各种数据统称为计算机软件技术。如上所述,计算机软件技术一种较为先进的技术,对于当今世界的发展具有重要意义,同时又因其具有操作便捷、运行速度快、适用范围广等特点而备受现代人们的喜爱。计算机软件技术分类的方法较多,但我们常将其分为科学计算、数据处理、过程控制以及人工智能等几个部分。计算机软件技术是计算机实现其功能目标的保障,如果没有计算机软件技术,那么计算机就和普通的机器没有区别。如今是一个技术发展迅速的时代,在这种环境背景下要想充分发挥计算机软件技术的优势,就应加大对计算机软件技术专业人才的培养力度,提高计算机软件技术人员接受新知识、新技术的能力。 2计算机软件技术的不可靠分析 随着社会科学技术水平的不断发展,计算机软件技术也取得了较大的发展和进步,但是在其发展进步中,难免会存在一些不可靠性表现,下面具体分析一下其不可靠性。 2.1计算机软件的可靠性定义 近年来,计算机软件技术取得了较大的发展,同时我国的信息化建设工作也逐渐趋于正规化和规范化,软件产业成为促进我国经济和科学技术水平快速发展和进步的支柱型产业。在学术界,将计算机软件的可靠性定义为能对软件性能、工作效率等内容进行详细描述和评价的标准。即我们所说的,在一定的环境下、一定的时间范围内,使用计算机软件而不会引发系统故障的概率。随着计算机软件技术的推广,如何确保计算机软件的可靠性成为人们关注的重点问题。根据计算机软件技术的特点,我们发现要想提高计算机软件技术的可靠性主要还是应该做好软件开发工作。 2.2计算机软件技术的不可靠性表现 我国软件技术发展一直备受关注,也制定了许多相关政策对其发展给予一些必要指导和帮助。因此我国软件技术与产业在近年来发展势头良好,进步较为稳定,但是与全球软件行业发展的程度来看,我国计算机软件的发展依旧存在诸多问题。 (1)计算机软件技术与计算机硬件技术不同,计算机硬件技术问题的产生主要是因为硬件材料的性能决定的。计算机硬件技术的科研重点就是解决硬件材料问题,从而增加硬件的使用寿命;计算机软件技术不存在磨损问题,也不存在使用寿命问题,计算机软件技术的问题主要是软件程序的稳定性问题。在使用计算机软件技术时最常出现的问题就是软件程序问题,程序一旦出现问题,如果处理不当就会使软件失效。而软件技术工程师在开发软件时很难预测到软件程序会出现问题,这就增加了软件技术开发的难度; (2)软硬件技术的可靠性一定程度上存在很大的相似性与互通性。两者同样运用复杂的函数作为定义缺陷和故障的标准。但计算机软件和硬件技术还是存在很大的差别性。软件技术开发过程是一个“思考创作”的过程,主要是以用户的需求为基准,通过建模、编程等步骤解决用户的问题。这一过程,主要是人的思维能力和创新能力的一种体现。但由于是人的思维过程,一定会存在思考不到位的情况,致使计算机软件技术存在漏洞和不合理性。这些漏洞和问题有的可以在软件测试阶段被检测出来,有的却难以被发现,只能等到用户使用过程中才会被发现,而一旦出现了这些问题就会造成软件失效或崩溃; (3)计算机软件与计算机硬件在技术维修方面存在差异,计算机硬件的故障主要集中在硬件系统方面,这些故障往往都是属于可维修的故障,有解决问题的方法。但计算机软件系统一旦受到破坏就很难维修,一般只有通过重新设计软件才能解决问题。 3解决计算机软件不可靠性的对策 针对上文介绍的计算机软件技术不可靠性的表现,下文将具体介绍一些解决对策,以解决计算机软件的不可靠性。 3.1减少软件出错 当软件出现差错时,引起软件故障,降低了软件可靠性,而致使软件出错的主要原因是人的原因。因此,在软件开发过程中应做到下述几点。第一,要确保软件开发人员的专业素养水平;第二,对于语法错误等技术性问题必须严格注意。此外,当计算和计划错误的时候,软件开发人员要进行认真的思考,直到最后版本等内容完全一致,还要学会分析工程的实际情况,做好材料的选择。 3.2注意软件的评审工作 计算机软件开发中,工作人员并未参与其各阶段的评审工作,因此有时会产生各种各样的问题,为了各阶段都符合相关要求,避免跨越阶段现象的出现,要在软件开发的各个阶段组织测评工作,确保软件开发的准确性。评审人员要包括设计师、管理者等全体人员,保证专家评审的质量,这对提高工作质量有很大帮助。对评审组来说,主要工作就是对设计师提交的软件文档是否符合要求进行审核,通过专业人士的管理,对计算机硬件进行更好的维护,保证计算机软件的更深层次发展。 4总结 随着计算机软件的迅猛发展,对其可靠性有了更高的要求,我国计算机软件产业有了长久且稳定的发展,但是仍然存在一些不可靠性问题,为了更好的解决计算机软件技术不可靠的问题,需要各个方面的不停努力,不断在研究中发展进步,从实践中总结经验,吸取教训,获得更多技巧与经验,保证计算机软件技术可靠性的提升,促进计算机软件技术的更好发展。 作者:张军猛 软件技术毕业论文:气象信息计算机软件技术的运用 1气象业务的现状和特征 随着国家对气象工作越来越重视,气象服务覆盖面不断扩大,服务领域不断拓宽,专业气象服务的针对性逐步增强,重大气象灾害预警应急管理得到各级政府和社会各界的充分肯定。现在也建立了完整的预报预测业务,形成了比较完整的数值预报预测业务。数值预报预测能力逐步提高,初步建立了灾害性天气临近预报业务,建立了基于人机交互处理平台MICAPS。综合气象观测和技术支撑能力进一步增强,基本建成地基、天基和空基相结合的观测系统。形成了以气象通信网络、高性能计算机、卫星数据海量存储和卫星数据广播为代表的实时气象信息系统,资料获取能力、处理能力和传输时效显著提高。初步建立了气象技术装备保障体系和“两级管理、三级保障”的业务体系,技术装备保障能力逐步提高。气象业务有以下特点,第一,气象业务容量大种类多,这就需要应用计算机技术来整合。第二,气象业务要求可靠性强时效高时间及时性,在计算机技术的帮助下气象业务能明显提高准确性和时效性。第三,由于气象业务面向大众和科研,各类用户需要给全社会单位,很多施工单位和实验单位需要通过气象业务的预报服务产品才能满足需求正常运转,所以气象业务需要非常强大的开放性系统来支持,这样才能迅速而准确的运作。 2气象业务应用计算机软件的必要性 由于气象业务所要处理的数据特别多,而且对于数据的反馈要求非常及时,同时又要求数据的精确度要很高、信息传递和的范围都要很广,同时能满足这些条件的就只有先进的计算机软件技术。将计算机技术软件建立的服务平台运用到气象业务中来是十分必要的。 3气象业务应用计算机软件的方法和意义 在计算机软件技术发展迅速的今天,各种各样的软件技术层出不穷,我们要针对气象业务的具体特点去选择合适的计算机软件设备。如今计算机软件技术发展迅速,各类软件技术层出不穷,要选用适合气象业务的计算机软件设备。例如,MICAPS系统(气象信息综合分析处理系统,MeteorologicalInformationComprehensiveAnalysisAndProcessSystem),它是在1996年后随着气象部门“9210工程”正式启动后推出的与卫星通讯、数据库配套的支持天气预报制作的人机交互系统。其主要功能是利用丰富的气象数据资源,通过检索显示各种图形和图像,并根据需求能够进行编辑加工,为气象预报人员提供一个中期、短期、短时天气预报的工作平台,为预报员日常工作提供全程支持的自动化系统。之后,为满足不断发展的业务需求,相继推出功能更为强大的MICAPS2.0、MICAPS3.0版。GHOST软件,该软件是美国软件公司SYMANTEC推出的能使被破坏的系统恢复的硬盘复制工具,GHOST支持多种常见的或是不常见的文件系统,另外在存储文件时压缩文件的压缩率高,能够节约存储的空间。由于气象业务要处理的数据量不仅种类多而且数量大,这就需要一个及方便快捷,容量又极大的数据库来处理。这个软件就符合气象业务的需要。计算机技术软件只是气象业务建设中的一个辅助的工具,气象业务要充分的利用发展中的科学技术来发展壮大自己,而不是完全依赖高科技提高技术业务水平。比如说:气象业务部门的所有成员技术人员都应该具备提高自身素质的意识,不仅仅要熟悉自己岗位专业气象行业里的知识,还要有熟练地运用计算机的能力,理解计算机软件的工作原理,将计算机软件的作用真正发挥到极致,这样才能将计算机软件与气象业务完美高效地结合。计算机网络技术处理的应该是一些能够利用自动化处理方式减轻工作压力,提高劳动效率节约劳动力、节约时间并且提高精确度的工作,例如气象资料通信传输所从事的大量一些预报员日常做的劳动或者是手工操作的工作,另外,纸质气象档案资料数字化处理、气象数值预报模式应用等工作,均需要通过专用的计算机软件进行处理后,才能达到信息处理及时,数据共享便捷,服务信息丰富,用户使用灵活数据资料统计和整合通过计算机软件处理过后都会更方便查阅和调用,利用计算机软件技术也可以很快的处理气象信息的,不但快速而且量能够达到要求。在计算机技术应用中,工程方法主要分三个阶段:最主要的就是定义的阶段,在这一阶段中,主要工作是梳理业务,摸清需求。气象部门要根据实际情况判断出气象业务所需要的是什么类型的计算机软件服务系统,气象部门要对自己的气象业务有着全面、详细的掌握,对业务服务需求和当前存在的业务问题相当明确,才能提出选择出与之相配相适应的软件系统的功能分析和说明。其次是开发阶段,主要工作是需求的分析、设计、实现和测试。这是指气象部门通常采用构建专业数据库,对各类数据源进行采集处理、加工分析、存储共享和服务反馈,最终面向用户提供专业性较强的气象业务应用和服务平台要建立区域气象的数据库,通过信息收集和对数据信息的明确处理来掌握当地日前的气象情况以及长期以来的气象状况,在一段时间的总结过后,根据结果来建立具有专业性的气象业务的网站平台。这样一来,这个区域的总体气象业务管理和服务,就能够通过这个网站系统进行。最后是支持阶段,主要工作是在用户和开发人员间建立良好互动机制,做好软件运行后的技术支撑。这个阶段要求气象业务部门在利用计算机软件技术建立的平台时,遇到的各类系统问题都要及时准确反馈给开发人员,以便问题能及时得到解决。同时,开发人员要立足用户,加强交流,积极响应,对软件不断进行优化完善。 4结语 计算机技术软件应用于气象业务能够从根本上提高气象业务部门的工作效率和工作质量,使之能够做到及时、快速、准确的传递并且接收气象信息,从而能够更好的满足自身业务、科研和社会生产生活的需要,与此同时,这也为气象业务的全面现代化建设提供了技术支持,计算机技术在气象业务中的研究应用是十分重要的科技成果。 作者:李永利 单位:内蒙古自治区气象信息中心 软件技术毕业论文:计算机软件技术不可靠性研究 信息时代促进了我国计算机软件技术的飞速发展,计算机技术有方便、快捷、灵活性强等特点,被广泛运用于人们的生活中。但是,计算机软件的不可靠性随之被人们发现,计算机软件的不可靠性影响着计算机使用的安全性、可靠性,也威胁着用户的隐私安全和财产安全。因此,需要对计算机软件的不可靠性进行深入的研究,解决其中的问题,以提高计算机软件的安全性和可靠性,推动我国计算机软件技术的稳定发展。 1分析计算机软件技术的不可靠性 1.1计算机软件的特点分析 计算机软件是计算机的灵魂,指挥着整个计算机的运行,计算机强大的功能离不开计算机软件。首先,计算机软件技术性较强,软件的开发需要专业的计算机人才和高科技辅助工具,且开发周期较长,需要投入大量的人力和物力。其次,计算机软件有较强的功能性;计算机运行依赖于计算机的程序,而计算机程序要到达一定的目的,则需要通过一些代码和指令。计算机软件是软件开发人员智慧的产物和逻辑研究的产品,在极大程度上计算机软件的不可靠性是设计过程中的人为因素造成的,有极强的主观性和难以预测性。 1.2计算机软件不可靠性表现 当前,我国出台了很多政策来支持和指导计算机软件的发展,计算机软件技术也取得了很大的成就。但在激烈的全球软件行业竞争中,我国的计算机软件在发展中仍然存在一些问题:(1)软件失效:硬件失效通常是因为物理故障,是器件物理化的必然结果,会出现浴盆曲线;而软件失效与硬件失效有明显的区别,软件失效是由于自身的缺陷和改编程序的干扰,具体体现在两个方面:首先,软件不会被磨损,也没有浴盆曲线,但是会出现陈旧落后的问题;其次,软件的程序容易被篡改,可以人为的改编软件,也可以通过其他程序的入侵来篡改。(2)决定计算机软件可靠性的是人为因素;从软件开发的角度上来说,软件的设计要满足客户的要求,需要软件开发人员从顾客的角度出发,分析、设计软件;这就决定了软件的设计是一种思考创作,而创作中的每一个环节都是通过软件设计师的智慧和水平来实现的。但由于设计师水平的差异,在设计软件的过程中难免会出现疏忽和不合理的问题,使软件技术出现漏洞,甚至软件失效或崩溃。(3)计算机软件的维护方面;计算机软件的维护是通过更换或修复被损坏的系统来实现的,软件一旦被破坏,就只能通过重新设计软件来恢复失效软件的功能。(4)目前计算机软件的可靠性验证还没有建立完整的理论体系,相比硬件开发来说,计算机软件的设计开发还处于发展阶段。 2解决计算机软件不靠性的措施 2.1加大计算机软件人才培养力度 计算机软件在开发过程中就存在潜在的人为错误,首先,计算机软件的开发需要加强软件开发人员专业素质的培养力度,让软件开发人员在充分了解软件知识的基础上对客户的要求进行更加准确的理解;其次,软件开发人员在开发软件前,应做好软件设计前期的调研、规划、可行性分析等工作,进而避免潜在的风险;最后,要求软件开发人员在开发软件的过程中避免出现一些技术性的错误,比如变量使化错误和语法错误等,加强软件开发人员的软件开发水平。 2.2对软件开发过程进行评审 为了确保软件的开发符合客户的要求,有序的进行软件设计,避免出现跨越阶段现象的发生。在软件的开发过程中,需要组织评审组对软件进行及时的评审,评审组的成员要包括总体人员、设计师、管理师和质量保证师等领域的专家。评审组对软件设计师所设计的软件标准和要求进行评审,从而有效增强计算机软件的可靠性,促进计算机软件的发展。 2.3建立有效的软件质量监督机制 目前,国家虽然对计算机软件技术制定了一些技术和开发方面的规范,但还缺乏对一些测试软件质量、评价修改软件和软件技术改良的相关政策。因此,国家相关部门还需要建立有效的软件质量监督机制,促使软件开发人员进行自我测试、自我编制,进而有效减少软件开发人员在软件开发过程中出现的错误,提高计算机软件开发的整体水平和核心技术。 2.4建立软件可靠性数据收集系统 软件开发人员在软件开发的初期,需要参照其他相似软件的故障数据,并综合考虑其中的重要度、复杂性、调用度等影响因素,从而尽可能节省软件开发的精力,提高工作效率。计算机软件开发是一项需要多方面技术的工作,为有效避免计算机软件的不可靠性,相关部门还要在软件可靠性测试和实践的基础上规范对软件文档的要求,建立计算机软件可靠性数据收集系统,从而为计算机软件错误的分析、纠正和评估提供详细、可靠的数据,进一步提高计算机软件的可靠性。 3结束语 计算机软件技术给人们的生活带来了很大的便利,人们在享受着计算机软件带来的便利和快捷的同时,也被计算机软件的不可靠性困扰着,计算机软件的不可靠性不仅威胁着人们的账户安全,而且还阻碍了计算机技术的发展和计算机的安全使用。为进一步提高计算机软件技术的综合应用性,计算机软件开发人员在软件设计和开发的过程中要规范操作、明确计算机软件技术的核心内涵、应用特征,并认真分析引发计算机软件不可靠性的具体原因,以便能够采取有效的措施提高计算机软件的可靠性和安全性,从而促进我国计算机软件行业的健康、持续发展。 作者:邓勇 单位:南昌市工业技术研究院 软件技术毕业论文:软件技术专业综合性系统开发课程研究 1课程教学目标 该课程旨在通过项目综合训练,将所学系统设计技术、面向对象开发技术、数据库技术、程序设计技术和软件测试技术进行综合的应用与实践,通过一个完整的软件项目,培养学生遵照行业标准和软件工程规范进行软件需求分析、设计、编码、测试、部署的能力[2],尤其训练目前流行的系统开发技术和方法,培养学生团队开发和协作能力,实现学生具备岗前准职业人的编码能力和职业素养。 1.1知识目标 ⑴掌握数据库设计与维护技术;⑵掌握母版页与站点导航控件的使用方法;⑶熟悉访问数据库技术;⑷掌握主流多层系统架构技术和第三方控件、工具的使用方法;⑸能够编写用户控件和自定义函数;⑹掌握Web服务器系统部署方法;⑺熟悉面向对象的开发技术、软件测试与调试技术;⑻掌握主流程序语言的高级数据操作程序编码技术[3];⑼掌握数据报表技术;⑽掌握软件开发流程和文档编写方法;⑾熟悉UML建模技术;⑿了解项目管理知识和方法。 1.2能力目标 ⑴能够架构多层B/S网络数据库系统;⑵能够设计CSS+DIV页面布局;⑶能够根据系统实际需求进行多种数据库访问和配置;⑷能根据实际需求,按照软件工程流程,进行项目分析、设计和实现;⑸能够快速架构多层软件软件系统:⑹能编写基于面向对象的系统功能代码;⑺会调试系统代码和系统;⑻会编写规范的软件设计文档。 1.3素质目标 ⑴培养学生学好软件的信心,在学习过程中充分培养学生学习的主观能动性;⑵培养学生学习软件的严谨作风,编码以行业标准进行规范,杜绝编码过程中的主观随意性;⑶培养学生团队合作与沟通能力;⑷培养学生从事IT行业的职业技能和职业规范[4],养成良好的职业习惯。 2课程设计思路 2.1课程设计思路 选取一个综合性的企业级软件项目为载体,采取综合性实训的形式开展训练,坚持“产学并行”的训练理念[5],营造生产性流程和职业环境,不断提高学生生产实践能力和编码岗位胜任能力,主要采用基于产品质量的课程管理和评价方法,也就是更重视学生团队协作下的软件项目研发质量,对接企业化的要求进行拟岗训练。各训练小组可以选择自己感兴趣、实战性强的项目作为载体开展训练,教师提供5-10项目选题,供小组选择,每个小组只能选择则一个项目开展训练,项目一旦选中不能更改,小组按照选取的项目和项目设计要求进行分工,设计各自的子项目任务,按照项目计划进行训练。教师担任指导和引导的角色,对重点技术问题进行分析和解释,监督和指导学生进行训练,通过过程把控和考核进行课程管理。 2.2教学方法设计 ⑴分组训练法将学生3-8人分成一个小组,按照项目团队职责进行分工,合作开展训练,项目按照小组为单位验收,并进行现场答辩,采取小组互评和教师评价相结合的方式进行考核,使学生真正体验到综合项目开发流程和规范。⑵优秀作品展示为激发学生兴趣和积极性,对于每个阶段项目,采取优秀作品答辩和展示的形式,激发课程特长生的积极性和带领团队的主动性。⑶项目答辩在完成整个项目后,分小组进行项目报告撰写,并制作答辩PPT进行项目答辩,聘请专业教师担任评委,公开验收实训成果。 3考核方案与考核标准 该课程考核采取形成性考核(报告+项目)的考核方式,平时项目训练考核占40%、最后报告(含答辩)占60%。其中平时项目训练考核含学生出勤、态度、团队合作,最后报告(含答辩)考核主要依据正确率、编码规范、是否准时提交、完成效果、创新性等几个方面。总评成绩=项目训练考核(40%)+报告(60%)。 4教学资源开发与利用(含教材选用、实验实训场室、耗材规划等) 建议教材:自编讲义。实训场室要求:实训室安装VS2010以上版本,SQLServer2008以上版本,Eclipse、PHP运行环境,Oracle10以上版本,根据上课实际情况配置以上环境,实训室容纳人数不低于50人。除软件外无需任何耗材。 5教师能力要求 ⑴具备面向对象分析与设计能力;⑵具有较强C#、JAVA或PHP编码能力;⑶教师要具有很强的协同施教和教学改革能力,以及校企合作经验;⑷能够熟练使用Visio工具进行UML建模;⑸具有面相对象的系统架构、数据库管理与设计能力;⑹具有产教融合的软件项目研发和设计能力。 6结束语 对该课程的教学设计分为:需求设计、概要设计、设计与编码、测试与部署、设计文档编写等模块。通过多个学习单元使学生掌握UML需求分析的方法;掌握数据库模型设计方法;熟悉SQLServer或Oracle数据库管理工具的使用方法;掌握系统总体功能和系统流程设计方法;掌握程序流程图设计等技术和方法。引入企业真实案例,以企业为实训背景,依托有企业实战经验的教师,指导学生完成实训课程,为学生毕业实习和将来的就业打下基础。该课程在设计的过程中还需要建立相应的项目资源库,有条件的可以制作相关内容的微课或教学视频供学生在课前预习和课后复习,激励学生自主学习,培养其主动学习的意识和发现问题、解决问题的能力。通过该课程的学习,让学生进一步掌握软件编码、软件测试、前端页面制作等岗位工作技能。 作者:顾蓬蓬 单位:苏州健雄职业技术学院 软件技术毕业论文:计算机软件技术中插件技术的应用 1插件技术概述 插件技术在计算机软件中的合理应用,能够在很大程度上增强计算机软件的功能,具有不可替代的重要作用。 1.1计算机软件技术中插件技术的概念 插件,实质上就是一种程序[1]。插件程序需要遵循相应的应用程序接口,同时对其进行相应的编写。运行过程中,应用程序主要通过相对应的接口规范插件,就能够扩展相应的应用程序功能。大多数计算机软件中均包含着插件,目前对于这些插件还未形成一个统一标准。除此之外,若是应用软件平台中没有具备此类功能的程序,那么插件只能在程序规定的系统平台中运作。 1.2计算机软件技术中插件技术的功能 计算机软件中的插件技术,主要将未出现改动的软件程序当作基础,更新与扩展软件功能。从软件开发方面来看,计算机软件主要由软件开发平台与插件组成,其中插件在计算机软件中是一种补充模块,实质上就是对计算机软件的功能进行扩展,而软件开发平台是主体。 2插件技术在计算机软件中的应用原理及类型 2.1插件技术的应用原理 现阶段,计算机软件的发展呈现多样化,对于插件技术予以支持的计算机软件不断增多[2]。插件技术在计算机软件中的应用原理,主要包括以下几个方面:①接口。实质上就是主程序与插件之间的一个标准通信协议与规则,能够确保主程序与插件的有效交互。所以,保证计算机软件功能扩充与插件插入的关键在于接口是否有效。②插件。计算机软件中,可以将插件以一种动态的形式插入其中,还可以增添一些基础功能。所以,在计算机软件中插入多个插件,能够全面的完善计算机软件,有利于强化功能处理。同时,插件需要为计算软件提供一个相应的接口,确保主程序的调用行为能够有效的被识别。③主程序。主程序的主要功能就是启动计算机软件,并且在计算机软件运行的过程中将插件加载至进程地址中。Windows系统中主程序的表现主要为.exe文件;除此之外,主程序还要管理程序中的所有插件。 2.2插件技术的类型 目前,技术软件开发技术的发展十分迅速,在很大程度上扩大了插件技术的应用范围,插件的数量、类型呈现多样化。现阶段,计算机软件中的插件主要包括以下几种类型:①组件对象模型插件。组间对象模型,英文简称为COM,即ComponentObjectModel,能够对主程序直接进行接口定义,不需要对插件功能实现过程有所了解,是一种直接将接口提供给主程序的插件,能够实现主程序与不同插件之间的良好通讯。②动态函数库DLL插件。此类插件对于主程序功能的实现,主要通过动态数据库形式。主程序通过相应工具对DLL插件中存在的函数进行调用,然后再利用相应函数对动态函数库DLL插件进行调用。这种插件的不足之处主要在于主程序在运行此插件时可能发生“DLLHELL”状况,造成插件无法运行。③脚本插件。实质上就是通过相关的编程语言将插件逻辑写成脚本代码的一种插件;编程语言可以是开发人员自行开发的,也可以是通用的。现阶段,脚本插件的编程语言主要为XML,具有可操作性强、简易等特点,但是存在一定的风险。 3计算机软件技术中插件技术的应用及其优势 3.1插件技术的应用 插件技术在计算机软件研发过程中具有十分重要的作用。插件具备的优点较多,在研究插件的过程中需要花费的资金较少,而收益却远远高于支出。只要通过接口将插件与相应的软件程序有机连接起来,计算机软件就能够拥有插件程序功能。在研究插件的过程中,需要深入了解插件服务软件的主程序,根据软件主程序原理、方法对插件进行研发。插件与系统之间的连接点主要是接口,接口为插件进入软件主程序提供相应的入口,也是在主程序中撤除插件的分离端。宿主程序与插件程序之间有着明确协议,规定应当在一个子文件夹中放入插件的全部内容,为了避免对软件主程序造成破坏,必须严格管理插件技术[3]。所以,虽然插件与计算机软件是放在一起使用,但是插件仍然具备一定的独立性,对于软件产生的影响极低。用户对于插件的选择与应用,应当根据自身在生活中的实际需求,不能认定使用。同时,在对某些软件进行使用的过程中,一些用户将软件附带的插件删除,降低终端机在运行过程中的负载,这种做法并无任何问题。计算机软件技术中插件技术的实际应用,主要包括:①IE插件,Plug-in是一种程序。通常情况下,浏览器都是直接对插件程序进行调用,通过对一些特定文件进行处理,将其转换为浏览器的一个组成部分。②FLASH插件,实质上就是在浏览器中安装的一种插件,主要作用是确保浏览器中sef文件的良好播放。 3.2插件技术应用优势 主要包括以下几个方面:①插件重用率高,在对软件结构进行调整的过程中,方便简捷。②插件与插件不会发生互相干扰等不良状况,结构简单,构造清洗,不会影响计算机软件系统的运行。③插件技术在很多方面均有优势,如产品扩展、产品生产以及项目计划等方面。④插件结构灵活,由于插件主要由多个小插件功能结构组成,通过接口为软件系统提供服务,因此删减、增加较为简便,不会对软件产生不良影响。 4结语 插件是计算机软件组成系统中不可缺少的一个重要部分,插件技术在计算机软件中的应用能够进一步简化计算机程序,提高计算机程序的反应速度。插件技术的快速发展,在很大程度上促进了计算机软件功能的全面化与多样化,因此应当充分重视计算机软件技术中插件技术的合理应用。 作者:白晓海 单位:湖南省长沙市路桥征费维护管理处
软件工程毕业论文:软件工程专业本科毕业设计过程管理 摘要:分析软件工程专业本科毕业设计管理中存在的主要问题,针对软件企业对软件工程专业的人才培养要求,提出软件工程专业本科毕业设计过程管理措施,强调通过建立和完善毕业设计的管理制度,加强毕业设计过程的监控;构建完善的毕业设计管理平台,提高本科毕业设计管理水平;改革毕业论文形式,建立毕业设计过程管理评价体系,提高学生工程实践能力。 关键词:软件工程;本科毕业设计;过程管理 软件学院软件工程专业的设立是国家教育部、国家发展计划委员会为满足国家软件产业发展对人才的迫切需求于2001年批准成立的。重庆大学软件学院是国家首批示范性软件学院之一,其人才培养目标是培养“面向应用、遵循标准、适应团队、把握技术、熟知领域、外语优良”的软件工程人才。10年来,软件学院十分重视软件工程专业的工程化教学改革,采取多项政策和措施促进工程型软件实用人才的培养。本科毕业设计是实现高等学校人才培养目标的重要教学环节,是培养学生创新意识和创新能力的重要手段,是理论学习与社会实践相结合的重要体现。因此,对软件工程专业本科毕业设计进行改革,培养具有工程实践能力的软件实用人才具有重要意义。 1 软件企业对软件工程专业培养人才的要求 软件产业的迅速发展对该行业从业人员提出更高要求,不仅要求学生掌握理论知识,还要求学生具备较强的工程实践能力与创新能力。国内计算机相关专业的教学基本上仍使用传统的理工科人才培养模式,注重基础理论知识,缺少对学生工程能力和职业素质的训练,因此培养既有扎实的专业基础知识和较强工程实践能力,又能迅速适应业界环境的高素质创新型软件人才,是软件企业对软件工程专业人才培养的要求。 2 目前本科毕业设计管理中存在的问题 1)毕业设计阶段缺乏全过程的管理与监控。 毕业设计全过程的管理与监控不够规范,缺乏专门的组织机构。毕业设计的一些主要环节疏于检查和监督,因此存在影响毕业设计质量的问题,如选题陈旧、重复率高、与软件产业发展需求不适合等。 教师指导水平有限且精力投入不足,同时没有对教师指导工作的有效绩效考核,使得教师对学生的毕业设计不够重视;某些学生由于有就业压力,便将主要精力放在人才市场和各类招聘会上,没有意识到毕业设计的重要性,最后只能通过拼凑和抄袭完成毕业设计。 2)毕业设计阶段缺乏规范化的指导性文件。 毕业设计工作持续时间长,涉及所有毕业生和教师,如果没有规范化的指导性文件能够让指导教师和学生了解毕业设计工作的意义、目标、计划、流程、论文规范化格式、质量评价标准、成绩考核等具体实施细则,明确自己在该项工作中扮演的角色以及整个毕业设计流程对自身承担工作的质量要求,那么很难提高毕业设计质量。 3)毕业设计文档资料缺乏有效管理。 毕业设计成果是学校的重要知识和信息资源,完善的文档资料管理有助于毕业设计工作的传承和创新。长久以来,毕业设计作品和论文主要采用人工管理。学生答辩后提交资料袋,资料袋中包括毕业设计相关文档和设计作品的刻录光盘,但由于管理人员对毕业设计资料的重视程度不够或人员不够,导致毕业设计资料管理不善,出现查询困难、答辩记录丢失等情况,为以后查阅、成果展示及下届毕业生的论文指导工作带来不便。 3 本科毕业设计管理改革措施 1)成立毕业设计管理小组。 为了加强本科毕业设计工作的组织、管理和监督,软件学院专门成立毕业设计管理小组,小组成员由教学副院长、正副系主任及学生助管组成,负责整个毕业设计过程的管理监督工作,包括从选题、审题、任务书下达到开题、中期检查、答辩、成绩评定、推优的全过程。 2)建立和完善毕业设计的管理制度。 为了提高毕业设计质量,毕业设计管理小组根据软件工程专业特点建立学院的具体工作规范和有效的毕业设计管理模式和监控制度,加强毕业设计制度建设,使得从选题、下达任务书到学生的开题报告,从每周汇报、中期检查到设计文档撰写、论文撰写、论文重复率监测、论文评阅及论文答辩,都有切实可行的实施细则及管理规章制度;构建集中管理与跟踪管理、周报提交、外出请假、抄袭检测、讲座出勤等平时成绩评定标准;完善从平时表现、系统设计实现质量、论文或设计文档质量、答辩水平等多方面衡量的客观、公正的综合成绩评定标准和推优程序。在毕业设计全过程管理中,力求做到有章可循及有据可查。 3)多元化的毕业论文形式。 多元化的毕业论文形式有利于培养大学生创新实践能力。根据软件工程专业特点,软件学院对毕业论文形式进行改革。毕业设计形式包括传统方式和新方式,学生可以选择其中一种方式,具体采用哪种方式则由指导老师负责。 传统方式是指毕业生完成开题报告并翻译一篇相关课题的英文文献,然后对软件系统进行需求分析、设计和编码实现,或者对相应算法进行研究、分析和编码实现,最后完成毕业设计论文。 为了面向软件企业需求,培养学生的软件设计能力,新方式注重提高学生的系统设计文档编写能力。毕业生前期仍然要完成开题报告、英文文献、系统分析设计和编码,最后提交系统设计相关文档。系统设计相关文档由以下文档构成:①项目开发计划;②软件需求说明;③系统设计说明;④数据库设计说明;⑤用户手册;⑥测试分析报告;⑦项目开发总结。根据软件工程学科特点及专业人才培养的要求,结合学校的毕业设计(论文)管理办法和软件设计文档国家标准,软件学院制定了符合专业人才培养目标的设计文档规范。 为提高学生科技论文写作水平和研究报告的演讲能力,软件学院面向软件工程专业所有应届毕业生,在其毕业设计阶段开设8学时的“科技论文写作规范”“研究报告演讲技巧”讲座,强调科技论文写作的规范性和可读性,锻炼学生演讲研究报告的能力。 4)加强毕业设计过程管理和监控。 毕业设计过程管理和监控面向的对象是学生和教师。软件学院毕业学生做毕业设计有不同情况,如有在校外软件公司做毕业设计的,更多的是在校内做毕业设计,因此需要有相应的不同管理模式。为加强学生培养质量和降低指导教师管理难度,软件学院提供集中管理与跟踪管理方式。 集中管理是指学院设置固定机房和机位并安排助教作为管理人员,由指导教师给学生安排机房,由管理人员负责学生的日常考勤,学生需及时向指导老师汇报学习情况,学生若有事必须请假。跟踪管理主要针对在校外进行毕业设计的学生,要求这类学生完成校外毕业设计申请,由管理小组协助指导教师对校外学生进行跟踪,为这些学生提供及时的毕业设计信息服务。这类学生必须每周与学校指导教师联系,以便教师详细了解并掌握学生毕业设计进度。这种具体的制度和规范,对在校内进行毕业设计和赴外进行毕业设计的学生进行了有效监控。 针对指导教师的管理,毕业设计管理小组采用不定期检查和周报提交的方式。毕业设计规范要求每位指导教师每周指导时间不少于2小时,指导教师需要检查学生毕业设计的进度和质量;解答学生提出的问题,进行下一阶段工作部署与指导,保证毕业设计的质量。 不定期检查指毕业设计管理小组根据指导教师在毕业设计系统中登记的指导时间和地点,不定期对教师的指导情况进行检查。周报提交是指学院建立的毕业设计定期报告制度,教师和学生每周均需要将周报提交到系统上,教师主要汇报每周对学生指导情况以及学生毕业设计进度和质量,学生主要汇报每周的毕业设计进度、毕业设计遇到的问题等。毕业设计管理小组每周对周报进行汇总分析并,及时了解毕业设计情况,对学生和教师提出的问题进行统一解答。 5)构建完善的毕业设计管理平台。 充分利用计算机技术,构建完善的毕业设计管理平台,提高毕业设计管理水平,使毕业设计管理更加规范化。软件学院在毕业设计过程中使用的管理系统包括:重庆大学本科毕业设计系统、重庆大学网络教学综合系统、重庆大学软件学院软件工程实践教学平台。 重庆大学本科毕业设计系统用来上传和管理毕业设计相关文档。系统涵盖毕业设计工作的全过程,实现选题提交、课题双向选择、毕业设计相关文档(包括开题报告、外文翻译和毕业论文)的提交与管理、文档模板的上传和下载、毕业答辩的自动分组、指导教师和交叉教师评分、答辩记录和成绩的上传、成绩册的打印、毕业成绩的统计分析等功能。 重庆大学网络教学综合系统。用于毕业设计的过程管理,主要进行信息、周报收集、校外学生实习申请、过程检查情况公告、问卷调查、学生成果提交和查询等。 重庆大学软件学院软件工程实践教学平台是软件人才培养创新平台,提供实践教学成果展示、实践案例资源库与实践教学管理功能。利用该平台可以举办毕业设计优秀作品展,展示软件学院学生的专业学习水平,激发学生的实践热情,对下一届学生起到示范作用。平台实践案例资源库可为学生提供实践学习参考资源,为教师提供实践教学案例素材。 6)建立毕业设计过程管理评价体系。 建立毕业设计过程管理评价体系,要求所有 一学生和指导老师每周都要将周报提交到EOL(重庆大学网络教学综合平台)平台。毕业设计管理小组每周对毕业设计情况进行检查和监督,并将检查情况告知所有指导老师。指导老师每周提交周报次数与毕业设计指导工作量挂钩;学生考勤情况、周报提交情况、平时检查情况会被记入平时成绩,平时成绩不合格将被取消答辩资格。 软件学院强调学生在毕业设计期间一定要进行软件系统设计和实现,毕业答辩包括系统演示、用PPT讲解毕业设计主要工作、答辩教师提问等多环节,答辩老师根据学生工作量、完成质量、论文或设计文档质量、答辩情况进行评分。学生毕业设计的最终成绩由平时成绩、指导教师成绩、交叉评阅成绩和答辩成绩构成,以保证评分的公平性。 7)加强诚信机制建设 为了提高本科毕业设计质量,加强学术道德和学风建设,营造学术诚信氛围,软件学院使用“大学生论文抄袭检测系统”对本科毕业论文进行防抄袭检测。抽检比例为应届毕业论文的50%,抽检名单由毕业论文管理系统随机抽取。另外,各答辩小组推荐的优秀毕业论文为必检对象。 软件学院制定论文抄袭的认定标准(建议文字复制比不超过25%)和处理办法,对有问题的论文,责成指导教师对检测结果予以认定和说明或督促学生修改,取消被认定抄袭论文学生的答辩资格;对各答辩小组推荐的优秀毕业论文进行,不合格的论文取消优秀。 4 结语 培养适应我国软件产业发展的软件工程人才,提高软件工程本科毕业设计质量,毕业设计的改革势在必行。通过2届学生的毕业设计改革证明,建立和完善毕业设计的管理制度,加强毕业设计过程的监控,充分利用毕业设计管理平台,实现多元化的毕业论文形式,建立合理的毕业设计过程管理评价体系,加强诚信机制建设,能极大地促进师生在毕业设计过程中投入热情和精力,提高本科毕业设计管理水平,有效保证毕业设计质量。 软件工程毕业论文:软件工程学在毕业设计中应用研究 摘要:毕业设计是一个十分重要的教学环节,是一个系统工程,应使用工程化的方法、步骤统筹安排以取得良好的效果。软件工程学是指导计算机应用专业软件类学生进行毕业设计的重要工具之一。将毕业生设计过程、文档书写与软件工程学紧密结合起来是提高学生毕业设计论文质量的一个重要途径。结合软件工程的基本知识,通过对软件类学生毕业设计过程存在的常见问题的研究,提出了应用软件工程学去指导学生毕业设计的方法。 关键词:软件工程;毕业设计 作者简介:许永昌(1976-),男,山东安丘人,硕士,山东英才学院计算机学院讲师,研究方向为计算机应用。 0引言 毕业设计是高等院校应届类毕业生在毕业前接受课题型任务,在教师指导下进行科学研究或工程实践并取得成果的过程,是高校实现人才培养目标的综合性实践教学环节,是一次理论与实践相结合的的锻炼机会。如何在新形势下改革毕业设计, 提高学生软件类毕业设计的质量,进一步规范毕业设计中的软件开发过程,抓好高校毕业设计这一实践环节,加强对毕业设计过程的管理与监控, 切实提高毕业设计的质量,对于软件类学生在毕业设计中实施合适的软件设计具有重的指导意义。 1毕业设计的必要性 高等职业教育应该是以能力为本位、以学生为主体、以实践为导向的教育。毕业设计是高等教育培养学生综合运用所学理论知识和技能解决实际问题能力的重要环节之一,是衡量毕业生是否达到相应学历层次的重要依据。毕业设计将总结专业基础和专业技术的学习成果,锻炼和开发学生的综合运用能力。 高职院校软件相关专业组织毕业设计应该符合新的人才培养标准,对培养学生的职业技能和素质要具有积极的意义。而对于即将毕业离校的应届毕业生来说,毕业设计无疑是计算机软件各相关专业理论教学、实验、实训等有机结合的途径之一。 通过毕业设计能锻炼学生的能力: (1)实践软件工程的相关原理能力。毕业设计的过程,是一个课题小组从接到开发任务到提交产品和文档的过程,其中涉及到需求分析、概要设计、详细设计、编码、测试、程序打包、编写文档等软件工程具体的各个方面。经过锻炼,学生们对软件工程学思想和方法的理解会大大加深。 (2)解决具体问题能力。在毕业设计的进行过程中,学生一定会遇到平时在课堂的理论学习中碰不到的困难和挑战, 而克服这些困难、解决实际问题的过程就是软件技术和心理素质逐步提高的过程。 (3)团结协作的意识、能力。通过毕业设计这一过程,学生就会产生团结协作的意识和能力。 2软件工程学的基本思想 软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科,包括两方面内容:软件开发技术和软件项目管理。其中,软件开发技术包括软件开发方法学、软件工具和软件工程环境,软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划。 3高职类学生毕业设计现状 毕业设计的主要目的是培养学生综合运用所学的基础理论、基本知识和基本技能,用以分析、解决工程、科研、社会实际问题的能力,使学生得到工程设计方法和科研能力的初步训练。毕业设计中存在的问题主要表现在以下几个方面。 3.1选题的盲目性 只是把毕业设计环节作为大学生活的必经环节, 纯粹是为了完成学业而去做毕业设计, 造成选题的盲目性、有的选题则是陈旧。 3.2可行性分析与需求分析重视程度不够 绝大多数毕业生在确定了毕业设计的题目后,几乎不进行调查研究工作就立即投入到整个系统的设计中, 一旦遇到了与实际不符的地方, 又重新返回, 对已经做好的设计进行修改。最终导致设计的系统杂乱无章, 甚至到了最后只能马马虎虎地仓促交工。 3.3系统开发过程中的文档不够正规,不够完备 完整的设计不仅包括所完成的可操作的系统,一般的操作帮助,还包括在开发系统的过程中所产生的各个文档等一些文字的东西,比如解释清晰、内容全面的数据字典和使用手册也是必不可少的,否则用户会感到使用起来不方便,觉得难于操作。 3.4模糊的评价标准 导致毕业设计质量下降的一个非常重要的原因就是没有建立精确细致的评价体系。 这严重影响了项目的进度和质量,并且使学生没有真正得到必要的锻炼。我们通过对这些问题进行详细深入的分析,提出一个软件过程框架,这个框架主要从需求、测试、集成这3个方面给出工作要点和规范。 4利用软件工程学思想指导学生进行毕业设计 毕业设计本身是个工程,要用工程的方法去处理。从软件工程的角度去指导学生进行毕业设计,在毕业设计过程中,要系统地将所学知识应用于实际问题,按软件工程学思想展开工作。 图1软件生命周期与毕业设计各阶段之间的映射 4.1以可行性研究指导选题目 可行性研究,应该从技术可行性、经济可行性、操作可行性三个方面去研究,在毕业设计题目的选择过程中,应立足于解决实际问题,注重发现问题、分析研究问题和开发创新的能力。选题原则上,可以参考以下几点:①毕业设计的课题应该能使计算机专业所学的理论知识进一步理解并深化,也就是说,毕业设计应尽可能包括多门专业基础课和专业课的综合运用,并且要紧密结合工程实际,以有利于学生的全面训练;②选择难度适中的课题, 保证课题的完成质量;③课题要适合于各个模块独立进行,并便于最后统一调试;④课题规模应大小适合,难易程度适中。 4.2需求分析是关键 需求分析的基本任务是准确地回答“系统必须做什么”, 也就是对目标系统提出完整、准确、清晰、具体的要求。系统分析员可以通过多种形式来获取用户需求,对用户提出的需求进行分析,以此来确定其中要实现系统的功能。对需求划分优先等级,找出核心需求和重要需求,以保证系统构建的正确性。 在进行软件类毕业设计时,为了保证需求获取的准确性和全面性,可以让项目组的所有学生都参与到用户需求的获取的工作中来,发挥集体的能力,并由指导教师进行最终的确认。 4.3规范设计过程 需求分析完成后的下一个阶段就是系统设计,包括概要设计和详细设计。 详细设计阶段的任务就是深入每个函数内部,以伪代码或注释的形式实现整个函数,设计出程序的详细规格说明。 从系统设计开始,学生要按照软件工程的要求,画出DFD图,对输入、输出数据流进行详细的说明,建立符合软件工程规范的数据字典,根据DFD 图设计出模块结构图。 4.4重视文档写作 在毕业设计的过程中,要严格遵照软件文档的思想,记载设计过程的每一阶段完成了哪些设计,下一阶段的任务、目标及技术手段,这样,把文档作为整个设计的指挥棒,使设计有条不紊地进行。 4.5重视测试工作、撰写毕业设计说明书 软件测试工作也是软件开发的重要组成部分。通过实际应用效果和测试数据,毕业设计的成效就可一目了然。 毕业设计说明书的撰写是最后一个阶段,要求学生回顾设计过程,总结劳动成果,这时学生就会对软件开发及必须经历的几个步骤都有更深刻的认识。最后,要求学生对毕业设计进行系统的总结,写出毕业论文。 5加强对学生综合能力的培养 通过实践的练习,不仅能加深对理论的理解,同时也能锻炼运用知识分析问题、解决问题的能力。毕业设计这一实践环节是高等学校培养学生实际能力的主要手段,也是高等教育的重要组成部分。充分、有效地设置软、硬件的毕业设计对学生能力的培养至关重要,可以缩短学校教育与社会流行技术、工具的差距,满足学生毕业后的工作需要。通过毕业设计必须达到培养学生以下方面能力的目的。 5.1工程实践能力 学生能够准确把握选题的逻辑重心和学术思路,能够运用丰富的专业知识进行处理,具有严谨的理论思辨过程,以锻炼毕业生的工程实践能力,使毕业论文具有一定的应用和学术探讨价值。 5.2书写和表达能力 毕业设计论文是毕业设计工作的总结和提高,和做科研开发工作一样,要有严谨求实的科学态度。在毕业设计期间,尽可能多地阅读文献资料是很重要的,毕业设计大多数是技术开发型的,其论文的主体部分应包括:总体设计、模块划分、算法描述、编程模型、数据结构、实现技术、实例测试及性能分析。这些内容根据任务所处的阶段不同,可以有所侧重。 5.3创新能力 提出创新要求后,带领学生认真复习或补学过去没学过、没有学好的课程,并在此基础上结合实际工作中出现的问题孕育出一些新的思路,将毕业设计推上一个新台阶的方式,与为每个人专门分配某一特定的作业来锻炼学生基本技能的方式相比,更能扩展学生的视野,培养创新能力。 5.4协作能力和团队精神 通过集体活动和成员沟通培养成员的团体情感,增强团队的凝聚力。毕业设计将一个学生从入学初到毕业前的软件专业课程的学习内容链接成线,实现了课程的真正衔接,也使学生在毕业前对软件方面所学的知识进行了比较完整的概括与总结,达到了良好的理论联系实际的教学效果。毕业设计弥补了课堂教学的不足,加深了对理论的理解,促使学生深入思考,敢于创新,同时使学生的动手能力、分析和解决问题的能力、书写和表达能力、协作能力等各项能力都得到了培养和提高。 6结束语 软件工程作为软件开发工程化、规范化的具体实施方法,在将其应用到毕业设计中之后,学生在软件设计的文档书写规范化等方面均有了很大的改善与提高。将软件工程应用于毕业设计中不仅仅完成了一门课程从理论到实践的过程,而且将一个学生从入学到毕业前软件专业课程的学习内容链接成线,完成了前导后续课程的真正衔接,也使学生在毕业前对软件方面所学的知识进行了比较完整的概括与总结,因此,软件工程学在计算机专业学生毕业设计中的应用具有重要的现实意义。 软件工程毕业论文:管窥软件工程在毕业设计中的应用 1软件工程在毕业设计中的作用 软件工程不仅是计算机科学与技术专业、软件工程专业的一门专业基础核心课程,也是其他相关专业,如信息工程、系统工程、信息与计算机科学、信息管理与信息系统等专业的重要应用技术课程。对于这些专业的学生来说,毕业设计多是以软件开发类项目为主,整个毕业设计就是开发一个软件。为了更好地完成软件开发类毕业设计,提高学生毕业设计的质量,进一步规范毕业设计中的软件开发过程是必需的。软件工程的思想正是用工程化方法构建和维护有效的、实用的和高质量的软件。按照软件工程思想,软件开发的生命周期分为可行性分析、需求分析、总体设计、详细设计、编码实现、软件测试和软件维护几个阶段。在学生的毕业设计中以软件工程的思想为主线,从软件工程的角度去指导学生进行毕业设计,挖掘软件工程在系统开发过程中的价值,解决毕业设计中存在的一些问题,既有助于学生更好地理解软件工程的方法、技术和思想,更有助于提高软件类毕业设计的质量。 2毕业设计中存在的问题 笔者在指导学生软件开发类毕业设计过程中发现,毕业设计存在着选题难、任务重、重视编码、轻过程、项目无法完成等现象。设计过程中没有严格地遵循软件工程的开发方法,没有规范的软件设计过程,项目能否成功主要依赖于个人能力和个人努力,这种不正确的开发方法带来了严重的后果。在项目开发的过程中常常存在以下几个方面问题: 2.1选题的盲目性 选题是毕业设计过程中的一个初始环节,选题恰当是做好毕业设计的前提,但选题不当的情况仍然时有发生。学生没有认识到毕业设计的重要性,纯粹是为了完成学业而做毕业设计,选题没有一个确切的目标,往往是随便选一个题目,造成选题的盲目性,出现了选题陈旧、选题范围狭窄、选题偏大等问题,使学生抄袭、完成不了毕业设计的情况时有发生。 2.2缺少软件的系统分析 软件开发过程的第一个阶段是系统分析,用来确定软件开发要解决的问题是什么?估算完成该项目需要的资源和成本,确定目标系统应该具备哪些功能,主要经历问题的定义、可行性分析和需求分析三个阶段。软件的系统分析确定了用户需求,同时对目标系统提出完整、具体的要求,引导开发者正确地构建系统。因此,对用户需求做出全面、正确的分析,对于最终软件开发类毕业设计的成败起着至关重要的作用。然而在完成毕业设计过程中,学生往往认为代码编写最重要,对软件开发过程中的可行性分析和需求分析阶段不重视,甚至没有系统分析,对整个毕业设计的完成造成了影响。 2.3软件设计过程杂乱无章 软件设计一般都要经历可行性分析、需求分析、总体设计、详细设计、编码和测试阶段。而部分学生在毕业设计开发的过程中,缺乏软件工程设计思想,跨越需求分析、概要设计、详细设计和功能模块设计,直接进行代码的撰写;或者从代码反推出模块设计;甚至在软件开发过程中,一边写程序,一边了解需求,程序完成了需求才确定。这种无序的软件设计过程,导致最终设计的系统杂乱无章、代码的重复率高、潜在?Bug多、系统的可集成性非常差、不能在规定时间内完成设计或者系统无法运行。 2.4开发过程中文档不完备 根据软件工程学的基本原理,软件=程序+文档,可见软件文档是软件开发过程中不可缺少的组成部分。软件文档贯穿于软件开发的各个阶段,是提高软件产品开发效率、规范软件产品开发过程、保证软件产品质量的关键。但在实际毕业设计中,很多同学认为把程序代码编出来了,毕业设计也就完成了,提交的毕业设计论文就是系统代码的复制,即只做出一个可演示可操作的系统,而忽略了软件开发的完整性、系统性。完整的毕业设计不仅包括可操作的系统,还包括在开发系统的过程中所产生的各个文档资料。文档的缺失会降低软件开发的效率、影响整个软件的开发、使用和维护。以上问题的存在,严重影响了毕业设计的进度和质量,没有达到毕业设计的目标要求。针对当前毕业设计的现状和存在不足,笔者认为应用软件工程学的思想指导毕业设计,对促进学生综合素质与工程实践能力培养具有积极意义。 3用软件工程思想指导学生进行毕业设计 3.1以可行性研究指导选题 可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。毕业设计题目的选择,应立足于解决工程实际问题,可由指导教师提供符合相关专业毕业设计要求的题目,也可以鼓励学生自己到社会、生产企业中寻求研究课题,培养他们自主学习的意识。选题过程以可行性研究为指导,从课题规模大小、难易程度、学生自己的研究方向、爱好、学生的知识层面和能力等多个方面进行考虑,对于选择的题目是否能够解决,确定在规定的时间内完成毕业设计的可行性。指导教师可根据学生选报的题目来指导学生对该选题进行调查研究,明确课题要解决的问题是什么,简要地写出关于问题性质、项目目标和项目规模的书面报告。可行性研究来指导毕业设计的选题,实质上是简化了系统分析和设计的过程,也是在较高层次上以较抽象的方式进行的系统分析和设计的过程,使学生对于课题的设计有个清晰的思路,为及时完成毕业设计提供了可能。 3.2重视软件的需求分析 需求分析的基本任务是准确地回答“系统必须做什么”,即确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求,不仅指明了系统设计时必须要实现的目标,也是软件设计、实现、测试和维护阶段的主要参考标准。用户需求的获取是软件开发中最重要、难度最大的工作,它贯穿于整个软件设计过程,不仅要涉及到软件开发方面的知识、应用领域方面的知识,还涉及到与用户沟通的能力。在进行需求获取和分析时,为了及时、准确地获取,可采用软件工程中比较成熟的方法,例如访谈、实际调查、UML的用例技术等。需求分析在软件系统分析与设计阶段起着桥梁的作用,确定了系统的需求,才能制定出软件设计的框架,保证毕业设计循序渐进、有条不紊地进行,避免后期开发过程的频繁返工,进而按时完成最终的任务。 3.3规范毕业设计过程 软件开发类毕业设计一般是开发一个软件系统,实现一定的功能。“麻雀虽小,五脏俱全”,无论软件规模的大小、功能的多少,都应该严格按照软件工程中软件生命周期每个阶段的步骤完成各项任务。要培养学生把软件工程的概念贯穿于整个毕业设计过程,也就是说,让学生把开发软件的过程看成是盖一栋大楼,修一条公路的实际工程,用工程化的思想指导毕业设计,确定完成课题的各项任务的工作步骤,注重软件类毕业设计的过程,而不是学生所认为的毕业设计就是编程序,代码调试通过即可。通过工程的概念规范毕业设计过程,让学生明白开发一个软件系统一般经过系统分析、系统设计、系统实施三个阶段,必须严格遵循软件生命周期的规律,完成各个阶段的任务,才能最终提高毕业设计的质量。 3.4重视文档的写作 软件工程中的瀑布模型严格地规定了在整个软件生命周期的各个阶段,都要提交相应的文档。文档不仅记录软件开发过程中的大量信息,在软件的开发、维护过程中也起着重要的作用。在指导学生毕业设计时,要求学生遵照软件工程的思想,把文档作为整个设计的指挥棒,记载设计过程的每一阶段完成的目标、任务及技术手段,建立健全毕业设计文档制度,确保毕业设计过程中的文献综述、译文、任务书、开题报告、选题审题表、中期检查表、设计(论文)正文、答辩记录等各环节教学资料档案完善、规范,实现对毕业设计的全程监控。 4结束语 软件工程是软件开发工程化、规范化的具体实施方法,将其应用到毕业设计中,不仅有助于学生对软件开发相关知识的巩固和实践,而且对解决目前软件开发类毕业设计中存在的问题,提高学生毕业设计质量,具有极大的促进作用。 作者:王晓 王长波 单位:湖北医药学院 公共管理学院计算机教研室 软件工程毕业论文:软件工程本科毕业设计策略 一、利用多方资源做好毕业设计选题与立题工作 恰当的选题是做好毕业设计的必要条件和前提。近年来,随着信息技术高速发展,国家对高素质软件工程人才需求十分旺盛,并有逐年扩大的趋势。同时各个高校软件工程专业的招生数量也在逐年增加,从目前全国319所设有软件工程专业的学校看,2013年该专业平均招生300人左右。专业招生人数的增多给毕业设计选题带来了带来巨大挑战:一方面软件工程专业的毕业设计选题要求具有一定的应用价值、创新性,同时还要与行业需求相吻合;另一方面要保证选题的唯一性,不仅要避免学生之间的题目重复,还要避免与之前毕业生的题目重复,因为重复的选题会使学生产生投机的心理,导致“打酱油”现象。针对上述问题,黑龙江大学软件学院主要采取了以下几个措施:1.充分利用企业资源,对一部分在企业实习的学生采取“三位一体”的双导师指导模式。即企业项目为载体,学生为主体的模式,校内和校外导师为主导。这部分学生一般是在大三下学期暑假就已经进入企业实习,而我们每年毕业设计选题工作是在十一月末,也就是学生进入企业实习后三到四个月的时间,学生经过企业阶段的培训,对企业的生产过程、企业文化有了一定的了解。此时,学院组织校内外导师和学生共同协商,以企业项目或子项目为学生确定毕业设计选题。2.充分发挥导师的资源优势,学院大部分教师都有自己的科研课题,这些科研课题有些是直接来源于企业的横向课题,还有一些是信息技术领域的应用研究课题,我们鼓励教师从这些课题中提取出一些子项目让学生实践,作为毕业设计的选题。3.充分挖掘学生的专业技术特长和兴趣点并结合学生的择业倾向,确定最能发挥自身优势和潜能的选题。毕业设计的选题不仅要与实际需求相结合,更重要的是应该结合学生自身的技术优势和兴趣。只有学生对选题有兴趣,他们才能尽早地进入状态,发挥自己的创造能力和积极主动意识。所以,选题阶段导师和学生的沟通交流就显得尤为重要,通过沟通导师可以了解学生的能力、兴趣和择业倾向,学生也可以对选题,有进一步的认识,对于不感兴趣的选题学生也可以通过与导师进一步的探讨进行题目的修订。 二、注重环节审查,加强过程监管 虽然“好的开始是成功的一半”,但是如果缺乏中间环节的监管,仍然不能保证好的效果[4]。因此,为保证毕业设计(论文)的质量,我们制定了明确的质量标准、管理条例,并由院长、学术委员会、系主任和教务办主任组成毕业设计(论文)工作委员会,负责毕业设计(论文)工作的组织、评定和监管,同时保证管理条例的严格落实及各个环节工作的正常进行。为健全毕业设计(论文)的监管机制,学院先后规范和完善了《毕业设计(论文)工作管理办法和实施细则》《开题报告》《开题评分标准》《中期报告》《中期检查标准》《毕业设计(论文)撰写规范及模版》《毕业设计(论文)盲审表》《答辩程序和评分标准》等一系列管理办法和文档标准,使毕业设计工作在制度和规范下能顺利有效地进行。每年毕业设计工作之初,我们都要给学生开一个动员会,在会上阐明毕业设计(论文)的重要性,以及毕业设计对他们未来工作的影响,调动他们学习的主动性、积极性和创造性。此外,系主任还要向学生介绍学院毕业设计(论文)管理办法和实施细则,各阶段的工作要求和时间节点,以及各环节检查的内容、需要提交的文档,使学生在毕业设计开始时能做到心中有数。同时,我们也要求指导教师随时解答学生的问题,坚持每周开例会,检查学生的工作完成情况,并提出一些有技术含量和理论深度的问题启发他们思考,激发他们的学习热情,并与学生一起确定后续任务。此外我们组织开题检查、中期检查,对开题检查成绩后30%的学生,不但检查中期报告,还要现场检查程序。对于中期检查不合格的学生,要求限期整改,如果仍然不合格则取消答辩资格。在答辩之前,我们还要对论文进行盲审,盲审不合格的学生不允许答辩,对有异议的论文要提交学术委员会做最后论证。虽然学院对毕业设计(论文)工作在各个环节上的审查都非常严格,但我们鼓励学生之间进行研讨交流,博采众长,相互提高,因为我们的目的不是抓出多少不合格的学生,而是想通过大学阶段最后的综合性实践教学环节训练,培养学生的学习能力、知识的综合运用能力、分析解决问题能力和沟通交流等综合素质。 三、严把答辩关,保证毕业设计质量 答辩是毕业设计(论文)考核阶段的最后环节,这个环节既是学院对学生毕业设计的验收和鉴定,同时也是学生对自己工作的总结和汇报。通过答辩,学生不仅展示了毕业设计工作的效果,更展示了自己的专业知识、技术水平和综合素质。作为教师,每年都要指导多个毕业设计(论文),而学生一生只能经历一次本科毕业设计,而且毕业设计答辩能否顺利通过,直接关系到学生毕业及学位资格的认定。因此对学生来讲,毕业答辩至关重要。这有点像外科医生与患者的关系:医生每年要做很多手术,对他们而言手术已是司空见惯,但对于患者本人,可能一辈子才上一次手术台,而且生命攸关。所以,我们要在毕业设计指导过程中,认真对待每一位学生。同时在毕业答辩中严格把关,保证质量,更要秉承“公开“”公正”“公平”的原则。我们的毕业设计(论文)答辩采用小组面试形式,每组由四位副高职以上教师组成,答辩流程如图1所示。答辩当天向学生公布成绩,毕业设计(论文)总成绩由开题成绩(10%)、中期成绩(10%)、指导教师成绩(10%)、答辩成绩(70%)构成。对于优秀的和不及格的学生,我们还会重新组建答辩组进行二次答辩。这是考虑到答辩组之间认同度的差异而导致评分标准出现偏差,可能有些答辩组打分会偏低,有的组打分会偏高,即各个答辩组评分信度不能达到一致。二次答辩可以有效地消减组间评分差异,从而使申报校优秀论文人选和未通过人选的确定做到公正、公平和有效。针对软件行业特点,我们通过强化实践教学环节,合理利用多方资源拓宽毕业设计(论文)选题途径、健全和完善毕业设计(论文)的监管机制等手段,确保了毕业论文质量的稳步提高。几年来,黑龙江大学软件学院的毕业设计(论文)质量受到校内外专家的一致好评,获校优秀论文比率一直位于学校前列。实践证明,加强毕业设计(论文)质量的监管,不但提高了学生工程实践能力、独立科研能力和创新意识,为学生进入工作岗位打下了良好的基础,进而也提升了学生的就业率。 作者:任美睿 金英 郭龙江 单位:黑龙江大学 软件工程毕业论文:论述软件工程的毕业设计运用 1软件工程在毕业设计中的作用 软件工程不仅是计算机科学与技术专业、软件工程专业的一门专业基础核心课程,也是其他相关专业,如信息工程、系统工程、信息与计算机科学、信息管理与信息系统等专业的重要应用技术课程。对于这些专业的学生来说,毕业设计多是以软件开发类项目为主,整个毕业设计就是开发一个软件。为了更好地完成软件开发类毕业设计,提高学生毕业设计的质量,进一步规范毕业设计中的软件开发过程是必需的。软件工程的思想正是用工程化方法构建和维护有效的、实用的和高质量的软件。按照软件工程思想,软件开发的生命周期分为可行性分析、需求分析、总体设计、详细设计、编码实现、软件测试和软件维护几个阶段。在学生的毕业设计中以软件工程的思想为主线,从软件工程的角度去指导学生进行毕业设计,挖掘软件工程在系统开发过程中的价值,解决毕业设计中存在的一些问题,既有助于学生更好地理解软件工程的方法、技术和思想,更有助于提高软件类毕业设计的质量。 2毕业设计中存在的问题 笔者在指导学生软件开发类毕业设计过程中发现,毕业设计存在着选题难、任务重、重视编码、轻过程、项目无法完成等现象。设计过程中没有严格地遵循软件工程的开发方法,没有规范的软件设计过程,项目能否成功主要依赖于个人能力和个人努力,这种不正确的开发方法带来了严重的后果。在项目开发的过程中常常存在以下几个方面问题: 2.1选题的盲目性 选题是毕业设计过程中的一个初始环节,选题恰当是做好毕业设计的前提,但选题不当的情况仍然时有发生。学生没有认识到毕业设计的重要性,纯粹是为了完成学业而做毕业设计,选题没有一个确切的目标,往往是随便选一个题目,造成选题的盲目性,出现了选题陈旧、选题范围狭窄、选题偏大等问题,使学生抄袭、完成不了毕业设计的情况时有发生。 2.2缺少软件的系统分析 软件开发过程的第一个阶段是系统分析,用来确定软件开发要解决的问题是什么?估算完成该项目需要的资源和成本,确定目标系统应该具备哪些功能,主要经历问题的定义、可行性分析和需求分析三个阶段。软件的系统分析确定了用户需求,同时对目标系统提出完整、具体的要求,引导开发者正确地构建系统。因此,对用户需求做出全面、正确的分析,对于最终软件开发类毕业设计的成败起着至关重要的作用。然而在完成毕业设计过程中,学生往往认为代码编写最重要,对软件开发过程中的可行性分析和需求分析阶段不重视,甚至没有系统分析,对整个毕业设计的完成造成了影响。 2.3软件设计过程杂乱无章 软件设计一般都要经历可行性分析、需求分析、总体设计、详细设计、编码和测试阶段。而部分学生在毕业设计开发的过程中,缺乏软件工程设计思想,跨越需求分析、概要设计、详细设计和功能模块设计,直接进行代码的撰写;或者从代码反推出模块设计;甚至在软件开发过程中,一边写程序,一边了解需求,程序完成了需求才确定。这种无序的软件设计过程,导致最终设计的系统杂乱无章、代码的重复率高、潜在?Bug多、系统的可集成性非常差、不能在规定时间内完成设计或者系统无法运行。 2.4开发过程中文档不完备 根据软件工程学的基本原理,软件=程序+文档,可见软件文档是软件开发过程中不可缺少的组成部分。软件文档贯穿于软件开发的各个阶段,是提高软件产品开发效率、规范软件产品开发过程、保证软件产品质量的关键。但在实际毕业设计中,很多同学认为把程序代码编出来了,毕业设计也就完成了,提交的毕业设计论文就是系统代码的复制,即只做出一个可演示可操作的系统,而忽略了软件开发的完整性、系统性。完整的毕业设计不仅包括可操作的系统,还包括在开发系统的过程中所产生的各个文档资料。文档的缺失会降低软件开发的效率、影响整个软件的开发、使用和维护。以上问题的存在,严重影响了毕业设计的进度和质量,没有达到毕业设计的目标要求。针对当前毕业设计的现状和存在不足,笔者认为应用软件工程学的思想指导毕业设计,对促进学生综合素质与工程实践能力培养具有积极意义。 3用软件工程思想指导学生进行毕业设计 3.1以可行性研究指导选题 可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。毕业设计题目的选择,应立足于解决工程实际问题,可由指导教师提供符合相关专业毕业设计要求的题目,也可以鼓励学生自己到社会、生产企业中寻求研究课题,培养他们自主学习的意识。选题过程以可行性研究为指导,从课题规模大小、难易程度、学生自己的研究方向、爱好、学生的知识层面和能力等多个方面进行考虑,对于选择的题目是否能够解决,确定在规定的时间内完成毕业设计的可行性。指导教师可根据学生选报的题目来指导学生对该选题进行调查研究,明确课题要解决的问题是什么,简要地写出关于问题性质、项目目标和项目规模的书面报告。可行性研究来指导毕业设计的选题,实质上是简化了系统分析和设计的过程,也是在较高层次上以较抽象的方式进行的系统分析和设计的过程,使学生对于课题的设计有个清晰的思路,为及时完成毕业设计提供了可能。 3.2重视软件的需求分析 需求分析的基本任务是准确地回答“系统必须做什么”,即确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求,不仅指明了系统设计时必须要实现的目标,也是软件设计、实现、测试和维护阶段的主要参考标准。用户需求的获取是软件开发中最重要、难度最大的工作,它贯穿于整个软件设计过程,不仅要涉及到软件开发方面的知识、应用领域方面的知识,还涉及到与用户沟通的能力。在进行需求获取和分析时,为了及时、准确地获取,可采用软件工程中比较成熟的方法,例如访谈、实际调查、UML的用例技术等。需求分析在软件系统分析与设计阶段起着桥梁的作用,确定了系统的需求,才能制定出软件设计的框架,保证毕业设计循序渐进、有条不紊地进行,避免后期开发过程的频繁返工,进而按时完成最终的任务。 3.3规范毕业设计过程 软件开发类毕业设计一般是开发一个软件系统,实现一定的功能。“麻雀虽小,五脏俱全”,无论软件规模的大小、功能的多少,都应该严格按照软件工程中软件生命周期每个阶段的步骤完成各项任务。要培养学生把软件工程的概念贯穿于整个毕业设计过程,也就是说,让学生把开发软件的过程看成是盖一栋大楼,修一条公路的实际工程,用工程化的思想指导毕业设计,确定完成课题的各项任务的工作步骤,注重软件类毕业设计的过程,而不是学生所认为的毕业设计就是编程序,代码调试通过即可。通过工程的概念规范毕业设计过程,让学生明白开发一个软件系统一般经过系统分析、系统设计、系统实施三个阶段,必须严格遵循软件生命周期的规律,完成各个阶段的任务,才能最终提高毕业设计的质量。 3.4重视文档的写作 软件工程中的瀑布模型严格地规定了在整个软件生命周期的各个阶段,都要提交相应的文档。文档不仅记录软件开发过程中的大量信息,在软件的开发、维护过程中也起着重要的作用。在指导学生毕业设计时,要求学生遵照软件工程的思想,把文档作为整个设计的指挥棒,记载设计过程的每一阶段完成的目标、任务及技术手段,建立健全毕业设计文档制度,确保毕业设计过程中的文献综述、译文、任务书、开题报告、选题审题表、中期检查表、设计(论文)正文、答辩记录等各环节教学资料档案完善、规范,实现对毕业设计的全程监控。 4结束语 软件工程是软件开发工程化、规范化的具体实施方法,将其应用到毕业设计中,不仅有助于学生对软件开发相关知识的巩固和实践,而且对解决目前软件开发类毕业设计中存在的问题,提高学生毕业设计质量,具有极大的促进作用。 作者:王晓王长波单位:湖北医药学院公共管理学院计算机教研室 软件工程毕业论文:开发编程的软件工程毕业策划研讨 1组织方式 实际上,上述选题机制是将分散的毕业设计引导形成基于团队的角色学习环境,学生在教师的统一带领下,对项目进行设计并划分模块,独立负责不同模块的开发,并且在教师的指导下,充分体验不同模块之间的沟通和集成问题,使学生能够贴近企业项目开发的实际情境,体会到实际项目身临其境的感觉,从而提高毕业设计对于毕业生的锻炼价值和质量。 敏捷宣言认为人和交互胜过过程和工具。以此原则为指导,在毕业设计实施过程中,要求学生组内成员和小组之间加强交流沟通,对于毕业设计过程中产生的文档,要求学生着重记录交流过程,而非交流结果。敏捷宣言认为客户合作胜过合同谈判,意义在于业务人员应该参与到项目开发的整体过程中,达到整个项目开发团队能够把握项目开发方向。对于软件工程毕业设计来说,意味着在选择毕业设计所涉及到的项目原型时,应尽量贴近学生实际,例如选择教务管理系统、教学管理系统、图书管理系统等学生经常接触和使用的应用系统,或是指导教学正在从事的横向或纵向课题。要求选择指导教学或学生自己能够扮演客户的角色,学生对于所开发的系统的需求了然于胸。 2管理方式 敏捷宣言认为可以工作的软件胜过面面俱到的文档,可以工作的软件是进度主要的度量标准。以此原则为指导,对毕业设计过程中要求撰写的文档可适当弱化,而是要求将项目程序代码保存到统一版本库,并保持版本库中的代码是可部署和运行的。极限编程的推荐实践方式认为对于项目开发应该尽早测试、经常测试、自动测试。在毕业设计的实施过程中,要求学生对于测试计划、测试用例及测试驱动开发(TestDrivenDevelopment,TDD)都有所了解,使用由学生指导教学编写的自动测试来监控开发进度,支持系统的演化,并尽早发现缺陷。上述管理方式就现阶段软件工程专业的毕业设计来看,实施比较困难,但应尽力发展,从而弥补现有人才培养方案中对于软件测试不够重视的缺陷。 极限编程推荐增量设计、开发和频繁重构。这也是毕业设计过程中应采纳的做法。对于一个指定的项目,要贯穿整个毕业设计过程,以各个阶段时间点为标志,要求学生以增量的方式来完善项目开发,在毕业设计过程中,要体现项目的渐进式开发,各个时间点都要求学生完成项目的相应部分,并且要求项目代码的主版本随时处于可部署、可运行状态,对于系统架构和代码结构等方面,可通过重构来优化。对于代码重构的的粒度和频率,可由指导老师根据实际情况具体把握,以模块化和符合软件设计模式等特征为参考依据。 3考核方式 鉴于以上组织和管理方式,在进行毕业设计(论文)考核时,应在传统的毕业答辩环节考核基础上,考虑以下因素:一是在毕业答辩考核时,要注重考查学生所写代码的功能,而不是形式上的开发文档。二是极限编程推崇结队编程(PairProgramming),因此,在毕业设计进行过程中要求学生不要局限于自己的毕业设计课题,而应该是两个人一起完成两个课题,双方都参与到对方的项目中去。在毕业答辩考核时,也应采取相应的考核办法,交叉检查学生的编码工作量。三是极限编程提倡短周期。也就是说,毕业设计过程中,应该交付多个可运行的系统版本(功能是递增的,但指定功能的版本是可用的)。因此,在毕业答辩过程中,要求学生就系统的多个可运行版本进行演示。总而言之,软件工程专业的毕业设计(论文)的考核,除了依据传统的毕业答辩考核标准之外,还需结合敏捷开发和极限编程的特点,综合考查编码协作、增量设计、测试驱动开发、持续集成等特征是否体现在学生毕业设计(论文)中。 典型过程及相关支撑工具 在确定指导老师和设计课题后,学生将展开毕业设计的具体过程,根据以AD和XP为指导思想的典型毕业设计过程,具体过程如图1所示。以上典型过程中的具体步骤,都有成熟的支撑工具可选用,使整个毕业设计过程实现信息化管理,其中项目管理工具可使用PivotalTracker,测试管理工具可使用MercuryQualityCenter,自动测试可使用开源集成测试环境,如Jenkins,代码管理工具可使用VisualSVN(服务器端)和TortoiseSVN(独立客户端)及SubclipseSVN(IDE集成客户端)。 软件项目管理工具PivotalTracker是由公认的敏捷软件开发老大PivotalLabs开发的基于故事、简单、有效、敏捷的软件项目管理工具,适用于各类型的项目,并通过敏捷项目管理的理念让项目能够有条不紊的进行,使项目的开发效率大大提高。操作界面如图2所示。 测试管理工具MercuryQualityCenter提供了基于Web的,可在广泛的应用环境下自动执行软件质量测试和管理的功能,使IT团队能够在开发流程完成前就参与应用程序测试。这样将缩短时间表,同时确保最高水平的质量。操作界面如图3所示。版本库管理工具SVN是用于实现对代码、文 件等的修改、删除、增加等操作进行记录,并且可以追溯每个修改细节的通用工具,它基于C/S架构,需要服务器和客户端软件,其中SVN服务器可以使用VisualSVN,独立客户端可使用ToitorseSVN,而IDE集成客户端可使用Subclipse。 结语 软件工程专业毕业设计具有鲜明的实践特征,需要具体的实践原则做为指导来提升毕业设计(论文)的质量。我们引入敏捷开发和极限编程的相关原则,构造软件工程专业毕业设计的具体实施过程,并将其应用于实际教学过程中。下一步工作将对于这一全新的探索和尝试,在实践过程中针对具体出现的问题进行改进和完善,使这一毕业设计模式更加适用于软件工程专业,并在条件成熟时向计算机相关专业推广。 作者:曾志浩肖小克单位:湖南工业大学计算机与通信学院 软件工程毕业论文:软件工程毕业策划的管制方案探新 规模使得精细化指导与管理变得困难 原有毕业设计环节管理由于参与指导的教师人数相对较少,每名教师指导的学生也不多,而且所有教师均为本系教师,大家彼此非常熟悉,在一起教学研讨的时间也很多,所以大家对各环节的要求及约定比较容易统一,对每个学生的指导时间也较多。但随着参与指导毕业设计教师数量的提升,指导学生数的增加,特别是聘请了外系教师的支援,原有会议讨论式、心理记忆式的约定及规则已经不能适应管理要求。这就必然要求规范毕业设计环节的管理,统一考核指标,让大家在一个统一的框架下实施毕业设计的指导与考核。 软件过程及评价主观性强 软件及开发是个主观性强,知识、劳动密集型工作,同一个项目或任务,由于每个人项目经历、经验的不同,不同的人所得出的满足需求的合格产品是肯定有区别的,但在质量、灵活性、可扩充性方面可能存在很大差别。同时,对于软件产品,不同人会有不同的评价,具有强主观性的特点。这种强主观性使得对毕业设计的评价难以用客观的量化的评价指标和体系进行度量,对教师间把握统一的考核尺度制造了困难。 师生面对面交流机会越来越少 由于就业形式的变化,各本科院校的培养模式也作了一定的改变,为了让学生能更方便的外出找工作,更早的接触社会,大部分高校第八学期除了毕业设计,基本上就没有其他的教学任务。重庆理工大学也存在类似情况,在第八学期,大部分学生没有待在学校,有的在外联系工作单位,有的提前到单位实习,甚至有的以在外找工作为借口待在家里,学生的分散性使得教师和学生之间面对面交流的机会少之又少,给毕业设计环节的指导和管理工作带来了难度。 选题类型趋于多样性 为了培养学生层次、方向的多样化,软件工程专业的毕业设计不仅只有传统的系统分析、设计与开发类的题目,还涉及论文类及算法类等类别。根据对前几届毕业设计环节的综合统计,系统分析设计开发类选题所占分量最多,占70以上。由于不同题型的毕业设计需要应用的知识、实施过程、考核重点都存在很大差异,不同题型之间的考核没有对比性,因此需要针对不同的选题类型制定相应的考核指标和评价标准。 现有管理中存在的问题 毕业设计是一次综合锻炼学生应用所学知识解决问题能力的过程,涉及的环节比较多,存在的问题也不少。综合分析,存在以下三个典型问题: 1历史题目重复率高,抄袭现象难以控制 每年都有几个班的学生毕业,毕业设计都要实施。在纸质时代,抄袭成本大,抄袭源也比较难找到,因此抄袭现象相对较少,不同届学生的题目相同并不会影响毕业设计质量。然而,随着互联网技术在给广大民众带来方便的同时,也给学生的偷懒提供了契机。由于大部分学生在外实习,教师很难有效的监督学生,有相当一部分学生考虑到自己毕业后不从事软件开发等相关工作或工作比较忙,不愿意投入时间好好地完成毕业设计,而是从互联网抄袭,甚至通过互联网购买。 2学生对考核的公正性存在质疑 由于参与综合实践环节的学生人数和指导教师规模越来越大,综合实践环节在进行质量考核时必然要进行分组。由于大家没有统一的考核指标体系及标准,同一水平的毕业设计处于不同考核小组,可能得出截然不同的成绩;甚至有指导教师认为较好的论文在答辩时被判为不及格现象。造成的严重后果是学生对论文评审、答辩过程公平性的质疑,对学校的声誉带来不良影响。其原因是由于不同教师间、各不同小组之间缺乏一个统一的评判标准,分组的不均匀分布而导致了评审的不公平性。 3学生难以获取实际需求 由于学生人数众多,只有少部分学生能参与到教师的实际科研项目中,大部分学生只能以虚构的题目为背景,没有具体的企业为依托。因此,很获取项目的具体而详细的需求,学生所完成的也只能是一些通用功能的系统,系统业务逻辑比较简单,甚至基本没有业务逻辑,仅仅是简单增加、删除、修改等功能的拼凑,不能真正体会到系统分析和设计的内涵。 软件专业毕业设计管理对策 软件工程专业毕业设计管理是很多高校都比较棘手的问题,也有不少教师已提出了一些很好的策略。根据对多年毕业设计执行情况的分析与总结,作者认为软件工程专业毕业设计管理和考核中存在众多问题的主要原因有以下三点:重结果轻过程的考核方法;缺乏统一的考核评价体系;管理过程不规范,随意性大。因此,本文主要从建立量化考核指标体系、规范毕业设计过程管理和其他一些辅助策略进行探讨,如图1所示。 1建立量化考核指标体系 建立量化考核指标体系包括细化考核指标和建立考核评价体系两部分。考核指标体系是一把双刃剑,它除了可以对学生的毕业设计过程和结果进行考核外,也给学生提供了完成毕业设计目标的指导。在实际操作中,将对毕业设计的考核从过程检查、评阅、答辩等几个环节进行考虑,各环节又有细分指标,如论文选题、工作量、分析设计,程序运行、系统界面、论文结构、熟悉程度等,用权重表示指标的重要性程度,每个指标有几个不同得分等级,每个等级对应一个可参考的评判标准,从而将以前的主观考核变为根据指标进行量化计算,有效地减少人为因素对评价的影响。 2规范毕业设计过程管理 传统的考评方式重视对结果的考核,缺少对过程的考核,大多数学生在进行实践环节任务时,没有一个良好的系统分析、设计、开发习惯,完全是“灵感触发”式的完成的,因此最终提交的往往是低劣的文档或代码。软件产品是知识密集性产品,实践证明,有效的过程管理是生产出好产品的一个必要条件。因此,必须规范毕业设计的课程管理,借助于3.1节建立的考核体系,对过程中的开题、需求文档、设计文档等关键环节进行考核,使学生在完成毕业设计的每一步时有明确目标的指导,通过过程的管理促使学生完成高质量的毕业设计成果。为了减少人为因素的影响,有必要建立毕业设计过程管理及控制系统,用管理信息系统规范毕业设计的过程管理。 3采用团队培养模式 系统分析与设计的能力是软件工程专业学生需要培养的一项最主要能力,而简单的系统开发或项目由于功能简单、业务单一,对锻炼学生的系统分析和设计能力作用不大。因此,可以采用多名学生组团共同完成一项较复杂系统的方式,每名学生负责其中的一部分,学生之间通过对复杂点的业务逻辑的讨论来提高系统分析和设计的能力,通过团队合作来了解项目管理与软件工程方法的精髓。 4与企业合作指导 由于企业面对的都是实实在在的项目,有自我学习的环境氛围和压力,在培养学生动手实践能力方面有其独特的优势。在企业,每天都有相应的任务,在完成任务过程中,必然会碰到各种类型的问题,会寻求问题的解决方法,在解决问题的过程中很自然地就提升了自己的能力。这种任务驱动的学习方法和实际项目环境下的压力在学校是很难提供的。近些年来,学院也在加强与企业的合作,在有条件的情况下尽量派学生深入到公司、企业进行实习,已签约的学生也可以提前到签约企业工作,以企业的项目来完成其毕业设计环节,实现企业、学校共同指导的方式。 结束语 毕业设计环节由于实践性、综合性强,涉及知识点多,其管理与考核一直是让人头疼的问题。论文描述了重庆理工大学软件工程专业毕业设计环节的背景和现状,指出了软件工程专业毕业设计质量难于管理和考核的特点。通过对近几年毕业设计开展情况的总结与分析,发现了毕业设计质量难于考核和控制的具体原因,并指出当前毕业设计管理和考核所存在的问题,最后提出了解决这些问题的一些具体实施策略。结果表明,策略的实施对毕业设计过程的管理及考核答辩工作有较大的作用,学生毕业设计质量有了显著的提高。 作者:刘智王森闫河单位:重庆理工大学计算机科学与工程学院 软件工程毕业论文:软件工程思想在应用型高校毕业设计中的应用 摘要:针对地方应用型本科高校计算机软件类毕业设计质量不高的问题,对毕业设计中存在的问题进行分析,并结合软件工程的基础理论,提出利用软件工程思想对计算机软件类毕业设计进行指导,以提高地方应用型普通本科高校毕业设计的质量。 关键词:软件工程;毕业设计;应用 一、引言 毕业设计是本科毕业生在校期间的最后实践和综合实训阶段,是实现本科教育培养目标的重要组成部分,是深化、拓展、综合应用所学理论知识的重要过程;也是综合素质与工程实践能力培养效果的全面检验;是学生毕业及学位资格认定的重要依据;是衡量高等教育质量和办学效益的重要评价,是对专业理论知识和专业技术综合应用能力的强化训练和提升[1]。在毕业设计的过程中,学生利用所学专业理论知识,通过了解社会,分析社会需求,深入实践,完成毕业设计的任务和撰写毕业论文(设计)报告等各个环节的工作。对于地方应用型普通本科高校而言,毕业设计就相当于一般高等学校的毕业论文,但是毕业设计不同于毕业论文,它的组成部分不只是一篇学术论文。应用型高校的毕业设计注重的是“应用性”和“实践性”,学生毕业设计要求学生针对某一课题,综合运用本专业有关课程的理论和技术,自己动手动脑做出解决实际问题的设计。目的是总结、检查学生在校期间的学习成果,是评定毕业成绩的重要依据。同时,通过毕业设计,可培养学生开发项目的基本综合能力,为学生就业能力中的专业能力奠定坚实的基础;培养综合运用已有知识独立解决问题的能力,从而加强学生应用能力的培养,使学生能够学以致用。 二、地方应用型普通高校计算机相关专业学生毕业设计的现状 近几年来,由于学校对毕业设计要求不断提高,学生从选题到设计再到写出毕业设计报告的过程中总存在这样那样的问题,最终有个别同学没有顺利通过毕业设计,没有拿到毕业证和学位证的情况时有发生,并且大多数毕业设计的水平不高,达不到培养学生独立解决问题和提高学生应用能力的目的。因此,如何指导学生做好毕业设计,提高学生毕业设计水平和质量,是地方应用型普通高校面临的一个重要问题。 (一)毕业设计选题现状最近几年,我校计算机相关专业毕业生自进入大四秋季学期开始,在进行毕业实习的同时,也进入了毕业设计准备阶段:毕业设计选题,虽然毕业设计选题过程中,各级领导、指导教师和学生在态度是都很重视,但是在选题时也会存在很多的问题,主要有以下三个方面。1.选题不够准确。部分学生选题未经深思熟虑,所选毕业设计题目要实现的功能太多,在规定时间内不能独立完成,而最终只能实现部分功能,或部分模块。 2.题目相似或重复雷同。学生选题存在浑水摸鱼的思想,在毕业设计选题过程中不是根据自己的兴趣爱好、专业知识学习情况等确定研究选题,而是选择与他人类似或雷同的选题,甚至同一批毕业的许多学生选题一致。比如:“XX管理系统”等,除了可能冠以的系统名称不同之外,其余基本相同。 3.应用价值低。部分学生的选题是当前十分成熟的项目,没有研究的必要;有些选题已经被淘汰,在实际生活和工作中没有多大用途。 (二)毕业设计需求分析阶段现状 通过调查,许多学生选题完成后,没有对自己所做毕业设计选题进行仔细了解、分析,他们认为在毕业设计中最重要的就是编程,其他方面一带而过[2],从而造成毕业设计过程中主题经常进行修改,最终使得整个系统杂乱无章,无法继续进行下去。因此学生在毕业设计的需求分析阶段主要有以下三个方面的问题。 1.选题后未进行实际调查研究,甚至未查找相应的参考文献。 2.需求分析进行得不彻底、不准确,即使选题后查找了参考文献和资料的,也未做充分了解和分析。 3.在需求分析阶段没有写出需求规格说明书或系统分析报告就匆忙进入系统设计阶段,导致随着系统设计的逐步深入,原来确定的需求不能满足毕业设计的需要,正在进行的设计与开始的期望和设想又不相符。 (三)毕业设计系统设计阶段现状 在系统设计阶段,普遍存在以下两个方面问题。 1.由于需求的不明确,在进行系统设计时,修改随意,没有严格按照软件开发的步骤进行。好多学生在进行系统设计时并没有建出相应的功能模型,不管是用例图还是DFD图都没有,而且系统设计过程中功能随意变换,并且各功能模块的层次结构不清晰,使得整个系统的功能模块划分凌乱,不符合软件设计中“高内聚,低耦合”的原则。 2.在软件设计过程中,不先进行概要设计、详细设计和模块设计,没有软件的过程性描述,直接进行编码,存在想到哪里就做到哪里,走到哪儿算哪儿的随意思想[3],当前内容没有做完便开始其他内容,使得整个系统设计杂乱无章。在这样的一种研究状态下,即使完成了设计,效率也非常低下,软件结构混乱,功能实现不完全,降低了软件设计的质量。 (四)毕业设计实现阶段现状 通常把编码和测试统称为实现。在进行软件设计后,就可以根据设计结果来实现,将软件的过程性描述编码,得到计算机可以运行的源代码。在实现阶段主要有以下几方面的问题。 1.编码随意。学生在编码的过程中,不注意编程风格的把握,导致程序的可读性、可理解性、可修改性等较差,在答辨的过程中,要求指出某个功能模块的代码时,经常要花费很多时间才找得到。 2.测试和调试可有可无。大部分学生在毕业设计的软件编码完成以后,从没有想过进行完整的系统测试,或者只对个别功能进行测试或是随意测试,没有按照测试步骤逐步进行;基本没有单元测试和集成测试,一般只是最终随便输入几个数据简单检测一下,如果有错,修改了就算完了;也没有进行回归测试,没有测试计划,没有想过用什么测试技术来检测某一类型的错识,没有相应的测试用例,也没有测试结果分析。由于学生毕业设计都是一人一题,基本上是一个人完成所有步骤,就算有测试,在测试阶段也是自己进行测试,从心理学的角度来说,自己对自己开发的软件进行测试是不可取的。由于前面阶段的文档不完善,也不重视测试过程,不清楚是否实现了系统最初设计的功能,是否达到相应的性能要求,总以为程序做出来后毕业设计就完成了,使得毕业设计经常在更换运行环境或答辩时发生错误和问题,从而使得设计得不到好评甚至无法通过。 (五)毕业设计应用现状 最近几年,我校计算机相关专业毕业设计投入使用数量接近于零。究其原因主要是由于设计不完全,未进行测试和调试,存在的错误和缺陷较多,文档和数据不完整,导致所开发的系统或软件不能方便地转让、变更、修正、扩充和使用,也没有为后期培训、维护留下完备的资料;因此,不能投入到真正的使用过程中,也不能实现系统或软件产品的效益。 三、软件工程思想的应用 软件工程(SoftwareEngineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。软件工程中的软件生命周期是一个软件从软件定义、开发、运行和维护,直到最终被废弃的整个过程[2]。地方应用型普通高校计算机相关专业学生毕业设计基本都是开发一些中、小型应用系统或软件,因此,学生毕业设计也要经历软件生命周期各个阶段,严格遵守软件工程的各个原则,这样有助于解决毕业设计中存在的问题,提高毕业设计的质量。通过对应用型普通本科高校计算机相关专业的学生在进行毕业设计的过程中存在的问题进行分析,在毕业设计的过程中,必须运用软件工程的观点、技术和方法来指导毕业设计,这样既节约了毕业设计的时间和学生的精力,也能做出最优质的毕业设计。 1.选题过程中的应用。毕业设计选题就是软件生命周期的问题定义中的问题提出阶段,选好题目是进行深入研究的基础,也是写出高质量毕业论文的前提。地方应用型普通本科高校计算机相关专业的毕业设计选题必须做到以下几点:(1)必须在对选题做了充分调查、分析,对检索的参考文献、资料有了整体把握的基础上提出。(2)必须符合本专业培养方案规定的培养目标的要求。(3)以选择工程性较强的课题为主,确保有足够的工程性训练。(4)要有明确的设计成果,对于较大型任务的课题要明确阶段性成果。(5)要达到规定的工作量,难易度适中,确保能在规定的时间内完成整个课题工作。(6)要围绕生产生活实际,所选题目一定具有一定的理论意义和实践意义,具有一定的价值。(7)原则上一人一题,对于较大型任务的课题,每个学生必须有独立子课题。结合以上几点,分别从专业基础、现实意义等方面进行全面分析,进行取舍,最终得出选题。 2.开题过程中的应用。在毕业设计的开题过程中,需要明确所选题目的选题依据(包括选择课题的背景、选题研究的理论及实践意义)、选题研究现状(包括目前国内外对本选题的研究情况和有待解决的问题)、研究内容与方法,而这些就是软件工程中需求分析阶段应该做的事情。需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作[3]。因此开题过程中最重要的是进行需求分析,需求分析具有决策性、方向性、策略性的作用,在软件开发的过程中具有举足轻重的地位。需求分析完成的好坏直接影响后续软件开发的质量。开题过程中需要指导学生大量地阅读相关的研究资料,同时根据资料进行分析研究,对当前毕业设计的研究进度做到心中有数,明确毕业设计的具体方向,写出毕业设计的研究内容与方法,得到相应的设计提纲,解决好设计什么,如何设计的问题。因此,应用好软件工程的思想来指导毕业设计的开题是至关重要的。根据学校对学生毕业论文的要求,在计算机相关专业的毕业设计报告中,要求要有数据流图、数据字典等相应内容,而软件工程中的数据流图(DataFlowDia-gram,简称DFD),它是从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程。它是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理[3]。因此,在这个阶段,要指导学生按照DFD图的要求,确定设计的功能,然后根据系统分析结果写出分析报告,就得出毕业论文中系统分析阶段的初始文档。 3.在实践研究环节的应用。根据需求分析(开题阶段)的结果进行软件的概要设计和详细设计,注意在设计过程中要严格按照软件工程对于设计阶段的指导原则来进行设计。将概要设计阶段需求分析得到的DFD转换为软件结构和数据结构,即是根据需求确定软件和数据的总体框架,设计出软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。然后再进行详细设计,设计出每个模块的实现算法、所需的局部数据结构,并且对每个模块写出过程性描述;为每个模块设计出一组测试用例,在进行测试时就以此测试用例来进行测试。详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后将根据这个“蓝图”写出实际的程序代码。因此,指导教师要对学生的设计过程进行监督和指导,防止学生盲目的进行编码。 4.在实现阶段的应用。在编码的过程中,要注意编程风格的把握,编程的风格在很大程度上影响程序的可读性、可测试性和可维护性。在测试阶段,可以进行交叉测试,即学生之间可以两两交叉,相互测试,以更好的达到测试效果,同时也培养了学生的团队意识和合作意识。在测试过程中要注意运用软件工程的测试原则和测试思想,严格按照单元测试集成测试确认测试系统测试验收测试的测试步骤进行,利用白盒测试技术进行单元测试,黑盒测试技术进行其他测试,并且在找出错误并修改后要进行相应的回归测试,确认修改了错误并且没有引入新的错误,这样有利于找到软件中的各类错误,提高软件的质量。因此,在软件的测试过程中,一定要严格按照软件工程中的测试原则来进行,不可随意进行测试,并且要注意测试文档资料的收集整理,要有相应的测试计划和测试报告。对学生的创造性的思维和想法,指导教师要给予支持,积极引导,鼓励学生大胆创新,用应用型人才培养目标来要求学生,保证高质量的毕业设计的完成。 5.在毕业论文(设计)报告方面的应用。对于应用型普通本科高校计算机相关专业的毕业设计而言,不单单是完成了一个系统的设计,还要有相应的设计报告,而设计报告的编写过程中,很多学生存在文字表达能力不强的现象,为了完成报告,就有可能会抄袭,特别是在软件开发的各个阶段文档材料不全的情况下更为严重。因此,在学生进行软件开发的各个环节中,指导教师都应该按照软件工程的观点来进行指导,并要求学生在各个阶段都完成相应的文档。这样在毕业设计报告撰写的过程中,只要将各个阶段的文档进行合并、整理就得到相应的设计报告,并且是一篇重复率不高的高质量的设计报告。6.在毕业设计实际应用方面的应用。因为学生在整个系统或软件过程中均按软件设计规范准备了文档和进行了完整的系统测试,从而为系统或软件的专利申请提供了充分必要的资料,并为毕业设计的实际应用打下良好的基础。 四、结语 计算机相关专业学生的毕业设计在学生的整个大学生活中具有极其重要的地位和作用,根据应用型普通本科高校人才培养的定位,主要是培养学生的独立思考能力、动手能力和应用能力。通过对软件工程思想在计算机相关专业学生毕业设计的过程及方法中的应用研究,逐步实现学生毕业设计的实际成果转化,从而为应用型计算机相关专业人才培养提供相应的借鉴。 作者:龙亚 张仕学 余廷忠 单位:贵州工程应用技术学院 软件工程毕业论文:软件工程专业毕业设计论文 1概述 在应用型本科院校中,尤其是软件工程专业,毕业设计作为教学计划的重要组成部分,是实践教学中的最后一个环节,也是对学生在校期间所学知识的一次综合、全面的总结、应用和提高。由于毕业生数量的不断增加和软件行业的迅猛发展,导致就业门槛越来越高,就业压力也越来越大,通过毕业设计过程中的训练,能有效提高学生的工程应用能力,使学生得到一定的实践经验,有利于学生从学校向工作岗位的平稳过度。因此,毕业设计质量的好坏,不仅反映了一所高校的教学质量,也会直接影响到学生的就业竞争力和就业后的职场适应能力。 2存在的问题 1)思想认识上不够重视学生方面:有些学生存在完成任务式的应付心里,避重就轻,能简就简,敷衍了事。有些学生则只重视找工作而轻视毕业设计,不愿在毕业设计上花费太多时间和精力,甚至有些学生还以找工作为由,完全依赖于导师,向导师索要源代码,甚至花钱在网上购买来交差。已经找到工作的学生,更是认为毕业设计做的好与不好对自己没什么影响,对待毕业设计也更加心不在焉。导师方面:大多数指导教师除了要指导学生毕业设计之外,还要承担大量的教学和科研任务,在毕业设计指导工作上能够投入的精力和时间非常有限,致使有些导师对毕业设计的指导工作不太重视,对学生放任自流,不管不问,或者是直接将相关源代码发给学生,以“简化”指导工作。由于思想上的不重视,学生学习态度不认真,导师指导工作不到位,造成毕业设计流于形式,疏于管理,效果较差,使得学生白白浪费了毕业前的一次综合训练机会。因此,如何充分认识毕业设计的重要性,并进行相应的教学改革是软件工程专业毕业设计必须要面对并解决的问题。 2)时间安排上不够科学毕业设计一般安排在第八学期,这期间刚好是学生求职和考研的黄金时间段,由于目前就业形势的日益严峻,学生就业压力越来越大,当求职和考研时间与毕业设计时间发生冲突时,学生都会选择将主要精力投入到求职和考研上,有些还要去外地求职、应聘考试、面试等,毕业设计自然是无暇顾及。而且,学校方面,为了保证就业率,往往对学生毕业设计的质量也是睁一只眼闭一只眼,这又在无形中鼓励了学生消极对待毕业设计的态度,毕业设计质量下降也就成为必然结果。 3)题目设置上不够合理由于毕业设计在高校各类教学活动中是最具综合性和独立性的,相对于常规课程而言,对指导教师要求也就更高,尤其软件工程专业,工程实践性比较强,但每年真正来源于实际工程项目的题目所占的比例较小,很多题目都是虚构出来的,导致有些题目不是理论性太强,就是缺乏具体需求的支撑,使学生很难从毕业设计过程中真正领悟到真实的软件工程方法。而有些指导教师自己都没参与过实际的工程项目,本身就缺乏实践经验,对学生毕业设计的指导只是凭着自己的感觉来进行,缺乏系统性、整体性、科学性和严谨性,学生遇到问题后,难以得到及时的解决,导致抄袭现象时有发生,甚至有些学生直接照搬往届毕业生的设计成果。毕业设计的主要目的在于通过毕业设计的训练来提升学生对所学知识的综合应用能力以及创新能力,从而实现学生从学校到工作岗位的平稳过度。但由于题目设置上的不合理,题量太少,层次不清,导致选题匹配效果差。在选题时,部分能力差的学生所选题目难度太大,造成毕业设计很难完成,而有些能力强的学生所选题目难度过小,达不到能力提升的目的。 4)过程监管上不够到位众所周知,对于软件工程项目而言,过程控制与管理是项目执行的关注点,毕业设计也当如此。虽然学校也会在毕业设计过程中组织对各阶段的工作情况进行检查,但执行检查工作的不一定是专业教师,使得这种检查大多只是对指导老师所填写的各种表格和文档等表面内容进行检查,对毕业设计的过程起不到实际的监督作用,再加之有些学生在校外求职或实习等原因造成指导教师与学生无法定期见面和沟通不畅等问题,使得指导教师难以用软件工程方法对学生进行指导。毕业设计虽然启动较早,但实际上很多学生前期在毕业设计上很少投入时间和精力,只是在答辩前为了完成任务而赶工应付,这样的毕业设计质量自然也就不佳。 5)量化考核上不够严格毕业设计成绩一般由平时成绩+论文成绩+答辩成绩三部分按一定比例构成,平时成绩由指导教师自行把握,论文成绩则由其他有经验的教师进行评阅,答辩成绩由答辩委员会老师按照相关评分标准打分并取平均分,这样虽然基本可以保证成绩的公正性,但成绩构成太简单,未显示地将开题报告、文献翻译、分析和设计过程以及总结等纳入到考核范围,对毕业设计的前期和中期工作没有约束力。在成绩评定时,有些导师要求不严,采取宽容迁就的态度。答辩时,通过门槛较低,造成大部分学生仅以答辩及格为目标,在思想上不重视,答辩准备工作不扎实。同时,学校为了提高学生毕业率,在最终答辩时,对毕业设计的质量要求也有所放松,这也是导致毕业设计质量难以保证的一个重要原因。 3采取的对策 时间安排上,可以提前启动毕业设计工作,将原来的第八学期开始提前到第六学期中后期,此时学生已经学完大部分课程,具有了一定的知识基础,而且学生都在校,可以随时与导师见面,指导教师也有充分的时间对毕业设计项目随时跟进,随时指导。导师资格审查上,对于软件工程专业来说,学生毕业设计的导师,应该由长期从事实际工程实践或者有较好科研成果的“双师型”(双师即“教师”、“工程师”)教师来担任,也可以聘请校外科研单位或企业中水平较高的工程师来担任企业导师,这样不仅可以减轻指导教师短缺的压力,也能促进指导教师队伍多元化模式的形成。题目设置上,要求题量要充分,使得水平层次不同的学生都能选到合适的题目;难度和工作量要适中,且要有一定的创意,使学生通过毕业设计的训练,在综合应用能力和创新能力上都能够得到有效的提高。有课题的指导教师要尽量结合自己的课题来设计题目,没课题的指导教师可以从与学校有合作的企事业单位中获取有实际意义的题目。鼓励学生根据自己的兴趣点和就业取向自拟题目,允许学生到实习企业中根据企业的实际工程需要选题和实施毕业设计,这样既能解决实际问题又可完成毕业设计。过程监管上,首先要在指导教师和学生之间建立有效的沟通联系机制和问题讨论的例会制度,充分发挥指导教师的引导作用,在毕业设计过程中,坚持每周师生沟通一次。学生提出问题,指导教师引导和总结,鼓励学生发挥主观能动性和创造力。同时,学校要成立由领导牵头、具有一定工程实践经验的专业技术人员组成的督导组,对毕业设计过程包括选题、开题、中期检查、答辩和成绩评定等各个环节实施有效的监控和督导,加强管理学生的同时也要加强对指导教师工作质量的检查,确保毕业设计工作能够有序、有效的实施。量化考核上,要对毕业设计从前期的开题、文献查阅,到中期的分析、设计、实现,再到后期的总结等各个阶段的进行量化考核,前一阶段的成绩考核不合格者,不能进行下一阶段工作,必须加以整改,直到整改合格后才能进入下一阶段。对于未能按要求如期完成毕业设计的可以推迟答辩,对于首次答辩不合格的可以进行二次答辩,仍不合格的,可以缓发毕业证。只有建立严格的考核制度,才能对学生有约束力,让学生从思想上重视毕业设计,进而保证毕业设计的质量。 4结束语 软件工程是一个实践性很强的专业,软件工程专业的毕业设计作为大学四年学习的总结,是学生从学校跨入社会前仅有的一次大检验,它不仅检验了学生对所学知识的综合应用能力和学生的综合素质,同时也检验了学校的培养模式和教学质量。毕业设计质量的好坏,不仅关系到软件工程专业的培养目标,也关系到学生的就业率与就业质量。因此,在就业形势日趋严峻的情况下,软件工程专业毕业设计的教学改革也要适应就业市场需求,紧跟行业发展变化,与时俱进。 作者:张华 单位:南阳理工学院 软件工程毕业论文:软件工程毕业设计改革实践 一、软件工程专业毕业设计存在的主要问题 (一)毕业设计题目设置与选题方面 题目设置不合理,类别与层次不清晰,选题匹配效果差[2]。学生的毕业设计课题一般都按照指导老师的研究方向和实际工程项目提供,但每年真正来源于工程实践题目比例较少。部分题目理论性强,学生根据所学知识不能很好理解;部分题目开发工具复杂,占用了毕业设计的大部分时间。在选题时可能导致学生想选的题目选不上,能力差的学生所选题目难度大,影响学生的积极性,导致选题效果差,造成毕业设计很难完成。 (二)毕业设计过程监控方面 毕业设计监控工作实施困难,效果较差。软件工程专业毕业设计一般包含选题、开题、中期检查、程序测试、撰写毕业论文、答辩、成绩评定。但对这些环节的监控有时候会形成空白带,毕业设计不在实验室进行,有的学生在实习单位实习,有的学生在外地找工作,老师不能定时与学生见面,老师无法了解学生的具体情况,且学生提交的各阶段文档流于形式,只有指导教师在进行监控,未形成完善的监控体系,导致监控不到位,监控效果较差[3]。 (三)毕业设计论文答辩方面 答辩考核方法单一,答辩仅由学生的讲解和老师的提问两个环节组成,考核准确度低。答辩通过门槛较低,答辩只对学生的毕业设计进行排名,一般排名在最后的学生才可能不及格,不利于提高学生毕业设计积极性,造成大部分同学仅以答辩及格为目标,思想上不重视,答辩准备工作不扎实。再由于软件工程专业特点,毕业设计软件作品评分标准难于量化,考核具有一定难度,也造成答辩效果不好。同时为了提高学生毕业率和就业率,毕业答辩的质量控制有所放松,直接导致了软件工程专业毕业设计质量难以保障。 二、软件工程专业毕业设计的教学改革 针对上述各项实际问题,主要进行的相关工作具体如下: (一)合理设置毕业设计题目,动态选题 依照软件工程专业的以市场需求为导向,培养应用型软件工程人才的培养目标,在毕业设计题目设置环节,紧紧围绕工程实际型、创新项目型、竞赛题目型、科研项目型等类型进行题目设置,以适应市场动态需求。同时着力避免在毕业设计题目中设置虚拟型题目、理论研究型题目、综述型题目、分析设计型题目等。在选题过程中,通过毕业设计管理系统(如图1所示)进行多轮双向动态选择,动态调整题目各项技术参数以保证学生能选择一个适合自己能力且能有利于自己以后工作的题目[4]。这样,在选题之后,每个指导老师就可以根据学生不同能力进行分别指导,使不同能力的学生都能够运用其所学知识解决工程实际问题,都能够通过毕业设计增强工程实践能力、工程设计能力与创新能力。近四学年软件工程专业毕业设计各类题目汇总。 (二)毕业设计过程实行三级监控管理机制 学校成立以主管副校长为组长的毕业设计工作领导小组以加强毕业设计宏观调控,学院成立以教学副院长为组长的毕业设计工作领导小组以加强毕业设计协调与监控工作,软件工程专业成立以专业负责人为组长的毕业设计工作小组落实并实施毕业设计各环节具体工作[2]。具体参见下图2。在实现毕业设计过程管理的三级管理机制的同时,为保障毕业设计工作质量,软件工程专业要求所有指导教师必须具有中级以上技术职称或硕士以上学位且有一定工程实践经验,具有较高教学、科研水平和创新能力,师德良好,工作态度认真负责。在每年的毕业设计指导工作开始前都对指导教师进行资格审查,择优任用,且每位教师指导的学生不超过6人,以保证指导教师对学生的充分指导[5]。 (三)毕业设计过程量化考核 以往软件工程专业毕业设计成绩通常由三部分组成:一是学生的平时表现由指导老师把握;二是学生的毕业论文成绩。由专业其他指导老师进行评阅;三是现场答辩成绩。由所在组的指导教师按照相关评分标准打分并取平均分。这样基本能够保证毕业设计成绩的公正,但是由于只有毕业答辩环节具有约束力即答辩未通过则总成绩不及格,其他环节不具约束力,因此造成毕业设计前期、中期工作流于形式,前期、中期阶段提交的文档趋于应付、质量不高,最终导致毕业论文质量较低[6,7]。为此,软件工程专业经过几年的探索与实践,实施了毕业设计各阶段的软件工程生命周期量化考核法即各个阶段量化考核,且考核成绩不合格者不能进行下阶段毕业设计工作,必须加以整改,整改通过后才能进入下一阶段毕业设计工作。经过几年的实践证明该考核方法切实可行,能够保证毕业设计各个环节的质量,最终提高毕业设计总体质量。 (四)在毕业设计过程中进一步提高学生工程能力与创新能力 辽宁工业大学于2011年制定并实施了大学生创新团队机制,建立了大学生创新项目申报机制引导大学生开展创新活动;引导学生每年都参加校级、省级、国家级软件设计大赛等各类各级比赛[8]。随着学校和学院创新教育活动多年持续深入开展,软件工程专业学生的创新与创业活动取得了显著成果。超过1/4的软件工程专业学生能够独立主持创新性项目,并以该项目为原型申报毕业设计题目[9],同时参加省级、国家级计算机竞赛并获得奖项。通过主持校级及省级创新项目既毕业设计题目,学生工程能力、创新能力得到极大锻炼与提高,本专业毕业生就业率与就业质量明显提高。软件工程专业学生主持参加创新项目既毕业设计题目情况见表3。 三、结束语 软件工程专业毕业设计是一个极具综合性、实践性的重要环节,是对学生大学四年学习后面向社会与企业前的有且仅有的一次大检验,它不仅检验了学生所学知识、能力与综合素质,还检验了软件工程专业的培养目标、培养模式、课程体系、实践体系、创新体系等相关环节[10]。经过几年的探索与实践证明,软件工程专业所做的系列教学改革工作中的毕业设计教学改革工作有利于进一步增强学生的工程实践能力和创新能力,有利于提高软件工程专业毕业设计质量,有利于提高软件工程专业学生就业率与就业质量。虽然软件工程专业毕业设计教学改革工作取得了一定的成绩,社会认可度逐年稳步提高,但如何动态调整教学计划以跟进市场需求变化;如何深入开展大学生创新创业教育活动以进一步增强更多软件工程专业学生的实践能力及创新能力;如何进一步加强专业教师工程实践能力、工程设计能力与工程创新能力以提高毕业设计指导效力;如何提高毕业设计过程管理效率等问题仍然是软件工程专业所面临的严肃课题[11]。因此,软件工程专业的毕业设计教学改革工作也一定会紧跟时代变化,与时俱进。 作者:佟玉军谢文阁王恩喜刘鸿沈姜悦岭工作单位:辽宁工业大学电子与信息工程学院 软件工程毕业论文:软件工程思想在应用型高校毕业设计中的应用研究 摘要:针对地方应用型本科高校计算机软件类毕业设计质量不高的问题,对毕业设计中存在的问题进行分析,并结合软件工程的基础理论,提出利用软件工程思想对计算机软件类毕业设计进行指导,以提高地方应用型普通本科高校毕业设计的质量。 关键词:软件工程;毕业设计;应用 一、引言 毕业设计是本科毕业生在校期间的最后实践和综合实训阶段,是实现本科教育培养目标的重要组成部分,是深化、拓展、综合应用所学理论知识的重要过程;也是综合素质与工程实践能力培养效果的全面检验;是学生毕业及学位资格认定的重要依据;是衡量高等教育质量和办学效益的重要评价,是对专业理论知识和专业技术综合应用能力的强化训练和提升[1]。在毕业设计的过程中,学生利用所学专业理论知识,通过了解社会,分析社会需求,深入实践,完成毕业设计的任务和撰写毕业论文(设计)报告等各个环节的工作。对于地方应用型普通本科高校而言,毕业设计就相当于一般高等学校的毕业论文,但是毕业设计不同于毕业论文,它的组成部分不只是一篇学术论文。应用型高校的毕业设计注重的是“应用性”和“实践性”,学生毕业设计要求学生针对某一课题,综合运用本专业有关课程的理论和技术,自己动手动脑做出解决实际问题的设计。目的是总结、检查学生在校期间的学习成果,是评定毕业成绩的重要依据。同时,通过毕业设计,可培养学生开发项目的基本综合能力,为学生就业能力中的专业能力奠定坚实的基础;培养综合运用已有知识独立解决问题的能力,从而加强学生应用能力的培养,使学生能够学以致用。 二、地方应用型普通高校计算机相关专业学生毕业设计的现状 近几年来,由于学校对毕业设计要求不断提高,学生从选题到设计再到写出毕业设计报告的过程中总存在这样那样的问题,最终有个别同学没有顺利通过毕业设计,没有拿到毕业证和学位证的情况时有发生,并且大多数毕业设计的水平不高,达不到培养学生独立解决问题和提高学生应用能力的目的。因此,如何指导学生做好毕业设计,提高学生毕业设计水平和质量,是地方应用型普通高校面临的一个重要问题。 (一)毕业设计选题现状 最近几年,我校计算机相关专业毕业生自进入大四秋季学期开始,在进行毕业实习的同时,也进入了毕业设计准备阶段:毕业设计选题,虽然毕业设计选题过程中,各级领导、指导教师和学生在态度是都很重视,但是在选题时也会存在很多的问题,主要有以下三个方面。 1.选题不够准确。部分学生选题未经深思熟虑,所选毕业设计题目要实现的功能太多,在规定时间内不能独立完成,而最终只能实现部分功能,或部分模块。 2.题目相似或重复雷同。学生选题存在浑水摸鱼的思想,在毕业设计选题过程中不是根据自己的兴趣爱好、专业知识学习情况等确定研究选题,而是选择与他人类似或雷同的选题,甚至同一批毕业的许多学生选题一致。比如:“XX管理系统”等,除了可能冠以的系统名称不同之外,其余基本相同。 3.应用价值低。部分学生的选题是当前十分成熟的项目,没有研究的必要;有些选题已经被淘汰,在实际生活和工作中没有多大用途。 (二)毕业设计需求分析阶段现状 通过调查,许多学生选题完成后,没有对自己所做毕业设计选题进行仔细了解、分析,他们认为在毕业设计中最重要的就是编程,其他方面一带而过[2],从而造成毕业设计过程中主题经常进行修改,最终使得整个系统杂乱无章,无法继续进行下去。因此学生在毕业设计的需求分析阶段主要有以下三个方面的问题。 1.选题后未进行实际调查研究,甚至未查找相应的参考文献。 2.需求分析进行得不彻底、不准确,即使选题后查找了参考文献和资料的,也未做充分了解和分析。 3.在需求分析阶段没有写出需求规格说明书或系统分析报告就匆忙进入系统设计阶段,导致随着系统设计的逐步深入,原来确定的需求不能满足毕业设计的需要,正在进行的设计与开始的期望和设想又不相符。 (三)毕业设计系统设计阶段现状 在系统设计阶段,普遍存在以下两个方面问题。 1.由于需求的不明确,在进行系统设计时,修改随意,没有严格按照软件开发的步骤进行。好多学生在进行系统设计时并没有建出相应的功能模型,不管是用例图还是DFD图都没有,而且系统设计过程中功能随意变换,并且各功能模块的层次结构不清晰,使得整个系统的功能模块划分凌乱,不符合软件设计中“高内聚,低耦合”的原则。 2.在软件设计过程中,不先进行概要设计、详细设计和模块设计,没有软件的过程性描述,直接进行编码,存在想到哪里就做到哪里,走到哪儿算哪儿的随意思想[3],当前内容没有做完便开始其他内容,使得整个系统设计杂乱无章。在这样的一种研究状态下,即使完成了设计,效率也非常低下,软件结构混乱,功能实现不完全,降低了软件设计的质量。 (四)毕业设计实现阶段现状 通常把编码和测试统称为实现。在进行软件设计后,就可以根据设计结果来实现,将软件的过程性描述编码,得到计算机可以运行的源代码。在实现阶段主要有以下几方面的问题。 1.编码随意。学生在编码的过程中,不注意编程风格的把握,导致程序的可读性、可理解性、可修改性等较差,在答辨的过程中,要求指出某个功能模块的代码时,经常要花费很多时间才找得到。 2.测试和调试可有可无。大部分学生在毕业设计的软件编码完成以后,从没有想过进行完整的系统测试,或者只对个别功能进行测试或是随意测试,没有按照测试步骤逐步进行;基本没有单元测试和集成测试,一般只是最终随便输入几个数据简单检测一下,如果有错,修改了就算完了;也没有进行回归测试,没有测试计划,没有想过用什么测试技术来检测某一类型的错识,没有相应的测试用例,也没有测试结果分析。由于学生毕业设计都是一人一题,基本上是一个人完成所有步骤,就算有测试,在测试阶段也是自己进行测试,从心理学的角度来说,自己对自己开发的软件进行测试是不可取的。 由于前面阶段的文档不完善,也不重视测试过程,不清楚是否实现了系统最初设计的功能,是否达到相应的性能要求,总以为程序做出来后毕业设计就完成了,使得毕业设计经常在更换运行环境或答辩时发生错误和问题,从而使得设计得不到好评甚至无法通过。 (五)毕业设计应用现状 最近几年,我校计算机相关专业毕业设计投入使用数量接近于零。究其原因主要是由于设计不完全,未进行测试和调试,存在的错误和缺陷较多,文档和数据不完整,导致所开发的系统或软件不能方便地转让、变更、修正、扩充和使用,也没有为后期培训、维护留下完备的资料;因此,不能投入到真正的使用过程中,也不能实现系统或软件产品的效益。 三、软件工程思想的应用 软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。软件工程中的软件生命周期是一个软件从软件定义、开发、运行和维护,直到最终被废弃的整个过程[2]。地方应用型普通高校计算机相关专业学生毕业设计基本都是开发一些中、小型应用系统或软件,因此,学生毕业设计也要经历软件生命周期各个阶段,严格遵守软件工程的各个原则,这样有助于解决毕业设计中存在的问题,提高毕业设计的质量。通过对应用型普通本科高校计算机相关专业的学生在进行毕业设计的过程中存在的问题进行分析,在毕业设计的过程中,必须运用软件工程的观点、技术和方法来指导毕业设计,这样既节约了毕业设计的时间和学生的精力,也能做出最优质的毕业设计。 1.选题过程中的应用。毕业设计选题就是软件生命周期的问题定义中的问题提出阶段,选好题目是进行深入研究的基础,也是写出高质量毕业论文的前提。地方应用型普通本科高校计算机相关专业的毕业设计选题必须做到以下几点:(1)必须在对选题做了充分调查、分析,对检索的参考文献、资料有了整体把握的基础上提出。(2)必须符合本专业培养方案规定的培养目标的要求。(3)以选择工程性较强的课题为主,确保有足够的工程性训练。(4)要有明确的设计成果,对于较大型任务的课题要明确阶段性成果。(5)要达到规定的工作量,难易度适中,确保能在规定的时间内完成整个课题工作。(6)要围绕生产生活实际,所选题目一定具有一定的理论意义和实践意义,具有一定的价值。(7)原则上一人一题,对于较大型任务的课题,每个学生必须有独立子课题。结合以上几点,分别从专业基础、现实意义等方面进行全面分析,进行取舍,最终得出选题。 2.开题过程中的应用。在毕业设计的开题过程中,需要明确所选题目的选题依据(包括选择课题的背景、选题研究的理论及实践意义)、选题研究现状(包括目前国内外对本选题的研究情况和有待解决的问题)、研究内容与方法,而这些就是软件工程中需求分析阶段应该做的事情。 需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作[3]。因此开题过程中最重要的是进行需求分析,需求分析具有决策性、方向性、策略性的作用,在软件开发的过程中具有举足轻重的地位。需求分析完成的好坏直接影响后续软件开发的质量。开题过程中需要指导学生大量地阅读相关的研究资料,同时根据资料进行分析研究,对当前毕业设计的研究进度做到心中有数,明确毕业设计的具体方向,写出毕业设计的研究内容与方法,得到相应的设计提纲,解决好设计什么,如何设计的问题。因此,应用好软件工程的思想来指导毕业设计的开题是至关重要的。根据学校对学生毕业论文的要求,在计算机相关专业的毕业设计报告中,要求要有数据流图、数据字典等相应内容,而软件工程中的数据流图(Data Flow Diagram,简称DFD),它是从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程。它是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理[3]。因此,在这个阶段,要指导学生按照DFD图的要求,确定设计的功能,然后根据系统分析结果写出分析报告,就得出毕业论文中系统分析阶段的初始文档。 3.在实践研究环节的应用。根据需求分析(开题阶段)的结果进行软件的概要设计和详细设计,注意在设计过程中要严格按照软件工程对于设计阶段的指导原则来进行设计。将概要设计阶段需求分析得到的DFD转换为软件结构和数据结构,即是根据需求确定软件和数据的总体框架,设计出软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。然后再进行详细设计,设计出每个模块的实现算法、所需的局部数据结构,并且对每个模块写出过程性描述;为每个模块设计出一组测试用例,在进行测试时就以此测试用例来进行测试。详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后将根据这个“蓝图”写出实际的程序代码。因此,指导教师要对学生的设计过程进行监督和指导,防止学生盲目的进行编码。 4.在实现阶段的应用。在编码的过程中,要注意编程风格的把握,编程的风格在很大程度上影响程序的可读性、可测试性和可维护性。 在测试阶段,可以进行交叉测试,即学生之间可以两两交叉,相互测试,以更好的达到测试效果,同时也培养了学生的团队意识和合作意识。 在测试过程中要注意运用软件工程的测试原则和测试思想,严格按照单元测试集成测试确认测试系统测试验收测试的测试步骤进行,利用白盒测试技术进行单元测试,黑盒测试技术进行其他测试,并且在找出错误并修改后要进行相应的回归测试,确认修改了错误并且没有引入新的错误,这样有利于找到软件中的各类错误,提高软件的质量。因此,在软件的测试过程中,一定要严格按照软件工程中的测试原则来进行,不可随意进行测试,并且要注意测试文档资料的收集整理,要有相应的测试计划和测试报告。对学生的创造性的思维和想法,指导教师要给予支持,积极引导,鼓励学生大胆创新,用应用型人才培养目标来要求学生,保证高质量的毕业设计的完成。 5.在毕业论文(设计)报告方面的应用。对于应用型普通本科高校计算机相关专业的毕业设计而言,不单单是完成了一个系统的设计,还要有相应的设计报告,而设计报告的编写过程中,很多学生存在文字表达能力不强的现象,为了完成报告,就有可能会抄袭,特别是在软件开发的各个阶段文档材料不全的情况下更为严重。因此,在学生进行软件开发的各个环节中,指导教师都应该按照软件工程的观点来进行指导,并要求学生在各个阶段都完成相应的文档。这样在毕业设计报告撰写的过程中,只要将各个阶段的文档进行合并、整理就得到相应的设计报告,并且是一篇重复率不高的高质量的设计报告。 6.在毕业设计实际应用方面的应用。因为学生在整个系统或软件过程中均按软件设计规范准备了文档和进行了完整的系统测试,从而为系统或软件的专利申请提供了充分必要的资料,并为毕业设计的实际应用打下良好的基础。 四、结语 计算机相关专业学生的毕业设计在学生的整个大学生活中具有极其重要的地位和作用,根据应用型普通本科高校人才培养的定位,主要是培养学生的独立思考能力、动手能力和应用能力。通过对软件工程思想在计算机相关专业学生毕业设计的过程及方法中的应用研究,逐步实现学生毕业设计的实际成果转化,从而为应用型计算机相关专业人才培养提供相应的借鉴。 软件工程毕业论文:新形势下软件工程专业毕业生就业举措初探 摘要:就业是民生之本。做好高校毕业生就业工作,是建设人力资源强国和创新型国家的必然要求。党的十八届三中全会明确提出要“健全促进就业创业体制”,“促进以高校毕业生为重点的青年就业”。在对软件工程毕业生市场需求进行分析的基础上,本文主要介绍本科生的就业现状,并对促进毕业生就业的举措做出一些探索。 关键词:软件工程专业;毕业生就业;举措 自高校扩招后,我国毕业生的数量逐年增加,高校毕业生就业问题成为重大的社会问题。2014年,高校毕业生数量达到创纪录的727万人,应届毕业生的就业压力之大可想而知。加之,我国软件工程技术起步比较晚,相较于国外发达国家还有相当大的差距。虽然起步较晚,但我国政府正在大力支持中国软件行业的发展,短短几年,已经开发出属于我国自有知识产权的软件技术,制定出一系列的符合国情的政策和发展计划,取得不小的成功。 一、软件工程专业的就业前景分析 1.毕业生市场需求分析。相关数据研究表明,我国软件出口规模达到215亿元,软件从业人员达到72万人,软件工程专业毕业生的市场需求约计11.1万人,职业需求在“电气信息类”中排名第三。软件工程人才的就业前景十分广阔,毕业生主要在各大软件公司、企事业单位、高等院校、研究所、国防等重要部门从事软件开发、研究、设计与应用等工作。目前,我国对软件人才的需求以每年20%左右的速度增长,而高校计算机毕业生中的软件工程人才还很缺乏,尤其是高素质的软件工程人才极度短缺。就业前景最好的地区集中在北上广等沿海地区。巨大的人才缺口不仅使IT行业“全线告急”,更使得IT企业求贤若渴,重金抢购。未来几年,国内外高层次的软件人才将供不应求。根据学校招生就业处历届本科毕业生校内招聘用人需求统计资料,2012~2013学年由学校主办的双选会、集团专场、日常招聘等各类招聘活动中,共计有1123个岗位需要软件工程类毕业生,2013~2014学年共计有1234个岗位需要软件工程类毕业生,用人需求涨幅接近10%。 2.招聘要求及薪酬待遇分析。目前IT企业对IT人才有四项素质要求,即专业技能、项目经验、权威认证和高等学历。超过80%的IT企业对用人学历有要求,其中要求为大学及以上学历的岗位占到46%,超过70%的用人单位希望求职者有一定的工作经验。如果单纯地讲就业,专业技能与项目经验则是核心要素,是企业最为看重以及个人在企业日后发展的关键因素。软件工程专业相关职位属于高薪岗位,据国家统计局的调查显示,2015年第一季度,在国有经济单位中,信息传输计算机服务和软件业的平均劳动报酬最高,达到6300元人民币。据来校招聘单位所提供的薪资水平,可以看出:软件工程岗位的具体薪资待遇在地域间又有些许差异,一级城市(如北上广等城市)初-高级软件工程师的待遇在4000~9000之间,内地其他省会城市(例如山西省)一般在2000~6000之间。随着毕业生从业年限的增加,劳动报酬也呈线性增长,从业年限在6~7年间的软件工程毕业生,月薪资可达到1万元以上。 二、软件工程专业的就业现状 1.毕业生数量逐年增加,对IT人才的需求标准逐渐提高,应届本科毕业生就业面临着严峻的挑战。首先,IT行业就业情况最好的地区集中在北上广等几个发达地区,从北京、上海、广州等大型城市近几年对IT人才的招聘情况来看,这几所城市对软件工程类毕业生的招聘标准逐年呈现出“水涨船高”的趋势。很多企业钟情于有一定工作经验且学历较高的硕士生、博士生等高端人才,因为他们能够迅速进入工作角色,承担起某一职位的工作任务。正因如此,近两年来,一些虽有高学历但刚毕业尚无就业经验的毕业生则被拒之于求职门外。其次,省内IT行业发展不成熟,企业提供的就职岗位较少,而省内软件工程专业毕业生人数较多,考虑到地域问题、户口迁移问题,部分毕业生更愿意选择省内企业,加大省内软件工程的就业压力。再次,中部地区的软件行业相比其他地区还处于发展阶段,目前我省的软件行业规模不是很大,在软件制作上,有些软件企业只是采用了一些软件工程的思想,距离大规模的工业化大生产还有一定的差距,这其中有管理体制、市场、政策等问题。 2.毕业生继续奋战考研、考公务员、考事业单位率持续上升,大学生在摆脱就业压力和个人追求方面有新的认识。学院2014届未就业的毕业生选择“继续考研”、“继续考公务员”的比例分别占未就业毕业生人数的28%、11%。随着就业压力的增大,越来越多的大学生想通过考研缓解就业压力。一些毕业生认为读研可以提高自己的专业修养,在学术上更上一个台阶。一些毕业生认为考研除了学历上更高一层次外,在单位就职时的工资基准也会相应地高一些,甚至有助于找个更好的就业单位。综合来看,在巨大的就业形势面前,考研是毕业生根据个人的职业规划及自身实际情况做出的取舍。参加国考、公务员考试及事业单位招考的人数率创下新的纪录。这与国人求稳的心态不无关系,更多的人看重的是上述单位的福利待遇好、社会地位高等。总之,毕业后选择暂不就业,继续参加各类招考的学生占未就业毕业生的很大比重。 3.毕业生进行就业选择时多持观望的保守态度。学院领导长期以来高度重视毕业生的就业工作,利用校内、校外实训基地平台,积极联系知名IT企业及实训单位,通过与企业多种模式合作、组织招聘会等方式,拓宽毕业生的就业渠道,大力促进毕业生就业工作。针对毕业生举办“IT人才专场招聘会”等多场招聘活动,大力创造就业环境,积极拓展毕业生就业工作新领域。与此形成鲜明对比的是,多数毕业生在择业就业过程中谨小慎微,在工作过程中也会对所选企业的各个方面提出质疑,多持观望的保守态度。“今天就是先来看看,不着急签约”、“以后招聘会的单位会越来越好”、“还想再看看”,不少毕业生对企业抛来的“橄榄枝”并不上心。 三、主要举措及努力方向 1.以提升创新精神、实践能力和创业意识为重点,创新人才培养模式,提高人才培养质量。深化教育教学改革,提高人才培养质量。学院先后召开专题教育教学工作会议,并从人才培养模式、课程制度改革、教学秩序规范、资源投入保障等各个方面制定并出台一系列的改革举措,进一步完善创新人才培养体系,保障人才培养质量的提升。重视创新创业教育,着力培养学生的创新精神和创业意识。学院长期以来一直重视大学生的创新创业教育,不断促进教学改革和教育质量的提升,推动大学生高质量就业。学院逐步推动创新创业课程体系建设,把创业基础课程、就业指导课程列入必修课,并在校内建立山西省共享式软件人才实训基地,设立多个实践创新项目,增强毕业生的就业意识和就业能力。利用校内、校外实训基地及校企联合研究室,进一步改善学生实践教学,着力培养学生的创新精神和创业意识,更好地实施人才培养模式,不断促进教学改革和教育质量的提升,为提升毕业生的就业能力提供保障。 2.面向行业需求,创新就业服务模式,引导毕业生“顶天立地”地就业。着力扩大就业市场覆盖度,挖掘行业重点单位需求,拓宽毕业生就业渠道。学院坚持毕业生“走出去”的就业方针,将保证毕业生就业需求作为根本出发点,针对提高毕业生的就业能力、层次和质量的任务,充分利用校外实训基地,积极为毕业生搭建就业平台,大力创造就业环境。学院积极联系知名IT企业及实训单位,通过与企业多种模式合作,积极联系用人单位,举办专场招聘活动,拓宽毕业生就业渠道,大力创造就业环境,积极拓展毕业生就业工作新领域,为用人单位招聘提供精细、“一站式”服务,对地处欠发达地区的重点单位实行分类服务。依托学校软件学院硬件设备优势,为不能到场的企业和单位提供远程实时的在线视频招聘,积极开展用人单位满意度调查,统计用人单位和毕业生对本院人才培养和就业工作的满意度,切实使就业工作服务于人才培养全过程。着力加强就业工作保障度,为实施高质量和均衡就业战略“保驾护航”。加大政策引导力度,落实专项经费。利用新媒体推进网络化就业指导教育,使学生多渠道捕捉就业信息,强化择业就业意识,做好择业定位并进行合理的职业规划,实现理想就业。开展“一帮一”活动,对就业有困难的毕业生建立学困生档案,进行重点指导、重点服务。建立“毕业生回访与发展跟踪制度”,了解毕业生所学专业与社会需求的契合度,不断增强就业指导人员的服务意识和责任意识。 3.以保证毕业生充分、高质量就业为目标,完善就业工作机制,构建就业工作常态化。实施“一把手”工程,将就业工作列入年度工作要点。成立由学院院长、书记、副书记、辅导员、学习导师、专业教师和班主任组成的就业工作组,配合学校建立校、院、班三级体系,为就业工作提供组织支撑。落实“三个到位”,为就业工作提供有力保障。认真做到就业中心专职工作人员稳定、专职工作经费稳定,积极争取社会赞助,建立关于毕业生与用人单位的服务中心,有效保证就业工作的开展。健全制度体系,为就业工作夯实基础。积极贯彻落实学校出台的就业规章制度,根据实际需求出台完善学院的就业规章制度,为就业工作夯实基础。 软件工程毕业论文:基于毕业产出导向的软件工程课程教学改革 摘要:分析国内高校在软件工程课程零置上的侧重点以及软件职业技术资格考试内容,提出以SWEBOK V3中知识域的要求为课程内容基础框架,基于毕业生的产出能力导向进行教学大纲、知识内容和考核方式改革,通过监控学生成绩对课程教学效果进行分析和长期持续改进。 关键词:产出导向;软件工程;课程改革 1 背景 作为软件工程专业的主要核心课程,软件工程课程一直很受关注,围绕着课程教学所进行的教学改革也比较多。目前,正在各高校进行的工程教育专业认证是我国为推进工程教育改革、提高工程教育质量、建立工程教育与工程师制度衔接、提高工程教育对产业发展的适应性和提高我国工程技术人才的国际竞争力所做的一项合格性评价,在给高校工程教育带来发展契机的同时也提出了对教育理念、教学过程管理、教学内容更新换代等方面的挑战和调整要求。 2 课程现状 目前,国内高校软件工程课程使用的教材主要有张海藩《软件工程导论》、郑人杰《实用软件工程》和国外翻译版《软件工程》。教学内容主要有软件工程概况、可行性研究、需求工程、传统的软件设计、面向对象设计、编码、软件质量与保证,项目计划与管理、软件开发工具与环境等。软件工程是一门强调实践的综合性工程课程,各高校在具体课程安排上各有侧重。 例如,复旦大学(54学时)的课程重点首先是结构化分析与设计、面向对象的分析与设计,这两部分内容超过了1/4总学时;其次是软件测试和软件项目管理,分别约占总学时的1/6;课程特色在人机界面设计和Web工程上。清华大学(48学时)把面向对象方法UML和RUP作为重点,占总学时的近1/3;其次是结构化分析与设计,占总学时的1/4;软件过程及软件工程管理是另一重点,通过学生合作小组或参与项目组进行软件开发,在实践中理解软件过程的意义和作用,培养软件项目管理的意识和能力。浙江大学(理论32学时、实践32学时)重点讲述软件工程的常用方法,包括分析模型的建立、总体设计、软件测试等,其特色是网络应用软件的开发方法和实践,通过从需求单位抽取出的大型模拟案例进行项目开发,锻炼学生的系统设计、开发、谈判、沟通、写作、团队合作等能力,培养学生的工程职业素养。 通过对国内几所高校课程教学特点的分析,我们发现目前国内高校软件工程课程主要以理论知识教学为主,虽然有的院校做到了实践与理论并重(1:1),但是大多数院校还是以理论知识教学为主。课堂教学以讲述概念性基础知识为主,课程的内容主要有面向对象的分析设计、软件测试和项目管理,对新知识、新技术和新工具介绍较少,目前软件工程课程更像是一门导论课程。 3 面临问题分析 3.1 工程专业毕业要求对课程的影响 工程专业毕业生应具备足够的沟通能力、合作能力、专业知识技能、终身学习能力及人格、国际视野和责任感等能力素质,这些素质要求可以保证学生毕业进入职场前具备基本的职业素养和从业能力。产出导向是工程教育认证中重点关注的部分,课程体系设置、师资队伍建设和外部条件配备均以有利于学生达到培养目标和毕业要求为导向。毕业要求反作用于课程设置,要求课程的内容建设、教学方法改进、过程监督以及成绩考核都应围绕这一要求,细化产出导向的要求和能力指标,设置相应知识点并调整各自的重要性比例,从知识点授课和实践能力两方面落实能力培养,达到毕业产出的要求。 3.2 与软件工程课程相关的专业技术资格考试分析 工程教育认证是将来国家注册工程师制度的基础和重要环节,目前我国已经在土建、环境、核安全等领域开展试点工作,实现了对工程人才的社会评价及国际间人才资格互认。在我国,与软件工程课程相关的全国性考试还有计算机技术与软件专业技术资格(水平)考试,由国家人力资源和社会保障部、工业和信息化部领导,对全国计算机与软件专业技术人员进行职业资格、专业技术资格认定和专业技术水平测试。笔者对与软件工程课程相关的资格考试内容进行解析,以软件设计师为例进行重点分析,见表1。 从表1分析内容可见,软件工程基础考试内容。与课程教学大纲知识点一致,在信息安全知识和标准化知识上给出新增内容,这与SWEBOK2013知识体系一致。考试科目“软件设计”以上述知识为基础,考查工程师的实际工作能力。在最近几次考试中有考题涉及数据流图、UML图的应用分析,与课程授课侧重点也相符,更侧重于实例的应用能力,需要实践积累与运用。 3.3 SWEBOK V3和课程对应关系分析 软件工程专业的课程体系是基于软件工程知识体系SWEBOK(software engineering body ofknowledge)、计算机教程软件工程卷(computingcurriculum-software engineering,CCSE)及其中的软件工程教育知识体(soft engineering educationknowledge,SEEK)而建立起来的。2014年,IEEE计算机协会了软件工程知识体系指南第3版,该版将原来的10个知识域扩展到15个,与现有软件工程课程大纲的比较结果见表2,其中有分布到其他课程中的知识点未加以说明。新增和修改的相关知识点需要在软件工程课程教学和实践环节落实。 4 基于产出导向的软件工程课程改革与建设 4.1 课程教学目标修订 基于上述分析,我们进行基于产出导向的软件工程课程改革和建设。课程教学以使学生掌握软件工程的理论基础知识和基本工作原理,培养学生具有工程问题需求分析的能力以及综合运用计算机科学和工程技术完成系统设计、实施和维护的能力为目标。课程的主要任务是使学生掌握软件开发过程的理论、方法、技术标准以及计算机辅助工程和环境等知识并通过实验灵活应用;掌握软件工程的基本概念、软件开发模型、开发过程的管理和质量控制;掌握需求分析的任务与原则,传统面向对象需求分析方法、设计过程与一般性概念以及文档的编写;掌握程序设计方法,增强编程实践训练,掌握软件测试技术与纠错性软件维护方法;掌握UML建模技术,能在软件工程过程中使用常用建模工具,能运用建模方法解决工程实际问题;了解专业开发活动涉及的标准、方针、政策和法律、法规,能正确认识实施软件工程对客观世界和人类社会的影响。 4.2 教学内容和教学方法改进 根据毕业产出要求及SWEBOK V3新修改版,我们对教学内容作如下调整:①在64学时课时中,将理论与实践课时设定为1:1;②在需求分析和设计部分新增人机界面和系统安全知识;③独立介绍软件复用部分知识,结合软件设计模式讨论软件可复用性;④在软件质量保证和项目管理部分新增软件产品标准和行业标准、国内外法律和法规;⑤在软件维护部分新增软件退役和迁移。 每一章都提供参考资料,教师引导学生有选择地阅读其中的部分内容,根据课程内容的进展情况布置相应的任务、思考题和作业,引导学生通过Intemet或其他途径查阅相关资料以拓宽知识面,了解软件工程领域最新实践研究成果。为了使学生建立起软件开发和维护的工程化意识,较系统地掌握按照工程化思想开发与维护软件的方法和技术,教师需在教学中培养学生从软件企业开发和维护实际大中型软件的角度出发,结合成本、风险、效益、进度、过程、质量等多种因素系统地分析软件开发和维护过程中的问题,突破以往要求完成某一给定知识点作业的单一思考问题局限。此外,构造实验环境用于课内工程项目实践,通过模拟项目的开发,锻炼学生的系统设计和开发能力、软件工具的使用能力、语言交流能力、文档编写能力以及团队合作能力,培养学生的职业素养。项目实践引导需贯穿理论知识学习始终。 4.3 考核方式与持续改进并行 课程强调过程考核,总成绩分为平时和期末两部分,分别占50%。平时成绩主要考核学生的课堂表现、作业、实验能力和实验报告撰写情况等。其中,课堂表现主要从学生上课是否专心听讲、回答教师提问是否正确以及分组讨论是否积极、正确、有独特见解等进行考核,以提高课堂教学效果和运用工程基础知识及本专业基本理论解决实际工程问题的能力;作业方面重点考核学生掌握软件工程理论基础知识和基本工作原理的程度;课内实践教学环节重点考核学生的工程问题需求分析和设计能力,综合运用计算机科学和工程技术完成系统的分析和设计并对设计文档进行审查的能力;期末考试将按照课程教学目标全面考核学生课程学习的效果,选取一定数目的学生成绩为样本,计算该课程对毕业要求贡献的达成度并通过建立阀值定量评估课程教学质量,通过不断提出持续的改进意见并实施,切实加大课程对提高毕业产出能力的贡献。 5 结语 笔者基于毕业生产出能力对课程教学目标进行了修订,完善了软件工程课程的教学内容和知识结构,对教学方法进行了梳理,最后通过改变考核方式对课程进行长期监控和调整,实现课程的持续改进。下一步工作将重点关注课程中学生自主能力导引体系和毕业生能力评价反馈机制的构建。(编辑:宋文婷) 软件工程毕业论文:“卓越计划”软件工程本科毕业生的跟踪分析 摘 要: 为应对毕业生就业难与软件企业人才招聘难的两难局面,对我院按照“卓越工程师培养计划”培养的第一批本科应届生展开了基于电子问卷的跟踪调查。通过分析学生就业情况及其所在单位需求情况,以及毕业生的就业反馈,讨论研究了现有培养方案、教学体系和课程改革存在的问题与不足,以期为后续进一步深入实施“卓越工程师培养计划”提供帮助。 关键词: 毕业生跟踪调查; 卓越工程师培养计划; 软件工程 0 引言 从20世纪90年代开始,我国的高等教育飞速发展,本科毕业生数量也迅速增加,软件类人才培养也逐渐从精英教育走向了大众化阶段。与此同时,毕业生就业难与软件企业人才短缺的矛盾逐渐突显。一方面,毕业生的就业形势相当严峻,2013年更被称为“最难就业年”,就业人数将近700万,其中软件类(含计算机类)毕业生约占了23%[1];另一方面,用人单位难以招到适应不断变化市场需求的高水平人才,毕业生质量与企业、社会期望值之间出现了较大差距。 解决上述矛盾的重要途径之一是跟踪调查学生走向社会的工作表现和持续发展状况,调整、改革高校教学体系及模式。近年来,国内高等院校逐渐重视开展毕业生的跟踪调查与反馈工作。通过了解毕业生的就业情况、工作表现、对学校学习经历评价及招聘企业人才需求情况等信息,反思、完善和改革人才培养体系、培养方案、教学模式以及就业指导工作模式[2]。本文以杭州电子科技大学软件工程学院为例,通过对2013届按照卓越工程师培养计划培养的50余名毕业生进行跟踪调查所获得的数据信息,结合本校实际,反思卓越工程师人才培养的可改进之处,为制定科学、高效的卓越工程师培养策略奠定基础,从而更好地为培养符合市场需要的高层次软件人才提供服务。 1 毕业生跟踪调查对卓越工程师培养的重要性 “卓越工程师教育培养计划”(简称“卓越计划”)2010年由教育部联合相关部门和行业协会提出,要求各高校与行业企业联合培养工程技术人才,强化培养学生的工程实践能力、工程设计能力和工程创新能力。该计划旨在培养造就一大批创新能力强、适应经济社会发展需要的高质量各类型工程技术人才,为国家走新型工业化发展道路、建设创新型国家和人才强国战略服务,对促进高等教育面向社会需求培养人才、全面提高工程教育人才培养质量具有十分重要的示范和引导作用。中国成功加入华盛顿协议组织也有力地证明了这一点。 高校作为落实“卓越计划”的主体,需认真领会和深刻理解卓越计划的指导思想、主要目标、总体思路和基本原则,更重要的是需结合自身实际条件和优势,制定“卓越工程师后备人才”培养的具体要求和措施,细化培养目标和培养标准,积极开展课程体系、教学方法、教学内容改革[3]。目前参与实施“卓越工程师计划”的各大高校基本上都提出了符合本校办学定位的专业培养方案的总体思路,在实现培养目标和培养标准的过程中融合专业培养方案的制定,完善、强化学生工程实践能力的培养,在满足“累计1年时间在企业学习”的硬性要求同时制定灵活的培养模式[4]。譬如,清华大学展开了以能力培养为导向的课程体系和教学内容改革;我校“信息安全”专业对原有的专业基础课程和专业核心课进行了重点整合,将原有课程整合缩减至5门,另增开课程4门,总学时数由384学时调整至192学时;上海工程技术大学的本科采取了“学校培养+校企交叉+校企双指导”的三阶段培养方案。 衡量上述各种具体培养要求、措施、目标、标准以及改革内容是否成功,有效的核心标志之一就是学生就业情况及其后期发展情况。毕业生的就业率、月收入和工作满意度等信息可以从一定程度上揭示大学生的综合能力水平和未来发展潜力。从某种意义来说,学生是高校推向市场的“拳头产品”,用人单位是这些产品的“用户”。“产品”质量是否有保障,“用户”才有最深刻的体会,才最有发言权。只有不断听取用户意见,不断改进,才能确保“产品”在市场上的竞争力。因此,做好学生就业及其后期发展情况的跟踪调查,才能推动高校不断完善卓越计划的落实,纠正试行阶段暴露出来的各种问题。 2 软件工程专业卓越工程师培养计划――以杭州电子科技大学为例 杭州电子科技大学从1980年开始培养软件工程本科人才,2003年正式设立软件工程本科专业。目前,该专业为国家特色专业、浙江省重点专业、浙江省高校人才培养模式创新实验区。为了进一步促进软件工程专业发展,全面提升学生工程素质,即工程实践能力、工程设计能力和工程创新能力,2011年杭州电子科技大学率先在软件工程学院开始试点软件工程专业的“卓越工程师人才培养计划”。要求学生在校内经过软件工程通用工程基础技术知识和核心技术知识的学习并具备相关能力后,进入企业进行高级工程技术知识及技能学习和培训,并参加企业实际软件项目的开发,培养方案示意图如图1所示。具体内容介绍如下。 ⑴ 改革人才培养模式 对进入“卓越工程师培养计划”学习的学生,将遵照贯穿8个级别4种工程应用能力培养要求的工程型人才培养方案(如图1所示)。学生在校内2年完成前2种工程应用能力的培养后,按“卓越工程师培养计划”学习1年完成第3种工程应用能力的培养,最后进入企业完成第4种能力的培养。可以看出,卓越工程师培养计划主要承担“高级工程能力”和“工程实施能力”的培养,主要通过企业宣讲课程和就业规划课程来帮助学生确定今后学习和发展的方向,进而安排学生参与企业实际软件项目完成专业实践和毕业设计。 ⑵ 加强专业师资建设 软件人才是工程实用型,需要教师既有一定的学术造诣,又具有大量的项目实践经验或企业工作经验。因此,我校进一步加强“双师型”专业教师队伍建设,在选派青年教师到国内外IT企业顶岗实践和轮训的同时,积极引进具有丰富实践经验的专业技术人员到校担任兼职教师或传授真实案例和实际工程经验,已逐步建立并完善企业教师的师资库并鼓励相关企业承担学校专业课程及实训工作。 ⑶ 深化改革课程体系 我校软件专业课程改革的总体思路是:扎实专业基础,突出工程实践能力,复合知识领域结构;强化专业核心基础课程和高级工程能力的培养,突出企业实战能力。在当前软件工程专业培养方案的基础之上,着重体现工程教学中的CDIO模式,聘请行业专家及资深工程师讲座;引入“MOOC”等先进教学方式,鼓励开展研究式教学、讨论式教学、以问题为导向的PBL教学、CDIO式教学及团队模式教学等多种教学方式[5]。 ⑷ 采用“校企深度合作、工学结合”运行模式 积极探索校企深度合作的空间,着重于人才培养、科研开发等多方位的共赢合作模式。以培养软件人才为目标,学校优先选择占据行业领导地位的公司作为合作方(如华为、塔塔等),吸收资深工程师参与指导制定专业发展规划、专业培养目标与专业人才培养方案,甚至直接作为教学师资参与专业技能教学;同时将企业待解决实际项目转化为“实验班”的课程设计题目或综合设计题目。企业接收完成专业课程学习以及基本技能培训的学生直接顶岗实习。 3 “卓越计划”毕业生的跟踪分析 3.1 调查对象和方法 为全面、准确、及时地分析了解“卓越工程师培养计划”在高校的落实结果,了解用人单位对软件工程专业改革的满意度以及深化教学改革的意见与建议,为其他同类学校准确定位、深化改革与创新软件类人才培养提供参考,我们对杭州电子科技大学软件工程学院实施“卓越工程师培养计划”的结果进行跟踪调查。调查对象是该学院第一批按照上述计划培养的毕业生,共发出52份问卷,回收有效问卷50份,回收率为96%。本次调查主要以问卷为主,辅之以面谈、Email咨询等方式。 3.2 调查数据分析 我们从学生就业单位信息、就业单位需求、毕业生个人反馈三方面来进行梳理分析现有教学方案、培养方案等卓越计划改革内容的不足。 ⑴ 学生就业单位 此次调查的50名毕业生,44人就职于主营软件开发销售、系统集成的软件类公司,4人就职于在线网络社交平台或电子商务平台的技术部门,2人服务于保险业。也就是说,96%的毕业生在毕业后会继续从事软件开发维护相关的工作。这从一定程度上证明了按照卓越工程师计划拟定的现有培养方案和课程安排在培养学生兴趣、增强学生专业技能方面发挥了较好的作用。此外,在毕业生就职的30家软件类公司中,14家单位的员工少于50人,13家单位的员工数在50~300之间,3家单位的人数超过了300人。可以看出,毕业生所就职的大部分是中小型软件公司。这也符合软件行业特点。除了微软、IBM、华为等极少数的龙头企业,大部分软件公司的规模并不庞大。我们的调查结果反馈的另外一个重要信息是,大部分软件公司对招聘对象的学历和工作经验的要求并不高,求职者具备大学本科学历即可,并不硬性需要相关的职业证书。因此,在未来的教学过程中,应确保学生顺利完成大学基础课程,而并不需要强调或引导学生参加太多的职业证书考试。 ⑵ 就业单位需求 从50份有效问卷返回的结果来看,目前用人单位技术最注重也相对急需的技术(能)排在前三位的分别是:JAVA语言、办公软件应用和ORACLE数据库应用,如图2所示。除此之外,动态网站开发以及企业级网络软件应用与维护也是各单位相对比较看重的毕业生技能,问卷勾选的份数分别达到了16和14。不难看出,若软件工程专业本科生在校期间尽可能地熟练掌握日常的办公软件应用并掌握用Java等开发语言构建、推广、维护动态Web网站的基本技术,他们在就业时将更占优势。 我们在教学过程中经常碰到以下的问题:本科生在大三或大四阶段仍不能熟练使用Excel绘制基本图形或完成基本统计功能,也不会使用Outlook、Foxmail等邮件客户端工具收发Email;他们课程提交的项目作品虽然能够实现系统的基本功能,但往往不够规范、难以维护和二次开发。学生暴露出来的这些问题远离用人单位的需求,也直接影响了学生自身的就业和后续发展。因此,在后期完善“卓越工程师”的培养方案和课程改革时,针对这些问题进一步强化培养学生相关技术(能)就变得极为重要。 ⑶ 现有培养计划及改革反馈 如上所述,“卓越人才计划”强调对学生实践能力的培养,强化学生工程实践能力,注重提升工程教育人才的培养质量。本学院在日常教学过程中着重学生动手实践能力的培养,也通过与华为、塔塔、网新等众多企业合作,安排学生在企业实习,强化学生实际实践能力。如图3所示,根据求职期间及就业之后的“第一手”经验,36%的毕业生认为学校还需加强基础理论的学习,30%的毕业生认为需加强实践动手能力的培养,25%的毕业生认为需加强专业知识的学习,只有个别同学认为需增强人文知识学习和科研能力培养。大部分毕业生在“信息反馈”一栏中明确提出“实际动手能力的培养是学校应该改进的重中之重”。这与国家“卓越人才计划”的培养思路是基本吻合的,也表明,我们还需在未来的教学培养中深化培养方案和课程改革,更突出 “卓越人才计划”的实践能力培养要求。如某位毕业生认为虽然目前学校社团较多,但和专业及就业挂钩的社团很少,建议多组建一些专业性社团,营造一个良好的学习氛围,并积极鼓励学生参加各类比赛,或开展专业知识类的勤工助学项目,让学生在项目实践中提升各方面的素质。 此外,根据50位毕业生的自身体会,软件类公司更为看重的学生素质是其持续学习的能力,其次是独立解决问题的能力,而日常较为注重的学习成绩恰恰反而是排在最后一位,如图4所示。这也是软件工程专业本身所决定的。一方面,软件、计算机技术飞速发展,日益更新,在校期间的课程内容不能完全跟上技术的潮流,需要学生自己学会跟踪学习新技术的能力;另一方面,实际软件问题千奇百怪,层出不穷,没有一劳永逸的解决方案,更需要学生具备一定解决问题的能力。 3.3 启示 此次的跟踪结果表明,我院现有的“卓越人才培养计划”及其具体方案措施在加强学生专业兴趣、增强学生专业能力起到了较好的作用,能为用人单位提供了具备基本职业素养和能力的软件人才。在未来工作中还需进一步强调和注意的有以下几点。 ⑴ 必需确保学生顺利完成大学阶段所有课程并获得学历、学位证书,这是学生入职的必要条件。 ⑵ 必须加强培养学生办公软件的使用技能,才能更好地提高学生专业素质,满足企业规范化人才需要。 ⑶ 争取为学生创造更多参与实际项目的机会,加强培养学生专业实践能力。这也是“卓越工程师培养计划”的重心所在。 ⑷ 进一步加强学生跟踪学习的能力和独立解决问题的能力,使他们适应软件快速更新升级,以及实际开发应用过程中问题不断的特点。 4 结束语 毕业生跟踪调查对做好软件工程人才培养,尤其是“卓越工程师培养计划”在软件工程专业的落实具有重大意义。本文采用实证研究的方法,从学生就职单位性质、单位需求与学生反馈三方面对现有“卓越计划”及其具体方案进行讨论分析,根据毕业生的切身体会挖掘现有软件工程专业“卓越工程师培养计划”存在的问题和不足,以期为更好地落实“卓越工程师培养计划”、培养卓越软件工程师提供科学有效的对策。 软件工程毕业论文:《软件工程》思想在毕业设计(论文)中的应用 【摘要】主要分析了毕业设计(论文)的现状,介绍了软件生命周期的各个阶段与毕业设计(论文)各阶段的对应关系、软件生命周期各阶段应完成的任务以及在毕业设计(论文)中应注意的问题。 【关键词】软件工程 毕业设计(论文) 实践教学 一、引言 毕业设计(论文)(以下简称毕业设计)是计算机及相关专业教学计划中的一个重要环节,是培养学生对所学基本理论及基本操作技能综合运用的训练过程,是提高学生分析和解决问题能力的重要实践环节,是实现理论与实践相结合的重要途径,是对教育教学质量的全面检查。目前,计算机及相关专业的毕业设计质量正在逐年下降:学生急于找工作或考研,毕业设计得不到应有的重视;需求分析不到位,设计成果不符合实际需求;软件开发流程混乱;缺乏文档写作训练,等等。 针对上述问题,笔者认为,除了应当从管理角度严格进行过程监控外,还应当使学生通过《软件工程》课程的学习,提高毕业设计的质量。 二、软件生命周期与毕业设计过程的对应关系 软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程称为软件的生命周期。软件生命周期可以划分成若干个时期与阶段,它与毕业设计各个环节的对应关系如图1所示。 三、软件生存周期各阶段应完成的任务 1.可行性研究与计划阶段、需求分析阶段 可行性研究与计划阶段主要完成问题的定义、可行性论证以及初步计划的制定;需求分析阶段主要完成需求调查,进行功能、性能与环境约束分析;编制软件需求规格说明、制定软件系统的确认测试准则和用户手册概要。这两个阶段对应于毕业设计的课题论证、选题、调研、查资料,通过对设计题目的深刻理解,完成开题报告的撰写工作。 2.概要设计阶段和详细设计阶段 概要设计阶段主要完成软件系统总体结构的建立、定义功能模块的接口、设计全局数据库和数据结构、规定设计约束、编制概要设计文档等工作;详细设计阶段主要完成模块详细设计及编制模块的详细规格说明工作。包括模块的详细功能、算法、数据结构和模块间的接口信息等设计,拟定模块测试方案;把模块详细设计的结果汇总,形成模块详细规格说明书。这两个阶段对应于毕业设计的系统设计阶段。 3.实现阶段与组装测试阶段 实现阶段主要完成编码及单元测试工作。根据模块详细规格说明书,将详细设计转化为程序代码、对模块程序进行测试,验证模块功能及接口与详细设计文档的一致性,并形成单元测试报告;组装测试阶段主要完成模块程序组装与测试及组装测试报告的编写。 4.确认测试阶段 该阶段主要完成软件系统测试、确认测试文档编制及软件评审工作。根据软件需求规格说明定义的全部功能和性能要求及软件确认测试准则对软件系统进行总测试;向用户提供以确认测试报告为主的有关文档,包括系统操作手册、源程序清单和项目开发总结报告等;由专家、用户、软件开发人员组成的软件评审小组对软件确认报告、测试结果和软件进行评审,并将得到确认的软件产品交付用户使用。这个阶段主要对应于毕业设计(论文)中的论文评审、结题验收及毕业设计的答辨准备阶段。 5.软件运行与维护阶段 主要进入软件的使用阶段,并完成软件的维护工作。它主要对应于毕业设计中的答辩阶段。 四、毕业设计应注意的几个问题 1.摘要 摘要是对文章主要内容的摘录,要求精、短、完整。以几十字至三百字左右为宜。摘要应具有独立性和自明性,从摘要中即应获得必要的信息;摘要中只能使用第三人称;要客观如实地反应原文的内容,要着重反映论文的最新内容和作者特别强调的观点;要求结构严谨、语义确切、表述简明,一般不分段落、不进行自我评价。 2.关键词 关键词主要用于论文检索,它是从论文的题名、摘要和正文中选出的,是对表述论文的中心内容有实质意义的词汇,关键词一般以3~5个为宜。 3.结论 结论写作的内容应主要考虑本文研究结果是什么?研究结果说明了什么?对前人有关的看法作了哪些修正、补充、发展、证实或否定?本文研究的不足之处或遗留未予解决的问题以及对解决这些问题的可能的关键点和方向等。结论应该准确、完整、明确、精练。 4.需求分析 在毕业设计中,学生往往不能对所做题目进行充分的调研,需求不明确,随意想象的成分较多。特别是在数据表的建立上,大部分同学随意设置字段的类型,而字段长度基本上采用默认置。而在实际项目开发中,数据项的设置应主要注意以用户的需求和满足系统要求为准,而不应设计冗余的字段;数据的类型要依据实际需求,当某些字段可以是选择某几种类型之一,应考虑哪一种更有利于本系统或哪种更易于用户操作和维护。 5.详细设计 许多同学把详细设计阶段的任务理解为代码实现,因此,在概要设计之后就着手进行代码的编写而忽略了算法的表达及测试用例的编写环节,由此造成的结果是随意编程,大量的时间浪费在程序的修改和调试上。 6.软件测试 测试做得不够全面,大部分同学只选择了有效的测试用例,而没有进行无效的测试用例的设计,因此所做的软件BUG较多。 7.团队合作 在毕业设计中,应有意识地锻炼学生们的团队协作精神,因此,在布置毕业设计题目时,应尽量选择规模大一点的题目,然后由4~5名同学共同协作,每人完成一个子题目。这样,可以使学生们分析问题和解决问题的能力、沟通和表达能力得到充分锻炼,为今后的工作奠定基础。
软件硕士毕业论文:关于教育技术学之教育软件工程硕士点建设研究 【论文摘要】本文探讨了我国教育软件工程硕士点的建设现状。文章指出,我国教育软件硕士点处在起步发展阶段,目前面临着数量少、课程体系不健全、培养模式单一等问题。文中分析了我国新时期建立和完善教育软件硕士点的必要性和可行性并提出了今后教育软件硕士点的发展道路和方向。 【论文关键词】教育软件;可行性;课程;实践 一、教育软件工程硕士点发展现状 教育软件工程属于教育技术学硕士点的一个方向,目前在我国的研究生教育中逐渐发展起来。教育技术学一般有以下几个方向:教育技术学基本理论、教育信息化、教育软件工程、知识工程、远程教育或叫网络教育、信息技术与课程整合、数字软件资源、教学系统设计等。截止2010年,我国拥有教育技术学硕士点的学校已经超过60所,但设置了教育软件工程方向的学校并不多,主要为教育信息化、信息技术与课程整合、数字资源、教学系统设计等。有的学校把教育软件工程硕士点没有放在教育学院,而是放在了其它学院。下表是对我国拥有教育软件工程方向的学校进行的统计。 从表1调研结果可以发现我国教育软件工程硕士点分布有以下几个特点: 1.教育软件硕士点的总数还很少我国硕士点中目前设置教育软件方向的高等院校总数还不超过20所。 2.“2ll”、“985”高校开设有教育软件工程硕士方向的很少。从上表可以看出,位列“985”高校的只有清华、中科大两所,位列“2l1”高校也只有清华、中科大、北邮三所。这对培养高层次教育软件人才是非常不利的。“985”、“211”高校有着良好的科研环境,是培养高层次人才,特别是与海外接轨的重要基地和摇篮。 二、开设和完善教育软件工程硕士点的必要性 教育软件硕士点是专门培养教育软件研究和开发高层次人才的,对我国教育水平的提高和教育信息化的发展具有重要的意义。教育信息化的发展包括教育硬件信息化和教育软件信息化两个方面。丰富的教育软件可以调动学生的积极性,提高教学和学习的效率教育软件资源包括各种多媒体课件,各类教育软件、教育资源库等。教育软件包括学科类教育软件和教育管理类软件等。学科类软件包括数学、英语等学科类教育软件。教育管理类软件主要包括教务管理软件、考试系统等校园管理类软件,还有国家管理系统。教育软件从用户角度可以分为课堂教学软件和个人使用软件等。 袁振国在《教育研究方法》中说:“这就注定了班级授课制一开始就种下了教育的一系列祸根:非针对性、去个性化。”教育软件可以实现个性化教学。学生个人可以自由使用教学软件,不断加深对知识的理解和提高学习的效率。例如,学习函数图象的性质,学生可以使用软件例举很多实例,既加深了对函数图象的理解,又开拓了视野。 教学软件的多媒体特性可以充分调动学生的积极性和增加课堂教学的趣味性。目前我国学生普遍对学习缺乏兴趣,教育软件的使用对调动学生的积极性将起到一定的推动作用。通过大量高水平多媒体教育软件的开发和使用,不断提高教学的效果和提高学生的成绩。 教育软件中很重要的一类是教育管理软件。教育管理软件在我国教育管理中扮演了非常重要的角色。教育管理软件在我国学校被广泛应用。教育管理软件对我国教育实现科学化、正规化起到了非常重要的作用。通过开发和使用高水平的教育管理软件系统,不断解决我国目前教育管理涌现出来的问题,不断提高我国教育管理的效率。 但是目前我国软件科学的发展是很落后的,大量的技术都是从美国等先进国家引进的。据调查,我国软件业的发展每年都缺乏大量的软件开发和研究人才。硕博教育是我国培养大量软件开发和研究高层次人才的一个重要手段。 从上述分析来看,教育软件方面高层次人才是需要的,我国需要培养出大量高层次教育软件人才,不断完善教育软件学科的建设是我们面临的紧迫任务。 三、建设教育软件硕士点的时机和可行性研究 1.建设教育软件硕士点的时机 2010年6月21日中共中央政治局通过了《国家中长期教育改革和发展规划纲要(2010-2020年)》。《纲要》中对教育软件资源方面提出了明确的要求: (六十)加强优质教育资源开发与应用。加强网络教学资源体系建设。引进国际优质数字化教学资源。开发网络学习课程。建立数字图书馆和虚拟实验室。建立开放灵活的教育资源公共服务平台,促进优质教育资源普及共享。创新网络教学模式,开展高质量高水平远程学历教育。继续推进农村中小学远程教育,使农村和边远地区师生能够享受优质教育资源。 (六十一)构建国家教育管理信息系统。制定学校基础信息管理要求,加快学校管理信息化进程,促进学校管理标准化、规范化。推进政府教育管理信息化,积累基础资料,掌握总体状况,加强动态监测,提高管理效率。整合各级各类教育管理资源,搭建国家教育管理公共服务平台,为宏观决策提出科学依据,为公众提供公共教育信息,不断提高教育管理现代化水平。 《大纲》的通过,为我们新时期教育软件资源的建设提供了方向和良好的时机。我们可以抓住这个时机,不断推进教育软件工程硕士点的建设。 2,可行性分析 985院校有国家的大力扶持,建设教育软件工程硕士点是可行的。随着通信网络技术的不断发展,软件方面的人才也越来越多,在建设教育软件工程硕士点的人员配置方面也是可行的。 四、教育软件硕士点建设研究 1.数量增加 在未来的十年内,争取在“985”院校中开设有教育软件工程硕士点的学校增加到10所以上。以“985”院校带动其它高校的发展。 2.课程的设置 软件方面国外发展的脚步远远领先中国,所以引入一些国外原版教材是必要的。 我国的教育技术学教育软件工程方向硕士点的发展还处于起步阶段,笔者对国内教育技术学教育软件工程方向课程设置进行了调研,比较有代表性的是清华教育研究院和北京邮电大学网络教育学院的教育技术学教育软件工程方向清华大学和北京邮电大学的软件学科排名处在全国前列。 笔者发现,即使是软件学科在全国处在全国领先的水平,但教育技术学的教育软件工程方向的建设还很不健全。一方面软件方面的课还偏少,另外一方面实践环节安排的太少。 (1)软件方面的课程偏少 笔者对北京邮电大学教育技术学培养方案的调研来看,北京邮电大学软件工程方面的课程包括数据库原理、面向对象的技术与c++编程、软件工程实践、java技术、数据结构。清华大学教育研究院教育技术学还没有相关的专门软件课程。北京师范大学教育学部教育技术学专业硕士点设置了计算机软件与理论专业,软件方面的课程包括教学软件设计与开发一门课。为了提高培养质量,需要增加一些软件方面的其它课程。兰州大学在设置教育软件硕士点的时候开设了很多软件课程包括教育软件基础(1inux)、软件工程导论、vb程序设计、网络系统规划与设计、数据结构与算法分析、java程序设计、软件体系结构、软件项目管理、软件开发过程及配置管理、软件构件与中间件技术、教育软件制作实践等。这样的课程设置相对比较齐全。 (2)实践环节不足 培养高层次教软件人才需要不断增加学生的动手实践训练,增加实践课的时问,不断提高实践课的质量和增强实践课的效果。北京邮电大学教育技术学专业教育软件工程硕士点实践课包括而向对象的技术与c十+编程、软件工程实践。清华大学教育研究院实践课只有一门课社会实践。兰州大学实践课包括教育技术综合实验、教育软件制作实践、信息化教学实践。一方面,很多高校教育软件硕士点实践课的时间短、种类少。另外一方面,实践课不被重视,上课效果根本达不到预期效果。要严格制定实践内容的计划和任务。实践课一般包括程序设计实验、软件文档书写实验、教育软件工具使用等。我国目前实践课的建设还处于初建阶段,需要不断探索实践课的教学规律和教学模式。实践课的学分比例和考核机制需要不断探索。需要不断增加实践课的比重。建立健全实践课的考核机制很重要,有了很好的考核机制,学生实践的动力就会得到增强。 3.实践基地的建设 (1)软件工程实验室的建立 培养教育软件高层次人才,实践是非常重要的一环。对于软件工程来说,建设软件工程实验室是必要的。软件工程实验室可以说是很重要的一个实践基地。 软件工程程实践课程的设计目标是培养学生的团队合作级工程项目研发能力,让学生在团队环境下使用最新的软件开发工具获得较真实的软件开发经验,提高学生存项目规划、队伍组织、工作分配、成员交流等多方面的能力,培养积极向上的合作精神。 软件工程实验室的建设目标是给学生提供~个团队环境,让学生应用最新的软件开发工具获得尽可能真实的团队软件开发经验。在实验项目的安排上尽餐模拟真实世界软件开发开发巾可能遇到的问题,在受控的情况下培养学生对这些问题的解决能力。 我国比较著名的软件工程室有武汉大学软件工程实验室、复旦大学软件工程实验室等。 软件工程实验室的建设一般包括需求分析平台、设计平台(包括概要设计和详细设计)、编程平台、测试平台、计算平台等。所配置的软件一般包括绘图工具microsoftvisio2003,项目管理工具project,ultraedit编辑器,软件配置管理工具cvs,powerdesigner等。 我们要不断建立健全实验室的配置,不断提高实验室的管理水平,不断提高实验室的利用效率。 (2)鼓励学生参与实践项目 鼓励学生和企业共同开发软件项目。鼓励学生参与导师课题。对学生的参与给予一定的报酬和奖励。 4.不断创新培养模式 我们要不断建立健全奖励机制,不断鼓励学生参加各种计算机竞赛和其它大赛,例如计算机程序设计大赛,多媒体课件制作大赛等。鼓励学生开展研究,发表学术论文,参加国际学术会议,不断培养学生的创新能力和开拓学生的视野根据竞赛获奖或者发表的学术论文等科研成果的级别给予不同的奖励,以不断提高学生参与科研的热情。要举办学术论坛,增加学生的交流机会,同时让导师也参与进来。 要不断增加研究生培养经费。我国目前存在着人均研究生的培养经费偏低的问题。导师带的学生偏多也是我国研究生教育目前面临的问题之一。导师带的学生过多会导致对学生个人的培养不足,从而导致培养质量下降等后果。 要不断进行三螺旋理论在软件工程硕士生培养中的应用三螺旋理论在软件工程硕士生培养中的应用主要指的是实现政府、企业、学校三方的密切配合,为培养高质量的研究人才而相互合作,发挥各自优势。 让我们在科学发展观的指引下,不断推动我国的软件学科建设,特别是研究生教育,为我国经济社会的发展做出新的贡献。 软件硕士毕业论文:硕士培养下软件工程论文 软件工程硕士研究生主要由软件工程、计算机科学与技术、计算机相关专业本科毕业生以及具有良好软件工程基础的其他专业学生和具有实际工作经验的在职人员组成。通过硕士研究生阶段的培养,学生知识结构和能力结构得到全面提升与完善,掌握软件工程学科的相关理论和工程技术,具有工程问题求解能力和企业经历,成为服务软件产业的合格软件工程人才。哈尔滨工业大学软件学院(简称“哈工大软件学院”),利用国际化的办学条件和校企合作工业化的办学方式,使学生在一定程度上接受国际化的教学与实践,以达到国际化、工业化人才的要求。 1构建软件工程硕士课程体系框架 哈工大软件学院软件工程硕士的培养目标是培养学生掌握软件工程领域的基础理论、先进技术方法和手段,具备独立承担软件工程技术工作的能力、组织和管理专门技术工作的能力,同时具有较丰富的、与国际接轨的学习训练经历,工程实践经验,企业经历和良好的职业素质;使其树立科学的世界观与方法论,品行优良,身心健康,成为具有国际竞争力的软件产业高级人才,为进一步成为软件产业领军人物(高层技术人才与管理人才等)奠定坚实的基础。面向企业,综合考虑软件系统分析与设计能力、项目管理能力、企业管理能力、组织与沟通能力、团队合作能力等方面的需求,根据学科专业方向的设置,按照“模块化知识体系与能力体系相结合,体现国际化与工业化特色”的原则,我们制订了软件工程硕士课程体系框架结构,如表1所示。软件工程硕士课程体系框架针对培养目标和企业的需求,对能力培养的具体目标进行模块划分,横向构造“6个能力层面”;纵向根据专业方向划分为多个能力域,形成多个能力培养模块。软件工程硕士的专业方向应紧跟行业需求,灵活设置。近几年,哈工大软件学院先后设置了网络与信息安全、语言处理与信息检索、数字化企业与电子商务、嵌入式系统与软件、物联网工程和移动互联等专业方向。在专业要求方面,全日制学生必须修满32学分;在职学生必须修满35学分。软件工程硕士研究生学制2~4年,在校学习1年,修满规定的学分,包括参加企业实训3周;实习基地实习1年,结合企业项目,完成学位论文。企业实习期间实行双导师制,校内导师和实习单位导师分别指导项目开发和学位论文撰写工作。校内学习与企业实训交叉进行,校企合作,产学研结合,联合培养软件工程专业硕士。 2组建专兼职结合的国际化、工业化高水平师资队伍 构建3支师资队伍,每支队伍30人左右。建立以工业型师资为核心的专兼职师资队伍,形成工业型专职教师、校内及国内外兼职教师相结合的师资队伍结构,是实现国际化、工业化培养目标的重要保证。第一支是以工业型师资为主的专职教师队伍。这些专职教师多数来自工业界、国外著名大学或国内外IT企业等。其中除任课教师外,还设若干专职实验教师岗位。实验教师主要负责专业课的实践环节教学,包括实验设计与指导、上机指导、课程设计和毕业设计等实践教学环节,同时实验教师还负责TA(实验辅导教师)的培训及管理工作。第二支队伍由计算机科学与技术学院和管理学院认证并聘请的校内兼职教师组成。他们主要负责软件学院的基础课、计算机专业基础课和管理系列课程的教学任务。第三支队伍由来自国外高校或国内外知名IT企业兼职教师构成。他们来自行业前沿,掌握国内外最先进的软件开发技术和人才培养经验,了解企业最新的技术需求。他们在承担软件学院的软件工程类、软件工具平台类的课程部分教学任务的同时,作为双导师制的企业导师,在研究生的工业实践、毕业设计、学位论文的指导中发挥重要的作用。以工业型专职教师为主、校内兼职基础型教师为辅、国内外兼职教师相结合的师资队伍结构,可以满足软件工程硕士国际化、工业化的人才培养需求。 3校企合作,加强企业实践教学 建立完善的工业型软件人才培养体系,包括工业型人才培养方案、课程体系与教学大纲、质量保证体系、工业化教学方式、技能实验与大作业、综合设计与企业实训、工业实习与学位论文、校企联合实验室与实习基地建设等环节,将“工业化,个性化,精英式”的办学理念贯穿于人才培养的全过程。在校软件工程硕士第1学年寒假要到企业参加为期3周的实训。实训由学院统一带队组织,实行半封闭式管理。期间接受企业培训,在企业导师的指导下分组完成指定的项目。通过强化训练,学生可以了解企业的项目开发流程,学习运用所学理论解决实际问题的方法,发现学习中的不足和技术上的差距,对后续学习起到引导和促进作用。第2学年,学生到实习单位实习并根据实习期间的实践工作内容撰写学位论文。对硕士毕业论文的要求是:具有系统性和完整性,能表明作者具有一定的独立工作能力;理论联系实际,应用所学的理论知识解决实际工作中的关键问题;具有实用性且必须包含一定的工作量。取得的成果要有一定的先进性,要能表现出学生具有综合运用所学知识解决工程实际问题的能力。从2002年至今,哈工大软件学院建立了完善的工业实习管理制度,在国内外建立工业实习基地70余个,实际接收学生实习的企业达200余家。工业实习基地的建设有效保证了工业化人才培养的质量。为加强与企业界的沟通,了解企业需求,完善培养体系,提高学生工业实习质量和加强工业实习管理,学院定期举办“工业化人才培养与企业合作高级研讨会”,与企业界人士研究和探讨工业化人才培养中的合作问题,企业参与意识很高,取得了较好的效果。 4与国外大学合作,联合培养软件工程硕士 通过对软件工程国际化人才特点及成长规律的研究,我们对软件学院国际合作办学模式开展了学科专业、教学体系、合作形态、组织方式、国际文化交流等层面的前瞻性研究,率先提出并建立了特色鲜明的多国联合办学、多学科交叉渗透、多国文化融合的,培养高层次、复合型软件工程人才的国际化联合教育模式。哈工大软件学院与法国波尔多第一大学、法国克莱蒙-费朗第二大学、德国柏林工业大学、爱尔兰都柏林工业大学、爱尔兰国立都柏林大学、美国Embry-Riddle大学、意大利帕维亚大学、瑞典林雪平大学、日本会津大学等合作,采用哈工大软件工程硕士专业学位(MSE)+合作方硕士学位(X)的“MSE+X”模式,联合培养硕士研究生。培养过程共分4个学期。第1学期,学生在各自学校学习;第2学期,外国学生来哈尔滨工业大学,与哈工大学生合班学习;第3学期,中外学生一起去合作方学校学习;第4学期,学生自选在国内、外企业实习、撰写学位论文、答辩毕业,哈工大与国外大学分别颁发硕士学位证书。跨国联合培养班的全部课程采用英语教学,实行三导师制,由国内、国外大学和企业导师共同指导。为加强交流,每年举办一次“中欧软件工业教育国际研讨会”,来自海内外的高校教师、企业界朋友在一起交流经验,共同探讨国际环境下人才培养的相关问题。多国联合培养软件工程硕士实现了国际化与工业化办学理念的教育模式与教学体系的设计与实践,软件工程国际化人才的跨国联合培养模式及实践,面向企业人才需求的教学与工业实习,国际化师资与专家队伍建设,教育质量保障体系建设与管理及跨文化的融合等目标。 5完善质量保障体系,加强过程管理借鉴 欧美教学质量保证的成功经验,哈工大软件学院建立完善且适合自身特点的国际化、工业化人才培养质量保证体系。学院成立教学指导委员会和教学督导委员会,在各个培养环节上严把质量关,把规定、培训、预防、跟踪、反馈、控制等质量保证活动渗透到教学执行过程中的每个环节。加强实践教学环节的监督检查,有效保证教学质量和人才培养质量的稳步提高。为提高软件工程硕士的指导质量,学院成立了若干个指导教师组,每个指导教师组负责一个专业方向的硕士指导,设组长1人,负责本组指导教师的组织和督导。每名硕士研究生指导教师每年指导的硕士研究生不超过4人。学院组织专家组审核学位论文。只有通过了专家组的审核,学生方可申请学位论文答辩。另外,硕士研究生开题、中期检查和结题验收、论文等环节也有详细的规章制度、严格的过程管理,这是提升硕士研究生培养质量的有效手段。 6成果与特色 在软件工程硕士研究生培养的实践中,哈工大软件学院在以下几个方面取得了优异的成绩,形成了自己的特色,积累了丰富的经验。(1)面向软件产业的人才需求,校企合作,形成较为完善的应用型硕士研究生的工业化人才培养体系,开展多种形式的校企合作,建立有自身特色、符合国际化标准、满足软件企业需求的工业化人才培养计划。(2)创立软件工程国际化人才培养模式和教育体系;实现“跨学科融合,双边对等招生,联合培养,融合文化”的“MSE+X”软件工程硕士跨国联合培养模式,为学生提供国际化学习环境。(3)建立与国际接轨的办学机制和教育质量保证体系,实施课程考核累加计分制等教学管理新制度。(4)培养了一大批具有国际竞争力、满足企业需求的高级软件人才。 7结语 经过10余年的探索与实践,哈工大软件学院在广泛开展校企合作和国际交流的基础上建立起较完善的国际化、工业化软件工程硕士研究生培养体系。在培养过程中实施严格的过程管理,学院在软件工程硕士人才培养方面积累了一定经验,取得较好的成果。随着软件工程理论与技术的发展,特别是产业人才需求的变化,软件工程硕士的培养模式与培养体系仍需进一步完善,以适应新的人才培养需求。 作者:黄虎杰 马培军 单位:哈尔滨工业大学软件学院 软件硕士毕业论文:软件工程硕士培养模式与研究 一、一种实用的软件工程全日制工程硕士培养 在软件工程工程硕士培养的诸多问题上,做了一些有益探索与研究,针对性地提出了一套适合于省属高校软件工程全日制工程硕士培养的解决方案,希望能为同类型高校提供人才培养的借鉴。研究生培养方案的制定,重点需要解决课程体系设置、培养流程规划与控制。对专业学位研究生而言,还需要解决专业实践能力的培养与训练这一关键问题。 1.课程体系设置软件工程学科正式确立的两个标志性文件是2004年IEEE推出的软件工程知识体(SWEBOK)和软件工程教育知识体(SEEK)。两个文件内容相近,都包含了软件工程核心类的知识领域、基础类或前导类的知识领域,以及其他相关领域的知识[4]。软件工程研究生的培养从原则上说应遵循上述两个文件,围绕上述知识领域进行教学。但由于这两个文件将软件工程的知识体系划分为知识点,各领域之间必然存在重复和交叠。在课程设置上无法照搬上述两个文件。以SEEK为基础,我们对软件工程的课程设置进行规划。整个课程设置被分为五个层次,分别为工程基础课程、计算机基础课程、软件工程核心课程、扩展课程和实践课程,如图1所示。课程开设顺序大体按照五个层次由低到高依次开展。其中,工程基础课程提供软件工程所需数学理论基础、外语能力培养、软件工程文档写作、论文写作基本功训练。计算机基础课程提供软件开发必须的计算机基础知识,如网络、算法和数据库知识。相对于本科课程而言,此类课程讲授内容更深入全面。软件工程核心课程设置了高级软件工程、软件体系结构和软件测试与质量保证三门课程。高级软件工程侧重于软件分析与设计、软件工程过程、软件开发案例分析。软件体系结构侧重于结构风格、案例研究、共享信息系统、结构描述、结构的分析与评估、特定领域的软件体系结构和流行的软件体系结构等。软件测试与质量保证着重于软件质量的改进,讨论如何提高软件质量的方法。扩展课程包含系列领域知识课程,研究生可根据研究方向选择两门;软件开发工具讲授最新流行的软件开发、过程管理所需要的软件工具的使用,以实践教学为主。软件开发新技术研讨课程以讲座形式开展,教师和学生均可作为一个专题的主讲。实践课程包含校内实践、校外实践和毕业设计三个环节。 2.培养流程与实施教育部明文规定,专业学位研究生学制原则上为两年,同时要求应届本科生进行专业实践不少于一年。一般来说,研究生在校课程学习时间应有一年左右,加上专业实践的一年,如何合理安排学习计划,在两年内完成培养环节成了一个现实的重要问题。我校以周为单位制定了四川师范大学软件工程专业学位研究生培养流程,如表1所示:上表规划了研究生培养中的几个关键环节,依次为报到入学、课程学习、校内实践、校外实践、开题、毕业设计、论文写作和送审答辩。第一学期研究生主要是课程学习,同时在校内导师指导下开展文献阅读和编程能力锻炼。第二学期前半学期结束理论课程的学习。后半学期和暑期开展校内实践和毕业设计开题工作。第三学期研究生到实习基地进行校外实践。从第二学期后半段和整个第三学期,学生在专业实践的同时,需完成毕业设计。从第二个寒假开始直到第四学期前六周,研究生完成毕业论文的初稿。从第七周开始,进行论文修改、、盲评和答辩工作。从培养流程表可以看出,这种安排具有两个显著特点。一是理论课程学习安排在一个半学期完成,二是实践课程分为校内实践和校外实践。研究生理论课程学习任务并不重,完全可压缩到一学期半,同时可为实践提供更多时间。校内实践非常有必要。由于是省属高校学生大多能力一般,为保障学生进入企业能融入研发团队从事技术工作,必须先期培训其实践能力。这种安排时间较为紧凑,也比较合理,符合专业学位研究生侧重于实践能力培养的要求,也在两年的学制内确保了研究生的实践时间不少于36周。 二、专业实践能力的培养与训练 软件开发能力是软件工程专业硕士必备的核心能力,其能力培养既是对前端课程学习效果的检验,也是后端毕业设计和就业的必然需要。我校将软件工程专业硕士实践能力培养融入了众多环节。从前期的实验型课程教学,到中期的校内实践、再到后期的校外实践和毕业设计。实验型课程教学解决软件设计开发的基础技能,校内实践解决中小规模软件设计开发能力,校外实践和毕业设计解决中大规模软件设计能力。 1.实验型课程教学包含软件工具的使用训练、软件开发环境的搭建、软件开发案例分析和新技术研讨。软件工具的使用训练学生单个软件开发工具的使用,如项目管理软件Project、开发文档化软件Rational、软件测试工具LOADRUNNER、QTP、TD等。由于这些工具结构分散,还需进行开发环境的搭建训练。开发环境搭建训练内容一为搭建基于微软的VSTS和VisualStudio的开发平台,适合.net方向;内容二位、为搭建基于IBMRSA和Eclipse的开发平台,适合J2EE方向。软件开发案例分析中研究生将自己放在决策者的角度来思考项目所涉及到的具体问题,增强了学生的实际应对能力。新技术研讨促进学生或主动或被动地掌握了一些新兴技术,拓宽了技术领域。 2.校内软件开发实践采用项目驱动形式开展。要求研究生必须申报各类实际的软件开发项目,如四川省苗子工程、学校研究生科研创新项目、学院研究生科研创先项目。研究生可组织本科生参与项目实施,但必须任项目组长,在项目中担任核心角色,完成软件需求文档审定、软件架构设计、软件详细设计、大部分编码工作、测试方案制定等重要工作。 3.校外软件开发实践在上述环节经历后,研究生已经掌握中小规模软件开发的基本技能,此时将研究生派到实习基地,实战参与企业软件开发项目。其实践由校内导师和企业导师共同负责。前期技能的培养已保证研究生胜任企业中一般性的软件开发角色。 4.毕业设计研究生在校内和校外实践的36周中,还需要同时进行毕业设计的开题、实施。研究生可结合企业实习工作完成毕业设计。专业实践的考核分为定期汇报和实践环节结束汇报两种形式。研究生应每隔两个月集中汇报一次实习期工作心得,取得的成绩等。实践结束时在全院公开汇报,其成绩作为实践课程成绩。 三、结论 四川师范大学针对现有的培养模式存在专业定位不清晰、师资不足、课程设置陈旧等问题,根据学校学科特点和力量,实现了一套比较适合于省属高校软件工程专业学位研究生培养的解决方案,包括五个层次的课程设置体系、合理地流程安排和实践教学的环节设置。该方案在学校研究生培养中实行以来,研究生专业实践能力有了较大提高。2011年在四川省苗子工程中获得了一项重点项目和四项一般项目支持。该方案尚有一些不完善之处,例如实践教学环节质量的中间控制、过程控制,尚需进一步建立系列制度和规定,确保实践教学的质量。 作者:李晓宁 袁丁 单位:四川师范大学 软件硕士毕业论文:高校软件工程硕士培育方式研讨 一、省属高校软件工程全日制工程培养模式存在的问题与分析 省属高校的软件工程专业多脱胎于计算机科学与技术学科,在研究生人才培养模式上受限于计算机科学与技术研究生培养模式。部分高校甚至于采用同计算机专业研究生实施无差别培养方式,这一根本性原因带来诸多问题。 1.人才培养方向目标定位不清晰 软件工程专业硕士应当仅限于软件工程师的培养。软件工程具有极强的工科属性,其人才培养,除软件工程科学硕士和计算机科学技术一样,可培 研究型人才外,专业学位应当清晰定位于培养具有软件工程必备基础知识,在软件工程某一领域具有较强专业知识与技能的工程师。 2.师资比较缺乏,尤其是双师型师资缺乏 软件工程正式成为独立的学科时间相对较短,软件工程师资大多来源于计算机科学与技术专业。计算机科学与技术专业可以胜任软件工程基础课程,但这部分教师往往缺乏工程实际经验,在教学中往往表现为重理论轻实践。省属高校十分缺乏来自软件企业一线的项目经理以上的技术管理人员充任实践课程教师。 3.培养模式陈旧,不适应国家教育部要求 由于全日制软件工程专业学位研究生2009年才在全国开展,很多高校沿用学术型学位研究生培养模式,忽视了国家对专业学位研究生培养要求中的专业实践能力的培养,未能很好地开展专业实践教学。 4.课程设置陈旧,不适应软件企业的人才需求 大多数高校软件工程研究生课程设置大多套用计算机科学与技术专业的课程设置,未体现软件工程学科特点。原因主要是因为师资缺乏、招生规模较小,出于节约培养成本的考虑。 二、一种实用的软件工程全日制工程硕士培养解决方案 四川师范大学作为四川省属高校中最早开设计算机科学与技术、软件工程本科生培养的院校之一,在软件工程工程硕士培养的诸多问题上,做了一些有益探索与研究,针对性地提出了一套适合于省属高校软件工程全日制工程硕士培养的解决方案,希望能为同类型高校提供人才培养的借鉴。研究生培养方案的制定,重点需要解决课程体系设置、培养流程规划与控制。对专业学位研究生而言,还需要解决专业实践能力的培养与训练这一关键问题。 1.课程体系设置 软件工程学科正式确立的两个标志性文件是2004年IEEE推出的软件工程知识体(SWEBOK)和软件工程教育知识体(SEEK)。两个文件内容相近,都包含了软件工程核心类的知识领域、基础类或前导类的知识领域,以及其他相关领域的知识。软件工程研究生的培养从原则上说应遵循上述两个文件,围绕上述知识领域进行教学。但由于这两个文件将软件工程的知识体系划分为知识点,各领域之间必然存在重复和交叠。在课程设置上无法照搬上述两个文件。以SEEK为基础,我们对软件工程的课程设置进行规划。整个课程设置被分为五个层次,分别为工程基础课程、计算机基础课程、软件工程核心课程、扩展课程和实践课程,如图1所示。课程开设顺序大体按照五个层次由低到高依次开展。其中,工程基础课程提供软件工程所需数学理论基础、外语能力培养、软件工程文档写作、论文写作基本功训练。计算机基础课程提供软件开发必须的计算机基础知识,如网络、算法和数据库知识。 相对于本科课程而言,此类课程讲授内容更深入全面。软件工程核心课程设置了高级软件工程、软件体系结构和软件测试与质量保证三门课程。高级软件工程侧重于软件分析与设计、软件工程过程、软件开发案例分析。软件体系结构侧重于结构风格、案例研究、共享信息系统、结构描述、结构的分析与评估、特定领域的软件体系结构和流行的软件体系结构等。软件测试与质量保证着重于软件质量的改进,讨论如何提高软件质量的方法。扩展课程包含系列领域知识课程,研究生可根据研究方向选择两门;软件开发工具讲授最新流行的软件开发、过程管理所需要的软件工具的使用,以实践教学为主。软件开发新技术研讨课程以讲座形式开展,教师和学生均可作为一个专题的主讲。实践课程包含校内实践、校外实践和毕业设计三个环节。 2.培养流程与实施 教育部明文规定,专业学位研究生学制原则上为两年,同时要求应届本科生进行专业实践不少于一年。一般来说,研究生在校课程学习时间应有一年左右,加上专业实践的一年,如何合理安排学习计划,在两年内完成培养环节成了一个现实的重要问题。我校以周为单位制定了四川师范大学软件工程专业学位研究生培养流程,如表1所示:上表规划了研究生培养中的几个关键环节,依次为报到入学、课程学习、校内实践、校外实践、开题、毕业设计、论文写作和送审答辩。第一学期研究生主要是课程学习,同时在校内导师指导下开展文献阅读和编程能力锻炼。第二学期前半学期结束理论课程的学习。后半学期和暑期开展校内实践和毕业设计开题工作。第三学期研究生到实习基地进行校外实践。从第二学期后半段和整个第三学期,学生在专业实践的同时,需完成毕业设计。从第二个寒假开始直到第四学期前六周,研究生完成毕业论文的初稿。从第七周开始,进行论文修改、、盲评和答辩工作。 从培养流程表可以看出,这种安排具有两个显著特点。一是理论课程学习安排在一个半学期完成,二是实践课程分为校内实践和校外实践。研究生理论课程学习任务并不重,完全可压缩到一学期半,同时可为实践提供更多时间。校内实践非常有必要。由于是省属高校学生大多能力一般,为保障学生进入企业能融入研发团队从事技术工作,必须先期培训其实践能力。这种安排时间较为紧凑,也比较合理,符合专业学位研究生侧重于实践能力培养的要求,也在两年的学制内确保了研究生的实践时间不少于36周。 三、专业实践能力的培养与训练 软件开发能力是软件工程专业硕士必备的核心能力,其能力培养既是对前端课程学习效果的检验,也是后端毕业设计和就业的必然需要。我校将软件工程专业硕士实践能力培养融入了众多环节。从前期的实验型课程教学,到中期的校内实践、再到后期的校外实践和毕业设计。实验型课程教学解决软件设计开发的基础技能,校内实践解决中小规模软件设计开发能力,校外实践和毕业设计解决中大规模软件设计能力。 1.实验型课程教学 包含软件工具的使用训练、软件开发环境的搭建、软件开发案例分析和新技术研讨。软件工具的使用训练学生单个软件开发工具的使用,如项目管理软件Project、开发文档化软件Rational、软件测试工具LOADRUNNER、QTP、TD等。由于这些工具结构分散,还需进行开发环境的搭建训练。开发环境搭建训练内容一为搭建基于微软的VSTS和VisualStudio的开发平台,适合.net方向;内容二位、为搭建基于IBMRSA和Eclipse的开发平台,适合J2EE方向。软件开发案例分析中研究生将自己放在决策者的角度来思考项目所涉及到的具体问题,增强了学生的实际应对能力。新技术研讨促进学生或主动或被动地掌握了一些新兴技术,拓宽了技术领域。 2.校内软件开发实践 采用项目驱动形式开展。要求研究生必须申报各类实际的软件开发项目,如四川省苗子工程、学校研究生科研创新项目、学院研究生科研创先项目。研究生可组织本科生参与项目实施,但必须任项目组长,在项目中担任核心角色,完成软件需求文档审定、软件架构设计、软件详细设计、大部分编码工作、测试方案制定等重要工作。 3.校外软件开发实践 在上述环节经历后,研究生已经掌握中小规模软件开发的基本技能,此时将研究生派到实习基地,实战参与企业软件开发项目。其实践由校内导师和企业导师共同负责。前期技能的培养已保证研究生胜任企业中一般性的软件开发角色。 4.毕业设计 研究生在校内和校外实践的36周中,还需要同时进行毕业设计的开题、实施。研究生可结合企业实习工作完成毕业设计。专业实践的考核分为定期汇报和实践环节结束汇报两种形式。研究生应每隔两个月集中汇报一次实习期工作心得,取得的成绩等。实践结束时在全院公开汇报,其成绩作为实践课程成绩。 四、结论 软件工程专业学位研究生的培养,在学科教育与培养面向市场需求的人才方面有着事实上的矛盾。四川师范大学针对现有的培养模式存在专业定位不清晰、师资不足、课程设置陈旧等问题,根据学校学科特点和力量,实现了一套比较适合于省属高校软件工程专业学位研究生培养的解决方案,包括五个层次的课程设置体系、合理地流程安排和实践教学的环节设置。该方案在学校研究生培养中实行以来,研究生专业实践能力有了较大提高。2011年在四川省苗子工程中获得了一项重点项目和四项一般项目支持。该方案尚有一些不完善之处,例如实践教学环节质量的中间控制、过程控制,尚需进一步建立系列制度和规定,确保实践教学的质量。 作者:李晓宁袁丁单位:四川师范大学 软件硕士毕业论文:软件工程硕士图像处理教程探索 1数字图像处理教学方法设计 针对培养学生应用型研究能力的目标,我们在教学方法设计上本着激发学生的学习兴趣,开阔学生眼界,给学生提供更自由的思考空间的原则,通过下面两个措施来实现我们的目标。 1.1精心选择案例 选择的案例要贴近实际生活,并与课堂上讲授的方法紧密衔接。例如,在讲解图像增强和复原这两章之后,我们引入在实际生活中常见的“图像去雾”问题,通过如下方法,培养学生研究能力。 (1)要求学生先尝试用学过的算法来解决这个问题,并在课堂进行算法讨论,给出算法结果。 (2)要求学生针对具体问题,查阅文献资料,了解别人的解决方法。通过查阅国内外的文献资料,同学们知道了如何根据关键词查询科研论文,了解哪些电子数据库中有与专业相关资料,知道了文献的级别有SCI、EI、核心期刊、一般期刊等。 (3)学生将查到的算法进行分类和总结,撰写文献综述。 (4)每位学生都需要编程实现“图像去雾”算法,这个算法是结合自己的思考、实践以及查阅文献的结果。通过自己动手,同学们发现如果图像的清晰度不好,有噪声,或者没有归一化,结果就完全不同。通过自己动手验证,同学们会发现图像处理领域的一个最为重要的特点——任何算法主要都是针对一类图像或是针对一类问题而设计的,因此在算法的适应性上需要有所考虑。 1.2全面介绍图像处理的各个应用领域 老师在课堂上介绍几个图像处理涉及的较为重要的应用方向(如视频监控、图像检索、人脸识别、运动检测、车牌检测等)后,将同学们进行分组,每组负责查找一个应用方向的相关资料,讨论和汇报自学的结果。汇报内容主要包括:①应用方向的介绍;②涉及的主要问题;③目前的解决方法及应用成果。通过查找文献,同学们不仅对课上学习过的经典算法有进一步了解,同时还接触到很多新算法。通过听取各组汇报,同学们在较短的时间里,了解了图像处理涉及的多个主要的应用领域。针对每个应用研究领域,老师引导学生分析该领域的难点和重点,提出问题,再让学生思考解决方案,没有标准答案,只希望能够锻炼学生的思考能力。以“人脸识别”为例,有很多经典的或较新颖的算法,老师会结合应用领域对其中常用的或比较重要的算法,如PCA方法和Adaboost算法,进行详细讲解,使学生全面了解图像处理算法的应用领域。 2数字图像处理实验内容设计 针对培养学生的应用技术能力的目标,同时考虑到本课程实验学时数较少,我们设计了两个实验——基础性实验和综合性实验。 2.1基础性实验 目前很多经典的图像处理算法是用VC++程序实现的,我们要求大家学会读程序,能够看懂已有的算法实现程序,并在此基础上能开发新的功能。实验一:实现对多种图像格式的支持(2学时)实验内容:采用VC++编码实现,基于CDib类,添加支持打开,并保存多种图像格式的功能,包括JPEG和GIF。实验要求:利用学习的图像压缩的知识,利用现有的编码解码库实现对JPEG和GIF图像的打开和保存。实验目的:了解多种图像格式,编写针对多种图像格式的读写程序,能够进一步理解针对图像的编程的特点,同时也进一步了解开发图像应用程序的适应性问题。 老师在课程初期会向大家介绍图像处理的一个公开库——CDib类。该类很好地封装了图像的数据结构,涉及很多图像的基本操作。我们知道现实生活中的图像常常都是压缩格式的,如BMP、JPEG、PNG、GIF等。因此在讲完图像的压缩格式后,对照讲过的BMP图像结构,老师要求学生为CDib类添加能够支持多种图像格式的功能。以GIF图像为例,它不同于如JPEG、PNG等格式,GIF采用的是LZW压缩算法,使用的是无损压缩技术。GIF图像的特点是可以一次压缩多幅图像,图像颜色表控制为256色,使用渐显方式。 3.2综合性实验 针对综合性实验,我们会拟定多个题目让学生选择,如树叶提取、花朵提取、车牌识别等。实验二:数字号码图像的识别(6学时)实验内容:采用VC++编码实现,基于CDib类,针对数字号码图像,识别出数字,给出文本显示结果。实验要求:将该题目进行分解,划分任务;组内每个同学负责一部分任务的编程工作;每个人针对自己负责的工作至少提供两种实现方法,并放入整个项目流程中验证这两种方法的有效性;最后总结出两种方法的异同以及适应的范围。实验目的:考查学生对数字图像处理应用中每个步骤的掌握程度和项目合作沟通能力。上述实验涉及以下几个步骤。①图像的预处理;②图像的分割;③图像的特征提取;④图像的分类。组中每个学生负责一个步骤,所有步骤都需要尽心设计,这样整体的效果才可能最好。同时大家需要协商各自负责模块的入口和出口的数据结构,保证数据能够在模块之间顺利流转。这种协商和分工合作的能力是软件工程专业最需要的技术能力之一。 以“数字号码图像识别”为例,该题目可以分割成4个步骤:预处理、数字图像切分、数字图像特征提取和数字识别。在每个步骤中都有分别需要注意的问题,如在预处理阶段,需要对图像进行去噪声,增强对比度,甚至需要进行膨胀和腐蚀将图像中断裂的数字部分连通起来;在数字图像切分阶段需要制定适应性广泛的切分策略来应对各种情况,如数字排列可以呈现任意的倾斜角度,或数字字符相连等;在数字图像特征提取阶段,我们可以考察每个数字图像的自相关系数特征,或者每个数字图像的频谱特征,也可以考察数字图像的几何拓扑特征,如将数字图像分成2个洞的(8),1个洞的(4,6,9,0),没有洞的(1,2,3,5,7),针对每个类别再提取新的几何特征;在数字图像识别阶段,可以采用神经网络的分类器,或者利用制定的一些分类策略来分类,或者采用主成份分析(PCA)的方法来识别。 4结语 两年多的教学实践表明,新的教学大纲、授课方法和实验内容有利于激发学生的兴趣,使他们带着问题去学习,从而加深了对图像处理应用领域的了解,锻炼了编写程序和协作开发的能力。下一步我们将设计更多合理有效的案例和综合性实验,力图通过这门课激发学生的创造力。 作者:付慧陈志泊单位:北京林业大学 信息学院 软件硕士毕业论文:软件工程硕士论文质量评价模型及相关问题研究 摘要:本文通过建立一个软件工程硕士论文质量评价与度量模型,提出了明确的论文质量目标和一套切实可行的评价标准,并针对实施过程中可能存在的若干问题,进行了分析和探讨。 关键词:工程硕士;质量评价;质量标准 1存在问题与质量评价度量模型 由于种种原因,论文质量的分析和实际评审工作存在着质量要素空泛、无法真实、直接、客观地度量,最终无法做到实事求是地评价等问题[1][2][3]。例如:有关评估方案中规定的选题要求是:论文选题来自于企业实践,工程背景明确,应用性强。而论文质量标准要求是:技术先进,有一定难度;内容充实,工作量饱满;综合运用基础理论、专业知识与科学方法;格式规范,条理清楚,表达准确;社会评价好等。但现实的论文评审操作则明显存在以下问题: (1) 质量要素的选择过于简单、抽象层次太高。因而难于细致、客观、真实和准确地反映被检查对象的实际情况; (2) 对相关质量要素的度量和评价,缺乏直接、真实、仅根据客观的、标志性的交付物成果、里程碑事件为度量和评价依据的质量要素度量与评价方法,使本已高度抽象化的评价,更带有人为评判的色彩; (3) 所有的度量和评价是定性的,当从定性评价,转化为定量成绩的时候,从定性到定量的转换标准设置,缺少科学性和原理依据。 作者认为,产生上述问题的根本原因有两个。一是标准的制定者受传统学术观点的局限,担心制定详细、确定的评审标准,将限制论文作者的研究和表达,导致“论文八股”的出现。另一个原因,则是标准制定者对工程硕士论文(包括论文阶段的学习、研究过程)应该做什么?应该怎么做?最终的目标应该是什么?怎样才能检验硕士研究生是否达到了的既定目标等很难确切把握。导致本质上对论文质量目标的不明确、不清晰,因而无法制定具体的检查标准。 为了克服上述问题,针对软件工程硕士毕业论文这一特定对象,本研究首先建立如下的论文质量标准与评价度量体系模型: (1) 论文质量的一级属性:论文的分类和性质界定; (2) 论文质量的二级属性:论文必须包括的四个基本构成部分; (3) 论文质量的三级属性:论文基本构成部分的质量度量要素; (4) 论文质量的四级属性:论文质量度量要素的度量方法,包括定性度量转换为定量评价的加权因素设计,即量化成绩。 图1为论文质量标准与评价度量体系的模型。 2对论文性质的界定 为了准确地把握软件工程硕士毕业论文的质量,明确论文质量标准,我们根据软件工程硕士研究生培养目标和专业要求,结合软件学院实际情况,不失一般性地将软件工程硕士研究生毕业论文的类型,界定为软件技术研究与软件工程项目二类。 界定的原则依据是2003年科技部、教育部等五部委《关于改进科学技术评价工作的决定》中,将科学技术评价工作明确分类,区别不同评价对象,明确各类评价目标,采用不同的评价标准,以求能够客观、真实、准确地反映不同评价对象实际情况的原则精神。 界定的基本出发点是区分论文性质,并分别制定相应的评审标准。本研究的重点是软件工程项目类论文。本研究对软件工程项目类论文的定义是: 目标:在企业实习过程中,参与企业软件工程项目,研究并解决特定问题域的问题; 技术与方法:学习、研究、选择、运用,并有所拓展下列(同时)技术与工程知识与方法: 技术知识:计算机软件(或软硬结合、以软件为主,但必须包含软件工程)的最新技术、方法、手段、工具; 工程管理:在软件工程的生命周期模型(不要求特定模型)及软件过程关键环节中,采用软件过程管理、项目管理、配置管理、质量管理(不要求全部)的技术方法; 按软件工程规范,独立完成了一个软件制品研发的完整过程,其结果对相关业务领域内的问题解决,具有一定的意义和价值; 以技术和项目成果、项目实现过程报告的形式,形成的硕士论文。 3对论文内容的要求 根据论文性质的界定定义,工程项目类毕业论文,本质上是一个项目(或项目阶段)的技术与项目报告。因此,论文内容应完整呈现以下四方面的能力: (1) 专业知识:通过项目研究的背景、问题与目标描述,考察学生对所在行业领域业务知识和领域关键问题了解的广度与深度,即考察论文课题的专业水平。 (2) 技术水准:通过项目技术方案分析,考察学生在特定问题下,对解决问题所涉及的技术方法、工具和手段,解决领域关键问题的状态与发展水平的评价与了解。 (3) 实现能力:通过项目关键技术的实现过程,考察学生解决关键技术问题的具体能力和达到的水平。 (4) 过程能力:通过项目过程报告,考察学生以关键技术解决方案的实现为基础、组织实施软件工程项目的过程管理和控制能力。 4质量要素及其度量方法 根据论文内容的四个方面要求,我们设定了四个方面、20个质量度量要素(表1),每个要素各分为6个等级(0~5分),供论文评审时,进行判断评价。表中各要素的分级评价标准见附录。 5量化成绩的加权因素 根据附录的方法,将论文按内容规范要求及质量度量要素,采用定性分析的方法,获得对每个度量要素的评价(加权前得分)。并依据加权方法,将其转化为定量的论文成绩。加权比例指向为:要求论文更侧重于关键技术实现和软件工程过程,兼顾领域与技术背景。 因此,根据专业性质、学生基础学习和实习项目的具体情况,论文四个构成部分的成绩加权因子分别为:10%、20%、30%和40%。加权计算公式是:加权后得分=加权前得分*加权因子*4。 6质量度量实施的若干问题探讨 标准只是一个杠杆,由于论文质量是研究生教育产品的出口质量,因此,最终产品质量的口一收紧,产品生产过程的问题就必然地暴露出来了。 (1) 生源的质量问题 根据对本院(其他院校情况应基本类似)往届新生(含单/双证生)入学前基本状况的考察和分析发现,入学研究生基本上可以划分为三类:计算机及软件相关专业(元教育本专业)应届保研或考入的本科生;元教育非本专业或虽是本专业,但不在相关专业行业企业、基本没有软件开发项目经历(经历非专业)的学生;本专业毕业并一直从事软件开发、具有软件工程项目经验的在职生。根据若干届学生情况的初步统计,在各届学生中,第一类约占40%,第二类占30%~40%,而第三类只占20%左右。随着招生规模的扩大,第二类学生(元教育或经历非专业)的比例有扩大的趋势。 软件工程是计算机技术与工程实践、过程管理相结合的学科。学科特点决定了它与传统计算机科学与技术系在培养方向上的不同。因此,现有的软件工程硕士研究生教育,本质上不适合第一、第二类学生。因为这二类学生没有实际软件项目开发的经验,而学校几乎不可能在研究生学习的一年期间,提供这样的经验和机会。 面对生源的实际情况,不论学生在校课程教育的效果如何,要使前二类学生达到本标准设定的质量目标,是非常困难的。标准和目标的明确化,现实地凸显出软件工程硕士研究生培养,从源头开始的困惑。 本研究成果在招生阶段希望达到的贡献是:在研究生入学考试时,除统一笔试以外的综合能力测试及面试中,对考生基础能力的特别考察和筛选,提供了内容和要求的来源与依据。 软件硕士毕业论文:软件学院软件工程硕士开放式教学体系研究 摘要:本文针对我国软件学院专业教学所面临的挑战,在充分调研IEEE SWEBOK和CC2004SE知识体系的基础上,针对我国软件学院目前的实际情况重新划分软件工程知识体系,提出了软件工程硕士开放式教学体系的建设方案。围绕专业培养目标,结合学生的工程实践,引入课程组的概念,制定了一套较为完整的开放式实践教学实施计划。 关键词:工程硕士;开放式教学;课程组 1引言 软件学院软件工程硕士的培养目标是培养高层次、应用型人才,针对这个目标,其教学实施应着重体现出以下两个差异性: (1) 软件工程学科领域和计算机学科领域间专业设置的差异性,这个差异应能够很好地体现培养应用型人才的目的; (2) 工程硕士课程和软件学院本科课程的差异性,这个差异应能够很好地体现培养高层次人才的目的。 目前国内软件学院软件工程学科和传统的计算机科学学科在课程设置上差异还不显著,工程硕士的培养方案中甚至部分课程只是本科阶段的重复。虽然大都开始强调学生的软件项目实践,但普遍缺乏过程管理。本文在对IEEE的软件工程知识体系进行深入学习的基础上,针对软件学院软件工程硕士提出了实现开放式教学体系的教学改革方案。 2软件工程知识体系 2004版SWEBOK将整个软件工程知识体系分为11个知识领域(Knowledge Area,KA),其中前5个知识领域是按软件开发的生命期诸阶段排列的,即软件需求、软件设计、软件构造、软件测试和软件维护;后6个知识领域是软件开发中的支撑性或者辅助性的方面,可能覆盖软件开发的多个阶段,包括软件配置管理、软件工程管理、软件工程过程、软件工程工具与方法、软件质量、相关学科知识领域。这些知识领域SWEBOK并没有重新系统规定,而是直接套用已经成型的各领域知识体系,因此不可避免地存在重叠和不匹配。 在SWEBOK的基础上,IEEE与ACM又共同拟定了CCSE。其中的核心部分是软件工程教育知识(SEEK)。SEEK由十个知识领域组成,包括:计算机基础(CMP)、数学和工程学基础(FND)、职业实践(PRF)、软件建模与分析(MAA)、软件设计(DES)、软件验证(VAV)、软件演化(EVL)、软件过程(PRO)、软件质量(QUA)、软件管理(MGT)。 可以看出,SEEK和SWEBOK基本内容是相近的。总的来说,二者都是包含了软件工程核心类的知识领域、基础类或前导类的知识领域,以及其他相关领域的知识。 3高等教育教学改革研究状况 目前国内关于高等教育教学改革的论文很多,如翁敬农、刘云等在软件学院实践教学体系的内容与规划中提出了“一个目标”、“两种途径”、“三大环节”、以及“四级台阶”的具体步骤。王移芝、林艳琴提出基于“两段教学”的计算机基础课程的教学体系框架。谢芳清、闫大顺提出了以素质教育为目标的实践教学体系。王浩、胡学钢等提出计算机科学与技术专业实践教学体系的总体研究与建设。王志英以国家实验教学示范中心为例,提出实践是综合能力培养的基础,并以此构建计算机科学与技术专业实践教学体系。董玮、邱建华等以专业课“程序设计基础(C语言)”为例给出了建设实践教学体系的实践探索。然而目前还没有检索到专门研究软件学院工程硕士教学改革的论文。无论是从传统计算机科学与技术专业与软件学院软件工程专业的区别,还是本科生与研究生的区别来看,针对软件学院工程硕士的教学改革研究都是十分有必要的,同时也是迫切的。 4工程硕士的课程体系设计策略 我们以IEEE SWEBOK和CC2004SE的知识体系为主体,结合中国软件产业以及本院的具体实际情况,设计了中国科学技术大学软件学院软件工程专业的知识体系,作为我院工程硕士课程设置和教学计划实施的依据。以SEEK为基础,我们对软件工程的课程设置进行规划。整个课程设置可以分为三个层次,即导论性课程、软件工程核心课程和其他课程。如图1所示,该知识体系定义了7个知识体系子类。计算机基础和数学和工程学基础属于导论性课程、其他课程包含了职业实践、领域课程、软件工具、工程实践等四个子类。 其中计算机基础定义了软件工程作为计算学科所必需包含的计算科学基础以支持软件产品的设计与建设;数学与工程学基础提供了软件产品获得所需属性的理论和科学基础;职业实践则聚焦于软件工程师以职业行为从事软件工程实践所必需具备的知识、技能和态度;软件工程核心课程应该包含软件开发生命周期所涉及到的主要知识领域;领域课程包含了对于某个特定领域软件工程师应该接受的特定教育或经验;软件工具定义了从事软件工作所必需掌握的当前主流工具与软件产品等;工程实践则是学生使用所学到的知识从事实际开发活动,提供动手能力的重要环节。 对于工程硕士来说,大部分同学经过计算机本科专业的学习,已经具备了初步的计算机基础以及数学与工程学基础,因此目前其课程体系建设如图2所示,重点是完成软件工程核心课程教学,并结合IT界的最新技术趋势设计相关领域课程。教学改革的核心是如何设计软件工程的核心课程,并指导学生熟练掌握相应的软件工具,强化他们的实践动手能力。 5工程硕士开放式教学体系建设 对于如何设计软件工程的核心课程,我们的主要思路是打破原先各子知识体系间的界线,围绕专业培养目标,结合学生的工程实践,引入课程组的概念,实现一个完整的开放式教学体系。如图3所示,整个开放式学习体系包含三个部分: (1) 设计课程组:在理论环节采用课程组的概念,集中讲授较高层次的、符合硕士生水平的软件工程的某些重要环节; (2) 开设实践教学环节:在实践教学中采用做中学(Learning by Doing或LBD)理念,由指导教师讲述软件工具的具体操作过程,同学实际动手学习; (3) 强化工程实践:在工程实践中由学生自主选题,并将LBD中讲述的工具在项目整个生命周期中贯穿使用。 5.1设计 课程组 目前我院开设的高级软件工程和本科的软件工程课程内容并没有太大差别,对于软件工程的各个环节面面俱到,但又都比较浅显,对于工程硕士的培养显然是不合适的。因此我们设计了软件工程课程组的理念,初步设计了以下课程: (1)“软件开发管理”(Managing Software Development) (2)“软件系统架构”(Architectures for Software Systems) 第一门课程主要针对以后立志从事软件工程管理方向的同学,课程针对IT项目集中阐述如何实现风险、资金、工期等各方面的管理;第二门课程主要针对以后立志从事软件高级开发方向的同学,课程主要讲述复杂软件系统架构层上的设计,介绍目前通用的软件系统结构、设计技术以及实现这些结构的模型、表述方法等。这两门课程对于软件工程硕士应该至少必修一门。除了这两门课程,其他软件工程类的课程包括了设计模式、软件测试、语言类课程如J2EE、.NET等等,学生可根据自己的实际情况进行选修。 5.2开设实践教学 针对该课程组,我们开设了实践教学环节,采用做中学理念,由指导教师(可以由助教担任)根据事先确定的主题,选用具体工具讲述如何使用该工具完成项目开发的某具体环节,工具涵盖了项目管理、架构设计文档化以及测试等软件项目开发的主要方面。 对于软件工具的选择,有两种思路。一种方法是对软件工程的不同环节分别选择不同工具,例如项目管理选Project、开发文档化选Rational、测试再选别的工具这样来做,但结构分散,不利于整体化考虑。另一种是采用套件,完成项目开发全程的所有操作,目前我们选择了两种套件,一是微软的VSTS,该套件和微软的Visual Studio开发平台绑定,适合学习.net开发框架的同学;另一种是IBM的RSA,该套件和Eclipse开发平台绑定,适合选择开源J2EE开发框架的同学。 5.3强化工程实践 大多数的软件学院目前都开设了专门的工程实践环节,但实际的效果并不尽如人意。因此我们将工程实践环节也纳入到开放式学习体系中,以前面所说的理论以及实践教学环节来指导学生更好地高质量完成整个工程实践。 从教学方法上,工程实践应尽可能地贴近现实项目,除了常见的软件工程文档,我们还要求学生提交过程管理类文档(软件开发合同、会议记录、工作日程记录、合同执行报告:财务报告和开发过程报告、个人总结、小组总结等)。 从技术上,学生可以自由选题,也可参考工程实践题库中的选题。选题涉及所有领域课程包含的内容。要求学生必须采用实践教学环节中介绍的工具全程介入项目开发的各个阶段。学院设立专门的工程实践网站提供学生选题及交流,以及指导教师的监督。 从教学形式上,则注重如何实现应用型软件人才的核心能力分析与培养,要求学生运用职业实践子知识体系中的相应内容,锻炼学生的口头表达能力、书面表达能力等。通过学生的开题演讲、采用各种工具完成相应的项目文档、结题答辩等环节来实现学生职业素质的培养。 从实践效果评价上,我们制定了一系列的成绩考核方法、管理考核信息、分析考核结果、评价教学质量等措施,实现完整的考核体系。 6结论 软件工程专业学生的培养,在学科教育与培养面向市场需求的人才方面有着事实上的矛盾。软件学院现有的实践教学体系存在着专业课程设置定位不准确、课程实验师资不足、实验教学内容质量不高、实验指导和管理落后等问题。根据软件工程专业教学所面临的挑战,在充分调研IEEE SWEBOK和CC2004SE知识体系的基础上,针对软件学院的工程硕士,我们提出了软件工程硕士开放式教学体系的建设,围绕专业培养目标,结合学生的工程实践,引入课程组的概念,制定了一套较为完整的开放式实践教学实施计划。 软件硕士毕业论文:软件工程硕士“现代物流”课程的创新设计与教学实践 摘要:本文详细介绍了易新科技有限公司与浙江大学软件学院所开设的“现代物流”课程的定位、课程设计以及教学实践等内容。该课程致力于将学生培养成了解物流行业发展、理解物流操作、认识物流管理、掌握物流信息技术的高端应用型人才。 关键词:软件工程硕士;现代物流;课程设计;教学实践 1前言 软件工程硕士是国家教育部根据中国社会主义市场经济建设特定的需要,培养具有软件设计、开发能力并同时具有深入行业应用知识的人才而设置的培养体系。现代物流业是国内近阶段全面、快速发展的一个行业。其发展的动力一方面得益于全球化给中国带来的大量的产品制造机会,以及随之而产生的物流服务需求。另一方面得益于信息技术在物流业的深入应用。信息技术的应用使得以运输为中心的传统物流操作转变为以国际互联网、电子商务等技术为核心的现代物流服务。随着物流业对信息技术的日益依赖,以及中国市场上对物流人才的日益需求,使得软件学院开设现代物流方向的工程硕士顺理成章。 浙江大学软件学院作为国家重点支持的一所示范性软件学院,一直在了解并把握行业应用方向上积极地思考、谨慎地行动,以求建立高起点、面向高端、面向国际化的工程硕士专业方向。在决定开办现代物流方向后,经过对香港大学属下全资子公司易新科技有限公司(E-Business Solutions Limited, 简称EBSL;其之前名称为ETI Consulting Limited,简称ETIC)的全面了解、深入考察,决定由EBSL全面负责现代物流课程的设计、教学、以及实习指导。 EBSL是面向香港、珠三角进行物流与供应链管理、无线应用技术、应用平台集成与开发等方面的高科技开发公司。相对于国内或全球其他地方而言,香港在现代物流业方面长期以来有着强大的IT技术应用优势及产业竞争优势。EBSL以其众多的、扎实的行业应用知识及经验提供优质的技术解决方案,在香港与珠三角地区有众多的客户以及树立了良好的口碑。 2课程设计 2.1课程设计理念 当EBSL同浙江大学软件学院联合起来开设现代物流课程的时候,双方很快就确定了如下课程设计理念: (1) 课程的应用导向。除了满足软件工程硕士本身对行业知识的应用导向要求之外,在设计课程时,要尽量分享EBSL一直以来在香港及珠三角物流行业应用方面的实践经验。 (2) 课程的国际化。香港的物流应用技术水平虽然已经很高,但为了让学生充分了解物流业的最新趋势,仍需要跟踪、分析、整理国外发达国家在物流方面的最新应用技术。 (3) 课程的差异化。目前国内已经有很多大学开设了现代物流相关方面的课程以及出版了相关的教材。基于高起点的合作初衷,在设计课程时要突出差异性,让学生可以从不同的角度、不同的体系、不同的风格去学习相关的知识。 (4) 课程的多层次化。由于软件工程硕士的学生有的是脱产学习,有的是在职学习,有的本科学习背景是计算机相关专业,有的本科学习背景是管理或其他非计算机专业。因此在课程设计上要考虑到不同学生的背景、知识面、及时间可得性。 (5) 体系的完整性。现代物流业涉及的知识面非常广泛,要在内容取舍上做到点面结合。对不能深入介绍的内容,要向学生展示出一副完整的体系架构,以便学生对自己已学习的知识、待学习的知识有清楚的了解。 (6) 内容的启发性。硕士教育已经是远超越牵引式的教育阶段。在课程内容或课后作业上,要给学生留下更多思考的空间,启发学生继续对某一方面知识的深入探索。 2.2课程设计过程 基于以上双方达成的课程设计理念,EBSL调动了众多的资深行业专家、专业研究人员、以及应用开发人员一起进行课程设计。其间,经历了向两个方向的探讨,设计了两种待选方案。 第一种方案是考虑到学生的学习背景而设计的五门循序渐进的核心课程,分别为现代物流基础(Basic)、现代物流操作与管理(Operations Management)、现代物流信息系统(IT Systems)、现代物流新兴技术(Emerging Technologies)、以及现代物流系列讲座(Lecture Series)。如图1所示,左边是五门课程的层次结构,右边所示为其中一门“物流操作与管理”课程所覆盖的内容。 该五门核心课程并非完全分割,而是都涉及到行业知识(Domain Knowledge)、产业分支(Industries)、处理流程(Processes)、操作(Operation)、信息技术系统(IT Systems)、信息技术开发(IT Development)、管理(Management)、及发展趋势(Trends)共8个维度。但每一门课的侧重点有所不同,它们之间可以达到前后照应、重点突出,如图2所示。 第二种方案是抓住“现代”这个关键词,以从传统物流向现代物流发展为主线,从多角度阐释“为什么是现代物流”,“什么是现代物流”。“为什么需要现代物流”等问题。相关课程的结构如图3所示。 如图3表明,我们主要是产业发展(Industrial Development)、操作(Operation)、管理(Management)、信息技术应用(IT Enablement)、服务区域与时限(Service Range Time)、安全(Security)、环境友好(Environmental Friendliness)等角度来阐释现代物流的发展、演变、特点、并以此为主线来讲授相关的应用知识。 经过多次的讨论,最后确定以第二种方案进行进一步的课程内容设计,因为该方案更符合预先确定的课程理念,特别是在课程的差异性、灵活性、体系完整性、及启发性方面。 2.3课程设计结果 在确定课程结构后,经过多方面的资料收集与整理、分析与比较,最后设计出针对一个半年学期的四次共十六个学时的课程。 第一次课程主要是从产业发展的角度介绍现代物流,其中包括三个大的方面:现代物流的发展历程、现代物流的模式、我国现代物流的现状。其中现代物流的发展历程包括美国、日本、中国三个国家的现代物流的发展历程。因为在其发展历程上,三个国家间是有传递关系的。现代物流的模式方面介绍了物流园区、配送中心、物流外包、第三方物流、第四方物流、现代集装箱港口、保税物流、全球速递、绿色物流等内容。有关我国现代物流的现状方面,从多方面进行了比较,包括产业横向比较、物流成本比较、物流从业人员比较,以及现代物流业与其他产业的关联性及相互促进的发展趋势。第二次课程主要是从操作的角度介绍现代物流。其中介绍了四种主要运输方式(公路运输、铁路运输、水路运输、航空运输)在其运输、仓储、搬运与装卸、流通加工阶段所涉及的设备、工具、流程、单据或文件。第三次课程主要从管理的角度介绍现代物流,其涉及的内容包括作业(生产)管理、营销管理、人力资源管理、成本与收入管理、质量管理、风险管理、客户与合作伙伴管理、资产管理、并最后汇集到信息管理。该方面的内容与前一次课的物流操作配对起来,进行有点有面地介绍。第四次课主要是从信息技术应用的角度来介绍现代物流,其讲解思路是以信息的加工处理过程为主线,介绍同现代物流有紧密应用的技术。所涉及的内容包括信息获取与录入(条码、RFID、GPS、中间件)、信息编码与存储(UPC、GTIN、EPC)、信息处理与分析(数据仓库、OLAP、数据挖掘、空间数据分析)、信息的呈现与可视化(GIS、仿真系统)、信息交换与共享(EDI、ebXML、BPEL、EPCIS)、信息传递与(GSM、3G、SMS、GPRS、WAP)、信息系统架构(SOA、EDA、Cloud Computing、SaaS),以及一些具体的物流信息系统。 3教学实践 按照既定的教学时间安排,我们在浙江大学2008冬季及2009春季学期,平均每个月给学生授课一次。在教学实践中,除了充分体现课程设计时所确定的应用导向、国际化、差异化、完整性、多层次化、启发性等课程理念外,还注意了如下的教学细节。 3.1时事性 如在第一次课讲授现代物流的模式的时侯,宁波刚好举行了“宁波―舟山港2008年第1000万集装箱”的庆祝仪式。对宁波―舟山港而言,突破1000万TEU集装箱吞吐量是一个重要的时刻,属于宁波广为传播的一件大事。在课程中,我们把该事件与现代集装箱码头的发展、中国集装箱码头的壮大等内容结合起来,让学生们基于身边所发生的事情产生热烈的讨论,以留下真实而深刻的印象。又比如在讲授现代物流的风险管理的时候,刚好在亚丁湾发生多起索马尼海盗劫持商船的行为。课程中就把预防海盗的劫持,作为一个现实的问题,又重新归纳为一个海运重点关注的风险,虽然它曾经是17、18世纪航海界的灾难性问题。 3.2趣味性 如对公路、铁路、水路、空运等运输方式所涉及的运输、仓储、装卸与搬运、流通加工等过程,并没有枯燥地一个一个介绍,而是设计了一个虚拟事件:2009年NBA全明星赛将在菲尼克斯太阳队所在的凤凰城举行。为满足球迷对全明星球衣的热爱,组织者1月份向中国广东某工厂订购了5万件全明星赛球衣。基于这样一个虚拟事件,再设计了一些虚拟的球衣产前及产后物流流程:(1)服装加工厂从湖北省采购球衣所需布匹,通过公路运输运往武汉某货运站;(2)通过铁路运输,布匹由武汉某货运站运到广东某仓库进行仓储;(3)球衣完成加工后,球衣装进集装箱,准备出口到美国;(4)集装箱由货柜车运到深圳,在深圳出口通关;(5)从深圳通关后,运到香港集装箱码头;(6)在香港集装箱码头装船,通过海运运往美国三藩市的配送中心;(7)在三藩市的配送中心完成分拣、包装后,通过飞机空运到凤凰城机场;(8)从凤凰城机场通过快递服务运送到各球衣销售门店。基于这样一系列虚拟任务,在引导学生一步一步完成球衣交付的同时,把其中所涉及公路运输、货运站、铁路运输、仓储、集装箱运输、出口通关、集装箱码头、海运、配送中心、空运、快递服务等知识全部融入其中。 3.3团队协作 比如,在介绍完前面所提到的NBA球衣交付的虚拟流程后,给学生留下一个课后作业,要求5~6个人自由组合成一个小组,查阅相关的数据或作出合理的假设,来计算虚拟场景中球衣物流的整个时间与成本。该时间或成本没有预设标准答案,学生可以重新设计路线,走不同的港口或航线,作出不同的假设。目的是要求学生去深入考虑其中的环节(运输里程与时速、装卸时间、交接时间、报关环节时间、航班与船期、意外情况等)并收集相关的参考数据作为支撑材料,来对其结果进行辩述。 4结论 通过教学实践证明,易新科技有限公司与浙江大学软件学院这种跨区域的、高起点、高定位的校企合作模式是非常成功的。课程从设计开始就遵循了应用导向、国际化、差异化、多层次化、完整性、启发性的理念。在设计过程中经过了深入的调研、比较、论证,设计出合理的课程体系。在教学过程中,注意了教学的时事性、趣味性、灵活性,以及对学生的团队工作能力的培养。该课程吸引了广大学生的兴趣,众多相关专业的学生选修了该课程。课堂的最高听课学生人数达到200多人。在教学完成后,学生普遍反映收获良多、知识面扩展很大。对毕业后成为一个了解物流行业发展、理解物流操作、认识物流管理、掌握物流信息技术的高端人才有了足够的信心。 软件硕士毕业论文:从实战中培养工程硕士开发大型软件项目的能力 摘要:专业学位(professional degree),是相对于学术性学位(academic degree)而言的学位类型,其目的是培养具有扎实理论基础,并适应特定行业或职业实际工作需要的应用型高层次专门人才。如何到达这个目标,我们在培养计算机工程硕士的这一年多时间里,通过与美国的IT业公司和大学的合作,让工程硕士参与到软件中介发标的项目中,从中接触一些大型软件项目的开发,了解大型软件项目的开发流程,从实战中提高软件开发能力。文章介绍了这一过程,并进行经验总结。 关键词:专业学位;软件开发;客户需求;软件构架;代码质量 专业学位与学术性学位在培养规格上各有侧重,在培养目标上有明显差异。专业学位以专业实践为导向,重视实践和应用,培养在专业和专门技术上受到正规的、高水平训练的高层次人才,授予学位的标准要反映该专业领域的特点和对高层次人才在专门技术工作能力和学术能力上的要求。专业学位教育的突出特点是学术性与职业性紧密结合,获得专业学位的人,主要不是从事学术研究,而是从事具有明显的职业背景的工作。 我院从2009年开始招收计算机工程硕士,以培养能够从事软件开发的应用型人才。软件工程相关知识是各个公司在开发大型商业软件项目当中总结出来的,具有很强的实践性。如果单独通过课本的讲授,工程硕士难以获得深刻的印象,而且难以达到教学目的。因此,必须让工程硕士接触到真正的商业软件项目,并且参与到软件开发的各个过程,让他们更加深刻地体会课程中讲授的知识点,提高其软件开发能力。 为了达到这个目标,我们在开始培养计算机工程硕士的这一年多时间里,通过与TRILOGY/GDEV合作,让工程硕士参与到当前主流大型商业软件的开发过程当中,从而更好地掌握软件工程课程教授的知识,并且了解当今软件开发中应用的主流技术和开发模式,从实战中提高软件开发能力。 1背景介绍 成立于1989年的Trilogy公司,总部位于德州奥斯丁,在印度和中国均设有分支机构。Trilogy公司在全球拥有600多名业内精英和超过500项的专利技术,有着 17年与世界500强企业成功合作并获利的经验,曾被福布斯、财富、商业周刊、哈佛商业评论等著名商业杂志誉为高度创新和高瞻远瞩的公司。 Trilogy 公司当前专注于数据挖掘和用户体验相关的业务,倡导新型的商业服务和技术支持,为客户提供完全的商业价值保障。其主要客户包括:Ford Motor,General Electric Healthcare,Daimler-Chrysler,Nissan,Goodyear Tire Rubber,Prudential,Travelers Insurance,Gateway,IBM等公司。 至2006年止,Trilogy 公司已为汽车、保险、消费电子等行业提供多个商业服务项目,如:FordDirect. com,Goodyear,TTG,,Prelaunch,Gateway,TIS等。我们通过网上投标,参与这些项目的开发。 项目开发的过程主要包括:下载PIP(Product Info Page)和RFP(Request For Proposal)文档、虚拟机(以及SVN代码)和程序文档。PIP是一个网页,是项目的需求;RFP文档是关于项目使用的技术概述;虚拟机是模仿对方开发环境的平台;程序文档放在网站上一个固定位置,如Bundle Location。发标的公司会提出: “Deliverables”:是最终需要提交的东西,一项都不能少,否则算失败。 “Acceptance Criteria”:对方接收的标准,符合标准的就算通过。 “Deadline”:提交时间,超过这个时间即为失败。 项目提交后,如果判为失败,开发者还可以申诉(Rebut)。 2项目开发的收获 通过参与这些项目的开发,工程硕士主要在以下几个方面有所提高。 2.1锻炼工程硕士与客户沟通的能力 客户的需求是基于其公司的商业逻辑,如何准确无误地获得客户的需求,并且从软件开发的角度将需求进行规范化,这是软件开发中必须解决的首要问题。 由于是跟美国IT业公司进行合作,所以该案例采用的交流方式是线上交流,而非传统的面对面交流。线上交流的主要方式是使用美国公司提供的Issue tracking system,完全是通过英文交流。长期的网上交流,锻炼工程硕士的英语交流能力和业务逻辑的理解能力。 2.2学习当前主流技术 在项目开发过程中,工程硕士能够接触到当前IT业主要使用的各种技术。同时,结合项目地学习可以让工程硕士更好地了解这些技术应用的场景、目的以及作用。下面列举项目中用到的一些技术。 1) 编程语言:主要采用Java,便于上手,以免工程硕士花太多时间在学习语言上。 2) 构建工具:Ant是一种基于Java的build工具,用于自动化调用程序完成项目的编译、打包、测试等。脚本格式基于XML,便于维护,而且基于Java的,具有平台无关的特点。 3) 虚拟机:要求配置模拟各种平台的虚拟机环境。 4) 数据库:采用Oracle、DB2、PostgreSQL和SQL Server,均是当前主流数据库管理软件。 5) 数据库查询语言:SQL以及OQL。其中项目中主要使用OQL即对象查询语句,使用OQL有利于软件开发过程中的效率和规范化。 6) 测试工具:JUnit,Selenium。JUnit是由Erich Gamma和Kent Beck编写的一个回归测试框架,广泛应用于单元测试当中。Selenium是一个用于Web应用程序测试的工具,通过编写模仿用户操作的 Selenium 测试脚本,可以从终端用户的角度来测试应用程序,能够支持不同的浏览器,以及能够使用各种编程语言编写,广泛应用于UI测试当中。 7) XML技术:XML是一种平台无关的表示数据的方法。使用 XML 创建的数据可以被任何应用程序在任何平台上读取。甚至可以通过手动编码来编辑和创建 XML 文档。XML在网络应用和信息共享上方便、高效,可扩展。所以,可以XML作为一种先进的数据处理方法,使网络跨越到一个新的境界。在本项目中,XML主要用于书写配置文件。 2.3熟悉软件构架 众所周知,软件架构是一个软件先进性集中体现的地方。通过外包软件的开发,能够了解软件项目的架构,分析软件中应用的各种框架,理解应用的设计模式。下边是Java EE项目中常用的一些开源的框架。 1) Hibernate是一种Java语言下的对象关系映射解决方案。它是使用GNU宽通用公共许可证发行的自由、开源的软件。它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。Hibernate也是目前Java开发中最为流行的数据库持久层框架。它的设计目标是将软件开发人员从大量相同的与数据持久层相关的编程工作中解放出来。无论是从设计草案还是从一个遗留数据库开始,开发人员都可以采用Hibernate。 2) Spring是一个开源框架[1-2],它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring通过一种称作控制反转(IoC)的技术促进了松耦合。Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计和事务管理)进行内聚性的开发。应用对象只完成业务逻辑,并不负责其他的系统级关注点,例如,日志或事务支持[3-4]。 3) Struts有一组相互协作的类、Serlvet以及JSP TagLib组成[5]。基于Struts构架的Web应用程序基本上符合JSP Model2的设计标准,可以说是MVC设计模式的一种变化类型。我们参与的软件外包项目很容易理解为什么Struts是一个Web软件开发框架,而不仅仅是一些标记库的组合,理解理解Struts的控制器(Controller),模型层(Model)和视图层(View)。体会在模型层,Struts可以很容易地与数据访问技术相结合,包括EJB、JDBC和Object Relation Bridge;在视图层,Struts能够与JSP、Velocity Templates、XSL等表示层组件相结合。 项目中还有一些独有的框架,由于细节繁琐,不便介绍。接触这些框架,可以获得宝贵的软件开发经验。 2.4提高书写代码的质量 在真实项目的驱动下,工程硕士通过自己阅读项目中的优质源码,以及在经验丰富的开发人员的帮助下,形成良好的编码风格,提高代码质量。 一个简单的例子是,工程硕士在参与项目之前,代码质量相当低,主要体现在:代码效率低下,缺乏注释信息,代码不具有扩张性,代码潜在bug多等。而对方真实的项目的代码中包含大量注释信息,以及一些必须的日志信息,具有良好的编码风格。在查找这些代码的bug或提升其功能过程中,一定会接受对方良好的开发风格熏陶。 3结语 总而言之,通过软件外包项目的开发,能够极大地提高工程硕士的学习兴趣以及效率。其具备的主要优点如下: 1) 该案例是基于真实的大型商业项目,是当前主流技术的集中体现; 2) 工程硕士可以接触到软件开发过程中的各个阶段,有利于工程硕士把握软件开发流程; 3) 工程硕士可以通过阅读优质源码以及和有经验的开发人员交流来提高软件开发能力,以及通过与客户交流来提高提炼需求的能力; 4) 外包软件开发实践性很强,工程硕士能够很好地补充课本的不足; 5) 从外包软件开发中,工程硕士能够获得很好收益,激发学习热情。 我们认为,让工程硕士参与软件开发实战,积极推进了硕士研究生培养模式的改革,加强了应用型高层次人才的培养,促进了人才培养与社会需求的有效衔接。 软件硕士毕业论文:服务地方产业发展需求的软件工程硕士培养模式研究 摘要:浙江大学软件学院紧跟产业和技术发展,坚持市校合作高起点办学,依托浙江大学的学科、师资等资源优势,创新名城名校的办学机制,探索与市场需求接轨服务地方经济发展的产学研相结合的软件实用高级人才培养模式,在理论教学、技能培训和工程实践相结合的教学模式上实现创新和突破。 关键词:服务地方产业发展;软件工程硕士;培养模式 当前,宁波正面临着重组产业要素、转变发展方式、实现科学发展的严峻挑战。宁波各级政府正在狠抓机遇,迎难而上,采取有力措施,促进工业调整转型,加快现代服务业发展。从2009年起,宁波全面实施了服务业跨越式发展行动纲要,推进服务业功能区和产业基地建设,大力发展以传统制造业转型升级为标志的生产性服务业,大力发展以新一代信息技术支撑应用为标志的新兴服务业。宁波的家电、服装产业入选了省首批块状经济转型升级示范区试点,工业企业二、三产分离发展加速,全国性物流节点城市建设正在积极推进,第四方物流市场平台投入运行,栎社保税物流中心封关运作,梅山保税港区的封关运行的前期准备完成,特别是2010年9月宁波智慧城市建设正式启动[1],等等,所有这些都说明宁波经济社会发展对高层次人才需求提出了新的要求,面向产业发展、服务地方经济成为高等院校人才培养的重要课题。浙江大学软件学院在宁波的办学是浙江大学与宁波市科教战略合作的重要成果,学院以市场需求为导向,以“Computer+X”和“X+Info”复合型人才培养理念,致力于培养高层次的应用型、复合型、国际化的软件工程技术和软件工程管理人才。针对宁波产业发展特色和区域社会经济统筹的需要,学院有选择性地开设高层次软件工程人才需求急需的专业方向,小批量规模化地培养软件工程硕士。本文以与IBM合作创建的软件服务工程专业方向的培养模式为例,阐述专业课程的设置和课程教学方式与产业发展和应用紧密相连,使学生不仅学习专业理论知识,并且了解产业发展趋势,掌握工程化开发方法和技能,直接为地方产业发展服务。 一、培养模式与方法 1.强大的产业界合作伙伴。选择具有国际或国内一流水平的产业界办学合作单位是实现高水平人才培养的重要环节。IBM公司不仅是全球最优秀的IT企业,而且最近几年已经成功地转型为服务型公司。IBM的各类信息系统已成为中国金融、电信、冶金、石化、交通、商品流通、政府和教育等许多重要业务领域中最可靠的信息技术平台,IBM的客户遍及中国经济社会的各个方面。同时,IBM作为全球IT服务的倡导者,具有非常丰富的高层次软件服务人才培养经验和支撑资源。2009年,浙江大学与IBM公司合作成立“浙江大学―IBM联合创新中心”,建立“浙江大学―IBM人才培养基地”并共建全国首家“软件与服务科学系”,双方合作利用先进的教学理念、丰富的教学资源、技术研发资源和应用实施经验,与时俱进,共同探索,培养符合当地经济发展需求的复合型人才。此次校企合作的创新模式在推进我国服务外包高端人才培养方面,迈出了大胆而创新的一步。 2.突出实践环节的课程体系。软件工程硕士的教学计划由基础课程、专业课程、实训、实习等多个环节构成,充分体现理论与实践相结合的特征。基础类课程包括公共基础及素质类和专业基础类。专业课程则是由每一个专业方向根据产业发展需求定制,教学大纲由学院和产业界合作伙伴共同确认、修订和执行。软件与服务工程方向的专业课程包括RUP方法论、协作软件生命周期管理、软件质量管理、面向对象的分析与设计、代码分析、Java高级应用开发、Webservice和SOA、J2EE应用开发、J2EE应用服务管理、数据库高级应用开发等,其中主要专业课程均由IBM资深工程师或产品经理承担教学。在基础和专业课程教学的基础上,通过课程的实验、案例分析与研究以及项目实训等三种方式组织学生在修课期间参与工程实践。学生在入学的第二学期开始参与项目实训,在实训中坚持采用符合实际应用环境的项目和开发方法指导学生。实训期间,参照企业团队形式,按项目管理要求管理学生,实训的导师来自于行业应用专家及其合作伙伴,采用企业开发模式指导学生参与行业实际应用需求的项目。从第二学年开始,学生进入企业实习。学院内的教学成果要通过参与实际企业实习来检验,学生的能力要通过实习来体现并进一步得到提高。学生毕业后的就业则与学生实习的效果直接关联。由于学生在学院学习期间已接触企业导师和符合企业文化的实训,所以到企业实习后,能马上参与项目工作,能在项目组中发挥作用,快速提高自己的业务和技术能力。软件服务工程方向的实训项目是由IBM提供的真实航空业客户项目剪裁而成,项目客户需求真实完善,项目文档完整,学生将按照企业级的项目开发和管理方式演练该项目。其中,学生将直接扮演项目开发组中的成员角色,角色包括:项目经理、技术经理、配置管理员、软件工程师、测试工程师、DBA等,来了解在软件项目开发团队中的角色、过程、规范和执行方法。整个实训项目是模拟实际客户项目开发过程,以团队的形式,进行项目过程定义、项目计划、需求分析、设计、编码和测试及交付。学生完成实训项目后,对企业真实工作流程和项目开发实施环境有了很好的了解,也初步具备了职业人的素质和团队协作的意识。在研究生培养的第二学年,他们均按照双向选择的原则进入企业进行实习,实习期限为半年到一年。实习期间,学生与学院、企业签订三方协议,明确自己岗位,承担工作角色,遵守企业工作纪律,完成岗位工作任务。并根据实习内容,完成硕士论文。 3.高水平的专兼职师资队伍。聘任校内具有较高学术水平,工程实践经验丰富,教学严谨,学生反映好的教师负责专业基础课、主要专业课和毕业设计指导的教学任务。聘请合作企业工程实践经验丰富、具有高度责任感的一线高级工程技术人员承担部分专业课、专业实践课和专题工程训练的教学任务,充分发挥企业教师的工程实践经验的作用。有企业教师参与的课程与实践环节达50%以上。通过学校教师和企业教师的混合讲课方式,即由来自学校和企业两个方面的教师以多种方式(包括讲课、讲座、研讨、实践等)共同上一门课,互相取长补短,使学生从多种角度和以多种方式理解课程内容,IBM方面还为软件学院教师提供专门的培训和奖教金,学院多名教师作为电子商务方向的CDL访问学者对国内渠道电子商务平台与对接工具提供商进行调研和课程开发共建。针对软件工程硕士培养的特点,充实壮大硕士论文导师队伍。一方面认真总结“双导师制”的经验,进一步推广“双导师制”。另一方面,充分利用学校的相关政策,在原来实行的“双导师制”的基础上,聘请企业中具有丰富工程经验和指导经验的合作导师担任硕士论文导师,独立指导硕士论文。 4.面向产业的专题化工程训练。为了实施上述教学计划和课程体系,我们与IBM共建了联合实训基地。为了更好地突出实践教学特色,增强实战效果,提升工程设计、开发与实施能力,在实训基地基础上又与相关企业合作建设了RFID、物联网技术应用、物流新技术等专题工程训练基地。相比实训基地,工程训练基地在以下方面有了较大的提升,以取得更好的工程训练效果:场地、设备、软硬件系统等设施达到或接近工业界的工程开发环境;参照合作企业制度,实行严格的项目管理、过程管理和参训人员评价考核制度;工程训练的案例其规模和复杂度更接近实际工程项目,从几个人组队可以完成的小项目提升为需要几十人、数个小组合作完成的中等规模项目;积累数量较多的实际项目案例库,供参训人员参考学习;参照企业实际工程项目配置,选派多层次、多角色具有丰富工程经验的工程师指导专题训练。 二、成果 针对宁波地方产业和经济社会发展需求,设置相应的软件工程硕士研究生培养专业方向,直接引入国际、国内在该行业具有领先优势的企业参与专业课程体系设置和教学实施过程,建立了紧密型的产学研合作办学体制。在专业课程体系建设中突出课程实验、项目实训、企业实习等实践环节,实现了高水平的学院教师与企业工程师相结合的混合式教学方式,以企业实际应用项目作为学生课程实践内容,引进企业化项目管理思想,让学生在校学习期间就能体验到企业化的项目管理模式。通过与IBM的合作办学促成了IBM公司在宁波建立IBM在中国大陆的第四个研发基地――IBM中国开发中心(宁波)及IBM中国开发中心物流行业解决方案中心。该方向培养人才为IBM宁波研发中心的成功设立和运行提供了高水平专业人才保障。软件服务工程方向自开办以来(2009~2012级)共招生211人,进入IBM宁波、上海、北京开发中心实习学生人数超过50%,被IBM招聘为正式员工的学生近40人,90%以上的学生进入了IBM、中国移动、中国电信、百度、淘宝、阿里巴巴、网易、摩根大通、银联、工商银行、建设银行、思科、上海盛大等知名企业。浙江大学软件学院与IBM的合作项目已经成为国家示范性软件学院与产业合作办学的典范,也成为IBM拓展高层次人才培养项目的标记性项目,多次获得IBM创新成果奖。 三、展望 浙江大学软件学院经过多年的探索和实践,在培养复合型软件工程人才方面积累了较丰富的经验,特别在产学研合作办学过程中不断与合作企业协同创新、共同提高。产学研合作协同创新是一个系统工程,在人才培养方面,要更加关注国际化、高端化、工程化、创新型人才的培养,深化高端价值型、市场紧缺型、行业领军型人才的培养;在科技创新方面,面向经济和社会发展中的重大现实问题,要加速新技术的孵化、科技成果转化和应用实践,更好地服务于地方产业发展。 软件硕士毕业论文:软件工程硕士论文质量评价模型及相关问题研究 摘 要:为了能够准确合理的把握软件工程硕士论文的质量,本篇文章对建立一个软件工程硕士论文质量评价模型,制定了一套清晰的论文质量衡量标准,并且根据此项标准在实施过程中将会产生的问题进行研究与解决。 关键词:工程硕士;质量评价;质量标准;问题研究 1 存在的问题与质量评价度量模型 由于各种原因的影响,论文质量评价与实际评审时存在很大的差异性,由于在实际评审中不能客观的对论文作出合理的度量,导致整篇论文无法发挥出他实际所拥有的价值。比如,科技论文本身就是一种纯理论性文章,但是书写的时候就要求选题来自于科学实践、结论准确、并且应用性较强。而对于论文质量度量标准要求则是:技术先进、内容丰富,运用基本的理论知识、专业的技术和科学的方法。结构清晰,有一定的创造性和针对性,逻辑清楚,社会评价较高等等。但是在实际的论文质量评价上还有很多的问题需要注意:(1)在论文质量要素的选取上过于普通、抽象与虚拟,所以在表达上很难形象、新颖、且直观的体现出表述对象的真实状况。(2)对质量要素的审判,用标志性的事件、交付物的成果和质量要素的度量进行评价,使抽象的评论更加具有了抽象的意义。(3)质量要素的度量和评价是固定的,它缺乏了对事件的实际性分析,当给予准确的评分时就会错误的判断了它本身所特有的价值。 导致这种现象出现的可能原因有两个,一个就是制定者在制定时考虑到论文的多样性,如果过于细致的标准会限制作者的发挥,所以对论文的评论标准范围就加大了,准确程度减小,致使以上的问题同时也随之出现。另一方面就是标准制定者对软件硕士论文的发展方向和内容的判定不能作出准确的判定,所以很难掌握论文的度量标准,最终导致不能制定出确切的标准。 要想解决论文评审中出现的这些问题,本文通过软件工程硕士论文这一特定的对象,建立了一个新的论文质量评价模型,以用来解决论文评审中所产生的问题:首先,要将不同种类的论文进行严格的分类。其次就是对论文进行分析,找出论文必备的基本结构。再就是要找出论文中的论述对象,并对其论述进行分析与评估。最后,也就是最重要的一步,就是要在论文找出最终的质量评估要素的度量方法,将其转化成成绩的形式得出最后的评价标准。 2 论文的分类 要想对软件工程硕士论文质量作出准确的评价和度量,首先就要明确论文是哪一种类,我们研究的是软件工程硕士论文,那就可以将其划分为软件技术研究和软件工程项目二类。在将论文确定类型之后,我们对论文就有了一个明确的评价标准,从而相应的也就找到了合适的评价标准,就可以对其对象作出真实、客观的评论。 3 论文的基本要求 对软件工程论文进行分类,可以确定论文的大致写作方向可以向工程项目类毕业论文,有了明确的方向之后就可以着手进行写作。要想写好一篇论文就要抓好以下几个方面,从而会使文章结构更加完整: 3.1 对相关知识的掌握度。事先了解项目的一些相关信息,例如:研究的背景;研究的问题;以及研究的目标描述,还要对学生进行专业知识的考察,了解学生对他们所在的行业领域的业务知识和领域的链接等问题,同时也是考察他们对其了解的范围和深度,也就是考察他们对论文课题的掌握水平。 3.2 技术水准。通过对学生论文水平的技术分析,可以看出一个学生在遇到问题时的解决能力,这里考验了学生在运用技术方法,使用工具的能力和具体方案,在这里,不仅需要他们要亲身的实践,更多的是学习到更多有关方面的知识和技能。 3.3 完成能力。通过学生对项目的关键技术的实际实施过程,对学生遇见专业技术上的问题时的解决能了和取得的成就,分析学生所具有的实际能力。 3.4 实施能力。通过学生的项目实施过程报告,对学生在遇到关键技术解决方案的实现作为基础,组织实施软件工程项目的过程管理和对其的控制能力。 4 质量要求及论文的度量标准级模型建立 根据以上论文内容涉及到的四个相关要求,我们相应的将四个要求进行分解,更加细致的解释每一项的质量度量要素,提供给论文评审时进行分析与评价。 4.1 项目研究的背景与目标。 先要对其进行领域背景的描述,然后再对领域问题解决的状况和关键问题进行分析,在确定之后,就要设计项目的技术方案的思路与设计,当各方面都做好之后,再表述一下具体想要达到的目标,和所承担的子目标。这样项目研究的背景与目标就可以了。 4.2 项目技术方案的分析。第一步要对领域问题核心技术的概念进行介绍,概念明确之后也就是第二步领域问题涉及到的历史方面和现状进行描述,这些都是很重要的,因为下一步就要对相关技术和计划方案进行比较与评价,紧接着就是项目技术方案的思路与设计,有了明确的思路才能使论文顺利的进行下去,项目技术方案分析的最后一步就是实现策略,每一步都有了,最终就看实际实施的状况如何。这些步骤环环相扣,使结构更加的紧密。 4.3 项目中关键技术的实施。关键技术在实施中占得成分比较重要,所以关键技术的实施一定要具体描述,本人在解决关键问题中承担了怎样的责任并在实施中的位置和缠身的影响,关键在于,在技术实施中攻破了怎样的难关,同时也要对技术的基础进行描述,和全过程的描述,最后总结项目关键技术的结果和评价。 4.4 项目过程结论报告。报告就是对论文的最后总结,本文是关于对软件工程项目的论文,那么就对范围定义与需求开发过程总结,然后对整个系统架构进行分析,设计一套完整的过程,测试系统实现成果展现全过程,接近结尾写一下项目管理和软件过程的控制,最终,结尾就要做出项目总结并对未来的计划展望。 作者单位:云南经济管理职业学院,昆明 650106 软件硕士毕业论文:软件工程专业工程硕士数字图像处理课程建设 摘要:针对目前软件工程专业工程硕士与工学硕士在培养方案上有很大区别,但培养课程却大量重复的問题,以数字图像处理课程为例,结合工程硕士的培养目标,提出需要培养其应用型研究能力和应用型技能的观点,并给出具体实现方法。 关键词:数字图像处理;工程硕士;应用型研究;应用型技能;软件工程 软件工程专业工程硕士研究生与传统的学术型研究生有所不同,前者主要面向企业人才需求和应用软件开发需求进行培养,因此在课程内容选取、授课方法设计和实验环节设计上都需要进行思考和调整,这也是北京林业大学在申请到软件工程专业的工程硕士学科后重点研究的問题。 数字图像处理课程属于图形图像应用领域的重要基础理论课,长久以来课程内容主要介绍基本的图像处理算法以及少部分图像分割和图像识别,对于图像处理在实际生活中所涉及的很多前沿科研领域介绍较少,因此很多研究生无法将课堂讲授的理论知识与其后续从事的研究课题有效地关联起来,感到课堂中讲授的很多内容看起来毫无用处,从而丧失了学习的积极性。 很多教师认为把图像处理中的算法研究透彻、把基础打好对研究生非常重要,但是这忽视了研究生是有着极强的科研探索精神和丰富想象力的年轻一代。如果将一些在生活中涉及图像处理的問题交给他们进行探索,将会激起他们浓厚的学习精神和创造力,这种没有标准答案的应用题目可以进一步锻炼他们的思考能力。 为此,在课程的教学方法和实验内容设计上,我们重点培养学生以下两方面能力。 (1)应用型研究能力,包括发现問题、分析問题和解决問题的能力; (2)应用型技术能力,包括编程设计能力和项目合作能力。 下面笔者分别从教学大纲、教学方法设计和实验内容设计3个方面进行介绍。 1.数字图像处理课程教学大纲 我们在设定教学大纲时,重点参考了多本数字图像处理方面的经典教材,如杨枝灵和冈萨雷斯编写的教材。结合之前的教学经验,同时注意与本科生课程相区别,制订了两个原则:加强中高级图像处理算法的介绍;增加利用图像处理算法的应用案例的介绍。中高级图像处理算法主要指图像分割算法、图像特征提取方法和运动检测方法。同时我们还在课堂上给出一些应用案例,进一步帮助学生将理论知识与实践相结合。 数字图像处理课程目前作为北京林业大学研究生的专业必修课,总学时为32,其中课堂讲授24学时,实验8学时。相对于其他学校,这门课程的总学时和实验学时数不多,我们设计的教学内容如表1所示。 2.数字图像处理教学方法设计 针对培养学生应用型研究能力的目标,我们在教学方法设计上本着激发学生的学习兴趣,开阔学生眼界,给学生提供更自由的思考空间的原则,通过下面两个措施来实现我们的目标。 2.1精心选择案例 选择的案例要贴近实际生活,并与课堂上讲授的方法紧密衔接。例如,在讲解图像增强和复原这两章之后,我们引入在实际生活中常见的“图像去雾”問题,通过如下方法,培养学生研究能力。 (1)要求学生先尝试用学过的算法来解决这个問题,并在课堂进行算法讨论,给出算法结果。 (2)要求学生针对具体問题,查阅文献资料,了解别人的解决方法。通过查阅国内外的文献资料,同学们知道了如何根据关键词查询科研论文,了解哪些电子数据库中有与专业相关资料,知道了文献的级别有SCI、EI、核心期刊、一般期刊等。 (3)学生将查到的算法进行分类和总结,撰写文献综述。 (4)每位学生都需要编程实现“图像去雾”算法,这个算法是结合自己的思考、实践以及查阅文献的结果。 通过自己动手,同学们发现如果图像的清晰度不好,有噪声,或者没有归一化,结果就完全不同。通过自己动手验证,同学们会发现图像处理领域的一个最为重要的特点——任何算法主要都是针对一类图像或是针对一类問题而设计的,因此在算法的适应性上需要有所考虑。 2.2全面介绍图像处理的各个应用领域 老师在课堂上介绍几个图像处理涉及的较为重要的应用方向(如视频监控、图像检索、人脸识别、运动检测、车牌检测等)后,将同学们进行分组,每组负责查找一个应用方向的相关资料,讨论和汇报自学的结果。汇报内容主要包括:①应用方向的介绍;②涉及的主要問题;③目前的解决方法及应用成果。 通过查找文献,同学们不仅对课上学习过的经典算法有进一步了解,同时还接触到很多新算法。通过听取各组汇报,同学们在较短的时间里,了解了图像处理涉及的多个主要的应用领域。针对每个应用研究领域,老师引导学生分析该领域的难点和重点,提出問题,再让学生思考解决方案,没有标准答案,只希望能够锻炼学生的思考能力。以“人脸识别”为例,有很多经典的或较新颖的算法,老师会结合应用领域对其中常用的或比较重要的算法,如PCA方法和Adaboost算法,进行详细讲解,使学生全面了解图像处理算法的应用领域。 3.数字图像处理实验内容设计 针对培养学生的应用技术能力的目标,同时考虑到本课程实验学时数较少,我们设计了两个实验——基础性实验和综合性实验。 3.1基础性实验 目前很多经典的图像处理算法是用vC++程序实现的,我们要求大家学会读程序,能够看懂已有的算法实现程序,并在此基础上能开发新的功能。 实验一:实现对多种图像格式的支持(2学时) 实验内容:采用VC++编码实现,基于CDib类,添加支持打开,并保存多种图像格式的功能。包括JPEG和GIF。 实验要求:利用学习的图像压缩的知识,利用现有的编码解码库实现对IPEG和GIF图像的打开和保存。 实验目的:了解多种图像格式,编写针对多种图像格式的读写程序,能够进一步理解针对图像的编程的特点,同时也进一步了解开发图像应用程序的适应性問题。 老师在课程初期会向大家介绍图像处理的一个公开库——CDib类。该类很好地封装了图像的数据结构,涉及很多图像的基本操作。我们知道现实生活中的图像常常都是压缩格式的,如BMP、JPEG、PNG、GIF等。因此在讲完图像的压缩格式后,对照讲过的BMP图像结构,老师要求学生为CDib类添加能够支持多种图像格式的功能。以GIF图像为例,它不同于如JPEG、PNG等格式,GIF采用的是LZW压缩算法,使用的是无损压缩技术。GIF图像的特点是可以一次压缩多幅图像,图像颜色表控制为256色,使用渐显方式。 3.2综合性实验 针对综合性实验,我们会拟定多个题目让学生选择,如树叶提取、花朵提取、车牌识别等。 实验二:数字号码图像的识别(6学时) 实验内容:采用VC++编码实现,基于CDib类,针对数字号码图像,识别出数字,给出文本显示结果。 实验要求:将该题目进行分解,划分任务;组内每个同学负责一部分任务的编程工作;每个人针对自己负责的工作至少提供两种实现方法,并放入整个项目流程中验证这两种方法的有效性;最后总结出两种方法的异同以及适应的范围。 实验目的:考查学生对数字图像处理应用中每个步骤的掌握程度和项目合作沟通能力。 上述实验涉及以下几个步骤。 ①图像的预处理; ②图像的分割; ③图像的特征提取; ④图像的分类。 组中每个学生负责一个步骤,所有步骤都需要尽心设计,这样整体的效果才可能最好。同时大家需要协商各自负责模块的人口和出口的数据结构,保证数据能够在模块之间顺利流转。这种协商和分工合作的能力是软件工程专业最需要的技术能力之一。 以“数字号码图像识别”为例,该题目可以分割成4个步骤:预处理、数字图像切分、数字图像特征提取和数字识别。在每个步骤中都有分别需要注意的問题,如在预处理阶段,需要对图像进行去噪声,增强对比度,甚至需要进行膨胀和腐蚀将图像中断裂的数字部分连通起来;在数字图像切分阶段需要制定适应性广泛的切分策略来应对各种情况,如数字排列可以呈现任意的倾斜角度,或数字字符相连等;在数字图像特征提取阶段,我们可以考察每个数字图像的自相关系数特征,或者每个数字图像的频谱特征,也可以考察数字图像的几何拓扑特征,如将数字图像分成2个洞的(8),1个洞的(4,6,9,0),没有洞的(1,2,3,5,7),针对每个类别再提取新的几何特征;在数字图像识别阶段,可以采用神经网络的分类器,或者利用制定的一些分类策略来分类,或者采用主成份分析(PCA)的方法来识别。 4.结语 两年多的教学实践表明,新的教学大纲、授课方法和实验内容有利于激发学生的兴趣,使他们带着問题去学习,从而加深了对图像处理应用领域的了解,锻炼了编写程序和协作开发的能力。下一步我们将设计更多合理有效的案例和综合性实验,力图通过这门课激发学生的创造力。 软件硕士毕业论文:基于软件工程专业硕士的三级思想教育模式探索与实践 学生思想教育是高等教育培养的重要内容之一。北京交通大学软件学院结合人才培养改革,探索与实践软件工程专业硕士思想教育的新途径、新思路。总结了工程硕士思想政治教育的特色工作,以软件工程专业硕士的思想教育工作经验为例,探索全日制专业学位研究生思想教育规律并推广经验,具有现实意义和可操作性。软件工程专业硕士三级思想教育模式北京交通大学软件学院作为国家37所示范性软件学院之一,自建院一直致力于应用型人才培养模式改革,以满足我国软件产业迅猛发展对高端复合型人才的需求。作为高教人才培养改革特区,2006年试点招收全日制专业学位硕士,在七年多的教学过程中遵循“培养应用型、复合式高层次工程技术和工程管理人才”的全日制工程硕士培养目标,坚持以教育改革为中心,产学合作,在开放与社会化办学、国际化、教师聘任等方面为高等工程教育改革做出了示范。“育人为本,德育为先”,在推进人才的工程实践能力培养的同时,软件学院始终以思想道德教育为抓手,引导专业学位硕士树立正确的价值观。努力克服改革前进中遇到的困难与挑战。经过对全日制工程硕士的思想教育工作不断总结,摸索出了一套学院、企业、导师相结合的全日制专业学位硕士三级教育模式。针对软件专业学位研究生,在学院方面,软件学院研究生工作组结合传统的研究生的思想政治教育,如对马克思列宁主义、思想、邓小平理论、三个代表重要思想、科学发展观等的学习和理解,引导研究生热爱祖国,了解时政方针和国内外形势;在企业方面,校企联合,利用社会资源,要求用人单位发挥同样的育人作用,促进学生加强职业个人修养,满足学生职业发展需求;在导师方面,实行校内外“双导师”共同监管模式,发挥学生健康成长的指者和引路作用。以下几个方面总结了软件学院开展思想教育工作的新思路、新方法,重点体现了三级教育力量各自的工作特色和作用。 一、创新思想教育载体,细化分类教育 作为落实中央16号文件的重要举措,北京交通大学软件学院认真贯彻落实北京市委教育工委的相关要求和学校的相关文件精神,以深度辅导、社会实践工作为创新载体,着力开展专业学位研究生的安全稳定和心理健康教育,全面提升辅导员工作的精细化水平。针对深度辅导,提出四项要点“覆盖全体,重点辅导;针对问题,提高效率;提高技巧,科学指导;整合力量,全员育人”。在校院两级党委的领导下,软件学院以科学发展观统领全局,以研究生综合素质培养为重点,以研究生工作组为抓手,学生干部为主导,统筹班主任等教师力量,推进深度辅导的辐射效果。在工作过程中,研究生工作组不断学习心理辅导理论,总结工作的方式方法,提高成效。 促进思想政治课堂教学与社会实践对接,充实提升研究生思想觉悟和理论水平。培养研究生对马克思列宁主义、思想、邓小平理论、三个代表重要思想、科学发展观等的理解和体会,培养学生热爱祖国关心国家大事,了解时政方针和国内外形势;培养学生关心集体和他人,学会妥善处理人际关系、正确面对人生道路的顺境和逆境,加强个人修养等;在学术教育中,培养学生严谨的科研作风和学术诚信,在职业教育中,培养学生的诚信意识和责任意识。根据学生的专长、技能、性格进行分类引导教育,变面向群体的粗放型思想政治教育为面向个体的细作型思想政治教育。 二、重点关注心理健康,保障安全稳定 招生伊始,专业学位研究生的社会认知度还不足,社会上普遍认为“专业学位研究生水平低于学术型研究生”,录取学生大部分由外专业调剂而来,自信心不足,缺乏专业兴趣和学习动力,对就业前景十分担忧。另一方面,针对全日制专业学位研究生的教育改革,高校在思想和观念上还未能形成统一认识,没有突出专业学位区别于传统学术学位的人才培养特色,导致专业学位研究生自身定位不明确。因此,作为新型人才培养模式的目标人群,专业学位研究生中存在的心理问题相对学术型研究生来说更为突出。另外,全日制专业学位人才培养的实践环节使在校硕士大部分时间在参与校内外专业实践、学习交流等各类活动,研究生的人身安全和社意识形态也成为高校安全稳定的重点关注对象。 通过研究生入学教育、学期教育、毕业教育、党员教育、素质拓展等具体途径对研究生学习、心理、生活、家庭等方面进行有效的教育引导,及时了解学生的思想动态。关注学生之所需,了解学生之所想,保证谈话内容能够找准切入点。制定了研究生安全应急预案,为全体在校实习学生宣讲并购买了商业保险,组建了研究生维稳小组,定期开展安全讲座,发送安全小贴士邮件,签订《安全责任书》,充分发挥研究生“自我教育、自我管理”体系的作用。在信息社会的快速发展中,改变单一的教育方式,通过电话、即时通讯软件、社交网络、微博等多种手段拓展沟通方式,确保学生个人动态信息传达及时有效。 三、有效开展生涯规划教育,提高就业竞争力 专业学位硕士的人才培养以就业为导向,因此通过多种方式推进全日制专业硕士的职业生涯规划至关重要。以学生自身职业发展为诉求,设计思想政治教育形式和内容,并结合学生的培养计划从传统的以面向科研的研究生为对象开展思想政治教育,转变为符合专业学位研究生培养特点,以提升就业竞争力、职业发展力和培养正确价值观为重点的思想政治教育。 就业情况的好坏直接影响全日制专业硕士的社会认可度,从而间接影响学生的职业发展和就业心态。软件学院经过考察,建立了一批实习基地共同开展人才定制培养,从企业内部聘请了一批经验丰富、技术水平过硬的技术人员作为校外导师,参与人才培养与思想政治教育环节。 为扩大专业学位硕士的专业眼界,提高就业竞争力。北京交通大学软件学院引入企业资源,建立相对稳固的实习基地,充分发挥校企合作优势,开展IT企业认知、职业生涯规划、面试模拟大赛等一系列主题教育活动,为学生提供参观行业内知名中外企业的机会以及职业规划讲座。参观走访的单位有微软、百度、IBM、甲骨文等,旨在让在校专业硕士提前体验、直观感受到IT企业的工作模式,加深学生对软件行业的了解以及企业文化的认同,培养学生对软件的兴趣,为实习就业工作打好基础。邀请邀请企业高管开展职业规划讲座、面试技巧辅导,讲述企业文化和个人职业发展,促进学生认清形势,明确自我定位,及早开展生涯规划,减轻就业压力。为更好地为专业学位硕士提供正确的就业指导,软件学院研究生工作组走进对口单位了解企业情况和用人需求,利用校友资源获取就业信息,构建多元化的就业推荐网络。 四、加强校企合作,开展“双导师”管理模式 硕士研究生导师在研究生的思想政治教育方面有着不可替代的作用,是学校和学生的重要纽带,是专业教育最直接的体现者。而专业学位的培养过程从课程设置上,实训、实习等环节比重明显加大,因此在校外期间的思想教育成为校内导师的教育盲点。软件学院以校企联动开展人才培养为契机,聘请企业导师给软件工程专业硕士专业指导的同时,开展思想教育。利用学校导师与企业导师的双重监管和教育,确保学术硕士的安全及心理教育覆盖全体,不留死角。 首先,要求导师注重言传身教,以身作则。“85后”“90后”群体强调个性,具有很强的怀疑精神,对说教容易产生逆反心理,所以导师的身教更胜于言教。可以说,导师是专业学位硕士进入社会工作之前接触最多、最容易对其产生影响的人,因此导师必须敢于坚守正面的价值观念,敢于向学生灌输正面的价值理念,在与学生的直接交流中,对学生进行是非观、人生观、价值观的教育。 其次,在论文或实习环节,要求校内外导师分别把对职业道德、思想品质等方面的教育融入负责的每个环节,如在社会实践中教导学生加强职业责任感,从毕业实习、毕业设计等环节中培养学生扎实刻苦的学风和精益求精的工作态度。这些从实践中来、到实践中去的教育往往比空泛的说教教育更容易被学生接受。要求校内外导师在学生出现学业或生活困难时,及时进行通知研究生工作组,促进快速的有效引导,避免出现严重的心理问题,将思想教育工作常态化,确保学生按时、保质、高效地完成校外实践环节。 五、扩大国际化视野,增强文化交流 在教育国际化背景下,软件学院确立了国际化、具有国际视野和竞争力的研究生教育理念,重视解决好国际化人才的思维与国际接轨,培养全日制专业学位研究生的国际化观念:一是全球化竞争;二是危机意识;三是创新。软件学院关注国际化人才培养质量,为培养一批具有国际视野通晓国际规则能够参与国际事务与国际竞争的国际化人才,全面推进以培养创新精神为核心的素质教育。积极招收留学生,开展纯外语教学,营造学院的国际化氛围。开展中外学生文化交流、前沿技术讲座、素质拓展等形式多样的教育活动,培养专业硕士的国际化思维。2011年,软件工程硕士新生,包含来自17个国家的留学生130余人,开展了“春江潮水连海平,海上明月共潮生;花好月圆思乡切,海外学子别样情”的主题中秋活动。通过共度中秋佳节,中外学生不仅融入了新集体,也加深了解到不同民族文化。此外,通过邀请北京公安宣传中国法律法规、茶话会等方式让中国学生与拥有不同文化背景的留学生互动,培养其接纳不同价值观的能力。 六、引入以评促改,建立综合评价体系 全面的人才培养质量评价体系应是教育系统内部评价和使用者的外部评价相结合的综合评价体系。在学生的思想教育方面,软件学院建立“动态反馈”机制,引入外部评估,定期举办用人单位、校外导师座谈会,了解讨论学生在企业的工作表现和思想动向,促进学校的思想教育工作方式不断完善。形成一套了综合学生素质能力评价与思想道德评价的体系。 经过7年的工程硕士人才培养改革和探索,北京交通大学软件学院为国家培养了一大批懂管理、具有较强研发能力和很强英语能力的高素质软件人才,取得了不少用人单位的高度评价。正是在软件工程硕士管理环节中加强思想教育引导,始终将德育放在关键环节,不断探索和实践学生思想教育新模式,才使培养出的高端人才能够科学发展,获得社会及行业的认可。全日制专业学位硕士的管理和思想教育目前尚处于起步阶段,只有不断吸收、借鉴、实践国际上专业学位硕士研究生教育的先进做法,更新教育理念,创新工作思路、提高辅导水平,积极思考长期规划,为学生提供良好的管理环境,为专业学位硕士的职业发展创造有利条件。
软件毕业论文:计算机软件开发类毕业设计改革研究 随着计算机科学技术的迅速发展,尤其是网络技术与Web服务的出现,社会对软件开发类人才需求日益增加,软件开发类课程也成为高校计算机专业的教学重点[1]。然而,软件开发所学内容涉及面非常广泛,最基本的课程就包括C语言、C++、JAVA、数据结构、软件工程、数据库原理及网页制作等[2],如果只是学好某些课程,做好这些课程的实验,甚至这些课程的课程设计也非常优秀,但也无法满足社会对应用型人才的需求。因为学生所学和所用都只是片面的知识点,不仅没有将所有软件开发知识有机地结合和整理,更没有结合社会实际开发能够应用于公司企业的项目。计算机软件开发类毕业设计正好弥补了这些不足,大四学生已经具备了软件开发的基础,能够将所学知识综合整理设计,并通过市场调查、资料查阅和企业调查等形式了解项目实际需求,开发一套满足社会基本需求的软件系统。由此可以看来,计算机软件开发类毕业设计是实现软件开发类专业人才培养目标的综合性实践教学环节,在提高了学生程序开发能力、综合设计能力和分析研究能力的同时,也锻炼了学生解决实际问题的能力,更加全面培养了学生的业务能力和专业素质,为学生毕业求职创造了有利条件。因此,对计算机软件开发类毕业设计教学改革研究具有非常重要的意义。 1计算机软件开发类毕业设计存在的问题 自21世纪高等教育改革以来,全国各高校招生规模不断扩大,导致毕业生数量也相应大规模增加,给高校学生的求职择业带来了严峻的考验。为了可以跟上时代的步伐,为求职带来一些实际项目经验,计算机专业越来越多学生选取了软件开发作为毕业设计课题。然而,在各高校实际当中,本科毕业设计质量已经下降,软件开发类论文与实际完全脱节,归根结底是没有一个可以从头到尾指导学生进行软件开发的学习模式,主要存在下面几个不足之处。 1.1学生问题 学生设计能力低,编程水平差,无项目实际经验,既不知道软件开发的基本理论与方法,也不知道程序语言代码编写和开发工具界面操作,甚至不知道从何处开始下手准备毕业论文,成为目前软件开发类毕业论文质量差的根本原因;学生思想上存在误区,不重视毕业设计的重要性与必要性,认为毕业设计与普通课程一样,对毕业设计敷衍了事,不愿意花时间和精力认真努力开发软件,总是被动、消极地接受学习,成为软件开发类毕业论文质量差的直接原因。 1.2学校问题 学生在大一至大三期间,一般只是简单地开设各科课程,并没有将所有软件开发类课程结合起来,直接导致出现学生软件设计能力低与开发水平差的现象;从论文开题、中期检查到论文答辩等过程中,并没有严格按照各种材料上交的日期进行,普遍是最后答辩时上交补交所有材料,甚至包括论文开题报告,直接导致学生消极怠慢的态度;最后的毕业论文考核是最关键的问题,也是目前毕业论文相关制度中管理最混乱的一部分。既没有一套规范毕业论文考核标准,也没有对毕业论文的中间过程进行监控,就连最后的论文答辩也只是流于形式。 1.3教师问题 大部分教师没有项目开发实际经验,只知道软件设计理论基础,不能全方位地指导学生,更加无法让学生能够主动积极地学习,成为毕业论文水平不高的原因之一。 2CDIO教育模式 CDIO教育模式继承和发展欧美20多年以来的工程教育改革理念,将“做中学”和“基于项目教育和学习”的集中概括和抽象表达,是2004年由麻省理工学院和瑞典皇家工学院等四所大学研究创立,CDIO分别代表了构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate)等四个学习过程,它以产品研发到产品运行的生命周期为载体,让学生以主动的、实践的、课程之间有机联系的方式学习[3]。CDIO培养大纲将工程毕业生的能力分为工程基础知识、个人能力、人际团队能力和工程系统能力四个层面,大纲要求以综合的培养方式使学生在这四个层面达到预定目标[4]。本文将CDIO模式的构思、设计、实现和运作等四个学习过程引入到计算机软件开发类毕业设计中,要求严格按照构思、设计、实现和运作这四个阶段进行,并将每一个阶段的成果都作为毕业论文考核的依据,以此调动学生的积极性与主动性,既能让指导老师清楚整个设计流程,并根据阶段安排加以指导和督促,也能让学生愿意付出时间和精力努力投入到毕业设计当中。在弥补学生软件开发水平不足的同时,提高学生思考问题、综合设计的能力,最后达到提高毕业论文质量的目的。 3基于CDIO模式的计算机软件开发类毕业设计 3.1构思阶段 毕业论文是从学生的选题开始,一般是由老师提供一系列题目,再由学生根据自己的具体情况选择,这种方式遏制了学生的主动性。应该由学生根据自己的爱好、专长和对将来的职业规划等情况,利用各种参考资料主动搜索与查找适合自己的题材范围,再在老师的指导下确定毕业论文题目。不仅能够调动学生的设计积极性,为后面的毕业论文工作提供有利条件,而且还可以培养学生查阅资料和思考问题的能力。之后,指导老师提供软件开发类参考资料,并在中国知网等学术平台搜索课题相关文献,确定论文的基本要求,给学生下达论文任务书。学生根据接收到的任务书,利用软件工程专业书籍、中国知网等学术平台、论文相关的Web网站,查阅大量的资料,了解论文的背景、研究现状和开发意义,确定论文的研究内容和开发中的关键问题,撰写论文开题报告,完成软件开发的构思阶段。 3.2设计阶段 设计阶段主要包括需求分析和总体设计,正式开始毕业论文的设计工作。根据资料查阅、市场调查和企业要求等形式分析软件产品操作流程、功能列表,完成系统需求分析,并在需求分析的基础上重点进行功能设计、模块划分、模块接口规范、数据库概念设计及数据库逻辑设计,在老师的指导下反复修改不断完善,最终确定系统的总体设计。然而,在软件开发设计阶段,学生论文还没有开始写,软件程序也没有完成,指导老师无中期检查依据,不能有效地督促学生开发设计。因此,在设计阶段完成之后,应该形成需求分析、数据库设计、概要设计等相关说明书,作为毕业论文中期检查的材料,纳入论文考核的范围。 3.3实现阶段 实现阶段是学生毕业论文工作的重点,也是毕业论文设计工作量最大、所需时间最长的一个阶段,直接决定最终毕业论文的质量水平。学生需要掌握软件开发工具、程序设计语言等基本理论与方法,根据系统总体设计的功能模块、接口规范等进行数据库的实现、程序代码的编写,并反复运行与测试。此阶段生成详细设计说明书、编程规范、测试等文档,作为毕业论文第二次中期检查材料。在这个阶段有了指导老师的督促,能够完全确定系统功能,不至于在后期阶段又需要反复修改。 3.4运作阶段 根据前期产生的开题报告、需求分析、数据库设计、概要设计、详细设计、编程规范、测试等文档和开发好的软件系统撰写毕业论文,并参与论文答辩,是学生毕业论文的总结阶段,不仅着重体现学生的写作水平,更能了解学生对软件的学习情况,是分值比重最大的一部分。最后,将所有文档和论文、答辩情况一起评分,获得毕业论文成绩。 4结语 计算机软件开发类毕业设计是实现软件开发类专业人才培养目标的综合性实践教学环节,对计算机软件开发类毕业设计教学改革研究具有非常重要的意义。因此,本文将CDIO模式引入到计算机软件开发类毕业设计中,既能让指导老师清楚整个设计流程,并根据阶段安排加以指导和督促,也能让学生愿意付出时间和精力努力投入到毕业设计当中。在弥补学生软件开发水平不足的同时,提高学生思考问题、综合设计的能力,最后达到提高毕业论文质量的目的。 作者:陆汝华 颜文燕 单位:湘南学院软件与通信工程学院 软件毕业论文:软件工程本科毕业设计质量提升策略 一、利用多方资源做好毕业设计选题与立题工作 恰当的选题是做好毕业设计的必要条件和前提。近年来,随着信息技术高速发展,国家对高素质软件工程人才需求十分旺盛,并有逐年扩大的趋势。同时各个高校软件工程专业的招生数量也在逐年增加,从目前全国319所设有软件工程专业的学校看,2013年该专业平均招生300人左右。专业招生人数的增多给毕业设计选题带来了带来巨大挑战[3]:一方面软件工程专业的毕业设计选题要求具有一定的应用价值、创新性,同时还要与行业需求相吻合;另一方面要保证选题的唯一性,不仅要避免学生之间的题目重复,还要避免与之前毕业生的题目重复,因为重复的选题会使学生产生投机的心理,导致“打酱油”现象。针对上述问题,黑龙江大学软件学院主要采取了以下几个措施:1.充分利用企业资源,对一部分在企业实习的学生采取“三位一体”的双导师指导模式。即企业项目为载体,学生为主体的模式,校内和校外导师为主导。这部分学生一般是在大三下学期暑假就已经进入企业实习,而我们每年毕业设计选题工作是在十一月末,也就是学生进入企业实习后三到四个月的时间,学生经过企业阶段的培训,对企业的生产过程、企业文化有了一定的了解。此时,学院组织校内外导师和学生共同协商,以企业项目或子项目为学生确定毕业设计选题。2.充分发挥导师的资源优势,学院大部分教师都有自己的科研课题,这些科研课题有些是直接来源于企业的横向课题,还有一些是信息技术领域的应用研究课题,我们鼓励教师从这些课题中提取出一些子项目让学生实践,作为毕业设计的选题。3.充分挖掘学生的专业技术特长和兴趣点并结合学生的择业倾向,确定最能发挥自身优势和潜能的选题。毕业设计的选题不仅要与实际需求相结合,更重要的是应该结合学生自身的技术优势和兴趣。只有学生对选题有兴趣,他们才能尽早地进入状态,发挥自己的创造能力和积极主动意识。所以,选题阶段导师和学生的沟通交流就显得尤为重要,通过沟通导师可以了解学生的能力、兴趣和择业倾向,学生也可以对选题,有进一步的认识,对于不感兴趣的选题学生也可以通过与导师进一步的探讨进行题目的修订。 二、注重环节审查,加强过程监管 虽然“好的开始是成功的一半”,但是如果缺乏中间环节的监管,仍然不能保证好的效果[4]。因此,为保证毕业设计(论文)的质量,我们制定了明确的质量标准、管理条例,并由院长、学术委员会、系主任和教务办主任组成毕业设计(论文)工作委员会,负责毕业设计(论文)工作的组织、评定和监管,同时保证管理条例的严格落实及各个环节工作的正常进行。为健全毕业设计(论文)的监管机制,学院先后规范和完善了《毕业设计(论文)工作管理办法和实施细则》《开题报告》《开题评分标准》《中期报告》《中期检查标准》《毕业设计(论文)撰写规范及模版》《毕业设计(论文)盲审表》《答辩程序和评分标准》等一系列管理办法和文档标准,使毕业设计工作在制度和规范下能顺利有效地进行。每年毕业设计工作之初,我们都要给学生开一个动员会,在会上阐明毕业设计(论文)的重要性,以及毕业设计对他们未来工作的影响,调动他们学习的主动性、积极性和创造性。此外,系主任还要向学生介绍学院毕业设计(论文)管理办法和实施细则,各阶段的工作要求和时间节点,以及各环节检查的内容、需要提交的文档,使学生在毕业设计开始时能做到心中有数。同时,我们也要求指导教师随时解答学生的问题,坚持每周开例会,检查学生的工作完成情况,并提出一些有技术含量和理论深度的问题启发他们思考,激发他们的学习热情,并与学生一起确定后续任务。此外我们组织开题检查、中期检查,对开题检查成绩后30%的学生,不但检查中期报告,还要现场检查程序。对于中期检查不合格的学生,要求限期整改,如果仍然不合格则取消答辩资格。在答辩之前,我们还要对论文进行盲审,盲审不合格的学生不允许答辩,对有异议的论文要提交学术委员会做最后论证。虽然学院对毕业设计(论文)工作在各个环节上的审查都非常严格,但我们鼓励学生之间进行研讨交流,博采众长,相互提高,因为我们的目的不是抓出多少不合格的学生,而是想通过大学阶段最后的综合性实践教学环节训练,培养学生的学习能力、知识的综合运用能力、分析解决问题能力和沟通交流等综合素质。 三、严把答辩关,保证毕业设计质量 答辩是毕业设计(论文)考核阶段的最后环节,这个环节既是学院对学生毕业设计的验收和鉴定,同时也是学生对自己工作的总结和汇报。通过答辩,学生不仅展示了毕业设计工作的效果,更展示了自己的专业知识、技术水平和综合素质。作为教师,每年都要指导多个毕业设计(论文),而学生一生只能经历一次本科毕业设计,而且毕业设计答辩能否顺利通过,直接关系到学生毕业及学位资格的认定。因此对学生来讲,毕业答辩至关重要。这有点像外科医生与患者的关系:医生每年要做很多手术,对他们而言手术已是司空见惯,但对于患者本人,可能一辈子才上一次手术台,而且生命攸关。所以,我们要在毕业设计指导过程中,认真对待每一位学生。同时在毕业答辩中严格把关,保证质量,更要秉承“公开”“公正”“公平”的原则。我们的毕业设计(论文)答辩采用小组面试形式,每组由四位副高职以上教师组成,答辩流程如图1所示。答辩当天向学生公布成绩,毕业设计(论文)总成绩由开题成绩(10%)、中期成绩(10%)、指导教师成绩(10%)、答辩成绩(70%)构成。对于优秀的和不及格的学生,我们还会重新组建答辩组进行二次答辩。这是考虑到答辩组之间认同度的差异而导致评分标准出现偏差,可能有些答辩组打分会偏低,有的组打分会偏高,即各个答辩组评分信度不能达到一致。二次答辩可以有效地消减组间评分差异,从而使申报校优秀论文人选和未通过人选的确定做到公正、公平和有效。针对软件行业特点,我们通过强化实践教学环节,合理利用多方资源拓宽毕业设计(论文)选题途径、健全和完善毕业设计(论文)的监管机制等手段,确保了毕业论文质量的稳步提高。几年来,黑龙江大学软件学院的毕业设计(论文)质量受到校内外专家的一致好评,获校优秀论文比率一直位于学校前列。实践证明,加强毕业设计(论文)质量的监管,不但提高了学生工程实践能力、独立科研能力和创新意识,为学生进入工作岗位打下了良好的基础,进而也提升了学生的就业率。 作者:任美睿 金英 郭龙江 单位:黑龙江大学 软件毕业论文:高职院校软件技术专业毕业设计论文 一、高职院校毕业设计存在的问题 (一)对毕业设计的重要性认识不足 毕业设计一般开设在高职教育的第五学期,此时很多学生都已经签约了用人单位。学生在思想上会认为自己已经毕业,毕业设计只是个形式,只要把论文完成,按时上交就可以了。因此,很多学生在做毕业设计时态度不积极,课堂上有些学生占用大部分时间上网聊天、看视频或者玩游戏,有的甚至不来上课。等到要交作业的时候,随便从网上下载一篇毕业论文应付了事。在每年的毕业论文答辩会上,都出现过这样的情况:学生对自己的论文题目解释不清,对所开发系统的功能描述不准,对专家提出的问题回答不上来。这些都是因为学生没有充分认识到该课程的重要性。 (二)毕业设计选题不当 选题是毕业设计开展的第一步,也是关键的一步。好的选题能够激发学生的创作热情,提高学生的学习兴趣。但是目前有些高职院校的毕业设计选题陷入了恶性循环,主要存在两个方面的问题。一是题目陈旧没有新意。很多教师在毕业设计指导课上会习惯性地给学生一些参考题目,这些题目往往是连续使用了很多年的旧选题,严重影响了学生创新能力的培养和发挥。二是选题不准确。学生缺乏实际项目开发经验,很容易出现选题过大、过小或题目缺乏实际应用价值的现象。题目过大,系统功能复杂,技术要求高,超出学生的能力水平会导致设计任务完不成;题目过小,难度和工作量上就不能满足毕业设计的考核要求[2]。 (三)课程管理不到位 不少高职院校的学生在进行毕业设计时都已经到用人单位顶岗实习,这给毕业设计的管理带来不便。毕业设计的教学模式不同于普通课程,教师一般是定期对学生的工作进展情况进行抽查,对学生设计过程中遇到的问题进行集中答疑。对于已经到单位顶岗实习的学生,只能通过网络进行在线辅导。学生的选题不一样,难度不一样,加上自身素质的差异,他们在进行毕业设计时的工作进度往往是不一致的。由于缺乏统一的管理,最终毕业设计完成情况就各不相同,部分学生到最后草草收场,严重影响了毕业设计课程的教学质量。 (四)考核方式不科学 基于毕业设计课程的特殊性,很多高校都采用集中答辩的方式进行最终考核。答辩时,学生用PPT解说自己的毕业设计项目,评审老师检查毕业论文,进行提问。由于时间有限,评审老师主要检查论文编辑格式是否符合要求,论文是否有明显的抄袭痕迹,项目是否有详细的设计过程,项目是否实现以及专业知识提问能否回答正确。这种考核方式就给部分投机取巧的学生提供了机会。他们从网上下载现有系统,抓取操作截图,把网上相关的毕业论文重新编辑整理,蒙混过关。因此,毕业论文完成情况并不能反映学生的真实水平,这种考核办法存在很大的漏洞。 二、解决方法 (一)提高认识,端正态度 首先要让学生明白毕业设计课程的重要性。教师要利用第一节课给学生讲明白毕业设计的意义、主要工作任务、上课方式和考核办法,让学生对这门课有清晰的认识,在思想上高度重视起来。同时,在平时的课堂教学中,教师除了传授知识和技能外,可以有意识地强调本门课程在进行毕业设计时发挥的作用,让学生对自己所学的知识有系统的认识,为最终的毕业设计打下基础。 (二)解放思想,发展个性 在选题上,教师一方面可以给学生提出专业性的建议,另一方面要充分尊重学生自己的想法。具体做法是:一要充分了解新时代大学生的个性,综合考虑学生对所学课程的理解和掌握程度,关注学生感兴趣的热点话题,从实际出发,鼓励学生选择自己喜欢的课题;二是教师可积极吸收学生加入到自己的科研队伍,感受真实项目的开发过程;三是参加顶岗实习的学生可以选择企业的实际工程项目,在工作的同时完成毕业设计。这些做法可以充分调动学生的学习积极性,锻炼学生的创造力和想象力,充分发挥毕业设计课程的价值。 (三)细化任务,重视过程 细化毕业设计任务,重视过程化管理是保证毕业设计质量的重要手段。一般高职院校学生进行毕业设计可2~3人分组完成。按照自由组合的原则,教师可适度调整,保证每组人员搭配合理。比如两名优秀的学生可以帮助一名中等生;每组中既有编程能力强的,又有数据库设计好的,还有擅长文档编写的,尽量模拟企业真实情况,充分发挥每个学生的特长,做到各尽其才[3]。软件技术专业学生开发管理信息系统的工作任务分解及过程化考核指标如表1所示。(四)全程监控,量化考核毕业设计任务安排清楚后,实施有效的过程化考核手段是非常必要的。合理、详尽的考核措施可以更好地约束和引导学生完成毕业设计。这里,我们建议利用网络作为交流平台,对学生的毕业设计开展过程实施全程监控,对每一步的工作成果实行量化考核。教师首先教学任务安排;学生在规定的时间内提交阶段工作成果,教师审阅并给出修改意见;学生修改并上传修改结果,教师对本阶段作业以百分制打分;当整个毕业设计课程结束时,教师按相关比例进行换算,给出最终成绩。这种考核方式既给了学生充分的自由空间,又能有效督促学生保质保量地完成毕业设计。学生在专业技能得到综合运用的同时,也在自我管理、自我约束和团队协作方面得到了一定的锻炼,为今后进入职场打下良好的基础。 三、结语 毕业设计不仅是学生对所学专业技能的一次综合应用,也是学生职业素质的一次综合培养。积极正确的引导,新颖恰当的选题,规范开放的管理,科学合理的评价是提高毕业设计质量必不可少的四个要素。对软件技术专业学生而言,毕业设计的实施方式贴近企业实际项目开发,能鼓励学生主动参与研究,培养其严谨周密的思维和有效合作的团队意识,改变学生被动接受,疲于应付的学习状态[4],是有效开展毕业设计的重要举措。 作者:张丽景 单位:兰州石化职业技术学院 软件毕业论文:三维软件之毕业设计论文 1现有毕业设计指导方法存在的问题 通过以上现状进行对比,可以看出,后者的优点是课题是实际课题,教师对题目有着足够的了解,并且有机会亲自指导学生进行实验,学生也可以在设计的过程中始终看到实物,对所设计的题目有全面生动的认知,对毕业设计的质量将有所保障。而前者虽然完成了毕业设计过程,却很难保证质量。因为在毕业设计初期存在如下问题:第一,一个指导教师带多个学生,按一生一题的要求,即一个指导教师有多个题目,很难做到每个题目都是实际课题,必然有一些题目是理论课题,无法提供实物给学生研究或所设计的机械不能实际生产,更谈不上教师有机会在现场指导学生。第二,学生查阅资料能力较弱,即使能找到资料,也往往多为文字资料、外观图片、局部平面图或类似题目的结构图。可以完成毕业设计的前提是必须对这些资料进行阅读、理解、掌握,这要求学生要有一定的识图能力、理论与实践结合的能力和一定的科研基础。但这些是大四学生不具备或者很薄弱的。只有通过指导教师的反复讲解,才可以帮助学生理解题目和资料。换言之,查阅资料阶段会消耗指导教师和学生大量的时间,这将影响毕业设计的整体进度。另外,目前毕业设计过程中也存在着学生对工程设计的一般程序规范不明确,需要教师逐个对学生进行明确的讲解,这也在一定程度上占用了教师的指导时间。以上种种都将影响毕业设计质量。综上,寻找有效的提高应用型本科大学机械类专业毕业设计质量的新方法势在必行。 2毕业设计三维范例库文件对毕业设计指导的重要性及实际应用效果 2.1建立毕业设计三维范例库文件对毕业设计指导的重要性 针对前面所论述的毕业设计存在的问题,利用三维软件UG、Pro/E、3DSmax等,对现有的机械设计进行规范化建模仿真,并编制数据管理软件类应用程序,将之完善成毕业设计范例库文件,以方便调用的方式,允许学生调用查阅。用生动形象的方式,模拟所设计机械实体结构,使学生对毕业设计题目有更深刻的印象,以解决学生查阅资料难、指导难的问题,提高毕业设计质量。同时,将建模过程分解,以动画的形式将设计过程演示给学生,使学生更明确工程设计的一般程序和规范,提高设计能力,保证毕业设计质量。另外,将以上机械中的通用部件提取形成基础库文件,该基础库不仅可以对除这四大类机械以外的其他设计有所帮助,而且可以为相关课程教师授课时的多媒体课件动画演示制作提供素材,以提高教学质量。 2.2将毕业设计三维范例库文件应用于毕业设计指导的应用效果 笔者曾在毕业设计当中,指导学生设计Stewart平台电液驱动机构,该平台是六自由度并联机构的基础平台,通过六个作动器的协调伸缩来实现平台沿x、y、z向的平移和绕x、y、z轴的旋转运动(共6个自由度),以及这些自由度的复合运动。可用于娱乐业的运动模拟,机器人、飞行器空间交会对接,仿真器、舰船及汽车模拟器,新型加工机床,卫星、导弹等飞行器的精确运动仿真。平台结构并不复杂,但其运动及控制极其复杂,这给学生查阅资料阶段增加不小的难题,并消耗大部分的时间进行消化资料和理解平台的运动方式,影响后续的设计进度和质量。其相关资料图为平面图(见图1),结构不容易理解。经调阅三维范例库文件,找到了相关类似的毕业设计,使学生看到了三维软件构建的“实物”和动画模拟的运动(具体见图2),帮助学生了解其运动和设计搭建过程,为以后的设计打下了坚实的基础,最后,学生以优异的成绩完成了毕业设计,自信满满地走向了工作岗位。 3结语 综上所述,寻找一种有效的适用于应用型本科大学机械专业毕业设计的方法势在必行,而将应用型本科机械类毕业设计和三维软件、数据管理软件三者相结合,建立三维范例库文件,突破传统毕业设计指导方法的局限,可以缩短毕业设计初期查阅理解文献资料的时间,加快设计进度,从而为保证毕业设计质量打下坚实的基础。 作者:徐莉 苗淑杰 刘喜平 刘春香 王巍 付彦虹 单位:黑龙江工程学院机电工程学院 软件毕业论文:软件工程毕业实习设计论文指导论文 随着软件学院的不断发展,为适应市场需求,近年来软件工程××方向专业应运而生,如软件工程机电一体化方向专业,该类专业培养既掌握软件工程领域扎实的专业知识和技能,又掌握一定的机电专业方向背景知识的人才,毕业生适宜在机械工程及自动化产业、软件产业或其他部门从事产品、零部件设计、制造、控制以及软件开发研制、管理工作,也可以继续攻读机械工程及自动化专业、计算机学科以及与计算科学等相关学科的硕士学位研究生。目前中北大学、大连交通大学、华东交通大学及江西理工大学等的软件学院都开设有类似专业。毕业设计是教学计划中培养学生综合运用本专业基础理论知识、专业知识与基本技能增强自身实践、创造、就业和创业能力的重要教学过程。毕业实习及其设计(论文)质量的高低对培养高素质人才教学目标的实现程度和学生的就业与发展有着举足轻重的影响[2]。 1目前存在的问题 我国高等教育长期存在重理论、轻实践的问题,因此教育部多次强调并明确指出要大力加强实践教学,建立和完善校内外实习基地,高度重视毕业实习,提高毕业设计、毕业论文的质量。软件工程专业是一门理论与实践联系非常紧密的学科,若按照传统重视理论的培养模式,毕业生则难以满足当前社会用人单位的需求[3]。对于相对新兴的软件工程机电一体化方向专业,其专业知识结构及培养目标决定学生面临的毕业实习与设计问题更复杂,目前存在的主要问题表现在如下几方面。(1)就业与选题的矛盾。基于该类专业的培养目标,毕业生目前就业意向主要有三:一是在软件产业从事编码测试、系统分析设计或具有软件领域知识的复合型技术服务、销售和管理(软件方向);二是在机械电子工程应用背景专业领域从事软件开发及机械研究、产品设计、制造、管理等工作(工程应用方向);三是考研、考公务员和自主创业等(考研方向)。因就业方向的多元化、毕业实习设计老师(包括软件企业导师)的专业领域和人数限制、实习条件的限制等多重原因,学生难免产生选题与就业意向不相符的矛盾。(2)毕业实习设计与考研、公务员招考时间安排上的冲突。毕业实习设计一般都安排在第4学年的第7学期、第8学期,而这期间,每年一度的全国研究生招生考试和公务员的国考、省考也同时举行,这就导致“考研方向”的学生在备考和完成学业间的矛盾,如不进行相应调整,势必影响毕业实践环节的教学质量。(3)软件方向与专业方向的不协调因素。软件方向学生一般采用3+1的培养模式,也就是说,第4学年大多在软件企业完成基于项目驱动的毕业实习和毕业设计;而工程应用方向和考研方向往往还有几门课程需要在校学习,在时间和内容安排上往往存在冲突。(4)毕业实习与毕业设计不能有机对接。毕业实习是毕业设计的重要准备阶段,毕业实习要结合毕业设计课题,到生产第一线进行专业实践与社会实践,收集与毕业设计有关的信息和资料,毕业实习的内容和质量对毕业设计的质量有直接的影响。毕业设计要将所学基础知识、专业理论与毕业实习的实践相结合,注重分析问题、解决问题能力的培养,它能在一定程度上检验毕业实习的效果[4]。软件工程培养实用型、复合型人才的特点使其对毕业实习与设计的衔接要求更高,而且该类专业多元的就业意向及其他复合因素使得学生的实习与设计内容往往不能有机衔接。目前软件工程专业毕业实习设计的教学工作中,面对学生就业自主化的严峻形势,存在着毕业实习与毕业设计不能有效衔接、教师对两者核心含义把握不好、设计(论文)选题及内容与经济社会对人才需求脱离以及忽视对学生的创造能力意识培养和训练等影响毕业设计论文质量的问题,因此进行全新的教学改革已经迫在眉睫。 2毕业实习设计指导需考虑的因素 1)学习动机。自我效能感、学习动机和学业成就三者之间存在相关关系,且自我效能感与学业成就、学习动机和学业成就之间均呈显著正相关[5]。自我效能感是人们对自身能否利用所拥有的技能完成某项工作行为的自信程度;学习动机是推动学生进行学习活动的内在动因,是激励、指引、维持、调节学生学习的强大动力[6];学业成就指经过学习和训练后所获得学业方面的知识和技能,是学生学习状况和水平的集中体现。高校毕业班级学生处于即将告别学生时代而走向社会的特殊阶段,毕业、考研和就业等诸多问题以及社会价值日趋多元和竞争压力日益加剧的强烈冲击,对其学习和心理产生了重大影响[7]。为增强学生的学习动机,从选题入手,贯穿毕业实习设计各环节,融学生兴趣爱好、就业意向与学生毕业实习设计于一体,激发学生的内在动力,是取得好的设计质量的关键因素之一。2)项目驱动。有效地整合指导教师的各类纵向、横向在研项目并将其进行深入的挖掘和提炼,根据毕业实践环节具体要求细分软件工程项目,将其引入到学生毕业实习设计中,采用以项目驱动为主体的人才培养模式,优化管理体制与实验室运行机制,探索一种新的实践教学模式,以期实现实践教学过程可控化、项目实施团队化、项目资源共享化的目标,培养具有扎实的工程实践能力、较强的技术创新能力、良好的团队协作能力和可持续发展能力的人才[3]。3)导师制。采用指导教师全程负责制是确保后续创新模式实现的关键。导师可以是从学校选定的各方向专业教师,也可以是从企业选出的工程技术人员,还可以是两者的结合(双导师制)。导师既要完成毕业实习与毕业设计的组织工作,又要完成这两个环节连贯且相互渗透的业务指导工作。为确保这种教学模式有条不紊地实施,指导教师应认真履行相应的职责。首先,根据毕业实纲和设计大纲的要求,与企业协调好学生的毕业实习设计课题和企业的生产技术工作需要之间的关系,落实毕业实习内容及合适的毕业设计课题;其次,要对学生毕业课题进行方案论证,及时提供指导和质量监督,确保教学任务的完成[4]。 3毕业实习设计指导创新模式的设计 结合软件工程机电一体化方向的专业特色,在现有基础上设计的毕业实习设计创新模式总体框架如图1所示,其主要内容包括如下几方面。1)以学生为本,模块化组织。基于学生的学习动机,根据学生某方面的专业特长和未来的发展取向,该模式分为3个大模块:以软件设计、软件测试、软件维护和软件项目管理等为目标的软件模块(软件方向);立志于进一步深造的考研、公务员考试等模块(考研方向);面向工程的工程应用模块(工程应用方向)。大模块下再设子模块,如以工程应用为背景的模块又分为UG、PRO/E等大型软件的工程应用模块;以单片机、PLC等程序开发为主的工控模块;CAD、UG、PRO/E等面向应用软件的二次开发模块。学生根据学业基础、就业意向及学习兴趣自主选择。2)毕业实习设计一体化。毕业实习与毕业设计是保证教学质量的重要阶段,二者的关系越来越密切,将二者人为分割的教学模式已不太适应教学的需要,必须建立二者紧密结合的教学新模式。具体来说,软件模块将毕业实习和毕业设计两个阶段合并为一个阶段,形成一个相对较长的时间整体,与大型软件公司合作,安排在第4学年,这也是软件工程专业目前比较流行的模式;工程应用模块中学生可以根据毕业设计课题有针对性地开展毕业实习工作,实习、设计由同一导师指导,采取集中实习和反复调研的形式,实习围绕设计的需要展开;考研模块则将实习和设计的时间提前,第6学期即由指导老师提前介入,预先安排相应工作,在充分保证设计质量的前提下,为考研创造条件。至于软件方向与背景专业方向课程安排上的冲突,软件学院采取课程置换与学分互认方式,拓宽学生的专业课程知识,达到多元方向的均衡。3)导师制和项目驱动贯穿始终。采取导师负责制,将部分学生(考研方向)的毕业设计提前到第6学期开始,到第8学期结束,历时1年半时间。在导师的指导与安排下,学生开展的工作包括文献检索,熟悉设备,仪器校准,实验计划,实验开展,项目调研、开展、改进和总结各环节。基于项目驱动,每一学生的实习设计选题均为某方向科研子项或工程子项,学生通过一个完整的项目链,在熟悉科学研究方法、步骤和科研组织等环节基础上,全面培养动手能力、独立工作能力和创造性的思维能力。4)建立全程质量监控体系。“全程”指从毕业设计选题、毕业实习指导、教师下任务书、学生做开题报告、方案设计、实验、中期检查、撰写论文到答辩评分、总结归档等质量形成的全过程;以制订计划、明确目标执行计划检查、反馈处理、纠偏制订新的计划、目标为质量监控途径。针对毕业实习、毕业设计的各个环节,制订详细可行的规范,把握各阶段的时间节点和考核标准,目前要求教研室审核的关键节点包括选题、任务书、开题、中期检查、综合评价、答辩等。 4工程实践环境的构建 要保证上述模式的良好运行,必须有一个稳定而可行的工程实践环境。我们一直注重软件工程专业实践应用型人才培养,不断加强与IT等用人企业的合作。从软件工程机电一体化方向专业开办以来,江西理工大学软件学院先后在中兴软件、中天电子、江西微软、上海杰普等多家大型软件公司和IT培训机构建有校外实习基地,在江西铜业公司、中金岭南股份公司、恒天动力有限公司等建有校外专业背景方向实习基地。打造相对稳定、整体素质较高的导师队伍是实现该创新模式的有效保障,学院应考虑:①从实习基地遴选指导教师;②选派软件方向教师到合作基地工程实训;③选派专业方向教师到国内知名院校访学。对毕业实习设计各环节,软件学院制定有详细的《毕业实习设计规范》,系部成立“软件工程毕业设计领导小组”。教研室针对该内容进行深入调研与问题分析,在教师中开展动员,提前落实并布置工作;在学生中宣传动员,使学生在思想上有准备,重视毕业实习、毕业设计;在毕业设计过程中,强调过程质量控制和管理,及时跟踪控制,及时发现问题、解决问题。 5结语 基于该模式,近年来,江西理工大学软件学院学生的毕业实习设计质量不断提高,实践能力和综合素质不断提升,就业质量也逐年提高,就业率在同类高校中一直保持前列。同时,我们也将总结实践经验和实践效果,不断完善该模式,为相关专业的教学改革起到示范和推动作用。能力培养是高等工程教育改革的重要任务,强化能力培养还需要在已有成果基础上进一步完善各实践环节的内容与规范,使得软件人才培养与企业需求真正地“无缝衔接”。 作者:江西理工大学软件学院 单位:张乐平 软件毕业论文:软件工程在毕业论文中应用 一、软件生存周期各阶段应完成的任务 1.概要设计阶段和详细设计阶段概要设计阶段主要完成软件系统总体结构的建立、定义功能模块的接口、设计全局数据库和数据结构、规定设计约束、编制概要设计文档等工作;详细设计阶段主要完成模块详细设计及编制模块的详细规格说明工作。包括模块的详细功能、算法、数据结构和模块间的接口信息等设计,拟定模块测试方案;把模块详细设计的结果汇总,形成模块详细规格说明书。这两个阶段对应于毕业设计的系统设计阶段。2.实现阶段与组装测试阶段实现阶段主要完成编码及单元测试工作。根据模块详细规格说明书,将详细设计转化为程序代码、对模块程序进行测试,验证模块功能及接口与详细设计文档的一致性,并形成单元测试报告;组装测试阶段主要完成模块程序组装与测试及组装测试报告的编写。3.确认测试阶段该阶段主要完成软件系统测试、确认测试文档编制及软件评审工作。根据软件需求规格说明定义的全部功能和性能要求及软件确认测试准则对软件系统进行总测试;向用户提供以确认测试报告为主的有关文档,包括系统操作手册、源程序清单和项目开发总结报告等;由专家、用户、软件开发人员组成的软件评审小组对软件确认报告、测试结果和软件进行评审,并将得到确认的软件产品交付用户使用。这个阶段主要对应于毕业设计(论文)中的论文评审、结题验收及毕业设计的答辨准备阶段。4.软件运行与维护阶段主要进入软件的使用阶段,并完成软件的维护工作。它主要对应于毕业设计中的答辩阶段。 二、毕业设计应注意的几个问题 1.摘要摘要是对文章主要内容的摘录,要求精、短、完整。以几十字至三百字左右为宜。摘要应具有独立性和自明性,从摘要中即应获得必要的信息;摘要中只能使用第三人称;要客观如实地反应原文的内容,要着重反映论文的最新内容和作者特别强调的观点;要求结构严谨、语义确切、表述简明,一般不分段落、不进行自我评价。2.关键词关键词主要用于论文检索,它是从论文的题名、摘要和正文中选出的,是对表述论文的中心内容有实质意义的词汇,关键词一般以3~5个为宜。3.结论结论写作的内容应主要考虑本文研究结果是什么?研究结果说明了什么?对前人有关的看法作了哪些修正、补充、发展、证实或否定?本文研究的不足之处或遗留未予解决的问题以及对解决这些问题的可能的关键点和方向等。结论应该准确、完整、明确、精练。4.需求分析在毕业设计中,学生往往不能对所做题目进行充分的调研,需求不明确,随意想象的成分较多。特别是在数据表的建立上,大部分同学随意设置字段的类型,而字段长度基本上采用默认置。而在实际项目开发中,数据项的设置应主要注意以用户的需求和满足系统要求为准,而不应设计冗余的字段;数据的类型要依据实际需求,当某些字段可以是选择某几种类型之一,应考虑哪一种更有利于本系统或哪种更易于用户操作和维护。5.详细设计许多同学把详细设计阶段的任务理解为代码实现,因此,在概要设计之后就着手进行代码的编写而忽略了算法的表达及测试用例的编写环节,由此造成的结果是随意编程,大量的时间浪费在程序的修改和调试上。6.软件测试测试做得不够全面,大部分同学只选择了有效的测试用例,而没有进行无效的测试用例的设计,因此所做的软件BUG较多。7.团队合作在毕业设计中,应有意识地锻炼学生们的团队协作精神,因此,在布置毕业设计题目时,应尽量选择规模大一点的题目,然后由4~5名同学共同协作,每人完成一个子题目。这样,可以使学生们分析问题和解决问题的能力、沟通和表达能力得到充分锻炼,为今后的工作奠定基础。 作者:王素芬 单位:沈阳工程学院 软件毕业论文:SW软件在毕业设计的应用 传统的设计结果不能直观的反映夹具的结构,并且在设计过程中出现的错误很难及时发现,因此指导教师在设计过程中要不断的审图,帮助学生找出设计中的错误。即使是一些结构上的小变动也可能导致学生重新设计,这种繁琐的重复性工作贯穿于整个设计过程,耗费师生大量的时间和精力,而学生的接受却有限,甚至出现学生拒绝修改的情况。鉴于传统设计的局限性和低效性,三维软件,特别是SW软件以其优异的性能、易用性和创新性,被广大师生接受并应用于毕业设计中。 1三维建模及仿真 在夹具设计的过程中,根据确定下来的设计方案,学生可以对定位元件、夹紧装置、支撑元件、导向元件之间装配关系予以确定,需要的标准件从标准库中直接调用,如果是夹具体、钻模板、支撑架、非标准定位销等,可以自由地在装配环境下进行零件的设计,并且设计出来的零件无需约束,自动装配到钻夹具装配体上。专用夹具装配体建立以后,接着可用SW软件自带的Animator插件对装配体进行运动仿真,使装配体产生运动,如果发生动态干涉,系统会报警,并给出干涉的部位。SW软件具有对设计方案动态修改的功能,在设计过程中随时修改零件尺寸和结构形式,相对应的零件会自动更新,使设计修改工作简单方便。由于SW设计的直观性,学生的接受效果大大提高。SW软件还可以动态模拟钻夹具从零件到整个装配体形成的过程以及装配体的运动过程,并形成可单独保存的AVI格式动画文件,脱离SW软件环境也可以播放,方便直观地观察仿真设计结果,使老师尤其是答辩老师可以快速地了解夹具装配设计、结构的工作原理和方法,节省学生在答辩时的解释时间,提高了毕业设计的效果和答辩效率。经仿真检验修改后的装配体,利用SW软件的“爆炸”功能生成爆炸图,显示夹具装配体详细的结构和相互间的装配关系。 2二维工程图的形成 SW软件利用设计的三维立体图可以自动转化成二维平面图,并且局部放大图、剖视图、标题栏、明细表等也自动生成。设计学生只须根据生产工程图的标准对转化的二维平面图进行修改,即可形成标准的二维工程图。 3总结 笔者在最近几年的毕业设计指导中,积极引导学生进行三维设计,使设计过程直观简便、设计效率高,提高了学生的现代工程素质。应用SW软件进行毕业设计的结果显示,三维设计对学生知识的拓展,动手能力、分析能力、创新能力、处理问题能力的提高超出预期效果。 作者:李君 黄绍服 单位:安徽理工大学 软件毕业论文:管窥软件工程在毕业设计中的应用 1软件工程在毕业设计中的作用 软件工程不仅是计算机科学与技术专业、软件工程专业的一门专业基础核心课程,也是其他相关专业,如信息工程、系统工程、信息与计算机科学、信息管理与信息系统等专业的重要应用技术课程。对于这些专业的学生来说,毕业设计多是以软件开发类项目为主,整个毕业设计就是开发一个软件。为了更好地完成软件开发类毕业设计,提高学生毕业设计的质量,进一步规范毕业设计中的软件开发过程是必需的。软件工程的思想正是用工程化方法构建和维护有效的、实用的和高质量的软件。按照软件工程思想,软件开发的生命周期分为可行性分析、需求分析、总体设计、详细设计、编码实现、软件测试和软件维护几个阶段。在学生的毕业设计中以软件工程的思想为主线,从软件工程的角度去指导学生进行毕业设计,挖掘软件工程在系统开发过程中的价值,解决毕业设计中存在的一些问题,既有助于学生更好地理解软件工程的方法、技术和思想,更有助于提高软件类毕业设计的质量。 2毕业设计中存在的问题 笔者在指导学生软件开发类毕业设计过程中发现,毕业设计存在着选题难、任务重、重视编码、轻过程、项目无法完成等现象。设计过程中没有严格地遵循软件工程的开发方法,没有规范的软件设计过程,项目能否成功主要依赖于个人能力和个人努力,这种不正确的开发方法带来了严重的后果。在项目开发的过程中常常存在以下几个方面问题: 2.1选题的盲目性 选题是毕业设计过程中的一个初始环节,选题恰当是做好毕业设计的前提,但选题不当的情况仍然时有发生。学生没有认识到毕业设计的重要性,纯粹是为了完成学业而做毕业设计,选题没有一个确切的目标,往往是随便选一个题目,造成选题的盲目性,出现了选题陈旧、选题范围狭窄、选题偏大等问题,使学生抄袭、完成不了毕业设计的情况时有发生。 2.2缺少软件的系统分析 软件开发过程的第一个阶段是系统分析,用来确定软件开发要解决的问题是什么?估算完成该项目需要的资源和成本,确定目标系统应该具备哪些功能,主要经历问题的定义、可行性分析和需求分析三个阶段。软件的系统分析确定了用户需求,同时对目标系统提出完整、具体的要求,引导开发者正确地构建系统。因此,对用户需求做出全面、正确的分析,对于最终软件开发类毕业设计的成败起着至关重要的作用。然而在完成毕业设计过程中,学生往往认为代码编写最重要,对软件开发过程中的可行性分析和需求分析阶段不重视,甚至没有系统分析,对整个毕业设计的完成造成了影响。 2.3软件设计过程杂乱无章 软件设计一般都要经历可行性分析、需求分析、总体设计、详细设计、编码和测试阶段。而部分学生在毕业设计开发的过程中,缺乏软件工程设计思想,跨越需求分析、概要设计、详细设计和功能模块设计,直接进行代码的撰写;或者从代码反推出模块设计;甚至在软件开发过程中,一边写程序,一边了解需求,程序完成了需求才确定。这种无序的软件设计过程,导致最终设计的系统杂乱无章、代码的重复率高、潜在?Bug多、系统的可集成性非常差、不能在规定时间内完成设计或者系统无法运行。 2.4开发过程中文档不完备 根据软件工程学的基本原理,软件=程序+文档,可见软件文档是软件开发过程中不可缺少的组成部分。软件文档贯穿于软件开发的各个阶段,是提高软件产品开发效率、规范软件产品开发过程、保证软件产品质量的关键。但在实际毕业设计中,很多同学认为把程序代码编出来了,毕业设计也就完成了,提交的毕业设计论文就是系统代码的复制,即只做出一个可演示可操作的系统,而忽略了软件开发的完整性、系统性。完整的毕业设计不仅包括可操作的系统,还包括在开发系统的过程中所产生的各个文档资料。文档的缺失会降低软件开发的效率、影响整个软件的开发、使用和维护。以上问题的存在,严重影响了毕业设计的进度和质量,没有达到毕业设计的目标要求。针对当前毕业设计的现状和存在不足,笔者认为应用软件工程学的思想指导毕业设计,对促进学生综合素质与工程实践能力培养具有积极意义。 3用软件工程思想指导学生进行毕业设计 3.1以可行性研究指导选题 可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。毕业设计题目的选择,应立足于解决工程实际问题,可由指导教师提供符合相关专业毕业设计要求的题目,也可以鼓励学生自己到社会、生产企业中寻求研究课题,培养他们自主学习的意识。选题过程以可行性研究为指导,从课题规模大小、难易程度、学生自己的研究方向、爱好、学生的知识层面和能力等多个方面进行考虑,对于选择的题目是否能够解决,确定在规定的时间内完成毕业设计的可行性。指导教师可根据学生选报的题目来指导学生对该选题进行调查研究,明确课题要解决的问题是什么,简要地写出关于问题性质、项目目标和项目规模的书面报告。可行性研究来指导毕业设计的选题,实质上是简化了系统分析和设计的过程,也是在较高层次上以较抽象的方式进行的系统分析和设计的过程,使学生对于课题的设计有个清晰的思路,为及时完成毕业设计提供了可能。 3.2重视软件的需求分析 需求分析的基本任务是准确地回答“系统必须做什么”,即确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求,不仅指明了系统设计时必须要实现的目标,也是软件设计、实现、测试和维护阶段的主要参考标准。用户需求的获取是软件开发中最重要、难度最大的工作,它贯穿于整个软件设计过程,不仅要涉及到软件开发方面的知识、应用领域方面的知识,还涉及到与用户沟通的能力。在进行需求获取和分析时,为了及时、准确地获取,可采用软件工程中比较成熟的方法,例如访谈、实际调查、UML的用例技术等。需求分析在软件系统分析与设计阶段起着桥梁的作用,确定了系统的需求,才能制定出软件设计的框架,保证毕业设计循序渐进、有条不紊地进行,避免后期开发过程的频繁返工,进而按时完成最终的任务。 3.3规范毕业设计过程 软件开发类毕业设计一般是开发一个软件系统,实现一定的功能。“麻雀虽小,五脏俱全”,无论软件规模的大小、功能的多少,都应该严格按照软件工程中软件生命周期每个阶段的步骤完成各项任务。要培养学生把软件工程的概念贯穿于整个毕业设计过程,也就是说,让学生把开发软件的过程看成是盖一栋大楼,修一条公路的实际工程,用工程化的思想指导毕业设计,确定完成课题的各项任务的工作步骤,注重软件类毕业设计的过程,而不是学生所认为的毕业设计就是编程序,代码调试通过即可。通过工程的概念规范毕业设计过程,让学生明白开发一个软件系统一般经过系统分析、系统设计、系统实施三个阶段,必须严格遵循软件生命周期的规律,完成各个阶段的任务,才能最终提高毕业设计的质量。 3.4重视文档的写作 软件工程中的瀑布模型严格地规定了在整个软件生命周期的各个阶段,都要提交相应的文档。文档不仅记录软件开发过程中的大量信息,在软件的开发、维护过程中也起着重要的作用。在指导学生毕业设计时,要求学生遵照软件工程的思想,把文档作为整个设计的指挥棒,记载设计过程的每一阶段完成的目标、任务及技术手段,建立健全毕业设计文档制度,确保毕业设计过程中的文献综述、译文、任务书、开题报告、选题审题表、中期检查表、设计(论文)正文、答辩记录等各环节教学资料档案完善、规范,实现对毕业设计的全程监控。 4结束语 软件工程是软件开发工程化、规范化的具体实施方法,将其应用到毕业设计中,不仅有助于学生对软件开发相关知识的巩固和实践,而且对解决目前软件开发类毕业设计中存在的问题,提高学生毕业设计质量,具有极大的促进作用。 作者:王晓 王长波 单位:湖北医药学院 公共管理学院计算机教研室 软件毕业论文:软件工程本科毕业设计策略 一、利用多方资源做好毕业设计选题与立题工作 恰当的选题是做好毕业设计的必要条件和前提。近年来,随着信息技术高速发展,国家对高素质软件工程人才需求十分旺盛,并有逐年扩大的趋势。同时各个高校软件工程专业的招生数量也在逐年增加,从目前全国319所设有软件工程专业的学校看,2013年该专业平均招生300人左右。专业招生人数的增多给毕业设计选题带来了带来巨大挑战:一方面软件工程专业的毕业设计选题要求具有一定的应用价值、创新性,同时还要与行业需求相吻合;另一方面要保证选题的唯一性,不仅要避免学生之间的题目重复,还要避免与之前毕业生的题目重复,因为重复的选题会使学生产生投机的心理,导致“打酱油”现象。针对上述问题,黑龙江大学软件学院主要采取了以下几个措施:1.充分利用企业资源,对一部分在企业实习的学生采取“三位一体”的双导师指导模式。即企业项目为载体,学生为主体的模式,校内和校外导师为主导。这部分学生一般是在大三下学期暑假就已经进入企业实习,而我们每年毕业设计选题工作是在十一月末,也就是学生进入企业实习后三到四个月的时间,学生经过企业阶段的培训,对企业的生产过程、企业文化有了一定的了解。此时,学院组织校内外导师和学生共同协商,以企业项目或子项目为学生确定毕业设计选题。2.充分发挥导师的资源优势,学院大部分教师都有自己的科研课题,这些科研课题有些是直接来源于企业的横向课题,还有一些是信息技术领域的应用研究课题,我们鼓励教师从这些课题中提取出一些子项目让学生实践,作为毕业设计的选题。3.充分挖掘学生的专业技术特长和兴趣点并结合学生的择业倾向,确定最能发挥自身优势和潜能的选题。毕业设计的选题不仅要与实际需求相结合,更重要的是应该结合学生自身的技术优势和兴趣。只有学生对选题有兴趣,他们才能尽早地进入状态,发挥自己的创造能力和积极主动意识。所以,选题阶段导师和学生的沟通交流就显得尤为重要,通过沟通导师可以了解学生的能力、兴趣和择业倾向,学生也可以对选题,有进一步的认识,对于不感兴趣的选题学生也可以通过与导师进一步的探讨进行题目的修订。 二、注重环节审查,加强过程监管 虽然“好的开始是成功的一半”,但是如果缺乏中间环节的监管,仍然不能保证好的效果[4]。因此,为保证毕业设计(论文)的质量,我们制定了明确的质量标准、管理条例,并由院长、学术委员会、系主任和教务办主任组成毕业设计(论文)工作委员会,负责毕业设计(论文)工作的组织、评定和监管,同时保证管理条例的严格落实及各个环节工作的正常进行。为健全毕业设计(论文)的监管机制,学院先后规范和完善了《毕业设计(论文)工作管理办法和实施细则》《开题报告》《开题评分标准》《中期报告》《中期检查标准》《毕业设计(论文)撰写规范及模版》《毕业设计(论文)盲审表》《答辩程序和评分标准》等一系列管理办法和文档标准,使毕业设计工作在制度和规范下能顺利有效地进行。每年毕业设计工作之初,我们都要给学生开一个动员会,在会上阐明毕业设计(论文)的重要性,以及毕业设计对他们未来工作的影响,调动他们学习的主动性、积极性和创造性。此外,系主任还要向学生介绍学院毕业设计(论文)管理办法和实施细则,各阶段的工作要求和时间节点,以及各环节检查的内容、需要提交的文档,使学生在毕业设计开始时能做到心中有数。同时,我们也要求指导教师随时解答学生的问题,坚持每周开例会,检查学生的工作完成情况,并提出一些有技术含量和理论深度的问题启发他们思考,激发他们的学习热情,并与学生一起确定后续任务。此外我们组织开题检查、中期检查,对开题检查成绩后30%的学生,不但检查中期报告,还要现场检查程序。对于中期检查不合格的学生,要求限期整改,如果仍然不合格则取消答辩资格。在答辩之前,我们还要对论文进行盲审,盲审不合格的学生不允许答辩,对有异议的论文要提交学术委员会做最后论证。虽然学院对毕业设计(论文)工作在各个环节上的审查都非常严格,但我们鼓励学生之间进行研讨交流,博采众长,相互提高,因为我们的目的不是抓出多少不合格的学生,而是想通过大学阶段最后的综合性实践教学环节训练,培养学生的学习能力、知识的综合运用能力、分析解决问题能力和沟通交流等综合素质。 三、严把答辩关,保证毕业设计质量 答辩是毕业设计(论文)考核阶段的最后环节,这个环节既是学院对学生毕业设计的验收和鉴定,同时也是学生对自己工作的总结和汇报。通过答辩,学生不仅展示了毕业设计工作的效果,更展示了自己的专业知识、技术水平和综合素质。作为教师,每年都要指导多个毕业设计(论文),而学生一生只能经历一次本科毕业设计,而且毕业设计答辩能否顺利通过,直接关系到学生毕业及学位资格的认定。因此对学生来讲,毕业答辩至关重要。这有点像外科医生与患者的关系:医生每年要做很多手术,对他们而言手术已是司空见惯,但对于患者本人,可能一辈子才上一次手术台,而且生命攸关。所以,我们要在毕业设计指导过程中,认真对待每一位学生。同时在毕业答辩中严格把关,保证质量,更要秉承“公开“”公正”“公平”的原则。我们的毕业设计(论文)答辩采用小组面试形式,每组由四位副高职以上教师组成,答辩流程如图1所示。答辩当天向学生公布成绩,毕业设计(论文)总成绩由开题成绩(10%)、中期成绩(10%)、指导教师成绩(10%)、答辩成绩(70%)构成。对于优秀的和不及格的学生,我们还会重新组建答辩组进行二次答辩。这是考虑到答辩组之间认同度的差异而导致评分标准出现偏差,可能有些答辩组打分会偏低,有的组打分会偏高,即各个答辩组评分信度不能达到一致。二次答辩可以有效地消减组间评分差异,从而使申报校优秀论文人选和未通过人选的确定做到公正、公平和有效。针对软件行业特点,我们通过强化实践教学环节,合理利用多方资源拓宽毕业设计(论文)选题途径、健全和完善毕业设计(论文)的监管机制等手段,确保了毕业论文质量的稳步提高。几年来,黑龙江大学软件学院的毕业设计(论文)质量受到校内外专家的一致好评,获校优秀论文比率一直位于学校前列。实践证明,加强毕业设计(论文)质量的监管,不但提高了学生工程实践能力、独立科研能力和创新意识,为学生进入工作岗位打下了良好的基础,进而也提升了学生的就业率。 作者:任美睿 金英 郭龙江 单位:黑龙江大学 软件毕业论文:基于毕业产出导向的软件工程课程教学改革 摘要:分析国内高校在软件工程课程零置上的侧重点以及软件职业技术资格考试内容,提出以SWEBOK V3中知识域的要求为课程内容基础框架,基于毕业生的产出能力导向进行教学大纲、知识内容和考核方式改革,通过监控学生成绩对课程教学效果进行分析和长期持续改进。 关键词:产出导向;软件工程;课程改革 1 背景 作为软件工程专业的主要核心课程,软件工程课程一直很受关注,围绕着课程教学所进行的教学改革也比较多。目前,正在各高校进行的工程教育专业认证是我国为推进工程教育改革、提高工程教育质量、建立工程教育与工程师制度衔接、提高工程教育对产业发展的适应性和提高我国工程技术人才的国际竞争力所做的一项合格性评价,在给高校工程教育带来发展契机的同时也提出了对教育理念、教学过程管理、教学内容更新换代等方面的挑战和调整要求。 2 课程现状 目前,国内高校软件工程课程使用的教材主要有张海藩《软件工程导论》、郑人杰《实用软件工程》和国外翻译版《软件工程》。教学内容主要有软件工程概况、可行性研究、需求工程、传统的软件设计、面向对象设计、编码、软件质量与保证,项目计划与管理、软件开发工具与环境等。软件工程是一门强调实践的综合性工程课程,各高校在具体课程安排上各有侧重。 例如,复旦大学(54学时)的课程重点首先是结构化分析与设计、面向对象的分析与设计,这两部分内容超过了1/4总学时;其次是软件测试和软件项目管理,分别约占总学时的1/6;课程特色在人机界面设计和Web工程上。清华大学(48学时)把面向对象方法UML和RUP作为重点,占总学时的近1/3;其次是结构化分析与设计,占总学时的1/4;软件过程及软件工程管理是另一重点,通过学生合作小组或参与项目组进行软件开发,在实践中理解软件过程的意义和作用,培养软件项目管理的意识和能力。浙江大学(理论32学时、实践32学时)重点讲述软件工程的常用方法,包括分析模型的建立、总体设计、软件测试等,其特色是网络应用软件的开发方法和实践,通过从需求单位抽取出的大型模拟案例进行项目开发,锻炼学生的系统设计、开发、谈判、沟通、写作、团队合作等能力,培养学生的工程职业素养。 通过对国内几所高校课程教学特点的分析,我们发现目前国内高校软件工程课程主要以理论知识教学为主,虽然有的院校做到了实践与理论并重(1:1),但是大多数院校还是以理论知识教学为主。课堂教学以讲述概念性基础知识为主,课程的内容主要有面向对象的分析设计、软件测试和项目管理,对新知识、新技术和新工具介绍较少,目前软件工程课程更像是一门导论课程。 3 面临问题分析 3.1 工程专业毕业要求对课程的影响 工程专业毕业生应具备足够的沟通能力、合作能力、专业知识技能、终身学习能力及人格、国际视野和责任感等能力素质,这些素质要求可以保证学生毕业进入职场前具备基本的职业素养和从业能力。产出导向是工程教育认证中重点关注的部分,课程体系设置、师资队伍建设和外部条件配备均以有利于学生达到培养目标和毕业要求为导向。毕业要求反作用于课程设置,要求课程的内容建设、教学方法改进、过程监督以及成绩考核都应围绕这一要求,细化产出导向的要求和能力指标,设置相应知识点并调整各自的重要性比例,从知识点授课和实践能力两方面落实能力培养,达到毕业产出的要求。 3.2 与软件工程课程相关的专业技术资格考试分析 工程教育认证是将来国家注册工程师制度的基础和重要环节,目前我国已经在土建、环境、核安全等领域开展试点工作,实现了对工程人才的社会评价及国际间人才资格互认。在我国,与软件工程课程相关的全国性考试还有计算机技术与软件专业技术资格(水平)考试,由国家人力资源和社会保障部、工业和信息化部领导,对全国计算机与软件专业技术人员进行职业资格、专业技术资格认定和专业技术水平测试。笔者对与软件工程课程相关的资格考试内容进行解析,以软件设计师为例进行重点分析,见表1。 从表1分析内容可见,软件工程基础考试内容。与课程教学大纲知识点一致,在信息安全知识和标准化知识上给出新增内容,这与SWEBOK2013知识体系一致。考试科目“软件设计”以上述知识为基础,考查工程师的实际工作能力。在最近几次考试中有考题涉及数据流图、UML图的应用分析,与课程授课侧重点也相符,更侧重于实例的应用能力,需要实践积累与运用。 3.3 SWEBOK V3和课程对应关系分析 软件工程专业的课程体系是基于软件工程知识体系SWEBOK(software engineering body ofknowledge)、计算机教程软件工程卷(computingcurriculum-software engineering,CCSE)及其中的软件工程教育知识体(soft engineering educationknowledge,SEEK)而建立起来的。2014年,IEEE计算机协会了软件工程知识体系指南第3版,该版将原来的10个知识域扩展到15个,与现有软件工程课程大纲的比较结果见表2,其中有分布到其他课程中的知识点未加以说明。新增和修改的相关知识点需要在软件工程课程教学和实践环节落实。 4 基于产出导向的软件工程课程改革与建设 4.1 课程教学目标修订 基于上述分析,我们进行基于产出导向的软件工程课程改革和建设。课程教学以使学生掌握软件工程的理论基础知识和基本工作原理,培养学生具有工程问题需求分析的能力以及综合运用计算机科学和工程技术完成系统设计、实施和维护的能力为目标。课程的主要任务是使学生掌握软件开发过程的理论、方法、技术标准以及计算机辅助工程和环境等知识并通过实验灵活应用;掌握软件工程的基本概念、软件开发模型、开发过程的管理和质量控制;掌握需求分析的任务与原则,传统面向对象需求分析方法、设计过程与一般性概念以及文档的编写;掌握程序设计方法,增强编程实践训练,掌握软件测试技术与纠错性软件维护方法;掌握UML建模技术,能在软件工程过程中使用常用建模工具,能运用建模方法解决工程实际问题;了解专业开发活动涉及的标准、方针、政策和法律、法规,能正确认识实施软件工程对客观世界和人类社会的影响。 4.2 教学内容和教学方法改进 根据毕业产出要求及SWEBOK V3新修改版,我们对教学内容作如下调整:①在64学时课时中,将理论与实践课时设定为1:1;②在需求分析和设计部分新增人机界面和系统安全知识;③独立介绍软件复用部分知识,结合软件设计模式讨论软件可复用性;④在软件质量保证和项目管理部分新增软件产品标准和行业标准、国内外法律和法规;⑤在软件维护部分新增软件退役和迁移。 每一章都提供参考资料,教师引导学生有选择地阅读其中的部分内容,根据课程内容的进展情况布置相应的任务、思考题和作业,引导学生通过Intemet或其他途径查阅相关资料以拓宽知识面,了解软件工程领域最新实践研究成果。为了使学生建立起软件开发和维护的工程化意识,较系统地掌握按照工程化思想开发与维护软件的方法和技术,教师需在教学中培养学生从软件企业开发和维护实际大中型软件的角度出发,结合成本、风险、效益、进度、过程、质量等多种因素系统地分析软件开发和维护过程中的问题,突破以往要求完成某一给定知识点作业的单一思考问题局限。此外,构造实验环境用于课内工程项目实践,通过模拟项目的开发,锻炼学生的系统设计和开发能力、软件工具的使用能力、语言交流能力、文档编写能力以及团队合作能力,培养学生的职业素养。项目实践引导需贯穿理论知识学习始终。 4.3 考核方式与持续改进并行 课程强调过程考核,总成绩分为平时和期末两部分,分别占50%。平时成绩主要考核学生的课堂表现、作业、实验能力和实验报告撰写情况等。其中,课堂表现主要从学生上课是否专心听讲、回答教师提问是否正确以及分组讨论是否积极、正确、有独特见解等进行考核,以提高课堂教学效果和运用工程基础知识及本专业基本理论解决实际工程问题的能力;作业方面重点考核学生掌握软件工程理论基础知识和基本工作原理的程度;课内实践教学环节重点考核学生的工程问题需求分析和设计能力,综合运用计算机科学和工程技术完成系统的分析和设计并对设计文档进行审查的能力;期末考试将按照课程教学目标全面考核学生课程学习的效果,选取一定数目的学生成绩为样本,计算该课程对毕业要求贡献的达成度并通过建立阀值定量评估课程教学质量,通过不断提出持续的改进意见并实施,切实加大课程对提高毕业产出能力的贡献。 5 结语 笔者基于毕业生产出能力对课程教学目标进行了修订,完善了软件工程课程的教学内容和知识结构,对教学方法进行了梳理,最后通过改变考核方式对课程进行长期监控和调整,实现课程的持续改进。下一步工作将重点关注课程中学生自主能力导引体系和毕业生能力评价反馈机制的构建。(编辑:宋文婷) 软件毕业论文:思索软件在大学毕业论文管理中的应用 【摘要】本设计是基于高校毕业论文的系统设计,可以完成论文的申请,上传,查看,评价,统计等一系列管理操作。采用SQLServer2008+MicrosoftVisualStudio10+ASP+C#做为开发工具,用户可以使用它编写可以运行VBSCRIPT、JAVASCRIPT等脚本语言的以.asp为后缀名的应用程序,再用Internet服务管理器进行网页的浏览。 【关键词】计算机软件;毕业论文;系统设计;软件 一、背景意义 如今计算机网络的普及已近是亘古不变的潮流了,而且全国大学网络的正在以高速的发展节奏和社会潮流接轨,各种计算机网络化已经逐步取代繁琐的传统办公模式。大学毕业设计作为大学生四年学结的最重要环节,我们完全有必要实现网路管理化,可以减少指导老师和学生的工作时间和负担,让繁琐的毕业设计过程采用网络化数据库统一管理。通过毕业论文管理系统,大大方便了学生、老师及学校管理员。社会科技在不断的革新,我们的生活、工作和获取知识的方式结构都发生了完全的更新和进步,传统的方式在不断的改变,这是社会发展的毕竟之路,也是走向未来的毕竟过程,所以使得各种传统方式得到不断的简单、方便和先进是十分重要和必须的。然而在许多大学和高校里面并没有在毕业这一环节上实现信息化管理,所以这一部分的工作所有都是由人工来完成,然而人为的物理操作必定存在许多缺陷,比如大量的毕业生信息需要处理,工作量就十分的庞大,到处都是纸质资料,不易整理和保管,还容易丢失,另外最麻烦的是需要更新和修改的资料的情况,其次就是学生和指导老师之间关于论文进行的交流和联系都是线下的,会受到各种不定因数影响,影响这一环节的进度和质量。有着网络的基础,系统可以采用了目前十分流行的B/S结构和Web技术,使得操作交流都变得十分简单和快捷。最重要的是通过计算机信息化管理完全避免人为物理操作的不足。 二、初步调研 浏览了各大类型和类似的网站,毕业论文管理管理系统,我同样采用了当前很流行的B/S结构来开发。 通过各个高校去实地考察,很少有大学开始使用此类系统来管理毕业论文。另外,大多数学生和老师都希望高校能完善此块的建设,来减少毕业生和指导老师的工作量和工作效率。并且此系统会有效的减少学校在此类工作的成本。由于只针对高校毕业生的毕业论文,技术上的要求和开放难道并不是特别大,做好策划工作就好。所以完全可以由大学生和本校老师来指导完成。 最后我们考虑到费用,因为不是企业级的网站,而是校内开发,功能和维护性的要求并不是特别高,所以费用基本可以忽略不记。综上所述,系统的开发无论从技术上、经济上,可行性都是相当高的。对于各大高校是值得去开放和使用的。 三、开发过程中问题 在开放过程之前,我们需要选择何种编程语言和环境。语言和环境的选取对系统的开发难度和时间长度都是有直接的联系的。为了减少开发周期,减弱开发费用,提高产品的质量,对系统做出需求分析报告是非常必要的。比如本毕业论文的系统,是可以完成论文的申请,上传,查看,评价,统计等一系列功能的。那么采用SQL Server2012+Microsoft Visual Studio 2012++C#做为开发工具。在软件系统开发过程中,不提倡无模型的随机开发方式,不可以想到什么功能模型就随手开发什么代码,这样不规范的开发,不仅使得开过过程处于混乱,而且大大地降低了系统开发效率。我们可以适当的利用一些经典的开发模型,典型的开发模型有:1.边做边改模型(Build-and-Fix Model);2.瀑布模型(Waterfall Model);3.快速原型模型(Rapid Prototype Model);4.增量模型(Incremental Model);5.螺旋模型(Spiral Model);6.演化模型(evolution model);7.喷泉模型(fountainmodel);8.智能模型(四代技术(4GL));9.混合模型(hybrid model);10.RAD模型;我们要尽量避免原始老旧的开放模型,这样可以避免许许多多开发问题。但是要根据系统的大小,和开发的难度来做决定,有句话说的好杀鸡焉用宰牛刀,太多复杂的模型适合庞大的系统开发,然而用的一般的小系统上反而会增加开发难度。 软件毕业论文:本科毕业设计中FLUENT软件相关课题可行性及问题探讨 【摘要】本文探讨了在本科毕业设计中加入运用FLUENT软件进行工程计算分析的相关课题的可行性。实践证明,学生通过运用FLUENT软件进行工程计算,夯实了理论基础,增强了解决本领域传热和流动问题的能力,提高了学生的学习兴趣和未来的专业竞争力。在做好本文所提及的三点问题(学生和课题的选择、指导过程中的问题)的前提下,在毕业设计中加入FLUENT软件工程计算相关课题不仅可行,还值得在一定范围内推广。 【关键词】FLUENT 计算流体力学 计算传热学 毕业设计 1.引言 本科毕业设计是在本科教学过程的最后阶段进行的总结性的实践教学环节。在毕业设计环节中,学生应当综合运用本科阶段所学的各科知识和技能,对所需解决的课题进行思考、分析、设计和研究,从而全面、系统地完成课题交给的任务。可见,毕业设计是对学生本科阶段学习质量的全面性的检验,也对学生能否顺利拿到毕业证书和学位证书起到直接和决定性的作用。 计算传热学又称数值传热学,是研究用数值方法求解传热问题的一门科学。它可以理解为:根据所需求解的实际问题建立合理的数学模型,利用离散化处理的数值方法,再通过用计算机高级语言编制的程序,以计算机作为工具来求解传热问题的、与工程实践密切结合的一门应用基础科学[1]。而市场占有率高达40%[2]的数值计算软件FLUENT是解决传热领域数值计算问题的较好的通用软件之一[3]。 运用FLUENT等CFD软件,可以在不具备实验条件或暂不需要对研究对象进行实验的情况下,借助计算的方法进行相关工程分析,从而极大地节约人力、物力、财力和时间成本。因此,在本科学习最后的毕业设计阶段,若能让部分学生学习并基本掌握FLUENT软件对本领域问题的计算过程,将会在很大程度上促进学生今后对相关问题的建模和分析等工作。 2.毕业设计指导工作应注意的问题 由于FLUENT软件的专业性,在指导与FLUENT软件工程计算相关课题的时候,应注意以下几个问题: (1)学生的选择 要能较好地掌握FLUENT软件相关计算过程,首先需要具有较为过硬的微积分、流体力学、传热学、计算传热学(也称数值传热学)等相关学科的基础知识。这不仅要求学生较好地理解课堂所讲知识,还要能够灵活运用课内外相关知识。有的学生学习能力和成绩相对较弱,并不具备过硬的知识储备和学习能力;有的学生未来从事的工作与本专业距离较远,或者对相关的数值计算兴趣不大,因此缺乏从事相关课题毕业设计工作的原动力;这些因素都会影响整个毕业设计工作的正常进行。因此,对于与FLUENT软件工程计算相关联的毕业设计课题,并不是所有学生都适合来做。为了有效地开展相关的毕业设计课题,在学生的选择上往往优先推荐让学习相对努力的、有兴趣和求知欲的以及未来将继续深造或从事相关科研工作的学生来进行。 (2)课题的选择 在本科教学阶段,由于受限于书本和教学大纲的安排,教师在对流体力学、传热学等课程的讲授中往往较少涉及数值计算相关知识,书本上只有一章内容与之相关,课堂上一般只传授数值计算的基本概念、简单情况下的离散方法、离散方程的建立等较为浅显的知识,这与FLUENT软件中对相应问题处理方法的深度和难度相去甚远;然而,在毕业设计的短短一学期时间内,要让学生完全掌握相关知识是比较牵强的。因此,在FLUENT软件工程计算相关课题的选择上,应选择相对基础性的、与实践结合紧密的、具有科研应用前景的课题作为毕业设计课题。这样既可保证毕业设计工作的正常开展,也能使学生在软件方面得到基本训练,为后续科研工作以及研究生阶段的学习打下良好的基础。 (3)指导过程中的问题 在毕业设计的指导过程中,笔者发现有部分学生在使用软件进行计算时,较为注重结果的可视化,而恰恰对计算中关键参数的设置、计算方法的选择等关键问题较为忽视。造成该现象的原因可能是,无论在软件中设置怎样的参数、选择怎样的计算方法,总能通过软件的计算得到一个可视化的结果,即使参数设置或计算方法的选择欠妥或有误,只要计算过程没有脱离现实太远,计算结果看上去都有一定的可信度,再加上学生对具体计算过程的“不求甚解”、不仔细推敲,往往易使人误认为该计算过程是正确的。因此,在指导过程中,应对学生使用软件的具体计算过程进行仔细地把关,确保计算过程和结果的正确性。 3.毕业设计算例 算例一:建筑空心砌块传热问题 图1a为所需计算的典型建筑空心砌块的尺寸标注图。该砌块是某典型普通混凝土空心砌块,三排孔结构,每排均由大小相等的两个孔组成,孔厚30mm。热量由室外侧(左侧)传向室内侧(右侧),室外侧为稳态或非稳态热边界条件,室内侧为稳态热边界条件。 图1b为数值计算得到的该砌块传热的某时刻温度分布图。可以看到,温度从左到右大体上呈现由高到低的分布状况。由于空心砌块为非均质构件,砌块材料的热导率与空气层的当量热导率不相等,造成了内部等温线的非均匀分布。 (a)空心砌块结构俯视图(单位:mm) (b)典型砌块温度分布图 图1 空心砌块结构俯视图 算例二:加气混凝土墙体结露问题判断 待计算的房屋的加气混凝土自保温墙体结构类型如图2所示,图中的B05表示型号为B05的加气混凝土砌块。计算中,加气混凝土砌块可以认为是热均质结构,这样导热系数相对较高的混凝土柱或梁便成为了结构体系中的热桥。由图3、图4可以看到,加气混凝土自保温墙体内表面温度最低点均发生在热桥部位室内表面宽度的中心处或阴角处。将该处的温度与当地室内空气的露点温度相比较,既可判断是否会产生结露现象。 4.总结 利用FLUENT软件对实际工程问题进行数值计算,大大节约了经济开支和时间成本,也为学生对本领域的传热和流动问题的解决提供了有效手段,夯实了学生的理论基础,增强了其解决问题的能力。通过与从事相关毕业设计课题的学生的交流得知,学习FLUENT软件的工程计算对学生更好地掌握相关物理过程起到了很好的帮助作用,拓宽了学生的视野,也提高了学生对相关问题的兴趣,有助于提高他们的专业竞争力。由于兴趣的作用,采用FLUENT软件进行工程计算的学生的毕业设计得分总体较进行其它课题的学生的得分高约15%。由此可见,在做好本文所提及的三点问题(学生和课题的选择、指导过程中的问题)的前提下,在毕业设计中加入FLUENT软件工程计算相关课题不仅可行,还值得在一定范围内推广。 软件毕业论文:“卓越计划”软件工程本科毕业生的跟踪分析 摘 要: 为应对毕业生就业难与软件企业人才招聘难的两难局面,对我院按照“卓越工程师培养计划”培养的第一批本科应届生展开了基于电子问卷的跟踪调查。通过分析学生就业情况及其所在单位需求情况,以及毕业生的就业反馈,讨论研究了现有培养方案、教学体系和课程改革存在的问题与不足,以期为后续进一步深入实施“卓越工程师培养计划”提供帮助。 关键词: 毕业生跟踪调查; 卓越工程师培养计划; 软件工程 0 引言 从20世纪90年代开始,我国的高等教育飞速发展,本科毕业生数量也迅速增加,软件类人才培养也逐渐从精英教育走向了大众化阶段。与此同时,毕业生就业难与软件企业人才短缺的矛盾逐渐突显。一方面,毕业生的就业形势相当严峻,2013年更被称为“最难就业年”,就业人数将近700万,其中软件类(含计算机类)毕业生约占了23%[1];另一方面,用人单位难以招到适应不断变化市场需求的高水平人才,毕业生质量与企业、社会期望值之间出现了较大差距。 解决上述矛盾的重要途径之一是跟踪调查学生走向社会的工作表现和持续发展状况,调整、改革高校教学体系及模式。近年来,国内高等院校逐渐重视开展毕业生的跟踪调查与反馈工作。通过了解毕业生的就业情况、工作表现、对学校学习经历评价及招聘企业人才需求情况等信息,反思、完善和改革人才培养体系、培养方案、教学模式以及就业指导工作模式[2]。本文以杭州电子科技大学软件工程学院为例,通过对2013届按照卓越工程师培养计划培养的50余名毕业生进行跟踪调查所获得的数据信息,结合本校实际,反思卓越工程师人才培养的可改进之处,为制定科学、高效的卓越工程师培养策略奠定基础,从而更好地为培养符合市场需要的高层次软件人才提供服务。 1 毕业生跟踪调查对卓越工程师培养的重要性 “卓越工程师教育培养计划”(简称“卓越计划”)2010年由教育部联合相关部门和行业协会提出,要求各高校与行业企业联合培养工程技术人才,强化培养学生的工程实践能力、工程设计能力和工程创新能力。该计划旨在培养造就一大批创新能力强、适应经济社会发展需要的高质量各类型工程技术人才,为国家走新型工业化发展道路、建设创新型国家和人才强国战略服务,对促进高等教育面向社会需求培养人才、全面提高工程教育人才培养质量具有十分重要的示范和引导作用。中国成功加入华盛顿协议组织也有力地证明了这一点。 高校作为落实“卓越计划”的主体,需认真领会和深刻理解卓越计划的指导思想、主要目标、总体思路和基本原则,更重要的是需结合自身实际条件和优势,制定“卓越工程师后备人才”培养的具体要求和措施,细化培养目标和培养标准,积极开展课程体系、教学方法、教学内容改革[3]。目前参与实施“卓越工程师计划”的各大高校基本上都提出了符合本校办学定位的专业培养方案的总体思路,在实现培养目标和培养标准的过程中融合专业培养方案的制定,完善、强化学生工程实践能力的培养,在满足“累计1年时间在企业学习”的硬性要求同时制定灵活的培养模式[4]。譬如,清华大学展开了以能力培养为导向的课程体系和教学内容改革;我校“信息安全”专业对原有的专业基础课程和专业核心课进行了重点整合,将原有课程整合缩减至5门,另增开课程4门,总学时数由384学时调整至192学时;上海工程技术大学的本科采取了“学校培养+校企交叉+校企双指导”的三阶段培养方案。 衡量上述各种具体培养要求、措施、目标、标准以及改革内容是否成功,有效的核心标志之一就是学生就业情况及其后期发展情况。毕业生的就业率、月收入和工作满意度等信息可以从一定程度上揭示大学生的综合能力水平和未来发展潜力。从某种意义来说,学生是高校推向市场的“拳头产品”,用人单位是这些产品的“用户”。“产品”质量是否有保障,“用户”才有最深刻的体会,才最有发言权。只有不断听取用户意见,不断改进,才能确保“产品”在市场上的竞争力。因此,做好学生就业及其后期发展情况的跟踪调查,才能推动高校不断完善卓越计划的落实,纠正试行阶段暴露出来的各种问题。 2 软件工程专业卓越工程师培养计划――以杭州电子科技大学为例 杭州电子科技大学从1980年开始培养软件工程本科人才,2003年正式设立软件工程本科专业。目前,该专业为国家特色专业、浙江省重点专业、浙江省高校人才培养模式创新实验区。为了进一步促进软件工程专业发展,全面提升学生工程素质,即工程实践能力、工程设计能力和工程创新能力,2011年杭州电子科技大学率先在软件工程学院开始试点软件工程专业的“卓越工程师人才培养计划”。要求学生在校内经过软件工程通用工程基础技术知识和核心技术知识的学习并具备相关能力后,进入企业进行高级工程技术知识及技能学习和培训,并参加企业实际软件项目的开发,培养方案示意图如图1所示。具体内容介绍如下。 ⑴ 改革人才培养模式 对进入“卓越工程师培养计划”学习的学生,将遵照贯穿8个级别4种工程应用能力培养要求的工程型人才培养方案(如图1所示)。学生在校内2年完成前2种工程应用能力的培养后,按“卓越工程师培养计划”学习1年完成第3种工程应用能力的培养,最后进入企业完成第4种能力的培养。可以看出,卓越工程师培养计划主要承担“高级工程能力”和“工程实施能力”的培养,主要通过企业宣讲课程和就业规划课程来帮助学生确定今后学习和发展的方向,进而安排学生参与企业实际软件项目完成专业实践和毕业设计。 ⑵ 加强专业师资建设 软件人才是工程实用型,需要教师既有一定的学术造诣,又具有大量的项目实践经验或企业工作经验。因此,我校进一步加强“双师型”专业教师队伍建设,在选派青年教师到国内外IT企业顶岗实践和轮训的同时,积极引进具有丰富实践经验的专业技术人员到校担任兼职教师或传授真实案例和实际工程经验,已逐步建立并完善企业教师的师资库并鼓励相关企业承担学校专业课程及实训工作。 ⑶ 深化改革课程体系 我校软件专业课程改革的总体思路是:扎实专业基础,突出工程实践能力,复合知识领域结构;强化专业核心基础课程和高级工程能力的培养,突出企业实战能力。在当前软件工程专业培养方案的基础之上,着重体现工程教学中的CDIO模式,聘请行业专家及资深工程师讲座;引入“MOOC”等先进教学方式,鼓励开展研究式教学、讨论式教学、以问题为导向的PBL教学、CDIO式教学及团队模式教学等多种教学方式[5]。 ⑷ 采用“校企深度合作、工学结合”运行模式 积极探索校企深度合作的空间,着重于人才培养、科研开发等多方位的共赢合作模式。以培养软件人才为目标,学校优先选择占据行业领导地位的公司作为合作方(如华为、塔塔等),吸收资深工程师参与指导制定专业发展规划、专业培养目标与专业人才培养方案,甚至直接作为教学师资参与专业技能教学;同时将企业待解决实际项目转化为“实验班”的课程设计题目或综合设计题目。企业接收完成专业课程学习以及基本技能培训的学生直接顶岗实习。 3 “卓越计划”毕业生的跟踪分析 3.1 调查对象和方法 为全面、准确、及时地分析了解“卓越工程师培养计划”在高校的落实结果,了解用人单位对软件工程专业改革的满意度以及深化教学改革的意见与建议,为其他同类学校准确定位、深化改革与创新软件类人才培养提供参考,我们对杭州电子科技大学软件工程学院实施“卓越工程师培养计划”的结果进行跟踪调查。调查对象是该学院第一批按照上述计划培养的毕业生,共发出52份问卷,回收有效问卷50份,回收率为96%。本次调查主要以问卷为主,辅之以面谈、Email咨询等方式。 3.2 调查数据分析 我们从学生就业单位信息、就业单位需求、毕业生个人反馈三方面来进行梳理分析现有教学方案、培养方案等卓越计划改革内容的不足。 ⑴ 学生就业单位 此次调查的50名毕业生,44人就职于主营软件开发销售、系统集成的软件类公司,4人就职于在线网络社交平台或电子商务平台的技术部门,2人服务于保险业。也就是说,96%的毕业生在毕业后会继续从事软件开发维护相关的工作。这从一定程度上证明了按照卓越工程师计划拟定的现有培养方案和课程安排在培养学生兴趣、增强学生专业技能方面发挥了较好的作用。此外,在毕业生就职的30家软件类公司中,14家单位的员工少于50人,13家单位的员工数在50~300之间,3家单位的人数超过了300人。可以看出,毕业生所就职的大部分是中小型软件公司。这也符合软件行业特点。除了微软、IBM、华为等极少数的龙头企业,大部分软件公司的规模并不庞大。我们的调查结果反馈的另外一个重要信息是,大部分软件公司对招聘对象的学历和工作经验的要求并不高,求职者具备大学本科学历即可,并不硬性需要相关的职业证书。因此,在未来的教学过程中,应确保学生顺利完成大学基础课程,而并不需要强调或引导学生参加太多的职业证书考试。 ⑵ 就业单位需求 从50份有效问卷返回的结果来看,目前用人单位技术最注重也相对急需的技术(能)排在前三位的分别是:JAVA语言、办公软件应用和ORACLE数据库应用,如图2所示。除此之外,动态网站开发以及企业级网络软件应用与维护也是各单位相对比较看重的毕业生技能,问卷勾选的份数分别达到了16和14。不难看出,若软件工程专业本科生在校期间尽可能地熟练掌握日常的办公软件应用并掌握用Java等开发语言构建、推广、维护动态Web网站的基本技术,他们在就业时将更占优势。 我们在教学过程中经常碰到以下的问题:本科生在大三或大四阶段仍不能熟练使用Excel绘制基本图形或完成基本统计功能,也不会使用Outlook、Foxmail等邮件客户端工具收发Email;他们课程提交的项目作品虽然能够实现系统的基本功能,但往往不够规范、难以维护和二次开发。学生暴露出来的这些问题远离用人单位的需求,也直接影响了学生自身的就业和后续发展。因此,在后期完善“卓越工程师”的培养方案和课程改革时,针对这些问题进一步强化培养学生相关技术(能)就变得极为重要。 ⑶ 现有培养计划及改革反馈 如上所述,“卓越人才计划”强调对学生实践能力的培养,强化学生工程实践能力,注重提升工程教育人才的培养质量。本学院在日常教学过程中着重学生动手实践能力的培养,也通过与华为、塔塔、网新等众多企业合作,安排学生在企业实习,强化学生实际实践能力。如图3所示,根据求职期间及就业之后的“第一手”经验,36%的毕业生认为学校还需加强基础理论的学习,30%的毕业生认为需加强实践动手能力的培养,25%的毕业生认为需加强专业知识的学习,只有个别同学认为需增强人文知识学习和科研能力培养。大部分毕业生在“信息反馈”一栏中明确提出“实际动手能力的培养是学校应该改进的重中之重”。这与国家“卓越人才计划”的培养思路是基本吻合的,也表明,我们还需在未来的教学培养中深化培养方案和课程改革,更突出 “卓越人才计划”的实践能力培养要求。如某位毕业生认为虽然目前学校社团较多,但和专业及就业挂钩的社团很少,建议多组建一些专业性社团,营造一个良好的学习氛围,并积极鼓励学生参加各类比赛,或开展专业知识类的勤工助学项目,让学生在项目实践中提升各方面的素质。 此外,根据50位毕业生的自身体会,软件类公司更为看重的学生素质是其持续学习的能力,其次是独立解决问题的能力,而日常较为注重的学习成绩恰恰反而是排在最后一位,如图4所示。这也是软件工程专业本身所决定的。一方面,软件、计算机技术飞速发展,日益更新,在校期间的课程内容不能完全跟上技术的潮流,需要学生自己学会跟踪学习新技术的能力;另一方面,实际软件问题千奇百怪,层出不穷,没有一劳永逸的解决方案,更需要学生具备一定解决问题的能力。 3.3 启示 此次的跟踪结果表明,我院现有的“卓越人才培养计划”及其具体方案措施在加强学生专业兴趣、增强学生专业能力起到了较好的作用,能为用人单位提供了具备基本职业素养和能力的软件人才。在未来工作中还需进一步强调和注意的有以下几点。 ⑴ 必需确保学生顺利完成大学阶段所有课程并获得学历、学位证书,这是学生入职的必要条件。 ⑵ 必须加强培养学生办公软件的使用技能,才能更好地提高学生专业素质,满足企业规范化人才需要。 ⑶ 争取为学生创造更多参与实际项目的机会,加强培养学生专业实践能力。这也是“卓越工程师培养计划”的重心所在。 ⑷ 进一步加强学生跟踪学习的能力和独立解决问题的能力,使他们适应软件快速更新升级,以及实际开发应用过程中问题不断的特点。 4 结束语 毕业生跟踪调查对做好软件工程人才培养,尤其是“卓越工程师培养计划”在软件工程专业的落实具有重大意义。本文采用实证研究的方法,从学生就职单位性质、单位需求与学生反馈三方面对现有“卓越计划”及其具体方案进行讨论分析,根据毕业生的切身体会挖掘现有软件工程专业“卓越工程师培养计划”存在的问题和不足,以期为更好地落实“卓越工程师培养计划”、培养卓越软件工程师提供科学有效的对策。 软件毕业论文:高职院校软件专业毕业设计 问题分析与改进建议 摘 要:高职院校毕业设计中存在着一些问题,例如,课题质量不高、学生在校外实习、课题与就业方向不符等。这些问题的产生是因为学生不重视毕业设计,进而导致设计质量下滑。针对毕业设计中出现的问题,笔者以高校管理者与指导教师的视角,对毕业设计制、学生及指导教师进行了深入调研,并且提出了改进方法。 关键词:高职院校 毕业设计 不重视 改进 1 前言 毕业设计是学生综合运用所学知识解决实际问题的环节,其质量直接关系到本专业人才培养水平。大多数高职院校的毕业设计放在最后一个学期,导师基本由校内教师担任。但最后一年学生把重心放到对自己未来更有影响的就业上,或是参加专升本寻求深造机会,校内导师被迫远程指导,缺乏监督力度。同时,设计课题内涵良莠不齐,部分课题不符合社会需求,让学生感觉实用性不强,学生不重视,进而质量下滑,降低了教学水平。因此,我们有必要通过调研发现问题、分析问题,进而解决问题。 2 现状调查 对重庆5所高职院校部分教师及所带学生进行了问卷调查。样本中包含200名毕业生、50名指导教师。数据如下: 3 调研问题分析 影响质量的主要因素有学生不重视,学生不能在校设计。需要分析学生为什么会不重视,并剖析其不能在校设计的原因。 3.1 课题内涵与需求有偏差 如表1所示,课题与学生工作方向是否吻合,以及是否一志愿选题,对成绩影响较大。调研中发现:部分学生毕业后从事Java开发,而选题时选了C#开发(选题先于实习);部分学生毕业后从事非IT工作,从而对所选课题丧失兴趣;部分学生单位实习后技能提升,回过头发现课题内涵与商业开发存在差距。此外,部分学生未能选中一志愿课题,调配课题与期望不一致,所以就抱着对付一下的心态。综上,课题本身质量是影响学生最后设计成绩的重要因素。 3.2 设计时间安排不合理 表1及表2的数据充分证明,不合理的时间安排,是导致质量下滑的重要原因。最后一个学期是找工作的关键期,在就业压力下学生忙于参加招聘会和面试。找到工作后,用人单位往往还要求到岗实习。同时,最后一学期也是专升本的关键期,寻求深造的学生亦会忙于复习参考;另有学生为提高竞争力,会选择参加推荐工作的技能培训;这都是造成学生不重视以及不能在校实习的重要原因。 3.3 自拟课题质量偏低 表3数据分证明,对外承接工程,或教师科研需要课题,具有充分驱动力可让教师在课题建设中投入更多精力,进而提高了课题与社会生产的适应性,提升课题的科学性和实践性。自拟课题往往是为了毕业设计而设定的课题,教师缺乏动力对课题进行改进,易与社会脱节。表3的统计数据也证明了选择自拟题目的学生,其优良成绩的比率显著低于其他学生。 3.4 其他因素 沟通不畅:师生双方无法面对面地沟通,存在着教师因工作忙碌疏于督促,或学生缺乏主动性的情况。(1)教师经验缺乏,高校中具有丰富项目经验的教师本来就比较少,近年又引入了大批年轻教师,这些教师毕业后直接从事教学,更缺乏项目开发经验,在指导中明显表现出不足。(2)优秀教师任务重,优秀指导教师既要承担毕业设计指导工作,又要进行繁重的教学任务,容易顾此失彼。 4 问题整改建议 4.1 加强课题库建设 课题分为对外承接工程、科研需要、自拟等几个类别。对自拟课题,须经学校专家组评审及指导,以增强与生产实践的联动性。增大来自对外承接工程及科研需要类课题,这类课题具有较强实践性,教师出于自身利益,也会对课题投入更多精力,对学生的要求也会严格,这必然提高设计质量。另外,考虑到学生未来就业不同,宜对课题难度适当分档。对不同档次的课题,设置起评成绩;有志于投身IT行业的,可选中高难度;其他学生可针对性地选择适合自己的课题。 4.2 改进设计模式,消除时间冲突 在设置课题时,要确定本专业所针对的主要就业岗位,以及岗位所需技能,再结合实际选择对应实训项目,作为本专业学生大学期间不同实践课程教学项目。学生在专业课教师的系统指导下,逐渐完成毕业设计的雏形,在最后一个学期里,再根据学生就业实际情况,予以整合,就成为了一篇具有一定质量的毕业设计。如此,不仅降低了最后一个学期的工作压力,还提升了学生在校期间教学质量。 4.3 加强指导教师能力建设 在毕业设计中,教师要加强对学生的监督与管理,可采用如定期开见面会、网上探讨等方式,学生将设计中遇到的问题、取得的成果等汇报给教师以便教师对学生情况进行分析指导。组织教师参加校内外专业培训,提高教师理论水平和实践能力。招聘教师时,倾向于在企业从事过一线工作、既有学历又有工作经验的人员,更好地将学校的理论知识与企业所需要的专业技能相结合。 5 总结与展望 毕业设计是十分重要的环节,应注重课题的针对性与适用性,使毕业设计内容与学生毕业后所从事的技术岗位相一致。同时,我们也需要加强毕业设计的机制建设,让设计贯穿整个大学教育,减少最后一学期压力。注重对教师的培养,提升指导技巧和技能。只有这样才能培养出符合社会发展、受用人单位欢迎的人才。 软件毕业论文:应用型本科软件专业毕业设计(论文) 质量保证体系的研究 [摘要]毕业设计是本科生培养中最重要的实践教学环节。本文针对“卓越工程师培养计划”中工程和创新的培养目标,结合“卓越计划”的“3+1”的“1”的实施,对毕业设计进行改革,通过2级毕业设计的实践,毕业设计的改革效果较好。 [关键词]毕业设计质量保证体系卓越工程师 一、前言 本科院校在对学生整个教育教学计划中,应用性本科软件专业毕业设计(论文)是学生大学生活的总结,也是在实践教育方面的最后一个环节。 目前,本科毕业设计中大学生对自己的毕业设计能够自主把握的空间十分有限,设计主体部分严重脱离工程实际情况,依靠以往经验、书本知识、网络信息等方式获得的信息量占据了信息总量的大部分,这不仅仅是因为学生或者导师愿意去投机取巧,也跟毕业设计活动经费的短缺和时间的不充足有着直接关系。纵观高校的工程教师队伍,他们自身的实践经验也很难保证做到将现实生活的实际问题引用到本科毕业设计中并展开工作。这就产生了一种很不好的现象,毕业设计的题目往往都是重复使用多次的,好一点的可能也只是简单的变化。本科毕业设计对于学生能力的培养和综合素质的提高帮助不大,在毕业后的工作实践中,学生的创新工程能力单薄的缺陷就会凸显出来,没有办法满足现代工业发展对人才的需求。高校的这种与社会需求严重脱节的现象必须要尽快解决,校内教育与科研、社会实践要在整个高校学习教育中相结合展开进行,才能满足社会新的需求。 二、卓越视野下软件工程专业毕业设计(论文)质量保证体系的构建 (一)加强校外实习基地的建设 卓越工程师的“3+1”培养方案中,“1”年的实践环节完成的好坏,很大程度取决于实习基地的建设。为了卓越工程的顺利设施,计算机学院已经与企业建立了广泛的联系,目前已经建成的实习基地有:塔塔信息技术(上海)有限公司、上海启明软件股份有限公司、上海京颐信息科技有限公司和上海文思信息技术有限公司;上海屹为信息技术有限公司;谷儒(上海)网络技术有限公司;曼恒蔚图软件技术有限公司;用友软件公司等。这些实习基地的建设,为毕业设计的课题来自生产第一线,提供了强有力的保证。 (二)建设高水平的“双师型”的毕业设计指导队伍 我们采取两种模式共同进行:一是坚持教师队伍“专任和非专任”结合。专任教师主要是以长期在工程现场实践或者有较好科研成果的教师组成;非专任教师主要是从合作单位企业聘任高水平工程师来校做兼职教师。二是加强“双师型”师资队伍建设。双师即“教师”、“工程师”,首先要加强对一线教师的工程能力素养和工程实践能力的培养,以满足在毕业设计指导过程中对教师综合能力的需求。另一方面,我们在聘请教师方面有侧重点,优先录取有企业工作经验的兼职教师,来提升有工程实践经历的教师在整个专业课教师中的比例。为了最大化地为毕业设计服务,学校还从企业聘请工程师或者让一线教师到企业参加工程实践活动等手段,致力于打造为毕业设计服务的精锐之师。 (三)严把选题关 毕业设计的题目,一般来自企业。由企业指导教师提出,经企业指导教师和学校指导教师共同商量后确定。选题要结合学生在企业实习的项目,注重实践性和创新能力的培养,同时题目应难易适中,切实可行,工作量适宜。 (四)注重教师的指导过程 选题完成后,企业指导教师下达任务书、指导学生确定毕业设计方案。在学生做毕业设计的过程中,企业教师负责具体的技术指导,学校指导教师负责时间节点的把握,协助企业教师完成对学生的共同指导。 (五)建立有效的沟通联系制度 由于本科生初次接触整体性和设计性较强的工作,肯定会遇到这样那样的问题。这时,建立有效的沟通制度,发挥指导教师的引导作用就显得非常重要。学生把毕业设计中遇到的问题,向指导教师提出,由企业指导教师和学校指导教师共同商量解决的办法。在毕业设计的过程中,应建立指导教师与学生讨论的例会制度,坚持每周师生沟通一次。每位学生总结前一阶段的工作,提出毕业设计中遇到的问题,指导教师要进行引导和总结,鼓励学生发挥主观能动性和创造力。这样,指导教师可以及时掌握学生毕业设计的进展情况。 (六)做好毕业设计的过程检查与中期检查 对本科生的毕业设计工作的中期检查,要坚持中前期和中后期两次检查。检查的形式是学生以PPT方式汇报自己目前毕业设计的进展情况,并回答老师的提问。对中期检查发现的问题,企业和学校的指导教师共同商量解决的方法。 (七)毕业设计(论文)答辩 答辩的地点一般设置在学生的实习企业,答辩委员会由企业指导老师和学校指导教师共同组成。每位学生的毕业设计答辩采用PPT形式进行汇报,对一些条件许可的企业,要有毕业设计的演示。 (八)以过程管理思想为指导,构建“方法-时间-层次”三维毕业设计质量监控体系 通过健全机构、合理资源配置、完善工作机制、强化毕业设计质量监控体系的毕业设计运行监控、毕业设计指导决策、毕业设计质量考核评价、毕业设计信息反馈功能,见图1。 三、结语 软件专业是一门实践性很强的专业。要想在短时间内较高质量地完成毕业设计,选题是一个很重要的环节。为了提高学生的做毕业设计的兴趣,高质量完成毕业设计,课题选择来自一线企业,显得非常重要。同时,建立一个毕业设计的保障体系,使得毕业设计在进行的过程中,质量能够得到保证。经过两届的毕业设计实践探索,学生做来自一线企业的毕业设计题目的兴趣很大,而且毕业设计的质量得到很大的提高。 软件毕业论文:《软件工程》思想在毕业设计(论文)中的应用 【摘要】主要分析了毕业设计(论文)的现状,介绍了软件生命周期的各个阶段与毕业设计(论文)各阶段的对应关系、软件生命周期各阶段应完成的任务以及在毕业设计(论文)中应注意的问题。 【关键词】软件工程 毕业设计(论文) 实践教学 一、引言 毕业设计(论文)(以下简称毕业设计)是计算机及相关专业教学计划中的一个重要环节,是培养学生对所学基本理论及基本操作技能综合运用的训练过程,是提高学生分析和解决问题能力的重要实践环节,是实现理论与实践相结合的重要途径,是对教育教学质量的全面检查。目前,计算机及相关专业的毕业设计质量正在逐年下降:学生急于找工作或考研,毕业设计得不到应有的重视;需求分析不到位,设计成果不符合实际需求;软件开发流程混乱;缺乏文档写作训练,等等。 针对上述问题,笔者认为,除了应当从管理角度严格进行过程监控外,还应当使学生通过《软件工程》课程的学习,提高毕业设计的质量。 二、软件生命周期与毕业设计过程的对应关系 软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程称为软件的生命周期。软件生命周期可以划分成若干个时期与阶段,它与毕业设计各个环节的对应关系如图1所示。 三、软件生存周期各阶段应完成的任务 1.可行性研究与计划阶段、需求分析阶段 可行性研究与计划阶段主要完成问题的定义、可行性论证以及初步计划的制定;需求分析阶段主要完成需求调查,进行功能、性能与环境约束分析;编制软件需求规格说明、制定软件系统的确认测试准则和用户手册概要。这两个阶段对应于毕业设计的课题论证、选题、调研、查资料,通过对设计题目的深刻理解,完成开题报告的撰写工作。 2.概要设计阶段和详细设计阶段 概要设计阶段主要完成软件系统总体结构的建立、定义功能模块的接口、设计全局数据库和数据结构、规定设计约束、编制概要设计文档等工作;详细设计阶段主要完成模块详细设计及编制模块的详细规格说明工作。包括模块的详细功能、算法、数据结构和模块间的接口信息等设计,拟定模块测试方案;把模块详细设计的结果汇总,形成模块详细规格说明书。这两个阶段对应于毕业设计的系统设计阶段。 3.实现阶段与组装测试阶段 实现阶段主要完成编码及单元测试工作。根据模块详细规格说明书,将详细设计转化为程序代码、对模块程序进行测试,验证模块功能及接口与详细设计文档的一致性,并形成单元测试报告;组装测试阶段主要完成模块程序组装与测试及组装测试报告的编写。 4.确认测试阶段 该阶段主要完成软件系统测试、确认测试文档编制及软件评审工作。根据软件需求规格说明定义的全部功能和性能要求及软件确认测试准则对软件系统进行总测试;向用户提供以确认测试报告为主的有关文档,包括系统操作手册、源程序清单和项目开发总结报告等;由专家、用户、软件开发人员组成的软件评审小组对软件确认报告、测试结果和软件进行评审,并将得到确认的软件产品交付用户使用。这个阶段主要对应于毕业设计(论文)中的论文评审、结题验收及毕业设计的答辨准备阶段。 5.软件运行与维护阶段 主要进入软件的使用阶段,并完成软件的维护工作。它主要对应于毕业设计中的答辩阶段。 四、毕业设计应注意的几个问题 1.摘要 摘要是对文章主要内容的摘录,要求精、短、完整。以几十字至三百字左右为宜。摘要应具有独立性和自明性,从摘要中即应获得必要的信息;摘要中只能使用第三人称;要客观如实地反应原文的内容,要着重反映论文的最新内容和作者特别强调的观点;要求结构严谨、语义确切、表述简明,一般不分段落、不进行自我评价。 2.关键词 关键词主要用于论文检索,它是从论文的题名、摘要和正文中选出的,是对表述论文的中心内容有实质意义的词汇,关键词一般以3~5个为宜。 3.结论 结论写作的内容应主要考虑本文研究结果是什么?研究结果说明了什么?对前人有关的看法作了哪些修正、补充、发展、证实或否定?本文研究的不足之处或遗留未予解决的问题以及对解决这些问题的可能的关键点和方向等。结论应该准确、完整、明确、精练。 4.需求分析 在毕业设计中,学生往往不能对所做题目进行充分的调研,需求不明确,随意想象的成分较多。特别是在数据表的建立上,大部分同学随意设置字段的类型,而字段长度基本上采用默认置。而在实际项目开发中,数据项的设置应主要注意以用户的需求和满足系统要求为准,而不应设计冗余的字段;数据的类型要依据实际需求,当某些字段可以是选择某几种类型之一,应考虑哪一种更有利于本系统或哪种更易于用户操作和维护。 5.详细设计 许多同学把详细设计阶段的任务理解为代码实现,因此,在概要设计之后就着手进行代码的编写而忽略了算法的表达及测试用例的编写环节,由此造成的结果是随意编程,大量的时间浪费在程序的修改和调试上。 6.软件测试 测试做得不够全面,大部分同学只选择了有效的测试用例,而没有进行无效的测试用例的设计,因此所做的软件BUG较多。 7.团队合作 在毕业设计中,应有意识地锻炼学生们的团队协作精神,因此,在布置毕业设计题目时,应尽量选择规模大一点的题目,然后由4~5名同学共同协作,每人完成一个子题目。这样,可以使学生们分析问题和解决问题的能力、沟通和表达能力得到充分锻炼,为今后的工作奠定基础。 软件毕业论文:浅谈高职院校集成项目化教学改革提升软件专业毕业生的核心竞争力 摘 要 集成项目化教学是结合我院计算机软件专业教学的实际提出的新的教学改革尝试,将软件专业的核心课程围绕着一个项目进行教学,教学过程中涉及到软件需求分析、数据库设计、软件实现等软件开发过程,切实体现了高等职业教育培养应用、复合型毕业生的办学理念。 关键词 集成项目化 软件专业 核心竞争力 教学改革 职业角色定位 1 当前软件岗位的市场需求、用人单位对毕业生的要求 各个高职院校都开设的有计算机相关专业,其中软件专业基本都会开设。然而随着全国扩招的不断进行,生源却在不断萎缩,曾经火热的计算机相关专业,现在普遍面临着尴尬的境地,一方面是生源的流失,另一方面却是国内软件外包公司对毕业生的不断上升的需求。 通过对软件公司的调研,国内的软件公司基本上有两种接包形式:一种是订单化生产,也就是对方已经做好了需求设计,接包公司按照要求来实现就可以了,使用何种工具、包括检测的工具等等在订单中都已经明确说明,这种多来自日资企业的订单;另一种就是半订单化生产,接包公司有相当的自由度,只有按要求完成相应的功能,至于使用何种软件、如何设计并不明确限定,这种订单多来自欧美的企业。这就意味着软件专业的学生在校期间要对软件的整个开发过程、主流的软件工具有所掌握,才能符合企业的需求。 那么国内的软件公司对用人的具体要求又是如何呢?以武汉某软件公司为例,其2012年7月份对外公布的招聘信息中,对于.net软件工程师的任职要求:(1)相关专业,专科以上学历;(2)具有.NET平台下 2-3年以上开发经验。(3)精通XML、JavaScript、CSS;精通SQL语句;(4)至少能够熟练使用MS-SQL、 Oracle、MySQL中一种主流数据库管理系统;(5)具有良好的沟通能力、快速准确的表达能力、团队精神和协作能力;(6)要求能够快速适应工作压力,具有较强的主动性、责任感;(7)会WCF、WPF、Silverlight技术者优先考虑。 抛开工作经验, 这些要求对于高职类软件专业的毕业生来说,既要具备专业知识能力,又要具有良好的沟通表达以及克服困难的能力。在与武汉某软件合资企业的座谈中,技术部门的负责人指出,软件公司招聘的员工更多强调的是个人的综合素质,在他看来毕业生最多的问题是比较浮躁,容易急功近利,从而造成了个人提升的瓶颈;而对于专业技术能力来说,由于分工协作的不同,每个人只能负责某一小块,对于我们的毕业生来说,是很快就能适应和掌握的。 2 高职院校软件专业教学存在的问题 2.1 教学内容与就业脱节 当前的高职教学大多数还是采用传统的教学方式,按照教学计划讲授课本上的内容,定期安排上机,但是学生对于软件开发的流程并不能完全了解,以软件工程课程为例,如果按照课程的安排,软件开发的流程按照书本的要求去讲解,对于高职院校的学生而言,理论的学习似乎提不起同学们软件学习的兴趣,至于老师强调的某些过程是如何重要,没有开发的环境,学生是体验不到的,这就造成了学习过程中与实际需求的脱节。 2.2 书本上的教学范例已略显陈旧,更新较慢 不可否认,这些范例在学生了解和认识软件开发的过程中起到了较好的作用,但是就课程教学的实践过程而言,学生就会感觉枯燥、学习的动力缺失,与实际项目的开发过程已渐行渐远,终究会被市场所淘汰。 2.3 缺乏完善的教学体系 目前部分高校的软件专业的教学体系还只是停留在纸上,在实际教学过程中,课程与课程之间没有交互,都是各自为政;而某些课程之间又是相互有交集的,又会让学生在学习中感觉到重复、累赘。这样就会导致学生在学习中课程间虽然在体系中联系紧密,但是在实际学习中没有任何交流,最终造成学生所学的知识并不连贯,甚至脱节。 2.4 缺乏对学生个人就业能力和素质的培养 在日常的教学过程中,重讲课、轻动手的情况普遍存在。学生掌握多少能力在某些老师看来并不重要,重要的是会考试就可以了。 3 集成项目化如何提升毕业生的核心竞争力 3.1 何谓教学中的集成项目化? 集成项目化,顾名思义就是将开设的各个课程以项目开发为主线,将项目开发的各个环节落实到独立的各个课程中,从而实现课程之间的案例资源共享和交互。以某高职软件专业教学为例,按照集成项目化的要求,可以将日常的教学过程设计如图1所示。 以下用一个教学项目来详细介绍集成项目化教学的过程。某软件班级以四人作为一个小组,其中一人担任组长,组长的职责是负责项目的整体规划、分工、召开进度小组会议等工作。 在教学中,老师使用公共项目进行教学,由信息系统分析与设计课程确定开发某学院一卡通自助缴费系统。通过教学展开对系统的进度安排和功能模块分析。 由管理信息系统课程对项目的数据库进行设计,分别确定用户信息表、一卡通基本信息表、挂失信息表、充值信息表、宽带缴费信息表、电费缴费信息表等。教师通过课堂理论教学,引导学生同步上机自己进行设计。 由程序设计课程进行系统的设计实施阶段,借助分析的系统功能模块、数据库设计,对系统进行实现。 对学生的项目完成情况,按照如下的方式进行评分,以信息系统分析与设计考试方式为例: (1)考试的成绩构成。根据学生完成需求规格说明书的情况占总成绩的70%,课堂阐述项目功能、提问回答情况以及平时课题成绩占总成绩30%,两项综合为期末成绩。 (2)评分标准。根据小组需求规格说明书完成情况,将学生的成绩分成优秀(90~100)、良好(80~89)、合格(60~79)、不合格(59~0)四个等级。例如优秀的完成情况应该具备如下要求:①需求规格说明书功能介绍规范、详尽;②系统分析设计新颖,有亮点,对现有的系统改进具有较好的指导意义;③整体设计分析全面,具有较好的扩展性;④E-R图、文字描述等准确、具体。同时,课堂阐述项目功能讲解具体、准确、全面;整体设计功能有亮点,新颖独特;回答提问,准确、流畅。 3.2 集成项目化在学生日常教学过程中发挥的积极推动作用 (1)学习的课程目标明确,不再感到迷茫。由于采用了以开发项目为案例的教学模式,与以往照本宣科的教学方式相比,同学们明确知道自己所学的课程在项目开发中所起到的作用,从而避免了课程是学了,但是对于项目开发能够起到什么作用,怎么用,用在哪里等仍然很疑惑的问题。 (2)以项目为导向,课程之间实现了统一项目教学和交互。依据教学计划编写教学项目,以一个教学项目为例,由信息系统分析与设计课程讲解项目的需求分析;由管理信息系统课程进行系统数据库设计;最终由程序设计进行项目实现。 (3)将实际项目引入到课程教学中来。通过校企合作,最大化的将企业中优秀案例引入到日常教学中来,极大地满足了学生的求知欲,尤其是对毕业生而言,能够在离校之前接触到实际的案例对今后即将从事的工作有了一次亲密接触的机会。 (4)整合教学模式,让学生在教学的过程中得到锻炼。用三个学期的时间对课程进行重组,首先在课程的安排上,创造性的将每周的课程集中,如信息系统分析与设计这门课程原先的教学计划是每周四节课,这四节课分为今天两节在教室,另外两节是另一天在机房,这样的安排往往会造成,学生在教室里学到的理论知识到了机房上机的时候已经逐步淡忘,造成课程脱节。现在的安排是将四节课集中到一个上午,统一在机房上课,这样做的最大好处就是让课程最大程度地得到整合,让学生在学习的过程中动手得到锻炼,课程的连贯程度极高,课堂的教学效果很明显。 (5)提升了整体毕业生的核心竞争力。学生通过系统的学习一个实际项目从需求分析到数据库设计,最终通过软件实现。这个过程中,学生需要通过小组组建考验团队协作精神,小组组长的领导力和执行力;在需求分析中掌握发现问题、分析问题的能力,学会与人沟通的能力;在项目实现中掌握软件编程的方法;从而提升整体毕业生的核心竞争力。 4 结束语 集成项目化教学是结合我院计算机软件专业教学的实际提出的新的教学改革尝试,通过整合教育教学资源,最大化地为毕业生服务,切实体现了高等职业教育培养应用、复合型人才的办学理念。 软件毕业论文:软件工程专业本科毕业设计过程管理 摘要:分析软件工程专业本科毕业设计管理中存在的主要问题,针对软件企业对软件工程专业的人才培养要求,提出软件工程专业本科毕业设计过程管理措施,强调通过建立和完善毕业设计的管理制度,加强毕业设计过程的监控;构建完善的毕业设计管理平台,提高本科毕业设计管理水平;改革毕业论文形式,建立毕业设计过程管理评价体系,提高学生工程实践能力。 关键词:软件工程;本科毕业设计;过程管理 软件学院软件工程专业的设立是国家教育部、国家发展计划委员会为满足国家软件产业发展对人才的迫切需求于2001年批准成立的。重庆大学软件学院是国家首批示范性软件学院之一,其人才培养目标是培养“面向应用、遵循标准、适应团队、把握技术、熟知领域、外语优良”的软件工程人才。10年来,软件学院十分重视软件工程专业的工程化教学改革,采取多项政策和措施促进工程型软件实用人才的培养。本科毕业设计是实现高等学校人才培养目标的重要教学环节,是培养学生创新意识和创新能力的重要手段,是理论学习与社会实践相结合的重要体现。因此,对软件工程专业本科毕业设计进行改革,培养具有工程实践能力的软件实用人才具有重要意义。 1 软件企业对软件工程专业培养人才的要求 软件产业的迅速发展对该行业从业人员提出更高要求,不仅要求学生掌握理论知识,还要求学生具备较强的工程实践能力与创新能力。国内计算机相关专业的教学基本上仍使用传统的理工科人才培养模式,注重基础理论知识,缺少对学生工程能力和职业素质的训练,因此培养既有扎实的专业基础知识和较强工程实践能力,又能迅速适应业界环境的高素质创新型软件人才,是软件企业对软件工程专业人才培养的要求。 2 目前本科毕业设计管理中存在的问题 1)毕业设计阶段缺乏全过程的管理与监控。 毕业设计全过程的管理与监控不够规范,缺乏专门的组织机构。毕业设计的一些主要环节疏于检查和监督,因此存在影响毕业设计质量的问题,如选题陈旧、重复率高、与软件产业发展需求不适合等。 教师指导水平有限且精力投入不足,同时没有对教师指导工作的有效绩效考核,使得教师对学生的毕业设计不够重视;某些学生由于有就业压力,便将主要精力放在人才市场和各类招聘会上,没有意识到毕业设计的重要性,最后只能通过拼凑和抄袭完成毕业设计。 2)毕业设计阶段缺乏规范化的指导性文件。 毕业设计工作持续时间长,涉及所有毕业生和教师,如果没有规范化的指导性文件能够让指导教师和学生了解毕业设计工作的意义、目标、计划、流程、论文规范化格式、质量评价标准、成绩考核等具体实施细则,明确自己在该项工作中扮演的角色以及整个毕业设计流程对自身承担工作的质量要求,那么很难提高毕业设计质量。 3)毕业设计文档资料缺乏有效管理。 毕业设计成果是学校的重要知识和信息资源,完善的文档资料管理有助于毕业设计工作的传承和创新。长久以来,毕业设计作品和论文主要采用人工管理。学生答辩后提交资料袋,资料袋中包括毕业设计相关文档和设计作品的刻录光盘,但由于管理人员对毕业设计资料的重视程度不够或人员不够,导致毕业设计资料管理不善,出现查询困难、答辩记录丢失等情况,为以后查阅、成果展示及下届毕业生的论文指导工作带来不便。 3 本科毕业设计管理改革措施 1)成立毕业设计管理小组。 为了加强本科毕业设计工作的组织、管理和监督,软件学院专门成立毕业设计管理小组,小组成员由教学副院长、正副系主任及学生助管组成,负责整个毕业设计过程的管理监督工作,包括从选题、审题、任务书下达到开题、中期检查、答辩、成绩评定、推优的全过程。 2)建立和完善毕业设计的管理制度。 为了提高毕业设计质量,毕业设计管理小组根据软件工程专业特点建立学院的具体工作规范和有效的毕业设计管理模式和监控制度,加强毕业设计制度建设,使得从选题、下达任务书到学生的开题报告,从每周汇报、中期检查到设计文档撰写、论文撰写、论文重复率监测、论文评阅及论文答辩,都有切实可行的实施细则及管理规章制度;构建集中管理与跟踪管理、周报提交、外出请假、抄袭检测、讲座出勤等平时成绩评定标准;完善从平时表现、系统设计实现质量、论文或设计文档质量、答辩水平等多方面衡量的客观、公正的综合成绩评定标准和推优程序。在毕业设计全过程管理中,力求做到有章可循及有据可查。 3)多元化的毕业论文形式。 多元化的毕业论文形式有利于培养大学生创新实践能力。根据软件工程专业特点,软件学院对毕业论文形式进行改革。毕业设计形式包括传统方式和新方式,学生可以选择其中一种方式,具体采用哪种方式则由指导老师负责。 传统方式是指毕业生完成开题报告并翻译一篇相关课题的英文文献,然后对软件系统进行需求分析、设计和编码实现,或者对相应算法进行研究、分析和编码实现,最后完成毕业设计论文。 为了面向软件企业需求,培养学生的软件设计能力,新方式注重提高学生的系统设计文档编写能力。毕业生前期仍然要完成开题报告、英文文献、系统分析设计和编码,最后提交系统设计相关文档。系统设计相关文档由以下文档构成:①项目开发计划;②软件需求说明;③系统设计说明;④数据库设计说明;⑤用户手册;⑥测试分析报告;⑦项目开发总结。根据软件工程学科特点及专业人才培养的要求,结合学校的毕业设计(论文)管理办法和软件设计文档国家标准,软件学院制定了符合专业人才培养目标的设计文档规范。 为提高学生科技论文写作水平和研究报告的演讲能力,软件学院面向软件工程专业所有应届毕业生,在其毕业设计阶段开设8学时的“科技论文写作规范”“研究报告演讲技巧”讲座,强调科技论文写作的规范性和可读性,锻炼学生演讲研究报告的能力。 4)加强毕业设计过程管理和监控。 毕业设计过程管理和监控面向的对象是学生和教师。软件学院毕业学生做毕业设计有不同情况,如有在校外软件公司做毕业设计的,更多的是在校内做毕业设计,因此需要有相应的不同管理模式。为加强学生培养质量和降低指导教师管理难度,软件学院提供集中管理与跟踪管理方式。 集中管理是指学院设置固定机房和机位并安排助教作为管理人员,由指导教师给学生安排机房,由管理人员负责学生的日常考勤,学生需及时向指导老师汇报学习情况,学生若有事必须请假。跟踪管理主要针对在校外进行毕业设计的学生,要求这类学生完成校外毕业设计申请,由管理小组协助指导教师对校外学生进行跟踪,为这些学生提供及时的毕业设计信息服务。这类学生必须每周与学校指导教师联系,以便教师详细了解并掌握学生毕业设计进度。这种具体的制度和规范,对在校内进行毕业设计和赴外进行毕业设计的学生进行了有效监控。 针对指导教师的管理,毕业设计管理小组采用不定期检查和周报提交的方式。毕业设计规范要求每位指导教师每周指导时间不少于2小时,指导教师需要检查学生毕业设计的进度和质量;解答学生提出的问题,进行下一阶段工作部署与指导,保证毕业设计的质量。 不定期检查指毕业设计管理小组根据指导教师在毕业设计系统中登记的指导时间和地点,不定期对教师的指导情况进行检查。周报提交是指学院建立的毕业设计定期报告制度,教师和学生每周均需要将周报提交到系统上,教师主要汇报每周对学生指导情况以及学生毕业设计进度和质量,学生主要汇报每周的毕业设计进度、毕业设计遇到的问题等。毕业设计管理小组每周对周报进行汇总分析并,及时了解毕业设计情况,对学生和教师提出的问题进行统一解答。 5)构建完善的毕业设计管理平台。 充分利用计算机技术,构建完善的毕业设计管理平台,提高毕业设计管理水平,使毕业设计管理更加规范化。软件学院在毕业设计过程中使用的管理系统包括:重庆大学本科毕业设计系统、重庆大学网络教学综合系统、重庆大学软件学院软件工程实践教学平台。 6)建立毕业设计过程管理评价体系。 建立毕业设计过程管理评价体系,要求所有 一学生和指导老师每周都要将周报提交到EOL(重庆大学网络教学综合平台)平台。毕业设计管理小组每周对毕业设计情况进行检查和监督,并将检查情况告知所有指导老师。指导老师每周提交周报次数与毕业设计指导工作量挂钩;学生考勤情况、周报提交情况、平时检查情况会被记入平时成绩,平时成绩不合格将被取消答辩资格。 软件学院强调学生在毕业设计期间一定要进行软件系统设计和实现,毕业答辩包括系统演示、用PPT讲解毕业设计主要工作、答辩教师提问等多环节,答辩老师根据学生工作量、完成质量、论文或设计文档质量、答辩情况进行评分。学生毕业设计的最终成绩由平时成绩、指导教师成绩、交叉评阅成绩和答辩成绩构成,以保证评分的公平性。 7)加强诚信机制建设 为了提高本科毕业设计质量,加强学术道德和学风建设,营造学术诚信氛围,软件学院使用“大学生论文抄袭检测系统”对本科毕业论文进行防抄袭检测。抽检比例为应届毕业论文的50%,抽检名单由毕业论文管理系统随机抽取。另外,各答辩小组推荐的优秀毕业论文为必检对象。 软件学院制定论文抄袭的认定标准(建议文字复制比不超过25%)和处理办法,对有问题的论文,责成指导教师对检测结果予以认定和说明或督促学生修改,取消被认定抄袭论文学生的答辩资格;对各答辩小组推荐的优秀毕业论文进行,不合格的论文取消优秀。 4 结语 培养适应我国软件产业发展的软件工程人才,提高软件工程本科毕业设计质量,毕业设计的改革势在必行。通过2届学生的毕业设计改革证明,建立和完善毕业设计的管理制度,加强毕业设计过程的监控,充分利用毕业设计管理平台,实现多元化的毕业论文形式,建立合理的毕业设计过程管理评价体系,加强诚信机制建设,能极大地促进师生在毕业设计过程中投入热情和精力,提高本科毕业设计管理水平,有效保证毕业设计质量。 软件毕业论文:拓宽软件高职毕业生就业门路的经验和做法 随着国家教育体制的改革,新成长劳动力规模的庞大,高校毕业生就业工作不断取得新进展,高校毕业生的就业成了僧多粥少工作难找的现状,高校毕业生求职前景不容乐观。我校——闽江学院软件学院是以“培养实用技能型软件人才”为目标的高职院校。作为福建省软件职业教育集团的龙头院校,在毕业生就业问题上我们也备感压力,本人通过对自己就职学校毕业生就业工作的分析,就如何应对就业形势的变化,提高高职生的就业竞争力,拓宽毕业生就业门路的经验和做法进行探析。 学院毕业生综合情况分析 软件学院有一个本科专业(专升本)和十个专科专业毕业生,每年毕业生中以大专为主。学院有高职单招、普高、五年专三种性质的学生,从大专生自身劣势讲,学生整体素质普遍不高,这是其就业时一个很大的劣势。主要表现在基本素质不高、学习底子薄、自制能力不强,这也是大专学生最明显的群体特征之一。特别是有相当一部分大专学生习惯差、学习主动性不够,很难适应当今社会的发展。软件学院学生优势就是,我们采用的是双证教学,学生在正常完成学业的同时也完成了相关知名IT企业的认证,在资质和动手实践能力上与同类院系学生相比有一定的优势。因此在开展毕业生就业指导时我们要有别于本科院系,不能拘泥于传统,形成一套有自身院系特色的毕业生就业指导体系。 学院毕业生就业指导工作的措施和经验 1.校企合作搭建学校与企业的共赢平台 学院根据专业教育需求,与微软(中国)公司、北京全美教育技术服务有限公司、思科系统公司、上海微创软件有限公司、戴尔计算机(中国)有限公司等众多国内外知名IT企业合作,开展“订单式”人才培养,实施软件实训计划,改革传统教学模式,着重培养学生的动手能力。在实践教学上,通过产学研相结合的模式,借鉴国内外软件企业在技术、培训等方面的经验,建立了实训工程,通过校内实训和校外顶岗实训,不断提高学生项目分析和研发水平。我们拥有福建省高职教育软件类唯一的省级网络技术实训基地,并在省内同类院校中率先开设了“学生创业园”,由学生团队携带项目入驻园中,按照企业模式进行项目开发。依托学生创业园是专业设置与社会需求零距离配合,教学内容与职业需求零距离贴近、实训教学与就业岗位零距离对接。近年来从学生创业园走出的毕业生就业率几乎达到100%,毕业生就业单位中不乏国内一些知名的IT企业。 2.发挥辅导员作用,帮助毕业生提高择业竞争技能 作为思政工作者,学院每位辅导员都认真对待毕业生就业问题,高度重视毕业生就业工作,对学生的前途负责,对社会的稳定发展负责。辅导员作为学生的良师益友,不仅要帮助学生全面而又充分地了解自己,了解自己在竞争中的优势。还要向学生强调、让学生明白当前就业形势的严峻,鼓励学生“先就业,后择业”。学生就业指导课原则上安排学生思想政治辅导员授课,通过就业指导课,辅导学生掌握适合自身的求职应试方法和技巧以及自身职业定向,在指导过程中用发展的眼光、科学的方法解决毕业生就业中出现的问题。辅导员通过对毕业生的就业指导,帮助学生了解形势、掌握政策、更新观念、调整期望值、增强创新创业意识、提升就业能力和整体素质,促进和帮助毕业生最终实现就业。 3.收集就业信息组织供需双向选择 现代社会是一个信息社会,信息作为一种重要的载体,在丰富社会生活,沟通人际社会关系等方面发挥着越来越重要的作用。我们可以充分使用现有的网络和现代化服务平台,快速便捷的开展就业信息宣传和服务。学院就业指导中心充分利用网上信息资源丰富、时效性强、访问快捷、查询便利等特点,为大学生就业提供快速、高效的信息服务。就业指导中心项目负责老师从林林总总的就业信息中筛选出有效信息,通过学院的学生短信平台及时的给我们的毕业生,使毕业生在择业中赢得主动,增加选择的余地,从容就业。学院还采取“请企业进来和毕业生走出去”的就业指导策略,每年的12月份中旬,定期在校园内举办毕业生校园招聘会,每年的招聘会都能够吸引100多家企业到校开展供需见面、双向选择活动。我们请用人单位到学校进行实地考察,增加用人单位对学院专业设置、知识结构、人才培养情况的了解,从而有利于用人单位挑选使用所需的毕业生。另外,我们还联系企业安排毕业生组团走出去参加用人大单位的面试,如飞毛腿电子公司、网龙公司、中国移动、冠捷电子等企业。对用人单位我们还常常利用学校推荐的方法,减轻企业频繁地参加各层次的供需见面双向选择活动而造成大量的人力、财力和时间的浪费,减少就业信息的重复和毕业生的就业盲目性。从而达到企业招到人,毕业生实现就业的互利局面。此外,学院还积极调动全校力量特别是职能部门、专业老师的力量积极为学生寻找就业岗位,为学生的就业做力所能及之事。 4.加大政策宣传力度鼓励和引导毕业生下基层 通过学院广播台和宣传栏报道毕业生就业与创业的先进典型,形成正确的舆论导向。学院就业指导中心定期召开毕业生就业政策宣讲会,组织毕业班辅导员参加政策学习,引导毕业生认清就业形势,切实转变就业观和择业观。在宣传政策的影响下,越来越多的毕业生响应号召义无返顾地走向农村,走向基层一线兢兢业业地工作,还有的毕业生通过“三支一扶”的政策从事支教、支农(含林业、水利)、支医和扶贫工作。实践证明,大专生在基层还是大有可为,他们在基层照样可以谱写出一曲曲壮美的青春之歌,我们的毕业生通过基层工作,深入了解社会生活,了解基层疾苦,在社会的大熔炉里陶冶情操,磨砺意志,贡献自己的聪明才智,也为自己的人生观、价值观赋予了新的时代内涵。这些政策的落实对提升学院毕业生就业率有着深远的影响。 5.广泛开展创业项目建设 自主创业日益成为大学毕业生就业的一个重要方向。我们充分利用国家的扶持政策和项目,采取灵活多样的形式开展创业教育。如鼓励支持学生自发组建创业社团组织、参加各类创业计划大赛、广告和营销策划大赛等创业竞赛活动。2008年4月,YBC闽江学院服务站正式成立,该服务站以软件学院学生创业园为基地,辐射全校师生,开展了一系列扶持青年就业创业及青年志愿服务活动。服务站每学年举办三到四期的YBC创业培训、淘宝大学培训、定期开展创业大讲堂及青年志愿者活动、大学生创业孵化推荐等。帮助致力于自主创业的毕业生进行资金扶持和技术指导, 引导学生理性择业,优质就业,成功创业。通过这些项目的开展我们学院形成了以“专业培养+团队搭建+项目孵化+能力塑造+创业扶持”为特色的一套较为完整的扶持大学生就业创业实践的服务体系。这一体系得到了广大毕业生的一致好评,拓宽了毕业生的就业门路。 6.弱势群体毕业生的就业措施 弱势群体毕业生在这里我们主要指家庭贫困毕业生和身患残疾或形象有缺陷的毕业生。高校毕业生弱势群体帮扶工作关系到社会和谐、稳定与健康发展,解决他们就业难问题也是全社会的问题。开展弱势群体毕业生就业帮扶上我们通过学院心理咨询中心对弱势群体毕业就业问题心理教育方面入手、引导帮助他们调节心理压力,提高挫折的承受力,提高就业心理素质;帮助他们正确认识自我、了解社会、了解职业对人的心理素质要求,以便选择合适自己的职业。另外,学院就业指导中心主动为弱势群体毕业生联系落实就业实习单位,提供多渠道的招聘信息,搭建用人单位与他们双向选择的平台,积极向企业推荐,专门为弱势群体毕业生开设“就业绿色通道”,帮助他们掌握择业的基本方法和技巧,对于基础薄弱、应用能力较差的学生,学院还组织专业教师给他们“开小灶”,加强辅导,提高他们的综合素质和就业核心竞争力。毕业后对弱势群体毕业生我们还进行跟踪调查,了解他们的就业状况,对未就业弱势群体毕业生实行教师包干制,坚决不让一位弱势群体毕业生待业或失业。 在面对新的就业局势下,学院将就业工作纳入整体工作规划,把毕业生就业摆在当前就业工作的首位。通过自身在就业指导工作上不断的探索和积累,走出了一条符合学院发展的道路。连续几年来,软件学院在同类院校中就业率一直位居前列,毕业生分布各行各业,通过回访,我们了解到用人单位对学院应届毕业生的工作表现满意度达到了90%。学院也将继续深化教育改革,调整人才培养结构,着力提高学生的创新意识和实践能力,提高毕业生就业能力,拓宽就业门路,最终适应当前的就业服务新需要。 (作者单位:闽江学院) 软件毕业论文:做好软件建设是提高理工科毕业论文质量的有效措施 摘要: 针对理工科类专业实践环节多,毕业论文多有硬件要求,而新建地方本科院校各方面存在不足,毕业论文(设计)质量不高的问题,提出有效提高论文质量的快速方法为完善制度,合理选题,做好专业建设和教学改革及现有教师队伍建设和指导模式改革等软件建设,以期对本校和兄弟院校提高理工科毕业论文(设计)质量提供参考。 关键词: 新建地方本科院校;理工科毕业论文(设计);措施;软环境 1新建地方本科院校的特点 新建地方本科院校多为专升本的院校[1],其基本上本专科教育并存,多数以专科教育为主,定位是培养大量下得去、 留得住、 用得上,富有实干精神和开拓能力的高级应用型人才。它通过升本的机遇大量引进优秀人才,加强实验室建设,使学校科研工作得以快速发展。其功能和以往相比,除了教学以外,加大了科研和社会服务功能,即立足于地方和区域经济发展,在为地方培养人才的同时,利用自身在科研上的优势,通过参与社会经济技术活动,推动科技进步,促进经济发展[2]。随着地方经济的快速发展和扩张,它们已成为中小型企业发展的人才库和技术革新的思想库[3]。 2理工科毕业论文(设计)存在的问题 本科毕业论文工作是大学本科教学计划中的重要实践环节,是培养学生综合运用所学基础知识和基本技能进行科研工作的初步训练,是培养和提高学生分析和解决问题的能力,实现教学、科研和生产实践相结合的重要途径,是本科生毕业和授予学士学位的必要条件[4]。而理工科类专业主要培养科学型、技术型和应用型人才,其实践环节多,毕业论文多有硬件要求。新建本科院校因地理位置的制约,在生源质量、经验交流等方面处于劣势,学生综合素质偏低。再加上历史原因,和老牌本科院校相比难免存在诸多不足,主要体现在教学条件有限、师资力量缺乏、学生重视不够和管理制度不健全,教学计划不完善,就业与考研复试冲击,学生普遍存在论文基本攻薄弱等因素[5-8],这些不仅制约着新建本科院校的发展,而且还影响着人才培养的质量,最直接的影响就是毕业论文(设计)质量不高。 3提高毕业论文的措施 硬件的改善是一个长期而复杂的过程,而要解决当前的困难,更有效的方法是做好软件建设。 3.1 加强动员,完善制度,提高学生的认识和论文效率加强动员,提高学生的认识。让学生知道撰写毕业论文是人才培养中十分重要的环节,是本科阶段必须完成的一门必修课,是与毕业直接关联,获得学位、求职或继续深造的先决条件;让他们明确撰写论文不是一蹴而就的事情,是一个人才培养过程,是科研能力、理论联系实际能力、文献资料查阅能力等的形成和提高过程。学校和系部统一思想,对不合格的论文决不手软,只有确定了明确的标准并能够得到严格的执行,才能够使学生打消侥幸心理,有压力去完成。学生重视,基本功扎实,可以提高实验(设计)数据的准确性,进而提高论文写作质量,减轻老师指导的难度。 3.2 通过合适的选题来弥补硬件的不足优化选题是提高毕业论文质量的重要前提和基础。新建地方本科院校要提高毕业论文质量除了在选题方面严把质量关,做到难易适宜外,还可以通过合适的选题来弥补硬件的不足。 3.2.1 与地方企业联合,利用企业的经济优势共同研究和开发科研课题,为学生毕业论文提供素材。论文(设计)命题一直或部分时间到科研合作单位、实习单位或有工作意向的单位进行,完成后由学校进行考核。这种方式能够让学生自行在企业中得到锻炼,寻找解决实际问题的方法和途径,避免从书本到书本的纸上谈兵,让学生在社会的大课堂中通过毕业论文的训练得到锻炼,学到实际本领,提高创新能力,同时也解决学生在就业和学习方面的矛盾冲突。 3.2.2 加强与资深的科研院所合作,实现两类院所师生的“双赢”。很多资深的科研院所高级职称和博士较多、科研力量雄厚,仪器设备先进而充足,很多对新升本科院校来讲很难申报的前沿课题,但对省重点高校或更高层次的高校老师手中往往有两个或更多的项目却课题组人手不够,这正是新升本科院校的缺口。因此可以通过不同渠道,加强与这些高校或研究所联系,利用他们的课题和资源优势解决自己课题方向老套、脱离实际、仪器设备不足等问题,为新升本科院校毕业论文和科研工作的开展注入一定的活力,让更多学生有进行科研工作同时完成毕业论文的机会,实现两类院校师生的“双赢”。 3.2.3 做设计类课题。现在的大学生,有相当一部分有个人电脑,可选择应用计算机进行毕业设计。调查发现历届理工科毕业生,无论是在工厂从事技术开发、生产管理,在公司从事经营贸易,还是在政府机关就职,几乎都需要使用计算机。作为培养掌握最新科技人才的高等院校,当然应该顺应这个潮流。 3.2.4 选题时间提前、内容放开,学生有充裕的时间完成论文(设计)。一方面可以鼓励教师让学生参与到自己或学校立项的科研课题或实验室建设课题中。一方面毕业论文(设计)与贯穿于整个本科教育过程结合起来。学生在学习专业知识的过程中对某一问题的质疑、改进或推广,只要能够体现学生科研能力,都可以作为毕业论文(设计)选题。教学实践中的综合性或创新型实验,只要能够体现水平的,也可以作为毕业论文(设计)选题。教师可以不定期的向学生提供毕业论文(设计)选题,与大学生科技创新活动结合,鼓励学生自己选题,利用兴趣这一强大动力提高论文质量。 3.3 加强专业建设和教学改革调整教学计划,合理安排时间,处理好实习、考研、就业与论文写作之间的冲突,同时通过课程建设和教学改革让学生提前做好准备,提高基本功。狠抓教学质量,使学生牢固掌握专业基础理论、基本知识和基本技能,做好专业知识与技能的准备。开设专业文献检索、科研方法与论文写作训练方面的课程,使其掌握一定的科研方法。提高外语与计算机水平,对于论文有关文献的查阅以及日后论文的撰写、排版、定稿都大有帮助。改革实践教学,强化综合实践能力培养,构建由简单到综合,由单一到复杂,循序渐进的系列化实践教学体系。在日常教学过程中老师适当引导学生精读一定数量的范文,从内容到形式,反复揣摩,以便能够有效地借鉴它、模拟它。同时,老师可每学期给学生布置一两个与其专业相关的写作任务,学生可以根据老师的评语有针性的攻克自己写作的弱点,争取每写一次论文就能进步一点。课程实习、学年实习和毕业实习都有总结报告和社会实践报告,这些写作都可以较早地培养学生的论文意识,对于毕业论文的写作有着素材储备、技能准备等多方面的作用。 3.4 加强教师队伍建设和指导模式改革 3.4.1 现有教师队伍的建设加强指导老师科研能力培养,鼓励其勇挑科研重担,提高科研能力和学术水平,为提高论文(设计)质量提供有效的保障。通过参加社会实践、指导学生实习、参与工程项目设计等,组织指导教师尤其是青年教师深入生产和工程实际,在实践中总结和积累经验,为指导论文(设计)奠定良好的基础。在指导工作中要特别注意加强指导教师的师德修养,提高政治思想素质。可适度聘请外校教师或企业高工参与到论文指导中来。 3.4.2 论文指导模式改革首先可采用教师团队指导方式,即以教学科研经验丰富的教师为组长,在充分考虑老师的专业特长与教龄基础上,组建毕业论文指导团队,对学生进行指导,这种方式将发挥教师在各个领域的知识优势和结构,有利于培养学生更全面的掌握解决工程实际问题的能力和团队协作精神,可以较好的完成论文指导任务,同时也培养了青年教师论文指导能力和解决工程实际问题的能力,提高青年教师的业务水平。其次可采用双导师制。对于校内课题,青年教师可以作为副导师、高职称教师的助手身份参与指导论文。因为教授经验丰富,但是指导学生时间相对较少,而青年教师精力充足,时间多,但是科研能力相对薄弱,需要不断提高。每个学生都配有导师和副导师,可以发挥他们各自的优势,取长补短。这种联合指导方式,真正体现了教授“传、帮、带”的学科带头作用,加速了具有知识创新和科研攻坚能力的学术人才的形成,青年教师的科研能力将大大提高,为创新人才的培养打下坚实的基础。课题来自企业的采用校企双导师指导制,这样做可以将学校的理论知识更好地与企业的生产实践有机的结合起来,更有利于学生尽快的融入企业文化。 综上所述,新建地方本科院校,硬件的改善是一个长期而复杂的过程,要提高理工科毕业论文(设计)质量可以从完善制度,合理选题,做好专业建设和教学改革及现有教师队伍建设和指导模式改革等软件建设着手。 软件毕业论文:浅谈高职软件专业毕业生就业前景 摘要:本文首先分析了当前高职软件毕业生的就业优势,然后指出了我国高职软件专业毕业生就业存在的主要问题,最后提出了加强高职软件专业毕业生就业的相关策略,旨在与同行交流,以期更好地为高职软件专业毕业生就业服务。 关键词:高职;软件专业;毕业生就业前景 近年来,由于高校的扩招,导致大学毕业生面临的就业压力非常巨大。作为高职软件专业的毕业生,他们凭借专业优势,以及自己在学习期间获得的较强的动手操作实践能力,在就业方面呈现出喜人的发展形势,相对而言,还超过了大学生甚至研究生的就业率。 一、当前高职高专毕业生就业的优势 与大学毕业生相比较而言,当前高职软件毕业生在就业方面具有比较明显的优势。一方面。从高职软件专业毕业生的优势来看,主要是他们具备的动手操作能力非常强,所掌握的专业技能比较过硬,一走上工作岗位就能够迅速胜任。因此,作为企业,对这样的高职软件专业的毕业生是非常欢迎的。从高职软件专业培养的人才类型来看,主要培养的是动手型人才。这类高职学校开设的课程以职业技能的提高为目标,紧紧围绕市场所需要的应用型、操作型人才,强化职业技能训练,高职软件专业毕业生通过一系列的专业技能训练,能够掌握过硬的专业技能,具备了很强的实践能力。因此,他们适应岗位需要的能力比较强,所需的磨合周期比较短,能够迅速为企业创造出利润。所以,高职软件专业学生比较容易受到企业的青睐。另一方面,从大部分高职软件专业的毕业生来看,对自身的定位是比较正确的,对自己的评价比较正确、客观,对工资的期望值不高,因此,高职软件专业毕业生就业相对比较容易。 二、当前高职软件专业毕业生就业的不足之处 一是存在的不足之处。近年来,由于高职高专学校招生人数逐年增加,导致在校高职高专生数量出现大幅增加。但是,一方面,每年社会没有增加高职高专大学毕业生的需求数量。另一方面,用人单位明显提高了对高职高专人才质量的要求,要求高职高专人才的经验、职称、学历、工作年限等达到一定目标,从而限制了应届高职高专大学毕业生的就业渠道。 二是高职高专毕业生的就业仍然受到传统因素的影响。由于高职高专学校没有提供专业性的就业指导服务,导致毕业生对自身所学专业的职业特点缺乏深入透彻的理解,仍然受到传统因素的影响,使得某些高职高专毕业生不能认清当前的就业形势,仍然期望在经济发达地区和各种条件相对较好地区的单位就业,导致发达城市、大企业、经济效益好的企业的供需矛盾日益加大。 三、关于促进高职软件专业毕业生就业的几点建议(一)注重培养高职软件专业毕业生的职业素养。为促进高职软件专业毕业生就业,应加大学生职业素养的培养,主要包括学生的专业技术知识、计算机实践能力以及自学能力。其中最主要的就是专业技术知识,即软件专业知识技能。因此,学校应将提高专业技术知识作为核心任务,加大培养力度,在培训和学习过程要求学生具有专业的软件技术知识,结合高职院校人才培养模式,促进学生职业素养的提升,为学生做好就业的准备。(二)注重培养高职软件专业毕业生的社会能力。社会能力是衡量学生人际交往、语言表达、组织管理、创造力、想象力、团队协作等能力高低的重要体现。因而为培养高职软件专业毕业生的这些能力,就应在学校内组织丰富的社团实践活动,并引导他们积极参与进来。这就能让学生在学校组建的平台上将自身的优点与长处发挥得淋漓尽致,自身潜力得到发展,使得社会能力得到培养,为学生以后的就业过程中提高竞争力。(三)提供专业化的就业指导服务促进就业。作为学校,为学生提供专业化的就业指导服务,能锻炼学生的择业技能,提高自身的就业实力。通过开设职业规划和就业指导服务课,引导他们认真学习软件知识,看清当前的就业形势,提升软件行业的就业技能和心理素质,从而确保就业成功。四、高职软件专业毕业生就业前景随着时代的发展,知识经济时代的到来,我国对各种各样的人才需求变得越来越旺盛。虽然我国当前的高职软件毕业生的就业还有一些不尽人意之处,但我们只要将他们培养成才,坚持积极乐观的态度,通过不断的努力和总结,将就业经验尽可能的传授给他们,注重他们软件专业技能的培养,加强就业指导服务,转化高职软件专业毕业生的择业观、价值观和人生观。加之他们本身就具有较强的实践能力,通过教师专业的培训,软件专业技能的不断提升。因而,我们坚信我国高职软件毕业生的就业前景将一片光明。 总而言之,我们在看到高职软件专业毕业生具有广阔的就业前景的同时,也应该看到存在的不足,采取行之有效的措施,扬长避短,才能更好地做好高职软件专业毕业生工作。
计算机软件表现出良好的发展态势。插件技术与分层技术的应用,便于提高软件系统完整清晰程度,使计算机软件原型完成时间缩短,减少计算机软件研发成本。此外,上述基础的使用,逐步优化了有关性能及技术,获得用户所需效果。为此,分析计算机软件技术中插件、分层技术的应用很重要。 1插件技术与分层技术的定义 插件,即按照统一的接口规范对程序进行编写。应用程序运转时,会在具体接口使用下,来规范插件,以更好地拓宽应用程序功能。对计算机软件插件而言,比较可靠的是应用程序运行的功能扩展。也换言之,软件开发商以规范预定义接口的形式,让第三方软件开发商在许可范围内研究具体插件具体拓宽软件功能,无需重新编译整体代码程序,仅需基于源代码,做出相应更新,具体重译整体程序,并予以整理,达到更新的效果。分层技术的存在是为了应对计算机软件程序的耦合程度而形成的一类技术,通常应用到软件程序依赖、耦合关系当中,用以解决此中关系,使软件获得非常高的内聚性,升级及完善软件系统,让软件更多样,推动软件技术逐步优化及进步。 2计算机软件技术中插件技术与分层技术的应用 2.1计算机软件技术中插件技术的应用 插件技术用于计算机软件研发当中,发挥了非常突出的作用。插件的优势非常多,插件的探究无需花费太多的资金,但收益比支出高出很多。仅需在接口协助下把插件与具体的软件程序较好地连接起来,计算机软件具备了插件程序功能。研究插件时,应切实了解及把握插件服务软件的主程序,以软件主程序原理等依据,开发插件。插件借助接口和系统进行连接,接口提供具体入口,让插件进到软件主程序中,拆掉主程序当中的插件分离端。宿主及插件的程序协议是确定的,规定当插件全部内容放置到一个子文件当中,为防止软件主程序带来的损害,一定要将插件技术纳入严格管理当中。为此,尽管插件和计算机软件是在一块被利用的,而插件相对比较独立,较少影响到软件。用户在选取及使用插件上,需结合自身在具体生活当中的需求,无法对使用作出认定。且使用一些软件时,部分用户会删掉软件附带插件,使得终端机在运转中的负载得以减少,此种方法不会存在问题。插件技术应用到计算机软件技术当中主要表现在下述两点:①Flash插件,从根本上看,其属于浏览器中安装当中的插件。一般是维持浏览器当中sef文件能够非常好地播放。②IE插件,Plug-in属于一类程序。一般浏览器直接对插件程序进行调用,以处置特定文件的形式,把它变为浏览器当中的一个构成部分。 2.2计算机软件技术中分层技术的应用 分层技术用于计算机软件当中,这一般表现为下述几种类型。 (1)四层技术。虽然现阶段计算机软件应用当中依然存在许多双层、三层技术,而该分层方式并不能真正满足信息技术发展的显示需求。为此,依托以往界面层、经过发展而形成的Web层、数据库层等可非常出色地解决计算机当中具体问题。如,Web设计时,以职能为划分依据,把应用分为表现层、业务层、持久层与领域模型层,通过以上层功能的作用,可较好地传输数据通信。 (2)中间件技术。此项技术是完善数据库、计算机操作系统等,让计算器研发速度更快,使计算机高效运行。在中间件技术开发系统的使用下,保持相对独立,且其中包含了十分复杂的分布集成屏蔽及异构等技术内容,同时便于软件优化及质量提高。 (3)五层技术。五层技术于J2EE环境内,获得了非常不错的应用效果,它的内容涵盖了五层,也即客户层、业务层、资源层、集成层、Web应用层。从整体上看,五层技术根据应用逻辑形成各组件,从最大程度上达到计算机系统的使用需求。 3结语 插件构成了计算机软件组成系统非常重要的一个环节,占据着重要地位,插件技术用于计算机软件当中逐步精简了计算机程序,让计算机程序获得非常快的反应速度。插件技术逐步完善。确保了计算机软件功能的多元性,所以,一定要切实注重插件技术于计算机软件技术当中的合理有效利用,强化分析插件、分层技术的应用。分层技术应用到计算机软件开发当中,这是当前计算机软件开发技术未来使用趋势,较好地保证了计算机软件研发品质,达到规定要求,推进计算机软件的研发速度,满足用户需求,使现代信息技术更好发展。
该文结合多年来江苏省农机安全监理信息系统软件研发的实践,就如何通过精心谋划、通力协作、科学开发、反复测试、及时维护,打磨精品软件,确保信息系统的高品质和长期高效平稳运行,实现法定事项程序化、业务流程效能化,进行了全面而充分的论述。农机监理信息系统建设,简单地说就是开发用于农机监理工作的软件,保存工作中形成的有价值的文字、表单、图像等,确保其长期正常使用。 如仅满足于保存数据、打印证件,软件开发固然简单,但要打造一套成熟稳定、规范严谨、实用便捷,网络化、智能化、人本化、集成化程度较高的信息系统则并非易事,唯亲身经历才能体会个中艰辛。信息系统建设的重要条件有很多,如单位领导的高度重视、主管部门的大力支持、项目资金的充足投入、开发周期的相对宽裕等,缺一不可。在具体实施过程中,还有以下几个重要因素,需重点关注。 1立足长远的高起点建设规划 近年来,软件开发维护费随人工成本上涨而大幅提升,争取此类项目有周期性要求等诸多限制条件,来之不易。因此,项目建设要有统筹规划,明确建设目标,制定实施方案,分阶段、按步骤建设,既要确保较高性价比,又要防止项目资金浪费。 1.1相对稳定的合作单位 信息系统建设是项长期性工作,期望未来有新合作单位随时接手的可行性较低。由于源代码和数据掌握在原开发单位手中,更换开发单位意味着重新开发,前期反复沟通研究、反复打磨形成的技术成果将付之一炬。这也是为什么软件升级项目大多为单一来源采购的主要原因。选择合作单位时,一方面要看其是否具备较好开发资质、有较强的技术实力,另一方面还要注重该单位能否长期稳定,优选有科研院校、国企等背景的实力企业。合作单位稳定,即使开发人员离职,也不影响软件使用。只要合作单位在,合作关系就在,信息系统的稳定维护和升级就有保障。选定开发单位时必须慎重,不可图便宜寻找较小规模公司甚至依赖个人进行开发,否则,信息系统建设存在较大不确定性风险。 1.2细节明确的开发协议 要防止前期低门槛合作、后期高成本使用,还要防止开发单位在软件使用过程中非正常提价、小修改大投入。必须有非常细致的合同条款为合作关系提供法律保障,包括版权归属、开发目标、功能实现、培训维护、相关费用等各项约定均应在协议中明确,以保证双方长期良好的合作关系。 1.3先进适用的信息技术 选择符合业界发展趋势、安全可靠的技术,是加强信息系统建设的关键。先进方能着眼长远,适用才能贴近实际。开发单位一般会根据监理业务及数据量情况推荐相关技术,要防止其仅从自身技术熟悉度、开发简易度考虑选择推荐技术。2004年,江苏省农机安全监理所在确定合作单位前,分别就采用何种网络架构、数据库软件进行过论证,最终认定B/S模式具备服务器端可统一程序、基层无需安装、易扩展、数据统一托管等诸多优点,解决了各地单机软件经实地修改后版本各不相同的困扰。ORACLE数据库也符合未来监理业务发展需要。事实证明,当时的倾向性技术选型是正确的,直至今日上述技术仍是主流。 1.4预留充分的数据接口 为让“数据多跑路、让群众少跑腿”,农机监理业务数据不再也不能仅满足于内部保存使用。江苏省农机监理部门虽已在数据共享应用方面迈出脚步,在全省系统内实现数据共享,也实现了与公安交管部门间的信息实时互通,但仍需加快信息共享步伐。随着信息化的发展,近年来,地方政府工作对开放接口的需求日益迫切,如“阳光扶贫”需要实时提供扶贫对象的机具登记信息,政务平台要求公开相关业务限时办理信息等。目前,因系统暂无法对接,基层人员每办理一次业务要分别录入两个系统,工作量较大。全省政务平台无统一标准,是系统未能全面对接的主要原因。此外,与保险、购机补贴系统及政府的大数据平台对接,单向提供或双向交换数据也是大势所趋。农业农村部2018年颁布了《农机监理业务数据交换技术要求》,为今后农机监理系统内数据共享提供了依据。因此,要有全局意识,按部标准统一数据格式,预留各类数据接口,并根据需要逐步开放、对接,按具体规则实现信息共享。 1.5面向未来的功能布局 农机监理信息化的落脚点在于信息系统建设,功能应全方位服务于农机监理工作,大致有以下几类:一是主要业务工作功能,包括行政许可、执法检查、事故处理等;二是业务拓展功能,包括合作社机具管理、机手短信发送、驾驶人考试等;三是创新管理功能,包括平安农机通、实地检验、档案电子化、执法终端等;四是其他辅助功能,包括内部邮件与交流平台、高拍仪等各类外设接口功能等。通过上述功能建设提升监理机构管理效能,让农民群众在便民服务中受益,是功能设计的主要方向。对未来信息系统具备的应用功能,要有清晰明确的远景规划,要适应大数据分析、智能化替代人工管理等发展趋势,暂无法一步到位的可分步渐进实现。如:设置查验岗操作功能,实际工作中上机录入可能性不大。但若实现移动执法终端向工作终端拓展,不仅可方便地实地录入,还能随时拍照上传,实现内外勤岗位工作的高度协同,而查验岗的相关功能设置就是必要的前提。对未来确定的工作目标,也可逐步开发,待时机成熟后全面启用。如:开发优化纸档上传功能,做好外设选型及定制开发,最终实现档案电子化等。 2紧密协作的高素质研发团队 专业的事应交给专业的人办。过硬的研发团队是决定信息系统品质的前提条件。 2.1专业能力较强的系统分析员 系统分析员能通过大量阅读,在充分沟通后对农机监理业务有一定深度的理解,并能将该业务需求转化为信息系统开发实施方案。 2.2技术水平较高的软件工程师 软件工程师既是软件工程的设计者,也是施工者。技术实力强、经验丰富的的软件工程师能从用户角度出发,将每一个业务场景真实还原,同时还能举一反三,思维缜密地处理每一项数据关联,提前预防并消除各类可能出现的错误(BUG);相反,水平一般、有畏难情绪的技术人员,会对合理的开发需求推诿懈怠,如不及时协调更换,合作双方的良性开发互动势必受到影响,会给软件开发工作留下隐患。软件开发人员也并非多多益善,由于他们有不同的编程风格与习惯,如未经长期协作,彼此缺乏默契,各自为政,反而会给软件开发造成许多负面影响,甚至产生严重BUG。 2.3业务较熟的农机监理员 隔行如隔山,水平再高的分析员也无法短期内领会所有监理业务工作要求,临时参与研发的短期记忆还会在接手其他项目后出现消退。因此,应委派两名以上有较强责任心、对计算机软件开发有一定了解的监理人员参与研发团队。监理人员的参与,可让合作双方的需求分析更顺畅,有利于找到解决问题的最佳平衡点,在软件开发过程中也可随时确认、纠偏,让开发工作少走弯路,事半功倍,符合预期。在条件允许的情况下,建议农机监理人员长期跟踪参与,这将对后期的系统运行维护及未来升级发挥重要作用。 2.4团队内部注重沟通互动 紧密协作的直接表现就是加强沟通,积极的沟通互动有益于提升软件质量,加快开发进度。参与信息系统建设的人员要有迎接困难挑战的充分准备和心理预期,要有敢于啃硬骨头的勇气和耐心,需要发扬工匠精神,通力合作,认真细致地开展各自应承担的工作。 3高标准的开发要求 监理机构的定位态度和开发要求直接影响信息系统的品质走向。紧紧围绕规范实用,在法规政策框架内,贴近实际,方便使用,是打造优质软件应遵循的标准。 3.1详细的需求说明 功能需求说明既是系统开发的参照标准,又是项目完成的验收标准。前期需求分析工作量较大,不仅要了解业务规范的显性要求,找出隐性关联,而且要结合实际,对未明确细节在系统内的实现方式等进行补充。目前,相关规章规范未明确事项主要有如下几方面:一是具体实现方式。如各岗位在系统中的操作内容及关联协作。二是具体业务操作要求。如年检到期时间在提前或滞后情况下如何签注、原地方性业务管理要求如何衔接等。三是未明确的表单文书。如注销证明、预约考试证明等。四是提升功能的相关事项。如催检换证等提醒的短信模板、证件二维码的打印位置等。五是需进一步明确的问题。大到出厂合格证标准启用后品牌型号库的功能定位与信息维护,小到驾驶证注销未超2年是否等同未超有效期3年,等等。 3.2严谨的判定限制 开展监理业务必须依法、规范,信息系统作为辅助工具必须高度统一。不仅要确保各类业务办理流程正确,还应对申请对象条件是否符合、业务是否可同时办理等作出合规判定。如对驾驶证到期注销、吊销撤销,记分满分,进入公安黑名单的驾驶人,在申领或办理驾驶证业务时,按规定作出对应的限制。此外,对系统输出结果也须进行正确性判定,如打印的驾驶证有效截止日期不得超出起始日期6年,不得超出驾驶人70周岁之日,等等。签注错误的证件如流向社会将留下一定责任隐患。信息系统的智能化体现在可最大限度地预防基层工作人员在办理业务时的主观与非主观犯错。 3.3全面的关联处理 监理业务之间有千丝万缕的联系,信息系统内更是牵一发动全身,任何一处小修改都有可能引发大问题。如新规范默许补牌更换号码,开放该功能需扩充数据库字段,补牌时增加选号及证件等打印功能,要求对原号牌作废处理、增加各类相关提示、所有涉及号牌的查询须支持曾用号码查询、相关统计作过滤处理,和公安部门的信息互通增加关联判定、交换新号牌信息等,甚至还要通知其修改警务通的号牌查询功能。大小关联性修改多达几十处,一处关联处理不到位,相关功能则可能无法正常使用。因此,应对所有业务的各种关联性进行细致预判并作出合理设定。 3.4完整的操作痕迹 保存全部农业机械及驾驶人的所有基础数据及业务办理信息,是最基本的功能要求。为便于追溯查阅和防止恶意违规使用,信息系统还应完整收存岗位操作、证件打印、修改数据等各类操作记录及具体修改内容,所有涉及业务的操作记录即便是中途终止,系统也应全部留痕,且无法删除。 3.5友好的菜单界面 品质优良的信息系统不仅注重功能实现,还应考究界面设计。信息系统应与农机监理的行业特点相符,启用行业标识,界面美观友好,内敛不浮夸,各类功能设定科学,页面布局合理。所有菜单及内部页面文字处理应参照公文要求,力求简洁、精准。 3.6实用的操作设计 实用的显著特点是能满足实际工作需要,人本化操作。信息系统应最大限度减少文字录入量,对相对固化的信息进行初始化设定,在录入时支持可选操作,能选的不用输,减少鼠标和键盘操作。应可利用高拍仪、执法终端等外设采集信息。菜单设定、表单回退、保存及翻页等各类设计的处理也应更加人性化,方便操作。还要处理好规范与便捷的关系,在法规政策框架内,提供方便基层使用的数据修正及查询导出等功能。 3.7必要的系统提示 智能化的另外一个重要表现,就是能充当操作人员的工作助理,提醒工作人员及时、正确地处理相关业务工作。主要包括:一是申请对象信息提示。如申请人名下机具信息、违章和记分情况、补证次数等。二是录入错误格式提醒,如身份证号输入长度不匹配等。三是条件不符提醒。如驾驶证撤销3年后才可申领的判定限制提示。四是操作导向提示。提醒工作人员下一步如何操作。五是业务待办提示。如提示岗位待办、批量注销等。所有提示文字应精炼准确,指向清晰,易于操作人员判别和发现错误,根据导向正确操作。 3.8稳定的外设辅助 为实现信息的精准采集与可靠输出,减少操作工作量,实现纸质档案电子化,信息系统应最大限度选用主流优质的外接设备进行辅助,包括身份证读卡器、签名板、人像采集等。除执法终端外,其它设备均需单独开发接口功能。部分设备的升级换代较频繁,对接口要求高,应慎重选型,首选稳定性好的集成设备,优选性价比高的品牌产品,确保系统可长期正常使用。 4全面充分的高强度测试验证 测试是检验开发质量的重要环节。一般由开发人员负责程序测试,监理人员进行应用测试。 4.1通过模拟办理业务检测流畅性 录入各类人机信息,排查各项业务功能可否正常使用,对相关功能的页面是否合理、操作是否便捷、外设是否稳定、权限分配是否对应等进行检查。 4.2通过录入问题数据检查正确性 通过非正常格式、非正常业务条件等问题数据的录入,检查相关提示功能、限制功能等能否正常启动,是否存在允许错误业务数据信息录入的漏洞。 4.3通过查询业务信息验证一致性 对信息录入或业务办理完成后的结果进行查询、比对,测试不同通道录入的数据是否一致、操作记录是否完整,检查各类业务数据信息的关联性是否正常。 4.4根据输出结果判定精准性 检查各类查询导出数据,打印的表单、证件文书的内容是否准确,打印的位置是否符合标准要求。对测试发现的问题,要按关联性检查处理,防止引发新的问题。经实际检验后,可小范围或选择非业务高峰期上线试运行。试运行前,应对整体功能实现有总体判定,对相关数据转换及过渡要有详细可靠方案,对基层人员要进行应用培训,帮助他们了解基本功能和操作要求。既要对原业务数据进行妥善备份,也要有防系统瘫痪的紧急应对措施。通过试运行,逐步发现存在问题,修改完善后正式运行。 5及时响应的高质量维护支撑 三分开发,七分维护。维护支撑工作在信息系统建设过程中举足轻重,直接影响运行质量。系统维护的任务是发现问题并修正信息系统,保证系统能适应当前及未来监理工作开展的需要。从监理机构角度看,有以下几类维护: 5.1纠错性维护 包括最初的功能设计考虑不周导致的先天错误,程序员理解偏差导致的功能错误,程序编写时的源代码错误,以及后续修改的关联性错误,等等,有些业务特例甚至会让软件错误在多年后才暴露。 5.2适应性维护 一是原功能设定与实际现状有出入。如实际遇到的个别区管两个区业务,撤乡并镇导致身份证地址与实际地址不符等情况,应同步调整读取地址功能,既要实现地址一致,又要保证统计归属关系正确。二是法规政策发生新变化时,要及时对相关功能做出适应性调整。当变动较大,须进行较大规模修改时,应启动系统升级开发工作。 5.3完善性维护 包括对部分功能进行拓展或优化,对信息系统性能进行提升等。如与公安部门的信息交流从定期交换向实时互通转变,从此前办理业务时仅做违章信息提醒,到实时互通后启动业务办理限制功能。维护工作涉及程序代码修改及数据转换,需要监理机构与开发单位高度配合,合作贯穿于整个信息系统运行期。高质量维护的关键是及时响应,快速处理,这也是基层监理人员的殷切希望。参与维护的监理人员要有高度的责任心和耐心,要充分换位思考,区分轻重缓急,及时协助或协调解决问题。 作者:蔡勇 万丽 单位:江苏省农业机械安全监理所