团队作业8—团队项目用户验收评审

一、源代码管理的10 个实践问题:

1. 你的团队的源代码控制在哪里?用的是什么系统?如何处理文件的锁定问题? 
   我们团队项目的源代码在GitHub上托管,用git控制代码版本,我们用的是win10系统。在这个项目上,由于我们的项目比较小,为了最大化效率,对文件没有锁定,可以自由的对文件修改以及迁入迁出。
  
2. 如何看到这个文件和之前版本的差异? 如何看到代码修改和工作项 (work item),缺陷修复 (bug fix) 的关系。
  在本地上传自己的文件到分支之后也可以查看自己或者是别人上传的文件在以前的版本的基础上,修改了哪些地方。 
  
同时点开项目的commit的记录,点击相应的SHA版本哈希值之后可以进入到如下的页面 
  

从上面图片里面可以看到的是”+”标注的是在原文件的基础上增加的代码的记录。

3. 如果某个文件在你签出之后已经被别人修改,并且签入了,那么你在签入你的修改的时候, 如何合并不同的修改(merge)?你用了什么工具来帮助你?
  在Git中执行合并即可自动合并Git修改的部分,当出现冲突时,我们可以手动解决,用不同的颜色对文件的不同状态作出修改。
4. 你有20个文件都是关于同一个功能的修改,你要如何保证这些文件都同时签入成功(修改的原子性),或者同时签入不成功?
  在签入之前,一定要先对比处理有冲突的文件。在本地仓库中修改的文件都要统一经过commit为新的本地版本后,再push至远程分支。这保障了本地修改提交的原子性,同时git服务器远程提供的修改操作也具有原子性,这样就保障了整体修改的原子性。
5. 你的PC 上有关于三个功能的修改, 但是都没有完成,有很多文件处于半完工的状态,这时你要紧急修改一个新的 bug,如何把本地修改放一边,保证在干净的环境中修改这个 bug, 并成功地签入你的修改 --- changelist management。
  在本地克隆一个分支,然后在该分支上修改bug。
6. 规范操作和自动化
团队规定开发者签入的时候要做的事情:

    - 运行单元测试,相关的代码质量测试

    - 代码复审 (要有别的员工的名字)

    - 和这次签入相关的issue 编号, 任务/task, 缺陷/bug 编号,等等, 以备查询。

7. 如何给你的源代码建立分支?
  新建一个分支在这个分支上,回滚到用户所用的版本,也可以采用github上的版本回退的机制,这样,我们就可以利用这种机制进行版本的控制和管理,进行记录。
8. 一个源文件,如何知道它的每一行都是什么时候签入的,为了什么目的签入的 (解决了哪个任务,或者哪个bug)?
  对于团队来讲每一次的任务都会被提前打上标签,而且在最后的签入的时候会有commit的记录保留,github上面有每一次的每一个人的提交的记录,对应着非常容易找到相关负责人。 
  
9. 如何给一个系统的所有源文件都打上标签,这样别人可以同步所有有这个标签的文件版本?
  代码是一步步在完善的,每一次提交的代码都是在前面的基础上加以完善,可以在每次提交的时候建立分支,最后选择最近一次的提交的源文件,这样大家就可以同步。
10. 你的项目的源代码和测试这些代码的单元测试,以及其他测试脚本都是放在一起的么? 修改源代码会确保相应的测试也更新么?你的团队是否能部署自动构建的任务?
  源代码和测试这些代码的单元测试,以及其他测试脚本没有放在一起的,因为这样更方面进行管理。 至于测试的更新方面,还没有完成, 自动构建的任务则也没有能部署。在后期的项目完善中,会将进行改进。
 二、项目验收准备工作

1.文档准备: 验收之前,准备好以下几类文档:

1)  开发总结文档

2)   需求文档:包括需求规格说明书,需求变更文档等

3)   设计文档:包括概要设计,详细设计,数据库设计等

4)   测试文档:包括测试方案,内部测试报告,第三方测试报告等

5)   实施文档:包括实施,部署方案,用户手册,维护手册等

6)   过程文档:包括项目周报,会议纪要等

2.项目概况ppt准备

项目概况ppt包括以下几个部分: 

1) 项目背景和简介

2) 合同执行情况汇报

3)开发过程:记录项目开发过程中的一些重要事件

4) 系统功能简介

5)项目应用成果展望

  

GitHub地址:https://github.com/gzyt/SRS

三、项目验收过程

 1.项目汇报

  老师担任主持人,项目组长对自己团队项目进行ppt讲解,最后由老师与兄弟团队进行项目提问,团队成员进行答辩,老师最后根据答辩情况进行团队打分。

 2.项目验收

   首先,将项目验收所需的所有文档,项目需求说明书,项目设计说明书,项目操作手册等 ,并准备项目项目验收表,然后按照会议流程,由开拓者团队组长担任项目主持人,然后我们团队进行项目答辩与项目演示,最后,由开拓者团队填写项目验收意见表,完成项目验收。

四、团队探讨场景

五、任务分工

团队成员 具体分工 工作比重
周甜甜 软件项目文档编写及博客撰写 25%
李蕾 后台文章管理功能测试及测试文档编写 24%
张海鑫 后台人员管理功能测试及项目ppt制作 24%
张天旭 总结文档与用户手册编写及博客撰写 27%

六、实验心得

  李蕾一学期的软件工程课结束了,收获了很多,老师独特的教学方法不仅从理论上教会了我们软件工程的知识,而且通过一步一步的实践来深入的理解软件工程的意义,让我们懂得软件工程的思想,以及在完成一个软件开发的过程中需要学到的东西。最关键的是懂得了团队建设的重要性,懂得了在团队中一加一大于二,在合作的过程中团队协作是多么的重要,各个成员分工合作,认真完成自己的工作是对整个团队最重要的贡献。相信软件工程的思想会给我以后的工作提供很多的帮助。

  周甜甜通过一学期的软件工程的学习,我学到了许多有关项目开发方面的经验以及知识。我们从刚开始的个人项目开始,再到两个人结对项目以及最后的小组项目,是一个成长的过程,我们从最初的无项目经验到最后的能够熟悉项目开发中的每一个流程,真的是收获了许多。老师对我们的耐心指导,我们小组成员之间的分工合作,团结协作,让我们认识到团队合作在项目开发中重要性,非常感谢老师和同学们这学期的陪伴!

  张海鑫通过一学期软件工程课程的系统学习,我学到了许多有关项目开发方面的经验以及知识,收获颇丰。在此非常感谢邹欣老师以及代祖华老师的悉心指导,代老师独特的教学方法不仅从理论上教会了我们软件工程的知识,而且通过一步一步的实践来使我们更加深入的理解软件工程的意义,使我们懂得软件工程的思想,以及在完成一个软件开发的过程中需要学到的东西。我们从刚开始的个人项目开始,再到两个人结对项目以及最后的小组项目,是一个成长的过程,我们从最初的无项目经验到最后的能够熟悉项目开发中的每一个流程,真的是收获了许多。相信软件工程的思想会给我们以后的工作带来很多的帮助。

  总结陈述:此次项目开发的过程,基本严格按照一个商业项目的开发流程来进行,从刚开始的项目立意,项目需求的调查与分析,还有之后的项目软件设计方案的设定与书写,以及之后不断地去完善项目设计方案书,虽然这期间花费大量的时间,却一直未开始项目的研发,但这也是软件工程的特色,它完美的将软件研发规范化,它为我们的开发提供了保障,在充分的项目方案设计的完善过程中,可以避免平时一边想一边做所出现的弊端,也可在一定程度上减少研发的时间。在本次项目开发的过程中,也非常的感谢我的队友,可以在我遇到思考瓶颈的时候,给我一个比较新颖的想法,也感谢他们在此次软件开发的过程中软件开发代码与软件测试及方案设计的贡献,与他们的合作让我切身感受到了团队合作的重要性与其开发的高效性。

原文地址:https://www.cnblogs.com/lztxh/p/9247856.html