软件开发第2章课件_第1页
软件开发第2章课件_第2页
软件开发第2章课件_第3页
软件开发第2章课件_第4页
软件开发第2章课件_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件开发过程 主编 马永涛 机械工业出版社第2章 软件开发的项目管理学习目标:1)掌握软件开发项目管理基本理论和方法。2)掌握软件开发项目管理具体实施方法。 项目管理是第二次世界大战后期发展起来的重大新管理技术之一。虽然在此之前项目管理已广泛应用于许多领域,如工程建设项目和新产品开发等。但直到第二次世界大战期间以及战后,它作为管理技术复杂的活动,或需要多学科协作的活动的一种特殊工具的价值,才完全被认识,其结果使项目管理成为一种相对来说较新的管理方法,得到迅速发展和不断完善。 2.1项目管理的基本概念和方法 2.1.1项目的定义 项目的定义:项目是指一次性的工作,它应在规定的时间内,由为此专门组

2、织起来的人员来完成;它应有一个明确的预期目标;还要有明确的可利用的资源范围,它需要运用多种学科的知识来解决问题;没有或很少有以往的经验可以借鉴。2.1.2 项目的特点 项目需要多方合作才能完成 通常是为了追求一种新的产物才组织项目 可利用资源预先要有明确的预算 可利用资源一经约定不再接受其他支援 有严格的时间界限,并公之于众 项目的构成人员来自具有不同专业知识背景的不同职能组织项目的产物未来的保全或扩展工作通常由项目参加者以外的人员来进行2.1.3项目管理 1.项目管理定义项目管理基本定义:项目管理是指在一定的约束条件(如:确定的时间范围、固定的资金投入、有限的人力资源、设备、材料、能源动力资

3、源等)下,以高效率地实现项目业主的目标(项目的质量、投资利用率、项目完成的进度)为目的,以项目经理个人负责制为基础和以项目为独立实体进行经济核算,并按照项目内在的逻辑规律进行有效的计划、组织、协调、控制等的一系列系统管理活动。2.项目管理的特点项目管理是一项复杂的工作项目管理具有创新性项目有其生命周期项目管理需要集权领导和建立专门的项目组织项目负责人(或称项目经理)在项目管理中起着非常重要的作用3.项目管理的主要内容 项目管理内容范围管理 资源管理费用管理沟通管理质量管理项目整体 管理 进度管理风险管理2.2软件开发中的项目管理软件行业从二十世纪六十年代始于操作系统的研发,到二十世纪九十年代中

4、期行业快速发展。从原有的作坊式开发到目前团队协作完成,从早期的技术力量竞争到现有的项目成本控制竞争,从面向结构到面向对象再到面向服务架构,软件开发项目管理被提到一个较高的高度,通过项目管理的方式能有效的经营项目来降低风险、控制成本,确保项目进度流畅,在有效的时间内保质、保量的完成项目的开发工作。 2.2.1软件开发项目管理的组织模式 软件开发项目管理的组织模式一般设置软件项目管理组负责整个项目的各项决策工作。而在项目管理组之下又设置几个相关的项目实施小组,每个项目小组均要指定相应的负责人,以负责和完成具体工作。 1项目经理项目经理是对整个项目负责的人,在整个项目开发过程中对项目组内所有非技术性

5、重要事情做出最终决定的人。主要工作职责:计划 主要包括:项目范围、项目质量、项目时间、项目成本的确认。项目过程/活动的标准化、规范化。根据项目范围、质量、时间与成本的综合因素的考虑,进行项目的总体规划与阶段计划。各项计划应得到上级领导、用户方及项目组成员认可。组织 主要内容:组织项目所需的各项资源。设置项目组中的各种角色,并分配好各角色的责任与权限。定制项目组内外的沟通计划。安排组内需求分析师、用户联系人等角色与用户的沟通与交流。处理项目组与其它项目干系人之间的关系。处理项目组内各角色之间的关系、处理项目组内各成员之间的关系。确认用户培训计划,并安排用户培训工作。领导 工作主要有:保证项目组目

6、标明确且理解一致。创建项目组的开发环境及氛围。提升项目组士气,加强项目组凝聚力。合理安排项目组各成员的工作。制定项目组需要的招聘或培训人员的计划。定期组织项目组成员进行相关技术培训等。及时发现项目组中出现的问题。及时处理项目组中出现的问题。控制 工作主要有:保证项目在预算成本范围内按规定的质量和进度达到项目目标。在项目生命周期的各个阶段,跟踪、检查项目组成员的工作质量及完成质量等。定期向领导汇报项目工作进度。对项目进行配置管理与规划。控制项目组各成员的工作进度。培养团队精神。2系统架构师系统架构师也可以理解成技术总监。系统架构师是在部门内所有软件项目中,对技术上所有重要的事情做出最终决定的人。

7、主要工作职责:完成软件项目的总体设计,负责软件组织新产品的开发与集成、新技术体系的构建。负责在技术上对所有重要事情做出最终决定的人。系统架构师随着开发进程的推进而其职责或关注点不断地变化。 3需求分析师需求分析师是项目前期与用户方打交道最多的人,对于用户来说,他可以代表整个项目组,对与项目组成员来说他的意见可以代表用户方的意见,项目组内所有与用户需求相关的事情必需得到他的认可。 主要工作职责:在项目前期根据需求调研计划等相关信息对用户进行需求调研。收集整理用户需求,负责编写用户需求说明书。代表项目组与用户沟通与项目需求有关的所有事项。代表用户与项目组成员沟通项目需求有关的所有事项。负责用户需求

8、说明书得到用户的认可与签字。负责将完成的项目模块给用户做演示,并收集对完成模块的意见。完成需求变更说明书,并得到用户的认可与签字。并协助系统架构师、系统分析师对需求进行理解。 4系统分析师系统分析师是项目组中的首席执行官,他涉及项目的所有方面,是项目进度的推动者,也是项目成功的关键人物,对项目成功以否起着重要作用。主要工作职责:协助需求分析师进行需求调研。分析、解析用户需求说明书,将系统需求整理成软件需求规格说明书。负责解决软件需求规格说明书被评审后发现的问题。在分析系统前,负责向架构设计师解释软件需求规格说明书的内容。协助架构设计师进行架构设计,并协助其完成系统架构说明书。根据系统架构说明书

9、对系统进行建模。系统分析及建模完成后,负责将建模成果转化为系统概要设计。协助数据库设计师按系统概要设计说明书进行数据库逻辑设计和物理设计,完成数据库CDM及PDM图,并协助其完成数据库设计说明书。协助软件设计师按系统概要设计说明书进行系统详细设计说明书。指导软件工程师按系统详细设计说明书进行代码实现。负责重点代码检查。协助项目经理进行配置管理,并提供优化改进建议。定期对项目组成员进行技术方面的培训。5数据库设计师数据库设计师又称DBA,是项目组中唯一能对数据库进行直接的操作的人。对项目中与数据库相关的所有重要的事做最终决定的人。主要工作职责:根据系统架构说明书或系统详细设计说明书与系统架构师、

10、系统分析师一同进行数据库建模。根据数据库建模结果,绘制数据库CDM与PDM图。根据数据库PDM图进行数据库建库。对数据库进行维护、备份、恢复、同步。负责用户数据的导入导出。对数据库进行初始化操作。协助软件设计师完成系统详细设计说明书中与数据库相关的部分。根据系统详细设计说明书编写对应的视图、存储过程、函数、触发器等。对项目组其它成员进行SQL方面的指导。定期对项目组其它成员进行数据库方面知识的培训。为测试经理及测试工程师建立测试数据。6软件设计师(模块设计师)软件设计师又称模块设计师,协助系统分析师对分模块进行详细设计,并直接管理和控制该模块的开发进度,对于本模块中所有重要的事做最终决定的人。

11、主要工作职责:根据系统概要设计说明书编写分模块的系统详细说明书。负责对软件工程师讲解系统详细设计说明书内容。协助软件工程师按系统详细设计说明书进行代码实现。控制本模块的开发进度。 7软件工程师软件工程师是最终实现代码的成员。主要工作职责:根据系统详细设计说明书完成代码编写工作。对自己代码进行复查,并进行简单的自查测试。 8测试经理测试经理主要工作就是找到项目中存在的不合理、不合格的部份,并要求项目其它成员按其给定的项目质量完成项目。主要工作职责:独立编写测试计划。独立编写测试用例。协调测试团队内部的工作以及与开发团队之间的工作。完成“执行测试”的工作。掌握较深层次的测试方法、测试技术和较复杂的

12、业务流程。负责测试过程工具的研究、推广与维护,负责测试数据库维护工作。负责编写用户手册、操作手册和相关培训教材。负责项目的质量审查。 9测试工程师测试工程师是项目质量的保证,是最终进行项目测试的主要成员。主要工作职责:在测试经理的安排和指导下,编写测试用例。在测试经理的安排和指导下,完成“执行测试”的工作。在测试经理的指导下,按测试计划进行测试工作。按测试用例进行测试工作。负责被分派项目的质量审计。了解项目的基本流程,可以熟练的进行项目中各种流程的操作。10配置管理工程师为产品开发团队提供全面的配置管理(CM)基础设施和环境工程师。主要工作职责:负责制定配置管理计划。负责制定和建立配置库。对变

13、更请求进行审查和进行有效控制。进行配置审计。报告配置状态创建部署单元。11实施经理作为一些较大的项目,在开发实施过程中完成协调工作的负责人。主要工作职责:负责制定项目实施计划。在项目实施计划的约束下,协调项目组相关资源,完成系统实施相关工作(包括系统安装、用户培训、系统上线、系统试运行等)。在项目实施阶段,跟踪、检查实施人员的工作质量。负责协助用户进行“用户确认测试”和编写确认测试报告等。 12实施工程师在一些较大项目中,在项目实施经理的指导下具体完成协调等工作的工程师。主要工作职责:在实施经理安排和指导下,执行项目用户现场实施任务。参与编写用户手册、操作手册和相关培训教材。参与进行“用户确认

14、测试”和编写确认测试报告。13界面设计工程师主要由一些美术工程师构成,根据用户的要求完成软件界面的设计工作。主要工作职责:负责完成软件设计师安排的功能界面设计。负责对项目整体色彩的调配。向系统分析师提出项目美化的建议。为项目提供一套或几套不同样式表及HTML结构表。为项目提供符合项目内容的静态、动态图片。并为软件设计师提供界面指导。 14产品经理当所开发的项目为产品型项目时设立,可由市场部成员兼。主要工作职责:对所负责的产品进行策划和管理。对所负责的产品进行市场调研和分析,及时提出应对措施。负责产品实现的内部管理,保证产品功能的顺利实现以及时满足市场需求。负责产品对外宣传与推广,开拓市场,提高

15、产品品牌知名度和认可度。配合销售制订产品销售策略,支持市场销售业务。 2.2.2软件开发项目实施过程管理 当要开发软件时,首先要成立项目组,并结合项目的大小、难易程度的不同,设立以之相对应的岗位和制定相应的工作职责。同时,还要重视开发过程管理。软件开发过程中,项目管理要重视实施过程的管理工作,它也体现在软件开发过程中各阶段相应的文档资料具体管理工作,需要为各项工作制定文档交验人、时间、命名约定等相关内容要求。1)立项文档交验人:项目配置负责人。文档交验时间:项目立项成功后一周内。命名约定:项目简称-文档主题,如(软件开发项目-项目审批表)。2)阶段评审文档交验人:阶段评审组织者。文档交验时间:

16、阶段评审后两天内。命名约定:项目简称-文档主题,如(软件开发项目-软件需求说明书)。 3)变更控制文档交验人:项目配置负责人。文档交验时间:变更得到批准后两天内。命名约定:项目简称-文档主题xxxx-xx-xx,如(软件开发项目-项目组成员变化申请表 年-月-日)。4)结项文档交验人:项目配置负责人。文档交验时间:项目完成结项手续前。命名约定:项目简称-文档主题,如(软件开发项目-项目开发总结报告)。 5)计划与控制文档交验人:项目配置负责人。文档交验时间:计划通过评审后一天内;周例会后一天内。命名约定:项目简称-文档主题,如(软件开发项目-设计阶段状态报告),或项目简称-文档主题xxxx-x

17、x-xx,如(软件开发项目-周例会纪要 年-月-日)。6)配置管理配置管理的工作产品可以糅合在项目开发计划中,因此,可能没有特别文档。7)需求分析文档交验人:项目配置负责人。文档交验时间:工作产品通过评审后两天内。命名约定:项目简称-文档主题,如(软件开发项目-需求规格说明书)。8)分析设计文档交验人:项目配置负责人。文档交验时间:工作产品通过评审后两天内。命名约定:项目简称-文档主题,如(软件开发项目-详细设计说明书)。 9)编码文档交验人:项目配置负责人。文档交验时间:工作产品通过评审后两天内。命名约定:项目简称-文档主题,如(软件开发项目-模块开发卷宗)。10)单元集成测试文档交验人:项

18、目配置负责人。文档交验时间:工作产品通过评审后两天内。命名约定:项目简称-文档主题,如(软件开发项目-系统测试用例)。11)部署文档交验人:项目配置负责人。文档交验时间:工作产品通过评审后两天内。命名约定:项目简称-文档主题,如(软件-用户手册)。12)过程和产品质量保证文档交验人:项目QA负责(接口)人员。文档交验时间:工作产品通过认可后两天内。命名约定:QA-项目简称-文档主题,如(QA-软件开发项目-需求阶段评估报告)。13)同行评审文档交验人:项目配置负责人。文档交验时间:同行评审后两天内。命名约定:项目简称-文档主题,如(软件开发项目-需求规格说明书同行评审记录)。14)验收测试文档

19、交验人:项目验收测试负责人。文档交验时间:测试通过认可后两天内。命名约定:项目简称-文档主题,如(软件开发项目-系统验收测试)。15)项目考核记录文档交验人:项目QA负责(接口)人员。文档交验时间:考核通告公布后一天内。命名约定:项目简称-文档主题,如(软件开发项目-项目考核记录表)。 2.2.3 软件开发项目立项管理工作在软件开发项目实施过程中,主要涉及的工作有:项目立项、项目管理等主要工作,以下就所要做的工作进行讨论,这些工作需要撰写相应的文档资料,并进行评审,通过评审来对整个开发过程进行有效的控制。 1立项立项基本工作主要包括编写软件开发项目立项审批表,并完成项目评审及确定是否立项。(1

20、)编写软件开发项目立项审批表 项目组成立后,经过初步的调查研究后进行编写软件开发项目立项审批表,通过评审并立项,项目才能真正开始实施 (2)评审 项目组提交软件开发项目立项审批表并完成评审工作。项目组撰写软件开发项目立项审批表以及相关表格后,应提交组织项目实施主管部门进行评审,评审前应将软件开发项目立项审批表等资料提交相关评审人员,组织相关人员(主要由软件开发组织的主管领导、技术总监、专业技术人员、管理咨询专家等组成)对该项目进行评审,以决定是否立项,并要提交评审报告书。 2.2.4 软件开发项目计划的制定与管理 当项目立项通过评审后,首先要做的就是制定项目计划书和对其进行评审。1软件开发计划

21、制定软件计划阶段是软件开发第一阶段,根据瀑布模型开发方法的特点,其开发过程是分阶段进行的,各个阶段的工作是顺序开展的,每一个阶段的工作成果(工件)将做为下一个阶段工作的基础。因此,每个阶段的工作均是至关重要的,特别是前期的工作就更加重要。(1)制订软件开发项目计划的方法与策略制订软件项目计划的目的在于建立并维护软件项目各项活动的计划,软件项目计划其实就是一个用来协调软件项目中其它所有计划,指导项目组对项目进行执行和监控的文件。一个好的软件项目计划可为项目的成功实施打下坚实的基础。制订软件项目计划要讲究方法和策略,以下介绍其方法与基本策略。注重项目计划的层次性 软件项目计划的层次及其关系如图2-

22、1所示。高级计划N级计划低级计划图21软件项目计划的层次关系高级计划N级计划低级计划图21软件项目计划的层次关系高级计划是指项目的早期计划。高级计划应当是一个较粗的计划,主要是进行项目的阶段划分,确定重大的里程碑,所需相关的资源,包括人力资源、设备资源、资金资源,即所谓的人、财、物三个要素。软件开发阶段交替之前,应做好下一阶段的详细计划,可称之为二级计划。详细计划要确定各项任务的负责人,开始时间,结束时间,任务之间的依赖关系,设备资源,小的事件点(即里程碑)。如果项目规模相对较大,可以有多级的计划,比如说,一个项目组可能分为几个开发组,二级计划是各开发组制订的适合的自己小组的计划。如果开发组还

23、分了小组,可以有小组的三级计划。重视与用户的沟通 与用户的沟通是很重要的。不必害怕用户知道我们的开发计划,特别是项目进度情况,应当和用户共享这些信息。该详细的详细该简略的简略 软件项目计划就如同软件项目本身一样有它特殊性,一个三五个人花两三个月就可以完工的小项目,可能项目计划就四五页纸,包括一个WBS(工作分解结构)和一个Gantee图(甘特图)。一个需要五六十个人甚至上百人,要花上半年或更长时间的大型软件项目则会有更多的项目计划内容。我们得按照项目的的特定情况量体裁衣。 制订的项目计划要现实 项目经理和系统分析员做出来的项目计划最终要能够被项目组成员所实现。制订项目计划仅靠“个人经验”是不够

24、的,不可能面面俱到。 运用过程化的思想指导开发 利用成熟的项目管理工具 (2)软件项目开发计划书的基本内容 软件项目开发计划书一般应该包括以下内容:引言项目概述 项目组织和资源 实施计划 专题计划要点 评审计划 质量保证计划 培训计划 系统安装计划 2.提交软件开发项目计划书并进行评审项目组撰写软件开发项目计划书后,应提交组织项目实施主管部门进行评审,评审前应将软件开发项目计划书提交相关评审人员,组织相关人员(主要由开发组织的主管领导、技术总监、专业技术人员、咨询专家等组成)对该项目计划书进行评审,以决定该计划是否可行,决定是否通过该项目计划,以及确定是否能进行下一阶段的工作。评审结果并要提交

25、评审报告书。 2.2.5软件配置管理近年来,国际上软件业按照ISO9000体系框架和要素的要求,紧密结合软件的特点,制定出在软件设计、开发、供应、维护等各个方面的国际标准来提高对软件开发工作的管理水平,有效地控制产品质量。 根据质量管理和质量保证标准第三部分:GB/T19001-ISO9001在软件开发、供应和维护中的使用指南中规定,质量体系包括一系列的支持活动要素,同时这些支持活动也为质量体系的实施提供保证。 软件开发是一项规模较大的系统工程,软件相对来说规模都较大,因而,在开发的项目管理工作中应进行配置管理,配置管理在软件的开发工作中显得很重要。软件配置管理简称SCM(Software C

26、onfiguration Management的缩写),是在团队开发中,标识、控制和管理软件变更的一种管理。配置管理的使用取决于项目规模和项目的复杂性以及项目风险高低等具体情况。国家计算机软件配置管理标准GB/T12505-90对软件开发配置管理进行相关的规定,作为软件开发组织应严格执行该标准,同时要结合软件开发的特点制订出本组织的标准及质量要求。 1配置管理在软件开发中的作用在质量体系的诸多支持活动中,配置管理处在支持活动的中心位置,它有机地把其它支持活动结合起来,形成一个整体,相互促进,相互影响,有力地保证了质量体系的实施。缺乏软件配置管理给软件开发带来的问题针对以上问题,国内很多软件开发

27、企业已经逐渐认识到配置管理的重要性,意识到只有认真加强管理和控制,才能提高软件的质量和开发效益。 存在问题开发人员之间沟通不够测试工作不规范开发管理松散文档与程序严重脱节软件测试开发周期过长2软件配置管理应提供的功能在ISO9000.3中,对配置管理系统的功能作了如下描述:唯一的标识每个软件(工件)项的版本;标识共同构成一完整产品的特定版本的每一软件(工件)项的版本;控制由两个或多个独立工作的人员同时对一给定软件(工件)项的更新;控制由两个或多个独立工作的人员同时对一给定软件(工件)项的更新;按要求在一个或多个位置对复杂产品的更新进行协调;标识并跟踪所有的措施和更改,这些措施和更改是在从开始直

28、到发行期间,由于更改请求或问题引起的。3版本管理软件配置管理分为版本管理、问题跟踪和建立管理三个部分,其中版本管理是基础。版本管理应完成以下主要任务:建立项目;重构任何修订版的某一项或某一文件;利用加锁技术防止覆盖;当增加一个修订版时要求输入变更描述;提供比较任意两个修订版的使用工具;采用增量存储方式;提供对修订版历史和锁定状态的报告功能;提供归并功能;允许在任何时候重构任何版本;其它任务,如:权限的设置、晋升模型的建立、提供各种报告等。4软件开发配置管理计划的基本格式和要求作为软件开发项目应结合所要开发软件的规模要求以及软件开发组织的相关规定制订相应的软件开发配置管理计划,并在整个开发过程中

29、严格遵照计划执行。软件开发配置管理计划通常具有以下格式及内容:1.引言2.管理3.软件配置管理活动4.工具、技术和方法 5.对供货单位的控制 6.记录的收集、维护和保存2.2.6软件质量管理 随着软件开发的规模越来越大,软件的质量问题显得越来越突出。软件质量的控制不单单是一个通过软件测试能解决的问题,在软件开发的所有阶段都应该注重质量管理。1质量管理的基本原则软件质量与其它产品的质量衡量标准是不相同的,也就是说,软件质量的表现与其它产品的质量表现是不一样的。 通常所说的软件质量主要体现为软件质量因素:软件质量因素健壮性开发的风险可用性可理解性可维护性正确性性完整性灵活性效率其他因素在软件的开发

30、工作中要实施质量管理,对整个开发过程均要进行有效地的质量管理和控制,其软件开发的质量管理的基本原则为:控制所有过程的质量 过程控制的出发点是预防不合格质量管理的中心任务是建立并实施文件化的质量保障体系持续的质量改进有效的质量体系应满足用户和组织内部双方的需要和利益定期评价质量体系搞好质量管理关键在于软件开发企业的领导和项目经理2软件质量保证(SQA)计划的格式SQA计划主要格式及内容要求如下:简介项目的基本情况SQA活动 标准 相关计划 测试计划 配置管理计划 风险管理计划培训计划 SQA工具、技术和方法 参考资料 2.2.7 软件的风险管理软件开发项目风险管理是指为了最好的达到项目的目标,识别、分配、应对项目生命周期内风险的科学与艺术。软件开发项目风险管理的目标是使潜在风险最小化风险管理涉及的主要过程包括:风险识别、风险量化、风险应对计划制定和风险监控。在软件开发过程中对风险的管理主要是依靠项目经理和管理人员的经验和对风险识别以及所采取有效措施,只有对风险进行有效管理,才能保证软件开发能顺利进行和最

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论