ICSE '97 Proceedings of the 19th international conference on Software engineering
Composition Validation and Subjectivity in GenVoca Generators
IEEE Transactions on Software Engineering
Proceedings of the 1997 symposium on Software reusability
Techniques and language constructs for developing generic informations systems: a case study
SSR '01 Proceedings of the 2001 symposium on Software reusability: putting software reuse in context
A framework for performing verification and validation in reuse-based software engineering
Annals of Software Engineering
A perspective of generative reuse
Annals of Software Engineering
Increasing Reusability in Information Systems Development by Applying Generic Methods
CAiSE '01 Proceedings of the 13th International Conference on Advanced Information Systems Engineering
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
Higher-order architectural connectors
ACM Transactions on Software Engineering and Methodology (TOSEM)
A refinement calculus for software components and architectures
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
BOTS: a constraint-based component system for synthesizing scalable software systems
Proceedings of the 2006 ACM SIGPLAN/SIGBED conference on Language, compilers, and tool support for embedded systems
Observability Concepts in Abstract Data Type Specification, 30 Years Later
Concurrency, Graphs and Models
Hi-index | 0.00 |
The paper discusses an approach to software architecture based on concepts from parameterized programming, particularly its language of "module expressions". A module expression describes the architecture of a system as an interconnection of component modules, and executing the expression actually builds the system. Language features include: modules parameterized by theories, which declare interfaces; a number of module composition operations; views for binding modules to interfaces; and both vertical and horizontal composition. Modules may involve information hiding, theories may declare semantic restrictions with axioms, and views assert behavioral satisfaction of axioms by a module. Some "laws of software composition" are given, showing how various module composition operations are related. We also show how a variety of architectural styles can be supported, and how this approach can be extended to support evolution and traceability. All this is intended to ease the development of large systems, and in particular, to make reuse more effective in practice.