通信软件设计心得体会
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通信软件设计课程总结
关于这门课程,有很多话想说,对崔老师说的话、对队友们说的话、对自己说的话。这门课程应该算是我上大学以来最享受的一门课程,它不仅仅让我学到了知识、学到了技能,它更是一次宝贵的团队合作的项目经历,它带给了我太多太多的东西。
首先总结一下这门课程学到的知识和技能。
1.学到了软件工程的相关知识。对于软件有了更清晰的认识,不只是文档+程序+
数据,我通过听老师的讲课以及查阅书籍(《软件工程概论》张海藩著),还懂了
什么是软件过程,我们的课程完成的就是瀑布模型中计划、需求分析、和设计的
过程。此外还了解了软件工程诞生的过程,软件危机又是怎么回事。书中还有讲
整个软件研发的过程中相关的管理学知识,由于课程比较近,还没有读过。
2.面向对象的编程思想。这个也应属于软件工程相关知识,单独提出来是因为我对
这个有更深刻的理解。之前无论是大一的C++,大二的数据结构,大三的汇编语
言,我见识到的几乎都是面向过程思想编出来的程序,C++虽然有讲,但也没有
少实践经历,印象不太深刻。而这一次UML建模语言几乎完全是针对面向对象
思想设计程序的,通过建类、建对象画时序图、类图等,我对面向对象=对象+继
承+消息传递的结论有了理解得更透彻清晰。同时组长为我揭开了JAVA这种之前
最熟悉而又最神秘的程序设计语言的面纱,我想抽时间自学一下Java的相关内容,
以更好地理解面向对象编程思想。
3.UML建模语言。之前从来没有听说过这三个英文字母的组合。直到听到老师的第
四节课,我才恍然大悟原来我们这个课程主要是来学这个东西的。通过一学期的
学习,现在对这个有了以下认识:
(1)UML是用来帮我们进行程序设计的,尤其是在编写较大较复杂的项目(诸如飞鸽传书、简单的网页浏览器、一些小的PC程序)时才更能体会出它
的方便性。
(2)UML中的各种图中最重要的是类图,也是和我们编写代码相关性最大的一种图。其他的图大都是帮我们理清设计思路,从而更准确地设计类图。
比如时序图和协作图强调的是各个类之间的交互关系;活动图是从先后
步骤地角度来理清程序设计思路,它是一种面向过程的设计思路,此外
活动图还可以用来做我们程序编写时的流程图,用它来绘制要比之前用
word绘制方便得多。
(3)UML语言带给了我们一种从表层逐步深入分析程序设计的思路,也是一种多角度看待程序的思路。从用例图到时序图、再到活动图、状态图、
组件图、最后到类图,逐步求精;从时间先后、对象交互、状态变换的
多角度看待问题。
4.Rose软件。Rose软件和UML是分不开的,但Rose绝不会像别的一些课程学到
的软件一样,用完就会被删去,因为除了有助于以后编程的方便外,它还可以帮
助我思考一些复杂的问题,组织一次班会的流程等。
5.网络编程相关知识。因为我们编写的是通信软件,也就是涉及网络的编程,为了
更准确地设计类图,在组长的指导下,我们查阅了不少网络编程的相关书籍。初
步地理解了网络编程的机制,从最开始丈二和尚摸不到头脑地看到socket这个东
西,到开始思考文件传输和即时聊天采用TCP还是UDP协议实现,再到确定采
用C++语言编写windows上运行的程序后阅读MFC编程的相关知识,到最后建立
了CSocketFile和CArchive这两个类用于文件传输,都是我们不断查阅相关资料、
整理更新思路的成果。尤其是我这个之前编程经验很少的人看到采用MFC竟然
可以如此方便地编写程序,直接就在画完时序图后兴奋地将两个书上的MFC编
程的小案例在机器上实现了一下。
我个人感觉查阅网络编程知识是我在整个课程学习工程中收获最大的部分。
之前我是个遇到编程题目就很头疼的学生,大一大二的C++,数据结构课程没有少
copy别人的代码,也不是自己不想编,可能是一直对编程有恐惧心理,潜意识里
认为自己编不出来,觉得编程好难,是件大牛才能做到的事情。幸好这次有我们
编程经验很丰富的组长的督促和指导,让我一点点地认识到设计、编写程序其实
并没有那么恐怖,而且对这个过程产生了极大的兴趣。
再说一些在这门课程学习过程中收获的一些其他的东西。
我们学到了采用SCRUM的团队工作方式来完成一个项目的方法。在学习过程中我们采用了任务分配、任务认领,定期会议总结讨论经验得失,深切体会到了SCRUM确实是一种很高效的团队协作模式,而且能使整个团队保持良好的氛围,将成员间民主、公平的关系解决得很好,也能调动起大家的积极性。此外我们一直保持着两人一组操作同一台电脑的工作方式,不但高效,而且两个人遇到问题可以商量解决,感觉要比一个人做容易得多,而且也不易出现一个人把图画得乱七八糟,使别的队友都看不懂的情况。
再有,在老师不断地强调、和组长的敦促下,我逐渐树立起了一个以用户为上帝的思想。以前无论是编程还是学习、写作业,我都是按照自己的想法在做事情,因为觉得学习是我自己的事情,我觉得怎样学好就怎么学,写作业也是这样,从来没有考虑过我提交的作业是要给老师看的,我应该考虑到老师的感受。插一句题外话,感觉我们八零九零的一代年轻人做事情似乎都有这个恶习,就是不知道多替别人着想。回忆起自己之前做的事情,好像只有过一次是在为别人着想的指导思想下做事情,就是准备高考的时候,但那时我还不屑地认为我只是为了考个好大学而应试,是教育体制的症结决定的,我还是崇尚按照自己的想法来做事情。
但这一次彻底地改变了我的想法,而且我确定老师您倡导的、我们组长一直坚持的这种理念是正确的。我们在编程是在为用户提供服务,只有我们的服务好,用户才会采纳我们的方案,我们才能挣到钱有饭吃。我们平常都爱去就餐环境好、服务态度好的店里吃饭,因为作为用户都会更喜欢为自己着想更多的东西。所以以后无论是编写程序、还是提交作业、还是进行演讲、组织会议,都要始终将对方的感受放在心里,这样一来可以赢得对方的喜爱很信任,更重要的是这是对对方的一种尊重。
最后写一些我们团队合作过程中的一些“花絮”。首先强调一下我们的组长(张昕)真的很牛,无论是技术能力、管理能力、表达能力都是我远远不能及,只好膜拜的程度。每次我们遇到技术难题,都可以放心地提交给他,他或者根据自己的经验、或者去查看资料、或者和老师进行交流都可以将问题解决。此外每次开会都非常准时,准备充分,承担了N 次写会议记录的工作。我在他身上看到了一个项目开发团队领袖所具备的品质,也感觉自己无形中学到了很多东西。总之一句话,对组长很感谢很膜拜。再有老宿(宿晨曦)几乎在每一个过程中都和我在一起工作,他的努力和细致都令我钦佩,很多我认为不重要可以模糊处理的细小的东西,他都会很细致地辨析,力求准确。此外小乔(乔雅楠)在开会的时候总可以在我们表述不清,争论不清的时候一针见血地指明问题之所在,这个能力给我留下了很深刻的印象。总之,我们是个很厉害的组长带领下的很努力很和谐的团队,我很荣幸能在这个团队中做出了微薄的贡献,并学到了很多东西。
总之,这门名叫通信软件设计的课程,就在很风趣很博学的崔老师的讲授下,很专业很