对软件工程的理解:从 “写代码” 到 “系统工程” 的认知跃迁

news/2025/9/25 20:14:53/文章来源:https://www.cnblogs.com/Shibh666/p/19111921

对软件工程的理解:从 “写代码” 到 “系统工程” 的认知跃迁

在接触《软件工程》课程前,我对软件开发的认知停留在“用代码实现功能”的单一维度,认为只要熟练掌握 Python(我最常用的开发语言),能写出可运行的程序就是软件开发的全部。但随着课程学习的深入,我逐渐意识到,软件工程远非“写代码”这么简单——它是一门融合技术、方法与管理的系统学科,核心是用“工程化”思维解决软件规模扩大、复杂度提升带来的问题。

软件工程的本质:管理复杂性

软件的复杂性是其本质属性,而非偶然。正如 Grady Booch 所言,在个体作坊式开发时代,程序员可凭个人经验编写小型程序,但当软件规模扩大到如 Windows 7 的 7000 万行代码、空客 A380 的 10 亿行代码时,仅凭个人能力早已无法应对。

软件工程通过“分而治之”的原则,将复杂系统拆解为可管理的模块,再通过模块化、信息隐藏等原则保证模块独立性。例如,将一个电商系统拆分为用户管理、订单处理、支付接口等子模块,每个模块仅通过明确接口交互,既降低了开发难度,也便于后续维护。

理论与实践的结合

软件工程不仅是理论体系,更是实践指南。它包含:

  • 系统化的方法体系:如结构化开发方法的“自顶向下、逐步求精”,面向对象方法的“封装、继承、多态”。
  • 可落地的过程模型:如瀑布模型的线性流程、螺旋模型的风险驱动迭代。

这些理论源于实践教训与成功经验的总结:

  • IBM 360 OS 项目因缺乏工程化方法,投入 5000 多人年仍延期交付,遗留 2000 多个缺陷;
  • Instagram 团队借助 Django、PostgreSQL 等开源工具,仅用 8 周就完成初版开发,正是得益于对软件工程工具与重用思想的运用。

个人思维的转变

软件工程带给我最大的启示是思维的转变:从关注“代码是否能跑通”,到关注“软件是否满足需求、是否易维护、是否能应对变化”。

课程问卷显示,85.71% 的同学期待“熟练编写程序的能力”,但软件工程告诉我们,编写代码只是开发流程的一环,需求分析、设计、测试、维护同样重要。例如,12306 系统初期因未充分考虑春运高峰的并发需求,上线后频繁崩溃,这正是忽略需求分析与性能测试的教训。

未来学习方向

在今后的学习中,我计划将工程化思维融入实践:

  • 使用 UML 建模梳理需求;
  • 使用 SonarQube 检测代码质量;
  • 使用 Git 进行版本管理。

目标是真正成长为兼具技术能力与工程素养的开发者,不仅写好代码,更要构建健壮、可维护的软件系统。

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

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

相关文章

深入解析:Python9-逻辑回归-决策树

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

完整教程:(13)GPS/无GPS转换

完整教程:(13)GPS/无GPS转换pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&quo…

石家庄网站开发设计asp源码打开网站

生日是一个人在一年中比较特殊的日子之一,人们通常希望能够在这一天得到亲朋好友的祝福和庆祝。然而,随着人们生活节奏的加快,很多人表示自己很容易忘记他人的生日,导致不能够及时送出祝福和礼物。如果经常忘记亲朋好友的生日&…

网站建设主要包括用jquery做的书籍网站

机器学习编译MLC 1. 引言2. 机器学习编译--概述2.1 什么是机器学习编译 1. 引言 陈天奇目前任教于CMU,研究方向为机器学习系统。他是TVM、MXNET、XGBoost的主要作者。2022年夏天,陈天奇在B站开设了《机器学习编译》的课程。   《机器学习编译》课程共分…

在百度做推广需要网站吗质量最好的购物平台

C 语言 break和continue语句 C 语言 break break语句在遇到循环时将立即结束循环。其语法为: break; break语句几乎总是与if…else循环内的语句一起使用。 示例1:break语句 //程序计算最多10个数字的总和 //如果输入负数,则循环终止 includ…

Transformer自回归关键技术:掩码注意力原理与PyTorch完整实现

掩码注意力(Causal Attention)是生成式模型的核心技术,它传统自注意力机制有根本的不同,掩码注意力限制模型只能关注当前位置之前的tokens,确保了自回归生成的因果性。 自注意力的掩码 自注意力机制在Transformer…

深入解析:SQL 字符串函数高频考点:LIKE 和 SUBSTRING 的区别

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

第四篇

今天是9月25号,今天又不发工资,烦死了,不写了。

六安市裕安区建设局网站北京建设信源资讯网站官网

一、粒子 Unity中的粒子组件叫做Particle System。 粒子系统顾名思义,与“微粒”有关。粒子系统会生成和发射很多粒子,通过控制粒子的生成数量、大小、角度、速度、贴图和颜色等众多属性,可以实现或真实或炫酷的各种效果。其中,…

PyTorch图神经网络(六)

PyTorch图神经网络(六) ​ 第十章讲的是使用图神经网络来预测链接,这里直接跳过传统方法。 1.VGAE ​ VGAE是通过编码器-解码器的形式来对链接进行预测。通过VGAE对节点的特征进行编码,然后通过GCN层来聚合相邻节点…

Etcd详解:Kubernetes的大脑与记忆库 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

数智化术中导航:Holoscan + IGX的“边缘实时低时延”管线工艺分析(上)

数智化术中导航:Holoscan + IGX的“边缘实时低时延”管线工艺分析(上)2025-09-25 19:56 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: a…

Qwen多模态系列模型笔记—Qwen-VL

Qwen-VL论文笔记 摘要 在这项工作中,我们介绍Qwen-VL系列,一组旨在感知和理解文本与图像的大规模视觉语言模型。从Qwen-LM这个基础大语言模型出发,我们通过如下四条精心设计,赋予了其视觉能力: (1)视觉编码器;…

慕课网站开发与实现网站提交百度了经常修改网站

状态提升(Lifting-state-up) 把子组件的状态,提升到上级组件中,从而实现在多个组件之间共享和同步数据的效果 以 flutter counter demo,那个按按钮1 的来说,现在的 count 是几,不是存在页面显…

关键词整站排名优化在线下载免费软件的网站

1、检测注入点是否可用python sqlmap.py -u "url"2、从目标url爆破所有数据库名python sqlmap.py -u "url" --dbs3、从目标url爆破当前数据库名python sqlmap.py -u "url" --current-dbs4、列出数据库所有用户python sqlmap.py -u "url&quo…

go 语法里变量前面增加、*区别

在 Go 语言中,& 和 * 是与指针相关的两个重要操作符,它们的作用如下: 简单理解:a为变量,&a获取指针地址 a为指针,*a获取值& 操作符作用:获取变量的内存地址(取地址操作符) 用法:&variable 返…

MFC List 控件详解:高效材料展示与管理

MFC List 控件详解:高效材料展示与管理pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…

历程回顾-(2024-2025)

其实我刚写了一版本了,但是博客园他对于笔记不会随时留档,全没了。 605天的入职时间,经历精彩纷呈,值得总结与交代。 业务周期分成三个阶段,入职五个月+中间一年+结尾三个月。分别是总览->细化->试验,周期…

CF Round 1053(2150 2151) 总结

CF Round 1053(2150 & 2151) 总结 Div2 A 若存在 \(a_i\ge a_i+1\) 那么只出现一次,否则出现 \(n-a_m+1\) 次。 A 我们不能每次从头开始走,考虑怎么利用上一轮的信息。 假设我们要求第 \(k\) 轮的终点,由于第 \…

做投票网站教程应用软件有哪些

效果图 思路: 1. 高亮的色块是独立的一个盒子,需要插入当前激活的内容用来撑开色块盒子的宽度,这样色块的宽度就会和当前激活的内容宽度一致,色块的字体颜色设置透明即可 2. 色块滑动的距离是读当前激活元素的offsetLeft&#x…