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

Slides:



Advertisements
Similar presentations
Software Architecture Reconstruction By Elizabeth Griffith Derived from a report done by Vijaya Datta Mayyuri.
Advertisements

Huseyin Ergin and Eugene Syriani University of Alabama Software Modeling Lab Software Engineering Group Department of Computer Science College of Engineering.
Object-Oriented Software Development CS 3331 Fall 2009.
CS3773 Software Engineering Lecture 01 Introduction.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Project Proposal.
Hüseyin Ergin University of Alabama Software Modeling Lab Software Engineering Group Department of Computer Science College of Engineering.
4.1 Blended approaches: Information Engineering IMS Information Systems Development Practices.
8.
Realizing OPM Philosophy in the Context of Full Life- Cycle Support Avi Soffer Technion, Israel Institute of Technology Thesis Advisor: Prof. Dov Dori.
Chapter 1 The Systems Development Environment
Developing MAS The GAIA Methodology A Brief Summary by António Castro and Prof. Eugénio Oliveira.
Introduction to System Analysis and Design
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
21-February-2003cse Architecture © 2003 University of Washington1 Architecture CSE 403, Winter 2003 Software Engineering
Marakas: Decision Support Systems, 2nd Edition © 2003, Prentice-Hall Chapter Chapter 1: Introduction to Decision Support Systems Decision Support.
Writing Good Software Engineering Research Papers A Paper by Mary Shaw In Proceedings of the 25th International Conference on Software Engineering (ICSE),
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Software Architecture in Practice
Methodology Conceptual Database Design
Copyright © 1998 by Addison Wesley Longman, Inc. 1 Concepts of Programming Languages Chapter 1.
CSC230 Software Design (Engineering)
Component-Based Software Engineering Dr R Bahsoon 1 Lecture 1. Introduction Component-Based Software Dr. Rami Bahsoon School of Computer Science The University.
The Re-engineering and Reuse of Software
Overview of the Database Development Process
Object-oriented Software Engineering with Reuse Contracts Koen De Hondt, Carine Lucas, Kim Mens, Tom Mens, Patrick Steyaert, Roel Wuyts Programming Technology.
2000 Advanced OOSA State of the Art on Software Architecture Declarative Meta Programming Session 2: Software Architecture Nantes,
Introduction to Software Engineering
9/14/2012ISC329 Isabelle Bichindaritz1 Database System Life Cycle.
Classifying Software Architecture Design Methods Bedir Tekinerdoğan University of Twente Department of Computer Science Enschede, The Netherlands e:mail.
Software Quality Assurance SE Software Quality Assurance What is “quality”?
Architectural Blueprints The “4+1” View Model of Software Architecture
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
A Novel Approach to Architectural Recovery in Evolving Object- Oriented Systems PhD thesis Koen De Hondt December 11, 1998.
Information System Development Courses Figure: ISD Course Structure.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Abstract We present two Model Driven Engineering (MDE) tools, namely the Eclipse Modeling Framework (EMF) and Umple. We identify the structure and characteristic.
A language to describe software texture in abstract design models and implementation.
How to Read Research Papers? Xiao Qin Department of Computer Science and Software Engineering Auburn University
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
A Logic Meta-Programming Approach to support the Co-Evolution of Object-Oriented Design and Implementation Roel Wuyts , PROG.
Connecting Task to Source Gail C. Murphy Department of Computer Science University of British Columbia Includes joint work with: Elisa Baniassad, University.
Software Architecture Assessment RAVI CHUNDURU CS6362 UTD Summer 2005.
Programming Technology Lab1 Declarative Meta Programming Dr. Kim Mens ( ) Programming Technology.
2000 Advanced OOSA State of the Art on Software Architecture Declarative Meta Programming Session 5: Lightweight Architectural.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Patrick
Csci 490 / Engr 596 Special Topics / Special Projects Software Design and Scala Programming Spring Semester 2010 Lecture Notes.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Formal Specification: a Roadmap Axel van Lamsweerde published on ICSE (International Conference on Software Engineering) Jing Ai 10/28/2003.
2000 Advanced OOSA State of the Art on Software Architecture Declarative Meta Programming Session 3: Declarative Meta Programming.
Software Engineering Introduction.
Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE
Engr 691 Special Topics in Engineering Science Software Architecture Spring Semester 2004 Lecture Notes.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
1 Declaratively Codifying Software Architectures Using Virtual Software Classifications Kim Mens Kim Mens, Roel Wuyts, Theo D’Hondt Programming Technology.
October 19, 1998Doctoral Symposium OOPSLA’98 Kim Mens Intentional annotations for evolving object-oriented software Kim Mens Programming Technology Lab.
2000 Research Overview Dr. Kim Mens Programming Technology Lab Vrije Universiteit Brussel.
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
SYSTEM ANALYSIS AND DESIGN LAB NARZU TARANNUM(NAT)
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
 Construction and Validation of Effective Modelling Domains A Thesis Outline Sagar Sen November 6, 2009.
Reverse Engineering: A Roadmap
SWE-795 Presentation 01 11/16/2018 Asking and Answering Questions during a Programming Change Task Jonathan Sillito, Member, IEEE Computer Society, Gail.
Architecture Description Languages
Intentional source-code views
From Use Cases to Implementation
Presentation transcript:

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

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

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

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

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,...

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

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

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

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

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

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 …

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 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 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

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

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

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.

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

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)

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 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 , 1997.Reengineering with Reflexion Models: A Case Study. n Reflexion Model tool: n Murphy & Notkin. Lightweight Lexical Source Model Extraction. ACM Transactions on Software Engineering and Methodology, vol. 5, no. 3, July 1996, pp Lightweight Lexical Source Model Extraction. n Lightweight Source Model Extraction tool: n Baniassad & Murphy. Conceptual Module Querying for Software Reengineering. In Proceedings of the 20th International Conference on Software Engineering, pp IEEE, 1998.Conceptual Module Querying for Software Reengineering.

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

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

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 IEEE Computer Society Press, 1999

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

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?

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

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

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

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