《快速软件开发》感悟——第一周个人博客作业

                第一周博客作业

《快速软件开发》疑惑:

 

 1.现代计算机技术发展日新月异,很多情况是我们很难预知软件的具体定位,从而做出迅速的方案设计,那么在这种情况下“走一步看一步”是不是也不失为一种好的软件开发方法?

2.书中认为软件开发最好的状态是不耽误程序员正常的家庭生活,但是现实生活中往往相反,书中的这种观点是否具有可行性,是否太过理想化?

3.书中认为不应当给队员施加过大的压力,这样会造成积极性下降,但是我认为事实上,软件开发的初期由于经验不足和其他的多方面原因,压力过大是一种正常的状态。只有经历这一阶段,软件开发才会平稳高效的进行?

4.《快速软件开发》明确指出鲁莽编程的不可取,但是并没有提出一个具体可行的方式,都是在进行理论?

5.“糟糕的计划”和“不清楚的合同”,关于计划和合同是否高效往往需要时间和实践的检验,很难在行动之前作出判断?

 

软件与软件工程的发明:

软件:最早的软件概念由Richard R. Carhart在1953年8月提出,使用于工程背景。真正电子上的软件由John Tukey于1958年提出于"The Teaching of Concrete Mathematics",并发表在JSTOR。

软件工程:由Margaret Hamilton于开发阿波罗11号软件系统期间发明。当时的软件开发处于起步阶段,没有工程化的方法,在开发大型程序时阻力很大。Hamilton为了让软件获得拥有的尊重,开创了软件的科学——软件工程。

 

项目管理软件对比

Git:git是一款免费的、开源的、分布式的版本控制系统。git采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。每一个git克隆都是一个完整的文件库,含有全部历史记录和修订追踪能力。其最大特色就是“分支”及“合并”操作快速、简便。支持离线工作,git是整个项目范围的原子提交,而且git中的每个工作树都包含一个具有完整项目历史的仓库。

Github: github是一个基于git的代码托管平台,提供了web管理页面,在windows上也提供了客户端。用户可议在github上托管项目,但是目前免费的托管都不能设置为私有。

Svn:SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。与git相比,svn不是分布式的,所有信息按文件存储,处理分支较为复杂,有全局的版本号,内容的完整性略差。

TFS:TFS是微软提供的一项服务,已经被集成在Visual Studio中。TFS不仅提供了版本管理的功能,还提供工作项追踪、自动化生成等功能。针对5人以下的校开发团队,提供免费版。

Xcode:Xcode是Apple提供的集成开发环境,可议选择使用git或者svn作为版本控制。

Mercurial:Mercurial是使用Python开发的轻量级开源的分布式版本控制系统。每个用户管理自己的 repository,管理员只需协调同步这些repository。

BitBucket:BitBucket是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户。BitBucket提供了非常丰富的功能,如无限的私有仓库和硬盘、Bug追踪、API支持、自定义域名等。

Bugzilla:Bugzilla是一个开源的缺陷跟踪系统。

Trac:是一个为软件开发项目需要而集成了Wiki和问题跟踪管理系统的应用平台,是一个开源软件应用。Trac以简单的方式建立了一个软件项目管理的Web应用,以帮助开发人员更好地写出高质量的软件;Trac应用力求不影响现有团队的开发过程。

Rational:IBM软件开发平台的一部分,包括生命周期管理、统一建模语言、功能测试和回归测试等多个组成部分。

 

posted @ 2015-09-22 21:49  someonefighting  阅读(285)  评论(3编辑  收藏  举报