湖南大学高级软件开发过程

高级软件开发过程重点知识梳理

1. 绪论

  • 软件过程定义:从软件需求定义开始到软件废弃为止,跨越整个生命周期内的系统开发、运行、维护等全部活动及其相关项的总和。
  • 软件发展三阶段:程序设计、软件工程、软件过程
  • 软件过程能力评估标准和改进方案:CMM, ISO, 6 西格玛
  • 生命周期模型:瀑布模型、原型模型、螺旋模型、喷泉模型
  • 软件过程与软件工程的关系:包含关系
  • 软件过程模式的意义
    • 四要素
    • 快速把握软件过程的本质、原则、规范、特点、策略等
    • 分析优缺点

2. Rational 统一开发过程

  • 三大特点

    • 用力驱动
    • 以架构为中心
    • 迭代与增量
  • 工作流程不仅仅指活动,还表明了角色、活动、工件是一个逻辑整体。

  • RUP 二维结构图
    RUP

    • 静态特征:纵轴的内容组织
    • 动态特征:横轴的时间组织
    • RUP 独特的地方
      • 并行化
      • 阶段内部迭代
      • 工作流中多出的几个新的概念
      • 明确的里程碑
  • 九大核心工作流程

    • 核心过程
      • 业务建模
      • 需求
      • 分析设计
      • 实施
      • 测试
      • 部署
    • 核心支持
      • 配置、变更管理
      • 项目管理
      • 环境
  • 工件:模型、元素、文档、源代码、可执行文件、工具等。

  • 四阶段

    • 先启(目标)
    • 精化(架构)
    • 构建(初始化、产品是否稳定、迭代次数最多)
    • 产品化(产品发布、用户是否满意)
  • 五大角色

    • 分析员
    • 开发人员
    • 测试员
    • 经理
    • 其他角色
  • 角色的意义(两步走):

    • 迭代计划时,确定角色
    • 人员计划时,考虑个体的技能特长,分配角色
  • 角色方面的缺陷:未给出角色的组织管理方式、角色之间的地位和交互关系。

  • 用例的缺点及其解决方法:非功能性需求表现不足,可用补充说明文档解决。

  • 架构视图

    • 用例模型视图
    • 分析模型视图
    • 设计模型视图
    • 实施模型视图
    • 实现模型视图
    • 补充【架构必须留有复用和进化空间
  • RUP 的优点

    • 二维迭代,有利于降低风险,适应新需求
    • 可配置,具有通用性
    • 包含四要素的详尽的阐述
    • 有现成的使用工具,具有操作性、可实现性
  • RUP 的缺点

    • 四要素关系及其优先级未给出
    • 生命周期各元素的关旭和优先级未给出
    • 人员之间的优先级和协作方式未给出
    • 产品和方法之间的优先级未给出

3. 敏捷开发过程

  • 4 条基本价值观

    • 个体和交互胜过过程和工具(人员、生命周期、方法)
    • 可以工作的软件胜过面面俱到的文档(产品)
    • 客户合作胜过合同谈判(人员)
    • 响应变化胜过遵循计划(方法)
  • 12 条基本原则
    1、我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户。
    2、欢迎对需求提出变更——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势。
    3、要不断交付可用的软件,周期从几周到几个月不等,且越短越好。
    4、项目过程中,业务人员与开发人员必须在一起工作。
    5、要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任务。
    6、无论是团队内还是团队间,最有效的沟通方法是面对面的交谈。
    7、可用的软件是衡量进度的主要指标。
    8、敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展速度。
    9、对技术的精益求精以及对设计的不断完善将提升敏捷性。
    10、要做到简洁,即尽最大可能减少不必要的工作。这是一门艺术。
    11、最佳的架构、需求和设计出自于自组织的团队。
    12、团队要定期反省如何能够做到更有效,并相应地调整团队的行为。

    • 分类:
      • 生命周期(1,3,7,8)
      • 人员(4,5,6,11,12)
      • 产品(无)
      • 方法(2,9,10)
  • 计划游戏(制定细致度逐渐降低的计划)

  • 持续集成

  • 结对编程

  • 隐喻(全局视图、未来影像)

4. 微软开发过程

  • 术语

    • 项目前景与项目范围
    • 功能说明书
    • 程序经理
  • 过程原则

    • 制定计划时兼顾未来的不确定因素
    • 通过有效的风险管理减少不确定因素的影响
    • 经常生成过度版本,并进行快速测试来提高产品的稳定性和可预测性
    • 快速循环、递进的开发过程
    • 从产品特性和成本能控制出发创造性的工作
    • 创建确定的进度表
    • 使用小型项目组并发的完成工作,并设置多个同步点
    • 将大型项目分解为多个可管理的单元,以便快速的发布产品
    • 用产品的前景目标和概要说明指导项目开发工作——先基线化,后冻结
    • 避免产品走形
    • 使用原型验证概念,进行开发前的测试
    • 零缺陷观念
    • 非责难式的里程碑评审会
  • 组队原则

    • 小型的、多元化的项目组
    • 角色依赖、职责共享
    • 专深的技术水平和业务技能
    • 以产品发布为中心
    • 明确的目标
    • 客户的主动参与
    • 分享产品的前景
    • 所有人都参与设计
    • 认真从过去的项目中吸取经验
    • 共同管理、共同决策
    • 项目组成员在同一地点办公
    • 大型项目组也像小型项目组那样运作
  • 微软过程生命周期

    相当于 RUP 的生命周期的精简版,但是微软生命周期的特色在于其每个阶段设置的缓冲时间

    • 构想(先启)
    • 计划(精化)
    • 开发(精化)
    • 稳定(构建)
    • 发布(产品化)
  • 微软角色划分

    以前的项目经理被拆分为产品经理和程序经理,因为这项目经理往往身兼两个角色,而这两个角色之间存在着矛盾。

    • 产品经理
    • 程序经理
    • 开发工程师
    • 测试工程师
    • 用户体验人员
    • 发布管理人员
  • 角色间的关系

    • 对等
    • 相互协作的方式是交流和沟通

    微软项目结构

  • 角色合并原则

    • 开发人员不能兼任其他角色
    • 不能试图合并两个有明显利益冲突或制约关系的职能角色

    微软组对合并原则

  • 角色合并结论

    • 最小的项目组需要 3 个成员:产品经理、程序经理、开发工程师
  • 微软均衡三角形

    结论:四要素之间相互制约,任何一条边的改变都会对剩余的边造成影响。

    均衡三角形

  • 微软项目均衡矩阵
    项目均衡矩阵

    • 执行方法

    执行

  • RUP/AP/微软过程的关系

    三者相互交叉、相互重叠,又相互区别互不包含

    三者之间的关系

  • 微软每日编译生成机制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值