一、学期初,实验一中的任务4,大家拟定了5个准备从课程学习中找到答案的问题,通过一个学期的学习,相信大家已经有了答案,请根据自己的学习实践回答自己当初提的问题,并提出一个新的问题。
1.我们为什么要合作编程?合作编程的意义是什么?合作编程就是团队工作?
(1)首先应该是合作编程的高效率了,合作编程的时候,小组成员可以分开做不同的unit,也可以同时做相同的unit。在项目的一些简单的unit,一个人能够很简单的unit就可以分给不同的人去做;对于核心的unit,需要我们共同讨论,经过讨论后再去实现,或着多个人分别写出自己的想法,用代码实现,这时候,综合小组成员内效率高的那个人的算法。另外,在合作编程时候,有一定相互监督作用,比起一个写程序,更不会想去玩一些其它的东西。
(2)想法源于多人人的激烈讨论,很多时候,我们在讨论中,常常忽然就会有一个灵感突然来袭,或者是会有一些之前不懂得地方,可能一下就懂了。
(3)合作编程的时候乐子多,我们合作的很开心,这样能提高我们的激情,同时也就提高了效率,工作起来很带劲
(4)在调试的时候,不再是一个人调试时那样无奈了,遇到了bug时,小组成员一起,应付这些bug就能更得心应手一些了。后期维护起来也更加方便。
2.在软件的实践中我们需要团队模式,但是在软件的精神层面是否我们也需要团队模式?
同样需要,但是更多的是我们独自思考的结果,然后我们把这些方法与思想聚众,选出最适宜的算法和模式,更高效,低成本的完成项目。
3.软件是工程还是艺术?如说工程,为什么有很多的大神用一种艺术的眼光来看待呢?如说艺术,为什么在很多工程师的身上折射的是一种模式呢?
我觉得应该是是一门艺术,达到最佳的效果,有了工程,没有艺术,那么我们的这个世界,不是一个完美的世界,用带有一种艺术的眼光去看待软件,去看待你周边的事务,以及这个世界的一分一毫,你会得到意想不到的效果。 软件开发是一门艺术。艺术是没有具体形象的,一名艺术家必须要擅长创新;工程则是循规蹈矩的,一名工程师则必须要守规矩。而软件开发之所以可以称为一门艺术而不是工程师因为软件要满足用户的需求并不是循规蹈矩的,不同的软件开发者对做一个相同的软件开发项目可能有很多不同的想法,一个只会循规蹈矩的软件开发者肯定是无法成为一个出色的工程师的,只有懂得创新的工程师才能开发出更多合适的好的软件。那种不懂得创新的软件开发师被人们戏称为码农,所以要成为一个出色的软件开发者,必须要学会创新,俗话说创新是进步的源泉。我们要学会在软件开发中走出一条只属于我们自己的路,而不是沿着别人开发的道路循规蹈矩的走,这样我们就永远只能跟在别人后面,永远不能超越别人的技术了
4.Mort和Einstein的区别是什么?
Mort:是最基本的软件开发人员,他们有着较好的开发技术,但是对于一些大型的项目,就有一定的难度,开发起来比较吃力,还需要不断的学习来完善自己的不足。
Einstein:是软件开发的顶级人员,很多项目在他们手里,就是小儿科,能够快速的完成,他们是这个行业里面的老大,也是大牛,他们对于开发有着得天独厚的想法,在他们的手里,项目完成的很漂亮,但我们也不否认他们的项目中错误,毕竟人无完人,但是有了他们的存在,软件开发就走上了一个新的台阶。
5.MSF模型中发布管理和项目管理能融为一体吗?
这是不能的,发布管理和项目管理本身就不是一个层面上的,发布管理是项目早期的一个预设,而项目管理不是,它是整个项目中运行的,两者之间的责任不同,项目管理的责任分布到了小组领导的身上,而发布管理是由其他部门人员的责任,不仅仅在小组领导的身上。项目管理的专家提供一种以促进和指导为基础的方法,而不是强行控制小组的其他成员。因此,在这个过程中是不能将发布管理和项目管理为一体的!
6.如果没有完成用户所给的需求,我们所开发的项目还有意义吗?没有了用户,我们的项目开发能否进行下去?
二、完成课程的实践总结和给你带来的提升,包括以下内容:
- 统计你在软工课程实践中,完成了多少行的代码;
我在本次软件工程课程实验中,完成了大概7600行代码,记得在太阳系模型系统这个团队项目中,jsp页面就写了很多,虽然有些是重复的,但是他们各自的功能不一样,完成它们,虽然花费了很多时间和精力,但是学到了很多。收获满满!!
2.软工实践的各次作业分别花了多少时间?累计花了多少个小时在软工实践上?平均每周花多少个小时?(做一个列表)
软件工程的作业 |
花费时间 |
平均每周花费时间 |
实验一 软件工程准备 |
3h |
4h |
实验二 软件工程个人项目 |
5h |
6h |
实验三 软件工程结对项目 |
8h |
7h |
实验四 基于原型的软件需求获取 |
8h |
8h |
实验五 软件研发团队组建 |
4h |
5h |
实验六 团队项目评审与团队项目选题报告 |
8h |
9h |
实验七 团队作业3—团队项目的原型设计与开发 |
11h |
7h |
实验八 团队作业4—基于原型的团队项目需求调研与分析 |
6h |
6h |
实验九 团队作业5—团队项目需求改进与系统设计 |
7h |
6h |
实验十 团队作业6—团队项目系统设计改进与详细设计 |
15h |
8h |
实验十一 团队作业7—团队项目设计完善&编码测试 |
23h |
11h |
实验十二 实验十二 团队作业8—团队项目用户验收评审 |
3h |
5h |
3.哪一次作业让你印象最深刻?为什么?
实验二,软件工程个人项目,由于项目时间比较紧,晚上2点还在编写代码,虽然当时很发困,但是还是一丝不苟的把实验完成了,感觉自己很有成就感!很是安心!
4.学习和使用的新软件;Navicat for mysql,Fireworks_cs6等
5.学习和使用的新工具;墨刀,sublime,visio等。
6.学习和掌握的新语言、新平台;Github,博客园,jsp等
7.学习和掌握的新方法(请具体说明什么方法); 快速原型方法,面向对象设计方法,面向过程设计方法。
8.其他方面的提升(请具体说明 什么提升):文本撰写能力的提升。
三、你认为目前的课程有哪些问题,你有什么更好的建议:
- 你认为本门课程需要在哪里进行改进,具体措施有哪些,包括:时间进度安排,项目难度等均可;
我觉得本门课程老师设计的很好,但是唯一不足的是:给的项目时间太紧,有很多项目的想法与设计不能完成,有时为了赶进度,把很多好的想法和设计方法都放弃了,我觉得这是这门课的最大的一个缺点,希望老师能放宽项目时间,我的意思不是无休止的放宽时间,而是让两个或多个项目同步进行,有些时候项目中的分配任务自己完成了,有了自己的剩余时间,但是上一个项目已经结掉了,很多方法和想法都没有实现,感到很遗憾,我希望老师把两个项目或者多个项目放在一起同步进行,这样我们能让我们的想法和好的设计都能实现,也不耽误项目进度。
2.你认为助教/老师哪里做的不足,哪里限制太多等;
我觉得老师和助教做的非常好,没有什么不足。
3.你认为每次项目的评分标准存在哪些问题,你认为的合理评分准则是怎样的(个人/结对/团队算三个):
这个我觉得没有什么问题,都是助教和老师辛苦查阅才给的分数,他们看出了我们项目和实验中的一些问题,给出了建议,并指出了存在的问题。
4.在结对项目中你是否真正体会到了结对的好处,是否真正严格进行了结对编程,双方的工作量是否相同;
确实我体会到了结对项目的好处,实验中同过结对编程,学到了很多东西,在以往的学习中没有体会到结对编程的快乐,两个人坐在一起,讨论,争辩,最后采用方法。在交流与学习的过程中,既掌握了知识,又学到了他人的一些思想与方法,这是我觉的结对实验中学到的最重要的东西。尼补了以往结对编程的空白。
5.你的团队项目是否成功,如果重来一次你是否还会选择这个团队,为什么成功/失败;
我的团队项目很是成功,若重来一次,我会选择这个团队,因为这个团队项目中的成员都有各自的特点,比如说,马绍辉思维很发散,能提出我们想不到的点子和方法,让我们的项目增添几分光彩;马婧(13),文本撰写能力很强,项目中的许多说明书都是她来撰写的,节省了我们大家很多时间;张俊逸和马婧(12号)很认真,一眼就能看出我们项目设计当中的很多问题。马世芳,组织能力特别强,我们项目中的很多任务都是她来分配的,保证了我们的项目能够顺利的进行。
6.总结一下你们团队在做项目时大家的时间安排情况。
团队成员 |
任务 |
估计时间(天) |
马仲山 |
可行性研究,编码 |
18 |
马世芳 |
需求分析,总体设计 |
13 |
马婧(12) |
基于原型的项目调研,模块设计 |
9 |
马婧(13) |
基于原型的项目分析,原型设计 |
9 |
张俊逸 |
需求改进与系统设计 |
8 |
马邵辉 |
单元测试,综合测试 |
6 |
7.对下一届软工课实践教学的建议,或者对于开学初的你,对于大一的你,对于开学初的老师,你有什么想建议和告知的呢?对于后来人的期许。
我的建议:就是我以上1中指出的问题,我在这儿重新写一下,希望能够引起老师和助教老师的注意:给的项目时间太紧,有很多项目的想法与设计不能完成,有时为了赶进度,把很多好的想法和设计方法都放弃了,我觉得这是这门课的最大的一个缺点,希望老师能放宽项目时间,我的意思不是无休止的放宽时间,而是让两个或多个项目同步进行,有些时候项目中的分配任务自己完成了,有了自己的剩余时间,但是上一个项目已经结掉了,很多方法和想法都没有实现,感到很遗憾,我希望老师把两个项目或者多个项目放在一起同步进行,这样我们能让我们的想法和好的设计都能实现,也不耽误项目进度。