Module interconnection languages
Journal of Systems and Software
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
Abstractions for Software Architecture and Tools to Support Them
IEEE Transactions on Software Engineering - Special issue on software architecture
Correct Architecture Refinement
IEEE Transactions on Software Engineering - Special issue on software architecture
Dynamic structure in software architectures
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
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
A formal basis for architectural connection
ACM Transactions on Software Engineering and Methodology (TOSEM)
Units: cool modules for HOT languages
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Featherweight Java: a minimal core calculus for Java and GJ
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
Jiazzi: new-age components for old-fasioned Java
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ArchJava: connecting software architecture to implementation
Proceedings of the 24th International Conference on Software Engineering
Proceedings of the 24th International Conference on Software Engineering
Assuring Good Style for Object-Oriented Programs
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 Basic Model of Typed Components
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
Declaratively Codifying Software Architectures Using Virtual Software Classifications
TOOLS '99 Proceedings of the Technology of Object-Oriented Languages and Systems
Industrial software architecture with Gestalt
IWSSD '96 Proceedings of the 8th International Workshop on Software Specification and Design
Alias annotations for program understanding
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A case for statically executable advice: checking the law of demeter with AspectJ
Proceedings of the 2nd international conference on Aspect-oriented software development
Type-Safe Prototype-Based Component Evolution
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
The nesC language: A holistic approach to networked embedded systems
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Relaxed MultiJava: balancing extensibility and modular typechecking
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
KERIS: evolving software with extensible modules: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice - Unanticipated Software Evolution
Scalable component abstractions
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A middleware-independent model and language for component distribution
SEM '05 Proceedings of the 5th international workshop on Software engineering and middleware
Dream types: a domain specific type system for component-based message-oriented middleware
SAVCBS '05 Proceedings of the 2005 conference on Specification and verification of component-based systems
Component composition preserving behavioral contracts based on communication traces
Theoretical Computer Science - Implementation and application of automata
A case study in re-engineering to enforce architectural control flow and data sharing
Journal of Systems and Software
Oz/K: a kernel language for component-based open programming
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
IEEE Transactions on Software Engineering
Reengineering J2EE Servers for Automated Management in Distributed Environments
IEEE Distributed Systems Online
Typing communicating component assemblages
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
An evolving hierarchical & modular approach to resilient software
Proceedings of the 2008 RISE/EFTS Joint International Workshop on Software Engineering for Resilient Systems
The Future of Software: Adaptation and Dependability
Software Engineering
Typing Component-Based Communication Systems
FMOODS '09/FORTE '09 Proceedings of the Joint 11th IFIP WG 6.1 International Conference FMOODS '09 and 29th IFIP WG 6.1 International Conference FORTE '09 on Formal Techniques for Distributed Systems
ArchC#: a new architecture description language for distributed systems
FSEN'07 Proceedings of the 2007 international conference on Fundamentals of software engineering
MetaFJig: a meta-circular composition language for Java-like classes
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Domain-specific program checking
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Component types qualification in Java legacy code driven by communication integrity rules
Proceedings of the 4th India Software Engineering Conference
A language to bridge the gap between component-based design and implementation
Computer Languages, Systems and Structures
Flexible type-safe linking of components for java-like languages
JMLC'06 Proceedings of the 7th joint conference on Modular Programming Languages
Aspect modelling at architecture design
EWSA'05 Proceedings of the 2nd European conference on Software Architecture
The kell calculus: a family of higher-order distributed process calculi
GC'04 Proceedings of the 2004 IST/FET international conference on Global Computing
Exogenous connectors for software components
CBSE'05 Proceedings of the 8th international conference on Component-Based Software Engineering
A qualitative human-centric evaluation of flexibility in middleware implementations
Empirical Software Engineering
An aspect-oriented approach for developing self-adaptive fractal components
SC'06 Proceedings of the 5th international conference on Software Composition
SuperGlue: component programming with object-oriented signals
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Component composition preserving behavioural contracts based on communication traces
CIAA'05 Proceedings of the 10th international conference on Implementation and Application of Automata
Types for dynamic reconfiguration
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Behavioral interface specification languages
ACM Computing Surveys (CSUR)
Engage: a deployment management system
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Message-passing concurrency for scalable, stateful, reconfigurable middleware
Proceedings of the 13th International Middleware Conference
Reusing design experiences to materialize software architectures into object-oriented designs
Information Sciences: an International Journal
Journal of Systems and Software
Hi-index | 0.00 |
Software architecture describes the structure of a system, enabling more effective design, program understanding, and formal analysis. However, existing approaches decouple implementation code from architecture, allowing inconsistencies that cause confusion, violate architectural properties, and inhibit software evolution. We are developing ArchJava, an extension to Java that seamlessly unifies software architecture with an object-oriented implementation. In this paper, we show how ArchJava's type system ensures that implementation code conforms to architectural constraints. A case study applying ArchJava to an Islamic tile design application demonstrates that ArchJava can express dynamically changing architectures effectively within implementation code, and suggests that the resulting program may be easier to understand and evolve.