$\It{When developing a system with object oriented programming languages, sometimes inter-object aliasing becomes the root of defects. Ownership type systems were introduced in order to prevent the problems caused by the inter-object aliasing. The ownership type system tries to explicitly express the data sharing information and to help developers track value flow when they are debugging through providing additional information on data sharing relationships among objects.}$
$\It{ However, there is an obstacle that the ownership type systems are not used easily. Working with legacy system becomes a barrier because the legacy system should be reviewed and the ownership type annotations inserted.}$
$\It{The constraint-based inference algorithm was suggested in order to remove the legacy system problem. However, three improvements can be made in the algorithm.}$
$\It{We propose a reachable reference algorithm that searches type parameters based on reachable objects. Our algorithm increases scalability by inferring one class at a time. The algorithm also reduces ownership type parameter, and increase accuracy of the inferred annotation since the algorithm actually visits reachable references to find out type parameters. In this thesis, the three improvements are shown using two source codes.}$