当前位置: 首页 > news >正文

初谈软件工程(一)

        我就读于兰州交通大学的软件工程专业。虽然在全国众多的985、211高校中,兰州交通大学可能并不显眼,似乎未能跻身这些所谓的“顶尖”行列就意味着不被认可。然而,在甘肃省的教育领域中,它无疑是一座璀璨的明珠,名列前茅。回顾历史,兰州交通大学也经历了不少波折和变迁,但正是这些经历,铸就了它今日的坚韧与辉煌。


        让我们回归正题,探讨软件工程。我于2022年踏入这所学校的校门,成为本校第23届软件工程专业的学生。遥想首届学子,那是在2000年,如今已经走过了23载春秋。那么,为何会在那个时间点创立软件工程专业呢?这背后蕴藏着深刻的历史原因,与当时国家的发展紧密相连。诸位或许还记得,2001年,中国迎来了一个具有里程碑意义的时刻——我们正式成为世界贸易组织的第143个成员。正是这一重要事件,为中国揭开了长达24年的高速发展序幕,让全球众多发达国家为之侧目。

        在与世界贸易组织接轨后,国内的IT行业还很不景气。正是在这样的背景下,我们学校的软件工程专业应运而生,应运而生地肩负起培养适应市场需求、具备国际竞争力的软件工程师的使命。这一专业的设立,不仅响应了时代的需求,更体现了学校对于行业发展趋势的敏锐洞察和前瞻性布局。


        在我们学校,软件工程专业的发展历程可谓独具特色。

        初期,从2000级至2004级,我们采用了“2+2”的培养模式。这意味着,我们并非直接从高考毕业生中招生,而是从本校已有两年学历的学生中选拔。这一模式的实施,不仅体现了学校在软件工程教育上的创新与独特视角,更凸显了软件工程系在当时已经具备的强大实力。许多优秀的学长学姐们,在毕业后纷纷加入了华为等知名企业,成为行业的佼佼者。

        随后,从2003级至2010级,我们转向了“1+3”的培养模式。这一变革标志着学校对软件工程教育的进一步探索与调整,以适应不断变化的市场需求。

        最终,从2011级开始,我们进入了正常的四年制本科教育模式。这一转变,不仅使软件工程专业的教育更加规范化、系统化,也为学生提供了更加全面、深入的学习机会,为他们在未来的职业生涯中奠定了坚实的基础。


        2000年可谓是一个时代的转折点,正是在这一年,"互联网"这一概念开始崭露头角,引领着科技的浪潮。尽管互联网的起源可以追溯到1995年,但2000年前后无疑是其在国内发展的关键时刻。这一时期,众多IT公司如雨后春笋般涌现,其中不乏如今已崭露头角的行业巨头,如网易、腾讯等。在这一时期,这些公司主要以搜索引擎、门户网站等业务为主,不断探索和拓展互联网的商业边界。


        随着互联网的诞生,另一个具有划时代意义的存在也应运而生——Java。作为一种基于互联网的编译语言,Java的出现对互联网的发展起到了至关重要的作用。而在这背后,我们必须提及那个创造了Java的公司——Sun Microsystems。尽管Sun最终被甲骨文公司收购,但其在科技界的实力与影响力仍是不容小觑的。

        当时的Sun Microsystems可谓是“软硬兼施”。在硬件领域,Sun与TI公司携手合作,于1987年共同开发了第一款具有可扩展性的微处理器——SPARC(Scalable Processor ARChitecture,可扩展处理架构)。这一创举为Sun的产品注入了强大的动力,也使其在高端服务器市场上占据了一席之地。尽管如今Sun已被甲骨文公司收购,但其CPU技术仍在某些领域得到广泛应用和发展。

        而在软件方面,Sun Microsystems同样展现出了卓越的创新力。他们提出了“Green Project”,致力于推动绿色计算和可持续性发展,为整个行业树立了环保的标杆。在创造Java时,Sun更是提出了“write once, run anywhere!”的理念,这一理念使得Java成为了一种跨系统使用的编程语言。无论是更换操作系统还是硬件设备,Java程序都能在不更改代码的情况下正常运行,这一特性使得Java在互联网领域具有了无可替代的地位。


        随后,我们迎来了两种重要的架构模式:“C/S”(Client/Server,客户/服务器)两层架构和“B/S”(Browser/Server,浏览器/服务器)三层架构。这两种架构模式分别被形象地称为“胖”客户端和“瘦”客户端,其区分主要依据在于业务逻辑代码的放置位置。

        “胖”客户端将业务逻辑代码置于客户端本地,典型的例子如银行系统中仍广泛使用的C/S架构。这种架构因其业务逻辑代码直接运行在客户端本地,所以具备较高的安全性和稳定性,能够确保数据的完整性和交易的可靠性。

        相对而言,“瘦”客户端则将业务逻辑代码部署在中间层——应用服务层,以如今人们手中的手机银行APP为例。虽然这种架构在安全性上可能稍逊一筹,但其优势在于为用户提供了更为便捷、快速的服务体验。用户只需通过浏览器或APP界面进行操作,无需关心复杂的业务逻辑处理过程,极大地简化了用户的使用流程。


        软件工程作为一门应用广泛的学科,在兰州交通大学得到了深入的发展和探索。从2000年互联网和Java的崛起开始,软件工程领域经历了巨大的变革,Sun Microsystems等公司的创新为行业发展奠定了坚实基础。兰州交通大学的软件工程专业在这一背景下应运而生,通过不断调整教育模式,培养了大量适应市场需求的软件工程师。同时,两种重要的架构模式——“C/S”和“B/S”的出现,也推动了软件工程技术的进一步发展和应用。这些历史变迁和技术进步共同构成了软件工程领域的丰富画卷。


        希望大家能够从这篇文章中获得启示和收获,同时也感谢各位大佬的支持。如果您在阅读文章时发现任何问题,欢迎在评论区留言,鸿蒙会尽快回复并提供反馈!

相关文章:

初谈软件工程(一)

我就读于兰州交通大学的软件工程专业。虽然在全国众多的985、211高校中,兰州交通大学可能并不显眼,似乎未能跻身这些所谓的“顶尖”行列就意味着不被认可。然而,在甘肃省的教育领域中,它无疑是一座璀璨的明珠,名列前茅…...

自动化开展思路

自动化开展思路 本人在公司一直从事自动化测试推进工作,最近在好友的邀请下去其就职的公司分享如何开展自动化测试! 希望能帮其解决如下几个痛点: 1.上线周期长; 2.测试时间紧张,上线信心不足,测试覆盖…...

安装使用zookeeper

先去官网下载zookeeper:Apache ZooKeeper 直接进入bin目录,使用powerShell打开。 输入: ./zkServer.cmd 命令,启动zookeeper。 zookeeper一般需要配合Dubbo一起使用,作为注册中心使用,可以参考另一篇博客&#xf…...

nginx实现http反向代理及负载均衡

目录 一、代理概述 1、代理概念 1.1 正向代理(Forward Proxy) 1.2 反向代理(Reverse Proxy) 1.3 正向代理与反向代理的区别 2、同构代理与异构代理 2.1 同构代理 2.2 异构代理 2.3 同构代理与异构代理的区别 二、四层代…...

vue组件中data为什么必须是一个函数

查看本专栏目录 关于作者 还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas&#x…...

科技论文编写思路

科技论文编写思路 1.基本框架2.课题可行性评估1.研究目标和意义2.研究方法和技术3.可行性和可操作性4.风险和不确定性5.经济性和资源投入6.成果预期和评估 3.写作思路4.利用AI读论文5.实验流程 1.基本框架 IntroductionRelated worksMethodExperiment and analysisDiscussionC…...

Windows虚拟机克隆后修改SID

在日常使用VMware Workstation我们经常会去克隆一些Windows操作系统的虚拟机,克隆的虚拟机和源虚拟机的系统安全标识符(Security Identifiers,SID)相同,SID是标识用户、组和计算机账户的唯一的号码。 如果两台虚拟机都…...

前端架构: 脚手架工具rxjs的快速上手应用

rxjs rxjs 是一个异步的库和Promise是非常的相似 文档:https://www.npmjs.com/package/rxjs Weekly Downloads 44,474,389 (动态数据) 说明这个库也是非常的流行 安装 $ npm i -S rxjs 使用 import { range, filter, map } from rxjs;range(1, 200).pipe(filte…...

小程序框架(概念、工作原理、发展及应用)

引言 移动应用的普及使得用户对于轻量级、即时可用的应用程序需求越来越迫切。在这个背景下,小程序应运而生,成为一种无需下载安装、即点即用的应用形式,为用户提供了更便捷的体验。小程序的快速发展离不开强大的开发支持,而小程…...

音视频数字化(数字与模拟-电影)

针对电视屏幕,电影被称为“大荧幕”,也是娱乐行业的顶尖产业。作为一项综合艺术,从被发明至今,近200年的发展史中,无人可以替代,并始终走在时代的前列。 电影回放的原理就是“视觉残留”,也就是快速移过眼前的画面,会在人的大脑中残留短暂的时间,随着画面不断地移过,…...

在 Ubuntu 中, 使用 fsck 命令来修复磁盘文件系统

在 Ubuntu 中,可以使用 fsck 命令来修复磁盘文件系统。fsck 是用于检查和修复文件系统的工具。 使用 fsck 命令修复磁盘文件系统的步骤如下: 首先,您需要在命令行终端窗口中以 root 用户身份登录。 使用 fdisk -l 命令列出所有磁盘设备。 …...

LED电子显示屏连接方式解析

LED电子显示屏作为现代化数字展示设备的重要组成部分,其连接方式对于显示效果和稳定性至关重要。正确选择和实施连接方式不仅可以确保LED显示屏系统的正常运行,还可以提高其可靠性和持久性。本文将介绍LED电子显示屏常见的连接方式,以帮助读者…...

Mysql运维篇(五) 部署MHA--主机环境配置

一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人。如有侵权,请留言,我及时删除! 大佬博文 https://www.cnblogs.com/gomysql/p/3675429.html MySQL 高可用(MHA&#x…...

Offer必备算法09_分治快排_四道力扣OJ(快排三路划分)

目录 分治快排算法原理 ①力扣75. 颜色分类 解析代码 ②力扣912. 排序数组 解析代码 ③力扣215. 数组中的第K个最大元素 解析代码 ④力扣LCR 159. 库存管理 III(剑指 Offer . 最小的k个数) 解析代码 本篇完。 分治快排算法原理 分治就是分而治…...

Linux下性能分析的可视化图表工具

1 sar 和sadf 1.1 简介 sar命令可以记录系统下的常见活动信息,例如CPU使用率、网络统计数据、Block I/O数据、内存使用情况 等。 sar命令的“-o [file_name]”参数可以将系统活动数据记录到file_name文件,然后通过sadf来解析,sadf命令的“-g…...

泽攸科技JS系列高精度台阶仪在半导体领域的应用

泽攸科技JS系列高精度台阶仪是一款先进的自主研发的国产台阶仪,采用了先进的扫描探针技术。通过扫描探针在样品表面上进行微观测量,台阶仪能够准确获取表面形貌信息。其工作原理基于探针与样品表面的相互作用力,通过测量探针的微小位移&#…...

c++实现栈和队列类

c实现栈和队列类 栈(Stack)Stack示意图Stack.cpp 队列(queue)queue 示意图queue.cpp 栈(Stack) Stack示意图 Stack.cpp #pragma once #include "ListStu.cpp"template<typename T> class Stack { public: /* * void push(T& tDate)* 参数一 &#xff1a;…...

MySQL优化之索引下推

(/≧▽≦)/~┴┴ 嗨~我叫小奥 ✨✨✨ &#x1f440;&#x1f440;&#x1f440; 个人博客&#xff1a;小奥的博客 &#x1f44d;&#x1f44d;&#x1f44d;&#xff1a;个人CSDN ⭐️⭐️⭐️&#xff1a;传送门 &#x1f379; 本人24应届生一枚&#xff0c;技术和水平有限&am…...

【Java程序设计】【C00338】基于Springboot的银行客户管理系统(有论文)

基于Springboot的银行客户管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的银行客户管理系统&#xff0c;本系统有管理员、员工以及用户二种角色&#xff1b; 管理员&#xff1a;个人中心、管理员管理、客…...

C语言中大小写字母的转化

目录 C语言中大小写字母的转化 一、引言 二、C语言中的大小写转换函数 toupper()函数 tolower()函数 三、注意事项 四、总结 C语言中大小写字母的转化 一、引言 在C语言编程中&#xff0c;字符的处理是一个重要的环节。字符包括字母、数字、标点符号等&#xff0c;其中…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...