skip to main content
Skip header Section
Patterns of Enterprise Application ArchitectureNovember 2002
Publisher:
  • Addison-Wesley Longman Publishing Co., Inc.
  • 75 Arlington Street, Suite 300 Boston, MA
  • United States
ISBN:978-0-321-12742-6
Published:01 November 2002
Pages:
576
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

From the Book: In the spring of 1999 I flew to Chicago to consult on a project being done by ThoughtWorks, a small but rapidly growing application development company. The project was one of those ambitious enterprise application projects: a back-end leasing system. Essentially what this system does is to deal with everything that happens to a lease after you've signed on the dotted line. It has to deal with sending out bills, handling someone upgrading one of the assets on the lease, chasing people who don't pay their bills on time, and figuring out what happens when someone returns the assets early. That doesn't sound too bad until you realize that leasing agreements are infinitely varied and horrendously complicated. The business "logic" rarely fits any logical pattern, because after all its written by business people to capture business, where odd small variations can make all the difference in winning a deal. Each of those little victories is yet more complexity to the system. That's the kind of thing that gets me excited: how to take all that complexity and come up with system of objects that can make more tractable. Indeed I belive that the primary benefit of objects is in making complex logic tractable. Developing a good Domain Model (133) for a complex business problem is difficult, but wonderfully satisfying. Yet that's not the end of the problem. Such a domain model has to persisted to a database, and like many projects we were using a relational database. We also had to connect this model to a user interface, provide support to allow remote applications to use our software, and integrate our software with third party packages. All of this on a newtechnology called J2EE which nobody in the world had any real experience in using. Even though this technology was new, we did have the benefit of experience. I'd been doing this kind of thing for ages now with C++, Smalltalk, and CORBA. Many of the ThoughtWorkers had a lot of experience with Forte. We already had the key architectural ideas in our heads, we just had to figure out how to apply them to J2EE. Looking back on it three years later the design is not perfect, but it's stood the test of time pretty damn well. That's the kind of situation that is where this book comes in. Over the years I've seen many enterprise application projects. These projects often contain similar design ideas which have proven to be effective ways to deal with the inevitable complexity that enterprise applications possess. This book is a starting point to capture these design ideas as patterns. The book is organized in two parts. The first part is a set of narrative chapters on a number of important topics in the design of enterprise applications. They introduce various problems in the architecture of enterprise applications and their solutions. However the narrative chapters don't go into much detail on these solutions. The details of the solutions are in the second part, organized as patterns. These patterns are a reference and I don't expect you to read them cover to cover. My intention is that you can read the narrative chapters in part one from start to finish to get a broad picture of what the book covers, then you can dip into the patterns chapters of part two as your interest and needs drive you. So this book is a short narrative book and a longer reference book combined into one. This is a book on enterprise application design. Enterprise applications are about the display, manipulation and storage of large amounts of often complex data and the support or automation of business processes with that data. Examples include reservation systems, financial systems, supply chain systems, and many of the systems that run modern business. Enterprise applications have their own particular challenges and solutions. They are a different animal to embedded systems, control systems, telecoms, or desktop productivity software. So if you work in of these other fields, there's nothing really in this book for you (unless you want to get a feel for what enterprise applications are like.) For a general book on software architecture I'd recommend POSA. There are many architectural issues in building enterprise applications. I'm afraid this book can't be a comprehensive guide to them. In building software I'm a great believer in iterative development. At the heart of iterative development is the notion that you should deliver software as soon as you have something useful to the user, even if it's not complete. Although there are many differences between writing a book and writing software, this notion is one that I think the two share. So this book is an incomplete but (I trust) useful compendium of advice on enterprise application architecture. The primary topics I talk about are: layering of enterprise applications how to structure domain (business) logic the structure of a web user interface how to link in-memory modules (particularly objects) to a relational database how to handle session state in stateless environments some principles of distribution The list of things I don't talk about is rather longer. I really fancied writing about organizing validation, incorporating messaging and asynchronous communication, security, error handling, clustering, application integration, architectural refactoring, structuring rich-client user interfaces, amongst others. I can only hope to see some patterns appear for this work in the near future. However due to space, time, and lack of cogitation you won't find them in this book. Perhaps I'll do a second volume someday and get into these topics, or maybe someone else will fill these, and other, gaps. Of these, dealing with message based communication is a particularly big issue. Increasingly people who are integrating multiple applications are making use of asynchronous message based communication approaches. There's much to said for using them within an application as well. This book is not intended to be specific for any particular software platform. I first came across these patterns while working with Smalltalk, C++, and CORBA in the late 80's and early 90's. In the late 90's I started to do extensive work in Java and found these patterns applied well both to early Java/CORBA systems and later J2EE based work. More recently I've been doing some initial work with Microsoft's .NET platform and find the patterns apply again. My ThoughtWorks colleagues have also introduced their experiences, particularly with Forte. I can't claim generality across all platforms that ever have been or will be used for enterprise applications, but so far these patterns have shown enough recurrence to be useful. I have provided code exampl for most of these patterns. My choice of language for the code examples is based on what I think most readers are likely to be able to read and understand. Java's a good choice here. Anyone who can read C or C++ can read Java, yet Java is much less complex than C++. Essentially most C++ programmers can read Java but not vice versa. I'm an object bigot, so inevitably lean to an OO language. As a result most of the code examples are in Java. As I was working on the book Microsoft started stabilizing their .NET environment, and their C# language has most of the same properties as Java for an author. So I did some of the code examples in C# as well, although that does introduce some risk since developers don't have much experience with .NET yet and so the idioms for using it well are less mature. Both are C-based languages so if you can read one you should be able to read both, even if you aren't deeply into that language or platform. My aim was to use a language that the largest amount of software developers can read, even if it's not their primary or preferred language. (My apologies to those who like Smalltalk, Delphi, Visual Basic, Perl, Python, Ruby, COBOL or any other language. I know you think you know a better language than Java or C#, all I can say is I do too!) The examples are there for inspiration and explanation of the ideas in the patterns. They are not canned solutions, in all cases you'll need to do a fair bit of work to fit them into your application. Patterns are useful starting points, but they are not destinations. Who This book Is For I've written this book for programmers, designers, and architects who are building enterprise applications and who want to either improve their understanding of these architectural issues or improve their communication about them. I'm assuming that most of my readers will fall into two groups: either those with modest needs who are looking to build their own software to handle these issues, or readers with more demanding needs who will be using a tool. For those of modest needs, my intention is that these patters should get you started. In many areas you'll need more than the patterns will give you, but my intention is to provide more of a head start in this field than I got. For tool users I hope this book will be useful to give you some idea of what's happening under the hood, but also help you in making choices between which of the tool supported patterns to use. Using, say, an object-relational mapping tool still means you have to make decisions about how to map certain situations. Reading the patterns should give you some guidance in making the choices. There is a third category, those with demanding needs who want to build their own software for these problems. The first thing I'd say here is look carefully at using tools. I've seen more than one project get sucked into a long exercise at building frameworks which weren't what project was really about. If you're still convinced, go ahead. Remember in this case that many of the code examples in this book are deliberately simplified to help understanding, and you'll find you'll need to do a lot tweaking to handle the greater demands that you'll face. Since patterns are common solutions to recurring problems, there's a good chance that you'll have already come across some of them. If you've been working in enterprise applicat while, you may well know most of them. I'm not claiming to have anything new in this book. Indeed I claim the oppositethis is a book of (for our industry) old ideas. If you're new to this field I hope you'll like this book to help you learn about these techniques. If you're more familiar with the techniques I hope you'll like this book because it helps you communicate and teach these ideas to others. An important part of patterns is trying to build a common vocabulary, so you can say that this class is a Remote Facade (413) and other designers know what you mean. Martin Fowler, Melrose MA, May 2002 http://martinfowler.com

Cited By

  1. ACM
    Mehrpour S and Latoza T (2023). A Survey of Tool Support for Working with Design Decisions in Code, ACM Computing Surveys, 56:2, (1-37), Online publication date: 29-Feb-2024.
  2. de Oliveira J, Gonçalves V, Meneguette R, de Sousa R, Guidoni D, Oliveira J and Rocha Filho G (2023). F-NIDS — A Network Intrusion Detection System based on federated learning, Computer Networks: The International Journal of Computer and Telecommunications Networking, 236:C, Online publication date: 1-Nov-2023.
  3. ACM
    Tsechelidis M, Nikolaidis N, Maikantis T and Ampatzoglou A Modular Monoliths the way to Standardization Proceedings of the 3rd Eclipse Security, AI, Architecture and Modelling Conference on Cloud to Edge Continuum, (49-52)
  4. Sadi M and Yu E (2023). WEBAPIK: a body of structured knowledge on designing web APIs, Requirements Engineering, 28:3, (441-479), Online publication date: 1-Sep-2023.
  5. ACM
    Stocker M and Zimmermann O API Refactoring to Patterns: Catalog, Template and Tools for Remote Interface Evolution Proceedings of the 28th European Conference on Pattern Languages of Programs, (1-32)
  6. ACM
    Engelmann C and Somnath S Science Use Case Design Patterns for Autonomous Experiments Proceedings of the 28th European Conference on Pattern Languages of Programs, (1-14)
  7. ACM
    Zarras A Two Patterns, a study and a message for the validation of our patterns Proceedings of the 28th European Conference on Pattern Languages of Programs, (1-6)
  8. Shesternikova O, Finn V, Lesko K and Vinokurova L (2023). Application of the JSM Method of Automated Research Support to Predict Diabetes Development in Patients with Chronic Pancreatitis, Automatic Documentation and Mathematical Linguistics, 57:2, (91-100), Online publication date: 1-Apr-2023.
  9. Adewojo A and Bass J (2023). A Novel Weight-Assignment Load Balancing Algorithm for Cloud Applications, SN Computer Science, 4:3, Online publication date: 23-Mar-2023.
  10. Singjai A and Zdun U (2022). Conformance assessment of Architectural Design Decisions on API endpoint designs derived from domain models, Journal of Systems and Software, 193:C, Online publication date: 1-Nov-2022.
  11. Washizaki H, Khomh F and Guéhéneuc Y Software Engineering Patterns for Machine Learning Applications (SEP4MLA) - Part 4 - ML Gateway Routing Architecture Proceedings of the 29th Conference on Pattern Languages of Programs, (1-8)
  12. Dobrean D and Dioşan L (2022). Pathways for statically mining the Model-View-Controller software architecture on mobile applications, Soft Computing - A Fusion of Foundations, Methodologies and Applications, 26:19, (10493-10511), Online publication date: 1-Oct-2022.
  13. Dudkin A, Voronov A and Awakaw S (2022). Algorithms and Systems of Machine Vision in Integrated Circuit Manufacturing Technology, Pattern Recognition and Image Analysis, 32:2, (266-276), Online publication date: 1-Jun-2022.
  14. Jackson D Concept Design Moves NASA Formal Methods, (52-70)
  15. Giray G (2021). A software engineering perspective on engineering machine learning systems, Journal of Systems and Software, 180:C, Online publication date: 1-Oct-2021.
  16. ACM
    Bondel G, Landgraf A and Matthes F API Management Patterns for Public, Partner, and Group Web API Initiatives with a Focus on Collaboration Proceedings of the 26th European Conference on Pattern Languages of Programs, (1-17)
  17. ACM
    Serbout S, Pautasso C, Zdun U and Zimmermann O From OpenAPI Fragments to API Pattern Primitives and Design Smells Proceedings of the 26th European Conference on Pattern Languages of Programs, (1-35)
  18. ACM
    B. Ionescu T, Froehlich J and Lachenmayr M Cooperator: Automating Human-Machine Interfaces to Improve User Experience and Task Efficiency Proceedings of the 26th European Conference on Pattern Languages of Programs, (1-5)
  19. ACM
    Singjai A, Zdun U, Zimmermann O and Pautasso C    Patterns on Deriving APIs and their Endpoints from Domain Models Proceedings of the 26th European Conference on Pattern Languages of Programs, (1-15)
  20. ACM
    Nadschläger S, Hofer D, Küng J and Jäger M Data Structures for a Generic Software System using the Composite Design Pattern Proceedings of the 26th European Conference on Pattern Languages of Programs, (1-7)
  21. ACM
    Renner J, Sanchez-Stern A, Brown F, Lerner S and Stefan D Scooter & Sidecar: a domain-specific approach to writing secure database migrations Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation, (710-724)
  22. Campo M, Amandi A and Biset J (2021). A software architecture perspective about Moodle flexibility for supporting empirical research of teaching theories, Education and Information Technologies, 26:1, (817-842), Online publication date: 1-Jan-2021.
  23. Scherzinger S and Sidortschuck S An Empirical Study on the Design and Evolution of NoSQL Database Schemas Conceptual Modeling, (441-455)
  24. Guidoni G, Almeida J and Guizzardi G Transformation of Ontology-Based Conceptual Models into Relational Schemas Conceptual Modeling, (315-330)
  25. Şerban C, Niculescu V and Vescan A Attaining competences in software quality oriented design based on cyclic learning 2020 IEEE Frontiers in Education Conference (FIE), (1-9)
  26. ACM
    Cerny T, Walker A, Svacina J, Bushong V, Das D, Frajtak K, Bures M and Tisnovsky P Mapping Study on Constraint Consistency Checking in Distributed Enterprise Systems Proceedings of the International Conference on Research in Adaptive and Convergent Systems, (167-174)
  27. Kussmaul C Patterns in activity models for process oriented guided inquiry learning (POGIL) Proceedings of the 27th Conference on Pattern Languages of Programs, (1-18)
  28. Lotlikar P and Kussmaul C Guiding students to learn about design patterns with process oriented guided inquiry learning (POGIL) Proceedings of the 27th Conference on Pattern Languages of Programs, (1-16)
  29. ACM
    Zimmermann O, Lübke D, Zdun U, Pautasso C and Stocker M Interface Responsibility Patterns Proceedings of the European Conference on Pattern Languages of Programs 2020, (1-24)
  30. ACM
    Zimmermann O, Pautasso C, Lübke D, Zdun U and Stocker M Data-Oriented Interface Responsibility Patterns Proceedings of the European Conference on Pattern Languages of Programs 2020, (1-25)
  31. ACM
    Antoniadis A, Filippakis N, Krishnan P, Ramesh R, Allen N and Smaragdakis Y Static analysis of Java enterprise applications: frameworks and caches, the elephants in the room Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation, (794-807)
  32. Almujally N and Joy M A Knowledge Sharing System Architecture for Higher Education Institutions Intelligent Tutoring Systems, (397-402)
  33. de la Vega A, García-Saiz D, Blanco C, Zorrilla M and Sánchez P (2020). Mortadelo, Future Generation Computer Systems, 105:C, (455-474), Online publication date: 1-Apr-2020.
  34. de Oliveira M, Freitas D, Bonifácio R, Pinto G and Lo D (2019). Finding needles in a haystack, Journal of Systems and Software, 158:C, Online publication date: 1-Dec-2019.
  35. Reniers V, Van Landuyt D, Rafique A and Joosen W (2019). Object to NoSQL Database Mappers (ONDM), Information Systems, 85:C, (1-20), Online publication date: 1-Nov-2019.
  36. de la Vega A, García-Saiz D, Zorrilla M and Sánchez P Lavoisier: High-Level Selection and Preparation of Data for Analysis Model and Data Engineering, (50-66)
  37. Noguchi R, Minnichelli R and Wheaton M Architecting Success in Model Based Systems Engineering Pilot Projects 2019 IEEE International Conference on Systems, Man and Cybernetics (SMC), (755-760)
  38. ACM
    Márquez G and Astudillo H Identifying availability tactics to support security architectural design of microservice-based systems Proceedings of the 13th European Conference on Software Architecture - Volume 2, (123-129)
  39. ACM
    Lübke D, Zimmermann O, Pautasso C, Zdun U and Stocker M Interface evolution patterns Proceedings of the 24th European Conference on Pattern Languages of Programs, (1-24)
  40. Dwivedi A, Tirkey A and Rath S (2019). Applying learning-based methods for recognizing design patterns, Innovations in Systems and Software Engineering, 15:2, (87-100), Online publication date: 1-Jun-2019.
  41. Spadini D, Aniche M, Bruntink M and Bacchelli A (2019). Mock objects for testing java systems, Empirical Software Engineering, 24:3, (1461-1498), Online publication date: 1-Jun-2019.
  42. Jiang H, Liu D, Chen X, Liu H and Mei H How are design patterns concerned by developers? Proceedings of the 41st International Conference on Software Engineering: Companion Proceedings, (232-233)
  43. ACM
    Nicolas D, Khadraoui D, Imeri A, Watrinet M and Khadraoui A Data Model Management for Supporting Volunteer's Occupation Services Proceedings of the 2019 5th International Conference on Computer and Technology Applications, (39-45)
  44. Rodriguez-Echeverria R, Preciado J, Rubio-Largo Á, Conejero J, Prieto Á and Risi M (2019). A Pattern-Based Development Approach for Interaction Flow Modeling Language, Scientific Programming, 2019, Online publication date: 1-Jan-2019.
  45. Falazi G, Breitenbücher U, Falkenthal M, Harzenetter L, Leymann F and Yussupov V Blockchain-Based Collaborative Development of Application Deployment Models On the Move to Meaningful Internet Systems. OTM 2018 Conferences, (40-60)
  46. Dwivedi A, Tirkey A and Rath S (2018). Software design pattern mining using classification-based techniques, Frontiers of Computer Science: Selected Publications from Chinese Universities, 12:5, (908-922), Online publication date: 1-Oct-2018.
  47. ACM
    Costa P, Canedo E and Bonifácio R On the Use of Metaprogramming and Domain Specific Languages Proceedings of the VII Brazilian Symposium on Software Components, Architectures, and Reuse, (102-111)
  48. ACM
    Fazzolino R, de Faria H, Amaral L, Canedo E, Rodrigues G and Bonifácio R Assessing Agile Testing Practices for Enterprise Systems Proceedings of the III Brazilian Symposium on Systematic and Automated Software Testing, (29-38)
  49. Aniche M, Bavota G, Treude C, Gerosa M and Deursen A (2018). Code smells for Model-View-Controller architectures, Empirical Software Engineering, 23:4, (2121-2157), Online publication date: 1-Aug-2018.
  50. ACM
    Gibbons J (2016). Free delivery (functional pearl), ACM SIGPLAN Notices, 51:12, (45-50), Online publication date: 19-Jul-2018.
  51. ACM
    Stocker M, Zimmermann O, Zdun U, Lübke D and Pautasso C Interface Quality Patterns Proceedings of the 23rd European Conference on Pattern Languages of Programs, (1-16)
  52. ACM
    Meißner D, Erb B, Kargl F and Tichy M Retro-λ Proceedings of the 12th ACM International Conference on Distributed and Event-based Systems, (76-87)
  53. ACM
    Wedemann G Scrum as a Method of Teaching Software Architecture Proceedings of the 3rd European Conference of Software Engineering Education, (108-112)
  54. ACM
    Sáez S, Andrikopoulos V, Bitsaki M, Leymann F and van Hoorn A (2018). Utility-Based Decision Making for Migrating Cloud-Based Applications, ACM Transactions on Internet Technology, 18:2, (1-22), Online publication date: 31-May-2018.
  55. ACM
    Steffens A, Lichter H and Döring J Designing a next-generation continuous software delivery system Proceedings of the 4th International Workshop on Rapid Continuous Software Engineering, (1-7)
  56. Franke U, Cohen M and Sigholm J (2018). What can we learn from enterprise architecture models? An experiment comparing models and documents for capability development, Software and Systems Modeling (SoSyM), 17:2, (695-711), Online publication date: 1-May-2018.
  57. ACM
    Gestwicki P Design and Evaluation of an Undergraduate Course on Software Development Practices Proceedings of the 49th ACM Technical Symposium on Computer Science Education, (221-226)
  58. ACM
    Persson P and Angelsmark O Kappa Proceedings of the 2nd International Workshop on Serverless Computing, (16-21)
  59. Li H, Fang S, Zigon B, Sporns O, Saykin A, Goñi J and Shen L BECA: A Software Tool for Integrated Visualization of Human Brain Data Brain Informatics, (285-291)
  60. Vogel M, Weber S and Zirpins C Experiences on Migrating RESTful Web Services to GraphQL Service-Oriented Computing – ICSOC 2017 Workshops, (283-295)
  61. Sokolov N and Madhavji N Cloud meets classroom Proceedings of the 27th Annual International Conference on Computer Science and Software Engineering, (95-102)
  62. Carlson B, Carpenter-Boggs L, Higgins S, Nelson R, Stckle C and Weddell J (2017). Development of a web application for estimating carbon footprints of organic farms, Computers and Electronics in Agriculture, 142:PA, (211-223), Online publication date: 1-Nov-2017.
  63. Wirfs-Brock R Are software patterns simply a handy way to package design heuristics? Proceedings of the 24th Conference on Pattern Languages of Programs, (1-15)
  64. Hahn M, Breitenbücher U, Leymann F and Weiß A TraDE - A Transparent Data Exchange Middleware for Service Choreographies On the Move to Meaningful Internet Systems. OTM 2017 Conferences, (252-270)
  65. Hukerikar and Engelmann (2017). Resilience Design Patterns, Supercomputing Frontiers and Innovations: an International Journal, 4:3, (4-42), Online publication date: 15-Sep-2017.
  66. ACM
    Pruijt L and Wiersema W Software architecture reconstruction and compliance checking Proceedings of the 11th European Conference on Software Architecture: Companion Proceedings, (145-151)
  67. Cheresharov S, Krushkov H, Stoyanov S and Popchev I (2017). Modules for Rapid Application Development of Web-Based Information Systems (RADWIS), Cybernetics and Information Technologies, 17:3, (109-127), Online publication date: 1-Sep-2017.
  68. ACM
    Zimmermann O, Stocker M, Lübke D and Zdun U Interface Representation Patterns Proceedings of the 22nd European Conference on Pattern Languages of Programs, (1-36)
  69. ACM
    Krisper M, Iber J, Rauter T and Kreiner C Insertion Spaces Proceedings of the 22nd European Conference on Pattern Languages of Programs, (1-11)
  70. ACM
    Athanasopoulos D Service Decoupler Proceedings of the 22nd European Conference on Pattern Languages of Programs, (1-9)
  71. ACM
    Desprat C, Caudesaygues B, Luga H and Jessel J Loosely Coupled Approach for Web-Based Collaborative 3D Design Proceedings of the 11th ACM International Conference on Distributed and Event-based Systems, (370-373)
  72. Holanda O, Isotani S, Bittencourt I, Dermeval D and Alcantara W (2017). An object triple mapping system supporting detached objects, Engineering Applications of Artificial Intelligence, 62:C, (234-251), Online publication date: 1-Jun-2017.
  73. Spadini D, Aniche M, Bruntink M and Bacchelli A To mock or not to mock? Proceedings of the 14th International Conference on Mining Software Repositories, (402-412)
  74. Dürschmid T, Trapp M and Döllner J Towards architectural styles for Android app software product lines Proceedings of the 4th International Conference on Mobile Software Engineering and Systems, (58-62)
  75. Matheson D A proposal of practices, processes and models that enable innovation potential Proceedings of the 1st International Workshop on Design and Innovation in Software Engineering, (2-5)
  76. Kapłański P, Seganti A, Cieźliński K, Chrabrowa A and Ługowska I (2017). Automated reasoning based user interface, Expert Systems with Applications: An International Journal, 71:C, (125-137), Online publication date: 1-Apr-2017.
  77. ACM
    Kussmaul C Patterns in classroom facilitation for process oriented guided inquiry learning (POGIL) Proceedings of the VikingPLoP 2017 Conference on Pattern Languages of Program, (1-17)
  78. ACM
    Nadschläger S and Küng J Towards a pattern language for knowledge processing systems Proceedings of the VikingPLoP 2017 Conference on Pattern Languages of Program, (1-33)
  79. Suriadi S, Andrews R, ter Hofstede A and Wynn M (2017). Event log imperfection patterns for process mining, Information Systems, 64:C, (132-150), Online publication date: 1-Mar-2017.
  80. ACM
    Cemus K and Cerny T (2017). Automated extraction of business documentation in enterprise information systems, ACM SIGAPP Applied Computing Review, 16:4, (5-13), Online publication date: 13-Jan-2017.
  81. Silva C, Ferreira H, Sousa Júnior R, Buiati F and Villalba L (2016). Design and Evaluation of a Services Interface for the Internet of Things, Wireless Personal Communications: An International Journal, 91:4, (1711-1748), Online publication date: 1-Dec-2016.
  82. ACM
    Cortés H and Navarro A MDD inclusion of navigational, structural and RBAC elements for JSF and ASP.NET MVC frameworks in UML models Proceedings of the Fourth International Conference on Technological Ecosystems for Enhancing Multiculturality, (1025-1034)
  83. Navarro A and da Silva A (2016). A metamodel-based definition of a conversion mechanism between SOAP and RESTful web services, Computer Standards & Interfaces, 48:C, (49-70), Online publication date: 1-Nov-2016.
  84. Kussmaul C Patterns in classroom activities for process oriented guided inquiry learning (POGIL) Proceedings of the 23rd Conference on Pattern Languages of Programs, (1-16)
  85. ACM
    Cemus K and Cerny T Business Documentation Derivation from Aspect-driven Enterprise Information Systems Proceedings of the International Conference on Research in Adaptive and Convergent Systems, (153-158)
  86. ACM
    Cerny T, Trnka M and Donahoo M Towards Shared Security through Distributed Separation of Concerns Proceedings of the International Conference on Research in Adaptive and Convergent Systems, (169-172)
  87. Pang C (2016). An Agile Architecture for a Legacy Enterprise IT System, International Journal of Organizational and Collective Intelligence, 6:4, (65-97), Online publication date: 1-Oct-2016.
  88. ACM
    Aniche M, Gerosa M and Treude C Developers' Perceptions on Object-Oriented Design and Architectural Roles Proceedings of the XXX Brazilian Symposium on Software Engineering, (63-72)
  89. Nadjaran Toosi A, Khodadadi F and Buyya R (2016). SipaaS, Concurrency and Computation: Practice & Experience, 28:13, (3672-3690), Online publication date: 10-Sep-2016.
  90. ACM
    Gibbons J Free delivery (functional pearl) Proceedings of the 9th International Symposium on Haskell, (45-50)
  91. Orłowski C, Ziółkowski A, Orłowski A, Kapłański P, Sitek T and Pokrzywnicki W Ontology of the Design Pattern Language for Smart Cities Systems Transactions on Computational Collective Intelligence XXV - Volume 9990, (76-100)
  92. Grozev N and Buyya R (2016). Regulations and latency-aware load distribution of web applications in Multi-Clouds, The Journal of Supercomputing, 72:8, (3261-3280), Online publication date: 1-Aug-2016.
  93. ACM
    Desprat C, Jessel J and Luga H 3DEvent Proceedings of the 21st International Conference on Web3D Technology, (73-76)
  94. ACM
    Erb B, Habiger G and Hauck F On the Potential of Event Sourcing for Retroactive Actor-based Programming First Workshop on Programming Models and Languages for Distributed Computing, (1-5)
  95. ACM
    Krisper M and Kreiner C Describing binding time in software design patterns Proceedings of the 21st European Conference on Pattern Languages of Programs, (1-15)
  96. ACM
    Nadschläger S and Küng J A pattern collection for knowledge processing system architecture Proceedings of the 21st European Conference on Pattern Languages of Programs, (1-23)
  97. ACM
    Reinfurt L, Breitenbücher U, Falkenthal M, Leymann F and Riegg A Internet of things patterns Proceedings of the 21st European Conference on Pattern Languages of Programs, (1-21)
  98. Islam S, Fenz S, Weippl E and Kalloniatis C (2016). Migration Goals and Risk Management in Cloud Computing, International Journal of Secure Software Engineering, 7:3, (44-73), Online publication date: 1-Jul-2016.
  99. Wang B, Liu H and Song J (2016). SaaS-based enterprise application integration approach and case study, The Journal of Supercomputing, 72:7, (2833-2847), Online publication date: 1-Jul-2016.
  100. ACM
    Cheung A, Madden S and Solar-Lezama A (2016). Sloth, ACM Transactions on Database Systems, 41:2, (1-42), Online publication date: 30-Jun-2016.
  101. Santos A and Coelho D Java Extensions for Design Pattern Instantiation Proceedings of the 15th International Conference on Software Reuse: Bridging with Social-Awareness - Volume 9679, (284-299)
  102. Lubaś R, Wąs J and Porzycki J (2016). Cellular Automata as the basis of effective and realistic agent-based models of crowd behavior, The Journal of Supercomputing, 72:6, (2170-2196), Online publication date: 1-Jun-2016.
  103. Fernandez E, Monge R and Hashizume K (2016). Building a security reference architecture for cloud systems, Requirements Engineering, 21:2, (225-249), Online publication date: 1-Jun-2016.
  104. ACM
    Tarenskeen D Conceptual Independence as an Architecture Pattern for Adaptable Systems Proceedings of the 10th Travelling Conference on Pattern Languages of Programs, (1-10)
  105. ACM
    Gestwicki P and McNely B (2016). Interdisciplinary Projects in the Academic Studio, ACM Transactions on Computing Education, 16:2, (1-24), Online publication date: 28-Mar-2016.
  106. Pokahr A and Braubach L (2016). Elastic component-based applications in PaaS clouds, Concurrency and Computation: Practice & Experience, 28:4, (1368-1384), Online publication date: 25-Mar-2016.
  107. Hermida J, Meliá S and Arias A (2016). XANUI, Journal of Web Engineering, 15:1-2, (45-83), Online publication date: 1-Mar-2016.
  108. Franke U and Buschle M (2016). Experimental Evidence on Decision-Making in Availability Service Level Agreements, IEEE Transactions on Network and Service Management, 13:1, (58-70), Online publication date: 1-Mar-2016.
  109. ACM
    Sripada S, Reddy Y and Khandelwal S Architecting an extensible framework for Gamifying Software Engineering concepts Proceedings of the 9th India Software Engineering Conference, (119-130)
  110. Cerny T and Donahoo M Survey on Concern Separation in Service Integration Proceedings of the 42nd International Conference on SOFSEM 2016: Theory and Practice of Computer Science - Volume 9587, (518-531)
  111. Cemus K, Cerny T, Matl L and Donahoo M Aspect, Rich, and Anemic Domain Models in Enterprise Information Systems Proceedings of the 42nd International Conference on SOFSEM 2016: Theory and Practice of Computer Science - Volume 9587, (445-456)
  112. ACM
    Ngo H, Tran N and Nguyen L Auto-Scaling to Increase Throughput of Enterprise Applications on Private Clouds Proceedings of the 10th International Conference on Ubiquitous Information Management and Communication, (1-7)
  113. Zimmermann O, Pautasso C, Hohpe G and Woolf B (2016). A Decade of Enterprise Integration Patterns: A Conversation with the Authors, IEEE Software, 33:1, (13-19), Online publication date: 1-Jan-2016.
  114. Hong Zhu and Bayley I (2015). On the Composability of Design Patterns, IEEE Transactions on Software Engineering, 41:11, (1138-1152), Online publication date: 1-Nov-2015.
  115. Rubis R and Cardei I The business data object versioning and change history patterns Proceedings of the 22nd Conference on Pattern Languages of Programs, (1-9)
  116. Rubis R and Cardei I The money object pattern Proceedings of the 22nd Conference on Pattern Languages of Programs, (1-9)
  117. ACM
    Cemus K, Cerny T, Matl L and Donahoo M Enterprise information systems Proceedings of the 2015 Conference on research in adaptive and convergent systems, (330-336)
  118. ACM
    Cemus K, Cerny T and Donahoo M Evaluation of approaches to business rules maintenance in enterprise information systems Proceedings of the 2015 Conference on research in adaptive and convergent systems, (324-329)
  119. Rusakov A, Shin J and Meyer B Concurrency patterns for easier robotic coordination 2015 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), (3500-3505)
  120. ACM
    González O, España S and Pastor O Including multi-stroke gesture-based interaction in user interfaces using a model-driven method Proceedings of the XVI International Conference on Human Computer Interaction, (1-8)
  121. ACM
    Vilar R, Oliveira D and Almeida H Rendering patterns for enterprise applications Proceedings of the 20th European Conference on Pattern Languages of Programs, (1-17)
  122. ACM
    Bailis P, Fekete A, Franklin M, Ghodsi A, Hellerstein J and Stoica I Feral Concurrency Control Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data, (1327-1342)
  123. Fernandes E, Turine M and Cagnin M SIGS-S Mobile Saude Proceedings of the annual conference on Brazilian Symposium on Information Systems: Information Systems: A Computer Socio-Technical Perspective - Volume 1, (639-646)
  124. Araujo T, Santos C, Carneiro N and Meiguins B Android Augmented Reality Applications in Extensible, Flexible, and Adaptable Architecture Proceedings of the annual conference on Brazilian Symposium on Information Systems: Information Systems: A Computer Socio-Technical Perspective - Volume 1, (63-70)
  125. Zimmermann O Metrics for architectural synthesis and evaluation Proceedings of the Second International Workshop on Software Architecture and Metrics, (8-14)
  126. ACM
    Viennot N, Lécuyer M, Bell J, Geambasu R and Nieh J Synapse Proceedings of the Tenth European Conference on Computer Systems, (1-16)
  127. Kewley R, MacCalman A, McDonnell J and Hein C DEVS distributed parallel architecture for enterprise simulation Proceedings of the Symposium on Theory of Modeling & Simulation: DEVS Integrative M&S Symposium, (157-164)
  128. ACM
    Matheson D Modeling requirements for model-driven engineering of large software solutions needing a modular approach Companion Proceedings of the 14th International Conference on Modularity, (27-28)
  129. Bruns R, Dunkel J, Masbruch H and Stipkovic S (2015). Intelligent M2M, Expert Systems with Applications: An International Journal, 42:3, (1235-1246), Online publication date: 15-Feb-2015.
  130. ACM
    Dwivedi A and Rath S (2015). Incorporating Security Features in Service-Oriented Architecture using Security Patterns, ACM SIGSOFT Software Engineering Notes, 40:1, (1-6), Online publication date: 6-Feb-2015.
  131. ACM
    Torres A, Galante R and Pimenta M (2014). ENORM, ACM SIGMOD Record, 43:2, (23-28), Online publication date: 4-Dec-2014.
  132. ACM
    Islam S, Weippl E and Krombholz K A Decision Framework Model for Migration into Cloud Proceedings of the 16th International Conference on Information Integration and Web-based Applications & Services, (185-189)
  133. Zanoni M, Perin F, Fontana F and Viscusi G (2014). Pattern detection for conceptual schema recovery in data-intensive systems, Journal of Software: Evolution and Process, 26:12, (1172-1192), Online publication date: 1-Dec-2014.
  134. Nejkovic V and Tosic M (2014). Wiki learning system patterns for academic courses, Computer Applications in Engineering Education, 22:4, (678-685), Online publication date: 1-Dec-2014.
  135. ACM
    Grozev N and Buyya R (2014). Multi-Cloud Provisioning and Load Distribution for Three-Tier Applications, ACM Transactions on Autonomous and Adaptive Systems, 9:3, (1-21), Online publication date: 7-Oct-2014.
  136. Rubis R and Cardei I Business object life cycle pattern Proceedings of the 21st Conference on Pattern Languages of Programs, (1-7)
  137. Guerra E, Aniche M, Gerosa M and Yoder J Preparing for a test driven development session Proceedings of the 21st Conference on Pattern Languages of Programs, (1-12)
  138. ACM
    He J, Wadler P and Trinder P Typecasting actors Proceedings of the Fifth Annual Scala Workshop, (23-33)
  139. ACM
    Beckers K, Faßbender S, Heisel M and Suppan S A meta-pattern and pattern form for context-patterns Proceedings of the 19th European Conference on Pattern Languages of Programs, (1-23)
  140. ACM
    Beckers K, Faßbender S and Heisel M Deriving a pattern language syntax for context-patterns Proceedings of the 19th European Conference on Pattern Languages of Programs, (1-25)
  141. ACM
    Pardon G and Pautasso C Atomic distributed transactions Proceedings of the 23rd International Conference on World Wide Web, (943-948)
  142. Macia-Perez F, Lorenzo-Fonseca I and Berna-Martinez J (2014). A formal framework for modelling complex network management systems, Journal of Network and Computer Applications, 40:C, (255-269), Online publication date: 1-Apr-2014.
  143. ACM
    Nguyen T, Marilleau N, Ho T and El Fallah A Method supporting collaboration in complex system participatory simulation Proceedings of the 4th Symposium on Information and Communication Technology, (61-70)
  144. Demange A, Moha N and Tremblay G Detection of SOA Patterns Proceedings of the 11th International Conference on Service-Oriented Computing - Volume 8274, (114-130)
  145. ACM
    Merson P Ultimate architecture enforcement Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity, (153-160)
  146. Chalekian P POSDCORB Proceedings of the 20th Conference on Pattern Languages of Programs, (1-20)
  147. Goswami D Rule engine for validating complex business objects Proceedings of the 20th Conference on Pattern Languages of Programs, (1-18)
  148. Pruijt L, Wiersema W and Brinkkemper S A typology based approach to assign responsibilities to software layers Proceedings of the 20th Conference on Pattern Languages of Programs, (1-14)
  149. Bijvank R, Wiersema W and Köppe C Software architecture patterns for system administration support Proceedings of the 20th Conference on Pattern Languages of Programs, (1-14)
  150. ACM
    Schur M, Roth A and Zeller A Mining behavior models from enterprise web applications Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, (422-432)
  151. Grasso G, Leone N and Ricca F Answer set programming Proceedings of the 7th international conference on Web Reasoning and Rule Systems, (19-34)
  152. ACM
    Kreiner C A binding time guide to creational patterns Proceedings of the 18th European Conference on Pattern Languages of Program, (1-10)
  153. ACM
    Beckers K, Fassbender S and Heisel M A meta-model for context-patterns Proceedings of the 18th European Conference on Pattern Languages of Program, (1-15)
  154. ACM
    Zhu H and Bayley I (2013). An algebra of design patterns, ACM Transactions on Software Engineering and Methodology, 22:3, (1-35), Online publication date: 1-Jul-2013.
  155. ACM
    Durdik Z and Reussner R On the appropriate rationale for using design patterns and pattern documentation Proceedings of the 9th international ACM Sigsoft conference on Quality of software architectures, (107-116)
  156. Mustafa M and Sjöström J Design principles for research data export Proceedings of the 8th international conference on Design Science at the Intersection of Physical and Virtual Design, (34-49)
  157. ACM
    Gulden M and Kugele S A concept for generating simplified RESTful interfaces Proceedings of the 22nd International Conference on World Wide Web, (1391-1398)
  158. ACM
    Sharma M and Vishwakarma R CMMI based software metrics to evaluate OOAD Proceedings of the Second International Conference on Computational Science, Engineering and Information Technology, (19-25)
  159. Reza J Coherent generational design Proceedings of the 19th Conference on Pattern Languages of Programs, (1-26)
  160. ACM
    Hafiz M, Adamczyk P and Johnson R Growing a pattern language (for security) Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software, (139-158)
  161. ACM
    Bezerra D, Sousa D, Filho G, Burlamaqui A and Silva I Luar Proceedings of the 18th Brazilian symposium on Multimedia and the web, (395-402)
  162. Navarro A, Cristóbal J, Fernández-Chamizo C and Fernández-Valmayor A (2012). Architecture of a multiplatform virtual campus, Software—Practice & Experience, 42:10, (1229-1246), Online publication date: 1-Oct-2012.
  163. ACM
    Soares L, Price R, Pimenta M and Braga J Patterns selection for software architecture Proceedings of the 9th Latin-American Conference on Pattern Languages of Programming, (1-13)
  164. Lin L, Yang W and Lin J (2012). A layer-based method for rapid software development, Computers & Mathematics with Applications, 64:5, (1364-1375), Online publication date: 1-Sep-2012.
  165. ACM
    Zimmermann O Architectural decision identification in architectural patterns Proceedings of the WICSA/ECSA 2012 Companion Volume, (96-103)
  166. ACM
    Castro S, González S, Mens K and Denker M DynamicSchema Proceedings of the 4th ACM International Workshop on Context-Oriented Programming, (1-6)
  167. Febbraro O, Grasso G, Leone N and Ricca F JASP Proceedings of the Thirteenth International Conference on Principles of Knowledge Representation and Reasoning, (541-551)
  168. Bergenti F, Caire G and Gotta D Supporting user-centric business processes with WADE Proceedings of the 11th International Conference on Autonomous Agents and Multiagent Systems - Volume 3, (1435-1436)
  169. Shah S, Dietrich J and McCartin C On the automated modularisation of java programs using service locators Proceedings of the 11th international conference on Software Composition, (132-147)
  170. ACM
    Gestwicki P The entity system architecture and its application in an undergraduate game development studio Proceedings of the International Conference on the Foundations of Digital Games, (73-80)
  171. Olah M, Mohr D and Stefanovic D Representing uniqueness constraints in object-relational mapping Proceedings of the 50th international conference on Objects, Models, Components, Patterns, (236-251)
  172. Scheglmann S, Scherp A and Staab S Declarative representation of programming access to ontologies Proceedings of the 9th international conference on The Semantic Web: research and applications, (659-673)
  173. ACM
    Majchrzak T and Simon A Using spring Roo for the test-driven development of Web applications Proceedings of the 27th Annual ACM Symposium on Applied Computing, (664-671)
  174. Dietrich J, McCartin C, Tempero E and Shah S On the existence of high-impact refactoring opportunities in programs Proceedings of the Thirty-fifth Australasian Computer Science Conference - Volume 122, (37-48)
  175. Hospodka J and Koubik M Special web-based application for electric circuit analysis Proceedings of the 10th WSEAS international conference on E-Activities, (140-145)
  176. Kennard R and Leaney J (2011). Is there convergence in the field of UI generation?, Journal of Systems and Software, 84:12, (2079-2087), Online publication date: 1-Dec-2011.
  177. ACM
    Frey T, Gelhausen M and Saake G Categorization of concerns Proceedings of the 3rd ACM SIGPLAN workshop on Evaluation and usability of programming languages and tools, (73-82)
  178. ACM
    Fernandes S and Cachopo J Strict serializability is harmless Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, (257-276)
  179. ACM
    Matsumoto P, Correia F, Yoder J, Guerra E, Ferreira H and Aguiar A AOM metadata extension points Proceedings of the 18th Conference on Pattern Languages of Programs, (1-16)
  180. Zhou J, Zhao D and Liu J A domain specific language for interactive enterprise application development Proceedings of the 2011 international conference on Web information systems and mining - Volume Part II, (351-360)
  181. Wang F, Yan L, Zhou P, Sun W and Ding Y The investigation of WEB software system based on domain-driven design Proceedings of the 2011 international conference on Web information systems and mining - Volume Part I, (11-18)
  182. ACM
    Durdik Z An architecture-centric approach for goal-driven requirements elicitation Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering, (384-387)
  183. ACM
    Kozuka N and Ishida Y Building a product line architecture for variant-rich enterprise applications using a data-oriented approach Proceedings of the 15th International Software Product Line Conference, Volume 2, (1-6)
  184. ACM
    Löwe M (2011). Refactoring information systems, ACM SIGSOFT Software Engineering Notes, 36:4, (1-7), Online publication date: 4-Aug-2011.
  185. ACM
    Huang Y, Dillon L and Stirewalt R Contract-based synchronization of IP telecommunication services Proceedings of the 5th International Conference on Communication System Software and Middleware, (1-12)
  186. Deiters C and Rausch A Assuring architectural properties during compositional architecture design Proceedings of the 10th international conference on Software composition, (141-148)
  187. Schwarz N, Lungu M and Nierstrasz O Seuss Proceedings of the 49th international conference on Objects, models, components, patterns, (276-289)
  188. ACM
    Durdik Z Towards a process for architectural modelling in agile software development Proceedings of the joint ACM SIGSOFT conference -- QoSA and ACM SIGSOFT symposium -- ISARCS on Quality of software architectures -- QoSA and architecting critical systems -- ISARCS, (183-192)
  189. Deng Y, Churcher C, Abell W and McCallum J Designing a framework for end user applications Proceedings of the Third international conference on End-user development, (67-75)
  190. Torres A, Galante R and Pimenta M (2011). A synergistic model-driven approach for persistence modeling with UML, Journal of Systems and Software, 84:6, (942-957), Online publication date: 1-Jun-2011.
  191. ACM
    Paulheim H Improving the usability of integrated applications by using interactive visualizations of linked data Proceedings of the International Conference on Web Intelligence, Mining and Semantics, (1-12)
  192. Batra U and Mukherjee S Software design patterns for message driven service oriented integration of stovepipe applications in healthcare enterprise Proceedings of the 10th WSEAS international conference on Applied computer and applied computational science, (211-216)
  193. ACM
    Kumar M and Kumar R Architectural refactoring of a mission critical integration application Proceedings of the 4th India Software Engineering Conference, (77-83)
  194. Rajam S, Cortez R, Vazhenin A and Bhalla S Design patterns in enterprise application integration for e-learning arena Proceedings of the 13th International Conference on Humans and Computers, (81-88)
  195. ACM
    Kim S, Schap T, Bosch M, Maciejewski R, Delp E, Ebert D and Boushey C Development of a mobile user interface for image-based dietary assessment Proceedings of the 9th International Conference on Mobile and Ubiquitous Multimedia, (1-7)
  196. ACM
    Dayarathna M, Tsukahara Y and Sugiura K TelescopeVisualizer Proceedings of the 6th Asian Internet Engineering Conference, (16-23)
  197. ACM
    Saúde A, Victório R and Coutinho G Persistent state pattern Proceedings of the 17th Conference on Pattern Languages of Programs, (1-16)
  198. ACM
    Guerra E, Fernandes C and Silveira F Architectural patterns for metadata-based frameworks usage Proceedings of the 17th Conference on Pattern Languages of Programs, (1-25)
  199. ACM
    Faber N and Jorna R Multi-actor systems and its organizational form Proceedings of the Ergonomie et Informatique Avancee Conference, (100-105)
  200. Ambroziewicz A and Śmiałek M Application logic patterns reusable elements of user-system interaction Proceedings of the 13th international conference on Model driven engineering languages and systems: Part I, (241-255)
  201. Büchner T, Matthes F and Neubert C Data model driven implementation of web cooperation systems with Tricia Proceedings of the Third international conference on Objects and databases, (70-84)
  202. ACM
    Do Vale Pereira D and Kulesza U Refactoring a web academic information system using design patterns Proceedings of the 8th Latin American Conference on Pattern Languages of Programs, (1-14)
  203. ACM
    Pereira D, Lima G and Kulesza U Architecting and modularizing web information systems using design patterns Proceedings of the 8th Latin American Conference on Pattern Languages of Programs, (1-16)
  204. ACM
    Quasthoff M, Völkel M and Meinel C Unsupervised matching of object models and ontologies using canonical vocabulary Proceedings of the 6th International Conference on Semantic Systems, (1-7)
  205. Könemann P and Zimmermann O Linking design decisions to design models in model-based software development Proceedings of the 4th European conference on Software architecture, (246-262)
  206. ACM
    Woods E and Rozanski N Unifying software architecture with its implementation Proceedings of the Fourth European Conference on Software Architecture: Companion Volume, (55-58)
  207. ACM
    Sesera L Applying fundamental banking patterns Proceedings of the 15th European Conference on Pattern Languages of Programs, (1-30)
  208. ACM
    Krueger J, Tinnefeld C, Grund M, Zeier A and Plattner H A case for online mixed workload processing Proceedings of the Third International Workshop on Testing Database Systems, (1-6)
  209. Sivaramakrishnan K, Nagaraj K, Ziarek L and Eugster P Efficient session type guided distributed interaction Proceedings of the 12th international conference on Coordination Models and Languages, (152-167)
  210. ACM
    Bell D, Hall T, Hannay J, Pfahl D and Acuna S Software engineering group work Proceedings of the 2010 Special Interest Group on Management Information System's 48th annual conference on Computer personnel research on Computer personnel research, (43-47)
  211. Nunes I, Choren R, Nunes C, Fábri B, Silva F, Carvalho G and de Lucena C Supporting prenatal care in the public healthcare system in a newly industrialized country Proceedings of the 9th International Conference on Autonomous Agents and Multiagent Systems: Industry track, (1723-1730)
  212. ACM
    Counsell S, Hierons R, Hamza H, Black S and Durrand M Is a strategy for code smell assessment long overdue? Proceedings of the 2010 ICSE Workshop on Emerging Trends in Software Metrics, (32-38)
  213. ACM
    Wang W and Burge J Using rationale to support pattern-based architectural design Proceedings of the 2010 ICSE Workshop on Sharing and Reusing Architectural Knowledge, (1-8)
  214. Uva A, Cristiano S, Fiorentino M and Monno G (2010). Distributed design review using tangible augmented technical drawings, Computer-Aided Design, 42:5, (364-372), Online publication date: 1-May-2010.
  215. ACM
    Herold S Checking architectural compliance in component-based systems Proceedings of the 2010 ACM Symposium on Applied Computing, (2244-2251)
  216. ACM
    Ortiz A Building server-side web language processors Proceedings of the 41st ACM technical symposium on Computer science education, (2-6)
  217. Moeller A, Prox M, Schmidt M and Lambrecht H Simulation and optimization of material and energy flow systems Winter Simulation Conference, (1444-1455)
  218. Sarkar S, Maskeri G and Ramachandran S (2009). Discovery of architectural layers and measurement of layering violations in source code, Journal of Systems and Software, 82:11, (1891-1905), Online publication date: 1-Nov-2009.
  219. Gadelha B, Nunes I, Fuks H and De Lucena C An approach for developing groupware product lines based on the 3C collaboration model Proceedings of the 15th international conference on Groupware: design, implementation, and use, (328-343)
  220. ACM
    Kowark T, Hirschfeld R and Haupt M Object-relational mapping with SqueakSave Proceedings of the International Workshop on Smalltalk Technologies, (87-100)
  221. ACM
    Welicki L, Yoder J and Wirfs-Brock R Adaptive object-model builder Proceedings of the 16th Conference on Pattern Languages of Programs, (1-8)
  222. Zimmermann O, Koehler J, Leymann F, Polley R and Schuster N (2009). Managing architectural decision models with dependency relations, integrity constraints, and production rules, Journal of Systems and Software, 82:8, (1249-1267), Online publication date: 1-Aug-2009.
  223. ACM
    Kellner I and Fiege L Viewpoints in complex event processing Proceedings of the Third ACM International Conference on Distributed Event-Based Systems, (1-8)
  224. Dearle A, Kirby G and Morrison R Orthogonal persistence revisited Proceedings of the Second international conference on Object databases, (1-22)
  225. ACM
    Cook W, Tilevich E, Ibrahim A and Wiedermann B Language design for distributed objects Proceedings of the 1st International Workshop on Distributed Objects for the 21st Century, (1-4)
  226. Feuerlicht G Design of Composable Services Service-Oriented Computing --- ICSOC 2008 Workshops, (15-27)
  227. Rajapakse D and Jarzabek S (2009). Towards generic representation of web applications: solutions and trade-offs, Software—Practice & Experience, 39:5, (501-530), Online publication date: 1-Apr-2009.
  228. Babenko L (2009). Ontological approach to the specification of properties of software systems and their components, Cybernetics and Systems Analysis, 45:1, (160-166), Online publication date: 1-Jan-2009.
  229. ACM
    Nunes I, Kulesza U, Nunes C, Cirilo E and Lucena C Extending web-based applications to incorporate autonomous behavior Proceedings of the 14th Brazilian Symposium on Multimedia and the Web, (115-122)
  230. ACM
    Sesera L Fundamental banking patterns Proceedings of the 15th Conference on Pattern Languages of Programs, (1-21)
  231. ACM
    Rostal P Thoughts on weak links and Alexandrian life in Scrum Proceedings of the 15th Conference on Pattern Languages of Programs, (1-19)
  232. ACM
    Welicki L, Yoder J and Wirfs-Brock R The dynamic factory pattern Proceedings of the 15th Conference on Pattern Languages of Programs, (1-7)
  233. ACM
    Ferreira H, Correia F and Welicki L Patterns for data and metadata evolution in adaptive object-models Proceedings of the 15th Conference on Pattern Languages of Programs, (1-9)
  234. Farcas C, Farcas E and Krüger I Requirements for service composition in ultra-large scale software-intensive systems Proceedings of the 15th Monterey conference on Foundations of Computer Software: future Trends and Techniques for Development, (93-115)
  235. ACM
    Stopford B and Counsell S (2008). A framework for the simulation of structural software evolution, ACM Transactions on Modeling and Computer Simulation, 18:4, (1-36), Online publication date: 1-Sep-2008.
  236. Oren E, Heitmann B and Decker S (2008). ActiveRDF, Web Semantics: Science, Services and Agents on the World Wide Web, 6:3, (191-202), Online publication date: 1-Sep-2008.
  237. Gerber A, van der Merwe A and Barnard A A functional semantic web architecture Proceedings of the 5th European semantic web conference on The semantic web: research and applications, (273-287)
  238. Jeong A, Jeong S, Lim Y and Kim M Active Binding Technology Proceedings of the 10th international conference on Software Reuse: High Confidence Software Reuse in Large Systems, (270-273)
  239. Cirilo E, Kulesza U, Coelho R, Lucena C and Staa A Integrating Component and Product Lines Technologies Proceedings of the 10th international conference on Software Reuse: High Confidence Software Reuse in Large Systems, (130-141)
  240. ACM
    Maule A, Emmerich W and Rosenblum D Impact analysis of database schema changes Proceedings of the 30th international conference on Software engineering, (451-460)
  241. ACM
    Goldschmidt T, Reussner R and Winzen J A case study evaluation of maintainability and performance of persistency techniques Proceedings of the 30th international conference on Software engineering, (401-410)
  242. ACM
    Keith M and Stafford R (2008). Exposing the ORM Cache, Queue, 6:3, (38-47), Online publication date: 1-May-2008.
  243. ACM
    Russell C (2008). Bridging the Object-Relational Divide, Queue, 6:3, (18-28), Online publication date: 1-May-2008.
  244. Jackson E and Schulte W Compositional modeling for data-centric business applications Proceedings of the 7th international conference on Software composition, (190-205)
  245. ACM
    Chalin P, Sinnig D and Torkzadeh K Capturing business transaction requirements in use case models Proceedings of the 2008 ACM symposium on Applied computing, (602-606)
  246. ACM
    Juillerat N Enforcing code security in database web applications using libraries and object models Proceedings of the 2007 Symposium on Library-Centric Software Design, (31-41)
  247. ACM
    Bell P A practical high volume software product line Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion, (994-1003)
  248. ACM
    Landre E, Wesenberg H and Olmheim J Agile enterprise software development using domain-driven design and test first Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion, (983-993)
  249. Kampffmeyer H and Zschaler S Finding the pattern you need Proceedings of the 10th international conference on Model Driven Engineering Languages and Systems, (211-225)
  250. Li Q, Zhu H, Li J and He J Scalable formalization of publish/subscribe messaging scheme based on message brokers Proceedings of the 4th international conference on Web services and formal methods, (61-76)
  251. Zimmermann O, Grundler J, Tai S and Leymann F Architectural Decisions and Patterns for Transactional Workflows in SOA Proceedings of the 5th international conference on Service-Oriented Computing, (81-93)
  252. Eggenberger M, Prakash N, Matsumoto K and Thurmond D Policy Based Messaging Framework Proceedings of the 5th international conference on Service-Oriented Computing, (497-505)
  253. Ota M and Jelínek i Differential conversion Proceedings of the 4th international conference on Cooperative design, visualization, and engineering, (132-139)
  254. Greenhalgh C, Benford S, Drozd A, Flintham M, Hampshire A, Oppermann L, Smith K and Tycowicz C Addressing mobile phone diversity in ubicomp experience development Proceedings of the 9th international conference on Ubiquitous computing, (447-464)
  255. ACM
    Senior R Batch Lazy Loader Proceedings of the 14th Conference on Pattern Languages of Programs, (1-3)
  256. Chalin P and James P Non-null references by default in java Proceedings of the 21st European conference on Object-Oriented Programming, (227-247)
  257. Sousa P Learning patterns of application architecture by looking at code Proceedings of the 11th WSEAS International Conference on Computers, (577-582)
  258. Mahmood Z Service oriented architecture Proceedings of the 11th WSEAS International Conference on Computers, (497-501)
  259. Mahmood Z Service oriented architecture Proceedings of the 11th WSEAS International Conference on Computers, (491-496)
  260. Mahmood Z Service oriented architecture Proceedings of the 11th WSEAS International Conference on Computers, (485-490)
  261. Zimmermann O, Gschwind T, Küster J, Leymann F and Schuster N Reusable architectural decision models for enterprise application development Proceedings of the Quality of software architectures 3rd international conference on Software architectures, components, and applications, (15-32)
  262. Rajapakse D and Jarzabek S Using Server Pages to Unify Clones in Web Applications Proceedings of the 29th international conference on Software Engineering, (116-126)
  263. Babu T. L, Seetha Ramaiah M, Prabhakar T and Rambabu D ArchVoc--Towards an Ontology for Software Architecture Proceedings of the Second Workshop on SHAring and Reusing architectural Knowledge Architecture, Rationale, and Design Intent
  264. Ermagan V, Farcas C, Farcas E, Kruger I and Menarini M A Service-Oriented Blueprint for COTS Integration Proceedings of the Second International Workshop on Incorporating COTS Software into Software Systems: Tools and Techniques
  265. ACM
    Oren E, Delbru R, Gerke S, Haller A and Decker S ActiveRDF Proceedings of the 16th international conference on World Wide Web, (817-824)
  266. ACM
    McBride M (2007). The software architect, Communications of the ACM, 50:5, (75-81), Online publication date: 1-May-2007.
  267. ACM
    Datta S, van Engelen R, Gaitros D and Jammigumpula N Experiences with tracking the effects of changing requirements on Morphbank Proceedings of the 45th annual southeast regional conference, (413-418)
  268. Tvarožek M, Barla M and Bieliková M Personalized Presentation in Web-Based Information Systems Proceedings of the 33rd conference on Current Trends in Theory and Practice of Computer Science, (796-807)
  269. Meijler T, Kruithof G and van Beest N Top down versus bottom up in service-oriented integration Proceedings of the 4th international conference on Service-Oriented Computing, (484-489)
  270. Skarmeas N, Loverdos C, Tsiara K, Bassakidis A, Tzoumas A and Livas D Olympic agents Proceedings of the 2nd international conference on Trends in enterprise application architecture, (298-310)
  271. Altintas N, Cetin S and Dogru A Industrializing software development Proceedings of the 2nd international conference on Trends in enterprise application architecture, (54-68)
  272. Altintas N, Cetin S and Dogru A Industrializing Software Development: The “Factory Automation” Way Trends in Enterprise Application Architecture, (54-68)
  273. Javahery H, Sinnig D, Seffah A, Forbrig P and Radhakrishnan T Pattern-based UI design Proceedings of the 5th international conference on Task models and diagrams for users interface design, (97-108)
  274. ACM
    Riehle D Value object Proceedings of the 2006 conference on Pattern languages of programs, (1-6)
  275. ACM
    Elssamadisy A and Whitmore J Functional testing Proceedings of the 2006 conference on Pattern languages of programs, (1-13)
  276. Gümüşkaya H An architecture design process using a supportable meta-architecture and roundtrip engineering Proceedings of the 4th international conference on Advances in Information Systems, (324-333)
  277. Cetin S, Altintas N and Solmaz R Business rules segregation for dynamic process management with an aspect-oriented framework Proceedings of the 2006 international conference on Business Process Management Workshops, (193-204)
  278. ACM
    Rudzki J and Systä T Performance implications of design pattern usage in distributed applications Proceedings of the ISSTA 2006 workshop on Role of software architecture for testing and analysis, (1-11)
  279. ACM
    Cachopo J and Rito-Silva A Combining software transactional memory with a domain modeling language to simplify web application development Proceedings of the 6th international conference on Web engineering, (297-304)
  280. Keren M, Kirshin A, Rubin J and Truu A MDA approach for maintenance of business applications Proceedings of the Second European conference on Model Driven Architecture: foundations and Applications, (40-51)
  281. Balaban M and Limonad L Towards automatic integration of persistency requirements in enterprise-systems – the persistent-to-persistent patterns Proceedings of the 6th international conference on Next Generation Information Technologies and Systems, (59-70)
  282. Zhang G, Fu X, Song S, Zhu M and Zhang M Process driven data access component generation Proceedings of the Second international conference on Data Engineering Issues in E-Commerce and Services, (81-89)
  283. Graça J, Mamede N and Pereira J A framework for integrating natural language tools Proceedings of the 7th international conference on Computational Processing of the Portuguese Language, (110-119)
  284. Rioux F and Chalin P (2006). Improving the Quality of Web-based Enterprise Applications with Extended Static Checking, Electronic Notes in Theoretical Computer Science (ENTCS), 157:2, (119-132), Online publication date: 1-May-2006.
  285. Perepletchikov M, Ryan C and Frampton K Comparing the impact of service-oriented and object-oriented paradigms on the structural properties of software Proceedings of the 2005 OTM Confederated international conference on On the Move to Meaningful Internet Systems, (431-441)
  286. Gruszczynski P, Osinski S and Swedrzynski A Offline business objects Proceedings of the 2005 OTM Confederated international conference on On the Move to Meaningful Internet Systems: CoopIS, COA, and ODBASE - Volume Part II, (960-977)
  287. Baker S and Dobson S Comparing service-oriented and distributed object architectures Proceedings of the 2005 Confederated international conference on On the Move to Meaningful Internet Systems - Volume >Part I, (631-645)
  288. Garzás J and Piattini M Improving object-oriented micro architectural design through knowledge systematization Proceedings of the 24th international conference on Perspectives in Conceptual Modeling, (444-453)
  289. Zlatkin S and Kaschek R Towards amplifying business process reuse Proceedings of the 24th international conference on Perspectives in Conceptual Modeling, (364-374)
  290. ACM
    Patton J Finding the forest in the trees Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (266-274)
  291. Krüger I, Meisinger M and Menarini M Applying service-oriented development to complex systems Proceedings of the 12th Monterey conference on Reliable systems on unreliable networked platforms, (26-46)
  292. Hu J and Zhong N Clickstream Log Acquisition with Web Farming Proceedings of the 2005 IEEE/WIC/ACM International Conference on Web Intelligence, (257-263)
  293. Witthawaskul W and Johnson R Transaction Support Using Unit of Work Modeling in the Context of MDA Proceedings of the Ninth IEEE International EDOC Enterprise Computing Conference, (131-141)
  294. Teiniker E, Schmoelzer G, Faschingbauer J, Kreiner C and Weiss R A Hybrid Component-Based System Development Process Proceedings of the 31st EUROMICRO Conference on Software Engineering and Advanced Applications, (152-159)
  295. Aier S and Schönherr M Evaluating integration architectures – a scenario-based evaluation of integration technologies Proceedings of the 31st VLDB conference on Trends in Enterprise Application Architecture, (2-14)
  296. Heinen T, May M and Schmidt B 3d visualisation in spatial data infrastructures Proceedings of the 5th international conference on Smart Graphics, (222-229)
  297. Mac-Vicar D and Navón J Web applications Proceedings of the 5th international conference on Web Engineering, (500-505)
  298. Martin R (2005). The Test Bus Imperative, IEEE Software, 22:4, (65-67), Online publication date: 1-Jul-2005.
  299. Cabibbo L and Carosi A Managing inheritance hierarchies in object/relational mapping tools Proceedings of the 17th international conference on Advanced Information Systems Engineering, (135-150)
  300. Mazhelis O, Markkula J and Jakobsson M Specifying patterns for mobile application domain using general architectural components Proceedings of the 6th international conference on Product Focused Software Process Improvement, (157-172)
  301. Ahlgren R and Markkula J Design patterns and organisational memory in mobile application development Proceedings of the 6th international conference on Product Focused Software Process Improvement, (143-156)
  302. Maciaszek L "Roundtrip architectural modeling" Proceedings of the 2nd Asia-Pacific conference on Conceptual modelling - Volume 43, (17-23)
  303. Becker S, Brogi A, Gorton I, Overhage S, Romanovsky A and Tivoli M Towards an engineering approach to component adaptation Proceedings of the 2004 international conference on Architecting Systems with Trustworthy Components, (193-215)
  304. ACM
    McBride M The software architect Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, (230-235)
  305. Hasselbring W, Reussner R, Jaekel H, Schlegelmilch J, Teschke T and Krieghoff S The Dublo Architecture Pattern for Smooth Migration of Business Information Systems Proceedings of the 26th International Conference on Software Engineering, (117-126)
  306. ACM
    Meszaros G Agile regression testing using record & playback Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (353-360)
  307. Deng Y, Frankl P and Chen Z Testing database transaction concurrency Proceedings of the 18th IEEE International Conference on Automated Software Engineering, (184-193)
  308. Lippert M, Schmolitzky A and Züllighoven H Metaphor design spaces Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering, (33-40)
  309. Schmidt D and Buschmann F Patterns, frameworks, and middleware Proceedings of the 25th International Conference on Software Engineering, (694-704)
  310. Niculescu V, Şerban C and Vescan A Does Cyclic Learning have Positive Impact on Teaching Object-Oriented Programming? 2019 IEEE Frontiers in Education Conference (FIE), (1-9)
Contributors
  • ThoughtWorks, Inc.

Recommendations

Krishna K. Dhara

Several patterns that are common to enterprise applications are identified in this book, and the author tries to weave them together. It divides enterprise applications into layers, discusses issues within each layer, and lists suitable patterns for each layer. It illustrates how the choices in each layer will affect the options in other layers and in developing an enterprise application. This book is a useful reference for both enterprise application architects and for enterprise application developers. Enterprise applications are organized into domain logic, data, Web presentation, concurrency, session state, and distribution layers. The domain logic layer illustrates different approaches to domain logic, such as transactional model, domain model, and table model. Merits and demerits of these approaches are discussed. Choosing one approach over the other will shift the paradigm both in terms of the architecture and in terms of development. The chapter on the data layer discusses domain logic and database views. Though these issues are dictated by existing, often relational, databases, this chapter offers an overview of issues related to mapping domain views to databases. The Web presentation layer is probably the best understood of all the layers. A variant of the model-view-controller (MVC) pattern is listed as a possible solution. Discussion of the concurrency layer, along with the domain logic layer, presents the most interesting aspect of this book. While addressing some of these issues in chapter 5, the author acknowledges that these problems need further elaboration. Understanding concurrency, object databases, and mutation is nontrivial. Unfortunately, because of the nature of the problems and the scope of this book, these discussions are sketchy, and require expertise from readers to realize all of the related issues in choosing appropriate patterns. Session state and distribution layers offer important architectural choices that need to be considered while designing distributed enterprise applications. The second half of the book lists various patterns that are identified in different layers. This part could be a reference point for enterprise application developers. Fowler does an excellent job identifying various layers that are common to enterprise applications. Some of these layers and the discussion on putting all these layers together need a much larger discussion. That discussion should help readers understand issues, like why transaction scripting is better for concurrency, but it is worthwhile to spend time learning about and understanding the object model, which would provide better modularity. This book provides a good introduction for enterprise application developers, both in isolating several layers in their application, and in recognizing the interactions between them. However, readers will require considerable knowledge and expertise to read through various issues discussed in this book. I strongly recommend this book for enterprise application architects. Though not comprehensive, it would also serve as a good reference text for application developers. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.