前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的软件项目总结主题范文,仅供参考,欢迎阅读并收藏。
论文摘要:为提高软件企业的管理水平,对软件项目管理存在的一些问题进行了深入的分析,指出了软件项目管理中常见的不足之处:项目计划问题、管理意识问题、项目干系人相关问题、项目团队内分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人员更好地工作提供一个极好的资源和依据。
一引言
项目管理技术是软件工程专业的一门重要专业课。其教学任务是使学生了解和掌握项目管理的基本概念、基本原理和工程化方法。内容涉及项目管理知识体系(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.
关键词:项目管理;软件开发;应用
中图分类号:C93文献标志码:A文章编号:1673-291X(2010)31-0239-02
软件行业是一个极具挑战性和创造性的新行业,管理上没有成熟的经验可供借鉴。而项目管理应该说对于软件企业、尤其是那些以应用开发为主的软件企业,是行之有效的管理方法。因此,项目管理在软件开发中的应用日益受到重视。
一、项目管理的简要释义
1.项目管理的定义。按照PMI的定义,项目管理(Project Management,PM)是在项目活动中应用一系列知识、技能、工具和技术,以满足或超过项目关系人对项目的要求和期望。
2.为什么需要项目管理。目前,企业面临着一些比较明显的挑战:缩短产品生命周期、看准产品投放市场的时间、产品的复杂性和技术性越来越强、全球市场的发展、提高效率节约成本等。而这些挑战所带来的影响力在近期内不会减轻,为了应对这些挑战,很多企业都将项目管理作为其运作体系的重要一环。此外,没有项目管理,项目也有可能成功。但没有管理的项目,很难保证目标的实现。为了实现项目的总体目标,消除项目单项管理的局部性,有时甚至可以不惜牺牲或降低一些项目的单向目标,来实现总目标。比如说某些目标本身就是相互冲突的,为了提高单个目标要求,可能会以降低或牺牲其他目标为代价。这种情况并不少见,因此项目管理在使整个项目利润最大化的过程中发挥着巨大作用。
3.项目管理的特点。项目管理不是一次任意的管理项目的实践过程,而是在长期实践和研究的基础上总结出来的理论和方法,是一种公认的管理模式和管理理念。(1)项目管理具有探索性。(2)项目管理具有复杂性。(3)项目管理的整体性。(4)项目管理需要更多的协调和沟通。
4.项目成功的决定因素。项目成功的定义必须考虑限定项目的本质因素,也就是时间、预算、功能/质量和用户满意度。通常用以下四个标准来衡量项目是否成功:(1)时间。(2)成本。(3)绩效。(4)客户接受。此外,也可以从外部和内部两个角度来考虑项目成功的标准。
5.项目管理的发展与现状。项目管理作为一种现代化管理方式在国际上已获得了广泛的应用,随着计算机、网络系统的迅速发展,项目管理技术也在不断进步,经过多年的尝试和时间考验,项目管理已由简单设想转变为可以操作的一种新型的施工管理模式,逐渐形成了一套系统的工程项目管理理论和方法。
二、项目管理在软件开发中的应用的成因
随着信息技术的飞速发展,软件产品的规模也越来越庞大,各软件企业都在积极将软件项目管理引入开发活动中,对开发实行有效的管理。
从概念上讲,软件项目管理是为了使软件项目能够按照预定目标顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。同时,随着软件开发规模及开发队伍的逐渐增大,软件开发不再是向过去那样一两个开发人员即可解决的事情。迫切需要一种开发规范来规范每个开发人员、测试人员与支持人员的工作,同时采用规范化管理,专业分工也可以降低对开发人员的要求,从而降低产品研发成本。
早在20世纪60年代中期,人们就发现软件的生产出现了“问题”,主要表现在生产过程不规范,缺乏管理。后来,人们在软件工程方法学中引入了工程的概念、原理、技术和方法,这种思想在一定程度上解决了软件生产过程中遇到的问题。但是直至20世纪80年代还是没有提出一套管理软件开发的通用原则,软件管理不善的问题依旧在大范围内存在。
目前的软件开发工作正逐步趋向于复杂化、多元化,大多数开发团队中都会出现同时开发多个版本、开发/维护工作并存、多地点同时开发等情况,给软件开发管理带来了诸多困难。没有项目管理“介入”,各自为伍,版本重复、混乱因此,开发人员之间职责分工不明确,工作相互交叉、干扰,严重影响了工作效率,降低了工作质量,拖延了工作进度。因此,随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件开发过程管理的重要性,管理学的先进理念逐渐融入软件开发过程中,应用开发的项目管理日益受到重视。而项目管理技术的发展与信息技术的发展是密不可分的,与此同时,大量的项目管理应用软件(ERP等)涌现出来,它们可以提供便于操作的图形界面,帮助用户制定任务、管理资源、进行成本预算、跟踪项目进度等。这样在项目管理应用软件开发和项目管理在软件开发中的应用两者之间就形成了一个良性循环,此增彼长,循环促进。
三、软件项目管理常见问题及解决方案
对于软件开发项目中,经常出现两种极端情况:一种是创造了新的生产率和质量的纪录;一种则完全是一场灾难,不是被取消就是拖延很长时间。前者如在很短的时间内,为了赶进度,在几乎不可能的时间内开发出一套软件产品,创造了软件开发的纪录,满足了上级所要求的上机日期,由于开发时间太短,过于仓促,上机时问题百出,试运行时间长达几个月或一年半载的,而且程序一改再改,维护工作量大。后者,如某套系统未弄清楚需求或设计问题,导致开发失败。
目前中国大部分软件公司,无论是产品型公司还是项目型公司,都没有形成适合自己公司特点的软件开发管理模式,虽然有些公司根据软件工程理论建立了一些软件开发管理规范,但并没有从根本上解决软件开发的质量控制问题。这样导致软件产品质量不稳定,软件后期的维护、升级出现麻烦,同时最终也会损害用户的利益。
为了达到项目的整体最优,必须从全局的、整体的理念出发,通过协调项目的各个要素(进度、成本、质量和资源等),在相互影响的项目各项具体目标和方案中选择和权衡,权衡各个相互冲突的目标对项目总体绩效所产生的影响,尽可能地消除单个知识领域中的过程的局限性,从而最大限度满足项目关系人的需求和期望。
四、项目管理方法改进及推广应用
分析目前项目管理需要改进的问题可以从以下几个方面去考虑:
1.项目经理在专业领域的知识与实践基础上需要接受系统的项目管理知识培训,使两者有机结合,在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。
2.提高项目经理的计划意识,采用项目计划制定相关各种知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。
3.制定有效的沟通制度和沟通机制,对由于缺乏沟通而造成的事件进行通报作为教训提醒,以提高沟通意识。
4.通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。
5.提高对项目经验总结的重视程度,在制度上鼓励和加强项目经验总结工作,使项目总结及时并且具有指导意义。
6.项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。
7.项目经理应当对项目成员的责任进行合理的分配,细化职责,同时应强调不同分工、不同环节的成员应当相互协作,共同完善。
以上对软件开发项目管理中出现的问题的分析还不够深入,也无法列举所有遇到或将遇到的问题,解决方案也要根据实际情况进行调整,希望引起对这些问题更多的思考和改进。
五、结束语
项目管理对于软件开发企业而言,不是一个小的改变,而是一种变革。企业需要不断的探索、积累,加大宣传,转变观念,在实践中锻炼提高,在解决问题中总结经验,逐步完善项目管理工作,将其作为企业竞争力提升的有效抓手。
参考文献:
[1]鲁耀斌.项目管理[M].长春:东北财经大学出版社,2007.
[2]吴照云.管理学原理[M].北京:经济管理出版社,2003.
[3]Stanley E.Portny如何做好项目管理[M].宁俊,等,译.北京:企业管理出版社,2001.
[4]Neal Whitten.管理软件开发项目――通向成功的最佳实践:第2版[M].孙艳春,等,译.北京:电子工业出版社,2002.
[5]邓良松.软件工程[M].西安:西安电子科技大学出版社,2004.
Project Management in Software Development in the Application
LI Yue1,YANG Yu-lin2
(1.Henan Xinyang Power Supply Company,Science and Technology Information Department,Xinyang 464000,China;
2.The First Aeronautical College of Air force,AviationElectron engineering Department,Xinyang 464000,China)
假如用两个字概括当前社会的特征,那就是“变化”,而这种变化在信息产业中体现得尤为突出,技术创新速度越来越快,用户需求和市场不断变化,人员流动也大大加快。在这种环境下,企业需要应对的变化以及由此带来的挑战大大增加,也给管理带来了很多新问题和挑战。软件行业是一个极具挑战性和创造性的新行业,管理上没有成熟的经验可供借鉴。而项目管理应该说对于软件企业,尤其是那些以应用开发为主的软件企业,是行之有效的管理方法。因此,项目管理在软件开发中的应用日益受到重视。
项目管理的两个新问题
1、什么是项目管理?
项目管理是在一定的约束条件下,以高效率地实现项目业主的目标为目
的,以项目经理个人负责制为基础和以项目为独立实体进行经济核算,并按照项目内在的逻辑规律进行有效的计划、组织、协调、控制的系统管理活动。
2、为什么要有项目管理?
没有项目管理,项目也有可能成功。但没有管理的项目,很难保证项目
的利润空间,对公司来说,亏损的风险就大。所以我们要有项目管理,以保证公司在总体上是盈利的,注重不是每一个项目都要盈利。
另外,有了项目管理,就有了管理改进的基础,无论刚开始的项目管理多么糟糕,只要有管理,就有了改进的可能性,至于能不能得到改进,以及改进的快慢,则取决于两个因素摘要:一个是人,非凡是各级管理者;另一个是利益。关键是“利益”,准确的说是“利益的分配”,在权责利明确的前提下,人才能充分的发挥功能。还需要指出的是“利益”是多元的,这里的多元不仅指利益的具体形式,而且指利益的受众是多元的,包括客户方相关人员个人的利益。
3、项目管理的发展和目前状况。
今天,项目管理作为一种现代化管理方式在国际上已获得了广泛的应用,从最初的国防、航天、建设工程领域,迅速发展到电子、通信、计算机、软件开发、金融等行业以及政府机关的项目管理工作。随着计算机、网络系统的迅速发展,项目管理技术的不断进步,项目管理软件产品层出不穷,其功能、特征、应用对象也各不相同。当前,越来越多的企业和组织在内部推广项目管理的理论方法及管理模式,假如都采用项目管理软件进行管理,效果就更加明显,可以节省大量的资源和财富。国外90%26#37;以上的项目管理都采用软件进行,但我国在这方面的应用还不到10%26#37;。新世纪项目管理在中国的迅速兴起,给软件企业的发展带来了前所未有的发展机遇。
项目管理在软件开发中的应用的成因
随着信息技术的飞速发展,软件产品的规模也越来越庞大,个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。各软件企业都在积极将软件项目管理引入开发活动中,对开发实行有效的管理。从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。同时,随着软件开发规模及开发队伍的逐渐增大,软件开发不再是向过去那样一二个开发人员即可解决的事情。迫切需要一种开发规范来规范每个开发人员、测试人员和支持人员的工作,每个项目组成员按约定的规则准时完成自己的工作。同时采用规范化管理,专业分工也可以降低对开发人员的要求,从而降低产品研发成本。
软件开发是一项复杂的系统工程,牵涉到各方面的因素,实际工作中,经常会出现各种各样的新问题,甚至面临失败。如何总结、分析失败的原因,得出有益的教训,对一个公司来说,是在今后的项目中取得成功的关键。
早在20世纪60年代中期,人们就发现软件的生产出现了“新问题”,主要表现在生产过程不规范,缺乏管理。后来,人们在软件工程方法学中引入了工程的概念、原理、技术和方法,这种思想在一定程度上解决了软件生产过程中碰到的新问题。但是直至80年代还是没有提出一套管理软件开发的通用原则,软件管理不善的新问题依旧在大范围内存在。
目前的软件开发正逐步趋向于复杂化、多元化,大多数开发团队中都会出现同时开发多个版本、开发/维护工作并存、多地点同时开发等情况,给软件开发管理带来了前所未有的困难。假如管理不善,必将造成版本混乱,各个开发人员的工作相互交叉、干扰,整个开发团队的工作在一种无秩序的不良状况下运行,严重影响软件产品开发的进度和质量。
因此,随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程中,应用开发的项目管理日益受到重视。而项目管理技术的发展和计算机技术的发展是密不可分的,随着计算机性能的迅速提高,大量的项目管理软件涌现出来。它们可以用于各种商业活动,提供便于操作的图形界面,帮助用户制定任务、管理资源、进行成本预算、跟踪项目进度等。
软件项目管理常见新问题及解决方案
对于软件开发项目中,经常出现两种极端情况,一种是创造了新的生产率和质量的纪录;一种则完全是一场灾难,不是被取消就是拖延很长时间。前者如在很短的时间内,为了赶进度,在几乎不可能的时间内开发出一套软件产品,创造了软件开发的记录,满足了上级所要求的上机日期,由于开发时间太短,过于仓促,上机时,新问题百出,试运行时间长达几个月或一年半载的,而且程序一改再改,维护工作量大。
后者,如某套系统未弄清楚需求,或因设计新问题,开发失败。通过提炼这些成功和失败的例子,软件项目成功或失败的根本原因可能会更清楚一些。
目前我国大部分软件公司,无论是产品型公司还是项目型公司,都没有形成适合自己公司特征的软件开发管理模式,虽然有些公司根据软件工程理论建立了一些软件开发管理规范,但并没有从根本上解决软件开发的质量控制新问题。这样导致软件产品质量不稳定,软件后期的维护、升级出现麻烦,同时最终也会损害用户的利益。
分析目前项目管理需要改进的新问题可以从几种相关角色的角度去考虑摘要:项目经理、项目组成员、公司管理人员、市场人员、客户等。
新问题一摘要:缺乏项目管理系统培训(相关对象摘要:项目经理、管理人员)
项目经理在项目管理方面的培训较少或不够系统。项目经理或管理人员不了解项目管理的知识体系和一些常用工具和方法,所以在实际工作中没有项目管理知识的指导,完全依靠个人现有的知识技能,管理工作的随意性、盲目性比较大。在软件企业中,以前几乎没有专门招收项目管理专业的人员来担任项目经理(甚至很少是管理专业的),被任命的项目经理主要是因为他们能够在技术上独当一面,而管理方面非凡是项目管理方面的知识比较缺乏。
解决方案摘要:项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识和实践,再加上项目管理知识和实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。应实行项目经理知识技能资格考核制度,让项目经理自觉补充学习项目管理的知识和一些常用工具和方法。
新问题二摘要:项目计划意识新问题(相关对象摘要:项目经理)
项目经理对总体计划、阶段计划的功能熟悉不足。项目经理认为计划不如变化快,项目中也有很多不确定的因素,做计划是走过场,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划和控制管理脱节,无法进行有效的进度控制管理。没有计划或者是随意的不负责任的计划的项目是一种无法控制的项目。
解决方案摘要:在高技术行业,日新月异是主要特征,因此计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关各种知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。
新问题
三、管理意识新问题(相关对象摘要:项目经理)
部分项目经理没有意识到自己项目经理的角色,从总体上去把握管理整个项目,而是埋头于具体的技术工作,造成项目组成员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。在软件企业中,项目经理大多是技术骨干,技术方面的知识比较深厚,但无论是项目管理知识,还是项目管理必备的技能、项目管理必备的素质都有待补充和提高,项目管理经验也有待丰富。有些项目经理对于一些不服管理的技术人员,没有较好的管理方法,工作不好布置的工作只好自己做。另外由于工作分解结构设计的合理性,项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。
解决方案摘要:加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,非凡是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。
新问题四摘要:沟通意识新问题(相关人员摘要:项目经理、项目组成员)
在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术新问题或成果等方面和相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;有些人没有天天定时收邮件的习惯,以至于无法及时接收最新的信息。
解决方案摘要:制定有效的沟通制度和沟通机制,对由于缺乏沟通而造成的事件进行通报作为教训提醒,以提高沟通意识;沟通方式应根据内容而多样化,讲究有效率的沟通;通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于非凡重要的内容要采用多种方式进行有效沟通以确保传达到位,例如除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。
新问题五摘要:风险管理意识新问题(相关人员摘要:项目经理)
项目经理没有充分分析可能的风险,对付风险的策略考虑比较简单。项目经理在做项目规划时经常没有做专门的风险管理计划文档,而是合并在项目计划书中。有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的策略,对于后面的风险防范起不到什么指导功能。
解决方案摘要:通过学习项目管理知识把握风险识别、量化、策略探究、反应控制的工具和方法把握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其策略作为风险管理计划中必要的风险内容,并切实评估相应策略的有效性和可行性。
新问题六摘要:不重视项目经验的总结(相关人员摘要:项目经理、管理人员)
项目经理在项目结束时有些是因为自身对写文档工作的喜好或意识,或
者是因为紧接着要参加下一个项目,总体对项目总结的重视程度不够。有些是项目总结报告一再拖延,有些是交上来的报告质量较低,敷衍了事。
解决方案摘要:在制度上鼓励和加强项目经验总结工作,使得项目总结及时并且具有指导意义而不是走过场。
新问题七摘要:项目干系人相关新问题(相关人员摘要:项目经理、项目成员、客户)
在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、
工作职责等没有足够了解以致于无法得到完整需求或最终经权威用户代表确认的需求。由于项目经理的工作新问题,客户参和程度部不高,客户方相关责任人不明确或对范围和要求责任心不强,提出的要求具有随意性,项目前期对需求的确认不够积极;或者是多个用户代表各说各话、昨是今非但同时又要求项目尽早交付;项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。
解决方案摘要:项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。
新问题八摘要:项目团队内分工协作新问题(相关人员摘要:项目经理、项目成员)
项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任
分工不够清楚而造成工作互相推诿、责任互相推卸的现象,有时各阶段不同角色或同阶段不同角色之间的责任分工比较清楚但是各项目成员只顾完成自己那部分任务、不愿意和他人协作。这些现象或多或少地造成了项目团队内部资源的损耗,从而影响了项目的进展。
解决方案摘要:项目经理应当对项目成员的责任进行合理的分配并清楚地说明,同时应强调不同分工、不同环节的成员应当相互协作,共同完善。
软件质量重于泰山
软件质量重于泰山,软件质量是核心竞争力之一。现在和未来软件企业的竞争力不仅体现在产品类型的多样性,产品功能的先进性,更多的体现在产品质量的稳定性和可靠性。软件应用的领域不断深入,设计的复杂程度逐步增加,开发的周期不断缩短,质量的要求水涨船高,软件企业面临着巨大挑战。
用户对软件产品质量的要求不断提高,促使软件企业把提高软件质量作为增强竞争力的策略。提高软件质量要素在哪里?可以通过采用软件设计技术,加强软件过程管理,实施软件测试等方法。从提高软件质量的显著程度、投资回报率和可实施性等方面比较,实施有效的软件测试,提高软件测试的效率,是保证软件质量的显著方法。
软件测试是通过技术、流程、工具、人员以及管理手段,检测软件文档、软件中间产品和最终产品,查找和报告软件缺陷、错误以及隐患的专业技术。通过跟踪缺陷、错误及隐患的修正过程,确保软件产品、中间产品和文档符合软件工程过程需求和用户的最终需求。
软件测试创新之道
软件测试在国内仍处于起步阶段,各种软件测试的方法、技术和标准都还在探索阶段。国内软件行业规模普遍偏小,缺乏大型软件产品经验,开发过程不够规范,这决定了国内软件质量和测试行业,必须根据国内行业现状,确定软件质量目标和测试策略方法,而不是照搬照抄国外成熟软件企业的测试方法。
观念创新
提高软件质量的决定因素不是软件测试技术,而是对软件质量和测试的思想观念。只有把提高软件质量上升到企业战略发展的高度,才能从根本上解决问题。长期以来,国内软件行业对软件质量重视程度不足,对于软件测试的作用认识不够,造成项目因质量问题造成进度推迟甚至失败。
为了彻底改变这种被动现象,企业高层管理人员必须从管理思想、资源支持等方面为软件质量和测试部门提供全力支持。软件项目经理必须坚持软件开发和软件测试并行处理并且互相协调。软件开发人员重视和配合软件测试人员。
观念创新不要仅停留在口头上,而要落实在具体行动上,通过软件质量和测试的有效流程进行推动,通过过程改进进行提高。通过有效组织管理,形成“以重视软件质量为荣,以轻视软件质量为耻”的工作氛围。
流程创新
测试流程决定软件质量。软件测试如同软件开发一样,需要经过收集测试需求、确定测试策略、设计测试、执行测试、分析测试等流程。软件测试不是软件开发的最后阶段,而是贯穿于软件项目的整个生命周期。
软件测试流程既不是僵化的生搬硬套,也不是随机的增添取舍。软件企业的质量管理部门和项目开发团队需要根据公司技术、资源现状,针对项目的特点和客户需求,从保证软件质量、项目进度和测试成本等方面,进行优化设计并且不断改进流程管理。对于项目周期长、应用领域广、对质量要求高的软件,必须制定和遵守严格的测试流程。
测试流程创新的目标是在公司内部制定和执行完善的项目质量管理体系。优化项目生产方式,跟踪和度量生产过程和产品,使得生产过程和各阶段产品处于可控制和可度量状态,保证产品符合客户的功能和进度需求。
技术创新
软件测试是一项软件工程领域的专业技术,而不是简单的把软件测试认为随便找个人运行几次软件,就可以发现全部的软件问题。前文已经提到,软件测试需求和测试设计是决定软件测试效果的关键因素,因此,加强测试技术创新的重点是在测试需求和设计设计的创新。
在软件测试技术创新方面,要避免陷入过度追求自动化测试技术的误区。自动化测试确实可以在某些方面显著提高测试效率和准确性,但是自动化测试只适合测试软件的某些方面的质量,80%左右的软件缺陷是靠测试人员手工测试发现的。
对于某些特别需要自动化测试的软件特性,需要加强开发软件测试工具,而不是全部依赖市场上的现有测试工具。这是因为商业工具功能繁多,价格昂贵,培训和学习周期很长,选择不当就会造成巨大浪费。
管理创新
软件测试管理的目标是实现软件质量、进度、成本之间的最佳平衡。有效的测试管理需要企业管理层、软件开发团队、质量保证与测试团队通力合作,采用计划、组织、领导、控制等手段,组建高效团队,制定完善的测试流程,做好测试设计,有效执行测试,加强过程跟踪,从而顺利完成质量保证和测试任务。
测试管理创新的核心是软件质量和测试的团队建设,软件质量和测试是技术密集型活动,团队的知识结构、创造力和凝聚力是保证测试流程、测试技术充分实施的基础。质量和测试团队建设的重点是设置和培养各类技术和管理人才,进行有效交流,形成良好的评估和促进机制。
测试管理创新的另一个重点是测试管理平台建设。包括构建测试项目管理的集成系统,实现公司产品和项目数据信息的有效管理和顺序控制,使项目数据透明化,技术知识有效传承,项目质量和进度数据化、图形化。可以根据公司的现状,购买软件测试管理的商业工具,也可以内部开发软件测试管理工具。
软件测试技术路线图
如果把软件测试之道成为测试战略,要发挥测试战略的现实意义,需要把测试战略转化为测试战术。测试的“道”与“术”的无缝集成,才能显著地、持续地、逐步地提高软件产品质量。实施软件测试的战术是一系列过程的组合,涉及测试团队建设、流程设计、测试平台、测试管理等多个方面。
测试团队建设
测试团队可以是测试部,也可以是测试组。公司规模决定了测试团队的大小和组织形式。测试团队建设需要执行两个原则:第一,测试团队必须独立于开发团队,而不是附属于开发团队,实现测试的独立性和公正性;第二,测试团队必须具有明确的工作目标,即发现和报告软件缺陷,推动和确认缺陷修正,协助软件开发的过程改进,提高软件整体质量。
软件测试团队根据规模可以设置多个职位,每个职位具有明确的岗位职责。例如,测试部门经理、测试项目经理、测试组长、测试架构师、高级测试工程师、测试工程师等。对于刚刚成立的测试团队,可以一个人兼任多个职位,完成多项测试任务。测试人员的总数应该与开发人员相适应,最好在1:1到1:2之间。
流程设计
测试流程设计必须与软件设计流程相对应,基本测试流程包括测试需求分析、测试计划设计、测试用例设计、测试执行、测试评价、测试总结等。
根据软件需求和软件设计规格说明进行测试需求分析,测试需求分析的目的是明确需要测试的对象、特征、范围和方法,从而制定测试计划,确定测试策略。
测试计划设计是为了有效配置测试过程、人员和工具,充分利用现有的资源,按照项目计划进度,组织有效的测试。测试计划设计的输出结果是测试计划文档,它是指导软件测试活动的纲领性文档。
测试用例设计是指导具体测试内容和方法的关键内容,如果需要执行自动化测试,还需要依靠测试用例设计生成对应的测试脚本。测试用例设计的输出结果是不同类型的测试用例,这些测试用例必须以标准、一致的形式设计、评审、存储、更新。
测试执行是报告软件缺陷的阶段,根据软件计划的进度,分配测试内容,构建测试环境,依靠测试用例运行测试程序和程序文档。测试执行的输出结果是缺陷报告、测试进度报告等。
测试评价是度量软件测试执行效率和有效性的过程。测试评价的输入是测试用例的执行情况,软件缺陷的报告数据。测试评价的输出包括测试用例的有效性分析,软件缺陷的类型和有效性分析等,测试进度和有效性分析等。
测试总结包括测试过程每天或者每周的过程总结,也包括测试项目结束后的测试项目总结。测试总结的输出是测试总结报告,总体评价软件质量,指出测试存在的问题,提出改进的方法和进程,总计测试的有效经验。
测试平台设计
测试平台设计包括测试技术平台设计和测试管理平台设计。测试技术平台包括设计测试环境,设计或设置测试工具等。测试管理平台设计包括测试文档系统设计、测试版本配置管理、缺陷数据库设计、测试进度和质量分析系统设计。
测试技术平台设计需要根据测试计划的测试内容和测试环境要求,组织软件、硬件、数据库和网络等,这经常是一项较为耗时的工作,同时它影响着测试的正确性,必须尽快在测试开始阶段完成,最好采用有效的方法把搭建的测试环境进行备份保存,以便今后可以快速恢复,重复利用。
测试管理平台设计,影响测试管理的复杂度,好的测试管理平台可以使测试管理人员,方便地跟踪、查询、分析测试进度,评估测试人员的工作绩效,评价测试的总体质量。对于测试技术人员而言,可以方便的寻找测试对象和测试文档,报告和输出测试结果,共享测试数据,提高测试效率。
测试管理
测试管理关注人员、过程、产品三要素的互动与变化,测试管理包含项目计划和组织结构管理,测试阶段管理,时间、资源和质量管理,文档管理和团队管理等。测试部门经理、测试项目经理和测试组长是测试管理的主要执行者,需要与测试团队成员、开发人员、公司管理人员密切配合。
为了加强测试管理,需要确保测试数据信息流通畅,使测试团队、开发团队、质量保证团队之间有效交流。测试管理的其他内容包括团队成员参与各种培训,客观积极的绩效评估,识别项目测试风险,实现人尽其才,信息共享,进度可控,规避风险,降低成本,提高质量。
在“软件工程”课程教学中,应用项目教学法,直接作用在于帮助学生更加清楚和深入的认识软件开发,帮助学生纠正“软件开发就是编写程序代码”的错误思想,强调软件开发的团队分工合作,将项目教学法引入“软件工程”课程教学,制定完善的项目小组学习和工作的流程。项目活动开展前将学生分为不同小组,并对各组成员进行具体工作的安排。在课外,布置主要的自主开发任务是关键,要求严格按照软件工程的规范进行。在软件开发前,要对其开发的可行性、需求进行分析,然后进行系统设计,完成系统[2]。应注意保存相关文档并生成系统可执行文件。为准确把握项目开发以及进展情况,为了对学生进行有针对性的指导,各小组在开发阶段要定期进行汇报,并在讨论中完善项目。1.命题教师根据教学内容和学生实际情况,给出“多媒体技术双语词典”、“某市公交车查询系统”、“班级综合评测系统”等多个软件的分析、设计和实现任务,并征求学生的意见和建议。2.角色确定根据工作量和软件开发流程进行分组,以5~8人一组为宜。小组实行组长负责制,组长安排、协调各成员工作。角色共分3类:软件开发人员、用户和同行专家[3]。在各小组之间要使每个成员明确自身角色,认清自身责任。在项目开发的不同阶段,小组成员扮演的角色类型也可以改变。例如,在需求分析阶段某小组成员扮演的角色是分析开发人员,而在设计阶段则可以转变为同行评审专家,对小组开况提出意见,结合对比分析做出评价。3.选题为了保证各小组竞争公平,要使小组的选题难度基本相同,并且难度基本相同选题的小组之间进行同行专家评审,开展讨论过程中可行使专家权力,提出工作意见。这种形式的应用最直接作用在于促进小组之间的沟通交流,促进选题小组对自身的审视,在比较借鉴之下完善自己的方案,帮助学生拓宽思维[4]。在初步完成选题后要对系统开发目标进行准确制定,并形成方案雏形,为使用开发平台提供的相关开发工具建立数据库等做准备。4.阶段性开发工作在软件开发的不同阶段要整理出不同的文档,比如在系统可行性分析阶段要参照软件工程标准进行可行性文档书写,或在需求分析阶段按照国际标准进行需求说明文档书写,在软件开发的设计、编码以及测试阶段也同样需要书写文档[5]。在不同阶段,教师准备相应的的资料以及样例模板给学生参考,学生根据自己所在组的任务进行不同资料素材的搜集,通过多种途径进行学习。软件开发中组长的任务是领导责任,明确指导小组成员分工合作,对开发过程进行文档记录和保存。5.阶段汇报和讨论教师要准确把握学生项目开发进度,定期组织阶段汇报,选择合适时间在课堂上让各小组同学进行汇报和沟通。各小组不同阶段的开发负责人员可以不同,根据阶段需求做主要汇报。汇报内容包括对当前工作开展情况以及遇到的问题等。在汇报过程中同行评审要积极给出意见,并与其他小组沟通讨论[6]。在阶段汇报工作中,教师主要是针对阶段汇报情况作出决定性评价,对其工作的正确与否进行判断,并对其研究方法给出积极意见。6.阶段性总结在各阶段工作完成后,要完成产品交付工作并写出分析报告。产品交付主要包括软件需求文档、软件概要设计说明书、软件详细设计说明书、可运行的程序、测试分析文档等。软件开发阶段较多,在软件详细设计到测试分析过程中要进行多次修正,以便前期工作的完成为后续开发工作打下坚实的基础。7.总结评价在基本工作完成后,要求各小组上交最终文档和软件产品,教师要对各小组的工作成果进行总结评价,并给出成绩。学生最后成绩构成可以参照“小组成绩”+“个人成绩”,两个部分的比例各占一半[7]。小组的成绩是教师确定的,教师结合学生在小组中的表现,根据其知识水平、合作能力、创新能力、科研能力以及其所在小组最终完成的质量情况进行综合评分;个人成绩则主要是依靠组长给出,而组长的成绩可由小组成员综合给出。这种成绩确定以及评价考核的方式是对学生综合表现的肯定,是对整个项目开展过程中学生的整体能力的评价,较公平合理,对促进学生全面发展有着积极作用。
二、软件工程教学中应用项目教学法应注意的问题
为更好促进项目教学法在“软件工程”课程中的实践应用,要从教师和学生两方面出发,提高教师的驾驭能力,增强学生的参与能力。1“.软件工程”课程自身具有较强的专业性,因此在该课程中应用项目教学法要不断增强教师的整体能力。教师要对项目重点以及课程知识点准确把握,制定实用性强、熟悉程度高的教学项目,以利于培养人才。在项目开展过程中教师要对项目教学法灵活运用,在完成“软件工程”知识点讲授的同时丰富项目教学方法。2.在项目教学法应用过程中学生的参与配合行为决定了教学效果。为不断促进学生积极参与项目教学,教师要合理进行分组,根据学生的心理特征以及能力分配情况进行分组,保证各环节开展顺利。在分组环节中要避免出现“能者多劳”现象,对小组组长的确定也要采取轮换制度,促进小组成员每个人都能发挥自身作用,都能得到实践训练。教师要做好指导辅助作用,帮助小组开发更加顺利,增强学生自信心。
三、结束语
【关键词】信息化工程软件工程工程验收
工程验收即工程建设单位组织相关部门对承建方建设的单项工程或全部工程进行检验和交接的工作程序。
信息化工程是以计算机智能化建设为基础,并使之运行发挥效益的系统化工程,其中的计算机智能化建设指的就是软件工程建设。如果把信息化工程比作一个庞大的机器人,其中计算机基础建设只是建设了机器人的骨架,软件工程建设才是填补了血肉并整合在一起作为机器人的神经中枢。
信息化工程验收即建设单位对承建方以信息化建设为基础的单项或全部工程的检验和交接的工作程序。其中的重点验收项目就是软件工程验收。
一、软件工程
1.1软件工程的定义
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到高级程序语言、数据库开发工具、中间件开发工具、操作系统平台、安全接口标准、网络连接模式等方面。在现代社会中,软件应用于各个方面。典型的软件比如有电子邮件、操作系统、财务软甲、办公软件、ERP系统、智能手机系统、游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业、农业、商业、银行、航空航天、政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
1.2软件工程的发展
前面提到了软件工程涉及各个行业的应用主要指的是,软件工程建设在工业中的自动化控制,农业的生产和销售,企事业单位的集约化管理和政府机关的信息化办公等等应用。其中以企业软件工程建设为例,企业是以经济建设为基础的生产单位,以追求经济效益和生产效率最大化为目的的集合体,只有软件工程的产品真正为企业创造了效益,才能在这片土壤中生存下去。
软件工程建设开始还只是在企业办公中发挥作用,部门之间发个邮件,财务做个报表,人事部做个员工档案,这只是软件工程的初级应用,对企业的生产和部门间的集约化办公并未起到太大的作用,软件工程在企业中也并未起到至关重要的作用。只有把各个部门软件进行整合,使其系统化,增加部门间的软件工程联系,才能真正提高企业生产效率。随着计算机硬件设备的不断发展,计算机运算速度越来越快,存储设备空间越来越大,为软件工程的系统化建设提供了有力的保证,软件工程建设越来越庞大,涉及面越来越广,事实证明,软件工程建设帮助企业提高了生产效率,创造了经济效益,在企业中蓬勃发展并起到越来越重要的作用,随之而来的问题就凸显出来,需要进行工程项目建设结束后的验收和交接工作。
1.3软件工程的验收
软件工程是信息化建设工程的一个重要组成部分,工程的验收周期和耗费的人力也是最长的。所以,提高软件工程验收的效率和验收质量是保证信息化工程建设验收成功的重要途径。软件工程和其他工程一样,包括设计、施工、材料供应、安全检查、项目验收等工程建设流程。软件工程又是一个不断建设,不断完善的过程,与常规工程验收的区别就在于并不是一次验收就能得出结论,验收周期相对较长,需要在工程开始阶段就介入验收工作,不断总结,跟踪验收,不断修改,才能促使软件工程向面向用户的可操作性和可维护性方面更好的发展和完善。
软件工程的建设是在计算机硬件基础上进行的,同时还包括系统间的网络通信条件,异地建设的系统工程还必须要有传输系统的支持,在此基础上又增加了安全系统的建设,所以软件工程的验收,并不是单个模块、单个系统的简单验收,还要综合考虑其他系统的影响和支持。
二、验收方法
2.1验收条件
由系统承建方确认项目工作是否已按合同及相关要求完成,需要交接的项目技术资料准备充分。然后提出验收申请,联系监理及建设单位组织验收。
2.2验收依据
软件工程项目一般应具有以下相关验收依据:(1)符合国家现行有关法律、法规、规章和技术标准。(2)建设方有关部门的规定;软件工程要面对用户需求,符合用户实际工作的需求,而软件工程是一项系统工程,需要满足相关不同部门,部门与部门之间的需求。(3)经批准的项目招投标文件;招标文件中一般规定了软件工程中各个项目的内容和功能,是开发软件工程的工作依据,也是验收软件工程的基本依据。(4)项目合同、补充合同及合同附件;项目合同规定了软件工程项目建设方和承建方的权力和义务,无论是工程的施工阶段还是验收阶段,为双方提供了工作依据和法律保障。(5)经批准的设计方案、实施方案及相应的工程变更文件;项目的招标和设计只是规定项目的最初规划,按照实施方案和变更文件验收软件工程的各项功能才能把系统真正验收完全。就像一栋大楼建成了,不能只靠图纸上的验收,不同房屋的质量都需要检验。
2.3验收对象及范围
验收对象:根据建设单位要求和用户需求完成的软件开发项目。验收范围:按照合同并结合设计方案、实施方案及变更文件验收软件工程项目的各项功能,同时验收各数据模块间的接口软件,终端应用软件,数据交互软件,数据库软件。不包含软件系统应用后,改变系统架构的新需求,由于其他既有系统改变而影响现有系统应用的需另行讨论处理。
2.4验收程序
(1)验收准备。①由建设方组织召开验收准备会议,明确各方验收工作的任务及验收流程。建设部门应组织相关维护部门和最终用户参与到项目验收过程,维护部门协同监理方应审查验收申请和验收资料,最终用户提出系统上线试运行后的各项功能是否满足需求,提供用户使用报告或使用意见。②承建方提交项目验收申请和资料,验收材料包括项目合同规定的各种文档及实施过程中产生的文档资料及开发总结报告,同时提供有监理方审核通过的各个系统测试报告,并按照规范装订成册。③监理方负责审查项目文档的完整性和规范性,对不满足要求的资料提出监理意见,并要求承建方在规定时间内整改完善。整理监理过程文档,对项目监理过程出具监理工作总结报告。(2)验收申请及审查完成验收准备工作后,由承建方提出验收申请,经建设方及监理方审查通过,同意验收后,组织正式验收。(3)正式验收。①确定验收时间,验收会议议程,准备相关验收资料。②由建设方抽取或邀请专家,组成专家小组,由专家小组组织验收。项目三方(甲方技术维护部门及业务部门、承建方项目组负责人及商务、监理方主要负责人)、相关部门参加验收。(4)召开验收会议。①专家小组会听取项目各方的工作汇报,甲方介绍项目建设背景、建设情况及用户使用情况。承建方介绍项目建设情况,项目完成情况,项目成果等。监理方汇报项目实施过程中,监理工作的情况。②查阅相关文档资料,对资料完整性和正确性做出评估。③对系统测试和试运行期间用户和技术维护部门的质询进行答疑。④由专家小组出具项目验收意见。⑤遗留问题限定整改时间,由监理纳入会议纪要。
三、软件工程生命周期下的验收工作
软件工程普遍使用原型化方法进行开发,但是由于专业性的差距,软件开发工作者不可能完全了解用户需求,尤其是专业性比较强的用户需求,这就需要不断的进行“开发-试用-总结-再开发”,循环往复,但是却是个螺旋上升,向着软件工程的成功不断前进的过程。那么工程验收就不可能一蹴而就,需要建设方组织技术维护人员和用户从软件开发开始就参与进来,共同开发,共同验收,相互合作,每个人都是这螺旋上升阶梯的一块基石,缺一不可。
3.1工程开始前的验收
(1)计算机硬件到场安装前,承建方与建设方共同验收,是否符合软件工程建设基础要求,验收时发现短缺、破损,承建方应立即要求采购方补发和负责更换。(2)操作系统和基础应用系统安装完成后,需要软件工程承建方进行验收,测试应用是否符合工程建设标准,验收合格后方准进行应用软件开发工作。
3.2工程进行中的测试(初验)
项目调试后基本达到招标书规定的指标后,可进行验收测试(初验)。验收规范(包括项目、指标、方式和测试仪器等)应由承建方提前提交给建设方。建设方可根据合同、招标书、验收方案以及建设方的有关规定进行修改和补充,经双方确认后形成验收文件作为验收依据。验收测试合格后,双方签署初验合格协议,设备进入试运行期。
3.3试运行后的系统完善
工程经过一定时间连续的试运行期后,设备维护方和用户对系统会提出部分问题和修改建议,承建方跟踪应用系统运行也会发现一些问题。需要监理方组织各方进行中期运行总结会,分析系统问题,解答操作问题,协调各系统开发人员查找数据交换问题。按照会议决议组织人员进行系统完善,再次进行测试。在试运行期间,由于设备质量等造成某些指标达不到要求,将责成有关单位更换或进行修复,试运行期顺延。
3.4整体验收(终验)
初验内容主要是对建设项目的功能、性能、适用性、稳定性等方面进行验收。平台试运行后,无质量问题,由建设方按照整体验收方案的要求组织验收。
整体验收内容主要以双方签署的合同,包括合同附件、招投标文件,以及国家法律和有关规定等为依据。对平台各项功能和数据配置要求、性能指标、应用和运行情况等,进行全面的整体核查验收,验收后签署“验收合格单”。在工程实施各阶段所提供的变更资料,与合同正本具有同等的法律约束力。
四、验收后项目移交
系统终验结束并正常运行后,由监理方组织项目移交工作,承建方按合同及相关要求移交项目文档、数据资料及其他设备或材料,办理移交手续。双方签署最终验收证明,工程实施通过。
参考文献
关键词:项目驱动法;软件测试;教学方法
作者简介:赵晓君(1979-),女,河南南阳人,郑州轻工业学院软件学院,讲师;黄艳(1976-),女,河南信阳人,郑州轻工业学院软件学院,副教授。(河南 郑州 450002)
基金项目:本文系郑州轻工业学院校级青年教师教学改革项目的研究成果。
中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2013)07-0101-02
随着软件产业的快速发展,软件系统的规模越来越大,功能实现也越来越复杂,导致软件中存在的缺陷数量大大增加,这些缺陷将会带来各种损失,甚至出现灾难性的后果。因此,如何保证软件质量已成为所有使用软件和开发软件的人们关注的焦点。软件测试作为软件工程的一个重要组成部分,是目前用来验证软件是否能够满足用户需求功能的唯一有效方法,是保证和提高软件质量的重要环节。为适应软件产业的发展趋势和满足软件测试人才的大量需求,目前已经有许多大学在软件工程专业添加软件测试课程或者添加软件测试专业方向。
软件测试专业包含多门专业课程,有“软件测试理论”、“软件测试技术”和“软件缺陷管理”等,其中,“软件测试理论”课程重点为初学测试的同学讲解测试的基础理论知识,主要包括软件测试基本理论、软件测试方法和技术等,在多门专业课程中占有举足轻重的地位。
一、“软件测试理论”教学现状
“软件测试理论”课程重点介绍软件测试的基本理论,因此整个课程主要以教师讲授为主,在教学的过程中存在以下问题:
1.教学内容理论性较强,难以调动学生学习的主动性
对于初学软件测试的学生,首先要向其讲授相关测试理论,使其建立系统的测试理念。
但是学测试的学生大都是理科生,喜欢操作性强的课程,“软件测试理论”课程的理论性太强,需要背诵很多概念性的知识,这对于他们来说是比较困难,不能激发学习的主动性,教学效果不理想。
2.测试方法和技术案例实际应用价值不足,学生很迷茫
测试方法和技术是“软件测试理论”课程学习的重点和难点,这部分内容仅靠老师的讲解和书本上的案例很难让学生深入理解掌握测试技术的内涵,学生在学习这部分知识时会产生迷茫:学习这些知识有什么用处,在具体的项目测试中,应该怎样应用这些知识?没有实际的项目案例做支撑,学生会失去继续学习下去的兴趣。
针对上面的问题,本文提出将项目驱动法应用于“软件测试理论”课程的教学中,学生在进行项目实践的同时,根据需要学习软件测试相关理论知识,这样有助于提高学生的学习主动性,有助于理论知识的牢固掌握,有助于提高学生的实践技术能力,改善该课程的教学效果。
二、项目驱动法
项目驱动法是目前中国教育领域中一种比较新的教育教学方法。
所谓项目驱动法,是师生通过共同实施一个完整的项目工作而进行的教学活动,它既是一种课程模式,又是一种教学方法。[1]这里的项目根据课程教学内容的不同所包含的涵义也不同。在“软件测试理论”课程教学中,项目即指一个已经开发完成的软件测试工作。通常,项目教学都是实践导向的和任务驱动式的教学。
在项目驱动模式的教学活动中,教师根据学生现有的知识水平和项目经验选择一个合适的项目,以项目实施为主线展开教学活动,把课程相关的知识点的讲解融入项目操作的每个步骤中。在项目实施的过程中,以学生为中心,教师主要做组织和指导工作,学生在整个项目的实施过程中处于探索知识的情景中,充分发挥主动性、积极性和创新精神,综合运用所学的知识和技能解决实际问题,最终达到有效地将所学知识系统化深入化的目的。
这种模式从根本上将传统课堂中老师满堂灌转变为“学生为主体,教师为主导”的教学模式。同时,学生通过一个具体项目的实践,感受到了真实项目管理的思想和团队协作的必要性,提高了学生的创新能力和项目实践能力。拥有真实项目的实践经验使得学生在择业时拥有很大竞争优势。
将项目驱动法应用于“软件测试理论”课程教学中,在课程理论教学中加入一个完整的项目测试实践环节,通过项目实践能够很好地激发学生的学习主动性,使学生经历了一个“先做,遇到问题,再学,解决问题,再做,获得经验”的学习过程,最终完成一个完整的软件测试实践,同时也学到了“软件测试理论”课程应该掌握的理论知识。这样,既解决了软件测试理论课程理论性太强的问题,又解决了测试方法和技术案例实际应用价值不足的问题;而且丰富了学生的实践经验,提高了软件测试理论课程的教学效果。
三、“软件测试理论”课程教学目标和教学内容
1.教学目标
通过本门课程的学习和实践,理解软件测试理论与原则;掌握主流测试技术和方法,熟悉测试用例的编制、熟悉软件测试的基本流程,熟悉软件测试过程中各类技术文档的编制规范,并能灵活运用测试技术解决实际问题。
对于一个具体项目软件,每一个学生都能够顺利完成如下手工测试流程:根据软件需求规格说明书撰写测试计划,设计测试用例、进行测试环境配置和测试数据准备工作、执行各种测试,撰写缺陷报告、跟踪并修复缺陷、进行测试评测,最后提交测试总结报告,达到软件企业对测试专业人才的要求。
2.教学内容
“软件测试理论”课程的教学内容主要包括软件测试基本理论、软件测试基本技术、软件测试过程和软件测试工具。[2]
软件测试基本理论包括软件测试、软件缺陷和测试用例的基本概念,测试的目的、测试模型、测试分类和测试流程。
软件测试基本技术包括白盒测试和黑盒测试;其中白盒测试包括静态测试和动态测试,动态测试又包括程序插桩、逻辑覆盖、基本路径测试等;黑盒测试包括等价类划分、边界值分析、因果图法、判定表法、场景法等。这些基本技术都是在进行测试用例设计时使用的。
软件测试过程是指执行测试的过程,通常分为四个阶段:单元测试、集成测试、系统测试和验收测试。
软件测试工具有多种:功能测试工具、性能测试工具和测试管理工具等。
四、项目驱动法的应用方案
1.项目的设计
实施项目驱动法,首先需要设计项目。项目的设计与选取直接影响到该教学模式的教学效果及学生的学习兴趣。“软件测试理论”课程项目的选取与其他课程又有所不同,学生要进行的操作是对现有的或者已经开发完成的软件的测试工作,因此在设计项目时应遵循以下几条原则:
第一,项目是现有的软件或已经开发完成的软件,软件中有部分明显错误,有部分隐藏错误;明显错误有助于提高学生的测试积极性,隐藏错误有助于启发学生进行更深入的测试。
第二,项目具有典型性,代表大部分软件的共性。通过该项目的测试,学生可以掌握大多数软件的测试流程和测试方法。
第三,项目中有多种情景元素,符合使用多种测试技术和方法,有助于学生在进行项目测试的同时,学习使用多种测试技术设计测试用例的方法。
第四,项目大小和难易适中。每个项目组的人数控制在3~5个人,设计的项目能使学生通过努力在一定的时间内完成。
根据以上原则,本课程目前选择的项目是《企业薪酬管理系统》。
2.项目驱动法的实施
本课程通过让学生进行企业薪酬管理系统完整的测试流程实践的同时,讲解测试需求编写、测试计划编写、测试用例设计、测试环境配置、测试执行、缺陷跟踪和管理、测试报告撰写等内容。课程授课方式主要是分阶段讲解测试过程和测试要求,每一个阶段开始,老师先讲原理,选择部分内容做例子进行讲解,然后学生比照例子跟着做;阶段内容完成时,学生提交完成的文档,老师选择典型的问题进行讲评,然后进行下一个阶段的内容,如此类推直至测试结束。
企业薪酬管理系统测试流程设计如图1所示。
本课程课时为60学时,根据图1系统测试流程图安排,基于项目驱动法的“软件测试理论”课程安排如表1所示。
在课程进行的过程中,必须严格按照项目的测试流程进行,测试流程为:先获取项目测试需求,撰写测试计划,设计测试用例,执行测试,提交缺陷报告并跟踪修复缺陷,最后提交测试总结报告。课程结束,要求学生提交项目测试报告,测试报告包括多个文档,整个流程中每个阶段的工作必须有撰写规范的文档提交,如:测试计划、测试用例、测试执行报告、缺陷报告和测试总结报告等等。
测试报告既体现了教师项目教学的结果,也体现了学生对测试知识技能的掌握水平。通过评价学生作品,找出学生在学习过程中的薄弱环节,进一步改进项目驱动教学的教学安排,使其能够发挥最大的教学效果。
五、结束语
本文针对软件学院软件工程专业的培养对象和教学特点,把真实项目引入“软件测试理论”课程课堂教学中,采用项目驱动教学法,从项目的需求评审、测试计划、测试用例设计、测试执行、缺陷报告、测试评测到测试总结一个完整的测试流程,交给学生组建测试团队,按照流程进行任务分配和管理,最终完成整个项目的测试工作。通过一个完整项目测试流程的完成,有效提高学生的学习和实践能力、解决问题的能力、团队协作能力等,使学生在掌握软件测试的各种测试技术和基本流程的同时,积累了一定的项目测试经验,为他们今后的就业打下了良好的基础。
参考文献:
摘要:软件工程是高校计算机专业的一门重要课程,工程实践性非常强,相关理论与技术也发展非常快,为适应社会要求,培养高素质的软件工程技术人员,文章提供了在课程教学方面所作的积极的教学方法改革。从教学准备阶段、教学过程和教学考核三个重要阶段,分别阐述了“案例”;教学法的实践过程,是教学方法改革的一次探索。 关键词:案例教学;实践教学;软件工程 软件工程硕士论文是高等学校计算机教学计划中的一门核心课程,是研究软件开发与软件管理的综合性工程学科,工程实践性非常强,要求学生不仅具有良好的程序开发能力,而且要具备软件项目的整体管理概念,以及团队合作的精神。因此,传统的教学方法显然不能满足该课程的需求。另一方面,与该课程相关的理论与技术的发展速度也非常迅速。软件工程硕士论文新的理念、新的开发工具层出不穷,这给课程体系结构的建立、教学资料的选择和积累带来了很大的难度。为了提高该课程的教学效果,专门成立了软件工程课程组。针对该课程的特性,多次召开教学研讨会,交流教学体会和有关教学资料,不断总结教学方法和教学经验,在吸取国外同类课程Software En- gineering教学经验的基础上,积极探索教学方法的改革,将软件工程专业素质的培养作为教学目标,逐步形成了一套有效的、完善的教学规范。总结起来,可以从教学准备阶段、教学过程和教学考核等三个方面来看。
一、软件工程硕士论文教学准备教学前的准备工作非常重要。首先,根据教学大纲,在深入分析教学内容的基础上,列出该课程的知识结构体系,以及与相关课程的联系,从而确定该课程的教学目标。该课程的教学目标主要可以包括以下3方面: (1)知识目标:了解“软件工程”;这门学科的形成和发展;掌握与大型软件系统相关的规划、分析、设计、实现、测试与维护等概念、原理、方法、工具与过程;掌握“软件工程”;的基本管理方法。 (2)能力目标:体验软件工程各阶段的主要工作,特别注意吸取教训;训练实际软件工程动手的能力,培养综合应用能力;通过教师与学生之间、学生与学生之间的合作学习,增强学生的团队协作能力, 并学会与他人交流。(3)情感目标:通过学生的个性化学习,增强学生的自信心和意志力。其次,软件工程硕士论文课程组成员充分交流教学体会和相关教学资料,参考了大量国内外先进的软件工程理论和应用实例,对教学内容进行了必要的补充和删改,增加了软件工程学科发展动向的介绍,加强了包括项目管理、版本控制、建模工具和调试工具在内的各种现代软件工程开发工具的使用介绍,编制了内容丰富、联系实际的多媒体教学课件。一方面,为训练学生对现代先进软件工程技术及其前沿理论发展的敏锐性、提高学生双语学习的能力,收集准备了大量原版技术文档;另一方面,为了培养学生自觉应用软件工程硕士论文的理论分析问题、解 28决问题和使用工具软件的专业能力,配合理论教学, 设计了完整的、具有实际工程意义的综合型软件项目实验,并为此建立了案例库,为每一个案例提供详细的分析参考说明。
二、软件工程硕士论文教学过程在具体教学过程中,重点采用理论与实践密切相结合的方式,让学生在项目开发实践中自觉应用软件工程理论。首先,让学生了解整个课程的结构与重点,以及该课程与其他课程的关系。在深入分析教学内容的基础上,列出该学科的知识和能力结构体系,以及各单元或章节之间的逻辑关系,然后再按单元或章节分别列出知识能力结构体系。按照教科书的章、节(课)的顺序,用简明扼要的语言列出各知识点的内容,并标出各知识点的学习目标层次,同时注明哪些知识点属于教学中的重点或难点。其次,在课堂讲授中,采用多媒体方式,提高讲授信息的先进性和现实性。同时开展指导性自学, 提倡和鼓励学生阅读英文原版教材及其参考书。通过一系列讨论会,训练学生对大量新信息的接收消化能力。在软件工程硕士论文实践过程中,通过案例研究,把综合型开发实验划分成若干练习单元,进行举一反三;然后,学生按教师组要求组成4~6人的项目小组,扮演项目开发过程中的不同角色,进行分工协作,模拟练习,参与项目管理和开发,从不同角度全面把握和体会整个软件工程项目开发和管理的基本思想,共同完成实验项目。教师加强在实验过程中的指导作用,要求各项目小组分阶段提交讨论记录和项目工程要求的里程碑成果。具体实施过程: (1)选题分组在开始理论教学之前,通过案例研究,向学生提供典型的软件案例,可来自案例库。由学生根据自己的兴趣自由选择软件工程硕士论文题目,组成项目组,并选取项目负责小组长。每小组人数最多不超过6人,各个小组由小组长负责组织、分工、控制进度等,对小组成员的最终实验成绩有5分浮动调整权;引起过半数组员不满意,改选组长;组长带领全组顺利完成任务, 总评可以加5分。主要要求是让学生体验软件工程各阶段的主要工作,特别注意吸取教训;并且学会与他人合作,培养团队精神,单干户将得不到成绩。 (2)阶段验收根据理论教学的进度,各个项目开发小组将提供软件工程硕士论文过程中的阶段性成果,大致将提交如下几个成果:可行性分析报告;需求规格说明书;项目计划书;总体设计报告;详细设计说明书;软件测试报告;各课题组进行合并,现场验收软件期末最终版;项目开发总结报告;用户使用手册等。每个阶段都将严格按照软件工程硕士论文的管理方法进行评审活动,并提供给大家一个互相交流的机会。首先,每个项目组都将汇报、展示自己的成果。主讲老师和其他同学组成评审委员会,对每个项目组的汇报情况、里程碑成果、文档质量进行评审、打分,提出修改意见和建议。每组演讲结束后, 分组讨论,按阶段评分标准给出除自己组外的几个组的分数,并写出评语。教学实践以课题小组为单位完成综合实验项目,教师本着训练同学交流能力的目标,制定一些分组标准。下图就是需求分析软件工程硕士论文阶段的一个评分标准示例: 最后,主讲老师要进行总结点评,既总结课程的主要内容和相关知识点,又点评学生的表现,帮助学生整理学习内容,鼓励积极性。 (3)成绩评定课堂教学不仅仅是理论教学,还包括案例分析、讨论,结果展示汇报等,教师引导学生展示自己的实验成果,根据各个项目小组的整体完成情况和各个成员在其中的表现综合评定每个学生的成绩。每个学生的成绩既包含项目小组负责人打分,又包含教师的评分,从而充分调动学生参与项目的主动性,以 29防止部分小组成员不参与项目完成而又蒙混过关的现象。下面将具体描述本课程的考核办法。
三、教学考核本课程既有理论教学又有实践环节。每个学生的软件工程硕士论文课程成绩由三部分组成:实践成绩占30%,期末笔试占60%,平时考勤占10%。其中,理论部分的考核以笔试为主。主要考查学生对基本理论与基本概念的理解和掌握情况。实践成绩的评定包括小组成绩和个人成绩两大部分,各占50%。小组成绩由各个小组阶段成绩的平均值与系统最终验收的情况(包括系统是否达到需求规格说明中的功能性、非功能性要求,文档是否全面、合理、规范,源程序编写是否规范、可维护性好等方面)组成;个人软件工程硕士论文成绩主要由小组长根据个人在组内的表现和工作给出,约占50%,另外50%的个人成绩由最终答辩时主讲老师根据答辩成绩来评定。小组长的个人成绩由老师根据其组织项目组完成软件开发的具体情况和其管理质量(如分工是否合理、进度安排是否合适、软件质量如何等)来综合评定。教学实践过程在教师引导下,学生自主管理,分工协作,既锻炼了学生参与项目管理的能力,又训练了学生之间的团队合作精神。教师掌握各小组成员的实际完成情况,强化学生各种现代软件工程开发工具的应用能力,要求学生按规定提交讨论记录和项目工程要求的各种文档。软件工程硕士论文形成了一套较为成熟的科学的综合成绩评定方法。该考核办法较为科学、公正、合理,学生普遍能够接受,并且极大地推动了学生的学习积极性,学生反映良好。