Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issues around Object Subclassing #411

Open
ikiril01 opened this issue Jan 8, 2016 · 0 comments
Open

Issues around Object Subclassing #411

ikiril01 opened this issue Jan 8, 2016 · 0 comments

Comments

@ikiril01
Copy link
Member

ikiril01 commented Jan 8, 2016

There are several issues that exist around Object Subclassing in CybOX:

  • Excessive sub-classing. Objects such as the Windows Driver are three levels deep in their respective class hierarchy, which means that changes to any of their parents cascade to their "leaf" Objects. Accordingly, this makes maintenance and versioning difficult, as it means that the version of any "leaf" Objects needs to be updated in conjunction with their parents. Accordingly, if one considers the future potential for CybOX to incorporate additional types of system-specific Objects (e.g., Android, iOS), etc., this could lead to even more complicated and deep Object hierarchies.
  • Inconsistent class-based design. Currently, CybOX is inconsistent with the way it uses sub-classing in its Objects. For instance, there are cases (such as with the Windows Thread Object) where a parent Object should be defined (i.e., a Thread Object) to serve as the base class and yet is not. Conversely, there are cases where a parent Object is defined only to serve as a base class and is unlikely to be ever used by itself, such as with the GUI Object.
  • Restrictive classing. The nature of sub-classing means that when creating content, an Object is either an instance of one class or another - it cannot be both. For instance, one cannot define an instance of an Archive File with Windows-specific properties, since these Objects do not inherit from each other.

Accordingly, it may make sense to deprecate Object subclassing in favor of an extension-based approach.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant