Miracle_House  

一、关于源代码管理的10 个问题

1.你的团队的源代码控制在哪里?用的是什么系统?如何处理文件的锁定问题?

  回答:我们团队使用GitHub,采用git的方式进行控制。使用的win7系统。文件没有被锁定,所有人都可以自由签出文件,这种情况大家各自修改自己需要修改的模块

 

2.如何看到这个文件和之前版本的差异? 如何看到代码修改和工作项 (work item),缺陷修复 (bug fix) 的关系。

  回答:点开项目的commit的记录,点击相应的SHA版本哈希值之后可以进入到如下的页面 

 

 

  我们在上面图片里面可以看到的是”+”标注的是在原文件的基础上增加的代码的记录,”-“标注的是在原文件的基础上删掉的代码的部分,颜色显示也不同。 
  其实我们团队是以任务为单位和模块进行的开发,这种开发模式在任务分配之处就已经给该任务提供了描述。 

3.如果某个文件在你签出之后已经被别人修改,并且签入了,那么你在签入你的修改的时候, 如何合并不同的修改(merge)? 你用了什么工具来帮助你?

  回答:先更新本地服务器代码,如果有冲突则对比解决冲突。

4.你有20个文件都是关于同一个功能的修改,你要如何保证这些文件都同时签入成功(修改的原子性),或者同时签入不成功?

  回答:可以在签入之前先查看处理相关冲突的文件,我们组出现过这种情况,处理方法就是当你导入的代码有问题时,去找上传代码的那个队员沟通处理,就能解决这个问题。

5.你的PC 上有关于三个功能的修改, 但是都没有完成,有很多文件处于半完工的状态,这时你要紧急修改一个新的 bug,如何把本地修改放一边,保证在干净的环境中修改这个 bug, 并成功地签入你的修改 --- changelist management。

  回答:这个时候我们只要在本地新建一个分支,然后在新的分支上进行bug的修复就好。当前分支的内容就被保存在原地。

6.规范操作和自动化

    你的团队规定开发者签入的时候要做这些事情:

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

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

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

    请问你的团队有这样的自动化工具让开发者方便地一次性填入所有信息然后提交么?  (高级功能, 代码提交之后, 相关bug 的状态会改动为  “fixed”, 并且有链接指向这次签入。)

  回答:完善中........

7.如何给你的源代码建立分支?

  场景:你们需要做一个演示,所以在演示版本的分支中对各处的代码做了一个临时的修改, 同时,主要的分支还保持原来的计划开发。 你们怎么做到的? 在演示之后,演示版本的有些修改应该合并到主分支中,有些则不用,你们是怎么做到的?

  场景: 你们的软件发布了,有很多用户,一天,一个用户报告了一个问题,但是他们是用某个老版本,而且没有条件更新到最新版本。 这时候,你如何在本地构建一个老版本的软件,并试图重现那个问题? 

  回答:

  对于场景1:以Github为例,打分支,有条件地合并分支和主分支。

  对于场景2:新建一个分支,在这个分支上,回滚到用户所用的版本。

8.一个源文件,如何知道它的每一行都是什么时候签入的,为了什么目的签入的 (解决了哪个任务,或者哪个bug)?

  回答:根据交付信息来知道它是什么时候签入的,为什么签入的,在我们签入的时候,会有签入的时间,后面的备注会写着什么目的签入的。

  每一次的任务都会被pm提前打上标签,而且在最后的签入的时候会有commit的记录保留,所以每一次的提交都可谓是目的明确,特征显著。至于“追责”问题,github上面有每一次的每一个人的提交的记录,对应着非常容易找到相关负责人。 

 

9.如何给一个系统的所有源文件都打上标签,这样别人可以同步所有有这个标签的文件版本?

  回答:可以在 Last know Good版本时建立分支,需要的时候从最后一个Last know Good版本导出。

10.你的项目的源代码和测试这些代码的单元测试,以及其他测试脚本都是放在一起的么? 修改源代码会确保相应的测试也更新么?你的团队是否能部署自动构建的任务?

  回答:完善中.........

  

二、文档准备

 验收之前,本项目组已准备好以下几类文档:

1)  开发总结文档

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

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

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

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

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

github上传记录:

 

 

github链接:https://github.com/cy0325/Team_work

三、项目验收过程

1.项目汇报

  由老师担任主持人,项目组长或主要技术人员进行PPT讲解,汇报本项目的项目背景、开发过程、功能简介、工作总结,并对本系统进行演示,由老师和其他同学对本项目进行提问,该团队成员进行解答,在此同时,老师根据项目讲解情况、项目完成度以及答疑情况对本项目进行评分。

2.项目验收

  在此之间,我们已完善并整理好需求分析说明书、系统设计方案说明书、系统测试文档、实施文档、会议记录、项目总结文档等重要文档,完成项目软件系统演示前准备工作,并准备好项目验收意见表、验收会议名单及验收会议议程。

  本次项目验收会议成员为Just Do IT !团队和本团队的全体成员,先有本项目做工作汇报和总结,接着,本团队主要技术人员进行系统实现过程简述和系统演示,这些工作结束以后,由Just Do IT团队进行提问,本项目成员解答,最后由Just Do IT团队的组长填写项目验收意见表,验收项主要包括系统安装和运行、系统功能以及系统开发文档。

四、站立会议场景

 

 

五、任务分工

 

具体任务

工作量比例

完成时间 

汝春瑞

 1.撰写过程文档

 2.验收会议名单及验收会议议程

 3.撰写最终博文

 17%

 4h

曹   阳

 1.Beta冲刺二

 2.撰写总结文档

 3.制作PPT

 17%

 4h

梁玉龙

 1.项目软件系统演示前准备工作

 2.撰写实施文档

 17%

 4.5h

丁炜轩

 1.Beta冲刺四 

 2.撰写测试文档

 3.整理文档

 16%

 3.5h

赵红波

 1.Beta冲刺一

 2.撰写实施文档

 3.回答源代码管理的10 个问题

 17%

  4h

傅   康

 1.Beta冲刺三

 2.撰写测试文档

 3.项目验收意见表

 16%

 3.5h

 

六、实验心得

汝春瑞

  提高软件知识和技术只是问题的表面,本质是要提高自己认识问题、分析问题、解决问题的思想高度。软件专业知识的很多方法和原理,可以很容易地延伸、应用到生活的其它方面。

  在能胜任工作的基础上,立即去涉猎其它领域的专业知识,丰富自己的知识体系、提高自己的综合素质,尤其是那些目标不在技术方面的朋友。  

曹   阳

  理论与实践并重,内外双修。工程师的内涵是:以工程师的眼光观察、分析事物和世界。一个合格的软件工程师,是真正理解了软件产品的本质及软件产品研发的思想精髓的人(个人观点、欢迎探讨)。掌握软件开发语言、应用语言工具解决工作中的具体问题、完成目标任务是软件工程师的主要工作,但从软件工程师这个角度来看,这只是外在的东西,并非重要的、本质的工作。学习、掌握软件产品开发理论知识、软件开发方法论,并在实践中理解、应用软件产品的分析、设计、实现思想来解决具体的软件产品研发问题,才是真正的软件工程师的工作。

梁玉龙

  不要仅局限于对某项技术的表面使用上,哪怕你只是偶尔用一、二次。“对任何事物不究就里”是任何行业的工程师所不应该具备的素质。开发windows应用程序,看看windows程序的设计、加载、执行原理,分析一下pe文件格式,试试用sdk开发从头开发一个windows应用程序;用vc++、delphi、java、net开发应用程序,花时间去研究一下mfc、vcl、j2ee、net它们框架设计或者源码;除了会用j2ee、jboss、spring、hibernate等等优秀的开源产品或者框架,抽空看看大师们是如何抽象、分析、设计和实现那些类似问题的通用解决方案的。

丁炜轩

  养成总结与反思的习惯,并有意识地提炼日常工作成果,形成自己的个人源码库、解决某类问题的通用系统体系结构、甚至进化为框架。众所周知,对软件开发人员而言,有、无经验的一个显著区别是:无经验者完成任何任务时都从头开始,而有经验者往往通过重组自己的可复用模块、类库来解决问题(其实这个结论不应该被局限在软件开发领域、可以延伸到很多方面)。这并不是说,所有可复用的东西都必须自己实现,别人成熟的通过测试的成果也可以收集、整理、集成到自己的知识库中。

赵红波

  一学期的时间很快就过去了,回顾这学期的学习,和伙伴们把一个系统从无到有的实现,有着满满的自豪感。虽然其中也遇到了困难,但在解决困难时让我们成长了许多。我们学会了和同伴怎样去合作,去交流,知道了理论与实践并重,内外双修的重要性。我们要站在成熟理论与可靠方法论的高度思考、分析、解决问题,并在具体实践中验证和修正这些思想与方式,最终形成自己的理论体系和实用方法论。

傅   康

  软件开发团队中,技术不是万能的,但没有技术是万万不能的!在技术型团队中,技术与人品同等重要,当然长相也比较重要哈,尤其在女生比较多的团队中。在软件项目团队中,技术水平是受人重视和尊重的重要砝码。无论你是做管理、系统分析、设计、编码,还是产品管理、测试、文档、实施、维护,多少你都要有技术基础。

  

组长总结

  匆匆忙忙,本学期接近尾声,在软件工程学习过程中,有各种文档需要写,各种设计图需要画,每周总有那么几天要在百忙之中挤出时间写博客的辛酸,同样也有许多值得回味的地方,团队成员协作交流,共同解决困难,学习中成长的快乐,也有许多经验值得吸收,一学期中,在老师和助教的指导和帮助下,我们努力学习,刻苦钻研,按时完成本项目,有进步,有不足,总之,学习本课程我们每个人都受益匪浅,感谢老师的良苦用心和耐心栽培!

 

posted on 2018-06-29 21:15  Miracle-House  阅读(533)  评论(5编辑  收藏  举报