从结对编程初项目窥团队合作编程

一、  前言:

本次项目要求在个人项目的基础上,两人结对合作,对原有代码进行合作。
在上次的个人项目中,我的队友选择了Python进行开发,而我选择了Java;经过沟通后,这次的结对项目我们选择以Java版本的代码为基础,优化代码,添加模块。

二、  项目介绍:

  1. 项目名称:

    带UI的小初高数学学习软件

    2. 用户:

    小学、初中和高中学生

  3.功能:

    a.用户登陆注册功能和密码管理功能:

      1)用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册;

      2)用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功。密码6-10位,必须含大小写字母和数字。

      3)用户在登录状态下可修改密码,输入正确的原密码,再输入两次相同的新密码后修改密码成功

    b.题目生成和提交批改功能。

      1)密码设置成功后,跳转到选择界面,界面显示小学、初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量;

      2)用户输入题目数量后,生成一张试卷(同一张卷子不能有相同题目,题目全部为选择题),界面显示第一题的题干和四个选项,用户选择四个选项中的一个后提交,界面显示第二题,...,直至最后一题;

       (小初高数学题目参照个人项目)

      3)最后一题提交后,界面显示分数,分数根据答对的百分比计算;用户在分数界面可选择退出或继续做题;

三、  项目模块及改进

  1. 总体:

    由我负责用户界面的编写和发送短信模块的开发;

    队友负责对我个人项目的代码进行补充优化;

  2.登陆模块

    前端:一个窗口

    包含提示的文本,可供用户输入用户名和密码的文本框,用于登录或注册交互的按钮;可以转向注册模块或题目生成模块;

    后端:修改代码,从前端获得用户输入的用户名和密码,与文件中储存的已经注册的用户进行比对,判断能否登陆并返回。

    这一部分代码与个人项目中区别不大,基本没有修改。

  3.注册模块

    前端:两个窗口(发送注册码验证手机号&设置密码)  

    1. 包含提示的文本,可供用户输入手机号和注册码的文本框,用于发送注册码或注册交互的按钮(也包含判断注册码是否正确的逻辑)
    2. 包含提示的文本,可供用户输入密码和确认密码的文本框,用于登录交互的按钮(也包含修改密码是否成功的逻辑)

      可以转向题目生成模块

 后端:主要包含两部分难点:发送短信和存储用户名和密码到文件。发送短信部分由我完成,使用了阿里云的短信发送业务和阿里云提供的 java端的sdk,完成的代码也是根据阿里云提供的demo进行了修改。这一部分在网上有许多相关博客和样例,这里不

      再赘述,感兴趣的读者可以移步。

      由于结对项目本身需求比较简单,以实现为主要目的,涉及的用户量仅以测试为主,所以直接以txt文本格式,不加密直接存储用户名和密码。也是比较基础的采用Java的文本流写入。

  4.题目生成模块

    前端:三个窗口(题目选择,作答,显示结果)

    1. 包含提示的文本,3个选择难度的单选项,可供用户输入题数的文本框,用于修改密码或生成题目交互的按钮(可以转向注册模块修改密码)
    2. 包含提示的文本,4个进行单选按钮,用于更换题目的“上一题”“跳转”“下一题(结束答题)”交互的按钮。(切换题号依靠可输入的消息提示框实现)
    3. 包含提示的文本,用于退出或重新答题交互的按钮。(计算得分的逻辑在前端实现)

    后端:主要部分是生成问题和候选项,而难点在于生成问题后的正确答案的计算。这一部分由我的室友完成。

      生成候选项比较简单,可用的方法也很多,这里采用的方法是,根据正确答案,给其他选项一个浮动值,保证结果与正确答案不会相差太多,增加迷惑性。

      运算结果是根据输入的字符串计算的,通过栈结构,将整个算式分为几部分,从优先级高的部分开始一层层计算;说的简单,解释起来也算比较复杂,还是给出示意图吧;

四、  感想与收获

开发前的工作比开发中的更重要。需要商量的事情有很多:分工、前后端之间接口的约定、代码风格的确认、工作日程的安排…这些应该提前准备的事项越迟做,对项目的完成进度来说也越危险。

原文地址:https://www.cnblogs.com/One-Random/p/11602505.html

时间: 2024-08-28 23:53:19

从结对编程初项目窥团队合作编程的相关文章

结对-贪吃蛇项目-结对项目总结

结对编程项目名称:贪吃蛇 结对编程成员:2015035107052 田兴农 2015035107053王 铖 一.项目功能说明 贪吃蛇游戏:在窗口中有蛇和食物,通过按键控制蛇的上下左右,当蛇吃到食物后蛇的身体加长一节,如果蛇的在移动中蛇头碰到身体,游戏结束.通过Python 和 pygame来实现这个游戏. 二.实现步骤 1.创建一个游戏窗口,设置游戏背景. 2.在窗口中放入蛇,设置蛇的颜色 3.实现人机交互用键盘的方向键来控制蛇的移动,蛇可以向上.下.左.右四个方向移动. 4.在窗口中放入食物

结对编程初涉猎——结对伙伴的代码复审

至此为止,个人作业阶段就结束了,从此便进入团队合作阶段.这次是先从结对编程开始,虽然还没有进入正式的开发状态,但也是结对编程的小开端,同时也是一个复习代码复审这部分内容的过程. 阅读目录 1.题目要求 2.结对体验 3.代码审查表 4.队友代码及优缺点评价 5.个人感想 题目要求 要求: (1). 首先在同学中找一个同伴,范围不限,可以在1~5班中随意组合,建议尽量不要找同组的成员,女同学尽量找男同学结对,但是不做强制要求: (2). 从以往个人完成的项目中选择一个作品,例如:以往的数据结构课程

合作编程

现代软件产业经过了几十年的发展,单枪匹马完成一个软件显然已成为历史,现在的软件都是由合作小组或者大型合作单位一同完成的.两个人一起编辑代码,必须的每个人都能看懂对方的代码. 因此必需得给出一个基准线,要有基本的代码规范和设计规范.首先,不同代码风格也有一个基本的准则,那就是简明.易读.无二义性.其他一些方面也要注意,比如缩进.行宽.括号以及大括号的位置等.一个程序里各个变量和类的名称也有着一些规定,一般已英文原意来代替.最后在某些地方需要用到注释,给的注释不能影响整体的美观,也得要让人看得懂.

使用GitHub进行团队合作

原文: Team Collaboration With GitHub GitHub已经成为的一切开放源码软件的基石.开发人员喜欢它,基于它进行协作,并不断通过它开发令人惊叹的项目.除了??代码托管,GitHub的主要吸引力是使用它作为一个协作开发工具.在本教程中,让我们来看看一些最有用的GitHub的功能,特别是使团队工作更有效率,更高生产力,非常重要的,好玩的那些功能! GitHub和软件合作 有一件事我觉得非常有用的是,可以将GitHub的维基集成到项目的源代码主线上. 本教程假定您已经熟悉

『编程题全队』团队作业5---测试博客

测试部分: 1.在测试过程中总共发现了多少Bug?每个类别的Bug分别为多少个? a.修复的bug b.不能重现的bug c.这个产品就是这样设计的,不是bug: d.没有能力修复,将来也不打算修复: e.这个bug的确应该修复,但是没有时间在这个版本修复,延迟到下一个版本修复. 在功能性测试中 看板任务消失:点击一个任务,在出现特定情况时(任务大小超过看板宽度,并再次点击其他),任务消失.不可重现,属于E类: 看板排序:点击一个任务,任务自动排序到本栏中最下方.可重现,属于C类. BUG类别

软件项目开发团队组员跨项目组兼职案例分析

按照现代项目管理的观点,项目团队是指"项目的中心管理小组,由一群人集合而成并被看作是一个组,他们共同承担项目目标的责任,兼职或者全职地向项目经理进行汇报". 项目团队的特征有: (1)项目团队具有一定的目的 项目团队的使命就是完成某项特定的任务,实现项目的既定目标,满足客户的需求.此外项目利益相关者的需求具有多样性的特征,因此项目团队的目标也具有多元性. (2)项目团队是临时组织 项目团队有明确的生命周期,随着项目的产生而产生,项目任务的完成而结束,即可解散.它是一种临时性的组织. (

团队合作3.0

阅读<构造之法>第6.7章之后,对Scrum,MSF有了更深的了解,也明白了团队开发的模型,对开发具有重要的作用. 内容:  5.Scrum团队成立 5.1 团队名称,团队目标.团队口号.团队照: 5.2 角色分配 产品负责人: 决定开发内容和优先级排序,最大化产品以及开发团队工作的价值. Scrum Master: 负责确保团队遵循 Scrum 的理论.实践和规则.Scrum Master是团队中的服务式领导. PM项目经理:团队的领导, 带领.平衡.推动.激励.目标达成.交涉,平等工作之外

需求方如何选择优秀的项目外包团队?

项目外包,在很多人看来是个很混乱的市场,甚至一些人觉得外包团队是做不好项目的. 百浦科技凭借多年的项目定制开发经验,总结出一些供web项目需求方选择开发方优先考虑的因素: 1.项目团队有没有独立.较复杂项目架构经验.项目团队有没有一个对web项目架构能力比较强的人主导项目.每个web项目都需要web架构师才可能建好项目. 有些项目团队没有架构的概念,自然就做不好项目,或者说做出的项目深度不够很肤浅. 2.项目团队有没有对需求理解 挖掘和把控能力很强的技术人员,就是需求管理.这个在软件行业一般是系

《构建之法》---团队合作

之前学习了两人合作的要点,现在到团队合作了,到底团队合作和两人合作之间存在着怎样的密切关联,就让我们来看看吧. 一个团队,包含的人数至少是多余两个人的,不然就不会叫做团队了,但是团队也并不是只需要几个人就可以了,人数并不是决定是否是一个团队的重要因素.书中举的有关非团队的例子就很有趣且直观.很明显,并不是需要精通于各种技术的"人才"放在一起就行了,还要把这几个人的目标明确下来,这样才有了团队目标.一个团队的成员并不一定要同时工作.团队成员各有各的分工,互相依赖合作,共同完成任务.软件团