240 likes | 419 Views
王建民 mcswjm@mail.sysu.edu.cn 2010 年 1 月 20 日. 第 25 章 理解软件过程:解析 RUP 核心概念. 本章主题. 随着程序员渐渐成长为软件架构师,他的职责面越来越广。简而言之,在这个过程中有一个从只关心技术到技术和管理并重的转变。 本章要讨论的主题和 RUP 有关,但讨论内容并不局限于 RUP : 既有和 RUP 相关的 也有超出任何具体软件过程的通用概念 还有软件架构师的工作职责等现实问题. 25.1 架构师必须了解软件过程. 25.1.1 架构师的工作职责. 领导并负责架构设计 实际参与架构原型的开发实现
E N D
《软件架构设计》 温昱 电子工业出版社 王建民 mcswjm@mail.sysu.edu.cn 2010年1月20日 第25章 理解软件过程:解析RUP核心概念
本章主题 • 随着程序员渐渐成长为软件架构师,他的职责面越来越广。简而言之,在这个过程中有一个从只关心技术到技术和管理并重的转变。 • 本章要讨论的主题和RUP有关,但讨论内容并不局限于RUP: • 既有和RUP相关的 • 也有超出任何具体软件过程的通用概念 • 还有软件架构师的工作职责等现实问题
25.1.1 架构师的工作职责 • 领导并负责架构设计 • 实际参与架构原型的开发实现 • 讲解架构,指导开发,协调冲突 • 为项目管理提供支持,如技术可行性、任务划分、人员招聘等 • 了解所在组织的业务目标,令架构更好地支持业务目标 • 评估新技术并提出采用提议
25.1.2 架构师必须了解软件过程 • 架构师必须有开阔的视野,纵观整个软件过程的全局,对不同角色互相合作的接口和时机有清醒的把握 • 架构师要和多个部门或小组打交道 • 架构师要指导不同程序团队以架构为中心进行开发,并协调他们的合作,解决他们之间的冲突 • 架构师需要支持项目经历的工作 • 架构师要和市场部门打交道,甚至要拜访客户
25.2 RUP实践中的常见问题 • RUP著名的二维结构,其时间维相关的概念有阶段、迭代、里程碑等,内容维相关概念有工作流、角色、活动、工件等。 • 对概念理解不深,对概念之间的关系把握不到位,造成实践中出现问题。
25.2 RUP实践中的常见问题 图25-1 RUP的二维结构(图片来源:RUP)
25.3.1 一图胜千言 图25-2 RUP核心概念及其关系
25.3.2 角色执行活动,活动生产工件 • 任何软件工程过程,都少不了角色(Role)、活动(Activity)、工件(Artifact)等概念。 图25-4 角色、活动和工件之间 的关系(图片来源:RUP) 图25-3 角色、活动和工件
25.3.2 角色执行活动,活动生产工件 • 角色(Role) • 对个人或者作为开发团队的一组人的职责的规定 • 角色的职责,具体体现在他执行活动和负责工件上 • 活动(Activity) • 角色执行的工作单元 • 活动可能以工件为输入 • 工件(Artifact) • 工作的成品或半成品 • 工件是活动的输出
25.3.3 阶段和迭代:提供不同级别的决策时机 • 尽早解决重大风险,是软件过程中的一条重要原则。 • RUP是风险驱动的。将整个开发生命周期分为4个阶段:初始阶段、细化阶段、构造阶段、一脚阶段。
25.3.3 阶段和迭代:提供不同级别的决策时机 • 初始阶段着重化解业务风险,对项目达成一致的认识。 • 细化阶段主要化解技术风险,要定义并创建可执行的系统架构。 • 构造阶段时风险已经比较小的。
25.3.3 阶段和迭代:提供不同级别的决策时机 • RUP的每个阶段又可分为一到多个迭代周期。 • 迭代式开发,意味着有持续不断的反馈;反馈是决策的基础,也是化解风险的基础。 • 迭代式开发的一个主要目的是尽早降低风险,通过每次迭代中分析、按重要性排序并解决主要风险,来达到尽早化解风险的目的。
25.3.3 阶段和迭代:提供不同级别的决策时机 图25-6 RUP采用迭代式开发(图片来源:RUP)
25.3.3 阶段和迭代:提供不同级别的决策时机 • 根据持续反馈来进行决策的实际,叫做里程碑(Milestone)。 • 里程碑有两种,阶段结束对应的里程碑叫做主要里程碑(Major milestone);迭代结束对应的另城北叫做次要里程碑(Minor milestone)。
25.3.3 阶段和迭代:提供不同级别的决策时机 • 阶段可以包含多次迭代,每个阶段必然有一个主要里程碑表示结束,每个迭代必然以一个次要里程碑标识结束。
24.3.4 配置和变更管理支持迭代式的基于基线的开发 • “迭代和增量开发” • 建立并管理基线(baseline):一是通过评审,二是要受配置和变更管理控制。 • 配置和变更管理完成建立并管理基线的任务。 • 置于配置和变更管理之下的工件,成为配置项(configuration item) • 基线就是有多个配置项组成的瞬时快照 • 只有配置项的变更,才是需要收诶之和变更管理控制的。应该在规范性和灵活想之间权衡考虑。
24.3.4 配置和变更管理支持迭代式的基于基线的开发 图25-8 配置管理相关的核心概念
25.3.5 发布是什么,发布不是什么 • 发布(Release)是软件产品的一个稳定的、可执行的版本,它包括了发布说明、用户手册等相关工件。 • 单纯的文档或者不能执行的软件版本,并不是发布。 • 发布时某个迭代周期的成果,但是并非每个迭代周期都用发布。
25.3.5 发布是什么,发布不是什么 • 发布是特殊的基线。 • 发布是工件集,而且应当置于配置管理的控制下。
Thank you ! 整理:信息安全关昕健