http://www.cs.uwm.edu/~alnusair/ontologies/scro
http://www.cs.uwm.edu/~alnusair/ontologies/scro
http://www.cs.uwm.edu/~alnusair/ontologies/scro/2009/07/15
Version 1.2 (01/13/2010)
SCRO is created to support major Software Understanding tasks by explicitly representing the conceptual knowledge structure found in source code.
SCRO captures major concepts of object-oriented programs and helps understand the relations and dependencies among source code artifacts.
Supported features include, encapsulation, inheritance (subclassing and subtyping), method overloading, method overriding,
and method signature information.
A fragment of SCRO's taxonomy is shown below. Each of the concepts (classes) shown in the excerpt is interpreted as
a set that defines a group of individuals (instances) sharing some properties. Disjoint subclasses are also modeled
to define different sets of individuals. For example, all individuals that are members of class
InstanceMethod are necessarily members of class Method but none of them can simultaneously be a member of another
subclass of Method.
SCRO's classes collectively represent the most important concepts found
in object-oriented programs including various kinds of methods, classes and nested classes, fields, etc.
Various datatype properties, object properties, sub-properties, and ontological axioms are defined within
SCRO to represent relationships among concepts by linking individuals from different OWL classes. For example,
hasOutputType is a functional object property defined to represent the return type of a method while hasActualOutputType
is a property that represent the possible runtime return types of a method. Inverse properties are used to define
the inverse relation. For example, representing aggregation (Whole-Part) relationships between objects is modeled
using the object property hasPart and its inverse isPartOf. hasPart on the other hand, is a sub-property of use which
describes the 'use' relationship for objects that need to be aware of other objects to carry out their operations.
SCRO's knowledge is represented using OWL-DL ontology language.
It was created using Protege ontology editor and validated using Pellet OWL-DL reasoner.
![]() |
![]() |
OWL File Download:
scro.owl
Awny Alnusair and Tian Zhao