个人学期总结
一. 学期初,实验一中的任务4,大家拟定了5个准备从课程学习中找到答案的问题,通过一个学期的学习,相信大家已经有了答案,请根据自己的学习实践回答自己当初提的问题,并提出一个新的问题。
1.我在读到3.2节《软件工程师的思维误区》时,感触比较深。“不分主次,想解决所有依赖问题”,“过早优化,扩大化”等这些问题都是我们平时在学习或编程时犯的通病。那对于正处在学习阶段或者将来刚进入职场时,应该如何避免这些问题?
在经过一个学期的《软件工程》学习之后,我对自己在学期初提出的问题也有了一点答案。我i觉得对于初学者来说,要想避免诸如“不分主次”,“过早优化,扩大化”等胡子眉毛一把抓的问题,是有点不切实际的。正如软件测试的目的,学习一个新的知识,它也是一个不断试错的过程,只有不断碰到问题,认识到自己的不足,并总结经验,逐步培养一个完整的思想体系,到最后才可以谈得上游刃有余。
2.一个团队中PM是很重要的,在具体的项目操作时,PM与客户需求分析时,需求方向上产生偏差,最后导致项目的不成熟。PM是否要承担更多责任?
对于这个问题,是我读完《构建之法》之后的小疑惑。需求分析在项目中至关重要。需求是具有一定目的性的状态或指标。当PM面对来自各方的不同需求时,需求的数量有了,那么就要掌控住需求的质量。这才是需求分析的核心,也决定了后续工作进行的力度。因此,PM前期的需求分析工作很重要。
3.在对软件的应用体验问题上,对于新用户来说,软件的功能越详细越好,但对老用户,这样就显得过于繁琐。在软件基本功能完善的情况下,怎么该保证两者的平衡?
对于用户来说,用户体验是第一感觉,用户习惯是在体验的基础上不断累积而成的。比如,手机解锁问题,相较于数字或者图形解锁,近几年大大流行的指纹解锁,它很好地平衡了安全与简易的要求。
4.软件开发流程与硬件生产流程有什么区别?
软件开发流程即软件设计思路和方法的一般过程,包括对软件先进行需求分析,设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编码和调试、程序联调和测试以及编写、提交程序等一系列操作以满足客户的需求并且解决客户的问题,如果有更高需求,还需要对软件进行维护、升级处理,报废处理。
硬件开发首先是要明确硬件总体需求情况。其次,根据需求分析制定硬件总体方案,寻求关键器件的技术资料、技术途径、技术支持,要比较充分地考虑技术可能性、可靠性以及成本控制,并对开发调试工具提出明确的要求。第三、总体方案确定后,作硬件和单板软件的详细设计,包括绘制硬件原理图、单板软件功能框图及编码、PCB 布线,同时完成开发物料清单、新器件编码申请、物料申领。第四,对原理设计中的各功能进行调测,必要时修改原理图并作记录。第五,软硬件系统联调,经过单板调试后在原理及 PCB布线方面有些调整,需第二次投板。第六,内部验收及转中试,硬件项目完成开发过程。
5.对于工程师,职业道德是否比专业能力更重要?
软件工程师在设计软件时,他是在以满足客户的需求为基准进行,这是一个人性化的过程。所以工程师的职业道德是的一门必修课,不容忽视。
二、完成课程的实践总结和给你带来的提升,包括以下内容:
1.统计你在软工课程实践中,完成了多少行的代码;
4000多行
2.软工实践的各次作业分别花了多少时间?累计花了多少个小时在软工实践上?平均每周花多少个小时?(做一个列表)
作业次数 | 实践时间/h | 平均每周所花时间/h |
第一次 | 7 | 8 |
第二次 | 8 | 7 |
第三次 | 6 | 7 |
第四次 | 9 | 8 |
第五次 | 5 | 7 |
第六次 | 5 | 6 |
第七次 | 6 | 7 |
第八次 | 8 | 7 |
第九次 | 7 | 7 |
第十次 | 10 | 9 |
第十一次 | 6 | 7 |
第十二次 | 6 | 7 |
3.哪一次作业让你印象最深刻?为什么?
团队作业。在团队的合作和努力下,看到设计的东西做出了成果。
4.学习和使用的新软件;
visio
5.学习和使用的新工具;
墨刀,Leangoo
6.学习和掌握的新语言、新平台;
GitHub,博客园
7.学习和掌握的新方法
快速原型方法,软件测试方法
8.其他方面的提升
团队合作能力以及思维局限性的转变
三、你认为目前的课程有哪些问题,你有什么更好的建议:
1.你认为本门课程需要在哪里进行改进,具体措施有哪些,包括:时间进度安排,项目难度等均可;
我觉得课堂理论知识的讲解可以通过具体的项目跟进,实际地介绍,可以增强对每一部分的理解。
2.你认为助教/老师哪里做的不足,哪里限制太多等;
每一位助教都很负责认真,对我们的帮助很多。
3.你认为每次项目的评分标准存在哪些问题,你认为的合理评分准则是怎样的(个人/结对/团队算三个)
评分标准合理,可以接受。
4.在结对项目中你是否真正体会到了结对的好处,是否真正严格进行了结对编程,双方的工作量是否相同;
在结对过程中,我们严格进行了结对编程,最后的收获是“1+1>2”的。
5.你的团队项目是否成功,如果重来一次你是否还会选择这个团队,为什么成功/失败;
成功,我还会选择的,我们团队的分工明确,大家积极沟通,同进退,共同实现了软件设计。
6.总结一下你们团队在做项目时大家的时间安排情况。
我们合理分配任务,然后分工去做,团队讨论和沟通上花了较多时间。
7.对下一届软工课实践教学的建议,或者对于开学初的你,对于大一的你,对于开学初的老师,你有什么想建议和告知的呢?对于后来人的期许。
在开课之前,就要抱着认真的心态去对待。在项目设计时,认真完成每一次的任务,每次的实验都会学到新的知识或者接触新的学习平台或工具。
四、你还有什么想说的话
经过一学期的学习,我对软件的开发过程有了更全面的理解,也认识到软件的完成依赖团队之间的良好合作。在近三个月的时间里,直到期末考试的完成,这门课的学习也结束了。但我知道,这门课对我的影响远不止于此。