• Keine Ergebnisse gefunden

Component Technology

N/A
N/A
Protected

Academic year: 2022

Aktie "Component Technology"

Copied!
22
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Component Technology

Deepak Dhungana dhungana@ase.jku.at

Institute for System Engineering and Automation

Thomas Wuerthinger wuerthinger@ssw.jku.at 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

Results Reuse

Reinvent

(5)

Object Oriented Spaghetti Code

≈ O(n2) dependencies

(6)

Module System

≈ O(n) dependencies

(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

Results

Quick & Dirty Clean & Modular

(11)

Distributed Development

Public API

Implementation

Module User Module Developer

sees publishes

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

(18)

Timeline

13.3. 18.6. October

Lectures 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

(21)

Project

Eclipse or NetBeans Plugin

Teams of 2+

Binary and documentation on website

(22)

Image Sources

"Stone Wheel" - http://www.flickr.com/photos/bbalaji/2443820505/

"Spaghetti" - http://www.freedigitalphotos.net/

"Module System" - http://www.freedigitalphotos.net/

"Sensor box done!" - http://www.flickr.com/photos/amagill/2404453405/

"Solar Eclipse 1" - http://www.flickr.com/photos/aseph/3227962585/

Referenzen

ÄHNLICHE DOKUMENTE

@ThreadSafe //assuming that finder instance is threadsafe public class MovieLister implements MovieFinderInjector { private MovieFinder finder;.. public

Assume, a framework defines a base class (interface) that the specific custom class has to extend (implement), in order to be used in place of the base class (interface).. The

increased runtime, because client has to compute or access stored extrinsic state information, and pass it into flyweight objects. ‣ Memory saving

I Similar structures, in both cases indirect access to actual object via upstream object. I in both cases, upstream object maintains reference to actual object (subject) and

I Receiver must allow command object to restore receiver’s original state. I Client stores all executed commands in a

The facade forwards the request to the responsible subsystem objects(s). One client request might well lead to several

I Divide object state into intrinsic and extrinsic state, such that there is only a small number of distinct objects with different intrinsic states.. I Share these

plain text documents, even though its functionality is applicable to other document types as well;. Difficult to use document mock-up