软件项目管理实践教学应用论文(共2篇)
第1篇:软件项目管理思想在“软件工程”实践教学中的应用
随着信息技术的飞速发展,软件产品的规模也越来越大,复杂程度越来越高,项目失败的概率也随之增长。研究表明,软件项目失败的原因主要有两个:一是错误的软件项目管理;二是应用项目的复杂性。实践证明错误的软件项目管理是导致软件项目失控的直接原因。各软件企业为了能高效高质地开发软件产品,都在积极将软件项目管理引入开发活动中。然而在“软件工程”的教学中,软件项目管理的教学效果却不尽人意。一方面,教材中的案例缺乏完整性、系统性和实用性;另一方面,软件项目管理的讲授方式不是十分合理,学生重视力度不够。作者将结合多年的软件工程教学经验,对软件项目管理的教学方法进行分析和探讨。
1软件项目管理的教学内容及特点分析
软件项目管理[1]是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员、产品、过程和项目等进行分析和管理的活动。软件项目管理是软件工程教学中的重要内容,它涉及了软件项目管理的五个标准化过程组和范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、风险管理、采购管理、项目综合管理九大知识领域,几乎覆盖了软件产品从立项到结束的整个过程。图1形象地展示了软件项目管理与软件开发过程在时间上的先后顺序。
大多企业的优秀管理者都是具有丰富经验的人员,同样,软件项目管理水平的高低偏重于软件项目管理经验的积累。软件项目管理的学习不仅仅是要掌握基本的原理、方法和完成相关的设计文档,更重要的是将理论应用于实践,让学生真正理解理论的作用,体验在实际项目实施中理论知识的具体应用场景,培养学生的软件项目管理思想。立足于软件项目管理的教学目标和要求,结合软件项目管理自身的特点,分析研究认为,项目驱动的软件项目管理教学方法能够充分调动学生学习的积极性,培养学生动手实践和主动探索的精神,提高教学的质量和水平。
2项目驱动的实践教学法
项目驱动教学法[2]是一种以建构主义为理论基础的教学方法,它以项目开发为主线展开教学,整个教学过程是一种在教师的指导下,以学生为主体的协作过程。这种教学法的主要特点是始终以项目中的任务展开教学,既注重最终的实践结果,又注重完成项目的过程。其中教师的职责在于使学习者置身于探索知识之中,通过具体项目的开发提供真实的“情境”,即实际项目中需要解决的问题。然后,通过教师的指导,学生之间的讨论来解决问题。这种模式旨在把学生融入任务完成的过程中,让学生积极地学习,自主进行知识的建构,以培养学生综合能力为最终目标。
2.1项目驱动教学对学生能力的培养
(1)培养学生自主学习的能力。项目驱动教学法中任务的设定真正实现了以学生为主体的教学方针,学生为了完成任务就会主动去图书馆或相关的网站查阅信息,从而可以丰富知识,提高自学能力。
(2)培养学生团队合作的能力。把全班学生分成几个小组,每组项目的完成情况,影响小组每个成员的评价,因此为了团队的整体利益,小组成员之间就会不可避免地展开讨论和争辩,最终达成共识,相互协作完成任务。
(3)培养学生分析问题、解决问题的能力。任务设计后,让学生自己讨论,分析任务,提出问题,充分发挥了学生在学习过程中的主动性、积极性和创造性。这种分析问题和解决问题的能力同样可以应用到其它的领域。
(4)培养学生实践创新能力。实践是创新的源泉。对于同一个任务,每个小组采用的解决方案不尽相同。他们可以根据自己的知识背景和对任务的认识,对任务的实现方法进行大胆的设计,从而培养学生的创新思维,提高学生的创新能力。
总之,项目驱动的任务式教学方法能够充分发挥学生的主观能动性,全面提高他们的综合素质。
2.2项目驱动教学法的操作过程
“项目驱动”教学模式是教学过程中诸要素相互作用而形成相对稳定的组织结构和操作程序。采用“项目驱动”教学法,在软件工程项目实施的每个阶段,我们均采用“项目任务——分析任务——理论学习——完成任务——评价总结任务”的教学模式。学生在完成“项目任务”的操作过程中,发现问题、解决问题,通过对任务的剖析,丰富了学习的经验、提高了学生完成任务的能力。
3教学实施
从软件工程的角度讲,软件项目管理过程主要分为七个阶段[3]:可行性研究阶段、需求分析阶段、设计阶段、编码阶段、测试阶段、验收阶段和维护阶段。我们在“软件工程”的教学过程中,打破以往按教材编排顺序讲授知识的方式,以软件项目的管理过程为讲授顺序,并以一个完整的具体项目实施为依托进行“软件工程”教学。其中软件项目管理的教学内容将穿插到软件生存周期各个阶段进行讲授,各阶段将会不可避免地包含相同的管理内容,通过学生重复学习与实践,可以使其深刻体会软件项目管理的思想。本校计算机专业大三学生的“软件工程”课程共54课时,我们按照理论教学与实践教学1:1的比例,先进行相关理论知识的讲解,然后进行课程实验的具体实践,结合“PetStore电子商务网站”的建设,让学生及时运用所学内容来完成项目任务,通过将软件项目管理的教学内容贯穿到项目实施的整个过程来实施教学。
3.1教学准备
(1)设置项目任务。在教学实施前,教师应根据教学进度、教学目标和要求制定教学计划,并将PetStore系统建设分成各个相对独立的子项目,将相关的理论知识分散在各个子项目中。学生应根据教师的安排认真阅读项目要求,查阅相关资料,对相关问题进行思考分析,并为课堂讨论做好准备。
(2)建设团队。我们对学生按“项目小组”以自由组合的方式建立软件开发团队[4],每个团队不得超过6人,各组成员根据实际项目开发的过程进行分工。项目经理由小组成员讨论推荐产生,负责整个项目的规划、实施和控制。系统分析师、软件测试工程师和开发工程师通过自我推荐或项目经理指定产生。项目中的每项任务要落实到人且规定该任务的起止日期和时间。
(3)建设规范的实验、实训室。根据项目驱动教学的特点,不仅需要学生提交书面的阶段性文档,还要通过具体的实践实现项目任务,提交项目作品。因此规范化的实验、实训室成为项目顺利完成的保障。
3.2教学内容
我们将从软件的生存周期着眼,利用阶段化的项目管理方法,结合项目实践,对工程化生产中的管理工作进行讲解。对于软件项目的每一个阶段均要做出工作计划,在阶段结束之后,要对该阶段的工作活动进行总结评价,并对后续阶段的时间、人员、资金方面的需求做出估计。下面按软件项目的开发阶段,以PetStore系统的建设为例,详细介绍软件工程中软件项目管理的教学内容及相关的项目实施任务。
3.2.1问题定义与可行性研究阶段
问题定义与可行性研究阶段主要涉及的项目管理教学内容包括:确定项目实施范围、项目目标、评估实施过程中主要的风险、制定项目实施的进度计划、成本和预算计划、人力资源计划等。
针对PetStore系统的开发建设,我们让老师模拟实际的用户,学生在对用户调查的基础上,结合软件项目管理理论知识,通过查阅资料、小组成员之间的讨论,编写详细的“系统目标与范围的说明书”。按照说明书的内容和要求,分析项目可能存在的风险,建立“风险项目检查表”。明确系统流程,建立系统逻辑模型,制定不同的解决方案。通过与用户的沟通,考虑经济上、技术上的可行性,比较选择一个较优的解决方案。在任务完成的过程中,学生可以真正感受到非文档所能体现的管理问题,如人力资源管理、沟通管理、风险管理等。
3.2.2需求分析阶段
本阶段将更加全面、准确地分析PetStore系统的需求,主要涉及的管理工作为需求管理、质量管理、沟通管理等。通过与用户的多次沟通,明确系统可以分为用户管理、商品管理和维护库存数据库三大功能模块,每个大的功能模块又可分为若干小模块,如用户的注册模块、登陆模块、修改模块等。为保证PetStore系统的开发质量,需要在此阶段制定软件质量标准,主要包括功能性、稳定性、经济性、适用性、可靠性、安全性、可维护性等指标。明确系统的各种需求后,编写“软件需求规格说明书”。
3.2.3软件设计阶段
软件设计是一个将需求转变为软件陈述(表达)的过程,程序的质量主要是由设计的质量来决定。本阶段主要包括范围管理、质量管理、时间管理、沟通管理等软件项目管理方面的内容。例如在PetStore系统设计的过程中,根据“需求规格说明书”中需求分析方法,确定所采用的软件设计方法及系统数据、软件框架。软件设计阶段的任务主要包括PetStore系统界面设计、数据库设计、数据结构设计、编写设计文档等。在设计过程中始终要求按照质量标准予以实施,并及时进行质量评估。学生完成PetStore系统设计后,可以邀请用户或其他小组成员参与设计复审。复审时,设计人员要提出对设计方案的详细说明,答复与会者的问题,并记下重要的评审意见。
3.2.4编码阶段
编码阶段涉及的软件项目管理教学内容主要有风险管理、质量管理、进度控制、成本管理、时间管理、配置管理、项目度量管理等。针对PetStore系统,按照设计文档的要求,对系统的各个功能子模块采用自己熟悉的语言进行编码设计。在PetStore的功能模块开发过程中,并不能完全保证项目按照开发计划进行,为了能使项目进度和开发计划同步,软件管理者在项目开始后应时刻关注计划执行情况,随时进行风险分析,调整项目进度,使实际进度与计划进度保持一致。编码结束后,由项目小组的技术人员对代码是否按规范编写进行审核,以保证编码的质量。
3.2.5测试阶段
测试阶段主要涉及的软件项目管理教学内容有质量控制、配置管理等。针对PetStore系统,在编码阶段由项目开发者实现单元测试,测试阶段由独立于开发人员的测试人员进行“渐增式”的集成测试,最后,对照需求说明书,完成确认测试,并编写相应的测试报告文档。在测试过程中,学生利用配置管理的CASE工具,可以了解配置管理在软件开发中的具体应用及其所起到的重要作用。
3.2.6运行和维护阶段
运行和维护阶段的软件项目管理内容主要包括维护成本估算、配置管理、风险管理、维护管理文档的编写。在PetStore系统的维护中,加强文档的建设,做到任何事情均有记录,任何变更均可回朔,利用维护日志和软件修改报告记录维护过程中的具体实施情况,学生可以根据维护情况参照开发工作量来估计维护的费用。此阶段还可以让学生选择合适的自动配置管理工具来实施配置管理。
3.3教学总结
我们要求学生按PetStore项目生命周期的开发阶段进行阶段性项目总结。每个阶段的教学结束后,老师给学生一定的时间来实现PetStore系统相关的内容,同时要求每个项目小组派一名代表在课堂上对阶段性的工作实施过程进行讲解,让全班学生共同讨论,相互交流不同的观点,以期从讨论中发现自己的不足和别人的优点,同时也能活跃课堂气氛,培养学生主动思考的意识。
在“软件工程”软件项目管理的教学过程中,我们注重的不是具体某一管理技术的学习,而是让学生深刻体会软件项目管理的过程,培养学生软件项目管理的思想。
4结语
实践表明采用“项目驱动”的软件项目管理教学方式,可以将学习置于一个真实的软件项目开发环境中,让学生亲自动手操作来学习“死”的理论,加强理论与实际的联系,从而激发了学生的创新意识,调动了其学习积极性,培养了学习兴趣,提高了他们分析问题和解决问题的能力,达到了教学目标和要求,起到了良好的教学效果。
第2篇:软件项目管理在高校软件开发中的应用
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量要求顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理活动,其过程可分为四个阶段,其内部关系如图(1)所示。近年来,主流软件企业已经引入软件项目管理计划(SPMP)实施软件开发项目,而在部分高校,由于大多数软件开发任务仅限于满足自身需求,并不面向市场,校内软件开发人员大多数除开发工作外还有教学、科研等日常工作,很少能够全身心投入软件开发,并从中获取经济收益,因此,软将项目管理在高校的软件开发活动中的运用受到一定限制。
作为高校的一名IT从业人员,笔者在近期所完成的飞行教学管理管理资源网的研发中引入了软件项目管理实施项目开发。项目管理方案的引入调动了开发人员积极性,并且将开发人员的个人开发能力转化成项目小组的开发能力,有效降低了开发风险。针对高校软件的使用需求,项目负责人(即项目管理中所指项目经理)就传统型软件项目管理方案进行了修正,没有完全照搬行业中大型软件项目的管理方式和开发模式,而是遵循校内自用的特点,设计选用了一种适合自身软件项目开发要求的管理方式,以增量式模型为该项目的软件生存期模型实施开发。
一、需求分析
任何项目的启动都是由于存在一定的需求,良好的需求分析是一个项目建设的牢固基石。资料表明,软件项目中40%-60%的问题都是在需求分析阶段埋下的隐患,70%-80%的返工是由需求方面的错误所导致的,在以往失败的软件项目中80%是由于需求分析不明确而造成的。因此,一个项目成功的关键因素就是对需求分析的把握程度。
回到飞行教学管理信息资源网项目中,近年来,飞院广汉分院已经启动了信息化建设,在过去不同阶段,已建成并投入使用了飞行网上准备系统、机务维修系统、气象信息系统,“CBT”教室、语音教室、多媒体教室等。随着IT技术在航空领域的深入运用,在目前的飞行教学中引入信息化管理达到资源最大化共享已经在所有用户心目中形成共识。虽然项目组成员同时也是用户,但由于软件的最终应用所涉及到的部门众多,人员分散,项目组人员走访了校内所有部门,听取了部分用户的意见和构想,广泛收集意见,在参看了国内外航空公司以及飞行院校的信息化建设成果后,按照功能需求、性能需求、环境需求、资源需求、成本需求、进度需求等对用户的需求进行分析,制定出初步的软件需求规格说明,概括来讲:飞行教学管理信息资源网应该利用现有教学基础设施,以飞行教学、业务管理、行政办公、舆论宣传为核心,并且在技术上具有先进性,在教学过程的各阶段应用上具有灵活性、多样性和针对性的飞行教学管理信息系统。该系统应充分满足分院飞行教学和办公管理自动化的需求,实现教学资源信息化的共享,使整个教学管理信息资源网中各子系统既能独立工作实现其功能,又可完成调用其它子系统的功能,还可根据分院和用户的需要进行扩充、升级的功能实用的飞行教学管理信息资源网。
二、任务分解
为避免项目失控,如进度落后、资源不足、资金紧缺等问题,项目经理应预先做好周密的计划安排,在项目实施过程中监督是否按照计划执行,采取积极的应对措施,做好计划和控制计划是项目成功的必要条件。项目计划的核心是编制进度进化,包括:任务分解、成本估算、资源进度安排。这里主要阐述该项目的任务分解。
根据对飞行教学管理信息系统项目需求规格的分析,项目组按照功能组成标准进行任务分解,得到图(2)所示任务分解结构图(WBS),并根据此WBS作出项目估算和进度计划、质量计划、配置计划、风险计划、团队管理、项目度量以及集成计划。
三、项目实施
项目计划的制定是为了指导项目实施,提供项目控制的依据,项目实施过程是执行项目计划,将计划付诸于行动的过程,在此期间,应根据项目计划对项目的实施过程进行跟踪控制。为做好项目控制,项目经理的分析能力、经验和悟性都决定了作出的决策的质量,他应该做到:充分了解项目当前的状态,并根据当前状态与期望状态比对做出一些决策。
在飞行教学管理信息系统项目的实施过程中,项目经理定期组织小组成员召开评审报告会,针对项目进展中遇到的问题进行评审,对发现的问题及时解决。例如,项目的建设相继带动了各基层部门业务网站的建立,按照需求规格说明,项目小组预留了对应端口,实现了网络扩展对接,但由于部分网站采用了静态Html语言创建网站,对网站的后期管理维护带来的不便,项目小组立即变更需求,创建了FTP服务器,并设置了安全权限,二级网站管理员可通过FTP服务器,管理维护权限范围内网站。
四、项目结束
当一个项目的目标已经实现,或明确看到该项目目标不可能实现时,项目便应该终止,进入结束阶段。如果项目的结果符合实现预定目标,满足技术性能规范要求和使用目的,达到预定期望和需要,相关主管部门、项目关键人员、用户比较满意,该项目就是一个成功的项目。
飞行教学管理信息系统经过近半年的研发后,项目组将试用版首先在项目组人员内部进行试用,在初步测试阶段,主要测试系统是否存在较大缺陷、安全隐患,以及每个功能模块是否满足设计的实际需要,在初步测试了一个月后,开发人员对整个系统进行了补充修改后,在校园网上采取了新旧两套系统并存的运行办法,大范围的使用,广泛征求用户意见,在全面测试阶段主要检查系统每个功能的正确性和整套系统的安全性、稳定性,通过用户的反馈和系统的实际运行情况,项目组成员积极制定解决方案,对发现的问题逐步修改完善,经过两个月的测试运行,主管部门和广大用户认可该系统大大提高了分院现有资源的利用率,方便技术交流,信息共享,及时、准确地传达信息,避免遗、忘、漏现象,提高工作效率,基本达到了项目预期目标,并顺利地通过科研部门的项目验收、评审。至此,飞行教学管理信息系统的开发可以宣告顺利结束。
五、经验总结
项目结束的最后一个过程是项目总结,项目成员应当在项目完成后,为取得的经验教训写一个《项目总结报告》,总结在本项目中哪些方法和事情使项目进行得更好、哪些是应该避免和注意的,这些经验的总结对项目人员今后从事项目开发提供了第一手的依据材料。
由此可以总结,实施项目管理,可有效将工作细化,促使项目正常如期推进,正如某些专家谈到那样,项目管理是一门艺术,而艺术是无止境的,作为一名软件开发掌握了项目管理的理论、培养了一定管理技能,对于今后承担更多更大的项目开发任务起到了事半功倍的效果。