初谈软件工程(一)

        我就读于兰州交通大学的软件工程专业。虽然在全国众多的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”的出现,也推动了软件工程技术的进一步发展和应用。这些历史变迁和技术进步共同构成了软件工程领域的丰富画卷。


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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[面试]我们常说的负载均衡是什么东西?

什么是负载均衡 如果用户量很多, 服务器的流量也随之增大, 此时出现两个问题, 软件性能下降 容易出现单点故障 为了解决这些问题, 引入了集群化架构, 也就是把一个软件同时部署在多个服务器上 集群化架构出现的问题 架构改变后又出现了两个问题 如何将请求均匀的发送到多…

Vue源码系列讲解——生命周期篇【七】(模板编译阶段)

目录 1. 前言 2. 模板编译阶段分析 2.1 两种$mount方法对比 2.2 完整版的vm.$mount方法分析 3. 总结 1. 前言 前几篇文章中我们介绍了生命周期的初始化阶段,我们知道,在初始化阶段各项工作做完之后调用了vm.$mount方法,该方法的调用标志…

一款.NET下 WPF UI框架介绍

WPF开源的UI框架有很多,如HandyControl、MahApps.Metro、Xceed Extended WPF Toolkit™、Modern UI for WPF (MUI)、Layui-WPF、MaterialDesignInXamlToolkit、等等,今天小编带大家认识一款比较常用的kaiyuanUI---WPF UI,这款ui框架美观现代化,用起来也超级方便, 界面展示…

论文阅读:《High-Resolution Image Synthesis with Latent Diffusion Models》

High-Resolution Image Synthesis with Latent Diffusion Models 论文链接 代码链接 What’s the problem addressed in the paper?(这篇文章究竟讲了什么问题?比方说一个算法,它的 input 和 output 是什么?问题的条件是什么) 这篇文章提…

Nginx的核心配置指令及调优

目录 Nginx 核心配置指令 一、Nginx配置文件详解 1、配置文件目录 2、配置文件结构 二、调优 1、在全局域进行的调优 1.1线程池指令 1.2 工作进程数指令 1.3工作进程优先级指令 1.4 工作进程 CPU 绑定指令 1.5 调试可打开的文件个数 1.6 调试文件大小指令 1.7 只运…

【Docker】03 容器操作

文章目录 一、流转图二、基本操作2.1 查看本地容器进程2.2 启动容器2.2.1 交互式启动容器2.2.2 后台启动容器 2.3 进入容器2.4 停止启动重启容器2.5 退出容器2.6 删除容器2.7 提交容器(打包成镜像)2.8 拷贝文件2.8.1 拷贝容器内文件到宿主机2.8.2 拷贝宿…

2024.2.29 模拟实现 RabbitMQ —— 项目展示

目录 项目介绍 核心功能 核心技术 演示直接交换机 演示扇出交换机 演示主题交换机 项目介绍 此处我们模拟 RabbitMQ 实现了一个消息队列服务器 核心功能 提供了 虚拟主机、交换机、队列、绑定、消息 概念的管理九大核心 API 创建队列、销毁队列、创建交换机、销毁交换机、…

react useMemo 用法

1,useCallback 的功能完全可以由 useMemo 所取代,如果你想通过使用 useMemo 返回一个记忆函数也是完全可以的。 usecallback(fn,inputs)is equivalent to useMemo(()> fn, inputs). 区别是:useCallback不会执行第一个参数函数,而是将它返…

自定义Chrome的浏览器开发者工具DevTools界面的字体和样式

Chrome浏览器开发者工具默认的字体太小,想要修改但没有相关设置。 外观——字体可以自定义字体,但大小不可以调整。 github上有人给出了方法 整理为中文教程: 1.打开浏览器开发者工具,点开设置——实验,勾上红框设…

网络技术ensp 一个简单的交换机配置案例

由于工作调岗,转战网络运维了,第一次网络笔记 1.,目的:2台主机相互可以ping通,并且可以ping通网关地址,设备:2台主机,2台交换机 2网络拓扑图如下 3.主机pc1的配置信息 ip&#xff…

轻量级模型,重量级性能,TinyLlama、LiteLlama小模型火起来了,针对特定领域较小的语言模型是否与较大的模型同样有效?

轻量级模型,重量级性能,TinyLlama、LiteLlama小模型火起来了,针对特定领域较小的语言模型是否与较大的模型同样有效? 当大家都在研究大模型(LLM)参数规模达到百亿甚至千亿级别的同时,小巧且兼具高性能的小…

Springboot应用执行器Actuator源码分析

文章目录 一、认识Actuator1、回顾Actuator2、Actuator重要端点 二、源码分析1、Endpoint自动装配(1)自动配置入口(2)普通Endpoint自动装配(3)配置Web - Endpoint(4)注册Endpoint为M…

微信小程序-全局配置

个人笔记,仅供参考。 1.entryPagePath 代码: "entryPagePath": "pages/index/index" 具体用法: 2.pages 小程序中新增/减少页面,都需要对 pages 数组进行修改。 代码: "pages": [&…

设计模式系列文章-7个创建型模式更新已完结

其实从2019年开始就有些一套关于设计模式的系列文章,但是因为种种原因一直搁置到现在。直到2024年才又恢复更新。 24年1月份上旬一直在弄博客站:https://jaune162.blog 的搭建 24年1月份下旬弄专题站:https://books.jaune162.blog 的搭建。…

设计模式(十) - 工厂方式模式

前言 在此前的设计模式(四)简单工厂模式中我们介绍了简单工厂模式,在这篇文章中我们来介绍下工厂方法模式,它同样是创建型设计模式,而且又有些类似,文章的末尾会介绍他们之间的不同。 1.工厂方法模式简介 …

每日五道java面试题之spring篇(七)

目录: 第一题. 什么是Spring beans?第二题. 一个 Spring Bean 定义 包含什么?第三题. 如何给Spring 容器提供配置元数据?Spring有几种配置方式?第四题. Spring基于xml注入bean的几种方式?第五题:你怎样定义类的作用域…

性能优化问题思考总结

INP 是什么? Interaction to Next Paint (INP) INP是一项指标,通过观察用户在访问网页期间发生的所有点击、点按和键盘互动的延迟时间,评估网页对用户互动的总体响应情况。 互动是指在同一逻辑用户手势期间触发的一组事件处理脚本。例如&a…

酷开科技,让酷开系统成为现代生活的变革者

电视,从问世就一直受到人们的追捧。还记得小时候一家人围坐在电视机前的场景,小小的黑白屏幕,牢牢的吸引着大家的目光。随着科技的不断进步,我们的生活也发生了翻天覆地的变化。而电视,也从笨重的黑白电视变成了轻薄的…

jenkins + gitlab + nginx 自动部署(webhook)

一、意义 当代码仓库被更新时,Jenkins会自动拉取代码进行构建。 适用于测试环境 二、jenkins gitlab nginx 自动部署(webhook) 1.准备服务器 ①安装Jenkins(Java17,tomcat9) ②安装gitlab (16) ③…

深入理解Python中的JSON模块:基础大总结与实战代码解析【第102篇—JSON模块】

深入理解Python中的JSON模块:基础大总结与实战代码解析 在Python中,JSON(JavaScript Object Notation)模块是处理JSON数据的重要工具之一。JSON是一种轻量级的数据交换格式,广泛应用于Web开发、API通信等领域。本文将…