Advanced Software Development Karl Lieberherr CSG 260 Fall Semester 2003 https://lists.ccs.neu.edu/bin/listinfo/

Slides:



Advertisements
Similar presentations
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
Advertisements

Domain Engineering Arie van Deursen May Software Product Line  Group of products  sharing a common, managed set of features  to satisfy the.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
A metadata-driven approach to context-sensitive composition of collaborations Eddy Truyen, Wouter Joosen and Pierre Verbaeten Bo N. Jørgensen Maersk Institute.
Marko Rosenmüller - University of Magdeburg, Germany 1 Feature-oriented Refactoring of Berkeley DB Dagstuhl Seminar on Software Engineering for Tailor-made.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
1/18 CS 693/793 Lecture 09 Special Topics in Domain Specific Languages CS 693/793-1C Spring 2004 Mo, We, Fr 10:10 – 11:00 CH 430.
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
Design The goal is to design a modular solution, using the techniques of: Decomposition Abstraction Encapsulation In Object Oriented Programming this is.
Ch3: Software Engineering Principles 1 What is a principle?  Definition:  Goals of accounting principles:  Goals of software engineering principles?
February 12, 2009 Center for Hybrid and Embedded Software Systems Encapsulated Model Transformation Rule A transformation.
On the horizon Chapter twenty-five of: Szyperski, Clemens et al. Component Software - Beyond Object-Oriented Programming. Second Edition.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Domain-Specific Software Engineering Alex Adamec.
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
A Generative and Model Driven Framework for Automated Software Product Generation Wei Zhao Advisor: Dr. Barrett Bryant Computer and Information Sciences.
1 N Degrees of Separation: Multi-Dimensional Separation of Concern (MDSOC) HyperJ: language and concepts of general concern combination.
An Introduction to Software Architecture
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Supporting Heterogeneous Users in Collaborative Virtual Environments using AOP CoopIS 2001 September 5-7, Trento, Italy M. Pinto, M. Amor, L. Fuentes,
Extensible Plug-ins for Aspect-Oriented Programming Macneil Shonle*Ankit Shah.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Workshop 16: An upward shift in abstraction leads to a corresponding increase in productivity. In the past this has occurred when programming languages.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Aspect Oriented Programming Gülşah KARADUMAN.
WP 3.3 © Copyright Xactium, TUBS & TUD How to build a set of DSLs: from Theory to Practise Xactium, TUBS, Jendrik Johannes (TUD)
Generative Programming. Automated Assembly Lines.
A language to describe software texture in abstract design models and implementation.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
L10 - April 12, 2006copyright Thomas Pole , all rights reserved 1 Lecture 10: Software Assets and Text: Ch. 8: Language Anatomy and Ch 9: Families.
1 The Modular Structure of Complex Systems Presented by: SeyedMasoud Sadjadi and Wei Zhu David L. Parnas, Paul C. Clement, and David M. Weiss ICSE 1984.
INRIA - LaBRICharles Consel Jan-06 1 Domain-Specific Software Engineering Charles Consel Phoenix Research Group LaBRI /INRIA-Futurs January 2006.
Aspect-Oriented Programming An Introductory Presentation Mike Landi MSCS Candidate Union University.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Towards Multi-Paradigm Software Development Valentino Vranić Department of Computer Science and Engineering Faculty of Electrical Engineering.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
1 XAspects An Extensible System for Domain- Specific Aspect Languages Macneil Shonle (UCSD) Karl Lieberherr (Northeastern University) Ankit Shah (Northeastern.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
Demeter Aspects We study techniques for the emerging area of Aspect-Oriented Software Development and focus on the following areas:  Aspectual Collaborations.
 Copyright 2005 Digital Enterprise Research Institute. All rights reserved. Enabling Components Management and Dynamic Execution Semantic.
OOPSLA workshop on Domain-Specific Visual Languages 1 Juha-Pekka Tolvanen, Steven Kelly, Jeff Gray, Kalle Lyytinen.
Methods of Software Development Karl Lieberherr Spring 2007.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Developing Product Line Components Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
Daniel Lohmann Department of Computer Science IV Distributed Systems and Operating Systems Friedrich-Alexander University Erlangen-Nuremberg
Towards A QoS Modeling and Modularization Framework for Component-based Systems Sumant Tambe* Akshay Dabholkar Aniruddha Gokhale Amogh Kavimandan (Presenter)
Aspect Security - RaviShekhar Gopalan - Prof. Lieberherr Software Security (CSG379)
IWFST'2005, Shanghai Testing Aspect-Oriented Programs: Challenges and Opportunities Jianjun Zhao Department of Computer Science and Engineering Shanghai.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
FUNCTIONAL PROGRAMING AT WORK - HASKELL AND DOMAIN SPECIFIC LANGUAGES Dr. John Peterson Western State Colorado University.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
Introduction to Service Orientation MIS 181.9: Service Oriented Architecture 2 nd Semester,
CSE 2341 Object Oriented Programming with C++ Note Set #4
A Framework for Automated and Composable Testing of Component-based Services Miguel A. Jiménez, Ángela Villota, Norha M. Villegas, Gabriel Tamura, Laurence.
MDD-Kurs / MDA Cortex Brainware Consulting & Training GmbH Copyright © 2007 Cortex Brainware GmbH Bild 1Ver.: 1.0 How does intelligent functionality implemented.
Aspect-oriented Code Generation Approaches Abid Mehmood & Dayang N. A. Jawawi Department of Software Engineering Faculty of Computer Science and Information.
Demeter Aspects Who We Are Aspectual Collaborations
Designing Software for Ease of Extension and Contraction
Object Oriented Analysis and Design
Component-Level Design
Chapter 20 Object-Oriented Analysis and Design
An Introduction to Software Architecture
CIS601: Object-Oriented Programming in C++
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Aspect Oriented Software Design
Presentation transcript:

Advanced Software Development Karl Lieberherr CSG 260 Fall Semester

Advanced? Advanced means to me –Thinking in families of software products –Good separation of concerns, shyness between concerns –Write code that writes code (active code generators: TPP: Tip 29) –Put Abstractions in Code, Details in Metadata (TPP: Tip 38) Information about TPP: CSG 260 Resources

Domain Specific Language (DSL) A domain-specific language is a specialized, problem-oriented language. Need several DSLs to specify a complete application. –General modeling DSLs (e.g., synchronization) –Application oriented DSL (e.g. authorization policy) From: GP 5.5

DSLs Fixed, Separate DSLs –SQL, TEX Embedded DSLs –Embedded in a general purpose language, e.g. embedded SQL Modularly composable DSLs (component) –Encapsulated DSLs (e.g., embedded SQL) –Aspectual DSLs (e.g., synchronization)

Aspectual DSLs An aspectual DSL specification influences the semantics of other DSL specifications. Implementation of modularly composable DSLs requires a common language implementation providing the necessary infrastructure for the language plug-ins (we will use AspectJ).

Advantages Of modularly composable over monolithic DSLs –Reusability –Scalability –Fast feature turnover Have to survive based on their merits

Generative Domain Model Problem Space Domain-specific Concepts and Features Configuration Knowledge Illegal feature combination Defaults Construction rules Optimizations Solution Space

AOP: separating concerns What are the important concerns we need to separate? What composition mechanisms? How to capture the concerns?

Aspect-Oriented Decomposition Approaches Subject-oriented Programming –A subject is a partial or complete object model. –Composition rules Correspondence rules Combination rules

Aspect-Oriented Decomposition Approaches Composition Filters –Message filters Input (for incoming messages) Output (for outgoing messages)

Aspect-Oriented Decomposition Approaches Demeter/Adaptive Programming –Originally: Better separation between behavior and structure. –Then: better separation between synchronization and the behavior –Then: better separation between data transfer concern and the behavior