软件工程(C编码实践篇) 学习总结

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

一  对代码层面的软件工程的理解及学习心得体会

通过《软件工程》这门课的学习,使我认识到软件不仅仅只是逻辑的代码实现,更是使软件变得具有更好的功能,更健壮和具有更好移植性的一个工程。同样一个问题,有的人可能是用数据结构做逻辑控制,有的人用ifelse来做控制。不同的代码实现会导致不同的执行结果和执行效率。唯有对软件和软件的开发过程,有充分的认识,才能更好的开发出,过程受控、质量受控的软件产品。

(1)实验一中我了解了linux环境下进行C语言编程的基本方法。学习了如果在ubuntu上用终端编译代码,老师带我们走近和了解ubuntu,这个开源的系统由于性能优越和永久免费,得到了几乎所有公司的采用,我们从现在开始了解,也是为了接下来的工作打好基础。

(2)在代码的规范上,需要项目组统一格式,注意代码风格的原则:简明、易读、无二义性缩进、命名、注释等代码编排的风格规范。

(3)在设计规范上,要保证代码是高内聚,例如一个函数只做一件事,一个模块只做一类事的,实现功能尽量用库函数;还有要遵循“不和陌生人说话”的原则,以保证除了类提供的接口,别人无法访问类的其他内容。同时要合理使用数据结构、控制结构等来简化代码。

(4)在模块化的思想中,讲究高内聚低耦合,接口要规范,代码要注意通用性,注意以下原则,Purpose,Preconditions(assumptions),Protocols,Postconditions(visible effects),Quality Attributes。

(5)C语言是面向过程的一门计算机语言,但是它的思想和理论基础仍然被大多数现阶段实用的语言所继承,所以重温和了解它是有必要的。

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

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

二 实验报告汇总

(1)实验报告一

实验一:写一个hello world 小程序

(2)实验报告二

实验二:命令行菜单小程序V1.0

(3)实验报告三

实验三:内部模块化的命令行菜单小程序V2.0

(4)实验报告四

实验四:用可重用的链表模块来实现命令行菜单小程序V2.5

(5)实验报告五

实验五:用callback增强链表模块来实现命令行菜单小程序V2.8

(6)实验报告七

实验七:将menu设计为可重用的子系统实验七:将menu设计为可重用的子系统

三 总结
整一个学期下来,总的来说还是学到了很多东西的,有很多地方是值得肯定的,其实在我看来,软件工程与其说是一门课程,不如说是一门思想。是一个如何去分析和处理问题的过程,应该说其范畴已经远远不止局限于该门课程,成为了一个综合的一个能够解决问题的思想集合。我会觉得,哦,原来我上次的代码还可以这样改,改成这样比以前更好用,个人认为最大的收获是对软件工程思想里面关于模块化和接口的设计,有了思想指导,代码不成问题,孟宁老师说,两成的时间开发,八成的时间维护与测试,好的代码不仅仅是性能与功能的问题,而是后期维护代价的问题,干净利落总比一团乱麻强得多。谢谢孟宁老师的教导,未来会更好!

时间: 2024-12-17 12:52:19

软件工程(C编码实践篇) 学习总结的相关文章

软件工程(C编码实践篇)学习小结

陈康荣  +<软件工程(C编码实践篇)>MOOC课程http://mooc.study.163.com/course/USTC-1000002006 学习心得: 转眼间,软件工程这门课程就要结束了,忽然有种怅然若失的感觉.刚开始接触这门课的时候,感觉仿佛置身于知识的海洋,如鱼儿一般畅快遨游:置身于学术的天空,似鸟儿那样自由飞翔:置身于代码的花园,像花苗一样汲取阳光.人生有幸,得遇良师. 实验报告: 实验一:写一个hello world小程序https://www.shiyanlou.com/c

网易云课堂-软件工程(C编码实践篇)

网易云课堂-软件工程(C编程实践篇) 识别代码工程质量: 代码风格: 封装接口: 可重用代码: 可重入函数和线程安全: 代码风格的原则:简明.易读.无二义性:代码风格原则在团队交流过程中非常重要.

记一次网易云课堂MOOC课程学习经历——《软件工程(C编码实践篇)》

刘东晓 + 原创作品转载请注明出处 + <软件工程(C编码实践篇)>MOOC课程http://mooc.study.163.com/course/USTC-1000002006 一.对课程的简要理解 正如计算机业内的一个非常经典的等式所言: 程序     =算法+数据结构 软件     =程序+软件工程 软件企业    =软件+商业模式 现代软件企业的成功离不开优秀的软件以及杰出的商业模式,同时,作为企业运营核心的软件亦离不开软件工程的指导. 作为商业软件而言,程序是软件的"内功&q

软件工程(C编码实践篇)学习心得

孟繁琛 + 原创作品转载请注明出处 + <软件工程(C编码实践篇)>MOOC课程 http://mooc.study.163.com/course/USTC-1000002006 软件工程(C编码实践篇)是由中科大孟宁老师在网易云课堂上发布的一门关于学习软件工程开发思想的实践性课程,整门课程循序渐进的从一个helloworld小程序做到一个线程安全并且可重用的menu菜单系统.课程主要通过网课加实验楼实验的方式进行,课程讲解内容轻松又不失严谨性,实验简单却又极具代表性.总之,整门课程基于一个m

高级软件工程(C编码实践篇)--心得

吴松泽 + 原创作品转载请注明出处 + <软件工程(C编码实践篇)>MOOC课程http://mooc.study.163.com/course/USTC-1000002006 1.心得体会: 跟随孟宁老师学习了软件工程mooc这门课程,不但让我从理论上掌握软件工程,还有从不同的实例,让理论和实践得到了很好的结合.整一个学期下来,总的来说还是学到了很多东西的,有很多地方是值得肯定的,其实在我看来,软件工程与其说是一门课程,不如说是一门思想.是一个如何去分析和处理问题的过程,应该说其范畴已经远远

软件工程(C编码实践篇)课程总结——我的第一次代码实战之路

课程内容来自网易云课堂-软件工程(C编码实践篇)--中国科学技术大学孟宁老师主讲! 作者:魏红 魏红<软件工程(C编码实践篇)>MOOC课程作业http://mooc.study.163.com/learn/USTC-1000002006 一.心得体会 在写这篇博客时,我的心情不是想象中的如释重负,而是感慨和激动.作为一名理科生,代码对于我来说,陌生.遥远.不曾触及,所以当我开始接触到实验,需要自己动手的时候,我就崩溃了.哪怕是最简单的hello world小程序,我都折腾了好久,第一次的实验

软件工程(C编码实践篇)课程总结

课程内容来自网易云课堂中科大孟宁老师的软件工程(C编码实践篇)课程. 课程页面 我觉得本门课程的设置非常科学,每一周课程都是基于上一周课程的进一步抽象,使得学习者能够循序渐进,逐渐加深对软件工程的理解. 1. 第一周:熟悉Linux实验环境:要求 实验一:写一个hello world小程序. 实验报告链接+git代码库链接 总结:hello world本身很容易,但是linux下工作方式和windows下完全不同,会给不熟悉linux的人带来不少问题.首先vi没有Windows下的IDE智能化,

学完《软件工程(C编码实践篇)》之后的总结

By: 纪*保*华 + 原创作品转载请注明出处 + <软件工程(C编码实践篇)>MOOC课程http://mooc.study.163.com/course/USTC-1000002006 Part1  对代码层面的软件工程的理解及学习心得体会 作为一个此前未系统学习过软件工程的学生,在学习本门课程之前,对软件工程的印象仅仅是一本厚厚的教科书和枯燥无味的文字描述,就代码层面来说,也仅仅是停留在代码量和代码规范的浅显理解上. 在这两个月的学习过程中,从一开始的熟悉linux开发环境,到慢慢发现软

编码问题学习【2】

多字节和宽字符 C++中string / char* ,wstring / wchar_t* C++测试 window下面 char* cName = "北京市"; // 多字节转化成宽字符字符串! unsigned short wsName[50] = {0}; int wideCharCount = MultiByteToWideChar(CP_ACP, 0, (LPSTR)cName, -1, NULL, 0) - 1; MultiByteToWideChar(CP_ACP, 0