【张城硕(sa15226451) + 《软件工程(C编码实践篇)》MOOC课程作业http://mooc.study.163.com/course/USTC-1000002006

学习软件工程两个月来,我在孟宁老师的教导下确实获益匪浅。我从一开始对不知如何使用vim和git的无知,逐渐演变到软件设计模块化的熟练。下面, 我将谈谈这两个月学习软件工程线上课程的具体体会。

关于软件工程

首先,我先谈谈我对软件工程的理解。软件工程在我的脑海里就是如何利用工程化管理的技术来做软件。为什么会诞生软件工程呢?孟老师不止一次的提到,随着代码量的增大,人对代码的掌控能力越来越弱,代码的逻辑、进度和成本越来越不好控制,产生了软件危机!为了解决软件危机,软件工程应运而生。我比较喜欢线上编程,基本上每次线上课程我都投入了大量的时间和精力。

关于代码

在代码上,我在软件工程中学习到的是。
在细节上:
* 第一、需要遵守代码规范,好处是便于修改和维护。让别人看的清楚你的代码;
* 第二、数据和业务逻辑的分离。我们需要将代码进行模块化,从而更好地维护和复用代码;
* 第三、懂得合理地设计接口,既不能面面俱到,也不能太过笼统,够用就好。比如说:链表的接口设计和菜单的接口设计就有所不同。链表需要增删查改的接口,而菜单的接口就无需如此太过细节化;
* 第三、掌握代码的运用技巧,比如说回调函数的使用;
* 第四、非功能性需求,比如说安全性。这里尤其需要谈到的是线程安全,如何利用加锁的机制构建出写出安全的代码;
* 第五、设计思想,这里需要应用一些前人总结的设计模式,比如说工场模式、观察者模式、适配器模式等。应用这些模式能大大增加代码的延展性,更好地包容变化,更好地复用代码。当然,为了拓展视野,孟老师也提到函数式、形式化方法的编程;

关于我

总之,学习软件工程我最大的收获,就是理解了软件工程,初步设计软件,明白软件开发的流程。特别是,由于孟老师有着丰富的软件开发经验,所以比只讲软件工程理论要来的有趣、更好理解得多!最大的遗憾是,我希望线上课程能让我和同学共同协作,通过规定接口来完成一个软件项目,因为我感觉软件工程离不开沟通协作。
最后,深深感谢孟宁老师给我带来了如此生动、有趣而又丰富的软件工程课程。

实验报告

下面附上我的实验报告链接(全5分,也是对我尽力编程的认可吧):
实验一:写一个hello world小程序
https://www.shiyanlou.com/courses/reports/645718
实验二:命令行菜单小程序V1.0
https://www.shiyanlou.com/courses/reports/659872
实验三:内部模块化的命令行菜单小程序V2.0
https://www.shiyanlou.com/courses/reports/683728
实验四:用可重用的链表模块来实现命令行菜单小程序V2.5
https://www.shiyanlou.com/courses/reports/701555
实验五:用callback增强链表模块来实现命令行菜单小程序V2.8
https://www.shiyanlou.com/courses/reports/715800
实验六:可重入函数的相关测试,一次小测验。
实验七:将menu设计为可重用的子系统
https://www.shiyanlou.com/courses/reports/750491

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐