This paper defines metrics for object-based systems. A hierarchical, abstract representation of object-based software is presented, and is used to define programming-language-independent metrics formulas. Novel techniques are given for measuring information hiding, cohesion, encapsulation, coupling, object-orientedness, maintainability, and potential concurrency among and within objects. The metrics are useful for guiding design optimization. Additionally, the concurrency metrics are useful for guiding object distribution for execution on concurrent hardware platforms. A toolset that computes several of the metrics is also described.