Learn More
Bad smells are signs of potential problems in code. Detecting and resolving bad smells, however, remain time-consuming for software engineers despite proposals on bad smell detection and refactoring tools. Numerous bad smells have been recognized, yet the sequences in which the detection and resolution of different kinds of bad smells are performed are(More)
<i>Bad smell</i> is a key concept in software refactoring. We have a bunch of bad smells, refactoring rules, and refactoring tools, but we do not know which kind of bad smells should be resolved first. The resolution of one kind of bad smells may have impact on the resolution of other bad smells. Consequently, different resolution orders of the same set of(More)
With the popularity of UML and MDA, models are replacing source code as core artifacts of software development and maintenance. But duplications in models reduce models' maintainability and reusability. To address the problem, we should detect duplications first. As an initial step to address the problem, we propose an approach to detect duplications in(More)
Model Driven Development views application development as a continuous transformation of models of the target system. However, non-functional requirements, which are important for building user-satisfied software systems and have impacts on the software design, are not sufficiently considered in current MDD methods. This paper proposes an approach to(More)
Generalization refactoring helps relate classes and share functions, including both interfaces and implementation, by inheritance. To apply generalization refactoring, developers should first identify potential generalization refactoring opportunities, i.e., software entities that might benefit from generalization refactoring. For non-trivial software(More)
The complexity and diversity of modern software demands a variety of metamodel-based modeling languages for software development. Existing languages change continuously, and new ones are constantly emerging. In this situation, and especially for metamodel-based modeling languages, a quality assurance mechanism for metamodels is needed. This paper presents(More)
In order to define a graphical modeling language, it is necessary to define the graphical notation of the language in the process of metamodeling. So the defining of the notation has become one of the essential functions in meta-modeling tools. This paper proposed the Notation Definition Metamodel (NDM) for metamodeling tools. NDM is used to define the(More)
Software refactoring is to restructure object-oriented software to improve its quality, especially extensibility, reusability and maintainability while preserving its external behaviors. For a special software system, there are usually quite a few refactorings available at the same time. But these refactorings may conflict with each other. In other words,(More)
Cloud computing encourages application to migrate into it for economic of scale, where they rent shared resources to deliver services. Service Level Agreements(SLA) plays an important role in assisting various applications providing high-quality services to end users in cloud's complex and uncertain environments. Most of the existing work tries to support(More)