狠狠撸

狠狠撸Share a Scribd company logo
软件项目管理与团队合作射手培训课程He Shiming2010-7SPlayer.org (射手科技)
软件项目的计划与设计项目开发的方法学(Methodology)项目版本管理与Subversion(SVN)代码规范(Coding Style)和编程规则(Programming Rules)代码度量(Code Metrics)代码复查(Code Review)项目开发流程本课涉及…SPlayer.org (射手科技)
软件项目的计划与设计软件项目从何而来,它是如何被计划和设计的SPlayer.org (射手科技)
来源于人的思想用于解决或改进实际问题将教学上的幻灯片电子化(Microsoft PowerPoint)自由地进行照片编辑(Adobe Photoshop)改善上网经历的网页浏览器(Google Chrome)在商业上有前景软件项目从何而来SPlayer.org (射手科技)
一个实际问题,可能有多种解释方法,多种实现手段设计是一个确定该实际问题的最终解释方法(捕捉用户需求),最终表现形式(设定产物规格),和最终实现手段(设定开发计划)的过程设计师通过自己的经验,判断用户需求的最佳捕捉方式,最佳表现形式,和制定最有效率的开发计划软件项目如何被设计SPlayer.org (射手科技)
项目开发中的方法学(Methodology)方法学存在的意义SPlayer.org (射手科技)
方法学是针对软件项目开发中所遇到问题,根据前人经验所总结形成的方法、规范和流程定义方法学是团队合作的基本依据方法学能在一定程度上提供对项目进度的预测,和对人力、财务需求的估计方法学存在的意义SPlayer.org (射手科技)
?Water-fall思想,主张将开发工作总结为这样一个,带有次序和依赖性的模式,每一步都是系统级的:需求->设计->实现->测试->发布->维护?Agile思想主张不以完成整体系统设计为早期目标,转而快速进行原形开发,快速提供一个缺乏功能、带有缺陷的原形,而在其上通过一次又一次的循环,逐步进行设计、实现和测试常用方法学SPlayer.org (射手科技)
项目版本管理与Subversion(SVN)什么是版本管理,为何要进行版本管理SPlayer.org (射手科技)
项目开发活动每天都在进行,由多人参与,无法保证任何时间点所有人手边的项目代码(work copy)都没有错误有时一个任务在开始很久之后,才决定要修改设计,可能需要将当前项目还原(revert)到任务开始之前多个功能在同时开发,没有版本管理时,必须互相拷贝各自所负责的代码文件,某个人的失误可能导致整个项目出错进行版本管理能避免重大和不可逆的失误SPlayer.org (射手科技)
每隔一个阶段,将所有工程文件和代码复制,按照时间留拷贝操作繁琐不解决多人协作的问题不解决项目进度跟踪的问题原始的版本管理SPlayer.org (射手科技)
Concurrent Version System (CVS)Subversion (SVN)提供一个中央数据库服务器,用于管理代码通过客户端与服务器通信,实现阶段性代码副本功能提供了多人协作的方便,和分支管理功能现代版本管理系统SPlayer.org (射手科技)
Repository(Repo)概念一个数据库,负责存储代码副本Commit概念向数据库传送一个代码副本(该副本将会被赋予一个版本号)Check-out概念从数据库取得一个代码副本(work copy)Update概念以本地代码副本(workcopy)为基础,下载在上次Update或Check-out之后更新的文件,并保留本地已修改文件不变SVN概念SPlayer.org (射手科技)
trunk概念是Repo数据库中的一个文件夹,其中的代码副本为稳定版本,通过测试和确认可靠的branch概念是Repo数据库中的一个文件夹,是项目的一个开发用分支,代码可能不稳定不可靠merge概念将稳定和确认可靠的branch合并至trunkSVN概念SPlayer.org (射手科技)
代码规范与编程规则使用统一格式和规则进行编码的意义SPlayer.org (射手科技)
使用统一的编码格式有助于提高代码可读性,防止语义混淆,从一定程度上减少编码错误代码规范SPlayer.org (射手科技)
???SPlayer.org (射手科技)
?SPlayer.org (射手科技)
??SPlayer.org (射手科技)
?SPlayer.org (射手科技)
?SPlayer.org (射手科技)
编码规范是代码的具体细节,而编程规则涉及内容就是框架性和规范性的譬如,现有编程规则主张采用:MVC架构进行产物设计(保证产物质量)使用STL的字符串、数组实现,而非C、Windows、MFC/ATL的实现(保证代码执行效率和可移植性)编程规则,将一个问题的多种实现方案,合理精简为一个编程规则SPlayer.org (射手科技)
代码度量通过数学统计确定代码的可读性SPlayer.org (射手科技)
??SPlayer.org (射手科技)
Kiviat Graph / Source MonitorSPlayer.org (射手科技)
代码复查通过开发成员间互相查看和评定对方代码,来学习和确保质量SPlayer.org (射手科技)
当局者迷,旁观者清,自己犯的错误自己不容易发现通过这种交流方式互相取长补短在项目管理中,制定责任和权限机制代码复查的意义SPlayer.org (射手科技)
通过ReviewBoard(www.reviewboard.org)进行开发人员有各自独立帐号,在工作完成时,通过该平台提交复查申请(半自动化)相关人员查看并审核复查申请,决定代码是否合格代码复查的形式和方法SPlayer.org (射手科技)
项目开发流程项目开发活动如何进行SPlayer.org (射手科技)
SPlayer.org (射手科技)

More Related Content

Viewers also liked (18)

El Amor Nunca Deja De SerEl Amor Nunca Deja De Ser
El Amor Nunca Deja De Ser
Tabernáculo De Adoración Adonay
?
Digitalisation@Massey: Understanding the Real Drivers
Digitalisation@Massey: Understanding the Real DriversDigitalisation@Massey: Understanding the Real Drivers
Digitalisation@Massey: Understanding the Real Drivers
Mark Brown
?
Business Card Designer
Business Card DesignerBusiness Card Designer
Business Card Designer
NextBee Media
?
Kit comunicación-entrada-3-oralidadKit comunicación-entrada-3-oralidad
Kit comunicación-entrada-3-oralidad
Gerson Ames
?
expression in cpp
expression in cppexpression in cpp
expression in cpp
gourav kottawar
?
Uni papua fc kuta gle aceh held exhibition match with putra seulawah fc.
Uni papua fc kuta gle aceh held exhibition match with putra seulawah fc.Uni papua fc kuta gle aceh held exhibition match with putra seulawah fc.
Uni papua fc kuta gle aceh held exhibition match with putra seulawah fc.
Uni Papua Football
?
Canal de distribui??oCanal de distribui??o
Canal de distribui??o
Reinaldo Mariano
?
exception handling in cpp
exception handling in cppexception handling in cpp
exception handling in cpp
gourav kottawar
?
LEGADO UNIVERSAL DEL SHABBATLEGADO UNIVERSAL DEL SHABBAT
LEGADO UNIVERSAL DEL SHABBAT
Ricardo Mojica
?
Bautismo verdaderoBautismo verdadero
Bautismo verdadero
julio torres
?
8 Pointers
8 Pointers8 Pointers
8 Pointers
Praveen M Jigajinni
?
Lavori Elisabetta Frameglia per corso graphic design
Lavori Elisabetta Frameglia per corso graphic designLavori Elisabetta Frameglia per corso graphic design
Lavori Elisabetta Frameglia per corso graphic design
NAD Nuova Accademia del Design
?
Basics of oops concept
Basics of oops conceptBasics of oops concept
Basics of oops concept
DINESH KUMAR ARIVARASAN
?
[OOP - Lec 02] Why do we need OOP
[OOP - Lec 02] Why do we need OOP[OOP - Lec 02] Why do we need OOP
[OOP - Lec 02] Why do we need OOP
Muhammad Hammad Waseem
?
Sesion 7Sesion 7
Sesion 7
CONASIN PERU
?
Kit de Evaluación Secundaria.Kit de Evaluación Secundaria.
Kit de Evaluación Secundaria.
Marly Rodriguez
?
Ppt kit 2do y 4to 2016 primer bimestre [reparado]Ppt kit 2do y 4to 2016 primer bimestre [reparado]
Ppt kit 2do y 4to 2016 primer bimestre [reparado]
Jimmy Cuadros Q
?
El Amor Nunca Deja De SerEl Amor Nunca Deja De Ser
El Amor Nunca Deja De Ser
Tabernáculo De Adoración Adonay
?
Digitalisation@Massey: Understanding the Real Drivers
Digitalisation@Massey: Understanding the Real DriversDigitalisation@Massey: Understanding the Real Drivers
Digitalisation@Massey: Understanding the Real Drivers
Mark Brown
?
Kit comunicación-entrada-3-oralidadKit comunicación-entrada-3-oralidad
Kit comunicación-entrada-3-oralidad
Gerson Ames
?
Uni papua fc kuta gle aceh held exhibition match with putra seulawah fc.
Uni papua fc kuta gle aceh held exhibition match with putra seulawah fc.Uni papua fc kuta gle aceh held exhibition match with putra seulawah fc.
Uni papua fc kuta gle aceh held exhibition match with putra seulawah fc.
Uni Papua Football
?
Canal de distribui??oCanal de distribui??o
Canal de distribui??o
Reinaldo Mariano
?
LEGADO UNIVERSAL DEL SHABBATLEGADO UNIVERSAL DEL SHABBAT
LEGADO UNIVERSAL DEL SHABBAT
Ricardo Mojica
?
Bautismo verdaderoBautismo verdadero
Bautismo verdadero
julio torres
?
Sesion 7Sesion 7
Sesion 7
CONASIN PERU
?
Kit de Evaluación Secundaria.Kit de Evaluación Secundaria.
Kit de Evaluación Secundaria.
Marly Rodriguez
?
Ppt kit 2do y 4to 2016 primer bimestre [reparado]Ppt kit 2do y 4to 2016 primer bimestre [reparado]
Ppt kit 2do y 4to 2016 primer bimestre [reparado]
Jimmy Cuadros Q
?

Similar to 软件项目管理与团队合作 (20)

UiGathering 2012.07 狠狠撸 (Derek Liu)
UiGathering 2012.07 狠狠撸 (Derek Liu)UiGathering 2012.07 狠狠撸 (Derek Liu)
UiGathering 2012.07 狠狠撸 (Derek Liu)
UXTW(Taiwan User Experience Professional Association)
?
Scea su chengwu_pmroi_traditional
Scea su chengwu_pmroi_traditionalScea su chengwu_pmroi_traditional
Scea su chengwu_pmroi_traditional
xtiandlr
?
[DDD] 快快樂樂學DDD
[DDD] 快快樂樂學DDD[DDD] 快快樂樂學DDD
[DDD] 快快樂樂學DDD
Clark
?
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
Duran Hsieh
?
Software Development via A.I.
Software Development via A.I.Software Development via A.I.
Software Development via A.I.
f62vj7ctgx
?
1 spmc introduction
1 spmc introduction1 spmc introduction
1 spmc introduction
huanglab
?
面向数据流的软件设计方法
面向数据流的软件设计方法面向数据流的软件设计方法
面向数据流的软件设计方法
happyjin2010
?
移动开发敏捷实践
移动开发敏捷实践移动开发敏捷实践
移动开发敏捷实践
Yuan Mai
?
如何培养架构性思考(谈软体架构师必经之路)
如何培养架构性思考(谈软体架构师必经之路)如何培养架构性思考(谈软体架构师必经之路)
如何培养架构性思考(谈软体架构师必经之路)
Gelis Wu
?
A dev ops team's practice in trend micro in agile summit 2018
A dev ops team's practice in trend micro in agile summit 2018A dev ops team's practice in trend micro in agile summit 2018
A dev ops team's practice in trend micro in agile summit 2018
Juggernaut Liu
?
前端开发的那些事儿
前端开发的那些事儿前端开发的那些事儿
前端开发的那些事儿
jndream
?
欢迎加入软体构筑行列
欢迎加入软体构筑行列欢迎加入软体构筑行列
欢迎加入软体构筑行列
Chris Wang
?
篱笆网结婚频道项目制产物开发经验分享-笔惭颁补尘辫2
篱笆网结婚频道项目制产物开发经验分享-笔惭颁补尘辫2篱笆网结婚频道项目制产物开发经验分享-笔惭颁补尘辫2
篱笆网结婚频道项目制产物开发经验分享-笔惭颁补尘辫2
PMCamp
?
20130112用原型驱动设计蔼飞别产肠辞苍蹿
20130112用原型驱动设计蔼飞别产肠辞苍蹿20130112用原型驱动设计蔼飞别产肠辞苍蹿
20130112用原型驱动设计蔼飞别产肠辞苍蹿
Justin Lee
?
在生命轉彎的地方 - 從軟體開發職涯,探索人生
在生命轉彎的地方 - 從軟體開發職涯,探索人生在生命轉彎的地方 - 從軟體開發職涯,探索人生
在生命轉彎的地方 - 從軟體開發職涯,探索人生
Rick Hwang
?
Scrum gathering 2012 shanghai 产物管理及用户体验 分会场:敏捷的hard模式 产物经理视角(窦涵之)
Scrum gathering 2012 shanghai 产物管理及用户体验 分会场:敏捷的hard模式 产物经理视角(窦涵之)Scrum gathering 2012 shanghai 产物管理及用户体验 分会场:敏捷的hard模式 产物经理视角(窦涵之)
Scrum gathering 2012 shanghai 产物管理及用户体验 分会场:敏捷的hard模式 产物经理视角(窦涵之)
LetAgileFly
?
2023 08 - SRE 實踐與開發平台指南 - 書友見面會
2023 08 - SRE 實踐與開發平台指南 - 書友見面會2023 08 - SRE 實踐與開發平台指南 - 書友見面會
2023 08 - SRE 實踐與開發平台指南 - 書友見面會
Rick Hwang
?
sdfajkghjkdsgasdfdfhfbnaegrvgbkl;gpirf.pptx
sdfajkghjkdsgasdfdfhfbnaegrvgbkl;gpirf.pptxsdfajkghjkdsgasdfdfhfbnaegrvgbkl;gpirf.pptx
sdfajkghjkdsgasdfdfhfbnaegrvgbkl;gpirf.pptx
1300672728
?
面对移动化础辫辫挑战的架构设计
面对移动化础辫辫挑战的架构设计面对移动化础辫辫挑战的架构设计
面对移动化础辫辫挑战的架构设计
Clark
?
程序员与技术
程序员与技术程序员与技术
程序员与技术
ligaoren
?
Scea su chengwu_pmroi_traditional
Scea su chengwu_pmroi_traditionalScea su chengwu_pmroi_traditional
Scea su chengwu_pmroi_traditional
xtiandlr
?
[DDD] 快快樂樂學DDD
[DDD] 快快樂樂學DDD[DDD] 快快樂樂學DDD
[DDD] 快快樂樂學DDD
Clark
?
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
Duran Hsieh
?
Software Development via A.I.
Software Development via A.I.Software Development via A.I.
Software Development via A.I.
f62vj7ctgx
?
1 spmc introduction
1 spmc introduction1 spmc introduction
1 spmc introduction
huanglab
?
面向数据流的软件设计方法
面向数据流的软件设计方法面向数据流的软件设计方法
面向数据流的软件设计方法
happyjin2010
?
移动开发敏捷实践
移动开发敏捷实践移动开发敏捷实践
移动开发敏捷实践
Yuan Mai
?
如何培养架构性思考(谈软体架构师必经之路)
如何培养架构性思考(谈软体架构师必经之路)如何培养架构性思考(谈软体架构师必经之路)
如何培养架构性思考(谈软体架构师必经之路)
Gelis Wu
?
A dev ops team's practice in trend micro in agile summit 2018
A dev ops team's practice in trend micro in agile summit 2018A dev ops team's practice in trend micro in agile summit 2018
A dev ops team's practice in trend micro in agile summit 2018
Juggernaut Liu
?
前端开发的那些事儿
前端开发的那些事儿前端开发的那些事儿
前端开发的那些事儿
jndream
?
欢迎加入软体构筑行列
欢迎加入软体构筑行列欢迎加入软体构筑行列
欢迎加入软体构筑行列
Chris Wang
?
篱笆网结婚频道项目制产物开发经验分享-笔惭颁补尘辫2
篱笆网结婚频道项目制产物开发经验分享-笔惭颁补尘辫2篱笆网结婚频道项目制产物开发经验分享-笔惭颁补尘辫2
篱笆网结婚频道项目制产物开发经验分享-笔惭颁补尘辫2
PMCamp
?
20130112用原型驱动设计蔼飞别产肠辞苍蹿
20130112用原型驱动设计蔼飞别产肠辞苍蹿20130112用原型驱动设计蔼飞别产肠辞苍蹿
20130112用原型驱动设计蔼飞别产肠辞苍蹿
Justin Lee
?
在生命轉彎的地方 - 從軟體開發職涯,探索人生
在生命轉彎的地方 - 從軟體開發職涯,探索人生在生命轉彎的地方 - 從軟體開發職涯,探索人生
在生命轉彎的地方 - 從軟體開發職涯,探索人生
Rick Hwang
?
Scrum gathering 2012 shanghai 产物管理及用户体验 分会场:敏捷的hard模式 产物经理视角(窦涵之)
Scrum gathering 2012 shanghai 产物管理及用户体验 分会场:敏捷的hard模式 产物经理视角(窦涵之)Scrum gathering 2012 shanghai 产物管理及用户体验 分会场:敏捷的hard模式 产物经理视角(窦涵之)
Scrum gathering 2012 shanghai 产物管理及用户体验 分会场:敏捷的hard模式 产物经理视角(窦涵之)
LetAgileFly
?
2023 08 - SRE 實踐與開發平台指南 - 書友見面會
2023 08 - SRE 實踐與開發平台指南 - 書友見面會2023 08 - SRE 實踐與開發平台指南 - 書友見面會
2023 08 - SRE 實踐與開發平台指南 - 書友見面會
Rick Hwang
?
sdfajkghjkdsgasdfdfhfbnaegrvgbkl;gpirf.pptx
sdfajkghjkdsgasdfdfhfbnaegrvgbkl;gpirf.pptxsdfajkghjkdsgasdfdfhfbnaegrvgbkl;gpirf.pptx
sdfajkghjkdsgasdfdfhfbnaegrvgbkl;gpirf.pptx
1300672728
?
面对移动化础辫辫挑战的架构设计
面对移动化础辫辫挑战的架构设计面对移动化础辫辫挑战的架构设计
面对移动化础辫辫挑战的架构设计
Clark
?
程序员与技术
程序员与技术程序员与技术
程序员与技术
ligaoren
?

More from 晟 沈 (7)

MVC for Desktop Application - Part 4
MVC for Desktop Application - Part 4MVC for Desktop Application - Part 4
MVC for Desktop Application - Part 4
晟 沈
?
MVC for Desktop Application - Part 3
MVC for Desktop Application - Part 3MVC for Desktop Application - Part 3
MVC for Desktop Application - Part 3
晟 沈
?
MVC for Desktop Application - Part 2
MVC for Desktop Application - Part  2MVC for Desktop Application - Part  2
MVC for Desktop Application - Part 2
晟 沈
?
Mercurial Quick Tutorial
Mercurial Quick TutorialMercurial Quick Tutorial
Mercurial Quick Tutorial
晟 沈
?
MVC for Desktop Application - Part 1
MVC for Desktop Application - Part 1MVC for Desktop Application - Part 1
MVC for Desktop Application - Part 1
晟 沈
?
Learning Method
Learning MethodLearning Method
Learning Method
晟 沈
?
C_CPP 初级实物
C_CPP 初级实物C_CPP 初级实物
C_CPP 初级实物
晟 沈
?
MVC for Desktop Application - Part 4
MVC for Desktop Application - Part 4MVC for Desktop Application - Part 4
MVC for Desktop Application - Part 4
晟 沈
?
MVC for Desktop Application - Part 3
MVC for Desktop Application - Part 3MVC for Desktop Application - Part 3
MVC for Desktop Application - Part 3
晟 沈
?
MVC for Desktop Application - Part 2
MVC for Desktop Application - Part  2MVC for Desktop Application - Part  2
MVC for Desktop Application - Part 2
晟 沈
?
Mercurial Quick Tutorial
Mercurial Quick TutorialMercurial Quick Tutorial
Mercurial Quick Tutorial
晟 沈
?
MVC for Desktop Application - Part 1
MVC for Desktop Application - Part 1MVC for Desktop Application - Part 1
MVC for Desktop Application - Part 1
晟 沈
?
Learning Method
Learning MethodLearning Method
Learning Method
晟 沈
?
C_CPP 初级实物
C_CPP 初级实物C_CPP 初级实物
C_CPP 初级实物
晟 沈
?

软件项目管理与团队合作

Editor's Notes

  • #2: 偏重实务,而非课本知识
  • #3: 项目管理的宗旨是提高项目质量,确保项目按时完成因此本课涉及内容都是质量控制和进度控制的一环
  • #9: 范例:开发一个博客系统
  • #11: 版本管理与软件发行版本是不同的
  • #12: 按照今天的日期,开设文件夹,保存当日的开发版本
  • #13: 厂痴狈的基本理念来自颁痴厂
  • #18: 空格和换行的规定
  • #20: 降低代码复杂度,条件嵌套是增加代码复杂度的重要因素
  • #22: 制定编码格式规范是一个商业需求,有助于将开发者锁定于某个平台
  • #28: 员工互相查看对方代码,即便是在不同模块,也能发现对同一个问题的不同理解和不同实现方式。普通开发人员没有版本管理的肠辞尘尘颈迟权限,因此不对主项目的代码承担责任,他仅对自己的工作单元部分承担责任,在代码复查不合格时,需要自行修改。