软件工程之他见——鲍周晓

机器狗自主导航:FastLIO2与TEB的跨平台适配实践 四足机器人自主导航不同于轮式平台,其核心在于运动学模型与感知-规划-控制闭环的深度耦合。FastLIO2提供高精度6DoF位姿估计,TEB擅长局部路径优化,但二者直接组合会因坐标系错配、时间尺度失同步、地形适应缺失等问题导致实机失效。本文从位姿引擎改造、代价函数重定义、6DoF运动学映射出发,系统阐述如何将标准ROS导航栈适配至机器狗平台,并强调协方差感知、步态相位耦合、动态膨胀等关键技术点,适用于Unitree Go2、Mini Cheetah等主流四足平台。 阅读详情

MSRA的高级软件工程已经开始两周了,听着邹欣老师介绍一通,什么心理学管理学全都囊括在内;再自己这本书那本书的翻看一通,忽然发现原来软件工程和我想象中的不完全是那么一回事。于是立马Google一番,发现维基百科中的定义是:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科,它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。这才恍然大悟,原来软件工程不仅仅是说怎么用编程语言写出一个软件,除了程序员之外,系统分析员、软件设计师、系统架构师、测试员都是不可或缺的重要部分。

很可惜的是,我是学EE的,在科大没有学过软件工程,没有接触过什么真正意义上的系统级别的软件设计(这里顺便建议一下6系可以开开这种工程实践意义较强的课程~~连数学系都开Software Engineering~⊙﹏⊙b汗)。Cube里面就有一个数学系的女生很哈皮地说她学过软件工程,于是便有了这篇“之他见”,更确切的,“之她见”。

首先,是分组和选题。大家六人一组,然后讨论出一个比较感兴趣比较想做的项目开始计划,他们选择的是做出一个网上的科大毕业生通讯录系统,可以通过输入自己的用户名和密码来登录进系统内,然后可以进行一系列的相关操作。

确定要做的项目之后,接下来就是学习一些关于软件工程的基本方法,将所学的方法和步骤应用到选择的题目上去,包括市场调查、需求分析和可行性报告。通过调查现有的各种不同的SNS社区的情况、他们实现的功能什么的来对接下来自己要做的有一个大概的了解和概念;同时向身边的朋友同学以及其他社交圈内的人调研是否有必要设计出这样一个网上信息查询系统;最后再大致分析一下这个项目整体的可行性,以及一个关于这个项目要的计划。当然,这里只是一个初步的设计,对今后的方向有一个大概的了解就行。具体的设计什么的是下一步——概要设计的内容。

前面的基础,项目的 可行性条件都具备了之后,就要开始设计整个工程了。这里面涉及到的就是和全局、局部有关的概念:要首先将软件或者项目预期完成的功能决定好,然后进行概要设计。根据整个project的内容,把它划分为多个模块,再具体去考虑各个模块各自的功能。针对他们的project,一共分成了三个主要模块:登录、注册、信息查找。登录就是用户输入自己的用户名和密码去和已有的用户数据库中的各条匹配,如果匹配成功,则进入用户的个人主页,若匹配失败,则重新登录;注册则是原来不存在于数据库中的用户新建个信息项,然后转到新建的个人主页,同时将该用户的信息添加到数据库;信息查找则是用户输入想要查找对象的一些信息,系统根据这些信息区数据库中匹配,根据访问权限的设定来实现访问或者返回自己的主页。

完成了前面这些之后,整个系统的基本结构就架构好了^_^,可以开始画数据流图了。简单地说,数据流图就是把上面这一堆乱七八糟的结构功能的构想用箭头连接起来,简明扼要利于分析。当然啦,画数据流图的时候也有讲究:从最大的系统开始座位第0层数据流图,画的是整个系统的基本结构框图;接下来细分到具体的网上登录系统;最后就是要实现的登录、注册和查询、信息修改的流程。从那些图可以一目了然,工程的这个模块要干什么什么,那个模块要干什么什么之类的,很清晰,也利于后面编程的实现。

实现整个系统当然必不可少的就是coding啦~~coding只是整个的一部分而已,而且我也没办法说清楚如何如何去编程,毕竟高手牛人还是很多滴~~ 总之呢,编出系统之后并没有完事,还有一项要做的就是用户测试。你毕竟做出了一个系统嘛,不给人家用用看怎么能够判断它好不好呢?给一批科大毕业生体验一下这个系统之后,根据得到的反馈信息来评价这个系统的整体性能,然后进一步做一些修改和完善。其实写一个用户手册出来告诉大家这个系统该怎么用之类的还是很必要的,可以做一下。

大致的她在软件工程这门课上所做的就是这些了。她说,在软件工程这门课上还是可以学到很多东西的,当然啦,这些东西根据你所做的project还是有所不同的。像他们的这个网上信息查询系统,她就学会了用PHP,CSS,HTML, MYSQL,还有其他一些如何设计一个工程、如何一步步实现、如何进行用户测试以及相应的调整。在我看来,这是一个系统性的学习,交叉性学科的任务。除了写程序,我们在软件工程中其实还有很多方面可以学习和运用,经验教训的累积也会在将来的工作实践中成为一笔宝贵的财富。

哈哈,最后总结一下,软件工程还是很强大的,学好了还是很有用的。希望我们可以在邹欣老师的带领和指导下领略到这门独特的艺术~~

 

SpringBoot+Vue+MySQL 高校学科竞赛平台 完整可运行版(源码+文档) 本项目基于SpringBoot+Vue+MySQL构建高校学科竞赛管理平台,覆盖学生、教师、领队教师、管理员四大角色,实现竞赛发布、报名、刷题、评分、公示等全流程闭环管理。系统架构清晰,技术主流,配套完整源码、数据库脚本、万字论文、开题报告、答辩PPT及部署文档,支持一键运行,适用于毕业设计、课程设计及院系二次开发,真正实现“开箱即用”。 阅读详情

相关推荐

HC-SR04测距不准?STM32F103定时器捕获模式详解与精度提升实战

本文详细解析了HC-SR04超声波测距模块在STM32F103上的精度问题,并提供了定时器输入捕获模式的实战配置方法。通过硬件级时间测量和温度补偿算法,将测距精度提升至±0.1cm,适用于工业级应用场景。文章包含完整的代码实现和测试对比数据,帮助开发者解决超声波测距不准的常见问题。

weixin_30313409的博客 351

开博啦~~

今天我们组正式开博啦! 简介 这是CodingCrazy小组在学习邹欣老师的现代软件工程课时创立的博客。 邹欣老师是微软亚洲研究院创新工程中心的首席研发主管,也是一位牛哄哄的人,曾参与Visual Studio和Outlook的开发,《移山之道》和《编程之美》的作者。 我们组由来自微软亚洲研究院(MSRA)的7位实习生组成:方晓、鲍周晓、杨绪勇、许晓彬、任广鑫、焦斌星、崔浩...

weixin_30901729的博客 285

第1.1节 构网型 vs. 跟网型:根本区别与技术原理

构网型与跟网型变流器的本质区别在于控制哲学与等效模型。跟网型变流器采用"电压跟随,电流注入"策略,等效为受控电流源,依赖电网电压作为参考,在弱电网下存在稳定性问题。构网型变流器采用"自主同步,电压构建"策略,等效为受控电压源,能主动构建电压和频率,具备自主运行、黑启动和电网支撑能力。两者的核心差异体现在同步机制、电网依赖性、故障行为和系统支撑等方面。构网型变流器更适合高比例新能源、弱电网和微电网场景,是未来电力系统的重要发展方向。

技术工作者 1397

Pair Project I 总结——史经浩

Pair: 任广鑫&史经浩刚开始做的时候,一切都没底。一是以前写程序都是一个人搞,还真没有和别人合作过,不知道什么效果,会不会没有效率或是很别扭之类的。二是SilverLight神马的之前从没有用过,貌似很难搞的样子,短短的两个星期能否做出来还是未知数。怀着这种忐忑不安的心情,开始了我的pair project.其实觉得这个题目有点勉为其难的感觉,boardgame之所以叫boardgame,就是在平面上玩的,现在非要拓展到3D去,有点赶鸭子上架,不伦不类。但是木有办法,作业还是得做。于是在和任广鑫进行了多

MSRA_SE_TEAM的专栏 1568

从FP16到FP8:我是如何让Stable Diffusion 3.5提速40%而不丢画质的

本文分享了StableDiffusion模型优化的实战经验。通过FP8精度转换、分层处理敏感模块,实现显存占用降低35%、推理速度提升40%。文章详细介绍了提升画质的五大技巧、本地/云端/移动端部署方案,以及二次元模型定制等垂直领域应用。同时总结了硬件兼容性、数据质量等七大常见陷阱,并强调持续监控和伦理考量。作者指出未来应关注MoE架构、注意力机制优化等方向,认为技术优化是持续追求性能与质量平衡的过程。

达则兼济天下 1190

5、癌症数据预处理技术与深度学习在癌症预测中的应用

本文详细介绍了癌症数据预处理技术和深度学习在癌症预测中的应用。针对CT扫描图像、X射线图像、超声图像、基因表达数据和文本数据等不同类型的癌症数据,分别阐述了去噪、插值、配准、归一化等预处理技术的具体方法。同时,分析了深度学习在乳腺癌、白血病和宫颈癌预测中的作用,结合相关影响因素探讨了模型的应用潜力。此外,还总结了深度学习在癌症预测中面临的挑战及未来发展方向,为癌症的早期诊断与精准预测提供了理论支持和技术参考。

alice7model的博客 123

Docker Compose:搭建本地多服务开发环境

从一个 Java API、PostgreSQL 和 Redis 开始,配置服务名、端口、环境变量、健康检查、数据卷和依赖关系。理解 Compose 文件如何被解析、项目如何隔离,以及哪些数据不能依赖“重建容器”保留,能够把个人开发环境整理成团队可复用的启动入口。

m0_62221377的博客 474

【24届数字IC秋招总结】正式批面试经验汇总6——禾赛

15、ahb写或者读的数据存储起来了嘛,ahb读的话,apb这边是怎样的。19、覆盖率收集的时候有没有哪些是很难收集到的,然后写了定向测试。2、C++有学过嘛 还记得C++的什么内容 C++成绩多少。12、config_db机制用过嘛 四个参数的含义。8、脚本语言有学过嘛 简单学过 简单是指代码数少嘛。13、run_phase和mian_phase的区别。10、覆盖机制的创建方法 ,是不是覆盖用的很少。6、call_back机制记得哪些细节的东西。9、uvm实战学了哪些章节 印象深刻的章节。

qq_42135020的博客 1087

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 425

QT5.12.1报错:1. clang++:error: :fatal error andriod Input/output error

QT5.12.1报错:1. clang++:error: :fatal error andriod Input/output error 解决方式: 1.qt程序不要放在共享目录下编译,直接拷贝到ubuntu系统中编译 2.修改/home/xt/Qt5.12.1/5.12.1/android_armv7/mkspecs/android-clang中 #QMAKE_LINK = QMAKECXXQMAKE_CXX QMAKEC​XXQMAKE_CFLAGS -Wl,–exclude-libs,libgc

xt18971492243的博客 738

一文搞定 ST22 短转储 MEMORY_NO_MORE_PAGING:看懂 SAP Paging 机制,参数 rdisp/PG_SHM 与 rdisp/PG_MAXFS 怎么设才稳

SAP系统MEMORY_NO_MORE_PAGING错误通常源于Paging资源耗尽而非物理内存不足。关键排查点包括:通过ST22确认错误类型,ST02监控Paging使用情况,检查工作进程trace中的"no more free blocks"提示。解决方案建议将rdisp/PG_SHM和rdisp/PG_MAXFS设为相同值(如250000块≈2GB),使Paging完全在内存中运行。同时需优化易耗Paging的代码逻辑,如避免滥用EXTRACT命令和超大内存对象传输。典型案例如月末

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 335

【基于 WebSocket 的多用户网页五子棋】—— 数据管理模块

但行好事,莫问前程

qq_42996461的博客 241

【Claude Code 源码解析教程】第25章:测试与调试

Claude Code 作为复杂的 AI 编程助手,测试与调试是保证质量的关键环节。项目建立了完善的测试体系,包括单元测试、集成测试、端到端测试等多个层次,同时提供了丰富的调试工具和技巧。

rengang66的博客 212

C++算法(七)

C++ stack算法题和一些客观题

2503_94479566的博客 378

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

OpenClaw 深度调查:把 AI 助手做成你自己的控制平面

对 openclaw/openclaw 的完整技术尽调:Gateway 架构、Agent 运行时、工具与沙箱、30 个消息通道、181 个插件、安全信任边界、工程代价与采用建议。17 章 / 10 张图,全部数字标注口径,数据截至 2026-10-31。

厚积薄发 257

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

不用再为文本搜索单独维护一套系统!全文检索深度解析

为了给商品、客服工单或者企业知识库增加一个搜索框,企业往往需要在业务数据库之外,再部署一套Elasticsearch。数据库保存商品、订单和用户等真实业务数据,搜索引擎保存另一份文本索引;两套系统之间,还需要通过CDC、消息队列或者同步程序持续传输数据。一个看似简单的搜索需求,最后可能变成两套集群、两份数据和一条必须保持稳定的数据链路。由此产生的问题并不少:数据库已经完成更新,搜索结果却可能尚未同步;业务查询同时涉及文本、库存、权限和订单状态时,应用需要在两个系统之间来回组合结果;

TiDB 社区干货传送门 305

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

IDEA 简介:从零认识 IntelliJ IDEA

IDEA 全称,是由 JetBrains 公司开发的一款主流 Java 集成开发环境(IDE)。它集代码编辑、编译、调试、测试、版本控制、构建管理等功能于一体,被大量 Java 开发者视为日常开发的首选工具。所谓 IDE(Integrated Development Environment,集成开发环境),就是把写代码所需的各类工具整合到同一个界面中。相比只用文本编辑器加命令行编译,IDE 能显著减少重复操作,让开发者把精力集中在业务逻辑上。

ztI10的博客 173

TransactionInactiveError:await 之后事务已经不活跃了

TransactionInactiveError 出现于 IndexedDB 事务已结束(非 active 状态)时调用 put、get 等操作。常见于 await 后或 setTimeout 中执行请求,因任务已完成,事务已提交或进入 finished 状态。请求必须在创建事务的同一任务中挂起,否则无效。解决方法:在 onsuccess 回调内同步发起后续操作,或提前将所有请求挂入事务。避免在异步上下文中使用事务操作,确保请求在事务活跃期内完成。

qq_40822000的博客 154

云计算课程小组PPT汇报任务书

36人分为6组,每组6人;形式:生活案例调研 + 理论解读;汇报时长7‑9min;PPT建议10‑14页。

Michelle8023的博客 196

市场调查与统计分析专业大学期间考证怎么安排?

市场调查与统计分析专业的考证规划,适合从一份完整的调查报告倒推:能不能设计问卷、判断样本是否合理、清洗数据,再把分析结果转化为业务建议?围绕这条能力链安排证书,比单纯按“热门程度”报名更有针对性。结合2026年的学习安排,并为2027年的实习、升学和求职预留时间,大学期间可以重点考虑六类证书:全国计算机等级考试证书、大学英语四级或六级成绩报告单、CDA数据分析师、初级统计专业技术资格证书、微软办公软件国际认证中的Excel相关证书,以及软考数据库系统工程师资格证书。

cc572502653的博客 166

软件项目交付时,源代码之外还应该交付哪些技术资料?

软件项目交付时,除可运行程序外,还应核对源代码、数据库结构、接口文档、部署运维、测试验收和账号资产。本文从实际交付环节拆解完整资料清单,并说明合同如何约定交付范围、知识产权与维护边界。

chengduyoushu的博客 298

大表 ALTER TABLE 怎么做?NineData OnlineDDL 配置与执行实践

介绍NineData OnlineDDL大表变更实践,涵盖执行策略、切表控制、拷贝批次与可视化进度追踪。

dbasenewbie的博客 292

MySQL报Too many open files?句柄耗尽的排查与参数配置

文章讲清 max_connections 与 open_files_limit 两个额度、句柄被谁占走、分区表为什么最容易踩,给出从 error log 到 /proc/pid/limits 的定位顺序与句柄预算算法。

「一个在数据库赛道上边学边分享的学妹」——聚焦国产数据库/信创方向、分享学习笔记、踩坑经验和行业观察。 322

Agent 安全实战:间接提示注入的四个攻击面与防御体系

当 Agent 从 "生成内容" 走向 "执行动作",安全边界就从内容合规变成了权限越界。本文拆解间接提示注入在网页抓取、工具返回值、MCP 连接器、长期记忆四个位置的真实攻击路径,对照 Claude、GPT、Gemini 在工具调用权限模型上的设计差异,给出可直接落地的五层防御体系。

阡陌数智,专注大模型网关与 LLM 工程落地 269

Redis 入门详解:核心特性、重要文件与全局命令实战

本文系统介绍了Redis的核心特性、重要文件及全局命令。Redis凭借内存存储、C语言实现和单线程设计,具备极高的读写性能;支持持久化(RDB/AOF)、主从复制与集群架构,适用于缓存、排行榜、计数器等场景,但不适合存储海量冷数据。文中还解析了常见面试题,如为何快速、单线程原理、持久化机制、KEYS *禁用原因及过期键处理策略,强调其在高并发场景下的优势与局限。

2303_77004089的博客 204
上一篇: 走马观花移山之道
下一篇: 软件工程一瞥——方晓
codingcrazy
博客等级 码龄16年 14粉丝 21原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值