时间:2022-09-06 23:33:38
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇软件开发培训总结,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
关键词:软件开发;实训;外包;测试
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)36-8332-02
1 背景
工信部近日印发《软件和信息技术服务业“十二五”发展规划》,规划明确了“十二五”的发展思路和发展目标,确定了10项发展重点和8项重大工程。而据业界预计,到2015年,我国软件行业收入将突破4万亿元,年均增长25%以上,出口突破600亿美元。
2 项目实施的必要性和可行性分析
外包人才的缺口从结构层次来看,不是局部的人才短缺,而是全方位的供应不足。正规院校培养出来的学生能掌握基本的软件开发技术,但缺乏软件开发工作经验、项目交流和团队合作锻炼,需要经过相当的项目知识与技能培训。超过60%的高校开设了计算机专业。但是,适应外包企业需要的大学毕业生很少,大学毕业生常常需要企业花大力气培养,而企业希望招来就用,不愿自己培养人才增加成本。本软件开发、测试实训室应此目的设置,目标培养中低端软件人才。
3 建设实训中心项目的可行性
职业教育与普通教育相比有四个特点:一是教育性质和目标不同。重在对准备就业的学生传授职业知识,培养职业技能,陶冶职业道德,提高职业能力和劳动素质教育。二是教育内容与要求不同。以提高学生的专业知识与技术能力为主,重在让学生懂得做什么、怎么做,使学生学有专长,毕业后投身于社会经济建设的实践活动。目前尽管有部分学生升学,但就总体看,其教育内容与要求未变。三是课程模式与结构不同。其课程模式注重实践教学环节,课程结构注重强化学生技能的应用性、针对性和职业性。四是学校功能与任务不同。要求实施职业教育的学校必须具有实训实操的条件,否则职业教育很难获得应有的效果。
4 软件开发和测试实训室建设目标
软件开发技术实训可以包含四类实训课程:
软件开发实训:包括完整的生命周期的软件开发过程
软件阶段实训:选取软件生命周期其中某个阶段独立工作(例如编码工作)的实训;
软件测试实训:包括软件开发过程随行测试和独立的软件测试技术实训;
软件项目管理:这是关于软件技术高级培训。
实训装备:
硬件设备:5组服务器;50台工位电脑;网络和交换设备;5组光盘刻录、扫描仪和打印机等辅助设备;1套投影和无线扩音设备;互联网接入;软件平台:Windows 和Linux服务器平台,mySQl、SQL Server数据库系统、J2EE和.net开发平台和课程相关的软件工具;LoadRunner 、WinRunner等常用测试工具;项目管理工具MS Project;办公系统 Ms Office 管理软件:实训管理软件
实训方法:采用模拟企业运营方式将教练和学员混编成项目组方式完成软件开发和测试实训;打破学科界线和知识体系,以项目目标驱动安排教学内容,编制教材和教学课件,教学内容来源于合作企业以往的实际项目,由企业和学校共同对原项目分解、重组、封装形成教学课件,以实际项目文档为基础编制实训文档。
实训课程:本实训室分设以下类型实训课程
素质教育类课程:敬业精神、团队合作
企业标准类课程:ISO9000和CMM认证,企业化管理制度
项目管理类课程:项目管理方法和项目管理系统使用;
软件开发、测试类课程:包括软件生命周期理论、文档编制和理解、软件工具、编码和测试方法、系统部署、和版本管理等;
实训过程:
先期培训:素质类、企业标准、项目管理、背景知识等
基础培训:由教师教授课题涉及的基本方法、工具和规范;
开题培训:由专业项目管理人员做课题报告,解释项目要点;
5 实训课题:软件开发实训
本实训室培训软件开发人员和软件测试人员,实训方法可以将学员分组,在同一项目中分别承担软件开发和软件测试工作,也可以独立执行软件开发和软件测试实训课程
软件开发实训包括一下实训模块:
1)背景和基础知识:包括软件开发规范,软件企业ISO9000和CMM认证,学校软件工具等;
2)搭建开发环境:能够配置自己的软件开发环境,包括安装操作系统和开发工具包;能够配置自己与别人的协同开发环境,包括网络配置,文件共享,安装远程打印机等;
编写代码:使学员能够读懂详细设计,掌握开发工具的配置与使用,掌握开发语言的基本知识和数据结构,了解简单的算法,会设计简单的界面,并应用常见控件,具有数据库编程的初步能力;
图1
3)测试:使学员除了掌握测试的理论知识外,还应该学会编写单元测试案例,编写单元测试文档,在执行单元测试的时候,记录测试结果,并分析错误原因,以利于下一步的调试。
学员应掌握以下具体技术、平台和工具,Windows系列和Linux操作系统;Visual Studio工具;Borland 公司工具,SQLServer,Oracle ;Apache+tomcat,Web Logic 等;TCP/IP,创建网络连接,网络打印;基于UML的详细设计文档,面向对象分析和设计;单元测试,黑盒测试,白盒测试,设计测试案例等;执行测试并调试错误,系统和配置技术;
软件测试实训包括以下实训模块:
计算机及常见操作系统、软件设计语言基础、 数据库基础、软件工程基础、软件测试基础、自动化测试:包括OSI模型、TCP/IP模型及常见网络协议,常用软件平台、工具使用LoadRunner 、WinRunner测试工具使用,各种测试规范
6 总结
在当今社会信息化的进程中,综合应用各种新技术的系统软件功不可没的,软件开发和测试使全社会的信息管理、信息检索、信息分析达到了新的水平,因此,学习软件开发、测试的相关基础知识,对于信息时代的每一个成员都是十分必要的。
参考文献:
[1] 杨文宏,李心辉.面向对象的软件测试[M].北京:中信出版社,2002.
[2] Ron Patton.Software Testing [M]. 2版. 北京:机械工业出版社,2006.
软件开发项目管理从最早的传统项目管理软件工程期到近年的迭代模型时期,最后到目前的敏捷软件开发时期。敏捷软件开发的成功五项因素分别如下。
(1)建立自组织团队。传统的管理方式具有命令和控制的特点,经理制定目标和计划,团队负责完成,发挥不出员工的创造力,影响了企业的效率。软件开发的敏捷开发要求员工自我管理,个人控制时间和目标,员工能参与流程和项目决策。
(2)用户故事在需求管理中的应用。软件开发企业最大的敌人不是用户,而是变化。瀑布模型难以适应目前软件市场需要,因此软件开发工作要取得用户的参与,顺应市场的变化。
(3)用户故事的度量,它能为产品投资收益提供估计结果,辅助产品决策。对故事点大小讨论时,能鼓励团队成员重复讨论,充分理解需求。故事点度量方式一致,提高统计团队工作效率。
(4)持续集成。它能提高项目构建自动化程度,将人力成本更多投放到开发任务。项目更有可见性,构建结果更加丰富,一目了然。团队对开发产品更有信息。
(5)掌握迭代,为员工提供稳定的生活节奏,保持一致的周期循环流程,沟通过程中控制时间。
(6)坚持反馈和改进,了解自身情况,改善团队效率。
精益生产的目标为提高质量和消除消费。看板原则要求生产降低库存量、降低生产周期、生产基于交叉培训和单元并对过程进行持续改善。如同超市进货一样,当货架上货物少于设定值,供货商会及时将其填满。将看板管理与敏捷软件开发结合起来,能够达到效率和质量的有效结合,软件产品周期频繁,能达到按天级别。
2.项目看板方法流程设计
增量迭代开发开发流程存在着三点问题。
(1)每个迭代的用户故事较多,产品经理和开发工程师认为很多功能没有价值,而项目经理认为需要跟踪的项目较多。
(2)对于为期四周的迭代观念不统一,部门不同,期望值不同,测试人员认为时间不充分,产品经理认为需要等待太长时间。
(3)部门之间缺乏协作,缺乏透明的项目进展和进度,太多时间花费在流程上。敏捷软件开发有三个典型流程,分别XP、Scrum及看板,经过比较,看板原则可以解决迭代用户故事较多的情况,对于规模小及优先级别高的用户故事能够迅速完成,并满足产品经理对产品的预期。
2.1 基于看板管理的敏捷软件开发流程方案设计
看板一般应用于汽车生产等工业领域中,在敏捷软件开发中看板管理只是理论上行得通,但是在实际上还缺乏经验。而且其受到产品特点、客户差异及企业文化的影响。其流程主要为,(1)定义并可视化流程;(2)限制WIP数量,流程可视化于物理板能够让项目透明,让团队对目前的任务充分明确。限制WIP数量则能让团队在思考时排除千扰,提高个体效率,项目工作不以来时间计划,而是取决团队能力;(3)拉动式生产,每个团队成员只需要对自己环节加以关注,等待任务-完成工作-到下一环节等待区^这种方式推动了产品开发前进步伐。
2.2 看板流程准备和实施
(1)是动员和人员培训,先获取领导层的理解和信任,再向所有员工培训敏捷开发和看板方法,最后,每个部门进行讨论。
(2)制定需求管理环节,产品经理提出产品需求,创建用户故事,技术团队估算用户故事工作量。通过需求分析,工程师能够获取信息,完成研发工作,产品经理全程辅助开发和测试,解答相关问题。
(3)开发流程改造,主要变化在对程序代码的管理方式进行改变,主要有主干和分支两种。
(4)测试流程改造,主要表现为两个方面,一方面提高系统自动化测试率来加快回归测试的进度,另一方面增加测试环境满足功能测试需求。
(5)项目管理流程的建立。
2.3 看板流程的实施
当所有准备工作完成之后,看板方法第36增量迭代之后,可以正式实施。产品经理将用户故事进行排列再制成任务卡,贴在用户故事一列,完成需求分析会议。开发组建立功能分支进行开发,测试组应用功能测试环境对用户故事进行测试,直到产品。团队成员每天早上聚集看板附近,明确自己的任务,下班前,项目经理将每天的任务卡状态变化汇总。敏捷流程要求强调团队自组织和员工自我管理,但是不可忽视项目经理的作用,项目经理能够组织人员,梳理工作节奏,保证沟通流畅,促进项目进展。
3.看板方法效果分析
论文关键词:软件项目管理;中小型软件企业;软件过程改进
目前软件的应用已经深入到企业、政府及我们日常生活的方方面面,其中大量的开发是由中小型软件企业承担的。由于中小型软件企业在体制、人力资源投入力度和关心程度等方面存在差异,开发软件产品时与专业软件企业有很大的不同,因此对中小型软件企业的软件项目管理进行研究,有助于提高软件项目管理水平,增强客户的满意度。
1软件项目管理与中小型软件企业
软件项目管理既具有一般项目管理的属性,又具有其特殊性,软件项目管理的重点在于标准的制定和推行。为了加强我国软件业的国际竞争力,需要发展一大批具有遵循开发过程与注重质量的文化氛围的企业。而制定和推行标准的目的正是要引导软件企业逐步走向成熟,使其工程和管理水平稳步提高,同时为它们提供全方位的服务,以支持软件产业的整体发展。
软件项目管理在20世纪70年代中期引起了广泛的注意。美国国防部通过研究发现了所谓的“软件危机”,即“管理是影响软件研发项目全局的因素,而技术只影响局部”。目前国内的中小型软件企业,由于其企业规模,研发能力等限制,造成其软件开发管理的问题非常普遍。不恰当的组织结构,工作流程不规范,缺乏项目管理概念和软件工程概念等是中小型软件企业面临的主要问题。
1.1中小型软件企业中软件开发的特点
国内的中小型软件企业虽然涉足软件开发业务,但对软件的认识停留在“程序员编代码”的水平上。对企业内部的软件开发缺乏管理意识,具体体现在以下几方面:首先,项目负责人项目管理经验不足,项目功能相对较少,涉及面相对狭窄;其次,项目开发人员较少,人员结构简单;再次,项目进度缺乏控制,项目成本预算较难,缺乏完整的项目文档;最后,缺乏后续维护。
1.2中小型软件企业中的软件开发组织
与专业软件公司的软件开发组织相比较,中小型软件企业中的软件开发工作机构小、人员少,开发人员待遇低,难以吸引高水平的人才,人才流失率达到50%以上。由于没有高水平的开发人员和技术管理人员,软件工作状况处于初级水平,软件开发不能按照软件工程的要求执行。
软件系统建立过程中需要多方面的人员:需求方人员、懂得软件项目管理的人员、软件程序员、系统分析员。普通企业由于对软件生产不了解,往往由软件需求方人员对软件工作直接管理。这个工作显然超过了其能力范围,不符合软件工作的相关原则。业务人员作为项目的负责人,既不能合理地计划软件开发工作,也不可能管理好软件工作中的各种风险,这将使软件开发处于无序的风险状态之中。
1.3中小型软件企业中的软件开发沟通
在需要团队协同工作的今天,沟通可以说已经变得无比的重要。在软件业,沟通可以说是快速学习和掌握新知识,达到技术上更高层次的最佳途径。如果小组成员在协调上出了漏洞,会导致很大的问题,所以项目负责人必须随时监控开发人员的工作,包括内容是否与要求发生偏差,进度是否滞后等等。
项目组与组织之间、项目组与项目组成员之间,甚至与一个项目组的不同成员之间,如果没有足够的沟通意识和沟通制度、沟通工具,就有可能造成信息不畅,从而加大项目失败的风险。中小型软件企业开发人员少,意味着不同人员的程序之间交互、接口相对少一些;缺少文档资料或者文档资料不规范也是软件项目管理中的普遍问题。由于讨论时忽略了某些情况,当大家都按当时的分工完成属于自己的工作后,才发现各个模块组合起来却不能形成一个完整的系统。其根源在于没有一个负责协调的人员不断监控整个开发过程。一旦有人中途退出开发队伍,其他人加入时,新来的人难以理解以前别人做好的代码,索性自己从头做起。
1.4中小型软件企业中的软件开发工作流程
与一个标准的软件开发流程相比,中小型软件企业内部的软件开发“节省”了不少步骤。例如不经过单元测试而直接进入系统测试等。由于这种测试不完全,真正运行系统,当调用某模块时,可能大部分时候都是正常数据,极少出现边界情况,但某些边界情况容易被忽视,很久之后才被发现。但是如果对每个模块进行单元测试时都进行边界测试,就会很容易消除这些隐患。
2中小型软件企业软件开发过程改进模型
软件开发模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。一个企业的管理,大公司有大公司的方式,小公司也有小公司的模式,如果把别人的经验生搬硬套到自己身上,可能会适得其反。同样,管理一个软件项目也一样,大项目和小项目的方式不可能完全一样。但从另一个角度来看,项目的大与小并没有本质区别,很多方法是共通的。因此为了改进软件开发过程,可参考模型如图1
2.1制定软件开发规范
一切沟通与交流,首先都要有可见的依据,这可以从制定软件开发规范入手。具体可以从以下四个方面制订:软件开发工作流程规范、产品文档规范、软件开发文档规范、开发管理文档规范。编写规范,可以参考国家标准的计算机软件工程规范,也可以结合开发经验制定出适合本企业使用的开发规范。
详细制定这些文档使用方法和规则,要保证文档便于书写、形式一致,这不仅要有文字描述,还应制定相关文档模板,形式上要保证简洁明了、实用、符合使用习惯。根据项目规模的不同,还可以制定不同的文档模板,小型项目可以写一个相对简化的小型项目文档,复杂项目可以使用较全面和大型的文档模板。
2.2软件开发人员培训
软件开发中人的因素占有很大的比重,因此对软件人员的培训是非常重要的。一个团体的软件水平并不是个别程序员的程序水平,而是整体的认识和系统建设的水平。可以先在内部对软件开发人员进行培训,内容包括软件工程、己经制订的各种规范、项目管理知识。通过共同分析软件工程对软件开发和开发者的益处,可以得到开发人员的认同,以便共同遵守和执行初期规范,更好地完成开发目标。
2.3加强软件生产过程规范性
软件开发是一个知识密集型领域,对人才的依赖很强。加强生产过程的规范性并规范管理,可以加强人的执行能力。
在中小型软件企业中,很少有成本核算和严格的进度控制。影响项目的因素也比较多:需求的提出比较随便,甚至业务需求还不明确的时候就要求程序员开始编程序,没有合理的措施控制透彻的分析业务需求;时间进度由领导规定,而不是根据需求客观确定,这样使软件质量根本无法保障。因此要通过加强管理使软件开发过程可视化,软件开发工
作协调、有效。
在规则明确、组织机构确定、有一定的理论认识之后,可以通过一些管理要求,强制执行软件工程的一些基本过程,要求的提出要简单明了。例如:项目要有正式立项启动、项目结项,有时间控制要求、计划要求。要求项目有开发计划,计划中确定开发工作的人员保障、开发周期、开发进度计划,并允许项目进行中在一定范围内调整计划与进度。上级领导也应出面协调和帮助解决相应问题。
2.4软件配置管理机制
软件开发不是一个短期行为,但是,由于许多开发工作因缺少管理而成为个人行为,对于软件成果没有保护意识,更不能达到软件的共享与重用。通过“统一配置管理”这一具体的做法,能够强化软件完成后的总结工作。
建立基本的软件配置管理机制,在开发中和开发后都要求程序员及时备份源文件。进行这项工作要首先选择一套适合的配置管理软件,如Visual SourceSafe、cvs(Concurrent Versions System)等。项目主管应该要求程序员在开发全过程中使用软件来管理源文件,在全过程的配置管理的基础上,整个项目组更容易完成统一编码、测试组装产品等工作。
以上步骤,可以保障内部开发工作达到初级的项目可视化,在软件开发部门内部建立起对满足业务需求完成的信心,以满足业务需求的承诺。通过这些工作,可以在企业内获得对软件规范性的一定认识以及对执行方式的认同,这对软件开发工作会有不同程度的帮助。
2.5持续改进过程和管理模型
有了规范的开发生命周期模型和项目管理实践,可以为中小型软件企业设计一个建立在数据基础之上、不断度量和改进及不断提高企业开发能力的一个良性循环的工作机制模型。
1、什么是项目管理?
项目管理是在一定的约束条件下,以高效率地实现项目业主的目标为目
的,以项目经理个人负责制为基础和以项目为独立实体进行经济核算,并按照项目内在的逻辑规律进行有效的计划、组织、协调、控制的系统管理活动。
2、为什么要有项目管理?
没有项目管理,项目也有可能成功。但没有管理的项目,很难保证项目
的利润空间,对公司来说,亏损的风险就大。所以我们要有项目管理,以保证公司在总体上是盈利的,注意不是每一个项目都要盈利。
另外,有了项目管理,就有了管理改进的基础,无论刚开始的项目管理多么糟糕,只要有管理,就有了改进的可能性,至于能不能得到改进,以及改进的快慢,则取决于两个因素:一个是人,特别是各级管理者;另一个是利益。关键是“利益”,准确的说是“利益的分配”,在权责利明确的前提下,人才能充分的发挥作用。还需要指出的是“利益”是多元的,这里的多元不仅指利益的具体形式,而且指利益的受众是多元的,包括客户方相关人员个人的利益。
3、项目管理的发展与现状。
今天,项目管理作为一种现代化管理方式在国际上已获得了广泛的应用,从最初的国防、航天、建设工程领域,迅速发展到电子、通信、计算机、软件开发、金融等行业以及政府机关的项目管理工作。随着计算机、网络系统的迅速发展,项目管理技术的不断进步,项目管理软件产品层出不穷,其功能、特点、应用对象也各不相同。当前,越来越多的企业和组织在内部推广项目管理的理论方法及管理模式,如果都采用项目管理软件进行管理,效果就更加明显,可以节省大量的资源和财富。国外90%以上的项目管理都采用软件进行,但我国在这方面的应用还不到10%。新世纪项目管理在中国的迅速兴起,给软件企业的发展带来了前所未有的发展机遇。
项目管理在软件开发中的应用的成因
随着信息技术的飞速发展,软件产品的规模也越来越庞大,个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。各软件企业都在积极将软件项目管理引入开发活动中,对开发实行有效的管理。从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。同时,随着软件开发规模及开发队伍的逐渐增大,软件开发不再是向过去那样一二个开发人员即可解决的事情。迫切需要一种开发规范来规范每个开发人员、测试人员与支持人员的工作,每个项目组成员按约定的规则准时完成自己的工作。同时采用规范化管理,专业分工也可以降低对开发人员的要求,从而降低产品研发成本。
软件开发是一项复杂的系统工程,牵涉到各方面的因素,实际工作中,经常会出现各种各样的问题,甚至面临失败。如何总结、分析失败的原因,得出有益的教训,对一个公司来说,是在今后的项目中取得成功的关键。
早在20世纪60年代中期,人们就发现软件的生产出现了“问题”,主要表现在生产过程不规范,缺乏管理。后来,人们在软件工程方法学中引入了工程的概念、原理、技术和方法,这种思想在一定程度上解决了软件生产过程中遇到的问题。但是直至80年代还是没有提出一套管理软件开发的通用原则,软件管理不善的问题依旧在大范围内存在。
目前的软件开发正逐步趋向于复杂化、多元化,大多数开发团队中都会出现同时开发多个版本、开发/维护工作并存、多地点同时开发等情况,给软件开发管理带来了前所未有的困难。如果管理不善,必将造成版本混乱,各个开发人员的工作相互交叉、干扰,整个开发团队的工作在一种无秩序的不良状况下运行,严重影响软件产品开发的进度和质量。
因此,随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程中,应用开发的项目管理日益受到重视。而项目管理技术的发展与计算机技术的发展是密不可分的,随着计算机性能的迅速提高,大量的项目管理软件涌现出来。它们可以用于各种商业活动,提供便于操作的图形界面,帮助用户制定任务、管理资源、进行成本预算、跟踪项目进度等。
软件项目管理常见问题及解决方案
对于软件开发项目中,经常出现两种极端情况,一种是创造了新的生产率和质量的纪录;一种则完全是一场灾难,不是被取消就是拖延很长时间。前者如在很短的时间内,为了赶进度,在几乎不可能的时间内开发出一套软件产品,创造了软件开发的记录,满足了上级所要求的上机日期,由于开发时间太短,过于仓促,上机时,问题百出,试运行时间长达几个月或一年半载的,而且程序一改再改,维护工作量大。
后者,如某套系统未弄清楚需求,或因设计问题,开发失败。通过提炼这些成功和失败的例子,软件项目成功或失败的根本原因可能会更清晰一些。
目前我国大部分软件公司,无论是产品型公司还是项目型公司,都没有形成适合自己公司特点的软件开发管理模式,虽然有些公司根据软件工程理论建立了一些软件开发管理规范,但并没有从根本上解决软件开发的质量控制问题。这样导致软件产品质量不稳定,软件后期的维护、升级出现麻烦,同时最终也会损害用户的利益。
分析目前项目管理需要改进的问题可以从几种相关角色的角度去考虑:项目经理、项目组成员、公司管理人员、市场人员、客户等。
问题一:缺乏项目管理系统培训(相关对象:项目经理、管理人员)
项目经理在项目管理方面的培训较少或不够系统。项目经理或管理人员不了解项目管理的知识体系和一些常用工具和方法,所以在实际工作中没有项目管理知识的指导,完全依靠个人现有的知识技能,管理工作的随意性、盲目性比较大。在软件企业中,以前几乎没有专门招收项目管理专业的人员来担任项目经理(甚至很少是管理专业的),被任命的项目经理主要是因为他们能够在技术上独当一面,而管理方面特别是项目管理方面的知识比较缺乏。
解决方案:项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。应实行项目经理知识技能资格考核制度,让项目经理自觉补充学习项目管理的知识和一些常用工具和方法。
问题二:项目计划意识问题(相关对象:项目经理)
项目经理对总体计划、阶段计划的作用认识不足。项目经理认为计划不如变化快,项目中也有很多不确定的因素,做计划是走过场,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。没有计划或者是随意的不负责任的计划的项目是一种无法控制的项目。
解决方案:在高技术行业,日新月异是主要特点,因此计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关各种知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。
问题
三、管理意识问题(相关对象:项目经理)
部分项目经理没有意识到自己项目经理的角色,从总体上去把握管理整个项目,而是埋头于具体的技术工作,造成项目组成员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。在软件企业中,项目经理大多是技术骨干,技术方面的知识比较深厚,但无论是项目管理知识,还是项目管理必备的技能、项目管理必备的素质都有待补充和提高,项目管理经验也有待丰富。有些项目经理对于一些不服管理的技术人员,没有较好的管理方法,工作不好安排的工作只好自己做。另外由于工作分解结构设计的合理性,项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。
解决方案:加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。
问题四:沟通意识问题(相关人员:项目经理、项目组成员)
在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;有些人没有每天定时收邮件的习惯,以至于无法及时接收最新的信息。
解决方案:制定有效的沟通制度和沟通机制,对由于缺乏沟通而造成的事件进行通报作为教训提醒,以提高沟通意识;沟通方式应根据内容而多样化,讲究有效率的沟通;通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。
问题五:风险管理意识问题(相关人员:项目经理)
项目经理没有充分分析可能的风险,对付风险的策略考虑比较简单。项目经理在做项目规划时常常没有做专门的风险管理计划文档,而是合并在项目计划书中。有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。
解决方案:通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法掌握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。
问题六:不重视项目经验的总结(相关人员:项目经理、管理人员)
项目经理在项目结束时有些是因为自身对写文档工作的兴趣或意识,或
者是因为紧接着要参加下一个项目,总体对项目总结的重视程度不够。有些是项目总结报告一再拖延,有些是交上来的报告质量较低,敷衍了事。
解决方案:在制度上鼓励和加强项目经验总结工作,使得项目总结及时并且具有指导意义而不是走过场。
问题七:项目干系人相关问题(相关人员:项目经理、项目成员、客户)
在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、
工作职责等没有足够了解以致于无法得到完整需求或最终经权威用户代表确认的需求。由于项目经理的工作问题,客户参与程度部不高,客户方相关责任人不明确或对范围和要求责任心不强,提出的要求具有随意性,项目前期对需求的确认不够积极;或者是多个用户代表各说各话、昨是今非但同时又要求项目尽早交付;项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。
解决方案:项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。
问题八:项目团队内分工协作问题(相关人员:项目经理、项目成员)
项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任
分工不够清晰而造成工作互相推诿、责任互相推卸的现象,有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰但是各项目成员只顾完成自己那部分任务、不愿意与他人协作。这些现象或多或少地造成了项目团队内部资源的损耗,从而影响了项目的进展。
解决方案:项目经理应当对项目成员的责任进行合理的分配并清楚地说明,同时应强调不同分工、不同环节的成员应当相互协作,共同完善。
以上对软件开发项目管理中出现的问题的分析还不够深入,也无法列举所有遇到或将遇到的问题,解决方案也要根据实际情况进行调整,希望引起对这些问题更多的思考和改进。
结束语:项目管理虽然没有非常高深的理论,但要真正实施起来,也绝非易事。对于软件开发企业而言,这不是一个小的改变,而是一种变革,企业需要为此付出艰苦的努力,宣传并树立公司范围内的项目管理文化十分重要。从而在实践中锻炼提高,解决各种各样的问题,使项目管理工作越做越好。
内容摘要:随着信息产业的飞速发展,项目管理对于以应用开发为主的软件企业是一个行之有效的管理方法,项目管理在软件开发中的应用日益受到重视。本文主要通过对项目管理在软件开发中的应用的成因、存在的问题以及相应的解决方案进行了分析和论述。
关键词:软件开发;计算机应用;信息管理;计算机软件应用
一、引言
在全球信息化的浪潮之下,我们正处在一个信息大爆炸时代,各行各业在计算机软件产品的辅助之下,高效率地利用计算机技术优势,极大地推动了国民经济的发展,因此软件开发行业成为了当下众多行业之中富有挑战性和成就感的特殊行业,各个软件作品的成功应用富含了全体开发人员的辛勤汗水和劳动智慧。在进行软件开发过程中,为了实现从0到1的突破,开发人员时常会遇到各种各样的问题,故此要推动计算机软件开发行业的发展,就一定要在其开发前进行规范化管理,明确人员相关责任意识,达到开发事半功倍的效果。
二、计算机软件的分类说明
计算机软件的概念上来说,我们可以分为计算机系统软件和计算机应用软件,而计算机软件指的是监控、管理和维护计算机软的工具,简单来说类似于防火墙和电脑的操作系统等等。而计算机应用软件则指的是解决某些具体情况的应用软件,例如语言学习专用的教学软件和办公系统软件等等。计算机软件在功能上是利用计算机本身带有的逻辑性来系统安排计算机工作,有些特定软件甚至可以让人们从中脱离出来。
三、计算机软件和硬件的区分
在我们的印象中,计算机应该分为软件和硬件,这种理解大体上是正确的,但是对于硬件和软件之间的区别,这种理解只停留在外部印象上,故此文章针对其区别主要列举了以下几个方面:首先区别在于其生产上,软件方面属于针对需求开发的专用软件,而硬件则是厂商生产制造的,比如硬盘等等。软件开发是开发人员合理利用想象力来进行研发,而不是在厂商工厂制造而来,在理解上虽然存在一定的相似之处,但在根本上是不同的;其次区别在于产品要求上,在计算机软件领域,对于其要求是非常严谨的,在设计之初就要求不能有任何错误存在,而计算机的硬件方面则稍宽容一些,可以在设计上存在细小误差,不影响使用即可;再次则是在表现形式上的不同,计算机的硬件是可以被看见、被触摸到的,而计算机的软件表现则是在设计人员的脑海中或者是付诸于纸上,真正的想法要付诸实践,必须在计算机上运行过之后才能发现其是否可行;最后则是在计算机维护上的不同,软件在理论上是不可能因使用造成损坏的,但是在实际运用中,软件也需要进行定期维护升级,同时面对出现的漏洞要及时发现并修补,保证其能够继续稳定的运行。
四、计算机软件的开发简述
计算机软件开发是在客户需求上研发的操作系统或者是满足某些特定情况的应用软件,其工作是非常系统性的。软件的研发中要探究客户真实需求、开始进行方案设计、实现需求和进行终极测试。在软件使用时要经过版权方许可,否则其软件使用可能会存在风险,究其原因在于国家对于每一个软件都会有相应的软件许可证。另一方面,很多特定情况下的应用软件许可条款和法律法规是不能相互抵触的,没有从正规渠道购买,乃至使用盗版或者在版权方不知情的情况下私自拷贝,极有可能会引起法律纠纷。
五、软件产品的维护
作为软件开发项目中最后一项任务,是软件被付诸实践测试的重要时期,维护的任务目标是对最终版本进行测试,发现在软件运行过程中出现的BUG,从而不断开发补丁,对系统进行完善,让软件的性能得到充分发挥,最终实现软件的量产。对软件进行规范化的维护主要在以下几个方面:第一,在管理方式上要进行规范化,规避后期可能会出现的不利影响,在修补后要及时进行运行监测,避免出现以错补错,防止因为错误造成经济损失,同时要严格执行软件管理条例,分阶段、分步骤地进行修补,对添加的补丁是否解决问题进行反复验证。第二,要对软件产品进行规范化保护。进行规范化保护主要方面在于要增加软件的使用频次,不断增强计算机软件成品的适用性。在软件产品的开发阶段,要对软件产品中可能会发生的错误进行预测,并设置有效修补措施,保证软件产品能够在不同的使用环境中,发挥软件产品的自我检测和自我修补功能。除此之外,在提高软件相关系统功能的同时,对软件产品的维护运行要有明确的目标以及细化的操作步骤,根据软件控制管理系统要求,认真地对软件产品进行检查、调整、查看。
六、软件研发过程中出现的系列问题简述
(一)创新能力不足以及软件设计过程重视度不足
困扰软件设计公司最大的问题就在于设计能力上的缺失,很多项目经理和软件开发人员对于设计没有引起足够的重视,有时候甚至会出现为了赶超进度,在很多项目开发进程中设计得过于简单,甚至于直接省略设计过程,对市面上的相似产品进行搬运和抄袭。这样做的后果极有可能会造成版权方面的法律纠纷,同时极大地制约了设计人员的想象能力和设计灵感。诚然抄袭已有作品能够有效加快项目开发进度,但这种方法无异于饮鸩止渴。软件开发工作是一项技术性很强的工作,在进行过程中需要有一个相对详实、系统的开发设计方案,缺少相关设计方案会使得软件开发工作难以为继,出现止步不前的现象。除此之外,创新也是困扰其发展的一个重要方面,创新是技术发展、行业进步的灵魂,是企业长远发展的推动力,在我国就有许多企业因为缺失创新能力导致其发展相对滞后。在这种情形之下,相关责任人员应该明确自身职责,通过结合以往参与开发的经验,不断创新思路,发挥想象力,最终推动软件开发创新发展。
(二)对于客户需求理解不甚全面,缺乏深度交流互通
在软件进行开发的过程中,客户经理没有真正了解到客户真实需求,或是因为沟通的不及时而错误理解客户需求,导致最终开发成品不符合客户需求的现象发生。在这种情况下开发出来的作品,无疑是一种资源上的浪费,换句话说,软件开发没有明确定位,就会让软件产品出现一定的风险。而对于风险的解读方面存在有两种不同的释义,一种解释其风险是带有不确定性质的,另一种释义则解释其风险在损失成本上带有不确定性,不管这两种对于风险的定义如何,能够明确的是其风险引发的后果会有损失发生,甚至极有可能既无损失也无收益,广义上讲风险引发的后果不外如是,金融基金股票中常常提到的风险就可以归为这一种。狭义上讲的风险,其定义重点在于其损失性,表明风险只能带来损失,并不能带来利益。这种狭义风险用来阐述因为信息差带来的软件开发后果极为合适,因此在软件开发过程中要高度重视供需方面的沟通交流,避免风险的发生。
(三)版权意识的缺失,软件开发处境和编程代码库紊乱
当前对于软件开发的需求量正在不断攀升,亟待开发的软件项目数量也在不断上涨,参与开发人员分别负责的版块数随之增加,故此造成版本数量急速增长,到最后甚至会出现某一个专门负责版块的开发人员找不到版本的现象发生,从而引发版本以及代码库紊乱。其次如果参与编程人员水平不高,还容易出现抄袭的现象,造成版权侵权,进而使整个开发项目的质量受到影响,让整个软件公司的发展受到波及。
七、面对问题提出的针对性规范化应用举措
(一)对客户真实需求进行深入了解
在进行软件开发之前,一定要对客户的真实需求进行全面了解,才能使软件的开发少走弯路,在减少浪费时间成本的同时,还能让软件的开发具有价值。软件开发项目中的设计人员在进行设计时,要充分把握住客户的需求,对其需求有明确的定位。在某种层面上来讲,需求分析是软件开发中极为重要的工作,它决定了软件开发的研究方向,能够为研发提供策略支持。故此软件开发项目首先要对需求分析进行深入探究,定期对软件开发的相关技术人员进行专业化培训,让其借助于这种专业技术性很强的培训来进行自我学习,使得项目工作人员的专业水平得到提升,同时还能进一步提升其工作效率,展现出专业人员的技术素养。此外还要对相关人员进行企业文化教育,让其产生文化认同感,针对产品特点来进行介绍,对将要开发设计的项目有整体性的认知,促进相关技术人员之间的交互,为软件开发项目的平稳运行提供助力。
(二)增强相关人员对于软件开发规范化的认知
计算机的软件开发工作是和人们生活、学习、工作等方面密切相关的一个系统性工作,只有通过人们的认可,在使用中发挥出其作用的软件才是真正有价值的软件。相关人员要在思想观念上进行转变,在软件开发的准入上要设置一定的门槛,挑选出高水平的技术开发人员,明确参与软件开发人员的责任。值得注意的是相关政府部门还应该对软件开发行业的法律法规进行补充完善,并由相关协会制定具体的行业标准,让整个软件开发项目在法律法规的监管下进行,鞭策软件开发人员能够以诚实守信、爱岗敬业的精神来进行开发工作。
(三)专注于产品开发
创新能力不足是当前我国软件开发技术发展的严重阻碍,即创新研发方面相对落后。与之相对的国外软件开发行业,能够拥有独属于自己的研发地位,究其根本原因在于其自主创新能力强,研发力量雄厚。创新是推动产业发展的强劲动力,不断进行创新研发能够形成消费合力,是企业长远发展、不断壮大的必由之路。因此创新能力的强弱,关系到我国软件行业能否在软件开发行业中占据优势地位。
(四)重视规范化经营管理模式
在各行各业的发展中,保质保量进行生产制造,规范化的经营管理是提升企业生产力的重要举措,这在软件开发行业中也同样不例外。规范化产业管理模式已经成为软件开发质量特殊竞争力的表现。在我国软件行业中,规范化管理经验相对缺失,这就在一定程度上造成了创新研发成果上相对落后,甚至于已经影响到了我国软件开发行业的发展。我国的软件开发行业要想保证竞争力,就应该在经营管理中不管规范化,这种管理体制上的规范化能够让企业在竞争恶劣的环境中崭露头角。此外,我国的软件开发行业在起步上相对滞后,专业技术能力上存在不足,整体软件开发行业正处在发展阶段。软件开发企业要在技术层面上不断的进行突破创新,在资源利用上进行高度整合,才可以使得我国软件开发不断进步,突破到下一个发展阶段。
(五)对策划设计的方案进行精心审定
在软件开发工作的开展上,想要取得成功,就一定要有一个相对详实的、富有特色的设计方案。只有在这种设计方案的引导下,才能让软件开发工作进展得更为顺畅。在项目开展之初,要对各个环节的细致工作进行综合考量和分析,突出其设计理念,突显其创造性。作为软件开发项目中的前期准备活动,规划着软件研发的前进方向。所以,软件开发工作中其设计方案要富有创造力,突破陈旧思维观念的制约,不断吸纳更多志同道合的伙伴,不断推动软件开发行业健康平稳发展。
(六)定期开展项目总结工作
软件开发完成之后,项目参与人员要仔细进行复盘总结,细致探讨在项目进行过程中符合客户最初需求的部分,还有项目中可以改进的部分。唯有如此,项目开发技术人员才能从中不断获取经验,为后期开展的其他项目开发提供借鉴和帮助。项目开发工作能否最大程度的给客户留下印象,提升工作质量,减少工作过程中出现的失误,离不开项目工作组的不断复盘总结。
(七)规范化软件检测
作为软件开发进程中的重要组成部分,针对软件是否能够实现客户的真实需求,需要对开发的软件进行测试。在软件的测试过程中,出现错误的情况在所难免,如何规避和清除错误,让软件能够真正投入使用,是软件测试过程中必须要面对的考验。可能会出现的问题广泛存在于软件设计研发的各个阶段,软件测试的结果也决定了软件的使用寿命和软件设计研发的质量。因此一定要对软件测试足够重视,真正解决软件研发过程中出现的各样问题。在检测过程中,一定要让客户进行参与,由专业人员把软件的设计思路和想要达到的效果来进行说明,利用专业人员的专业素养和规范化的检测方法来对软件进行真实环境检测,发现问题并解决问题,以此来满足客户的研发要求。要对检测的过程进行规范化,对软件的各个功能都要进行检测,同时还要对各个功能版块的检测结果进行存档,以便于能够快速定位出现问题的版块,反复修改检测之后,使得软件的性能能够调试到最佳状态,以达到完美的使用效果。在检测完成之后,要详实的填写软件测试报告,对检测结果进行全方位分析,对其做出正确评估。
(八)制定规范性的维护方案
软件研发工作开展的最终目标是实现软件产品完美交付使用,对出现的BUG要及时进行修复,充分保障功能的实现。在软件实际使用期间,维护人员要对其中出现的错误及时填写报告,针对软件问题报告中出现的问题,软件维护人员要明确其错误出处,精确定位问题板块并解决问题。针对维护需求进行详细评估,不断进行修改完善,最后将完整开发版本和客户进行交付,让整个软件开发项目圆满结束。
八、结束语
对计算机软件开发进行规范化操作,是计算机领域长远发展的前期保障,同时也是软件开发创新发展的基础,在推动行业创新发展、专业技术水平研发上有着不可忽视的意义。在软件开发工作中设置明确的标准、规范的行业准则、技术上的硬性指标,能够在一定程度上促进软件开发行业发展,增强相关人员的工作责任心。此外在提高软件开发效率,加速软件开发方面,还需要增强业务专家和技术人员的沟通交流,在版权方面进行控制,避免可能会因为版权问题出现的法律纠纷。在研发高水平的软件过程中,要能够满足用户的需求,还要切实维护软件使用者的利益。规范化能够有效促进市场平稳健康发展,能够在一定程度上满足社会经济发展的需要,还能够显著增强我国软件开发行业在国际市场中的竞争力,推动计算机软件开发向更高层次的阶段发展,在竞争日益严重的国际软件开发市场中占据一席之地并掌握话语权。
参考文献
[1]司利平.浅谈Java在计算机软件开发中的应用[J].电脑知识与技术:学术版,2021,17(24):2.
[2]时凤燕.分层技术在计算机软件开发中的应用[J].中国信息化,2021(3):2.
一、问题的提出
当前,我国职业教育面临着拓展规模、提升能力水平两大问题。拓展规模,需要在大力发展学校教育的同时,积极发展包括远程职业教育、成人职业教育、终生职业教育(培训D等社会教育;提升能力水平,需要提高职业教师的自身技能水平和教学指导能力,不断改进教育教学方法。需要学校或培训机构具备足够的教学场地,购置大量的教学仪器设备和实验实习材料,给教育受众提供满意的实操环境。而解决这些问题,均受到场地、资金42
等若干因素的制约。同时,从事职业教育的教师数量在短期内也难以满足,教师个体素质在短期内也难以提升到理想状态。特别是急需发展职业教育的广大农村,对职业教育资源的需求日益强烈。
相对而言,我国高等教育经过改革开放后数十年的发展,无论是办学规模还是办学水平均有了较大幅度提高,社会影响力不断增加。积极推行高等学校办学资源的社会化、课程的公开化是实现“服务社会”的有效途径。近年来,美国等高等院校的公开课已经风靡网络,受到全世界网民的一致好评。美国高校教育教学资源的网络化和社会化,为我国高等学校实现办学目标和宗旨提供了可供借鉴的经验。推进我国高校教育资源的网络化和社会化,将为解决我国当前职业教育资源紧缺问题开辟一条崭新途径,可有效地解决职业教育受众专业实习、实训设备、设施及专任教师短缺等问题。
随着我国PC机在公共场所、事业单位和家庭的逐步普及,以培养职业教育师资为重点任务的高等院校组织相关专业教学人员,对职业教育各专业内容进行科学组织,精心设计,利用计算机技术,以人机交互的方式将职业教育相关专业内容通过文本(texjU图像(image、图形(graphicS、音频(aud〇、动画(animatiori)、视频(vide〇等多种方式,经单独或合成的形态表现出来,形成适合社会不同教育受众实际情况的系列教学软件,并面向社会更加广泛的地域和时空领域推行、传授,可有效地实现职业教育面向人人的目标,为我国经济社会建设培养更多的技能型实用人才。同时,可有效地激发教育受众的学习兴趣,方便学习者自己把握学习时间,选择学习内容,实现“以人为本”发展职业教育的目标。通过仿真模拟实验、实习等操作,可有效地解决目前基层职业教育设备少、实习材料短缺等问题,减少不必要的资金投入。教学软件承载、支持并体现了一定的教育理念,通过多种表现形式和问题情景的创设,支持接受式学习、自主探索式学习等多种学习方式,必将促进教育受众个性和谐地发展。
二、国内外开发及应用现状
在教育教学中应用计算机技术,使教学手段、教学思路和教学体系乃至整个社会教育模式发生了深刻的变革。上世纪80年代以来,计算机技术的飞速发展为各类教学软件的开发提供了强力技术支持。视窗操作系统(Windows的推出为软件开发建立了开发平台,多媒体技术的发展使教学内容的表现形式更加丰富多彩,网络技术的快速普及使教学突破了空间限制。目前,各种教育教学软件的开发技术已经跃进了一个新的台阶,在内容表现形式上更具趣味性和吸引力,在具体操作上更加简便和人性化,在使用功能上更具多样化和综合化。2]特别是网上课程设计、网上课程协作和网上课程管理等各具特色开发工具的形成,使各种教育教学软件开发技术水平日新月异,步入一个崭新时代。美国StanfordUniversity自2001年起,就确定专门人员併有学生参与)对教授讲授的课程进行加工,并及时放到网上,或供学生课外复习,或用于继续教育,为校外在职人员学习提供方便。众人皆知的美国ETSe继英国IELTS考试在全球实现计算机化之
后,已在全球实现了和TOEFL考试的无纸笔化。随着现代信息技术和与其相适应的教学开发技术的形成和发展,使教学软件系统以其强大的功能迅速得到开发和应用,代表了现代教学技术的发展方向,成为教育改革的发展趋势。
我国教学软件的开发研究工作基本与世界发达国家同步,但由于起步初期受到计算机软硬件技术发展水平及计算机普及率的限制,开发进度不快,技术水平不高,应用普及面不广。上世纪90年代,CAI技术在我国蓬勃兴起,引发了教育技术史上一次新的革命。典型的教学软件代表作有“开天辟地”和“万事无忧”等。进入新世纪后,基于当今世界先进的计算机软硬件技术,将许多优秀的教育思想与教学方法以及教学基本策略以基元形式积聚成库形成的“积件”(IntegrableWarf)模式,显示出旺盛的生命力。计算机网络教学技术的迅速发展,进一步拓展了教育空间。在市场需求的拉动下,各类教学软件产品迅速涌入教育领域,每年全国教育教学软件开发的投入达到数十亿元。但是,目前的教学软件开发,多集中于普通教育和幼儿教育,职业教育教学软件开发的水平不高,开发速度不快,理论支持不足,鲜有推广价值较大的产品。无论是职业学校,还是社会培训机构及教育受众,对具有较高制作技术水平的职业技术教育教学软件的需求越来越强烈。
三、软件应达到的技术标准
研究国内外教学软件开发的历史进程和开发过程,总结各地教学软件开发工作取得的经验和教训,确定开发职业教育教学软件应达到以下六项技术标准。
(一)实用性
实用性是职业教育教学软件之本。质量上乘、效果良好的教学软件,应该是一件精良的教学工具,是一个精准教学内容的集合,是一套精巧的计算机程序。教学软件的实用性集中体现在软件系统的实用性和软件内容(数据库的实用性两个方面。软件系统的实用性要求软件应用现代计算机技术,能够有效开发使教育受众的多元智能,增强软件使用效果。能够利用各种认知理论,科学控制信息表达及信息流程等,有效增强教育受众对学习内容的记忆;数据库的实用性强调软件开发在内容选择上必须面向社会各个层次的教育受众,符合市场需求和教育受众的实际需要,体现职业性、技术性和实用性的统一,凡学术性、有争论或不能运用到工作实际中的内容均不纳入。
二简便性
职业教育教学软件面向全社会,必须简便易行。(1)操作要简单。软件的操作方法应与目前社会流行的Windows等操作系统兼容,应让软件使用者不需任何专门培训也会使用。在操作设计上,应尽力体现人性化。如在实施人机互动方面,均应在设置键盘输入的同时,附加鼠标Option方式选择。当然,也要为熟悉计算机操作的教育受众提供多种输入方式;(2操作要方便。在操作过程中,应该给学习者提供各种帮助功能。除在系统中设立帮助文件外,还要在软件适当部位显示出相关帮助信息,提醒学习者按照自己的意愿操作。当出现错误操作时,软件也要主动提醒学习者,并指出正确的操作方式、方法。
(三交互性
人机交互能力的强弱,是职业教育教学软件能否被使用者接受的关键,应作为开发设计的重点。;1)要让软件用户对软件的运行状态具有高度的控制能力,如启动、停止、内容的跳转、参量的选择以及避免死循环等;;2对教育受众各种教学需求,应尽可能地体现在软件功能中,设置若干唤起方式,以此保证用户可自由取舍软件的多数功能;(3建立符合常规、简单明了、风格一致、反馈信息提示得当、容错性良好的用户界面,努力增强与使用者的亲和力。如建立明显交互标志,避免使用者盲目寻找各种功能特性等;;4要尽力为使用者提供更多干涉的机会,充分调动学习者的学习热情;©尽力避免软件使用者的误操作将导致软件系统出错或锁死等常见现象,使学习者能够永久使用软件,树立学习信心。
职业教育教学软件应是各个教学“积件”的集成。“积件”是一个教学素材或知识单元,几个或多个“积件”组合成一个学习单元,几个或多个学习单元可集成一套完整的教学软件。这些单元即可以单独作为教学软件实用,也可与其他单元链接,构成一个课程的整体。每个单元都应是独立的、完整的,并具有选择性和灵活性,便于与常规教学中实施的学分制、工学交替等相对接。同一课程的所有单元都均为同一学科科目,各个单元之间具有平行、递进、包容的逻辑关系,各个单元的排列组合,形成教学软件的多级分支和多层页面。为便于教育受众使用,在软件分支和页面设计中,应尽力减少页面层级,尽力在单一的界面内集成更多的对象、功能和特性,以便易于实现人机交互技术。
职业教育教学软件面向社会每一个人,一定要避免固化教学过程,具有普遍适用性。;1)区别于传统媒体技术和普通课件制作技术,职业教育教学软件应尽力体现模块化、智能化和交互性,确保结构清晰、适应性强;(2教学内容间的转换(超文本链接)应尽力避免简单的跳转,或仅仅与传统课堂教学过程相对应,应侧重于交流和共享;(3)在运转软件的硬件要求方面,应确保软件在普通PC机上就能运行,不需要特殊的设置和装置;(4在增强软件普适性的同时,还应注意软件的安全性、系统运行的稳定性及测试内容、结果的保密性等,设置独特的文件存储方式,对相关保密内容进行加密处理,明确只有授权人员才能打开文件。
(六)智能性
职业教育教学软件应特别注重软件内部诸因素、诸对象之间的互动关系,注重知识建构的过程。目前,市场在售的部分教学软件之所以难于被教育受众广泛接受,关键就在于过多的非教学因素影响了学习者的注意力。因此,职业教育教学软件一定要做到界面美观、简洁、大方,即对学习者多元智能产生一定的刺激,提升学习效果,又不会影响教学主题。对一些较难理解的课程内容则应尽可能地使用声、像等多种手段,以求最佳教学效果。尤其要重视对诸如工科类机械操作系统、商科类商业专题运作过程等的仿真智能环节设计,使学习者能够在计算机软件上的仿真环境中模拟练习,在奠定一定的操作基础之后,再进实训车间(或工厂实际操作。这样,既可减少教学过程对机器设备等的损耗,还可以节约实习、实训等材料,达到提高学习速度、降低学习成本的效果。
四、实施软件开发的各个阶段遵循开发、试验、推广“三步走”模式,将职业教育教学软件的开发过程划分为以下六个阶段。4](一)可行性分析计划阶段组织相关开发人员深入职业院校、短期培训机构、成人教育机构等进行市场调研,在认真听取需求方对开发职业教育教学软件的具体要求的基础上,进行项目可行性分析股资效益分析),制订开发计划。要以文件的形式,把开发人员职责、开发进度、所需经费和所需计算机软硬件条件等作出具体安排,以此开展、检查各项工作。
(二软件需求调研阶段在确定开发某一教学软件可行的情况下,需进一步对软件需要实现的功能进行详细分析,编写出软件需求说明书和数据要求说明书。通过编制软件需求说明书,可为使用者和软件开发者双方对该软件的初始规定有1个共同的理解,使之成为整个开发工作的基础。其主要内容包括对功能、性能的规定等;通过编制数据要求说明书,可向整个开发过程提供关于被处理数据的描述和数据采集要求等技术信息。
(三软件开发设计阶段
根据需求分析的结果,对整个软件系统进行宏观总体设计和微观细节设计,编写概要设计说明书、详细设计说明书、数据库设计说明书和测试计划等。概要设计说明书对程序系统做出设计,包括基本处理流程、组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等;详细设计说明书应说明软件系统的各个层次中每1个程序(每个模块或子程序的设计考虑;数据库设计说明书应明确数据库的所有标识、逻辑结构等;测试计划应提出每项测试活动的内容、进度安排、设计考虑、测试数据的整理方法及评价准则等。
(四运行程序代码实现阶段在程序编码过程中,应制定出统一、符合标准的编写规范,以此保证程序的可读性、易维护性,提高其运行效率。此阶段应编写模块开发卷宗和用户手册(操作手册)等。6]在模块开发过程中,每完成i个模块或一组密切相关模块时就编写出i份模块开发卷宗,待开发工作结束后,把所有的模块开发卷宗汇集在一起,为整个模块进行管理和复审提供依据,为将来软件系统维护提供技术信息;用户手册的编制可为操作人员提供软件运行的基本知识以及操作方法细节等。
(五分段实际测试阶段
教学软件完成后要经过严密的测试,以发现软件存在的问题并加以纠正。测试过程分为单元测试、组装测试以及系统测试三个阶段,采用白盒测试和黑盒测试两种测试方法。在测试过程中,应建立详细的测试计划并认真落实,避免测试的盲目性和随意性。随着测试工作的进行,应把测试的结果、发现的问题等加以记载,编写出模块开发卷宗测试分析报告。为积累开发工作经验,软件开发结束后应及时编写软件开发总结报告。
(六)软件运行与维护阶段在教学软件开发完成并投人使用后,由于多方面的原因,软件可能出现不能继续适应用户要求、出现新问题等情况。以延续软件的使用寿命为目的,或以服务于用户为目的,均需要软件开发者及时关注软件的使用及运行状况,并重点抓好纠错性维护和改进性维护等工作。
五、软件开发团队的适宜组织方式开发高质量教学软件,必须组建一支业务精良的专业队伍,建立起功能齐全的组织体系,形成高效运转的管理体制和运行机制。所有开发人员必须围绕共同目标,依据各自职责,通力合作,扎实做好各项工作。
(一)以软件功能为核心,合理配置研发人员确保软件开发质量,需要建立一支教学设计、美术设计和程序设计与制作专业人才队伍。参与开发的学科教师具体负责确定教学目标、教学设计及教案制定等工作,与其他开发人员一起分析课程内容、确定软件功能结构、选择媒体技术等;参与开发的美术设计人员在了解软件开发基本思路与格调的基础上,运用自己的“美术思维”对界面进行构思,达到美观和谐的要求;参与开发的计算机专业人员负责具体技术开发工作,包括图像、声音、视频等素材的运用,编写模块程序、调试修改等。此外,要注重发挥学生在开发教学软件中的作用,充分发挥他们了解教学软件优缺点的优势,让他们帮助测试软件,尽可能多地发现错误和不足。
二强化交流协作过程,实现“可持续开发”
分析成功教学软件的开发过程,发现其路径并非为以“教案一脚本一软件”为模式的单向流程,而是“市场基本需求一软件原型一新的需求认识一新的软件模型”这样一个循环反复、逐步提升的过程。因此,不断开发出优秀、实用的教学软件,需要学科优秀教师和计算机专业人员经常深入交流,全面理解所开发软件的各种特性,领会软件开发的思路和意图。计算机专业人员可向学科教师提出各种建议,帮助学科教师扩展思路,优化设计。此外,软件开发人员在进行市场调查时,还应加强与软件应用单位或个人的交流工作,充分征求他们的批评意见,实现认识不断提升、技术不断改进、内容不断更新。
(三依据软件内容,确定开发组织模式
职业教育教学软件可大可小,可包括一门学科的所有内容,也可以是一个单元、一个知识点。较小教学软件的开发,有的只需一两个人,花几个星期就能做完。但大的教学软件,就需要一个专门工作班子,花更多的时间来开发。对容量较小的教学软件,若学科教师(如计算机专业)计算机技术水平较高,可采用个人包办模式;若学科教师对软件设计与制作比较生疏,可以采用行政指定专业教师与计算机专业人员合作进行开发;若软件开发已经形成了一定的基础,则可鼓励学科教师与计算机专业人员自行组成开发小组,形成自由组合开发模式;对一些现代教育技术推广较好、软件制作力量较强的学科,可采用由分到合的开发模式。先由学科专业教师自行制作单个知识点的“积件”,而后学校再组织人员对“积件”进行集合,形成大型教学软件。
(四)立足现实条件,逐步建立良好的开发机制
关键词:项目管理;Web;研究性学习;教学网站
Keywords:projectmanagement;Web;study;teachingwebsite
前言
软件行业是一个极具挑战性和创造性的行业,软件开发是一项复杂的系统工程,牵涉到各方面的因素,在实际工作中,经常会出现各种各样的问题,甚至面临失败。如何总结、分析失败的原因,得出有益的教训,对一个公司来说,是在今后的项目中取得成功的关键。
1.项目管理在软件开发中的应用的成因
目前我国大部分软件公司,无论是产品型公司还是项目型公司,都没有形成完全适合自己公司特点的软件开发管理模式,虽然有些公司根据软件工程理论建立了一些软件开发管理规范,但并没有从根本上解决软件开发的质量控制问题。这样导致软件产品质量不稳定,软件后期的维护、升级出现麻烦,同时最终也会损害用户的利益。
随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程中,应用开发的项目管理日益受到重视。
2.软件项目管理常见问题及解决方案
(1)缺乏项目管理系统培训
在软件企业中,以前几乎没有专门招收项目管理专业的人员来担任项目经理,被任命的项目经理主要是因为他们能够在技术上独当一面,而管理方面特别是项目管理方面的知识比较缺乏。
解决方案:项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。
(2)管理意识问题
部分项目经理不能从总体上把握整个项目,而是埋头于具体的技术工作,造成项目组成员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。有些项目经理没有很好的管理方法,不好安排的工作只好自己做,使项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。
解决方案:加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。
(3)项目计划意识问题
项目经理对总体计划、阶段计划的作用认识不足,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。
解决方案:计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。
(4)沟通意识问题
在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;有些人没有每天定时收邮件的习惯,以至于无法及时接收最新的信息。
解决方案:制定有效的沟通制度和沟通机制,提高沟通意识;采取多种沟通方式,提高沟通的有效性。通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如:除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。
(5)项目干系人问题
在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、工作职责等没有足够了解以至于无法得到完整需求或最终经权威用户代表确认的需求;或者是多个用户代表各说各话、昨是今非,但同时又要求项目尽早交付;项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。解决方案:项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。
(6)风险管理意识问题
有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。
解决方案:通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法,掌握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。
总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。
(7)项目团队内分工协作问题
项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任分工不够清晰而造成工作互相推诿、责任互相推卸的现象;有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰,但是各项目成员只顾完成自己那部分任务,不愿意与他人协作。这些现象都将造成项目组内部资源的损耗,从而影响项目进展。
解决方案:项目经理应当对项目成员的责任进行合理的分配并清楚地说明,同时应强调不同分工、不同环节的成员应当相互协作,共同完善。
关键词:移动应用软件;智能终端;实践教学;教学改革
随着信息技术的快速发展,智能手机、平板电脑等移动电子产品越来越普及。移动智能终端的应用程序(即APP软件)开发人才需求越来越多。手机应用软件的开发作为一门新的技术,许多高校的计算机相关专业都开设了该课程。根据我校的该课程的实践教学改革情况,进行讨论。
1移动应用软件开发技术的现状
移动应用软件开发依赖于移动终端操作系统,主流的移动终端操作系统平台:Microsoft公司的Windowphone;Google公司的Android;Apple公司的iOS等。不同的硬件环境具有不同的移动操作系统,需要不同的软件开发环境。常见的移动应用程序有三种类型:1)原生应用程序:原生应用程序是某一个移动平台(比如iOS或Android)所特有的,使用相应平台支持的开发工具和语言(比如iOS平台支持Xcode,语言为Objective-C或者swift,Android平台支持Eclipse或者Androidstudio,语言为Java),原生应用程序外观和运行性能是最佳的。2)HTML5应用程序:HTML5应用程序使用标准的Web技术,通常是HTML5、JavaScript和CSS。这种只编写一次、可到处运行的移动开发方法构建的跨平台移动应用程序可以在多个设备上运行。但存在一些重大的局限性,具体包括会话管理、安全离线存储以及访问原生设备功能。3)Hybrid应用程序:把HTML5应用程序嵌入到一个的原生容器里面,集原生应用程序和HTML5应用程序的优点与缺点于一体。另外,微软公司最近开发了Xamarin系统,它是用C#开发iOS、Android和WindowsPhone原生应用程序,一次开发,多平台交付。下面对三项技术做一个对比总结:我们调研了北京地区的一些高校,各高校设置的移动应用软件开发的课程名称不尽相同,选择的移动终端操作系统不同,内容也不同。我们学校最先选择的该课程是J2ME开发。然后,学校在小学期(又称为第三学期)安排了Android开发。为了不和小学期课程内容的重复,我们选择iOS开发平台,进行相关的实践教学改革与探索。
2传统移动应用软件开发实践教学情况
移动应用软件开发实践教学有一定的难度。移动应用开发与传统的PC应用程序的开发的区别在于:一方面,采用交叉编译环境,真机调试比较麻烦。调试另一方面,软件开发技术发展太快,需要不断地学习新技术。前期的实践教学相对单调,缺乏实际应用的体现。在实践教学,我们利用多媒体设备,在实验室给学生进行简要讲解和演示操作,按照开发控件(组件)进行安排实验,综合设计型实验相对偏少。这样,移动应用软件开发实践教学中,学生自主创新的机会较少,积极性也不高。
3移动应用系统实践教学改革
在实践教学过程中,为了培养学习的兴趣,不断提高学生的主动性,我们从各方不断地调整实践教学,具体做了一下探索与改进:
3.1实践课程内容改革
首先,移动应用程序充分利用移动终端的硬件资源。移动终端的硬件平台多种多样,每个平台具有丰富的外部设备资源。这里的外设设备资源是指传感器、无线技术、麦克风和摄像头等。智能手机中最常见的传感器包括加速度传感器、陀螺仪、磁力传感器、光线传感器、指纹传感器等。加速度传感器能测量手机的加速度;陀螺仪提供精确的角度信息,利用它可以判断手机在哪个方向上旋转了多少度;磁力传感器是指南针类应用用来判断地球北极的传感器;光线传感器检测环境的亮度;指纹传感器通常被用作一种安全措施,苹果iPhone的多款手机都配置有指纹传感器。加强用软件控制硬件的实践教学内容。通过丰富的传感器,去获取一系列的参数,通过网络和控制系统,控制一些外设。比如,利用无线技术(蓝牙、局域网等)进行小汽车控制、机器人控制等。其次,加强移动应用程序利用服务器端的提供的API进行应用程序开发。目前单机版的APP越来越少,许多的APP都与后台服务器进行通信。像百度、数据聚合等提供大量的API接口,鼓励学生利用这些API接口开发一系列的应用程序。最后,适当引导学生进行游戏开发。游戏产业是移动应用开发的一个最新热门发展方向。充分发挥学生的想象力,利用iOS的图形图像处理技术,鼓励学生进行游戏策划,并利用APP实现它。
3.2多样化实践教学形式
首先,引进社会培训公司参与实践教学。目前,社会上IT培训机构很多,实力也比较强,比如:达内、千峰、火星时代、蓝色互动、蓝鸥科技等。他们的教学体系、实验内容、项目实践等很有特色,他们一直关注着该方向的前沿技术,这些都是值得我们学习的。我校和达内教育集团合作,利用他们优质的培训教师和实践的开发经验,参与学校的实践教学,是我们嵌入式软件开发实践教学改革的一个重要方向。其次,通过校企合作创新实践教学基地的实践教学形式。让学生参与到科研项目和公司研发项目中,让他们接触到移动应用开发最先进的理念和开发技术。利用校企合作合作模式,探索新的实践教学体系,培养学生科研能力和软件工程项目开发能力,利用学校与企业两种不同教育环境和教育资源,采用学校教育与企业实训、实习的有机结合。在培养过程中,实践教学过程处于突出位置。最后,科研竞赛项目形式。移动应用软件开发实践教学按照软件工程的项目管理的方式进行实践教学安排,起到良好的教学效果。引入企业项目和教师科研题目,学生根据兴趣结合所学习的知识和技术,选择项目实践课程。另外,社会上移动应用开发的竞赛也比较多,组织竞赛的部门有:教育部门、科技部门、行业协会、企业等。学生参与学科竞赛,一方面给学生提供了学习新技术的机会,另一方面,学生积累项目了经验,提高了协同工作能力。这样,丰富了学生实践课程形式,也提高了学生的学习兴趣。
3.3实践教学成绩评价体系的改革与建设
首先,移动应用软件开发实践课程,采用项目验收式评价。我们不断调整学生学习的评价方法,一方面是公平公正地评价学生,另一方面,通过评价方式的调整,不断提高学生的组织协调能力以及团队协作能力等。实践考核以项目答辩的形式进行,由实验室教师组成验收小组,小组每个成员针对自己所完成的内容进行答辩。其次,强调实践过程的评价。移动应用软件开发的实验功能和性能的实现非常重要,考虑到整个实验过程的复杂性,我们更强调学生的实验过程和实验态度,培养学生科学、认真负责的精神。最后,严格要求实践报告的撰写。撰写实践报告是大学生的一项重要的技能和素质,为以后的科学研究和项目的报告撰写打下良好的基础。
4实践教学改革的成效
通过移动应用软件开发实践教学环节,学生进一步巩固和加深了课堂知识,增强了实践操作技能和实际项目研发能力。通过该门课程的实践教学改革,我们对学生的进行了调研,通过对比发现:学生对该课程的兴趣更高,学生对实践教学评价越来越高,学生就业前景越来越好。
5结语
移动终端的硬件和操作系统的快速发展,移动应用软件开发技术也在不断地快速更新。移动应用软件开发作为高校计算机和软件等专业的一门重要课程,其内容也不断的调整。这门课程的实践教学改革也在不断地推进,其教学方式和教学内容也必须与时俱进。
参考文献:
[1]骆嘉伟,李玮,殷樱.移动应用开发课程的教学设计与实践[J].计算机教育,2016(3):136-138.
[2]胡忠望,莫家庆.基于Android的移动应用开发研究[J].软件导刊,2014(11):18-20.
[3]罗怡桂.基于问题解决的移动应用系统实验教学实践[J].实验室研究与探索,2012(10):377-379.
[4]苏含江.基于HTML5的移动应用开发研究[J].网络安全技术与应用,2014(11):54,56.
[5]廖龙龙,路红.《移动应用开发》课程建设研究[J].现代教育技术,2011(12):58-61.
[论文摘要]软件质量的下降到导致了软件危机,软件工程正是为了保证软件产品质量而诞生的。首先介绍软件工程的相关概念和发展分类,然后对于软件产品质量管理功能进行说明,最后指出软件产品质量的保证一定要贯穿于整个软件产品开发的整个阶段,作为一个系统的工程来实现。
一、软件工程介绍
软件工程实质上是希望使软件系统的开发能够像工业品的生产一样,通过一系列的标准和规范,利用科学的技术,方法,工具和管理手段,以达到用较少的时间,较小的开支获得质量高,可维护性好的软件产品,使软件产品保持较高的竞争力。
随着软件工程的不断发展,对软件工程的研究逐渐划分为两个方面:
1.软件工程技术。包括对工程化的开发方法,软件开发工具与环境的研究。主要面对的问题有:适应需求分析的不确定性、软件的可靠性和软件度量等。软件工程技术的发展出现了瀑布模型、快速原型法等方法,它们在国内外都有过成熟和成功的应用范例。随着新的软件开发技术的出现,出现了诸如面向对象的软件工程等新的软件工程开发技术,给软件工程技术的研究带来了新的研究方法。
2.软件工程管理。包括质量管理,费用管理,配置管理等。主要面对的问题有:开发成本的控制、资源控制、质量的控制和进度的控制等。但是由于人们长期认为软件工程的发展主要由软件工程技术决定,所以导致了对软件工程管理研究长期落后。
面向对象的思想可以使对现实系统的抽象更加直观,更符合人类的感知和经验,从而使从需求到分析到设计的过渡更加平滑和自然,还有利于整个软件系统的重用和维护。面向对象的思想和技术发展迅速并日臻成熟,采用面向对象的思想和开发方法对解决大型软件系统的开发和设计具有得天独厚的优势。
二、软件产品质量管理
软件质量的管理主要是对软件开发过程的管理。目前国外的很多软件开发企业,对软件开发的管理已经成熟,相对而言,国内的软件开发行业对软件开发的管理始终处于比较低的水平。一方面是由于国内对软件工程的研究起步较晚,另一方面是思想观念陈旧,还没有对软件过程的一些先进思想,尤其是对软件开发过程管理的思想予以高度重视。不过国内一些软件开发企业的管理人员已经开始关注软件质量的管理,甚至已经进行了软件质量体系国际标准化认证的工作。
软件的质量管理包括对软件产品的管理和对软件开发过程的管理。软件产品包括最终的软件产品、中间软件产品和附属软件产品。传统的观点认为软件产品的质量主要取决于软件产品的测试和确认,而忽视对软件开发过程的重视。但正确的认识是软件质量来自于正确的软件设计和正确的实现过程,而不是靠对软件产品的保证和测试。因此软件质量的提高依靠软件质量管理水平的不断提高。
ISO9000系列的标准起初是用于工业企业和工业产品的质量管理和质量认证。这一系列的标准认为“所有的工作都是通过过程来完成的”,它通过对产品质量形成的每个阶段的控制来实现对最终产品质量的控制。由于软件开发自身的特点,一些活动与开发过程的特定阶段有关,而另一些活动则可能适合于整个开发过程。因此ISO9000系列标准中后来专门增加了一个指导性的文件,用于对ISO9000系列标准在软件的开发、供应和维护中的使用提出指南。
三、软件工程如何保证软件产品质量
软件开发所关心的问题是真正地将软件工程技术纳入工业化大规模的实施进程中,这种方法的关键要素包括在能支持渐进的变化的开发过程中,使系统的开发过程的各个阶段能够简单易行、彼此平滑过渡,系统模型易于理解,易于维护,能够最大限度地重用已有的成果。面向对象的技术为实现以上目标提供了强有力的支持。
日本的着名软件质量专家KAORU ISHIKAWA指出了质量工作的六个特征:全公司范围的质量控制;高层管理者和结构的质量控制监督;教育和培训;质量周期活动;统计方法的应用;全国范围的质量提高活动。
从中可以看出,质量提高必须是全企业甚至是全社会的责任。质量管理的目的在于最终消除一切可能的缺陷,缺陷产生主要来自工人和管理。由工人造成的缺陷比较容易解决,只要有培训部门对工人专门培训,让工人知道去做什么,知道自己工作产生的结果,以及懂得控制结果的方法就可以阻止工人生产的产品出现缺陷。然而,管理产生的缺陷往往易被忽视。由于管理上的漏洞,往往会形成管理上的空缺,使工人无法满足上述三个条件而造成产品缺陷。而且,软件开发是一个渐进的过程,需求也是一个循序渐进的过程。对软件产品的测试也不可能很全面,必然存在隐藏的缺陷。因此,一套有效的管理程序非常重要。
质量认证部门负责企业内部质量认证的工作,质量认证是对企业的质量管理水平进行评估的行为,分内部和外部认证。外部认证获得通过后往往可以获得国际上的质量认可,内部认证是一种主动行为,是对自身质量管理水平的考验,能不断提高企业自身的质量水平。
质量管理程序是提高过程质量的一套科学方法.产品质量的提高来自于对生产过程的不断提高。对产品的测试和评估不能换回产品的质量,质量是在产品生产的每个阶段中创造出来的。因此只有提高产品生产的整个过程的质量,才能真正地提高产品的质量。完善的软件质量管理程序有以下几方面的内容:
(1)软件产品质量需求的建立。这种需求首先必须精确地反映用户所有的需求,同时必须把这种需求转化成形式化的标准的需求说明。最后,必须对需求的变更进行有效地控制。
(2)建立开发、操作、维护软件的方法、过程和效率。方法的建立是指对用于开发、操作和维护工作的方法的定义,方法的实现是通过制定一套实施规范来完成的,方法的支持可以通过共同的协作管理实现。
(3)建立评价软件产品质量的文件、过程、活动的方法、过程、实践和程序。评价是从质的方面进行,度量是从量的方面进行。复查、评估测试、分析、检验等活动的目的在于确认产品是否符合相关的质量要求,过程是否按要求完成等。在评价和度量标准上ISO9000标准系列可以提供一套良好的手段和评价标准。
四、总结
软件危机问题导致了软件工程的产生,而软件工程重点需要解决的问题就是软件质量问题,对软件产品质量的要求不能放到最后阶段来完成,要在软件开发的过程中采用面向对象方法和建立好的质量管理体系实现对产品的质量控制,同时结合ISO9000产品质量标准体系对软件产品进行评价和度量,力求软件产品在质量上能够取得竞争优势。
参考文献:
[1]梁洪宜.计算机软件质量和软件质量保证.广州大学学报(综合版). 2001年5月.
【关键词】软件工程;课程设计;需求分析
一、引言
课程设计是指学生在学完相关课程后,综合利用所学知识分析问题、解决问题、实现理论向实践转换的重要教学环节,也是对前期理论教学效果的检验。
软件工程专业的大部分课程设计是有关软件开发的。这就要求学生在设计过程中经历一个完整的软件开发流程:项目定义、分析、设计、开发、维护[1]。作为软件开发过程中的一个重要环节,需求分析在实际的课程设计中由于各种条件的限制往往被忽略,没有得到应有的重视[2]。针对这一问题,本文首先阐述了需求分析在软件开发过程中的重要性,分析了软件工程专业课程设计中需求分析阶段存在的主要问题,并给出了相应的解决方案。
二、需求分析的重要性
软件需求定义了系统必须具备的能力,即软件能完成什么样的功能,达到什么样的性能,这种能力体现了用户的需要和开发者对用户需要的理解。软件项目的开始,就是因为软件需求的存在,需求是项目开发的基石。
一个项目成败的关键因素之一就是对需求的把握程度,研究表明,软件项目中大部分的问题都是在需求分析阶段埋下的隐患,需求问题发现的越晚,软件维护的开销就越大。很多项目的失败,也是由于需求分析的不明确而造成的,有些项目甚至是在需求没有完全确认的情况下就开始执行了,这必然会导致成本浪费、进度延迟等严重问题。所以分析是软件开发中最为基础和重要的环节,是软件项目迈向成功的第一步。
需求分析也称需求建模,主要任务就是借助当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统“做什么”的问题,即对目标系统提出完整、准确、清晰、具体的要求[4]。分析用户需求主要过程如下:
(1)以图形描述系统的整体结构。
(2)为用户提供可视化界面供用户对需求做出评价。
(3)以模型描述系统功能、实体关系及状态转等内容[3]。
需求分析要保证需求明确,尽量避免需求描述不清楚、需求遗漏、需求互相矛盾等问题,避免在开发后期因需求问题对项目产生困扰。
三、课程设计中需求分析现状
(1)学生重代码,轻需求,急于完成可见的执行软件,大大压缩了需求分析时间。
(2)学生缺乏对所选课程设计题目相关的业务知识的了解,需求分析只是对需求的拼贴,不完善,不系统。
(3)教师缺乏实际项目经验,对需求分析的认知只是停留在理论阶段,不能在实践上给学生以高水平的指导。
四、解决方案
针对以上问题,文中给出解决方案如下:
(1)一方面转变学生对需求分析的认知误区,强调需求分析的重要性,通过一些案例及调研数据让学生了解忽视需求分析带来的严重后果,让学生重视需求。让学生了解软件项目开发工作和项目管理工作都与需求密不可分,如软件项目成本估算、进度计划、项目跟踪控制、验证、确认等工作都以需求为基础;软件设计、编码、测试最终的目的都是为了提交一个满足用户要求的可执行软件,用户的要求主要就体现在需求分析的制品上。
另一方面增强需求分析的趣味性,让学生主动参与需求分析,如选题上给学生充分的自主选择权利,或者让两个同学选相同题目(分别做不同模块),同组间进行需求分析竞赛等。
在软件开发过程中让学生记录并总结,自身项目中存在的那些需求问题,对项目产生了怎样的影响,让学生在实践中体验、总结需求的重要性,加深认识。
(2)题目选择范围上给学生更大空间,可从教师给定的题目中选取,也可学生自拟题目。因为课程设计的时间有限,需求又是一项要求精细、准确、全面的工作,所以在课设开始前至少一个月,让学生预先选好题目,进行需求调研、分析工作。需求分析开始前,由教师预先规定应分析什么,如:软件功能需求、性能需求、可靠性和可用性需求、接口需求、系统约束等;采用什么样的分析方法,建立什么模型,如:功能模型、数据模型、行为模型等;及最终要形成软件需求规格说明,该文档模板由教师提供。任何软件需求都离不开其涉及到的业务领域,因此也要要求学生对业务领域相关的标准模型进行分析和研究,对业界的一些标准和最佳实践进行熟悉,对业务领域进行大量调研。这样才能让才能分析出真正的需求,否则需求就会脱离实际。
(3)作为教师不但要有扎实的理论知识,还应具有较强的实践经验,指导学生完成由理论知识向实践技能的转换。所以在选择课程设计教师的一个重要条件就是教师要有软件项目开发经验及管理经验[5],熟悉软件开发的各个环节。若教师本身不具备这样的能力,也可以通过加强教师培训,让教师到企业中实习的方式来提高教师实践指导水平,通过考核的教师才可以指导课程设计。
五、结论
总之,需求分析是软件开发过程中非常重要的一个环节,是项目所有活动展开的基石,在软件工程专业软件类的课程设计中,作为教师在这一环节应为学生提供有效的理论和实践指导,让学生理解需求分析的重要性,积极主动地做好需求分析工作,为后续的各项软件工程活动展开打下良好基础。
参考文献:
[1] 秦放等.案例驱动与项目导向结合的软件工程课程教学模式探讨[J].计算机教育. 2013(9):87-90
[2] 陈杰.计算机专业课程设计中的需求分析[J].集美大学学报.2009(2):89-92
[3] 韩万江等编著.软件项目管理案例教程(第2版)[M].北京:机械工业出版社,2009.48
姓名:***
出生年月: 1984/12/09 学历:本科 籍贯:四川成都
毕业院校:重庆工学院 专业:计算机科学与技术专业
毕业时间: 2007/07
联系方式: 15008****** 028-87535*** email : qinju****@***.***
个人评价
熟练掌握 java 语言;了解面向对象的思想;熟悉软件开发流程;具有良好的编码风格;有良好的团队合作精神和良好的沟通能力;做事积极主动能吃苦耐劳、能至始至终把工作放在首位;具有上进心、责任心、感恩心。
工作经历
时间: 2007-03 至 2007-07
公司:东软股份有限公司 部门:东软商用事业部
工作职责:软件工程师
项目名称: *** 投信系统
开发语言: java 、 vb 开发工具: eclipse
项目总结:
在 *** 投信系统中 , 我的主要职责是通过客户讲解需求,写详细设计、编码、写测试书、测试。这是我的第一个项目,所以在这个项目中我学到了很多的大学里没有接触到的知识 . 例如 : 自动测试( junit )、 log4j 等等。在这个项目过程中,我发现自己的编码风格、命名风格等有欠缺,所以我自学了《代码大全 2 》中的第二、第三部分。
时间: 2007-07 至 2008-03
公司:东软股份有限公司 部门:东软商用事业部
工作职责:软件工程师
项目名称: *** 航空系统
开发语言: java orcal 开发工具: pl/sql eclipse
项目总结:
在 *** 航空系统中 , 我的任务是对多个客户端发送过来的电文进行接收和解析,然后把电文传给存储过程,在存储过程中把电文转化为记录存入数据库。在这个系统中我学习到了如何把一种特殊的的日志从一般的日志中分离出来(把电文的日志与其他日志分离)、如何使用 dbunit 测试、如何使用游标,批处理,对 orcal 有了更深的理解等。我不仅学习到了以上专业的知识 , 而且让我知道了团队合作的重要性 , 让我明白了要及时的与你的队员一起探讨式样、一起研究解决方案。让我明白了发现问题时,一定要及时的与领导或客户沟通。做这个项目过程中,我发现自己对 java 的继承,接口,设计模式方面理解的太肤浅,所以我报名培训了《 thinkingjava 》、《设计模式》。
时间: 2008-03 至 2008-07
公司:东软股份有限公司 部门:东软商用事业部
工作职责:软件工程师
项目名称: *** 百货店系统
开发语言: java 、 jsf 开发工具: eclipse activereport
项目总结:
在 *** 百货店系统中 , 我的任务是做几个 jsp 画面和画水晶报表。做这个项目我学习了样式表 (css) 、 jsp 、 ajax 。利用 activereport 画水晶报表是一个既费时又费劲的事,但它使我养成了做事要细心要有耐心的习惯。在这个项目中我发现自己 jsp 用的不太熟悉,所以我现在自学 jsp. 做完这个项目后,我的 web 开发能力有很大的提高。
时间: 2008-08 至 2009-03
公司:东软股份有限公司 部门:东软商用事业部
工作职责:软件工程师
项目名称: *** 汽车系统
开发语言: java 开发工具: eclipse
项目总结:
在 *** 汽车系统中 , 我的主要任务是对文件(汽车公司运送汽车后产生的输送结果书)进行解析,并且把文件中的内容解析成单条的记录,然后把记录插入到多个关联的表中 . 这个系统要针对多个公司,所以我在详细设计时利用了模板方法模式。在这个项目中,对我学习的设计模式得到了应用 , 是我更加深入的理解了设计模式的各个模式。
专业能力
编程方面 :本人 熟悉 java 语言,精通软件工程思想, 熟悉使用 js 、 jsp 、 css, 掌握 c 语言 , 数据结构,操作系统,计算机网络、计算机组成原理,编译原理等基础知识,能熟练使用 vc++ 集成开发环境,熟悉软件开发的流程。
数据库方面 :熟练掌握基本数据库理论知识,能熟练使用 orcal;
培训经历
2005/122006/01 华迪实训基地 《社区管理系统》 职责:需求分析、编码、测试
2007/032007/06 东软集团 培训内容: java 、软件工程等。
2007/07 2007/09 东软集团 培训内容: thinkingjava 、设计模式。
个人证书
【摘要】基于远程教育和终身教育理论,通过相关文献及研究的查阅,首先分析了现有网络教学平台普遍存在的四个问题:主要包括"学习课程单向性、教学方式缺乏互动性、学习评价缺乏真实性、学习方式缺乏灵活性;设计了一个适合各种学习终端接入,适应不同教学情境的实时互动云计算教学平台。主要由内容运营平台、实时服务平台和终端服务三个子系统组成。然后对教学节目单管理、协作平台、版权保护三个关键技术的实现进行了阐述。提出了学习者身份确认、学习注意力监测、插播测试及评价的功能模块;为开放课程学习的学分认证和认可做好技术准备,最后探讨了平台的应用情境与方式。
【关键词】云计算 教学平台 设计与研究
一、软件教学云平台建设的必要性
随着IT产业的迅猛发展,软件行业目前正处于高速发展期,对软件人才的需求从过去在量上的追求转变到现在在质上的要求,对软件人才的要求越来越严格,而目前我国高校软件人才培养普遍存在的问题是毕业生不能满足企业对软件人才的需求。随着外包产业的发展,中国软件企业对从基础编程到项目管理的要求愈发提高。而软件开发是一门应用性很强的学科,需要在实践中体会。且软件公司更愿意接受有经验的学生实习,所以有自己的实践教学环境是很有必要的。
二、软件教学云平台建设原则
(一)实践性原则
软件开发是实践性很强的学科,许多理论和经验都仍然需要实践的继续检验。所以,无论是从专业教学还是从理论检验和总结的需要出发都需要首先重视实践性原则。
(二)全面性原则
软件技术作为信息化产品,软件技术与企业、个人、组织的生产、交换、生活等等方面相结合会产生大量的应用可能。同时围绕着互联网的技术创新、管理模式创新、经营模式创新、教学科研模式创新等等每天都在发生着。以传授知识、训练方法、探索可能的教学活动应该比较全面地将现有软件开发技术作为教学内容展示给学生,使其在全面了解已有件开发技术的基础上再进行思考和学习。
(三)系统性原则
缺乏系统性的原则和实验指导思想,不采用体系化的教学实验,软件开发教学实验就会成为零散的系统,仅仅针对某一个流程,或是某一项事务,这样难以让学生形成整体的全局的认识。所以,要把握系统性原则,构建体系化的软件开发实验系统。
(四)层次性原则
学习和研究需要逐步深入、循序渐进,尤其是软件开发这样的复合性学科,只有在较为全面和深入的知识准备后,才有可能对软件开发的核心规律进行认识。并且软件开发专业知识也有难易和简繁之别,所以软件开发知识的学习和实验的开展必须相应地有从简单到复杂、从单项到综合、从专项到团队的安排,要把握好层次性原则。
三、软件教学云平台建设逻辑架构与建设内容
(一)教学云平台实验室的逻辑构架
软件技术教学云平台实验室包含三大模块:软件开发模块、软件工程模块和管理平台模块。
(二)教学云平台实验室建设内容
软件技术教学云平台实验室的建设内容分为三个部分:①软件开发相关教学与实训资源;②教学与实训过程管理平台-云博教育云教学平台;③云计算平台-云博教育云基础桌面云平台。
(三)教学云平台实验室运行架构
整个实验室的运行依托于云计算平台,将云计算平台的计算资源与各种教学资源整合在一起,向用户提供各种服务。调用资源的终端可以为PC、笔记本电脑、各种云终端和平板电脑。
四、软件教学云平台建设的实践
(一)教学云平台特色
(1)产品定位。可用于学院或者全校,能够全面呈现各学院下各专业课程的教学过程进程和数据,方便教学管理。可与学校教务系统对接(如青果、正方、Blackboard等),配合教务系统将教学过程全程管理。平台使用拟QQ界面,账号与老师工号和学生学号结合,免培训,操作简单,使用便捷。
(2)产品架构。采用扩展性强,可支持大用户量(如:全校3W+学生,每学期100W+条选课数据)的客户端分布式架构,前台客户端,后台浏览器访问。标准化的云计算平台接口,可将统一的上层应用需求扩展到多中云计算平台上。提供第三方集成接口,可与考试系统、MOOC平台、网络教学平台等高校其他应用集成。
(3)教学支撑。完善的教学课程安排,实现备课、作业布置、作业提交、检查、评估等教学过程全面系统管理。教学资源库开放,支持各种形式文件和多目录复杂资源格式上传,支持教师自身资源上传,与平台资源无缝整合,充分满足教学需求。学生提交作业的无需下载,直接播放,方便老师批阅和打分。集成云桌面技术,可根据课程提供不同类型的实践环境(Windows+Linux),实现单用户、跨课程、多桌面。
(二)教学云平台教学实践意义
基于实验室教学云平台的项目教学法以学生为中心,以项目的合作探究为导向,以多元评价为手段,激发学生学习软件开发知识的动机,提高综合运用能力,适应现代社会的需要。在现行教学模式下,学生的主体地位没有得到充分发挥,学生缺乏探索精神和实践能力。基于管理平台的计算机教学法重在改变学校计算机学科教学效率不高的现状,采用项目教学法,改变传统的教育观念和学习观念,逐步建立一套教师作为学生学习的指导者、合作者和共同发现者的教学模式,必将对传统课堂教学改革产生巨大的推动作用。