1 Component Technology Johannes Kepler University Linz, Austria Deepak Dhungana Institute for System Engineering.

Slides:



Advertisements
Similar presentations
When Applications can Roam Freely OSGi Service Platform R4 Peter Kriens Technical Director OSGi
Advertisements

NetBeans Platform Compared with Eclipse Rich Client PLatform Kai Tödter, Siemens AG Geertjan Wielenga, Sun Microsystem ID# ????
Developing an Eclipse Plug-in David Gallardo. Platform Runtime Workspace Help Team Workbench JFace SWT Eclipse Project Java Development Tools (JDT) Their.
CSE 548 Advanced Computer Network Security Long Qiu Xinyi Dong DOSGI APPLICATION PLATFORM FOR MOBICLOUD.
IS6112 Application Modelling and Design Introduction.
DOSGi Application Platform for MobiCloud Long Qiu Xinyi Dong.
Confidential - Property of infiNET Solutions. Architecting and Designing Scalable, Multitier Systems in J2EE infiNET Solutions David R. King – Chief Technology.
CS565 Advanced Software Development (1 unit) Lecturer: Adrian O’Riordan Contact: is Office: prefab, behind.
For more Lectures and Notes Visit
Teaching Object-Oriented Concepts Through GUI Programming Jesse M. Heines Martin J. Schedlbauer Dept. of Computer Science Univ. of Massachusetts Lowell.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
UNIT4 BUSINESS ANALYTICS. page WHAT IS THE PRODUCT? 2 A business intelligence tool kit, specializing in Coporate Performance Management An application.
Red-Green-Refactor! EclipseCon 2008 Kevin P. Taylor, Nicolaus Malnick Test-Driven Development (TDD) for Eclipse RCP.
Advanced OOP MCS-3 OOP BSCS-3 Lecture # 1
QWise software engineering – refactored! Testing, testing A first-look at the new testing capabilities in Visual Studio 2010 Mathias Olausson.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Android Programming By Mohsen Biglari Android Programming, Part1: Introduction 1 Part1: Introduction By Mohsen Biglari.
Duke University Program Design & Construction Course Application Development Tools Sherry Shavor
Software Construction Lecture 10 Frameworks
EECE 310 Software Engineering Lecture 0: Course Orientation.
XIP™ – the eXtensible Imaging Platform A rapid application development and deployment platform Lawrence Tarbox, Ph.D. September, 2010.
Open Source The Future of Software What’s Open Source Open-source software is computer software whose source code is available under a copyright license.
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
Context-Awareness on Mobile Devices - the Hydrogen Approach Thomas Hofer, Wieland Schwinger, Mario Pichler, Gerhard Leonhartsberger, Josef Altmann (Software.
1 of 8Prof. Dr. Dr. h.c. Otto Spaniol Computer Science, Informatik 4 Communication and Distributed Systems 25/10/2015 Distributed Applications and Network.
Design Patterns Introduction What is a Design Pattern? Why were they developed? Why should we use them? How important are they?
MoRob – Modular Educational Robotic Toolbox Uwe Gerecke.
Background Nowadays, different software systems developed in- house are growing; companies or organization is facing problems of new collaborations and.
What is Eclipse? Official Definition: Eclipse Evolution
CSS – Control System Studio
© 2008 by Shawn Spiars; made available under the EPL v1.0 | March 17, 2008 Case Study – Phurnace Software and RCP Shawn Spiars Lead UI Developer Phurnace.
QPE A Graphical Editor for Modeling using Queueing Petri Nets Christofer Dutz.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Devanshu Bawa Customization Specialist Logo Business Solutions.
Creating Modular CRUD Desktop Applications Jiri Rechtacek Geertjan Wielenga.
Java How to Program, 9/e Presented by: José M. Reyes Álamo © by Pearson Education, Inc. All Rights Reserved.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
Eclipse.NET An Integration Platform for ProjectIT-Studio João Saraiva IST & INESC-ID (GSI)
Real time automatic decisions Graphical designer for the automation of decisions to be made during the process. Powerful tool intended to increase.
NetBeans Platform Petr Suchomel David Šimonek Miloš Kleint Sun Microsystems.
Introduction to the NetBeans Platform Certified Training Course Geertjan Wielenga Sun Microsystems.
Swing OSGi Modular Desktop Application Framework Jaroslav Tulach, Oracle Anton Epple, Eppleton.
NetBeans Plugin Development Workshop Varun Nischal NetBeans Dream Team Member
NetBeans Platform David Štrupl Sun Microsystems. Certified Engineer Course Agenda Small vs. Large Teams Libraries vs. Frameworks A Bit of History Why.
NetBeans Rich Client Platform Alex Kotchnev Software Developer Commerce Technologies Inc. Alex Kotchnev Software Developer Commerce Technologies Inc.
Sample Test Course Summary David Talby David Rabinowitz.
Common Client Rich Client Platforms
Hello NetBeans Platform
Open-O Integration Project Introduction
CompSci 280 S Introduction to Software Development
Geertjan Wielenga
Chapter 1 Introduction to Computers, Programs, and Java
Enterprise Library Overview
Contributing to Open Source Projects
Geertjan Wielenga This presentation introduces Swing Application Framework and Beans Binding JSRs. These are two new JSRs.
Productivity Tools Extensions to NetBeans IDE that make life easier
CMPE419 Mobile Application Development
An Introduction to Embedded Software Architecture and Design
Chapter 1 Introduction to Computers, Programs, and Java
NetBeans Plugin Development Workshop
Architecture, Components, Configuration
EECE 310 Software Engineering
Software Design Lecture : 14.
Chapter 2. Problem Solving and Software Engineering
Continuous Integration
CMPE419 Mobile Application Development
Mark Quirk Head of Technology Developer & Platform Group
Principles of Object Oriented Programming
Presentation transcript:

1 Component Technology Johannes Kepler University Linz, Austria Deepak Dhungana Institute for System Engineering and Automation Thomas Wuerthinger Institute for System Software

2 Goals ● Benefits of modular programming ● Practical experience (Eclipse and NetBeans) ● Overview of existing modular systems and techniques ● Project

3 Don't reinvent the wheel!

4 Learning Curve Result s Effort Reuse Reinve nt

5 Object Oriented Spaghetti Code ≈ O(n 2 ) dependen cies

6 Module System ≈ O(n) dependen cies

7 Tracking impacts

8 Information Hiding Public API Module B Implementation Module A

9 Limits are your friend! Restrict dependencies Small public API

10 Clean Structure Result s Effort Quick & Dirty Clean & Modul ar

11 Distributed Development Public API Implementation Module User Module Develope r seespublish es creates

12 Mechanisms in Java Access modifiers only at class level - Custom class loaders! JDK7: New module keyword

13 GOTO vs IF, WHILE, … = unrestricted OOP vs modular programming ?

14

15 NetBeans vs Eclipse

16 Application Architecture Eclipse/NetBeans Platform Swing / JDK Java VM IDE

17 Detailed Architecture Swing / JDK Java VM Application Platform IDE ● Standalone: Deployment including required platform / IDE modules ● Plugin: Deployment only with user-defined modules

18 Timeline Octobe r Lecture s Project Presentation of Project Ideas Presentation of Results

19 Lecture ● OSGi ● Eclipse ● Netbeans ● Other component-oriented systems: Mozilla, Visual Studio, IntelliJ, Plux.NET ● API Design

20 Recommended Books ● Practical API Design: Confessions of a Java Framework Architect (Jaroslav Tulach) ● Contributing to Eclipse: Principles, Patterns, and Plug-Ins: Principles, Patterns and Plugins ● (Erich Gamma, Kent Beck) ● Rich Client Programming, Plugging into the NetbeansTM Platform (Tim Boudreau, Jaroslav Tulach, Geertjan Wielenga)

21 Project Eclipse or NetBeans Plugin Teams of 2+ Binary and documentation on website

22 Image Sources "Stone Wheel" - "Spaghetti" - "Module System" - "Sensor box done!" - "Solar Eclipse 1" -