Copyright  2005 Symbian Software Ltd. 1 Lars Kurth Technology Architect, Core Toolchain The Template Engine CDT Developer Conference, Oct 2005.

Slides:



Advertisements
Similar presentations
Extending Eclipse CDT for Remote Target Debugging Thomas Fletcher Director, Automotive Engineering Services QNX Software Systems.
Advertisements

28 March 2003e-MapScholar: content management system The e-MapScholar Content Management System (CMS) David Medyckyj-Scott Project Director.
METS: An Introduction Structuring Digital Content.
July 2010 D2.1 Upgrading strategy Javier Soto Catalog Release 3. Communities.
Building New SOA and AJAX- Based Business Applications Mark Barnard R&D Manager – Natural Business Services Software AG (Canada) Inc.
SE 470 Software Development Processes James Nowotarski 21 April 2003.
Requirements Specification
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of The Eclipse Web Tools Platform.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Standards for Technology in Automotive Retail STAR Workbench 1.0 Michelle Vidanes & Dave Carver STAR XML Data Architects, Certified Scrum Masters.
© 2006 by IBM 1 How to use Eclipse to Build Rich Internet Applications With PHP and AJAX Phil Berkland IBM Software Group Emerging.
Creation of hybrid portlet application for file download using IBM Worklight and IBM Rational Application Developer v9 Gaurav Bhattacharjee Lakshmi Priya.
® IBM Software Group © 2006 IBM Corporation How to read/write XML using EGL This Learning Module shows how to utilize an EGL Library to read/write an XML.
IBM Proof of Technology Discovering the Value of SOA with WebSphere Process Integration © 2005 IBM Corporation SOA on your terms and our expertise WebSphere.
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
© 2008 Intel Corporation; made available under the EPL v1.0 | February 12, 2008 | Integrating a custom tool-chain in CDT.
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
Faculty of Informatics and Information Technologies Slovak University of Technology Peter Kajsa and Ľubomír Majtás Design.
1 CHAPTER 1 OVERVIEW of JDEVELOPER. 2 Overview of JDeveloper Oracle’s JDeveloper 10g (JDeveloper) is an integrated development environment for Java programming.
Eclipse Overview Introduction to Web Programming Kirkwood Continuing Education Fred McClurg © Copyright 2015, Fred McClurg, All Rights Reserved.
© 2005 by IBM; made available under the EPL v1.0 | March 1, 2005 Tim deBoer Gorkem Ercan Extend WTP Server Tools for your.
® IBM Software Group © 2009 IBM Corporation Rational Publishing Engine RQM Multi Level Report Tutorial David Rennie, IBM Rational Services A/NZ
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
© 2012 LogiGear Corporation. All Rights Reserved Robot framework.
Anand Raman, Group Manager David Wright, Lead SDE Developer Division March 15, 2007.
Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.
Tools for Diagrammatic Specifications Stian Skjerveggen Supervisors: Yngve Lamo, Adrian Rutle, Uwe Egbert Wolter.
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
Session 1 SESSION 1 Working with Dreamweaver 8.0.
POSTECH DP & NM Lab. (1)(1) POWER Prototype (1)(1) POWER Prototype : Towards Integrated Policy-based Management Mi-Joung Choi
Ontology Engineering and Plugin Development with the NeOn Toolkit Plug-in Development for the NeOn Toolkit June 1st, 2008 Michael Erdmann, Peter Haase,
Drupal Commerce Better than Uber Andrew Root: druroot.
JSTL, XML and XSLT An introduction to JSP Standard Tag Library and XML/XSLT transformation for Web layout.
A Conceptual Overview Presentation: 60 minutes Q&A: 30 minutes.
IBM Software Group ® Overview of SA and RSA Integration John Jessup June 1, 2012 Slides from Kevin Cornell December 2008 Have been reused in this presentation.
Selected Topics in Software Engineering - Distributed Software Development.
Systems Analysis and Design in a Changing World, 3rd Edition
Requirements Capture. Four Steps of requirements capture List candidate requirements Understand system context Capture functional requirements Capture.
Designing software architectures to achieve quality attribute requirements F. Bachmann, L. Bass, M. Klein and C. Shelton IEE Proceedings Software Tzu-Chin.
IBM Software Group ® Context-Sensitive Help with the DITA Open Toolkit Jeff Antley IBM October 4, 2007.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary June, 2011 Made available under the Eclipse Public License v Mobile.
New Project Model Primary author: Mikhail Sennikovsky Contributors: Leo Treggiari Intel Corp. September, 2006.
ModelPedia Model Driven Engineering Graphical User Interfaces for Web 2.0 Sites Centro de Informática – CIn/UFPe ORCAS Group Eclipse GMF Fábio M. Pereira.
Software Requirements: A More Rigorous Look 1. Features and Use Cases at a High Level of Abstraction  Helps to better understand the main characteristics.
Java Beans. Definitions A reusable software component that can be manipulated visually in a ‘builder tool’. (from JavaBean Specification) The JavaBeans.
Separating the Interface from the Engine: Creating Custom Add-in Tasks for SAS Enterprise Guide ® Peter Eberhardt Fernwood Consulting Group Inc.
© 2006, National Research Council Canada © 2006, IBM Corporation Solving performance issues in OTS-based systems Erik Putrycz Software Engineering Group.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,
An EPICS IDE Using Eclipse Kenneth Evans, Jr. Presented at the EPICS Collaboration Meeting June 15, 2006 Argonne National Laboratory, Argonne, IL.
SAP CRM Web UI.
2 Copyright © 2004, Oracle. All rights reserved. ADF Development Process.
Generating ADL Descriptions ADL Module for Together 6.x Massimo Marino Lawrence Berkeley National Laboratory.
Review for Eclipse Release Review | © 2012 by Review for Eclipse Committers, made available under the EPL v1.0 1 Review for Eclipse (R4E) 0.11 Release.
*DT Project Model Leo Treggiari Intel Corp. Dec, 2005.
FHIRForms – Viewing and Editing FHIR Data
The Object Oriented Approach to Design
Metadata The metadata contains
Java IDE Dwight Deugo Nesa Matic Portions of the notes for this lecture include excerpts from.
a middleware implementation
Software Development Process Using UML Recap
SDMX IT Tools SDMX Registry
Presentation transcript:

Copyright  2005 Symbian Software Ltd. 1 Lars Kurth Technology Architect, Core Toolchain The Template Engine CDT Developer Conference, Oct 2005

Copyright  2005 Symbian Software Ltd. 2 Background Symbian joined the Eclipse Foundation as an Add-in Provider in March 2005 Since then we have made some contributions to CDT, in particular to the MBS Carbide.C++ Express Edition is the first Eclipse/CDT- based C++ Development Environment for Symbian OS. This product was co-developed between Symbian and Nokia. Some interesting technology has been developed as part of this co-operation This has been a learning exercise for Symbian Symbian would like to take on more responsibility in the CDT community

Copyright  2005 Symbian Software Ltd. 3 The Proposal Symbian donate the Template Engine to CDT Symbian would become code committer for the Template Engine Time-scales for CDT 3.1 look too tight, but for CDT 3.2 they look achievable

Copyright  2005 Symbian Software Ltd. 4 Symbian Internal Status In principle agreement to the proposal by Symbian management team Legal process to donate code to CDT has been started  Formal approval from Symbian legal team and management still needed  Full-time role for committer yet to be created  Some technical issues to be resolved (more details later) … Dependencies, © of files, Java v5 compliant code … Most tests use Rational Functional Tester … Could be resolved after donation or as pre-requisite

Copyright  2005 Symbian Software Ltd. 5 Template Engine - Overview Data driven UI generator and processing mechanism Base classes for wizards that interface with the Template Engine Template Test Wizard to aid development of Templates Main Symbian Use-case are: … Creation of projects with content (individual ones or groups of projects) … Adding resources to the workspace Extension points to: … Associate templates with a wizard … Add new processes to the process mechanism … Future: Add new UI controls or layouts to the UI generator

Copyright  2005 Symbian Software Ltd. 6 What is a Template? A set of sources and binaries in a directory Including a directory structure Source files may contain macros, e.g. $(baseName), that are replaced during processing of the template A Template Descriptor file that describes the … User Interface … Processes to be performed on files within the template

Copyright  2005 Symbian Software Ltd. 7 UI Generation UI organized in pages … Currently only simple pages supported with list layout supported … Help, Description, Icon, etc. UI Elements consist of … Label, Description, Input Validation, Default Value, etc. … UI Control (7 different ones) Each UI Element maps onto a macro that can be used in the processing mechanism Architected to be extensible

Copyright  2005 Symbian Software Ltd. 8 Processed files, project properties, etc. The Processing Mechanism - Overview Generated UI Pages Description of Processes in Template Descriptor: (1) Processes can use macros and files from template as arguments (2) Processes are added through an extension point (3) Processes can be executed conditionally Macro Value Store A wizard may move values provided by custom wizard pages, e.g. from CProjectPlatformPage, into the value store Sources and binaries in template Processes executed in order as defined in Template Descriptor

Copyright  2005 Symbian Software Ltd. 9 The Processing Syntax - Sample … Macro from outside the Template Engine Macro from generated UI Apply macro processing to the source file itself. Refers to process that add files to a project.

Copyright  2005 Symbian Software Ltd. 10 Adding Processes Processes are added through an extension point Process signatures are defined in extension point Processes implement an abstract base class, called ProcessRunner The class must marshal arguments from the Template Descriptor (via ProcessArgument[]) to the function that implements the process Arguments can be integral types (simple), structured types (complex) and arrays of both.

Copyright  2005 Symbian Software Ltd. 11 Wizard Base Classes Generic Template driven wizards (TemplateDrivenWizard) Wizard where a Template is chosen from a list (TemplatesChoiceWizard) Both wizards allow for insertion of custom wizard pages (not generated) before and after generated pages A wizard page which enables choosing templates (TemplateListSelectionPage) … Filtering can be applied to only show templates that are relevant for a particular wizard

Copyright  2005 Symbian Software Ltd. 12 Adding Templates Templates added through an extension point Templates are associated to specific wizards Templates can be filtered on … … Arbitrary patterns … On project type, for project wizards

Copyright  2005 Symbian Software Ltd. 13 Extra Functionality Test Wizard to make it easier to develop, validate and test templates A facility to share template values between templates, including a preference page to edit these values … Useful for © notices, author name and other entries that may be shared between Templates

Copyright  2005 Symbian Software Ltd. 14 Potential Technical Issues Heavy dependency on Java v5.0 syntax, in particular … typesafe collection class syntax … Java v5.0 iterator syntax Small extent of dependency on other Symbian components © notices in header files and some branding in UIs Most tests are performed using Rational Functional Tester Template Test Wizard is not of product quality (currently only used as internal tool) MBS Wizard Pages not designed to be incorporated into other wizards  hard to use MBS wizards with Template Engine wizard base classes

Copyright  2005 Symbian Software Ltd. 15 Demo…