Declarative Semantics in Object-Oriented Software Development - A Taxonomy and Survey

Document Type: Research Paper

Author

Department of Statistics, Mathematics, and Computer Science, Allameh Tabataba’i University, Tehran, Iran

Abstract

One of the modern paradigms to develop an application is object oriented analysis and design. In this paradigm, there are several objects and each object plays some specific roles in applications. In an application, we must distinguish between procedural semantics and declarative semantics for their implementation in a specific programming language. For the procedural semantics, we can write a set of instructions that must be executed sequentially. The declarative semantics declare a set of facts and rules. They do not specify the sequence of steps for doing the processing. In this paper, we present four taxonomies for the rules in object-oriented paradigm and discuss how the paradigm can be extended to support declarative semantic of applications. Then, the rules in the taxonomies are evaluated in four case studies. After that, an approach is recommended for finding and implementation of declarative semantics, based on some practical experience obtained from the evaluation.

Graphical Abstract

Declarative Semantics in Object-Oriented Software Development - A Taxonomy and Survey

Keywords


[1] M. Langer, "Analysis and Design of Information Systems," 3rd ed., Springer-Verlag London Limited, 2008.

[2] P. Coad, E. Yourdon, Object-Oriented Analysis, Yourdon Press, 1991.

[3] S. H. Pfleeger, J. M. Atlee, "Software Engineering: Theory and Practice," 4th ed., Pearson, 2010.

[4] R. S. Pressman, “Software Engineering: A Practitioner's Approach,” 8th ed., McGraw-Hill, 2015.

[5] Y. Sommerville, “Software Engineering,” 10th ed., Pearson Education, 2016.

[6] L. A. Stein, H. Lieberman, and D. Ungar, "A shared view of sharing: The Treaty of Orlando, Object-Oriented Concepts, Databases, and Applications”, W. Kim and F. H. Lechosky, Eds. New York: ACM Press, 1989.

[7] M. Asadi, H. Rashidi, “A Model for Object-Oriented Software Maintainability Measurement,” International Journal of Intelligent Systems and Applications, pp. 60-66, 2016.

[8] G. Bavota, A. De. Lucia, A. Marcus, and R. Oliveto, “Automating extract class refactoring: an improved method and its evaluation,” Empirical Software Engineering, vol. 19, pp. 1616- 1664, 2014.

[9] K. Beck, W. Cunningham, "A laboratory for teaching object oriented thinking," OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications, ACM SIGPLAN Notices, 1989.

[10] A. Cockburn, Writing Effective Use Cases (Draft 3), Addison Wesley Longman, 2000.

[11] M. Fokaefs, N. Tsantalis, E. Strouliaa, and A. Chatzigeorgioub, “Identification and Application Of Extract Class Refactoring In Object-Oriented Systems,” Journal of Systems and Software, vol. 85, pp. 2241–2260, 2012.

[12] H. Rashidi, “Objects Identification in Object-Oriented Software Development - A Taxonomy and Survey on Techniques”, Journal of Electrical and Computer Engineering Innovations, vol. 3(2), pp. 27-43, 2015.

[13] B. Bruegge, A. H. Dutoit, Object-Oriented Software Engineering: Using UML, Patterns, and Java, Pearson Prentice Hall, 2010.

[14] I. Jacobson, M. P. Christerson, and F. Overgaard, ObjectOriented Software Engineering- A Use Case Approach, Addison-Wesley, Wokingham, England, 1992.

[15] J. Rumbaugh, M. Blaha, W. Premerlani, E. Eddy, and W. Lorensen, Object-Oriented Modeling and Design, Prentice-Hall, 1992.

[16] R. King, My Cat Is Object-Oriented, Object-Oriented Concepts, Databases and Applications, Addison Wesley, 1989. [17] R. Wirfs-Brock, Designing Object-Oriented Software, PrenticeHall, 1990.

[18] C. Larman, "Applying UML and Patterns – An Introduction to Object-Oriented Analysis and Design and Iterative Development," 3rd ed., Prentice Hall, 2005.

[19] D. Rosenberg, M. Stephens, Use Case Driven Object Modeling with UML: Theory and Practice, Apress, 2007.

[20] G. Canforaa, A. Cimitilea, A. D. Luciaa, and G. A. D. Lucca, “Decomposing Legacy Systems into Objects: An Eclectic Approach,” Information and Software Technology, vol. 43, pp. 401-412, 2001.

[21] M. Fowler, K. Scott, “UML Distilled A Brief Guide to The Standard Object Modeling Guide,” 2nd ed., Addison Wesley Longman, Inc, 1999.

[22] N. Goldsein, J. Alger, Developing Object-Oriented Software for the Macintosh Analysis, Design, and Programming, AddisonWesley, 1992.

[23] J. V. Gurp, J. Bosch, “Design, Implementation and Evolution of Object-Oriented Frameworks: Concepts and Guidelines,” Software—Practice and Experience, vol. 31, pp. 277-300, 2001.

[24] I. Jacobson, G. Booch, The Unified Software Development Process, Addison-Wesley, Reading, MA, 1999.

[25] J. Rumbaugh, “Getting Started: Using Use Cases To Capture Requirements,” Object-Oriented Programming, vol. 7(5), pp. 8- 12, 1994.

[26] S. Schlaer, S. Melior, Object Lifecycles: Modeling the World in States, Yourdon Press, 1992.

[27] G. Booch, J. Rumbaugh, and I. Jacobson, The Unified Modeling Language User Guide, Addison Wesley, 1998.

[28] J. Martin, J. Odell, Object-Oriented Analysis and Design, Prentice-Hall, 1992.

[29] R. C. Lee, W. M. Tepfenhart, "UML and C++: A Practical Guide to Object-Oriented Development," 2nd ed., Pearson Prentice Hall, 2005.

[30] Z. Rashidi, “Properties of Relationships among objects in Object-Oriented Software Design,” International Journal of Programming Languages and Applications, vol. 5(4), pp. 1-13, 2015.

[31] Merriam-Webster Online (2011), Dictionary and Thesaurus, from http:// www.merriam-webster.com

[32] K. S. Subhash, M. Navi, and B. Bhojane, “NLP based ObjectOriented Analysis and Design from Requirement Specification,” International Journal of Computer Applications, vol. 47(21), 2012.

[33] H. Rashidi, Firm Planning, Using Computing Models, Eghtesad Farda Press (in Persian), 2014.

[34] H. Rashidi, “Software Engineering-A programming approach,” 2nd ed., Allameh Tabataba’i University Press (in Persian), Iran, 2014.