Rapid Prototyping with APICES

Similar documents
APICES - Rapid Application Development with Graph Pattern

Co-Design Tool Construction Using APICES

GENVIS - Model-Based Generation of Data Visualizers

A Generator for Graph-Based Design Representations *

Model Driven Development with xtuml and BridgePoint

Compositional Model Based Software Development

Towards Support for Design Description Languages in EDA Frameworks *

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

There are a few important ways that Smalltalk is different then other languages:

Call: SharePoint 2013 Course Content:35-40hours Course Outline

PlanAhead Release Notes

Minsoo Ryu. College of Information and Communications Hanyang University.

Self-test Programming Fundamentals

Scripted Components: Problem. Scripted Components. Problems with Components. Single-Language Assumption. Dr. James A. Bednar

Scripted Components Dr. James A. Bednar

Moby/plc { Graphical Development of. University of Oldenburg { Department of Computer Science. P.O.Box 2503, D Oldenburg, Germany

OpenAccess based architecture for Neolinear s Rapid Analog Design Flow

Object-Oriented Design

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

Michel Heydemann Alain Plaignaud Daniel Dure. EUROPEAN SILICON STRUCTURES Grande Rue SEVRES - FRANCE tel : (33-1)

DIGITAL DESIGN TECHNOLOGY & TECHNIQUES

Experiences with Open Inventor. 1 Introduction. 2 HEP Visualization in an Object-Oriented Environment

Customized UI Development Through Context-Sensitive GUI Patterns

A UML-based Methodology for Hypermedia Design

SYLLABUS CHAPTER - 1 [SOFTWARE REUSE SUCCESS FACTORS] Reuse Driven Software Engineering is a Business

CHAPTER 5 GENERAL OOP CONCEPTS

Software Engineering Principles

Simulating Task Models Using Concrete User Interface Components

Configuration Management for Component-based Systems

Digital Hardware-/Softwaresystems Specification

Expert Layout Editor. Technical Description

Component-Based Software Engineering TIP

Galaxy Custom Designer SE The New Choice in Custom Schematic Editing and Simulation Environment

Prog. Logic Devices Schematic-Based Design Flows CMPE 415. Designer could access symbols for logic gates and functions from a library.

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1

Windows PowerShell Scripting and Toolmaking

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms?

An Introduction to Software Engineering. David Greenstein Monta Vista High School

Enterprise Architect Training Courses

Allegro Design Authoring

JQueryScapes: customizable Java code perspectives

Windows PowerShell Scripting and Toolmaking

CSCI Object Oriented Design: Frameworks and Design Patterns George Blankenship. Frameworks and Design George Blankenship 1

Philip Andrew Simpson. FPGA Design. Best Practices for Team-based Reuse. Second Edition

If attending this course via Extended Classroom., the course requires you to have a dual screen setup.

SE 2730 Final Review

Vivado Design Suite User Guide

TITUS A Graphical Design Methodology for Embedded Automotive Software

An Enumerative Variability Modelling Tool for Constructing. Whole Software Product Families

Design of Generic Web Based Automation Framework for Network Testing

Product Range 3SL. Cradle -7

COMP 6471 Software Design Methodologies

AADL Graphical Editor Design

Introduction to Software Engineering p. 1 The Scope of Software Engineering p. 3 Historical Aspects p. 4 Economic Aspects p. 7 Maintenance Aspects p.

IBPS SO Examination 2013 IT Officer Professional Knowledge Question Paper

Prototyping for usability engineering

EB GUIDE Studio and EB GUIDE Speech Extension. Dan Henderlong June 2016

Custom WaveView ADV Complete Transistor-Level Analysis and Debugging Environment

SYSPRO s Fluid Interface Design

Open Reuse of Component Designs in OPM/Web

A Model-Based Reference Workflow for the Development of Safety-Related Software

Modelling and Verifying of e-commerce Systems

An Annotation Tool for Semantic Documents

A Deterministic Flow Combining Virtual Platforms, Emulation, and Hardware Prototypes

Park Sung Chul. AE MentorGraphics Korea

Learn to develop.net applications and master related technologies.

Schematic/Design Creation

SCRIPTO. A New Tool for Customizing LS-PREPOST

High Quality 4D Development. David Adams

Matthew Baker. Visualisation of Electrophoresis Gels using TEX

7 th International Conference on DEVELOPMENT AND APPLICATION SYSTEMS S u c e a v a, R o m a n i a, M a y 27 29,

The COSA Framework. A Cognitive System Architecture with its implementation based on a CORBA-wrapped SOAR process

PragmaDev. change request. Emmanuel Gaudin. PragmaDev ITU-T SG17 change request Grimstad June 24,

Vivado Design Suite User Guide

IRQA General Information:

Course 55039A: Windows PowerShell Scripting & Toolmaking

Galaxy Custom Designer LE Custom Layout Editing

Unleashing the Power of the Command-Line Interface. Jeremy W. Webb UC Davis VLSI Computation Laboratory

Incorporating Design Schedule Management into a Flow Management System*

Describing Computer Languages

CASE TOOLS LAB VIVA QUESTION

Software Architectures. Lecture 6 (part 1)

Altium Designer Viewer. Contents

Visual Intranet Interfaces and Architecture of Unified Information Space in the Concept of Virtual University at ZSU

Ontology-Based Configuration of Construction Processes Using Process Patterns

Creating and Running Mobile Agents with XJ DOME

Prescriptive Design Patterns Proactive Guidance for Real-World Systems. Kevin Mullet REACTOR Experience Design

Laker Custom Layout Automation System

Object-Oriented Design

Experiences from implementing CANDLE using the VARKON CAD system

Applying Experiences with Declarative Codifications of Software Architectures on COD

efmea RAISING EFFICIENCY OF FMEA BY MATRIX-BASED FUNCTION AND FAILURE NETWORKS

INSTITUTE OF AERONAUTICAL ENGINEERING

Object Oriented Methods with UML. Introduction to Design Patterns- Lecture 8

Software Engineering Chap.7 - Design and Implementation

Micro Focus Net Express

Acknowledgements...xvii. Foreword...xix

An Intelligent Assistant for Computer-Aided Design Extended Abstract

electronic lab 11 Fedora Electronic Lab empowers hardware engineers and universities with opensource solutions for micro nano electronics engineering.

Re-using Data Mining Workflows

Transcription:

Rapid Prototyping with APICES Ansgar Bredenfeld GMD Institute for System Design Technology D-53754 Sankt Augustin, Germany bredenfeld@gmd.de http://set.gmd.de/apices APICES is a tool for very rapid development of software prototypes and applications. It offers special support for technical applications dealing with network-like structures. Network-like structures are modelled with predefined object-oriented building blocks so-called graph pattern. Software development with APICES starts with an object-oriented model of the application. This application model is the input for our code generators. They generate a core of the application consisting of a class library (C++) with an optional interface to an object-oriented database. This core is automatically embedded in the script language Tcl and may be extended with application code in C++ or Tcl. Many technical applications deal with network-like data. Some examples are schematic editors (block diagrams), simulators (component networks), digital signal processing tools (signal and data flow graphs), hardware/software co-design tools (process networks, control data flow graphs), or workflow applications (task graphs). Our tool is tailored to support rapid prototyping of such applications. APICES is based on state-of-the-art object-oriented modelling constructs - object types, inheritance, data encapsulation, typed attributes, different types of relationships (association, aggregation). Each modelling construct has a set of generic manipulation methods, e.g. each relationship type has a set of access methods which allows to manipulate, access and navigate through the elements of a relationship. To this extend, APICES is comparable to off-the-shelf modelling tools with code generation capability. 1. Graph Pattern In addition to object-oriented modelling constructs, APICES offers re-usable building blocks to model complex network-like structures. These building blocks are called graph pattern and are the specific strength of our tool. Graph pattern allow very rapid prototyping of technical applications. We support various variants of graph pattern. They cover simple, flat network structures as well as more complex hierarchical network structures. Each graph pattern variant has a set of methods which are usually needed to construct, destruct, access, navigate or transform network structures. Graph pattern methods offer functionality for composition, for connectivity, for hierarchy handling, and for simulation.

context A α α b c b α B β c A macro α component instance α component interface D α β β c β α C α β a macro interface a macro instance internal channel external channel port Figure 1: Elements of Graph Pattern The basic elements of graph pattern are components. Components have a list of directed ports and a behaviour. Ports are elements of the interface of a component. Ports may be inputs, outputs or bidirectional. Ports are connected with each other by (multi-)channels. Flat network structures The most simple graph pattern variant offers components needed to model flat, non hierarchical network structures. An example is a netlist without hierarchy which is the core structure of many simulators. Components which describe interfaces are called component interfaces. They are type descriptions (prototype components, template components). Component interfaces are terminal elements, i.e., they can not be further decomposed. Component instances are occurrences of component interfaces. The component interface determines the structure and the behaviour of a component instance. All instances of an interface have the same port structure. In addition, the behaviour of an instance is given by the interface. Component instances are connected at their ports with channels. Hierarchical network structures A more complex graph pattern variant provides elements to model hierarchical network structures. Hierarchy is modelled by a macro mechanism. Macros aggregate and encapsulate several component instances. They contain the component instances with their ports and the channel connections between them. Macros are associated with two specialized components - macro interfaces and macro instances - to construct hierarchies. The macro interface is a component which describes the external (formal) port structure of the macro. The macro interface defines the structure and the behaviour of a macro instance. Macro instances are occurrences of macro interfaces. Hierarchical structures are constructed by recursively creating macro instances within macros. All macros, which belong to a hierarchy, are aggregated by a context. Figure 1 shows an example of graph pattern elements and their contextual relationships. Ports of component instances and macro instances are omitted to improve legibility.

2. APICES tools The graphical model editor (figure 2) allows to specify and document the core model of an application. Graph pattern are used to model network-like structures typically needed by a technical application. Graph pattern are reused by binding template object types of a graph pattern variant to the object types of the application. The code generators of APICES are able to generate the following implementations from this high-level application model. C++ class library The model of the application is compiled to a C++ class library. The class library contains a C++ class hierarchy implementing the model and access methods which are needed to handle objects, attributes, relationships and the elements of graph pattern. This library is the core of the application and can directly be linked to existing or new C++ programs. Optionally, an interface to an object-oriented database is generated. Extended script language Tcl The methods of the generated C++ library are automatically embedded in the script language Tcl. This embedding offers all generated methods for interactive and interpreted access. This is an important feature for rapid prototyping and allows to develop algorithms first in Tcl and then migrate to C++ if necessary. view of object type module object type of application GUI-box specification graph pattern to model netlist Figure 2: Application model of a simple tool operating on netlists including the GUI specification of the tool

Graphical interface The model editor not only allows to specify the model of the application but also a graphical user interface for the modelled application. The user interface is primarily used during rapid prototyping for test and debug purposes. Nevertheless, it can be used as graphical end-user interface for an application. The left part of figure 2 shows a specification of a box. A box is a rectangular part of the canvas at the user interface. Each box is able to display several objects as object views. The mapping between object types and object views is done via the model editor. The visualization of object views is configurable. If graph pattern variants have to be visualized, a predefined default view for each element of a graph pattern is generated. gate_type module net port gate Figure 3: Application GUI generated from model in figure 2 showing instances of graph pattern elements. The generated graphical user interface offers context sensitive menus for all displayed objects and the elements of graph pattern. In addition, it provides a trace mechanism which allows to record user interactions. This allows to replay user interactions and offers convenient support for debugging even in a very complex object population. We offer a simple mechanism to add application specific extensions in C++ or Tcl to the rapid prototype. An example of the default graphical user interface generated from the model in figure 2 is depicted in figure 3.

3. APICES application APICES raises productivity of application development in the technical domain. Originally, it has been a research prototype to offer automated support for the construction and integration of electronic CAD tools [1][2] and digital signal processing tools [3]. The following sections sketch how APICES can be used and what its advantages are. Modelling and documentation The model editor of APICES supports early phases in the application development process, since it allows to specify the core structure of an application graphically and in an intuitive way. Graph pattern are powerful generic components which are designed for reusability. The support of network-like structures makes modelling of technical applications easy. The HTML-documentation generator allows to browse the application model, its user-defined comments and the specification of generated methods. The documentation serves as reference in a development team and allows to track model evolution in a convenient manner. Rapid prototyping and application development APICES supports very rapid prototyping by generating an application core and a corresponding prototype from the application model. Since the generated prototype consists of a C++ library embedded in the script language Tcl, all generated methods of the application core are offered at an interpreted interface. Prototyping of algorithms can be done by accessing the application core via Tcl-procedures. The generated graphical user interface of the prototype offers demonstrators after a very short time. They can be used to discuss design alternatives or model modifications. Changes in the application model are cheap because the effort to align the prototype is minimal. The generative approach followed by APICES allows very short re-design cycles and fosters incremental application design. APICES is running under Solaris and Linux. Further actual information is available from the web (http://set.gmd.de/apices). 4. References [1] Ansgar Bredenfeld, Raul Camposano, Tool Integration and Construction Using Generated Graph-Based Design Representations, in Proceedings of the 32nd ACM/IEEE Design Automation Conference (DAC 95), pp. 94-99, 1995 [2] Ansgar Bredenfeld, Automatisierte Integration von Entwurfswerkzeugen für integrierte Schaltungen, Dissertation, GMD-Bericht Nr. 273, München-Wien, R. Oldenbourg Verlag, 1996, ISBN 3-486-24087-0 (in German) [3] Ansgar Bredenfeld, APICES - Rapid Application Development with Graph Pattern", in Proceedings of the 9th IEEE International Workshop on Rapid System Prototyping (RSP 98), Leuven, Belgium, pp. 25-30, June 3-5, 1998