In order to be successful in reengineering software projects, proper analysis of the code must be done before transformations can happen. One way to effectively begin analysis of software is to model the system in a way that can be easily understood by developers from all backgrounds yet captures the salient features of the code in a precise and complete fashion. The model thus needs to be designed in a manner that takes into account concepts from all programming languages yet model them in a language independent style. The representation being introduced in this paper has been specifically designed for use in software engineering projects. The presented representation provides a way to model software code of many languages by carefully examining concepts from common programming languages and organizing them in a hierarchical structure.