结对编程
031302513 钱仁法 031302523 吴炜坤
1、功能分析
(1)将初始排课表导入系统数据库。对此我们需要将排课表导入数据库,并将App连接数据库
(2)将系统数据库的排课数据 显示在 web或APP的界面里。我们小组设计的是App,在这个功能上我们需要将数据库里的文件导入到我们的App并提供显示
2、实现思路
讲到实现思路,按我们的想法来思量就是考虑如何实现上述的功能,即是我们在实现上面的功能时具体的过程、使用的方式。对于将初始排课表导入系统数据库,由于时间有限、并且我与队友的android基础都是较为薄弱,所以在这次的实现过程我们就选择使用android自带的sqlite数据库来实现上述功能。在后面的时间内我们将尝试通过搭建服务端数据库来实现对这些功能的支撑。
分工----
我负责:(1)系统界面的设计(2)将数据库中的数据导出并显示在系统界面上
我的队友负责:(1)数据库的设计 (2)将表格数据导入到系统数据库中
3、数据库设计
数据库设计采用PowerDesigner,这一模块是我们共同设计,然后由队友来完成,根据与他的操作发现在设计表间关系的时候外键设置比较容易出现忽略性错误。按照我们原本的构想预计用服务端完成这次任务,一开始他还尝试生成SQL Server数据库,发现可以通过手动更改PowerDesigner 生成的sql语句来完成数据库中表的生成,这对我们之后改进有一定奠基。 初始构想的数据库间表的关系如下图所示: 由于此次只实现开课计划表的导入与显示,所以其它表可以不用生成,留待以后按需求再进行更改。
4、PSP表格
通过阅读《构件之法》第二章我们粗浅地了解了一下PSP个人软件过程的内容,暂且先简单地按照书上的表格做出如下情况表
5、源码的Github链接
https://github.com/AutooCS/CourseManagement
6、Github上的commit的日志
7、结对小结
通过这次的结对编程,我稍微了解到开发android的一个小过程,积累了一定的经验,毕竟自己的水准现在还是算不入流的小菜鸟,所以很多方面都做到并不是很到位,或者可以说是还很不合格,不过也正是因为如此,我所体会到的更加深刻。在实践的过程中同时也加深了对书本中理论知识的理解。在这次实践的过程中,和队友分配好各自的工作量,在遇到问题时能互相探讨,共同解决问题,这让我明白了团队协作在开发一个项目的过程中的重要性。在代码实现方面,我们分配了各自所要完成的模块后,各自去进行学习,在不同的时间段,轮流当主程序员,结对。实现过程中遇到的问题,一起努力解决,过程让我既感觉紧凑紧张,又让人有种身心投入的感觉。
当然实践遇到了许许多多的问题,我负责界面设计,一开始我的界面是采用表格形式来体现,但随着逐步深入,我在编写数据库数据导出以及显示的时候发现这种形式的写法有种让人难有着手点的感觉。这主要应该是因为自己水平比较低吧,实践过的项目太少,知识经验储备不足。因为要使得每个表格能不被堆挤,所以我采用relativeLayout中嵌套TableRow,这个方法我并不熟悉主要是借鉴网络上的经验,所以在后面想要给获取表格信息显示我都无从下手。所以后来我有赶工简陋地做了一个ListView界面,不得不说这用起来实在是方便多了,困扰我许久的难题也有了头绪,虽然最终我还是未能完全实现,不过我相信只需多余一天便有把握能完成。
另一点让我感觉很是纠结就是GItHub的代码的push,不知道是我的本机问题还是什么,这暂时我还没有着手去解决。一次在pull下我队友的代码后要补充自己的代码交上去,结果一直没有成功,最后我手贱的用了强制覆盖的命令,结果把队友的一次commit给覆盖掉了。中途由于各种原因没有着手去解决这个问题,深入了解Git,最后的界面修改这些内容我还直接拷到队友电脑让队友帮我git上去。看来必须得好好学习一下git,不然以后的代码实现就会困难重重。