首页 > 代码库 > 软件工程(C编码实践篇)学习总结

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

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

心得收获:

软件工程学是一门理论性较强的课程,一是它用分阶段的生命周期计划进行严格的管理,一个软件产品的生命周期可划分为若干个互相区别而又有联系的阶段。二是坚持进行阶段评审,每个阶段都要进行严格的复审,进行不断的停工或返工,实现软件生产工程化。三是实行严格的产品控制软件的不可见性是软件产品的固有特点之一。四是采用现代程序设计技术,根据软件生产工程化的需要,开发软件所用语言也多种多样。五是软件工程结果应能清楚地审查各阶段的任务彼此间应尽可能相对独立,这样便于逐步完成每个阶段的任务,能够简化每个阶段的工作,容易确立系统开发计划。六是开发小组的人员应该少而精为了使开发项目能在规定的时间内、不超过预算的情况下完成,成本预算和严格的管理控制就不可能被忽视,而开发小组人员成为项目成本预算中主要参数。

通过课程的学习,学习到了一些软件编程思想,比如:模块化设计,代码的通用性,接口规范,信息隐藏等,对于今后的学习工作具有启发意义,在学习过程中熟悉了vi及git的使用,同时复习了C语言,在实践中解决了我以前的一些困惑。最大的遗憾是其他课程太紧,没有好好吸收本课程的精华。

下面是我的实验报告链接:

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

实验报告  实验代码

心得:学写了vi和git的使用,为以后实验打下了基础

 

实验二:命令行菜单小程序V1.0,具体要求参见视频

实验报告  实验代码

心得:初步接触了模块化设计思想,理解了代码风格的重要性,学会了将命令封装成函数供使用者调用

代码风格的原则是:简明,易读,无二义性;缩进用四个空格;在复杂的条件表达式中,用括号清楚地表示逻辑优先级;不要把多行语句放在一行上;加上必要的注释等等。。。

 

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

实验报告  实验代码

心得:通过这次实验学习,明白了代码模块化的重要性,了解了代码的业务逻辑和数据存储之间的分离。另外加深了对C语言中指针的使用及其与数据结构的结合使用的理解。

 

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

实验报告  实验代码

心得:本次试验编写的菜单程序,相比上一节的程序,进行了比较多的改进。代码块的可重用性更高,增强可读性,更方便之后的扩展,更符合软件工程的要求。

 

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

实验报告  实验代码

心得:CALLBACK回调函数就是一个通过函数指针调用的函数。优点是用此函数可以把调用者与被调用者分开,所以调用者不关心谁是被调用者。它只需知道存在一个具有特定原型和限制条件的被调用函数,使上个实验的查询接口更加优化。利用callback函数使链表的查询更加通用,同时增加的代码的隐蔽性。

 

课程六:函数的可重入性(reentrant)及线程安全浅析

心得:了解多线程的概念,知道函数的可重入性(reentrant)与线程安全概念和关系。用互斥锁,读写锁改进程序

 

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

实验报告  实验代码

心得:本次实验难点在于Liunx系统函数getopt的理解和使用

 

课程八:代码背后的设计思想

心得:学习从不同的质量视角,例如产品视角、用户的视角等 ,将menu开源希望有人使用它。 总结了设计方法论和几个重要的设计指导原则, 模块化、接口设计、信息隐藏、 增量开发、抽象和一般化。

 

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