软件工程课程总结-USTC

软件工程学习总结 软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。 阅读详情

** 原创作品转载请注明出处 + 《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006**


软件工程(C编码实践篇)课程实验报告

实验一:写一个hello world小程序
实验二:命令行菜单小程序V1.0
实验三:内部模块化的命令行菜单小程序V2.0
实验四:用可重用的链表模块来实现命令行菜单小程序V2.5
实验五:用callback增强链表模块来实现命令行菜单小程序V2.8
实验七:将menu设计为可重用的子系统


课程学习心得体会

  • **纸上学来终觉浅,绝知此事要躬行。**软件工程 (Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。可是,单单学习软件工程的方法是不够的,应该弘扬科大校训,红专并进,理实结合,实践是检验真理的唯一方法。

  • 软件工程(C编码实践篇)这门课,**就是以C语言为代表,将软件工程方法真真切切的运用到实践中去,**通过7个线上实验,以及6个以Go语言为例的线下实验,在学习软件工程过程方法的同时,学习和重温了C语言和Go语言的编程规范以及编码要求,很大程度的提高了我的编程水平。

  • 通过这几次的实验,让我了解了linux环境下进行C语言编程的基本方法,再一次感受到了ubuntu系统的简便和快捷。 与windows编程需要IDE开发环境不同,linux系统本身已经良好的集成了进行C语言的基本环境,所以只需在终端输入几个简单的命令,程序即可编译并运行了。只是对于习惯了图形界面的我们来说,刚上手时的确会感到这种方法的不便之处,尤其是对于初学者来说,不知道任何gcc或者gdb的命令就根本无从下手,而这一切只能靠记忆。

  • 当你开发一个大的项目时,团队里分工合作,这个时候也就是考验你编程风格的时候,一个好的程序写得一手好代码,不仅仅是代码可执行性,代码的可读性也很重要,代码风格的原则:简明、易读、无二义性,缩进、命名、注释等代码编排的风格规范。

  • C语言是面向过程的一门计算机语言,可以用callback函数实现多态以便接口更加通用,实现信息隐藏。

  • 模块化编程思想对一个程序员来说尤为重要,将命令程序的业务逻辑层和数据存储层分离,并且将数据存储层和功能业务层分在不同的源文件中来实现,这样可以独立的来维护。同时还学习了在编码中,一个函数或一个方法只做一件事,在设计上,一个系统、一个子系统、一个模块、一个类等也只做一件事。一定要有错误处理。 模块之间要高内聚,低耦合。

  • 在处理多线程问题中,需要关注函数是否是可重入的,使用互斥锁,读写锁以保证多线程安全。同时了解了函数的可重入性与线程安全之间的关系,可重入的函数不一定是线程安全的;可重入的函数在多个线程中并发使用时是线程安全的,但不同的可重入函数(共享全局变量及静态变量)在多个线程中并发使用时会有线程安全问题(可能是线程安全的也可能不是线程安全的);不可重入的函数一定不是线程安全的。

  • 在子系统的设计当中,要设计出可重用的接口。在linux下对代码的编译可以编写Makefile文件,然后直接用make命令编译会省事不少。getopt()用来分析命令行参数。参数argc和argv分别代表参数个数和内容。


课程学习总结

  • ** 收获 **
    在以前,我一直对软件存在一些偏见或则是误解,认为软件就是程序,软件的开发就是编写程序,只要编完了程序,一切也就ok了,而且我还片面的认为只要我掌握了时下最新的语言和工具,那么我就能写程序了。一个人,只要会编程,就能写软件,就是程序员;一个公司,只要招聘一些程序员,就能开发好的软件产品。只要有几个有经验的程序员,再找些兼职的大学生,就能组成一个软件公司。 但是通过了《软件工程》这门课的学习,使我认识到了我以前的错误。软件其实不仅仅是程序,软件开发其实也不仅仅是编写程序,软件是思想在硬件上的载体和体现,处理的是逻辑和信息。唯有对软件和软件的开发过程,有充分的认识,才能更好的开发出,过程受控、质量受控的软件产品。

  • ** 遗憾 **
    设计模式/软件设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式提高了代码可重用性、让代码更容易被他人理解、保证代码可靠性、程序的重用性。希望以后老师能够开设这门课,这样我们能对软件工程有一个更好的理解。

软件工程课程设计总结 软件工程课程设计总结,文档是我自己写的~~ 讲了很多关羽软件工程这门课的观点和重要性。 立即下载

相关推荐

软件工程感想软件工程感想

本学期我学习了“软件工程”这门课。软件工程不同于我所学过的那些数学、物理课程,它不是从严格的理论推导得到结论,而是从实际工作中总结归纳而来的。 20世纪60年代,出现了“软件危机”——指在计算机软件的开发和维护过程中所遇到的一系列严重问题,例如,软件代价高、开发进度难以控制、工作量难以估计、质量差、修改和维护困难。为了解决这些问题,软件工程应运而生。

软件工程课程总结

高级软件工程课程总结

lyyylol的博客 818

软件工程课程设计心得总结

软件工程课程设计心得体会个人总结,关于web BBS论坛开发,数据库网络应用程序

大学课程 | 《软件工程》知识点超详细总结归纳

文章目录软件工程要点软件工程简答题及答案1.简述软件的定义及特征2.简述软件工程的定义及软件过程的5种框架活动3.画图说明软件过程流的各种类型4.画图说明软件过程的增量模型及适用情形和特点5.画图说明软件过程的原型模型及适用情形和特点6.画图说明统一过程的各个阶段7.简述敏捷原则8.简述需求建模的模型9.简述CRC模型的评审步骤10.简述行为建模的步骤11.画图说明从需求模型到设计模型的转换12.简述模块的功能独立及评估标准13.简述重构的定义及重构时的检查要点14.简述体系结构风格描述的4个要素及其分类1

Justlovesmile的博客 7944

软件工程学习心得体会

软件工程学习心得

Benchmark系列——UnixBench测试项深度解析与性能优化指南

本文深度解析UnixBench基准测试套件的各项测试原理,包括Dhrystone、Whetstone、系统调用、进程管理、IPC及文件I/O等核心测试项。通过详细的测试项分析,指导用户解读测试报告,并提供针对性的内核参数调整、编译优化及系统配置实战指南,帮助用户精准定位并优化系统性能瓶颈。

weixin_29230901的博客 276

软件工程——个人总结

类图不显示暂时性的信息。收获了关于软件工程的知识,在阅读代码的过程中,对于书上课堂上的一些理论知识有了更深刻的印象和更透彻的理解,参与了团队项目,作为上大学以来历时最久团队项目,从中收获了很多团队交流沟通的经验和方法。在过程中学习到了许多对我而言是全新的知识和技术,虽然当中有很多是在很短的时间内速成的,学习的也不是很扎实,但比起开学初的自己还是收获了不少。在alpha冲刺时前后端一开始是各做各的,没有及时沟通,最后合并对接的时候才发现各自的逻辑不同,需要大幅进行修改,增加了时间和精力的开销,降低了效率。

m0_64270162的博客 2852

MATLAB/Simulink实战:三电平逆变器SVPWM调制从入门到精通(附完整仿真模型)

本文提供了一份详尽的MATLAB/Simulink实战指南,手把手教你从零搭建三电平逆变器的SVPWM调制系统。文章深入剖析了27个空间矢量的分区与分解算法,并完整实现了包含中点电位平衡控制的Simulink仿真模型,旨在帮助电力电子与电机控制领域的学习者和工程师跨越从理论到实践的鸿沟。

sugar的博客 1213

《软件工程实务》课程学习心得

这段学习之旅,不仅是知识的积累,更是一次从“学生”到“工程师”的身份觉醒。过去,我认为软件开发的核心是编写代码,只要功能实现即可,但课程中“软件危机”案例的剖析让我意识到:缺乏系统化管理的开发模式必然导致项目失控。例如,在开发“在线考试系统”时,用户最初仅提出“学生能参加考试”,但通过访谈和场景分析,我们挖掘出“防作弊监控”“断网续考”等隐性需求,避免了后期功能缺失。一次小组作业中,因未规范绘制组件图,导致模块接口定义混乱,最终集成测试时出现数据传递错误,这一教训让我深刻体会到“设计先行”的重要性。

ZhilinWufeng的博客 818

基于YOLOX与LPRNet的车牌检测与识别系统(Python+UI界面)实战指南

本文详细介绍了如何利用YOLOX目标检测模型与LPRNet车牌识别模型,从零构建一个完整的车牌检测与识别系统。通过解析CCPD数据集、训练深度学习模型,并最终集成到PyQt5开发的图形化UI界面中,提供了一个从数据处理到应用部署的完整实战指南,帮助开发者快速掌握智能交通系统中的关键技术。

weixin_29230901的博客 341

CTFmisc-------Jack

每一个文件里面都有不一样的base64编码,我尝试将其解密,发现解出来的是乱码,所以我想到真正的flag藏在这些字符串中,所以我们要写代码把字符串提取出来。提取出来后,得到很多的base64的编码,要一个一个的解码很麻烦,猜到里面有flag字样的base64编码,所以我们将flag进行base64编码,1.下载得到Jack文件夹,里面有很多的txt文件。发现这个字符串是众多编码中唯一一个没有==然后从那些base编码中寻找Zmxh字段。

woshicainiao666的博客 1万+

USTC高级软件工程课程学习心得

USTC高级软件工程课程学习心得USTC高级软件工程课程学习心得 对软件工程的理解 课程学习的收获 实验报告及目录 总结体会 孙剑峰 - 原创作品转载请注明出处 - 《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006 1 对软件工程的理解  个人觉得,软件工程就是用工程化的思想去写代码,使得代码更加高效,这个高效

禅林阆苑 1838

14、方法论 - 自顶向下与自底向上的结合

本文探讨了如何将自顶向下的规范驱动方法与自底向上的组件构建方法相结合,以形成更加全面的编程理论。通过引入代数法则,简化逻辑关系、提高代码可读性并支持形式化验证,结合实际案例(如智能家居控制系统)展示了如何在设计和实现阶段确保系统的正确性和可靠性。文章还讨论了工具支持的重要性,并提出了未来发展的方向。

lstm7chronicler的博客 175

USTC高级软件工程课程学习总结和心得

USTC《高级软件工程》学习总结

qq_39668290的博客 546

Simulink进行无人机飞行力学建模与仿真

摘要:本文详细介绍了使用MATLAB/Simulink进行四旋翼无人机飞行力学建模与仿真的步骤。内容包括准备工作、动力学方程概述、模型构建(使用State-Space或Simscape Multibody)、可选控制器设计、仿真参数配置及结果分析。教程强调理解飞行力学原理和坐标系转换的重要性,建议根据需求选择模型复杂度,并推荐查阅学术文献获取更深入的建模方法。通过本教程,读者可掌握无人机动力学建模基础,为控制系统开发和性能优化奠定基础。

amy_mhd的博客 272

【深度学习新浪潮】Nano Banana(Gemini 2.5 Flash Image)技术解析与开发者实操指南

重新定义了 AI 图像生成的产业标准。它不仅是“平民化的视觉工厂”,更是推动内容生产从“创意试错”转向“精准制造”的关键工具。未来,随着视频生成能力的加入(谷歌计划支持“文字指令 - 动态场景 - 多平台适配”全流程),Nano Banana 有望进一步颠覆影视、广告等领域的创作范式。:批量生成多场景图,模特姿态自然,服装褶皱和材质细节高度一致,节省 90% 拍摄成本。模型的非正式代号,是一款革命性的 AI 图像生成与编辑工具,主打。:生成细节丰富的厨师特写,光影自然,皮肤纹理和刀具反光逼真。

专注:太空算力、AI infra、异构调度、大模型成本工程 893

USTC高级软件工程-课程学习总结

高级软件工程是软院一门重要的核心课。作为转行的学生,此前虽然也学习了一些计算机基础课程和程序项目,但总感觉代码写得零碎不成体系。经过这门课的学习,我才发现是缺失了软件工程相关知识和习惯的缘故。软件工程不仅能使软件开发流程化、标准化、系统化,提高开发的效率和复用性,还能使开发中的团队合作更加简明高效。...

statelogin的博客 524

计算机组成原理(第三版)唐朔飞-第七章指令系统-课后习题

机器字长是指CPU一次能处理数据的位数通常与CPU的寄存器位数有关。指令字长是指机器指令中二进制代码的总位数。存储字长是指存储单元中存放二进制代码的总位数。三者可以相等也可以不等视不同机器而定。答:OP(4位)A1(6位)A_1(6位)A1​(6位)A2(6位)A_2(6位)A2​(6位)设二地址指令格式为该指令系统的基本格式,4位操作码共有16种编码,其中13种用来定义二地址指令,还剩3种可用作扩展标志。一地址指令条数=3∗26=192。

weixin_45735391的博客 7万+

软件工程学习理解与心得《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006

软件工程理解与学习心得 软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件的一门科学,代码的设计不单单是为了使程序可运行,可实现需要的功能,在代码的规范,设计的规范,模块化思想,线程的安全性,子系统统的可重用性上都有所要求。 代码的书写规范,要求代码风格正确,没有缩进错误、花括号独占一行,代码行内要适当多留空格,如“=”、“+=” “>=”、“<=”、“+”、“*”、“

u010685708的专栏 996

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

一点感想

今天花了一个上午的时间阅读08级MSRA_USTC联合培养实验班的“meng-meng”组的师兄师姐写的博客,从他们的文字中感悟了上微软班的高级软件工程课程的整个历程。下面写的是我的一些感想和总结,既是自勉,也是学长们的一些经验和大家分享: 1.关于团队合作 这个小组中的每个人要尽量发挥自己的长处。我们是一个整体,需要每一个人的力量。队友之间最重要的是互相协作...

dianli1932的博客 150

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

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

王鸿飞原创作品转载请注明出处《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-10000

《软件工程》学习心得与感悟             还清楚地记得入学面试时院长问我的问题,“为什么要报考软件学院”?我坚定地回答,“我要来科大学习专业、规范的软件工程,成为一名优秀的软件工程师!” 在开学后有幸选到了孟宁老师的软件工程课程,经过了三个月的学习与实践收货颇丰,特别是通过课程项目的练习,从代码层面和架构层面对软件工程的规范性和标准化有了深入理解。在这里与大家分享。        

whfauto的博客 1233

学习心得《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006 ”

王训谱+ 原创作品转载请注明出处 + 《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006 ”

bywangxp的博客 1466

立体五子棋中的一个有趣的bug

跟随邹老师在MSRA的USTC软件工程课程中有一个有趣的作业,实现一个立体的棋类游戏,可以两个对战也可以人机对战,觉得想法非常有创意,非常有兴趣,也是为了借机学习一下silverlight,就开始编写一个立体五子棋。大概进展是这样的: 一个星期:学习silverlight,熟悉VS环境 一个星期半:编写一个立体的人机交互界面,但不会旋转,可以在上面下棋,并判断输赢,关键是解决在模型层...

a854732860的博客 767

成员介绍

大家好!本博客是USTC 2018-软件工程课程的贪玩工程队的团队博客,以后我们将会在此定期更新我们的项目介绍与进展! 小组成员:刘梓轩(组长)、陈灿、张士龙、杨茜贺、刘泽、谭鹏、沈三景 (顺序不分先后) 项目周期:2018.3.1-2018.9.1 项目工作:设计一款实用性强、创意新颖、功能丰富的软件! 一起努力吧~ 转载于:https://www.cnblogs.com/tanwan...

weixin_30418341的博客 124

Self intro

  I'm Zoey Cao from USTC, and I'm going to take the Software Engineering class in the following term. I see that one of the first homework is to get a blog and update my status in project on it, ...

weixin_30877227的博客 108
下一篇: clcaffe环境部署opencl+mkl+viennacl+isaac+caffe
芝麻香儿
博客等级 码龄12年 40粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值