最终作业

摘要:
由于各种原因,当提交截止日期到来时,我们小组的项目处于不可用状态。个人作业应尽可能控制在1000行代码以下,以减少作业难度和学习单元测试和性能优化的空余时间。产品的初始版本在alpha版本阶段完成,beta版本改进了产品以修复某些bug。最终版本已经迭代了13次,以完成产品的1.1.3版本和产品下载链接。

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

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

我开篇博客写的对课程的目标和期待是:让我学到有用的东西。在这学期的课程中,我经历了从个人作业到结对作业再到团队协作,在团队中获得了一些后端开发经验。不管从哪个方面,这门实践性很强的课程都让我学到了我认为有用的东西,除了开发经验还有团队协作等等。有一点遗憾的地方是感觉开发方面学习还是不够深入。

2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
1、统计一下,你在这门软件工程实践中,完成了多少行的代码

个人作业加上结对作业写了1061行,团队项目部分完成1300行左右。

2、软工实践的各次作业分别花了多少时间(min)?(做一个列表)
个人项目结对项目1结对项目2uml设计Alpha现场编程Beta项目测评
1300156018903003600600840180
3、哪一次作业让你印象最深刻?为什么?

现场编程实战。因为种种原因我们组在作业截止提交的时候项目处于不能用的状态。于是和pm两人干脆在活动室通宵重做并完成了抽奖系统。因为软工实践才知道福大清晨六点是没有太阳的。

4、累计花了多少个小时在软工实践上?平均每周花多少个小时?同时贴出开篇博客“你打算平均每周拿出多少个小时用在这门课上”的回答

上面列举的作业时长达到了170个小时,算上各种各样的团队作业,估计有200个小时以上。以16周来算的话平均每周花12.5个小时以上。在开篇博客里我说过我不知道课程难度,会尽量花时间在上面,看情况调整。现在看来难度大大超出了我的预期,我感觉我基本上每天都为软工奔波。

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

原型:Axure RP 8、墨刀
建模:StarUML、 ProcessOn
数据分析:NodeXL
后端开发:Android Studio、Eclipse、Eclipse for javaee、IntelliJ IDEA

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

WinSCP:远程连接服务器

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

说掌握是远远不够的,只能说刚刚入门
Java:一开始连java环境都没有,结果软工和编译作业让我硬是写了一学期的java
Git:还是很不熟练

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

个人项目部分:
单元测试、代码性能测试、代码覆盖率
结对项目部分:
设计原型、使用python简单爬虫、使用数据分析软件将数据可视化
团队项目部分:
需求分析流程、各种UML图、软件评测

9、其他方面的提升。

抗压能力增强

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

团队效率最大化。
1.Beta版本由于实验班有考试所以比其他队友晚一点投入beta冲刺,然而知识学习等方面对接有距离,后端部分分配任务也不合理,导致我写了一堆代码结果没有用,因为队友已经写完同一个功能了,虽然pm安慰我说至少学习到了新知识,但是对于团队工作进度贡献基本没有实在是令人失落。在团队中还是尽可能使自己的作用发挥到最大。
2.现场编程由于环境问题跟课程冲突,几个队友花了很长时间结果无法完成项目,于是换人重新开始做。直接把可以并行合作的项目的时间线拉成串行。
软工终于结束了,当初柯老板跟我说“不要两个人做同一件事”,虽然尽量避免不做同一件事,但是还是踩了这些坑。

三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,对于同期的TA们,对于后来的学弟学妹:

1)你有什么想建议、告知和期许想要告诉他们呢?

实验班的学弟学妹,这学期真的非常辛苦,加油!不过好像下一届这门课变成必修了。
如果选了这门课,希望你们能认真完成这门课,划水跟参与实际上花的时间都很多,不如让这些时间变得更有价值。不过这就意味着大部分休息时间要用来打软工orz

2)特别地,特别地,下一届要不要中途换队员(强制的、彻底的从一队换到另一队)?假设依旧是一个90+人数的大班

强制感觉没必要,看另一个班强制换队是在alpha版本结束后,感觉强制换队好像只是增加了没换队的队员的工作量,磨合和学习也需要时间,这个时间可能赶不上新组的进度。

3)身在一个格外大的班级,竞争强劲,你认为一个组的人数应当在多少比较合适?

7人。一个pm,两个后端,两个前端,两个机动。感觉很多事情两个人更好沟通。最好都有经验。

4)个人/结对/团队作业应该控制在怎样的规模?

个人作业尽量控制在1000行代码以下,减少一点作业难度,把时间空给学习单元测试、优化性能上。
结对作业第一阶段原型设计需求分析那些自由发挥吧,第二阶段虽然说是两个人,但是又要爬虫又要写代码分析内容的还有附加功能感觉有点变态了,呜呜呜,最好少加一些需要另外花时间学习的需求。
团队作业这个看哪组的饼画的比较大了,这个控制不了

5)这学期下来,你最感谢的人是谁?有什么话想要对TA说呢?

有很多想感谢的人,比如说我的队友,比如说允许我换队的柯大大,比如说我偶尔麻烦一下的助教等等等等。最感谢的人是我自己,感谢进入实验班的自己,给了自己一个这么锻炼人的机会(哭了。
什么话想要对TA说呢:快去复习啊!

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

萌芽阶段:我好像没有经历他们的萌芽阶段,因为我是在他们比较熟悉之后才加入这个团队的。我是在进入这个团队之后很快就适应了新组。
磨合阶段:Alpha版本以及各次的团队作业,pm也很多次在讨论群严肃提出了一些问题,大家都很好地接受并纠正了。
规范阶段:从Alpha版本中后期开始应该处于规范阶段。影响比较深刻的是在Alpha答辩之后更加规范了代码格式,并且使用git进行协作了。
创造阶段:不知道pm怎么想,我是觉得还不够哦。

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

前三点组内共享。

1) 研发出符合用户需求的软件
  1. 我们的产品在开发前做过一次市场调研问卷调查(样本容量:线上93+线下110=203份),并完成了我们的记忆罐头商业企划书。其中包括用户对我们产品功能的反馈饼状图,我们产品功能十分符合用户需求

需求展示最终作业第1张

  1. 在完成产品后我们邀请了86位用户进行内测试用我们的记忆罐头,并且收集了用户反馈问卷。

体验指数展示最终作业第2张

期待指数展示最终作业第3张

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

我们团队在软件工程实践课程的机会之下,通过团队合作完成了产品记忆罐头!分别在Alpha版本阶段完成产品的初始版本,Beta版本完善产品进行一定的bug修复,最终版本已经迭代13次完成产品的1.1.3版本,产品下载链接

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

现软件的可维护性和是否可继续发展通过上面的用户反馈问卷截图便能看出。

体验指数展示最终作业第2张

期待指数展示最终作业第3张

用户需求期待指数超过4分的比例在70%以上,证明我们的产品是可维护和可持续发展的。
并且产品具有十分可观的盈利方式和前景,对不同手机(三星华为Oppo)应用市场的在线付费壁纸做了一个简单的调研:

三星付费壁纸
最终作业第6张

华为付费壁纸
最终作业第7张

Oppo付费壁纸
最终作业第8张

盈利点

可以看出,我们的核心创新点锁屏壁纸展示如果能够达到美观、友好的前提下,还能展示出用户的备忘内容,那么便完全可以借助于付费壁纸已经广为人知的免推广的天然优势!!!在每种壁纸单价较为廉价的模式下,提高用户购买欲,相信可以很快的抢占付费壁纸的一块市场,这样也为后续的开发提供了条件和盈利希望。当然,这一切都需要在能够解决生成美观壁纸展示备忘的这一难点的前提下。也正所谓难点即卖点!

4)对着这个检查表:http://xinz.cnblogs.com/p/3852177.html 检查一下,自己如果去企业面试,这些常见的问题是否都能回答,并在此总结。

在这个疲惫的一学期里,有时候会想不如直接去找工作算了,读什么书呢,考完看了这份检查表觉得自己还是太天真了。本想写完所有回答贴出来,写到第四个问题软件测试就写不下去了,就算经历了一学期的软工实践,我感觉我的项目经验还是太少太少,对这些所谓的常见问题百分之七十目前是无法回答的,剩下能回答的也没有足够自信。我会继续努力,希望能慢慢充实这张检查表。

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

差点就有照片了,本来在学校的最后一天想让pm请客吃饭的,奈何不少队友有uml作业就没聚在一起。希望404的大家寒假快乐吧~

免责声明:文章转载自《最终作业》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux程序调试GDB——数据查看python---硬件序列号下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

禅道项目管理软件配置及使用教程

一.禅道安装及运行 禅道是一款开源项目管理软件。它集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体,是一款专业的研发项目管理软件,完整覆盖了研发项目管理的核心流程。 禅道将产品、项目、测试这三者的概念明确分开,产品人员、开发团队、测试人员,这三者分立,互相配合,又互相制约,通过需求、任务、bug来进行交相互动,最终通过项目拿到合格的产品。...

Android 4.4-7.0 apk的更新换代策略

(一)Android 4.4 使用的是Dalvik虚拟机配合JIT (just in time)即时编译器,当app运行时,JIT编译器对新类进行编译,生成原生型指令码,这样在下次执行时相同逻辑就会速度更快。 JIT优点 :安装速度快占用空间小 JIT缺点:运行时编译开销大,容易造成卡顿,也就是以前生成apk的时候会很卡顿很慢。           (二...

iOS企业级应用打包与部署

>iOS企业级的打包与部署相关小细节记录,主要是记录下plist文件的格式,便于以后使用的时候方便的找到。<!--more--> iOS企业级打包的相关前提: 1. 一个企业级iOS开发者账号。 2. 申请发布证书xxx_distribute.cer(主证书) 3. 申请企业打包发布证书xxx_distribute.provision(副...

怎么恢复win8的开始菜单

Win8迷:Windows 8已经取消了经典的开始菜单取代的是Metro界面,关于取消“开始菜单”的争议声就没有停止过,微软不会打算把“开始菜单”回归了,这让很多用户不能习惯,例如:关机按钮都找不到。一些用户可能会因没了“开始菜单”而放弃Windows 8?但这不要紧,因为不少开发人员自己动手开发了“开始菜单”软件,帮助用户在Windows 8上使用熟悉的开...

用例设计

1.支付用例: 金额框填写校验:只能是数字/小数点两位/金额为空/边界值校验:大于小于等于负数 支付方式:余额(余额不足)/第三方支付:密码填写错误/未安装第三方支付app→跳转或者提示/转账汇款:填写银行卡,信用卡的校验/支付方式空时提交 其他:部分支付/补缴支付/重复支付(避免:未返回前不能再次点击支付loading) 安全:修改支付金额或者支付方式后...

编程王道,唯“慢”不破

原文地址 人和人之间编程速度的差异还是很大的,有的程序猿写代码非常快,有的却常常是龟速。Jeffrey Ventrella 最近在一篇文章里探讨了这种编程速度的差异,他是绝对的龟速派代表,来看看他对编程速度的看法: 我爸常跟我说的一句话是,慢一点码,才能快点把程序写完。 我在旧金山很多家互联网公司工作过,现在已经 52 岁了,对于程序猿这个职业来说,我的年...