Communicating sequential processes
Communicating sequential processes
Eiffel: the language
What are race conditions?: Some issues and formalizations
ACM Letters on Programming Languages and Systems (LOPLAS)
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Dynamic structure in software architectures
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Patterns in Java, volume 1: a catalog of reusable design patterns illustrated with UML
Patterns in Java, volume 1: a catalog of reusable design patterns illustrated with UML
ACM SIGPLAN Notices
The universe model: an approach for improving the modularity and reliability of concurrent programs
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
The notions of consistency and predicate locks in a database system
Communications of the ACM
Analysis and testing of Web applications
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Software engineering and the Internet
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Deadlock detection in distribution object systems
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Component Software: Beyond Object-Oriented Programming
Component Software: Beyond Object-Oriented Programming
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
Performance and scalability of EJB applications
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Evaluating synchronization mechanisms
SOSP '79 Proceedings of the seventh ACM symposium on Operating systems principles
Cadena: enabling CCM-based application development in Eclipse
eclipse '03 Proceedings of the 2003 OOPSLA workshop on eclipse technology eXchange
Designing and implementing a model of synchronization contracts in object-oriented languages
Designing and implementing a model of synchronization contracts in object-oriented languages
Enabling the refinement of a software architecture into a design
UML'99 Proceedings of the 2nd international conference on The unified modeling language: beyond the standard
On Mechanisms for Deadlock Avoidance in SIP Servlet Containers
Principles, Systems and Applications of IP Telecommunications. Services and Security for Next Generation Networks
Developing parallel programs: A design-oriented perspective
IWMSE '09 Proceedings of the 2009 ICSE Workshop on Multicore Software Engineering
Hi-index | 0.00 |
We previously developed a component-oriented model that combines ideas from self-organizing architectures and from design by contract to address the complexity of design in multi-threaded systems. Components in our model are cohesive collections of objects that publish contracts declaring the conditions under which they access other components. These contracts localize a component's contextual synchronization dependencies in its interface. Moreover, the resulting systems permit strong guarantees of safety. This paper reports a case study to validate the efficacy of our model on a realistic design problem: the component-based design of a multi-threaded web server. We first developed a bare-bones web server based on the Apache architecture and then subjected this design to three extension tasks. The study corroborates that our model enables a fine-grain component-based design of multi-threaded applications of realistic complexity, while guaranteeing freedom from certain synchronization errors.