Presentation is loading. Please wait.

Presentation is loading. Please wait.

2000 Advanced OOSA State of the Art on Software Architecture Declarative Meta Programming Session 1: Introduction Nantes, EMOOSE.

Similar presentations


Presentation on theme: "2000 Advanced OOSA State of the Art on Software Architecture Declarative Meta Programming Session 1: Introduction Nantes, EMOOSE."— Presentation transcript:

1 kimmens@vub.ac.be1December 2000 Advanced OOSA State of the Art on Software Architecture Declarative Meta Programming Session 1: Introduction Nantes, EMOOSE 2000–2001 Dr. Kim Mens, PROG, VUB

2 State of the Art on Software Architecture — Declarative Meta ProgrammingSession 1, page 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

3 State of the Art on Software Architecture — Declarative Meta ProgrammingSession 1, page 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

4 State of the Art on Software Architecture — Declarative Meta ProgrammingSession 1, page 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

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

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

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

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

9 State of the Art on Software Architecture — Declarative Meta ProgrammingSession 1, page 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

10 State of the Art on Software Architecture — Declarative Meta ProgrammingSession 1, page 10 Declarative meta programming (DMP) n Use declarative programming language at meta level to manipulate and reason about software artifacts in some (object-oriented) base language n Research at PROG: u 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 u In particular, tools that support co-evolution of the implementation and earlier life-cycle phases n This course: DMP as a technique to build advanced software architecture tools

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

12 State of the Art on Software Architecture — Declarative Meta ProgrammingSession 1, page 12 [Declarative meta programming] n 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 n 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 n 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

13 State of the Art on Software Architecture — Declarative Meta ProgrammingSession 1, page 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

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

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

16 State of the Art on Software Architecture — Declarative Meta ProgrammingSession 1, page 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

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

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

19 State of the Art on Software Architecture — Declarative Meta ProgrammingSession 1, page 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

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

21 State of the Art on Software Architecture — Declarative Meta ProgrammingSession 1, page 21 [Automated architectural conformance checking] n Kim Mens Automating Architectural Conformance Checking by means of Logic Meta Programming PhD thesis, Dept. of Computer Science, VUB, Belgium October 2000 n 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

22 State of the Art on Software Architecture — Declarative Meta ProgrammingSession 1, page 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

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

24 State of the Art on Software Architecture — Declarative Meta ProgrammingSession 1, page 24 [Towards an architecture-driven software development tool] n 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

25 State of the Art on Software Architecture — Declarative Meta ProgrammingSession 1, page 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

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

27 State of the Art on Software Architecture — Declarative Meta ProgrammingSession 1, page 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


Download ppt "2000 Advanced OOSA State of the Art on Software Architecture Declarative Meta Programming Session 1: Introduction Nantes, EMOOSE."

Similar presentations


Ads by Google