系统架构师---UP统一过程常考概念

news2024/10/6 14:29:33

前言:

在 计算机诞生的年代,计算机是一种 只有天才才能掌握的工具。人们对软件的 认知仅仅停留在程序的层面上,所谓的软件开发就是那些能够掌握计算机的天才们写的一些只有计算机才能理解的二进制序列 。但是随着技术的发展,软件的复杂度不断提高,人们进入了大规模软件开发时代。这时候,人们发现,软件系统已经变得非常复杂,需要遵循一定的开发方法才能取得成功,于是称这些模式化的开发方法为开发模型。

统一过程:

统一过程(Unified Process,UP)是由Rational公司开发的一种迭代的软件过程,是一个优秀的软件开发模型,它提供了完整的开发过程解决方案,可以有效地降低软件开发过程的风险,经过裁剪的UP可以适应各种规模的团队的系统。

UP的二位模型

UP是一个很有特色的模型,它本身是一个二维的结构,对于UP而言,时间主线就是横轴的阶段,随着时间的流逝,软件开发活动总要经过初始、细化、构建和交付4个阶段方能完成。而纵轴的工作流程则描述了在不同的阶段需要进行的主要工作。例如在初始阶段,软件组织需要进行大量的调研,对软件进行业务建模、需求,同时进行一些设计以验证建模的合理性,还要进行一些实施甚至测试和部署的工作,用以验证需求和设计的工作以及开发系统原型,当然配置与变更管理、项目管理和环境是在任何阶段都是不能缺少的。

从这个模型中可以看出UP迭代的特点。任何一个阶段的工作都不是绝对的,都是相互交叠配合的。但是每一个阶段都是有其侧重点。

在初始阶段,开发者刚刚接入系统,此时最重要的工作是界定系统范围,明确系统目的。在这一阶段,业务建模和需求工作成了重头戏。

在细化阶段,开发者需要抽象出软件的逻辑模型,设计出软件的架构,在这一阶段,分析设计工作是最重要的工程活动。

在构建简单,开发者需要基本完成 系统的构建,使之成为一个完整的实体,并且进行测试和部署,在这一阶段,实施和测试是最主要的活动。

当进入交付阶段(该阶段也经常被称为转移阶段),软件系统需求已经完全成熟或产品化,或进入下一个版本。在这一阶段不可避免地要对软件系统进行重构、修改、测试和部署

在这四个阶段中,各有侧重点,但是也不是像瀑布模型那样完全不允许其他活动的存在。在初始阶段,为了验证开发者的想法,就需要进行一部分的实施和测试;而即使到了交付阶段,需要也可能会发生变化,仍然需要进行部分业务建模、需求和设计的活动。

在每个阶段中,系统推进不是一蹴而就的。在上图中将细化阶段分为第一细化和第二次细化,将构建阶段也划分为3个小阶段。在实际开发 中,可以根据实际的需要划分为更多的小阶段来完成。

对于纵轴而言,业务建模、需求、分析设计、实施、测试、部署、配置与变更管理、项目管理、环境称为UP的9个核心工作流。可以把9个工作流进行简单的分类以帮助理解,业务建模、需求、分析设计、实施、测试和部署是工程活动,而配置与变更管理、项目管理和环境是管理活动。

在这9个工作流中,前8个可以说是绝大多数人耳熟能详的东西,而环境工作流则相对难以理解的。环境工作流很重要,也可称之为环境管理。在软件开发中,需要为各种工作准备相应的工作环境,在工作环境中需要包含必要的工具、活动的指南、活动的流程规范、工作产品的模板、基本的开发设施等。在很多组织中,环境工作流没有得到相应的重视,或者完全被忽视,以为为开发者提供工作台和计算机就万事大吉了,其实这种做法是错误的。每一个开发团队都有自己特定的活动准则和规范,这些准则和规范是团体协作的基础,万不可缺少的。没有合理的工具配备,没有充分的指南、规范和模板,软件开发的活动肯定是放羊式的管理,管理者除了一些羊毛之外,什么也收获不了。观察UP模型就可以发现,在每一阶段的最开始,环境工作流都有一个小小的波峰。在这里面,开发团队需要为开发环境进行 相应的准备并在后续活动中为开发环境提供技术的支持。

UP的生命周期

上面已经提到,UP模型的时间主线是阶段,UP的生命周期也是与阶段一一对应的。在UP的生命周期中共有4个里程碑。

目标里程碑:

目标里程碑对应着先启用阶段的结束,当开发者可以明确软件系统的目标和范围时即达到了里程碑。

架构里程碑:

架构里程碑是UP生命周期中的第二个里程碑,在这个里程碑前,开发者需要明确稳定的系统架构。

能力里程碑:

当系统已经足够的稳定和成熟并完成Alpha测试之后,认为达到了第3个里程碑

发布里程碑:

在达到发布里程碑 之前,需要完成 系统的测试,完成系统发布和用户培训等工作

在经过这四个里程碑之后,即为一个完整的生命周期,开发出一个新的版本。此时可以关闭该产品的开发,也可以迭代进入下一个版本

UP的特点

UP是一个特点鲜明的开发模型,下面列出UP的一些特点:

  1. UP是一个迭代的二位开发模型,在生命周期的每一个阶段都可以进行需求、设计等活动。UP不但给出了迭代的生命周期,还给出了生命周期每一阶段的迭代指南。
  2. 采用不同的迭代方式的UP可以演变为演化模型或 增量模型
  3. UP的迭代特点使得更容易控制软件开发的风险
  4. 虽然UP是一个迭代的开发模型,但是UP本身并不属于敏捷方法。相反的,一般认为,未经过裁剪的UP是一个重载的过程。
  5. 在实际应用中可以根据具体问题对UP进行裁剪,从而使得可以适应各种规模的软件和开发团队。
架构设计师在UP中的活动

架构师在UP活动中承担着非常重要的角色。在UP中,架构设计师除了需要建立系统架构模型外,还需要:

  1. 同需求人员和项目管理人员密切协作
  2. 细化软件架构
  3. 保持整个架构的概念完整性。具体的说,架构师不但需要设计系统架构,还需要定义设计方法,设计指南、编码指南、评审设计等工作。因此,有人也称UP是一个以架构为中心的开发模型

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/819863.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机网络】传输层协议 -- TCP协议

文章目录 1. TCP协议的引入2. TCP协议的特点3. TCP协议格式3.1 序号与确认序号3.2 发送缓冲区与接收缓冲区3.3 窗口大小3.4 六个标志位 4. 确认应答机制5. 超时重传机制6. 连接管理机制6.1 三次握手6.2 四次挥手 7. 流量控制8. 滑动窗口9. 拥塞控制10. 延迟应答11. 捎带应答12.…

手撕SpringBoot的自定义启动器

一. 前言 哈喽,大家好,最近金九银十,又有不少小伙伴私信辉哥,说自己在面试时被问到SpringBoot如何自定义启动器,结果自己不知道该怎么回答。那么今天就手把手地带着大家,去看看在SpringBoot中到底该怎么实…

半导体制造工艺流程

本资料仅用于学习和讨论,如有侵权请反应 1、半导体制造工艺流程-要求 1.1 英特尔50亿纳米的制作工艺 2、第一步 晶圆加工 2.1 第一步 晶圆加工 2.2 第二步 氧化 2.3 第三步 光刻 2.4第四步 刻蚀 2.5 第五步 薄膜沉积 2.6 第六步 互连 2.7 第七步 测试 2.8…

奥威软件SaaS BI系统:一站式数据可视化解决方案

SaaS BI 系统是 Software as a Service 商业智能的缩写,是一种基于云计算的商业智能解决方案。它允许用户通过互联网访问和分析数据,而无需安装和维护昂贵的硬件和软件。如今将BI系统SaaS化已成趋势,越来越多的企业开始寻找SaaS BI系统&#…

IDA分析实例android_crackme/EasyJNI/Transformers/pingan2

文章目录 第一个实例android_crackme将32位的android_server放到手机目录下给android_server赋予root更改root用户组运行android_serverpc端端口转发安装apk,并运行app打开32位IDA并attach到进程先使用jadx看java层逻辑定位要分析的方法IDA 给两个方法打断点 第二个…

无涯教程-jQuery Mock Test函数

本节介绍了与 jQuery Framework 相关的各种模拟测试。您可以在本地计算机上下载这些样本模拟测试,并在方便时离线解决。每个模拟测试均随附一个模拟测试键,可让您验证最终分数并为自己评分。 Mock Test I Mock Test II Mock Test III Mock Test IV Q 1 -关于jQuery,以下哪项是…

【LeetCode 75】第十六题(1004)最大连续1的个数

目录 题目: 示例: 分析: 代码运行结果: 题目: 示例: 分析: 给一个只有0和1的数组,可以将K个0变成1,问最大能得到的全是1的子数组的长度是多少。 这算是很经典的滑动…

领域驱动设计(五) - 战术设计 - 【3/3】聚合与模型的构建方法

这一小章主要阐述下如何组织上述分析后的模型。 使用聚合(Aggergate)进行建模,并且在设计中结合工厂(Factory)和资源库(Repositiory,注意Orm映射出的持久化对象不是领域模型的范围,在…

深入理解ClickHouse跳数索引教程

跳数索引 影响ClickHouse查询性能的因素很多。在大多数场景中,关键因素是ClickHouse在计算查询WHERE子句条件时是否可以使用主键。因此,选择适用于最常见查询模式的主键对于表的设计至关重要。 然而,无论如何仔细地调优主键,不可…

Java导出数据到Excel

Java导出数据到Excel分3步处理 1、构建Workbook 数据 2、设置Workbook 格式 3、导出到Excel 1、构建Workbook 数据 public static void buildData(Workbook wb, List<Person> list) {Sheet sheetName wb.createSheet("sheetName");Row row sheetName.creat…

macOS 环境变量加载探究

使用 macOS 安装环境&#xff0c;见到过很数种环境变量配置方法&#xff0c;每次也都是按照别人的代码&#xff0c;人家配置在哪 我就配置在哪&#xff0c;其实不太清楚有什么区别&#xff0c;决定记录下。 本机 macOS 13.3&#xff0c;从 macOS Catalina(10.15) 开始&#xf…

软件测试入门基础知识

目录 1.软件测试的定义 2.软件测试的生命周期 3.如何描述一个bug 4.bug的级别如何定义 5.bug生命周期 6.软件测试策略 7.软件测试模型 7.1传统瀑布模型 7.2V模型 7.3W模型&#xff08;双V模型&#xff09; 7.4敏捷模型 7.5X模型 1.软件测试的定义 首先要明确测试的定义…

systemVerilog基础9——类的继承

1、 描述子类继承父类的关键词&#xff1a;extends 之前定义过的类Packet&#xff0c;可以进一步扩展构成一个它的子类LinkedPacket。类Packet的定义如下&#xff1a; class Packet ;//class定义类 类名 packet//类 packet的成员//数据或类属性bit [3:0] command; bit [40:0] …

【css】背景图片附着

属性&#xff1a;background-attachment 属性指定背景图像是应该滚动还是固定的&#xff08;不会随页面的其余部分一起滚动&#xff09;。 background-attachment: fixed&#xff1a;为固定&#xff1b; background-attachment: scroll为滚动 代码&#xff1a; <!DOCTYPE h…

TypeScript基础学习

目录 一、安装 1、下载国内镜像 2、安装 3、查看安装情况 4、使用例子 二、变量声明 1、规则 2、声明的四种方式 3、注意 4、类型断言 5、类型推断 6、变量作用域 三、基础类型&#xff08;共11种&#xff09; 1、Any 类型 2、Null 和 Undefined 3、never 类型…

医药化工企业洁净厂房改造消防防爆安全的重要性

设计 【摘要】&#xff1a;近年来&#xff0c;我国医药化工企业规模不断扩大。医药化工企业的情况复杂&#xff0c;稍有不慎将发生火灾或者爆炸&#xff0c;对人员生命以及财产安全造成巨大的损害&#xff0c;酿成悲剧。所以&#xff0c;“三同时”原则的落实&#xff0c;如何…

伊语IM即时通讯源码/im商城系统/纯源码IM通讯系统安卓+IOS前端纯原生源码

伊语IM即时通讯源码/im商城系统/纯源码IM通讯系统安卓IOS前端纯原生源码&#xff0c; 后端是java源码。

tinkerCAD案例:30. 冰球挑战赛

tinkerCAD案例&#xff1a;30. 冰球挑战赛 这些简单易学、循序渐进的 Tinkercad 课程将指导你设计出属于自己的超棒曲棍球冰球&#xff1b;这些设计将性能和风格推向了极限&#xff01; 本课有两个目标利用科学方法提高曲棍球球的性能。通过在冰球上添加图案&#xff0c;发挥设…

rust怎么搞的,这么简单的代码也报“borrow of moved value“?

奇了怪了&#xff0c;这么简单的代码也编译不过&#xff1f; let hello String::from("hello");let world hello;hello.push_str("world"); // error[E0382]: borrow of moved value: hello看下完整报错 error[E0382]: borrow of moved value: hello--&…

picgo 图床 七牛云的设置

网站 PicGo github Molunerfinn/PicGo: &#x1f680;A simple & beautiful tool for pictures uploading built by vue-cli-electron-builder PicGo/Awesome-PicGo: A collection of awesome projects using PicGo. 设置 AcccessKey (AK) SecretKey(SK) 在个人中心&…