案例教学、项目驱动、任务分解的教学方法有各自特点,如何将这些教学方法整合在一个具体的项目中,并发挥其优点是教学中要重点解决的问题。将“学生信息管理系统”项目进行分解,每一个子项目对应一个具体的工作任务。对每个子项目按以下的教学步骤进行教学:
2.理论讲解,案例演示教师结合案例演示,讲解子项目中对应的工作任务,让学生真实理解工作过程中这个子项目到底要做些什么,怎么做,哪些知识是已知的,哪些知识是未知的,提出问题,充分调动学生的好奇心与求知欲。
3.学生分组讨论,协同合作根据学生兴趣、成绩、实践动手能力将学生分成4到5个人为一个小组。小组成员共同讨论完成项目的开发。工作任务完成过程中,让学生轮换担当不同的角色,使其能体验不同角色在不同阶段的职责与任务,既培养学生团队协作能力,又发挥了各自特长,调动了学生的积极性,从而提高了学习兴趣。
4.学生各自完成工作任务通过项目分工,团队中的每个成员都有明确的任务,结合教师的案例演示进行工作任务的模拟练习,让学生对工作任务的完成有了真正的认识,从而培养学生的职业能力。
5.总结工作任务成果,评审验收首先,学生对自己完成的子项目进行展示、总结,哪些完成,哪些没有完成,原因在什么地方;其次,教师对每个团队项目完成的情况进行比较,并将各团队工作成果与案例演示中的工作成果进行比较,总结规律和技巧,使团队中的每个学生知道自己在做什么,做得如何,哪些地方需要改进,哪些知识需要完善,自己发挥了什么作用,将实践上升到理论高度,进而培养学生的职业能力。
6.拓展第二课堂,培养学生的研究、创新性学习能力在案例教学与学生实践的基础上,学生对工作过程中所要完成的工作任务有了基本的了解和认识。对于学习兴趣高、实践能力强的同学,选择自己感兴趣的方面跟老师一起参加项目研发,在教师的指导下,了解跟踪软件开发新技术发展趋势,更加深入了解软件工程精髓,进而培养自己创新性学习能力。
三、总结
一、项目实施方案概述
软件产品,特别是行业解决方案软件产品不同于一般的商品,用户购买软件产品之后,不能立即进行使用,需要软件公司的技术人员在软件技术、软件功能、软件操作等方面进行系统调试、软件功能实现、人员培训、软件上线使用、后期维护等一系列的工作,我们将这一系列的工作称为软件项目实施。大量的软件公司项目实施案例证明,软件项目是否成功、用户的软件使用情况是否顺利、是否提高了用户的工作效率和管理水平,不仅取决于软件产品本身的质量,软件项目实施的质量效果也对后期用户应用的情况起到非常重要的影响。项目实施规范主要包括项目启动阶段、需求调研确认阶段、软件功能实现确认阶段、数据标准化初装阶段、系统培训阶段、系统安装测试及试运行阶段、总体验收阶段、系统交接阶段等八个阶段工作内容,每个阶段下面有不同的工作事项,各个阶段之间都是承上启下关系,上一阶段的顺利完成是保证下一阶段的工作开展的基础。下面将按照每个项目实施阶段分别介绍。
二、项目实施方案介绍
(一)项目启动阶段
此阶段处于整个项目实施工作的最前期,由成立项目组、前期调研、编制总体项目计划、启动会四个阶段组成。
此阶段主任务:
公司项目组:进行前期项目调研,与用户共同成立项目实施组织,编制《总体项目计划》,召开项目启动会。
商务经理:配合公司项目组,将积累的项目和用户信息转交给项目组。将项目组正式介绍给用户,配合项目组建立与用户的联系。
用户:成立项目实施组织,配合前期调研和召开启动会,签署《总体项目计划》和《项目实施协议》。
1、成立项目组
部门经理接到实施申请后,任命项目经理,指定项目目标,由部门经理及项目经理一起指定项目组成员及成员任务,并报总经理签署《项目任务书》。
2、前期调研
项目经理及项目组成员,在商务人员配合下,建立与用户的联系,对合同、用户进行调研。填写《用户及合同信息表》。在项目商务谈判中,商务经理积累了大量的信息,项目组首先应收集商务和合同信息,并与商务经理一起识别那些个体和组织是项目的干系人,确定他们的需求和期望,如何满足和影响这些需求、期望以确保项目能够成功。
3、编制《项目总体计划》
《项目总体计划》是一个文件或文件的集合,随着项目信息不断丰富和变化,会被不断变更,主要介绍项目目标、主要项目阶段、里程碑、可交付成果。通常包括以下几方面内容:
项目描述,项目目标、主要项目阶段、里程碑、可交付成果。所计划的职责分配(包括用户的);
沟通管理计划,确定项目干系人对信息和沟通的需要:即什么人何时需要什么信息以及通过什么方式将信息提供给他们。质量管理计划,确定适合于项目的质量标准和如何满足其要求。如果有必要,可以包括上述每一个计划,详细程度根据每个具体项目的要求而定。未解决事宜和未定的决策。
4、启动会
项目组与用户共同召开的宣布项目实施正式开始的会议。
会程安排如下:
共同组建项目实施组织,实施组织的权利和职责;双方签署《项目实施协议》。
项目组介绍《项目总体计划》和《项目实施协议》,包括以下内容:
项目目标、主要项目阶段、里程碑、可交付成果。所计划的职责分配(包括用户的);
项目实施中项目管理的必要性和如何进行项目管理,项目的质量如何控制;
项目实施中用户的参与和领导的支持的重要作用;
阶段验收、技术交接和项目结束后如何对用户提供后续服务。
(二)需求调研确认阶段
此阶段的主要工作是软件公司的项目实施人员向用户调查用户对系统的需求,包括管理流程调研、功能需求调研、报表要求调研、查询需求调研等,实施人员调研完成后,会编写《需求调研分析手册》,并交付用户进行确认,待用户对《需求调研分析手册》上所提到的需求确认完毕后,项目实施人员将以此为依据进行软件功能的实现。如果用户又提出新的需求,实施人员将分析需求的难度及对整个系统的影响程度来确定是否给予实现。需求调研阶段具体包括如下内容:
1、进行需求调研准备
2、编制《需求调研计划》
4、用户是否签署《需求调研计划》,如用户签署《需求调研计划》,则作为以后需求调研工作的指南。否则重新修改。
5、《需求调研计划》是否有变更,如果计划存在变更,则执行变更控制流程,否则按计划进行后续工作。
7、需求调研,项目组以《需求调研手册》为依据,从业务流程、单据使用、打印格式、报表查询几个方面展开深入和全面的调研,并搜集用户的个性化需求。
8、需求调研分析根据调研的结果,项目组和公司其他技术部门将进一步进行分析,确定合理、可行的需求,将分析结果形成《需求分析报告》草稿。
9、内部评审是否通过《需求分析报告》。项目组、部门经理、公司其他技术部门的人员对《需求分析报告》草稿进行评审,如评审通过,则在稍后由用户签署,如评审不通过则重新修改,直至内部评审通过。
11、用户是否确认《需求分析报告》。如果用户确认,并签署了《需求分析报告》,则需求调研阶段工作结束,进行后续的软件功能实现的工作;如没有确认,则进一步进行调研、分析,直至用户最终确认并签署《需求分析报告》。双方签署了《需求分析报告》,需求调研工作结束之后,如果用户提出新的需求或是变更已有的需求,则执行需求新增及变更流程。
(三)软件功能实现确认阶段
此阶段的主要工作是项目实施人员根据需求调研阶段确认的《需求调研分析手册》中的用户需求内容进行具体软件功能的实现工作。在软件功能实现的过程中,项目实施人员将记录软件实现的详细过程。便于公司售后服务之用。每一个实施技术人员必须严格按照要求记录、存档。按照调研要求的所有功能实现完毕后,项目实施人员将编制《软件功能确认表》,将定制好软件功能待用户确认,用户根据《软件功能确认表》上的功能逐一确定软件功能是否达到要求,对不满足要求的功能,项目实施人员将会记录下来并进行功能修改,直到满足用于要求。
(四)数据标准化初装阶段
此阶段的主要工作是项目实施人员指导用户进行系统标准化资料的准备工作,并对用户进行初装资料的软件操作培训,以便用户能够及时的将标准资料录入系统,初装完成后,项目实施人员会对资料初装的情况进行核查,为以后具体业务功能的开展做好基础。
(五)系统培训阶段
此阶段的培训工作中将用户参加产品培训的人员划分为三个层次:决策层、技术层、操作层,对不同层次的用户参加产品培训人员的培训内容分别是:
决策层:领导在实施中的作用与重要性、决策查询。
维护层:系统维护知识、操作方法。
操作层:操作方法。
具体的培训工作流程为:
1、调研培训信息:在培训开始前3天由用户实施负责人,将参加培训的部门和人员情况填入《受训部门汇总表》、《受训人员情况一览表》。
3、签署培训计划:用户签署《培训计划》,进一步确认培训安排。
5、搭建培训环境:公司项目组在培训开始前,将培训环境搭建及检查妥当,将培训提纲及培训手册准备好。
7、培训考核:公司项目组培训负责人与用户实施负责人组织受训人员参加上机及理论考试。
汇报。
(六)系统安装测试及试运行阶段
此阶段的主要工作是在用户真实环境下,对用户网络及硬件设备进行测试,对软件系统进行容量、性能压力等测试测试及试运行的目的在于确保系统各项功能均能正常使用,并且符合用户签署的《需求分析报告》中描述的需求,同时把尽可能多的潜在问题在正式运行之前发现并改正;同时目的还在于在正式运行前用户的有关人员能进一步提高操作水平,掌握操作规范。此阶段的主要工作内容为:
2、签署计划:用户签署《测试及试运行计划》,进一步确认测试及试运行安排。
4、搭建环境及数据准备:在试运行开始前搭建好软件环境、硬件环境、网络环境、调通线路;检查软件、硬件、网络、线路等各个环节是否有问题;
公司项目组负责担当指挥,检查用户人员组织情况并给予指导,跟踪检查如下情况:
跟踪单据流转状况。
观察业务流程执行状况。
观察操作人员操作表现。
观察系统运行速度及异常表现。
观察关键数据的正确性。
(七)总体验收阶段。
此阶段是对项目总体的完成情况进行验收。验收分阶段进行,在每一项目阶段结束时,用户对这一阶段的可交付成果进行验收,在测试及试运行结束后,对系统进行总体验收。
需要验收的可交付成果:
主要项目阶段
阶段组成
主要里程碑
可交付成果
(一)演练阶段
在演练阶段,选择能够涵盖基本技能的典型项目,并补充软件工程的知识,让学生接触完整的软件开发过程,提供真实情境下的技能演练机会。对于欠缺的知识和技能,学生进行项目驱动式的学习,老师也给学生进行有针对性的辅导。通过演练阶段,让每个学生达到可以开发项目的水平。
(二)实战阶段
在实战阶段,选择相对复杂的企业真实项目,让学生组建项目团队去合作完成。一般3~5人为一个项目小组,每个人在项目小组中担任一种角色,并按照企业工作流程去完成该项目。老师在此期间主要发挥项目指导、监督、评价的作用。通过实战阶段,学生接触到了企业真实项目,达到了积累开发经验、提高开发能力的目标。
(三)创新阶段
在创新阶段,主要选择企业外包项目或学校实际项目,项目的开放性、实用性更强,对开发人员的要求也更高。每个小组的项目互不相同,根据项目难度决定项目小组人数,一般分配5~10人为一组。这一阶段不仅考验专业技术,而且强调创意、创新精神。通过创新阶段,可以进一步提高学生的综合实践能力和创新能力。
二、项目实战教学过程
每个阶段的教学过程,为一次完整的项目开发过程。依据软件开发流程,把项目开发划分为六个步骤,依次为项目启动、需求分析、项目设计、项目编码、项目测试和项目提交。
(一)项目启动
每个项目的第一次课设定为项目启动会议。首先,进行项目分组,老师把全班学生分为若干个项目小组,小组内进行组员角色分配,每个小组选定一名项目经理;其次,老师介绍软件项目,让学生明确项目功能和应交付成果;最后,学生进行小组讨论,制订项目计划,明确分工,安排进度。
(二)需求分析
需求分析就是分析软件用户的需求是什么,即明确拟开发的软件系统有哪些功能,解决做什么的问题。各项目小组在听完老师对项目的介绍后,进一步以讨论、提问、辩论的方式交流信息,探讨思路,明确需求,达成共识,并编制软件需求说明书。
(三)项目设计
这个步骤的主要任务是对如何实现软件系统进行设计,解决软件系统怎样做的问题。小组内部共同查阅资料,展开讨论,进行软件体系结构的设计,包括模块划分、各模块功能、各模块接口、数据库结构设计等。
(四)项目编码
(五)项目测试
项目组需要完成单元测试、集成测试、系统测试、可用性测试等项目测试工作,查找和发现软件中可能存在的错误和缺陷,并进行修正,以确保所开发项目的正确性和完整性。事实上,软件测试工作贯穿于整个软件开发的全过程。
(六)项目提交
项目组在服务器上安装和调试项目软件,确保软件能够正常运行。所有学生都要分组进行项目答辩,展示项目成果,回答其他小组或老师的提问。同时,要求提交相应的技术文档,包括需求说明书、设计说明书、用户操作手册、项目总结报告等。
三、教师在项目实战教学中的职责
项目实战是以学生为中心,教师职责不再只是传授知识,而更多的是担任组织管理、技术支持、评价咨询等角色。
(一)项目选取
在项目选取时,要充分考虑学生的学习兴趣,贴近现实生活,而且项目难度要循序渐进,从基础到综合、从实践到创新,让各项目小组经过努力都可以达到预期目标。根据三个阶段的特点,分别选取不同类型的项目。
(二)项目介绍
(三)项目指导
在项目开发阶段,教师要轮流在各项目小组间进行监督与指导,了解学生们参与项目开发的动态情况,对各组的项目进度做到心中有数,以确保整个项目开发计划顺利实施。当一些小组因某些问题而陷入困境时,老师要及时进行指导,但并不是直接帮忙解决,而是通过提出有效的问题,引导学生去找出解决方案。
(四)项目评价
(五)项目总结
对于每个项目,都要组织项目总结会。对项目进行总结时,可以先让各项目小组进行自我总结,讲一讲参与项目的收获及反思,然后再由教师进行项目情况总结。在总结中,教师要讲明项目中的关键点,揭示出项目中包含的理论,并分析存在的优点与不足。通过总结,要给学生以鼓舞,增强学生参与项目开发的动力。
(六)项目反馈
四、项目实战教学效果分析
我们在连续三届的计算机专业毕业班中开展了项目实战教学,应用效果不错,学生满意度较高。在问卷调查中,80%的学生表示,深刻了解了软件开发的过程;90%的学生认为,积累了一些经验,有较大收获。同时,项目组所承接的企业项目也得到了企业单位的肯定。与传统模式进行对比分析,项目实战模式在项目训练方面有如下特点:
(一)学习载体的转变
真实项目不同于日常教学的验证性实验或课程设计式项目,是有着真实意义的任务,因此学生对真实项目更感兴趣,更有成就感,也会更大地激发学生的学习热情和学习潜能。
(二)学习过程的转变
以真实工作过程来组织教学过程,使学生能切身了解职业岗位技能需求,理解软件开发的流程,提高对软件开发的认识。完成项目过程就是积累经验的过程,可以充分锻炼学生的项目管理、开发、测试、编写技术文档等技能。
(三)学习方式的转变
在项目实战中,以自主学习、合作学习、团队协作为主,经常会遇到一些问题,带着问题去学习,对于学习能力的培养非常重要。同时,通过项目团队的工作方式能有效锻炼学生的沟通能力、组织能力以及合作能力。因此,对于计算机专业来讲,引入项目实战是一种有效的尝试,对学生综合实践能力的培养大有益处,教学效果良好。
五、结束语
[关键词]软件项目管理需求管理沟通与协作风险管理
一、引言
从上个世纪中期到现在,软件产业迅猛发展。软件产业在推动人类社会发展的同时,软件危机产生了,这是因为落后的软件生产方式无法满足迅速增长的计算机软件需求。软件危机的产生促使人们开始研究软件开发的技术手段和管理方法。
二、需求管理
软件需求是每个软件开发的开端与基础。在项目需求分析阶段,双方必须全面地尽可能细致地讨论项目的应用背景、功能要求、性能要求、操作界面要求、与其他软件的接口要求,以及对项目进行评估的各种评价标准。在进行需求分析时,可以首先分析客户原有系统的建设情况,对客户的原有产品进行分析,明确建设目标等。
需求管理对软件项目能否最终实现产生至关重要的影响。任何的软件项目都必须进行合理的、细致的、一致的需求管理,只有这样才能制定正确合理的软件开发计划,软件项目才能顺利地开发完成。
三、沟通与协作
四、风险管理
软件项目风险管理是指对在软件开发过程中所遇到的预算和进度等方面的问题进行分析,寻求风险应对方法,做好风险管理计划。
针对软件项目中的风险管理问题,不少专家、组织提出了自己的风险管理模型。常见的主要风险管理模型如下。
2.BarryBoehm模型。Boehm模型的思想核心是:10大风险因素列表。针对每个风险因素,都给出了一系列的风险管理策略。在实际操作时,Boehm以10大风险列表为依据,总结当前项目具体的风险因素,评估后进行计划和实施,在下一次定期召开的会议上再对这10大风险因素的解决情况进行总结,产生新的10大风险因素表,依此类推。Boehm模型的基本形式可描述为:RE=P(UO)3L(UO),其中RE表示风险或者风险所造成的影响;P(UO)表示令人不满意的结果所发生的概率;L(UO)表示糟糕的结果会产生的破坏性的程度。
五、软件项目管理技术
2.CMMI。CMMI被看作是把各种CMM集成为一个系列的模型中。CMMI的基础源模型包括:软件CMM2.0版(草稿C),EIA-731系统工程,以及IPDCMM(IPD)0.98a版。CMMI也描述了5个不同的成熟度级别:级别1(初始级)代表了以不可预测结果为特征的过程成熟度。过程包括了一些特别的方法、符号、工作和反应管理,成功主要取决于团队的技能。级别2(已管理级)代表了以可重复项目执行为特征的过程成熟度。组织使用基本纪律进行需求管理、项目计划、项目监督和控制、供应商协议管理、产品和过程质量保证、配置管理、以及度量和分析。
3.PSP。PSP(PersonalSoftwareProcess,个体软件过程)是由CMU/SEI开发出来的,它的推出在软件工程界引起了极大的轰动,可以说是由定向软件工程走向定量软件工程的一个标志。PSP为基于个体和小型群组软件过程的优化提供了具体而有效的途径,例如如何制订计划,如何控制质量,如何与其他人相互协作等等。在软件设计阶段,PSP的着眼点在于软件缺陷的预防,其具体办法是强化设计约束准则,而不是设计方法的选择。因此,PSP保障软件产品质量的一个重要途径是提高设计质量。
六、小结
本文分析研究了软件项目管理中的需求管理、员工之间的沟通与协作、软件项目风险管理。最后结合实践,提出并分析了软件项目管理技术。我们相信随着软件工程的发展和进一步成熟,软件项目管理技术的发展会取得更大的进步。在实际项目中,我们要坚持改善软件工程的管理,并在实践中总结适合自身的经验,这样才有利于管理技术的进步和软件项目的顺利完成,创造出更高的品质、更大的效益。
参考文献:
[1]PhpMetzger,JohnBoddie.软件项目管理-过程控制与人员管理[M].北京:电子工业出版社,2002.
[2]RajeevTShandilya.王克仁译.软件项目管理[M].北京:科学技术出版社,2002.
[3]杨根兴,金荣得,宗宇伟.软件需求的不确定性与解决途径.计算机应用与软件.