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" -