Towards a Practical Composition Language Oscar Nierstrasz Software Composition Group University of Bern.

Slides:



Advertisements
Similar presentations
EDUC4417 Senior Computers Dr. Mumbi Kariuki January 28, 2004 Object-Orientation David Cuillerier.
Advertisements

Jeremy S. Bradbury, James R. Cordy, Juergen Dingel, Michel Wermelinger
3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre 2006 CASE – Libera Università di Bolzano-Bozen RCOST – Università
AMUSE Autonomic Management of Ubiquitous Systems for e-Health Prof. J. Sventek University of Glasgow In collaboration.
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
A Small Composition Language 11. Piccola. © 2003, Oscar Nierstrasz PS — Piccola 1.2  Applications = Components + Scripts  Piccola layers  Forms + Agents.
Architecture Representation
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Eric MADELAINE1 E. Madelaine, Antonio Cansado, Emil Salageanu OASIS Team, INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis OSCAR meeting, Valparaiso,
Page 1 Building Reliable Component-based Systems Chapter 16 - Component based embedded systems Chapter 16 Component based embedded systems.
Introduction To System Analysis and Design
Jiannong IMC Lab - Department of Computing, Hong Kong Polytechnic Univ. Slide 1 Architecture Description of Distributed Systems using UML and XML.
12. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Roadmap  Summary: —Trends in programming paradigms  Research:...
Architectural Styles. Definitions of Architectural Style  Definition. An architectural style is a named collection of architectural design decisions.
Architectural Reasoning in ArchJava Jonathan Aldrich Craig Chambers David Notkin University of Washington ECOOP ‘02, 13 June 2002.
13. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Summary, Trends, Research...  Summary: functional, logic and object-oriented.
Unified Modeling (Part I) Overview of UML & Modeling
Announcement No CHC visit tomorrow Team progress / issues survey
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
12. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Roadmap  Summary: —Trends in programming paradigms  Research:...
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Reuse Activities Selecting Design Patterns and Components
Community Manager A Dynamic Collaboration Solution on Heterogeneous Environment Hyeonsook Kim  2006 CUS. All rights reserved.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Copyright © 2002, Systems and Computer Engineering, Carleton University Intro.ppt * Object-Oriented Software Development Unit 1 Course.
UML - Development Process 1 Software Development Process Using UML (2)
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
Software Component Technology and Component Tracing CSC532 Presentation Developed & Presented by Feifei Xu.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
© S. Demeyer, S. Ducasse, O. Nierstrasz Intro.1 1. Introduction Goals Why Reengineering ?  Lehman's Laws  Object-Oriented Legacy Typical Problems  common.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Architecting Web Services Unit – II – PART - III.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
SOFTWARE DESIGN.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
© DATAMAT S.p.A. – Giuseppe Avellino, Stefano Beco, Barbara Cantalupo, Andrea Cavallini A Semantic Workflow Authoring Tool for Programming Grids.
Class 5 Architecture-Based Self-Healing Systems David Garlan Carnegie Mellon University.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
1/26 On-demand Learning Series Software Engineering of Web Application - Object-Oriented Development & UML Hunan University, Software School.
Frameworks CompSci 230 S Software Construction.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
A Component Platform for Experimenting with Autonomic Composition A component framework for supporting composition of autonomic services and bio-inspired.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
1 Lecture 3 Major Architectural Models View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern.
Developing Product Line Components Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
What’s Ahead for Embedded Software? (Wed) Gilsoo Kim
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Basic Concepts and Definitions
Gerhard Dueck -- CS3013Architecture 1 Architecture-Centric Process  There is more to software development then going blindly through the workflows driven.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Architectural Design Rewriting as Architectural Description Language R. Bruni A. LLuch-Lafuente U. Montanari E. Tuosto.
DESIGN PROCESS AND CONCEPTS. Design process s/w design is an iterative process through which requirements are translated into a “blueprint” for constructing.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
SOFTWARE DESIGN AND ARCHITECTURE
Architectural Mismatch: Why reuse is so hard?
Presentation transcript:

Towards a Practical Composition Language Oscar Nierstrasz Software Composition Group University of Bern

Slide 2 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) Roadmap The problem: Software Evolution –What about OOP? Components? … Approach: understanding composition –Piccola — a small composition language Where are we? Where do we go? –Evaluation; research agenda

Slide 3 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) 1. Thesis — Focus on Software Evolution Software evolution is the key problem in software development Not purely a technical issue 1.Lehman’s Laws 2.What’s wrong with OOP? 3.What’s wrong with Components?

Slide 4 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) Lehman’s Laws Continuing change A program that is used in a real-world environment must change, or become progressively less useful in that environment. Increasing complexity As a program evolves, it becomes more complex, and extra resources are needed to preserve and simplify its structure. —Lehman and Belady, 1985

Slide 5 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) The Myth of Software Maintenance Between 50% and 75% of global effort is spent on “maintenance”! (= “continuous development 17.4% Corrective (fixing reported errors) 18.2% Adaptive (new platforms or OS) 60.3% Perfective (new functionality) —Lientz, % Other

Slide 6 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) What’s wrong with OOP? (I) OOA and OOD are domain driven –Designs are based on domain objects, not available components –Objects end up with rich interfaces, not plugs + Hard to reconfigure and adapt objects

Slide 7 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) What’s wrong with OOP? (II) Implicit Architecture –Source code exposes class hierarchy, not run-time architecture! –Objects are wired, not plugged together –How the objects are wired is distributed amongst the objects + Hard to understand and hard to evolve

Slide 8 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) What’s wrong with OOP? (III) Implicit Reuse Contracts –Idioms and patterns are hidden in the code + Hard to learn frameworks and conventions

Slide 9 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) What about Components? stable ^ A software component is a unit of independent deployment without state We know how to build components! We don’t understand how to compose flexible applications from components. +We should be thinking more about composition than about components.

Slide 10 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) 2. Composition A composition language would support flexible, high-level composition of applications from components according to various styles. Applications = Components + Scripts Piccola: A Small Composition Language Forms + Agents + Channels Styles as Component Algebras

Slide 11 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) Applications = Components + Scripts Components both export and import services Scripts plug components together

Slide 12 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) Towards a Composition Language Scripting languages Configure applications from components ADLs Specify compositional styles Coordination languages Configure applications from distributed services Glue languages Adapt components to new contexts

Slide 13 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) Piccola — A Small Composition Language Piccola agents compose and coordinate external components

Slide 14 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) Piccola Layers Applications components + scripts Compositional styles streams, events, GUI composition,... Standard libraries basic coordination abstractions, basic object model... Piccola syntax layer services, operator syntax, namespaces, built-in types Composition primitives agents, channels, forms

Slide 15 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) Forms + Agents + Channels Forms embody structure immutable, extensible records they unify components, services and namespaces Agents embody behaviour concurrently executing scripts they unify concurrency and composition Channels embody state mailboxes for communicating agents unify synchronization and communication.

Slide 16 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) Piccola in a Nutshell A form consists of a sequence of bindings: helloForm =# a form Label = "hello world"# a binding do: println Label# a service A script composes components by invoking services makeFrame Title = "Demo” makeButton(helloForm) ? Action(helloForm) High-level connectors hide details of object wiring.

Slide 17 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) Hello World

Slide 18 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) Component Algebras A style can be viewed as a many-sorted algebra: connectors as operators over components: source | filter is also a source contrast the procedural view: a.in() -- b.out() doesn’t yield a new component...

Slide 19 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) Some Piccola Styles Many frameworks can be expressed as component algebras –Pipes and filters (both push & pull flow) –GUI composition –Event listeners –Actor groups –Regulated coordination (law-governed interaction) –Mixin layer composition

Slide 20 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) 3. Where are we? Where do we go? What would be a practical composition language? How explicit namespaces support composition Results and shortcomings The future

Slide 21 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) How forms support composition

Slide 22 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) Results so far Piccola implementations for Java and Squeak –Sophisticated language bridging –Partial evaluation –Various experimental composition styles Formal semantics –π calculus with first-class namespaces –Limited reasoning about styles and composition Publications and software:

Slide 23 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) What’s missing? Explicit components, connectors & styles Type-checking provided and required services Reasoning about styles and compositions Adapting/reengineering existing services

Slide 24 of 24FMCO, Leiden, © Oscar Nierstrasz University of Berne (Switzerland) The future of composition? Dynamic composition of ubiquitous services Service discovery and negotiation Reconfiguration validation and run-time monitoring