Objects Identification in Object-Oriented Software Development - A Taxonomy and Survey on Techniques

Document Type: Research Paper


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


Analysis and design of object oriented is onemodern paradigms for developing a system. In this paradigm, there are several objects and each object plays some specific roles. Identifying objects (and classes) is one of the most important steps in the object-oriented paradigm. This paper makes a literature review over techniques to identify objects and then presents six taxonomies for them. The first taxonomy is based on the documents exist for a domain. The second taxonomy is based on reusable previous knowledge and the third one relies on commonalities in a domain. The fourth taxonomy is concerned with decomposing a domain. The fifth taxonomy is based on experience view and sixth one is related to use the abstraction in a domain. In this paper, the constraints, strengths and weaknesses of the techniques in each taxonomy are described. Then, the techniques are evaluated in four systems inside an educational center in a university. A couple of approach is recommended for finding objects, based on some practical experiences obtained from the evaluation.


[1] G. Bavota, A D. 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.

[2] G. Nanda, N. C. Kar, “A Survey And Comparison Of Characteristics Of Motor Drives Used In Electric Vehicles,” IEEE Electrical and Computer Engineering Conf, pp. 811-814.

[3] G. Booch., “Object-Oriented Development,” IEEE Transaction on Software Engineering, 12 (2), pp. 211-221, 1986

[4] G. Booch., “Software Engineering with Ada,” Benjamin/Cummings Publishing Co., Menlo Park, California, 1983

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

[6] G. Booch, J. Rumbaugh, and I. Jacobson “The Unified Software Development Process,”Addison-Wesley, 1998

[7] F. P. Brooks, “The Silver Bullet, Essence and Accidents of Software Engineering,” Information Processing '86. Ed., Kugler H. J., Elsevier Science Publishers B.B. (North-Holland), 1986

[8] F. P. Brooks, “The Mythical Man-month: Essay on Software Engineering,” Addison-Wesley, 1982

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

[10] 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

[11] Ch. Peter, “The entity-relationship model-Toward a unified view of data,” ACM Trans. on Database Systems, Vol. 1(1.), pp. 9-36, 1976

[12] P. Coad, and E. Yourdon, “Object-Oriented Analysis,” Yourdon Press, 1991

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

[14] E. Codd, “Extending the database relational model to capture more meaning,” ACM Trans. on Database Systems, Vol. 4(4), pp. 397-434, 1979

[15] A. V. Deursen, T. Kuipers, “Identifying Objects Using Cluster and Concept Analysis,” Proc. of 21st International Conference on Software Engineering, Los Angeles, CA, ACM Press, New York, pp.246-255, 1999

[16] Faculty of Electrical, Computer and IT engineering, Islamic Azad University, Qazvin Branch,

[17] 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.

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

[19] N. Goldsein, and J. Alger “Developing Object-Oriented Software for the Macintosh Anaiysis, Design, and Programming,” Addison-Wesley, 1992

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

[21] I. Jacobson. and G. Booch, “The Unified Software Development Process,” Addison-Wesley, Reading, MA, 1999

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

[23] Josuttis, M. Nicolai, “The C++ Standard Library: A Tutorial and Reference,” Addison-Wesley, 1999

[24] R. King, “My Cat Is Object-Oriented”, Object-Oriented Concepts, Databases and Applications”, Addison Wesley, 1989 [25] M. Langer, “Analysis and Design of Information Systems”, 3rdEdition, Springer-Verlag London Limited, 2008

[26] R.C. Lee and W.M. Tepfenhart, “UML and C++: A Practical Guide to Object-Oriented Development,” 2ndEdition, Pearson Prentice Hall, 2005

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

[28] S. M. McMennin, and J. F. Palmer. Essential System Analysis, Yourdon Press, 1984

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

[30] B. Meyer, “Object-Oriented Software Construction,” PrenticeHall International (UK) Ltd., Cambridge, UK, 1988

[31] Musser, R. David, and A. Saini., “STL Tutorial and Reference Guide C++ Programming with the Standard Template Library,” Addison Wesley, 1996

[32] S.h. Pfleeger, and J.M. Atlee, “Software Engineering: Theory and Practice,” 4th Edition, Pearson, 2010

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

[34] M. R. Quillian, “Semantic Memory In Marvin Minsky,” Semantic Information Processing. Cambridge, MIT Press, 1968 [35] H. Rashidi, “Software Engineering-A programming approach,” 2ndEdition, AllamehTabataba’i University Press (in Persian), Iran, 2014

[36] D. Ross, “Applications and Extensions of SADT,” IEEE Computer, 1985, Vol. 18 (4), pp. 25-34.

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

[38] J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, and W. Lorensen, “Object-Oriented Modeling and Design,” PrenticeHall, 1992

[39] S. Schlaer, and S. Melior, “Object-Oriented Systems Analysis: Modeling the World in Data,” Yourdon Press, 1988

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

[41] Y. Sommerville, “Software Engineering,” 9th Edition, Pearson Education, 2010.

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

 [43] B. Stroustroup, “The C++ Programming Language,” AddisonWesley, 1991

[44] K.S. Subhash et al., “NLP based Object-Oriented Analysis and Design from Requirement Specification,” International Journal of Computer Applications, , Vol. 47 (21), 2012

[45] M. E. Winston, R. Chaffer, and D. Herrmann, “A Taxonomy of Part-Whole Relations,” Cognitive Science, Vol. 11, pp. 417-444, 1987.

[46] R. Wirfs-Brock, “Designing Object-Oriented Software,” Prentice-Hall, 1990

[47] E. N. Yourdon, and L. L. Constatine,“Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design,”Prentice-Hall, Englewood Cliffs, New Jersey, 1979.

[48] D. Rosenberg, and M. Stephens, “Use Case Driven Object Modeling with UML: Theory and Practice,” Apress, 2007. [49] C. Larman, “:Applying UML and Patterns – An Introduction to Object-Oriented Analysis and Design and Iterative Development”, 3rd edition, Prentice Hall, 2005.

[50] H. Rashidi, “A Systematic Approach to Financial Planning in Firms and Its Implementation in an Enterprise,” Quarterly Journal of Fiscal and Economic Policies, Vol. 2 (8), PP. 73-92, 2014.