Component-Based Software Engineering (CBSE) Announcements

Similar documents
25.1 Translational Frameworks (MDA with transformations)

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g

Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering

Organization. Introduction to Software Engineering

Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville

Jenerator Generative Programming for Java

Understanding Software Static and Dynamic Aspects

Structuring Product-lines: A Layered Architectural Style

Practical Refactoring-Based Framework Upgrade

Component Based Software Engineering: A Broad Based Model is Needed

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

Dynamic Adaptability of Services in Enterprise JavaBeans Architecture

IES - Introduction to Software Engineering

Encapsulating Crosscutting Concerns in System Software

Component-Based Software Development with Aspect-Oriented Programming

GenericServ, a Generic Server for Web Application Development

Jiří Šebek, Karel Richta. Department of Computer Science and Engineering Praha 2, Czech Republic

Design Patterns. Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems.

Middleware for Heterogeneous and Distributed Information Systems

How To Understand Software Engineering

An Overview of Challenges of Component Based Software Engineering

Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution

Web Mining Seminar CSE 450. Spring 2008 MWF 11:10 12:00pm Maginnes 113

Implementing DDI 3: The German Microcensus Case Study

Applying Configuration Management Techniques to Component-Based Systems

Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies

Web based legacy system componentization

Run-time Variability Issues in Software Product Lines

SAPM Overview. Semester Summary. Project management. Tools (1) Dr. James A. Bednar

Development of Tool Extensions with MOFLON

Introducing a Graduate Course on. called Aspect-Oriented Software Development

CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE

Using Bonds for Describing Method Dispatch in Role-Oriented Software Models

ARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM

Composing Concerns with a Framework Approach

Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3

I219 Software Design Methodology

i-questionnaire A Software Service Tool for Data

City University of Hong Kong Course Syllabus. offered by Department of Computer Science with effect from Semester A 2015/16

Optimizing the User Experience of a Social Content Management Software for Casual Users

Explicit Connectors in Component Based Software Engineering for Distributed Embedded Systems. Dietmar Schreiner and Karl M.

Application Development for Mobile and Ubiquitous Computing

MS ESE. Usage of PAUL. H.P. Zeidani / J. Tünnermann. April 2, Prof. Dr.-Ing. Bärbel Mertsching University of Paderborn

IT3205: Fundamentals of Software Engineering (Compulsory)

Obj ect-oriented Construction Handbook

Towards Collaborative Requirements Engineering Tool for ERP product customization

A Simple Security-Aware MOP for Java 119

Component-Based and Service-Oriented Software Engineering: Key Concepts and Principles

Distributed systems. Distributed Systems Architectures

How To Combine Feature-Oriented And Aspect-Oriented Programming To Support Software Evolution

17. Evolutionary Object-Oriented Software Development (EOS) An agile process based on PBS

Curriculum Vitae. Shan Shan Huang

Enterprise Integration: operational models of business processes and workflow systems *

Concern Driven Software Development

Limitations of Object-Based Middleware. Components in CORBA. The CORBA Component Model. CORBA Component

Software development methods: SOA vs. CBD, OO and AOP

Design Patterns for Managing Product Lifecycle Information

USING ASPECT-ORIENTED SOFTWARE DEVELOPMENT IN REAL-TIME EMBEDDED SYSTEMS SOFTWARE A Review of Scheduling, Resource Allocation and Synchronization

Keywords Aspect-Oriented Modeling, Rule-based graph transformations, Aspect, pointcuts, crosscutting concerns.

Generating Aspect Code from UML Models

What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.

An Architecture-Based Approach for Component-Oriented Development

Software Visualization Tools for Component Reuse

Common Criteria For Information Technology Security Evaluation

Lecture Softwareengineering-Vertiefung

Architectural Patterns (3)

SAP Web Application Server 6.30: Learning Map for Development Consultants

Transcription:

Component-Based Software Engineering (CBSE) Announcements Prof. Dr. Uwe Aßmann Technische Universität Dresden Institut für Software- und Multimediatechnik http://st.inf.tu-dresden.de 11-0.1, Apr 05, 2011 CBSE, Prof. Uwe Aßmann 1

Elements of the Course! Lecturing " Do not miss one, they should give you a short and concise overview of the material! Reading " Slides on Obligatory Literature require you to read papers from the web " TU Dresden has subscription to ACM Digital Library and IEEE Explorer " Slides on Secondary Literature contain useful but optional literature! Exercise with Florian Heidenreich " Exercise sheets. Handed out every week, with some breaks. You have one week to solve them on your own. After that, solutions will be explained in the Exercise Prof. U. Aßmann, CBSE 2

Reading Along the Lectures! Unfortunately, the course is not covered by any book " About 60% is covered by the blue book Invasive Software Composition " Most of the rest on classical component systems by Szyperski in the book Component Software. Beyond object-oriented computing. Addison-Wesley.! You have to read several research papers, available on the internet " Marked by Obligatory Literature! Secondary Literature is non-mandatory, but interesting reading. Can be done during the course! Other Literature is not to be read, but also interesting. Prof. U. Aßmann, CBSE 3

Obligatory Literature! During the course, read the following papers, if possible, in sequential order.! Every week, read about 1 paper (3-4h work)! Course web site Prof. U. Aßmann, CBSE 4

Obligatory Literature! [ISC] U. Aßmann. Invasive Software Composition. Springer, 2003.! C. Szyperski. Component software. Beyond object-oriented computing. Addison-Wesley. Bestseller on classical component systems. Papers! D. McIlroy. Mass-produced Software Components. 1st NATO Conference on Software Engineering.! CORBA. Communications of the ACM, Oct. 1998. All articles. Overview on CORBA 3.0.! Others will be announced. Prof. U. Aßmann, CBSE 5

Recommended Literature! I. Forman, S. Danforth. Meta-objects in SOM-C++. Very good book on meta object protocols and meta object composition.! Journal Software - Tools and Techniques. Special Edition on Componentware, 1998. Springer. Good overviews.! R. Orfali, D. Harkey: Client/Server programming with Java and Corba. Wiley&Sons. Easy to read.! CORBA. Communications of the ACM, Oct. 1998. All Articles. Prof. U. Aßmann, CBSE 6

Recommended Literature! [GOF, Gamma] E. Gamma, R. Helm, R. Johnson, J. Vlissides: Design Patterns. Addison-Wesley 1995. Standard book belonging to the shelf of every software engineer. " The book is called GOF (Gang of Four), due to the 4 authors! Alternatively to GOF can be read: [Remark: If you have already studied GOF intensively, do not read these] " A. Tesanovic. What is a pattern? Paper in Design Pattern seminar, IDA, 2001. Available at home page. " On Composite, Visitor: T. Panas. Design Patterns, A Quick Introduction. Paper in Design Pattern seminar, IDA, 2001. Available at home page. " P. Pop. Creational Patterns. Paper in Design Pattern seminar, IDA, 2001. Available at home page. Prof. U. Aßmann, CBSE 7

Less Important! K. Czarnecki, U. Eisenecker. Generative programming. Addison-Wesley 2000. Good overview on aspects, but not on components! F. Griffel. Componentware. dpunkt-verlag. In German. A lot of material. Prof. U. Aßmann, CBSE 8

Please, Please Be Aware There Will Be Pain!! This course is not like a standard course! It treats rather advanced material, the concept of graybox engineering! No single book exists on all of that at all " ISC covers about 60% " Please, collaborate! " Read the articles " Ask questions! " Do the exercise sheets! The exam can only be done if you have visited all lectures and solved all exercise sheets! Learn continuously! One week before the exam is too late!! Be aware: you have not yet seen larger systems " Middle-size systems start over 100KLOC Prof. U. Aßmann, CBSE 9

The Positive Side! If you follow carefully, you will discover an exciting world of graybox composition, a new way to extend software! The gain is worthwhile the pain! Prof. U. Aßmann, CBSE 10

Component-based Software Contents and Goals CBSE, Prof. Uwe Aßmann 11

Course Contents! Part I: Basics " History and overview: Criteria for composition " Basics: Reflection and metaprogramming, Meta-object protocols (MOP), Metadata, Finding components! Part II: Classical component systems (Black-box composition systems) " Classical component systems: Development Process, Problems " Enterprise Java Beans (EJB)! Part III: Architecture systems and languages (Advanced black-box composition systems) " Corba " Web services " Architecture Systems! Part IV: Gray-box composition (Invasive composition) " Composition Filters " Generic Programming (BETA) " View-based programming: Hyperspace programming " Calculi for component systems " Aspect-oriented software development: AOSD and AOP " Invasive software composition! Part V: Universal Composition Prof. U. Aßmann, CBSE 12

Component-Based Software Goals CBSE, Prof. Uwe Aßmann 13

Main Goals! Understand the concept of a component, frameworks and product lines " Variability, extensibility, and glueing are three central goals! There are other central concepts for component models than classes and objects " Understand greybox fragment-based composition " why it introduces new forms of static extensibility " why other static component models are special cases of it! Understand dynamic composition! Understand frameworks not only as collections of classes, but collections of components! Understand components as collections of standardized role types! Understand connectors as role models plus protocol Prof. U. Aßmann, CBSE 14

The Hypothesis of Composition! There are only two basic kinds of compositions " static composition (can be modeled as fragment-based invasive compositions) " dynamic composition (use assignment and extension of runtime values)! There are only some basic operations, on code or on data " Variability with bind operator " Extensibility with extend operator " Glue with glue code operators " Select to select fragments from a fragment universe! There are additional operations for both scenarios: " copy, rename, unbind Prof. U. Aßmann, CBSE 15

The End Prof. U. Aßmann, CBSE 16