个人作业——高级软件工程实践总结作业

一、请回望第一次作业,你对于高级软件工程课程的想象

1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?

  • 在整个课程的学习过程中,设计模式的学习完全超出了我个人对课程的期待,课程中老师很细致的为我们讲解了多类设计模式,并且通过课后对每个设计模式的训练,让我加深了对设计模式的理解和应用。设计模式是未来从事软件开发工作中必不可少的需要掌握的知识。这一块,我感觉是这个课程给我的惊喜,也是本科软件工程课程中所缺失的。
  • 实践开发环节也达到了最初的期待,在这个过程中,不仅增强了我团队协作的意识,而且规范了整个的开发过程,从选题报告到需求分析,再从整个系统的编码,测试,使得我对整个软件开发的过程有了更加深入的理解和体验。
  • 唯一存在不足的是我们的系统还存在很多设计不合理的地方,因此并没有投入真正的使用。这也说明了我们还存在着许多的不足,还需要继续深入的研究软件工程这一课程。

2)总结这门课程的实践总结和给你带来的提升,包括以下内容:

  • 1、统计一下,你在这门高级软件工程实践中,完成了多少行的代码;
    一万行左右。
  • 2、高级软工实践的各次作业分别花了多少时间?(做一个列表)

 

作业花费时间作业花费时间
高级软件工程第一次作业(准备) 2h 测试随笔 5h
团队展示(团队) 3h 事后诸葛亮(团队) 7h
项目选题报告(团队) 6h Beta冲刺预备 7h
项目需求分析(团队) 5h Beta冲刺Day1 5h
项目Alpha冲刺Day1 12h Beta冲刺Day2 8h
项目Alpha冲刺Day2 10h Beta冲刺Day3 6h
项目Alpha冲刺Day3 7h Beta冲刺Day4 6h
项目Alpha冲刺Day4 9h Beta冲刺Day5 6h
项目Alpha冲刺Day5 10h Beta冲刺Day6 9h
项目Alpha冲刺Day6 8h Beta冲刺Day7 10h
项目Alpha冲刺Day7 9h Beta冲刺总结随笔 6h
项目Alpha冲刺Day8 7h 用户使用调查报告 3h
项目Alpha冲刺Day9 8h 高级软件工程实践总结 5h
项目Alpha冲刺Day10 5h 第一次作业 1h
项目Alpha冲刺Day11 6h 第二次作业 6h
项目Alpha冲刺Day12 10h 第三次作业 7h
Alpha冲刺总结随笔 5h 第四次作业 8h
第五次作业 8h  

 

  • 3、哪一次作业让你印象最深刻?为什么?

  印象最深刻的一次就是写Beta总结冲刺的时候,那时候我们团队的项目已经成型并且经过了多次的测试和完善,项目已经较为成熟。写这篇博客的感想的时候,回想起我们团队的整个开发过程,感触良多,从刚开始的大家因为课程的关系而组成了一个团队,拍了第一张团队的照片,到Alpha冲刺阶段每天聚在一起进行头脑风暴,有焦虑的时候,有碰撞的时候,但更多的是看着项目一步步的完成的欣喜的时候。大家一起开发,一路走来很不容易,但幸好项目很完美的划上了句点。

  • 4、累计花了多少个小时在高级软工实践上?平均每周花多少个小时?

  累计花了203个小时在高级软工实践上,平均每周花67个小时。

  • 5、学习和使用的新软件

  Mysql数据库、开发工具:Myeclipse、服务器:Tomcat、原型开发工具:Axure RP

  • 6、学习和使用的新工具

  使用Github进行版本控制,使用PowerDesigner绘画UML图。Rational Rose绘画用例图,顺序图,活动图等。

  • 7、学习和掌握的新语言、新平台

  我们的项目前端采用的语言是HTML+CSS+JavaScript。后台采用的语言是Java.项目使用SSH三大框架进行架构。

  • 8、学习和掌握的新方法

  前端学习了新的框架:Bootstrap

  后台学习了新的框架:Struts+Spring+Hibernate

  还学习了设计模式,并使用了5个设计模式(工厂模式,状态模式,代理模式,观察者模式,策略模式)在我们的项目中。

  • 9、其他方面的提升。

  团队协作能力方面;对所使用的编程语言更加熟悉;编码规范也有很大的提升。

二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析

  • 项目开发开始的需求分析很重要。需求分析可以使得开发和测试更能够了解整个系统的需求,把一些技术难点和可能遇到的难点问题提出来,尽早解决,并且达到一致,便于以后的开发和测试。个人认为,需求分析中的用例这一环环节很重要,好的用例文本,能为后期的开发提供很好的参照,不至于后期的开发偏离期初预想的轨道。但是随着开发的推进,需求也会发生变更,需要及时的更新相应的文档。比如我们系统开发过程中,起初对活动的流程控制并没有做特别详细的说明,导致了后期开发时,大家的想法不同,对活动流程的控制很混乱,最后我们对每个活动流程又进行了重新的讨论,编写了详尽的用例文本。大家都很据新的用例文本进行开发,最后完善了活动的流程控制。
  • 项目开发时代码的规范性很重要。我们团队开发过程中,有自己的制定的一套代码规范,比如变量名的命名规范,函数命名规范,对每一个函数都需要注释其功能等,在团队开发过程中,大家都遵循这样的规范,在遇到需要使用他们开发的模块功能时,我们都能够很快精准的定位到他人写的代码,增加了我们团队的效率。
  • 团队沟通很重要。由于我们团队每个人的个性都很不一样,所以在每次讨论时,大家都会积极的说出自己的想法,正是因为这样思想的碰撞,为我们系统开发,需求确定提供了很多的灵感。

 

###三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?

对下一届的建议:或许刚开始听老师布置整个系统开发的作业时,你们会感到非常的彷徨,无措,甚至还会有些崩溃,认为自己根本没有办法完成这项艰巨的任务。但是正因为这个作业,你和你的小伙伴们有了一个全新的体验,你们将会组成一个团队,一起面对每一次作业,每一次开发,虽然过程很艰难,需要学习的东西也很多,但是只要你们努力,在项目结束的那天你们会发现,你们真的收获了很多。在不知不觉中,你已经成为了能够独当一面的全栈开发程序员了,你的代码能力和编码的速度都会得到很大的提升。不仅如此,你还会收获一大群可爱的队友们,那些你们一起努力编码熬夜的日子,会成为你们大学生活中难忘的一段回忆。加油,学弟学妹们。

 

四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)

  • 团队发展分为四个阶段:萌芽阶段、磨合阶段、规范阶段、创造阶段。我认为我们的团队经过了前面三个阶段。
  • 萌芽阶段是我们团队刚刚组建的阶段,那时大家彼此都不是很熟悉,对彼此所掌握的编程能力和技巧也不是很了解。在组完队后,我们团队马上确定了开发工具和项目所要使用的开发技术,然后团队的每个成员对自己欠缺的技能进行补充。
  • 磨合阶段是我们团队刚开始进入开发的时候,在需求分析时,大家对系统的功能进行了详细的讨论,会出现意见的不同,但经过我们团队的讨论,终于完美的确定了系统的所有功能细节。
  • 规范阶段是我们团队在确定需求之后,大家一起制定了编码的规范和接口,分配好各自开发的模块进行协同开发,并使用了Github进行版本控制。
  • 团队没有进入创造阶段。

 


五、怎样证明你学会了软件工程?

1)研发出符合用户需求的软件

必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件

2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件

有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄

3)并且通过数据展现软件是可以维护和继续发展的。

而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料    
  • 我们软件虽然没有发布至外网,但我们开放了局域网的网址,供我们使用同一校园网的同学使用,并征集了他们的建议和意见。
  • 我们的整个项目过程,有项目规划,项目需求,项目设计,项目实现,项目发布,项目维护。  

  选题报告:https://www.cnblogs.com/youberight/p/9900706.html

  需求分析:https://www.cnblogs.com/youberight/p/9941637.html

  原型设计、代码实现、用户测试:https://www.cnblogs.com/youberight/p/10033785.html        https://www.cnblogs.com/youberight/p/10091200.html

 

六、个性发挥,包括图文、照片和创意等

写代码是一种艺术,甚于蒙娜丽莎的微笑

 

posted @ 2018-12-15 20:35  冷暖自知12186  阅读(192)  评论(1编辑  收藏  举报