Course "Software Language Engineering"

Total Page:16

File Type:pdf, Size:1020Kb

Course Templates and friends Course "Software Language Engineering" University of Koblenz-Landau Department of Computer Science Ralf Lämmel Software Languages Team © 2012 Ralf Lämmel, Software Language Engineering http://softlang.wikidot.com/course:sle 1 What’s a template? © 2012 Ralf Lämmel, Software Language Engineering http://softlang.wikidot.com/course:sle 2 “Hello World” with StringTemplate in Java String template with one parameter import org.stringtemplate.v4.*; ... ST hello = new ST("Hello, <name>"); hello.add("name", "World"); System.out.println(hello.render()); [http://www.antlr.org/wiki/display/ST4/Introduction, 10 December 2012] © 2012 Ralf Lämmel, Software Language Engineering http://softlang.wikidot.com/course:sle 3 “Hello World” with StringTemplate in C# using Antlr4.StringTemplate; Template hello = new Template("Hello, <name>"); hello.Add("name", "World"); Console.Out.WriteLine(hello.Render()); [http://www.antlr.org/wiki/display/ST4/Introduction, 10 December 2012] © 2012 Ralf Lämmel, Software Language Engineering http://softlang.wikidot.com/course:sle 4 “Hello World” with StringTemplate in Python import stringtemplate4 hello = stringtemplate4.ST("Hello, <name>") hello["name"] = "World" print str(hello.render()) [http://www.antlr.org/wiki/display/ST4/Introduction, 10 December 2012] © 2012 Ralf Lämmel, Software Language Engineering http://softlang.wikidot.com/course:sle 5 Quick summary Exercised concepts A template is a declarative, Literal text parametrized, and executable Place holder for text description of a text generator. Other concepts Conditionals, loops over template “context” Expression holes for computing output ... Find a proper definition that fits into the context of this lecture. © 2012 Ralf Lämmel, Software Language Engineering http://softlang.wikidot.com/course:sle 6 Motivation: templates in web development © 2012 Ralf Lämmel, Software Language Engineering http://softlang.wikidot.com/course:sle 7 Web programming with PHP <htmlhtml> <headhead> <titletitle>HelloWorld WebApp</title/title> </head/head> <bodybody> <?php?php echoecho ''<pp>HelloHello World!World!</p/p>';'; ??> </body/body> </html> HTML with embedded PHP Resulting HTML executed on the web server rendered in the web browser © 2012 Ralf Lämmel, Software Language Engineering http://softlang.wikidot.com/course:sle 8 Web programming with Rails © 2012 Ralf Lämmel, Software Language Engineering http://softlang.wikidot.com/course:sle 9 Web programming with Rails <div class="headline"><h2>101companies Ruby on Rails Web App</h2></div> <div class="content"> <p id="notice"><%= notice %></p> <div class="attr"> <p> <b>Name:</b> <%= @company.name %> </p> </div> <div class="attr"> <p> <b>Departments:</b> </p> <% @company.departments.each do |department| %> "" <p> " <%= link_to department.name, department_path(department) %> "" </p> <% end %> </div> <%= link_to 'Edit', edit_company_path(@company) %> | <%= link_to 'Back', companies_path %> </div> [https://github.com/101companies/101repo/blob/master/contributions/rubyonrails/companies/app/views/companies/show.html.erb] © 2012 Ralf Lämmel, Software Language Engineering http://softlang.wikidot.com/course:sle 10 Web programming with Struts/JSP ... <table id="box-table-a" summary="Employee Pay Sheet" border="1px" width="45%"> <thead> <tr> <th scope="col">Name</th> <th scope="col">Total Salary</th> Use of code delimiters <th scope="col">Cut salaries</th> <th scope="col">Show details</th> (not shown here) and tag </tr> </thead> <tbody> libraries (see prefix s). <s:iterator value="company.depts"> " <tr> " <td><s:property value="name"/></td> " <td><s:property value="total"/></td> ""<td><s:url id="cutURL" action="company.cutSalariesOfDepartment"> "" <s:param name="dptId" value="%{id}"/> <s:param name="cmpId" value="company.id"/> " </s:url> " <s:a href="%{cutURL}">Cut</s:a> </td> ... https://github.com/101companies/101repo/blob/master/contributions/strutsAnnotation/src/main/webapp/WEB-INF/content/company-detail.jsp © 2012 Ralf Lämmel, Software Language Engineering http://softlang.wikidot.com/course:sle 11 “Model to Text” with JET <%@ jet package="generator.website" class="Simple2HTML" imports ="java.util.Iterator org.eclipse.emf.common.util.EList datamodel.website.*;" %> <% Webpage website = (Webpage) argument; %> <html> <head> <title> <%=website.getTitle()%> </title> <meta name="description" content="<%=website.getDescription()%>"> <meta name="keywords" content="<%=website.getKeywords()%>"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> Similar to JSP. Works on top of EMF. <h1> List of Articles Names</h1> <%EList<Article> list = website.getArticles(); for (Iterator<Article> iterator = list.iterator(); iterator.hasNext();) { Article article = iterator.next();%> <b><%=article.getName()%></b> <br> Generative (MDE) approach such that <%}%> </body> a designated class is generated from </html> the template. http://www.vogella.com/articles/EclipseJET/article.html © 2012 Ralf Lämmel, Software Language Engineering http://softlang.wikidot.com/course:sle 12 “Model to Text” with JET import generator.website.Simple2HTML; Import generated class. import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.util.Iterator; import datamodel.website.MyWeb; import datamodel.website.Webpage; Import EMF-based model classes. public class SimpleWebTest { private static String TARGETDIR = "./output/"; public static void main(String[] args) { EMFModelLoad loader = new EMFModelLoad(); MyWeb myWeb = loader.load(); createPages(myWeb); } private static void createPages(MyWeb myWeb) { ... } http://www.vogella.com/articles/EclipseJET/article.html © 2012 Ralf Lämmel, Software Language Engineering http://softlang.wikidot.com/course:sle 13 “Model to Text” with JET ... private static void createPages(MyWeb myWeb) { Simple2HTML htmlpage = new Simple2HTML(); FileWriter output; BufferedWriter writer; for (Iterator<Webpage> iterator = myWeb.getPages().iterator(); iterator .hasNext();) { Webpage page = iterator.next(); System.out.println("Creating " + page.getName()); try { output = new FileWriter(TARGETDIR + page.getName() + ".html"); writer = new BufferedWriter(output); writer.write(htmlpage.generate(page)); writer.close(); } catch (IOException e) { e.printStackTrace(); Actual template processing. } } } } http://www.vogella.com/articles/EclipseJET/article.html © 2012 Ralf Lämmel, Software Language Engineering http://softlang.wikidot.com/course:sle 14 Basic concepts © 2012 Ralf Lämmel, Software Language Engineering http://softlang.wikidot.com/course:sle 15 Template processor @ Wikipedia A template processor (also known as a template engine, template parser or template language) is software or a software component that is designed to combine one or more templates with a data model to produce one or more result documents. [http://en.wikipedia.org/wiki/Template_processor, 10 December 2012] © 2012 Ralf Lämmel, Software Language Engineering http://softlang.wikidot.com/course:sle 16 Template engine @ Wikipedia A (web) template engine is software that is designed to process web templates and content information to produce output web documents. It runs in the context of a template system. [http://en.wikipedia.org/wiki/Template_engine_(web), 10 December 2012] © 2012 Ralf Lämmel, Software Language Engineering http://softlang.wikidot.com/course:sle 17 Actual template engines @ Wikipedia • Genshi • Mako (template A (templating engine) • Apache Velocity language) • Microsoft • ASP.NET H ASP.NET Razor • Thymeleaf • TinyButStrong C • Haml view engine • Toupl • CakePHP • Handlebars • Mustache (template system) (template system) • Twig (template • CCAPS engine) J N • CheetahTemplate V • CodeCharge • JavaServer • Nevow • Text Template Studio Pages O Transformation • CTPP • Jinja (template • Open Power Toolkit D engine) Template • VlibTemplate • JSP Weaver P • Dylan Server W Pages K • PHPRunner • Web template E • Kid (templating S system language) • ERuby • Smarty • WebMacro F L T • FreeMarker • Lithium (PHP • Template Attribute G framework) Language M • Template Toolkit [http://en.wikipedia.org/wiki/Category:Template_engines, 10 December 2012] © 2012 Ralf Lämmel, Software Language Engineering http://softlang.wikidot.com/course:sle 18 Template system @ Wikipedia A web template system is composed of: • A template engine: the primary processing element of the system; • Content resource: any of various kinds of input data streams, such as from a relational database, XMLfiles, LDAP directory, and other kinds of local or networked data; • Template resource: web templates specified according to a template language; [http://en.wikipedia.org/wiki/Web_template_system, 10 December 2012] © 2012 Ralf Lämmel, Software Language Engineering http://softlang.wikidot.com/course:sle 19 Template @ Wikipedia Wikipedia does not define a general concept of template. It does define the notion of a web template: “A web template is a tool used to separate content from presentation in web design, and for mass-production of web documents. It is a basic component of a web template system.Web templates can be used to set up any type of website. In its simplest sense, a web template operates similarly to a form letter for use in setting up a website.” [http://en.wikipedia.org/wiki/Web_template, 10 December 2012] © 2012 Ralf Lämmel, Software Language Engineering http://softlang.wikidot.com/course:sle 20 Template and friends Macros Compile-time meta-programming Run-time meta-programming Staged computation Multi-stage programming ©
Recommended publications
  • Analysis, Design and Development of a Web-Shop Template Using
    Analysis, design and development of a web-shop template using SPHERE.IO e-commerce platform Laura Luiz Escoriza Facultat d’Informàtica de Barcelona (FIB) Universitat Politècnica de Catalunya (UPC) - BarcelonaTech Director: Hajo Eichler Company: commercetools GmbH Advisor: Carles Farré Tost Department: Enginyeria de Serveis i Sistemes d’Informació (ESSI) Master thesis Degree in Informatics Engineering (2003) January 2014 2 3 DADES DEL PROJECTE Títol del projecte: Analysis, design and development of a web-shop template using SPHERE.IO e-commerce platform. Nom de l'estudiant: Laura Luiz Escoriza Titulació: Enginyeria en Informàtica (2003) Crèdits: 37,5 Director: Hajo Eichler Empresa del director: commercetools GmbH Ponent: Carles Farré Tost Departament del ponent: ESSI MEMBRES DEL TRIBUNAL (nom i signatura) 1. President: Antoni Urpí Tubella 2. Vocal: Klaus Gerhard Langohr 3. Secretari: Carles Farré Tost QUALIFICACIÓ Qualificació numèrica: Qualificació descriptiva: Data: 4 5 ABSTRACT In the present thesis a possible next generation of e-commerce solutions with a platform-as-a-service model is presented and analyzed. This generation tries to fill the gap of missing developer-friendly alternatives to build systems with e-commerce components. Current offered solutions are mostly aimed for the comfortable use of designers and other non-technical roles, usually in the shape of out-of-the-box products. These solutions are usually limiting the ability of developers to integrate technologies or build innovative business models, thus sometimes forcing companies to invest in projects that have to be built practically from the start. This document describes the development of the first web-shop built with one of these solutions, SPHERE.IO, an e-commerce platform-as-a-service developed in Berlin by commercetools GmbH.
    [Show full text]
  • Bottle Documentation Release 0.12.19
    Bottle Documentation Release 0.12.19 Marcel Hellkamp Sep 24, 2021 Contents 1 User’s Guide 3 1.1 Tutorial..................................................3 1.2 Configuration (DRAFT)......................................... 23 1.3 Request Routing............................................. 26 1.4 SimpleTemplate Engine......................................... 28 1.5 API Reference.............................................. 32 1.6 List of available Plugins......................................... 45 2 Knowledge Base 49 2.1 Tutorial: Todo-List Application..................................... 49 2.2 Primer to Asynchronous Applications.................................. 64 2.3 Recipes.................................................. 67 2.4 Frequently Asked Questions....................................... 71 3 Development and Contribution 73 3.1 Release Notes and Changelog...................................... 73 3.2 Contributors............................................... 76 3.3 Developer Notes............................................. 78 3.4 Plugin Development Guide....................................... 82 4 License 89 Python Module Index 91 Index 93 i ii Bottle Documentation, Release 0.12.19 Bottle is a fast, simple and lightweight WSGI micro web-framework for Python. It is distributed as a single file module and has no dependencies other than the Python Standard Library. • Routing: Requests to function-call mapping with support for clean and dynamic URLs. • Templates: Fast and pythonic built-in template engine and support for mako,
    [Show full text]
  • FINAL Report-Capstone Project BENOMAR Sarah
    FINAL Report-Capstone Project BENOMAR Sarah Supervised by: Doctor Violetta CAVALLI-SFORZA Approval: SPRING 2016 SCHOOL OF SCIENCE & ENGINEERING – AL AKHAWAYN UNIVE R S I T Y Table of Contents Acknowledgement ................................................................................................................ 3 Abstract ................................................................................................................................ 4 I. Introduction ................................................................................................................... 5 II. Feasibility Study ............................................................................................................ 6 III. Methodology .................................................................................................................. 8 1. Problem Specification ................................................................................................. 8 2. Requirement Specification .......................................................................................... 8 2.1 Functional Requirements ...................................................................................................... 8 2.2 Non-Functional Requirements ...................................................................................... 11 3. Software Selection Criteria ....................................................................................... 12 4. Choice Validation ....................................................................................................
    [Show full text]
  • Minimal Perl for UNIX and Linux People
    Minimal Perl For UNIX and Linux People BY TIM MAHER MANNING Greenwich (74° w. long.) For online information and ordering of this and other Manning books, please visit www.manning.com. The publisher offers discounts on this book when ordered in quantity. For more information, please contact: Special Sales Department Manning Publications Co. Cherokee Station PO Box 20386 Fax: (609) 877-8256 New York, NY 10021 email: [email protected] ©2007 by Manning Publications Co. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in the book, and Manning Publications was aware of a trademark claim, the designations have been printed in initial caps or all caps. Recognizing the importance of preserving what has been written, it is Manning’s policy to have the books we publish printed on acid-free paper, and we exert our best efforts to that end. Manning Publications Co. Copyeditor: Tiffany Taylor 209 Bruce Park Avenue Typesetters: Denis Dalinnik, Dottie Marsico Greenwich, CT 06830 Cover designer: Leslie Haimes ISBN 1-932394-50-8 Printed in the United States of America 12345678910–VHG–1009080706 To Yeshe Dolma Sherpa, whose fortitude, endurance, and many sacrifices made this book possible. To my parents, Gloria Grady Washington and William N. Maher, who indulged my early interests in literature. To my limbic system, with gratitude for all the good times we’ve had together.
    [Show full text]
  • C DEFINES and C++ TEMPLATES Professor Ken Birman
    Professor Ken Birman C DEFINES AND C++ TEMPLATES CS4414 Lecture 10 CORNELL CS4414 - FALL 2020. 1 COMPILE TIME “COMPUTING” In lecture 9 we learned about const, constexpr and saw that C++ really depends heavily on these Ken’s solution to homework 2 runs about 10% faster with extensive use of these annotations Constexpr underlies the “auto” keyword and can sometimes eliminate entire functions by precomputing their results at compile time. Parallel C++ code would look ugly without normal code structuring. Const and constexpr allow the compiler to see “beyond” that and recognize parallelizable code paths. CORNELL CS4414 - FALL 2020. 2 … BUT HOW FAR CAN WE TAKE THIS IDEA? Today we will look at the concept of programming the compiler using the templating layer of C++ We will see that it is a powerful tool! There are also programmable aspects of Linux, and of the modern hardware we use. By controlling the whole system, we gain speed and predictability while writing elegant, clean code. CORNELL CS4414 - FALL 2020. 3 IDEA MAP FOR TODAY History of generics: #define in C Templates are easy to create, if you stick to basics The big benefit compared to Java is that a template We have seen a number of parameterized is a compile-time construct, whereas in Java a generic types in C++, like std::vector and std::map is a run-time construct. The template language is Turing-complete, but computes These are examples of “templates”. only on types, not data from the program (even when They are like generics in Java constants are provided).
    [Show full text]
  • Templates V07 • This Web Site Has 7 Pages
    Web Development Templates V07 • This web site has 7 pages. • Each page has: Templates • Head Section Why? • Body Section • Each Body Section has • Header • Footer • —> • 7 Identical Head Section • 7 Identical Header’s • 7 Identical Footer’s • —> 21 Repeated Sections • Its got its own Wikipedia Page! https://en.wikipedia.org/wiki/Don%27t_repeat_yourself DRY vs WET Don’t Repeat Yourself vs Write Everything Twice OR We Enjoy Typing Single Header + DRY Footer Template • Incorporate the SAME single header/footer into ALL pages • Any changes - made just once in the single header/footer Web Template System A web template system uses a template processor to combine web templates to form finished web pages, possibly using some data source to customize the pages or present a large amount of content on similar-looking pages. It is a web publishing tool present in content management systems, web application frameworks, and HTML editors. https://en.wikipedia.org/wiki/Web_template_system Harp.js • Harp.js is our Template Engine • It ‘serves’ the site • If Request is for ordinary page the page is ‘rendered’ without modification • If Request is for a page that is composed of templates, harp assembles the page and renders the complete page to the browser Lab09 Lab09 • reusable templates included in various pages • reusable layout • reworked pages based WET Version on layout • simplified home page DRY Version • Overall - more files • But less content! Step 1 • Visit: • http://localhost:9000/ • WET (non templated) version of site Step 02 - Header & Footer templates • New folder in project called ‘includes’ • … containing reusable templates ‘_header.ejs’ & ‘_footer.ejs’ • These are exactly the same content as in all our other pages Step 02: index.html • Replace the <header> and <footer> elements with : • These will be ‘included’ in the page when it is rendered via harp.
    [Show full text]
  • Php, Template Et Http
    EPAI, Jérôme Frossard (2016) PHP, TEMPLATE ET HTTP Développer des application Web Notion de template 1 ¨ Un template est modèle de document, c’est-à-dire un document dont la forme est définie, mais dont une partie du contenu est variable. ¨ Pour réaliser les parties variables, on insère dans le texte du document des instructions qui permettront au moteur de template de produire le texte variable. ¨ On utilise généralement des balises telles que <% et %>, pour séparer les instructions que le moteur de template doit interpréter, du texte qu’il doit copier sans changement dans le ou les documents résultants. EPAI, Jérôme Frossard (2016) Notion de moteur de template 2 ¨ Un moteur de templates (template processor) est un programme qui combine un template (modèle) et des données pour produire un ou plusieurs documents. Données ... <html> <body> <h1> Moteur de Documents <?=$titre?> templates résultants </h1> ... Template (patron) ¨ Quelques exemples : ASP.NET, JSP, Apache Velocity EPAI, Jérôme Frossard (2016) PHP, un langage de template ? 3 ¨ Le code PHP peut être intégré dans n’importe quel fichier de texte grâce aux balises PHP (<?php et ?>) ¨ À l’exécution, les balises PHP sont remplacées par le texte affiché par le code. ¨ PHP peut donc être utiliser comme un langage de template et son interpréteur comme un moteur de template. EPAI, Jérôme Frossard (2016) Exemple de template PHP 4 <!DOCTYPE html> <html> Fichier guestbook.php <head> <?php <title>Livre d'or</title> // inclut le fichier autoload.php qui contient <link rel="stylesheet" href="guestbook.css"> // les fonctions nécessaires au chargement des </head> // classes utilisée dans le script.
    [Show full text]
  • Youbeq Management Platform >
    MSc in Informatics Engineering Internship Final Report YoubeQ Management Platform > Nuno Fauso Da Paixão Khan [email protected] DEI Supervisor: Fernando Barros iNovmapping Supervisor: André Santos Date: 2 July 2013 youbeQ Management Platform Abstract System integration and distributed systems are essential concepts in our current web development era. When relying on these aspects, one must acknowledge the importance of having a system that is mature, secure, reliable and scalable. The internship consists on the development of a management platform, called youbeQadmin, a web based application that integrates and manages youbeQ and Smarturbia, two existing applications developed by the company. These applications, already exist as independent web applications , that are now partially integrated in one single management platform. youbeqAdmin platform manages the youbeQ statistics and Smarturbia content (APPS). It enforces a distributed architecture while allowing the integration of these two modules/applications with the original web applications and with the possibility of easily integrating new modules into the platform in the future. The development of youbeQadmin required significant modifications to Smarturbia, mostly to allow a REST communication between them and to add new features like changing the vehicle color or applying area limits for the user to explore the world. Keywords “youbeQ”, ”Smarturbia”, ”REST”, “Management”, “Web Development”,”DJANGO”, “Web Frameworks”, “youbeQadmin” 1 Index 1 Introduction.....................................................................................................6
    [Show full text]
  • CS 5150 Software Engineering 17. Program Development
    Cornell University Compung and Informaon Science CS 5150 So(ware Engineering 17. Program Development William Y. Arms Integrated Development Environments Basic soware development requires: • text editor (e.g., vi editor for Linux) • compiler for individual files • build system (e.g., make for Linux) Integrated development environments combine: • source code editor • incremental compiler • build automaMon tools • a debugger • and much, much more Integrated Development Environments Integrated Development Environment: Eclipse Eclipse is a modern integrated development environment. It was originally created by IBM’s RaMonal division. There are versions for many languages including Java, C/C++, Python, etc. The Java system provides: • source code editor • debugger • incremental compiler • programming documentaMon • build automaMon tools • version control • XML editor and tools • web development tools Much more is available via plug-ins. 4 Program Design: Integrated Development Environment Integrated development environments provide lile help in designing a program. They assume that you have already have a design: • classes • methods • data structures • interfaces Opons for program design: • program design using modeling tools, such as UML • design while coding: design — code — redesign loop (small programs only) • exisMng frameworks • advanced environments that combine frameworks and development tools It is o(en good to combine aspects of these different approaches. 5 The Design — Code — Redesign Loop If the class structure is straighCorward it may be possible to use the integrated development environment to: • create an outline of the class structure and interfaces • write code • modify the class structure as needed and rework the code as necessary This is only possible with small teams with close communicaMon. The maximum size of program depends on experience of programmer(s) and complexity of the program.
    [Show full text]
  • Payilagam Software Training Institute 2014
    Payilagam Software training institute 2014 Payilagam Software Training Institute, No:4/67E, Vijaya Nagar 3rd Cross Street, Velachery,Chennai – 600042. 044-22592370, 8344777333, 8883775533. Mail: [email protected], Website: www.payilagam.com Content Management System Syllabus Word Press Word Press has a web template system using a template processor. Word Press is a free and open source blogging tool and a content management system (CMS) based on PHP and MySQL, which runs on a web hosting service .Features include a plug-in architecture and a template system. Word Press is the most popular blogging system in use on the Web, at more than 60 million websites. Syllabus: Introduction about cms Introduction about word press Word press installation Favicon Logo Edit footer Menubar User creation Contact form Form Builder Google map Google analytics 1 Payilagam software training institute | www.payilagam.com | 83 44 777 333 | 8883 77 55 33| Payilagam Software training institute 2014 Maintenance mode Working with plugins Working with themes Updation and deletion plugins Upgrade the word press versions Forum Social media buttons Slide show Comments Audio and video file in word press You tube in your word press site Backup Restore Joomla Joomla is a free and open-source content management framework for publishing web content. It is built on a model–view–controller web application framework that can also be used independently. Joomla is written in PHP, uses object-oriented programming (OOP) techniques and software design patterns,
    [Show full text]
  • Cobbler Documentation Release 3.0.1
    Cobbler Documentation Release 3.0.1 Enno Gotthold May 27, 2020 Contents 1 Quickstart 3 1.1 Preparing your OS..........................................3 1.2 Changing settings..........................................3 1.3 DHCP management and DHCP server template...........................4 1.4 Notes on files and directories....................................5 1.5 Starting and enabling the Cobbler service..............................5 1.6 Checking for problems and your first sync..............................5 1.7 Importing your first distribution...................................6 2 Install Guide 9 2.1 Prerequisites.............................................9 2.2 Installation.............................................. 10 2.3 RPM................................................. 10 2.4 DEB................................................. 11 2.5 Relocating your installation..................................... 12 3 Cobbler CLI 13 3.1 General Principles.......................................... 13 3.2 CLI-Commands........................................... 14 3.3 EXIT_STATUS............................................ 24 3.4 Additional Help........................................... 24 4 Cobblerd 25 4.1 Preamble............................................... 25 4.2 Description.............................................. 25 4.3 Setup................................................. 26 4.4 Autoinstallation (Autoyast/Kickstart)................................ 26 4.5 Options................................................ 26 5 Cobbler Configuration
    [Show full text]
  • Xround : a Reversible Template Language and Its Application in Model-Based Security Analysis
    This is a repository copy of XRound : A reversible template language and its application in model-based security analysis. White Rose Research Online URL for this paper: http://eprints.whiterose.ac.uk/54730/ Version: Submitted Version Article: Chivers, Howard Robert orcid.org/0000-0001-7057-9650 and Paige, Richard F. orcid.org/0000-0002-1978-9852 (2009) XRound : A reversible template language and its application in model-based security analysis. Information and Software Technology. pp. 876-893. https://doi.org/10.1016/j.infsof.2008.05.006 Reuse Items deposited in White Rose Research Online are protected by copyright, with all rights reserved unless indicated otherwise. They may be downloaded and/or printed for private study, or other acts as permitted by national copyright laws. The publisher or other rights holders may allow further reproduction and re-use of the full text version. This is indicated by the licence information on the White Rose Research Online record for the item. Takedown If you consider content in White Rose Research Online to be in breach of UK law, please notify us by emailing [email protected] including the URL of the record and the reason for the withdrawal request. [email protected] https://eprints.whiterose.ac.uk/ XRound: A Reversible Template Language and its application in Model-Based Security Analysis Howard Chivers and Richard F. Paige Department of Information Systems, Cranfield University, Shrivenham, UK. Department of Computer Science, University of York, UK. [email protected], [email protected] Limited tool support currently exists for bidirectional Abstract Successful analysis of the models used in Model- transformations; key state of the art is summarised in Driven Development requires the ability to synthesise the Section 2.
    [Show full text]