8.软件工程

软件工程概述

  • 软件生存周期:可行性分析与项目开发计划、需求分析、概要分析、详细分析、编码、测试、维护

  • 基本要素:方法、工具、过程

软件过程

能力成熟模型CMM

  • 初始级:无制度管理,依靠核心人物作用
  • 可重复级:建立基本管理过程,跟踪项目费用,进度,功能特性,可重复以前同类项目的成功
  • 已定义级:建立标准化管理过程,管理和工程两方面,已经文档化、标准化,有标准的软件开发过程。所有项目基本依照标准过程开发
  • 已管理级:管理标准量化,制定软件过程和产品质量的详细度量标准
  • 优化级:有反馈机制,能够吸收新观念、新技术

能力成熟度模型CMMI

  • 阶段模型

    • 初始的:过程不可预测且缺乏控制
    • 已管理:过程为项目服务
    • 已定义:过程为组织服务
    • 定量管理:过程已度量和控制
    • 优化的:集中与过程改进
  • 连续模型:不同过程域不同的过程域能力等级

统一过程模型UP

  • 特点:用例和风险驱动,架构中心,迭代并增量
  • 四个阶段
    • 起始:需求确认,风险评估
    • 精化:需求分析,架构设计
    • 构建:实现
    • 移交:测试,交付
  • 每次迭代都是一次完整的开发过程:需求、分析、设计、实现、测试

软件过程模型

  • 瀑布模型:前提需求明确,按流程,一步一步的往下开发
  • V模型:每个阶段都要测试,对瀑布模型的一种优化,确认每一步的正确性
  • 原型模型:需求不明确时,快速构建功能模型,进行演示,并按用户要求,及时修改
  • 螺旋模型:风险分析。原型的优化,在原型的基础上,增加了风险分析
  • 增量模型:逐步交付,系统划分模块,按优先级,逐步交付
  • 喷泉模型:面向对象开发过程,以用户需求为动力,对象作为驱动
  • 基于构件模型:预包装构件库,并使用构件开发,提高可靠性,节省时间与成本
  • 形式化方法模型:建立数学基础上,生成软件形式化的数学规格说明

敏捷开发

适用于中小型项目,去掉不必要的会议和文档

  • 结对编程:一个编码,一个审查
  • 自适应开发:开发方法的适用性
  • 水晶方法:不同项目,管理方法不同
  • 特性驱动开发:快速迭代,需求变动
  • 极限编程XP:前期无需过多文档,提倡测试先行
  • SCRUM:30天一次迭代为一个“冲刺”,多个小组并行增量实现产品

软件项目管理

项目估算方法

成本估算
  • 自顶向下:确定总金额,向下分摊功能点
  • 自底向上:模块成本,向上累加
  • 差别估算:与想以前项目比较,查找不同点,重新估算
软件规模估算
  • COCOMO:以代码行作为度量标准,计算成本
    • 基本COCOMO:静态单变量,纯粹代码行
    • 中级COCOMO:基本+产品、硬件、人员、项目等
    • 详细COCOMO:中级+设计与分析
  • COCOMOⅡ:分三个阶段性模型,前期,设计,开发
  • Patnam:动态多变量

进度管理与关键路径

  • 进度管理图

    • Gantt图:很好的体现并行关系
    • PERT图:体现活动间的依赖关系
  • 关键路径计算

    • 最早开始时间:依赖项的最早完成时间
    • 最早完成时间:依赖项的最早完成时间+自身
    • 关键路径:耗时最长的路线
    • 最晚完成时间:被依赖项的最晚开始时间,倒着算,总长,往后减
    • 最晚开始时间:最晚完成 - 自身
    • 松弛时间:最晚开始 - 最早开始
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值