2020软件工程个人作业06——软件工程实践总结作业
这个作业属于哪个课程 | |
---|---|
这个作业要求在哪里 | |
这个作业目标 | |
作业正文 | |
其他文献参考 |
一、回望开学初的第一次作业,你对于软件工程课程的想象
(1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
通过前期的个人作业和后期的团队作业来说,有很大的提升。特别是团队合作,因为我是组长,在分工方面和集体会议上面真的得到了很大的进步。在所有软件程序的编写中所产生的问题和方法的报错(特别是java中有些方法过时了,要换一种方法真的难顶)都对于我之后从事这方面的工作有着相关提升,并且也增强了我对一个软件程序的开发流程的熟悉程度。
不足:在代码的编写中,有许多重复的代码,比如团队中一直想着加快开发速度代码的编写就是简单的各种类方法,其实许多代码都是可以通过接口来实现并减少大量的冗余代码,但是基于时间和对接口的方法不太熟悉,就没有在强者之路软件中进行代码优化。以后要更加关注性能方面。
(2)你在第一次作业的个人简历中制定的这门课程结束后,你预期你将增长的能力、技术、技能;和你在第二次作业中绘制的学习路线图。对比当前你的所学所得,你达到了当时的预期值吗?
因为第二次路线图是Python,但是这次考虑到团队和最熟悉的还是JAVA,所以采用的JAVA,对于JAVA来说,在gui图形方面是达到了预期值的,但是html没有达到,html的jsp还在学习中。
(3)请总结这门课程的实践总结和给你带来的提升,包括以下内容:
1.统计一下,你在这门软件工程实践中,一共完成了多少行的代码;前面个人加联结差不多加起来只有几百行吧,但是团队作业差不多应该有3300行左右,虽有有很多是重复的,但都是一个个敲出来的。/(ㄒoㄒ)/~~
2.软工实践的各次作业分别花了多少时间?(做一个列表)
3.哪一次作业让你印象最深刻?为什么?
最深刻的当然是团队6了,这个项目开始实现的时间正好撞在了考试前几天,因为是做一个小游戏,做程序的时候需要根据之前的rp图和之前设计的数据库来进行设计,在编写完所有框架以后,要进行美化,真的,最后要进行美化的时候,我真的庆幸自己在编写代码的时候写了注释,而且另外做了个word文档记录了我每一步编写的过程和当时遇到的问题和未解决的问题,节省了我很多时间。从这次作业中,我才明白,在编写代码的时候一定要写注释和文档来记录你每天做了什么。这个程序还不太大,而且还是连续几天做我都有些命名和方法都记不住,没有注释的话我估计要崩溃,文档可以有助于自己和别人了解,你每个部分写了什么和完成了什么,和你当前在做什么。真的,文档和注释真的超级重要。
4.累计花了多少个小时在软工实践上?平均每周花多少个小时?
差不多160个小时吧,每周的话不知道,除了做作业以外,有时候会自己写一点小程序来为自己实现一点功能,写了点换算。做团队6的作业之前其实就在做一个类似的游戏,但是做得很慢,想起来的时候就写一点。
5.学习和使用的新软件;
学习了UI界面设计软件(原型设计):墨刀和AXure RP(有个UI设计的课,所以这个比墨刀熟悉很多)
单元测试工具:这个就学习了Junit(学的皮毛),
性能工具:JProfiler (皮毛)
还学习了新的工具:python
6.学习和使用的新工具;
性能工具:JProfiler (皮毛)
单元测试工具:这个就学习了Junit(学的皮毛),
7.学习和掌握的新语言、新平台;
学习掌握JAVA语言,重新温习并学习了java swing
用的ecplise
新平台的话是phython
8.学习和掌握的新方法;
方法的话按键的监听?博客园的使用和GitHub的管理。
9.工程能力的提升;
对项目工程的了解增加,稍微能够整合零碎的代码进工程。
10.团队合作上的提升;
增强了团队交流,能够更加了解团员然后进行任务的分配。
11.其他方面的提升;
提高了代码的编写能力,提高了和其他人的交流能力,增强了自己的逻辑思维能力,能够在一个项目开始前进行整个流程的思考。
二、团队总结
软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
萌芽阶段————磨合阶段————规范阶段————创造阶段(四个阶段都经历过)
达到了创造阶段
你在团队中担任了什么角色?你是否完成了该角色的任务?现在你觉得你适合该角色吗?
我担任的后台编程;我完成了该角色的任务;现在我觉得我还是比较适合这个角色的。
如果你是组长,你觉得你有哪些地方做的不够好的?有哪些地方做的好的?你觉得该怎么改进?(详细描述)
我是组长,组内很和谐,分工安排我觉得挺合理的;但说实话我对分工的管理还是不够好,比如这个目标是今天要完成的,有时候我经常只说有个什么目标要完成,但是没有说时间,然后有时候说要提交的时候,都还没有完成。作为组长缺少一种紧迫感,布置的任务要求松松散散,需要设置提交时间。主要还是要加强对自己的管理,合理安排时间,不知道是不是其他人也是这也,有时候感觉来了,可以坐在电脑前一直码代码,码几个小时都不带停的。
如果你是组员,你觉得你的组长分工安排是否合理?你对组长的选举有什么建议?
三、人月神化
1、怎样证明你学会了软件工程?以下要求你们的团队达到了哪几个?
(1)研发出符合用户需求的软件
能够将用户的账号保存在数据库中根据账号分配的角色属性
没有公开发布软件,只能在一台电脑上进行游玩。
必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件
(2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
1.有项目设计。
在分析阶段,设计了用例图,用例描述,画了顺序图,类图等
在设计阶段,对之前的分析阶段的结果进行了设计,并转化为设计类顺序图等
在最终的实现阶段,按照之前的设计进行实现,尽力一一实现我们软件的功能,并做到运行流畅。
2.我们利用GitHub进行代码版本管理————强者之路
3.我们有明确的分工,并且撰写博客————猪猪公寓
(3)并且通过数据展现软件是可以维护和继续发展的。
1.在Github里面可以找到相关程序压缩包,在re文档里面写了更新日志。代码中有注释,编写代码时一边编写的文档也会上传至Github
2.数据库里面目前只有2个职业,1个怪物。怪物模板导入以后就能增加,因为游戏里面采用随机数来进行判断遇怪类型。游戏类的世界地图也是采用的可以更改模式,可以做出更加美观有逻辑性的地图。因为目前的程序是为了展示技能功能(攻击与受击、生命值判断、经验判断、等级附带的属性提升),后续将增加装备与技能的栏目。全新版本,等待开发。
2、写下属于你自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析,字数不限,开放命题,可以使用你自己喜欢的方式表达..
我们团队从分析、设计再到实现。这样仔细的做一个项目说实话还是头一遭,之前的项目就是一边写代码一边想接下来要实现什么(挤牙膏一样慢慢挤)。在整个学期中,了解到了GitHub和博客园,GitHub用的比较少,但是博客园真的好啊,可以把平时写的东西发布到随笔里面,把不太了解,但是初步学习了的内容放到随笔里面,等到之后要用的时候不用再去其他地方去查询了,直接打开博客园就可以看到自己之前的学习记录。团队编程中,刚开始我采用的是文本的读取和写入,非常的麻烦,因为对Oracle数据库的连接不是非常了解,感觉贼难,后来和组员讨论了之后,他推荐我是用mysql数据库完美解决了这些问题。
这些经历让我知道在编写代码的时候一定要写注释和文档来记录你每天做了什么。这个程序还不太大,而且还是连续几天做我都有些命名和方法都记不住,没有注释的话我估计要崩溃,文档可以有助于自己和别人了解,你每个部分写了什么和完成了什么,和你当前在做什么。真的,文档和注释真的超级重要。
四、建议
对下一届同学的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?请写下你对后来人的期许。
一定要有对编程的兴趣,真的,没有兴趣你对这些东西是很难学进去的,当成任务来学习的话,很难搞。
在编程或者其他方面遇到问题,一定要写下来记录下来,避免下次再遇到的时候忘记了。
多喝团队内的其他成员交流,每个人的想法都不一样,多交流总是好的。
最好每天都抽点时间谢谢代码,加强记忆,最好能够对代码有一种熟悉感,就是想到什么就能写出来的那种感觉。
对于软工实践课程,你有哪些建议?
因为是在网上上的课,学习什么的全靠自觉,刚到学习的时候,非常不适应 ╮(╯▽╰)╭
我觉得线下上课挺好的,一个组坐在一起,有利于交流,调动脑内积极性。
不要网上上课,网上上课真的没有实体感。
对于老师的工作,你有哪些建议?
老师好顶贼好,但是作业好多,而且作业格式规定严格而且时限短(虽然知道是为我们好,但是忍不住),我的个人作业有几次为了得分而去完成,影响了我的积极性,我希望能够增加时限,每次作业的时间都好短(我说的是团队的)而且复杂。
对于自己今后,你有哪些建议?
鞭策自己,不要停下学习的脚步
让自己对编程拥有保持一颗积极的心
多看多学多写