Generating ADL Descriptions ADL Module for Together 6.x Massimo Marino Lawrence Berkeley National Laboratory.

Slides:



Advertisements
Similar presentations
Page 1 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG© März 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG To Boldly Go......
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance.
IEC Substation Configuration Language and Its Impact on the Engineering of Distribution Substation Systems Notes Dr. Alexander Apostolov.
Inheritance Definition Relationships Member Access Control Data Encapsulation Overloading vs. Overriding Constructors & Destructors.
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 5 Architecture-Driven Component Development.
Copyright  2005 Symbian Software Ltd. 1 Lars Kurth Technology Architect, Core Toolchain The Template Engine CDT Developer Conference, Oct 2005.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
1 Software Requirements Specification Lecture 14.
Adding metadata to intranet documents Please note: this is a temporary test document for use in internal testing only.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns VI Composite, Iterator, and Visitor Patterns.
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
Configuration Management
© Tally Solutions Pvt. Ltd. All Rights Reserved 1 Cataloguing Sales Promotions in Shoper 9 POS August 2010.
C++ fundamentals.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
5 Copyright © 2009, Oracle. All rights reserved. Defining ETL Mappings for Staging Data.
Object-Oriented Analysis and Design
® 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.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Concordia University Department of Computer Science and Software Engineering Click to edit Master title style ADVANCED PROGRAMING PRACTICES API documentation.
Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps.
Apache Chemistry face-to-face meeting April 2010.
Lecture Roger Sutton CO530 Automation Tools 5: Class Libraries and Assemblies 1.
© 2012 LogiGear Corporation. All Rights Reserved Robot framework.
Automatic Generation of Web Interfaces From User Interaction Diagrams Filipe Bianchi Damiani Patrícia Vilain Federal University of Santa Catarina (UFSC)
Spraying The Natural Way of Creating Graphiti Jos Warmer, Independent Karsten Thoms,
Javadoc. The Plan ● What is Javadoc? ● Writing Javadoc comments ● Using the Javadoc tool ● Demo ● Practice.
Understand Application Lifecycle Management
CSC 142 B 1 CSC 142 Java objects: a first view [Reading: chapters 1 & 2]
The Generic Gaming Engine Andrew Burke Advisor: Prof. Aaron Cass Abstract Games have long been a source of fascination. Their inherent complexity has challenged.
Oracle Data Integrator Procedures, Advanced Workflows.
CASE Tools Union Palenshus. In the early days… ► Software engineering tools consisted solely of translators, compilers, assemblers, linkers, loaders,
Getting Started with OPC.NET OPC.NET Software Client Interface Client Base Server Base OPC Wrapper OPC COM Server Server Interface WCF Alternate.
Javadoc A very short tutorial. What is it A program that automatically generates documentation of your Java classes in a standard format For each X.java.
JavaDoc and Contracts Spring Documenting Contracts with JavaDoc Contract model for methods Preconditions Postconditions JavaDoc Industry standard.
Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope.
CSC 142 B 1 CSC 142 Java objects: a first view [Reading: chapters 1 & 2]
Design and Implementation of a Rationale-Based Analysis Tool (RAT) Diploma thesis from Timo Wolf Design and Realization of a Tool for Linking Source Code.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
M1G Introduction to Programming 2 5. Completing the program.
1 Chapter 5: Defining Classes. 2 Basics of Classes An object is a member of a class type What is a class? Fields & Methods Types of variables: –Instance:
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Design Reuse Earlier we have covered the re-usable Architectural Styles as design patterns for High-Level Design. At mid-level and low-level, design patterns.
Design of an Integrated Robot Simulator for Learning Applications Brendon Wilson April 15th, 1999.
Programming HeuristicLab Basics A. Scheibenpflug Heuristic and Evolutionary Algorithms Laboratory (HEAL) School of Informatics/Communications/Media, Campus.
M1G Introduction to Programming 2 3. Creating Classes: Room and Item.
Renesas Technology America Inc. 1 SKP8CMINI Tutorial 2 Creating A New Project Using HEW.
Summer Project Marama2008 By Robert and Johnson. What is Marama? Marama is an Eclipses based toolset permits rapid specification of notational elements,
Chapter 11: Advanced Inheritance Concepts. Objectives Create and use abstract classes Use dynamic method binding Create arrays of subclass objects Use.
® IBM Software Group © 2007 IBM Corporation Module 3: Creating UML Diagrams Essentials of Modeling with IBM Rational Software Architect, V7.5.
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
T Project Review Muuntaja I1 Iteration
1 Unified Modeling Language Michael K. Wildes University of California, Riverside – Extension Program Presentation 2.
ATLAS Data Dictionary A. Bazan, T. Bouedo, P. Ghez, T. Le Flour, S. Lieunard M. Marino, C. Tull.
Documenting Software Architectures. Outline  Introduction  Uses of Architectural Documentation  Views  Choosing the Relevant Views  Documenting a.
SUBCLASSES - JAVA. The Purpose of Subclasses Class Farm String getOwner() void setOwner(String s) int getSize() void setSize(int s) Class DairyFarm String.
Today Javadoc. Packages and static import. Viewing API source code. Upcoming Topics: –protected access modifier –Using the debugger in Eclipse –JUnit testing.
© 2010 IBM Corporation RESTFul Service Modelling in Rational Software Architect April, 2011.
Notices Assn 2 is due tomorrow, 7pm. Moodle quiz next week – written in the lab as before. Everything up to and including today’s lecture: Big Topics are.
INTRODUCTION TO ANDROID. Slide 2 Introduction I take a top-down approach to describing an application’s anatomy.
Model Based Engineering Environment Christopher Delp NASA/Caltech Jet Propulsion Laboratory.
About the Presentations
Data Modeling II XML Schema & JAXB Marc Dumontier May 4, 2004
METHODS AND BEHAVIORS AKEEL AHMED.
Defining Classes and Methods
Review CSE116 2/21/2019 B.Ramamurthy.
Java objects: a first view
PASSI (Process for Agent Societies Specification and Implementation)
Presentation transcript:

Generating ADL Descriptions ADL Module for Together 6.x Massimo Marino Lawrence Berkeley National Laboratory

Generating ADL Descriptions Outline Together 6.x - Modules & APIs ADL Module - a cure for the YALL syndrome Threefold process Wrap up

Generating ADL Descriptions Together 6.x Modules & APIs Modules Enhancements which externally use Together's internal functionality Collection of Java classes that implement interfaces from Together APIs API is composed of a three-tier interface that enables varying degrees of access to the native infrastructure. – The interfaces are very simply named: Interactive Data Environment (IDE) Read-Write Interface (RWI) Source Code Interface (SCI) The ADL module makes use of the first two API groups. The third would allow reverse engineering of adl files.

Generating ADL Descriptions Threefold process The module has three phases Startup (automatic) Selection Generation

Generating ADL Descriptions Startup At startup the ADL module Configures and enhances the Property Inspector for – Classes – Attributes – Methods Configures the ADL Diagram properties for ADL (design) classes – ADL keywords for Attributes and Methods (parameters & return values) Allows for mixed content: C++ (rev, eng.) classes and ADL (design only) classes coexistence. Verifies proper context – makes sure that there is a valid project and diagram open

Generating ADL Descriptions Selection The user selects classes to act upon in the Together project. For each selected class the module Gets the array of items that are selected. Set ADL options for: – ADL file generation address – Class declaration – Attributes – Methods If there is a valid selection Each item in the selection is processed: recursively visited by ADLOutVisitor, an instance of the Visitor pattern. The module generates the ADL descriptions in the proper directory

Generating ADL Descriptions Generation When the user launches the adl descriptions generation on selected classes The ADL module visitor – Recursively visits each element in the tree rooted at the current selection(s) – Associates an adl file as.adl, visits in detail the class and its methods/attributes, generates the corresponding adl descriptions – Generation can be configurable: the descriptive header can be made user defined overriding the default.

Generating ADL Descriptions ADL Module Deals with how users describe their data objects in ADL Promotes the use of the Atlas chosen tool Together – Users can describe objects in UML (ADL diagram) from scratch, operate on existing ones (reversed engineered package), or both. Addresses the “Yet Another Language To Learn??????????” – Although ADL is quite a simple language… YALL! – Many C++ objects do exist already. – Promotes standard ADL file – The ADL module allows to go through all these objects and generate all the corresponding ADL in one click. The project file is itself a repository.

Generating ADL Descriptions ADL Module Relevant javadocs are added to the source code reflecting user selections made on ADL properties for reversed engineered classes. Essentially a feedback

Generating ADL Descriptions ADL Module The module has full access to project (package) elements (classes)

Generating ADL Descriptions ADL Module ADL module extracts relevant information and generates the corresponding.adl file Only within ADL enabled classes – Fine grain control: ADL generation for specific attributes and methods Supports external classes Correctly manages #includes, typedefs, attributes dimensions (arrays)

Generating ADL Descriptions Current status Version Covers most ADL keywords Covers all ADL basic types – Attributes – Methods’ parameters and return values Profited from early adopters feedback – Great in spotting peculiar odd behaviors Contributed to reported two Together API bugs (to TogetherSoft support) and documentation inconsistencies

Generating ADL Descriptions