Tianlin Zhou

Learn More
Packages play a critical role to understand, construct and maintain large-scale software systems. As an important design attribute, cohesion can be used to predict the quality of packages. Although a number of package cohesion metrics have been proposed in the last decade, they mainly converge on intra-package data dependences between components, which are(More)
Python is a powerful dynamically typed programming language. Dynamic typing brings great flexibility for programming. However, lack of static type checking, it is hard to detect some bugs before run time. We present a constraint framework based on Python’s structural equivalence type system. The framework does not introduce any new language(More)
In generalization refactoring, preconditions and allowable source code modifications depend on type constraints of the refactored program. Type constraints of parameterized types should be considered when applying the refactoring to generic programs, otherwise type errors may be brought into the refactored program. Some type constraint rules for Java(More)
  • 1