软件项目工作经验总结

时间:2023-11-03 16:35:08 飞宇 总结 我要投稿
  • 相关推荐

软件项目工作经验总结(通用12篇)

  总结是对取得的成绩、存在的问题及得到的经验和教训等方面情况进行评价与描述的一种书面材料,它可以提升我们发现问题的能力,让我们一起认真地写一份总结吧。你想知道总结怎么写吗?以下是小编帮大家整理的软件项目工作经验总结,仅供参考,希望能够帮助到大家。

软件项目工作经验总结(通用12篇)

  软件项目工作经验总结 1

  关键词:企业;信息系统;软件外包;关键因素

  1、引言

  随着现代信息技术的发展与应用,国内各行业的信息化建设全面展开。信息化建设离不开各种信息系统的支持,如办公自动化系统、管理信息系统、电子商务系统、决策支持系统等。企业在开发信息系统时,有些需要外包给软件开发商来完成,企业只有把握好外包中的几项关键因素,才能成功实施软件系统的外包。

  2、企业信息系统软件外包成功实施的关键因素

  烟草行业卷烟生产经营决策管理系统(即“一号工程”)是20xx年国家烟草专卖局根据行业宏观调控和科学决策信息化建设发展的需要建设的信息化系统。系统建立了行业数据交换体系,通过打扫码、数据库联机方式自动采集行业生产经营基础数据,构建行业业务指标体系和数据分析模型,建立国家局数据中心,实现国家局分析展现应用的界面集成和业务集成。“一号工程”是烟草行业软件外包的一个典型的成功案例[1]。

  (1)选择技术实力强、口碑好的软件外包企业

  企业在选择软件外包商时,可采取公开招投标方式,对投标单位从技术能力、人员能力及软件过程能力进行综合评估,选择员工作风好、保密观念强、政治觉悟高的企业作为接包方,确保系统数据安全,并与接包方签订《保密责任协议书》,建立安全保密分级管理制度。

  如“一号工程”于20xx年通过公开招投标,确定由中国计算机软件与技术服务总公司(即中软总公司)作为项目总集成商,中软总公司委托其下属的中软国际承接项目建设工作。中软总公司是国家规划布局内重点软件企业,实力雄厚;中软国际是国内领先的应用软件和解决方案供应商,在国内IT行业享有较高的声誉。

  (2)充分调研与沟通,作好项目需求分析工作

  企业在软件外包时必须做好项目需求分析工作。业务部门提出用户需求后,通过与技术部门、软件开发人员多次交流沟通,提出系统的综合要求及标准。开发人员通过分析系统需求,了解用户工作流程并对其进行正确分类,确定系统的可接受性、可实施性、可测试性;在形成需求报告之前,对后期发现的不明确、不一致的地方要进行修改或补充;最后项目经理应邀请客户代表共同评审需求文档的正确性、完整性和清晰性,使需求文档正确无误地反映用户需求。

  (3)明确各部门职责,选派专人参与开发过程,保证项目进度及安全

  企业应明确参与部门(如归口管理部门、牵头部门、协作部门等)的具体职责,避免在软件开发出现问题时由于没有建立合理的分工、反馈和跟踪制度出现多方推诿现象;企业还应选派技术人员全程参与开发过程并建立项目进展情况表。企业参与软件开发,不仅可以培养自己的技术力量,还可以及时协调、解决出现的'问题,为项目进度提供保障,还能对项目涉及的保密数据进行脱密处理,进而保证项目安全。

  例如,“一号工程”在建设过程中成立了项目领导小组,国家局局长姜成康亲自主抓,副局长李克明任组长,信息中心主任高锦任副组长,各单位负责人是领导小组成员。成立了项目实施办公室,做到了分工明确,各司其责。从公开招投标到各阶段的项目建设,每个方案都经过了专家会议的若干次讨论,每一阶段国家局都召开了专门的会议进行部署。李克明副局长亲自参与布置各个阶段的工作,协调各方关系,为项目建设提供了保障。

  (4)做好软件测试工作,进一步提高软件产品质量

  从技术角度看,各种信息系统开发的最终目的就是得到高质量的软件产品。企业为保证软件产品质量和可靠性,必须做好软件测试工作。通过制定软件测试计划,做好测试准备工作;组建测试团队,包括测试项目负责人、测试分析员、测试设计员、测试程序员、测试员、测试系统管理员、配置管理员;选择合适的测试方法,静态测试或者动态测试,白盒测试或者黑盒测试,重点要进行可靠性及安全性测试;选择测试工具,如Parasoft、Compuware、Xunit等白盒测试工具,LoadRunner、WinRunner、Astra Quicktest等黑盒测试工具;重点做好测试中Bug和需求变更的跟踪和管理,做好Bug分类、缺陷记录、版本控制等工作。

  (5)严格做好软件验收工作

  软件项目的验收非常重要。企业在接到验收申请后,要认真审查软件系统的运行、文档资料、培训工作等现状,对于符合验收条件的项目,要严格按照验收标准和流程来验收。验收的主要依据是软件需求规格说明书 。验收程序分技术测试和文档检查。技术测试由专家组负责。文档检查主要检查招投标书、合同、用户使用报告、信息安全测评报告、系统使用手册等。验收测试范围包括功能项测试、业务流程测试、容错测试、安全性测试、性能测试、易用性测试、适应性测试、文档测试等。

  如“一号工程”作为耗时两年半精心打造的信息化项目,验收时非常严格规范。验收委员会由中国工程院院士孙家广、沈昌祥等13名专家组成。中软国际的验收资料齐全完备,在《项目验收总结报告》中详细描述其建设过程,涵盖了从方案论证、软件开发到项目实施与服务、合同完成情况等方面的工作。中烟信息技术公司随即构建了运行维护体系,设立了客户服务、技术支持等部门,在完成日常维护的同时,以电话支持和现场服务等方式为行业基层提供服务或解决操作上出现的问题。

  (6)做好商业秘密、核心技术等知识产权保护工作

  企业在软件外包开发中,要做好知识产权保护工作。首先,要和接包方签订严格的保密协议,要求他们指定专人负责对核心技术的使用控制;其次,企业要通过技术分析及数据过滤提供尽可能少的核心机密;第三,尽量在发包方本地进行后期的数据装入,以减少商业秘密泄漏的可能。

  对于产生的其他知识产权,根据我国《计算机软件保护条例》的规定:“接受他人委托开发的软件,其着作权的归属由委托人与受托人签订书面合同约定;无书面合同或者合同未作明确约定的,其着作权由受托人享有。”对此,企业要与接包方签订书面合同,明确以下3点归属问题:(1)软件作为一个整体的知识产权归属;(2)软件中的代码归属及重用性约束等具体规定;(3)因知识产权归属的法律适用及发生侵权纠纷的具体解决方式,包括责任的承担、损失的追偿等。

  3、结语

  软件外包对于企业来说,可以提高开发效率、降低成本。充分做好以上几项工作,才能减少外包风险,保证软件产品质量,为企业带来更好的经济和社会效益。同时,企业还要针对软件项目特点,运用适合自身的项目管理模式来加强软件外包项目管理,尤其要规范项目实施过程,才能迅速适应业务需求的变化,提高软件系统的运行效率,提升企业的核心竞争力。

  软件项目工作经验总结 2

  软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量风险等进行分析和管理的活动。软件项日管理最早出现于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、制定相符的项目计划

  制定计划的精髓不在于写出一份好看的文档,而在于运用您的智慧去应对各种问题和面临风险并尽可能做出前瞻性的思考。计划是用来指导工作的,制定项目计划必须把握项目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人员更好地工作提供一个极好的资源和依据。

  软件项目工作经验总结 3

  1.1教学理念落后

  受到传统教育思想的影响,我国高校工程教学长期以来以教师为教学环节中的主体,教师在教学过程中强调知识传授,忽略了对学生实践动手能力、创新能力、团队合作精神和相关人文素质的培养。传统的“面向对象软件工程”课程的教学也存在着上述问题。

  1.2传统项目驱动教学方法在实施中的不足

  项目驱动教学方法是在具体项目引导下以学生为主体来实施相关教学内容的一种教学模式。当前国内很多高校在开展项目驱动教学时,往往会变成走形式主义,具体表现在:

  ①教师对于学生的工程意识培养不够重视,对项目的选择或者设计比较主观(具体表现在所选择的项目很难或很易),这要么会引起学生有畏惧情绪而产生厌学,要么会使学生很容易地实现该项目(这种情况是因为学生可通过网络轻易完成项目),从而使得该课程项目失去原本意义;

  ②在实施过程中,由于组织不当,会使得学生团队人数过多,搭配不合理,这样使得有些团队因配置了能力很强的学生而使得该项目能够顺利完成,同时另一些团队由于聚集了能力偏弱且自觉性较差的学生而使得该项目最终流于形式,这反而会导致项目驱动教学未能达到应有的教学目标。传统的“面向对象软件工程”课程项目的实施过程中也存在着上述问题。

  1.3CDIO工程教育模式在“面向对象软件

  工程”课程改革中起到的作用针对上述问题,CDIO工程教育模式摒弃了以教师、教材和课堂为中心的“旧三中心论”,弘扬了以学生、学习和学习效果为中心的“新三中心论”,更强调通过工程实践环节引导学生掌握新知识和动手与创新能力,从而树立起以产品为导向的工程价值观,将IT企业工程师应该具备的核心素质作为整个教育活动的主线。在实施CDIO教学过程中,将更强调学生在教师的引导下进行主动学习和积极认知过程,以构建起与学生已有认知结构相联系的知识体系。

  2基于CDIO工程教育模式的教学方法

  基于CDIO工程教育模式的项目驱动“面向对象软件工程”课程教学方法(下简称CDIO教学法),以培养学生的基本工程能力和工程综合素质为目标,将“面向对象软件工程”知识体系中的相关知识点渗透到实践的各个环节中,而这些环节和软件工程生命周期完全一致,在各个环节中解决问题的方法则可以采用CDIO的构思、设计、实现和运行理念。我们参照CDIO能力大纲,提出通过“面向对象软件工程”教学和课程项目实践,培养学生如下方面能力:

  ①通过基于案例/项目驱动来学习,要求学生能够深入理解“面向对象软件工程”的知识体系和该课程的基础理论并能在实际项目中加以灵活应用。“面向对象软件工程”的知识体系为学生理解和应用其基础理论解决分析、设计、实现和运行中的实际问题打下基础并提供有效工具;而“面向对象软件工程”理论基础为学生针对实际问题进行发明创造提供动力,为学生发现问题、分析问题和解决问题提供理论支持。

  ②通过“面向对象软件工程”课程中项目的驱动,要求学生创建项目团队,通过课程项目实践各个环节(包括需求分析、设计和实现等环节及在此环节中的各项活动、沟通与协调、文档撰写),培养学生的良好职业素养,以及团队合作、系统思维、工程实践、项目管理和文档写作的能力。

  ③通过“面向对象软件工程”理论学习和课程实践,培养学生的创新意识和能力,以开发出具有鲜明个性的软件作品。

  3CDIO教学法在“面向对象软件工程”理论及其课程项目教学设计中的应用

  3.1总体设计

  目前,“面向对象软件工程”课程教学安排共计54学时,我们将理论教学内容与课程项目实践教学内容结合起来进行设计。在整个教学周期内,按照软件生命周期并结合CDIO、案例与项目驱动的教学法,设计理论课程案例教学过程中的相关活动,配合对应的课程项目实施活动加以有效组织与实践,在整个教学环节结合项目开发活动的进展与深入,要求学生记录自己团队活动中的相关内容,按照我们事先制定的规范撰写并维护项目文档。具体解决方案是:第一,正式课程教学的1~6周,设计项目描述和需求获取与分析、系统设计中的具体活动,这些活动包括分别标识实体对象、边界对象和控制对象;将用例映射成对象;建立对象之间的交互;标识关联、聚集和属性;对单一对象状态依赖行为的建模;对对象之间的继承关系建模;对本阶段的分析对象模型进行评审;基于分析对象模型标识出设计目标,进行子系统分解和标识;将子系统映射到系统构件元素上;标识并存储持久性数据;设计访问控制策略;设计全局控制流;标识服务;标识边界条件;对系统设计进行评审。第二,7~14周,设计对象设计与实现中的活动,这些活动包括学习软件复用和设计模式,并在详细设计中加以应用;对对象之间的接口进行说明,涉及标识遗漏的属性和操作、说明接口类型、签名与可见性,说明接口中相关方法的前置条件、后置条件和不变式等。第三,15~16周,设计测试阶段中的活动。第四,17周,进行相关的总结活动,包括项目文档的静态检查和验收,以及课程项目的动态演示与现场回答问题。

  3.2设计课程项目

  在设计课程项目中,将考虑提供给学生一个贯穿整个学期的课程教学项目描述,为此我们将选择开发一个基于Web的应用系统。这类系统的实例很多,可以由教师设定或者由学生自选,如教师可根据教学中的需要设定一类基于Web的师生交流系统,以方便实现教师和学生之间关于做项目时的沟通。学生也可以根据个人兴趣选择网游软件开发,或者选择基于Web的电子商务网站系统等。总之,相关项目的设计需要教师事先准备好项目描述或问题定义。为了开发这类基于Web的应用系统,教师需要指定项目使用的环境和工具,主要包括两类:一类是开发环境与工具、数据库管理系统、界面开发工具等,另一类是项目管理工具。这一阶段设计的活动属于CDIO中的构思阶段。

  3.3设计理论课程教学过程

  首先,在理论课程教学内容设计中,我们主要依据的是第3版的SWEBOK标准(20xx),在CDIO工程教育模式的指导下,完成相关知识体系教学设计。在SWEBOK20xx版中的17个知识点中(其中2个为候补知识点),我们选择了其中10个知识点,并将这些知识点融合到“面向对象软件工程”的理论课程教学中。这些知识点可有效地体现着CDIO的工程教育理念,如软件需求体现了CDIO的构思,软件设计体现了CDIO的设计,软件构造和软件测试体现了CDIO的实现,软件维护体现了CDIO的运作等。其次,在此基础上设计理论教学过程。一方面,以案例/项目驱动教学方法为基础,“面向对象软件工程”课程中相关知识体系及理论学习,要求学生在学习和思考中掌握“面向对象软件工程”的相关知识、术语、理论和技术基础,并通过团队方式共同学习、讨论和完成作业,并以团队形式参加全体同学的各种讨论活动;另一方面,要求学生围绕着项目描述或者待解决的问题描述,完成团队组建、工具选择、项目计划制定,并开始执行需求工程中的需求获取和需求分析活动,以及在此基础上的系统设计活动,这些阶段的工作结论需要学生加以记录,特别是需求获取与分析的结论和总体设计结论更要以文档形式加以记录。第三,结合案例/项目驱动教学,进一步完成“面向对象软件工程”理论课程。具体做法是一方面引入小型案例,另一方面引入面向应用领域的实际项目,并在项目描述、需求获取和分析活动、系统设计和对象设计中,将该项目的具体情景或者可行的系统设计解决方案引入课堂,在课堂上组织学生参与讨论、分析这些基于场景的案例,将需求阶段和系统设计阶段中涉及的重点知识、术语、过程与步骤等重点和难点融入到案例中来讲解和学习,以便于学生真正理解相关的理论教学内容。这一阶段的活动设计对应着CDIO中的`构思阶段。

  3.4基于项目驱动的课程实验教学设计

  解决软件项目中的问题或实现软件项目中的任务,要求学生以团队方式进行活动,并在整个活动中的各个阶段贯彻CDIO工程教育的理念,即让学生能够对软件项目中的任务完成进行构思,获取与软件项目相对应的软件系统的功能性需求、非功能性需求和系统约束,并以文档方式进行描述;接着,通过设计手段来完成项目任务,用系统来对应将来要完成的任务,并在该系统设计中落实项目的各项要求,这需要通过对系统的总体设计、详细设计等环节来达到,并将设计结论记录在软件设计文档中;在前面构思和设计的基础上,选择合适的程序设计语言、数据库管理系统等基础设施,用编程的方式实现该系统,并完成相应的测试任务,注意在实现过程中,同样要将相关结论以文档的形式加以记录,以备维护之需;在系统实现后,通过部署和运行等方式,让该软件系统(可以看成是本项目的解决方案)呈现出价值。在这一完整过程中,让学生通过项目驱动下的团队活动过程,体验到软件产品从构思、设计、实现到运行(包括维护)所经历的全生命周期过程。这一阶段的活动设计对应着CDIO中的设计、实现阶段。

  3.5项目总结与项目验收过程教学设计

  项目总结过程的教学设计是以团队为单位进行自我总结并撰写项目总结报告,以个人为单位撰写学习心得,教师主要验收和检查相应的项目总结报告和学生学习心得。项目验收过程的核心是开展两阶段验收活动,即在学期的15~18周中,选择第15周进行一次中期检查,第18周再进行一次期终项目验收。全体主讲教师和辅导教师组成一个答辩小组(一般为4人),他们事先要做好各项准备工作,包括现场点名以确认学生的有效身份并结合点名宣布学生团队的答辩顺序,保证答辩的有效性和合理性;由答辩小组组长宣布评分标准细节和学生是否能够通过本次验收活动的标准。

  4、实践活动

  在“面向对象软件工程”课程教学活动中,共有45位学生(组成了15个团队)全程参与了我们的教学改革过程,现在仅就验收答辩环节进行说明。整个答辩所耗时间共计7个多小时;答辩老师根据实际情况(最低底线是学生必须完成项目要求的最基本功能),充分肯定了学生到目前为止所完成的开发成果,同时建议相关学生利用即将到来的假期进一步完成或完善该应用软件系统的开发,及时修改设计上的缺陷。在本次教改实验过程中,我们充分认识到这一教学过程对教师也提出了更高的要求。教师不仅仅是需要在理论基础教学上过硬,还需要具备软件项目开发的经验,这样才能够做到既能站在理论的高度指导学生分析和解决问题,同时也能给出实实在在的课程项目开发活动中的技术指导。

  5、结语

  软件项目工作经验总结 4

  1、估算前的规划

  当我们的办公室内堆满了杂乱无章的文件时,恐怕无法知道对于我们真正有用的文件在哪里,当我们的软件相目中收集了各种需求、意见、问题时,我们也很难从中估算出整个项目的规模、工作量以及成本。因此,在估算之前我们首先要对众多信息进行整理、归类分析,从而得到一个条理清晰的项目计划,在这个计划提供的框架内,才可能开始正确的估算。精心的规划是任何一个软件开发项目成功与否的关键,有了规划就有如成竹在胸,之后无论风云变幻,都有应对入流的方法。当然只有正确的规划,才能给软件开发指引正确的方向。

  软件项目规划的重点是对人员角色、任务进度、经费、设备资源、工作成果等等做出合适的安排,制定出一些计划(包括高层的和细节的),使大家按照计划行事,最终顺利地达到预定的目标。

  1.1、规划的第一步:确定软件范围

  确定软件范围,就是确定目标软件的数据和控制、功能、性能、约束、接口以及可靠性。这项工作和需求分析是很类似的,如果之前已经达成需求分析规约,那么可以直接从《需求分析说明书》中把有用的部分拿来使用。如果还没有开始需求分析,关于确定软件范围的方法方面,我们可以采用许多需求分析技术(如需求诱导),从客户那里得到一个具体的软件范围。当然如果是一次全新的软件边界探索,就应当考虑软件本身可行性问题,包括团队是否具备在技术、财务、时间、资源上游可靠的保障,软件本身在市场上是否有可靠的竞争优势,等等。

  获得软件范围,最直接最可靠的来源就是用户对软件的需求描述。例如,在开发一个C/S架构的铁路供电段数据上报系统中,客户向我们提供了以下的目标软件需求描述:

  在供电站总部每天结束前要审核下属节点操作员(30~40个)的供电安全数据报表,要求每个节点必须在下午5:30~6:00之间上传数据。总部系统通过自动分析,整理出整个区内的安全形势报表,并自动反馈到每个节点。各个节点之间通过调制解调器拨号(MODEM)用内部电话线相连,每个节点电脑主机配备一个MODEM。上传数据为制式报表出了制式信息外,系统自动附加操作员姓名、上报时间、上报节点名称。信息一旦上传,节点端就不可以对已提交信息进行修改、删除,只能阅读、查询。节点间数据互相隔离,只有总部才具备对各个节点数据的管理权限,但是对于归档数据(一旦审核完毕的数据,就进行归档)总部不具备删改的权限。系统设置数据库管理员,独立于审核权限,其职责是对历史数据的清理维护。

  通过上面的描述,我们通过提炼和简化,得到软件的一下功能:

  节点数据录入、查询、上传

  总部数据汇总、查询、反馈

  总部与节点的互联项目管理培训

  总部数据库存储

  节点数据的本地存储项目管理论坛

  在本例中,软件的性能是潜在的。客户虽然没有明确提出,但是由于数据本身的重要性,要求系统在数据上传、反馈、存储过程中安全可靠。客户要求使用MODEM进行拨号连接,那么鉴于MODEM连接过程中可能会出现,由于拨号断开而道导致的数据丢失,在节点本地存放一份数据副本是有必要的。由于系统要求每天上传数据,总部数据库应当是7X24小时不间断服务的,再加上目前总部只有该系统运行接受数据任务,各节点数据量并不大,那么在建议用户选择服务器时,应当考虑性能稳定可靠,但并不一定要购买大容量磁盘阵列和高性能双CPU主机。由于每天上传数据接近下班时间,那么总部汇总数据应当是自动进行的,一旦分析发现重大问题,可以通过与外部网络的设置,向值班人员发送手机讯息、E-MAIL或其他警示。由于不同人员对于上报数据的权限不同,对于系统用户实行分级管理。不同级别的用户,具有对数据的不同管理权力,从而保证在软件使用过程中不发生混乱。

  那么现在一个较为清晰的软件模型已经构造完毕,接下来我们需要进入计划的第二步:确定工作所需资源。

  1.2、规划的第二步:确定工作所需资源

  软件工作所需资源包括:工作环境(软硬件环境、办公室环境)、可复用软件资源(构件、中间件)、人力资源(包括不同各种角色的人员:分析师、设计师、测试师、程序员、项目经理……)。这三种资源的组成比例,可以看作一个金字塔的模式,最上面是人力资源、其次是可复用软件资源、最下面是工作环境。最上面的是组成比例最小的,最下面的是组成比例最大的部分。

  ■人力资源

  一个项目到底需要多少种职务的人员构成、多少数量的人员总量,再能成为最有创造力的团队呢?这恐怕是最让项目经理头疼的事情了。任何一个软件工程,都必须在确定软件的工作量之后,才能清楚地知道究竟需要多少人力才能以最小成本和最高效率完成任务。在这之前,不能盲目地进行人力扩充,而且绝对不能为了给公司抬高门面,盲目招收高学历。

  ■可复用软件资源

  这是一个容易在计划阶段被忽视的重要资源,很多人总是进入编码阶段才发现可复用资源的价值和存在。经过长期的项目积累或是购买,公司的软件资源库中或许已经积累了大量的可复用资源,但在当前任务中,只能选择有价值的资源。根据不同的应用、时间、来源,可复用软件资源被分为以下几种:

  可直接使用的构件:已有的,能够从第三方厂商获得或已经在以前的项目中开发过的软件。这些构件已经经过验证及确认且可以直接用在当前的项目中。

  具有完全经验的构件:已有的为以前类似于当前要开发的项目建立的规约、设计、代码、或测试数据。当前软件项目组的成员在这些构件所代表的应用领域中具有丰富的经验。因此,对于这类构件进行所需的修改其风险相对较小。

  具有部分经验的构件:已有的为以前与当前要开发的项目相关的项目建立的规约、设计、代码、或测试数据,但需做实质上的修改。当前软件项目组的成员在这些构件所代表的应用领域中仅有有限的经验,因此,对于这类构件进行所需的修改会有相当程度的风险。

  新构件:软件项目组为满足当前项目的特定需要而必须专门开发的软件构件。

  在采用构件的时候,应当以低成本、低风险为使用前提。如果任何一个漂亮的构件的应用,可能会带来潜在出错的风险或者必须经过复杂修改或者效率低下时,我们都应当毫不犹豫地把它抛弃。我们只采用那些能够满足项目的需要且可直接使用的构件,或者具有完全经验的构件,或者经过稍微修改便可使用的构件。项目经理博客

  ■环境资源

  “工欲善其事,必先利其器”,要得到高效的开发过程,就必须向工作人员提供良好的软硬件环境,包括开发工具、开发设备、工作环境、管理制度。一般管理人员都会购买可以满足需要的软件开发工具和硬件平台,但是工作环境和管理制度往往被忽视。项目管理者联盟

  站在人件的角度看,向工作人员提供更轻松自在、安静舒适的办公环境的公司员工往往比整天在狭小隔间中工作的公司员工,产生更高的工作效率。而那些拥有灵活人性化的管理制度的公司,比整天加班的公司更能留住高技术的人才。所以如何在有限资金中,规划一个合理的环境是很重要的事情。转

  到此为止,估算前的项目计划已经完成,我们已经形成一个工程开发框架。这是一个有界限的框架,虽然还不够精确,但足以进行估算的工作。

  2、估算的对象

  目前为止,一个较为准确的软件项目估算的定义是:在给定公差范围内,对于姚开发的软件规模的预测,以及对开发软件所需的工作量、成本和日历事件的预测。这个概念指出了一个事实,即估算是一种大约的估计,是将误差限定在一定范围内的估计。

  估算主要包括以下几个重要内容:

  规模估算

  软件估算首先要将整个工程的规模估算出来,才能进行下面的其他估算。规模,就是一个工程可量化的结果,是用具体数字来体现项目的描述。规模估算的信息来源是清晰、有界限的.用户需求。

  工作量估算

  这是对开发软件所需的工作时间的估算,它和进度估算一起决定了开发团队的规模和构建。通常以人时、人天、人月、人年的单位来衡量,这些不同单位之间可以进行合理的转换。

  进度估算

  进度时项目自始至终之间的一个时间段。进度以不同阶段的里程碑作为标志。进度估算是针对以阶段为单位的估算,而不是对每一个细小任务都加以估算,对任务的适当分解很重要,分解得越细反而会不准确。因为任何一个软件工程,在各个方面都有与生俱来的不确定性。

  成本估算

  包括人力、物质、有形的、无形的支出成本估算,其中以人力成本为主要部分。比较容易被忽视的使学习成本、软件培训成本、人员变动风险成本、开发延期成本等,一些潜在成本消耗。

  3、估算的策略

  在软件估算的众多方法中,存在着“自顶向下”和“自底向上”两种不同的策略,两种策略的出发点不同,适应于不同的场合使用。项目管理培训

  3.1、自顶向下的策略

  这是一种站在客户的角度来看问题的策略。它总是以客户的要求为最高目标,任何估算结果都必须符合这个目标。其工作方法是,由项目经理为主的一个核心小组根据客户的要求,确定一个时间期限,然后根据这个期限,将任务分解,将开发工作进行对号入座,以获得一个估算结果。项目管理者联盟文章

  当然由于这完全是从客户要求出发的策略,而由于软件工程是一个综合项目,几乎没有哪个项目能完全保质保量按照预定工期完工,那么这样一个策略就缺少了许多客观性。但是由于这样完成的估算比较容易被客户、甚至被项目经理所接受,在许多公司我们看到这样一个并不科学的策略仍然被坚定地执行着。项目管理培训

  3.2、自底向上的策略

  与自顶向下的策略完全相反,自底向上的策略是一种从技术、人性的角度出发看问题的策略。在这样一个策略指引下,将项目充分讨论得到一个合理的任务分解。在将每个任务的难易程度,每个任务依照项目成员的特点、兴趣特长进行分配,并要求进行估算。最后将估算加起来就是项目的估算值。

  显然自底向上的这种策略具有较为客观的特点,但是它的缺点就是这样一来项目工期就和客户的要求不一致了。而且由于其带来的不确定性,许多项目经理也不会采用这种方法。项目经理圈子

  4、估算的方法项目管理者联盟

  显然估算是建立在客观实际上,对未来尽可能合理的一种预测。那么估算本身的不确定性,决定了它不可能是百分之百准确无误的。在项目刚开始时,人们对产品需求、技术、市场预期、人员素质等因素的了解还远远不够,在这种情况下人们很难作出准确的估计。但是依据某种方法进行估计显然比瞎猜好得多。项目管理者联盟文章

  估算方法有很多,大致分为基于分解的技术和基于经验模型两大类。基于分解的技术的方法包括功能点估算法、LOC估算法、MARKII等;基于经验模型的方法包括IBM模型、普特南模型、COCOMO模型等。

  4.1、FP功能点估算法项目管理论坛

  功能点估算法是一种在需求分析阶段基于系统功能的一种规模估计方法。通过研究初始应用需求来确定各种输入、输出、计算和数据库需求的数量和特性。这种方法的计算公式是:功能点=信息处理规模x技术复杂度。信息处理规模包括各种输入、输出、查询、内部逻辑文件数、外部接口文件数等等;技术复杂度包括性能复杂度、配置项目复杂度、数据通信复杂度、分布式处理复杂度、在线更新复杂度等等。项目管理论坛

  4.2、LOC估算法

  这是一种从技术的角度来估算的方法总称,其中又包含许多方法。这类方法以代码(LOC)作为软件工作量的估算单位,在早期的系统开发中较为广泛使用。基于LOC的估算,又有点也有缺点。优点在于方便计算、容易监控、能反映程序员的思维能力;缺点在于代码行数的含糊不清,不能正确反映一项工作的难易程度以及代码的效率。因此在传统的LOC方法进行了许多改进。其中不断被使用,且不断演化的方法包括以下:

  PERT功能点估算法:PERT对各个项目活动的完成时间按三种不同情况估计:一个产品的期望规模,一个最低可能估计,一个最高可能估计。用这三个估计用来得到一个产品期望规模和标准偏差的Pert统计估计,Pert估计可得到代码行的期望值和标准偏差SD。项目管理论坛

  类比估算法:类比法适合评估一些与历史项目在应用领域、环境和复杂度的相似的项目,通过新项目与历史项目的比较得到规模估计。类比法估计结果的精确度取决于历史项目数据的完整性和准确度,因此,用好类比法的前提条件之一是组织建立起较好的项目后评价与分析机制,对历史项目的数据分析是可信赖的。

  Delphi估算法:Delphi法是一种专家评估技术,在没有历史数据的情况下,这种方式适用于评定过去与将来,新技术与特定程序之间的差别。对于需要预测和深度分析的领域,依赖于专家的技术指导,可以获得较为客观的估算。通过专家们的互相讨论,还可以博取众长

  系统分解:将系统分成若干个易于用LOC估算的部分,将其各个估算结果累加就是LOC的总规模。其中关键是建立起SBS(系统分解结构),它描述了系统的不同组件。SBS还被使用在其他重要的地方,如系统设计、系统分析等。在进行分解的时候,可以采用自由讨论的形式,可以获得更合理的SBS构成。项目经理圈子

  4.3、IBM模型估算法

  该模型是Watson和Felix在1977年的,是基于IBM联合系统分布负责的60个项目的总结而得到的模型。该模型是一个静态模型,而参考数据只有60多个项目,因此有很大的局限性。

  4.4、COCOMO估算法转自项目管理者联盟

  Boehm在其经典著作“软件工程经济学”(softwareengineeringconomics)中,介绍了一种软件估算模型的层次体系,称为COCOMO(构造性成本模型,COnstructiveCOstMOdel),它代表了软件估算的一个综合经验模型。项目经理博客

  COCOMO模型是适用于三种类型的软件项目:(1)组织模式——较小的、简单的软件项目,有良好应用经验的小型项目组,针对一组不是很严格的需求开展工作(如,为一个热传输系统开发的热分析程序);(2)半分离模式——一个中等的软件项目(在规模和复杂性上),具有不同经验水平的项目组必须满足严格的及不严格的需求(如,一个事务处理系统,对于终端硬件和数据库软件有确定需求);(3)嵌入模式——必须在一组严格的硬件、软件及操作约束下开发的软件项目(如,飞机的航空控制系统)。

  4.5、软件方程式估算法项目管理论坛

  软件方程式是一个多变量模型,它假设在软件开发项目的整个生命周期中的一个特定的工作量分布。该模型是从4000多个当代的软件项目中收集的生产率数据中导出的公式。初期的方程式较为复杂,通过,Putnam和Myers的努力又提出一组简化的方程式。当然这种方法也是基于长期的参考数据的积累而得到的。

  4.6、WBS估算法w

  这是一种基于WBS(工作任务分解)的方法,即先把项目任务进行合理的细分,分到可以确认的程度,如某种材料,某种设备,某一活动单元等。然后估算每个WBS要素的费用。采用这一方法的前提条件或先决步骤是:项目管理者联盟

  对项目需求作出一个完整的限定。

  制定完成任务所必需的逻辑步骤。

  编制WBS表。

  项目需求的完整限定应包括工作报告书、规格书以及总进度表。工作报告书是指实施项目所需的各项工作的叙述性说明,它应确认必须达到的目标。如果有资金等限制,该信息也应包括在内。规格书是对工时、设备以及材料标价的根据。它应该能使项目人员和用户了解工时、设备以及材料估价的依据。总进度表应明确项目实施的主要阶段和分界点,其中应包括长期定货、原型试验、设计评审会议以及其他任何关键的决策点。如果可能,用来指导成本估算的总进度表应含有项目开始和结束的日历时间。

  除了以上介绍的几种方法外,还有一些其他的方法:类比估算、推测估算、Standard-component估算法、普特南估算法等。当然不同的方法适用于不同的具体环境,有些方法虽然很好但并不一定适合当前的任务。只有量体裁衣,具体问题具体分析,才能得到尽量合理的估算。

  5、估算的戒律项目管理者联盟

  记住:应该满足于事物的本性所能容许的精确度,当只能近似于真理时,不要去寻求绝对的准确??——亚里斯多德

  对于任何一个项目经理,都知道要慎重估算,但是我们仍然会看到人力资源的浪费和财力资源的匮乏,在许多项目中存在。对于宝贵的资源,我们不是用得太多,就是根本不够用。因此,有以下前人总结出来的一些经验以供借鉴。

  不要追求完美:就像没有人能预测出未来,如果还没有完成,就不要企图完美的结果。更何况估算的太精确,反而会失去灵活机动的空间。

  不要为满足预算而估算:如果这个项目的预算根本不能完成100%的任务,那么就不要让你的团队委曲求全。正确地反映客观现状,不仅可以争取应得的权利,而且是完成任务的前提。

  不要随意削减估算结果:有很多老板喜欢把项目经理递交的估算,不假思索地砍掉一部分。这是一种不负责任的做法,如果要削减一定要有理由。

  客观地估算,不贪多不偷减:就像老板不能随便削减你的估算一样,你也同样不能在估算的时候,贪多或是偷减。贪多必然导致会浪费,偷减必然导致不足。这两个结果恐怕都不是一个合格的项目经理的作为。

  客观利用过去的经验:对于以往估算的经验,当然是宝贵的财富,但是如果财富用错了地方就会变成垃圾。在使用经验时,要注意现在和参考经验之间的差异。不要忘记,随着时间的推移,计算机领域技术的更新,许多观念都在发生着改变。项目管理培训

  软件项目工作经验总结 5

  软件项目管理这门课程是我们软件工程专业学生的一门重要的课程,这门课程的开设必有其重要性。软件项目管理的提出是在20世纪70年代中期的美国。由于开发项目不能按时提交、超出预算、质量达不到用户的要求等原因,70%的项目出现问题。于是,软件开发者开始逐渐重视软件开发中的各项管理。软件项目管理和其他项目管理相比有相当的特殊性。首先,软件是纯知识产品,其开发进度和质量很难估计和度量,生产效率也难以预测和保证。其次,软件系统的复杂性也导致了开发过程中各种风险的难以预见和控制。因此,项目管理对软件生产具有决定性的意义。

  只有相信团队合作才可能把项目做到最好,从整个项目的过程来看,团队合作中需要沟通、分工、协作和监督。只有做好这四项才算是一个好的合作团队。首先,团队合作最基本的技能就是沟通。沟通的目的就是让别人了解你的想法,因为每个人考虑问题的时候总会有各种各样的偏差,我们只有沟通很好的沟通来综合所有人的好的想法,以减少走弯路,而让事情进行的`更顺利。因此我们也开了几次会议来互相了解沟通,当然最重要的是与项目经理的沟通。会议中他很认真负责地跟我沟通,我在沟通中用词不当或犯什么错误时,他都会指出来,并改正我的说法,因此单从与他的沟通中就学到了不少以后工作时将会用到的实在的知识。我们项目每人都是按照他给我们的计划提交相应的文件给他,但质量是参差不齐的,他都会进行审核,然后给出建议,让我们修改优化后,他才会通过。

  我在此次课程中负责的部分是质量保证计划书,这是从未了解过的内容。从课程和书本上的知识不足以让我完成质量保证计划书,于是又从网上找了很多模板和每一小项是在说些什么内容来完成我们组的质量保证计划书。在这个过程中我学到了很多。我也感受到软件项目管理是一门非常需要学习的课程。它对软件工程项目的作用是至关重要的。现在,作为学生的我所做的项目虽然都是一些小的项目,但是在小组共同开发的时候还是需要用到项目的管理。如:人员的分配,时间、进度的计划,沟通计划,项目执行变更管理,以及质量管理控制等多种管理。我相信在今后的实习及工作当中,能更好的体验和感受到项目管理的精髓,对软件项目管理有更深入的了解。我也希望,学校的老师能够在今后的教学当中重视软件项目管理课程,多让学生了解实例,去感受、体会软件项目管理所遇到的问题和解决方案,理解软件项目管理的精髓。

  软件项目工作经验总结 6

  一个项目之所以能成功,能让客户满意,领导放心的原因可能大多都差不多,大多都是老生长谈的那几条。但是一个项目失败的原因却各有各的不同。下面再根据自己的体会写一些项目总结,一为了总结不足,积累经验,二为了以后项目中避免犯同样的错误。

  一、要和客户有足够有效的沟通和客户的沟通要贯穿整个项目开发的始终,从立项调研,需求获取到最后的验收测试,后期维护。

  1.要尽量多的主动跟客户沟通

  客户一般工作都很忙,所以要通过多种方式和客户保持沟通,电子邮件,电话,座谈,调查,会议等。最初的需求尽量保证有几次所有与项目相关的部门和人员都能参加的讨论会,把他们的各自的工作都描述一下,尽量不要遗漏,都罗列出来,因为这是原始需求。这往往不容易做到,因为政府部门很难抽出时间把各部门人员集中在一起来做这些事情的,但是我们必须得这样要求他们,要求他们把这个看成一项工作来抓,因为前期工作做不充分,后面的开发会不会很成功。在对某个功能或者需求不能确定的情况下,最好能整理成列表文档发给客户,让客户以电子版的形式重新描述一下发过来,尽量不要经常打电话骚扰客户,要集中把要了解东西发给客户,以便他们集中精力来处理你问的问题。

  2.要尽量保证有效的沟通

  每次沟通要有一定的目的性,把沟通交流的结果用文档的形式保存下来;需求制订出来要得到客户的确认,在经过几次反复之后会得到一个相对比较稳定的需求,虽然客户的需求不可能一直不变,这也是很多人搞项目头疼的地方,但是我认为客户的需求实际上是很少改变的,改变的是你对客户需求的理解。对客户的每一个要求都要重视,尤其是客户后来提到的一些改动建议,要让他们以书面的形式发过来,必要的时候要求负责人盖章签字,我们不能为了下面的下面的一个小办事员随便打个电话就对程序做出大的改动。再改动比较大的情况下,我们可以要求客户对合同的变更追加费用,前提是把需求作为合同的附件加进去,防治最后验收的时候造成争执。

  3.和客户沟通要找准对象

  一般企业或者政府都有专门负责信息的人员,而且最好要求客户那边找一个人专门负责这个项目。这样找对方了解需求的时候就不会出现不知道找谁的情况,客户那边有专人负责会带来很多好处,这个项目就是因为客户那边负责这个项目的人员经常更换而为我们项目的开发造成了很多的不变。

  二、提高开发效率和保证项目质量

  政府的项目一般都是开始的时候不着急,你催他们准备资料他们也不着急,但是一旦他们把资料准备全了,都交给你了就着急了,要求对方在很短的时间内保证质量的把项目交付。所以如何提高开发效率和保证项目质量是确保项目成功的关键。

  1.保证良好充分的测试

  当然软件测试的范畴很大,但是为了赶进度我们往往不能不保证进行所有的软件测试。软件的测试也是遍布整个项目开发周期的,我了解了一下tdd,tdd的思想很好,很适合开发中小型的'项目,实施起来也很方便,但是不能纯粹的用敏捷开发的理论,必要的文档还是需要的。我认为代码模块的单元测试,开发最后阶段的集成测试和部署后的整体功能测试和用户验收测试是必不可少的。项目进度再紧张也要进行单元测试,只要保证单元测试能通过,以后代码可以慢慢重构。集成测试保证项目各个模块能良好的协作共同完成复杂的任务,这点不能保证的话,展示给客户的最终功能就不能保证。而功能测试和用户验收测试是纯粹的黑盒测试,自己内部人员先对照原始客户的需求进行功能测试,列出bug列表,经过几次反复修改后给客户一个可以进行验收测试的系统。

  2.保证相对必要的文档以及保证文档的可用性

  每个模块的文档要独立起来,要实现的目标,测试的结果,模块所用的数据库的结构,存储过程,设计思路,调用的接口等这些是必须的。我也不建议面面俱到的文档,但必要的需求文档,模块文档,测试文档是必须的,我们的项目小的不足以让我们去学习庞大的rup什么的。

  3.迭代开发

  刚开始可以根据客户的需求弄出一个蓝图来,交给客户看,以便让客户能尽量早的知道最终的开发出来的系统是什么样子的,这个蓝图要尽量直观,一般在需求整理完毕后一周就能出来,这也是指导以后开发工作的东西,要完整的包含所有的域模型,便于开发人员对问题域的理解。

  然后把优先级最高的一系列功能完整后出一个demo版给客户,要让客户尽量早的发现正在制作的项目和用户想要的结果的之间的偏离和差距,告诉你后以便你尽早的调整,别等你的正式版出来后用户发现这个功能你做的不对,你就傻了,那时候要改动的地方就太多了。然后再弄完善一下给用户个beta版,这时候就已经接近最终版本了,可能还有一些小bug。最后把小bug完善修复一下给客户正式版1.0让客户验收。至于二期项目以后再说,先把一期项目的余款结了再说,对吧。

  4.制订开发规范

  开发规范订的太死会限制程序员,每个开发人员都会有一些习惯,但是为了协作,制订一个相对通用的规范是有必要的。包括文档的规范,数据库设计规范,编码规范以及各种命名规则。尽量用一些业界通用的规范,网上都有,我csdn的博客上也整理了一些,msdn的类库开发人员指南里面也有一些。尽管某些规范很有争议,我感觉你也得选择其中一种来做为你的项目开发规范。

  5.建立开发基础

  保证机器和软件的可用,尽量大的内存,尽量快的处理器,操作系统,开发工具都要到位,该想到的就得想到,还要给开发人员一个相对安静舒适的环境,最好能很方便的喝到冰箱里的可乐,而且能在累的时候有绿色的植物看。再一个就是建立一个开发基础结构,这个也颇有争议,几乎每个公司都有自己的系统类库,开发框架以及配套的代码生成工具,这都很好,在开始可以对员工做适当的培训,让他们都能体验自底向上设计的好处,都能用的上这个架构,你可以在架构中要求开发人员以指定的方式实现某些通用的任务,比如说日志记录和错误处理等,而不是让他们使用自己习惯的方式去处理问题,因为.net的灵活性让实现一个任务有很多中方案和手段。

  小节:虽然这个帖子没有讨论具体技术,而且都是一些空话套话,并且这些空话套话可能别人也都说的不带说了,但我感觉还是有必要自己总结一下的。

  软件项目工作经验总结 7

  时光荏苒,20xx年已经接近尾声,回首过去的xx年,内心不禁感慨万千,虽没有轰轰烈烈的战果,但也算经历了一段不平凡的考验和磨砺

  一、20xx年的主要工作情况

  在这xx年,我们项目部在上级部门的指导下,围绕公司的年度目标,认真完成项目的整体部署和工作计划,以公司的发展战略为指导,加强项目管理,提升工程质量和施工管理水平。

  在施工管理过程中,严格按照各项工作标准,严格执行各种规章制度,在管理中认真贯彻“安全第一,预防为主”的方针,确保项目部施工人员的生命和财产安全。

  1、认真执行各项制度。严格执行规范要求,做好工作。加强对工序质量的检查和监督,保证质量。

  2、认真完成各项工作计划,提供管理信息。

  3、认真做好各项工作记录。

  4、做好各项工作总结。

  二、工作思路的回顾与总结

  5、认真执行上级领导的'有关文件,及时完成领导交待的各项工作任务和临时指令,确保项目工作有序进行。

  6、认真完成工程施工组织设计中的各项工作。

  7、认真执行上级部门下达的各项工作任务,保证项目各项工作有条不紊地开展并有效地实施。

  8、积极配合项目经理做好工程的各项管理工作,确保工程项目顺利完成。

  三、存在的问题及改进措施

  9、工作中还是欠缺技能,对现场的技术管理知识了解得很浅。

  10、工作中的细心性和责任心还有待加强。

  针对以上问题,以后我会认真吸取经验,努力学习和提高,加强自己的技术水平和管理能力,提高工作效率,做到事前准备、事中检查、事后总结,积极主动地解决问题。在今后的工作中,我要努力做到:

  11、加强学习,拓宽知识面。努力学习专业知识和相关法律常识。加强对工程的理解,提高自己的业务水平。

  12、本着实事求是的原则,做到上情下达、下情上报,真正做好领导的助手。

  13、加强与同事之间的协调,积极工作,发扬团队精神,加强各成员的交流,努力打造一个高效率的工作团队。

  14、进一步发挥工程技术管理的作用。

  回顾了20xx年,工程项目部全体员工在项目管理过程中付出了辛勤的汗水,取得了优异的成绩,这是我们项目部全体员工的共同努力所取得的,但是也存在很多的不足。在此,我要感谢领导们对我们项目部的信任和培养,感谢各部门对我们项目部工作的理解指导,感谢全体员工不辞劳苦,无怨无悔的付出。

  最后祝大家在新的xx年里,身体健康,工作顺利;祝愿我们公司的明天更加辉煌灿烂、更加美好,更加辉煌!

  软件项目工作经验总结 8

  一、个人工作详细说明

  本次软件项目设计的题目是场地预约系统,它是基于B/S模式实现的用于体育城场地管理预约的Web应用软件。为用户提供并接受用户提出的需求信息,同时通过数据库管理系统存储数据,给场地的管理带来很大的方便。本项目的实现分为前台与后台。其中前台,用户可以浏览场地所提供的可预订场地的信息,同时可以对需要的场地进行预订;后台主要是针对管理员,管理员可以通过后台对场地的相应信息进行增添修改等操作。

  我基本参与了本项目的全部实现过程,涉及项目的需求分析,概要设计,详细设计,代码编写,调试与运行。在需求分析阶段和小组其他成员认真分析讨论了本项目各方面的需求,主要是功能方面的需求,基本确定了本场地预约系统应该具有的基本功能。概要设计阶段通过讨论分析确定了所需表结构。详细设计阶段参与部分代码的编写,其中包括页面与数据库交互的实现,还有相应jsp页面代码的实现几布局的调整,修改。

  在数据库设计实现阶段,通过和我们组其他成员的共同讨论,确定了场地信息、用户信息等表结构的详细信息,并实现了其数据库的建立和相应表的具体信息的设计实现。同时针对个别表结构完成了相应代码的编写与实现。

  在后台,实现了用户的信息的浏览查看,修改及删除等功能,同时完成了足球场等场地信息的浏览、增添、修改、删除等功能。

  前台参与了主界面的设计与实现,通过查询数据库得到主界面显示所需场地的相关信息,通过这样,用户可以很清楚的获知所有可预订场地的信息,其主界面上的所有关于场地的数据都是动态从数据库获取的,这样当场地增添或删除时通过修改数据库可以很方便的实现界面呈现给用户的场地信息,能够很好的使实际情况跟提供给用户的信息保持同布,非常利于场地信息的管理和发布。

  二、个人工作体会西安石油大学

  时间过得真快,不知不觉中近一个月的`课程设计就要结束了。本次课程设计我们组做的题目是场地预约系统,先前选题的时候以为它实现起来应该比较简单,在通过后边的具体分析之后才发现它并不是我所想象的那样简单,其中涉及许多问题我当时并没有想清楚。

  经过我们小组的共同努力,最终基本上完成了场地预约系统的实现。虽然做的不是很完美,不是特别有创意,但这是我们共同努力的结果,当我们看着自己亲自完成的项目觉得很欣慰。

  通过这次课程我对前边多学的知识有了进一步的认识与掌握,使我进一步认识到课本所学知识与实际应用是不一样的,在实际应用中需要你去针对具体的问题去灵活的变通处理,而并不总是和课本上的知识一样。同时,我深感只有通过具体项目的实践,才能更好的掌握所学知识,并进一步的融会贯通。

  这次课程设计使我深刻认识到了一个项目的实现最重要的还是需求分析而不是代码的实现。在此次场地预约管理系统的实现过程中,我们就是因为期初对本系统的需求分析工作没有做到位致使表结构的建立存在不少问题,进而导致后边在代码的实现过程中又重新回来修改数据库的表结构。这样就不得不对已经实现的代码进行修改,这个过程将会是一个相当让人头疼的过程。一个系统的实现关键的不是代码的编写,而是设计,只有设计合理了,在后边代码实现的过程中才不会遇到问题,才不会像我们这次那样需要反复的修改。

  本次课程设计使我再次认识到了团队协作的重要性,一个人的能力毕竟是有限的,而大家的力量无穷的,有时候一个很小的问题,自己怎么也看不出来,叫别人来帮着看一下可能马上就能得到解决。团队成员之间的互相合作可以使问题得到更好的解决,并且在其过程中能够进一步的相互学习到更多的知识。当然,通过本次我也深知道自己相关专业知识掌握的还很不够,在代码的实现过程也存在诸多问题,对很多的语句语法了解不是很到位,不能很好地运用,需要进一步的学习与掌握。

  总的来说,本次课程设计使我对软件开发有了进一步的认识,学到了很多知识。这将对我以后的工作学习产生重要的意义!

  软件项目工作经验总结 9

  20xx年10月份

  1、公司产品的进一步熟悉:

  城管机器人:特点、功能

  数字城管:9+X系统的具体内容

  综合执法:能给客户带来的效益

  城管大脑:主要卖点

  2、项目流程各个环节的熟悉:侧重于软件项目的.整个流程。

  3、具体项目的深度参与:从前期的需求调研到招投标,项目中标后的移交工作,整个环节的参与。

  4、政府软件项目的设计方案、招标文件、投标文件、方案宣讲等文件的重要知识点的学习了解。

  5、对楼宇弱电这个行业有了更深刻的认识,对弱电这个圈子有了更深的了解。

  6、工作期间积极参加的各种会展活动和会议,我对行业前沿技术和发展方向有了更深的了解,同时了解到其他公司的一些优秀产品设计,提交的一些观点和意见已在公司新发布产品中体现。

  7、作为技术负责人,成功促成了公司与融创、复地、龙湖、恒大等公司的战略合作。

  8、自我评价与未来期望

  9、自认为我是一个执行力和学习能力都很强的人,善于解决工作中遇到的实际问题,在工作中学习,举一反三。注重最终结果,但也不会忽略过程。

  10、中国的未来充满机遇,特别是AI、智能、自动驾驶、物联网和信息安防产业,它们各有不同但又彼此紧密联系。我很愿意在行业中继续成长和发展,脚踏实地,挑战自我,在实现公司价值的同时实现自我价值的提升。

  软件项目工作经验总结 10

  一个企业的管理,大公司有大公司的方式,小公司也有小公司的方式,如果把别人的经验生搬硬套到自己身上,可能会适得其反。同样,管理一个软件项目也一样,大项目和小项目的方式不完全一样。但从另一个角度来看,项目的大与小并没有本质的区别,很多方法是共通的。本文的目的是从作者的经验来谈谈小项目开发的管理。

  一、小项目的特点

  大家知道,“软件危机”的出现起源于一些大型项目的不断延迟甚至失败。小项目相比之下,具有以下特点:

  1、项目功能相对较少

  2、开发人员较少

  3、开发周期较短

  另外,在现实中,有很多小项目是由一些中小公司进行开发的,这些公司往往人员流动性较大,这也是不容忽视的一个现实.

  二、小项目开发中常犯的错误

  小项目看起来比较简单,比较容易成功,因而人们往往忽视了小项目的管理,其实这是一种误解,从本人的经验看来,小项目开发中容易犯以下的一些错误:

  1、开发之前没有认真地进行项目可行性和工作量的估计。  往往由于项目较小,便很草率地制定一个开发日程表,没有认真地估计项目难度,结果实际完成时间与估计完成时间往往有较大差别。

  2、没有真正的设计过程

  开发人员少,意味着不同人员的程序之间交互、接口相对少一些。开发周期短意味着往往是同样的几个人从头到尾负责一个项目。这两者都让人容易犯些错误。往往是几个人碰一下头,讨论一下最基本的数据结构、函数接口便分头去做自己的工作了,没有一份较正式的文档。

  这种做法潜在的危险之一是有的人可能会对讨论出的'接口、结构理解有偏差(应该承认人是会犯错误的)。一个误解可能造成以后的返工。  另一个潜在的危险是由于讨论时忽略了某些情况,等大家都按当时的分工完成属于自己的工作后,才发现各个模块组合起来却形不成一个完整的系统。其根源在于没有一个负责协调的人员不断监控整个开发过程。

  第三个潜在的危险是一旦有人中途退出开发队伍,其他人加入时,新来的人难以理解以前别人做好的代码,索性自己从头来。另外,没有文档的程序,日后维护和版本升级都比较困难。

  3、不经过单元测试而直接进入系统测试

  造成这一现象的原因是每个模块相对比较简单,但是为了测试一个模块需要建立一些测试环境。例如,为了测试一个函数是否正确,应该用一些测试数据去调用该函数,需要编写一些测试数据。但很多开发人员嫌麻烦,觉得反正其他模块也很快出来了,直接用真正的数据来运行几次就行了。

  殊不知,一旦直接进入系统测试,发现运行结果不正确后需要一步步查找。由于模块间的调用关系,可能查了很久才发现是某个模块的问题。这种方法一来效率比较低,大量的时间用在了将一个错误定位在模块上了。另外由于这种测试不完全,真正运行系统,当调用某模块时,可能大部分时候都是正常数据,极少出现边界情况,可能某些边界情况容易被忽视,很久之后才被发现。但是如果对每个模块进行单元测试时都进行一下边界测试,就会很容易消除一些隐患。真可谓欲速则不达也。

  软件项目工作经验总结 11

  合理的开发模式,一句话形容就是“麻雀虽小,五脏俱全”,即使是小型项目的开发,仍然应该遵循软件开发的一般规律,必须的步骤不能省略。但是小项目有它自身的一些特点,实行起来可以相对灵活些。

  以下我从几个方面描述一下我认为比较合理的模式.

  1.需求获取

  在进入正式开发之前,必须先从用户处获取准确的需求。在这上面花费相当时间是很必要的。

  软件项目可以大致分为专用软件和通用软件两大类。

  对于专用软件,例如给某单位开发一套该单位专用的系统,一般用户对于软件要完成哪些功能已经有了一个比较清楚的轮廓,而且往往在开发合同中已经大致地规定了。

  但是,开发合同上规定的只是一个大概的框架,在进入开发之前必须与用户进行比较具体的交流和讨论,了解清楚用户心目中的产品究竟是什么样子。这个步骤如果没有好好做,往往到了开发工作的后期才发现开发人员的理解和用户的要求有一些误解,那么必然造成时间上的浪费。

  对于通用软件,在开发之前应该做一定的市场调查工作,一方面是从经济效益考虑,调查产品的潜在市场有多大,另一方面是从技术的角度,必须了解清楚潜在用户对软件的各种技术上的要求,例如,用户现有硬件配置如何,软件配置如何,使用什么网络,使用什么数据库等等,根据调查的'统计结果决定即将开发的软件的一些技术指标。

  为了比较好地与用户进行交流,使用一些工具是很有好处的。  为了讨论用户界面,可以用VB,delphi等做一个原型,根据原型有针对性地与用户讨论需求。(原型开发不仅仅可以用于准确获取用户的需求,开发出来的原型本身可以作为下一步开发的基础,增量式地完成开发)

  为了讨论软件运行的流程,可以采用UML的UseCase图。

  2.需求分析

  在了解用户的需求之后,将需求用一种模型来表示,就是需求分析,目前比较流行的分析方法是面向对象的方法,通过分析用户需求,用类、类之间的各种关系来表示整个系统。

  这部分涉及到具体的方法,在此不详细讨论,但是原则上是提取类->类之间关系,可能需要不断修改而形成一份分析文档。

  我想强调几个问题。

  一是要分清问题域与系统责任。系统责任是指所要开发的软件应该完成的功能,而问题域是包含所有相关的部分。例如你要开发一个程控机计费程序,程控机已经是现成,输出的数据格式也已经是固定的,你的程序仅仅需要从程控机中读取相应的信息,那么,程控机在你的系统里只是一个外部的东西,把它作为一个类也许就是不必要的,仅仅需要一个类来完成读数据的操作。又如,你需要在一个已经存在的数据库上开发一些应用,数据库的格式已经固定,并且已经有一个后台程序在运行,你需要开发一个新的前台程序,这时,服务器程序对你来说就是一个外部的东西。但是,象这种外部的内容必须在分析文档中有一些说明,作为系统的外在约束。

  二是需求获取与需求分析的关系。

  用什么方法来完成需求的获取,在很大程度上影响了需求分析的做法。

  例如当初采用UseCase来表示用户需求,那么从各种序列图中选出相互交互的各个实体,就是一个个类。

  三是分析与设计过程的衔接。

  分析过程的内容是用类的结构来表示目标系统,并不设计具体实现,如采用什么编程语言,在什么操作系统平台上运行等等。这些具体实现是在设计阶段来完成的。面向对象方法的优点是分析、设计、编码过程表示法统一,能比较好的衔接。但是,是把分析和设计阶段分开,采用瀑布式开发,还是采用其他方式,要看具体的情况。

  对于需求潜在变化不大的项目,可以采用瀑布模型,有一个很明显的设计阶段,这样做的好处是有一份比较完整的分析文档,这样以后如果需要采用不同的编程语言、或者采用其他的平台时,便可以以这份分析文档作为开发的基础。

  对于需求变化频繁的项目,可能采用少量分析;少量设计少量编码测试的方式更合适,而且随时可能要返回到前面某个一阶段去进行修改。但是这意味着可能没有一份完整的分析文档。

  现在很多CASE工具并不区分分析和设计的阶段。但是,这并不意味着开发就可以对分析和设计不加区分,CASE工具如同一支笔,如何用好还得还人。

  3.设计过程

  设计阶段的工作包括:

  对分析模型必要的修改。可能需要对某些类结构进行一些修改,这些修改的原因可能是编程环境的要求,或者为了重用以前的某些工作。

  定义界面部分、数据访问(数据库)部分。

  由于目前很多编程语言都可以可视化地设计界面,所以界面部分工作往往留到了编码阶段来完成。于是设计阶段的工作量并不大。

  4.编码

  进入编码工作之后,可能会发现前面分析或设计阶段的某些错误,这时应返回到前面的阶段进行必要的修改。

  5.测试

  如前所述,即使是小项目,也应该严格地进行测试。

  软件项目工作经验总结 12

  自2月份开始,我一直在跟进xx银行w-xxnd1s2.0项目的测试工作,至此为止已近6个月时间,从公司内部系统测试、验收测试,再到uat测试,以及投产前的系统压力测试等等。从开始到项目即将结束,一步步走过来。本次项目中,我作为测试环节的主力人员之一,仅对此项目中测试工作进行总结。

  一、项目测试进度控制。

  项目的测试进度主要是按照项目计划进行的,完全按照项目组计划要求完成测试任务、提交测试类相关文档,包括测试案例的.完善、制定测试计划、执行测试、缺陷跟踪以及bug回归测试等。协调项目的内部测试工作,本此项目中测试小组一共组织了四轮次系统全面测试工作,认真配合项目工作,共同保证项目质量。项目测试的问题跟踪及处理采用每日进行修改问题回归测试工作,每日同步更新问题跟踪单的模式,按照规划时间完成系统更新测试。

  二、项目组内部成员关系处理。

  在项目工作的这几个月里大家相处融洽,项目组内部共同探讨解决问题的方法,向各模块负责人学习模块功能处理方式,向业务人员了解系统中涉及的业务知识点,两者结合起来进行模块功能测试。鉴于之前辖内对公交易系统和中行对公项目的经验,也向项目组提出了一些完善性意见。

  三、协调用户测试方面。

  用户验收测试是项目测试工作的重要组成部分之一,是项目验收阶段的最终把关阶段,业务人员结合日常业务处理情况对系统进行的尝试性使用过程。本次项目客户测试方面也是我个人觉得不够安全感一个主要方面,客户测试介入力度太小,尽管我们已经很多次电话催促业务人员测试,每次联系相关业务人员进行测试,他们来到项目组开发现场测试,也仅仅一两个小时时间,简单的进行验证操作即可。xx银行利用两批系统培训的时间安排了两次分行集中测试,也算给项目进行了一次全面的测试,从中也暴露出不少系统存在的问题,目前项目组均已解决。

  四、测试成效方面。

  中信x-funds2.0系统测试中,共记录问题及客户新增需求825个,其中bug数量512个、系统完善类问题225个,新增需求类问题88个。组织了四轮次内部系统全面测试工作,兼顾日常系统更新测试工作,最大限度的进行了内部质量把关。配合外包公司一同进行系统压力测试及稳定性测试,测试结果符合客户要求。现中信x-funds2.0系统临近投产实施工作,测试组还将继续配合配合项目投产工作及投产后的补丁更新测试工作。

【软件项目工作经验总结】相关文章:

软件项目失败经验总结06-07

软件销售经验总结11-29

软件销售经验总结03-09

软件项目工作总结06-11

软件项目工作总结07-02

软件项目工作总结05-26

监理项目经验总结04-26

软件老手带新人经验总结08-05

软件老手带新人的经验总结08-05