一、学期初,实验一中的任务4,大家拟定了5个准备从课程学习中找到答案的问题,通过一个学期的学习,相信大家已经有了答案,请根据自己的学习实践回答自己当初提的问题,并提出一个新的问题。
问题一: 说起来,学习编程也已有两年多的时间,然而回想这段学习,自己似乎从未对编程的内容有过深入的思考,一直以来自己似乎都停留在完成布置任务,无论代码内容如何,只要能达到结果目的即可。读完这本书的目录让我知道,一个完整的软件工程需要很多步骤,它是一个需要整个团队精诚合作所完成的一件事情,每个人的工作都有着相互的依赖性,个人的编程习惯也许能在一时达到某个目的,却也许会因为这样的习惯在后期让整个团队付出很大的代价,那么我们在实际的操作中应当如何使得自己负责的模块不会影响其他模块?应当如何使得自己的模块的质量得到保证呢?
在这学期的项目实战当中,每个人都需要完成自己负责的模块,项目整体的完成也是各个模块最终组合的结果,通过一学期的学习发现要想让自己的模块最终能顺利的与其他人模块进行结合,编码习惯是一个很重的因素,适当的注释代码的整洁度,这些看似简单的工作在实际的项目合作中非常重要,一个结构清晰的代码能够让他人很容易的理解,更快速的了解代码整体的功能模块分布,从而使得代码易于结合。
问题二:如何才算得上是一个合格的软件工程师,或者说优秀的东西似乎都具备着一些共同的特质,那么一个合格的软件工程师所写的代码应当都具备哪些特质呢?这些特质该如何融合到我们平时的练习当中去?
经过一学期的学习,我认为一个好的软件开发人员应当具备以下几点特质:
1、较强的专业技能
2、文档流程组织能力
3、团队精神和协作能力
4、模块化思维能力
5、交际能力和表达能力
6、快速学习和总结的能力
至于这些能力应该如何融入到平时的练习,引用那句话“实践是检验真理的唯一标准”,多做项目,在做的过程中这些能力慢慢会得到提高。
问题三:书中P52页提到,“”软件工程师不宜过早的优化,不能过于积极的解决所有依赖性问题”,在平日里写代码时,遇到问题及时解决在最后才不会花费太多精力和代价在代码的改进和优化上,小的工程代码尚且如此,在大一点的软件工程项目中后期岂不是要付出更大代价?
优化是没有止境的,放眼望去,任何一个软件都有其可优化的余地,不可能一次性做到最好,相反一直纠结于局部的优化只会耽误整体的进度,甚至会越陷越深,因此我们在做软件时可以先放眼全局,只对于局部只先解决基本的问题,完成整体后再逐步求精不失为良策。
问题四:一个软件的诞生似乎源于用户对于这款软件的需求度,人们在现实社会和生活中遇到各种问题时,需要求助于各种软件,人们的需求往往五花八门。在本书P165页中邹欣老师也曾提到“原来我并不了解海量中国用户,原来真实的用户并不是我想像的那样”。我相信任何一个做软件的程序员一开始都认为自己做的东西是被用户所需求的,所以才会有去设计软件的冲动,只有这样这样自己所做的东西似乎才被赋予了意义,那么做软件的人在做软件前就一定会对这个软件进行需求分析,既然是在做过需求分析后得到的软件,为什么依然存在需求不对称的问题呢,书中提到“不理解为什么有那么多人为了qq上的虚拟形象付钱,现实中的很多人喜欢漂亮和虚荣,因而她们不在乎花点钱打扮自己”,我在想在做软件时有时更重要的也许是这样的“隐性需求”,并不是简单的“用户调查问卷”一类的需求分析所能体现出来的,那么这样的需求分析是否还有必要呢?
通过一学期的项目演练和用户需求调查,事实表明需求分析还是很有必要的,如果连用户的实际需求都无法满足就着眼于探索它们的隐形需求最终结果可能会不如人意。换句话说如果探索结果出现问题,你所认为的隐形需求依然不是用户的真正需求,那么根据你所以为的需求定制出的软件最终只会没有人用。对用户进行需求调查,起码用户是不会说谎的,从他们口中能直接了解到他们需求。
问题五: 对于软件工程这门课程我们都是刚刚开始的学徒,在书中所介绍到的包括软件工程师,项目经理,软件测试人员等等都是软件开发工程中必不可少的关键人员,每个人的分工不同,侧重点也不同,那么作为现在的我们来说侧重点应该放在那里呢? 或者说为了以后更好的完成这些工作,我们现在最应该做好的是什么?
没有最应该做好的,尽全力做好现在能做到的每一件事,不带有目的性,只是单纯的做好你所能做到的,我相信很多能力会在无形当中慢慢提高。
新的问题:
本学期所学课程名称为“软件工程导论”,也就是说我们这学期所进行的整个过程只是引导我们进入这一领域,软件工程似乎还有很多学问,今后应当如何更深入的学习,做哪些工作比较合适?
二、完成课程的实践总结和给你带来的提升,包括以下内容:
1、统计你在软工课程实践中,完成了多少行的代码;
大约四千行
2、软工实践的各次作业分别花了多少时间?累计花了多少个小时在软工实践上?平均每周花多少个小时?(做一个列表)
软工作业 |
花费时间 |
实验一 软件工程准备 |
10 |
实验二 软件工程个人项目 |
8 |
实验三 软件工程结对项目 |
10 |
实验四 基于原型的软件需求获取 |
7 |
实验五 软件研发团队组建 |
5 |
实验六 团队项目评审与团队项目选题报告 |
6 |
实验七 团队作业3—团队项目的原型设计与开发 |
10 |
实验八 团队作业4—基于原型的团队项目需求调研与分析 |
7 |
实验九 团队作业5—团队项目需求改进与系统设计 |
10 |
实验十 团队作业6—团队项目系统设计改进与详细设计 |
10 |
实验十一 团队作业7—团队项目设计完善&编码测试 |
8 |
实验十二 实验十二 团队作业8—团队项目用户验收评审 |
5 |
周平均花费时间 |
7.5 |
花费时间总计 |
96 |
学习和使用的新软件;哪一次作业让你印象最深刻?为什么?
第三次结对项目实验吧,两个人结对编程,第一次两个人坐在一起写代码,感觉很不一样。
学习和使用的新工具;
process on、墨刀、石墨文档、visio、IntelliJ IDEA、Android Studio、Deamweaver
学习和掌握的新语言、新平台;
中国大学MOOC、GitHub、博客园
学习和掌握的新方法(请具体说明什么方法);
测试方法:白盒测试和黑盒测试
需求获取方法:原型法
其他方面的提升(请具体说明 什么提升)。
学习完软件工程这门课程,最多的提升就是解决问题的能力吧,遇到问题不再急躁而是想着怎么解决,在作业的“压迫”下,提升了这种快速解决问题的能力,还有就是团队协作能力,项目合作中团队成员相互磨合让我学会了如何与他人更好的合作。
三、你认为目前的课程有哪些问题,你有什么更好的建议:
1、你认为本门课程需要在哪里进行改进,具体措施有哪些,包括:时间进度安排,项目难度等均可;
整体来说,这门课难度适中方式合理,学习完这门课程算是体验了一下软件工程的大致过程,只是在时间进度方面,任务安排太紧张,这学期因为考研复习等因素往往需要挤时间做作业,在这上面花费了很多时间。
2、你认为助教/老师哪里做的不足,哪里限制太多等;
助教和老师都十分认真,不得不说老师和助教的工作态度让人十分敬佩,看着老师如此认真,我们也没有了不认真的道理,至于不足,我觉得老师们或许可以考虑一下更加灵活和开放的布置任务,让同学们更多的体现自己的创造性。
3、你认为每次项目的评分标准存在哪些问题,你认为的合理评分准则是怎样的(个人/结对/团队算三个)
也许在本次课程实践当中,最大的争议就是评分标准了,无论是个人还是团队项目,不同的助教有不同的标准,不得不说这对同学们来说其实还是有点不公平的,就像之前的项目,记得在博文中要求对问题作出分析,看到了不同的同学有相同的答案最后评分却是一半的差距。
无论是团队还是个人建议老师是不是可以在今后的教学中把评分化为A、B、C、D这样的等级评分,不能做到绝对的公平那是否能争取做到更公平。
3、在结对项目中你是否真正体会到了结对的好处,是否真正严格进行了结对编程,双方的工作量是否相同;
对于这个不用说,答案一定是肯定的,在整个过程中我们大概用了接近三天的时间完成,两个人合作真的节省了不少时间,在一个问题不会的时候总有一个人可以和你一起商量,比起一个人效率高很多,毕竟一个人调代码调不出来是真的很绝望的,多一个人帮忙在给出想法的同时无形中提高了自己的能力,双方工作量基本相同吧,有时也会不一样。
4、你的团队项目是否成功,如果重来一次你是否还会选择这个团队,为什么成功/失败;
成功,一定会。我们能成功离不开团队汇中每个成员的努力,大家明确分工共同努力,我们都想着怎样把这个项目完成的更好,当每个人都这样想的时候项目自然会变得越来越好。
5、总结一下你们团队在做项目时大家的时间安排情况。
每次的任务在做之前,首先都会讨论需要完成的任务,每个人都有自己的分工,组内再分小组,小组再决定一个共同的时间合作完成项目。遇到自己解决不了的问题会在我们的项目讨论组里进行讨论。
6、对下一届软工课实践教学的建议,或者对于开学初的你,对于大一的你,对于开学初的老师,你有什么想建议和告知的呢?对于后来人的期许。
怎么说,这一门课程终归还是一门实践性很强的课程也是一门需要花费大量时间和精力的课程,每一步每一个任务如果真的认真去做是会有很大收货的,很不幸这样的教学方式这样的一门课程自己到大三第二学期才遇到,时间紧张很多时候自己也是心有余力不足。学弟学妹们这门课程应该大多数是会安排在大二吧!想告知学弟学妹的是无论任务再多再难请一定要自己动手去做,只有认真去做了自己才会有收获有进步,扎实自己的专业基础,一步一个脚印,多积累项目实战经验~
对于老师的建议嘛,希望老师能细化出更多的小任务,从易到难进行阶梯式安排,让同学们有一个循序渐进的过程~
四、你还有什么想说的话
不知道自己在这条路上能走多远,只希望自己能尽全力做好自己现在能做好的,不要给未来的自己留下遗憾吧~