View
236
Download
0
Category
Preview:
DESCRIPTION
로버트 L. 글래스 지음 | 박재호, 이해영 옮김 | IT Leaders 시리즈 _ 008 | ISBN: 9788992939256 | 25,000원 | 2009년 05월 28일 발행 | 488쪽
Citation preview
iv
01 ...............................................7
1.1 ! ........ 11
1.2 , ? .................... 17
1.3 ? ........................ 22
1.4 ? ....... 27
1.5 ....................................... 32
1.6 , ...................... 36
1.7 ............................... 44
1.8 .......................................................... 47
1.9 ............................. 51
02 .................................. 53
2.1 .......................................... 59
2.2 ............................. 66
2.3 : (, ) ................ 70
2.4 ................................................ 75
2.5 ..................... 78
03 ........................................... 81
3.1 BIEGE ............................ 85
3.2 ................................................. 89
3.3 .................................................... 92
3.4 (!?) .............. 97
v04 .................................101
4.1 . ? ..................106
4.2 ...................................................110
4.3 ......................................117
4.4 ............................................123
05 .........................................127
5.1 ? ...................132
5.2 ? .136
5.3 ...............................................140
5.4 , ................145
5.5 , .........................149
5.6 CMM ................................151
5.7 , ? .................155
06 ...............................160
6.1 , ? ? .....................165
6.2 , ...... ? ..............................................180
6.3 ....................196
07 ...............................................201
7.1 ? ? .........................207
7.2 ....................................214
7.3 , .......................................218
7.4 .........................................................221
7.5 , ......................................222
7.6 ........................................226
vi
08 ...............................................235
8.1 .....................................................239
8.2 ...........................................................242
8.3 ............................................................243
8.4 ...................................244
8.5 ? .................................................249
8.6 .....................................................253
8.7 ...................................................257
8.8 ..................................................261
09 ...............................................268
9.1 .........................................................273
9.2 , ...........................................279
9.3 ...................................................283
9.4 ......................................287
10 .............................295
10.1 , ...................297
10.2 ..................................................302
10.3 .........................................................306
10.4 .....................................310
10.5 ........................................................317
11 .............................321
11.1 .....................323
11.2 , .......................329
11.3 , ..........................346
vii
12 ................361
12.1 ........................................364
12.2 ................................................368
12.3 ..................................................374
13 ..........................................385
14 .............................................391
15 ..........................................397
16 ................................................405
17 ................................................410
18 ...........................................421
19 ...................................................428
A ( L. ) ............432
B (/ ) .............................436
C & ................................439
viii
. ,
.
.
.
,
.
.
. 2.0
.
.
90 OS
,
.
. .
,
,
. -
ix
.
,
.
.
,
.
.
.
, ,
( ) ( )
.
. ,
.
!
,
. .
.
.
.
.
. .
!
!
x!
!
.
. ,
,
.
.
,
.
.
.
, , .
. ,
.
.
21 , , .
.
.
.
. .
.
-
xi
. 2.0:
2007
,
2.0 . 2
.
.
.
,
.
1000 (2
999 ).
.
.
.
xii
,
. ,
, .
?
.
.
.
?
?
.
,
.
2
,
.
.
.
xiii
.
.
.
- ,
jrogue@gmail.com
. . ()!
.
. .
.
.
.
.
.
.
- ,
hylsteely@gmail.com
xiv
......
2.0 .
.
, .
.
, .
,
(
).
(
).
.
. .
, .
.
,
. , ,
, ,
. ,
, .
xv
. Facts
and Fallacies of Software Engineering 1
. Software Conflict 2.0 2
. Software Runaways Computing Calamities
,
.
. ,
. .
.
. ,
. 3
. , 40 .
! .
.
2.0
.
2009 5
L.
1 () .
2 () 2.0 .
xvi
1
,
. ,
.
.
.
.
.
.
40,
6 ,
.
.
.
.
xvii
, , .
.
, , .
The Discipline of Curiosity[Groen 1990]
.
.
()
()
. ? ? ,
[Judson 1980]
. 1
.
. 2
.
.
[Shapiro 1991] .
.
. ( )
.
.
. .
.
1 () : , .
2 () : 14
xviii
!
.
. .
?
.
. ,
, .
.
, ,
, .
.
?
?
.
. .
.
.
- ,
1994
xix
2
.
.
, , .
.
, .
.
, ,
.
.
?
.
.
. 21
.
.
.
.
100 ! . 2
$1196 .
.
2.0
xx
. .
10
. ,
.
,
( ,
).
,
.
. 1
.
.
, ,
.
.
- L ,
2006
xxi
?
.
.
.
.
- ,
,
A Whack on the Side of the Head,
,
.
. .
.
.
.
.
,
, CASE ,
xxii
.
.
?
? .
? .
.
. ,
. ,
.
,
. ,
( ) .
.
1 .
.
. , , ,
, , ,
. ,
.
.
2
.
. ,
.
xxiii
. 13 ,
.
3 .
,
. , ( )
? .
4 .
.
? ?
.
.
,
.
.
.
,
, Falutin index
P. J. .
,
.
.
.
xxiv
.
. .
1
2.0
21
3 ,
,
.
.
- ,
Tools for Thinking and Problem-solving,
Prentice-Hall 1986
* * *
01.
02.
03.
04.
05.
06.
07.
08.
09.
41
.
. !
. ,
.
.
,
.
?
.
,
. 1 .
.
.
5
.
.
() .
.
.
.
.
.
.
.
1
.
. , ,
.
6
.
.
.
?
? ?
?
? .
.
, ,
. .
701
1.1 _ !
1.2 _ , ?
1.3 _ ?
1.4 _ ?
1.5 _
1.6 _ ,
1.7 _
1.8 _
1.9 _
Software Creativity 2.0
8
1
.
. ()
. ? ?
,
-
The Discipline of Curiosity, Elsevier Science 1990;
Janny Groen, Eefke Smit, Juurd Eijsvoogel
discipline
. undisciplined
.
.
.
,
.
flexibility.
.
;
.
,
. 100%
.
.
901 _
.
(......) ?
. ?
?
.
,
, . ,
.
.
.
.
.
.
, .
.
,
,
.
.
.
.
? .
Software Creativity 2.0
10
, .
( )
.
.
?
?
.
. 30
! .
. 30
. 1
.
.
11
01 _
1.1
!
1
.
.
,
.
.
, , ,
. .
.
C# ,
. schedule ,
.
, , .
3
.
.
Software Creativity 2.0
12
,
. ,
.
,
.
. C#
,
. progress
, .
, , .
. ,
.
.
,
.
. ?
, . 10
. ,
, .
,
.
. .
.
.
13
01 _
. ,
. (
C# ).
.
, , .
ego-less programming .
.
.
.
.
.
.
. , .
. .
.
.
.
.
.
.
.
.
. (
Software Creativity 2.0
14
)
.
.
.
.
,
, .
,
.
.
.
. 4 43,
.
.
.
.
.
.
.
.
.
, ,
15
01 _
,
, ,
.
.
.
,
.
. .
. !
. .
! .
.
.
.
.
.
.
, , .
,
. , 4
.
4 1
.
.
.
1 () . , ,
.
Software Creativity 2.0
16
. RSS
.
ACM ,
.
.
,
.
.
.
.
.
.
.
.
.
?
.
8:00-4:30
.
.
. 2 .
17
01 _
1.2
,
?
! [Moad 1999]
.
. ?
.
. 400
70% 90% .
. []
.[Moad 1990]
.
.
?
?
?
.
.
. /
[ ]
. ? .
Software Creativity 2.0
18
.
.
.
. ?
.
.
.
.
,
.
.
. ?
.
.
.
,
,
.
.
.
.
Software Aspects of Strategic Defense Systems
[Parnas 1985].
19
01 _
[Brooks 1987].
( )
[Rich 1988].
.
CASE .
[SD 1999] CASE
.
[Glass
1999].
( ) ?
?
?
. ,
. ,
. , ,
1 .
.
. , ,
( ).
, (1966, 1976, 1986, 1996 ) 2006
.
, .
NASA-Goddard
1 () (protocol analysis):
. , , .
.
Software Creativity 2.0
20
.
. Empirical Studies of Programmers
.
Fraunhofer, NICTA,
Simula
.
. , [David 1988]
CASE .
SEI ,
.
,
. ,
.
.
.
,
. .
[Moad 1990]
. ,
.
,
.
.
21
01 _
, .
[ ]
Brooks 1987No Silver Bullet, IEEE Computer, April 1987;
Fred Brooks.
Davis 1988Commentary, Accounting Horizons, June 1988;
Gordon B. Davis.
Glass 1999 The Realities of Software Technology Payoffs,
Communications of the ACM, February 1999; Robert L. Glass.
Moad 1990The Software Revolution, Datamation, February 15,
1990; Jef Moad.
Parnas 1985Software Aspects of Strategic Defense Systems,
American Scientist, September 1985; David Parnas.
Rich 1988Automatic Programming: Myths and Prospects,
IEEE Computer, August 1988; Charles Rich and Richard C.
Waters.
SD 1990Report on the System Development Conference,
System Development, April 1990.
Software Creativity 2.0
22
1.3
?
.
.
.
.
,
.
.
.
.
. ,
.
[Lehman 1980]
.
?
?
23
01 _
?
, ,
.
.
.
[DeMarco 1987]
.
[Jeffery 1983] ,
.
.1.
.2.
.3.
.
.
1.
( ).
( 2.
).
.
( )
.
, ,
Software Creativity 2.0
24
!
.
[Lehman 1979].
,
.
. ,
X .
.
Y .
.
Z - .
X Z
.
Y Z .
. ,
. ,
.
.
()
25
01 _
()
. ?
? ,
[Groen 1990]
.
.
.[Judson 1980]
.
, .
, ,
.
50
. 50
. ?
? .
Software Creativity 2.0
26
[ ]
DeMarco 1987Peopleware, Dorset House, 1987; Tom DeMarco and
Tim Lister.
: : ,
Tom DeMarco/Tim Lister , ,
() 2003
Groen 1990The Discipline of Curiosity, Elsevier Science, 1990;
Janny Groen, Eefke Smit, and Juurd Eisvoogel.
Jeffery 1985Managing Programmer Productivity, Journal of
Systems and Software, January 1985; Ross Jeffery and M.J.
Lawrence.
Judson 1980quoting from a conversation with Murray Gell-Mann,
the inventor of quarks, in The Search for Solutions, Holt,
Rinehart and Winston, 1980; Horace Freeland Judson.
Lehman 1989Uncertainty in Computer Application and Its
Control Through the Engineering of Software, Journal of
Software Maintenance, September 1989; M.M. Lehman.
Lehman 1979How Software Projects Are Really Managed,
Datamation, January 1979; M.M. Lehman.
27
01 _
1.4
?
.
.
. .
.
.
. .
.
. .
.
. .
.
.
.
. .
.
.
!
. !
Software Creativity 2.0
28
,
, .
, ( )
.
.
,
.
.
. .
. !
.
.
.
. ,
.
. ,
. .
.
.
.
.
.
29
01 _
.
.
?
! .
. 80%
?
?
.
.
.
rapid prototyping .
//
.
.
,
,
.
.
.
. ,
. ?
?
.
Software Creativity 2.0
30
,
(, )
. ,
.
.
.
() ( ) .
.
, , ( )
.
.
?
.
.
?
. .
(
?)
,
.
31
01 _
[ ]
Zelkowitz 1988Resource Utilization During Software
Development, Journal of Systems and Software, September
1988; Marvin R. Zelkowitz.
Software Creativity 2.0
32
1.5
.
.
20 .
.
.
.
,
,
.
.
? ?
.
. !
. MCCMicroelectronics and Computing Consortium
. controlled
33
01 _
opportunistic .
,
.
,
.
.
?
.
.
.
, .
( )
.
?
.
.
?
?
.
?
.
.
? .
Software Creativity 2.0
34
.
. .
.
.
, , .
.
? (
) ,
.
. .
. ( )
.
.
.
.
.
.
/ .
.
hard-part-first-design
, .
.
( )
35
01 _
.
. .
.
.
.
[ ]
David L Parnas and Paul C. Clements, A Rational Design Process :
How and Why to Fake it, IEEE Trans. Software Eng. 1986.1
1 () http://web.cs.wpi.edu/~gpollice/cs3733-b05/Readings/FAKE-IT.pdf
Software Creativity 2.0
36
1.6
,
1995 ,
.
, !
.
.
.
, ,
(
XPeXtreme Programming, Crystal Clear,
ASDAdaptive Software Development, Scrum, DSDMDynamic Systems
Development Method, FDDFeature-Driven Development
. XP ).
,
?
. 2001
Agile Manifesto
Principles behind the Agile Manifesto
.
17 .
37
01 _
, .
.
Agile Manifesto , http://
agilemanifesto.org/ .
.
.
.
.
. http://agilemanifesto.
org/principle.html .
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
Software Creativity 2.0
38
.
.
.
/
.
.
/ .
, , ,
1995
.
.
,
. ,
.
applicability. , ?
.
Agile
Software Development sweet spots [Cockburn
2002]. , .
2-8 .
usage .
1.
regression .
.
39
01 _
.
Balancing Agile and Discipline
, /
[Boehm and Turner 2004]. ,
( , )
.
.
.
.
. [Williams and Cockburn 2003]
(, !)
50
. . [Sutherland 2001]
.
.
.
. ,
.
,
.
,
.
.
Software Creativity 2.0
40
.
. . , .
.
. , ,
. [Beck and Boehm 2003]
, . (, !)
60% 10 ,
.
.
17%
. ,
.
? .
(XP
).
[Lindvall, et al. 2004]
. ( XP)
.
. ,
, , ,
.
41
01 _
. ?
. )
, )
. ()
()
.
, ,
.
. (
) (
,
) .
.
. [Skowronski 2004]
( ) 1
.
XP ,
.
.
? ,
, (
.
).
Software Creativity 2.0
42
.
. ?
[Skowronski 2004] . ,
, .
.
,
.
?
.
. , (
) , CASE 4GL .
.
.
.
.
43
01 _
[ ]
Boehm and Turner 2004Balancing Agility and Discipline,
Addison-Wesley, 2004; Barry Boehm and Richard Turner.
Cockburn 2002Agile Software Development, Addison-Wesley,
2002; Alistair Cockburn.
Evans and Boehm 2003Agility Through Discipline: A Debate,
IEEE Software special issue on Agile methods, June 2003; Kent
Beck vs. Barry Boehm.
Lindvall et al 2004Agile Software Development in Large
Organizations, IEEE Computer, December 2004; Mikael
Lindvall, Dirk Muthig, Aldo Dagnino, Christina Wallin,
Michael Stupperich, David Kiefer, John May, and Tuomo
Kahkonen.
Skowronski 2004Do Agile Methods Marginalize Problem-Solvers?
IEEE Computer, October 2004; Victor Skowronski.
Sutherland 2001Agile Can Scale: Inventing and Reinventing
SCRUM in Five Companies, Cutter IT Journal special issue on
the Great Methodologies Debate: Part 1, November 2001; Jeff
Sutherland.
Williams and Cockburn 2003Agile Software Development:
Its About Feedback and Change, IEEE Software special issue
on Agile methods, June 2003; Laurie Williams and Alistair
Cockburn.
Software Creativity 2.0
44
1.7
.
.
. ,
.
,
( !).
-Quincy Illinois Herald-Whig ,
.1
,
. .
,
.
, .
-
.
.
.
1 () . .
45
01 _
.
.
,
. .
,
. .
. .
! !
.
.
. .
.
.
.
.
,
.
.
.
.
.
( )
. ,
.
Software Creativity 2.0
46
,
.
.
.
. , ,
.
. .
.
. .
.
.
47
01 _
1.8
.
.
, .
.
. ,
.
P.J.
. [Plauger 1992]
, Falutins Index
.
.
high falutin, ,
.
.
Software Creativity 2.0
48
? .
. 1.
, .
.2.
.3.
, 4.
.
.
.
,
.
.
.
. , ,
.
.
5-6 .
,
.
.
,
. ,
49
01 _
. . !
, .
.
.
. . .
.
. ,
, .
. .
, ,
. ,
,
.
.
. .
.
(
).
. .
.
.
Software Creativity 2.0
50
.
.
.
.
, .
,
. .
.
.
?
. .
.
,
. .
. .
? ?
, .
.
.
[ ]
Plauger 1992The Falutin Index, Embedded Systems
Programming, May 1992, pages 8992; P.J. Plauger.
51
01 _
1.9
.
.
?
,
.
,
. , .
.
.
.
(
) .
. (
)
.
Software Creativity 2.0
52
.
. ,
.
,
. .
,
.
.
.
. .
. (
)
.
.
.
.
. ,
, .
.
.
53
02
2.1 _
2.2 _
2.3 _ : (, )
2.4 _
2.5 _
Software Creativity 2.0
54
2
.
. ,
.
.
- ( ),
The Search for Solutions,
Holt Rinehart & Winston 1980
l
.
, 1 .
, ,
,
.
?
;
. ;
.
.
.
1 () heuristics .
. , .
55
02 _
,
.
Formal Specification,
Formal Verification.
.
. 1
,
.
1 ,
. (
)
.
,
.
? 1970
. A. , L. , J.
,
(, )
. .
.
.
.
.
CACMCommunications of the ACM 1979 11
Software Creativity 2.0
56
, .
.
.
( [Glass 1981]
.)
.
10 .
H. .
. 10 CACM
,
.
.
.
( [Glass 1991]
.)
?
.
.
.
.
.
,
. (
) .
.
57
02 _
.
. ( )
.
, ,
.
21 ( )
. 21
.
?
?
problem solving .
.
.
(, )
.
.
.
? .
[Dekleva 1991] .
1990 1980
50
!
1980, 1990, 2000
.
Software Creativity 2.0
58
.
(
).
. ,
.
[ ]
Dekleva 1991 - Real Maintenance Statistics,
Software Maintenance News, February 1991.
Glass 1981 - A Look at Other Upstream Paddlers,
Software Soliloquies, Computing Trends, 1981;
Robert L. Glass.
Glass 1991 - Preface of Software Conflict, Yourdon Press, 1991;
Robert L. Glass (republished by developer.* Books in 2006
as Software Conflict 2.0).
: 2.0( L. ,
/ , 2007 )
59
02 _
2.1
.
,
.
.
.
.
. 1990 [Computer
1990, Software 1990, Transactions 1990]
.
. NRCNational Research Council CSTBComputer Science
Technology Board [CSTB 1990]
.
/
.
.
,
.
Software Creativity 2.0
60
.
.
. ,
,
.
.
, .
.
[Rombach 1990] H.
.
.
.
[Blum 1990]
.
.
.
IEEE
.
.
.
(Jeanette Wing, [Computer 1990]).
[ ]
.([Software 1990,
Gerhart]).
.
61
02 _
A. The Sciences of the Artificial, [Simon
1981])
.
......
.
?
.
.
. ,
?
. ,
. ,
.
,
.
. ,
. , 3 . ,
, , .
.
.
. ,
3 . (
Software Creativity 2.0
62
) 3
.
.
.
.
.
( .
).
.
.
.
.
.
.
.
.
.
. NRLNaval
Research Laboratory A-7
( ,
).
63
02 _
.
.
.
A-7
.
.
.
. ,
(
).
. .
[DeMillo 1979, Fetzer 1988].
,
,
, .
.
. () ,
.
,
Software Creativity 2.0
64
[Dijkstra 1989].
, .
.
,
.
.
. ,
. ,
. ,
. , .
.
.
.
,
?
? (
,
?) ,
.
65
02 _
[]
Blum 1990Medical Informatics in the United States, 19501975,
A History of Medical Informatics, ACM Press, 1990; Bruce I.
Blum.
Computer 1990Special issue of IEEE Computer, on Formal
MethodsPrelude to Virtuoso Software, September 1990.
CSTB 1990Scaling Up: A Research Agenda for Software
Engineering, a report of the Computer Science Technology
Board of the National Research Council, Communications of
the ACM, March 1990.
DeMillo 1979Social Processes and Proofs of Theorems and
Programs, Communications of the ACM, May 1979; Richard A.
DeMillo, Richard J. Lipton, and Alan J. Perlis.
Dijkstra 1989On the Cruelty of Really Teaching Computing
Science, Communications of the ACM, December 1989;
Edsger W. Dijkstra.
Fetzer 1988Program Verification: The Very Idea, Communications
of the ACM, September 1988; James H. Fetzer.
Rombach 1990Design Measurement: Some Lessons Learned,
IEEE Software, March 1990; H. Dieter Rombach.
Simon 1981The Sciences of the Artificial, MIT Press, 1981;
Herbert A. Simon.
Software 1990Special issue of IEEE Software, on Formal
MethodsDeveloping Virtuoso Software, September 1990.
Transactions 1990Special issue of IEEE Transactions on Software
Engineering on Formal Methods, September 1990.
Software Creativity 2.0
66
2.2
?
?
?
. , .
, . ,
.
. ,
. .
, .
( ) .
,
.
. ?
.
,
.
.
,
. [Vitalari 1983] ,
67
02 _
.
[Curtis 1987] ,
.
. ,
. [Soloway 1988] ,
. ,
.
, .
, ,
,
.
. ,
.
.
. [Petroski 1985]
.
.
.
.
.
. (
, On Medical Education )
.
Software Creativity 2.0
68
.(, The
Pencil )
.
. ,
.
. [Judson 1980].
(
) .
S. ,
.
.
.
.
. ,
. .
. (
) .
!
69
02 _
[ ]
Curtis 1987 - Empirical Studies of the Design Process: Papers for
the Second Workshop on Empirical Studies of Programmers,
MCC Technical Report Number STP-260-87, September 1987;
Bill Curtis, Raymonde Guindon, Herb Krasner, Diane Walz,
Joyce Elam, and Neil Iscoe.
Judson 1980 - The Search for Solutions, Holt, Rinehart, and Winston,
1980; Horace Freeland Judson.
Petroski 1985 - To Engineer Is Human - The Role of Failure in
Successful Design, St. Martins Press, 1985; Henry Petroski.
: :
, , , 2003
Soloway 1988 - Designing Documentation to Compensate for
Delocalized Plans, Communications of the ACM, November
1988; Elliot Soloway.
Vitalari 1983?Problem Solving for Effective Systems Analysis:
An Experimental Exploration, Communications of the ACM,
November 1983; Vitalari and Dickson.
Software Creativity 2.0
70
2.3
:
(, )
. .
.
( .
.
,
).
,
A-7 .
,
.
?
.
A-71 .
, ,
. !
1 () A-7: . HUD(Head
Unit Display) , F16
.
71
02 _
.
.
. .
A-7
.
. .
A-7
.
.
. .
, .
,
,
.
. ,
.
,
. .
. ?
.
.
.
.
Software Creativity 2.0
72
.
. , A-7
.
(
. ,
.
.
![Glass
1991])
.
.
.
.
[Heninger 1980].
.
. ,
.
.
.
.
.
. A-7
73
02 _
.
(,
).
, .
,
.
.
, ,
.
.
. .
.
A-7 .
.
. [
]
. A-7
.
[ ] .
[Zvengintzov 1988]
A-7
.
. .
.
Software Creativity 2.0
74
.
.
A-7
.
?
.
,
.
,
.
.
[ ]
Glass 1991: The Re-Engineering Decision: Lessons from the Best of
Practice, The Software Practitioner, May 1991; Robert L.
Glass.
Heninger 1980: Specifying Software Requirements for Complex
Systems: New Techniques and Their Applications, IEEE
Transactions on Software Engineering, January 1980; K.L.
Heninger.
Zvegintzov 1988: Parnas Interviewed at ESP-2, Software
Maintenance News, March 1988; Nicholas Zvegintzov.
75
02 _
2.4
.
The Science of Programming ,
The Art of Programming .
, ,
. ?
?
, .
. ICSEInternational Conference on
Software Engineering ,
.
.
. ?
?
.
. [Grudin 1989] .
,
. [ ]
.
.
Software Creativity 2.0
76
.
. ,
.
.
[Denning 1991]
. .
. . .
.
, ,
,
.
.
.
.
.
.
. ,
.
.
( 10
50 !) (,
) (, )
.
.
77
02 _
,
.
.
.
.
.
(, ,
).
.
[ ]
Denning 1991- Editorial, Communications of the ACM, March
1991; Peter J. Denning.
Grudin 1989 - The Case Against User Interface Consistency,
Communications of the ACM, October 1989; Jonathan Grudin.
Recommended