软件开发项目总结范文
时间:2023-03-14 11:01:59
导语:如何才能写好一篇软件开发项目总结,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。
篇1
在进行水利信息化项目建设中,相关软件的开发项目涉及方面广,影响因素多。在传统的水利信息化管理工作中,只注重项目建设,对项目质量管理重视程度不够,项目开发直接由设计单位进行设计,经过设计评审后实施开发,在开发过程中由于各方面的沟通和协调等原因影响,使得软件开发项目频繁出现需求变更,并最终影响整体项目的实施质量和实施效率。此外,没有一个系统的质量管理体系和规范的质量管理方法使得软件开发过程中管理混乱,极易出现质量事故。因为水利信息化项目主要应用于水库、河道、堤防等关系到社会和广大人民群众安全的水利工程,一旦出现事故,将会威胁到人民群众的生命财产安全,所以必须加强对水利信息化工程尤其是相关软件开发的质量管理。水利行业的软件开发管理措施和方法都不够全面、规范,如何根据现有的知识,对水利行业的软件开发进行研究,最大限度地提升软件的管理水平,是研究重点。
2研究目的和意义
质量,通常指产品的质量,对软件行业来说,软件质量会导致整个软件的成败,一个小小的质量问题可能会导致非常致命的结果。做好软件的质量管理不但能促进项目决策的合理化、科学化,还能在项目实施过程中实现高效化、准确化,保障项目目标的最终实现,切实提高项目成功率。目前,国际上逐渐开始重视软件工程的项目管理,一系列理论和方法的出台提高了软件开发的效率和客户的满意度,为软件开发企业带来了非常客观的经济效益和社会效益。为此,以国际上的先进经验为参考,制定适合我国的软件开发的项目管理是十分必要的。分析水利信息化项目中软件开发质量的影响因素,通过对企业组织结构的优化和软件项目过程的改进,获得项目实施质量的提升,从而减少软件开发中产生的问题对开发部门造成的损失,降低开发成本,提升整体开发水平。
3影响软件开发质量的因素
就软件质量而言,影响软件项目质量包括以下两大方面因素。
3.1人的因素
软件项目的管理要以用户的想法为根本目标。产品生产就是为了满足用户的需求。一个能够满足用户需求的软件,就是一个优质的软件。客户的需求会随着开发的进行而不断调整。只有在开发的各个阶段都能满足用户的需要,达到用户的要求,这个软件的质量才能得到保证,而在软件开发过程中树立质量第一的思想就是体现在更好地为用户服务的行动上。
3.2开发流程
软件开发流程是在软件开发模式框架的指导下实施软件开发的全过程描述和定义,包括软件开发生命周期各阶段的定义、开始前提条件、参与者描述、产出物描述、完成条件等。一个合理定义的软件流程能够将软件开发模型的优点充分发挥出来,同时减少软件开发过程中产生的负面影响。
4应用分析
4.1项目开发质量目标
首先,项目总负责人向项目组成员指出水文测报软件在整体水文监测项目中的重要性,并强调质量是最优先考虑的。其次,各成员从自己的角度提出几个目标,如质量经理的目标是保证合格率、开发人员的目标是保证测试通过率等。再次,团队在一起讨论制定的目标的可行性,是否能够实现以及需要的条件。其中,每百段程序BUG数按照模块统计,本次制定的目标为每百段程序BUG数小于10处;单元测试分模块进行,本次目标为每个模块的单元测试通过率大于90%;集成测试、系统测试、验收测试为模块的集合体测试,按照百分制原则分别制定质量目标为得分80分以上及75分以上;本次软件开发项目计划工期45d,本次制定目标为在计划工期内完工;本项目概算总投资100万元,取利润10%,故目标经费使用为90万元;客户满意度按照优良中差四级评定,本次质量目标为取得客户满意度优。
4.2软件开发质量管理影响关键因素分析
4.2.1质量计划对软件开发项目质量的影响
软件的开发一般分为4个过程,即定义需求过程、预开发过程、开发过程和维护过程,通过资金使用的情况反映质量计划的影响。参考以往软件编制过程中4个阶段开发的使用情况和对开发结果影响力进行统计分析,影响力按照百分制计算,由参与软件开发的各方进行评分取平均数,100分为影响最大,0分为最小。软件开发阶段,资金在早期使用的效率最高,可以对项目结果起到比较大的影响,而软件开发计划的编制能够在软件开发的定义阶段即对软件开发的目标、组织、资金安排进行较详细的定义和计划,能够在早期按照合适的比例安排软件开发的资金,从而对结果产生比较大的影响。
4.2.2质量控制对软件开发项目质量的影响
软件开发中,发生编制错误的次数直接影响软件开发的质量。影响软件开发项目质量的因素很多,这里选取质量控制中的5个关键因素即控制点的选取、组织领导的责任、测试的规范性、环境因素以及质量计划。在此基础上,调查统计由于关键因素的原因导致软件开发发生编制错误的次数,并绘制直方图。,质量控制能够对软件开发质量产生直接的影响,集中体现在编制发生错误次数方面。
4.2.3质量保证对软件开发项目质量的影响
软件开发质量保证主要体现在软件开发的模型选择和应用上。原始的软件开发使用的是传统的瀑布模型,将软件开发项目作为一个整体进行设计,方式如图2所示。采用质量保证措施后开发模型转化为图3的形式,由图3可以看出,使用质量保证措施将每个开发阶段再次细化,可以对各个环节的变化情况加深认识,做到每个开发阶段出现的问题能够在本阶段解决,不拖入下一阶段,这对软件开发质量起到了保证作用。
4.3保证软件开发质量的措施
根据软件开发中曾经发生过的问题和预计会发生的问题,结合项目质量管理理论,使用质量管理工具,在质量计划、质量控制、质量保证3个方面对本次软件开发进行质量管理。
4.3.1软件开发项目的质量计划
(1)制作因果分析图。在进行质量计划时,首先明确质量计划的目标,即开发质量合格、便于使用、用户满意的软件,根据水文自动测报预警软件开发项目的产品说明和水务信息化建设相关规范要求,运用头脑风暴法对软件开发中可能会导致质量不合格的情况进行整理并绘制因果分析。(3)成果输出。①将总结形成的计划管理成果汇总,形成各个阶段的人员、组织、资金、资源、权限等管理计划,指导质量管理的进行;②通过一系列质量计划的管理,最终以质量计划检查表的形式输出质量计划成果。(2)编制软件开发工作流程图。本次项目开发时,分别从质量计划、质量控制、质量保证3个方面进行质量管理,在软件的可靠性、硬件的可靠性以及软件硬件结合后的可靠性方面都做了大量的工作。一方面,在项目前期阶段,通过对规划计划的质量管理,在项目初期树立正确的开发方向,从而在项目前期工作进行质量管理。另一方面,在软件的开发阶段,通过对人员和开发流程等方面的管理,实现对项目开发阶段的质量管理。最后,在项目的实施阶段中,执行项目计划,严格进行项目测试,通过演练、试运行等方式对整体项目进行质量管理。3个阶段中,每个阶段的质量管理都非常重要。软件开发质量管理流程。
4.3.2软件开发项目的质量控制
(1)质量控制点设置与管理。质量控制点是实施质量控制的重要组成部分,软件开发的质量控制点是项目质量控制的重点对象。质量控制点应选择那些技术要求高、开发难度大、对工程质量影响大或是发生质量问题时危害大的对象进行设置。依照质量控制点的要求和特点,选择了本次软件开发中相应的质量控制点。设定了质量控制点,质量控制的目标和工作重点就更加明确。在软件开发中,首先要做好项目质量控制点的事前质量预控工作,包括明确质量控制的目标与控制参数、编制开发指导书和质量控制措施、确定质量检查方法及抽样的数量和方法、明确检查结果的判断标准及质量记录与信息反馈要求等。其次,还要做好软件开发质量控制点的动态设置,随着软件开发条件的变化,随时或定期进行控制点的调整和更新。应用动态控制原理,落实专人负责跟踪和记录控制点质量控制的状态和效果,并及时向项目负责人反馈质量控制信息,保持质量控制点的受控状态。
4.3.3软件开发项目的质量保证
运用PDCA循环法进行软件开发的质量保证,在预开发阶段、开发阶段、维护阶段3个阶段进行。预开发阶段指开发团队针对开发项目招标情况对软件开发项目做出的提前处理,工作体现在下列PDCA循环中:计划,提出软件开发的整体流程;实施,开发自己的技术提案,阐明将使用的技术及所拥有的技术工艺;检查,提出检查软件质量、纠正产品中缺陷的方法;总结,根据检查结果,提出改善质量控制的计划。开发阶段是指从软件产品开发开始,到移交产品且客户对软件性能予以肯定为止。这一阶段的PDCA循环活动有:计划,开发者根据需求和风险,提出详细的开发过程、要求使用的资源以及要得到的产品;实施,由开发组织执行开发计划;检查,开发组织和客户共同检查计划与预期得到的结果的一致性;总结,开发组织根据检查结果,审查并重新认识风险,作为下一个循环的基础。维护阶段是修复软件缺陷、提高软件性能的阶段。这一阶段的PDCA循环活动有:计划,制定处理缺陷的计划;实施,处理缺陷或根据需求变化提高软件性能;检查,判断开发维护目标是否已经达到;总结,根据检查结果审查并总结。
4.4成果数据分析
通过对本次水文自动测报预警软件开发项目的质量管理,大大提升了软件开发的质量,结合软件开发前期中制定的质量目标,与以往软件开发项目进行比对,分析进行软件开发质量管理对结果产生的影响。
4.4.1百段程序BUG数分析
根据质量控制点确定的各个模块统计各模块软件开发中每百段程序的BUG数量,结合以往类似软件开发中的统计数据进行比对。
4.4.2客户满意度比对
各模块软件开发完成后,分别对客户进行满意度调查,按照优良中差进行评价,经过与类似软件开发客户满意度比对。以往软件开发项目没有进行过模块化划分,整体项目一起进行开发,开发完成后统一进行评价,无法对内部存在的不足进行查找和梳理。本次划分了模块,根据各模块的用户满意度调查,可以在以后的软件开发中有针对性地进行改进,保证项目质量的良性发展。
5结语
篇2
【关键词】项目风险管理;软件开发成功率;风险控制;问题
一、项目管理中存在的问题
(一)项目管理中的风险被忽视
项目管理的主要内容是对项目的启动、计划、执行、控制以及结尾五个部分的工作进行管理和控制,保证整个项目的正常运作。其中项目中每个阶段的工作都包含一定的风险,会给整个项目今后的发展造成严重的影响,但是往往在实际的管理工作中会忽视风险管理,并没有根据每个阶段工作的风险特点制定具体的计划,导致最后软件开发的成功率下降。
(二)项目管理没有明确的界定范围
项目管理的范围能够指明项目管理今后的工作方向,但是很多的项目管理中并没有对管理范围有明确的界定,不能根据客户的要求来制定相应的开发计划,在软件开发项目中并没有对相关的需求作一定的分析,导致需求管理工作不到位,整个软件开发项目的工作效率大大降低。
(三)风险管理人员缺乏正确的风险管理理念
项目中的风险管理工作包括风险可能性评估、风险影响的评估、风险降低、风险监控以及最后的风险确认等,这些风险条件加大了整个项目风险管理工作的难度,很难准确把握各个工作阶段中存在的风险,任何一个因素的变化都会影响到最终的结果。
风险管理人员在实际的工作中并没有树立正确的风险管理意识,工作人员不能准确把握和分析项目中存在的风险,无法及时采取措施应对风险,给软件开发项目造成巨大的经济损失。工作人员只是掌握了风险管理的工作内容,并没有真正消化工作的精髓所在,在工作中缺乏热情和动力。
(四)忽视了技术风险的管理
软件开发过程中应该理性对待先进的技术,只有对这些技术进行有效的管理才能真正发挥作用,促进项目的健康发展。在引进技术之前需要对软件开发以及先进技术有清晰的认识,根据实际发展的需要,有针对性地引进相关的技术。在技术应用过程中要加强管理,将技术与软件开发工作结合在一起。技术管理不仅包括先进技术的管理还包括团队能力的管理,一个团队的能力有时候直接决定了整个项目的成功,所以也要重视团队的技术风险管理。
二、软件开发项目中的风险应对策略
(一)应对策略的表现形式
软件开发项目中每个工作环节中或多或少都具有一定的风险,要想真正提高软件开发的成功率,必须要重视风险管理工作,对于任何一个风险因素都应该重视。为了有效减少风险对于整个项目的影响,应对策略分为以下三种:首先是风险排除,软件开发项目中的风险各种各样,在实际的风险管理工作中很难将所有的风险排除,但是可以根据实际的工作状况将一些特殊的风险及时地排除,降低开发项目整体的风险系数。
(二)有效规避风险的具体措施
1、保证沟通渠道的畅通
沟通渠道的畅通情况对于软件开发前期的设计阶段有着直接的关联,在这个期间软件开发者与客户没有进行沟通和交流,会大大增加整个开发项目的风险。软件开发者要清楚把握客户的要求,将自己设计的软件模型提供给客户,客户可以提出自己的意见和建议。软件开发方根据客户反馈的意见对自己的设计方案做出相应的调整,这样的方式能够很大程度上提高软件开发的成功率。
2、聘请专业的项目管理人才
项目管理工作在软件开发项目中占据十分重要的作用,所以聘请的项目经理不仅要具备丰富的管理经验,还需要对软件开发工作有相应的了解。项目经理能够合理安排软件开发工作,提高软件开发的效率和质量。风险随着软件开发工作的深入也在发生变化,项目经理需要准确掌握风险的变化趋势,及时采取相应的措施将风险系数降到最小,增强项目风险管理,提高软件开发的成功率。
3、提高软件开发团队的综合实力
软件开发团队的综合实力很大程度上直接决定了软件开发的风险,首先项目经理需要增强软件开发人员的专业素质,能够熟悉掌握各种软件开发的工作方法和技巧;其次是营造良好的工作氛围,激发开发人员的工作热情和内在潜能;最后是加强用户与软件开发人员的沟通和交流,借助用户的力量提高软件开发的质量,从软件的质量以及效率等方面有效地应对风险。
三、软件开发项目中有效控制风险的措施
(一)加强风险监控工作
软件开发项目中的风险监控工作主要是指对项目中各个环节工作中存在的风险进行全过程跟踪管理,并且监督风险解决以及风险规避等工作。
风险监控工作的主要内容分为三个方面,一是监控已经识别的风险,为后期风险的解决提供相应的依据;二是对风险的规避以及风险管理工作实行有效的监控,确保风险的有效解决;三是识别软件开发项目中潜在的风险,监控最主要的目的是能够及时掌握风险的变化情况,评估制定的风险计划能否真正降低风险系数。风险监控是风险控制的基础和前提,只有准确把握各种风险信息,才能保证风险控制工作的有效性和合理性。为了保证风险的有效控制,必须要对软件开发项目中的每一种风险进行监控,将不同类型的风险按照重要性排序,实现风险项目的规范化管理。
(二)重视软件开发项目的创新风险的控制
软件开发这个行业具有较高的技术含量,随着科学技术的发展也在不断地完善和更新,在实际的应用和操作中存在太多的不确定因素,不同的软件开发项目面临的风险也存在一定的差异,所以必须要对软件开发项目各方面的风险因素进行识别和控制。
四、总结
项目风险管理与软件开发的成功率有着直接的关联,软件开发项目中的风险因素能够得到有效的管理和控制,才能更好实现软件开发的目的,获得更大的经济效益。在实际的风险管理工作中一定要掌握正确的方式,不仅要及时应对发生的风险事件,更重要的是要加强平时的风险预测和控制工作,降低风险事件出现的概率。将风险管理工作与软件开发结合在一起,通过有效控制项目中的风险因素来提高软件开发的成功率。
参考文献
[1]杨莉.软件项目风险管理方法与模型研究[D].南京航空航天大学,2010.
篇3
微创公司的成本构成主要是:工资及福利的支出、调研及维修费、业务费和市场营销所需的各项业务的费用支出、房屋及软件设备折旧、管理费用、财务费用、研究开发费用。而其中也导致了微创公司的成本方面如下几个特点:固定成本比重过大、区域成本差异化、技术变革带来的成本管理困难。微创公司为了解决其自身的成本特点问题以及为了适应由于公司业务的增长而导致的一系列问题,决定对公司的软件开发项目进行成本管理,而主要的管理由以下几个方面构成:实现软件开发项目的条件、确定成本估算对象、设置管理的组织机构、软件开发实施阶段成本跟踪和控制。(1)项目资源的安排:通过使用公司内部的公用软件,可以在不增加成本的情况下实现项目人员的交流和任务的分配,更好的对人力资源进行合理的分配,将目标合理的细分化,实现了成本的降低,生产率的上升,资源的再利用。(2)影响项目成本的进度管理:基于以往的项目进度管理的进度估算法和类推估算法的一系列缺点,微创企业充分利用FP技术的软件规模的度量技术来进行数据的生成,使用定额估算法和PERT计算方法对项目的历时进行估算,达到了项目进度管理的目的,使管理工作合理分配资源,发挥资源的最佳作用,提升了工作的效率,使项目能够按时完成。(3)项目成本的估算研究:作为项目成本管理的核心内容,微创公司对此做了细致的划分,软件成本估算主要包含以下几个方面:建立目标、计划所需的数据与资源、准确说明软件需求、详细准确的估算、估算方法的选择、比较与更新、实际的应用。(4)软件项目成本控制:对项目进行监视和操纵以使项目能够按照预期进行,使项目经理能够更好的对项目的实施过程进行了解。这一阶段,项目的制定需要严肃并合理。即使计划有特殊情况也应及时反映给有关部门,并且项目要从实际出发。而且项目在实施上还需灵活,来保证项目经理发挥其主观能动性。在经过了一系列的优化之后,微创公司形成了完整的软件开发的成本管理系统,能够系统的分析软件开发的成本问题,降低了软件开发的成本,并大幅提高了生产效率。
2微创公司软件开发项目成本管理的应用
2.1项目简介
某企业为解决管理效率地下、数据易丢失、企业难以有效对人员进行掌握和控制的问题并实现企业网的安全可靠、项目组级间的协同设计,实现知识管理和积累等一系列成果委托微创公司进行开发项目。
2.2微创公司项目软件开发成本管理系统应用
项目成本计划:将所设计项目分为5个模块分别为设计数据管理、功能接口、数据版本管理、安全管理、数据库再将每个模块按各部门管辖进行划分,再由公司财务部把总成本分配到各个模块项目经理处,最终形成完整的成本控制体系,保证了日常成本管理费用、专项成本管理费用、开发单位管理费用。项目时间估算:包括项目活动安排、绘制项目进度网络以及进行历时估算应用。将项目的开发制定一个切合实际的并可行的计划。使项目的进行更具计划性项目成本的估算:在这一阶段,对企业所需的项目进行估算可以更好的适应公司的业务需求。所以,在这一阶段中,对公司有精确的估算所取得的效果就越明显,也能带来巨大的优势。最终使企业借助此项目提高资源利用率,大幅降低成本,最大限度获取利润,能够使企业提高竞争力。项目成本控制:根据企业项目所提的安全性进行需求分析报告的生成、反馈意见的生成,并将项目的完成分为几个阶段:需求分析阶段、软件开发阶段、软件测试阶段、软件实施阶段,对其进行监控,来使每个阶段达到最大限度的利用。项目进度计划制定与控制:为了节约项目时间将项目进行分解,并根据所需的资源对其进行合理的分配计划。在实际情况中进行检查、监督以实现目标并保证项目按照原计划进行。项目收工:将项目进行测试和运行。并做好对文件资料的验收的准备,最终交付客户使用。
3总结
微创企业软件项目的开发成本管理系统从最初的具有一系列问题到经过一系列的优化之后形成的具有模范作用的成本管理系统是经过了许多相关人员及技术人员的分析与经验,微创公司的软件开发项目成本管理系统对于中小企业的成本管理具有导向作用,在当今这个软件开发如此迅猛的时代,一个软件公司的发展是与其成本管理系统分不开的。
作者:胡正元 单位:南京维数软件技术有限公司
参考文献:
[1]龚银锋.软件项目成本估算研究[J].软件导刊,2014(1):20~22.
篇4
1.1软件项目工程开发的特性
在当前的计算机项目特性可以总结成以下几个方面:第一是软件项目的开发具备不可视性,软件的开发属于一种不可触摸到的项目,要想真实感受到软件项目的真实有效性,这就需要通过专用的软件和针对性的测试方式来对其进行测试,这样才可以得知该软件是否真实有效;第二,软件工程具有不唯一性,在对软件工程试试开发和设计的过程中,其实并没有一个明确和标准的软件开发设计具体过程,软件的设计属于多样化的;第三,针对一些较为大型的和复杂的软件设计开发项目时,基本都是通过一次性设计完成的,因为软件的设计流程较为复杂,并且其研发的总工程量与开发的风险性相对较大,但是对软件工程的需求同样也是没有长期的稳定性。
1.2计算机软件工程开发管理的主要工作内容
因为计算机软件开发项目所涉及到的范围和方面比较广泛,所以增强计算机软件开发的管理是十分必要的。对计算机软件开发管理工作主要分为以下几个方面:第一,对实际开发和设计人员的有效管理。软件工程的开发和设计团队通常包含了项目总负责人员、高级管理人员以及初级软件编程人员等。初次之外,因为软件开发项目任务量的存在一定的差异性,因此经常会出现一人肩负多种职务的状况,而一个人人通常并不能精通软件开发的各个环节,造成任务完成的质量较低;第二,对软件开发质量的管理。对软件质量以及软件的具体配置的管理是非常重要的,齐管理的内容组要涵盖了软件编制整体质量、软件项目质量管理以及软件项目质量的掌控等方面;第三,是项目工程的风险掌控与管理。对计算机软件项目所存在的潜在风险进行有效的评估并且及时进行预防。
2自动化管理在计算机软件开发项目中的具体应用
2.1实际应用
在当前自动化管理技术中,通常可以运用可编程的控制器将较为复杂化的编程进行简单化,通过这种方式可以让计算机的整体性能得到非常大的提升。这种控制设施可以通过计算机基本技术作为基础,并且在此基础之上对智能化生产实施有效的管控,进而实现在实际工业生产中计算机的自动化管理。这种自动化管理技术的时机应用的范围相对比较的广泛,并且在工业生产领域当中得到了有效实现,自动化管理技术大大提升了工业生产以及工业建设的效率。自动化管理技术同样在软件工程项目开发应用当中同样也可以提升项目开发的效率。
2.2计算机辅助在软件工程中的实际应用
CAE我们称之为计算机辅助工程,其主要是通过计算机对相对较为复杂的软件工程实施计算,然后再对其实施有效性的检测。在计算机软件工程的开发过程当中,运用CAE可以对整体的工程项目有需要改动的部分进行及时有效的调整。在使用计算机辅助设计的过程中保证自动化设施操作的稳定性,再讲计算机的最终参数实施优化,再选择出最佳的调整方案。使用CAPP可以保证在软件产品的设计以及生产的过程当中,通过计算来替代人工对计算机的数据以及信息的处理操作,这样不但很大程度上节省了人工费用,并且对生产的成本也得到了有效的控制,从而保证了软件工程的整体质量。CAM可以将生产活动之前的设计方案和相关的信息转换成制造信息,再通过计算机数控的方式对产品的生产流程以及具体的包装过程实施检测,在出现问题的时候可以及时有效的进行调整。
3计算机软件工程在进行自动化管理过程中需要注意的问题
篇5
罗云青
(贵阳护理职业学院 贵州省贵阳市 550081 )
摘要:本文通过归纳总结目前C++程序设计语言下跨平台软件开发的相关技术,介绍了C++语言在计算机编程设计领域的优势和跨平台设计思想的提出与实现,运用几个实例说明跨平台软件开发在实践中的广泛应用。C++语言的可移植性和跨平台开发的项目部署,在当下主流的编程软件中已经被广泛采用,最后结合笔者见解对跨平台软件开发提出新的展望。
关键词:C++ 开发 跨平台 软件
一、C++语言的优势领域
C++语言在某些领域有着很高的地位,像科学数值计算中的数据挖掘,游戏开发里面的图形图像设计,以及在高级系统设计中的电子邮件系统,数据库系统等等都有C++语言的身影。同时,混合系统的设计和通用系统的设计问题都是C++所要解决的高层次的程序设计问题。更重要的是,Microsoft公司的很多产品都是用C++程序设计语言设计出来的,像Windows XP,Windows NT,Internet Explorer 和Visual Studio版本下的Visual C++,Visual Basic,.NET Framework等等。这些产品在不同程度上都奠基了C++程序设计语言在程序开发中的不可磨灭的地位。
二、跨平台开发
跨平台开发是程序设计领域在近些年提出的新的要求,它源自于现代软件工程的发展。跨平台的主要目的就是要让所开发的应用程序可以在不同类型的平台上顺利运行,跨平台项目的软件在开发的时候,必然要想到软件的移植性。
在实际的软件开发过程中,C++语言的跨平台开发项目,与具有可移植性的代码,他们的核心都是高度一致的。只需要一次编写,多次编译,这样就实现了既可以在不同的设备和产品上顺利运行,又不会产生功能损失的现象。因此,跨平台软件开发几乎可以运行在不同的平台上而不需要做出其他任何的调整和修改。
目前在市面上流行的几大系统软件的厂家,像Windows,Linux,Unix等在应用程序接口的实现中存在着较大的差异,同时,它们实现的细节和原理也存在着较大的差别。就连目前开源的操作系统代码Linux也与其他类似的软件差别甚远,那么,跨平台软件开发就迫在眉睫,只有能适应所有的操作系统应用程序的软件才有生存的价值。相对而言,要实现程序设计语言在不需要修改代码的情况下做到跨平台,就需要更加抽象的语言表达能力和较低的硬件控制力。那么,是如何实现能在多种系统中运行的软件呢?C++语言下跨平台软件开发就是一个很好的实例。
三、C++语言跨平台软件开发的实现
(一)跨平台设计思想与整体思路
任何一个好的跨平台软件开发的实现,主要还是对整体设计的把握,跨平台程序设计要求实现与平台无关的代码,在设计和编写的过程中,还要对软件的架构和整体配置的合理性问题作出考虑。
篇6
引言:
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展。个人住坊式的软件开发已经不能适应现代企业对软件工程的需求。因此,怎样对软件项目进行有效的管理是急需研究的课题,国内外专家学者也展开了相关的研究。
张家浩以现代软件工程为核心,系统分析了项目管理领域中软件项目存在的问题,提出在理想和现实之间选择平衡点的建议和方法。林锐编写的《IT 企业项目管理:问题、方法和工具》一书为IT企业提供了专业性很强、行之有效的项目管理方法和相应的工具,解决了大多数IT企业的软硬件开发项目管理混乱、质量低下、进度延误、费用超支等问题。哈罗德・科兹纳在《项目管理:计划、进度和控制的系统方法》一书中讨论了时间管理、冲突管理等问题,分析了影响项目成功的因素。石慧运用动态规划的思想和网络计划的方法,利用马尔可夫链模型进行软件项目进度预测,对软件开发项目中的计划和控制应用进行研究,构建了一个并行的IT项目进度马尔可夫链预测模型。
1、软件项目管理的概念
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,通过计划、组织、控制等一系列活动,合理地配置和使用各种资源,对成本、人员、进度、质量、风险等进行分析和管理,以达到既定目标的过程。项目管理可以让一个项目获得高额的盈利也可以让一个项目损失惨重,而软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,其根本目的是对软件开发的各个阶段进行管理,增强对软件开发的控制能力,提高软件开发质量编码的影响力。企业的软件生产越趋向于成熟,企业越能够稳定发展软件因其复杂性和难以度量,使软件项目管理较之其他项目管理而言有其特殊性。
2、软件开发中的项目管理的必要性
现在的软件开发过程中,存在着诸多的不确定性因素,而为了能消除不确定性,提升软件的稳定性、可靠性,就需要对软件进行项目管理。软件项目管理的对象是软件工程项目。它所涉及的范围覆盖了整个软件工程过程。软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员、产品、过程和项目进行分析和管理的活动。软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个软件生命周期都能在管理者的控制之下,以预定成本按期,按质的完成软件交付用户使用。这种管理在技术工作开始之前就应开始,在软件从概念到实现的过程中继续进行,当软件工程过程最后结束时才终止。软件项目管理和其他的项目管理相比有相当的特殊性。首先,软件系统的复杂性也导致了开发过程中各种风险的难以预见和控制。其次,软件是纯知识产品,其开发进度和质量很难估计和度量,生产效率也难以预测和保证。庞大的系统如果没有很好的管理,其软件质量是难以想象的。
3、开发中的项目管理方法
3.1、调查。
(l)调查市场。对一个软件项目经理来说,他的职责主要在于调查同行业同类产品,分析现有技术,以便构建合理而又有充分扩展性的软件结构。同时,项目经理还有义务协助上级主管向公司决策层提交项目市场前景分析报告。
(2)调查自身资源。主要是调查项目组成员的技术实力,工作状态,还有其它相关人员的支持度。一个项目的成功,不仅仅需要一个优秀的项目经理,还需要项目发起人、项目组成员和其它相关人员的共同努力,才能实现项目的预期目标。
(3)调查客户需求。这是最关键也是最重要的环节。任何一个软件项目都是针对一定的使用对象而开发的。作为项目经理,必须充分了解客户的现有资源、工作方式、工作流程以及使用习惯。值得注意的是,很多项目经理往往容易忽视客户的使用习惯,以至于开发出来的产品虽然功能齐全、界面友好,但却无法取得用户的认同。
3.2、严控变更。一个项目在实施过程中,总会遇到很多需要变更的地方。要想有计划地管理好变更,就必须具备健全的变更控制系统。应由项目实施变更小组之类的组织来负责项目变更的可行性论证,进行最终的变更确认,也由它来决定一个项目是否应该终结。
3.3、阶段总结和评审。一般来说至少要进行两次全体评审。第一次评审是由项目负责人完成信息系统计划、信息系统分析、信息系统设计之后,提交出软件模型,再交由项目专业技术组讨论评审。软件模型必须包含主体的功能界面。典型客户在其中扮演着重要的角色,只有他们才是最有发言权的评审成员。待项目结束之后,再由技术小组对其进行终审。
4、影响软件开发中的项目管理因素
4.1、成本。指完成项目需要的所有款项,包括人力成本、原材料、设备租金、分包费用和咨询费用等。软件开发项目中人力成本比例很大,而工作量又难以估计,因而制定预算难度很大。项目的总成本以预算为基础,项目结束时的最终成本应控制在预算内。
4.2、人。指参与项目管理及具体软件开发活动的所有人员。在项目管理中,人是一个非常重要的要素,由人来确定项目目标、推动项目进程、使用项目成果创造价值,而且软件项目中的人力成本也经常占总成本的相当比例,因此人的因素往往决定了项目的成败。
4.3、时间。项目时间相关的因素用进度计划描述,进度计划不仅说明了完成项目工作范围内所有工作需要的时间,也规定了每个活动的具体开始和完成日期。项目中的活动根据工作范围确定,在确定活动的开始和结束时间还要考虑他们之间的依赖关系。
4.4、质量。是指项目满足明确或隐含需求的程度。一般通过定义工作范围中的交付物标准来明确,交付物在项目管理中有重要的地位。定义这些标准包括各种特性及这些特性需要满足的要求,因此,有时还可能对项目的过程有明确要求,比如规定过程应该遵循的规范和标准,并要求提供这些过程得以有效执行的证据。
4.5、范围,也称工作范围,指为了实现项目目标必须完成的所有工作。一般通过定义交付物和交付物标准来定义工作范围。工作范围根据项目目标分解得到,它指出了完成哪些工作就可以达到项目的目标,或者说完成哪些工作项目就可以结束了。
结语
软件项目管理是一件十分繁琐的任务,其直接影响着项目的成败,所以,在实际的项目开发过程中,只有加强对项目的管理才能使整个软件开发顺利完成。在软件项目管理活动中,既要研究技术层面的问题,也要仔细考虑认识层面的问题,成功的软件项目开发一定是两者相辅相成的结晶。软件项目管理是软件开发过程中的一项重要工作,管理水平的高低、管理工作是否规范将对软件开发的质量、效率、成本起着决定性的作用。目前,我国软件项目管理水平参差不齐,一些软件开发单位、软件项目管理者管理水平有限,导致开发出的软件产品质量低下和成本浪费。尽快提高软件项目管理水平、规范软件项目管理工作已成为一些开发单位和管理者的当务之急。当然,随着应用水平的提高,我们可以适当运用项目管理软件来指导、管理项目的实施,并且在管理过程中不断学习先进的软件项目管理方法,提高软件项目管理水平,这样才能开发出真正满足企业、用户需要的实用的软件产品。
篇7
关键词:企业内部软件开发;敏捷开发;实施的重要性;信息系统集成;客户价值
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)35-2490-03
Internal Software Development of Enterprises: Features and Patterns
CHEN Yuan
(Computer Center of Vice President Office, BYD COMPANY LIMITED, Shenzhen 518116, China)
Abstract: An enterprise's internal software development organization have common interests with the enterprise. It cans communicate with users agilely and will manage the information system for long. Therefore, the internal development of enterprise should follow some kinds of agile patterns; should consider integration with existed systems at the prior period and emphasize implementation at later period. The importance of enterprise’s internal software development need be realized by software industry.
Key words: internal software development of enterprise; agile software development; importance of implementation; integration of information system; customer Value
在现代企业中,信息系统已经越来越成为企业管理的重要支撑。因应各种业务需求对软件系统的要求,大多数企业都形式不同地建立了自己的软件开发团队,视企业的规模从一两个兼顾支援网络硬件、进行简单开发的人员到大规模的专业软件开发组织都有。通常说来,大多数企业内部开发团队是企业内部辅助主营业务的、非赢利性的组织。这类带有普遍性的企业内部软件团队是本文的关注点。
和专业软件公司开发过程一样,企业内部软件开发也涉及对过程、工具、质量、人员等各个层面的管理问题,所以目前成熟的或者正在探讨中的各种软件开发模式都可以被企业内部软件开发借鉴和参照。但是,在服务、非赢利的前提下,企业内部软件开发的各方面都有有别于专业软件公司的特点。目前关于企业内部软件开发模式和管理的探讨比较少,很多人,甚至企业内部开发团队的成员本身,都没有明确企业内部软件开发和专业的软件公司开发工作的不同,在项目管理、文档控制等方面经常教条的模仿专业软件公司的开发模式。这种认识上的模糊性削弱了企业内部软件开发团队在软件的生命周期中本来具有的优势。
1 企业内部软件开发的特点
企业内部软件开发有什么值得注意的特点呢?以下通过在几方面和专业软件公司对照的方法来进行一些分析:
1.1 软件开发团队和用户的利益关系
专业软件开发公司和用户是商业关系,直接目的是销售产品和服务获得收益,用户本身的收益和软件公司不是明确相关的。虽然大部分软件公司从产品和产业长期发展的角度都把类似“实现客户价值”这样的价值观列为公司的主要宗旨,但实际操作中很难彻底摆脱商业关系,在开发的各个环节受制于开发费用等商业因素。而企业内部软件团队的收益和生存直接和企业联系,业绩考核也是和企业目标相联系的。这是一个本质的差异。
1.2 软件开发项目所处的系统环境
企业的软件系统往往多样和复杂的,针对企业的软件开发项目面对的大多是一个已经存在很多信息子系统的软件环境。如果由专业软件公司单独来定制开发企业软件,因为是阶段性的参与企业信息系统,所以除非客户有明确的界定,否则很难设身处地的,从信息系统的整体长远发展来考虑需求和建立方案。如果专业软件公司开发的是通用的商业软件,更不可能预见最终用户的系统环境。对比之下,企业内部IT部门相对熟悉业务并且要长期经营整个信息系统,所以在每个开发项目中都需要从全局角度和长期角度来考虑项目的必要性和方案细节,要考虑和已有系统的集成。
1.3 开发过程中和直接用户的交互关系
企业内部IT部门和用户部门是同一组织内不同职能机构的关系,企业内部软件人员和直接用户是同事关系。和专业软件公司比起来,这一点又引起很多用户交互方面的重要的差异。
1.3.1 沟通方式和沟通效率
内部软件团队可以方便的召集用户、灵活的协调时间、有丰富的途径和平台来协调各种问题。项目完成后用户和软件开发人员仍然会长期共处,可以不断地交流并对软件进行改进。而专业软件公司在和用户打交道的时候受限于很多商业因素,沟通效率通常远低于企业内部软件团队。
1.3.2 需求分析和需求变更管理
开发过程中用户的需求往往是模糊和多变的,除了实际使用环境的不确定因素,用户对IT的理解和对资料的整理水平不足也是引起需求多变的重要原因。 专业软件公司虽然有专业的分析人员和方法,但由于商业关系和业务复杂性,常常无法深层次地介入用户的实际工作层面,进而全面理清那些用户的需求是合理的,那些是不合理的,那些是可以简化的,那些是需要加强的….,等等。面对强势的客户更是没办法从合理的角度对需求进行梳理。为了控制项目的进度和人力资金投入,软件公司往往不得不通过成文的方式对需求进行界定。另外出于“专业表现”的要求和商业利益的需要,软件公司也会有意无意加入一些可能不见得切合实际的需求目标。这样最终软件会出现整体或部分偏离实现客户价值的方向的可能。而在企业内部软件开发团队主导的项目中,用户对项目的需求更强调实用性和、方便性和快速见效。用户对将来需求变化引起的沟通和商业上的麻烦不太担心。企业内部开发团队经常可以根据实际业务需要对用户的要求进行否决和更改,也可以在用户要求之外增加系统目标。
1.3.3 软件的测试和交付过程。
企业内部软件团队可以方便的从组织上把用户当作测试团队的一部分。在确认软件功能基本完成,没有根本性缺陷的情况下,可以比较早的当作软件项目已经的交付。更多的测试可以放在开始使用之后的长期运行过程中进行。专业软件公司在和用户配合测试方面则比较复杂,引入用户、计划和协调等都没有企业内部软件部门容易,交付也要严格的多。所以通常软件公司在测试方面投入的人力和成本要比企业内部软件团队多很多。
1.4 软件开发的规范
专业软件公司开发的大多是中大型的、商品化的软件产品。在设计开发过程中有很多在结构规范、通用性、界面美观、文档完备等方面的要求,开发周期也都较长。而企业内部开发大多为中小型的软件或者是基于已有大型应用系统的二次开发,注重实效,注重量身定做,注重速度,对文档和通用性等方面的要求比较灵活。
1.5 其他可能的差异。
企业内部软件开发团队的规模通常比专业软件公司小,组织上的分工不象专业软件公司那么完整,各种资质的评估和认证要求也不迫切。
以上这些不同大多是显而易见的,但是对软件开发过程的影响却是根本性的,企业内部软件开发需要在认清自己定位和处境的情况下,建立更加适合自身及企业利益的软件开发模式。
2 企业内部软件开发和敏捷开发思想
有必要提一下近几年新兴起的敏捷开发思想。作为对一直以来软件工程各种模式中条块分割清楚、文档繁琐、周期冗长等问题的突破和尝试,敏捷开发思想近几年越来越引起软件开发机构和开发人员的关注。根据敏捷思想创始者们宣布的敏捷开发宣言,敏捷开发的价值观和原则如下:敏捷软件开发价值观的表述:
人和交互重于过程和工具。
可以工作的软件重于求全责备的文档。
客户协作重于合同谈判。
随时应对变化重于循规蹈矩。
敏捷软件开发的12条原则:
对我们而言,最重要的是通过尽早和不断交付有价值的软件满足客户需要。
我们欢迎需求的变化,即使在开发后期。敏捷过程能够驾驭变化,保持客户的竞争优势。
经常交付可以工作的软件,从几星期到几个月,时间尺度越短越好。
业务人员和开发者应该在整个项目过程中始终朝夕在一起工作。
围绕斗志高昂的人进行软件开发,给开发者提供适宜的环境,满足他们的需要,并相信他们能够完成任务。
在开发小组中最有效率也最有效果的信息传达方式是面对面的交谈。
可以工作的软件是进度的主要度量标准。
敏捷过程提倡可持续开发。出资人、开发人员和用户应该总是维持不变的节奏。
对卓越技术与良好设计的不断追求将有助于提高敏捷性。
简单――尽可能减少工作量的艺术至关重要。
最好的架构、需求和设计都源自自我组织的团队。
每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为。
从罗列的这些原则来看,敏捷开发思想强调激发人的主动性和协作,强调去除不必要的文档和设计,强调顺应需求的变化,强调尽快的交付阶段成果和持续改进开发。对于专业软件公司来说,要实践敏捷思想里提出的拥抱变化、客户密切协作、不断交付等理念,有赖于软件开发之外的客户关系处理等工作,有赖于商业元素和客户价值的平衡,在实践中要做到并不容易。
相比之下,对照前文提到的企业内部软件开发的特点,可以看出敏捷开发思想和企业内部软件开发有着近乎天然的联系。事实上很多企业内部软件开发过程都有意无意的和敏捷开发思想相贴近。但是因为指导思想上的模糊,使得很多企业内部软件开发中可以利用的优势被教条地搬用“规范”过程和标准所限制。相信随着对软件开发过程认识的加深,敏捷开发思想会对企业内部软件开发会带来越来越大的影响。
敏捷开发只是一种理念,并不是对瀑布或迭代等方法的颠覆,而是一种启发和演进。对于它的原则不同人有不同理解,实践起来也有各种不同的模式。目前已经有很多基于敏捷开发思想的方法被提出并经过一定实践,但都不能作为标准。总的来说,敏捷开发思想本身仍然是站在专业的、面向客户的商业化开发环境角度提出的。企业内部软件开发还需要根据实际情况,参照敏捷开发思想,对各种软件开发方法进行取舍,摸索更加适合自己的模式。
3 企业内部软件开发的模式。
企业作为软件的直接使用者,实际业务上的变化和管理上的调整变革会频繁地引起对软件系统的变更要求。企业内部软件团队需要管理自行开发软件的整个生命周期和购买的大型应用系统后的生命周期,所以宏观来看,企业内部软件开发是一种持续开发的类迭代模式。而对每一次阶段性的开发项目,则需要根据项目的规模,结合敏捷的思想,灵活地掌握开发过程。
和专业软件开发公司一样,企业内部软件开发团队同样要建立文档代码管理、项目管理、质量管理的各种制度和工具,但形式上可以更加注重实用性和有效性。另外和专业软件开发公司相比,企业内部软件管理需要特别加强用户队伍的建设,争取使用户成为信息系统的有机组成部分,这样对信息系统和企业业务都有不可估量的正面影响。
软件工程归结的几个基本的阶段:规划和计划、需求分析、设计、编码和实现、测试、维护和支持,对所有项目和阶段都是适用的。仔细观察目前林林总总的软件开发模式,都可以辨认出这几个阶段,不同的是每个阶段的引入时机或持续长度。对于企业内部软件开发来说, 因为企业内部软件团队的目标和企业的目标一致以及内部软件团队的特殊位置,所以在这些经典的开发阶段之外,还应该加入一些其他的重要阶段或需要特别关注的内容:
1) 首先应该加入的阶段是实施阶段,这是一个在经典软件工程模型中被弱化的阶段,经常被列入交付或者支持的范畴。对于商业化的开发来说,客户或其他评审机构评审验收合格,软件开发已经基本完成。所谓实施就是给用户培训,后面用户怎么用是用户的事。如果是大型应用系统,如购买的ERP、PLM、SCM、CRM等系统,实施过程大可另做项目或交给专门的第三方实施公司。但对使用企业来说,实施非常重要。即便是小型软件,如果没有后续的推进、进度控制和项目协调,都很可能“用不起来”或者“用的不好”。这样对于企业来说软件仍然是没有完成的。明确独立的实施阶段,可以使软件开发团队在实施的组织和方法论等方面更加专注。
2) 其次是系统集成分析。这一工作通常是覆盖规划到系统设计阶段的工作,可以加在规划或需求分析等阶段内部,也可以单独列出。对于已具备一定规模的企业信息系统来说,这一工作需要特别强调和严格引入。主要内容是对照信息系统的整体规划,考察新开发项目和现有系统的集成。即便没有明确的信息系统整体规划,也要在分析用户需求和系统设计时,时刻注意把需求放在系统集成环境下进行功能定义和功能分配。用户对系统集成大多是没有考虑的,商业模式下的软件开发方法也很少提及。但这是企业内部IT应该进行的工作。忽略这个集成分析,随着时间积累,将造成信息系统即使局部很高效和很完备,但整体上却臃肿和低效率,进而使企业在实际管理上承担难以估计的代价。
综上所述,可以把企业内部软件开发模式大体框架按图1表示。
这是一种注重企业内部环境,注重企业的业务价值,敏捷的开发模式。
各个企业内部软件团对所面临组织环境和系统环境千差万别,各个具体项目有各自的特殊情况,所以不可能存在一种普遍适用的具体开发模式。各个企业内部软件团队要根据自己的实际情况开发,逐步建立自己的开发方法和全面的系统支撑环境。
4 结束语
从分工的角度来看,独立于使用企业之外的专业软件组织的存在是必然的。专业软件组织在软件本身的开发规范和开发技术等各个方面,都具备非专业组织无法达到的深度和广度。但是,软件开发过程的管理和控制是一个非常复杂的领域,这种复杂性不仅来自软件开发本身,更来自于需求的复杂、需求的多变以及很多其他超出软件领域本身的因素。软件工程实践中反复探索但仍然长期困扰从业人员的诸多问题,例如需求难以控制、软件品质难以控制、预算经费难以控制、项目进度难以控制等,都不能单纯靠专业软件人员或软件组织来解决。另外一个软件的成功与否,最终还是要通过实现客户价值来体现。而如何实现客户价值,也不是纯粹的软件问题。
企业内部软件团队在解决这些超出纯粹软件开发的问题时,有着自身特殊的优势。目前对企业内部软件开发特殊性的研究是软件工程研究方面比较弱的一个领域。从整个软件行业来说,进一步还应该研究企业内部软件组织和独立运营的专业软件组织之间的配合。这些研究对突破各种软件开发困境将会是非常有意义的工作。
篇8
of the project management
内容摘要: 随着信息产业的飞速发展,项目管理对于以应用开发为主的软件企业是一个行之有效的管理方法,项目管理在软件开发中的应用日益受到重视。本文主要通过对项目管理在软件开发中的应用的成因、存在的问题以及相应的解决方案进行了分析和论述。
abstract content : with the development at full speed of the information industry, the project management is an effectual office procedure to the software enterprise relying mainly on application and development, the application in software development of the project management
is paid attention to day by day. this text has been analyzed and described
through the origin cause of formation , existing problem and corresponding
solution of application to the project management in software development
mainly.
关键词:项目管理,软件开发
key words: project management , software development
如果用两个字概括当前社会的特点,那就是“变化”,而这种变化在信息产业中体现得尤为突出,技术创新速度越来越快,用户需求与市场不断变化,人员流动也大大加快。在这种环境下,企业需要应对的变化以及由此带来的挑战大大增加,也给管理带来了很多问题和挑战。软件行业是一个极具挑战性和创造性的新行业,管理上没有成熟的经验可供借鉴。而项目管理应该说对于软件企业,尤其是那些以应用开发为主的软件企业,是行之有效的管理方法。因此,项目管理在软件开发中的应用日益受到重视。
项目管理的两个问题
1、什么是项目管理?
项目管理是在一定的约束条件下,以高效率地实现项目业主的目标为目
的,以项目经理个人负责制为基础和以项目为独立实体进行经济核算,并按照项目内在的逻辑规律进行有效的计划、组织、协调、控制的系统管理活动。
2、为什么要有项目管理?
没有项目管理,项目也有可能成功。但没有管理的项目,很难保证项目
的利润空间,对公司来说,亏损的风险就大。所以我们要有项目管理,以保证公司在总体上是盈利的,注意不是每一个项目都要盈利。
另外,有了项目管理,就有了管理改进的基础,无论刚开始的项目管理多么糟糕,只要有管理,就有了改进的可能性,至于能不能得到改进,以及改进的快慢,则取决于两个因素:一个是人,特别是各级管理者;另一个是利益。关键是“利益”,准确的说是“利益的分配”,在权责利明确的前提下,人才能充分的发挥作用。还需要指出的是“利益”是多元的,这里的多元不仅指利益的具体形式,而且指利益的受众是多元的,包括客户方相关人员个人的利益。
3、项目管理的发展与现状。
今天,项目管理作为一种现代化管理方式在国际上已获得了广泛的应用,从最初的国防、航天、建设工程领域,迅速发展到电子、通信、计算机、软件开发、金融等行业以及政府机关的项目管理工作。随着计算机、网络系统的迅速发展,项目管理技术的不断进步,项目管理软件产品层出不穷,其功能、特点、应用对象也各不相同。当前,越来越多的企业和组织在内部推广项目管理的理论方法及管理模式,如果都采用项目管理软件进行管理,效果就更加明显,可以节省大量的资源和财富。国外90%以上的项目管理都采用软件进行,但我国在这方面的应用还不到10%。新世纪项目管理在
项目管理在软件开发中的应用的成因
随着信息技术的飞速发展,软件产品的规模也越来越庞大,个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。各软件企业都在积极将软件项目管理引入开发活动中,对开发实行有效的管理。从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。同时,随着软件开发规模及开发队伍的逐渐增大,软件开发不再是向过去那样一二个开发人员即可解决的事情。迫切需要一种开发规范来规范每个开发人员、测试人员与支持人员的工作,每个项目组成员按约定的规则准时完成自己的工作。同时采用规范化管理,专业分工也可以降低对开发人员的要求,从而降低产品研发成本。
软件开发是一项复杂的系统工程,牵涉到各方面的因素,实际工作中,经常会出现各种各样的问题,甚至面临失败。如何总结、分析失败的原因,得出有益的教训,对一个公司来说,是在今后的项目中取得成功的关键。
早在20世纪60年代中期,人们就发现软件的生产出现了“问题”,主要表现在生产过程不规范,缺乏管理。后来,人们在软件工程方法学中引入了工程的概念、原理、技术和方法,这种思想在一定程度上解决了软件生产过程中遇到的问题。但是直至80年代还是没有提出一套管理软件开发的通用原则,软件管理不善的问题依旧在大范围内存在。
目前的软件开发正逐步趋向于复杂化、多元化,大多数开发团队中都会出现同时开发多个版本、开发/维护工作并存、多地点同时开发等情况,给软件开发管理带来了前所未有的困难。如果管理不善,必将造成版本混乱,各个开发人员的工作相互交叉、干扰,整个开发团队的工作在一种无秩序的不良状况下运行,严重影响软件产品开发的进度和质量。
因此,随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程中,应用开发的项目管理日益受到重视。而项目管理技术的发展与计算机技术的发展是密不可分的,随着计算机性能的迅速提高,大量的项目管理软件涌现出来。它们可以用于各种商业活动,提供便于操作的图形界面,帮助用户制定任务、管理资源、进行成本预算、跟踪项目进度等。
软件项目管理常见问题及解决方案
对于软件开发项目中,经常出现两种极端情况,一种是创造了新的生产率和质量的纪录;一种则完全是一场灾难,不是被取消就是拖延很长时间。前者如在很短的时间内,为了赶进度,在几乎不可能的时间内开发出一套软件产品,创造了软件开发的记录,满足了上级所要求的上机日期,由于开发时间太短,过于仓促,上机时,问题百出,试运行时间长达几个月或一年半载的,而且程序一改再改,维护工作量大。
后者,如某套系统未弄清楚需求,或因设计问题,开发失败。通过提炼这些成功和失败的例子,软件项目成功或失败的根本原因可能会更清晰一些。
目前我国大部分软件公司,无论是产品型公司还是项目型公司,都没有形成适合自己公司特点的软件开发管理模式,虽然有些公司根据软件工程理论建立了一些软件开发管理规范,但并没有从根本上解决软件开发的质量控制问题。这样导致软件产品质量不稳定,软件后期的维护、升级出现麻烦,同时最终也会损害用户的利益。
分析目前项目管理需要改进的问题可以从几种相关角色的角度去考虑:项目经理、项目组成员、公司管理人员、市场人员、客户等。
问题一:缺乏项目管理系统培训 (相关对象:项目经理、管理人员)
项目经理在项目管理方面的培训较少或不够系统。项目经理或管理人员不了解项目管理的知识体系和一些常用工具和方法,所以在实际工作中没有项目管理知识的指导,完全依靠个人现有的知识技能,管理工作的随意性、盲目性比较大。在软件企业中,以前几乎没有专门招收项目管理专业的人员来担任项目经理(甚至很少是管理专业的),被任命的项目经理主要是因为他们能够在技术上独当一面,而管理方面特别是项目管理方面的知识比较缺乏。
解决方案:项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。应实行项目经理知识技能资格考核制度,让项目经理自觉补充学习项目管理的知识和一些常用工具和方法。
问题二:项目计划意识问题 (相关对象:项目经理)
项目经理对总体计划、阶段计划的作用认识不足。项目经理认为计划不如变化快,项目中也有很多不确定的因素,做计划是走过场,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。没有计划或者是随意的不负责任的计划的项目是一种无法控制的项目。
解决方案:在高技术行业,日新月异是主要特点,因此计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关各种知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。
问题三、管理意识问题 (相关对象:项目经理)
部分项目经理没有意识到自己项目经理的角色,从总体上去把握管理整个项目,而是埋头于具体的技术工作,造成项目组成员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。 在软件企业中,项目经理大多是技术骨干,技术方面的知识比较深厚,但无论是项目管理知识,还是项目管理必备的技能、项目管理必备的素质都有待补充和提高,项目管理经验也有待丰富。有些项目经理对于一些不服管理的技术人员,没有较好的管理方法,工作不好安排的工作只好自己做。另外由于工作分解结构设计的合理性,项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。
解决方案:加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。
问题四:沟通意识问题 (相关人员:项目经理、项目组成员)
在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;有些人没有每天定时收邮件的习惯,以至于无法及时接收最新的信息。
解决方案:制定有效的沟通制度和沟通机制,对由于缺乏沟通而造成的事件进行通报作为教训提醒,以提高沟通意识;沟通方式应根据内容而多样化,讲究有效率的沟通;通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。
问题五:风险管理意识问题 (相关人员:项目经理)
项目经理没有充分分析可能的风险,对付风险的策略考虑比较简单。项目经理在做项目规划时常常没有做专门的风险管理计划文档,而是合并在项目计划书中。有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。
解决方案:通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法掌握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。
问题六:不重视项目经验的总结 (相关人员:项目经理、管理人员)
项目经理在项目结束时有些是因为自身对写文档工作的兴趣或意识,或
者是因为紧接着要参加下一个项目,总体对项目总结的重视程度不够。有些是项目总结报告一再拖延,有些是交上来的报告质量较低,敷衍了事。
解决方案:在制度上鼓励和加强项目经验总结工作,使得项目总结及时并且具有指导意义而不是走过场。
问题七:项目干系人相关问题(相关人员:项目经理、项目成员、客户)
在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、
工作职责等没有足够了解以致于无法得到完整需求或最终经权威用户代表确认的需求。由于项目经理的工作问题,客户参与程度部不高,客户方相关责任人不明确或对范围和要求责任心不强,提出的要求具有随意性,项目前期对需求的确认不够积极;或者是多个用户代表各说各话、昨是今非但同时又要求项目尽早交付;项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。
解决方案:项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。
问题八:项目团队内分工协作问题 (相关人员:项目经理、项目成员)
项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任
分工不够清晰而造成工作互相推诿、责任互相推卸的现象,有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰但是各项目成员只顾完成自己那部分任务、不愿意与他人协作。这些现象或多或少地造成了项目团队内部资源的损耗,从而影响了项目的进展。
解决方案:项目经理应当对项目成员的责任进行合理的分配并清楚地说明,同时应强调不同分工、不同环节的成员应当相互协作,共同完善。
以上对软件开发项目管理中出现的问题的分析还不够深入,也无法列举所有遇到或将遇到的问题,解决方案也要根据实际情况进行调整,希望引起对这些问题更多的思考和改进。
结束语:项目管理虽然没有非常高深的理论,但要真正实施起来,也绝非易事。对于软件开发企业而言,这不是一个小的改变,而是一种变革,企业需要为此付出艰苦的努力,宣传并树立公司范围内的项目管理文化十分重要。从而在实践中锻炼提高,解决各种各样的问题,使项目管理工作越做越好。
参考文献:
吴照云 《管理学原理》 经济管理出版社
stanley e. portny(宁俊等译) 《如何做好项目管理》 新经济工商实务丛书
neal whitten(孙艳春等译)《管理软件开发项目》(第二版) 软件项目管理系列丛书
篇9
《软件开发方法与实践》课程是计算机信息管理专业所开设的重要核心课程。通过本课程的学习,学生可以了解管理信息系统以及.NET编程的内容和开发过程,掌握软件开发方法,从需求分析至系统测试的各个软件开发阶段的模型建立、开发工具使用、编程方法、系统测试以及开发文档写作等内容。培养学生具有独立组织管理信息系统的开发能力并能对管理信息系统的运行和维护进行规划与实施;掌握信息系统规划、建设及实施的方法和技能;锻炼独立思考和创新精神,以提高全面素质。
传统的软件开发方法课程一般由管理信息系统课程演变而来。教学内容主要由软件工程基础知识、UML等知识组成。教授内容相对单一、理论性强,在基础知识方面缺乏软件设计模式等具有实际应用价值的专业内容,而在应用技术方面又缺乏与高级编程语言实际的对接等实践环节。随着软件开发技术的不断发展,授课内容必须随之不断的调整与扩充。伴随教学改革的不断深入,校企合作的不断加强,本着工学结合和以职业能力培养为重点的课程设计理念,将企业开发实际项目融入教学,在教学中使用企业真实开发项目,不断增强应用性、实践性。以工作过程为导向,与企业共建课程, 将软件企业中的软件开发模式、软件项目组织管理方式引入课程中,将职业工作活动与教学活动融为一体。学生通过本课程的学习,掌握真实项目的开发流程和技术,定位于企业岗位实际需求,引入全真案例教学,仿真软件公司的管理制度和团队开发模式,学生具有员工和学生的双重身份,真正做到学校和企业“无缝对接”。
一、课程设计思路
1.培养学生具有程序员或软件设计师职业能力。
2.岗位描述:从事管理信息系统的设计、开发、软件维护、管理、软件测试工作。
职业能力:了解管理信息系统以及.NET编程的内容和开发过程,掌握软件开发方法,从需求分析至系统测试的各个软件开发阶段的模型建立、开发工具使用、编程方法、系统测试以及开发文档写作等等。该课程主要任务是通过综合运用多门软件课程的知识和技能开发一个应用软件系统,使学生了解一个完整的软件开发过程,学会根据软件开发文档编写符合工程规范的程序,提高软件开发综合能力,积累软件项目开发经验,实现与软件开发工作岗位的无缝连接。
3.以软件开发工作过程为基础。以软件岗位群为职业分析对象,邀请优秀的软件工程师、项目经理等软件领域专家,分析软件开发的工作过程,确定典型的工作任务,通过典型工作任务实例客观地描述软件开发的职业活动。国外软件开发管理体系及开发体系应用包括以下阶段:立项、信息收集、需求分析、系统设计、系统开发、测试、试运行、维护期。对每一阶段的实施及验收制定相应的标准。
4.以软件设计为载体,设计学习情境。
三个学习情境涵盖了12个任务,由简单到复杂,从理论分析逐步过渡到程序编写等实施过程。
针对软件岗位群上的典型工作任务,运用职业分析方法确定软件岗位群要求的职业能力以及职业能力评定等级。分析职业能力的形成过程,确定各项能力形成的条件,按照能力形成规律归纳总结出行动领域。打散传统的知识体系,按照软件开发工作过程及职业能力成长规律将行动领域转化为学习领域,根据岗位能力要求,确定课程目标。以项目为载体,根据工作任务的相关性构建课程内容体系,针对开发项目的工作过程设计学习情境,以完成工作任务的顺序组织教学内容,按照行动导向的原则设计教学单元。与企业密切合作,将软件企业的开发环境、开发方式、开发工具引入实训基地,构建本课程的职业情境。
改革传统的教学模式,设计与工作过程导向相适应的教学方法,参照工程标准及职业资格标准制定教学评价标准,最后,由专业指导委员会的软件领域专家和教育专家共同确定课程标准。
二、教学内容的针对性与适用性
软件设计方向毕业生所从事的工作岗位有软件开发员、软件测试员、软件维护员等软件技术人员,完成这些职业岗位实际工作任务学生应该掌握面向对象程序设计、管理信息系统、软件开发技术;掌握软件开发的、测试、管理等职业能力。本课程的教学内容整合了《面向对象的程序设计语言》、《管理信息系统》、《软件案例测试》、《数据库应用技术》等4门课程为《软件开发方法与实践》这门课程,解决实际的软件设计开发问题,完成一件产品的制作。教学内容用到上述四门课程的知识点。
根据劳动部和信息产业部所制定的高级程序员、全国计算机高新技术职业资格数据库操作员所要面临的工作岗位及要完成的工作任务,其中确定软件开发员、软件测试员、软件维护员为具有教育价值的典型工作岗位。因此,本课程主要使学生掌握如下技能:(1)学习编写程序基础理论,进而会编写典型的算法程序。(2)学会可视化程序设计工具的使用,掌握面向对象的程序设计方法、事件驱动的编程方式。(3)利用C#开发程序过程,能够设计、编制、调试一个实用的程序,要求程序结构简单,功能齐全,使用方便。(4)使用UML对系统进行分析与设计,能组织管理信息系统的开发并能对管理信息系统的运行和维护进行规划与实施。(5)对设计的软件进行全面测试。(6)运用软件开发的综合技术,前台选择一种程序设计语言,后台选择一种数据库(SQL Server等)开发完整MIS系统的能力。
本课程的理论知识不再是抽象无物的东西,实践教学也不是单纯的技能训练,而是理论支持下的职业实践活动;学生的学习内容不再是脱离企业软件开发实际过程的僵硬教条,而是针对来自企业的工作项目和典型任务,学习内容与企业实际运用的新知识、新技术、新方法实现同步,适应了职业教育的发展方向。
三、教学模式的设计与创新
本课程采用了“项目+过程”的工学结合教学模式。课程以项目为载体,以过程为导向,采用任务驱动的方法,按照企业开发软件的流程,在工厂化的实习环境中,将“企业的内容”以“教学的形式”来完成“人才的培养”。
1.实际的工程项目与真实的工作任务保证了教学内容与工作内容的一致性。
本课程的项目来自于软件公司开发的实际工程项目。按照企业的开发方式,整个开发过程需要经历不同的开发阶段,各个开发阶段都必须完成多个学习性工作任务,提交阶段性工作成果。由于整个课程结构和教学内容由这些工作任务构成,因此,保证了教学内容与工作内容的一致性。
2.企业化的开发流程保证了学习过程与工作过程的一致性。
本课程以小组为单位组织项目开发。开发小组按照企业开发软件的流程,从业务调查、需求分析、概要设计、详细设计、软件编码到软件测试、软件实施,经历了一个完整的软件开发过程。学生以准员工的身份参与项目开发的全部过程,完成企业员工应当完成的工作,使职业工作活动与教学活动融为一体。此外,学生还要走出校门,到校外生产实习基地顶岗实习,接受真正工程项目实践的锻炼。学生在经历情境化的工作活动过程中熟悉了软件工作环境和开发流程,积累了实际工作经验,实现了职业能力的发展。
3.工厂化的实习环境保证了课堂与实习地点一体化。
本课程主要在软件生产实训基地中进行训练。软件生产实训基地按照软件企业的开发环境建设,它不但可以进行教、学、做一体化教学,而且可以为学生提供一个真实的企业环境开发软件,学生可以在此进行生产性实习,消除对真实企业工作环境的陌生感,实现学生当前的实训环境与其未来职业环境的“零距离”对接。
4.采用任务驱动、工学交替的教学模式组织教学。
本课程由同步训练、拓展训练和生产实习3个环节构成。同步训练采用一体化的教学方法,在综合实训室完成。拓展训练采用教师指导下的独立训练方式,在校内软件生产实训基地完成,而生产实习则在真实的软件企业中完成。3种训练方式交替进行,一体化教学逐步减少,生产性实习逐步增多,最终达到与职业岗位群的“无缝”连接。
本课程还采用任务驱动组织教学。每一项任务开始时都向学生下达一个工作任务单,任务单详细描述了工作任务、工作要求、工作期限、工作环境和开发工具。学生以此为开端,在完成工作任务的过程中学会了知识,增长了能力。
5.行动导向的教学模式使学生逐步积累了实际工作经验。
改革传统的以教师为中心的讲授模式,建立行动导向的教学模式。课程中的每一个学习情境都按照行动导向的教学模式组织教学,学生在项目开发过程中学,教师在项目开发过程中教,学生成为了学习过程的中心,教师是学习过程的组织者和协调者。学生在“资讯、计划、决策、实施、检查、评价”这一完整的“行动”过程中,通过独立地获取信息、独立地制订计划、独立地实施计划、独立地评估计划,掌握软件开发的技能、习得软件技术知识,构建自己的开发经验和软件知识体系,有效地培养学生职业能力,方法能力和社会能力。
四、可行性分析
《软件开发方法与实践》课程是基于工作过程导向的课程开发,与中国软件行业协会联合开发课程,以来自企业的实际项目为载体设计教学内容。
教学内容设计了三个学习情境:软件开发过程、管理信息系统分析和管理信息系统开发,每个学习情境下又设置若干任务,通过每个任务的完成可以实现对应学习情境的学习。
学生通过本课程的学习,掌握管理信息系统的内容和开发过程以及开发方法,初步掌握面向对象的程序开发所需的设计工具、建模工具、开发工具、测试工具以及文档写作,提高学生对面向对象软件的设计以及开发能力,拥有自行独立开发、维护、运行管理信息系统的技能。使学生能够适应当今软件制造行业的高速发展,增强就业竞争力,为学生将来的程序员、软件测试员、软件系统分析师、软件项目管理人员等相关职业生涯奠定了必要的知识和技能。
计算机信息专业与中国软件行业协会已经正式签约,成为其在本区域内的第一家合作的高职院校,对本课程的教学进行全程合作,具体表现为三个方面:
项目背景优势权威性:三方结合国家政策及行业需求强强联合推出;标准性:逐步建立软件企业人才准入制度,打造软件人才培养标准。
核心项目优势:实用的课程内容:定位于企业岗位实际需求,全真案例教学;强大的师资力量:双师型的师资队伍;先进的教学方法:八真教学方法。
就业服务优势:雄厚的企业资源和跨地域的就业服务体系。
五、特色与创新
1.双重主导的教学内容组织方式。
本课程以来自真实的项目为载体,项目开发贯穿课程始终。整个课程的教学内容以软件开发过程及业务逻辑为主线层层递进,环环相扣,其教学过程与工作过程完全一致。在软件开发过程的主导下,课程按照认知规律编排多发面的相关技术知识,按照从易到难的原则将其巧妙地融入到项目开发过程中,形成另外一条贯穿始终的技术知识辅线,主辅双线相互呼应,相互融合,学生在开发软件的过程中不但积累了工作经验,同时也将逐步构建自己的知识体系,为未来发展打下一定的基础。
2.“三位一体”的教学过程。
本课程以项目为载体,通过一个完整的软件开发周期,将开发过程、学习过程、评价过程融为一体,学生在交替进行的同步训练、拓展训练和生产实习过程中逐步提高软件开发能力,最终达到课程目标。
3.企业化的学习方式。
本课程在教学过程中,将企业中的软件开发模式、组织管理方法、企业开发环境引入教学中,为学生营建一个企业化的学习环境。课程一开始,每一个学生在开发小组中扮演一个开发角色,教师介绍开发规范、项目背景及组织管理方法,让学生熟悉环境,帮助学生制定项目开发计划,以便所有相关人员按照计划有条不紊地开展工作。在每一个教学单元中,教师首先介绍任务背景,下达工作任务单。任务单详细描述了工作任务、工作要求、工作期限、工作环境和开发工具。学生在完成工作任务后要与教师一起从交付时间、用户界面、编码规范、健壮性等各个方面评估任务的完成情况,然后将评估结果记录在评审表中。评审结束后,学生要从生产效率、产品质量、技术方法、错误分析等多方面进行总结,在此基础上提交相应的工作成果及工作(实训)报告,为今后的项目开发积累开发资料。
4.多门课程优化整合。
构建了以软件开发为主线、以应用为目的的软件开发课程群,包括C#程序设计、数据库原理与应用、管理信息系统、软件测试与文档写作课程,各门课程之间相互联系,融会贯通,形成了有利于学生就业的完备的课程体系。探索并开创了程序设计一条线模型的课程建设,课程组合以后可以将原来一个个单独的程序变为一个有机的整体。使得学生能够真正了解程序到底可以干什么,有什么用途。
作者简介:
篇10
软件职业开发人员就业市场现象目前软件开发人员就业市场存在两个突出现象:一方面合格的软件开发人员需求量不断扩大,大量的用人单位在苦于找不到合适的岗位人才的同时还必须承受自己培养的合格人才由于稀缺性所带来的人员流动性风险;另一方面每年毕业的本专业学生却由于所学知识、技能与需求脱节往往长时间找不到工作。普遍高校走的都是“通才”教育道路,人才结构缺乏层次和特点,学生能力与行业需求缺乏交集,导致越来越多的软件中端人才就业形势不容乐观。[2](P11-14)3.软件职业人才培养现状及存在的问题我国现行高校教育体制仍然是以理论基础学习为主的学科体系下的应试教育,这种教育模式培养的软件人才重理论轻实践、强调单一知识的学习,忽略综合分析问题和解决问题的能力的提高;重视个人学术能力,忽视团队协作精神,轻视开拓创新。随着信息的进步和社会的日益竞争,计算机软件行业对人才的要求越来越高:不但需要设计型、研究型的人才,而且需要综合应用型的人才;不仅需要开发型的人才,而且需要服务型、创新型的人才。社会的需要是多层次的,会其一不知其二,有理论没技术的大学毕业生无法与社会需求对接。当前我国软件人才培养主要存在以下几个问题。[3](1)重理论轻实践。我国计算机软件专业人才的培养模式和课程设置多年变化不大,只重视培养学生扎实的基础知识和专业理论,忽视了实践操作能力尤其是最新IT技术操作能力的培养。并且这些课程均为理论性课程,与IT企业的具体要求还有差距。即使是成绩全部优秀的学生,如果没有较强的实践能力和具备一定的产品开发经验,也无法满足IT企业的用人要求。(2)以教师为中心。工程教育目标模糊、教师缺乏工程经历、学生工程实践能力不强。现有课程体系中,教师作为主体,在理论教学中占用所有时间讲解理论知识,学生被动接受。在实验课程中,教师规定题目,给出完成思路和编程结果,学生主要重复输入代码过程。在课后习题中,教师给出题目,并在课程教学时间专门以习题课解答,学生容易出现抄袭。(3)现有工程教育培养方案设置不合理。其不足之处主要表现在:培养方案设置的专业课程里,单科性课程太多,理论分析学时过多,过分注重单学科课程的理论性和知识的系统性。相反,培养学生工程综合能力的课程少,训练学生的直观判断力和工程经验、工程意识的教学环节少,强调学科知识间交叉和综合性的课程少。(4)培养方向模糊。我国一些重点高等院校以及普通专科院校的计算机专业的教学计划、课程设置、教学方式基本相同,培养目标类似,培养方向模糊,软硬两方面的知识兼顾,完全是“通才”教育,不能够体现专业特长。(5)教学内容落后。随着IT技术发展的日新月异,大批国际流行的软件产业最新发展技术由于多种因素不能及时进入教学领域,教学内容落后,教材更新缓慢,致使学生在校学习的理论知识和实践技术已经落后过时,毕业生须接受企业再培训、再教育,才能够胜任工作。
基于双新人才计划的软件职业人才模式构建思路
该方案以“新知识、新技能”为核心,根据企事业单位对计算机软件人才的实际需求,整个培养方案分为三个阶段(初级,中级,高级)和两个部分(理论知识和项目实训)。1.理论知识先行理论知识的授予按三个阶段进行。第一阶段(初级阶段)的学习是基础知识的学习,该阶段要求学生理解信息系统的定义、组成、发展模式及建设模式;了解软件的定义和组成、生命周期及软件开发的过程和质量控制原则;要求学生掌握信息化基础知识和软件开发的基础知识,熟练掌握基础语言Tur-boC的使用和实践,面向对象语言Java的使用、实践描述型语言DHTML的使用和实践及解释型语言Javascript的使用和实践;了解IT相关的专业英语,能够在翻译软件的帮助下阅读大量英文的专业性科技文献并大致了解含义;牢记软件从业人员职业道德规范,对职业发展结合自己的现状制定发展规划,熟练掌握常用软件的使用。第二阶段的学习能使学生了解软件开发、测试和实施等过程涉及的各种技能和知识,对软件技术发展的过程有清醒的认识。阅读大量的相关专业英语文献,能够独立写作英文注释和英文专业文章。具备软件专业从业人员的职业修养和素质;掌握各种实际情况下的职业技能。第三阶段的学习能使学生熟练掌握信息系统的售前、开发和售后等过程涉及到的各种技能和知识;了解需求分析、项目管理的各种技能和知识。能够独立进行专业英语的听、说、读、写。具备软件高级从业人员要求的职业修养和素质。2.项目实训的职业拓展性推动新的模式生成(1)精准的目标设置策略。突破传统的“教师规定题目,给出完成思路和编程结果,学生主要重复输入代码过程”的实训教学模式;充分发挥学生的主体性,培养学生的分析问题、解决问题的能力,激发学生的学习积极性和创新意识。[4]学生通过参与项目的设计与开发,掌握最新的技术,了解企业的文化,熟悉企业的运行机制,能够按照企业管理的标准严格要求自己,使自己毕业前具备企业人的素质。(2)趋于完善的实施方案定制。采用梯度式实训,分初级、中级、高级三个级别。实训成员由双新办的专家、学校专业核心课老师及计算机相关专业的毕业班学生,双新办专家和老师担任项目经理。六个学生为一组,每组对应一个组长和一个项目,组长负责考勤,写工作日志。实训开始先进行案例教学,给出一个典型的实用案例及完整解决方案和相关文档,让学生直观地了解企业项目开展的流程;然后给定每个项目的需求文档、测试报告表格、代码编写规范、对话设计规范、调试用例设计规范、原型设计规范。在项目经理的监督和适当地指导下,要求学生参照事先给出的实用案例和依照企业管理的标准按时按量完成项目的实训。
总结