Publication Type

Conference Proceeding Article

Publication Date



Layered architecture prescribes a good principle for separating concerns to make systems more maintainable. One example of such layered architectures is the separation of classes into three groups: Boundary, Control, and Entity, which are referred to as the three analysis class stereotypes in UML. Classes of different stereotypes are interacting with one another, when properly designed, the overall interaction would be maintainable, flexible, and robust. On the other hand, poor design would result in less maintainable system that is prone to errors. In many software projects, the stereotypes of classes are often missing, thus detection of design flaws becomes non-trivial. In this paper, we provide a framework that automatically labels classes as Boundary, Control, or Entity, and detects design flaws of the rules associated with each stereotype. Our evaluation with programs developed by both novice and expert developers show that our technique is able to detect many design flaws accurately.


Automated detection, Layered architecture, Non-trivial, Software project


Software Engineering | Systems Architecture

Research Areas

Software and Cyber-Physical Systems


SEKE 2011: 23rd International Conference on Software Engineering and Knowledge Engineering, Miami Beach, 7-9 July 2011: Proceedings

First Page


Last Page





Knowledge Systems Institute Graduate School

City or Country

Skokie, IL

Creative Commons License

Creative Commons Attribution-Noncommercial-No Derivative Works 4.0 License
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 4.0 License.

Additional URL