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

一、回望开学初对于软件工程课程的想象,回望博客开篇时对于这门课和这学期的期望,

1)对比现在的你和开学初博客开篇的课程目标和期待:

实践项目完成后学习到的能力的预期:

读了两年的计算机,自我反思究竟学到了写什么却发现好像都是一团空。当时选课的时候很多人怕栋哥的“毒”而不敢选,但我觉得,人有时就应该逼逼自己,不是强制性去做,你永远不知道自己有多大的潜力。希望在这次课程结束后,能够学到一个项目从无到有的构建,学到和队友一起交流沟通解决问题的方法,顺带巩固下自己的编程语言基础。

对项目课程的期望:

原来有跟人讨论过对一个程序员究竟是 从无到有项目建立的过程 还是 接手其他人半成品项目 能带来更好的基础培养,但不管是哪种,都是需要对编程能力更好的掌握。希望栋哥上课的时候能多分享一些优秀程序员的成长过程及优秀品质给我们以启迪。

对项目的愿景规划:

希望和队友们一起编写的项目未来能有一点的发展,不会因为课程的结束而夭折。

实践项目完成后的学习到的能力:

初步掌握了JAVA语言的代码编程,Android软件的编写,代码测试(不是简单的查bug,最重要的是使用软件进行压力测试),文档的编辑整理,一个软件项目从无到有的过程。

对实践项目课程的感想:

虽然这个学期的课程很多,时间很紧,但一路跌跌撞撞过来,和队友们一起从无到有的建立起一个软件项目,内心的成就感还是满满的。就像编写代码查bug,为了应付作业去查和带着探究的精神去查,最后带来的幸福感差别还是很大的,软件工程实践这门课给我带来的最大收获不是学会了一种语言程序,编程能力有了一定提高,而是熟悉了一个软件项目如何被提出,如何开始原型设计,如何进行增删改进,如何将想法实现的过程。中间和队友们因为想法的不同而产生了一些争论,但也正因为这个而让思想的火花开始了迸射,促进了项目的更完美。

2)总结这门课程的实践给你带来的提升:

1、学习和使用的新软件

  1. SQL Server Management Studio: 跟上面一个配对使用

  2. Axure RP 8: 设计原型软件

  3. Screen: 手机电脑演示软件

  4. PowerDesigner: 设计数据库软件

  5. XMind 7: 设计思维导图软件,自带框架可以直接添加引用

  6. sublime: 代码编辑器,功能强大

  7. Typora: Markdown编辑软件,比博客在线方便多了

  8. start WampServer: 电脑局域服务器软件

2、学习和使用的新工具

  1. Github的使用

  2. 单元测试

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

JAVA

博客园、Github、安卓

4、统计一下,你在这门软件工程实践中,完成了多少行的代码

由于担任的是组长,主要精力放在项目进度的把控上,代码方面写的比较少,写了七个类,每个类有三百行左右,总共是两千一,如果加上修改的话应该会超过三千行。

5、学习和掌握的新方法

learning by doing。在软件工程实践中,大部分用到的东西都是我刚刚学习或者完全陌生的内容,基本上都是边学边做,针对一个问题进行查资料学习,然后慢慢的将问题磨出答案。

6、其他的提升

文档的编写整理。原来觉得在软件中毫不重要的文档最后发现是一个项目能否长久良好运行的基础保障!如果没有一开始的规范和注释,后面进行代码整合还有修改的时候会耗费大量的时间,甚至可能每次都是一次代码的从头编写。


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

相信很多人都有过这样的体验,在做项目开始前,总希望能把基础打牢,先把所有的知识掌握了,然后再开始编程,我在这里不是说基础不重要的意思,相反,基础的深度决定了你未来发展的高度,我的意思是对于一个初学者来说,要想把基础打扎实了需要花费大量的时间和精力,然而在时间不太充裕的情况下应该怎么办?当然是learning by doing 了啊!相对于其他组来说,我们组的项目进度比较快,在原型确定了以后就开始了分工编程,虽然中间偶尔有拖延症发作,但是因为时间安排的比较早,所以后面有充足的时间来进行弥补,因此我们组在Alphal和Beta阶段都没有出现过通宵编写代码的情况!但是在Alphal版本出现过一些情况,就是原型确定下来以后,因为一些同学没有太认真,导致了编写的时候疏忽少了一些接口和内容,在发现以后我们对此进行了重构,发现重构花费的时间远大于第一次编写时花费的时间,这也给我们提了个醒,在原型阶段一定要确保每个人对自己的分工能有清晰明确的了解,对项目的原型能够清楚的知道每块是做什么需要什么内容,在这方面作为组长我要检讨一下自己,在确定原型后对每个人的了解程度掌握不到位,造成了重构问题的发生。另一个就是对于Github的使用,我们组Issue的分块相对于其他组来说会没有那么细,因为我个人能力的问题,不能对每个部分的了解程度能够较为深入,因而存在只能对大体时间进行规划而不能详细到每日代码量的编写,在这块上造成了Github的使用效率没有达到预期高度的情况。


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

在编写代码之前,一定要先分好工!每个人对自己要做什么,做这些需要掌握什么知识能有个大体的印象,这样才能在开学初规划阶段抽空出来学习相关知识,不至于茫然无措。在确定原型阶段,确定完之后最后能抽时间让每个人分别复述一次原型,保证不会产生误解,对某些项目的理解会不一样。组长应该从代码编写中脱离出来,专门研究对项目的规范细分,以便充分调用Github上的Issue模块进行规划,PM也是一门很耗费时间精力的工作啊。

软件工程这门课你获得的分数和你花费的时间是远远不成正比的,所以“休闲自在莫入此课,混分好过请往别处”。

下学期建议可以每个组配一个技术大牛做组长,由大牛学习进行PM管理而不编程,其他对编程知识没有基础的进行编程学习,技术大牛可以很好的把握任务量和进度。


四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?

萌芽阶段:

让成员明确地了解团队的目标。正确的目标设定应从整个团队的最终目标开始,然后在成员的参与下,将这一最终目标分解成为一系列相互关联,易于操作的短期目标。

附件:

团队选题报告

团队任务计划

磨合阶段:

让矛盾和分歧充分地暴露,将各种冲突公开化,并且学会倾听、理解和调整。在这一阶段,有时候不得不妥协以让项目向前推进(没有时间去说服每一个人从而得到最优结果)。

附件:

需求规格说明书

系统设计

规范阶段:

成员们就很多事情取得了一致。角色和职责定义得非常清楚。团队还进行过有趣的团队建设活动。

附件:

TAC Alphal 十天冲刺

TAC Alphal 测试工作

TAC Alphal 冲刺总结

TAC Alphal 事后分析

TAC Beta 计划

TAC Beta 七天冲刺

创造阶段:

(1)团队知道为何而战,有共同的远景。

(2)团队的注意力集中到如何创造、实现目标上。

(3)高度自治。不再需要领导的时时教诲与介入。

(4)不同意见仍会发生,但是成员都以一种积极的心态和方式来解决。 团队成员互相支持,互相依赖,而又保持各自的灵活性。

(5)所有人互相都比较了解,同时也互相信任,个人可以放手独立工作。

(6)角色和职责能够根据项目的要求自然地转换,没有人为此担心或发牢骚。在这样的情况下,所有人都能把大部分精力花在工作上。团队士气高涨。

(7)为了集体的利益而改进自己的行为——例如学习新技术,做更好的自我代码复审。

(8)能够避免冲突,并且在冲突发生的时候,能够解决矛盾。

创造阶段的要求有些多,跟我们自己对比以后发现,还是只能满足其中一部分,革命尚未成功,同志仍需努力啊!

附件:

TAC 用户调查报告

TAC 项目宣传文案与推广方案


五、阅读软件工程中关于代码质量的的经典论文,从下列文献中选择一篇或若干篇,结合自己的实际做一个阅读笔记(例如,自己写的代码质量如何,是不是一个大泥球,如何衡量自己代码的质量)?从以下参考论文中选择一篇或若干篇:

参考论文文献:

[1] Stamelos I, Angelis L, Oikonomou A, et al. Code quality analysis in open source software development[J]. Information Systems Journal, 2002, 12(1): 43-60.

这篇论文主要介绍的是关于开源软件开发。开源项目的代码需要是“严格模块化,自包含,自我解释”,由于其他程序员可以自由读取、修改,加快了系统的演化速度。而审核代码质量的关键在于代码是否有注释,编码是否规范以及代码的可扩展性和移植性。


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

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

我们的软件项目链接在下面,在做完后也有招同学进行了用户测试,但由于兼职系统本身所需要的商家和用户两方面局限,还并未开始实际的用户。

附件:TAC 用户调查报告

TAC 项目宣传文案与推广方案

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

项目的规划、需求、设计、实现、发布现在都已经有了,链接在下面,也可以通过燃尽图看出来是有定时的进度发布。





附件:

TAC 兼职平台 项目链接

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

上面有我们项目的链接,下面是我们的下载二维码


七、相处一学期不易,课堂和课程上,我们将就此别过。可惜学生匆匆,时光匆匆,认识和了解的同学却很少。另外我年纪渐长,记忆日衰,会遗憾有时候我连个性或名字都没有记住。写一段话,介绍下你自己吧。

我叫吴宇轩,来自计算机三班。介绍自己的话,嘿嘿,没什么好介绍的,everything is OK.

posted @ 2016-12-30 00:27  wd625  阅读(314)  评论(1编辑  收藏  举报