您的位置:首页 > 运维架构 > 网站架构

软件架构设计之六:开发管理

2013-08-25 16:08 330 查看

一、本章要点

1)项目的范围、时间、成本

2)文档管理工作、配置管理

3)软件开发的质量与风险、软件质量属性

4)软件的运行与评价

5)软件过程改进

 

二、项目管理概述

1)项目是在特定条件下,具有特定目标的一次性任务,是在一定时间内,满足一系列特定目标的多项相关工作的总称。

2)项目定义的三个层次:

  (1)项目是一项有待完成的任务,且有特定的环境与要求

  (2)在一定的组织机构内,利用有限资源在规定时间内完成任务

  (3)任务要满足一定性能、质量、数量和技术指标等要求

3)项目的目标包括成果性目标和约束性目标。

4)项目管理把各种资源应用于目标,以实现项目的目标,满足各方面既定的需求。

5)项目管理的主要要素有环境、资源、目标和组织,最大特点是注重综合性管理,且有严格时间期限。

6)项目的生命周期分别为几个阶段:概念阶段、开发阶段、实施阶段和结束阶段。

 

三、范围管理

1)项目范围是为了达到项目目标,为了交付具有某种特制的产品和服务,项目所规定要做的。是项目目标的更具体表达。

2)项目的范围管理就是要确定哪些工作是项目应该做的,哪些不应该包括在项目中。

3)项目的范围管理影响到信息系统项目的成功,需求蔓延时信息系统失败最常见的原因之一。

4)在信息系统项目中,存在两个相互关联的范围:产品范围和项目范围。

1、范围管理计划

1)项目范围计划描述的是项目的边界,范围管理计划是如何保证项目边界应该采取的行为。

2)项目的范围管理计划包括:

  (1)如何从项目初步的范围说明书来编制详细的范围说明书。

  (2)如何进行更加详细的项目范围说明书编制工作分解结构(Wokr Breakdown Structure,WBS),如何核准和维持编制的WBS。

  (3)如何核实和验收项目所完成的可交付成果。

2、范围定义

1)范围定义可以增加项目时间、费用和资源估算的准确度,定义了实施项目控制的依据,明确了相关责任人在项目中的责任,明确项目的范围、合理性、目标以及主要可交付成果。

2)范围定义主要任务:范围边界和可交付成果。

3、创建工作分解结构

1)WBS是面向可交付物的项目元素的层次分解,它组织并定义了整个项目范围。

2)WBS吧项目整体或主要的可交付成果分解成容易管理、方便控制的若干个子项目或工作包,子项目需要继续分解为工作包。

3)  WBS的上面3层由客户指定,下面三层由项目组内部控制,这样分层特点如下:

  (1)每层中的所有要素之和是下一层的工作之和

  (2)每个工作要素应该具体指派一个层次,而不应该指派给多个项目

  (3)WBS需要有投入工作的范围描述,这样才能使所有的人对要完成的工作有全面的了解



4)每个分解单元中都存在可交付成果和里程牌。

4、范围变更

1)范围变更是对达成一致的、WBS定义的项目范围的修改。

2)范围变更控制的主要工作如下:

  (1)影响造成项目变化的因素,并尽量使这些因素向有利方向发展。

  (2)判断项目变化范围是否已经发生。

  (3)一旦范围变化已经发生,就要采取实际的处理措施。

 

四、成本管理

项目的成本管理要估计为了提交项目可交付成果所进行的所有任务和活动,以及这些任务和活动需要进行的事件和所需要的资源。

1、成本估算

1)成本估算是对项目投入的各种资源的成本进行估算,并编制费用估算书。

2)主要靠分解和类推的手段。

3)自顶向下估算法:从项目整体出发,进行类推。即估算人员根据以前已完成项目所消耗的总成本,来推算将要开发的软件的总成本,然后按比例将它分配到各开发任务单元中去。

4)自底向上估算法:把待开发的软件细分,直到每一个子任务都已经明确所需要的开发工作量,然后把它们加起来,得到软件开发的总工作量。

5)差别估算法:综合上述两种算法,与已完成的项目类比,区分类似部分和不同部分,类似部分按实际量计算,不同部分则采用相应方法估算。

2、成本预算

项目成本预算是进行项目成本控制的基础,将项目的成本估算分配到项目的各项具体工作上,以确定项目各项工作和活动的成本定额,指定项目成本的控制标准,规定项目意外成本的划分与使用规则。

1)成本预算技术:项目成本预算使用的工具和技术有成本总计、管理储备、参数模型、支出的合理化原则。

2)预算的步骤:分摊项目总成本到WBS的各个工作包中;将每个工作包分配得到的成本再二次分配到工作包所包含的的各项活动上;确定各项成本预算支出的时间计划,以及每一时间点对应的累积预算成本,指定出项目成本预算计划。

3)直接成本与间接成本。

4)零基准预算:不以过去的相似项目成本作为成本预算的基准。常用于一系列的项目,整个组织和时间跨度为几年的项目。

3、挣值分析

一种进度和成本测量技术,又称偏差分析法,通过测量和计算已完成的工作的预算费用、已完成工作的实际费用、计划工作的预算费用,得到有关计划实施的进度和费用偏差,达到判断项目预算和进度计划执行情况的目的。独特之处在于以预算和费用来衡量工程的进度。

1)基本参数

  (1)计划工作量的预算费用(Budgeted Cost for Work Scheduled,BCWS)

  (2)已完成工作量的实际费用(Actual Cost for Work Performed,ACWP)

  (3)已完成工作量的预算成本(Budgeted Cost for Wokr Performed,BCWP)

  (4)剩余工作的成本(Estimate to Completion,ETC)

2)评价指标

  (1)进度偏差(Schedule Variance,SV)

  (2)费用偏差(Cost Variance,CV)

  (3)成本绩效指数(Cost Performace Index,CPI)

  (4)进度绩效指数(Schedule Performance Index,SPI)

3)项目完成成本在预测:项目出现成本偏差,已完成工作的预算成本与实际成本不符,需重新估算项目成本,也称最终估算成本(Estimate at Completion,EAC)

  (1)认为日后工作效率相同,则未完成部分(实际/预算)与完成部分的(实际/预算)比例相同。

  (2)未完成部分依然使用原来的预算值

  (3)重新对未完成的工作进行预算

 

五、时间管理

在给定时间内完成项目是项目的重要约束性目标。

1、活动排序

1)分析活动之间的逻辑关系,确定其依赖关系,以及组织关系,这就是活动排序。

2)前导图法(Precedence Diagramming Methond,PDM),也称为单代号网络图法(Active On the Node,AON)。

  (1)每个节点表示活动,箭线表示依赖关系



  (2)最早开始时间(ES)、最迟开始时间(LS)、最早结束时间(EF)和最迟结束时间(LF)

  (3)依赖关系:完成对开始(FS)、完成对完成(FF)、开始对开始(SS)和开始对完成(SF)



3)箭线图法(Arrow Diagramming Method,ADM),也称双代号网络图法(Active On the Arrow,AOA)。

  (1)箭线表示活动,并在节点处将其连接起来

  (2)活动的开始(箭尾)事件叫做紧前事件(precede event),活动的结束(箭线)事件叫做紧随事件(successor event,紧后事件)

  (3)三个基本原则:网络图中不会有相同的代号;任两项活动紧前事件和紧随事件代号至少一个不相同,节点序号沿箭线方向越来越大;流入(流出)统一事件的活动,均有相同的后继活动(或先行活动)

  (4)虚箭线代表虚活动(dummy activity),不消耗时间和资源。



4)确定依赖关系

  (1)强制性依赖关系。活动固有的依赖关系,无法改变。也称硬逻辑关系、工艺关系。

  (2)可自由处理的依赖关系。人为组织确定的一种先后关系,也成为软逻辑关系、组织关系。

  (3)外部依赖关系,涉及到项目和非项目活动之间的关系。

  (4)逻辑关系的表达可分为:平行、顺序和搭接三种。

2、活动历时估算

1)软件项目的工作量

  (1)估算错误被列入软件项目失败的4大原因之一。

  (2)LOC(line of code),可执行源代码行数。

  (3)可根据历史项目审计来核算。

2)德尔菲法(Delphi)

  (1)结合了专家判断法和三点估算法,在无历史数据情况下进行评定。

  (2)易受专家主观意识和思维局限影响。

  (3)主要步骤:给每位专家发放软件系统规格说明书;收集ai(最少源代码行数)、mi(最可能源代码行数)和bi(最多源代码行数);计算期望Ei=(ai+4mi+bi)/6,E=(E1+E2+...+En)/n;多次重复,得到最终共识的结果,与历史数据比较。

3)类比估算法

  (1)整理出项目功能列表和实现每个功能的代码行。

  (2)表示每个功能列表与历史项目的相同点与不同点,特别要注意历史项目做得不够的地方。

  (3)通过步骤(1)和(2)得出各个功能的估计值。

  (4)产生规模估计。

4)功能点估计法

  (1)在需求分析阶段基于系统功能的一种规模估计方法。

  (2)步骤如下:计算输入、输出、查询、主控文件与接口需求数目;将这些数据进行加权乘;估计者根据对复杂度的判断,总数可以用+25%、0或-25%调整。

3、关键路径法(Critical Path Method,CPM)

1)CPM法的关键是计算总时差,这样可决定哪一活动有最小时间弹性。

2)CPM算法的核心思想是将WBS分解的活动按逻辑关系加以整合,统筹计算出整个项目的工期和关键路径。

3)关键路径:从开始节点到结束节点的最长路径;关键活动:关键路径上的活动。

4)活动的总时差指在不延误总工期的前提下,该活动的机动时间;等于该活动最迟完成(或开始)时间与最早完成(或开始)时间之差。

5)活动的自由时差是指在不影响紧后活动的最早开始时间前提下,该活动的机动时间。

6)对于有紧后活动的活动,其自由时差等于所有紧后活动最早开始时间减本活动最早完成时间所得之差的最小值。

7)对于没有紧后活动的活动,也就是以网络计划终点节点为完成节点的活动,其自由时差等于计划工期与本活动最早完成时间之差。

8)费用斜率描述的是某一项活动加急所需要的代价比,即平均每加急一个时间单位所需要付出的代价。选择费用斜率较低的活动进行优化,缩短其时间。

9)进度压缩是指在不改变项目范围的条件下缩短项目进度的途径。

4、计划评审技术

1)PERT(Plan Evaluation and Review Technique,计划评审技术)和CPM都是安排项目进度,指定项目进度计划的最常用方法。

2)通常用两张表来定义网络图;一张表给出与一特定软件项目有关的所有任务(也称为任务分解结构)。另一张表给出应当按照什么样的次序来完成这些任务(也称为限制表)。

3)在PERT图中,用箭号表示事件,即要完成的任务。箭头旁给出子任务的名称和完成盖子任务所需要的时间。用圆圈节点表示事件的起点和终点。

4)活动的时间估计

  (1)乐观时间(optimistic time):任何事情都顺利的情况下,完成某项工作的时间。

  (2)最可能时间(most likely time):正常情况下,完成某项工作的时间。

  (3)悲观时间(pessimistic time):最不利的情况下,完成某项工作的时间。

5)项目周期估算:PERT认为整个项目的完成时间是各个活动完成时间之和,且服从正态分布。

5、甘特图(Gantt)

1)水平线段表示活动的工作阶段,线段的起点和终点分别对应着活动的开始时间和完成时间。

2)纵线指明已完成的活动(纵线扫过的)和有待完成的活动(纵线尚未扫过的)。

3)文档编制与评审是项目进度的里程碑,也是活动完成的标准。

4)优点是标明了各活动的计划进度和当前进度,能动态地反映项目进展情况,能反映活动之间静态的逻辑关系。

5)缺点是难以反映多个活动之间存在的复杂的逻辑关系,没有指出影响项目生命周期的关键所在,不利于合理地组织安排整个系统,不利于进行系统动态优化管理。



6、时标网络图(Time Scalar Network)

克服了甘特图的缺点,用带有时标的网状图表示各子任务的进度情况,以反映各子任务在进度上的依赖关系。



7、进度控制

1)将实际进度与计划进度比较分析,以保持工期不变,保证质量和费用最少,作出有效决策,进行项目进度更新,这是进度控制和管理的宗旨。

2)分析进度偏差的影响

  (1)分析产生进度偏差的活动是否是关键活动。

  (2)分析进度偏差是否大于总时差。

  (3)分析进度偏差是否大于自由时差。

 3)项目进度计划的调整

  (1)关键活动的调整。情况一:关键活动的实际进度较计划进度提前时的调整方法。情况二:关键活动的实际进度较计划进度落后时的调整方法。

  (2)非关键活动的调整。在总时差范围内延长非关键活动的持续时间、缩短工作的持续时间、调整工作的开始或完成时间。

  (3)增减工作项目。

  (4)资源调整。

 

六、配置管理

配置管理是标识和确定系统中配置项的过程,在系统整个生命期内控制这些配置项的投放和更动,记录并报告配置的状态和变动要求,验证配置项的完整性和正确性。

1、配置管理流程

1)编制项目配置管理计划

2)配置标识

3)变更管理和配置控制

4)配置状态说明

5)配置审核

6)版本管理和发行管理

2、配置标识

1)确定配置项,判断一个文档是否进行配置管理的标准是此文档是否有多个人需要使用。

2)基线,是项目生存期各开发阶段末尾的特定点,也称为里程碑。

3)功能基线、分配基线和产品基线。

3、变更管理

1)变更产生的原因:

  (1)项目外部环境发生变化。

  (2)项目总体设计、项目需求分析不够周详,有一定的错误或遗漏。

  (3)新技术的出现,设计人员提出了新的设计方案或新的实现手段。

  (4)建设单位由于机构重组等原因造成业务流程的变化。

2)配置库也称为配置项库,是用来存放配置项的工具,分为开发库、受控库和产品库。

3)变更控制系统是一套事先确定的修改项目文件或改变项目活动时应遵循的程序,其中包括必要的表格或其他书面文件,责任追踪,以及变更审批制度、人员和权限。

4、版本管理

信息产品的版本有两个方面的意思,一是指不同运行环境的系列产品,如Linux版、Windows版,也称为变体;另一种是信息系统产品投入使用后,经过一系列的变更,形成一系列顺序演化的产品。

5、配置审核

1)配置审核的任务是验证配置项对配置标识的一致性。

2)验证包括如下方面:

  (1)对配置项的处理是否有背离初始的规格说明或已批准的变更请求的现象。

  (2)配置标识的准则是否得到了遵循。

  (3)变更控制规程是否已遵循,变更记录是否可供使用。

  (4)在规格说明、信息系统产品和变更请求之间是否保持了可追溯性。

3)配置审核的时机如下:

  (1)产品交付或是产品正式发行前。

  (2)开发阶段工作结束之后。

  (3)在维护工作中,定期地进行。

6、配置状态报告

其任务是有效记录报告管理配置所需要的信息,目的是及时、准确地给出配置项的当前状况,供相关人员了解,以加强配置管理工作。

包括内容如下:

  (1)各变更请求概要(2)基线库状态(3)发行信息(4)备份信息(5)配置管理工具状态(6)配置管理培训状态

 

七、质量管理

质量管理的8项原则:以顾客为关注焦点、领导作用、全员参与、过程方法、管理的系统方法、持续改进、以事实为基础进行决策、与供方互利的关系。

1、质量保证

软件质量保证(Software Quality Assurance,SQA)是指为保证软件系统或软件产品充分满足用户要求的质量而进行的有计划、有组织的活动,这些活动贯穿于软件生产的各个阶段,即真个生命周期。

2、质量控制

质量控制是指监视项目的具体结果,确定其是否符合相关的质量标准,并判断如何能够去除造成不合格结果的根源。

项目的质量控制主要从项目产品/服务的质量控制和项目管理过程的质量控制两方面进行。

3、软件质量管理

1)软件质量是指软件产品中能满足给定需求的各种特性的综合,这些特性称作质量特性。

2)验证:指在软件开发周期中一个给定阶段的产品是否达到在上一阶段确立的需求的过程。

3)确认:指在软件开发过程结束时对软件进行评价以确定它是否和软件需求相一致的过程。

4)测试:指通过执行程序来有意识地发现程序中的设计错误和编码错误的过程,是验证和确认的手段之一。



八、风险管理

1)风险定义的三个方面:关心未来;关心变化;关心选择。

2)风险的分类:

 




3)风险管理的流程:

  (1)风险管理计划编制(2)风险识别(3)风险定性分析(4)风险定量分析(5)风险应对计划编制(6)风险监控

4)风险定性分析

  (1)风险概率及影响评估(2)风险数据质量评估(3)风险种类(4)风险紧急度评估

5)风险定量分析

  (1)数据收集和表示技术(风险信息访谈、概率分布、专家判断)

  (2)定量风险分析和建模技术(灵敏度分析、期望货币价值分析、决策树分析、建模和仿真)

6)商业风险

  (1)建立的软件虽然很优秀但不是市场真正所想要的(市场风险)

  (2)建立的软件不再符合公司的整个软件产品战略(策略风险)

  (3)建立了销售部门不清楚如何推销的软件(销售风险)

  (4)由于重点转移或人员变动而失去上级管理部门的支持(管理风险)

  (5)没有得到预算或人员的保证(预算风险)

 

九、软件运行与评价

1)系统评价:立项评价、中期评价和结项评价。

2)运行管理是指对系统的运行进行审计跟踪,系统运行情况的记录和日常维护

 

十、软件过程改进

主要考察软件过程能力成熟度模型(Capability Maturity Model,CMM)和能力成熟度模型集成(Capability Maturity Model Integration,CMMI)

1、CMM

CMM模型描述和分析了软件过程能力的发展程度,确立了一个软件过程成熟程度的分级标准。

1)初始级。软件过程的特点是无秩序性,有时甚至是混乱的。

2)可重复级。已经建立了基本的项目管理过程,可用于对成本、进度和功能特性进行跟踪。

3)已定义级。用于管理方面和工程方面的软件过程均已文档化、标准化,并形成整个软件组织的标准软件过程。

4)已管理级。软件过程和产品质量有详细的度量标准,得到了定量的认识和控制。已管理级的管理是量化的管理。

5)优化级。通过对来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续地进行过程改进。



2、CMMI

1)与CMM相比,CMMI涉及面更广,专业领域覆盖软件工程、系统工程、集成产品开发和系统采购。

2)CMMI的基础源模型包括软件CMM、系统工程CMM、以及集成化产品和过程开发CMM等。

3)CMMI也描述了5个不同的成熟度级别。

4)每一种CMMI模型都有阶段式和连续式两种表示法,因为在CMMI的三个源模型中,CMM是“阶段式”模型,系统工程能力模型是“连续式”模型,而集成开发(IPD)CMM是一个混合模型,组合了阶段式和连续式的特点。

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐