ABSTRACT
Abstractions are the essence of software design, and various enterprises, such as design patterns, architectural styles, programming clichés and idioms, attempt to capture, organize and present them to software engineers. This position paper explores the possibility of mounting a more comprehensive effort to catalog abstractions. Related efforts such as the design of textual and electronic dictionaries, markup languages for software artifacts and ontologies of computer science topics are surveyed to inform the effort. A set of derivative questions is presented to explore the problem space.
- Aitchison, J. and Gilchrist, A. Thesaurus Construction, Second Edition. Aslib, The Association for Information Management, London, England, 1987.Google Scholar
- Booch, G., Rumbaugh, J. and Jacobson, I. The Unified Modeling Language User Guide. Addison Wesley, 1999. Google ScholarDigital Library
- Brown, W. J., Malveau, R. C., McCormick, H. W., and Mowbray, T. J. AntiPatterns. John Wiley, 1998.Google Scholar
- Yih-Farn Chen, Y-F., Nishimoto, M. Y., and Ramamoorthy, C. V. The C information abstraction system. IEEE Transactions on Software Engineering, 16, 3, (Mar. 1990), 325--334. Google ScholarDigital Library
- Demeyer, S., Nierstrasz, O. M., Ducasse, S. Object-Oriented Reengineering Patterns. Morgan Kaufmann, 2002. Google ScholarDigital Library
- Ehn, P. Playing the language-games of design and use-On skill and participation. In the Conference on Supporting Group Work Archive, ACM, (Palo Alto, California), 1988, 142--157. Google ScholarDigital Library
- Fowler, M. Analysis Patterns: Reusable Object Models. Addison-Wesley, 1996. Google ScholarDigital Library
- Fowler, M. Refactoring. Addison Wesley, 1999.Google Scholar
- Gamma E., Helm, R., Johnson, R., and Vlissides, J. Design Patterns: Abstraction and Reuse of Object-Oriented Software. Addison-Wesley, 1995. Google ScholarDigital Library
- Jain, A. K., Murty, M. N. and Flynn, P. J. Data clustering: A review. ACM Computing Surveys, 31, 3, (Sep. 1999), 264--323. Google ScholarDigital Library
- Knuth, D. E. The Art of Computer Programming, Volumes 1-3. Addison Wesley, 1998. Google ScholarDigital Library
- Koza, J. R. Genetic Programming / On the Programming of Computers by Means of Natural Selection. MIT Press, 1992. Google ScholarDigital Library
- Landau, S. I. Dictionaries / The Art and Craft of Lexicography. Charles Scribner, 1984.Google Scholar
- Lenat, D. B. Cyc: A large scale investment in knowledge infrastructure. Communications of the ACM, 38, 11, (Nov. 1995), 33--38. Google ScholarDigital Library
- Miller, G. A. WordNet: A lexical database for English. Communications of the ACM, 38, 11, (Nov. 1995), 39--41. Google ScholarDigital Library
- Partsch, H. and Steinbruggen, R. Program transformation systems. ACM Computing Surveys, 15, 3, (Sep. 1983), 189--226. Google ScholarDigital Library
- Perlis, A. and Rugaber, S. Programming with idioms in APL. In Proceedings of APL International Conference, (Rochester, NY), 1979, 232--235. Google ScholarDigital Library
- Prieto-Díaz, R. and Freeman, P. Classifying software for reusability. IEEE Software, 4, 1, (Jan. 1987), 94--104.Google ScholarDigital Library
- Raymond, D. R. and Tompa, F. W. Hypertext and the Oxford English Dictionary. Communications of the ACM, 31, 7, (Jul. 1988), 871--879. Google ScholarDigital Library
- Reasoning Systems Inc. Refine User's Guide. (Palo Alto, California), 1990.Google Scholar
- Rich, C. and Waters, R. C. The Programmer's Apprentice. Addison Wesley, 1990. Google Scholar
- Roget, P. Roget's Thesaurus of English Words and Phrases. George Davidson (Editor), Penguin Books, 2002.Google Scholar
- Rugaber, S., Ornburn, S. B. and LeBlanc, R. J. Jr. Recognizing design decisions in programs. IEEE Software, 7, 1, (Jan. 1990), 46--54. Google ScholarDigital Library
- Shaw, M. Prospects for an engineering discipline of software. IEEE Software, 7, 6 (Nov. 1990), 15--24. Google ScholarDigital Library
- Shaw, M. and Garlan, D. Software Architecture / Perspectives on an Emerging Discipline. Prentice Hall, 1996. Google ScholarDigital Library
- Snetling, G. Concept analysis - A new framework for program understanding. In SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE'98), (Montreal, Canada), 1998. Google ScholarDigital Library
- Warmer, J. and Kleppe, A. The Object Constraint Language, Second Edition. Addison Wesley, 2003. Google ScholarDigital Library
- Webster's Seventh New Collegiate Dictionary. G & C Merriam Co., 1965.Google Scholar
- Wills, L. M. Automated Program Recognition by Graph Parsing. Ph.D. Thesis, Massachusetts Institute of Technology, Technical report 1358, MIT Artificial Intelligence Laboratory, July 1992. Google ScholarDigital Library
- Winchester, S. The Professor and the Madman: A Tale of Murder, Insanity, and the Making of the Oxford English Dictionary. G. K. Hall & Co., Thorndike, Maine, 1998.Google Scholar
- Yokoi, T. The EDR electronic dictionary. Communications of the ACM, 38, 11 (Nov. 1995), 42--44. Google ScholarDigital Library
Index Terms
- Cataloging design abstractions
Recommendations
Reverse engineering: a roadmap
ICSE '00: Proceedings of the Conference on The Future of Software EngineeringUnderstanding software systems using reverse engineering technology perspectives from the Rigi project
CASCON '93: Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: software engineering - Volume 1Software engineering research has focused mainly on software construction and has neglected software maintenance and evolution. Proposed is a shift in research from synthesis to analysis. Reverse engineering is introduced as a possible solution to ...
Patterns meta-specification and cataloging: towards knowledge management in software engineering
OOPSLA '06: Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applicationsWriting patterns is a very important task for leveraging knowledge within an organization or in the software engineering community as a whole. Patterns are more than text, diagrams or source code. Patterns are knowledge that comes from experience. ...
Comments