时间:2022-12-20 10:50:13
导言:作为写作爱好者,不可错过为您精心挑选的10篇软件项目计划书,它们将为您的写作提供全新的视角,我们衷心期待您的阅读,并希望这些内容能为您提供灵感和参考。
软件产品,特别是行业解决方案软件产品不同于一般的商品,用户购买软件产品之后,不能立即进行使用,需要软件公司的技术人员在软件技术、软件功能、软件操作等方面进行系统调试、软件功能实现、人员培训、软件上线使用、后期维护等一系列的工作,我们将这一系列的工作称为软件项目实施,软件项目计划书。大量的软件公司项目实施案例证明,软件项目是否成功、用户的软件使用情况是否顺利、是否提高了用户的工作效率和管理水平,不仅取决于软件产品本身的质量,软件项目实施的质量效果也对后期用户应用的情况起到非常重要的影响。项目实施规范主要包括项目启动阶段、需求调研确认阶段、软件功能实现确认阶段、数据标准化初装阶段、系统培训阶段、系统安装测试及试运行阶段、总体验收阶段、系统交接阶段等八个阶段工作内容,每个阶段下面有不同的工作事项,各个阶段之间都是承上启下关系,上一阶段的顺利完成是保证下一阶段的工作开展的基础。下面将按照每个项目实施阶段分别介绍。
二、项目实施方案介绍
(一)项目启动阶段
此阶段处于整个项目实施工作的最前期,由成立项目组、前期调研、编制总体项目计划、启动会四个阶段组成。
此阶段主任务:
公司:在合同签定后,指定项目经理,成立项目组,授权项目组织完成项目目标。
公司项目组:进行前期项目调研,与用户共同成立项目实施组织,编制《总体项目计划》,召开项目启动会。
商务经理:配合公司项目组,将积累的项目和用户信息转交给项目组。将项目组正式介绍给用户,配合项目组建立与用户的联系。
用户:成立项目实施组织,配合前期调研和召开启动会,签署《总体项目计划》和《项目实施协议》。
1、成立项目组
部门经理接到实施申请后,任命项目经理,指定项目目标,由部门经理及项目经理一起指定项目组成员及成员任务,并报总经理签署《项目任务书》。
2、前期调研
项目经理及项目组成员,在商务人员配合下,建立与用户的联系,对合同、用户进行调研。填写《用户及合同信息表》。在项目商务谈判中,商务经理积累了大量的信息,项目组首先应收集商务和合同信息,并与商务经理一起识别那些个体和组织是项目的干系人,确定他们的需求和期望,如何满足和影响这些需求、期望以确保项目能够成功。
3、编制《项目总体计划》
《项目总体计划》是一个文件或文件的集合,随着项目信息不断丰富和变化,会被不断变更,主要介绍项目目标、主要项目阶段、里程碑、可交付成果。通常包括以下几方面内容:
项目描述,项目目标、主要项目阶段、里程碑、可交付成果。所计划的职责分配(包括用户的);
沟通管理计划,确定项目干系人对信息和沟通的需要:即什么人何时需要什么信息以及通过什么方式将信息提供给他们。质量管理计划,确定适合于项目的质量标准和如何满足其要求。如果有必要,可以包括上述每一个计划,详细程度根据每个具体项目的要求而定。未解决事宜和未定的决策。
4、启动会
项目组与用户共同召开的宣布项目实施正式开始的会议。
会程安排如下:
共同组建项目实施组织,实施组织的权利和职责;双方签署《项目实施协议》。
项目组介绍《项目总体计划》和《项目实施协议》,包括以下内容:
项目目标、主要项目阶段、里程碑、可交付成果。所计划的职责分配(包括用户的);
项目实施中项目管理的必要性和如何进行项目管理,项目的质量如何控制;
项目实施中用户的参与和领导的支持的重要作用;
阶段验收、技术交接和项目结束后如何对用户提供后续服务。
(二)需求调研确认阶段
此阶段的主要工作是软件公司的项目实施人员向用户调查用户对系统的需求,包括管理流程调研、功能需求调研、报表要求调研、查询需求调研等,实施人员调研完成后,会编写《需求调研分析手册》,并交付用户进行确认,待用户对《需求调研分析手册》上所提到的需求确认完毕后,项目实施人员将以此为依据进行软件功能的实现,工作计划《软件项目计划书》。如果用户又提出新的需求,实施人员将分析需求的难度及对整个系统的影响程度来确定是否给予实现。需求调研阶段具体包括如下内容:
1、进行需求调研准备
2、编制《需求调研计划》
3、内部评审是否通过《需求调研计划》,项目组、部门经理、商务等人员根据合同要求和项目实际情况对《需求调研计划》草稿进行评审,如评审通过,则在稍后的时间内签署,如评审不通过则重新修改。
4、用户是否签署《需求调研计划》,如用户签署《需求调研计划》,则作为以后需求调研工作的指南。否则重新修改。
5、《需求调研计划》是否有变更,如果计划存在变更,则执行变更控制流程,否则按计划进行后续工作。
6、编写及发出《需求调研通知》,项目组编写《需求调研通知》,确定进行需求调研的相关事宜,发给用户,为顺利完成需求调研工作做准备
7、需求调研,项目组以《需求调研手册》为依据,从业务流程、单据使用、打印格式、报表查询几个方面展开深入和全面的调研,并搜集用户的个性化需求。
8、需求调研分析根据调研的结果,项目组和公司其他技术部门将进一步进行分析,确定合理、可行的需求,将分析结果形成《需求分析报告》草稿。
9、内部评审是否通过《需求分析报告》。项目组、部门经理、公司其他技术部门的人员对《需求分析报告》草稿进行评审,如评审通过,则在稍后由用户签署,如评审不通过则重新修改,直至内部评审通过。
10、编写及发出《需求分析报告确认通知》。项目组编写《需求分析报告确认通知》,发给用户,确定进行需求确认的相关事宜,告之相关部门及人员安排好工作,准时参与需求确认工作,为顺利完成需求确认工作做准备。
11、用户是否确认《需求分析报告》。如果用户确认,并签署了《需求分析报告》,则需求调研阶段工作结束,进行后续的软件功能实现的工作;如没有确认,则进一步进行调研、分析,直至用户最终确认并签署《需求分析报告》。双方签署了《需求分析报告》,需求调研工作结束之后,如果用户提出新的需求或是变更已有的需求,则执行需求新增及变更流程。
(三)软件功能实现确认阶段
此阶段的主要工作是项目实施人员根据需求调研阶段确认的《需求调研分析手册》中的用户需求内容进行具体软件功能的实现工作。在软件功能实现的过程中,项目实施人员将记录软件实现的详细过程。便于公司售后服务之用。每一个实施技术人员必须严格按照要求记录、存档。按照调研要求的所有功能实现完毕后,项目实施人员将编制《软件功能确认表》,将定制好软件功能待用户确认,用户根据《软件功能确认表》上的功能逐一确定软件功能是否达到要求,对不满足要求的功能,项目实施人员将会记录下来并进行功能修改,直到满足用于要求。
(四)数据标准化初装阶段
此阶段的主要工作是项目实施人员指导用户进行系统标准化资料的准备工作,并对用户进行初装资料的软件操作培训,以便用户能够及时的将标准资料录入系统,初装完成后,项目实施人员会对资料初装的情况进行核查,为以后具体业务功能的开展做好基础。
(五)系统培训阶段
系统培训阶段工作是整个项目实施工作中比较重要的工作,用户对软件的操作功能是否熟练将直接影响到后面的软件应用效果,所以软件公司和用户双方要对此阶段的工作给予足够的重视。要充分认识培训的重要性和艰巨性。在项目实施之前对用户的相关人员进行系统和规范的产品培训是非常必要的,达到让用户了解软件产品,最终自己能够解决使用中的具体的问题。
此阶段的培训工作中将用户参加产品培训的人员划分为三个层次:决策层、技术层、操作层,对不同层次的用户参加产品培训人员的培训内容分别是:
决策层:领导在实施中的作用与重要性、决策查询。
维护层:系统维护知识、操作方法。
操作层:操作方法。
具体的培训工作流程为:
1、调研培训信息:在培训开始前3天由用户实施负责人,将参加培训的部门和人员情况填入《受训部门汇总表》、《受训人员情况一览表》。
2、编制培训计划:结合调研结果,与用户实施负责人商议具体培训内容、时间,场地,人员等。项目组编制《培训计划》。
3、签署培训计划:用户签署《培训计划》,进一步确认培训安排。
4、发培训通知:培训开始前2天,按照签署的《培训计划》,将培训内容、时间,场地,人员等信息通知用户实施负责人。
5、搭建培训环境:公司项目组在培训开始前,将培训环境搭建及检查妥当,将培训提纲及培训手册准备好。
6、组织培训:公司项目组培训负责人与用户实施负责人组织相关人员参加培训,按培训制度严格考核。由用户将考勤情况填入《培训人员签到表》。
7、培训考核:公司项目组培训负责人与用户实施负责人组织受训人员参加上机及理论考试。
中图分类号:TP391 文献标识码:A 文章编号:1007-9416(2012)05-0250-01
1、引言
在国家提倡“两化融合”的大环境下,众多生产制造企业为提升自身竞争能力、扩展发展空间,不断加强信息化方面人力和资金的投入,利用现代信息技术对自身信息资源进行深化开发。生产制造企业的软件项目是具有针对性的定制需求软件项目,不论是合作开发还是整体外包,往往存在着技术、人才等方面的不足,特别是软件项目管理的不足使企业无法完全有效利用软件系统的功能和消化吸收软件在设计和应用上的知识体系,容易出现需求无法控制、功能重复开发、应用效率低、运维和移植成本高等实际困难。
2、企业软件项目技术管理中遇到的问题
2.1 软件需求定义模糊
软件需求是整个软件项目最关键的一个输入,软件需求具有模糊性、不确定性、变化性和主观性的特点。软件需求的提供人员普遍缺少软件需求的必要知识,提出的需求定义不充分、不全面、不准确,导致在系统测试和运行阶段会出现大量的需求变更,影响系统设计结构,造成补丁摞补丁的软件程序。
2.2 项目参与者沟通强度不足
沟通不足常常是企业软件项目成功的最大的威胁。软件需求提出者在项目建设初期对信息化理念了解不深,表达不够深入,提出的功能需求浮于日常工作表面。而企业软件开发人员或外包商因为对业务了解不够深刻,没有有效的项目沟通计划,无法充分考虑业务需求,不能对软件系统给出规划建议或细节,造成项目需求的余量规划准备空间不足。
2.3 定制带来的软件自身内在的高复杂度
对于企业定制软件的开发,由于生产业务自身的复杂度,导致了定制软件的复杂度,特别是业务的组合,造成系统间和模块之间耦合度较高。
2.4 文档资料缺失,知识无法有效继承
在软件项目中,相对于项目进度和软件开发,项目成员不太注重知识的收集和积累,仅能提供项目主要文档资料,而这些资料往往没有跟随软件变更进行及时更新。导致系统的使用、维护知识仅为少数开发和参与者掌握,无法将个人的隐形知识转化为共享的显性知识,给系统的后续升级、维护造成很大困难。
3、在企业软件项目管理过程中的经验
企业的定制软件项目是用有限的资源、有限的时间根据特定的业务部门需求,优选各种技术和产品进行设计开发,将各个分离的“信息孤岛”连接成为一个完整、可靠和有效的整体,并使之能彼此协调工作达到整体优化目的的工作。一个良好的企业项目软件,成熟优秀的软件项目管理是必不可少的。在软件项目建设和全生命周期中,如要减少上述问题的发生,企业可以做好以下几个方面:
3.1 强化软件项目需求控制
在软件项目管理范围内,需求控制和管理是其中重要的一环,特别是对于针对企业自身生产经营流程所定制的软件系统,需求贯穿了项目的整个生命周期。从企业走上ERP信息化道路之后,随着员工对系统了解不断加深和企业自身管理水平提升,很多因素都可能使软件系统的需求不断变化。如果不能有效处理需求变更,势必会很大程度上增加开发和运维的压力。
3.2 加强需求相关方参与项目的深度
不仅是在软件项目初期需求收集和概要设计中,在整个软件项目的生命周期内都必须强调项目需求相关方即业务部门的参与。由于软件系统实施将改变企业员工的工作方式,因此,业务部门的管理者和将来的使用者必须在项目策划阶段就能了解系统应用对其工作方式带来的影响,他们必须制定相应的政策、流程等以准备应对这个即将到来的变动。目前部分ERP项目之所以失败,重要的一个原因是人们误认为ERP项目仅是一个信息系统项目,该项目带来的仅仅是一个信息产品。其实,ERP项目带来的是一新的运营方式,如果企业在没有做相应调整的情况下强行引入ERP,业务流程重组不到位,将会使企业运行的混乱速度加快。事实表明,促使软件项目成功的最重要的要素莫过于需求相关方的全过程参与。
3.3 培养企业内复合型人才,扩展项目管理知识领域
企业定制软件项目需要掌握项目管理技术、熟悉企业流程并对了解软件开发关键技术的人员作为项目的管理者,首先要扩展企业内部软件项目管理人员的知识面,一个高效的项目管理者来说至少要能理解和使用五方面的知识领域:
(1)项目管理知识体系;(2)应用领域的知识和标准;(3)项目环境知识;(4)通用管理知识技能(采购、合同、后勤、人事管理、安全等);(5)管理软技能(处理人际关系技能)。
3.4 将项目沟通上升到技术和管理层次
由于企业内软件从业人员较年轻,缺乏一些沟通、社交等方面的软技能,习惯使用专业术语,更擅长跟机器打交道,所以在项目建设中会出现沟通不充分的情况。软件项目沟通管理是软件项目管理中的一个重要组成部分,可以使软件人员和业务人员有效的建立彼此相互了解的关系,并且能通过沟通的行为和过程达成共识,可确保及时、正确的产生、收集、分发、存储和最终处理项目信息。
软件项目沟通管理包含三个主要内容:(1)编制沟通计划,确定哪些人是项目干系人(项目干系人是指积极参与项目,或利益会受项目执行结果正面或负面影响的个体),分析他们对实施项目的影响程度。根据干系人信息需求的汇总进行沟通需求分析,对不同层次的项目干系人制定不同的沟通计划。(2)以合适的方式向项目人员分发信息,一个企业的各个项目应该采取统一格式模板记录信息以及进行传递,有助于信息格式标准化,降低沟通成本。(3)对项目沟通过程进行管理,改善软件人员沟通的软技巧,努力做到沟通内外有别,对外一致,一个团队要一种声音说话,采用对方能够接受的沟通风格,注重非正式环境下沟通所获得的信息,建立高效的会议方案,明确团队内部思考方式等工作。
4、结语
软件项目管理的发展像任何其他学科的发展一样,其成长和发展需要有一个相对漫长的过程,而且是永无止尽的。只有不断提升软件项目管理成熟度,使企业软件项目管理向多元化、专业化发展,才能取得项目的成功,最大的满足企业自身向整体信息化转型的需求。
1.1高职软件技术专业教学的培养目标某高职软件技术专业的教学过程中,主要是以北大青鸟的ACCP课程体系作为主要的教学体系,教学中的主要培养目标就是:培养出高素质的技能型人才,不仅要掌握企业级的软件开发技术,具有一定的团队合作能力,还要熟练的掌握大型数据库应用系统的开发技术。高职软件技术专业的教学,对学生的就业定位是:网站工程师和网站总不同软件的程序开发员。为了实现良好的教学效果,高职软件技术专业学生的学习内容,主要是Java方向的主干课程。例如,高职学生的学习内容包括网页编程、Java语言、J2EE框架技术、SQLSERVER数据库编程和JavaWeb高级编程等。培养Android移动应用开发人才,需要高职软件技术院校在教学的过程中,以原有的教学体系作为基础,对学生进行深入的Android教学。学生Android方向的学习,主要的学习内容包括An⁃droid系统的环境搭建、图形编程、设备管理、Android平台的体系结构和原理和网络操作等。
1.2高职学生的学习情况高职软件技术专业的教学过程中,教师应该应用一体化的教学模式,采取有效的措施提高教学质量和教学水平,实现良好的教学效果。学生在经过一段时间的学习之后,大部分都可以适应基于工作过程的“实践导向”型的学习环境。软件技术的教学过程中,教师可以应用情景教学法,按照真实的企业情景实现对角色的设置。教师和学生在真实的软件开发工作环境中,承接项目,共同进行软件技术的开发和研制。这种教学方法,可以提高学生的就业适应能力,让学生真实的感受到自己的工作职责和工作内容。但是,一些学生还是缺乏良好的实践能力和编码规范能力。
2Android项目化开发教学的应用
在高职软件技术专业的教学过程中,为了实现良好的教学效果,提高学生的软件技术开发和操作能力,教师应用Android项目开发花教学,具有重要的作用。高职软件技术专业教学中,开展Android项目开发化教学的最终目标是,教师通过对任务驱动模式教学项目的讲解,培养学生的Android智能系统软件开发设计思想,让学生熟练的掌握Android系统中不同技能的开发技巧和相关的开发技巧。学生在Android项目化开发教学的学习过程中,可以按照一定的软件开发流程,独立完成对Android系统软件的开发,最终可以参加企业级的大型Android系统软件设计和产品开发。教师在设计这种教学案例的时候,应该坚持一定的原则。例如,教师设计的案例教学目标应该明确,对学生的理解能力和学习能力进行充分的考虑,保证设计的案例具有创新性和实用性,引导学生在学习过程中的积极性和主动性等。
某高职软件技术专业院校,在应用Android项目化开发教学方法的时候,教师设计了一项案例,基于Android的文件管理器,联系教学内容和实用产品的开发,通过一体化教学,逐层的拆分Android文件管理器中的核心技能,随用随讲。教师按照软件设计和开发的流程,首先提出了实际的需求,让学生Android理解文件管理器是一项重要的人机交互组成部分,功能实现的质量对操作系统的用户体验具有直接的影响;然后按照不同的Android文件管理器的要求,对项目进行划分,实行分别讲解。这样,学生在学习的过程中,可以有效的整合技能点的分解和练习,提高自己的软件技术设计和开发能力。
0 引言
近年来,高等职业教育蓬勃发展,已经成为加速推进现代职业教育体系建设的中流砥柱,为服务国家经济转型升级培养了大批技术技能型人才。随着我国高等职业教育改革的不断深入,全面提高教育教学质量和人才素质将成为国家中长期教育改革和发展规划的重要任务之一。为了更好地完成这一任务,软件开发技术专业在课程建设与改革创新的基础上推出仿真式企业课堂与虚拟公司的实践教学模式。该模式将进一步增强软件技术专业的办学实力,明显提升专业教学水平,培养学生适应岗位群的专业基本技能和专业专项技能,扩大专业群学生就业面,提高就业率和就业质量。
1 高等职业院校软件技术专业教学改革现状与趋势
由于IT行业技术更新很快,高校教育的稳定性与软件产业的急速发展不能相适应,社会缺乏具备实际动手操作能力的软件人才。国内高职教育计算机类课程中普遍存在培养模式不符合技术人才培养规律、教材内容设计不合理、教学方法和教学组织形式单一、专业课程教学安排不合理等现象,以及没有从实际应用出发、教师队伍素质不能适应科学技术变革创新步伐、实训条件不足等问题。
高等职业院校软件技术专业培养的人才需要具备计算机软件相关的理论知识,熟练掌握程序设计语言,能够按照软件工程规范完成程序编写等任务,具有一定的软件需求分析和系统设计能力,能够从事软件开发、测试、维护及技术咨询等相关工作。软件技术专业的教学改革要对应职业岗位需求,探索和研究符合职业教育规律的课程开发、实施和评价方法,开发高质、有效的学习资源,建立科学的课程质量监控体系并对教育教学成果进行科学评价,才能推动高职课程改革与持续性发展,培养出能适应实际工作岗位的高技能人才[1]。
2 企业化课堂与项目式教学改革措施
软件技术专业课程体系的设计面向职业岗位,分析和界定高职软件专业的就业范围、就业岗位、技能要求和职业目标,根据“岗位能力课程”的基本过程,构建适应软件行业岗位需求和高职学生认知规律的高职软件专业人才培养模式。课程设置和教学内容要符合当前软件技术发展水平和职业岗位资格要求,实现由工作岗位转化为工作任务,并形成相应的学习领域和学习情境,制定课程标准,改进教学方法、实训内容和考核机制等。
为了让学生以主动的、实践的、技术之间有机联系的方式学习软件开发技术,通过构建企业化环境,以项目为导向,将学习与训练融为一体,学习内容与工作内容融为一体,以实现专业理论知识学习和企业实际开发的一体化。具体改革措施如下:
(1)研究和实施项目导向的“教学做一体化”教学模式。所有专业核心课程全面推行教学内容项目化、教学流程任务化的教学方式,教学过程以软件产品立项到部署的完整过程为载体,采用具有专业特色的教学模式PTLF,即项目导向(Project-oriented)、任务驱动(Task-driven)、层层递进(Layers of progressive)、四真环境(Four kinds of simulation environment)。在教学过程中实施项目导向的教学模式,由浅入深并围绕实际软件项目的开发组织教学,教师要起到引领导向的作用,以学生为中心,采用探究性学习、相互学习、协作学习等多种学习策略,让学生融入企业的真实环境和真实角色,在完成典型工作任务的同时,获得专业知识和技能,培养其岗位职业能力和素质[2]。
(2)建立“课内实训+虚拟公司+软件基地”三位一体的企业化课堂。采用“理论实践一体化”教学,以“虚拟公司”为纽带,学习性项目在“综合技能实训室”进行,综合学习性项目在“专业项目实训室”构建的虚拟软件公司完成。企业项目为引进的外接项目或进入企业完成的实习项目。按照软件公司的工作场景布局实训室来模拟企业工作环境,给学生设定企业岗位身份,依照企业员工制度进行管理。用项目答辩、产品的形式对项目产品进行验收,由项目答辩评审团评分;企业专家作为项目“合同”的甲方责任人,进行分阶段的项目评审。
(3)改革教学的考核与评价方式。课程教学的考核与评价采用多方面结合的形式,分为态度评价、过程评价和终结评价。教师为项目组组长,学生为项目组成员;学生组成开发小组,自任组长或组员;专家、教师、学生代表组成项目答辩评审团。评价采取项目实施过程考核与实践技能考核相结合的形式,内容包括实践技能考核、项目实施技能考核、岗位绩效考核,以实现对学生专业技能及岗位技能的综合素质评价。
(4)注重学生技能训练,将课程与职业资格认证相结合。软件技术专业还引入了职业资格技能鉴定和厂商认证来评价学生的职业能力,在课程教学中融入职业岗位所必备的知识、技术和能力,组织学生参加职业资格认证考核,获得的认证可作为学生的评价标准,也为学生将来就业提供了从业资格,从而提高学生的职业竞争力。
(5)开发具有实用性与系统性的教学资源。建设数字化软件专业教学资源库,开发精品资源共享课、微课程和项目案例,打造专业建设、课程建设、教学实施、自主学习、社会服务为一体的综合资源库,提供课程进行网络在线学习,利用开放性的教学资源平台打造虚拟教学环境,让学生在课余时间可以自主学习并进行网上交流。
3 软件基地及虚拟公司建设
在校内实训基地建立专项技能实训室、综合技能实训室、项目工程实训室、虚拟公司和虚拟项目部与实训平台;安排学生到企业实习,并与各软件企业联合办学,建立各种教学实践基地,提供“企业体验”、“岗位认知”、“技能训练” 和“顶岗实践”等各类实习实训。
建设专项技能实训室,主要承担个人单兵专项技能训练的实训任务,实训内容根据实训平台中的相关个人技能实训内容进行;建设综合技能实训室,主要承担个人单兵综合技能训练的实训任务,实训内容根据实训平台中的相关单兵项目实训内容进行;建设项目工程实训室,主要承担团队项目工程开发技能实训任务,实训内容根据实训平台中的综合性项目开发实训内容进行。学生在一个级别的实训室完成相应训练,获得对应技能后,进入下一级别实训室,进行下一模块的学习和训练。所有实训室提供网络化环境,综合技能实训室、项目工程实训室及虚拟项目部开发室提供团队协作工作环境。
由学院提供研发基地,学生组成创业团队,建立虚拟公司,采用现代经营管理模式,有效整合公司的业务、研发、测试、推广和服务全过程。按照企业管理要求,制定虚拟公司运行管理制度,进入虚拟公司的教师和学生按企业员工要求进行管理,以培养学生的规范化行为习惯。聘请企业人力资源主管进行人力资源相关课程教学,使学生了解企业价值观及评价标准,并以企业人力资源管理规范作为自我评价标准,配合学生进行角色转换,形成职业化行为习惯。同时在教学质量评价系统中引进企业人力资源管理规范,形成企业评价机制[3-4]。
4 结语
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)10-2331-01
社会经济的迅速发展和科学技术的不断进步,为我国的社会发展提供了良好的条件。信息化时代的到来,社会中对软件技术人才的需求量不断增加。高职软件技术专业教学过程中,为了实现对学生的全面培养,提高学生的软件技术开发和操作能力,应用Android项目化开发教学的方式,取得了良好的效果。
1 简述Android项目化开发教学
信息技术的广泛应用,致使社会中对软件技术人才严重缺乏,出现了很多的软件技术培训结构和高职软件技术专业院校。Android系统的广泛应用,为人们的生活提供了方便。很多的软件技术培训结构或者院校,都相继的开设了相应的Android系统开发课程。但是,因为软件技术培训机构和院校等具备不同的教学特点和教学要求,对Android系统的研究和开发课题也存在一定的差异,研究的成果和水平也不同。例如,某软件技术培训机构应用Android编程实现了对机器人的控制;利用一定的程度实现对链接库的调用,从而达到了控制设备的目的。但是,在软件技术专业的教学过程中,按照传统的章节模式进行教学,不同章节之间的连贯性相对比较弱,缺乏针对性,不能实现良好的教学效果。
高职软件技术专业的教学过程中,教师应该针对学生的思维方式和学习特征开展教学,提高学生的学习兴趣。针对高职软件技术人才的就业定位,在实际的教学过程中,教师应该采取有效的措施,形成软件技术专业的教学特色,在整个教学过程中应用项目教学和模块分解技能的模式实现教学。教师对软件技术人才的培养,可以具体定位与培养更加偏向软件应用的Android人才,全面的了解学生的思维方式和理解能力,选择更加适合学生就业的教学内容。在讲解Android编程中的不同概念的时候,教师可以应用具有价值的实例,对学生的编码规范和调试能力进行培养和强化,使学生在学习的过程中成为一个具有项目开发经验的人。
2 高职软件技术专业的教学现状
目前,为了培养出更多的软件技术人才,我国开设了很多的软件技术人才培训机构和高职院校。在高职软件技术专业教学的过程中,还存在一定的问题,需要应用Android项目化开发教学方式,提高教学质量和教学效果,促进高职软件技术专业教学的发展。该文以某高职软件技术专业的教学过程为例,分析目前高职软件技术专业的教学现状。
2.1 高职软件技术专业教学的培养目标
某高职软件技术专业的教学过程中,主要是以北大青鸟的ACCP课程体系作为主要的教学体系,教学中的主要培养目标就是:培养出高素质的技能型人才,不仅要掌握企业级的软件开发技术,具有一定的团队合作能力,还要熟练的掌握大型数据库应用系统的开发技术。高职软件技术专业的教学,对学生的就业定位是:网站工程师和网站总不同软件的程序开发员。为了实现良好的教学效果,高职软件技术专业学生的学习内容,主要是Java方向的主干课程。例如,高职学生的学习内容包括网页编程、Java语言、J2EE框架技术、SQL SERVER数据库编程和Java Web高级编程等。培养Android移动应用开发人才,需要高职软件技术院校在教学的过程中,以原有的教学体系作为基础,对学生进行深入的Android教学。学生Android方向的学习,主要的学习内容包括Android系统的环境搭建、图形编程、设备管理、Android平台的体系结构和原理和网络操作等。
2.2 高职学生的学习情况
高职软件技术专业的教学过程中,教师应该应用一体化的教学模式,采取有效的措施提高教学质量和教学水平,实现良好的教学效果。学生在经过一段时间的学习之后,大部分都可以适应基于工作过程的“实践导向”型的学习环境。软件技术的教学过程中,教师可以应用情景教学法,按照真实的企业情景实现对角色的设置。教师和学生在真实的软件开发工作环境中,承接项目,共同进行软件技术的开发和研制。这种教学方法,可以提高学生的就业适应能力,让学生真实的感受到自己的工作职责和工作内容。但是,一些学生还是缺乏良好的实践能力和编码规范能力。
3 Android项目化开发教学的应用
在高职软件技术专业的教学过程中,为了实现良好的教学效果,提高学生的软件技术开发和操作能力,教师应用Android项目开发花教学,具有重要的作用。高职软件技术专业教学中,开展Android项目开发化教学的最终目标是,教师通过对任务驱动模式教学项目的讲解,培养学生的Android智能系统软件开发设计思想,让学生熟练的掌握Android系统中不同技能的开发技巧和相关的开发技巧。学生在Android项目化开发教学的学习过程中,可以按照一定的软件开发流程,独立完成对Android系统软件的开发,最终可以参加企业级的大型Android系统软件设计和产品开发。教师在设计这种教学案例的时候,应该坚持一定的原则。例如,教师设计的案例教学目标应该明确,对学生的理解能力和学习能力进行充分的考虑,保证设计的案例具有创新性和实用性,引导学生在学习过程中的积极性和主动性等。
某高职软件技术专业院校,在应用Android项目化开发教学方法的时候,教师设计了一项案例,基于Android的文件管理器,联系教学内容和实用产品的开发,通过一体化教学,逐层的拆分Android文件管理器中的核心技能,随用随讲。教师按照软件设计和开发的流程,首先提出了实际的需求,让学生Android理解文件管理器是一项重要的人机交互组成部分,功能实现的质量对操作系统的用户体验具有直接的影响;然后按照不同的Android文件管理器的要求,对项目进行划分,实行分别讲解。这样,学生在学习的过程中,可以有效的整合技能点的分解和练习,提高自己的软件技术设计和开发能力。
4 总结
我国社会经济的迅速发展,对软件技术人才的需求量不断的增加。在高职软件技术专业的教学过程中,为了提高学生的软件技术设计和开发能力,实现良好的教学效果,应用Android项目化教学方法取得了良好的教学效果,促进了我国高职软件技术教学的发展。
参考文献:
[1] 周颖颖.高职软件技术专业Android项目化开发教学研究[J].科教导刊:上旬刊,2013(9).
中图分类号:F426 文献标识码:A 文章编号:1671-7597(2014)07-0166-02
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展。因此,怎样对软件项目进行有效的管理是急需研究的课题,国内外专家学者也展开了相关的研究。
张家浩[2]以现代软件工程为核心,系统分析了项目管理领域中软件项目存在的问题,提出在理想和现实之间选择平衡点的建议和方法。林锐[2]编写的《IT企业项目管理:问题、方法和工具》一书为IT企业提供了专业性很强、行之有效的项目管理方法和相应的工具,解决了大多数IT企业的软硬件开发项目管理混乱、质量低下、进度延误、费用超支等问题。哈罗德・科兹纳[4]在《项目管理:计划、进度和控制的系统方法》一书中讨论了时间管理、冲突管理等问题,分析了影响项目成功的因素。石慧[4]运用动态规划的思想和网络计划的方法,利用马尔可夫链模型进行软件项目进度预测,对软件开发项目中的计划和控制应用进行研究,构建了一个并行的IT项目进度马尔可夫链预测模型。
由于缺乏相关的法规政策,软件项目开发的进度很大程度上取决于程序员自身的专业技能和职业道德水平。由于没有一个标准划分,管理上有很多问题不容易解决。本文对影响软件开发进度的主要因素进行分析,阐明了进度管理的重要性,并对具体的项目开发进度管理方法进行了探讨。
1 影响软件开发项目进度的主要因素
软件项目在开发过程中,有很多影响其进度的因素,内因、外因、主观、客观因素均有,情况比较复杂。为顺利管理软件开发项目进度,首先要对其中主要影响进度的因素有所了解。
1.1 80-20原则,未按原计划执行进度
80-20原则用在经济学中是指百分之八十的价值是来自20%的因子,其余的20%的价值则来自80%的因子。在计算机软件开发领域,我们可以这么理解:80%的项目工作可以在20%的时间内完成,而剩余的20%的项目工作需要80%的时间。
一般来讲,这剩余的两成工作属于比较难的技术关键部分,通常出现在后期。由于软件开发过程的不确定性,在任何技术关键点上都可能遇到难题,这与开发人员本身的分析、设计、编程风格有关,难以预测。在实际过程中,完全无法预测在什么时候会遇到(甚至可能在最后一步)能导致全盘重建的问题,因此原计划进度一般会调整。
1.2 预算、质量要求等的变更及适应性调整不及时
除了对项目本身的工作量估算不合理之外,设计人员的理解也可能造成问题。如开发人员理解的情况与实际情况有偏差,在没有充分沟通并确认时开展项目,过程中又会变更,在验收阶段可能才发现“审题错误”,造成资源浪费,同时与之相关横向、纵向项目的进度也会受影响,易产生“软件危机”。此外,其他问题如设备、人力不符合要求或调整,都会影响实际进度。
1.3 前期可行性分析不充分
由于项目参与人员的经验或素质原因,在项目开始前的准备不足,对项目状态信息收集的不足,没能好好把握项目的内容,容易造成对项目的了解不符合实际情况,加上高估自身工作能力,这就会对进度造成影响。如果没有充分的理解和准备,项目整体就会受到很大的影响,对项目本身的低估其实是对自身的一种高估,这样会使得预期的进度在实际进展过程中不仅很难实现,而且容易对工作人员的士气形成打击。
1.4 其他因素
假设、约束、风险等条件考虑“不周”造成项目进度计划中未考虑一些不可预见的事件发生。例如软件开发项目还会因为项目资源特别是人力资源缺失(如人员生病、离职、开发人员临时有其他救急任务)等原因,对项目进度控制造成影响致命影响。即项目及时完成是基于环境不变、任务不变、资源不变动等假设。软件开发主要是靠程序员来进行,软件体现出程序员的不同风格,因此程序员本身的主观性也会造成影响。在进度安排的时候应当适当配置应急预案,预留空余。
2 软件开发项目进度管理的目的
加强软件开发项目进度管理是软件开发行业发展的必要手段,也是必经之路。项目进度控制和监督的目的是:增强项目进度的透明度,及时发现项目中存在的问题并改正,对项目进展加以督促等,保证项目按时完成。
合理的管理手段可以加强项目的监督控制,对项目进度完成情况有一个大致的了解和评估,一旦出现问题可以及时沟通交流;遇到有落后进度情况及时督促,对有理解偏差的情况及时发现、及时纠正等。
软件开发时实施进度控制是项目管理的关键。一般一个部门同时会接多个项目,并行处理过程易造成混乱。通常,一个项目会由多部门的课题组共同负责,分项目之间横向并列或纵向承启,分部越多就越容易受影响。因此各分项目的准时能确保项目实施进度,对项目进度的合理管理可以起到协调作用。进度控制是项目管理过程中一项最重要的监控内容,负责对项目周期的整体把握与控制。通过软件开发项目进度管理方法,对各个分项目的进度进行控制,保证每个分项目各自按照项目计划书中的预期进度安排完成各自的内容,对于其中出现的问题及时予以纠正,从而保证项目整体的顺利完成。
3 软件开发项目进度管理方法
3.1 对项目本身充分了解
在制定项目计划书之前,首先应当对充分了解项目本身。项目进度控制的前提是有效地计划和充分掌握第一手信息,通过实际值与计划值进行比较,检查、分析、评价项目进度。对项目的充分了解是制定一个可行性分析报告的必要条件。除了了解项目相关技术内容、发展情况外,还应包括主要设备(工具软件)、项目参与者的情况,以合理分工、科学管理。
3.2 项目计划书与定期的进度报告
为了按期完成软件交付任务,目前软件开发单位陆续采取了很多控制进度的管理手段,其中最为广泛实用的就是项目计划书和定期的进度报告的提交。项目计划书和进度报告都是参考传统的工程项目管理方案,同时结合软件开发本身的特点进行的改进。作为项目进度控制的基准,项目计划书是项目的阶段成果完成情况的一个预期与管理依据。根据计划书中的时间安排,在项目的每个阶段点,项目负责人需要向相关管理人员(部门)书面提交阶段工作汇报与计划。在进度报告中,要有完成情况、存在问题、下一步安排等,实际上就是项目执行人员的对总结、分析、开发反思。
3.3 进度协调会
在软件开发项目中,一个项目通常由不同的项目团队合作完成,企业有专门的合同管理部门负责项目的分、转包、合同期与进度计划的协调。项目经理应该及时掌握这些情况,按计划进行计划进度与实际进度的动态比较,定期向客户提供可靠反馈。这通常是通过进度协调会来完成的,参与项目的每个团队负责人通过协调会了解相关方的进度、探讨问题,根据对方完成情况动态调整自己的进度。
3.4 阶段性审查与应急措施
软件开发项目进度管理过程需要从项目从准备到开始到进行到完成的各个不同阶段都采取不同的方法进行控制管理,全面把握项目进程。在准备阶段需要提供项目信息,同时确定项目研究进度;编制阶段计划和项目总进度计划;控制该计划的执行;而需求分析和设计阶段控制的任务是编制与用户的沟通计划、需求分析工作进度计划、设计工作进度计划,控制相关计划的执行等。最后,实施阶段进要求编制实施总进度计划并控制其执行;编制实施计划并控制其执行等。
在项目设计书中应当有关于应急预案的内容,这是我国现在工程管理、软件开发管理都比较容易忽略的一个内容,其本质是对项目过程中可能出现的干扰和影响的一个预测,对项目整体的合理把握。针对可能的问题,提出一定的解决方案,而在实际过程中,一旦出现问题,具体应当结合实际情况确定,避免产生相反的效果。
4 结束语
软件项目的开发与传统的工程项目具有很大的区别,软件本身具有无具体形态、缺乏标准等特点,开发过程不确定性大,主观因素影响对软件质量影响较大,因此进行项目进度管理探讨十分必要。本文通过总结进度管理上可能存在的问题,提出了可以采取的管理手段,希望能对实际工作有参考价值。
参考文献
[1]张家浩.软件项目管理―华鼎项目管理书库[M].北京:机械工业出版社,2009
[2]林锐,唐勇,黄曙江.IT企业项目管理:问题、方法和工具[M].北京:电子工业出版社,2005.
[3]Harold Kerzner.项目管理―计划、进度和控制的系统方法[M].杨爱华等译.第7版,北京:电子工业出版社,2012.
1软件项目管理的组织模式
1.1项目管理委员会。项目管理委员会是公司项目管理的最高决策机构,—般由公司总经理、副总经理组成。主要职责如下:(1)照项目管理相关制度管理项目;(2)监督项目管理相关制度的执行;(3)对项目立项、项目撤消进行决策;(4)任命项目管理小组组长、项目评审蚕员会主任、项目组组长。
1.2项目管理小组。项目管理小组对项目管理委员会负责,—般由公司管理人员组成。主要职责如下:(1)草拟项目管理的各项制度;(2)组织项目阶段评审;(3)保存项目过程中的相关文件和数据:(4)为优化项目管理提出建议。
1.3项目评审小组。项目评审小组对项目管理委员会负责,可下设开发评审小组和产品评审小组,—般由公司技术专家和市场专家组成。主要职责如下:(1)对项目可行性报告进行评审;(2)对市场计划和阶段报告进行评审;(3)对开发计划和阶段报告进行评审;(4)项目结束时,对项目总结报告进行评审。
1.4软件产品项目组。主要职责是:根据项目管理委员会的安排具体负责项目的软件开发和市场调研及销售工作。
2软件项目管理的内容
在二十世纪八十年代初,著名软件工程专家B.W.Boehm总结出了软件开发时需遵循的七条基本原则,同洋,我们盔件项目管理时,也应该遵循这七条原则。它们是:(1)用分阶段的生命周期计划严格管理;(2)坚持进行阶段评审;(3)实行严格的产品控制;(4)采用现代程序设计技术;(5)结果应能够清楚地审查;(6)开发小组的人员应该少而精;(7)承认不断改进软件工程实践的必要性。
3编写《软件项目计划书》
《软件项目计划书》一般应该包括下述内容
(1)引言。A计划的目的;页目的范围和目标:范围描述;主要功能;性能;管理和技术约束。(2)项目估算。使用的历史数据;b使用的评估技术;c工作量、成本、时间估算。(3)风险管理战略。风险识别;d风险的时论;e冈险管理计划:风险计划风险监视;风险管理。(4)日程。a项目工作分解结构;b时限图(甘特图);c琶源表。(5)项目资源。a人员;b硬件和软件;c特别资源。(6)人员组织。a组织结构;b管理报告。(7)跟踪和控制机制。a质量保证和控制;b变化管理和控制。(8)附录。
4软件配置管理
软件配置管理应提供的功能:在IS090003中了如下描述:
唯一地标识每个软件项的版本;标识共同构成一完整产品的特定版本的每一软件项的版本;控制由两个或多个独立工作的人员同时对一给定软件项的更新;控制由两个或多个独立工作的人员同时对一给定软件项的更新:按要求在—个或多个位置对复杂产品的更新进行协调;标识并跟踪所有的措施和更改;这些措施和更改是在从开始直到放行期问,由于更改请求或问题引起的。
5软件质量管理
5.1软件质量保泾计划。在进行软件开发前。需要有—个《软件质量保证计划》。一般包括以内容:(1)计划目的;(2)参考文献;(3)管理。a组织任务;b责任。(4)文档。a目的;b要求的软件工文档;d也文档;(5)标准和约定。a目的;b约定(6)评审和审计。a目的;b评审要求。软件需求自噼审;设计评审;软件验证和确认评审;功能评审;理评审;内部过程评审;管理评审。(7)测试。(8)题报告和改正活动。(9)工具、技术和方法。(10)媒体控制。(11)供应者控制。(12)记录、收集、维护和保密。(13)培训。(14)风险管理。
5.2质量管理的基本原则。控制所有过程的质量;过程控制的出发点是预防不合格;质量管理中心任务是建立并实施文件化的质量体系;持续的质量改进;有效的质量体系应满足顾客和组织内部双方的需要和利益;定期评价质量体系;搞好质量管理关键在于领导。
5.3软件评审。软件评审并不是在软件开发毕后进行评审,而是在软件开发的各个阶段都进行评审。因为在软件开发的各个阶段都可能生错误,如果这些错误不及时发现并纠正,会不地扩大。最后可能导致开发的失败。软件评审是相当重要的工作,也是目前国开发最不重视的工作。
5.4测试。测试—般包括单元测试省测试集成系统测试。如果测试结果与预期结果不—致,则很可能是发现了系统中的错误,测试过程中将产生下述基本文档:(1)测试计划:确定测试范围、方法和需要的资源等。(2)测试过程:详细描述和每个测试方案有关的测试步骤和数据(包括测试数据及预期的结果)。(3)测试结果:把每次测试行的结果归人文档,如果运行出错,则应产生问题报告,并且必须经过调试解决所发现的问题。
6软件风险管理
6.1风险的分类。根据风险内容,我们可以将风脸分为项目风险(成本提高,时间延长等)、技术风险(技术不成熟等)、商业风险(销售问题等)、战略风险(公司的经营战略发生了变化)、管理风险(公司管理人员是否成熟等)、预算风险(预算是否准确等)等。另外,我们还可以将风险分为已知风险(如员工离职等)、可预报风险(从以往经验得出可能有风险的)和不可预知风险。
6.2风脸的识别。风险项目检查表。主要涉及以下几方面检查:(1)产品规模风脸检查;(2)业务影响风险检查;(3)与客户相关的风险检查;(4)过程风险检查;(5)技术风险检查;(6)开发环境风险检查;(7)与人员的模式和经验有关的风险检查。
中图分类号:TP311.5
目前,南京市软件产业取得了令人瞩目的成绩,中小型软件企业的数量也在与日俱增,相当多的中小型软件企业希望以CMM2作为切入点,着力改进软件项目管理过程,提升企业的市场竞争力。作为培养“软件蓝领”的高职院校,就要顺应这一趋势,采用信息化的手段让学生学习并了解CMM2模型。所以,一个基于CMM2模型的、并加以改进的“软件实训项目管理系统”应运而生。
1 软件能力成熟度模型2级(CMM2)详解
所谓CMM2(可重复级),就是在CMM2级企业中,已经建立了基本的软件项目级管理过程,可对项目的成本、进度进行跟踪和控制,软件开发和维护的过程相对稳定,已有的管理类似项目的成功经验可以被复用管理新项目,尽管新项目所实施的具体过程有可能不同。CMM2的核心就是重复利用。
CMM2包括六个关键过程域(KPA),囊括了需求管理、项目管理、质量管理、配置管理和子合同管理五个方面,其中项目管理又分为计划过程和跟踪与监控过程。
1.1 需求管理
需求管理的最终目的是在客户与实现客户需求的项目之间达成共识,需求管理活动就是为了建立并维护这种共识,这是软件项目计划和管理的基础。在软件项目的整个生命周期,都应该记载、跟踪和验证由于需求的变化而引起其它文档所作的修改。
1.2 软件项目计划
建立合理的开发计划的基础是对项目规模、资源要求和风险等要有一个合理的估算。软件项目计划的目的是为完成软件工程和管理软件项目制定合理的计划,包含估计待完成的工作,建立必要的约定和确定进行该工作的计划。
1.3 软件项目跟踪及监督
软件项目跟踪和监督的目的是建立对实际进展的适当的可视性,使管理者能在软件项目性能明显偏离软件计划时采取有效措施。它包括对照已文档化的估计、约定、和计划评审和跟踪软件完成情况和结果,以保证当项目执行偏离项目计划时管理上能采取有效的解决措施。
1.4 软件质量保证
软件质量保证的目的是向管理者提供适当的对软件项目正使用的过程和正构造产品的可视性。它包括评审和审计软件产品和活动以验证它们符合适用的规程和标准,给项目和其它有关的经理提供这些评审和审计的结果。
1.5 软件配置管理
软件配置管理的目的是建立和维护在项目的整个软件生存周期中软件项目产品的完整性。它包括标识在给定时间点上软件的配置,系统地控制对配置的更改、并维护在整个软件生存周期中配置的完整性和可跟踪性。
1.6 软件子合同管理
软件子合同管理的目的是选择合格的软件子承包商并有效地管理他们。它包括选择软件子承包商、建立和子承包商的约定,及跟踪和评审子承包商的性能和结果。
2 软件实训项目管理与CMM2模型改进
2.1 软件实训项目管理
(1)软件实训项目管理概述。软件实训项目是参考中小型软件企业真实项目案例,同时又适合高职学生作为训练相应技能而改进的软件项目,它不是一个具有商业性质的软件产品。目前,正规的软件企业如果重视软件项目实施过程的管理,一定会采取各种方法对软件项目进行管控,软件项目管理系统就是一个常见的措施,采用该系统可以对软件项目的各个实施阶段进行有效的、实时的、科学的管控。所以,把针对软件实训项目管理的系统叫做软件实训项目管理系统。
(2)软件实训项目管理系统的基本功能需求。软件实训项目管理系统是体现软件实训项目管理过程的一个信息化软件平台,针对学院对项目管理基本的功能需求调查发现,整个系统包括了班级管理、案例资料管理、项目管理、历史数据管理、实训成绩管理、课程管理六大部分。其中最重要的功能就是项目管理,它重点体现了软件成熟度模型的思想,有效的规范和保证了项目实施的全过程,包括项目启动、计划、执行、质量保证、结束。
2.2 CMM2级模型改进与实施方案
(1)CMM2级模型改进。CMM2模型中的内容非常广泛,标准十分完备,如果完全照搬CMM2运用到该系统中是不合适的。因此,必须对CMM2中管理的内容和标准进行一定的优化和裁减,提出一个适合软件实训项目组规模的CMM软件项目管理模型,并给出在模型的各个阶段实际要完成的任务和需要注意的问题。
根据CMM2六个关键过程域(KPA)的解释和软件项目管理的过程,这里我们可以初步提出一个基于CMM2的软件实训项目管理模型。该模型如图1所示:
图1中软件实训项目管理模型的划分结合了软件项目的生命周期,主要分为:项目启动、项目计划、项目实施与控制、项目技术。各个阶段分别包含CMM2的关键过程域,其中软件质量保证和软件配置管理2个KPA贯穿于整个项目开发过程始终。图中只提到了CMM2的5个KPA,还有一个软件子合同管理KPA,考虑到根据软件实训项目的规模和实际情况,一般不会出现把项目转包出现的情况,在此进行了裁减。
(2)组织管理结构改进。对CMM2的模型改进后,接下来就要对CMM2所要求的组织管理结构进行适当的裁减。因为CMM中任务分工细,涉及到的角色关系多,这对于软件实训项目组这样的小型软件开发组织来说是难以实现的。经过裁减后,组织管理结构中各个角色的工作职责描述如下:1)高级经理:一名,负责所开展的所有软件实训项目。2)项目经理:一个项目一名,负责整个项目的实施。3)软件工程师:根据软件项目的规模确定人数,负责软件的设计与开发。4)软件配置管理员:可安排由项目组中任意成员担任,可以是项目经理,可以是软件工程师,也可以由其他人员兼任,负责软件产品的配置整合工作。5)软件质量保证员:如果人员条件允许,此人员最好单独设立,如若条件所限,可由项目经理或软件测试人员兼任,负责项目在各个阶段的评审。6)软件测试员:可由软件工程师同时担任,在开展测试工作时,必须交叉测试。
3 实施方案
3.1 项目启动
项目启动是软件项目管理的初始阶段,它对项目有序、正常的开展起着非常关键的作用。项目启动包括有项目可行性分析,需求调研、编写需求文档和可行性分析报告。该阶段主要包含CMM2的软件项目计划KPA。
在此阶段需要重点处理的工作有:(1)可行性分析。可行性分析是为了分析在一定时间范围内软件项目是否能够按要求完成以及完成的价值如何。一般从技术可行性、经济可行性、社会可行性三个大方面来考虑,从而形成软件项目可行性分析报告。技术可行性即项目开发的技术储备,开发的风险等方面是否支持项目的开发;经济可行性即确定该项目在经济上是否值得开发;社会可行性即判断待开发的项目是否有侵犯、妨碍等责任问题。(2)需求分析。需求分析是经过需求分析后的产出物。需求分析的任务就是确定系统具备哪些功能,即回答待开发项目做什么的问题。需求分析的过程是和客户打交道最多也是最重要的环节,它直接决定了后续项目开发的成功与否,必须通过多次的需求调研、分析才能形成需求规格说明书。
3.2 项目计划
项目计划的提出是为了给软件项目实施的各个阶段提供一个合理的、可行的、可参考的工作计划,使项目参与人员能够有条不紊的按照计划开展工作。该阶段主要包含CMM2的需求管理KPA和软件项目计划KPA。
在此阶段需要重点处理的工作有软件项目计划:软件项目计划必须按照需求调研的结果来制定,要根据不同的项目要求明确软件项目开发模型,可以利用的项目资源,项目经理还要根据项目需求文档从软件规模、人力、成本、进度等方面进行项目估算和风险评估,根据项目组成员的技术特点和能力进行工作分解和职责分配,从而形成软件项目计划书。项目计划书一旦制定,项目实施的过程就要严格的以它为基准跟踪和控制。
3.3 项目实施与控制
虽然软件项目已经有了明确的需求分析和好的项目计划,但由于计划本身具有假设性和预测性,尽管也充分考虑了可能的风险因素,但是计划毕竟只能是对现实所作的预测和粗略的描述。因此在实施计划时,偏差不可避免。当软件项目的执行与项目计划出现明显偏差时,项目管理人员必须采取有效的措施。该阶段包含CMM2软件项目跟踪和监控KPA和需求管理KPA。
在此阶段需要重点处理的工作有:(1)需求变更控制:由于需求不能在项目启动时就能完整的定义好,并且随着项目的实施,遇到客户临时更改需求的情况也是不可避免的,项目经理要组织项目组讨论变更带来的影响,从而决定是否进行需求文档和项目计划的修改。(2)版本控制:由于软件项目通常是团队合作方式进行,所以不管是需求的变更,还是实施过程中其他文件的更新,都必须及时通知到每一个项目组成员。(3)需求状态:需求状态是标识需求的一个重要属性。每当处理一个需求功能点时,都必须及时的把对该需求的处理方式记录下来,通常的需求状态有:已批准、已拒绝、已删除等等。(4)项目跟踪和监控:项目组必须指定专人在规定的时间记录项目定的跟踪项的进展状态,以提供计划与实际偏差的第一手数据,从而采取必要的措施及时处理偏差。
3.4 项目结束
项目结束阶段主要是针对项目本身进行的项目评审验收、归档总结等工作。此阶段包含CMM2软件质量保证和软件配置管理KPA。
在此阶段需要重点处理的工作有:(1)用户验收和项目评审。项目评审应该贯穿于整个项目实施的始终,可以根据项目规模的大小来决定评审的形式,是走查还是正是评审,可以邀请同行和客户来对软件项目进行审查。在项目结束阶段的评审主要是对项目整体功能是否符合需求,项目过程是否符合项目计划等方面来展开。(2)归档总结。项目结束后,要把项目涉及到的项目资料包括软件的需求文档、开发设计文档、产品文档、管理文档等资料汇总收集到相关资料库中,同时还要认真的总结项目实施过程,供今后维护和开发参考使用。
参考文献:
[1]韩万江,姜立新.软件项目管理案例教程[M].机械工业出版社,2006.
[2]Mark C.Paulk,Charles V.Weber,Suzanne M.Garcia,Mary Beth Chrissis,Marilyn Bush.Key Practices of the Capability Maturity ModelSM,Version 1.1.1993.
[3]邓子云.论CMM2的过程改进[J].安徽电子信息职业技术学院学报,2004,3(5).
一、问题提出
随着教育改革的不断发展,基于项目的学习在国内的教学中越来越受到重视。国内外的相关研究证明基于项目的学习是培养和提高大学生创新能力和综合素质的有效途径之一。
《多媒体技术与应用》是传播学专业的一门实践必修课,课程注重学生的技术应用能力、问题解决能力和创新能力的培养。笔者在以前的实验教学中发现主要存在以下问题,
(1)对媒体软件技术的整体运用能力较差。在制作作品的时候缺乏整体策划,急于下手,导致作品进行到一定程度的时候无法继续进行。
(2)运用媒体技术解决实际问题的能力较差。比如试题“借助Flash软件运用遮罩动画为给定的瀑布图片制作瀑布流水效果”,只有大约三分之一的学生能够完成,但是遮罩动画的制作方法大部分同学都能熟练制作。
(3)创新能力有待提高。比如“运用Photoshop软件设计一幅‘戒烟,宣传海报”,发觉在作品的设计与制作方面存在较多的拘束,缺乏新颖创意。
基于上述相关问题的考虑,结合项目学习的特点,笔者在新学期尝试将项目学习运用于《多媒体技术与应用》课程教学中,意在改善传统实验教学中存在的相关问题。
二、项目学习实施
教育领域中的“项目”,指的是一种学生围绕所选主题进行的一系列调查、观察、研究、表达新学知识、展示和分享学习成果等的学习活动。在《多媒体技术与应用》课程中开展项目学习主要从刨设情境、选定项目、作品设计与制作、成果交流和活动评价五个步骤开展。
1.情景创设
教师针对《多媒体技术与应用》课程中涉及到的不同软件,分别从生活选择恰当的案例如海报、Flash广告等作为示范项目,依照示范项目进行讲解,使学生了解相关软件与技术的功能。熟悉项目的各个模块。通过对师范项目的介绍与学习,使得学生了解整个课程的学习内容都是围绕一个主题进行的。逐步将项目思想融入到学生的学习中,让学生用项目的思维去发现和解决问题,从而避免学生的知识技能学习与实际生活脱轨的现象。
2.项目选定
在《多媒体技术与应用》课程中,项目学习以项目小组的形式进行开展。通过前期对学生进行学习者特征分析,采用分组异质的形式来形成项目小组。传播学专业两个班共72人,每组6人,形成12个项目小组。项目的选定是项目能否成功的关键。针对项目的选取过程中小组成员存在选题困难的情况,笔者在项目选取阶段,让项目小组成员采用头脑风暴会议。通过头脑风暴会议让学生摆脱制式、思维的局限,使得学生可以更加自由的思考,从而产生很多新的想法、创意。各个项目小组通过头脑风暴会议都提出了十几个项目主题。
在头脑风暴阶段各个项目小组提出的项目主题比较多。项目小组需要从中选择1~2个项目来完成。针对如此多的项目主题,笔者首先要求项目小组成员通过投票的方式,选定5个小组成员认为最有价值的可行性项目。在小组确定好5个项目以后,采用六顶思考帽来评议每个项目主题的科学性、可行性、创新性与价值性。六顶思考帽是指使用六种不同颜色的帽子代表六种不同的思维模式。项目小组中6位成员,通过戴不同的帽子,来进行各自的思维模式。一个项目的六顶思考帽方如下:陈述问题(白帽);提出解决问题的方案(绿帽);评估该方案的优点(黄帽);列举该方案的缺点(黑帽);对该方案进行直觉判断(红帽);总结陈述,做出决策(蓝帽)。借助六顶思考帽,项目小组通过对5个项目进行评议,最终确定小组的项目主题。
3.设计与开发
项目小组在确定项目主题之后,对项目作品进行规划,以便完成项目计划书a项目规划的主要工作是规划出必要的工作任务,高质量地完成项且作品。通过完成项目计划书可以使得小组成员从整体上把握熟悉项目。了解项目的流程以及项目中各部分工作的优先级问题,从而避免项目的在制作过程中返工或者由于部分项目工作没有完成而导致项目后期工作无法进行等问题。通过项目规划可以使得项目组成员明确何时以及如何学习完成项目所必须的知识和技能?项目计划书的主要内容为:项目目标,项目背景,项目条件(支持性条件和限制性条件),项目团队及分工,项目工作分解,项目里程碑。
基于项目的学习是以课程为核心的学习,应该将新知识新技能融入到学生的项目中,通过完成项目掌握课程知识。因此学生在完成项目过程中要实时填写“项目所需知识与技能问题曰志”,在日志中填写所需要的课程知识与技能,并且标注该知识或技能是否在项目中学习获得?
项目小组在完成项目设计之后,依据项目计划书逐步完成项目作品。项目小组成员依据分工填写项目进度表。依据项目里程碑及时调整项目进度情况,以便顺利完成项目作品。项目小组如在项目开发过程中遇到问题,首先项目小组成员探讨看能否解决,无法解决的求助于项目指导教师。
4.成果评价
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量风险等进行分析和管理的活动。软件项日管理最早出现于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重视项目经验总结