软件项目管理.doc_第1页
软件项目管理.doc_第2页
软件项目管理.doc_第3页
软件项目管理.doc_第4页
软件项目管理.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

软件项目管理 读书笔记王 铮 2005年2月目 录第1章 项目管理第2章 软件项目管理第3章 软件项目全生命周期第4章 软件项目启动阶段第5章 软件项目需求分析阶段第6章 软件项目设计阶段第7章 软件项目编码阶段第8章 软件项目测试阶段第9章 软件系统试运行阶段第10章 软件项目的验收第11章 软件项目的综合分析与评价第1章 项目管理一、 项目1、 项目:项目是一个特定的、待完成的有限任务,是在一定时间内,满足一系列特定目标的多项相关工作的总称。它包含三层含义:(1) 项目是一项有待完成的任务,有特定的环境和背景要求,具有特定的约束条件;(2) 在一定的组织机构内,利用有限的人力、财力、物力等资源,在规定的时间内完成任务;(3) 任务要满足一定的数量、质量、功能、性能和技术指标等多方面的要求。2、 项目的属性(1) 惟一性(2) 一次性(3) 多目标性(4) 生命周期属性(5) 相互依赖性(6) 冲突属性3、 项目的组成要素(1) 范围:内容、目标和要求(2) 组织:团队及其管理模式(3) 费用:成本计划及核算与控制(4) 质量:质量标准和交付成果(5) 进度:进度计划和执行控制二、 项目管理1、 概念(1) 项目管理是以项目为对象的、系统化的管理方法,通过一个临时性的、专门的柔性组织,对项目进行高效率的计划、组织、指导和控制,以实现项目全过程的动态管理和项目目标的综合协调与优化。(2) 实现项目全过程的动态管理是指在项目的生命周期内,不断进行资源的配置和协调,不断做出科学决策,从而使项目执行的全过程处于最佳的运行状态,产生最佳的效果。而项目目标的综合协调与优化是指项目管理应综合协调好时间、费用以及功能等约束性目标,在相对较短的时间内成功地达到一个特定的成果性目标。(3) 项目管理贯穿于项目的整个生命周期,对项目的整个过程进行管理。通过运用一种既规律又经济的方法对项目实行高效率的计划、组织、指导、和控制的手段,并在时间、费用和技术效果上达到预定目标。(4) 项目的特点也表明它所需要的管理及其管理方法与一般作业管理不同,项目管理者通常是通过各个职能部门调配并使用资源。项目管理是以项目经理(Project Manager)负责制为基础的目标管理,它是按任务(垂直结构)而不是按职能(平行结构)组织起来的,其主要任务包括项目计划、项目组织、质量管理、费用控制和进度控制。2、 特点(1) 项目管理的对象是项目或被当作项目来处理的作业。(2) 项目管理的全过程都贯穿着系统工程的思想(3) 项目管理的组织具有特殊性(4) 项目管理的组织强调其协调控制职能(5) 项目管理的基本方式是目标管理(6) 项目管理的要点是创造和保持一种使项目顺利进行的环境(7) 项目管理的方法、工具和手段具有先进性、开发性3、 项目管理的基本要素(1) 资源包括自然资源和人造资源、内部资源和外部资源、有形资源和无形资源(2) 需求和目标基本需求包括项目的实施范围、质量要求、成本目标或利润、时间目标以及必须满足的法规要求等。(3) 项目组织(4) 项目环境4、 项目管理的主要内容(1) 2个层次(企业层和项目层)(2) 4个阶段从项目的不同主体角度看涉及:业主、各承包商、监理、用户。从项目的生命周期看,项目管理经历:概念开发、开发阶段、实施阶段、收尾阶段。(3) 5个过程启动过程、计划、执行、控制、结束过程。(4) 9个领域(5) 42个要素(6) 多个主体第2章 软件项目管理一、 软件与软件项目的概念1、 软件软件的含义就是文档加程序。文档是软件“质”的部分,程序则是文档代码化的表现形式,是机器可直接执行的源代码。2、 软件项目软件项目是指采用计算机编程语言(数字语言),为实现一个目标系统即软件产品而开展的活动和过程,其目的是实现各类业务系统的信息化、业务流程的集成化管理与连续性执行。3、 特点(1) 以客户为中心的实现理念(2) 知识与技术特性(3) 面向对象的实现方法(4) 软件的多次完善性二、 软件生存期模型软件计划 工作成果计划任务书需求分析需求规格说明书软件设计设计说明书软件编码程序/文档清单软件测试测试报告软件实施用户报告软件维护功能、性能及环境变化软件开发工程流程图三、 软件项目管理的特点软件项目管理的宗旨是使软件项目能够按照既定的目标,保质、保量、按进度、不超出预算成本且顺利地完成。软件项目管理区别于其他项目管理的本质是人的脑力劳动能够得到最大潜能的挖掘与发挥。其独特性体现在以下几个方面:(1) 标准化(2) 规范化(3) 国际化(4) 阶段连续性(5) 并行性(6) 螺旋式循环渐进性(7) 大量复合型人才的参与(8) 自动化管理手段和网络化交流模式(9) 技术性强(10) 协作性强四、 软件项目管理的基本要素和主要内容1、 基本要素基本要素包括项目与项目管理、项目管理的运行、通过项目进行管理、系统方法与综合、软件开发、项目背景、项目阶段与生命周期、项目开发与评估2、 主要内容核心内容是:按需求界定目标;按目标制定计划;按计划组织资源,按计划执行管理过程;按目标落实和考核阶段性成果,按目标进行评估、分析、总结、改进、和完善。所以说,需求是依据、计划是前提、资源是保障、组织是手段、管理是核心、落实执行是保障、评估是必要。五、 软件项目管理的角色(1) 项目经理(2) 系统分析人员(3) 机构设计师/系统设计人员(4) 程序员(5) 测试员(6) 实施人员(7) 系统管理员第3章 软件项目全生命周期一、 软件项目全生命周期的阶段划分项目定义项目启动需求分析设计编码测试试运行验收运行维护结束 立项 设计 实现 收尾软件项目的生命周期模型二、 软件项目各阶段之间关系(1) 层次与继承关系在实际工作开展过程中,各个阶段的工作会出现一定的并行性,不一定完全按照必须前一个阶段工作完成和评审后,才允许开展下一阶段的工作。还会存在一定的回溯问题,即通常所说的问题反馈(图中虚线部分)。(2) 沟通与协调关系良好的沟通是软件项目成败的关键。项目的沟通管理就是要保证各阶段产生的项目信息及时、准确地提取、收集、传播、存储以及最终进行处置。三、 软件项目生命周期中里程碑的设定和管理在软件项目开展过程中包括七个重要的里程碑节点:(1) 项目立项完成期(2) 项目启动完成期(3) 需求分析完成期(4) 系统设计完成期(5) 软件编码完成期(6) 软件测试完成期(7) 系统试运行完成期(8) 项目验收完成期软件项目里程碑管理内容备案表序号里程碑交付成果开始时间完成时间1项目立项完成期立项建议书、可行性分析报告2005.2.152005.3.12项目启动完成期项目进度计划、质量保证计划2005.3.12005.3.153需求分析完成期需求分析说明书2005.3.152005.5.14系统设计完成期概要设计说明书、详细设计说明书2005.5.12005.7.15软件编码完成期源程序代码、用户使用手册2005.7.12005.8.206软件测试完成期测试计划、测试报告2005.8.202005.9.207系统试运行完成期系统试运行报告2005.9.202005.10.208项目验收完成期验收报告2005.10.202005.11.1本小组团队负责人意见:(签字)项目经理审批意见:(签字)项目委员会意见:(签字)项目相关人员意见:(签字)第4章 软件项目启动阶段软件项目启动即项目的筹备、规划与准备阶段。有两个重要的工作阶段:一是项目的立项;二是项目的全面计划。()项目立项立项建议书可行性分析报告确定项目任务书组建项目团队(二)项目计划制定软件范围计划项目进度计划费用使用计划人力资源计划项目沟通计划采购计划项目里程碑计划文档管理计划团队管理计划质量管理计划配置管理计划一、 项目立项软件项目立项一般需要经过以下几个阶段:(1) 项目发起:以书面形式递交领导,说明项目的必要性和可行性(2) 项目论证:对项目的可行性分析研究(3) 项目审核:(4) 项目立项:领导批准可行性分析:可行性分析研究的内容包括对现有系统的分析、对建议的新系统的描述、可选择的系统方案、投资和效益分析、社会因素方面的可行性、时间进度的合理性安排等,并最终得出结论,该项目是否可行。二、 制定项目任务书项目任务书中必须明确的两个重要内容是:项目目标和项目范围。三、 项目计划1、 特征可行性:计划必须是可行的弹性和可调性:能够预测到的变化和实际存在的差异,并及时解决创造性:发挥和利用想象性,满足项目的需求分析性:能探索研究项目内部和外部的各种因素,确定在计划中各种变化的因素和分析导致不确定性的原因。响应性:及时确定存在的问题,提供多种解决方案2、 内容项目的范围计划:涉及软件的功能、性能、限制、接口和可靠性等方面的内容进度计划:1、分析结构2、分解项目工作3、确定责任分配矩阵4、编制进度沟通计划里程碑计划采购计划人力资源计划质量保证计划配置管理计划四、 项目成本在项目启动阶段,项目经理要完成比较精确的项目计划(包括进度、成本、质量、资源等),精确的成本估算是非常重要的。涉及以下几个方面:项目规模成本估算项目工作量成本估算项目所需资源成本的估算五、 项目团队六、 项目质量软件质量的特征:(1) 功能性(2) 可靠性:在规定的时间和条件下,软件所能维持其性能水平的程度。(3) 易用性:用户界面友好性是一个重要的方面。(4) 效率(5) 可维护性(6) 可移植性第5章 软件项目需求分析阶段一、 需求分析的重要性需求分析是软件项目的立足之本。高质量的需求分析工作是保证整个软件项目成功的基础。二、 需求分析的工作内容问题分析(即如何获取需求)、需求描述(即如何定义需求)以及需求的验证。(1) 问题分析参与需求分析的系统分析员通过对问题及其环境的理解、分析和综合,消除用户需求的模糊性、歧异性和不一致性。(2) 需求描述以需求模型为基础,生成需求规格说明书和初步的用户手册。(3) 需求验证确保软件需求的全面性、精确性、一致性、可行性以及客户的认同,并使用户和软件设计人员对需求规格说明书及用户手册的理解达成共识,达成对目标系统理解的一致性。发现遗漏和模糊点,尽快更正。需求获取、需求分析以及编写需求规格说明和需求验证并不遵循线性顺序。需求分析的工作模式第一步:“访谈式”第二步:“诱导式”第三步:“确认式”三、 需求管理 确认的需求分析结果需求复用用户需求说明书用户需求调查输出 需求分析系统需求规格说明书系统需求定义输出需求变更控制需求确认需求跟踪需求开发与需求管理活动业务流程图项目需求变更控制第一步:需求变更申请申请变更的需求文档(输入需求文档的名称,版本,日前等信息) 变更的内容及其内容 评估需求变更将对项目造成的影响 申请人签字第二步:审批开发方负责人审批 审批意见签字 日期用户审批(限于合同项目)审批意见签字 日期第三步:更改需求文档 变更后的需求文档(输入名称,版本,完成日期等信息) 更改人签字第四步:重新确认需求开发方和客户方共同评审新的需求文档评审意见签字 日期第五步:结束变更 开发方负责人签字四、 快速原型法由于很难对实际需求作出较为准确的描述,因此,容易造成对需求产生不同的理解。原型法一般经历以下几个阶段:确定用户基本需求开发原型系统模型征求用户对原型的改进意见修改原型第6章 软件项目设计阶段一、 重要性系统设计是软件项目成败的关键。系统设计是基于需求分析的工作成果,对系统做深层次的分析,从而得出一系列行之有效的系统实现方案,是获取高质量、低耗费、易维护的软件系统的最为核心的环节。二、 设计阶段的目标和任务系统设计是一个将系统的需求规格转换成软件系统的说明过程。目标是要完成对“软件项目交付成果如何架构”的准确回答。其主要任务是包括构建系统框架,设计系统功能,描述系统流程,建立系统的数据模型、接口模型及界面模型,形成系统的逻辑结构。三、 设计阶段的主要工作内容软件设计分为两个主要的工作阶段:1、概要设计将软件需求转化为数据结构和软件的体系结构2、详细设计通过对软件结构与功能模块的细化工作,得到软件程序的数据结构、算法和实现流程。1、 系统结构设计原则:合适性、结构稳定性、模块可扩展性、代码可复用性步骤:如下图。策划设计方案界定约束调节系统设计准备系统设计评审编写设计文档需求再确认确定设计策略分解设计任务体系结构设计的主要步骤2、 功能模块设计原则:信息隐蔽、高内聚度、低耦合性步骤:设计准备,模块构建,文档编写(详细设计说明书),评审3、 数据与数据库设计数据设计原则:(1)用于软件的系统化方法也适用于数据(2) 确定所有的数据结构和在每种数据结构上施加的操作(3) 应当建立一个数据词典并用它来定义数据和软件的设计(4) 底层数据设计应推迟到设计过程的后期进行(5) 数据结构的表示只限于那些直接使用该数据结构的模块知道(6) 应当建立一个存放有效数据结构及相应操作的数据库(7) 软件设计和软件设计语言应当支持抽象数据类型的定义和实现数据库设计原则:(1) 命名规范(2) 数据的一致性和完整性(3) 数据库性能调整(4) 数据类型的选择数据库设计的步骤:(1) 设计准备1) 完成数据库设计的需求收集2) 需求的分析整理3) 确定本软件的数据库设计规则(2) 数据库设计1) 概念设计i. 设计局部E-R模型ii. 设计全局E-R模型iii. 全局E-R模型的优化2) 逻辑设计i. 初始模式形成ii. 规范化处理iii. 模式评价iv. 优化模式3) 物理设计主要包括存储记录的格式设计、存储方法设计、访问方法设计、完整性和安全性考虑等内容。(3) 编写数据库设计文档(4) 评审4、 用户界面设计原则:(1) 适合于软件的功能(2) 使用的简单性和易理解性(3) 一致性原则(4) 及时反馈信息(5) 出错处理(6) 灵活性用户界面设计的步骤:(1) 设计准备1) 搞清用户对界面设计的要求2) 与用户沟通和交流,详细掌握用户的日常工作习惯和对界面设计的看法3) 准备相关的设计工具和资料,收集各种资源4) 制定适用于本软件用户界面设计的详细设计规范(2) 界面设计1) 初创原型2) 原型评估3) 细化与再加工(3) 界面设计文档的编写(4) 评审四、 系统设计阶段的管理1、 系统设计阶段的进度管理(1) 考虑设计人员的能力(2) 做好阶段工作与任务分工(3) 采用先进的软件技术与工具(4) 及时沟通(5) 加强跟踪与监控项目每周例会的目标和议程目的:回顾本周项目开发进度情况,在小组成员之间交流信息结果:大家了解开发状况,并针对中间过程的修正提出具体的行动方案参加者:项目经理和所有项目小组成员成功的标志:交流了个人的开发工作进展情况,提出了问题,并指明了相应的处理措施议程表:1) 开始会议,宣读议程2) 总体项目进展和相关信息3) 个人进展情况汇报4) 需要后续行动的问题5) 总结和反馈6) 结束2、 系统设计阶段的质量管理(1) 对需求的正确理解(2) 监理与评审(3) 复用技术的采用(4) 版本控制与管理(5) 注重软件的结构设计第7章 软件项目编码阶段一、 重要性编码是软件项目实例化的根本途径。软件编码的作用是将系统分析和系统设计的结果和内容转换为用户需要的实际应用的过程。编码工作是在合理的系统分析和系统设计的基础上开展的,所以应在充分理解设计思路和实现方案的基础上编写程序,切忌盲目工作。二、 编码的目标和任务(1) 对软件编码任务进行工作分解,在整体项目计划的基础上制定本阶段的工作计划(包括进度、人员、费用、质量、自测试等);(2) 组建开发团队,进行有效管理,按计划完成任务;(3) 利用程序设计语言实现系统的各个功能;(4) 管理在开发和实现过程中产生的所有文档资料和软件系统的临时版本;三、 基本原则(1) 程序编码人员应严格按照系统设计说明书完成软件的编码工作。通过编码完成系统分析和系统设计阶段制定的目标。(2) 对于开发过程中发生的需求变更及设计变更等问题,需要通过项目启动阶段确定的变更控制流程处理。(3) 制定统一的软件编码规范,确保程序代码具有良好的编写风格和接口规范,是编码的程序代码易于理解和便于维护。(4) 注重软件阶段性成果及文档资料的管理工作,加强版本控制。(5) 注重团队协作精神的培养和运用,善于总结、加强沟通,提高团队凝聚力。(6) 注重提炼公用代码,加强公共模块的开发,形成公用编程知识库,以利用提高开发效率。四、 软件编码阶段的管理1、 进度管理(1) 工作精细化(2) 减少干扰(3) 使用正确有效的激励机制(4) 有效沟通(5) 合理的工作分配(6) 采用先进的软件开发平台和技术方法(7) 及时监督与检查2、 成本管理(1) 组建合理的人员结构和稳定的项目团队(2) 实行科学有效的管理(3) 采用现代先进技术和集成平台工具(4) 做好变更控制(5) 尽量采用成熟的商品化软件或中间件3、 质量管理(1) 正确理解设计说明书(2) 制定编码规范(3) 代码的规范性检查(4) 编码规范模板第8章 软件项目测试阶段一、 重要性软件测试是验证软件项目质量的基本手段。按照软件工程的思想,测试活动贯穿于软件项目生命周期的各个环节。二、 软件项目测试的目标(1) 以尽量少的时间和人力,系统全面地找出软件中潜在的各种错误和缺陷。(2) 如果成功的实施了测试,就能够发现软件中的错误。(3) 测试能够证明软件的功能和性能与需求说明是否符合。(4) 测试过程和结果数据将会为分析软件项目交付成果的性能提供真实的依据。(5) 不要以为一次测试的无错误完成就表明软件系统中就没有任何纰漏和错误。(6) 测试应反复进行,应从多个角度入手,应组织多方面人员参与。三、 软件项目测试的原则和方法1、 软件项目测试的原则(1) 应充分认识到软件测试是各个阶段都应有测试人员的参与,必须树立尽早和不断进行测试的意识。(2) 测试用例应由测试输入数据和对应的预期输出结果两部分组成。(3) 程序员应避免负责测试自己编写的程序。(4) 应包括合理的和不合理的输入条件。(5) 除检查程序功能是否完备外,还应检查程序功能是否多余。(6) 程序流程和接口内容的测试绝不可忽视。(7) 充分注意测试中的群集现象。(8) 严格执行测试计划,排除测试的随意性。(9) 应当对每个测试结果做全面的检查。(10) 妥善保存测试计划、测试用例、出错统计和最终分析报告。(11) 性能测试和功能测试同样重要。2、 软件项目测试的方法(1) 动态测试1) 黑盒法2) 白盒法(2) 静态测试:人工评审软件文档和程序。(3) 正确性证明测试证明程序的正确性。(尚未成熟)四、 软件项目测试的主要内容1、单元测试在软件开发过程中针对程序模块进行的正确性检验。(多采用白盒测试技术)。单元测试的主要内容包括:A:模块接口测试B:模块局部数据结构测试C:模块路径测试D:错误处理测试 E:边界测试2、集成测试A:自顶向下集成测试B:自底向上集成测试3、确认测试1) 确认测试标准2) 配置复审3) 、测试4、系统测试1) 恢复测试2) 安全测试3) 强度测试4) 性能测试5、排错处理6、测试过程第9章 软件系统试运行阶段一、 重要性实施是软件项目用户化的基本手段。系统试运行相当于用户开展的初步验收测试,试运行阶段的工作记录将作为系统验收的重要依据。二、 软件试运行的目标和内容目标:(1) 通过用户对实际业务的模拟操作,检验系统的设计和实现功能是否真正满足用户的实际业务需求。在实际业务环境中,查找软件编码中潜在的问题和错误。(2) 通过操作人员的实际工作体会,提前进行系统的可用性评价非常有益。(3) 提前在实际运行环境中检验系统处理业务峰值数据的稳定性和系统的健壮性。(4

温馨提示

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

最新文档

评论

0/150

提交评论