3第四章 软件小组

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
If there is an error, it is termed a bug The fault could have been prevented if the code had been better guarded against the ―bug‖ ―Shoo-Bug‖ aerosol spray
They even name their modules after themselves They see their modules as extension of themselves

© The McGraw-Hill Companies, 2007
Democratic Team Approach (contd)
Slide 4.1
Object-Oriented and Classical Software Engineering
Seventh Edition, WCB/McGraw-Hill, 2007
讲解:王亚迅
© The McGraw-Hill Companies, 2007
CHAPTER 4
Slide 4.2
© The McGraw-Hill Companies, 2007
Difficulties with Democratic Team Approach

Slide 4.15
Management may have difficulties
Democratic teams are hard to introduce into an undemocratic environment 举例说明一个开发出优质产品的民主小组是如何集体辞 职的


一个一人年代码的产品需要在三个月编出代码,解决方案好像容易
Solution: If one programmer can code the product in 1 year, four programmers can do it in 3 months 实际情况完全行不通:Nonsense! Four programmers will probably take nearly a year
TEAMS 软件小组
© The McGraw-Hill Companies, 2007
Overview

Slide 4.3
Team organization Democratic team approach Classical chief programmer team approach Beyond chief programmer and democratic teams Synchronize-and-stabilize teams Teams for agile processes Open-source programming teams People capability maturity model Choosing an appropriate team organization

Slide 4.7
还是举例来说比较容易(说明交互的重要性) Example: Sheila and Harry code two modules, m1 and m2, say

What can go wrong Both Sheila and Harry may code m1, and ignore m2 Sheila may code m1, Harry may code m2. When m1 calls m2 it passes 4 parameters; but m2 requires 5 parameters Or, the order of parameters in m1 and m2 may be different Or, the order may be same, but the data types may be slightly different
Figure 4.1
© The McGraw-Hill Companies, 2007
Communications Problems (contd)

Slide 4.10
但实际情况会怎样呢?反而会更迟 But other three have to explain in detail What has been accomplished What is still incomplete Brooks’s Law Adding additional programming personnel to a team when a product is late has the effect of making the product even later---是FRED BROOKS管理IBM360主机操作系统OS/360的开发时发
解释一个小组织良好的软件小组的重要性; 描述现代分级小组如何组织的; 分析各种不同小组组织的优缺点; 重视选择一个合适的小组组织时会产生的问题;
© The McGraw-Hill Companies, 2007
4.1 Team Organization 小组组织
Slide 4.4

A product must be completed within 3 months, but 1 person-year of programming is still needed
Team organization is a managerial issue
© The McGraw-Hill Companies, 2007
Communications Problems

Slide 4.9



软件小组可能会产生的另外一种困难 Example There are three channels of communication between the three programmers working on a project. The deadline is rapidly approaching but the code is not nearly complete 解决困难的方案好像显然要这样: ―Obvious‖ solution: Add a fourth programmer to the team

The quality of the product is usually lower
源自文库
原因是有一些任务可以分组,但另外一些必须单独完成.
© The McGraw-Hill Companies, 2007
Task Sharing

Slide 4.5


为何呢?看看软件的任务是如何分配的 If one farm hand can pick a strawberry field in 10 days, ten farm hands can pick the same strawberry field in 1 day 以上情况可以分组 One elephant can produce a calf in 22 months, but 22 elephants cannot possibly produce that calf in 1 month 以上情况就不可以分组

现的.
© The McGraw-Hill Companies, 2007
Team Organization

Slide 4.11
Teams are used throughout the software production process
But especially during implementation Here, the discussion is presented within the context of programming teams----比如一个人负责需求、规格说明 和设计,之后的实现可以由2-3个程序员的小组完成。

Slide 4.13

如此偏爱的结果会造成:他们不愿意找出自己代码中的错 误 If a programmer sees a module as an extension of his/her ego, he/she is not going to try to find all the errors in ―his‖/―her‖ code
© The McGraw-Hill Companies, 2007
Democratic Team Approach (contd)

Slide 4.14


为了解决以上问题,提出了‖无我‖编程的概念 Proposed solution Egoless programming----其内容包括
① ② ③ ④ ⑤ ⑥ ⑦ Restructure the social environment Restructure programmers’ values Encourage team members to find faults in code A fault must be considered a normal and accepted event The team as whole will develop an ethos, a group identity Modules will ―belong‖ to the team as whole A group of up to 10 egoless programmers constitutes a democratic team
© The McGraw-Hill Companies, 2007
© The McGraw-Hill Companies, 2007
Programming Team Organization (contd)

Slide 4.8
上述情况的发生与编成人员的技术水平无关,而是管 理上问题 管理人员必须对开发小组进行组织管理保证每个小 组工作的高效率 This has nothing whatsoever to do with technical competency

进行交互Unlike strawberry picking, team members must interact in a
meaningful and effective way
© The McGraw-Hill Companies, 2007
Programming Team Organization
© The McGraw-Hill Companies, 2007
4.2 Democratic Team Approach

Slide 4.12
Basic underlying concept — egoless programming---无我编程 早期程序员的共同特征:特别喜爱自己的程序代码 Programmers can be highly attached to their code
© The McGraw-Hill Companies, 2007
Task Sharing (contd)

Slide 4.6
软件小组与上述两种情况是有区别的 软件可以分组实现:Unlike elephant production, it is possible to share coding tasks between members of a team ---目的是可以分担软件实现 的任务. 但有不能按分组简单迭加,而是需要以一种富有意义并且卓有成效的方式
下面看看编程小组组织的两个极端方法: Two extreme approaches to team organization

Democratic teams (Weinberg, 1971)---民主小组 Chief programmer teams (Brooks, 1971; Baker, 1972)主程序员小组
相关文档
最新文档