Module interconnection languages
Journal of Systems and Software
A cookbook for using the model-view controller user interface paradigm in Smalltalk-80
Journal of Object-Oriented Programming
Re-engineering software: a case study
IBM Systems Journal
Reengineering of old systems to an object-oriented architecture
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Foundations for the study of software architecture
ACM SIGSOFT Software Engineering Notes
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Architectural Tradeoffs for a Meaning-Preserving Program Restructuring Tool
IEEE Transactions on Software Engineering - Special issue on software architecture
Correct Architecture Refinement
IEEE Transactions on Software Engineering - Special issue on software architecture
Migrating legacy systems: gateways, interfaces & the incremental approach
Migrating legacy systems: gateways, interfaces & the incremental approach
Using object-oriented typing to support architectural design in the C2 style
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Systems reengineering patterns
SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A Classification and Comparison Framework for Software Architecture Description Languages
IEEE Transactions on Software Engineering
Acme: architectural description of component-based systems
Foundations of component-based systems
Object Oriented Reengineering Patterns
Object Oriented Reengineering Patterns
ArchJava: connecting software architecture to implementation
Proceedings of the 24th International Conference on Software Engineering
Alias annotations for program understanding
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Piecemeal legacy migrating with an architectural pattern language: a case study
Journal of Software Maintenance: Research and Practice
Assuring Good Style for Object-Oriented Programs
IEEE Software
Reverse Engineering and Design Recovery: A Taxonomy
IEEE Software
Software Reflexion Models: Bridging the Gap between Design and Implementation
IEEE Transactions on Software Engineering
An Event-Based Architecture Definition Language
IEEE Transactions on Software Engineering
A case for statically executable advice: checking the law of demeter with AspectJ
Proceedings of the 2nd international conference on Aspect-oriented software development
Capabilities for Sharing: A Generalisation of Uniqueness and Read-Only
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Architectural Reasoning in ArchJava
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Structural Analysis of the Software Architecture - A Maintenance Assessment Case Study
WICSA1 Proceedings of the TC2 First Working IFIP Conference on Software Architecture (WICSA1)
Testing Ada 95 Programs for Conformance to Rapide Architectures
Ada-Europe '96 Proceedings of the 1996 Ada-Europe International Conference on Reliable Software Technologies
Machine Learning: From Theory to Applications - Cooperative Research at Siemens and MIT
Pattern Based Software Re-engineering: A Case Study
APSEC '99 Proceedings of the Sixth Asia Pacific Software Engineering Conference
CSMR '01 Proceedings of the Fifth European Conference on Software Maintenance and Reengineering
PACKRAT: A Software Reengineering Case Study
WCRE '98 Proceedings of the Working Conference on Reverse Engineering (WCRE'98)
Advanced Clone-Analysis to Support Object-Oriented System Refactoring
WCRE '00 Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE'00)
A Two-Phase Process for Software Architecture Improvement
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
A Methodology for the Automated Introduction of Design Patterns
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Architectural Repair of Open Source Software
IWPC '00 Proceedings of the 8th International Workshop on Program Comprehension
C# Language Specification
A Quantitative Evaluation of Maintainability Enhancement by Refactoring
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
Java Quality Assurance by Detecting Code Smells
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
IEEE Software
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
AcmeStudio: Supporting Style-Centered Architecture Development
Proceedings of the 26th International Conference on Software Engineering
UML-Based Reverse Engineering and Model Analysis Approaches for Software Architecture Maintenance
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
Transforming Legacy Web Applications to the MVC Architecture
STEP '03 Proceedings of the Eleventh Annual International Workshop on Software Technology and Engineering Practice
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
Maintaining mental models: a study of developer work habits
Proceedings of the 28th international conference on Software engineering
The TXL source transformation language
Science of Computer Programming - The fourth workshop on language descriptions, tools, and applications (LDTA'04)
Differencing and Merging of Architectural Views
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Documenting Software Architectures: Views and Beyond
Documenting Software Architectures: Views and Beyond
Bringing ownership domains to mainstream Java
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
A field study in static extraction of runtime architectures
Proceedings of the 8th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Component types qualification in Java legacy code driven by communication integrity rules
Proceedings of the 4th India Software Engineering Conference
Hi-index | 0.00 |
Without rigorous software development and maintenance, software tends to lose its original architectural structure and become difficult to understand and modify. ArchJava, a recently proposed programming language which embeds a component-and-connector architectural specification within Java implementation code, offers the promise of preventing the loss of architectural structure. AliasJava, which can be used in conjunction with ArchJava, is an annotation system that extends Java to express how data is confined within, passed among, or shared between components and objects in a software system. We describe a case study in which we incrementally re-engineer an existing Java implementation to obtain an implementation which enforces the architectural control flow and data sharing. Building on results from similar case studies, we chose an application consisting of over 16,000 source lines of Java code and over 90 classes. We describe our process, the detailed steps involved (some of which can be automated), as well as some lessons learned and perceived limitations with the languages, techniques and tools we used.