Synchronization with eventcounts and sequencers
Communications of the ACM
Monitors: an operating system structuring concept
Communications of the ACM
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Response to undesired events in software systems
ICSE '76 Proceedings of the 2nd international conference on Software engineering
A comparison of four design methods for real-time systems
ICSE '87 Proceedings of the 9th international conference on Software Engineering
On synchronization in hard-real-time systems
Communications of the ACM
On Criteria for Module Interfaces
IEEE Transactions on Software Engineering
The design and implementation of hierarchical software systems with reusable components
ACM Transactions on Software Engineering and Methodology (TOSEM)
Creating reference architectures: an example from avionics
SSR '95 Proceedings of the 1995 Symposium on Software reusability
Computer
Open implementation design guidelines
ICSE '97 Proceedings of the 19th international conference on Software engineering
A software engineering approach and tool set for developing Internet applications
Proceedings of the 22nd international conference on Software engineering
Commonality Analysis: A Systematic Process for Defining Families
Proceedings of the Second International ESPRIT ARES Workshop on Development and Evolution of Software Architectures for Product Families
The modular structure of complex systems
ICSE '84 Proceedings of the 7th international conference on Software engineering
Hints for computer system design
SOSP '83 Proceedings of the ninth ACM symposium on Operating systems principles
The secret history of information hiding
Software pioneers
Structured programming: a minor part of software engineering
Information Processing Letters - Special issue: Contribution to computing science
The algebraic structure of interfaces
Science of Computer Programming
Abstracts in software engineering
ACM SIGSOFT Software Engineering Notes
Secrets, hot spots, and generalization: preparing students to design software families
Journal of Computing Sciences in Colleges
Encyclopedia of Computer Science
BoxScript: a component-oriented language for teaching
Proceedings of the 43rd annual Southeast regional conference - Volume 1
Document based rational software development
Knowledge-Based Systems
Component Interface Documentation: What do we Need and Why do we Need it?
Proceedings of the 2006 conference on New Trends in Software Methodologies, Tools and Techniques: Proceedings of the fifth SoMeT_06
Agent-oriented programming: from prolog to guarded definite clauses
Agent-oriented programming: from prolog to guarded definite clauses
From Requirements to Architecture
Proceedings of the 2010 conference on New Trends in Software Methodologies, Tools and Techniques: Proceedings of the 9th SoMeT_10
The road to feature modularity?
Proceedings of the 15th International Software Product Line Conference, Volume 2
Revisiting information hiding: reflections on classical and nonclassical modularity
Proceedings of the 25th European conference on Object-oriented programming
Software engineering: multi-person development of multi-version programs
Dependable and Historic Computing
Hi-index | 0.02 |
This paper describes the abstract interface principle and shows how it can be applied in the design of device interface modules. The purpose of this principle is to reduce maintenance costs for embedded real-time software by facilitating the adaptation of the software to altered hardware interfaces. This principle has been applied in the Naval Research Laboratory's redesign of the flight software for the Navy's A-7 aircraft. This paper discusses a design approach based on the abstract interface principle and presents solutions to interesting problems encountered in the A-7 re-design. The specification document for the A-7 device interface modules is available on request; it provides a fully worked out example of the design approach discussed in this paper.