时间:2022-11-28 10:29:29
绪论:在寻找写作灵感吗?爱发表网为您精选了8篇软件项目总结,愿这些内容能够启迪您的思维,激发您的创作热情,欢迎您的阅读与分享!
该方案涉及的主要对象是软件经理和各模块的软件研发负责人,SPME方案架构如图1所示。图1中,SPME方案覆盖整个项目的启动、规划、执行、监控和收尾5大过程组,并贯穿始终。(1)启动规划阶段。首先软件经理和项目规划、产品经理、整个项目的项目经理、硬件、测试等同事进行充分沟通,确定项目范围,给出项目详细信息;其次根据项目信息,由软件经理牵头组织各模块研发负责人或具体的开发工程师,进行需求评估,划分出项目阶段,进行WBS分解,确定出开发环境和代码组织、人力规划、时间点计划等,达成一致的范围和成本基准;最后由软件经理画出关键时间点的时间轴图,建立时间基线。该阶段以确定了范围、成本、进度基准,输出了文档为结束标志。(2)执行和监控阶段。各模块的研发工程师按照WBS分解进行软件研发,同时用一页纸嵌入式软件项目管理表[1]进行研发问题的状态跟踪,这样以便后续参考和作为进展汇报给软件经理。软件经理进行进度和攻关问题的跟踪,同时每周要输出周报将研发进展或一些变更情况及时通知到整个项目组。该阶段一直持续到软件版本被验收通过。(3)项目收尾阶段。各模块研发负责人进行各模块技术提炼和总结,完善一页纸嵌入式软件项目管理表并汇报给软件经理,软件经理再根据项目详细信息等1~5份过程文档记录,进行整体复盘总结。
2SPME方案模板和具体应用
笔者选用了较为通用的Excel工具,基于这个方案给出管理模板,如图2所示。整个文档是一个工作簿(book),图1中提到的各文档分别作为该book的一个个对应的工作表(sheet),图2最下方的Excel表的各工作表信息仅展开了文档“1.项目信息”这个sheet的内容,相应还有其他sheet,这样整个项目用一个Excel文档就可以非常方便地跟踪起来。(1)项目信息。项目信息需要和项目组各方确认,并要特别注意规划阶段将项目的关联性和图2SPME方案模板特殊共性需求信息讨论清楚,确定后由软件经理将各项信息记录下来,也可根据实际需要进行丰富或裁剪。项目启动后,“1.项目信息”要最先共享给整个开发团队成员,作为研发启动的标志。这样在多项目并行研发时,可以使整个团队目标清晰,并充分利用各项目间共性部分,对特殊部分单独搭建以防干扰其他项目,使软件研发事半功倍。(2)WBS分解。软件经理组织各模块研发负责人或具体的开发工程师一起评估需求,划分出项目阶段,进行WBS分解,最终结果记录在“2.WBS分解”的sheet中。这个过程是明确项目软件研发范围基准、时间基准和成本基准的过程,所以WBS分解出的工作包需和各负责人讨论达成共识,有争议的要和项目组其他人员,比如:硬件、市场、测试、规划等同事商定。确定下来后必须评估出开始结束时间,并进行编号。WBS是项目执行的主干和绩效考核的基本依据。(3)时间轴图。完成“2.WBS分解”确认好时间点和逻辑关系后,由软件经理将各重要的工作包节点,特别是模块开发完成、版本、送测、上市等节点按照时间顺序标注出来,形成一个直观的时间图表,记录在“3.时间轴图”sheet中。这些时间点就是整个软件研发的时间基准。在执行和监控过程中要不断地进行核实,并标注出当前进展到哪,以便向项目利益相关者进行进度汇报,并可以从宏观上明晰项目状态。(4)过程问题跟踪和周报。在项目执行监控阶段中,软件经理将WBS分解出的各工作包分配到各模块的负责人,标志着研发执行工作正式开始。在多项目并行的情况下,具体的研发工作由各模块负责人采用一页纸嵌入式软件项目管理方式[1]进行研发跟踪,软件经理则采用“4.过程问题跟踪表”,“5.周报”将精力集中在各项目的进度和攻关问题的管理上。其中,过程问题跟踪表,一是用作WBS工作包的进展跟踪;二是将研发过程中新增的重要问题和变更记录下来,安排处理并跟踪处理进展,这样可以避免耗时耗力地去翻邮件查询相关问题信息,或遗忘等效率低下的现象。执行过程中,软件经理至少每周要安排对软件版本进行构建和测试,具体的周期时间可根据实际进行调整,整个研发团队从软件版本的测试情况,对研发工作的进展进行核实,由软件经理收集各模块的研发负责人汇报的开发进展,结合各项目过程问题跟踪表记录的一些问题和状态,梳理出周报。周报侧重于目前识别出的主要风险和需要领导协调的事宜,软件研发整体进展和下周计划,其中下周计划要细分到各软件模块,使得每个团队成员都有明确的目标和任务。周报是项目报告绩效和监控风险的重要工具,需要每周固定时间以邮件或其他方式共享给整个项目团队成员和相关领导,以便使相关信息能及时传递到位,新增需求和变更的迭代开发[3]。风险问题引起高层领导的重视和推动,使得整个团队步调整齐,从而达到预定目标。(5)复盘报告。软件版本被验收后,及时进行复盘总结。主要涉及客户分析,并针对主要需求,相关过程问题和教训等项进行总结,同时将开发负责人完善的一页纸嵌入式软件项目管理表附入到“6.复盘总结”sheet中。至此整个项目过程就通过层层的文档化,汇成了一份完整的软件研发项目总结,可以通过复盘会议等形式对整个项目团队或相关的项目团队进行共享。以上给出了SPME方案模板和具体应用。模版是基于Excel的建议格式,使用者可以根据SPME方案的思想和各自的需求进行定制和扩展。这样通过一个Excel文档就可以跟踪整个项目,从而使多个并行研发的嵌入式项目,有了统一的软件研发管理模式,可以更清晰、快速、有效地进行问题跟踪和信息传递,暴露项目研发中的风险,有效地降低人力协调和沟通成本,便于归档和追溯,能更快更好地进行项目交接和对比总结。
3结语
关键词:软件工程;案例教学;不足反思;项目开发驱动教学
引言
软件工程是计算机相关专业的一门核心课程,具有综合性、实验性极强的特点,其研究的范围非常广泛,包括软件开发的技术方法、工具和管理等许多方面,而且新的技术方法和工具源源不断涌现[1]。该课程的学习目标旨在提升学生的分析与设计能力、编码能力、工程素养及团队协作精神,为学生成为一名合格的软件工程师打下良好的理论、技术及工程基础。为了实现这一培养目标,很多院校对软件工程课程教学进行了改革,其中最为重要的改革应属于引入案例教学[2]。案例教学法是指教师以一个实际项目的运作为主线,讲授软件开发的全过程,讲解时贯彻理论与实践相结合的原则,从工具、方法、技巧各个角度,对学生进行实用性培养,同时重点培养管理和设计能力,在理论上有的放矢,强调理论的适用和适度[3]。案例教学法的引入改变了传统教学中知识内容枯燥、理论性强、学生难以理解运用的状况,在一定程度上激发了学生的学习兴趣,活跃了课堂氛围,提高了教学的质量。但是,在软件工程实际教学过程中,我们发现了很多问题,教学常常达不到预期效果。
1、软件工程案例教学过程中存在的问题
1.1以“老师教,学生听”为主
软件工程课程教学虽然引入了案例教学,但是,学生在教学过程中仍然处于被动接受状态。从案例的选择到案例的开发过程讲解仍然以“教师教,学生听”为主,学生仅仅是项目开发的“旁观者”而不是“参与者”。因此,学生很难真正体会相关理论的重要性,更不用说转化为自身的能力素质。学生学完课程后,往往“什么都知道,却什么都不会”。
1.2案例选择不合理
在案例教学中,教师通过把知识点与案例相结合,使学生从个案的分析、比较中,更深入地了解软件系统开发与管理过程,软件工程案例教学的不足反思与对策研究文/田怀凤最终达到技术和知识点的掌握,因此案例项目的选择至关重要[4]。项目太大涵盖的内容太多,学生很难在有限的课堂教学中把握。项目太小又很难全面包含把软件工程的相关理论。有的项目算法相对密集,性能要求高,而功能需求简单,也很难用工程化的方法和手段对其开发过程加以促进。甚至有的教材或者教师仍然以C/S模式的软件为开发案例,不符合目前对软件B/S结构或者安卓开发的需求,使得学生学完软件工程课程之后,感觉课程的理论与现实需要脱节,影响学生学习课程的兴趣。
1.3不能满足学生对课程的不同期望
软件工程课程一般开设在大三下半学期,这时学生们的动手能力和专业技能差别很大。有些学生经过C++,JAVA等课程的学习以及参加大学生创新项目等方式,已经积累了一定的软件开发的经验,他们往往希望能深层次、系统的参与软件开发,培养管理能力,团队合作能力等。还有些学生由于自身主动性及能力的原因,动手能力还很弱,案例教学对他们而言更像“纸上谈兵”,往往只能记住一些理论、方法,不能通过课程的学习提高专业技能。
1.4实践课时不足
为了配合案例教学,软件工程课程一般会设置实践课时,供学生进行项目开发实训。但是,由于实践课时较少,(一般8课时左右),在这么短的时间内,往往只能完成项目的分析和设计的文档,其他工作要由学生课后完成,因为缺乏监督,难以确保每位学生都能保质保量的完成。
1.5对最新的项目实训工具介绍不足
随着软件工程理论的发展,软件项目实训的工具也在不断涌现,比如CASE工具、自动化测试工具、项目管理工具、配置管理工具等。在以往的案例教学中,教师往往注重讲解案例项目的开发过程理论,很少涉及这些工具的使用介绍,而实际情况是很多学生不知道用什么工具来表示分析设计的结果,也不清楚数据库设计、软件测试、项目管理等相关工具有哪些,如何使用。
1.6考核方式不能有效地激发学生的课后学习兴趣
采用平时30%+考试70%的考核方式,考核的重点还在理论知识的“纸上谈兵”,不能全面反映学生课后的努力,不能有效激发学生的学习兴趣。
2、改进措施
为了切实提升教学质量,培养学生的专业技术能力,我们以解决问题为目标,以教学模式的改变促进教学内容和考核方式等多方面有针对性地改进。
2.1以学生为中心的课堂教学模式
彻底改变以“教师讲,学生听”为主的教学模式,改变教师的角色,让教师的“教”变为项目的“引导”,学生的“听”变为项目的“开发”。把案例教学,变为项目驱动教学[5]。在整个教学过程中,由教师引导学生进行项目开发,让学生在开发过程中感受软件工程的理论,变“要我学”为“我要学”,再由教师对相应理论进行指导总结。具体实施方案如下:(1)有选择性的分组分工,满足不同学生对课程的不同期望在课程学习之初,教师对全班学生的专业技能和课程学习期望进行调研,选择专业技能较强或者有一定的软件开发经验的的几名同学担任组长,再由组长以自愿的结合的方式招募组员,将全班同学分成5人左右一组的几个项目小组。组长担任项目经理,小组中的其他成员根据能力分别担任编码、测试、数据库、美工等角色。这种分组方式,既防止了随机组合时的各组学生专业能力不均衡,又满足了不同学生的不同角色期望,自愿组合又利于团队融洽和交流。(2)从学生的实际需求产生项目案例在案例项目的选择方面,也完全以学生为中心,让每个开发小组自行选题。一般来说,功能需求较多,流程复杂而实现技术难度较小又为大家所熟悉的题目最适合。为了确保每组都能选到适合的题目,教师进行了引导,引导学生们从自己的日常生活需要出发,选择各类信息管理系统作为项目案例。比如“大学生社团管理系统”,“校园二手图书交易系统”等。(3)教师走下讲台,引导学生进行项目开发课堂教学不再是结合案例的理论讲授,而是根据软件开发的生命周期,由教师引导学生小组进行项目开发,并在开发的过程中,总结软件工程的理论。比如在需求分析阶段,教师首先让学生在课后以小组为单位,讨论自己项目的需求,再由教师在课堂上组织他们进行交流汇报,每一组汇报时,其他小组的成员都成为用户角色,提出新问题,直到确认项目的需求。然后由教师总结需求分析的方法,引导学生使用MicrosoftVisio和RationalRose进行需求规格说明书的撰写。软件生命周期的其他阶段按照同样的方式进行,先由学生小组自行主动学习开发,再由教师组织交流讨论,总结方法,引导学生使用相关项目开发的工具,一步一步完成项目开发。在这个过程中,由各小组的组长分配任务,协调安排人员,因为组长们有一定的项目开发经验和开发技能,保证了项目能顺利进行。小组内每个成员的团队协作能力和组长的组织管理能力都得到了锻炼。(4)成果汇报,总结经验在实践课时,安排所有学生进实验室,集中完成项目开发。由于各小组学生的能力有差异,项目进度各不相同,集中开发,有利于各小组的交流学习,教师也能随时指导。等所有小组的项目开发任务完成后,由小组组长进行成果汇报展示,教师和其他同学充当评委,指出得失成败,总结经验。教师从项目实践中让学生感受文档、规范编码、团队合作、项目管理等重要概念。这种“学生自学找出不足-交流汇报找出解决办法-教师总结理论经验”的项目驱动教学方法,极大地提升了学生的学习兴趣和主动性,取得了较好的学习效果。教师从知识传授者变成了项目开发的引导者、组织者和评价总结者。
2.2以项目开发为驱动设置教学内容
在以项目开发为驱动的案例教学中,对教师的能力提出了更高的要求,教师要能对项目开发的全过程精准的把握。在教学过程中,把教学内容巧妙地和项目开发任务结合起来,在学生最困惑最需要帮助的时候给与实践和理论的指导。每个阶段开始之前,提前将以往容易被忽略的项目实训工具进行介绍,比如软件分析与设计的工具MicrosoftVisio,面向对象设计工具RationalRose,数据模型建模工具PowerDesigner,软件集成编码开发工具VisualStudio等,让学生们掌握最先进的工具,更方便他们进行项目的开发。
2.3项目开发为主的考核评价方式,激发学生的学习兴趣
以项目开发为驱动的案例教学法,需要学生花费大量的课余时间,所以我们采用“项目发过程50%+项目文档20%+开卷考试30%”的方式进行考核。项目开发过程成绩=团队对软件工程的执行情况+团队的分工与协调情况+软件的复杂程度和最终实现情况。这种考核方式既要求学生小组不折不扣地完成项目过程开发,又充分强调了项目文档的重要性,再通过开卷考试强化软件工程重要的理论概念,将理论和实践充分集合,激发了学生的学习兴趣,取得了很好的效果。
3、结束语
以“学生为中心,项目开发为驱动”的软件工程课程教学方法,能更好地激发学生的学习兴趣,将学习的角色从受众变成主动者,让学生从枯燥的理论学习环境中解脱出来,全面深入体验软件工程分析、设计、编码、测试的开发过程,更好地培养了学生的理论应用能力,团队合作能力,问题解决能力,提高了工程实践能力。接下来,有条件的学校可以开设软件工程课程设计课程,或者与企业合作,选择最新的、为企业生产应用所需要的项目作为开发案例,让学生真正的做到学有所用。还可以将好的项目案例形成案例库[6],供后面的学生参考选择开发。培养具有高素质专业技术人才是一项需要长期坚持的系统化工程,需要持之以恒的不懈努力以及教学实践的不断尝试和反馈。
参考文献
[1]张海藩.《软件工程导论》(第6版)[M].清华大学出版社,2013
[2]王辰尹.面向应用型IT人才培养的软件工程教该关键问题研究[J].计算机教育.2014
[3]李峰.计算机软件工程专业卓越计划实践教学.计算机教育.2013
[4]吕云翔.《软件工程实用教程》[M],清华大学出版社,2015
[5]谭貌.软件工程专业多课程协作项目驱动教学模式研究[J],计算机教育,2011
论文摘要:为提高软件企业的管理水平,对软件项目管理存在的一些问题进行了深入的分析,指出了软件项目管理中常见的不足之处:项目计划问题、管理意识问题、项目干系人相关问题、项目团队内分Z-协作问题、沟通意识问题、项目风险管理意识问题、项目收尾问题通过分析找出了原因.提出了改进措施
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量风险等进行分析和管理的活动。软件项日管理最早出现于7o年代中期,当时美国国防部专门立项研究软件项目失败的原因,发现70%的项目失败是I如于管理不善引起的。而并不是因为技术能力。从而得出一个结论,即管理是影响项目全局的因素,而技术只影响局部。所以软件项目管理至关重要。在关系到软件项目成功与否的众多因素中,项目规划、需求变化、软件质量、风险管理等都是与项目管理直接相关的因素。因此,提高软件项目管理的能力对软件组织的软件生产力的提高是最为重要的。本人对目前软件企业实施项目管理的状况进行了分析,结合软件项目管理的理论知识,以期找出在软件项目管理中常见的问题。促进软件项目管理的应用研究。完善软件项目管理在软件企业的实施。
1软件项目管理存在的主要问题
1.1项目计划问题
项目计划是—个用来协调所有其他计划,以指导项目执行和控制的文件。项目计划是项目经理实施项目管理控制的基础。制定计划的过程就是—个对项目逐渐了解掌握的过程,通过认真地制定汁划,项目经理可以知道哪些要素是明确的。哪些要素是需要逐渐明确的,通过渐近明细不断完善项目计划。目前的问题主要有:一是项目计划的制定不够严谨,随意性大.可操作性差,因而实施中无法遵循。如项目计划过于粗略.落实粒度(“Breakdown”)不足,不能做到任务、进度、资源三落实。二是缺乏贯穿项目全程的详细项目计划,甚至采用每周来制定下周工作计划的逐周项目计划方式,其实质是“项目失控合法化”。三是项目进度的检查(与进度计划对比)和控制不足。不能维护项目计划的严肃性。
1.2管理意识问题
在软件企业中。项目经理大多是技术骨干,在技术方面的知识比较深厚,但是项目管理知识、项目管理必备的技能,项目管理的经验都有待提高。部分项目经理没有意识到自己是项目经理的角色。不是从总体上去管理整个项目而是埋头干具体的技术工作,其计划不周造成项目组成员任务分配不均.忙的忙、闲的闲,这将影响项目的最终实施。有些项目经理对于一些不服从管理的技术人员,没有较好的管理方法,不好安排的工作只好th己做。
1.3项目干系人相关问题
项目千系人(“STAKEHOLDER”)是指参与项目和受项目活动影响的人,包括项目发起人、项目组、协助人、顾客、使用者、供应商,甚至是项目的反对人。人们的需求和期望在项目的开始直至结束都是非常重要的。不同的干系人其期望和追求的目标往往相差甚远,因此对项目十系人的愿望进行平衡是相当困难的事情。例如政府部门的不少对群众办公的信息系统,上层管理机关往往希望能够采集尽可能多的信息项以便对数据进行多种多样的系统分析,并对信息进行有效控制而增加一些审批流程;基层对外办公的窗口则因为办公速度的压力希望减少信息的输入;而办事群众则希望相关政府机构能够简化工作流程,加快办事速度。如果对项目所有干系人没有进行足够的沟通,使其尽可能地参与项目,则可能因为项目开始时项目范围和一些具体要求不够完整清晰,或某个项目干系人后期认识的变化而提出新的要求,造成工期的延长,成本的增加,甚至项目的完全失败。
1.4项目团队内分工协作问题
由于项目开发的各阶段不同角色、同一阶段不同角色的责任各不相同,项目经理把工作责任分画给团队成员时通常会出现一些不良现象。首先是山于分工不够清晰而造成工作相互推诿、责任互相推卸的现象;另外是出现“自家打扫¨前雪”的现象,即虽然分工比较清晰但是各成员只顾完成自己的那部分任务而不愿意与他人协作。
1.5沟通意识问题
项目沟通管理包括确保及时、正确地产生、收集、、存储和最终处理所需项目信息的过程。它是人、思路和信息之间的关键纽带,是成功所必须的。虽然整个项目是项目经理负责,但是在决定这个业务单元山某个或者某两个人完成后,项目经理只能起管理上的控制、建议和指导的角色,不能对具体的内容进行过多的干预在软件企业中,项目经理大多是技术骨干,而项目组成员也都是“高科技人员”,都具有“从专业或学术出发、工作自主性大、自我欣赏、以自我为中心”等共同的特点。因此妨碍沟通因素主要是“感觉和态度问题”,也就是沟通意识和习惯的问题。在系统的实施阶段或软件开发的试运行阶段,项目成员基本上是持续在客户方进行工作,这种情况非常容易忽视沟通。如果没有足够的沟通意识和沟通制度、沟通工具,就有可能造成信息不畅,从而加大项目失败的风险。
1.6项目风险管理意识问题
项目风险管理是指为了最好地达到项目的目标,识别、分配、应对项目生命周期内风险的科学与艺术。风险管理对选择项目、确定项目范围和制定现实的进度计划和成本估算有积极的影响,并有助于项目千系人了解项目的本质,使团队成员参与确定优势和劣势。目前项目风险管理意识的问题主要有两种情况。第一是项目经理没有充分分析可能的风险,对付风险的策略考虑比较简单,在做项目规划时常常没有做专门的风险管理it~’l文档,而是合并在项目计划书中。第二是项目经理没有充分意识到风险管理的重要性。对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对后面的风险防范起不了什么指导作用。
1.7项目收尾问题
项目经验总结是项目经理和项目组人员在项目完成后就取得的教训写的报告,是项目收尾的一个重要组成部分。总结在本项目中哪些方法和事情使项目进行得更好、哪些对项目制造了麻烦、以后应在项目中避免什么情况。哪些事情应在后面的项目中坚持等等。项目经理在项目结束时有些是因为项目人员已经不足或不全,或是因为有新的项目要接没有时问,总体对项目经验总结的重视程度不够。有些是项目经验总结一再拖延,有些是交上来的报告质量较低,敷衍了事。
2加强软件项目管理的建议及措施
2.I制定相符的项目计划
制定计划的精髓不在于写出一份好看的文档,而在于运用您的智慧去应对各种问题和面临风险并尽可能做出前瞻性的思考。计划是用来指导工作的,制定项目计划必须把握项目it~,l的粒度,粒度越细则控制力度越大,但项目管理的成本越高,反之则控制力度越小。凶此必须按照特定的项目量体裁衣,该详细就详细,该简略的就简略,制定相符的项目计划。许多组织都有项目计划制定的指导原则。例如,美国国防部的2l67标准“软件开发计划”用于指导那些为国防部开发软件的开发商制定软件开发计划。电气和电子工程师协会(IEEE)的1058.1标准描述了“软件项目管理计划”的主要内容。表l给出了“1EEFYI,T:,准软件管理计划”的格式。遵循那些标准和方针有利于项41汁划的制定和执行一旦it~,l被负责任地完成,他就可以给闩己一个和管理层或客户交流和协商的基础,帮助其在项目过程中防范各种题的出现,保证项H的按时完成.
2.2使用w BS(WorkBreakdownStructure)和资源负荷直方图,合理分配任务
项目经理应使用工作分解结构WBS将项目工作范围进行分解,为了避免有些虽然工作分解结构WBS没汁合理,但项目任务无法有效、合理地分配给相关成员,可采用资源负荷直方图把工作任务合理分配并达到“负载均衡”。另外.技术骨r在担任项目经理之前,最好能系统地学习项目管理知识,特别是其中的人力资源管理、沟通管理,并且在实际工作中不断提高角已的管理素质,丰富项目管理的经验,提高项目管理的意识。
2.3项目组成员应互相协作、互相配合
项41经理通过使用WBS将工作范尉进行分解.并将工作责任分配给团队成员,同时应强调不同分工、不同环节的成员应 当相互协作,共同完成任务。虽然项目的进行有不同阶段的划分,但各阶段还是相互联系的。上一阶段工作的结束不能只交付阶段性成果,往往要通过多次沟通才能更为清晰地披下一阶段成员所接受,其有效性、合理性也要被下一阶段的工作所检查,通过检验有时也有必要对上一阶段的工作结果进行相应的凋整。因此,项H组成员都应根据需要相互协作,相互配合,共同完成任务。
24加强沟通意识
项目沟通管理指出:“管理者要用70%的时问用十与人沟通,而项目经理需要花费90%或更多的时间来沟通”从沟通的效果和效率角度出发,一股应注意下面四种情况:首先是沟通之前对沟通的基本慨念和目标进行清晰的界定其次是不能凯溺十沟通本身,而必须时刻清楚沟通的目的;意到沟通是有成本的,沟通的时间就是成本,客户在为这些成本买单第三是一些规则,包括时和回合的限制、耐心听完对方的I舌,进行“集中”决策。最后是为了做好事件.必须事先进行明确,进行充分的授权。另外,项目经理及其项14组成员要对项14下系人进行分析,项目1:系人分析要记录重要的I:系人的人名、组织、他们各在项目中的角色、每个I:系人的实际情况、他们各自的项目利益大小、以及各自对项目的影响程度,以及管理这些项14 r系人的有关建’义等。通过沟通协调.以驱动他们对项目的支持,减少其对项41的阻力,以确保项41获得成功
2.5加强风险管理意识
项目经理必须通过学项41管理知,掌握项H风险管理的必备知,加强对项14汁划中的风险管理汁划的审核,提高项41组的管理意识。总结本行业项目中常见的风险及其对策作为风险管理汁划中必要的『x【险内容,并切实评估相应对策的有效性和可行性。
2.6重视项目经验总结
项41经理及管理人员应对项目经验总结引起足够重视。在制度上鼓励和JJu强项目经验总结工作,使得项41经验总结及时并且具有指导意义而不是敷衍了事,为以后的项41人员更好地工作提供一个极好的资源和依据。
软件工程课程主要介绍了软件问题定义、项目计划、需求分析、设计、维护等软件开发过程中的各种问题。通过市场调查、观摩学习、讲座、校企合作,发现软件行业在软件设计、软件维护、软件测试三方面就业岗位多,人才缺口大。结合学生学习的特点,参照国家相关职业标准,确定软件工程,培养人才方向岗位定位在软件设计、软件测试、软件维护三个岗位,因此教学中将重点放在软件设计、软件维护、软件测试上。文中以“学生信息管理系统”项目为载体,将项目开发过程中用到的各项工作技能按照工作过程分解任务,项目分解成一个个的子案例,以任务分解的方式完成技能的案例教学,体现工作过程的完整性。三个岗位的工作任务、职业能力、知识结构之间的关系,,整个教学过程是一个循序渐进的过程,每个岗位有明确的工作任务,每个工作任务对应不同的职业能力,知识的表现形式也就不同。为了与岗位工作任务相适应,在项目教学中培养学生的职业能力,使学生做到“学中做,做中学”;在设计教学项目案例上做到项目难度适中、易理解、易操作、易掌握、有针对性和代表性,并且包含上述三个工作岗位的工作任务与职业能力相关知识,最终达到项目驱动,任务分解的教学目的,同时学生也能进一步理解工作过程中需要掌握的技能。
二、三元整合在教学中的应用
案例教学、项目驱动、任务分解的教学方法有各自特点,如何将这些教学方法整合在一个具体的项目中,并发挥其优点是教学中要重点解决的问题。将“学生信息管理系统”项目进行分解,每一个子项目对应一个具体的工作任务。对每个子项目按以下的教学步骤进行教学:
1.项目分解,确定每一个子项目的工作任务根据项目完成的时间限制、要求,将项目分解成子项目,不同的子项目对应不同的工作任务。如“学生信息管理系统”可分解为“学生管理、课程管理、成绩管理、信息查询”四个子项目,且每个子项目对应不同的工作任务。把工作任务独立、花费时间少的称为小任务;反之,工作任务需要多个教学单元经过综合实践才能完成的,称为大任务。在教学中又可将大任务分解为小任务,通过分析总结,最终使学生能掌握自上而下逐步求精分析问题解决问题的能力。
2.理论讲解,案例演示教师结合案例演示,讲解子项目中对应的工作任务,让学生真实理解工作过程中这个子项目到底要做些什么,怎么做,哪些知识是已知的,哪些知识是未知的,提出问题,充分调动学生的好奇心与求知欲。
3.学生分组讨论,协同合作根据学生兴趣、成绩、实践动手能力将学生分成4到5个人为一个小组。小组成员共同讨论完成项目的开发。工作任务完成过程中,让学生轮换担当不同的角色,使其能体验不同角色在不同阶段的职责与任务,既培养学生团队协作能力,又发挥了各自特长,调动了学生的积极性,从而提高了学习兴趣。
4.学生各自完成工作任务通过项目分工,团队中的每个成员都有明确的任务,结合教师的案例演示进行工作任务的模拟练习,让学生对工作任务的完成有了真正的认识,从而培养学生的职业能力。
5.总结工作任务成果,评审验收首先,学生对自己完成的子项目进行展示、总结,哪些完成,哪些没有完成,原因在什么地方;其次,教师对每个团队项目完成的情况进行比较,并将各团队工作成果与案例演示中的工作成果进行比较,总结规律和技巧,使团队中的每个学生知道自己在做什么,做得如何,哪些地方需要改进,哪些知识需要完善,自己发挥了什么作用,将实践上升到理论高度,进而培养学生的职业能力。
6.拓展第二课堂,培养学生的研究、创新性学习能力在案例教学与学生实践的基础上,学生对工作过程中所要完成的工作任务有了基本的了解和认识。对于学习兴趣高、实践能力强的同学,选择自己感兴趣的方面跟老师一起参加项目研发,在教师的指导下,了解跟踪软件开发新技术发展趋势,更加深入了解软件工程精髓,进而培养自己创新性学习能力。
三、总结
软件工程课程主要介绍了软件问题定义、项目计划、需求分析、设计、维护等软件开发过程中的各种问题。通过市场调查、观摩学习、讲座、校企合作,发现软件行业在软件设计、软件维护、软件测试三方面就业岗位多,人才缺口大。结合学生学习的特点,参照国家相关职业标准,确定软件工程[5],培养人才方向岗位定位在软件设计、软件测试、软件维护三个岗位,因此教学中将重点放在软件设计、软件维护、软件测试上。文中以“学生信息管理系统”项目为载体,将项目开发过程中用到的各项工作技能按照工作过程分解任务,项目分解成一个个的子案例,以任务分解的方式完成技能的案例教学,体现工作过程的完整性。三个岗位的工作任务、职业能力、知识结构之间的关系如表1所示:由上表知,整个教学过程是一个循序渐进的过程,每个岗位有明确的工作任务,每个工作任务对应不同的职业能力,知识的表现形式也就不同。为了与岗位工作任务相适应,在项目教学中培养学生的职业能力,使学生做到“学中做,做中学”;在设计教学项目案例上做到项目难度适中、易理解、易操作、易掌握、有针对性和代表性,并且包含上述三个工作岗位的工作任务与职业能力相关知识,最终达到项目驱动,任务分解的教学目的,同时学生也能进一步理解工作过程中需要掌握的技能。
二、三元整合在教学中的应用
案例教学、项目驱动、任务分解的教学方法有各自特点,如何将这些教学方法整合在一个具体的项目中,并发挥其优点是教学中要重点解决的问题。将“学生信息管理系统”项目进行分解,每一个子项目对应一个具体的工作任务。对每个子项目按以下的教学步骤进行教学:
1.项目分解,确定每一个子项目的工作任务
根据项目完成的时间限制、要求,将项目分解成子项目,不同的子项目对应不同的工作任务。如“学生信息管理系统”可分解为“学生管理、课程管理、成绩管理、信息查询”四个子项目,且每个子项目对应不同的工作任务。把工作任务独立、花费时间少的称为小任务;反之,工作任务需要多个教学单元经过综合实践才能完成的,称为大任务。在教学中又可将大任务分解为小任务,通过分析总结,最终使学生能掌握自上而下逐步求精分析问题解决问题的能力。
2.理论讲解,案例演示
教师结合案例演示,讲解子项目中对应的工作任务,让学生真实理解工作过程中这个子项目到底要做些什么,怎么做,哪些知识是已知的,哪些知识是未知的,提出问题,充分调动学生的好奇心与求知欲。
3.学生分组讨论,协同合作
根据学生兴趣、成绩、实践动手能力将学生分成4到5个人为一个小组。小组成员共同讨论完成项目的开发。工作任务完成过程中,让学生轮换担当不同的角色,使其能体验不同角色在不同阶段的职责与任务,既培养学生团队协作能力,又发挥了各自特长,调动了学生的积极性,从而提高了学习兴趣。
4.学生各自完成工作任务
通过项目分工,团队中的每个成员都有明确的任务,结合教师的案例演示进行工作任务的模拟练习,让学生对工作任务的完成有了真正的认识,从而培养学生的职业能力。
5.总结工作任务成果,评审验收
首先,学生对自己完成的子项目进行展示、总结,哪些完成,哪些没有完成,原因在什么地方;其次,教师对每个团队项目完成的情况进行比较,并将各团队工作成果与案例演示中的工作成果进行比较,总结规律和技巧,使团队中的每个学生知道自己在做什么,做得如何,哪些地方需要改进,哪些知识需要完善,自己发挥了什么作用,将实践上升到理论高度,进而培养学生的职业能力。
6.拓展第二课堂,培养学生的研究、创新性学习能力
在案例教学与学生实践的基础上,学生对工作过程中所要完成的工作任务有了基本的了解和认识。对于学习兴趣高、实践能力强的同学,选择自己感兴趣的方面跟老师一起参加项目研发,在教师的指导下,了解跟踪软件开发新技术发展趋势,更加深入了解软件工程精髓,进而培养自己创新性学习能力。
三、总结
一引言
项目管理技术是软件工程专业的一门重要专业课。其教学任务是使学生了解和掌握项目管理的基本概念、基本原理和工程化方法。内容涉及项目管理知识体系(PMBOK)九大知识领域和五个标准化过程组,几乎涵盖了软件项目从立项到结束的方方面面,是一门具有相当广度的课程。然而,该课程的教学效果却不容乐观。
其一、项目管理技术的理论知识多脱胎于工程管理领域,由于国内软件工程专业建设刚刚起步,相关教材往往照搬工程管理理论,缺乏完全针对软件开发的必要整理和筛选。因此同软件开发实践结合并不十分紧密。
其二、而传统的教学方式往往重理论而轻实践,教师将理论知识“满堂灌”给学生,学生“死记硬背”理论条文,并不懂得如何将理论用于实际软件开发。这种仅以理论的多寡深浅作为对学生评价激励唯一标准的教学手段,必然导致培养的人才实用性不强,职业能力较差,工程化程度较低。达不到项目管理技术的教学要求。
因此,需要对软件项目管理技术的教学进行改革。二基于具体项目的软件项目管理教学软件工程项目相比一般工程项目具有更强的复杂性和更多的不可控因素,传统的项目管理教学所传授的知识常常不易使理论知识和实际开发吻合,给学生造成“学习无用之感”;课程本身也难以完全包括软件开发过程的全部情况。最好的方法是通过一个具体软件项目的开发过程,使学生接受项目管理的理念,而软件项目的开发设备相对单一,团队人数相对较少,相比一般工程项目更易进行实践演练。
可以看出,项目管理进行过程将根据实际情况不断进行计划变更、计划控制和计划执行的搏弈和循环。由于软件项目有以下特点:
(1)软件产品是无形的,不可捉摸的,无法感觉形状,设计也难以直观表示,很难确定产品质量或估计开发工作量。
(2)由于软件的拷贝生产轻而易举,因此,几乎全部的软件项目成本在开发过程中,而不是在制造过程。
(3)软件开发过程属于劳动密集型过程,尚未实现完全自动化,因此对软件项目开发进度的计划和控制比对一般工程项目更加复杂。
(4)软件是逻辑实体,本身很容易修改,但由于其复杂性,又很难正确地修改,在缺乏沟通的情况下,对个别模块的修改可能会带来新的错误。
(5)软件不像其他产品会因使用而磨损,和一般工程产品不同,软件产品的维护常常通过增加新模块功能完成升级。为保证新版本的稳定性,常常需要对新版本的重新设计因此,软件过程主要集中于软件项目的开发过程,而在这一过程中,相比一般工程项目,项目管理过程组的核心循环表现得更加突出。基于具体项目对软件开发过程进行阐述将更有利于学生理解软件开发过程中的项目管理。由于课程目标并不在于具体技术细节的学习,而在于体会软件开发过程中的项目管理。因此在项目选择中,不能使学生投入过多精力在技术细节上,而应更多的关注软件项目管理的沟通、计划和控制。我们选择计算机学院行政管理系统网站作为实践项目让学生组队开发,这一项目属于MIS(信息管理系统)项目类,难度不大,且能充分体现软件项目需求不明确、多变、沟通复杂等特点。作为计算机学院的学生,学生对项目的需求的理解也将更加实际。
2.1基于项目驱动的评价体系“为了解决软件问题,重要的第一步就是将整个软件开发任务看做一个可控的、可度量的以及可改进的过程。”将项目管理方法运用于具体软件项目开发的实践或在实践中改进现有方法,能够帮助学生更好的掌握项目管理技术。在实际教学中,我们将学生分成若干团队,每个团队8~13人,充分使学生体会到团队感,增加管理意识。项目经理是靠干出来的,不是靠背出来的。为使学生在具体项目实践中更加投入,必须改革原有的基于卷面成绩的评价体系。我们提出基于项目驱动的评价体系,使学生自觉将课堂所学的理论知识及时用于项目。学生的总评成绩将由团队项目评分、演练与总结评分、期末论文评分三部分组成:
(1)团队项目评分:60%其中20%由教师根据团队分阶段提交的项目资料给出;剩下40%由每个团队的“项目经理”根据团队的成员的表现给出。而项目经理的打分权限则取决于项目完成时专家对项目的评审得分。
(2)演练与总结评分:20%项目结束后各个团队成员对整个项目管理过程进行总结,评价和反思项目经理的管理过程,教师根据学生个人上课时有关项目的各种演练表现以及项目总结报告进行评分。
(3)期末论文评分:20%要求学生对项目管理九大知识领域进行一定深度的论述。为确保评价体系更加公平、公开、公正,我们规定:
(1)项目经理享有计划和分配项目团队资源,为项目组成员进行打分的权利,同时具有带领项目组完成所有课堂演练环节,完成项目开发的义务。作为奖励,项目经理可以直接获得满分的演练与总评成绩;作为制约,项目经理为自己所打分数只得在项目评审得分5%上下浮动,如果项目经理引起过团队半数以上成员不满,将被弹劾,一旦弹劾,相应权利和奖励同时消失。
(2)项目评审后,项目经理将得到“项目评审得分*团队开发人数”的可分配分数,项目经理根据项目组分数分配方法给团队成员打分,上限为40。
(3)项目评审时将邀请学院软件工程专家、需方代表不少于5人组成专家组对各团队项目进行公开评审,评审将从需方满意度、项目开发文档、项目开发过程三个角度进行打分。团队最终得分通过delphi法得到。可以看出,在以上的评价体系中,基于项目驱动的评分所占比重相当大,不仅注重项目的结果,同时注重项目开发过程。学生的分数在一定程度上模拟了现实生活的“奖金”,而项目团队则更加贴近现实生活中的软件开发公司。为了使项目成功,学生必须自觉地实践和探索科学的项目管理方法,不论成功与失败都将成为学生宝贵的经验和教训。评分中,由于个体学生所能获得的成绩与其所在团队成绩紧密相关,因此,为整个团队获得高分而努力的开发过程极大地培养了学生的团队协作精神。通过教学实践,这一评价体系调动了学生的学习主动性,起到了较好的作用。超级秘书网
2.2基于项目过程的知识传授和情景演练表1显示了项目管理九大知识领域在五个标准化过程组中的作用。可以看出在不同的过程组中,各知识领域所起的作用是不同的。配合实际项目开发的过程,为使所传授的知识能够及时用于实际项目,我们颠覆了原有教材顺序,按软件项目五个过程组所涉及的知识领域对教学顺序进行重新安排,基本做到项目进行阶段与所传授的相关知识同步。每次课程教学前后都及时安排对相关内容的情景演练。由表2所示教学实施安排表可以看出,项目管理的九大知识领域几乎都能做到安排于项目情景中进行传授,起到了理论对实践的指导或总结作用。可以看出,每次演练环节一般都是对上次所本传授知识的总结或当次所传授知识的及时操练,知识点覆盖较全面。通过设身处地去当一名项目经理或软件工程师,增加了学生对软件开发项目的感性认识和兴趣,提高了他们的管理才能。通过知识传授和情景演练的密切配合,使学生对软件项目的管理过程理解得更加深刻。
二结论
基于具体项目的项目管理教学使学生能够体会项目管理各知识领域的作用,领会各种方法、规范所适用的环境。通过实际开发后自己总结提炼的经验和教训,学生将更加接受项目管理的理念和知识,培养了团队合作精神。在学期末进行的教学效果调查中,83%的学生认为这种教学方法效果良好。学生普遍反映“项目管理枯燥的理论知识变活了,知道怎么用了,印象更加深刻了。”
项目管理是软件工程重要的专业课,在今后的教学实践中,我们将继续改进教学方法,做到量体裁衣,因地制宜,加强教学效果。
参考文献:
[1]韩万江,姜立新.软件项目管理案例教程[M].北京:机械工业出版社.2005.
[2]张海藩.软件工程[M].北京:人写作论文民邮电出版社,2002.
一、项目实施方案概述
软件产品,特别是行业解决方案软件产品不同于一般的商品,用户购买软件产品之后,不能立即进行使用,需要软件公司的技术人员在软件技术、软件功能、软件操作等方面进行系统调试、软件功能实现、人员培训、软件上线使用、后期维护等一系列的工作,我们将这一系列的工作称为软件项目实施。大量的软件公司项目实施案例证明,软件项目是否成功、用户的软件使用情况是否顺利、是否提高了用户的工作效率和管理水平,不仅取决于软件产品本身的质量,软件项目实施的质量效果也对后期用户应用的情况起到非常重要的影响。项目实施规范主要包括项目启动阶段、需求调研确认阶段、软件功能实现确认阶段、数据标准化初装阶段、系统培训阶段、系统安装测试及试运行阶段、总体验收阶段、系统交接阶段等八个阶段工作内容,每个阶段下面有不同的工作事项,各个阶段之间都是承上启下关系,上一阶段的顺利完成是保证下一阶段的工作开展的基础。下面将按照每个项目实施阶段分别介绍。
二、项目实施方案介绍
(一)项目启动阶段
此阶段处于整个项目实施工作的最前期,由成立项目组、前期调研、编制总体项目计划、启动会四个阶段组成。
此阶段主任务:
公司:在合同签定后,指定项目经理,成立项目组,授权项目组织完成项目目标。
公司项目组:进行前期项目调研,与用户共同成立项目实施组织,编制《总体项目计划》,召开项目启动会。
商务经理:配合公司项目组,将积累的项目和用户信息转交给项目组。将项目组正式介绍给用户,配合项目组建立与用户的联系。
用户:成立项目实施组织,配合前期调研和召开启动会,签署《总体项目计划》和《项目实施协议》。
1、成立项目组
部门经理接到实施申请后,任命项目经理,指定项目目标,由部门经理及项目经理一起指定项目组成员及成员任务,并报总经理签署《项目任务书》。
2、前期调研
项目经理及项目组成员,在商务人员配合下,建立与用户的联系,对合同、用户进行调研。填写《用户及合同信息表》。在项目商务谈判中,商务经理积累了大量的信息,项目组首先应收集商务和合同信息,并与商务经理一起识别那些个体和组织是项目的干系人,确定他们的需求和期望,如何满足和影响这些需求、期望以确保项目能够成功。
3、编制《项目总体计划》
《项目总体计划》是一个文件或文件的集合,随着项目信息不断丰富和变化,会被不断变更,主要介绍项目目标、主要项目阶段、里程碑、可交付成果。通常包括以下几方面内容:
项目描述,项目目标、主要项目阶段、里程碑、可交付成果。所计划的职责分配(包括用户的);
沟通管理计划,确定项目干系人对信息和沟通的需要:即什么人何时需要什么信息以及通过什么方式将信息提供给他们。质量管理计划,确定适合于项目的质量标准和如何满足其要求。如果有必要,可以包括上述每一个计划,详细程度根据每个具体项目的要求而定。未解决事宜和未定的决策。
4、启动会
项目组与用户共同召开的宣布项目实施正式开始的会议。
会程安排如下:
共同组建项目实施组织,实施组织的权利和职责;双方签署《项目实施协议》。
项目组介绍《项目总体计划》和《项目实施协议》,包括以下内容:
项目目标、主要项目阶段、里程碑、可交付成果。所计划的职责分配(包括用户的);
项目实施中项目管理的必要性和如何进行项目管理,项目的质量如何控制;
项目实施中用户的参与和领导的支持的重要作用;
阶段验收、技术交接和项目结束后如何对用户提供后续服务。
(二)需求调研确认阶段
此阶段的主要工作是软件公司的项目实施人员向用户调查用户对系统的需求,包括管理流程调研、功能需求调研、报表要求调研、查询需求调研等,实施人员调研完成后,会编写《需求调研分析手册》,并交付用户进行确认,待用户对《需求调研分析手册》上所提到的需求确认完毕后,项目实施人员将以此为依据进行软件功能的实现。如果用户又提出新的需求,实施人员将分析需求的难度及对整个系统的影响程度来确定是否给予实现。需求调研阶段具体包括如下内容:
1、进行需求调研准备
2、编制《需求调研计划》
3、内部评审是否通过《需求调研计划》,项目组、部门经理、商务等人员根据合同要求和项目实际情况对《需求调研计划》草稿进行评审,如评审通过,则在稍后的时间内签署,如评审不通过则重新修改。
4、用户是否签署《需求调研计划》,如用户签署《需求调研计划》,则作为以后需求调研工作的指南。否则重新修改。
5、《需求调研计划》是否有变更,如果计划存在变更,则执行变更控制流程,否则按计划进行后续工作。
6、编写及发出《需求调研通知》,项目组编写《需求调研通知》,确定进行需求调研的相关事宜,发给用户,为顺利完成需求调研工作做准备
7、需求调研,项目组以《需求调研手册》为依据,从业务流程、单据使用、打印格式、报表查询几个方面展开深入和全面的调研,并搜集用户的个性化需求。
8、需求调研分析根据调研的结果,项目组和公司其他技术部门将进一步进行分析,确定合理、可行的需求,将分析结果形成《需求分析报告》草稿。
9、内部评审是否通过《需求分析报告》。项目组、部门经理、公司其他技术部门的人员对《需求分析报告》草稿进行评审,如评审通过,则在稍后由用户签署,如评审不通过则重新修改,直至内部评审通过。
10、编写及发出《需求分析报告确认通知》。项目组编写《需求分析报告确认通知》,发给用户,确定进行需求确认的相关事宜,告之相关部门及人员安排好工作,准时参与需求确认工作,为顺利完成需求确认工作做准备。
11、用户是否确认《需求分析报告》。如果用户确认,并签署了《需求分析报告》,则需求调研阶段工作结束,进行后续的软件功能实现的工作;如没有确认,则进一步进行调研、分析,直至用户最终确认并签署《需求分析报告》。双方签署了《需求分析报告》,需求调研工作结束之后,如果用户提出新的需求或是变更已有的需求,则执行需求新增及变更流程。
(三)软件功能实现确认阶段
此阶段的主要工作是项目实施人员根据需求调研阶段确认的《需求调研分析手册》中的用户需求内容进行具体软件功能的实现工作。在软件功能实现的过程中,项目实施人员将记录软件实现的详细过程。便于公司售后服务之用。每一个实施技术人员必须严格按照要求记录、存档。按照调研要求的所有功能实现完毕后,项目实施人员将编制《软件功能确认表》,将定制好软件功能待用户确认,用户根据《软件功能确认表》上的功能逐一确定软件功能是否达到要求,对不满足要求的功能,项目实施人员将会记录下来并进行功能修改,直到满足用于要求。
(四)数据标准化初装阶段
此阶段的主要工作是项目实施人员指导用户进行系统标准化资料的准备工作,并对用户进行初装资料的软件操作培训,以便用户能够及时的将标准资料录入系统,初装完成后,项目实施人员会对资料初装的情况进行核查,为以后具体业务功能的开展做好基础。
(五)系统培训阶段
系统培训阶段工作是整个项目实施工作中比较重要的工作,用户对软件的操作功能是否熟练将直接影响到后面的软件应用效果,所以软件公司和用户双方要对此阶段的工作给予足够的重视。要充分认识培训的重要性和艰巨性。在项目实施之前对用户的相关人员进行系统和规范的产品培训是非常必要的,达到让用户了解软件产品,最终自己能够解决使用中的具体的问题。
此阶段的培训工作中将用户参加产品培训的人员划分为三个层次:决策层、技术层、操作层,对不同层次的用户参加产品培训人员的培训内容分别是:
决策层:领导在实施中的作用与重要性、决策查询。
维护层:系统维护知识、操作方法。
操作层:操作方法。
具体的培训工作流程为:
1、调研培训信息:在培训开始前3天由用户实施负责人,将参加培训的部门和人员情况填入《受训部门汇总表》、《受训人员情况一览表》。
2、编制培训计划:结合调研结果,与用户实施负责人商议具体培训内容、时间,场地,人员等。项目组编制《培训计划》。
3、签署培训计划:用户签署《培训计划》,进一步确认培训安排。
4、发培训通知:培训开始前2天,按照签署的《培训计划》,将培训内容、时间,场地,人员等信息通知用户实施负责人。
5、搭建培训环境:公司项目组在培训开始前,将培训环境搭建及检查妥当,将培训提纲及培训手册准备好。
6、组织培训:公司项目组培训负责人与用户实施负责人组织相关人员参加培训,按培训制度严格考核。由用户将考勤情况填入《培训人员签到表》。
7、培训考核:公司项目组培训负责人与用户实施负责人组织受训人员参加上机及理论考试。
8、培训总结:公司项目组培训负责人与用户实施负责人一起将出勤情况及考核情况做出总结,填入《培训及考核统计表》,及时向相关负责人
汇报。
(六)系统安装测试及试运行阶段
此阶段的主要工作是在用户真实环境下,对用户网络及硬件设备进行测试,对软件系统进行容量、性能压力等测试测试及试运行的目的在于确保系统各项功能均能正常使用,并且符合用户签署的《需求分析报告》中描述的需求,同时把尽可能多的潜在问题在正式运行之前发现并改正;同时目的还在于在正式运行前用户的有关人员能进一步提高操作水平,掌握操作规范。此阶段的主要工作内容为:
1、 编制计划:与用户实施负责人商议具体测试及试运行时间,地点,人员等安排,项目组编制《测试及试运行计划》。
2、签署计划:用户签署《测试及试运行计划》,进一步确认测试及试运行安排。
3、发测试及试运行通知:在测试及试运行开始前2天,按照签署的《测试及试运行计划》,将时间,地点,人员等信息通知用户实施负责人。
4、搭建环境及数据准备:在试运行开始前搭建好软件环境、硬件环境、网络环境、调通线路;检查软件、硬件、网络、线路等各个环节是否有问题;
5、组织测试及试运行:用户相关各级领导给予全面配合,组织相关人员进行测试及试运行。
6、测试及试运行总结:测试及试运行完成,总结试运行中设备、软件的运行情况,总结试运行中业务流程和操作环节的情况,以书面总结形式将测试及试运行结果通知相关负责人。
公司项目组负责担当指挥,检查用户人员组织情况并给予指导,跟踪检查如下情况:
跟踪单据流转状况。
跟踪新资料登录环节。
观察业务流程执行状况。
观察操作人员操作表现。
观察系统运行速度及异常表现。
观察关键数据的正确性。
及时纠正错误操作、对于新发生的问题及时与相关人员沟通,确定解决办法。
(七)总体验收阶段。
此阶段是对项目总体的完成情况进行验收。验收分阶段进行,在每一项目阶段结束时,用户对这一阶段的可交付成果进行验收,在测试及试运行结束后,对系统进行总体验收。
需要验收的可交付成果:
主要项目阶段
阶段组成
主要里程碑
可交付成果
【关键词】软件;软件开发;工程;文档;生存周期;维护
1.前言
1.1 软件开发的规范化工程化
随着计算机技术、信息技术、多媒体技术、网络技术、通信技术等的发展,各行各业的众多工作越来越依赖计算机的应用,一方面使社会对软件产品的需求量增大。另一方面计算机软件产品在投入使用过程中,软件程序在运行时发现错误要设法改正;用户有了新的需求时要对程序做相应的修改;硬件系统或系统软件(主要是操作系统)的更新修改程序发适应新的工作环境。以上种种工作都对软件开发和软件维护提出要规范化工程化工作,
1.2 规范化工程化的目标
特别是软件生产及维护进入规范化工程化的软件工程时代,任何参加这些软件工程的人员,要在工程项目的总体要求和技术规范的约束下开展工作。组织实施软件工程项目,从技术各管理上采取了措施使在软件开发达到以下主要的目标:生产成本较低、软件功能达标、软件性能较好、软件易于移植、维护费用低、按时完成开发工作。为了达到这样的目标,特别要重视文字资料工作即软件文档。
1.3 软件文档的概念
软件文档(document)也称文件,通常指的是一些记录的数据和数据媒体,它具有固定不变的形式,可被人和计算机阅读。。软件文档是与软件开发、维护和使用有关的文字材料,如技术文档、设计文档、版本说明文档等,它和计算机程序共同构成了能完成特定功能的计算机软件。
2.软件文档的作用
2.1 提高软件项目开发过程的透明度,为项目管理提供了依据
软件是一种逻辑实体,而不是物理实体,软件产品不像生产其它产品看得见,摸得着。故在软件的开发生产过程中没有明显的制造过程。我们知道,硬件产品和产品资料在整个生产过程中都是有形可见的,软件生产则有很大不同,文档本身就是软件产品。
软件文档详细记录了软件项目开发过程中发生的事件,将通常“不可见的”软件开发进程转换成“可见的”文字资料,使软件项目开发过程的能见度、透明度提高了,是项目的管理的依据。软件产品在软件开发过程中管理者需要了解开发进度、存在的问题和预期目标。每一阶段计划安排的定期报告提供了项目的可见性。定期报告还提醒各级管理者注意该部门对项目承担的责任以及该部门效率的重要性。开发文档规定若干个检查点和进度表,使管理者可以评定项目的进度,如果软件文档有遗漏,不完善,或内容陈旧,则管理者将失去跟踪和控制项目的重要依据。
2.2 跟踪软件项目开发过程,使项目质量得到保证
软件项目开发过程的每一个阶段有必须完成的文档。那些负责软件质量保证和评估系统性能的人员需要程序规格说明、测试和评估计划、测试该系统用的各种质量标准以及关于期望系统完成什么功能和系统怎样实现这些功能的清晰说明;必须制订测试计划和测试规程,并报告测试结果;他们还必须说明和评估完全、控制、计算、检验例行程序及其他控制技术。这样完成对软件项目的过程进行跟踪,满足质量保证人员和审查人员上述工作的需要。
每一个阶段结束前都要对该阶段据所完成的文档或程序进行评审或测试,以便发现问题,排除故障,及时改正错误。有了软件文档的跟踪,可及时审查软件项目,保证软件质量。
2.3 便于各人员之间的交流与合作,是各任务之间联系的凭证
软件文档在软件开发人员、软件管理人员、维护人员、用户以及计算机之间的多种桥梁作用。使系统管理员、操作员、用户、管理者和其他有关人员了解系统如何工作,以及为了达到他们的各自的目的,如何使用系统。
大多数软件开发项目通常被划分成若干个任务,并由不同的小组(下转第74页)(上接第17页)去完成。项目小组内部、项目平行开发的各小组之间进行交流与联系是通过软件文档。大多数系统开发方法为任务的联系规定了一些正式文档学科方面的专家建立项目;分析员阐述系统需求,向设计员提供正式需求规格说明;设计员制定总体设计,向程序员提供正式设计规格说明;程序员编制详细的程序代码;质量保证专家和审查员评价整个系统性能和功能的完整性;负责维护的程序员改进各种操作或增强某些功能。各种人员需要的互相联系、互相交流、互相合作是通过文档资料的复制、分发和引用而实现的。
2.4 支持软件项目使用时的维护,发挥软件的最大效率
软件文档提供系统开发的全部必要技术资料。可以帮助维护保熟悉系统,顺利完成软件的安装。在软件运行过程中出现的各种问题可及时排除,及时处理,帮助客户使用软件操作顺利地利用软件进行工作。软件运行过程找出并修正错误,改进系统以适应用户需求的变化或适应系统环境的变化,开展维护工作,延长软件的生存周期,使软件的效率发到最大化。
2.5 记录软件的历史,为今后的软件开发提供参考
软件文档作为“记录软件历史的语言”,软件文档可用作以后项目的一种资源,软件项目的一种借鉴。通常文档记载系统的开发历史,可使有关系统结构的基本思想为以后的项目利用。系统开发人员通过审阅以前的系统以查明什么部分已试验过了,什么部分运行得很好,什么部分因某种原因难以运行而被排除。系统文档有助于完成软件的移植或将软件转移到各种新的系统环境中。
软件文档中还包含着“项目开发总结报告”自我总结的部分,有的项目负责人对这些文件往往不大在意,其实在这些文件中除了有关的软件项目的数据外,对项目的过程的进行了总结,优、缺点尽在其中,学习和借鉴这些文件对今后的工程管理将会有很大的促进作用。
3.总结
在软件工程时代,正确的使用软件文档对软件产品按质按量的交付使用,对于充分发挥软件产品的效益有着重要意义,故在软件开发中要重视软件文档的编写。
参考文献
[1]辛明海,潘孝铭等.软件文档编写[M].北京:高等教育出版社,2009.