软件是程序/数据/相关文档的完整集合软件发展阶段:程序设计阶段/程序系统阶段/软件工程阶段项目是在一定的资源约束下,完成既定目标的一次性的系列任务项目受4因素制约:工作范围/成本/进度计划/客户满意度项目目标的三重约束:功效/时间/费用项目的生命周期:启动/计划/实施/结束项目管理:以项目为对象的系统管理方法,通过一个临时的专门的柔性组织,对项目进行高效率的计划、组织、指导和控制,以实现项目目标软件项目管理:为了使软件项目能按照预定的成本、进度、质量顺利完成,而对经费、人员、进度、性能、风险等进行分析和管理的活动软件工程:应用计算机科学、数学、及管理科学等原理开发软件的工程软件工程3要素:方法/工具/过程软件工程的过程:软件规格说明/软件开发/软件确认/软件演进软件开发阶段:需求分析/概要设计/详细设计/编码/测试/安装及维护瀑布模型特点:阶段间具有顺序性和依赖性/推迟实现的观点/每个阶段必须完成规定的文档和成果/每个阶段结束前完成文档审查,尽早改正错误快速应用开发RAD模型:强调极短的开发周期,使用基于构件的方法RAD阶段:需求计划/用户描述/构建/结束螺旋模型活动:制定方案/风险分析/实施工程/评估敏捷软件开发模型Scrum:能够尽快的响应变化软件能力成熟度模型CMM:初始级/可重复级/已定义级/已管理级/优化级PSP:个体软件过程TSP:群组软件过程RUP是建立在uml基础上的RUP二维坐标:横轴表示时间组织/纵轴以内容来组织RUP的阶段:初始/细化/构造/交付RUP核心工作流:商业建模/需求/分析和设计/实现/测试/部署/配置和变更管理/项目管理/环境极限编程XP微软解决方案框架MSF软件项目管理过程:启动软件项目/制定项目计划/实施和监控阶段/项目收尾和结束软件工程开发过程与软件项目管理过程的关系:两个过程目标是一致的/两个过程管理的对象是一致的/两个过程的开始和结束时间是一样的/它们分析问题的角度和管理的侧重点不同,前者是从工程的角度出发,后者是从计划和执行的角度;前者侧重开发过程的工作内容,后者侧重管理的内容项目范围是指为交付具有规定特征和功能的产品或服务所必须完成的工作识别项目是确定项目范围的首要工作用户和技术是识别项目的关键预算方法:工作分解结构WBS/自底向上的成本估算/自顶向下的成本估算(模拟估算法/参数模型法) 可行性分析:经济可行性/技术可行性/社会可行性(外部环境可行性/管理和操作的可行性) 项目范围管理:是指对项目包括什么与不包括什么的定义与控制过程范围包含两方面:产品范围/项目范围项目范围管理的过程:范围计划编制/范围定义/范围核实/范围的变更控制项目结构分析包括:项目的结构分解/项目的单元定义/项目单元之间逻辑关系的分析项目结构分解的工具是工作分解结构WBS,它是一个分级的树形结构,是将项目按照其内在结构或实施过程的顺序进行逐层分解而形成的结构示意图任务责任矩阵是在任务分解的基础上,把工作分配给相关人员,用一个矩阵表格表示任务的分工和责任WBS设计的方法:类比法(以一个类似项目的WBS模板为基础,来制定本项目的工作分解结构)/自上而下法(从整个项目开始,逐步分解为下一级的多个子项)/自下而上法(先确定项目有关的各项具体任务,然后将任务合并到整体或上一级中) WBS项目结构分解的原则:在各层次上保持项目内容的完整性,不能遗漏工作单元/一个项目单元只能从属与某一个上层单元,不能交叉/项目单元应能区分不同的责任人和不同的工作内容/项目结构分解应能方便工期、成本、质量等的控制/详细程度适中范围变更控制:将范围变更控制在一定的限度内,控制需求变更和减小变更对项目的影响项目时间管理:主要任务就是项目进度计划的制定、执行和变更控制定义活动是一过程,它涉及确认和描述一些特定的活动,完成了这些活动意味着完成了WBS结构中的项目细目和子细目活动排序过程包括确认且编制活动间的相关性活动排序过程包括编制活动间的三种相关性:内在的相关性(强制依赖关系)/指定性的相关性(自由依赖关系)/外部相关性(外部依赖关系) 活动间有4种相关依赖的关系:结束-开始(某活动必须结束,另一活动才能开始)/结束-结束(某活动结束前,另一活动必须结束)/开始-开始(某活动必须在另一活动开始时开始)/开始-结束(某活动结束前另一活动必须开始) 活动排序的结果是项目网络图,是项目所有活动以及活动之间逻辑
关系的一个图解表示项目进度计划是在工作分解基础上对项目活动做出的一系列时间安排进度安排的方法:图示(里程碑法/甘特图法) 数学方法(计划评审技术PERT/关键路径法CPM/时间压缩法) 里程碑法是最简单的一种进度计划方法,仅表示主要可交付成果的计划开始和完成时间,是一个战略计划或项目框架,以中间产品或可实现的结果为依据甘特图用水平线段表示任务的工作阶段;线段的起点和终点分别对应任务的开工和完成时间,长度表示完成任务所需时间在甘特图中,每一任务的完成是以必须交付应交付的文档与通过评审为标准优点:标明了各任务的计划进度和当前进度,能动态地反应软件开发进展情况缺点:难以反应多个任务之间存在的复杂的逻辑关系软件项目进度控制是对项目进度实施与项目进度变更所进行的管理控制工作软件项目的成本管理包括为确保批准的预算内完成项目,在项目管理过程中所需的各个方法和过程软件项目的开发成本主要是人的劳动的消耗,是以一次性开发过程所花费的代价来计算的成本的类型:直接/间接/沉没/机会/边际/固定/可变项目成本管理过程:资源计划/成本估算/成本预算资源的4个特性:资源的描述/资源的有效性说明/资源在何时开始需要/使用资源的持续时间资源计划的各项资源:人员资源/硬件资源/软件资源/软件复用性及软件部件库要实行成本控制,首先要进行成本估算成本估算方法:自顶向下的估算方法/自底向上的估算方法/差别估计法/专家判定技术挣值分析是用于成本控制的主要方法:EAC=实际费用+(总预算成本-BCWP)X(ACWP/BCWP)
ACWP已完成工作实际成本BCWP已完成工作预算成本(挣值)=已完成工作量X预算定额
度量效益的方法:货币的时间价值/投资回收期/纯收入/投资回收率软件质量控制的最常用方法:软件测试引起软件项目质量问题的原因:管理方面的问题/技术方面的问题质量计划是进行应用软件项目质量管理的首要工作软件项目质量控制的方法和工具:帕累托分析/统计抽样与6sigma/质量控制图/软件系统的测试帕累托分析指确认造成系统质量问题的诸多因素中最为重要的几个因素即80%的问题是由20%的原因引起的A类为关键的少数,其影响程度的累计百分数在70-80 B类为一般的因素,是除A类之外的累计百分数为80-90 C类为次要因素,是除A、B两类外累计百分数在90-100 控制图的七点运行法则:连续的7个数据点,如果出现以下两种中的一点:都在平均值的上面或下面/都在上升或下降那么需要检查这个过程是否有非随机问题需求跟踪的方式:正向跟踪/逆向跟踪软件的监理工作:事前控制/事中控制/事后控制软件测试的方法:(黑盒测试/白盒测试)/(穷尽测试/非穷尽测试)/(一次性组装测试/增殖组装测试) 增殖组装方式又分为:自顶向下、自底向上、混合McCall 的三种倾向:产品运行/产品修改/产品转移风险是指结果的不确定性风险是损害和损害暴露度两种因素的综合,损害暴露度包含了风险发生的频率和可能性风险管理包括:风险识别/风险量化/风险处理/风险监控常用的模型有Boehm模型、cmmi模型和msf模型风险识别方法:分解原则/故障树法/专家调查法(集思广益法/德尔菲法) 风险量化工具:期望货币值EMV/计算风险因子/计划评估技术/模拟和专家判断风险应对措施:风险减轻法/接受风险/风险规避/风险转移软件文档分为:开发文档/管理文档/用户文档高质量文档的要求:针对性/精确性/清晰性/完整性/灵活性/可追溯性文档的管理包括:文档管理制度化/文档标准化、规范化/维护文档的一致性/维护文档的可追踪性基线是软件生存期中各开发阶段的一个特定点,其作用是把开发阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果SRS软件需求说明书。