1 C Pronk Aphorisms in Computer Science Where































![Hello World in RMI-context - 2 32 C. Pronk public static void main(String args[]) Hello World in RMI-context - 2 32 C. Pronk public static void main(String args[])](https://slidetodoc.com/presentation_image/3776cc648bace8ce8c4a5e43adf77638/image-32.jpg)














































- Slides: 78
1 C. Pronk Aphorisms in Computer Science Where you stand is where you sit
2 C. Pronk Requirements Engineering • Requirements Engineering is more difficult now, because all systems that were easy to specify, have been built some time ago. • Tom De. Marco '01 • Requirements deficiencies are the primary source of project failures. • Robert Glass • There are no wrong programs. Such a program is simply a different program • W. L. van der Poel
Modularization • Every module is characterized by its knowledge of a design decision which it hides from all others. Its interface is chosen to reveal as little as possible about its inner workings. 3 C. Pronk • Only what is hidden can be changed without risk. • David L. Parnas '72
Dijkstra-isms • The goto statement as it stands is just too primitive; it is too much an invitation to make a mess of one's program • E. W. Dijkstra '68 4 C. Pronk • Testing can show the presence, but not the absence of errors • E. W. Dijkstra
On validation and static verification 5 C. Pronk • We can conclude from experience that inspections increase productivity and improve final program quality. • M. E. Fagan '76
Errors • Users don't observe errors or faults. They observe execution failures. • H. Mills '90 6 C. Pronk • Smaller changes have a higher error density than larger ones. • Basili-Möller • Error prevention is better than error removal. • Mays
Formal Methods • Formal methods significantly reduce design errors, or eliminate them early. • Bauer-Zemanek 7 C. Pronk • Proving programs solves the problems of correctness, documentation and compatibility. • C. A. R. Hoare
Software Evolution - 1 • The term evolution describes a process of progressive change in the attributes of entities. This may include: – – improvement in some sense, adaptation to a changing environment, loss of not-required or undesired properties , or, the emergence of new ones. 8 C. Pronk • M. M. Lehman '94
Software Evolution - 2 • A system that is used will be changed. • An evolving system increases its complexity, unless work is done to reduce it. 9 C. Pronk • System evolution is determined by a feedback process. • M. M. Lehman
Complexity - 1 • The software field is not a simple one and, if anything, it is getting more complex at a faster rate than we can put in order. • Barry W. Boehm '79 10 C. Pronk • Building software will always be hard. There is inherently no silver bullet. • F. P. Brooks, Jr '87
Complexity - 2 11 C. Pronk • Programmers are always surrounded by complexity; we cannot avoid it. Our applications are complex because we are ambitious to use our computers in ever more sophisticated ways. • C. A. R. Hoare '81 • Simple, elegant solutions are more effective, but they are much harder to find than complex ones • N. Wirth '85
Complexity - 3 • If you have a procedure with 10 parameters, you probably missed some. • Alan Perlis 12 C. Pronk • The software is done. We are just trying to get it to work. • Statement in Executive Program Review • Good, fast, cheap. Pick any two. • Old software engineering aphorism
Work power 13 C. Pronk • The best engineers or scientists do not work for a company, a university or a laboratory; they really work for themselves. • W. S. Humphrey '97
Software Architecture • Software architecture involves the description of elements from which systems are built, interactions amongst those elements, patterns that guide there composition, and constraints on these patterns • Mary Shaw '96 14 C. Pronk • Architecture wins over technology • Morris-Ferguson
Performance • The price/performance ratio of processors is halved every 18 months. • Moore 15 C. Pronk • The capacity of magnetic devices increases by a factor of ten every decade. • Hoagland • Wireless bandwidth doubles every 2. 5 years. • Cooper
16 C. Pronk
Hello World from the GNU archives 17 C. Pronk
Hello world - 1 High School/Jr. High 10 PRINT "HELLO WORLD" 20 END 18 C. Pronk First year in College program Hello(input, output) begin writeln('Hello World') end. Senior year in College (defun hello (print (cons 'Hello (list 'World))))
Hello World - 2 New professional 19 C. Pronk #include <stdio. h> void main(void) { char *message[] = {"Hello ", "World"}; int i; for(i = 0; i < 2; ++i) printf("%s", message[i]); printf("n"); }
Hello World - 3 a 20 C. Pronk Seasoned professional #include <iostream. h> #include <string. h> class string { private: int size; char *ptr; public: string() : size(0), ptr(new char('