meta software theory