1.读材料回答问题
(1)回想一下你曾经对计算机专业的畅想。当初你是如何做出选择计算机专业的决定的?你认为过去接触到的课程是否符合你对计算机专业的期待,为什么?你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗?
当时选这个专业就是因为喜欢计算机,现在依旧很喜欢,在这一个学期得时间里,和小组其他成员体验学习完成一个完整项目的过程让我受益匪浅,对工程项目有了更加深刻的体验,更加享受编程的乐趣。
(2)考取研究生,对照前人们走过的路和描述未来发展,现在的你自我感觉你已经具备的专业知识、技能、能力有哪些?离成为一个合格的计算机学生,在专业知识、技能、能力上还差距哪些?
在这一学期中,因为项目需求,督促我更加深入的学习了java尤其是java的Swing编程的相关知识。在团队项目中我主要负责程序的总体框架搭建,每一次发布加入新功能时都会遇到各种各样的问题,让我深切的觉得自己应该更加深入的学习设计模式的相关知识,因为这方面知识储备的不足,使得每一次版本更新都有或多或少不必要的麻烦。
(3)每天都是一个人生选择的十字路口,学术研究、工程项目、社会实践 (?) ,不同的选择有不同的努力方向。
这一学期使我更加明确自己对于编程的热爱,使我更加倾向于选择工程项目作为未来的发展方向。
(4)你对这门课的期待是什么?你打算平均每周拿出多少个小时用在这门课上?
在这门课程中掌握了进行大项目的方法及工作流程,也加强了我与他人合作完成任务的能力。
每周大概8.733小时(原计划使10-12小时)
2.回顾2
请回顾这5个问题,自己回答一下。当初的困惑是否还在,你现在如何认为,是更深的困惑么?
(1) 基本只要说到项目开发,大家就一直在强调合作,在这本书中也提到了这一点。但是说实话,至今我也还是不太知道这种合作到底具体是在指什么,我没有过开发超大项目的经验,大学时开发项目只要大家分好工,完成属于自己的任务,做好接口对接,写好文档就可以基本达到预期,争论也基本主要发生在设计阶段。而这显然不应该是大家口中的“合作”,合作应该不止是沟通那么简单吧,希望在学完这门课的时候,我能真正懂得它的含义。
在这次的结对编程和团队项目中,我和组内其他队员一起完成一个完整的工程项目,每个队员都有自己的分工,每个人都有自己擅长和不擅长的事,大家群策群力共同为项目努力,有过意见不一,每一次发布准备过程中都有各种问题,在解决这些难题的过程中,大家都在成长,这整个过程对我们来说都是弥足珍贵的财富,
(2) 按时完成项目是所有老板对员工的期望及要求,从数学角度我们可以知道人员的数量和进度之间的关系绝对不可能是单调增减,人员多了,任务分解个人时间会减少,但是同时需要的沟通也会变多,成本也会增加,而且每个人的能力也不同,那么在开始一个大项目的时候,到底是如何进行分配,以达到进度和成本的平衡呢?
团队项目的小组成员一共有七个人,其中主要三人负责编码,在项目选题的时候,我们就结合各自的编程能力和可以付出的时间,对代码任务量做了估计,因为在项目伊始,我们对彼此的能力并不清楚,所以alpha发布之前的时间遇到过不少困难,越到后来,我们越了解对方,任务分配的也更加合理,完成任务也更加游刃有余。故而我觉得分配任务的主管要竭力做到了解项目中的每一个成员,了解每一个人优缺点,这样才能更好地分配任务。
(3) 今天与朋友聊天偶然提到很多小型公司根本不具备聘用大量测试人员的能力,而且我认为大部分的小型项目也根本没有时间来进行完整的软件工程过程。书中所提到的核心部分:构建管理,源代码管理,软件设计,软件测试,项目管理。这些项目究竟涉及了哪些。那我是不是可以认为软件工程仅仅是为了大型项目使用的。
这次的团队项目其实就是一个小项目,但是很明显有效地管理,合理的安排,更加有助于项目的整体实现。
(4) 对于书中敏捷编程提到的燃尽图,我从来没用过,我上网查了它的具体操作等等,对于燃尽图我有一点疑问,燃尽图需要每个人都忠实地记录自己的工作日志,story的数量也会影响燃尽图,还有燃尽图如果不能及时维护,都会导致很大问题,在网上也可以看出相当多的团队的燃尽图都是跳楼式的。图中的曲线是否真的能够代表剩余的工作量,难道只有有丰富工作经验的团队才适合使用燃尽图?
作为一个没有丰富工作经验的团队,在对燃尽图有陌生到熟悉的过程中,我们真正体会到了燃尽图的好处。
(5) 我经常遇到一种情况,在设计软件之初,我自认为已经将一切想的很全面了,但是往往在编码的时候,在这个软件从抽象逐渐具体的过程中,尤其是后半段的时候,往往会不断有不错的idea浮现在脑海,甚至会完全推翻原先的想法,但是所有的软件都有时间要求,而我如果想实现它就会花费很多额外的时间,这个时候我到底要不要实现它呢?
在项目中也遇见了这种情况,在与队员进行讨论后,有的保留了,有的舍弃了
请根据本学期的学习、收获、困惑,再提出5个问题,可以是读后不理解的,或者读后反对的。有求有观点、有证据或分析。体验一下,这5个问题,是不是更有深度了
1)在我们不知道以后会添加什么功能的情况下,该如何安排程序架构呢,现在的框架时对当前要实现的功能最好的方案,可是对以后要加入的功能来说,可能不是那么完美。
2)用户界面对于项目十分重要,可是设计这些界面的一般不是程序编写人员,那么程序要是不是根本不用关心界面
3)在人员有限的情况下,每个方法一一测试花费太大,可不可以挑选一些逻辑结构相对复杂的方法进行测试
4)在改写其他组员的程序时,有时会很麻烦,甚至花费的时间比自己重写一个花费的时间还要多,这时是应该继续改写,还是自己直接重新写一个
5)创新到底依靠的是天分,还是实力,如何做到IT行业的创新。
回忆整个学期,你有什么话想对后来的学弟学妹们说。
在这样一次完整的项目工程中,你一定能得到成长!
如果重新来过一次,你打算做哪些(技术上,而不是态度上的)改变--基于希望得到什么样的更好结果,你才希望这样改变的;更重要的是,你根据什么估计这些改变会有预期的结果。
在重新来过一次的话,一定会在代码架构上更加用心,仔细的分析,为以后的升级更新做好基础,这样在以后的项目中才能更加节省时间和精力。虽然这一次在搭建框架的时候我已经竭力遵照软件工程中的要求编写代码,但是因为经验水平不足,在实际的任务分配,和功能添加的时候遇到了很多困难。比如在Beta发布时我们要增加欢迎界面,由于在最开始没有想到会增加这个功能,导致在实现这一功能时对代码的框架做了很大的改动,这样的事情不只发生了一次。而如果一开始在这方面更用心的话,到改动时就会简单很多。
终于我们即将不再是师生。当你结束本课程,你和我就站在同样的位置上,我将不再基于学校授权和知识、经验 (年龄?)上的优势而对你的自由有任何干扰。除发布及成绩以外,我最后一次行使教师特权: 请问你有什么要对教师 (我)说的,建议、抱怨、希望……多谢。
在此感谢老师以严谨的态度,花费了宝贵的时间认真批改我们每一个人的作业,另外,课堂内容也让我受益匪浅。
-
代码总量,平均每周代码量:总函数2155行,平均179.6行
-
博客字数总量,平均每周字数。博文字数总数13361字,平均每周1113.4个字
-
根据PSP,平均每周在本课程中所用时间(是的,请再回答一次)多少小时。8.733小时
-
进度条总结: 遍历每周知识点,以周为单位做如下表格。
-