本次课程内容十分充实,对于咱们的技能锻炼十分到位,而我以为最大的收获是,咱们对软件工程有了更深入的认识,可以充分的吸取来自机械课程限制以外的知识,这是我以为很不错的一点。下面我来详述我我的认为几点比较重要的事情或者是收获吧!博客园的观看体验是真的差,推荐你们点击下面连接观看较好的UI---简书linux
一、 对于大部分同窗来讲,接触到了Github 以及 Markdown还有博客园这些新鲜玩意应该属于比较大的收获吧,不过个人话,由于本身老早就入了坑,Github仍是大二的时候就申请了,并且我还用Github Education申请了国外主机的优惠券, 50美刀优惠券至今都还没用完!嘿嘿!固然,Github的组织功能由于之前我都是独行侠,因此没感觉过,此次确实感觉了一把这个强大之处,不愧是风靡世界的代码托管机构,就是强大!!另外的话,我在一个写做平台--简书上谢了快一年的文章了,Markdown的一些经常使用的方法我都基本掌握,更厉害的那些写法从此有须要了再学吧!另外的博客园个人园龄也有七个多月了。因此这些都仍是小的,不过相信应该是不少同窗的深入感觉了!git
二、 Ubuntu系统,老师要求咱们装虚拟机,或者是双系统也能够,我之前却是常常帮人装windows系统,给本身装linux的系统,好比ubuntu,Kali linux,centos,这些我都大大小小玩过了,不过此次我打算试试双系统,万般艰辛终于仍是给我弄成功了,只是引导修复花了不少时间,这个很让我苦恼,为此还写了一篇文章:
Dell-Windows10下装Ubuntu 16.04 双系统,Ubuntu引导开启-经验贴,满干货!程序员
三、 老师教给了咱们Qemu的入门,以及一些进程通讯的知识,其中我本身完成第二次做业还真是惊心动魄。无论是过去仍是如今想一想,难度都是蛮高的,面对陌生的环境,以前从未接触的操做,只能硬着头皮上。不过幸运的是咱们大部分都完成了,并且都还算是很有新意的,个人做业连接以下:
FreeRTOS-Qemu 实现三任务同步通讯机制以及API信息github
四、 《构建之法》这本书,虽然我有点临时抱佛脚的嫌疑,可是我真的以为这本书开阔了个人视野,其中一些关于软件工程的思想,一些关乎到程序员将来长久发展的理念,对我来讲都是很重要的,虽然目前看不到用处,不过相信到了将来投身工做,我会感谢这本书的,固然也要感谢老师的引路ubuntu
五、 团队协做。虽然咱们这支队伍是拉扯着长大的,可是好歹咱们也是个队伍。原本是准备平均分配任务,可是在一开始还没整好的时候要去说软件规格说明书,因此我就按照你们的特色初步的分配了任务。仅作参考!!可是扛不住组内大神给力,彭彦毓同窗全程Carry咱们一群菜鸡,那天召开组会准备再次分配任务的时候,他说他已经快把模块作好了。我只能收回就要出口的“来,咱们再次分配任务吧!”,而后按照各自的时间充裕程度以及技能点来分配任务。windows
我跟陈志平因为时间较为充足,并且有必定的基础。因此咱们接下了核心事件流的开发工做,以陈志平同窗为主,我为辅,由于我还要担任产品经理一职,负责团队的平常组织活动,开头的软件规格说明书,结尾的项目总结书,还有团队Github平常维护。另外两位同窗考研时间比较紧,并且跟进项目不够,因此分配的任务较轻,概要设计以及测试。
centos
本次经历好处就是,体会到了软件开发的一些内在规则,着实过了一把产品经理的日子。不过坏处就是由于分心,因此对于团队的项目了解不够深刻,对于每一个模块仅仅停留在可以把老师要求的Part按照输入输出讲出来,内部对于我就是黑箱,固然,核心模块由于参与了跟陈志平同窗的开发工做,因此还算是比较了解,对于整个咖啡机的工做流程也是很了解的!另外,在项目总结的过程当中也慢慢的更深刻了解到了我们的模块的强大之处!为组内同窗的战斗力自豪!网络
六、 基于模型的软件设计流程。这是咱们实践过的一个东西,虽然咱们组状况比较特殊因此接触不深,可是对于个中内涵仍是有了初步的理解。老生常谈下吧,懒得写新的了(更具体的见后面连接):ide
1. 强调开发的阶段性,各阶段具备顺序性和依赖性 ,各个Part分模块,格子封装,暴露接口,而后耦合在一块儿组成一个总体测试
2. 强调早期调研和需求分析,推迟编码实现的观点,在《构建之法》第二章的PSP对比大学生和软件工程师的时候。能够发现,实际的操做中更注重于前期准备和后期的完善,对于编码,不只仅是因为丰富的资源库,也是由于有了几年的工做经验能够迅速的编码。因此现实中使用模型比较多。不管是模型带动工程师,仍是工程师推进模型发展,二者之间的联系都是固定的!
3. 提供了一个摸板,这个摸板使得分析、设计、编码、测试和支持的方法能够 在该摸板下有一个共同的指导。相同的模板下,方便后来的工程师阅读前辈写下来的模块。另外也方便任务的交接,同时还能够更方便的借用网络上开源的库,这些都是模型化设计模型的优势。
1. 文档驱动,用户没法及时了解产品的状况。由于不少程序员甚至不知道本身写的代码的所有部分,API接口的使用使得更多的源代码对于程序员不可见了!因此通过程序员的手,到达用户手中以后就更别说了。不少时候出了问题基本就无法找到具体的“事发”地址。对于后期的维护十分麻烦。这是牺牲了底层构建,实现迅速开发的代价。
2. 依赖早期调研和需求分析,很难适应在许多项目开始阶段必然存在的不肯定
性。 由于毕竟是模型开发,不少时候为了追求速度会采用一些现成的代码。这样必然存在兼容性问题。并且具体的功能须要对应的模块实现。比较依赖于初期的调研,否则后期修改很麻烦。
3. 流程单一,必需要完成前一阶段的任务,才能进行下一阶段,开发过程当中的 成功经验没法用于本产品。 瀑布模型这儿特色很僵硬,没法实现并行开发。
4. 测试在后期引入,对于系统存在的重大缺陷,若是在可执行程序评审以前没有被发现,将可能形成重大损失。 求取速度所必须付出的代价!!
【计算机本科补全计划】 <构建之法> 读书笔记
个人软件工程师的能力评估和发展
7 、还有一个过程就是PSP2.1 这个我的的能力测评的同样的体系。颇有趣,我作了这个就本身的缺陷都摆在明面上,后续作其余项目的时候能够参照这些来进行改进,实在是很好的一个东西。你们有空的,条件足够的均可以去作作!很不错的!
8 、最后就是咱们的大做业了。好歹也是心血浇灌的结果啊。怎么能忘了呢?
项目Github地址:
https://github.com/RTCSD2017-Group03/Automatic-Coffee-Machine.git
项目总结:
Software Project Summary Report.docx
项目介绍:
自动咖啡机项目--参照 IEEE Guide to Software Requirements Specifications 标准
个人项目周报:
《实时软件控制设计》大做业周报 No.1
《实时软件控制设计》大做业周报 No.2
《实时软件控制设计》大做业总报 No.3
大做业中,你们有力的出力,没空的也能给予本身力所能及的帮助(考研的同窗要抽出三周的一部分时间来作做业确实要背负很大的心理压力。表示理解!)固然,像彭彦毓同窗这么牛掰的同窗是真心服气的。李佳杰辅助他一块儿写了周边模块,我辅助陈志平写了核心模块,以后拉拉扯扯把测试作了。功德圆满!!老实说,大四能有投入率这么高的课程真的是可贵了。为老师疯狂打call。
差很少,《实时控制软件设计》这门课就结束了。谢谢老师送的书,谢谢助教为咱们熬得夜,谢谢同组内的同窗们你们的合做。这估计是大四最有意思的课了。愿记忆永远珍藏!