DevOps业务价值流:架构设计最佳实践
系统设计阶段作为需求与研发之间的桥梁,在需求设计阶段的原型设计评审环节,尽管项目组人员可能未完全到齐,但关键角色必须到位,包括技术组长和测试组长。这一安排旨在同步推进两项核心任务:一是完成系统的架构设计,确保技术方案的合理性和可行性;二是为研发阶段做好充分准备,包括资源调配、工具准备等。
通过这一安排,项目能够在架构设计与研发准备两方面同步推进,为后续工作奠定坚实基础。
-
业务共识易达成:关键角色的早期参与有助于深入理解业务需求,促进团队间的沟通与共识。
-
架构设计更稳健:技术组长引领团队制定科学、合理的系统架构,确保技术方案的可行性和系统的稳定性。
-
工作量预估更精准:由于关键角色对项目有深入了解,他们能够更准确地预估工作量,避免进度延误。
-
需求澄清更顺畅:前期充分的沟通和理解有助于需求澄清过程更加顺畅,减少后续开发中的误解和偏差。
-
项目启动更顺利:由于项目在前期得到了充分的规划和准备,项目启动阶段将更加顺利,为后续的研发和测试工作奠定良好基础。

4.1 架构设计
4.1.1目标:
明确架构设计的总体目标,即构建一个高效、可扩展、安全且易于维护的程序系统。
4.1.2具体流程:
-
解析解决方案与需求规格说明书
-
深入分析需求规格说明书,理解系统的业务逻辑和功能需求。
-
研究解决方案,确定技术选型和架构风格。
-
-
模块划分
-
根据功能需求和业务逻辑,将系统划分为多个独立的模块。
-
确保每个模块具有明确的职责和清晰的接口。
-
-
功能分配
-
将系统功能分配到各个模块中,确保功能分配合理且均衡。
-
识别模块间的交互关系,设计模块间的通信机制。
-
-
接口设计
-
设计模块间的接口,包括数据格式、通信协议和调用方式。
-
确保接口的稳定性和兼容性,便于系统的扩展和维护。
-
-
数据结构设计
-
设计系统的数据结构,包括数据库表结构、数据对象和类结构等。
-
确保数据结构的高效性和可扩展性,满足系统的性能需求。
-
-
运行设计
-
设计系统的运行环境和部署策略,包括服务器配置、负载均衡和容错机制等。
-
评估系统的性能需求,设计性能监控和优化方案。
-
-
安全设计
-
设计系统的安全策略,包括身份验证、权限控制、数据加密和日志审计等。
-
确保系统的安全性,防止恶意攻击和数据泄露。
-
-
出错处理设计
-
设计系统的出错处理机制,包括异常捕获、错误日志记录和错误恢复等。
-
确保系统在出现错误时能够迅速恢复并继续运行。
-
-
编写系统架构设计书
-
整理架构设计过程中的所有文档和图表,编写系统架构设计书。
-
确保架构设计书内容详实、清晰,便于后续的开发和测试工作。
-

4.2 任务拆分
4.2.1目标:
将本次迭代中需求细化为可执行的小任务,确保每个任务都有明确的责任人和完成时间。
4.2.2具体流程:
-
任务粒度确定
-
深入理解需求规格说明书,分析需求的复杂度和工作量,确保任务划分既能覆盖所有需求点,又能保持适当的粒度。建议0.5-2天。
-
-
任务依赖分析
-
绘制任务依赖图:使用项目管理工具(如甘特图、PERT图等)绘制任务之间的依赖关系,明确任务之间的先后顺序和逻辑联系。
-
-
工作量评估
-
在责任分配之前进行:采用合适的评估方法(参考公司项目估算方法),对每个任务的工作量进行准确评估。
-
根据评估结果,初步制定项目进度计划和资源需求概览。
-
-
责任分配
-
基于工作量评估结果:将任务分配给具体的团队成员,确保每个任务都有明确的责任人,并且团队成员的能力与任务的工作量相匹配。
-
考虑团队成员的当前工作负荷、专业技能和兴趣,以及任务之间的协作需求。
-
-
识别关键路径
-
在任务依赖图和资源分配方案的基础上,识别影响项目进度的关键任务路径。
-
确保关键路径上的任务得到优先执行和足够的资源支持。
-
-
制定详细计划与调整
-
根据工作量评估和责任分配的结果,制定详细的项目进度计划和资源分配方案。
-
在项目执行过程中,根据项目进度和资源使用情况,动态调整任务计划和资源分配方案。
-
4.3 项目初始化
4.3.1目标:
为项目的后续开发工作做好准备,确保项目能够顺利进行。
4.3.2具体流程:
-
组建项目团队
-
确定项目团队成员的角色和职责,确保团队成员具备所需的专业技能。
-
-
搭建测试环境
-
搭建符合系统要求的测试环境,包括硬件和软件配置。
-
-
数据库脚本初始化
-
编写和执行数据库初始化脚本,确保数据库结构和数据的正确性。
-
-
代码库初始化
-
初始化代码库,建立版本控制机制,确保代码的安全性和可追溯性。
-
-
工具权限开通
-
为团队成员开通所需的开发工具和服务权限,确保他们能够顺利开展工作。
-
4.4 需求澄清
4.4.1目标:
确保项目团队成员对需求有共同的理解,避免后续开发过程中的误解和偏差。
4.4.2具体流程:
-
组织需求澄清会议,邀请相关方参与讨论,确保需求被准确理解和传达。
-
整理会议记录,形成需求澄清文档,作为后续开发和测试的依据。
4.5 需求交付件入配置库
4.5.1目标:
确保需求交付件得到妥善保存和管理,便于后续开发和测试工作的顺利进行。
4.5.2具体流程:
将需求交付件(如需求规格说明书、原型设计等)存入配置库,并进行版本控制,确保文档的安全性和可追溯性。
相关文章:
DevOps业务价值流:架构设计最佳实践
系统设计阶段作为需求与研发之间的桥梁,在需求设计阶段的原型设计评审环节,尽管项目组人员可能未完全到齐,但关键角色必须到位,包括技术组长和测试组长。这一安排旨在同步推进两项核心任务:一是完成系统的架构设计&…...
计算机网络——SDN
分布式控制路由 集中式控制路由...
开源数据库 - mysql - innodb源码阅读 - master线程(一)
master struct /** The master thread controlling the server. */void srv_master_thread() {DBUG_TRACE;srv_slot_t *slot; // 槽位THD *thd create_internal_thd(); // 创建内部线程ut_ad(!srv_read_only_mode); //断言 srv_read_only_mode 为 falsesrv_main_thread_proce…...
vscode ssh连接autodl失败
autodl服务器已开启,vscode弹窗显示连接失败 0. 检查状态 这里的端口和主机根据自己的连接更改 ssh -p 52165 rootregion-45.autodl.pro1. 修改config权限 按返回的路径找到config文件 右键--属性--安全--高级--禁用继承--从此对象中删除所有已继承的权限--添加…...
文件系统和日志管理 附实验:远程访问第一台虚拟机日志
文件系统和日志管理 文件系统:文件系统提供了一个接口,用户用来访问硬件设备(硬盘)。 硬件设备上对文件的管理 文件存储在硬盘上,硬盘最小的存储单位是512字节,扇区。 文件在硬盘上的最小存储单位&…...
云上拼团GO指南——腾讯云博客部署案例,双11欢乐GO
知孤云出岫-CSDN博客 目录 腾讯云双11活动介绍 一.双十一活动入口 二.活动亮点 (一)双十一上云拼团Go (二)省钱攻略 (三)上云,多类型服务器供您选择 三.会员双十一冲榜活动 (一)活动内容 &#x…...
【VScode】VScode内的ChatGPT插件——CodeMoss全解析与实用教程
在当今快速发展的编程世界中,开发者们面临着越来越多的挑战。如何提高编程效率,如何快速获取解决方案,成为了每位开发者心中的疑问。今天,我们将深入探讨一款颠覆传统编程体验的插件——CodeMoss,它将ChatGPT的强大功能…...
水库大坝安全监测预警方法
一、监测目标 为了确保水库大坝的结构安全性和运行稳定性,我们需要采取一系列措施来预防和减少因自然灾害或其他潜在因素所引发的灾害损失。这不仅有助于保障广大人民群众的生命财产安全,还能确保水资源的合理利用和可持续发展。通过加强大坝的监测和维护…...
深度学习:微调(Fine-tuning)详解
微调(Fine-tuning)详解 微调(Fine-tuning)是机器学习中的一个重要概念,特别是在深度学习和自然语言处理(NLP)领域。该过程涉及调整预训练模型的参数,以适应特定的任务或数据集。以下…...
qt QWebSocketServer详解
1、概述 QWebSocketServer 是 Qt 框架中用于处理 WebSocket 服务器端的类。它允许开发者创建 WebSocket 服务器,接受客户端的连接,并与之进行双向通信。WebSocket 是一种在单个 TCP 连接上进行全双工通讯的协议,它使得客户端和服务器之间的数…...
【数据结构】线性表——链表
写在前面 本篇笔记记录线性表——链表的主要形式,虽然链表有8种形式,但是只要精通笔记中编写的两种,即可触类旁通。 文章目录 写在前面一、链表的概念及结构二、链表的分类三、无头单向非循环链表3.1、链表的实现3.1.1、链表的结构体定义3.1…...
Fork突然报错
现象: Could not resolve hostname github.com: No address associated with hostname fatal: Could not read from remote repository. 原因:需要为fork设置代理 步骤: 1.通过winR输入%localappdata%\fork\gitInstance打开文件夹 2.找到…...
Vue Element-UI 选择隐藏表格中的局部字段信息
一、功能需求分析 为什么需要这个功能? (1)简化信息,减少混乱: 就像整理抽屉,只留下常用的东西,这样找起来更快,看起来也更整洁。在表格中,只展示需要的字段ÿ…...
easyui +vue v-slot 注意事项
https://www.jeasyui.com/demo-vue/main/index.php?pluginDataGrid&themematerial-teal&dirltr&pitemCheckBox%20Selection&sortasc 接口说明 <template><div><h2>Checkbox Selection</h2><DataGrid :data"data" style&…...
vue之组件网站(后续补)
vue移动端 Vant 4 NutUI cube-ui vue电脑端 Element Plus OpenTiny Arco Design Ant Design Vue Vuetify Naive UI react移动端 react vant react移动端 Ant Design NutUI...
大模型的常用指令格式 --> ShareGPT 和 Alpaca (以 llama-factory 里的设置为例)
ShareGPT 格式 提出背景:ShareGPT 格式起初来自于用户在社交平台上分享与聊天模型的对话记录,这些记录涵盖了丰富的多轮对话内容。研究者们意识到,这类真实的对话数据可以帮助模型更好地学习多轮对话的上下文保持、回应生成等能力。因此&…...
【论文阅读】火星语义分割的半监督学习
【论文阅读】火星语义分割的半监督学习 文章目录 【论文阅读】火星语义分割的半监督学习一、介绍二、联系工作3.1Deep Learning for Mars3.2 数据集可以分为三类:3.3 半监督学习 三、提出的火星图像分割数据集四、方法四、实验 S 5Mars: Semi-Supervised Learning …...
ACM社团第一次测试题解(禁止直接复制粘贴提交)
第一题:中位数 思路: 解法一:暴力比较,两个数之间一直比较得出中位数 解法二:快排函数,数组中间值即为中位数 代码: 1.c语言版: #include <stdio.h> int arr[10010]; vo…...
redis:zset有序集合命令和内部编码
个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C》《Linux》《网络》 《redis学习笔记》 文章目录 前言命令ZADDZRANGEZREVRANGEZCARDZCOUNTZPOPMAXBZPOPMAXZPOPMINBZPOPMINZRANKZSCOREZREMZREMRANGEBYRANKZREMRANGEBYSCOREZINCRBY集合间操作…...
Day107:代码审计-PHP模型开发篇MVC层RCE执行文件对比法1day分析0day验证
知识点: 1、PHP审计-MVC开发-RCE&代码执行 2、PHP审计-MVC开发-RCE&命令执行 3、PHP审计-MVC开发-RCE&文件对比 MVC 架构 MVC流程: Controller截获用户发出的请求;Controller调用Model完成状态的读写操作;Contr…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...
