初谈软件工程(一)
我就读于兰州交通大学的软件工程专业。虽然在全国众多的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一起使用,作为注册中心使用,可以参考另一篇博客…...
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)* 参数一 :…...
MySQL优化之索引下推
(/≧▽≦)/~┴┴ 嗨~我叫小奥 ✨✨✨ 👀👀👀 个人博客:小奥的博客 👍👍👍:个人CSDN ⭐️⭐️⭐️:传送门 🍹 本人24应届生一枚,技术和水平有限&am…...
【Java程序设计】【C00338】基于Springboot的银行客户管理系统(有论文)
基于Springboot的银行客户管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的银行客户管理系统,本系统有管理员、员工以及用户二种角色; 管理员:个人中心、管理员管理、客…...
C语言中大小写字母的转化
目录 C语言中大小写字母的转化 一、引言 二、C语言中的大小写转换函数 toupper()函数 tolower()函数 三、注意事项 四、总结 C语言中大小写字母的转化 一、引言 在C语言编程中,字符的处理是一个重要的环节。字符包括字母、数字、标点符号等,其中…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
