软件工程实习总结
第一周 课程实验环境准备
实验一:写一个hello world小程序
第二周 代码风格规范
实验二:命令行菜单小程序V1.0
第三周 基本的模块化设计
实验三:内部模块化的命令行菜单小程序V2.0
第四周 可重用模块的接口设计
实验四:用可重用的链表模块来实现命令行菜单小程序V2.5
第五周可重用模块的接口设计(callback函数)
实验五:用callback增强链表模块来实现命令行菜单小程序V2.8
第六周函数的可重入性(reentrant)及线程安全
实验六:函数的可重入性(reentrant)及线程安全
第七周 子系统的可重用设计
实验七:将menu设计为可重用的子系统
总结部分:
学习《软件工程(C编码实践篇)》课程中最大的收获:
熟悉了Linux环境下的C语言编程开发,了解了Vim的基本设置。熟悉了Git命令行的使用;熟悉了函数的复用、程序循环等思想;体会到模块化的重要性和精髓,及包容变化的能力:将变化和不变的部分分离。 同时我也了解到KISS原则、设计与代码的一致性、错误处理,用数据结构和控制结构来简化代码等一系列重要原则。学习了链表的很多基本操作代码,同时对在头文件中声明函数、定义常量的一些基本规则、技巧有所了解,进一步加强了代码的编写规范,对程序之间的接口规范化有了初步了解。了解了callback回掉函数机制,使用此函数可以把调用者与被调用者分开,所以调用者不关心谁是被调用者。它只需知道存在一个具有特定原型和限制条件的被调用函数。简而言之,回调函数就是允许用户把需要调用的函数的指针作为参数传递给一个函数,以便该函数在处理相似事件的时候可以灵活的使用不同的方法。了解了函数的可重入性与线程安全之间的关系:
1、可重入的函数不一定是线程安全的;
2、可重入的函数在多个线程中并发使用时是线程安全的,但不同的可重入函数(共享全局变量及静态变量)在多个线程中并发使用时会有线程安全问题(可能是线程安全的也可能不是线程安全的);
3、不可重入的函数一定不是线程安全的;
1、可重入的函数不一定是线程安全的;
2、可重入的函数在多个线程中并发使用时是线程安全的,但不同的可重入函数(共享全局变量及静态变量)在多个线程中并发使用时会有线程安全问题(可能是线程安全的也可能不是线程安全的);
3、不可重入的函数一定不是线程安全的;
pthread_rwlock_t基本用法
操作相关函数说明
初始化读写锁pthread_rwlock_init
读取读写锁中的锁pthread_rwlock_rdlock
写入读写锁中的锁pthread_rwlock_wrlock
解除锁定读写锁pthread_rwlock_unlock
销毁读写锁pthread_rwlock_destroy
学习了支持带参数的复杂命令,并尝试使用GNU make来构建和管理自己的工程。
最后分享一下老师上课引用的经典名言警句,与君共勉:
夫事未有不生于微而成于著,圣人之虑远故能谨其微而治之,众人之识近故必待其著而后救;治其微则用力寡而功多,救其著则竭力而不能及也。
——资治通鉴
学习完《软件工程(C编码实践篇)》课程后最大的遗憾:
课程非常精致,但结合之前相关的软件开发经验,发现现在太多程序员都不能真正理解软件工程的精髓,希望以后能有更多程序员来学习孟老师的课程,够好好体会一下软件工程的魅力所在!
时间过的很快,转眼间已经实习将近5个月。
最先在内部系统组参与内部管理系统开发(struts+mysql+spring+h.comibernate),之后是去做网络交换机软件的脚本测试。现在又回归内部系统,虽然在脚本组期间,编码能力被别人甩在后头,但至少具有了一些测试经验。
至少自己做的东西,是真正交付到了客户手上,到也稍微有些成就感。
1 浅谈测试
一直以来,我都认为测试是脱离了软件工程范围的工作,不以为屑。但在实际情况中,测试是既重要且难以精湛的。其真正的压力,在于找不到bug,责任在你,而不在于编码人员。一般的测试人员不懂编码,他们靠的是日以累计的经验总结和想象力。而要做到高级测试工程师,则一定要懂编码,因为这是你完全掌握整个系统的方方面面具体运作的前提。但占主导地位的,还是大型系统的集成测试经验。实际项目中,编码时间一般只占30%左右,真正耗费时间的是IT阶段的找bug与对应bug,此阶段基本评定了coder的编码质量。
2 程序员的困惑
有些人,以为教学视频和代码看多,自己就懂的多,实际做起来,却不知从何下手,问题在那?如何定位?如何解决?通通跟一样能力有关,debug追踪能力,也称调试。在项目组工作不愁源码资源,但问题是蛋糕摆在面前,你如何去消化?
有位同事告诉我:代码看几遍都没用,要去抄,例如一个查询模块,在此基础上去做具体记录的历史记录查询模块,你可能会觉得很简单,但实际情况却往往报一堆异常,配置问题涉及到方方面面,以及数据库字段,传值问题等等,一大堆对于新人来说很郁闷的问题。但不用怕,只要学会调试,一个个问题去追踪,一个个去解决,自然而然,那段“源码”才真正属于你。
3 如何调试追踪?
如果你能在短短的时间内就看到问题点在那,放下断点去追踪,出去找工作,绝对没问题。出现问题的时候,不要光看代码,要用实际行动去追踪运行期间的具体值,那是最好途径。eclipse是个很爽的ide,这点做的很好。例如页面内容显示不是自己想要的数据,我们要先从数据库查询语句去下手,设置断点,一步一步step over,让sql字段(存取最终sql语句的字符串)运行到有值,inspect进去看,如果还看不出来,就点击它,copy后在sql客户端去实际运行,看看实际查询出来的表是什么,如果是对的,有可能就是页面调用的错误或者action逻辑的传值问题。
页面错误的调试,基本方法是用右键点击实际网页查看源代码,copy到editplus,就能看到具体错误发生在那几行。通常有几种常见的错误,例如:缺少对象这种很多时候是有些被你调用的字段有可能为空的情况出现的,可以加if(xxx。com=null)语句加保护。追踪的方法基本就是用alert语句,放在有可能出错的地方。
4 一些习惯
遇到问题先自己思考,无从下手再找高手帮忙看看,注意他帮你看的思路,别在一旁闲着,看多了自己也会了,不然你一辈子都停留在那种水平,从人身上学到的东西远远比书多的多。
解决了一个问题后,要去究根问底去找到问题产生的起因,以防你下次遇到类似的问题再浪费同样的时间。
把代码写的漂亮,注释、空行、规范一样不能少,可读性是放在第一位。曾经看过一个高手写的代码,真的一看就是不同水平的人写的,几乎很完美,读起来很流畅,方便自己也方便别人。
任务完后不要呆着,去要求经理给你更有挑战性的任务,只要你肯去尝试,他们就会对你另言相看,把三天的任务一天加班搞定,效率和忠诚都有了,路也比较好走了。
5 题尾话
如果你有一份思想,我有一份思想,拿出来交换,我们大家拥有就是2分份思想,可惜这种观念,并不能深入每一个团队的每一个人,少一点自私,未必不是好事。职场到处都存在被排挤的隐患,要为自己找片草地实在不容易。但有一点要相信,只要自己不放弃自己,这世上就没有绝望的路,你可以被打趴下,可以被身边的人暗算,可以被深爱的人流放,只要你用自己决心站起来,受过的伤痊愈后就能增强你的抵抗力,一路前进!
我在xx电气有限公司开始了从xx年11月底到2月底的为期三个月的实习,在实习的过程中,我学习了很多,了解了很多,也感受到了很多,深深地体会到实习的重要性。
实习是对学生及用人单位而言都是蛮有裨益的。对公司企业、用人单位而言,这是一种发展储备人力资源的措施,可以更为有深度地选择人才,培养符合公司工作 、行为、价值观、文化理念等要求的人才。同时,为国家培养更符合现代化建设的未来栋梁人才,是公司、企业回馈社会的重要途径之一,也在不少程度上提高了公司在本区域内的知名度与影响力。对学生而言,在学生、学校、企业三方的共同作用下,实习可使大学生有更好地机会、环境进入职业社会中,为大学生从十多年的学习生涯到未来几十年的职业生涯提供了一个过渡期和适应期,培育大学生健康的择业观、孕育良好的工作能力和态度、丰富学生的社会实践经验。另一方面,实习让学生更好地发现自己的职业兴趣,了解自己的职业性格,避免盲目就业,奠定稳固的事业基础。让在职业生涯处于刚开始阶段的大学生,更好地迈入职场的重要一步。
我实习的是在xx电气集团分属下的、与日本东芝合作的——“xx芝”分公司,它的主营产品是“scada电力系统”,xx芝公司只要分软件部和工程部,而这三个月我实习主要在工程部,属于技术支持类的工作,做对电力系统软件的辅助性数据录入、更新等,工作站系统的安装与维护,配合工作人员对将要派往各地区的硬件设备进行分配、整理、排号、安置、安装、打包、搬送监察、装箱、记录等工作。
在这三个月,我接触到大公司的组织文化,看到大公司的较为完善的管理制度,也看到xx公司的很多变化,它的规模、发展、业绩。
在实习的三个月里,我积累了不少的经验,我也学习到了即使在离开校园后,学习也是不会停止的,活到老学到老,学习永远离不开人生命中的每个阶段。
在公司里面学习专业的技能,与自己技术相关的知识,或对工作有用的专业知识。像我实习做的工作软硬件均要涉及,例如要学习如何配网段、学习如何做网线插头、如何安装企业级的系统、如何用linux的指令打开文件、如何在用数据库命令寻找画图软件里面的一条线段的数据等等,这些东西在大学课堂都有教过,而实习就很好地复习、巩固了。而因为我们公司的主营是针对电力的系统,我们还要额外地学习电力的知识,如环网柜、变电站、接地线、架空线、小车等等这些图示或内部结构。像实习单位里软件部的同事,大部分的本科专业都是学电气的,但是他们的工作全部离不开java、c、嵌入式、电路板,所以他们还要利用上下班空闲时间自学。也许他们毕业还未够半年,就要独自承担公司的开发项目了,例如在环网柜上加上液晶显示屏。
在业余培养兴趣,会派上用场。例如,我在大学阶段就去选修了些日语的课程,刚好来到实习的公司就是和日本东芝合资的,有一点的基础就能一直参加公司的免费日语培训班,在公司 里面会日语的话不仅有工资奖励,而且不管是做技术或者市场部门,都会有相对较好的待遇及提升。在不影响学习、工作的前提下,发掘、培养自己的业余兴趣与技能都是百利而无一害的。
突然我发现,原来大学并不是唯一的课堂,大学结束并不代表学习就中断了,还要靠自己的努力、勤奋、挤出时间继续翱翔于知识的海洋。其实,在职场、社会中满天都是机遇,就看自己有没有眼光、能力去捕获它。如果自己没有学习掌握一定的技能和能力,再好的机会也没办法抓住。
工作需要热情和耐心。对所做的工作有相当的热情,无论是在哪个行业、哪个职位都是很重要的。像我们软件行业,无论是程序员还是技术支持都是有点枯燥跟辛苦的,例如在实习,连续两个星期对着几百台的硬件:服务器、工作站、交换机、光纤模块…… 要按协议不同对设备分配到5-6个地区城市,还要贴标签、跟踪大批货物搬运,如果没有对工作的责任心跟热情,是很难坚持的,即使能坚持,也很难把工作做好,做仔细、做认真。
有效的沟通与保持良好人际关系是一种重要的技巧和能力,因为一个人的能力有限,不能所有事情都兼顾到;人有长短之分,在工作上经常需要同事们的帮助,利用好别人的长处,整合资源。
例如,我实习的公司里面,每批货物都有所属的区域,每个区域有负责的区域负责人,每个负责人都要随时了解、清楚这批硬件各需要多少,什么时候从仓库里面拿上机房安装,是否安装好系统软件、是否检测完毕等等,但是每个区域里面的工作量都很大,负责人基本分身乏术,而大量的工作都与其他区域所做的工作相似的,例如,运货、装机柜、打标签、拆装等等,这时候我们就需要其他负责人的帮忙,这就需要沟通。
团队合作精神是不能或缺的。在这个分工越来越专业、企业越来越壮大、工作、信息量越来越庞大的社会,单靠个人的力量是远远不足以应付公司、企业的的工作。在用人单位招聘的时候,不会少的是要求、需要应征者、员工有团队合作精神,可想而知团队合作的重要性,公司对团队合作的重视。
像在公司,一套系统的完成需要各个部门的协作和配合,一套系统工程部到货、装机,linux部装服务器,java部做系统检测,测试部做完检测要实时通知所有部门,所有事情都是有时间进度表安排好,在部门里面完成一份工作不只是部门的概念了,这是一个公司的概念、一份好产品的概念,需要团队的协同合作。
我认为,现代社会需要的人才不再是光会“读书”的人了,而是需要不仅有扎实理论知识,更是需要有较强的动手能力和实际工作能力的复合型人才。实习的短短三个月让我了解很多,学习了很多,相信在经历了实习的过程后, 我会更有信心,更有能力为将来招聘、迈入职场、开展自己职业的征途,更会为打造自己成为现代社会所需要的重要人才而努力。
进入公司初期参加的入职培训,使我对公司有了一个全面的了解,在公司工作的这段时间,我深切的体会到了公司深厚的经营理念,感受到了公司浓厚的文化氛围。在每期的刊物上我都有了解公司的近期新闻内容,同时也了解了公司的相关的规章制度,在工作上有领导的关心和同事的帮助,让我更加顺利的度过我的试用期。
一、关于实习公司
我所实习的南京xx软件有限公司简称xx公司,公司成立于20xx年,主营软件开发和信息系统集成,专门从事工程建设项目管理信息系统开发和实施,具有自主知识产权的项目管理软件产品xx项目管理系列软件(包括xx投资控制合同管理软件、xx进度控制计划管理软件、xx质量控制安全管理软件、xx项目管理门户、xx城建项目管理平台等),并已经在全世界第一大桥苏通长江大桥、国内最大的开发区苏州工业园区以及南水北调工程实施和应用,目前正与南京城建集团合作,开发城建项目管理平台。
二、实习的内容
今年xx月xx日开始,我正式走进xx开始了实习工作,并被调到了江苏省建筑质量检测中心,参加正在进行的一个检测项目。由于我才大三,本身对企业的经营方式等都很陌生,公司让我们的王工带我学习,以师傅带徒弟的方式,指导我的日常实习。在王工的热心指导下,我依次对此次项目的业务流程和大概框架进行了了解,并积极参与相关工作,注意把书本上学到的理论知识对照实际工作,用理论知识加深对实际工作的认识,用实践验证大学所学确实有用。以双重身份完成了学习与工作两重任务。跟公司同事一样上下班,协助同事完成部门工作;又以学生身份虚心学习,努力汲取实践知识。我心里明白我要以良好的工作态度以及较强的工作能力和勤奋好学来适应公司的工作,完成公司的任务。
三、实习的提高与收获
实习收获,主要有四个方面:
一是通过直接参与企业的运作过程,学到了实践知识,同时进一步加深了对理论知识的理解,使理论与实践知识都有所提高,圆满地完成了本科教学的实践任务。
二是提高了实际工作能力,为就业和将来的工作取得了一些宝贵的实践经验。
三是一些学生在实习单位受到认可并促成就业。
四是为毕业后的正式工作做好了准备。
四、结语
到公司实习并没有我想象中的难以融入,通过慢慢的学习,发现在公司用的到得知识在我们的学校学习中都会遇到。至暑期结束,从不懂到渐渐的做了几个检测项目。学到不少的东西。实习生活还没结束,开学了我还是会继续留在公司我的学习和探索。
基于本次暑期实习的情况,我收获很大。
从实训目的来看,本次实训主要是在VS20xx开发平台上实现对C#语言、SQL数据库的应用,就我所在小组的项目工作内容来看,还需要掌握水晶报表和MDI多窗口应用技术。除了要充分熟悉开发平台及应用设计之外,还要掌握并实践软件项目设计规范及其开发流程即需求阶段、分析和设计阶段、编码阶段和测试阶段,以便能按时交付作业。
从实训的内容来看,我小组的项目是"人事工资管理系统",主要实现公司企业对内部员工档案、工资、奖罚考勤等一系列的管理,这在当今不断壮大的企业用人单位是亟待需要的,总的来说,项目的难度系数不是很高,但也是相当困难。
在校外实习之前,老师先在校内培训了5天。5天实训中,着重讲解了c#语言应用,并布置编写"通讯录"工作台程序,windows应用程序和WPF程序,数据先是用文本保存,然后练习用数据库保存,期间每天需上交当日作业。5天的时间里,通过不断地学习,我从完全不懂c#语言成长到初步掌握了这门语言,当然在具体应用中还是会遇到些问题,但我还在学习。其实在实习的前一个月里,老师就上传了一些关于c#语言的资料并通知我们需要配置哪些软件环境,对于这一点,我是相当感谢何老师的,当然在校外的实习里,公司也全都把开发项目用到的一系列软件上传到公共文件夹里,从而免去了我们下载软件的麻烦,在此,感谢众老师。
校内实习要上交的作业我是在校外实习中补充完成的,因为之前上交的作业由于时间仓促大都有错误,所以借着校外实习中对c#语言的进一步应用和讲师的详细讲解后,我重新改正了错误,希望何老师能谅解采纳。
校外实习是从7月12号开始,历时15天,15天的最后一天要回校评审。我对本次校外实习的各个方面都十分满意。相比上次实习,首先这里的住宿学习条件非常好,住宿和实习地都安装了空调,实习地方环境清幽宽敞明亮,伙食也非常好。然后就是实习讲师非常专业和负责,他事先把所有有关实习的资料软件存放在公共文件夹,且规划入微。一开始先是对我们进行C#测试分好组安排好每组项目任务,又指导我们每个小组安装SVN软件,方便小组文件上传与统一,整体一气呵成,不似之前实习的凌乱,这一点我十分敬佩。之后每天都先安排好任务工作,认真且非常详细的给我们操作示范并细心地制作成word文档供小组之后查看。每隔几天都会有小组评审,主要针对小组所编文档的规范程度和不足提出修改建议。作为小组的PM,我必须承认一开始工作任务安排不当,没有完全发挥各成员的优势,以致文档编写的有些瑕疵,不过在小组评审过后,我便及时更改了项目工作的分工,而之后小组项目工作进行的非常顺利,每个人的能力都得到了最大的发挥和升华,当然这完全得力于小组成员的高度配合。
实习单位名称:山东山大华天软件有限公司
实习时间:2x13年9月--2x13年12月
实习地点:山东省济南市高新区新泺大街2x08号银荷大厦E座三层
一、实习单位简介:
东山大华天软件有限公司简称华天软件,是北京神舟航天软件技术有限公司控股的子公司。成立于1993年,专注于制造业信息化领域,注册资金3800万,总部位于济南高新区,拥有员工近400人,办公条件优越,服务领域跨越CAD/CAPP/PDM/PLM/MPM。目前,在华天软件的客户中有多家位列机械工业百强榜的企业。公司的立身之本是以客户为中心,为客户创造价值。
公司从国内第一套商品机械CAD起家,已发展到拥有CAPP,PDM,PLM等拥有全线的自主产品。公司具有PLM事业部、集成事业部。PLM事业部是面向制造业提供信息化解决方案的,主要面向离散制造业,进行软件产品的推广和营销;集成事业部主要面向公共事业、医疗等行业做信息化集成服务。
华天软件是中国管理软件的百强企业,十几年来一直专注于PLM领域,是PLM行业内首家通过国际软件成熟度CMM3级评估的软件公司,也是本土规模最大的制造业信息化解决方案提供商之一,在制造业有很高的信誉度。公司拥有国际领先水平的自主版权高端三维CAD/CAM软件,是中国少数拥有自主版权PLM全线产品软件商之一,同时也是山东省PLM工程技术中心依托单位,代表了山东省PLM研究领域的最高水平。
华天软件目前已拥有PLM全线产品,从产品研发管理的CAD/CAPP/PDM/Co-PLAN(协同工作平台)到生产制造环节的Pantryman (工艺与制造数据管理系统)/MESIC(MES)/MPM(制造过程管理),以及防扩散系统 EUDEMON等产品全生命周期管理系统,已真正成为制造业信息化全面解决方案提供商。
多年来,业界对华天软件的业绩给予了高度评价。公司连续多年被国内权威信息化专业咨询机构e-works及AMT评价为"PLM十大优秀本土供应商"及"PLM领域十强软件商"。 公司产品及解决方案市场占有率高、口碑好,客户满意度高达98%。
华天软件历经十几年信息化服务经验,在全国培育了上千家用户,其中,十多家典型用户位列机械工业百强榜,在多个行业形成优秀典型应用。公司在汽车、模具、轴承、专用设备等行业都具有整体解决方案,这些解决方案也在行业内领军企业得到全面应用。其中包括北汽福田汽车、雷沃重工、LYC洛阳轴承、东风模具等国内知名企业。这些企业在华天软件PLM解决方案的协助下,积极开发创新性产品,缩短了产品上市周期,降低了开发成本,提高了市场竞争力。
二、实践安排及具体内容:
本人于2x13年9月至2x14年4月实习于山东山大华天软件有限公司。
图1统一数据测试工作
图2山东山大华天软件有限公司
我在山东山大华天软件有限公司实习期间主要参与了整合测试项目和数据统一项目
整合测试项目是在Draco3.0平台上进行的跨SV、CM、MS的测试,通过整合测试,为SV和CM新版本的发版奠定了基础。我在整合测试中主要测试了工程图、CAM相关命令和MS的新命令。
图3 测试工作命令界面
数据统一项目,是公司一个非常重要的项目,它的目的是统一三个高端三维CAD/CAM软件,SINOVATION(SV)、CADMEISTER(CM)和MEISTERSHIP(MS)的数据。SV和CM原来的存储文件是零件和图纸,整合之后零件和图纸合为一个模型文件。此项目分为两个大的阶段,第一阶段为测试,使CM和MS的命令都能正确执行,第二阶段为编码,针对第一阶段测试的缺陷进行修复,并编写新的接口。我在数据统一项目第一阶段主要做了MS的线面立体命令在CM上执行的测试以及CM的CAM相关命令在MS上执行的测试,还做了CM与MS菜单的整合。在数据统一第二阶段我主要做了线、面、立体、CAM、PRESS、MOLD的部分命令的缺陷修复。
三、实习心得
时光荏苒,转眼间实习已经几个月了。虽然曾经有过害怕、彷徨和面对陌生环境的无助,可是也加快了成长的脚步。如果说学校是接受知识的殿堂,那么社会就是运用知识解决实际问题的地方。在山东山大华天软件实习这段时间,是我人生中很重要的篇章。通过实践,把多年的理论知识灵活运用,我学到了很多,也感受了很多,在这里我对学院以及公司帮助过我的领导、同事表达诚挚的'谢意。
在公司实习过程中,从理论到实践的跨越让我承受了一些困难,更让我懂得了一些真理,增长了一些见识。我们一直都知道实践出真知,而只有经过了切身的体会才发现原来的认识其实很肤浅。理论性的东西为了便于学习,往往需要将它理想化,而实际的应用却无法随心所欲。从小学到高中,再一步步成为现在的一名研究生,我更多的是学习理论,所以有很多知识在理论上而言我们有足够的理由对它深信不疑,然而一旦让它走向生活,走向实践,却经常跌跌撞撞,不堪一击。通过参与公司的项目开发,我不仅能更加掌握理解所学的理论知识,而且还能灵活运用到实际当中。在公司实习中我学到的另个方面就是与同事的相处之道,团队合作意识的加强。员工与员工之间不是相互独立的个体,二是相辅相成的,团队的合作在一项任务的完成中至关重要。与同事的融洽相处不单单是为了营造一个舒心的工作氛围,更重要的是顺利而高效的完成工作任务,同时互相学习,取人之长,补己之短。
在这几个月的实习过程中,我看到了自己一些方面的不足,并得到了很大的提高。当然,或许我学到的还只是凤毛麟角,但这段实习经历必然会成为我成长道路的基石,我将受益匪浅。
今天的实训结束,今天做的是纸牌游戏软件和趣味打字游戏。今天的东西对我来说有点难度,最后没有能过完全做完。但是我还是觉得这是一个不错的实训,在这种集体的环境里和同学们一起学习,每天的生活过的也是非常的充实。
此次实践课我的收获很多。我和同学们这一次真正自己动手制作一个小软件,虽然还存在很多的问题,而且我做的软件在使用起来还是很不可行的,但是我们从中受到很多知识,不仅是专业的知识,更让我明白一个软件从设计到实现的每一个环节真的很不容易,不仅需要扎实的专业知识,更需要一个团队的配合,这才是一个软件成功的关键。这就告诉我们,一个人的出色不算什么,一个团队的出色才是真正有用的。
刚开始拿到题目我们组员都不知如何下手,经过小组成员一起查找资料,并且开会讨论,我们确定设计的设计目标以及具体实现方式,包括如何将Java的思想运用到实际系统的详细设计之中。
在实验课上,我学会很多学习的方法。而这是日后最实用的。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我的将来也有很大的帮助。以后,不管有多苦,我想我都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我都可以在实验结束之后变的更加成熟,会面对需要面对的事情,以及学会遇到问题,不急不慌,慢慢解决它。
虽然过程辛苦是不可避免,但收获还是令人感到尤其的欣慰。在这次的软件设计中不仅检验我所学习的知识,也培养我的实践能力,让我知道遇到一个问题,如何去寻找思路,如何去解决问题,最终完成整个事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会合作,学会宽容,学会理解,也学会做人与处世。课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程。实验过程中,也十分感谢实验指导老师陈中育老师的指点与教导。这次软件设计不仅是对这学期所学知识的一种综合检验,而且也是对自己动手能力的一种提高,增强自己实践能力。通过这次课程设计使我明白自己知识还比较欠缺,只是学习书本知识还是远远不够的,自己不会的东西还有太多,学习需要自己长期的积累,在以后的学习、工作中都应该不断的学习,将课本的理论知识与生活中的实践知识相结合,不断提高自己文化知识和实践能力。
一.实习题目
c/s模式下的网络游戏平台(类似于联众)
二.题目要求
a. 平台上至少能够提供两种游戏(仅供两人参加)供用户选择。
b. 服务器端实现用户账号、密码的管理,监控用户上下线状态管理。
c. 服务器端实现用户游戏数据及文本通信数据的中转交换。
d. 客户端能够连接到服务器并选择游戏种类和游戏桌面,并参与游戏。
e. 客户端能够通过服务器进行文本通信。
三.小组成员及分工
组长:黄? 飞
成员:黄? 飞? 王润琛? 陈? 磊 韩振军 王向富
四.人员安排及进度
a. 人员安排:
黄? 飞:系统设计,文档管理:2周,系统的集成与总结:1周
陈? 磊:编写项目计划文档:0。5周,需求,概要文档的编写:2周
王润琛:系统设计:1周,程序主要模块的实现:2周
韩振军:需求的收集与文档:1周,软件测试与分析:1周
王向富:编写软件测试计划:1周,软件测试:1周。
b. 进度:
第一阶段 项目启动(05-8-22----------05-8-23):? 实习分析;项目简单分工。
第二阶段 需求分析(05-8-24----------05-8-26):? 确定软件性能;功能;编写文档。
第三阶段 概要设计(05-8-29----------05-9-01):? 确定总体架构,程序模块。
第四阶段 详细设计(05-9-02----------05-9-07):? 设计客户端,服务器端细节。
第五阶段 软件实现(05-9-08----------05-9-16):? 编写源代码。
第六阶段 软件测试(05-9-19----------05-9-21):? 完成测试及文档。
第七阶段 项目总结(05-9-22----------05-10-07):? 总结提高,答辩。
五.系统架构
整体架构图:
六.实现的功能与未实现的功能
a. 实现的功能:
客户端:
1)用户登陆:用户运行客户端软件后,弹出登陆框,用户通过输入帐号和密码登陆平台,高级实现程度有记住密码选项。
2)用户注册:登陆框有注册选项,供用户注册新平台帐号。用户需要输入新的帐号名,密码,以及一些基本资料:姓名,性别,出 生日期,邮箱。
3)用户修改资料:用户可以在登陆后修改个人基本资料,除帐号外其他资料均可选择修改。
4)用户选择游戏:用户登陆后,平台界面即会显示所支持游戏,用户可选择要进行的游戏。平台与游戏捆绑安装,在高级实现程度下服务器新增加游戏通过新的安装文件提供给用户。
服务器端:
1)批准新用户注册:基本实现程度为由服务器自动批准,既用户名不与现有用户冲突并且用户名和密码长度符合规范(用户名长度不超过十个单词或字母,密码不低于6位)及予以批准。高级实现程度为服务器与管理员双重批准,既服务器批准后只具有参观游戏和聊天等功能但不能参加游戏,需等管理员批准后赋予正式的用户权利。
2)删除用户:服务器管理员可以从数据库删除任意已注册用户(所有用户资料项同时删除)。为防止误操作等情况发生,高级实现程度中删除用户操作只是暂时禁止该用户登陆,数据库保留该用户资料一周(或数周,示服务器硬件资源)后再自动删除。
b. 待实现的功能:
1.用户登录的限制
用户在不同地点以相同的用户名登录。
注册时对新用户名的符号检查。
经过长时间对国贸软件的的使用,在不断练习操作的过程中,我对国贸软件的最深刻感觉是:学以致用、有趣、必须细心耐心反应迅速。
1。学以致用
作为国贸专业,经过长时间的理论学习,急需通过实际操作或某种近似于实际操作的平台对所学的理论知识加以实践,以求进一步掌握和巩固,而国贸软件正提供这样一种平台。该软件涉及及出口贸易的各个方面和环节,从外贸公司的经营运作到实际的进出口业务流程,都能进行模拟实训。在使用过程中,会遇到很多国贸的基础理论知识和实务技能,这是对国贸理论掌握程度的最好考察。眼过千遍不如手过一遍,相对于理论部分而言,国贸实务更注重实际操作,通过这种理论结合实践的方式,巩固基础知识,查找理论学习的不足,以前学习的实物理论基础知识会更加的具体和直观。同时,该软件的实务操作部分与报关员报关实务所涉及的知识基本一致,这对于我的报关员考试复习提供很大的帮助。
2。有趣
该软件通过“实战”方式训练,会在操作过程中遇到很多难题和挑战,这些必须自己想办法解决。由于大家进行角色划分,形成一个虚拟市场,所以大家之间相互的竞争是必不可少的,大家会从各个方面进行竞争。竞争在现在是无法避免的,意识正是现代社会生存发展所需要的。正是这种竞争,使得我(相信大家)对该软件产生浓厚的兴趣。
3。细心、耐心、反应迅速
国贸软件涉及大数据计算的繁琐的单证填写,所以必须做到细心耐心,例如,在填制外贸合同时,一个小小的数据错误或是货物装运、指运港名称的错误都会是合同填写失败;填写保险单或是报关单证,没有严格按照合同数据填制就会导致填写出现错误,无法进行下一步骤,影响实验效率。
在操作过程中,除复习、巩固所学国贸理论外,另一个重要任务就是想办法“赚钱”,提高自己企业的盈利水平和生存能力,这就要求必须反应迅速、判断准确,否则会觉得企业经营的举步维艰。
以上就是经过一段时间对国贸软件的操作使用产生的总结。
在这次软件工程课程中,我学到了很多东西,第一次深刻的体会到了什么叫做用工程化的思想来编写软件,以前自己也写过一些小型软件,没有做过大型的项目,直到这次课堂我担任组长并组织组员共同完成“个人图书管理系统”这个项目,第一次和别人合作,才发现运用工程化的思想来做是如此的有必要。
从这里,我才真正的意识到实施一个软件工程并不是说简单的会编码就能够解决问题的,我们更多的精力不是放在编码上,编码只是一个很小的模块,只占到那么小的一个部分。这个事实在很大程度上颠覆了我以前的思想,在我以前的认识中,似乎整个软件就是编码,除此无它,还好有老师的指导,不然真的会出现老师所说的,撞得头破血流之后才想起来用软件工程的思想来完成这个工作。
刚真正开始工作之前,我们费了很多的时间来完成一些前端工作,如需求分析和可行性分析,这块工作在别人看来可能是相对无关紧要,甚至是多于的,其实,换做在以前,我也会这么认为。可是,我现在算是深深地明白了磨刀不误砍柴工的道理,这些工作的完成太有必要了,太重要了,要想你的软件有用有市场,能被别人接受和认可,在进行过程中不会出现崩溃性的问题,这些工作缺一不可。
还有就是接下来的一些设计模块,此模块与软件编码涉及比较紧密,主要是解决一些参数传递和接口通讯的问题,此模块对我的触动远没有上两个模块对我的影响大,因此再次也不做过多的介绍。
在整个活动的完成过程中,作为组长,我收获很多,我发现,要是组里有个人不怎么想做事情时,他对于整个组织的影响是毁灭性的,正所谓“一颗老鼠屎,能坏一仓谷”,以后我的组织里要是出现这样的人,我绝不会给他继续留下来的机会,我会在第一时间将他清除出去。还有就是,作为组长,你要做的最重要的事情,不是发挥自己的聪明才智,而是创造出一个平台,让别人去发挥,你所要做得,出了保证这个平台的完整性和公平性外,还有就是协调好各组员之间的关系。