软件工程学习总结
来源:互联网 发布:python 安卓 编辑:程序博客网 时间:2024/05/19 12:16
- 赵展翔 SA17225524 + 原创作品转载请注明出处 +《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006
对软件工程的个人理解
通过这学期学习了孟宁老师的高级软件工程这门课:
- 通过写一个hello world小程序学习了linux环境下的开发以及vi环境的基本操作,同时也学习了github的使用,养成了一个良好的习惯。
- 这门课的内容基础却很重要,非常适合初学软件工程的同学以及想改善代码质量的开发者。
- 通过7次线上作业,循序渐进学学习了模块化,接口设计,低耦合高内聚等思想,来改善了代码的风格、可重用性等。
软件工程这门课主要就是对拿到手的项目进行合理可靠的分析,并对开发过程有规范的流程,使我们可以在预期内开发出高质量的项目。
打一个或许不是很恰当的比方:工人们在盖房子,使用的是砖头,结构高耦合,这样的房子很容易出问题,并且如果想进行二次改造、挪移也非常不方便。软件工程在这里的作用就是讲砖头变成积木一样的材料,结构稳定,低耦合,可移植性可重用性强,二次改造也很方便。
实验报告
github传送门,附完整代码
实验一:写一个hello world小程序
实验二:命令行菜单小程序V1.0
实验三:内部模块化的命令行菜单小程序V2.0
实验四:用可重用的链表模块来实现命令行菜单小程序V2.5
实验五:用callback增强链表模块来实现命令行菜单小程序V2.8
实验六(测验):函数的可重入性(reentrant)及线程安全
实验七:将menu设计为可重用的子系统
学习收获
这一学期作为跨专业的cs新手,不吹不黑我觉得这门课挺好的,至少培养了我很多习惯:
- 学会了使用github提交版本库,学会了如何去维护一个代码更进,如何和别人一起开发
- 学会了linux环境下的编程通过
- 学会了代码要规范、易于阅读、无二性。
- 学会了包容变化是模块化的主要作用。
- 学会了代码的设计规范:
KISS(Keep it simple and stupid)
Using design to frame the code (用设计框代码,设计与实现保持一致)
不要和陌生人说话
一定要有错误处理 (功能实现/错误处理:2/8)
用数据结构来简化代码
高内聚低耦合的架构设计目标
函数的可重入性 - 通过孟老师的软件工程,我确实收获颇多。孟宁老师讲课由浅入深,线上作业注重了实践和知识的结合,和每次的课程非常贴切。从最基本的命令行工具进行迭代优化,从V1.0到了最终版本,讲授的知识也一步一步深入下去。从一开始的几行的menu.c,到最后的menu.c linktable.c makefile的结合,让我实现了对一个代码改进的成就感,真的感觉很好。
- 结合了线下的vue教程,虽然一开始我很排斥学习前端,但是后来发现vue这个框架确实好用,与时俱进的教学方式很好,在vue的教学中,也与软件工程相结合,思想类似,实现了跨语言对软件工程的理解。
致谢
这学期的课程真的很不错,不管之前别人怎么看或者是我怎么想,但是这上半学期下来软件工程真的让我收获太多了,算是让我正儿八经的入门了吧。感谢孟老师的付出,在课上让大家对这门课认识得更广更深,在课下准备了这么多充分的材料循序渐进让大家学习。
这种新颖的教学方式我觉得更加契合现在的教学,如果仅仅是传统的上课,真的学习时间太短了。这样的方式让大家最大限度的学习了相关知识。我非常喜欢并且支持。
感谢孟老师,这学期辛苦了!您教的真的很好,希望以后这门课可以有更多的课时,让大家学习更深入的知识以及更加功能化的优化我们的“命令菜单”。
真的超级感谢!
- 软件工程学习总结
- 软件工程学习~初步总结
- 软件工程学习总结
- 《软件工程》学习视频总结
- 软件工程之学习总结
- 软件工程学习总结
- 《软件工程》学习总结要求
- 《软件工程》学习总结
- 高级软件工程学习总结
- 高级软件工程学习总结
- 《高级软件工程》学习总结
- 软件工程学习总结
- 软件工程学习总结
- 软件工程学习总结
- 软件工程学习总结
- 软件工程学习总结
- 软件工程学习总结
- 软件工程项目经验学习总结
- 如何使用Journalctl查看并操作Systemd日志
- 八、用户进程:TSS、用户进程的创建、用户进程的执行(通过调度函数)
- Java简单文件读写
- 块设备驱动
- Spring boot源码分析-Conditional(12)
- 软件工程学习总结
- 谁拿到了最多奖学金
- Android issue: adb install … 发生异常 [INSTALL_FAILED_TEST_ONLY: installPackageLI
- Java回调
- 接口切换
- jquery 验证 添加 批量删除
- GC是如何确定垃圾的?和垃圾回收算法
- 在 Linux 下搭建 Git 服务器
- Linux Redis的安装