1 / 24

第 25 章 理解软件过程:解析 RUP 核心概念

王建民 mcswjm@mail.sysu.edu.cn 2010 年 1 月 20 日. 第 25 章 理解软件过程:解析 RUP 核心概念. 本章主题. 随着程序员渐渐成长为软件架构师,他的职责面越来越广。简而言之,在这个过程中有一个从只关心技术到技术和管理并重的转变。 本章要讨论的主题和 RUP 有关,但讨论内容并不局限于 RUP : 既有和 RUP 相关的 也有超出任何具体软件过程的通用概念 还有软件架构师的工作职责等现实问题. 25.1 架构师必须了解软件过程. 25.1.1 架构师的工作职责. 领导并负责架构设计 实际参与架构原型的开发实现

december
Download Presentation

第 25 章 理解软件过程:解析 RUP 核心概念

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 《软件架构设计》 温昱 电子工业出版社 王建民 mcswjm@mail.sysu.edu.cn 2010年1月20日 第25章 理解软件过程:解析RUP核心概念

  2. 本章主题 • 随着程序员渐渐成长为软件架构师,他的职责面越来越广。简而言之,在这个过程中有一个从只关心技术到技术和管理并重的转变。 • 本章要讨论的主题和RUP有关,但讨论内容并不局限于RUP: • 既有和RUP相关的 • 也有超出任何具体软件过程的通用概念 • 还有软件架构师的工作职责等现实问题

  3. 25.1 架构师必须了解软件过程

  4. 25.1.1 架构师的工作职责 • 领导并负责架构设计 • 实际参与架构原型的开发实现 • 讲解架构,指导开发,协调冲突 • 为项目管理提供支持,如技术可行性、任务划分、人员招聘等 • 了解所在组织的业务目标,令架构更好地支持业务目标 • 评估新技术并提出采用提议

  5. 25.1.2 架构师必须了解软件过程 • 架构师必须有开阔的视野,纵观整个软件过程的全局,对不同角色互相合作的接口和时机有清醒的把握 • 架构师要和多个部门或小组打交道 • 架构师要指导不同程序团队以架构为中心进行开发,并协调他们的合作,解决他们之间的冲突 • 架构师需要支持项目经历的工作 • 架构师要和市场部门打交道,甚至要拜访客户

  6. 25.2 RUP实践中的常见问题

  7. 25.2 RUP实践中的常见问题 • RUP著名的二维结构,其时间维相关的概念有阶段、迭代、里程碑等,内容维相关概念有工作流、角色、活动、工件等。 • 对概念理解不深,对概念之间的关系把握不到位,造成实践中出现问题。

  8. 25.2 RUP实践中的常见问题 图25-1 RUP的二维结构(图片来源:RUP)

  9. 25.3 RUP核心概念解析

  10. 25.3.1 一图胜千言 图25-2 RUP核心概念及其关系

  11. 25.3.2 角色执行活动,活动生产工件 • 任何软件工程过程,都少不了角色(Role)、活动(Activity)、工件(Artifact)等概念。 图25-4 角色、活动和工件之间 的关系(图片来源:RUP) 图25-3 角色、活动和工件

  12. 25.3.2 角色执行活动,活动生产工件 • 角色(Role) • 对个人或者作为开发团队的一组人的职责的规定 • 角色的职责,具体体现在他执行活动和负责工件上 • 活动(Activity) • 角色执行的工作单元 • 活动可能以工件为输入 • 工件(Artifact) • 工作的成品或半成品 • 工件是活动的输出

  13. 25.3.3 阶段和迭代:提供不同级别的决策时机 • 尽早解决重大风险,是软件过程中的一条重要原则。 • RUP是风险驱动的。将整个开发生命周期分为4个阶段:初始阶段、细化阶段、构造阶段、一脚阶段。

  14. 25.3.3 阶段和迭代:提供不同级别的决策时机 • 初始阶段着重化解业务风险,对项目达成一致的认识。 • 细化阶段主要化解技术风险,要定义并创建可执行的系统架构。 • 构造阶段时风险已经比较小的。

  15. 25.3.3 阶段和迭代:提供不同级别的决策时机 • RUP的每个阶段又可分为一到多个迭代周期。 • 迭代式开发,意味着有持续不断的反馈;反馈是决策的基础,也是化解风险的基础。 • 迭代式开发的一个主要目的是尽早降低风险,通过每次迭代中分析、按重要性排序并解决主要风险,来达到尽早化解风险的目的。

  16. 25.3.3 阶段和迭代:提供不同级别的决策时机 图25-6 RUP采用迭代式开发(图片来源:RUP)

  17. 25.3.3 阶段和迭代:提供不同级别的决策时机 • 根据持续反馈来进行决策的实际,叫做里程碑(Milestone)。 • 里程碑有两种,阶段结束对应的里程碑叫做主要里程碑(Major milestone);迭代结束对应的另城北叫做次要里程碑(Minor milestone)。

  18. 25.3.3 阶段和迭代:提供不同级别的决策时机 • 阶段可以包含多次迭代,每个阶段必然有一个主要里程碑表示结束,每个迭代必然以一个次要里程碑标识结束。

  19. 24.3.4 配置和变更管理支持迭代式的基于基线的开发 • “迭代和增量开发” • 建立并管理基线(baseline):一是通过评审,二是要受配置和变更管理控制。 • 配置和变更管理完成建立并管理基线的任务。 • 置于配置和变更管理之下的工件,成为配置项(configuration item) • 基线就是有多个配置项组成的瞬时快照 • 只有配置项的变更,才是需要收诶之和变更管理控制的。应该在规范性和灵活想之间权衡考虑。

  20. 24.3.4 配置和变更管理支持迭代式的基于基线的开发 图25-8 配置管理相关的核心概念

  21. 25.3.5 发布是什么,发布不是什么 • 发布(Release)是软件产品的一个稳定的、可执行的版本,它包括了发布说明、用户手册等相关工件。 • 单纯的文档或者不能执行的软件版本,并不是发布。 • 发布时某个迭代周期的成果,但是并非每个迭代周期都用发布。

  22. 25.3.5 发布是什么,发布不是什么 • 发布是特殊的基线。 • 发布是工件集,而且应当置于配置管理的控制下。

  23. Questions?

  24. Thank you ! 整理:信息安全关昕健

More Related