Using Neural Networks to Modularize Software
Machine Learning - Special issue on structured connectionist systems
Specification and Analysis of System Architecture Using Rapide
IEEE Transactions on Software Engineering - Special issue on software architecture
Pattern languages of program design
Pattern languages of program design
Precise interprocedural chopping
SIGSOFT '95 Proceedings of the 3rd ACM SIGSOFT symposium on Foundations of software engineering
Dynamic structure in software architectures
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
A formal basis for architectural connection
ACM Transactions on Software Engineering and Methodology (TOSEM)
A C++ data model supporting reachability analysis and dead code detection
ESEC '97/FSE-5 Proceedings of the 6th European SOFTWARE ENGINEERING conference held jointly with the 5th ACM SIGSOFT international symposium on Foundations of software engineering
An empirical study of static call graph extractors
ACM Transactions on Software Engineering and Methodology (TOSEM)
Recovering software architecture from the names of source files
Journal of Software Maintenance: Research and Practice
ACM Computing Surveys (CSUR)
On the criteria to be used in decomposing systems into modules
Communications of the ACM
The structure of the “THE”-multiprogramming system
Communications of the ACM
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Practical Software Maintenance: Best Practices for Managing Your Software Investment
Practical Software Maintenance: Best Practices for Managing Your Software Investment
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
Patterns of Enterprise Application Architecture
Patterns of Enterprise Application Architecture
Leveraging Legacy System Dollars for E-Business
IT Professional
Extracting and Restructuring the Design of Large Systems
IEEE Software
The 4+1 View Model of Architecture
IEEE Software
Scenario-Based Analysis of Software Architecture
IEEE Software
Software Reflexion Models: Bridging the Gap between Design and Implementation
IEEE Transactions on Software Engineering
A survey on software architecture analysis methods
IEEE Transactions on Software Engineering
Architecture Level Prediction of Software Maintenance
CSMR '99 Proceedings of the Third European Conference on Software Maintenance and Reengineering
MoJo: A Distance Metric for Software Clusterings
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
Experiments with Clustering as a Software Remodularization Method
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
Scenario-Based Software Architecture Reengineering
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
On Using a Benchmark to Evaluate C++ Extractors
IWPC '02 Proceedings of the 10th International Workshop on Program Comprehension
An Analysis Framework for Understanding Layered Software Architectures
IWPC '98 Proceedings of the 6th International Workshop on Program Comprehension
Domain-Driven Design: Tacking Complexity In the Heart of Software
Domain-Driven Design: Tacking Complexity In the Heart of Software
Design and Implementation of a Fine-Grained Software Inspection Tool
IEEE Transactions on Software Engineering
The Rational Unified Process: An Introduction
The Rational Unified Process: An Introduction
The Journal of Machine Learning Research
Completeness of a Fact Extractor
WCRE '03 Proceedings of the 10th Working Conference on Reverse Engineering
AcmeStudio: Supporting Style-Centered Architecture Development
Proceedings of the 26th International Conference on Software Engineering
Support for Evolving Software Architectures in the ArchWare ADL
WICSA '04 Proceedings of the Fourth Working IEEE/IFIP Conference on Software Architecture
Reuse-Based Layering: A Strategy for Architectural Frameworks for Learning Technologies
ICALT '04 Proceedings of the IEEE International Conference on Advanced Learning Technologies
Accurate Call Graph Extraction of Programs with Function Pointers Using Type Signatures
APSEC '04 Proceedings of the 11th Asia-Pacific Software Engineering Conference
Information-Theoretic Software Clustering
IEEE Transactions on Software Engineering
The CodeSurfer Software Understanding Platform
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
A comprehensive approach for the development of modular software architecture description languages
ACM Transactions on Software Engineering and Methodology (TOSEM)
Using dependency models to manage complex software architecture
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Equipping the Reflexion Method with Automated Clustering
WCRE '05 Proceedings of the 12th Working Conference on Reverse Engineering
On the Automatic Modularization of Software Systems Using the Bunch Tool
IEEE Transactions on Software Engineering
A Method for Detecting and Measuring Architectural Layering Violations in Source Code
APSEC '06 Proceedings of the XIII Asia Pacific Software Engineering Conference
Mining business topics in source code using latent dirichlet allocation
ISEC '08 Proceedings of the 1st India software engineering conference
A Software Architecture for Cross-Layer Wireless Network Adaptations
WICSA '08 Proceedings of the Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008)
Automatic modularity conformance checking
Proceedings of the 30th international conference on Software engineering
Evaluating performance attributes of layered software architecture
CBSE'05 Proceedings of the 8th international conference on Component-Based Software Engineering
A desiderata for refactoring-based software modularity improvement
Proceedings of the 3rd India software engineering conference
Hi-index | 0.00 |
The layers architectural pattern has been widely adopted by the developer community in order to build large software systems. In reality, as the system evolves over time, rarely does the system remain conformed to the intended layers pattern, causing a significant degradation of the system maintainability. As a part of re-factoring such a system, practitioners often undertake a mostly manual exercise to discover the intended layers and organize the modules into these layers. In this paper, we present a method for semi-automatically detecting layers in the system and propose a quantitative measurement to compute the amount of non-conformance of the system from the set of layered design principles. We have applied the layer detection method and the non-conformance measurement on a set of open source and proprietary enterprise applications.