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

吴昆SA16225333

原创作品转载请注明出处

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


这学期在网易云课堂上选取了孟宁老师的《软件工程(C编码实践篇》,老师讲解深入浅出,更重要的是重于实践,在理解概念的前提下,完成一个小程序的迭代开发,充分体会到软件工程开发的步骤和过程。

主要章节有: 代码风格规范,基本的模块化设计,可重用模块的接口设计,可重用模块的接口设计(callback函数),函数的可重入性(reentrant)及线程安全浅析,子系统的可重用设计,代码背后的设计思想。课程设计实现了menu系统的小程序,更新了版本并实现迭代功能。

下面是参与的实验报告目录:

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

引言:第一个实验主要教会实验楼的基本操作,熟悉了程序编译执行过程,git指令以及vi编辑器的使用,对熟悉linux实验环境很有帮助。开了个好头,实现menu程序从无到有的过程。

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

引言:代码规范是本次实验的重要内容,代码规范想必有部分同学会把它和个人习惯混为一谈,其实代码规范和个人习惯压根不是一个层面上的东西。代码规范针对的是团队,而个人习惯仅仅针对你自己。制定代码规范的目的是为了提高团队协作的效率以及代码的可维护性。

其中印象深刻的是代码复审的重要性,在代码复审中发现的问题,绝大多数都可以由自己发现。codeView是软件工程的重要部分,提高程序开发效率,特别是能非常有效地帮助新成员了解团队的开发策略、编程风格及工作流程。


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

引言:这次实验是单链表指针指向命令实现命令行程序的模块化软件工程,实验中使用模块化抽象思想,将命令与实现放在单链表中,并用函数指针统一指向操作函数。实验过后对于链表的操作,函数指针的运用能有更深程度的理解。


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


引言:这次实验老师着重点在于接口规范的设计,仔细讲解了内聚和耦合对于模块化开发的重要性,用可重用的链表模块来实现命令行菜单小程序,执行某个命令时调用一个特定的函数作为执行动作,在menu小程序中,通过创建链表保存系统命令,遍历链表获取命令执行模块函数,对于小程序的规范化开发提高了层次。而且这次实验可以将通用的Linktable模块集成到我们的menu程序中,这样对设计接口有了规范性的要求,重点是要确定每个接口的具体功能。确保这些接口是必须的,功能相互间没有交叉。


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


引言:小程序迭代来到了v2.8,本次实验重点在于callback函数的使用。在menu小程序中,利用callback函数参数使Linktable的查询接口更加通用,使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个函数。修改了之前开发的函数接口,添加了函数args作为回调参数,这种回调机制也即消息机制,实验不仅实现了函数的多态解析,对于信息隐藏的软件开发思想得到实践。


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


引言:这次实验为了能提高menu系统的可重用性,定义了MenuConfig函数和ExecuteMenu函数作为子系统的接口,系统开发过程中其他系统函数能直接使用代码接口实现功能十分必要。手动编写makefile文件,对于make文件的编写规范,提供软件自动编译的执行效率会有更深入的了解。


总结部分:

软件工程管理与协作是个永恒的难题。从人月神话、软件估算的五大定律都可以佐证。

在开发过程中,有许多必要的软件工程基础知识需要我们掌握。比如项目管理,系统建模,模块化设计,软件开发的质量QA和测试TEST,敏捷开发等等,这些都可以说是开发需要注意的问题。这门课程最大的收获是了解了通过代码认识到优秀的软件工程规范下设计的程序,是如何一步一步成长起来的。

就拿menu小程序来说,从开始的hello world到后来能够使用数据结构实现内部模块化,进而到设计开发函数接口实现程序的通用性,使用callback函数实现消息机制,并对项目的编译过程也有了较深的理解。个人的代码规范风格也有了许多提高,开发程序时也能按照老师提供的思路,进行模块化和重用性设计。

软件工程(C编码实践篇)课程学习的遗憾可以说是课程在v3.0版本结束了,对于老师讲过的代码背后的设计和思想,更多还需要自己去摸索和体会。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值