Eclipse Architecture and Patterns. Mirko Stocker. Advanced Patterns and Frameworks May, 2015 IFS INSTITUTE FOR SOFTWARE
|
|
- Bridget Harrison
- 6 years ago
- Views:
Transcription
1 Eclipse Architecture and Patterns Mirko Stocker Advanced Patterns and Frameworks May, 2015 IFS INSTITUTE FOR SOFTWARE
2 Outline 1 Eclipse Overview 2 SWT and JFace 3 OSGi Bundles and Eclipse Plug-ins 4 Eclipse Core Patterns 5 Language Toolkit LTK Patterns 6 C/C++ Development Tooling Patterns Mirko Stocker Eclipse Architecture and Patterns / 64
3 Outline 1 Eclipse Overview 2 SWT and JFace 3 OSGi Bundles and Eclipse Plug-ins 4 Eclipse Core Patterns 5 Language Toolkit LTK Patterns 6 C/C++ Development Tooling Patterns Mirko Stocker Eclipse Architecture and Patterns / 64
4 Eclipse History Origins 1999 Work begins on Eclipse inside IBM 2001 Eclipse 1.0 released as open source 2002 Eclipse 2.0 released 2004 Eclipse 3.0 released based on OSGi 2012 Eclipse 4.2 released with completely new fundament Mirko Stocker Eclipse Architecture and Patterns / 64
5 Eclipse History Eclipse 1.0 Mirko Stocker Eclipse Architecture and Patterns / 64
6 Eclipse History Eclipse 2.0 Mirko Stocker Eclipse Architecture and Patterns / 64
7 Eclipse Goals Open platform for application development to make building tools easier and to provide common tools Started as an IDE (-framework) but then became a general platform Integration and interaction of various tools and services based on plug-ins Platform independent but native widgets (SWT) The Eclipse platform itself is a sort of universal tool platform it is an IDE for anything and nothing in particular. Mirko Stocker Eclipse Architecture and Patterns / 64
8 Eclipse Components Figure: Source [GammaBeck03] Mirko Stocker Eclipse Architecture and Patterns / 64
9 Eclipse Components Figure: Source Eclipse.org Mirko Stocker Eclipse Architecture and Patterns / 64
10 Project Stats Over 250 projects under development at eclipse.org Yearly releases in June for projects that want to participate Figure: Source [Aniszczyk] Mirko Stocker Eclipse Architecture and Patterns / 64
11 Outline 1 Eclipse Overview 2 SWT and JFace 3 OSGi Bundles and Eclipse Plug-ins 4 Eclipse Core Patterns 5 Language Toolkit LTK Patterns 6 C/C++ Development Tooling Patterns Mirko Stocker Eclipse Architecture and Patterns / 64
12 SWT Building Cross-Platform UIs Native Widgets and mostly written in Java No performance impact from UI Native library and thin JNI layer for each toolkit SWT implementation per platform Why not AWT or Swing? Mirko Stocker Eclipse Architecture and Patterns / 64
13 JFace UI-Toolkit SWT provides basic components JFace builds on top of SWT: Actions, Menus, Dialogs, Wizards, Fonts Figure: Source Eclipse.org Mirko Stocker Eclipse Architecture and Patterns / 64
14 Outline 1 Eclipse Overview 2 SWT and JFace 3 OSGi Bundles and Eclipse Plug-ins 4 Eclipse Core Patterns 5 Language Toolkit LTK Patterns 6 C/C++ Development Tooling Patterns Mirko Stocker Eclipse Architecture and Patterns / 64
15 OSGi Open Services Gateway initiative Specifies a component and service model for Java Components (bundles) can be dynamically installed, started, stopped, and uninstalled Bundles define dependencies and export some of their packages (unlike a JAR) Similar to Java 9 (former 8) Modularization proposal Several OSGi implementations, Eclipse s is Equinox GlassFish, JBoss, WebSphere, IntelliJ, Netbeans, and many others are all based on OSGi Mirko Stocker Eclipse Architecture and Patterns / 64
16 OSGi Bundles Eclipse plug-ins are OSGi bundles! (since Eclipse 3) Packaged as JARs MANIFEST.MF file contains the bundle metadata Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Popup Plug-in Bundle-SymbolicName: com.example.myosgi; singleton:=true Bundle-Version: Bundle-Activator: com.example.myosgi.activator Require-Bundle: org.eclipse.ui, org.eclipse.core.runtime;bundle-version="4.2.0" Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Export-Package: com.example.myosgi Mirko Stocker Eclipse Architecture and Patterns / 64
17 OSGi Services OSGi also offers services to connect bundles Service is a POJO and can be registered at a Service Registry at bundle start For historical reasons, Eclipse does not use OSGi services but Extensions and Extension Points Mirko Stocker Eclipse Architecture and Patterns / 64
18 Extension Points Extension Point collects contributions to the plug-in offering the Extension Point Extension contributes to an Extension Point Each plug-in contributes to at least one Extension Point Optionally declares a new EP Extension Points and Extensions are not part of the Manifest but separate XML files Figure: Source Eclipse.org Mirko Stocker Eclipse Architecture and Patterns / 64
19 Eclipse Plug-ins Plug-ins can add new Actions, Editors, Views, Menus, Perspectives, Preferences Each plug-in gets its own class loader Can only access specified dependencies Mirko Stocker Eclipse Architecture and Patterns / 64
20 Plug-in Example A plug-in has three interesting files: Manifest plugin.xml to wire up the Extension Class that implements the Extension Mirko Stocker Eclipse Architecture and Patterns / 64
21 Plug-in Example Mirko Stocker Eclipse Architecture and Patterns / 64
22 Eclipse Plug-ins Eclipse platform manages plug-ins: discover installed plug-ins from various disk locations builds the extension registry connects extensions and extension points only activates plug-ins when needed Mirko Stocker Eclipse Architecture and Patterns / 64
23 Plug-in Example Mirko Stocker Eclipse Architecture and Patterns / 64
24 Outline 1 Eclipse Overview 2 SWT and JFace 3 OSGi Bundles and Eclipse Plug-ins 4 Eclipse Core Patterns 5 Language Toolkit LTK Patterns 6 C/C++ Development Tooling Patterns Mirko Stocker Eclipse Architecture and Patterns / 64
25 Classical GoF Design Patterns Creational Patterns Factory Builder Singleton... Structural Patterns Adapter Bridge Composite Proxy Façade... Behavioral Patterns Observer Command Memento Strategy Visitor... Mirko Stocker Eclipse Architecture and Patterns / 64
26 Classical GoF Design Patterns Creational Patterns Factory Builder Singleton... Structural Patterns Adapter Bridge Composite Proxy Façade... Behavioral Patterns Observer Command Memento Strategy Visitor... Platform Singleton: getting Workbench, Plug-in Workspace Resources Proxy and Bridge: Accessing File System Composite: the workspace Observer: tracking resource changes Core Runtime IAdaptable and Adapter Factories: Property View SWT SWT Composite: composing widgets Strategy: defining layouts JFace Observer: responding to events Pluggable adapter: Connecting widget to model Strategy: customize a viewer without subclassing Command: Actions UI Workbench Memento: persisting UI state Virtual Proxy: lazy loading with E.P. LTK Template Method, Composite, Memento CDT Visitor: to traverse the AST Mirko Stocker Eclipse Architecture and Patterns / 64
27 Singleton Ensure that a class only has one instance, and provide a global point of access to it: PlatformUI.getWorkbench() Platform.getAdapterManager() ResourcesPlugin.getWorkspace() Mirko Stocker Eclipse Architecture and Patterns / 64
28 Singleton Ensure that a class only has one instance, and provide a global point of access to it: PlatformUI.getWorkbench() Platform.getAdapterManager() ResourcesPlugin.getWorkspace() Problem: coupling, code hard to test Mirko Stocker Eclipse Architecture and Patterns / 64
29 Proxy Files and Resources How can we represent an (external) resource in a progam? 1 Provide a handle for the resource 2 Handle acts as a proxy for the resource Mirko Stocker Eclipse Architecture and Patterns / 64
30 Proxy Provide a surrogate or place holder for another object to control access to it: Figure: Source Wikipedia Mirko Stocker Eclipse Architecture and Patterns / 64
31 Proxy Files and Resources Advantages of the Proxy pattern approach: Small value objects Define behaviour but don t contain any state information Can refer to non-existing resource (file not yet created) Mirko Stocker Eclipse Architecture and Patterns / 64
32 Proxy Lazy Loading The Proxy pattern can also be used to implement lazy-loading: Eclipse only loads a plug-in when it s needed. UI actions are proxies for the real actions that are loaded when used the first time. Mirko Stocker Eclipse Architecture and Patterns / 64
33 Bridge Decouple an abstraction from its implementation so that the two can vary independently: Figure: Source Wikipedia Mirko Stocker Eclipse Architecture and Patterns / 64
34 Bridge API interface is implemented by an internal class that delegates the calls to another implementation. Figure: Source [GammaBeck03] Both Proxy and Bridge patterns are used here. Mirko Stocker Eclipse Architecture and Patterns / 64
35 Adapter Adapt an interface for a class to make it compatible with another class: Figure: Source [DoFactory] Mirko Stocker Eclipse Architecture and Patterns / 64
36 Adapter Pluggable Adapters JFace uses the Adapter pattern prominently: IContentProvider to get at the contents of a domain object ILabelProvider for the text or image to display Figure: Source [IlyaShinkarenko] Mirko Stocker Eclipse Architecture and Patterns / 64
37 Observer Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically. Figure: Source [IlyaShinkarenko] IWorkspace ws = ResourcesPlugin.getWorkspace(); ws.addresourcechangelistener(new IResourceChangeListener() public void resourcechanged(iresourcechangeevent event){ // handle change } }); Mirko Stocker Eclipse Architecture and Patterns / 64
38 Strategy Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it. Figure: Source Wikipedia Mirko Stocker Eclipse Architecture and Patterns / 64
39 Strategy Strategy in SWT Mirko Stocker Eclipse Architecture and Patterns / 64
40 Strategy Strategy in JFace Filtering and sorting of elements in views are als handled by Strategies: Figure: Source [IlyaShinkarenko] Mirko Stocker Eclipse Architecture and Patterns / 64
41 Command Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support for undoable operations. Figure: Source Wikipedia Mirko Stocker Eclipse Architecture and Patterns / 64
42 Command JFace IAction IAction has a run() method encaspulating the code to be executed when it is called by the Invoker. More than just a function: stores additional data (label, icon, state). Can be used (attached) to multiple menus, tool bars, buttons. IAction action = new Action("Exit") public void run() { System.exit(0); } }; action.setdescription("exits the VM"); menu.add(action); Mirko Stocker Eclipse Architecture and Patterns / 64
43 Outline 1 Eclipse Overview 2 SWT and JFace 3 OSGi Bundles and Eclipse Plug-ins 4 Eclipse Core Patterns 5 Language Toolkit LTK Patterns 6 C/C++ Development Tooling Patterns Mirko Stocker Eclipse Architecture and Patterns / 64
44 LTK What is the LTK? Refactoring Language Toolkit (LTK) - a language neutral API for refactorings: Classes for constructing refactoring user interfaces (common L&F for wizards and dialogs) Refactoring wizard with diff preview Classes for modelling resource changes (e. g., "insert method foo into test.java at offset XY") Refactoring participant functionality Scriptable refactorings and refactoring history Used by Java Development Tools (JDT), C/C++ Development Platform (CDT), Eclipse Scala IDE and others Consists of two plug-ins: org.eclipse.ltk.core.refactoring org.eclipse.ltk.ui.refactoring Mirko Stocker Eclipse Architecture and Patterns / 64
45 LTK Refactoring UI Example: Specifying refactoring parameters Figure: LTK wizard for specifying refactoring parameters of "extract interface" Mirko Stocker Eclipse Architecture and Patterns / 64
46 LTK Diff browser: change 1/2 Figure: LTK diff view with change 1/2 of "extract interface" Mirko Stocker Eclipse Architecture and Patterns / 64
47 LTK Diff browser: change 2/2 Figure: LTK diff view with change 2/2 of "extract interface" Mirko Stocker Eclipse Architecture and Patterns / 64
48 LTK Refactoring Lifecycle Overview Figure: Source [Widmer06] Problem: How does the LTK provide a skeleton of this algorithm, while deferring some steps to subclasses? Mirko Stocker Eclipse Architecture and Patterns / 64
49 LTK Template Method Pattern Template method defines the skeleton of an algorithm as an abstract class, allowing its subclasses to provide concrete behavior. Figure: Source Wikipedia Mirko Stocker Eclipse Architecture and Patterns / 64
50 LTK GoF Patterns applied: Template Method public abstract class Refactoring extends PlatformObject { public R e f a c t o r i n g S t a t u s checkallconditions ( IProgressMonitor pm) { R e f a c t o r i n g T i c k P r o v i d e r p r o v i d e r = g e t R e f a c t o r i n g T i c k P r o v i d e r ( ) ; pm. begintask ( " ", p r o v i d e r. getcheckallconditionsticks ( ) ) ; R e f a c t o r i n g S t a t u s r e s u l t = new R e f a c t o r i n g S t a t u s ( ) ; r e s u l t. merge ( c h e c k I n i t i a l C o n d i t i o n s ( ) ) ; i f (! r e s u l t. h asfatalerror ( ) ) { r e s u l t. merge ( checkfinalconditions ( ) ) ; } pm. done ( ) ; return r e s u l t ; } public abstract R e f a c t o r i n g S t a t u s c h e c k I n i t i a l C o n d i t i o n s ( ) ; } public abstract Refac toringst atus checkfinalconditions ( ) ; Mirko Stocker Eclipse Architecture and Patterns / 64
51 LTK Applied code transformations with change objects After all preconditions have been checked AND no errors are detected, LTK calls createchange(iprogressmonitor) on the refactoring createchange yields a Change object Change is used by LTK to genereate a change preview (diff) and to apply the recorded change to the workspace There are different kinds of change objects, e. g.: TextChange: applies a TextEdit to a document MoveResourceChange: used to move a resource UndoTextFileChange: to perform the reverse of a TextFileChange NullChange: refactoring change that does nothing Most refactorings require several changes Changes can be composed to trees of changes Problem: How can we treat these compositions and the individual changes uniformly? Mirko Stocker Eclipse Architecture and Patterns / 64
52 LTK Composite Pattern Compose object into tree structures to represent part/whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly. Figure: Source Wikipedia Mirko Stocker Eclipse Architecture and Patterns / 64
53 LTK GoF Patterns applied: Composite pattern Change perform(iprogressmonitor): Change dispose() 0..* Child fedit: TextEdit TextFileChange perform(iprogressmonitor): Change dispose() CompositeChange changes: List add(change) addall(change[]) perform(iprogressmonitor) dispose() 1 Parent Figure: Composite pattern with LTK s change objects Mirko Stocker Eclipse Architecture and Patterns / 64
54 LTK Participants A refactoring participant can participate in the condition checking and change creation of a refactoring processor Refactorings that change several source files may have impact on some of the other integrated tools Examples: Renaming classes in the Plug-in Development Environment (PDE) Setting breakpoints in a debugger Consistency of C function declarations and their JNI bindings Mirko Stocker Eclipse Architecture and Patterns / 64
55 LTK Refactoring History Refactorings that are intended to participate in the refactoring history and scripting service must implement a descriptor and a contribution object Two scenarios for scriptable refactorings: Reapplying refactorings on a previous version of a code base Composing large and complex refactorings from smaller refactorings Mirko Stocker Eclipse Architecture and Patterns / 64
56 LTK Scriptable Refactorings <?xml version= " 1.0 " encoding= "UTF 8"?> <session version= " 1.0 " > < r e f a c t o r i n g comment= " E x t r a c t i n t e r f a c e f o r class &apos ; Foo&apos ; " d e s c r i p t i o n = " E x t r a c t I n t e r f a c e Refactoring " filename= " f i l e : / tmp / TestLTK / t e s t. cpp " f l a g s = " 4 " name= " IFoo " p r o j e c t = " TestLTK " i d = " ch. hsr. E x t r a c t I n t e r f a c e R e f a c t o r i n g " replace=" t r u e " s e l e c t i o n = " 8,3 " / > < / session> Problem: How can we capture refactoring states externally so that they can be applied to code without user interaction? Mirko Stocker Eclipse Architecture and Patterns / 64
57 LTK Memento Pattern Capture and externalize an objects internal state without violating its encapsulation, so that the object can be returned to this state later. Figure: Source Wikipedia Mirko Stocker Eclipse Architecture and Patterns / 64
58 LTK GoF Patterns applied: Memento LTK s RefactoringDescriptor: Memento that captures the properties of a specific refactoring instance Contains unique refactoring ID, timestamp, description and further refactoring-specific data like selection, file path, chosen user arguments: protected R e f a c t o r i n g D e s c r i p t o r g e t R e f a c t o r i n g D e s c r i p t o r ( ) { Map< String, String > args = new HashMap< String, String > ( ) ; args. put ( CRefactoringDescriptor. FILE_NAME, filename ) ; args. put ( CRefactoringDescriptor. SELECTION, selectedregion. g e t O f f s e t ( ) + ", " + selectedregion. getlength ( ) ) ; args. put ( E x t r a c t C o n s t a n t R e f a c t o r i n g D e s c r i p t o r.name, i n f o. getname ( ) ) ; / / more r e f a c t o r i n g s p e c i f i c i n f o r m a t i o n return new E x t r a c t C o n s t a n t R e f a c t o r i n g D e s c r i p t o r ( p r o j e c t. g e t P r o j e c t ( ). getname ( ), " E x t r a c t Constant Refactoring ", " Create constant f o r " + t a r g e t. getrawsignature ( ), args ) ; } Mirko Stocker Eclipse Architecture and Patterns / 64
59 Outline 1 Eclipse Overview 2 SWT and JFace 3 OSGi Bundles and Eclipse Plug-ins 4 Eclipse Core Patterns 5 Language Toolkit LTK Patterns 6 C/C++ Development Tooling Patterns Mirko Stocker Eclipse Architecture and Patterns / 64
60 CDT Overview First release with Eclipse 2.0 in April 2003 Fully functional C and C++ IDE based on the Eclipse platform Features: Support for project creation and managed build for various toolchains (e. g., GCC, Clang) Standard make build Source navigation Type hierarchy, call graph, include browser, macro definition browser Code editor with syntax highlighting, folding and hyperlink navigation Source code refactoring and code generation Visual debugging tools, including memory, registers, and disassembly viewers Mirko Stocker Eclipse Architecture and Patterns / 64
61 CDT CDT s AST nodes In C/C++, a translation unit (TU) is a source file with all included headers The root node of CDT s abstract syntax tree (AST) has the type org.eclipse.cdt.core.dom.ast.iasttranslationunit In CDT, C and C++ AST nodes are separated (e. g., IASTUnaryExpression and ICPPASTUnaryExpression); C has ~60, C++ ~90 nodes org.eclipse.cdt.core.dom.ast.iastnode is the parent interface of all nodes in the AST The AST can be traversed by calling IASTNode s getparent() and getchildren() methods Calling child/parent methods can get cumbersome We want to decouple the data from the operations that process the data Solution: visitor pattern Mirko Stocker Eclipse Architecture and Patterns / 64
62 CDT Example of an AST Figure: Example of CDT s abstract syntax tree (AST) Mirko Stocker Eclipse Architecture and Patterns / 64
63 CDT Visitor Pattern Represent an operation to be performed on the elements of an object structure. Visitor lets you define a new operation without changing the classes of the elements on which it operates. Figure: Source Wikipedia Mirko Stocker Eclipse Architecture and Patterns / 64
64 CDT GoF Patterns applied: Visitor To create a visitor, subclass from ASTVisitor ASTVisitor has overloaded visit methods for each node type Each node class has an accept(astvisitor) method (defined in IASTNode) calls visit(this) Example visitor to collect all names: class ASTNameVisitor extends ASTVisitor { List<IASTName> names = new ArrayList<IASTName>(); { this.shouldvisitnames = true; public int visit(iastname name) { names.add(name); return PROCESS_CONTINUE; } } Mirko Stocker Eclipse Architecture and Patterns / 64
65 Bibliography I Erich Gamma and Kent Beck. Contributing to Eclipse: Principles, Patterns, and Plug-Ins. Addison Wesley, Marc Teufel and Dr. Jonas Helming. Eclipse 4: Rich Clients mit dem Eclipse SDK 4.2. entwickler.press, Ilya Shinkarenko. Design Patterns Used in Eclipse Bangalore, Eclipse Summit India Neil Bartlett. A Comparison of Eclipse Extensions and OSGi Services http: // Mirko Stocker Eclipse Architecture and Patterns / 64
66 Bibliography II Adapter Pattern Chris Aniszczyk. Ecipse Juno Released for Friends ecipse-juno-released-for-friends Tobias Widmer. Unleashing the Power of Refactoring. Eclipse Corner Articles, Michael Petito. Eclipse Refactoring. EE564, Various authors. The Architecture of Open Source Applications. Mirko Stocker Eclipse Architecture and Patterns / 64
Eclipse CDT refactoring overview and internals
Eclipse CDT refactoring overview and internals Michael Rüegg Institute For Software University of Applied Sciences Rapperswil Parallel Tools Platform (PTP) Workshop, Chicago September, 2012 Outline 1 Refactoring
More informationGetting the Most from Eclipse
Getting the Most from Eclipse Darin Swanson IBM Rational Portland, Oregon Darin_Swanson@us.ibm.com March 17, 2005 What is Eclipse An extensible tools platform Out-of-box function and quality to attract
More informationDesign Pattern. CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.)
Design Pattern CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.) A. Design Pattern Design patterns represent the best practices used by experienced
More informationSDC Design patterns GoF
SDC Design patterns GoF Design Patterns The design pattern concept can be viewed as an abstraction of imitating useful parts of other software products. The design pattern is a description of communicating
More informationProduced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar
Design Patterns MSc in Communications Software Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie
More information20. Eclipse and Framework Extension Languages
20. Eclipse and Framework Extension Languages Prof. Uwe Aßmann TU Dresden Institut für Software und Multimediatechnik Lehrstuhl Softwaretechnologie Version 11-1.0, 12/17/11 Design Patterns and Frameworks,
More informationFirst Steps in RCP. Jan Blankenhorn, WeigleWilczek GmbH, Stuttgart, Germany. February 19th, 2009
First Steps in RCP Jan Blankenhorn, WeigleWilczek GmbH, Stuttgart, Germany February 19th, 2009 Agenda» About us» RCP Architecture and Bundles» Extension Points and Views» Bundle Dependencies 2 Jan Blankenhorn»
More informationDesign Patterns Reid Holmes
Material and some slide content from: - Head First Design Patterns Book - GoF Design Patterns Book Design Patterns Reid Holmes GoF design patterns $ %!!!! $ "! # & Pattern vocabulary Shared vocabulary
More informationTopics in Object-Oriented Design Patterns
Software design Topics in Object-Oriented Design Patterns Material mainly from the book Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides; slides originally by Spiros Mancoridis;
More informationThe Eclipse Rich Client Platform
The Eclipse Rich Client Platform Slides by various members of the Eclipse JDT and Platform teams Slides 2004 IBM Corporation Outline Rich Client Application? The Eclipse Plug-in Architecture Eclipse Plug-ins
More informationEPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 6: Design Patterns
EPL 603 TOPICS IN SOFTWARE ENGINEERING Lab 6: Design Patterns Links to Design Pattern Material 1 http://www.oodesign.com/ http://www.vincehuston.org/dp/patterns_quiz.html Types of Design Patterns 2 Creational
More informationIngegneria del Software Corso di Laurea in Informatica per il Management. Design Patterns part 1
Ingegneria del Software Corso di Laurea in Informatica per il Management Design Patterns part 1 Davide Rossi Dipartimento di Informatica Università di Bologna Pattern Each pattern describes a problem which
More informationEclipse (1/3) Deepak Dhungana Institute for System Engineering and Automation
Eclipse (1/3) Deepak Dhungana dhungana@ase.jku.at Institute for System Engineering and Automation Thomas Wuerthinger wuerthinger@ssw.jku.at Institute for System Software Johannes Kepler University Linz,
More informationObject-Oriented Oriented Programming
Object-Oriented Oriented Programming Composite Pattern CSIE Department, NTUT Woei-Kae Chen Catalog of Design patterns Creational patterns Abstract Factory, Builder, Factory Method, Prototype, Singleton
More information2.1 Design Patterns and Architecture (continued)
MBSE - 2.1 Design Patterns and Architecture 1 2.1 Design Patterns and Architecture (continued) 1. Introduction 2. Model Construction 2.1 Design Patterns and Architecture 2.2 State Machines 2.3 Timed Automata
More informationAbout the Tutorial. Audience. Prerequisites. Copyright & Disclaimer
i About the Tutorial Eclipse is an integrated development environment (IDE) for Java and other programming languages like C, C++, PHP, and Ruby etc. Development environment provided by Eclipse includes
More information2.1 Design Patterns and Architecture (continued)
MBSE - 2.1 Design Patterns and Architecture 1 2.1 Design Patterns and Architecture (continued) 1. Introduction 2. Model Construction 2.1 Design Patterns and Architecture 2.2 State Machines 2.3 Abstract
More informationIndex. Symbols. /**, symbol, 73 >> symbol, 21
17_Carlson_Index_Ads.qxd 1/12/05 1:14 PM Page 281 Index Symbols /**, 73 @ symbol, 73 >> symbol, 21 A Add JARs option, 89 additem() method, 65 agile development, 14 team ownership, 225-226 Agile Manifesto,
More informationThe Strategy Pattern Design Principle: Design Principle: Design Principle:
Strategy Pattern The Strategy Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it. Design
More informationObject-Oriented Design
Object-Oriented Design Lecture 20 GoF Design Patterns Behavioral Department of Computer Engineering Sharif University of Technology 1 GoF Behavioral Patterns Class Class Interpreter: Given a language,
More informationA Tour of the Eclipse Environment
A Tour of the Eclipse Environment Stephen Barrett Concordia University What is Eclipse? Depends on who you ask. 2 What is Eclipse? 3 Man on the Street: Java-based development framework Spawned from IBM
More informationDeveloping Eclipse Rich-Client Applications Tutorial
Developing Eclipse Rich-Client Applications Tutorial Dr. Frank Gerhardt Gerhardt Informatics Kft. fg@gerhardtinformatics.com Michael Scharf Wind River eclipsecon@scharf.gr 2008 by Frank Gerhardt and Michael
More informationAn Introduction to Patterns
An Introduction to Patterns Robert B. France Colorado State University Robert B. France 1 What is a Pattern? - 1 Work on software development patterns stemmed from work on patterns from building architecture
More informationSlide 1. Design Patterns. Prof. Mirco Tribastone, Ph.D
Slide 1 Design Patterns Prof. Mirco Tribastone, Ph.D. 22.11.2011 Introduction Slide 2 Basic Idea The same (well-established) schema can be reused as a solution to similar problems. Muster Abstraktion Anwendung
More informationWorkbench and JFace Foundations. Part One, of a two part tutorial series
Workbench and JFace Foundations Part One, of a two part tutorial series 2005 by IBM; made available under the EPL v1.0 Date: February 28, 2005 About the Speakers Tod Creasey Senior Software Developer,
More informationDESIGN PATTERN - INTERVIEW QUESTIONS
DESIGN PATTERN - INTERVIEW QUESTIONS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Design Pattern Interview Questions
More informationAdvanced User Interface Programming Using the Eclipse Rich Client Platform
Advanced User Interface Programming Using the Eclipse Rich Client Platform Tod Creasey IBM Canada Tod Creasey Advanced User Interface Programming Using the Eclipse Rich Client Platform Page 1 About the
More informationThe Eclipse Rich Ajax Platform
The Eclipse Rich Ajax Platform Frank Appel RAP Tech Lead fappel@innoopract.com Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 1 The Innoopract pitch Integration & delivery
More informationSocket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.
Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise
More informationJClone: Syntax tree based clone detection for Java
Degree Project JClone: Syntax tree based clone detection for Java Muhammed Yasin Bahtiyar 2010-03-30 Subject: Software Technology Level: Master Course code: DA4004 Abstract An unavoidable amount of money
More informationTrusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout
1 Last update: 2 November 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 5: Design patterns Agenda for today 3 Overview Benefits of patterns
More informationIBM Workplace Client Technology API Toolkit
IBM Workplace Client Technology API Toolkit Version 2.5 User s Guide G210-1984-00 IBM Workplace Client Technology API Toolkit Version 2.5 User s Guide G210-1984-00 Note Before using this information and
More informationDesign Document CDT Remote Search/Index Framework. Chris Recoskie Vivian Kong Mike Kucera Jason Montojo. IBM Corporation
Design Document CDT Remote Search/Index Framework Chris Recoskie Vivian Kong Mike Kucera Jason Montojo IBM Corporation Page 1 of 26 1 Introduction 1.1 Purpose The purpose of this document is to describe
More informationRegular Forum of Lreis. Speechmaker: Gao Ang
Regular Forum of Lreis Speechmaker: Gao Ang Content: A. Overview of Eclipse Project B. Rich Client Platform C. The progress of ustudio Project D. The development of Grid technology and Grid GIS E. Future
More informationMcAffer_Index.qxd 9/20/2005 9:39 AM Page 495. Index
McAffer_Index.qxd 9/20/2005 9:39 AM Page 495 Index A Action (in Eclipse) ActionBarAdvisor 51, 227, 261, 280 Action extension points 231 actions in Hyperbola multiple product configurations 388 adding actions
More informationinside eclipse Erich Gamma Eclipse Project Management Committee Member IBM Distinguished Engineer IBM Rational Software
inside eclipse Erich Gamma Eclipse Project Management Committee Member IBM Distinguished Engineer IBM Rational Software inside eclipse 2005 IBM Corporation what is eclipse? an IDE and more it s a Java
More informationSmart Client development with the Eclipse Rich Client Platform
Smart Client development with the Eclipse Rich Client Platform Nick Edgar and Pascal Rapicault IBM Rational Software Ottawa, Ontario Eclipse Platform Committers To contact us: news://news.eclipse.org/eclipse.platform.rcp
More informationProgramming ArchiTech
Programming ArchiTech The intention of this document is to give a description of the way ArchiTech has been programmed, in order to make anyone who wants to take a look to the code easier to understand
More informationEclipse Building Commercial-Quality Plug-ins Second Edition
Eclipse Building Commercial-Quality Plug-ins Second Edition Eric Clayberg Dan Rubel v:addison-wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris
More informationIntroduction to Eclipse and Eclipse RCP
Introduction to Eclipse and Eclipse RCP Kenneth Evans, Jr. Presented at the EPICS Collaboration Meeting June 13, 2006 Argonne National Laboratory, Argonne, IL Eclipse Eclipse is an Open Source community
More informationThe GoF Design Patterns Reference
The GoF Design Patterns Reference Version.0 / 0.0.07 / Printed.0.07 Copyright 0-07 wsdesign. All rights reserved. The GoF Design Patterns Reference ii Table of Contents Preface... viii I. Introduction....
More informationCommon Navigator Framework
Common Navigator Framework file://c:\d\workspaces\eclipsecnf\org.eclipse.platform.doc.isv\guide\cnf.htm Page 1 of 3 Common Navigator Framework A Viewer provides the user with a view of objects using a
More informationFoundations of User Interface Programming Using the Eclipse Rich Client Platform
Foundations of User Interface Programming Using the Eclipse Rich Client Platform Tod Creasey IBM Canada Tod Creasey Foundations of User Interface Programming Using the Eclipse Rich Client Platform Page
More informationTHOMAS LATOZA SWE 621 FALL 2018 DESIGN PATTERNS
THOMAS LATOZA SWE 621 FALL 2018 DESIGN PATTERNS LOGISTICS HW3 due today HW4 due in two weeks 2 IN CLASS EXERCISE What's a software design problem you've solved from an idea you learned from someone else?
More informationSoftware Engineering I (02161)
Software Engineering I (02161) Week 10 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2016 Last Time Project Planning Non-agile Agile Refactoring Contents Basic Principles
More informationDesign Patterns. Manuel Mastrofini. Systems Engineering and Web Services. University of Rome Tor Vergata June 2011
Design Patterns Lecture 1 Manuel Mastrofini Systems Engineering and Web Services University of Rome Tor Vergata June 2011 Definition A pattern is a reusable solution to a commonly occurring problem within
More informationObject Oriented Paradigm
Object Oriented Paradigm Ming-Hwa Wang, Ph.D. Department of Computer Engineering Santa Clara University Object Oriented Paradigm/Programming (OOP) similar to Lego, which kids build new toys from assembling
More informationEclipse and Framework Extension Languages
Eclipse and Framework Extension Languages Prof. Uwe Aßmann TU Dresden Institut für Software und Multimediatechnik Lehrstuhl Softwaretechnologie Design Patterns and Frameworks, Prof. Uwe Aßmann 1 References
More informationIntroduction to Software Engineering: Object Design I Reuse & Patterns
Introduction to Software Engineering: Object Design I Reuse & Patterns John T. Bell Department of Computer Science University of Illinois, Chicago Based on materials from Bruegge & DuToit 3e, Chapter 8,
More informationEclipse Introduction. Zeng Yu
Eclipse Introduction Zeng Yu yuzeng@cn.ibm.com IBM Software Group 2004 5 21 1 Presentation Plan What is Eclipse Brief history of Eclipse Concept of Plug-ins Platform Architecture Workspace Workbench (SWT,
More informationIntroduction to Eclipse
Introduction to Eclipse Getting started with Eclipse 05/02/2010 Prepared by Chris Panayiotou for EPL 233 1 What is Eclipse? o Eclipse is an open source project http://www.eclipse.org Consortium of companies,
More informationApplying Design Patterns to accelerate development of reusable, configurable and portable UVCs. Accellera Systems Initiative 1
Applying Design Patterns to accelerate development of reusable, configurable and portable UVCs. Accellera Systems Initiative 1 About the presenter Paul Kaunds Paul Kaunds is a Verification Consultant at
More informationADT: Eclipse development tools for ATL
ADT: Eclipse development tools for ATL Freddy Allilaire (freddy.allilaire@laposte.net) Tarik Idrissi (tarik.idrissi@laposte.net) Université de Nantes Faculté de Sciences et Techniques LINA (Laboratoire
More informationWorkplace Client Technology, Micro Edition. WCTME Enterprise Offering Application Developer s Guide
Workplace Client Technology, Micro Edition WCTME Enterprise Offering Application Developer s Guide Note Before using this information and the product it supports, read the information in Notices, on page
More informationNews in RSA-RTE 10.2 updated for sprint Mattias Mohlin, May 2018
News in RSA-RTE 10.2 updated for sprint 2018.18 Mattias Mohlin, May 2018 Overview Now based on Eclipse Oxygen.3 (4.7.3) Contains everything from RSARTE 10.1 and also additional features and bug fixes See
More informationMitglied der Helmholtz-Gemeinschaft. Eclipse Parallel Tools Platform (PTP)
Mitglied der Helmholtz-Gemeinschaft Eclipse Parallel Tools Platform (PTP) April 25, 2013 Carsten Karbach Content 1 Parallel Tools Platform (PTP) 2 Eclipse Plug-In Development April 25, 2013 Carsten Karbach
More informationMobile Application Workbench. SAP Mobile Platform 3.0 SP02
SAP Mobile Platform 3.0 SP02 DOCUMENT ID: DC-01-0302-01 LAST REVISED: January 2014 Copyright 2014 by SAP AG or an SAP affiliate company. All rights reserved. No part of this publication may be reproduced
More informationAbout Tom. CEO BestSolution Systemhaus GmbH. Eclipse Committer. Platform UI EMF. Projectlead: UFaceKit, Nebula. Member of the Architectual Council
State of Eclipse 4.x Tom Schindl - BestSolution Systemhaus GmbH, Eric Moffatt IBM Leuven October 2011 About Tom CEO BestSolution Systemhaus GmbH Eclipse Committer e4 Platform UI EMF Projectlead: UFaceKit,
More informationECLIPSE RICH CLIENT PLATFORM
ECLIPSE RICH CLIENT PLATFORM DESIGNING, CODING, AND PACKAGING JAVA TM APPLICATIONS Jeff McAffer Jean-Michel Lemieux v:addison-wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto
More informationObject-Oriented Design
Object-Oriented Design Lecturer: Raman Ramsin Lecture 20: GoF Design Patterns Creational 1 Software Patterns Software Patterns support reuse of software architecture and design. Patterns capture the static
More informationNetBeans to Eclipse GlassFish Project Converter. Michael Tidd
Project Number. GFP 0903 NetBeans to Eclipse GlassFish Project Converter A Major Qualifying Project Report: submitted to the faculty of the WORCESTER POLYTECHNIC INSTITUTE in partial fulfillment of the
More informationEclipse Platform Technical Overview
Eclipse Platform Technical Overview Object Technology International, Inc. February 2003 (updated for 2.1; originally published July 2001) Abstract: The Eclipse Platform is designed for building integrated
More informationUsing Design Patterns in Java Application Development
Using Design Patterns in Java Application Development ExxonMobil Research & Engineering Co. Clinton, New Jersey Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S.
More informationRich Client GUI's with RCP & RAP
Rich Client GUI's with RCP & RAP Alexey Aristov WeigleWilczek GmbH aristov@weiglewilczek.com What is Rich Client? A fat client or rich client is a computer (client) in client-server architecture networks
More informationDesign patterns. Jef De Smedt Beta VZW
Design patterns Jef De Smedt Beta VZW Who Beta VZW www.betavzw.org Association founded in 1993 Computer training for the unemployed Computer training for employees (Cevora/Cefora) 9:00-12:30 13:00-16:00
More informationDesign Pattern and Software Architecture: IV. Design Pattern
Design Pattern and Software Architecture: IV. Design Pattern AG Softwaretechnik Raum E 3.165 Tele.. 60-3321 hg@upb.de IV. Design Pattern IV.1 Introduction IV.2 Example: WYSIWYG Editor Lexi IV.3 Creational
More informationOutline. Tutorial III. Eclipse. Basics. Eclipse Plug-in Feature
Outline Tutorial III. Eclipse Basics Eclipse Plug-in feature, MVC How to build Plug-ins Exploring Eclipse source code for Editor Using CVS inside Eclipse Eclipse JDK Tips Basics Eclipse projects: Eclipse
More informationDesign Patterns: Structural and Behavioural
Design Patterns: Structural and Behavioural 3 April 2009 CMPT166 Dr. Sean Ho Trinity Western University See also: Vince Huston Review last time: creational Design patterns: Reusable templates for designing
More informationImplementation of a 2D Graph Viewer
Degree Project Implementation of a 2D Graph Viewer Javier de Muga 2010-01-29 Subject: computer science Level: master Course code: DA4014 Abstract The VizzAnalyzer tool is a program analysis tool with a
More informationCHAPTER 1: A GENERAL INTRODUCTION TO PROGRAMMING 1
INTRODUCTION xxii CHAPTER 1: A GENERAL INTRODUCTION TO PROGRAMMING 1 The Programming Process 2 Object-Oriented Programming: A Sneak Preview 5 Programming Errors 6 Syntax/Compilation Errors 6 Runtime Errors
More informationTools to Develop New Linux Applications
Tools to Develop New Linux Applications IBM Software Development Platform Tools for every member of the Development Team Supports best practices in Software Development Analyst Architect Developer Tester
More informationCSCI 253. Overview. The Elements of a Design Pattern. George Blankenship 1. Object Oriented Design: Template Method Pattern. George Blankenship
CSCI 253 Object Oriented Design: George Blankenship George Blankenship 1 Creational Patterns Singleton Abstract factory Factory Method Prototype Builder Overview Structural Patterns Composite Façade Proxy
More informationNews in RSA-RTE 10.1 updated for sprint Mattias Mohlin, November 2017
News in RSA-RTE 10.1 updated for sprint 2017.46 Mattias Mohlin, November 2017 Overview Now based on Eclipse Neon.3 (4.6.3) Many general improvements since Eclipse Mars Contains everything from RSARTE 10
More informationBeware: Testing RCP Applications in Tycho can cause Serious Harm to your Brain. OSGi p2
JUnit Beware: Testing RCP Applications in Tycho can cause Serious Harm to your Brain Dependencies Debugging Surefire OSGi p2 Mac OS X Update Site Tycho Redistribution and other use of this material requires
More informationJDT Plug in Developer Guide. Programmer's Guide
JDT Plug in Developer Guide Programmer's Guide Table of Contents Java Development Tooling overview...1 Java elements and resources...1 Java elements...1 Java elements and their resources...3 Java development
More informationRAP (The Rich Ajax Platform)
RAP (The Rich Ajax Platform) Eclipse Banking Day New York Jochen Krause RAP Project lead jkrause@eclipsesource.com 2008 EclipseSource December 2008 RAP enables building modular applications for web and
More informationNews in RSA-RTE 10.1 updated for sprint Mattias Mohlin, January 2018
News in RSA-RTE 10.1 updated for sprint 2018.03 Mattias Mohlin, January 2018 Overview Now based on Eclipse Neon.3 (4.6.3) Many general improvements since Eclipse Mars Contains everything from RSARTE 10
More informationOMNeT++ IDE Developers Guide. Version 5.2
OMNeT++ IDE Developers Guide Version 5.2 Copyright 2016 András Varga and OpenSim Ltd. 1. Introduction... 1 2. Installing the Plug-in Development Environment... 2 3. Creating The First Plug-in... 4 Creating
More informationEquinox Framework: How to get Hooked
Equinox Framework: How to get Hooked Thomas Watson, IBM Lotus Equinox Project co-lead Equinox Framework lead developer 2008 by IBM Corp; made available under the EPL v1.0 March 2008 Tutorial Agenda Equinox
More informationEclipse Plug-ins. Third Edition
Eclipse Plug-ins Third Edition Eric Clayberg Dan Rubel :vaddison-wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris Madrid Capetown Sydney Tokyo
More informationSoftware Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.
Software Design Patterns Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University J. Maletic 1 Background 1 Search for recurring successful designs emergent designs from practice
More information6367(Print), ISSN (Online) Volume 4, Issue 2, March April (2013), IAEME & TECHNOLOGY (IJCET)
INTERNATIONAL International Journal of Computer JOURNAL Engineering OF COMPUTER and Technology ENGINEERING (IJCET), ISSN 0976- & TECHNOLOGY (IJCET) ISSN 0976 6367(Print) ISSN 0976 6375(Online) Volume 4,
More informationModellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico
Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 9 OO modeling Design Patterns Structural Patterns Behavioural Patterns
More informationUsing the Plug in Development Environment
IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation bo Table of Contents Introduction to PDE...1 Preparing the workbench...2
More informationBuilding JavaServer Faces Applications
IBM Software Group St. Louis Java User Group Tim Saunders ITS Rational Software tim.saunders@us.ibm.com 2005 IBM Corporation Agenda JSF Vision JSF Overview IBM Rational Application Developer v6.0 Build
More informationAndroid Apps. with Eclipse. Apress. Onur Cinar
Android Apps with Eclipse Onur Cinar Apress Contents About the Author About the Technical Reviewer Introduction x xi xii Chapter 1: Android Primer 1 Android History 1 Android Versions..2 Android Platform
More informationIntroducing HP NonStop Development Environment Version 2.0 for Eclipse (NSDEE 2.0)
Introducing HP NonStop Development Environment Version 2.0 for Eclipse (NSDEE 2.0) Swaroop Dutta Steve Williams Seth Hawthorne May 6, 2010 1 2010 Hewlett-Packard Development Company, L.P. The information
More informationCOSC 3351 Software Design. Design Patterns Behavioral Patterns (I)
COSC 3351 Software Design Design Patterns Behavioral Patterns (I) Spring 2008 Purpose Creational Structural Behavioral Scope Class Factory Method Adapter(class) Interpreter Template Method Object Abstract
More informationDesign Patterns. (and anti-patterns)
Design Patterns (and anti-patterns) Design Patterns The Gang of Four defined the most common object-oriented patterns used in software. These are only the named ones Lots more variations exist Design Patterns
More informationWeb Applica+on Development. Budapes( Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
Web Applica+on Development Budapes( Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék UI Development Trends Desktop applica+ons Opera+ng system integra+on Rich set of
More informatione4 Project 0.9 Release Review
e4 Project 0.9 Release Review July 30, 2009 Review communication channel: e4-dev@eclipse.org 1 Highlights 0.9 is a technology preview of interesting work happening in the e4 incubator This is not a commercial
More informationSupervisor : Germán Cancio Meliá. Towards a GUI for CDB-CLI
Towards a GUI for CDB-CLI Outline > Overview of CDB-CLI Why a GUI? Investigations Results & Future Work Conclusion Overview of CDB-CLI Command Line Interface for the Configuration DataBase of Quattor $
More informationCSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich
CSCD01 Engineering Large Software Systems Design Patterns Joe Bettridge Winter 2018 With thanks to Anya Tafliovich Design Patterns Design patterns take the problems consistently found in software, and
More informationComposite Pattern. IV.4 Structural Pattern
IV.4 Structural Pattern Motivation: Compose objects to realize new functionality Flexible structures that can be changed at run-time Problems: Fixed class for every composition is required at compile-time
More informationPlug-ins, RCP and SWT. Sample Content
Introducing Eclipse Plug-ins, RCP and SWT Sample Content Building On Top Of Eclipse A majority of Java projects use Eclipse as their IDE However there is a big difference between developing with Eclipse
More informationCustom Code Rules Deep Dive
Custom Code Rules Deep Dive IDz/RDz Software Analyzer Jon Gellin, Senior Software Engineer 24 October 2017 What we will not be talking about What is IDz/RDz? What are code rules? Why would I want to use
More informationDesign Patterns Reid Holmes
Material and some slide content from: - Head First Design Patterns Book - GoF Design Patterns Book Design Patterns Reid Holmes GoF design patterns $ %!!!! $ "! # & Pattern vocabulary Shared vocabulary
More informationCDT C++ Refactorings
HSR University of Applied Sciences Rapperswil Departement of Computer Science - Institute for Software CDT C++ Refactorings Bachelor Thesis: Spring Term 2010 Matthias Indermühle mindermu@hsr.ch Roger Knöpfel
More informationComparing graphical DSL editors
Comparing graphical DSL editors AToM 3 vs GMF & MetaEdit+ Nick Baetens Outline Introduction MetaEdit+ Specifications Workflow GMF Specifications Workflow Comparison 2 Introduction Commercial Written in
More informationWhat s new in CDT 4.0 and beyond. Doug Schaefer QNX Software Systems CDT Project Lead
What s new in CDT 4.0 and beyond Doug Schaefer QNX Software Systems CDT Project Lead 2007 by QNX Software Systems; made available under the EPL v1.0 October 10, 2007 Where it all began From: "John Duimovich"
More information