Research interests and selected papers

Divider

If we knew what it was we were doing it would not be called research, would it?
-- Albert Einstein

Contact me with ideas for collaboration on these and similar subjects.

Research interests:

Links:

Divider

Object-oriented programming, design, and modelling

My interest in object-oriented programming and design, and in particular in the problem of formal and precise languages for the representation of design patterns, led me to develop LePUS, a formal modelling language with model-theoretic semantics which can be used for the specification of design patterns and of object-oriented design.

Software modelling in LePUS3 and Class-Z: Object-oriented Design Description Languages

  • Amnon H. Eden, Jonathan Nicholson. Codecharts: Roadmaps and Blueprints for Object-Oriented Programs. Wiley-Blackwell, forthcoming.
  •  Epameinondas Gasparis, Jonathan Nicholson, Amnon H. Eden. “LePUS3: An Object-Oriented Design Description Language”. In: Gem Stapleton et al. (eds.) DIAGRAMS 2008. LNAI 5223, pp. 364–367. Berlin: Springer, 2008.
  • Amnon H Eden, Epameinondas Gasparis, Jonathan Nicholson. "LePUS3 and Class-Z Reference Manual. Tech. Rep. CSM-474, ISSN 1744-8050, Department of Computer Science, University of Essex (2007).

The formalization of design patterns

The building-blocks of object-oriented design are formulated and their articulation in various modelling notations is examined here:

  • Amnon H. Eden. “A Theory of Object-Oriented Design.” Information Systems Frontiers, Vol. 4, No. 4 (Nov.–Dec. 2002), pp. 379–391. Amsterdam: Kluwer Academic Publishers.

I am currently in the process of writing a book on object-oriented modelling in LePUS and Class-Z, a visual, mathematical language for modelling programs, application frameworks, and design patterns.

  • Amnon H. Eden. Object-Oriented Modelling. Under preparation.

See also:

Software design theory and practice

The design of computing systems can only properly succeed if it is well-grounded in theory, and ... the important concepts in a theory can only emerge through protracted exposure to application.
-- Robin Milner
The Intension/Locality Hypothesis

Abstraction classes in software design. The investigation of a broad range of software design statements, conduced with Yoram Hirshfeld (TAU) and Rick Kazman, has led us to offer well-defined criteria of distinction between Strategic, Tactical, and Implementation, three classes of software design statements. 

See page: The Intension/Locality Hypothesis.

The detailed description of the hypothesis, defined in mathematical logic and corroborated by evidence drawn from a broad range of software design statement, is offered in this paper:

  • Amnon H. Eden, Rick Kazman, Yoram Hirshfeld. “Abstraction Classes in Software Design.” IEE Software, Vol. 153, No. 4 (Aug. 2006), pp. 163–182. London, UK: The Institution of Engineering and Technology.

Software design vs. software architecture: Our earlier work concerning this distinction was published in ICSE 2003:

  • Amnon H. Eden, Rick Kazman. “Architecture, Design, Implementation.” In: Laurie Dillon, Walter Tichy (eds.), Proc. 25th Int'l Conf. Software EngineeringICSE (3–10 May 2003), Portland, OR, USA, pp. 149–159. Los Alamitos, USA: IEEE Computer Society Press.

The following paper focuses on the distinction between strategic (non-local) vs. tactical (local) design statements:

In more philosophical terms, we argue that the Intension/Locality Hierarchy (“Architecture, Design, Implementation”) is the top-level ontology of software design statements. A philosophically-oriented depiction of these results appeared in this short paper:

Software evolution, In the field of software evolution, my interest in software design theory has led me, in collaboration with Tom Mens, to propose a metric suite for measuring software flexibility. We propose means by which the flexibility of a program can be quantified with relation to a particular class of changes given the 'design' of the program (e.g., using a particular design pattern or an architectural style):

  • Amnon H. Eden, Tom Mens. “Measuring Software Flexibility.” IEE Software, Vol. 153, No. 3 (Jun. 2006), pp. 113–126. London, UK: The Institution for Engineering and Technology.

I am also interested in developing a solution to the problems of architectural drift and architectural erosion [Perry & Wolf 1992], research which has lead us to develop tool support in reconciling software design specifications and modelling with Java implementations.

software science is a discipline which emanates from treating computer programs as objects tantamount to "natural" phenomena, much in the way that zoology treats natural species and astronomy treats stellar bodies, thereby suggesting scientific methods of investigation such as observation, analysis, and empirical validation. Software science stands to software engineering in the way chemistry stands to chemical engineering and material science stands to civil engineering: scientists are distinguished from engineers by being concerned with descriptive rather then normative claims.  (What is software science?)

See also:

Tool support in object-oriented design: specification, verification, and visualization

Two-Tier Programming model

I am also interested in the study of programming languages and in computer-aided software engineering (CASE tools).  The Two-Tier Programming Project is concerned with supporting object-oriented design, modelling, verification, visualization, understanding, and maintenance using the LePUS3 modelling language.

Selected publications:

Website:

Empirical validation:

Artificial intelligence/machine learning, the future of computing

We're all so busy being practical that we don't have time to be intelligent.
Albert E. Cowdrey, The Tribes of Bela

Fix a bug in the program and the program will work today. Show the program how to fix a bug and the program will work forever.
--
Oliver Selfridge, in “Trends & Controversies”

Learning is the most interesting thing people can do and that to imitate real learning we must start at the beginning. We cannot just stuff a computer full of facts that someone else has learned. People learn by doing and so must computers.
-- Roger Schank, in “Trends & Controversies”

Machine learning. My interest in AI lies in Turing's (1950) vision of what he called a computer learning 'child'. I believe that the next breakthrough in AI shall be ushered in by breakthroughs in machine learning. My own research in the subject has been focused in machine learning of ambiguous ('natural') concepts, especially models following the notion of instance-based learning models, including the psychological and philosophical aspects of the learning algorithm.

  • Amnon H. Eden. “Supervised Learning of Natural Concepts.” MSc thesis, Department of Computer Science, Tel Aviv University, 1994.
Civilization advances by extending the number of important operations which we can perform without thinking of them.
-- Alfred North Whitehead

Whatever our cyborg future will hold, it is coming. Many of us born human will die cyborgs. The question we must reevaluate continually is not whether we should become cyborgs, but rather what sort of cyborgs should we become?
--
James Moor (2005)

The future of computing. I'm also interested in the singularity hypothesis, namely that forecast made by Alan Turing, John von Neumann, Irving John Good, Vernor Vinge, and Ray Kurzweil, amongst others, concerning the accelerated pace of technological change.

Some references:

  • Allhoff, F., Lin, P., Moor, J. H., & Weckert, J. 2009. Ethics of Human Enhancement: 25 Questions & Answers. NSF Report.
  • Good, Irving John. 1964. Speculations Concerning the First Ultraintelligent Machine. In Franz L. Alt, Morris Rubinoff (eds.) Advances in Computers. Academic Press, p. 31-88.
  • Hawking, Stephen. 1998. Science in the Next Millennium: Remarks by Stephen Hawking presented at the WHITE HOUSE MILLENNIUM EVENING.
  • Joy, Bill. 2000. Why the Future Doesn't Need Us. Wired Magazine, April.
  • Kurzweil, Ray. 2004. The Law of Accelerating Returns. In Alan Turing: Life and Legacy of a Great Thinker. Springer.
  • Kurzweil, Ray. 2006. The Singularity Is Near: When Humans Transcend Biology. Penguin Books.
  • Moor, James H. 2005. Why We Need Better Ethics for Emerging Technologies. Ethics and Inf. Technol. 7, no. 3: 111-119.
  • Moor, James H., 2005. Should we let computers under our skin? In: Robert J. Cavalier, The impact of the Internet on our moral lives, SUNY Press, pp. 121-138.
  • Moravec, Hans. 1990. Mind Children: The Future of Robot and Human Intelligence. Harvard University Press.
  • Rees, Martin. 2003. Our Final Century: Will the Human Race Survive the Twenty-first Century? William Heinemann.
  • Toffler, Alvin 1970. Future shock. Random House.  
  • Turing, Alan M. 1950. Computing Machinery and Intelligence. Mind 59, no. 236. New Series (October): 433-460.
  • Turing, Alan M. 1951. Intelligent Machinery, A Heretical Theory. The '51 Society. BBC.
  • Vinge, Vernor. 1993. The coming technological singularity: How to survive in the post-human era.

Some videos:

Philosophy of computer science

Science is what you know, philosophy is what you don't know.
-- Bertrand Russell

The Philosophy of Computer Science is concerned with philosophical issues that arise from reflection upon the nature and practice of the academic discipline of computer science. Computer science can be described as being concerned with the meta-activity that is associated with programming: the design, development and investigation of the concepts and methodologies that facilitate and aid the specification, development, implementation and analysis of computational systems. Many of the central philosophical questions of computer science surround and underpin these activities, and many of them centre upon the logical, ontological and epistemological issues that concern it. Analogies and similarities from many branches of philosophy should prove helpful in identifying and clarifying some of the central philosophical concerns of computer science. [Read on...]

Sranford Encyclopedia of Philosophy

Dedicated special issues:

Paradigms of computer science: Is computer science a branch of mathematics, an engineering discipline, or a natural science? Should knowledge about the behaviour of programs proceed deductively or empirically? Are computer programs on a par with mathematical objects, with mere data, or with mental processes? Our investigation in these questions has led us to conclude that distinct positions taken in their regard emanate from distinct sets of received beliefs or paradigms within the discipline:

  • Amnon H Eden. “Three Paradigms of Computer Science.” Minds and Machines, Special issue on the philosophy of computer science, Vol. 17, No. 2 (Jul. 2007), pp. 135–167. London: Springer.

Ontology of computer programs: Our preliminary investigation in the is concerned with three central questions. These questions, and possible answers, are examined in this paper:

  • Amnon H. Eden, Raymond Turner. “Problems in the ontology of computer programs.” Applied Ontology Vol. 2, No. 1 (2007), pp. 13–36. Amsterdam: IOS Press. Also appeared as: Technical report CSM-461 (Sep. 2006), Department of Computer Science, University of Essex, ISSN 1744-8050.

Ontology of software design: A philosophically-oriented depiction of our work on software design theory is given in this short paper:

Ontology of programming languages: Using semantic theories we examine of the ontology of programming languages in this paper:

  • Raymond Turner, Amnon H. Eden. “Towards a Programming Language Ontology.” Ch. 10 in: Gordana Dodig-Crnkovic, Susan Stuart (eds.) Computation, Information, Cognition—The Nexus and the Liminal, pp. 147–159. Cambridge, UK: Cambridge Scholars Press, forthcoming.

Related pages: