欢迎来到天天文库
浏览记录
ID:50077717
大小:689.50 KB
页数:62页
时间:2020-03-08
《软件工程 第4版 教学课件 作者 张海藩 吕云翔 编著 12.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、北航软件学院吕云翔第十二章组织软件项目成功的关键是有高素质的软件开发人员。然而大多数软件产品规模都很大,以至单个软件开发人员无法在给定期限内完成开发工作,因此,必须把多名软件开发人员组织起来,使他们分工协作共同完成开发工作。引言引言为了成功地完成软件开发工作,项目组成员必须以一种有意义且有效的方式彼此交互和通信。如何组织项目组是一个管理问题,管理者必须合理地组织项目组,使项目组有较高生产率,能够按预定的进度计划完成所承担的工作。经验表明,项目组组织得越好,其生产率越高,而且产品质量也越高。引言除了追求更好的组织方式之外,每个管理者的目标都是建立有凝
2、聚力的项目组。一个有高度凝聚力的小组,是一批团结得非常紧密的人,他们的整体力量大于个体力量的总和。一旦项目组开始具有凝聚力,成功的可能性就大大增加了。引言现有的软件项目组的组织方式,几乎和软件开发公司的数目一样多。组织软件开发人员的方法,取决于所承担的项目的特点、以往的组织经验以及软件开发公司负责人的看法和喜好。12.1民主制程序员组12.1民主制程序员组在开发一个大型软件产品的过程中,每个阶段可能都需要若干名开发人员协同工作。实现阶段是多名开发人员分担任务的主要阶段,通常每名程序员独立地实现自己负责的模块。因为程序员组主要用在实现阶段,所以程序员
3、组的组织问题在实现阶段最突出。12.1民主制程序员组有两种极端方法可用来组织程序员组,这两种组织方法分别称为民主制程序员组和主程序员组。12.1民主制程序员组Weinberg在1971年率先描述了民主制程序员组的组织方式。构成民主制程序员组的基本概念是“无私编程”。Weinberg指出,程序员对他们编写的代码十分热爱,他们往往把自己编写的模块看成是自身的延伸,有时甚至用自己的名字来命名模块。12.1民主制程序员组由此带来的问题是,如果一名程序员把一个模块看做是他自身的延伸,那么他一定不想找出“他的”代码中的错误,似乎在他编写的模块中发现了错误就是对
4、他工作的否定。12.1民主制程序员组Weinberg解决上述问题的方法是提倡无私编程。必须改变评价程序员价值的标准,每名程序员都应该鼓励该组其他成员找出自己编写的代码中的错误。不要认为存在错误是坏事,而应该认为是正常的事情,应该把找出模块中的一个错误看做是取得了一个胜利。12.1民主制程序员组任何人都不能嘲笑程序员所犯的编码错误。程序员组作为一个整体,将培养一种平等的团队精神,坚信“每个模块都是属于整个程序员组的,而不是属于某个人的”。一组无私的程序员将构成一个民主制程序员组。12.1民主制程序员组民主制程序员组的一个重要特点是,小组成员完全平等,
5、享有充分民主,通过协商做出技术决策。因此,小组成员间的通信是平行的,如果一个小组有n个成员,则可能的通信信道有n(n−1)/2条。12.1民主制程序员组程序设计小组的人数不能太多,否则组员间彼此通信的时间将多于程序设计时间。此外,通常不能把一个软件系统划分成大量独立的单元,因此,如果程序设计小组人数太多,则每个组员所负责开发的程序单元与系统其他部分的界面将是复杂的,不仅出现接口错误的可能性增加,而且软件测试将既困难又费时间。12.1民主制程序员组一般说来,程序设计小组的规模应该比较小,以2~8名成员为宜。如果项目规模很大,用一个小组不能在预定时间内
6、完成开发任务,则应该使用多个程序设计小组,每个小组承担工程项目的一部分任务,在一定程度上独立自主地完成各自的任务。12.1民主制程序员组小组规模小,不仅可以减少通信问题,而且还有其他好处。民主制程序员组通常采用非正式的组织方式,也就是说,虽然名义上有一个组长,但是他和组内其他成员完成同样的任务。在这样的小组中,由全体讨论决定应该完成的工作,并且根据每个人的能力和经验分配适当的任务。12.1民主制程序员组民主制程序员组的主要优点是,对发现错误抱着积极的态度,这种积极态度有助于更快速地发现错误,从而导致高质量的代码。12.1民主制程序员组民主制程序员组
7、的另一个优点是,小组成员享有充分民主,小组有高度凝聚力,组内学术空气浓厚,有利于攻克技术难关。因此,当有难题需要解决时,也就是说,当所要开发的软件产品的技术难度较高时,采用民主制程序员组是适宜的。12.1民主制程序员组如果组内多数成员是经验丰富、技术熟练的程序员,那么上述非正式的组织方式可能会非常成功。在这样的小组内组员享有充分民主,通过协商,在自愿的基础上作出决定,因此能够增强团结、提高工作效率。12.1民主制程序员组但是,如果组内多数成员技术水平不高,或是缺乏经验的新手,那么这种非正式的组织方式也有严重缺点:由于没有明确的权威指导开发工程的进行
8、,组员间将缺乏必要的协调,最终可能导致工程失败。12.2主程序员组12.2主程序员组美国IBM公司在20世纪70年代初期开
此文档下载收益归作者所有