软件设计开发技术的演进

一、演进历史

1950+ 面向机器编程:基于图灵机模型的计算机,机器语言与汇编语言

1960+ 函数式编程:Lisp语言,以lamda演算为理论基础的编程语言

1966 过程化编程:取消goto,结构化编程,流程图建模,软件 = 算法 + 数据结构

1970+ 模块化架构: PASCAL,C,UNIx的封装,依赖大规模开发

1974 MVC架构: UI与逻辑解耦,分层架构

1978 数据建模:关系数据库,实体关系,ER建模

1980+ 面向对象编程: C++,逻辑复用,抽象接口

1986 并发与容错 :并发,高容错架构

1991 Linux系统:自由,开放,可裁剪

1993+ 组件化架构:COM

1994 设计模式:面向对象应对的软件设计问题的解决方案

1995 4+1视图:场景视图,逻辑视图,开发视图,运行视图,物理视图

1997 UML:用例图,静态图,行为图,交互图,实现图

1998 服务化架构

1999 四色建模

2001 MDA :模型驱动架构

2001 敏捷开发:TDD,重构,持续继承,代码表达力,演进式设计

2003 领域驱动设计:领域建模。通用语言,战略战术设计,代码模型一直性

2007 MBSE SysML:建模语言,建模工具,建模方法,形式验证

2009 DCI架构:MVC的补充

2010+ 编程语言的演进: C++11,java8,Go,异步与并发,安全性

2012 微服务架构

2013 docker:轻量级虚拟化

2013 事件架构与建模

2015 云原生架构

二、演进目标

让软件更容易验证其正确性

让软件更容易变化

让软件更容易复用

让软件更容易被理解

参考:

一文读懂软件开发流程的演变过程(软件开发经历的三个演变过程) | 项目管理软件—集团管控系统—宇凡软件

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

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

相关文章

数字游戏

题目描述 小 K 同学向小 P 同学发送了一个长度为 8 的 01 字符串 来玩数字游戏,小 P 同学想要知道字符串中究竟有多少个 1。 注意:01 字符串为每一个字符是 0 或者 1 的字符串,如“101”(不含双引号)为一个长度为 3 …

Thread线程启动的多种方式

启动线程一共有三种方法:继承类,实现接口,匿名内部类。但是 可以有多种的写法 第一种:匿名内部类 Thread thread = new Thread(new Runnable() {@Overridepublic void run() {System

自动化测试学习指南

软件自动化测试的学习步骤 大概步骤如下: 1. 做好手工测试(了解各种测试的知识)-> 2. 学习编程语言-> 3. 学习Web基础(HTML,HTTP,CSS,DOM,Javascript)或者 学习Winform -> 4. 学习自动化测试工具 ->5.…

用c语言程序实现冒泡法排序

下面是用 C 语言实现冒泡排序的例子&#xff1a; #include <stdio.h>void bubble_sort(int arr[], int size) {int i, j, temp;for (i 0; i < size - 1; i) {for (j 0; j < size - i - 1; j) {if (arr[j] > arr[j 1]) {temp arr[j];arr[j] arr[j 1];arr[…

字符串和内存函数(2)

文章目录 2.13 memcpy2.14 memmove2.15 memcmp2.16 memset 2.13 memcpy void* memcpy(void* destination, const void* source, size_t num); 函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。这个函数在遇到 ‘\0’ 的时候并不会停下来。如果so…

【0day】复现时空智友企业流程化管控系统wc.db数据库文件泄露漏洞

注:该文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与作者无关。 目录 一、漏洞描述 二、影响版本 三、资产测绘 四、漏洞复现

AQS和ReentrantLock还能这样理解?

1.公平锁和非公平锁 1.1含义 公平锁:在竞争环境下&#xff0c;先到临界区的线程比后到的线程一定更快地获取得到锁。非公平锁:先到临界区的线程未必比后到的线程更快地获取得到锁。 1.2如何自我实现 公平锁实现&#xff1a;可以把竞争的线程放在一个先进先出的队列上。只要…

你了解Postman 变量吗?

变量是在Postman工具中使用的一种特殊功能&#xff0c;用于存储和管理动态数据。它们可以用于在请求的不同部分、环境或集合之间共享和重复使用值。 Postman变量有以下几种类型&#xff1a; 1、环境变量&#xff08;Environment Variables&#xff09;: 环境变量是在Postman…

C/C++实现:使用单向循环链表实现:编写相关函数来完成两个超长正整数的加法 某知名公司笔试题

目录 题目描述: 题目分析: 代码实现: 完整代码: 运行结果: 题目描述: 请编写相关函数来完成两个超长正整数的加法,超长

2023.11.22 数据仓库2-维度建模

目录 1.数仓建设方案 2.数仓结构图,项目架构图 2.1项目架构图 2.2数仓结构图 3.建模设计 4.维度建模 什么是事实表: 什么是维度表: 数据发展模式y以及对应的模型 5.数仓建设规范 数据库划分规范 表命名规范 表字段类型规范 1.数仓建设方案 ODS: 源数据层(临时存储层) 贴…

防爆智能安全帽、防爆手持终端,防爆智能矿灯守护安全,在煤矿安全生产远程可视化监管中的应用

煤矿安全新守护&#xff1a;如何通过防爆智能装备实现远程可视化监管 煤矿是国民经济的重要支柱产业&#xff0c;但长期以来&#xff0c;安全生产事故的频发一直是困扰煤矿行业发展的严峻问题。安全生产事故不仅危及矿工的生命安全&#xff0c;也对企业和地方经济造成了重大的…

csdn最新最全pytest系列——pytest-xdist插件之多进程运行测试用例|| pytest-parallel插件之多线程运行测试用例

pytest之多进程运行测试用例(pytest-xdist) 前言 平常我们功能测试用例非常多时&#xff0c;比如有1千条用例&#xff0c;假设每个用例执行需要1分钟&#xff0c;如果单个测试人员执行需要1000分钟才能跑完当项目非常紧急时&#xff0c;会需要协调多个测试资源来把任务分成两部…

HPC 集群计算类型的注意事项

HPC 集群计算类型的注意事项 HPC 工作负载在 CPU &#xff0c;内存&#xff0c;网络和存储资源需求方面有不同的要求。 您可以从以下内容开始: 核心计数每个核心的内存网络带宽和等待时间处理器时钟速度 目标是选取返回最佳性价比的计算配置。 HPC 工作负载可以与单个核心作…

Centos8上部署MySQL主从备份

虚拟机环境如下&#xff1a; Node1192.168.1.110Centos8 Node2192.168.1.111Centos8 1.在Node1和Node2上安装数据库&#xff1b; yum install -y mysql* 2.关闭防火墙服务&#xff0c;关闭开启自启&#xff1b; systemctl stop firewalld systemctl disable firewall…

2022年06月 Scratch(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 角色初始位置如图所示,下面哪个选项能让角色移到舞台的左下角? A: B: C: D: </

VirtualBox配置共享文件夹,如果你一直安装增强功能失败,又没有尝试过改内核版本。。。

1 背景 想设置电脑本地和virtualbox虚拟机之间的共享文件夹&#xff0c;这样在电脑本地对共享文件的修改&#xff0c;就可以在虚拟机中被感知。 如果想配置共享文件夹&#xff0c;前提是必须安装virtualbox的增强功能。 我的虚拟机是7.0.10版本 安装的centOS8.5 可以看我之前的…

内网穿透隐秘隧道搭建

别低头&#xff0c;皇冠会掉&#xff1b;别流泪&#xff0c;贱人会笑。 本文首发于先知社区&#xff0c;原创作者即是本人 0x00 前言 构建内网隐蔽通道&#xff0c;从而突破各种安全策略限制&#xff0c;实现对目标服务器的完美控制。 当我们从外网成功获得攻击点的时候&…

达梦:【1】达梦常用操作

达梦&#xff1a;【1】达梦常用操作 一、登录达梦二、创建表空间及用户模式三、查看表空间、用户、模式四、系统查询五、角色管理六、本地连多台数据库(RAC) 一、登录达梦 ./disql username/passwordip:port > select * from dual;二、创建表空间及用户模式 1、一个用户下…

计算机基础知识56

choices参数的使用 # 应用场景&#xff1a; 学历&#xff1a;小学、初中、高中、本科、硕士、博士、1 2 3 4 5 6 客户来源: 微信渠道、广告、介绍、QQ、等等 性别&#xff1a;男、女、未知 # 对于以上可能被我们列举完的字段我们一般都是选择使用…

HubSpot驱动业务增长:客户拓展的完美引擎!

随着数字化时代的来临&#xff0c;企业面临着前所未有的挑战&#xff0c;尤其在拓展客户方面&#xff0c;传统的方法已经难以适应新的市场环境。在这个背景下&#xff0c;数字化时代的客户拓展变得更为复杂&#xff0c;企业需要更智能、更综合的解决方案来脱颖而出。 HubSpot作…