Skip to main content
Log in

A Methodology for Architectural Design of Concurrent and Distributed Software Systems

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

Concurrent and distributed software applications are complex software systems that exploit highly parallel and distributed infrastructure to improve the quality of systems in cost-effective way. In order to assist the development of affordable concurrent and distributed software systems, a more effective approach of utilizing single-based architectural description languages (ADLs) is needed. In this paper, we describe an architectural modeling framework that can be used for specifying and analyzing distributed and concurrent software applications. Our key contribution is an architectural specification framework that integrates four important concepts: (1) an architectural description language known as syntactic theory (ST), (2) a high level Petri nets modeling language known as Hierarchical Predicate Transition Nets (HPrTNs), (3) a Pattern-Based Refinement Technique (PBRT), and (4) a systematic process for deriving architectural specifications from requirement specifications. Moreover, the method is heterogeneous modeling approach that specifies software architecture of a distributed and concurrent system in a top-down manner. The immediate benefits of our heterogeneous approach include: increased system analyzability, comprehensibility, reusability, and flexibility. We describe a case study to show the applicability of our approach.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. G. Abowd, R. Allen, and D. Garlan. Using Style to give meaning to software architecture. In Proceeding of SIGSOFT 93: Foundations of Software Engineering, Software Engineering Notes, ACM, 1993.

  2. R. Allen and D. Garlan. The Wright Architectural Specification Language. Carnegie Mellon University. CS-96-TBD, September 1996.

  3. R. Allen and D. Garlan. A Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology, July 1997.

  4. R. Allen, D. Garlan, and J. Ockerbloom. Architectural Mismatch or Why it’s hard to build systems out of existing parts. In Proceedings of International Conference on Software Engineering, 1995.

  5. B. Baumgarten. On Internal and External characterizations of PT-net building block behavior; Advances in Petri Nets 1988, LNCS 1988.

  6. J. Cordy and T. Dean. A Syntactic Theory of Software Architecture. IEEE Transactions on Software Engineering, 21(4): April 1995.

  7. Y. Ding and X. He. Object Orientation in Hierarchical Predicate Transition Nets. Advanced in Petri Nets, LNCS, 2001.

  8. A. Egyed and N. Medvidovic. A Formal Approach to Heterogeneous Software Modeling. Lecture Notes in Computer Science, 1783, 2000.

  9. H. Ehrig and B. Mahr. Fundamentals of Algebraic Specification 1: Equations and Initial Semantics. EATCS Monographs on Theoretical Computer Science. Springer-Verleg, Berlin, 1985.

    Google Scholar 

  10. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995.

  11. D. Garlan and M. Shaw. Software Architecture: Perspective on an Emerging Discipline. Prentice Hall, 1996.

  12. D. Harel. On Visual Formalism. Communication of ACM, 31, 1988.

  13. B. Hayes-Roth. Architecture-Based Acquisition and Development of Software: Guidelines and Recommendations from ARPA Domain-Specific Software Architecture (DSSA) program.

  14. X. He, A Formal Definition of Hierarchical Predicate Transition Nets. In Proceedings of the 17th International Conference on the Application and the Theory of Petri Nets, Osaka, Japan, June 1996.

  15. X. He and J. Lee. Integrating Predicate Transition Nets with First Order Temporal Logic in the Specification and Verification of Concurrent Systems. Formal Aspects of Computing, 2, 1990.

  16. P. Inverardi and A. Wolf. Formal Specification and Analysis of Software Architectures Using the Chemical Abstract Machine Model. IEEE Transactions on Software Engineering, April 1995.

  17. J. Kramer and J. Magee. Dynamic Structure in Software Architectures. In Proceeding of ACM SIGSOFT’96. The 4th Symposium on the Foundations of Software Eng., San Francisco, CA, October 1996.

  18. P. Kruchten. The 4+1 View Model of Architecture. IEEE Software, November 1995.

  19. C. Landwehr. Formal Models for Computer Security. ACM Computing Survey, 13(3): 247–78, September 1981.

    Article  Google Scholar 

  20. D. Luckham and J. Vera. An Event-Based Architecture Definition Language. IEEE Transactions on Software Engineering, September 1995.

  21. N. Medvidovic. Architecture-Based Specification–Time Software Evolution, PhD Dissertation, University of California Irvine, January 1999.

  22. M. Moriconi, X. Qian, and R. Riemenschneider. Correct Architectural Refinement. IEEE Transactions on Software Engineering, April 1995.

  23. M. Moriconi and R. Riemenschneider. Introduction to SADL 1.0: a language for specifying software architecture hierarchies. Technical Report, Computer Science Laboratory, SRI International, 1996.

  24. N. Medvidovic and R. Taylor. A Classification and Comparison Framework for Software Architecture Description Languages. IEEE Transactions on Software Engineering, January 2000.

  25. L. Peterson. Petri Net Theory and Modeling of the Systems. Prentice Hall, 1981.

  26. D. Perry and A. Wolf. Foundations for the Study of Software Architecture. ACM SIGSOFT. Software Engineering Notes 17(4), 1992.

  27. H. Reza. A Framework to Specify Software Architecture of a System Based on Petri Net Pattern. PhD Dissertation, North Dakota State University, Fargo, ND, April 2002.

  28. C. Sibertin-Blanc. A Client/Server Protocol for the Composition of Petri Nets. The Proceeding of the 14th International Conference on Application and Theory of Petri Nets, LNCS 691, Springer-Verlag, 1993.

  29. M. Shaw. Patterns for Software Architecture, Addison-Wesley 1995.

  30. E. Yourdon. Modern Structural Analysis, Prentice Hall 1989.

  31. H. Muccini, A. Bertolino, and P. Inverardi. Using Software Architecture for Code Testing, IEEE Transactions on Software Engineering, 30(3), 2004.

  32. N. Soundarajan and J. Hallstrom. Responsibilities and Rewards: Specifying Design Patterns. In Proceedings of the 26th International Conference on Software Engineering (ICSE’04), ST. Louis, USA, May 2004.

  33. M. Marsan, C. Gianni, and B. Gianfranco. A Class of Generalized Stochastic Petri Nets for the Performance Evaluation of Multiprocessor Systems. ACM Transaction, Computer Systems, 2(2):93–122, May 1984.

    Article  Google Scholar 

  34. B. Nieh and S. Tavares. Modeling and Analyzing Cryptographic Protocols Using Petri Nets, Lecture Notes in Computer Science, 718, Spriner-Verlag, 1993.

  35. T. Verdickt, B. Dhoedt, F. Gielen, and P. Demeester. Automatic Inclusion of Middleware Performance Attributes into Architectural UML Software Models. IEEE Transaction on Software Engineering, 31(8):2005.

  36. L. Deligiannidis and R. Jacob. Improving Performance of Virtual Reality Applications through Parallel Processing. The Journal of Supercomputing, Springer Science+Business Media, 33(3):2005.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Hassan Reza.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Reza, H. A Methodology for Architectural Design of Concurrent and Distributed Software Systems. J Supercomput 37, 227–248 (2006). https://doi.org/10.1007/s11227-006-6349-y

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-006-6349-y

Keywords

Navigation