软件工程模型-架构师之路(四)
- 软件工程模型
敏捷开发:
个体和交互 胜过 过程和工具、可以工作的软件 胜过 面面俱到的文件、客户合作胜过合同谈判、响应变化 胜过 循序计划。(适应需求变化,积极响应)
敏捷开发与其他结构化方法区别特点:面向人的、适应性。
敏捷开发也是 迭代增量开发。

- 极限编程(XP):基础和价值观是 交流、朴素、反馈和勇气。项目的过程是加强交流,从简单做起,寻求反馈,勇于实事求是。
近螺旋式开发,将复杂的开发分解成一个个相对简单的小周期。遵循测试先行。
- 水晶系列方法:以人为中心,每个开发方法都有独特的角色、过程模式、工作产品和实践。
- 并列争球:把每段时间(如30天)迭代一次冲刺(sprint)。
- 特性驱动开发方法(FDD):是一个 迭代 开发。
三个要素:人、过程和技术。
五个核心:开发整体对象模型、构造特征列表、计划特征开发、特征设计和特征构建。
- 统一过程模型
统一过程模型(RUP)
RUP描述了 如何有效利用商业的、可靠的方法开发和部署软件,是一种重量级过程。RUP可以为 所有方面和层次的程序开发提供指导方针、模板以及事例支持。
软件生命周期是一个 二维软件开发模型,有9个核心工作流。
业务建模、需求、分析与设计、实现、测试、部署、配置与变更管理、项目管理和环境。
RUP开发生命周期有多个循环,每次循环由四个阶段组成。
初始阶段:确定系统范围。
细化阶段:系统架构确定。
构造阶段:编码实施。
移交阶段:给客户使用。
RUP核心概念:
角色:who的问题。有很多不同角色,架构师,设计师,测试员。
活动:解决how的问题。明确目的,怎么去做。
制品:what的问题。制品活动生产、创建或修改信息。
工作流:when的问题。连续的需求工作流。
RUP特点:
- 用例驱动:需求分析、设计、实现和测试等活动都是用例驱动。
- 以体系结构为中心:包括系统的总体组织和全局控制。典型4+1试图模型。

- 逆向工程
软件复用:
早期是代码的复用,减少软件开发和维护成本。现在指 领域知识、开发经验、设计决定、体系结构、需求、设计代码和文档等一切有关方面。
逆向工程:
分析程序,力图,最基本还原源代码。
分为四个级别:
实现级:包括程序的抽象语法树、符号表和过程的设计表示。
结构级:依赖关系,如调用图、结构图、程序图和数据结构。
功能级:程序功能及程序段关系的信息,数据和控制流模型。
领域级:如E-R图,领域概念之间关系。
领域级最抽象,完备最低。实现级不抽象,完备性最高。
重构、设计恢复、再工程和正向工程。
重构:同一抽象级别转换系统描述形式。
再工程:逆向工程基础上,修改或重构已有系统,产生新的系统版本。三个过程,逆向过程、新需求考虑和正向工程。
设计恢复:从已有的程序中抽象出有关数据设计。
正向工程:使用该信息去改变或重构现有系统。
相关文章:
软件工程模型-架构师之路(四)
软件工程模型 敏捷开发: 个体和交互 胜过 过程和工具、可以工作的软件 胜过 面面俱到的文件、客户合作胜过合同谈判、响应变化 胜过 循序计划。(适应需求变化,积极响应) 敏捷开发与其他结构化方法区别特点:面向人的…...
ubuntu20.04共享文件夹—— /mnt/hgfs里没有共享文件夹
参考文章:https://blog.csdn.net/Edwinwzy/article/details/129580636 虚拟机启用共享文件夹后,/mnt/hgfs下面为空,使用 vmware-hgfsclient 查看设置的共享文件夹名字也是为空。 解决方法: 1. 重新安装vmware tools. 在菜单…...
Redis中的有序集合及其底层跳表
前言 本文着重介绍Redis中的有序集合的底层实现中的跳表 有序集合 Sorted Set Redis中的Sorted Set 是一个有序的无重复值的集合,他底层是使用压缩列表和跳表实现的,和Java中的HashMap底层数据结构(1.8)链表红黑树异曲同工之妙…...
js 小程序限流函数 return闭包函数执行不了
问题: 调用限流 ,没走闭包的函数: checkBalanceReq() loadsh.js // 限流 const throttle (fn, context, interval) > {console.log(">>>>cmm throttle", context, interval)let canRun…...
【数据结构】堆的初始化——如何初始化一个大根堆?
文章目录 源码是如何插入的?扩容向上调整实现大根堆代码: 源码是如何插入的? 扩容 在扩容的时候,如果容量小于64,那就2倍多2的扩容;如果大于64,那就1.5倍扩容。 还会进行溢出的判断,…...
【韩顺平 零基础30天学会Java】程序流程控制(2days)
day1 程序流程控制:顺序控制、分支控制、循环控制 顺序控制:从上到下逐行地执行,中间没有任何判断和跳转。 Java中定义变量时要采用合法的前向引用。 分支控制if-else:单分支、双分支和多分支。 单分支 import java.util.Scann…...
从入门到精通Python隧道代理的使用与优化
哈喽,Python爬虫小伙伴们!今天我们来聊聊如何从入门到精通地使用和优化Python隧道代理,让我们的爬虫程序更加稳定、高效!今天我们将对使用和优化进行一个简单的梳理,并且会提供相应的代码示例。 1. 什么是隧道代理&…...
19万字智慧城市总体规划与设计方案WORD
导读:原文《19万字智慧城市总体规划与设计方案WORD》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 感知基础设施 感知基础设施架构由感知范围、感知手…...
[赛博昆仑] 腾讯QQ_PC端,逻辑漏洞导致RCE漏洞
简介 !! 内容仅供学习,请不要进行非法网络活动,网络不是法外之地!! 赛博昆仑是国内一家较为知名的网络安全公司,该公司今日报告称 Windows 版腾讯 QQ 桌面客户端出现高危安全漏洞,据称“黑客利用难度极低、危害较大”,腾讯刚刚已经紧急发布…...
python Requests
Requests概述 官方文档:http://cn.python-requests.org/zh_CN/latest/,Requests是python的HTTP的库,我们可以安全的使用 Requests安装 pip install Requests -i https://pypi.tuna.tsinghua.edu.cn/simple Requests的使用 Respose的属性 属性说明url响…...
【深入解析:数据结构栈的魅力与应用】
本章重点 栈的概念及结构 栈的实现方式 数组实现栈接口 栈面试题目 概念选择题 一、栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数…...
安卓机显示屏的硬件结构
显示屏的硬件结构 显示屏的硬件结构主要由背光源、液晶面板和驱动电路构成。可以将液晶面板看成一个三明治的结构,即在两片偏振方向互相垂直的偏光片系统中夹着一层液晶层。自然光源通过起偏器(偏光片之一)后,变成了垂直方向的偏…...
基于swing的超市管理系统java仓库库存进销存jsp源代码mysql
本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 基于swing的超市管理系统 系统有3权限:管…...
常用系统命令
重定向 cat aa.txt > bbb.txt 将输出定向到bbb.txt cat aaa.txt >> bbb.txt 输出并追加查看进程 ps ps -ef 显示所有进程 例⼦:ps -ef | grep mysql |:管道符 kill pid 结束进程, 如 kill 3732;根据进程名结束进程可以先…...
【Spring专题】Spring之Bean生命周期源码解析——阶段四(Bean销毁)(拓展,了解就好)
目录 前言阅读建议 课程内容一、Bean什么时候销毁二、实现自定义的Bean销毁逻辑2.1 实现DisposableBean或者AutoCloseable接口2.2 使用PreDestroy注解2.3 其他方式(手动指定销毁方法名字) 三、注册销毁Bean过程及方法详解3.1 AbstractBeanFactory#requir…...
配置Docker,漏洞复现
目录 配置Docker 漏洞复现 配置Docker Docker的配置在Linux系统中相对简单,以下是详细步骤: 1.安装Docker:打开终端,运行以下命令以安装Docker。 sudo apt update sudo apt install docker.io 2.启动Docker服务:运…...
微信小程序 游戏水平评估系统的设计与实现_pzbe0
近年来,随着互联网的蓬勃发展,游戏公司对信息的管理提出了更高的要求。传统的管理方式已无法满足现代人们的需求。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,随着各行业的不断发展,使命召…...
moba登录不进去提示修改问题问题解决方式
问题: 安装moba后,运行时运行不起来,提示输入密码,安装、卸载多个版本都不行 方法: 使用ResetMasterPassword工具进行重置主密码 官网下载地址: MobaXterm Xserver and tabbed SSH client - resetmaster…...
Unsafe upfileupload
文章目录 client checkMIME Typegetimagesize 文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像、上传附件等等。当用户点击上传按钮后,后台会对上传的文件进行判断 比如是否是指定的类型、后缀名、大小等等,然后将其按…...
机器人制作开源方案 | 滑板助力器
我们可以用一块废滑板做些什么呢? 如今,越来越多的人选择电动滑板作为代步工具或娱乐方式,市场上也涌现出越来越多的电动滑板产品。 (图片来源:Backfire Zealot X Belt Drive Electric Skateboard– Backfire Board…...
CLIP-GmP-ViT-L-14图文匹配测试工具:在Ubuntu服务器上的生产环境部署详解
CLIP-GmP-ViT-L-14图文匹配测试工具:在Ubuntu服务器上的生产环境部署详解 想把那个能看懂图片的AI模型,也就是CLIP,稳稳当当地跑在自己的服务器上吗?特别是那个功能更强的CLIP-GmP-ViT-L-14版本。你可能在网上看过不少教程&#…...
安卓模拟器封包技术避坑指南:X64游戏协议分析与实战(易语言+C++)
安卓模拟器X64封包技术深度解析:从协议分析到多语言实战 在移动游戏生态蓬勃发展的今天,安卓模拟器已成为开发者测试和玩家体验的重要工具。然而,当涉及到X64架构游戏的协议分析与封包处理时,即便是经验丰富的开发者也常陷入各种技…...
神经形态计算【neuromorphic computing】——从生物启发的模型到高效硬件实现
1. 神经形态计算:当计算机开始"思考"像大脑 第一次听说"神经形态计算"这个词时,我正盯着实验室里嗡嗡作响的服务器发愁——这台功耗2000W的大家伙,处理简单图像识别任务时温度能煎熟鸡蛋,而人脑完成类似工作只…...
MT5 Zero-Shot中文数据增强效果展示:10组高质量 paraphrasing 实际案例
MT5 Zero-Shot中文数据增强效果展示:10组高质量 paraphrasing 实际案例 1. 引言:当AI学会“换句话说话” 你有没有遇到过这样的场景?写了一段文案,总觉得表达不够丰富;训练一个模型,却发现数据太单一&…...
SAP权限管理实战:从SU01到PFCG的完整避坑指南(附常见错误排查)
SAP权限管理实战:从SU01到PFCG的完整避坑指南 在SAP系统中,权限管理是保障企业数据安全的核心环节。作为Basis管理员或初级顾问,你是否曾遇到过用户权限配置后不生效、角色冲突导致业务中断,或是紧急情况下无法快速定位权限问题&a…...
MD5哈希碰撞实战:为什么你的两个“不同”程序可能有相同的校验和?
MD5哈希碰撞实战:为什么你的两个“不同”程序可能有相同的校验和? 想象一下这样的场景:你在进行软件安全审计时,发现两个行为完全不同的可执行文件,却拥有完全相同的MD5哈希值。这不是科幻情节,而是真实存在…...
Nacos踩坑实录:解决jdbc.properties加载失败的3种实战方案
Nacos实战:彻底解决jdbc.properties加载失败的深度排查指南 深夜两点,当你在本地环境调试Nacos服务时,突然在控制台看到那行刺眼的红色错误日志——[db-load-error]load jdbc.properties error。这不是一个简单的配置问题,而是Nac…...
时间窗约束下的取送货路径优化:模型、挑战与实战解析
1. 时间窗约束下的取送货问题是什么? 想象一下你每天使用的快递服务:快递小哥需要从仓库取件,然后在指定时间范围内送到你家。这就是典型的时间窗约束取送货问题(PDPTW)。但现实情况往往更复杂——比如网约车拼车场景&…...
手把手教学:用GME多模态向量模型搭建一个简单的文搜图工具
手把手教学:用GME多模态向量模型搭建一个简单的文搜图工具 1. 项目概述与准备工作 1.1 什么是GME多模态向量模型 GME多模态向量模型是一种强大的AI工具,能够将文本、图像以及图文对转换为统一的向量表示。这种技术让计算机能够"理解"不同形…...
Stable Yogi Leather-Dress-Collection 实战案例:为智能车内饰提供皮革设计方案
Stable Yogi Leather-Dress-Collection 实战案例:为智能车内饰提供皮革设计方案 最近几年,智能车这个概念越来越火。大家讨论的焦点,往往集中在自动驾驶、智能座舱、车机系统这些“硬核”科技上。但作为一个和设计、材料打过不少交道的人&am…...
