libcellml Documentation

Size: px
Start display at page:

Download "libcellml Documentation"

Transcription

1 libcellml Documentation Release 0.1 David Nickerson, Randall Britten August 27, 2014

2

3 Contents 1 Introducing the libcellml project The motivation for the libcellml project Status of CellML Expected availability libcellml Roadmap High level objectives Environment Milestone 0: setting up development environment (timeframe: 8 working days) Milestone 1: starting to get useful code (timeframe:? months) Milestone 2: toward simulation support (timeframe:? months) Milestone 3: functional library for tool developers (timeframe:? months) Milestone 4: advanced capabilities (timeframe:? months) Milestone 5: broadening accessibility (timeframe:? months) libcellml Object Model Introduction Preamble Overview of object model Model class Details for variable object model Encapsulation Units of measure Imports Stand-alone methods Todo Indices and tables 15 i

4 ii

5 Contents: Contents 1

6 2 Contents

7 CHAPTER 1 Introducing the libcellml project Randall Britten, 27 August 2014 The libcellml project aims to provide a library for working with CellML, focussed on CellML 1.2, but with limited support for older formats (i.e. CellML 1.0 and 1.1). 1.1 The motivation for the libcellml project A fresh start at creating core software support for tool developers that would like to make use of the CellML standard in their tools. LibCellML will be implemented in a manner that makes it easier and more natural to work with than the previous CellML API project. Some further information is available in the libcellml Roadmap. 1.2 Status of CellML 1.2 There is not yet a document that represents CellML 1.2 will differ from the previous version. However, the following are good sources for indicating what CellML 1.2 might look like: 1. Starting point document for editorial board working draft. This currently describes CellML 1.1 minus reactions. The aim is to incrementally edit this with version history mapping to the relevant tracker items so that a good provenance record is available. 2. An reporting on the planning for CellML 1.2 at the 2012 CellML workshop 3. A rendering of one proposal from previous work towards a draft of CellML 1.2 that was done before the editorial board process was in place. Note however that this assumes the use of MathML 3. In conjunction with this, there is this draft of a secondary specification which captures the types of models usually represented using previous versions of CellML. The editorial board plans to use some of the text from these drafts. 1.3 Expected availability At this stage, it has been decided to undertake the libcellml project based on rough time estimates only, hence there is very little certainty yet as to when the first versions that are practically useful will be available. The libcellml project will aim to deliver some functionality as early as possible. An iterative development methodology will aim to provide updated versions with additional functionality regularly. Again, please see libcellml Roadmap. 3

8 4 Chapter 1. Introducing the libcellml project

9 CHAPTER 2 libcellml Roadmap David Nickerson, 9 June 2014 Contributions from Alan Garny, Jonathan Cooper, Mike Cooling, Tommy Yu, Hugh Sorby, Randall Britten and the CellML Community but no time yet for full consensus. These requirements and milestones are derived from the CellML API May 2014 Requirements collected from the CellML community, with input from the primary target users (application developers) and the CellML Editorial Board. Previous editorial board discussions have also been incorporated into this roadmap. Clearly the milestones defined below are to be worked on in numerical order and previous milestones will be completed before work on subsequent milestones begins. Each milestone may consist of several releases and future requirements may impact the design and implementation of earlier releases of libcellml. Major changes in the API will be accepted upto the release of libcellml version Contents libcellml Roadmap High level objectives Environment * Requirements Milestone 0: setting up development environment (timeframe: 8 working days) Milestone 1: starting to get useful code (timeframe:? months) Milestone 2: toward simulation support (timeframe:? months) Milestone 3: functional library for tool developers (timeframe:? months) Milestone 4: advanced capabilities (timeframe:? months) Milestone 5: broadening accessibility (timeframe:? months) 2.1 High level objectives 1. Focus on CellML 1.2 and beyond. 1. The implementation of libcellml should be driven by the requirements for supporting 1.2 and future versions. 2. Implementing support for core+secondary specs is likely to be a big challenge for libcellml. 1. libcellml should be designed to support the core spec with the flexibility for extra restrictions/constraints coming from the secondary specification. 2. multiple secondary specifications could be used in one model. 5

10 3. secondary specifications may exist for a period of time before they are integrated or consolidated into a new CellML version (if at all, there is still a lot to learn about how secondary specifications will evolve) 1. libcellml should always be able to import earlier version models. 2. To begin with, libcellml must be able to export 1.2 models to 1.1 (probably using API marked as deprecated from the beginning and removed once Milestone 3 is achieved). 1. Develop the libcellml API as work progresses through the milestones outlined below. 2.2 Environment This section will specify the environment for the development of libcellml. GitHub to host the primary libcellml source repository and issue tracker under the CellML organisation (editorial board members) Development language: C++ with SWIG bindings Build: CMake for generating cross-platform build rules Test: Using Buildbot on the BaTS to run continuous integration testing Test: Unit testing to use gtest Documentation: Written in re-structured text. Documentation: API and source code examples will be documented using c++-style doxygen comments Requirements Documentation: Made available on readthedocs.org. readthedocs uses Sphinx for generating documentation. Development: Agile and test driven development where: Functionality more important than API stability in early releases. Release early and often Development: Code review prior to acceptance into the primary repository using the pull request feature on GitHub Development: Objectives are added and broken down into incremental tasks Development: A single task should be no more than two weeks Development: The next objective to be worked on is discussed and agreed with the community before work is started on an objective We should avoid using non-standard system libraries unless there is a compelling reason. Once features are available the API can be fine tuned in consultation with the CellML community. 2.3 Milestone 0: setting up development environment (timeframe: 8 working days) To be completed on Tuesday 2nd September Share an UML-esque document with the community via github describing CellML specific object model. 6 Chapter 2. libcellml Roadmap

11 The form of the API to libcellml should not be dictated by the XML serialisation but by the objects tool developers desire to work with. 2. Setup the cross platform build and test environment using the ABI s build and test server (BaTS) Builds required: Windows 64 bit, OSX 10.9, Ubuntu bit 3. Document the development process/workflow How we are to implement agile and test driven development How code reviews are done 2.4 Milestone 1: starting to get useful code (timeframe:? months) 1. Create a CellML 1.2 model from scratch and save it to XML (a) create a new model, add imports, components, variables, and math. (b) the first test case? 2. Load a CellML 1.2 model, make changes, save it. (a) ability to preserve underlying XML structure/ordering for documents read in and written out. 3. Load a CellML 1.2 model and validate it (a) this is important to get out early as it will help make sure the normative specification is complete and sensible. (b) will ensure we can test models as we work on getting the specification completed (c.f. the error ridden examples from 1.0 and 1.1 specifications). (c) includes proper units validation of the mathematics. (d) libcellml should have a validation framework based on the core specification and then secondary specs can add their specific rules 4. for 1.2 this is mainly the mathematics, so core validation can probably validate the model but need the actual restricted subset of mathml from the secondary spec is needed to fully validate units consistency. 5. Import CellML 1.0/1.1 models. 6. Export to CellML 1.1 in order to use model in existing tools (e.g., simulation, annotation, NeSI), preserving model and XML structure/ordering/modularity where possible. 7. Platform support: OS X, Linux, Windows (a) native installers (using CPack, pip) (b) easy to setup build environment (good documentation) 8. Language support: C++, Python, Java, Matlab 9. Documentation available (a) API (b) Tutorials/documented code examples (c) Integrating libcellml into various common IDEs (Visual Studio, Eclipse, Qt Creator, NetBeans... ) 2.4. Milestone 1: starting to get useful code (timeframe:? months) 7

12 2.5 Milestone 2: toward simulation support (timeframe:? months) 1. Conversion to intermediate representation (a) Conversion to CellMLstructureless mathematics (just the maths) into an intermediate representation that can be transformed / analysed by other tools. With units. (b) Ability to maintain the CellML structure (as much as possible), perhaps via object annotation (e.g., COR) (c) Will form the basis for tools using libcellml to perform numerical simulation. 2. Improved support for model authoring/editing/manipulation (a) Provide an events system to monitor changes in the model (b) provide access to data contained in CellML models in external namespaces (RDF, extensions, etc). 3. Documentation, documentation, documentation. 2.6 Milestone 3: functional library for tool developers (timeframe:? months) 1. Establish the process/api required to generate procedural code from the intermediate representation (a) Generic code vs solver specific code. (b) Could be a role for being informed from SED-ML what solver is to be used and customising generated code appropriately. (c) Would be a tool sitting on top of libcellml, not directly part of it. 2. Being able to run simulations with CellML 1.2 (a) while not directly part of libcellml, helping tool developers get to the point where they can execute simulations is critically important. (b) CellML 1.2 will not be released until we can do this (in addition to the other requirements above) 2.7 Milestone 4: advanced capabilities (timeframe:? months) 1. High order model manipulation (recall discussion with Andrew McCulloch at the 8th workshop) (a) again, outside core libcellml, but helping tool developers provide these kinds of services is very important. 2.8 Milestone 5: broadening accessibility (timeframe:? months) 1. Support for more platforms (a) Android, ios 2. and languages (a) JS, C#/.NET, C, Fortran[ XX] 8 Chapter 2. libcellml Roadmap

13 CHAPTER 3 libcellml Object Model Randall Britten, 26 August Introduction The object model is (currently) a very high level conceptual design. The focus has been on a design to support the initial use case from the roadmap (i.e. Create model, save as XML. An isvalid method does not yet exist in the design, since the validate use case follows later). 3.2 Preamble UML images are created using Eclipse/Papyrus. Some detail may not show in the diagrams, or be explained in this text, so if you are in doubt, please refer to the model details in Eclipse/Papyrus. Collections are often indicated as an association from one class to another (or the same class if the containment is recursive) on a class diagram. At this stage, methods for adding and removing from the collection are omitted from the diagram. Often, some of the member operations and properties of a class are hidden on some of the diagrams on which it appears. Also, a class may be shown multiple times on the same diagram. Remember to pay attention to the arrows indicating navigability of associations, as well as the cardinality of the association ends. It was realised recently that some cases where UML classes have been specified should perhaps be interfaces. 3.3 Overview of object model Shown in this overview: 1. A model has a collection of components and a collection of units. 2. A component has a collection of variables, and a collection of Maths objects. This design does not yet have any details for how maths is represented, it will probably be the abstract syntax tree (AST) of the MathML. 3. A component also has a collection of the units defined within the component. 9

14 3.4 Model class 1. getxml returns the XML serialisation for the model as text (alternate representations should be considered, e.g. AST or DOM). 2. addimport creates the Import object with just the URL provided as a string. 3.5 Details for variable object model 1. Variables may be real or boolean. (Real is taken to mean that the codomain is real. Thus state variables are treated as real variables, even though they are actually real valued functions of the variable of integration (VOI). Constant real values fall into this category (i.e. real is isomorphic to () -> reals, where () is the nullary Cartesian product). 2. Only real variables have units. 3. Variables have a collection (which may be empty) of the variables to which they are connected. Note that this is not normalised at this conceptual level, (i.e. From A you can see B in the list of connected variables, and from B you can see A in the set of connected variables. Nevertheless, the implementation is likely to be normalised, and the XML representation likewise will have a normalised representation, where a connection element indicates that A is connected to B. 3.6 Encapsulation 1. A component object has a collection of components that are encapsulated by it. This is recursive. Note: the design allows for cycles, but the spec does not. 10 Chapter 3. libcellml Object Model

15 3.6. Encapsulation 11

16 3.7 Units of measure 1. The base class has a property for the unit name, and a boolean flag to indicate whether the unit is built-in. 2. Units may be either base units or derived units. 3. A derived unit has a collection of UnitsReference objects that represent the definition of the derived unit. 3.8 Imports 1. The component class has a subtype for imported components. 2. An imported component s local name is the stored by the inherited name attribute, the name of the component in the imported file is stored in the remotename attribute. 3.9 Stand-alone methods Methods not shown on UML yet, but would be useful. 1. getbuiltinunits() : [Unit] - returns a collection of the built-in units Todo 1. Some documentation of classes, operations etc in this document probably belong as documentation in the Papyrus model, and eventually as the Doxygen comments on the C++ code, Python docs, Java docs etc. 2. Details of math representation an utilities 3. Details of XML representation and utilities 12 Chapter 3. libcellml Object Model

17 4. Change classes to interfaces where appropriate Todo 13

18 14 Chapter 3. libcellml Object Model

19 CHAPTER 4 Indices and tables genindex modindex search 15

CellML Specification Documentation

CellML Specification Documentation CellML Specification Documentation Release The CellML Editorial Board July 23, 2014 Contents 1 Definitions 3 2 General matters 5 2.1 CellML and XML............................................ 5 2.2 Equivalent

More information

About the Edinburgh Pathway Editor:

About the Edinburgh Pathway Editor: About the Edinburgh Pathway Editor: EPE is a visual editor designed for annotation, visualisation and presentation of wide variety of biological networks, including metabolic, genetic and signal transduction

More information

PROJECT DOCUMENTATION WITH ENTERPRISE ARCHITECT

PROJECT DOCUMENTATION WITH ENTERPRISE ARCHITECT PROJECT DOCUMENTATION WITH ENTERPRISE ARCHITECT How to organize project documentation with Enterprise Architect. By Amir Firdus (www.firdus.com) March 2010 Overview It is not an easy step to go from reading

More information

Outline. Background. Motivation. Developer meetings. Meeting outcome. Marcus Oskarsson Page 2

Outline. Background. Motivation. Developer meetings. Meeting outcome. Marcus Oskarsson Page 2 1 Outline Background Motivation Developer meetings Meeting outcome Page 2 UI API - Background Matias gave a talk less is more at the last meeting (http://mxcube.github.io/mxcube/doc/meetings_2018_diamond/mxcubemeeting_dls_lessismore.pdf)

More information

libsbml An Overview and Brief Tutorial Benjamin J. Bornstein 1,2 Jet Propulsion Laboratory, Machine Learning Systems

libsbml An Overview and Brief Tutorial Benjamin J. Bornstein 1,2 Jet Propulsion Laboratory, Machine Learning Systems libsbml An Overview and Brief Tutorial Benjamin J. Bornstein 1,2 1 Jet Propulsion Laboratory, Machine Learning Systems 2 California Institute of Technology Presented at the 7 th Forum on Software Platforms

More information

Recalling the definition of design as set of models let's consider the modeling of some real software.

Recalling the definition of design as set of models let's consider the modeling of some real software. Software Design and Architectures SE-2 / SE426 / CS446 / ECE426 Lecture 3 : Modeling Software Software uniquely combines abstract, purely mathematical stuff with physical representation. There are numerous

More information

Meeting Minutes of Jakarta EE Steering Committee Meeting on September 4 Attendees:

Meeting Minutes of Jakarta EE Steering Committee Meeting on September 4 Attendees: Meeting Minutes of Jakarta EE Steering Committee Meeting on September 4 Attendees: Fujitsu: Kenji Kazumura, Mike Denicola IBM: Dan Bandera Oracle: Will Lyons Payara: Steve Millidge Red Hat: Mark Little

More information

Python simple arp table reader Documentation

Python simple arp table reader Documentation Python simple arp table reader Documentation Release 0.0.1 David Francos Nov 17, 2017 Contents 1 Python simple arp table reader 3 1.1 Features.................................................. 3 1.2 Usage...................................................

More information

xmljson Documentation

xmljson Documentation xmljson Documentation Release 0.1.9 S Anand Aug 01, 2017 Contents 1 About 3 2 Convert data to XML 5 3 Convert XML to data 7 4 Conventions 9 5 Options 11 6 Installation 13 7 Roadmap 15 8 More information

More information

Unit 6 - Software Design and Development LESSON 1 INTRODUCTION

Unit 6 - Software Design and Development LESSON 1 INTRODUCTION Unit 6 - Software Design and Development LESSON 1 INTRODUCTION What is covered in this session Introduction to unit and reference sources Schedule for assignments Introduction From this unit the learner

More information

Workshop Data Modelling [en]

Workshop Data Modelling [en] Workshop Data Modelling [en] Thorsten Reitz, wetransform INSPIRE and Beyond 2018 24.05.2018 Wetransform GmbH - Why do we create data models at all? - What processes can we use to create models? - What

More information

AADL Graphical Editor Design

AADL Graphical Editor Design AADL Graphical Editor Design Peter Feiler Software Engineering Institute phf@sei.cmu.edu Introduction An AADL specification is a set of component type and implementation declarations. They are organized

More information

Shouldly Documentation

Shouldly Documentation Shouldly Documentation Release 2.6.0 Dave Newman, Xerxes Battiwalla, Anthony Egerton, Peter van der Jan 25, 2018 Contents 1 ShouldBe 3 1.1 Objects.................................................. 3 1.2

More information

Introduction to Java. Lecture 1 COP 3252 Summer May 16, 2017

Introduction to Java. Lecture 1 COP 3252 Summer May 16, 2017 Introduction to Java Lecture 1 COP 3252 Summer 2017 May 16, 2017 The Java Language Java is a programming language that evolved from C++ Both are object-oriented They both have much of the same syntax Began

More information

Preface A Brief History Pilot Test Results

Preface A Brief History Pilot Test Results Preface A Brief History In Fall, 2005, Wanda Dann and Steve Cooper, originators of the Alice approach for introductory programming (in collaboration with Randy Pausch), met with Barb Ericson and Mark Guzdial,

More information

Django-CSP Documentation

Django-CSP Documentation Django-CSP Documentation Release 3.0 James Socol, Mozilla September 06, 2016 Contents 1 Installing django-csp 3 2 Configuring django-csp 5 2.1 Policy Settings..............................................

More information

Outline. S: past, present and future Some thoughts. The 80s. Interfaces - 60s & 70s. Duncan Temple Lang Department of Statistics UC Davis

Outline. S: past, present and future Some thoughts. The 80s. Interfaces - 60s & 70s. Duncan Temple Lang Department of Statistics UC Davis S: past, present and future Some thoughts Duncan Temple Lang Department of Statistics UC Davis Outline Good idea that was either taken up or missed. Interfaces Thoughts on how S evolved and what implications

More information

Introduction to Java Programming

Introduction to Java Programming Introduction to Java Programming Lecture 1 CGS 3416 Spring 2017 1/9/2017 Main Components of a computer CPU - Central Processing Unit: The brain of the computer ISA - Instruction Set Architecture: the specific

More information

manifold Documentation

manifold Documentation manifold Documentation Release 0.0.1 Open Source Robotics Foundation Mar 04, 2017 Contents 1 What is Manifold? 3 2 Installation 5 2.1 Ubuntu Linux............................................... 5 2.2

More information

JUCE TUTORIALS. INTRO methodology how to create a GUI APP and how to create a Plugin.

JUCE TUTORIALS. INTRO methodology how to create a GUI APP and how to create a Plugin. JUCE TUTORIALS INTRO methodology how to create a GUI APP and how to create a Plugin. Install Juice and Xcode (or other IDE) Create a project: GUI Application Select platform Choose Path, Name, Folder Name

More information

12 The PEPA Plug-in for Eclipse

12 The PEPA Plug-in for Eclipse 12 The PEPA Plug-in for Eclipse In this lecture note we introduce the tool support which is available when modelling with PEPA. Undertaking modelling studies of any reasonable size is only possible if

More information

GNU Radio Technical Update

GNU Radio Technical Update GNU Radio Technical Update Johnathan Corgan GRCON17 GRCON17 GNU GNU Radio Radio Technical Technical Update Update September September 2017 2017 Topics Release 3.8 Features and capabilities Milestones and

More information

Goals for this lecture. Lecture 4 Getting Started with ITK! Getting help. Assignments. Assignments, cont. Grading of assignments

Goals for this lecture. Lecture 4 Getting Started with ITK! Getting help. Assignments. Assignments, cont. Grading of assignments Goals for this lecture Lecture 4 Getting Started with ITK! Methods in Medical Image Analysis - Spring 2018 16-725 (CMU RI) : BioE 2630 (Pitt) Dr. John Galeotti Compile, compile, compile Learn how to use

More information

Self-test Programming Fundamentals

Self-test Programming Fundamentals Self-test Programming Fundamentals Document: e0824test.fm 16 January 2018 ABIS Training & Consulting Diestsevest 32 / 4b B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION TO THE SELF-TEST PROGRAMMING

More information

Evolutionary Architecture and Design

Evolutionary Architecture and Design Evolutionary Architecture and Design Pradyumn Sharma pradyumn.sharma@pragatisoftware.com www.twitter.com/pradyumnsharma 1 What is Software Architecture? Structure of a system, comprising software elements,

More information

Architecture and Design Evolution

Architecture and Design Evolution Architecture and Design Evolution Pradyumn Sharma pradyumn.sharma@pragatisoftware.com www.twitter.com/pradyumnsharma 1 What is Software Architecture? Structure of a system, comprising software elements,

More information

ANGULAR 2.X,4.X + TYPESRCIPT by Sindhu

ANGULAR 2.X,4.X + TYPESRCIPT by Sindhu ANGULAR 2.X,4.X + TYPESRCIPT by Sindhu GETTING STARTED WITH TYPESCRIPT Installing TypeScript Compiling the code Building a simple demo. UNDERSTANDING CLASSES Building a class Adding properties Demo of

More information

THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS

THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS LOGISTICS HW5 due today Project presentation on 12/6 Review for final on 12/6 2 EXAMPLE: NPM https://twitter.com/garybernhardt/status/1067111872225136640

More information

Table of Contents EVALUATION COPY

Table of Contents EVALUATION COPY Table of Contents Introduction... 1-2 A Brief History of Python... 1-3 Python Versions... 1-4 Installing Python... 1-5 Environment Variables... 1-6 Executing Python from the Command Line... 1-7 IDLE...

More information

Windows Presentation Foundation Visual Studio.NET 2008

Windows Presentation Foundation Visual Studio.NET 2008 Windows Presentation Foundation Visual Studio.NET 2008 Course 6460 - Three Days - Instructor-led - Hands on This three-day instructor-led course provides students with the knowledge and skills to build

More information

Nirvana Documentation

Nirvana Documentation Nirvana Documentation Release 0.0.1 Nick Wilson Nov 17, 2017 Contents 1 Overview 3 2 Installation 5 3 User Guide 7 4 Developer Guide 9 5 Sitemap 11 5.1 User Guide................................................

More information

INTRODUCTION TO THE COURSE

INTRODUCTION TO THE COURSE 1 INTRODUCTION TO THE COURSE KOM3191 Object-Oriented Programming 2 Outline Computer Organization Machine Languages, Assembly Languages and High-Level Languages History of C++ C++ Development Environment

More information

Installation Instructions

Installation Instructions Installation Instructions Last updated: 08 May 2017 Contents 1. Introduction... 3 2. Windows Installation... 3 2.1. Installing Dictionary App Builder... 3 2.2. Installing Java SE Development Kit (JDK)...

More information

Biocomputing II Coursework guidance

Biocomputing II Coursework guidance Biocomputing II Coursework guidance I refer to the database layer as DB, the middle (business logic) layer as BL and the front end graphical interface with CGI scripts as (FE). Standardized file headers

More information

How Can a Tester Cope With the Fast Paced Iterative/Incremental Process?

How Can a Tester Cope With the Fast Paced Iterative/Incremental Process? How Can a Tester Cope With the Fast Paced Iterative/Incremental Process? by Timothy D. Korson Version 7.0814 QualSys Solutions 2009 1 Restricted Use This copyrighted material is provided to attendees of

More information

CS 315 Software Design Homework 3 Preconditions, Postconditions, Invariants Due: Sept. 29, 11:30 PM

CS 315 Software Design Homework 3 Preconditions, Postconditions, Invariants Due: Sept. 29, 11:30 PM CS 315 Software Design Homework 3 Preconditions, Postconditions, Invariants Due: Sept. 29, 11:30 PM Objectives Defining a wellformed method to check class invariants Using assert statements to check preconditions,

More information

CSCU9T4: Managing Information

CSCU9T4: Managing Information CSCU9T4: Managing Information CSCU9T4 Spring 2016 1 The Module Module co-ordinator: Dr Gabriela Ochoa Lectures by: Prof Leslie Smith (l.s.smith@cs.stir.ac.uk) and Dr Nadarajen Veerapen (nve@cs.stir.ac.uk)

More information

24 th Annual Research Review

24 th Annual Research Review 24 th Annual Research Review April 4-6 2017 Towards Better Understanding of Software Quality Evolution Through Commit-Impact Analysis Pooyan Behnamghader USC CSSE pbehnamg@usc.edu Commit-Impact Analysis

More information

Introduction to IRQA 4

Introduction to IRQA 4 Introduction to IRQA 4 Main functionality and use Marcel Overeem 1/7/2011 Marcel Overeem is consultant at SpeedSoft BV and has written this document to provide a short overview of the main functionality

More information

Cross-Platform Data Models and API Using grpc

Cross-Platform Data Models and API Using grpc Cross-Platform Data Models and API Using grpc Sebastian Hagedorn, Felix Lamouroux Outline 1. Motivation & Goals 2. Choosing the Right Cross-Platform Technology 3. Introduction to Protocol Buffers and grpc

More information

Programming Languages 2nd edition Tucker and Noonan"

Programming Languages 2nd edition Tucker and Noonan Programming Languages 2nd edition Tucker and Noonan" " Chapter 1" Overview" " A good programming language is a conceptual universe for thinking about programming. " " " " " " " " " " " " "A. Perlis" "

More information

Software Development Fundamentals (SDF)

Software Development Fundamentals (SDF) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Software Development Fundamentals (SDF) Fluency in the process of software development is a prerequisite to the study of most

More information

CSCI B522 Lecture 11 Naming and Scope 8 Oct, 2009

CSCI B522 Lecture 11 Naming and Scope 8 Oct, 2009 CSCI B522 Lecture 11 Naming and Scope 8 Oct, 2009 Lecture notes for CS 6110 (Spring 09) taught by Andrew Myers at Cornell; edited by Amal Ahmed, Fall 09. 1 Static vs. dynamic scoping The scope of a variable

More information

Visual Studio 2015: Windows Presentation Foundation (using VB.NET Language) Training Course Outline

Visual Studio 2015: Windows Presentation Foundation (using VB.NET Language) Training Course Outline Visual Studio 2015: Windows Presentation Foundation (using VB.NET Language) Training Course Outline 1 Visual Studio 2015: Windows Presentation Foundation Program Overview This Four-day instructor-led course

More information

Developing large-scale Applications in Python

Developing large-scale Applications in Python Developing large-scale Applications in Python Lessons learned from 10 years of Python Application Design EuroPython Conference 2005 Göteborg, Sweden Marc-André Lemburg EGENIX.COM Software GmbH Germany

More information

ECE 122. Engineering Problem Solving with Java

ECE 122. Engineering Problem Solving with Java ECE 122 Engineering Problem Solving with Java Lecture 14 Array Wrap-Up Outline Problem: How can I store information in arrays without complicated array management? The Java language supports ArrayLists

More information

SOFTWARE LIFE-CYCLE MODELS 2.1

SOFTWARE LIFE-CYCLE MODELS 2.1 SOFTWARE LIFE-CYCLE MODELS 2.1 Outline Software development in theory and practice Software life-cycle models Comparison of life-cycle models 2.2 Software Development in Theory Ideally, software is developed

More information

Graphiti Release Review

Graphiti Release Review Graphiti 0.10.0 Release Review Planned Review Date: June 2013 Communcation Channel: eclipse.graphiti Christian Brand Matthias Gorning Tim Kaiser Jürgen Pasch Félix Velasco Michael Wenz 1 Introduction Graphiti

More information

Application documentation Documentation

Application documentation Documentation Application documentation Documentation Release 0.1 Daniele Procida June 14, 2016 Contents 1 Tutorial 3 1.1 Setting up................................................. 3 1.2 Configuring the documentation.....................................

More information

Game Server Manager Documentation

Game Server Manager Documentation Game Server Manager Documentation Release 0.1.1+0.gc111f9c.dirty Christopher Bailey Dec 16, 2017 Contents 1 Game Server Manager 3 1.1 Requirements............................................... 3 1.2

More information

KNSP: A Kweelt - Niagara based Quilt Processor Inside Cocoon over Apache

KNSP: A Kweelt - Niagara based Quilt Processor Inside Cocoon over Apache KNSP: A Kweelt - Niagara based Quilt Processor Inside Cocoon over Apache Xidong Wang & Shiliang Hu {wxd, shiliang}@cs.wisc.edu Department of Computer Science, University of Wisconsin Madison 1. Introduction

More information

Nexus Builder Developing a Graphical User Interface to create NeXus files

Nexus Builder Developing a Graphical User Interface to create NeXus files Nexus Builder Developing a Graphical User Interface to create NeXus files Lilit Grigoryan, Yerevan State University, Armenia September 9, 2014 Abstract This report describes a project which main purpose

More information

This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units.

This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units. This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units. Introduction Overview Advancements in technology are

More information

OUTCOME OF THE 3 RD MEETING OF TARGET CONSOLIDATION CONTACT GROUP (TCCG)

OUTCOME OF THE 3 RD MEETING OF TARGET CONSOLIDATION CONTACT GROUP (TCCG) 05 June 2018 OUTCOME OF THE 3 RD MEETING OF TARGET CONSOLIDATION CONTACT GROUP (TCCG) 24 April 2018 09:30 to 17:00 held at the premises of the European Central Bank, Sonnemannstraße 20, meeting room MB

More information

SWAD-Europe Deliverable 3.18: RDF Query Standardisation

SWAD-Europe Deliverable 3.18: RDF Query Standardisation SWAD-Europe Deliverable 3.18: RDF Query Standardisation Project name: Semantic Web Advanced Development for Europe (SWAD-Europe) Project Number: IST-2001-34732 Workpackage name: 3 Dissemination and Exploitation

More information

pyldavis Documentation

pyldavis Documentation pyldavis Documentation Release 2.1.2 Ben Mabey Feb 06, 2018 Contents 1 pyldavis 3 1.1 Installation................................................ 3 1.2 Usage...................................................

More information

COURSE 20480B: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3

COURSE 20480B: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3 ABOUT THIS COURSE This course provides an introduction to HTML5, CSS3, and JavaScript. This course helps students gain basic HTML5/CSS3/JavaScript programming skills. This course is an entry point into

More information

Tango Controls Kernel meeting September ESRF

Tango Controls Kernel meeting September ESRF Tango Controls Kernel meeting 19-20 September 2016 @ ESRF Background A Tango Controls kernel meeting was held from the 19-20 September at the ESRF. Present were representatives of the contributor member

More information

BridgePoint Roadmap Possibilities

BridgePoint Roadmap Possibilities BridgePoint Roadmap Possibilities September 2017 BridgePoint Roadmap - Background Need for excellent xtuml tools forever Balancing Needs of existing projects Community growth Technology convergence Vision

More information

chatterbot-weather Documentation

chatterbot-weather Documentation chatterbot-weather Documentation Release 0.1.1 Gunther Cox Nov 23, 2018 Contents 1 chatterbot-weather 3 1.1 Installation................................................ 3 1.2 Example.................................................

More information

Data Science with Python Course Catalog

Data Science with Python Course Catalog Enhance Your Contribution to the Business, Earn Industry-recognized Accreditations, and Develop Skills that Help You Advance in Your Career March 2018 www.iotintercon.com Table of Contents Syllabus Overview

More information

Index. business modeling syntax 181 business process modeling 57 business rule 40

Index. business modeling syntax 181 business process modeling 57 business rule 40 OCL.book Page 203 Tuesday, July 22, 2003 9:48 PM Index Symbols OclAny, of 167 = OclAny, of 167 @pre 34, 86, 155 ^ 34, 156 ^^ 157 A abstract syntax 93 accumulator 153 action in statechart 56 activity

More information

Python AMT Tools Documentation

Python AMT Tools Documentation Python AMT Tools Documentation Release 0.8.0 Sean Dague Jan 14, 2018 Contents 1 Python AMT Tools 3 1.1 Background................................................ 3 1.2 Hardware that includes AMT......................................

More information

Open World Forum 2013

Open World Forum 2013 Open World Forum 2013 Bareos is a pure Open Source fork of the bacula.org project Agenda Bareos introduction New features Open source strategy and community contribution Bareos Introduction Fork started

More information

APACHE SLING & FRIENDS TECH MEETUP BERLIN, SEPTEMBER APACHE JACKRABBIT: BASIC CONCEPTS Christian Riemath, Igor Sechyn

APACHE SLING & FRIENDS TECH MEETUP BERLIN, SEPTEMBER APACHE JACKRABBIT: BASIC CONCEPTS Christian Riemath, Igor Sechyn APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2012 APACHE JACKRABBIT: BASIC CONCEPTS Christian Riemath, Igor Sechyn About the speakers Igor Sechyn Senior CMS Developer Christian Riemath Senior

More information

HTML 5: Fact and Fiction Nathaniel T. Schutta

HTML 5: Fact and Fiction Nathaniel T. Schutta HTML 5: Fact and Fiction Nathaniel T. Schutta Who am I? Nathaniel T. Schutta http://www.ntschutta.com/jat/ @ntschutta Foundations of Ajax & Pro Ajax and Java Frameworks UI guy Author, speaker, teacher

More information

Agenda. Summary of Previous Session. XML for Java Developers G Session 7 - Main Theme XML Information Rendering (Part II)

Agenda. Summary of Previous Session. XML for Java Developers G Session 7 - Main Theme XML Information Rendering (Part II) XML for Java Developers G22.3033-002 Session 7 - Main Theme XML Information Rendering (Part II) Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical

More information

The PEPA Eclipse Plug-in

The PEPA Eclipse Plug-in The PEPA Eclipse Plug-in A modelling, analysis and verification platform for PEPA Adam Duguid, Stephen Gilmore, Michael Smith and Mirco Tribastone Wednesday 01 December 2010 Abstract: This user manual

More information

BUILDING AND LEVERAGING A CROSS PLATFORM VFX/ ANIMATION DEVELOPMENT ENVIRONMENT. by Colin Doncaster ( )

BUILDING AND LEVERAGING A CROSS PLATFORM VFX/ ANIMATION DEVELOPMENT ENVIRONMENT. by Colin Doncaster ( ) BUILDING AND LEVERAGING A CROSS PLATFORM VFX/ ANIMATION DEVELOPMENT ENVIRONMENT by Colin Doncaster ( colin@peregrinelabs.com ) INTRODUCTION AND BRIEF OVERVIEW OF THE TALK making life easy via a simple

More information

Programming in HTML5 with JavaScript and CSS3

Programming in HTML5 with JavaScript and CSS3 Programming in HTML5 with JavaScript and CSS3 20480B; 5 days, Instructor-led Course Description This course provides an introduction to HTML5, CSS3, and JavaScript. This course helps students gain basic

More information

MARS AREA SCHOOL DISTRICT Curriculum TECHNOLOGY EDUCATION

MARS AREA SCHOOL DISTRICT Curriculum TECHNOLOGY EDUCATION Course Title: Java Technologies Grades: 10-12 Prepared by: Rob Case Course Unit: What is Java? Learn about the history of Java. Learn about compilation & Syntax. Discuss the principles of Java. Discuss

More information

The story so far. Elements of Programming Languages. Pairs in various languages. Pairs

The story so far. Elements of Programming Languages. Pairs in various languages. Pairs Elements of Programming Languages Lecture 6: Data structures James Cheney University of Edinburgh October 9, 2017 The story so far We ve now covered the main ingredients of any programming language: Abstract

More information

Installation Instructions

Installation Instructions Installation Instructions Reading App Builder: Installation Instructions 2017, SIL International Last updated: 1 December 2017 You are free to print this manual for personal use and for training workshops.

More information

Luckily, our enterprise had most of the back-end (services, middleware, business logic) already.

Luckily, our enterprise had most of the back-end (services, middleware, business logic) already. 2 3 4 The point here is that for real business applications, there is a connected back-end for services. The mobile part of the app is just a presentation layer that is unique for the mobile environment.

More information

cssselect Documentation

cssselect Documentation cssselect Documentation Release 1.0.3 Simon Sapin Dec 27, 2017 Contents 1 Quickstart 3 2 User API 5 2.1 Exceptions................................................ 5 3 Supported selectors 7 4 Customizing

More information

LXI Reference Design Overview

LXI Reference Design Overview LXI Reference Design Overview Mar 9, 2015 Edition Notice of Rights/Permissions: All rights reserved. This document is the property of the LXI Consortium and may be reproduced, but unaltered, in whole or

More information

Python Project Example Documentation

Python Project Example Documentation Python Project Example Documentation Release 0.1.0 Neil Stoddard Mar 22, 2017 Contents 1 Neilvana Example 3 1.1 Features.................................................. 3 1.2 Credits..................................................

More information

Reading How the Web Works

Reading How the Web Works Reading 1.3 - How the Web Works By Jonathan Lane Introduction Every so often, you get offered a behind-the-scenes look at the cogs and fan belts behind the action. Today is your lucky day. In this article

More information

10 - Integrated Development Environments

10 - Integrated Development Environments 10 - Integrated Development Environments Motivation Writing a toy application with a text editor is comparatively easy. Developing a large software system with just a text editor is much more difficult

More information

Developing Applications for ios

Developing Applications for ios Developing Applications for ios Lecture 1: Mobile Applications Development Radu Ionescu raducu.ionescu@gmail.com Faculty of Mathematics and Computer Science University of Bucharest Evaluation Individual

More information

Fundamentals of STEP Implementation

Fundamentals of STEP Implementation Fundamentals of STEP Implementation David Loffredo loffredo@steptools.com STEP Tools, Inc., Rensselaer Technology Park, Troy, New York 12180 A) Introduction The STEP standard documents contain such a large

More information

Core Membership Computation for Succinct Representations of Coalitional Games

Core Membership Computation for Succinct Representations of Coalitional Games Core Membership Computation for Succinct Representations of Coalitional Games Xi Alice Gao May 11, 2009 Abstract In this paper, I compare and contrast two formal results on the computational complexity

More information

CSc 372. Comparative Programming Languages. 2 : Functional Programming. Department of Computer Science University of Arizona

CSc 372. Comparative Programming Languages. 2 : Functional Programming. Department of Computer Science University of Arizona 1/37 CSc 372 Comparative Programming Languages 2 : Functional Programming Department of Computer Science University of Arizona collberg@gmail.com Copyright c 2013 Christian Collberg 2/37 Programming Paradigms

More information

Response to the. ESMA Consultation Paper:

Response to the. ESMA Consultation Paper: Response to the ESMA Consultation Paper: Draft technical standards on access to data and aggregation and comparison of data across TR under Article 81 of EMIR Delivered to ESMA by Tahoe Blue Ltd January

More information

CTI Higher Certificate in Information Systems (Internet Development)

CTI Higher Certificate in Information Systems (Internet Development) CTI Higher Certificate in Information Systems (Internet Development) Module Descriptions 2015 1 Higher Certificate in Information Systems (Internet Development) (1 year full-time, 2½ years part-time) Computer

More information

Business Process Testing

Business Process Testing Business Process Testing Software Version: 12.55 User Guide Go to HELP CENTER ONLINE http://admhelp.microfocus.com/alm/ Document Release Date: August 2017 Software Release Date: August 2017 Legal Notices

More information

challenges in domain-specific modeling raphaël mannadiar august 27, 2009

challenges in domain-specific modeling raphaël mannadiar august 27, 2009 challenges in domain-specific modeling raphaël mannadiar august 27, 2009 raphaël mannadiar challenges in domain-specific modeling 1/59 outline 1 introduction 2 approaches 3 debugging and simulation 4 differencing

More information

CSCE 315 Fall Team Project 3

CSCE 315 Fall Team Project 3 CSCE 315 Fall 2017 Team Project 3 Project Goal Your team is to build a system that puts together different existing web components in an application that provides a quality user interface to the joined

More information

ReST 2000 Roy Fielding W3C

ReST 2000 Roy Fielding W3C Outline What is ReST? Constraints in ReST REST Architecture Components Features of ReST applications Example of requests in REST & SOAP Complex REST request REST Server response Real REST examples REST

More information

2-Days Workshop on Simulation of TCP Variants using NS-3

2-Days Workshop on Simulation of TCP Variants using NS-3 2-Days Workshop on Simulation of TCP Variants using NS-3 jointly organized by Poornima University, Jaipur & IIIT-Kota(Mentored by MNIT,Jaipiur) Rahul Hada rahul.hada@poornima.edu.in Ashutosh Kumar ashutosh.kumar@poornima.edu.in

More information

XML Parsers. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University

XML Parsers. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University XML Parsers Asst. Prof. Dr. Kanda Runapongsa Saikaew (krunapon@kku.ac.th) Dept. of Computer Engineering Khon Kaen University 1 Overview What are XML Parsers? Programming Interfaces of XML Parsers DOM:

More information

CTI Short Learning Programme in Internet Development Specialist

CTI Short Learning Programme in Internet Development Specialist CTI Short Learning Programme in Internet Development Specialist Module Descriptions 2015 1 Short Learning Programme in Internet Development Specialist (10 months full-time, 25 months part-time) Computer

More information

Version Control Systems

Version Control Systems Nothing to see here. Everything is under control! September 16, 2015 Change tracking File moving Teamwork Undo! Undo! UNDO!!! What strategies do you use for tracking changes to files? Change tracking File

More information

Week. Lecture Topic day (including assignment/test) 1 st 1 st Introduction to Module 1 st. Practical

Week. Lecture Topic day (including assignment/test) 1 st 1 st Introduction to Module 1 st. Practical Name of faculty: Gaurav Gambhir Discipline: Computer Science Semester: 6 th Subject: CSE 304 N - Essentials of Information Technology Lesson Plan Duration: 15 Weeks (from January, 2018 to April, 2018)

More information

JIRA Studio Use Cases and Tutorial basis

JIRA Studio Use Cases and Tutorial basis JIRA Studio Use Cases and Tutorial basis Analysis of usefulness of JIRA Studio Eclipse tool-chain Tolga Tuncbilek, Elisa Kallio, Shiyuan Wang, Viktor Porvaznik Table of Contents 1 Introduction... 3 2 Data

More information

CIM University: Track 3 Tools Session CIM User s Group June 13, 2017

CIM University: Track 3 Tools Session CIM User s Group June 13, 2017 CIM University: Track 3 Tools Session CIM User s Group June 13, 2017 Margaret Goodrich Principal Consultant, Project Consultants, LLC Email: margaret@j-mgoodrich.com Phone: 903-477-7176 1 Using CIMTool

More information

XML: Extensible Markup Language

XML: Extensible Markup Language XML: Extensible Markup Language CSC 375, Fall 2015 XML is a classic political compromise: it balances the needs of man and machine by being equally unreadable to both. Matthew Might Slides slightly modified

More information

BSIF. A Freeware Framework for. Integrated Business Solutions Modeling. Using. Sparx Systems. Enterprise Architect

BSIF. A Freeware Framework for. Integrated Business Solutions Modeling. Using. Sparx Systems. Enterprise Architect 33 Chester Rd Tawa 5028 Wellington New Zealand P: (+64) 4 232-2092 m: (+64) 21 322 091 e: info@parkconsulting.co.nz BSIF A Freeware Framework for Integrated Business Solutions Modeling Using Sparx Systems

More information

What Is Computer Science? The Scientific Study of Computation. Expressing or Describing

What Is Computer Science? The Scientific Study of Computation. Expressing or Describing What Is Computer Science? The Scientific Study of Computation CMPSCI 630: Programming Languages Introduction Spring 2009 (with thanks to Robert Harper) Expressing or Describing Automating Understanding

More information

HAProxy log analyzer Documentation

HAProxy log analyzer Documentation HAProxy log analyzer Documentation Release 0.1 Gil Forcada Nov 08, 2017 Contents 1 HAProxy log analyzer 3 1.1 Tests and coverage............................................ 3 1.2 Documentation..............................................

More information