Object oriented approach is growing very fast in various applications of the computer science. Those applications may contain a lot of entity relationships which, need to be understood by the maintainers. An approach for formally defining slices for object oriented programs is an important problem in the maintenance phase. This research proposes definitions of slices for object oriented programs. Basic relations such as Usage, Affect and Inheritance are defined, and they are extended to a family of dependence relations between entities in object oriented programs and defines slicing techniques based on these relations. Slice collection methods for specified slice criteria are given. This approach shows how the proposed slicing concepts and rules can be applied within the software maintenance process. The research also develop an object oriented system tool (O2SMt) which represent an automatically extractable and captures an object oriented software system dependencies in order to aid in maintenance phase. The O2SMt captures program slicing according to the slicing concepts, rules and definitions to feature out the dependencies with the basic object oriented relations.