毕业设计(论文)题目:软件开发流程管理班级:11工升学号:1000303071姓名:指导教师:2014年11月上海海事大学继续教育学院毕业论文软件开发流程管理2摘要从软件开发最初至今,不断地有新的软件开发技术产生,但是在软件开发能力和质量方面却始终存在达不到预计目标这一问题。每一个软件开发的最大目标,就是最大限度提高质量与生产率。而影响质量与生产率的三个关键因素:过程、人和技术,因此,我们除了提高技术能力,培养更多优质人才之外,还需要制定一套软件开发过程管理标准,并在软件开发过程中对这一标准不断地完善,以达到提高软件质量与生产率的目标。本文结合CMM(软件过程成熟度模型),对软件开发、维护全过程进行标准化、规范化管理,制定出软件开发管理标准。关键词:软件开发过程,管理标准上海海事大学继续教育学院毕业论文软件开发流程管理3目录第一章软件开发的概念及目的..................................................................................4第二章软件开发流程划分及开发环境......................................................................42.1.软件开发阶段划分.........................................................................................42.2.软件开发环境需求...........................................................错误!未定义书签。第三章软件开发过程中存在的问题............................................错误!未定义书签。3.1.对用户方需求的掌握不全面...........................................错误!未定义书签。3.2.对软件的价值认识不清晰...............................................错误!未定义书签。3.3.跟用户方的合作不顺利...................................................错误!未定义书签。3.4.开发队伍的结构不合理...................................................错误!未定义书签。3.5.软件开发管理制度不健全...............................................错误!未定义书签。3.6.开发团队人员不稳定.......................................................错误!未定义书签。第四章软件开发流程管理规范................................................................................104.1.什么是CMM....................................................................................................104.2.结合CMM制定开发流程管理方案...............................................................114.2.1软件项目生命周期模型...........................................错误!未定义书签。4.2.2需求分析流程图及描述...........................................错误!未定义书签。4.2.3设计流程图及描述...................................................错误!未定义书签。4.2.4编码流程图及描述...................................................错误!未定义书签。4.2.5测试流程图及描述...................................................错误!未定义书签。4.2.6验收流程图及描述...............................................................................22第四章软件开发行业前景........................................................................................23参考文献..........................................................................................错误!未定义书签。上海海事大学继续教育学院毕业论文软件开发流程管理4第一章软件开发的概念及目的软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。为什么我们会使用软件开发?这样做的目的是为了什么,其中的一个主要原因是向客户提供价值不断增长的软件需求。基本的根本在于用户需求或市场营销目标必须创建或转换成好的软件应用。所以从本质上讲,软件开发是它允许最终用户执行他想做的任务。一个繁荣必然导致其他环节的上升。因此,许多公司都在提供软件开发项目。随着新开发过程中对世界的探索,软件开发将会无限增长。这是当今世界多少软件开发手段。企业网站建设的应用程序必须提供包括一系列非常复杂的机器不同的目的包括很多行业类型和几乎任何你能想到的。第二章软件开发流程划分及开发环境2.1软件开发阶段划分软件开发一般分为六个阶段:1.问题的定义及规划对所要解决的问题进行总体定义,包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效益和开发进度作出估计,制订完成开发任务的实施计划。2.需求分析上海海事大学继续教育学院毕业论文软件开发流程管理5软件需求分析就是对开发什么样的软件的一个系统的分析与设想。它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。在任何软件或系统开发的初始阶段必须先完全掌握用户需求,以期能将紧随的系统开发过程中哪些功能应该落实、采取何种规格以及设定哪些限制优先加以定位。系统工程师最终将据此完成设计方案,在此基础上对随后的程序开发、系统功能和性能的描述及限制作出定义。3.软件设计软件设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。可以是一个函数、过程、子程序、一段带有程序说明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元。模块,然后进行模块设计。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。4.程序编码软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的“源程序清单”。充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。当前软件开发中除在专用场合,已经很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言。而且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。5.软件测试软件测试的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试用例(测试数据与功能和预期的输出结果组成了测试用例)。如何才能上海海事大学继续教育学院毕业论文软件开发流程管理6设计出一套出色的测试用例,关键在于理解测试方法。不同的测试方法有不同的测试用例设计方法。两种常用的测试方法是白盒法测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。结构错误包括逻辑、数据流、初始化等错误。用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。白盒法和黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误。黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。6.软件维护维护是指在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。编写软件问题报告、软件修改报告。一个中等规模的软件,如果研制阶段需要一年至二年的时间,在它投入使用以后,其运行或工作时间可能持续五年至十年。那么它的维护阶段也是运行的这五年至十年期间。在这段时间,人们几乎需要着手解决研制阶段所遇到的各种问题,同时还要解决某些维护工作本身特有的问题。做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以使它扩展功能,提高性能,为用户带来明显的经济效益。然而遗憾的是,对软件维护工作的重视往往远不如对软件研制工作的重视。而事实上,和软件研制工作相比,软件维护的工作量和成本都要大得多。在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。在测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求说明书等。2.2软件开发环境需求开发平台软件开发平台源于繁琐的实践开发过程中。开发人员在实践中将常用的函数、类、抽象、接口等进行总结、封装,成为了可以重复使用的“中间件”,而随着“中间件”的成熟和通用,功能更强大、更能满足企业级客户需求的——软件开发平台应运而生。平台是一段时间内科研成果的汇聚,也是阶段性平台期的标志,为行业进入新的研发领域提供了基础。由于平台对企业核心竞争力的提升非常明显,目前国内的管理软件市场,软上海海事大学继续教育学院毕业论文软件开发流程管理7件开发平台的应用已经成为一种趋势。由于开发环境、开发人员、功能定位、行业背景等的不同,不同品牌的平台存在较大差别。开发环境软件开发环境在欧洲又叫集成式项目支持环境(IntegratedProjectSupportEnvironment,IPSE)。软件开发环境的主要组成成分是软件工具。人机界面是软件开发环境与用户之间的一个统一的交互式对话系统,它是软件开发环境的重要质量标志。存储各种