architecture (mmm)
p.45
architecture, implementation, and realization.`
By the architecture of a system, I mean the complete and detailed specification of the user interface. For a computer this is the programming manual. For a compiler it is the langugage manual. For a control program it is the manuals for the languages or languages used to invoke its functions. For the entire system it is the union of the manuals the user must consult to do his entire job.
The architect of a system, like the architect of a building, is the user' agent. It is his job to bring professional and technical knowledge to bear in the unalloyed interest of the user, as opposed to the interests of the salesman, the fabricator, etc. [2]
Architecture must be carefully distinguished from implementation. As Blaauw has said, "Where architecture tells WHAT happens, implementation tells HOW it is made to happen." [3] He gives a simple example a clock, whose architecture consists of the face, the hands, and the winding knob. When a child has learned this architecture, he can tell time as easily from a wristwatch as from a church tower. The implementation, however, and its realization, describe what goes on inside the case--powering by any of many mechanisms and accuracy and control by any of many.
(The mythical man-month : essays on software engineering, Frederick P. Brooks, Jr. -- Anniversary ed., 1985, Software engineering, p.45 )
[2] Brooks, F. P. "Architectural philosophy," in W. Buchholz (ed.), Planning A Computer System. New York: McGraw-Hill, 1962.
[3] Blaauw, G. A., "Hardware requirements for the fourth generation," in F. Gruenberger (ed.), Fourth Generation Computers. Englewood Cliffs, N.J.: Prentice-Hall, 1970
____________________________________
aristo v. demo (mmm)
pp.46-47
Now we can deal with the deeply emotional question of aristocracy versus democracy. Are not the architects a new aristocracy, an intellectual elite, set up to tell the poor dumb implementers what to do? Has not all the creative work been sequestered for this elite, leaving the implementers as cogs in the machine? Won't one get a better product by getting the good ideas from all the team, following a democratic philosophy, rather than by restricting the development of specification to a few?
As to the last question, it is easiest. I will certainly not contend that only the architects will have good architectural ideas. Often the fresh concept does come from an implementer or from a user. However, all my own experience convinces me, and I have tried to show, that the conceptual integrity of a system determines its ease of use. Good features and ideas that do not integrate with a system's basic concepts are best left out. If there appear many such important but incompatible ideas, one scraps the whole system and starts again on an integrated system with different basic concepts.
As to the aristocracy charge, the answer must be yes and no.
Yes, in the sense that there must be few architects, their product must endure longer than that of an implementer, and the architect sits at the focus of forces which he must ultimately resolve in the user's interest. If a system is to have conceptual integrity, someone must control the concepts. That is aristocracy that needs no apology.
No, because the setting of external specifications is not more creative work than the designing of implementations. It is just different creative work. The design of an implementation, given an architecture, requires and allows as much design creativity, as many new ideas, and as much technical brilliance as the design of the external specification. Indeed, the cost-performance ratio of the product will depend most heavily on the implementer, just as ease of use depends most heavily on the architect.
There are many examples from other arts and crafts that lead one to believe that discipline is good for art. Indeed, an artist's aphorism asserts, "Form is liberating." The worst buildings are those whose budget was too great for the purpose to be served. . . .
Similarly, I observe that the external provision of an architecture enchances, not cramps, the creative style of an implementing group. They focus at once on the part of the problem no one has addressed, and inventions begin to flow. In an unconstrained implementing group, most thought and debate goes into architectural decisions, and implementation proper gets short shrift [5]
. . . "We finally decided to implement the language unchanged and unimproved, for the debates about language would have taken all our effort." [6]
(The mythical man-month : essays on software engineering, Frederick P. Brooks, Jr. -- Anniversary ed., 1985, Software engineering, pp.46-47 )
[5] Glegg, G. L., The Design of Design. Cambridge: Cambridge Univ. Press, 1969, says "At first sight, the idea of any rules or principles being superimposed on the creative mind seems more likely to hinder than to help, but this is quite untrue in practice. Disciplined thinking focusses inspiration rather than blinkers it."
[6] Conway, R. W. "The PL/C Compiler," Proceeding of a Conf. on Definition and Implementation of Universal Programming Languages. Stuttgart, 1970.
____________________________________
____________________________________
Dorothy Sayers (mmm)
The Plan
Page 49,
G. A. Blaauw points out that creative effort involves three
distinct phases:
(1) architecture,
(2) implementation, and
(3) realization.
Page 15,
Dorothy Sayers divides creative activity into three stages:
1. the idea (architecture),
2. the implementation (implementation), and
3. the interaction (realization).
(The mythical man-month : essays on software engineering, Frederick P. Brooks, Jr. -- Anniversary ed., © 1985, Software engineering, p.49, p.15.)
____________________________________
p.15
Dorothy Sayers, in her excellent book, "The Mind of the Maker," divides creative activity into three stages: the idea, the implementation, and the interaction.
The idea (1)
“A book, then or a computer, or a program comes into existence first as an ideal construct, built outside time and space, but complete in the mind of the author.”
The implementation (2)
“It is realized in time and space, by pen, ink, and paper, or by wire, silicon, and ferrite.”
The interaction (3)
“The creation is complete when someone reads the book, uses the computer, or runs the program, thereby interacting with the mind of the maker.”
This description, which Miss Sayers uses to illuminate not only human creative activity but also the Christian doctrine of the Trinity (tri=3) (adopted from Greek philosophy), will help us in our present task.
For the human makers of things, the incompletenesses and inconsistencies of our ideas become clear only during implementation. Thus it is that writing, experimentation, "working out" are essential disciplines for the theoretician.
In many creatives activities the medium of execution is intractable. Lumber splits; paints smear; electrical circuits ring. These physical limitations of the medium constrain the ideas that may be expressed, and they also create unexpected difficulties in the implementation.
Implementation, then, takes time and sweat both because of the physical media and because of the inadequacies of the underlying ideas. We tend to blame the physical media for most of our implementation difficulties; for the media are not "ours" in the way the ideas are, and our pride colors our judgement.
(The mythical man-month : essays on software engineering, Frederick P. Brooks, Jr. -- Anniversary ed., © 1985, Software engineering, p.15 )
____________________________________
architecture, implementation, and realization.
p.49 As Blaauw points out, the total creative effort involves three distinct phases:
(1) architecture,
(2) implementation, and
(3) realization.
It turns out that these can in fact be begun in parallel and proceed simultaneously.
(The mythical man-month : essays on software engineering, Frederick P. Brooks, Jr. -- Anniversary ed., © 1985, Software engineering, p.15, p.49 )
____________________________________
p.45
architecture, implementation, and realization.`
By the architecture of a system, I mean the complete and detailed specification of the user interface. For a computer this is the programming manual. For a compiler it is the langugage manual. For a control program it is the manuals for the languages or languages used to invoke its functions. For the entire system it is the union of the manuals the user must consult to do his entire job.
The architect of a system, like the architect of a building, is the user' agent. It is his job to bring professional and technical knowledge to bear in the unalloyed interest of the user, as opposed to the interests of the salesman, the fabricator, etc. [2]
Architecture must be carefully distinguished from implementation. As Blaauw has said, "Where architecture tells WHAT happens, implementation tells HOW it is made to happen." [3] He gives a simple example a clock, whose architecture consists of the face, the hands, and the winding knob. When a child has learned this architecture, he can tell time as easily from a wristwatch as from a church tower. The implementation, however, and its realization, describe what goes on inside the case--powering by any of many mechanisms and accuracy and control by any of many.
(The mythical man-month : essays on software engineering, Frederick P. Brooks, Jr. -- Anniversary ed., 1985, Software engineering, p.45 )
[2] Brooks, F. P. "Architectural philosophy," in W. Buchholz (ed.), Planning A Computer System. New York: McGraw-Hill, 1962.
[3] Blaauw, G. A., "Hardware requirements for the fourth generation," in F. Gruenberger (ed.), Fourth Generation Computers. Englewood Cliffs, N.J.: Prentice-Hall, 1970
____________________________________
aristo v. demo (mmm)
pp.46-47
Now we can deal with the deeply emotional question of aristocracy versus democracy. Are not the architects a new aristocracy, an intellectual elite, set up to tell the poor dumb implementers what to do? Has not all the creative work been sequestered for this elite, leaving the implementers as cogs in the machine? Won't one get a better product by getting the good ideas from all the team, following a democratic philosophy, rather than by restricting the development of specification to a few?
As to the last question, it is easiest. I will certainly not contend that only the architects will have good architectural ideas. Often the fresh concept does come from an implementer or from a user. However, all my own experience convinces me, and I have tried to show, that the conceptual integrity of a system determines its ease of use. Good features and ideas that do not integrate with a system's basic concepts are best left out. If there appear many such important but incompatible ideas, one scraps the whole system and starts again on an integrated system with different basic concepts.
As to the aristocracy charge, the answer must be yes and no.
Yes, in the sense that there must be few architects, their product must endure longer than that of an implementer, and the architect sits at the focus of forces which he must ultimately resolve in the user's interest. If a system is to have conceptual integrity, someone must control the concepts. That is aristocracy that needs no apology.
No, because the setting of external specifications is not more creative work than the designing of implementations. It is just different creative work. The design of an implementation, given an architecture, requires and allows as much design creativity, as many new ideas, and as much technical brilliance as the design of the external specification. Indeed, the cost-performance ratio of the product will depend most heavily on the implementer, just as ease of use depends most heavily on the architect.
There are many examples from other arts and crafts that lead one to believe that discipline is good for art. Indeed, an artist's aphorism asserts, "Form is liberating." The worst buildings are those whose budget was too great for the purpose to be served. . . .
Similarly, I observe that the external provision of an architecture enchances, not cramps, the creative style of an implementing group. They focus at once on the part of the problem no one has addressed, and inventions begin to flow. In an unconstrained implementing group, most thought and debate goes into architectural decisions, and implementation proper gets short shrift [5]
. . . "We finally decided to implement the language unchanged and unimproved, for the debates about language would have taken all our effort." [6]
(The mythical man-month : essays on software engineering, Frederick P. Brooks, Jr. -- Anniversary ed., 1985, Software engineering, pp.46-47 )
[5] Glegg, G. L., The Design of Design. Cambridge: Cambridge Univ. Press, 1969, says "At first sight, the idea of any rules or principles being superimposed on the creative mind seems more likely to hinder than to help, but this is quite untrue in practice. Disciplined thinking focusses inspiration rather than blinkers it."
[6] Conway, R. W. "The PL/C Compiler," Proceeding of a Conf. on Definition and Implementation of Universal Programming Languages. Stuttgart, 1970.
____________________________________
____________________________________
Dorothy Sayers (mmm)
The Plan
Page 49,
G. A. Blaauw points out that creative effort involves three
distinct phases:
(1) architecture,
(2) implementation, and
(3) realization.
Page 15,
Dorothy Sayers divides creative activity into three stages:
1. the idea (architecture),
2. the implementation (implementation), and
3. the interaction (realization).
(The mythical man-month : essays on software engineering, Frederick P. Brooks, Jr. -- Anniversary ed., © 1985, Software engineering, p.49, p.15.)
____________________________________
p.15
Dorothy Sayers, in her excellent book, "The Mind of the Maker," divides creative activity into three stages: the idea, the implementation, and the interaction.
The idea (1)
“A book, then or a computer, or a program comes into existence first as an ideal construct, built outside time and space, but complete in the mind of the author.”
The implementation (2)
“It is realized in time and space, by pen, ink, and paper, or by wire, silicon, and ferrite.”
The interaction (3)
“The creation is complete when someone reads the book, uses the computer, or runs the program, thereby interacting with the mind of the maker.”
This description, which Miss Sayers uses to illuminate not only human creative activity but also the Christian doctrine of the Trinity (tri=3) (adopted from Greek philosophy), will help us in our present task.
For the human makers of things, the incompletenesses and inconsistencies of our ideas become clear only during implementation. Thus it is that writing, experimentation, "working out" are essential disciplines for the theoretician.
In many creatives activities the medium of execution is intractable. Lumber splits; paints smear; electrical circuits ring. These physical limitations of the medium constrain the ideas that may be expressed, and they also create unexpected difficulties in the implementation.
Implementation, then, takes time and sweat both because of the physical media and because of the inadequacies of the underlying ideas. We tend to blame the physical media for most of our implementation difficulties; for the media are not "ours" in the way the ideas are, and our pride colors our judgement.
(The mythical man-month : essays on software engineering, Frederick P. Brooks, Jr. -- Anniversary ed., © 1985, Software engineering, p.15 )
____________________________________
architecture, implementation, and realization.
p.49 As Blaauw points out, the total creative effort involves three distinct phases:
(1) architecture,
(2) implementation, and
(3) realization.
It turns out that these can in fact be begun in parallel and proceed simultaneously.
(The mythical man-month : essays on software engineering, Frederick P. Brooks, Jr. -- Anniversary ed., © 1985, Software engineering, p.15, p.49 )
____________________________________
No comments:
Post a Comment