1 / 27

Advanced OOSA State of the Art on Software Architecture Declarative Meta Programming

Advanced OOSA State of the Art on Software Architecture Declarative Meta Programming. Session 1: Introduction Nantes, EMOOSE 2000–2001 Dr. Kim Mens, PROG, VUB. Course overview. Introduction Software Architecture Declarative Meta Programming Software Classification

kaden
Download Presentation

Advanced OOSA State of the Art on Software Architecture Declarative Meta Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Advanced OOSAState of the Art on Software Architecture Declarative Meta Programming Session 1: Introduction Nantes, EMOOSE 2000–2001 Dr. Kim Mens, PROG, VUB

  2. Course overview • Introduction • Software Architecture • Declarative Meta Programming • Software Classification • Lightweight Architectural Tools • Automated Architectural Conformance Checking • An Architecture-driven Software Development Tool • Assignments • Introduction • Software Architecture • Declarative Meta Programming • Software Classification • Lightweight Architectural Tools • Automated Architectural Conformance Checking • An Architecture-driven Software Development Tool • Assignments State of the Art on Software Architecture — Declarative Meta Programming

  3. Course overview • Introduction • Software Architecture • Declarative Meta Programming • Software Classification • Lightweight Architectural Tools • Automated Architectural Conformance Checking • An Architecture-driven Software Development Tool • Assignments State of the Art on Software Architecture — Declarative Meta Programming

  4. Architecture Suppose I want to understand the “structure” of something. Just what exactly does this mean? It means, of course, that I want to make a simple picture of it, which lets me grasp it as a whole. And it means, too, that as far as possible, I want to paint this simple picture out of as few elements as possible. The fewer elements there are, the richer the relationships between them, and the more of the picture lies in the “structure” of these relationships. Christopher Alexander, 1979 State of the Art on Software Architecture — Declarative Meta Programming

  5. Software architecture • serves as a communication element between different members of a software project • provides a simple mental picture that allows software engineers to quickly grasp the global structure • describes the overall structure of a software system, abstracting away from the implementation details • facilitates the understanding of software systems • improves • software maintainability, adaptability, reusability, ... State of the Art on Software Architecture — Declarative Meta Programming

  6. Inputs Working Memory Knowledge Base State Data Data Updates Facts and Rules Outputs Selected Rule Selected Data Rule Interpreter Clause Selector A software architecture The architecture of a rule-based interpreter State of the Art on Software Architecture — Declarative Meta Programming

  7. [Software architecture] • L. Bass, P. Clements & R. Kazman Software Architecture in Practice Addison Wesley Longman, 1998 • M. Shaw and D. Garlan Software Architecture — Perspectives on an Emerging Discipline Prentice Hall, 1996 • Special Issue on Software Architecture Transactions on Software Engineering, vol. 21, April 1995 IEEE Press, 1995 • Course “Techniques of Software Architecture” by Patrick Steyaert, Vrije Universiteit Brussel State of the Art on Software Architecture — Declarative Meta Programming

  8. [Software architecture] • K. Walden Seamless Object-Oriented Software Architecture; Analysis And Design Of Reliable Systems Prentice Hall • C. Hofmeister Applied Software Architecture Addison Wesley Longman • D. C. Schmidt Pattern-Oriented Software Architecture John Wiley & Sons Inc • J. Bosch Design And Use Of Software Architectures: Adopting and Evolving A Product-Line Approach Addison Wesley Longman State of the Art on Software Architecture — Declarative Meta Programming

  9. Course overview • Introduction • Software Architecture • Declarative Meta Programming • Software Classification • Lightweight Architectural Tools • Automated Architectural Conformance Checking • An Architecture-driven Software Development Tool • Assignments State of the Art on Software Architecture — Declarative Meta Programming

  10. Declarative meta programming (DMP) • Use declarative programming language at meta level to manipulate and reason about software artifacts in some (object-oriented) base language • Research at PROG: • DMP as an emerging technique for building advanced SE tools • architectural conformance checking • code generation and aspect-oriented programming • synchronising implementation and design • source to source optimisations • In particular, tools that support co-evolution of the implementation and earlier life-cycle phases • This course: DMP as a technique to build advanced software architecture tools State of the Art on Software Architecture — Declarative Meta Programming

  11. Advanced software architecture tools • Conformance checking, synchronization & co-evolution • Extracting, reverse engineering & source-code mining • Architecture-driven software development & forward engineering • Architecture-based source-code analysis • … State of the Art on Software Architecture — Declarative Meta Programming

  12. [Declarative meta programming] • Roel Wuyts Declarative Reasoning about the Structure of Object-Oriented Systems. In Proceedings of TOOLS USA 1998, pages 112-124. IEEE Computer Society Press, 1998 • Theo D'Hondt, Kris De Volder, Kim Mens & Roel Wuyts Co-evolution of Object-Oriented Software Design and Implementation. In Proceedings of SACT 2000. Kluwer Academic Publishers, 2000 • Roel Wuyts A Logic Meta-Programming Approach to Support the Co-Evolution of Object-Oriented Design and Implementation. (Tentative title) PhD thesis, Dept. of Computer Science, VUB, Belgium. January 2001 State of the Art on Software Architecture — Declarative Meta Programming

  13. Course overview • Introduction • Software Architecture • Declarative Meta Programming • Software Classification • Lightweight Architectural Tools • Automated Architectural Conformance Checking • An Architecture-driven Software Development Tool • Assignments State of the Art on Software Architecture — Declarative Meta Programming

  14. Software classification • Is a group of software artefacts that should be considered as a whole • one artefact may belong to different classifications • one classification contains multiple artefacts (possibly of different types) • Software classifications as high-level source-code abstractions • Virtual software classifications are declaratively described software classifications • more intuitive • more intentional • more concise State of the Art on Software Architecture — Declarative Meta Programming

  15. [Software classification] • Ph.D. Thesis & Presentation • Koen De Hondt. A novel approach to architectural recovery in evolving object-oriented systems. VUB, 1998. • The Classification browser web page • ECOOP’2000 workshop on “Objects and classification: a natural convergence” • Koen De Hondt & Patrick Steyaert. Exploiting classification for software evolution. • Kim Mens & Tom Mens. Codifying High-Level software Abstractions as virtual classifications. • Tom Tourwé & Kris De Volder. Using software classifications to drive code generation. State of the Art on Software Architecture — Declarative Meta Programming

  16. Course overview • Introduction • Software Architecture • Declarative Meta Programming • Software Classification • Lightweight Architectural Tools • Automated Architectural Conformance Checking • An Architecture-driven Software Development Tool • Assignments State of the Art on Software Architecture — Declarative Meta Programming

  17. Lightweight architectural tools • Gail Murphy performed some research on “lightweight” architectural tools to • extract high-level information from source code • check conformance of these high-level extracted source-code models to desired models • support reengineering by performing queries simultaneously about existing and desired source structure • Lexicalapproach based on regular expressions • describe patterns of interest in the source code • describe mapping of source-code model to high-level model • very efficient (no parsing required) State of the Art on Software Architecture — Declarative Meta Programming

  18. [Lightweight architectural tools] • Murphy, Notkin & Sullivan. Software Reflexion Models: Bridging the Gap Between Source and High-Level Models. In Proceedings of the FSE’95 Symposium, pp. 18-28. ACM Press, 1995. • Murphy & Notkin. Reengineering with Reflexion Models: A Case Study. In IEEE Computer 30, 8, pp. 29-36, 1997. • Reflexion Model tool: http://www.cs.ubc.ca/~murphy/software/rmtool/index.html • Murphy & Notkin. Lightweight Lexical Source Model Extraction.ACM Transactions on Software Engineering and Methodology, vol. 5, no. 3, July 1996, pp. 262-292. • Lightweight Source Model Extraction tool: http://www.cs.ubc.ca/~murphy/software/lsme/index.html • Baniassad & Murphy. Conceptual Module Querying for Software Reengineering. In Proceedings of the 20th International Conference on Software Engineering, pp. 64-73. IEEE, 1998. State of the Art on Software Architecture — Declarative Meta Programming

  19. Course overview • Introduction • Software Architecture • Declarative Meta Programming • Software Classification • Lightweight Architectural Tools • Automated Architectural Conformance Checking • An Architecture-driven Software Development Tool • Assignments State of the Art on Software Architecture — Declarative Meta Programming

  20. Automated architectural conformance checking • Kim Mens’ research is similar to Gail Murphy’s • Conformance checking of source code to architectural models • Approach based on declarative meta programming • logic facts to describe architecture descriptions • logic rules to declare a conformance mapping of architectural entities to source-code artifacts • very expressive (full power of DMP) • Virtual software classifications used as intermediary abstractions to define the conformance mapping State of the Art on Software Architecture — Declarative Meta Programming

  21. [Automated architectural conformance checking] • Kim Mens Automating Architectural Conformance Checking by means of Logic Meta Programming PhD thesis, Dept. of Computer Science, VUB, Belgium October 2000 • Kim Mens, Roel Wuyts and Theo D’Hondt Declaratively Codifying Software Architectures Using Virtual Software Classifications In Proceedings of TOOLS Europe 1999, pages 33-45 IEEE Computer Society Press, 1999 State of the Art on Software Architecture — Declarative Meta Programming

  22. Course overview • Introduction • Software Architecture • Declarative Meta Programming • Software Classification • Lightweight Architectural Tools • Automated Architectural Conformance Checking • An Architecture-driven Software Development Tool • Assignments State of the Art on Software Architecture — Declarative Meta Programming

  23. Towards an architecture-driven software development tool • What should an “industrial-strength” tool for architecture-driven software development look like? • Which activities should it support? • How can declarative meta programming be used to implement such tool? • Which tools have already been implemented? • How can they be combined and integrated in an architecture-driven software development environment? State of the Art on Software Architecture — Declarative Meta Programming

  24. [Towards an architecture-driven software development tool] • Kim Mens Automating Architectural Conformance Checking by means of Logic Meta Programming, Session 8.3 PhD thesis, Dept. of Computer Science, VUB, Belgium October 2000 State of the Art on Software Architecture — Declarative Meta Programming

  25. Course overview • Introduction • Software Architecture • Declarative Meta Programming • Software Classification • Lightweight Architectural Tools • Automated Architectural Conformance Checking • An Architecture-driven Software Development Tool • Assignments State of the Art on Software Architecture — Declarative Meta Programming

  26. Assignments • Task: write a (10-page) technical report on • A comparison of architectural conformance checking approaches • Tool support for object-oriented patterns • Features of an ideal architectural conformance checking tool • Features of an ideal architectural reverse-engineering tool • Alternative: prepare a (30-slide) presentation on some aspect of software architecture of your choice • Possible thesis subjects at PROG State of the Art on Software Architecture — Declarative Meta Programming

  27. Course overview • Introduction • Software Architecture • Declarative Meta Programming • Software Classification • Lightweight Architectural Tools • Automated Architectural Conformance Checking • An Architecture-driven Software Development Tool • Assignments • Software Architecture State of the Art on Software Architecture — Declarative Meta Programming

More Related