天天看点

第三次作业

031302328 031302221

功能分析

这次的实验要求是将初始的排课excel空表导入系统,再将其展现在你们设计的原型里。 这个功能其实分为两步:

1 将初始排课表解析出来,并发送到服务端,插入到数据库中;

2 从服务器上请求排课数据并显示在 web或APP的界面里。

实现思路

根据第一次小组结对编程对需求分析及实现的方式,我们小组打算用APP实现这个功能。

  • 在APP的布局上面提供一个Import的按钮和一个Display的按钮。
  • 当点击Import按钮的时候,就能够进行存储路径的选择,从而选择相对应的Excel表格,得到Excel的路径。根据这个路径将Excel表格数据解析出来,再将其存入到系统数据库当中。对于Excel数据的解析,我们采用网上的开源的包Jxl,按行解析出数据。数据解析出来之后,接下来就是将数据按照一定的规则存入到数据库当中。存储成功失败都会进行提示。
第三次作业
第三次作业
  • 当点击Display时,可以实现对数据的呈现,这里的数据是从之前存在服务器上面获取下来的,获取下来采取ListView对数据进行展示。并且显示只显示出简略的信息,当点击后会出现详细信息的页面。
第三次作业
第三次作业
  • 由于这次开发考虑到服务器并不需要很强的拓展能力,只需要对数据进行插入删除。因此我们队选择了Bmob后端云进行开发,它开发方便快捷,而且简单易学,并且省去了购买服务器和搭建服务器的时间。
  • 这是在后台的数据
    第三次作业

数据库设计的考量

这次的实验要求是要初始的排课excel空表导入系统,再展现在设计好的原型里。

  • 考虑到本次的实验要求只是实现这个功能,不考虑后续细节的可拓展性和全面性的要求,我们只是单纯建了一张Course表格,为了Excel导入的方便,表格的表头按照排课表设计。
  • 考虑到课程名字的唯一性,我们将课程名定为Primary key,这样做的好处就是防止多次导入,导致数据库出现一些重复无用的数据。对数据库的设计采用PowerDesigner软件设计,具体的设计过程已在“使用PowerDesigner创建表并导入到数据”这篇随笔当中写出链接

psp表格

PSP2.1 Personal Software Process Stages Time
Planning 计划 5
· Estimate · 估计这个任务需要多少时间
Development 开发 70
· Analysis · 需求分析 (包括学习新技术) 15
· Design Spec · 生成设计文档
· Design Review · 设计复审 (和同事审核设计文档) 2
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 10
· Design · 具体设计
· Coding · 具体编码 20
· Code Review · 代码复审
· Test · 测试(自我测试,修改代码,提交修改) 3
Reporting 报告 25
Test Report · 测试报告
Size Measurement · 计算工作量
Postmortem 事后总结
Process Improvement Plan 并提出过程改进计划
合计 100

源码Github链接以及Github上的commit的日志链接

日志:

第三次作业

结对照片

第三次作业
第三次作业

结对经历小结

通过两次的结对编程,真是受益匪浅,过程是艰难的,但更多的是享受。

结对编程过程中感受到的结对编程带来的好处:

  • 众人拾柴火焰高。两个人分工协作,在一定程度上会减轻个人的工作量,遇到问题时,两个人可以一起去解决,加快了问题的解决速度。
  • 合作中互相学习,共同进步。在合作的过程中,会自觉或不自觉受到队友的影响,慢慢改进自己的编码风格,解决问题的视角和能力,就算是给队友提供帮助的过程当中,自己的能力也能得到锻炼。
  • 休息的时候可以一起聊聊天。劳逸结合,当敲累的时候,停下来休息的时候,可以和队友交流经验,就算聊得云里雾里的,也是很好的放松方式。

结对编程过程中遇到的困难:

  • 编程工具的不统一。就拿开发Android来讲,两个人之前各自搭建的Android环境不同,一人是Eclipse,另外一人是Android Stdio,这就得要有一方重新搭建,不然在git hub上面就很难实现增量开发模式。
  • 代码的编写习惯不一样。两人共同去完成一个项目,编写习惯存在着太过于大的差异就容易导致代码后续阅读的艰难。
  • 编码经验存在差异。这导致任务分配完后,真正的实现时间比预计时间来得长,分析如下:因为是两人共同完成,很多情况下当甲完成a部分,乙完成b部分,甲才能继续做c部分,这个时候如果乙相对甲经验不足,容易导致甲处于空等待状态,降低了效率。

本次程序的不足:

  • UI不够优化,都是从简做的。
  • 对于用户的错误操作没有考虑周全。
  • 用户体验不够好,向服务端发出请求时出现等待的时间没有提醒。
  • 后面这段时间会继续优化。