Where are the Laws of Object-Oriented Programming?

In this position paper we overview ongoing research work aimed at nd-ing and formalizing laws of object-oriented programming. Rather than formal development, our main interest is to guide, justify and document informal object-oriented programming practices. In particular, we focus on laws that support software evolution practices such as introducing common analysis and design patterns. Moreover, contrasting with previous work on programming laws, we investigate both universal and method-speciic laws.

[1]  John Tang Boyland,et al.  Promises: limited specifications for analysis and manipulation , 1998, Proceedings of the 20th International Conference on Software Engineering.

[2]  Thomas J. Mowbray,et al.  AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis , 1998 .

[3]  Peter Coad,et al.  Object-oriented patterns , 1992, CACM.

[4]  Petros S. Stefaneas,et al.  Logical support for modularisation , 1993 .

[5]  Paulo Borba,et al.  Systematic Development of Concurrent Object-Oriented Programs , 1997, US-Brazil Joint Workshops on the Formal Foundations of Software Systems.

[6]  Liwu Li,et al.  The Java Language , 1998 .

[7]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[8]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .

[9]  David A. Watt,et al.  Programming language concepts and paradigms , 1990, Prentice Hall International Series in Computer Science.

[10]  Joseph A. Gogueny Reenement of Concurrent Object Oriented Programs , 1995 .

[11]  Doug Lea,et al.  Concurrent Programming In Java , 1996 .

[12]  David A. Naumann,et al.  Predicate Transformer Semantics of an Oberon-Like Language , 1994, Programming Concepts and Methods.

[13]  Augusto Sampaio An Algebraic Approach to Compiler Design , 1993, AMAST Series in Computing.

[14]  Scott W. Ambler Building object applications that work , 1997 .

[15]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .