Testing DSLs How to test DSLs, their IDEs and Programs
|
|
- Brooke Johnson
- 5 years ago
- Views:
Transcription
1 Testing DSLs How to test DSLs, their IDEs and Programs Markus Voelter independent/itemis +Markus Voelter
2 A DSL is a focussed, processable language for describing a specific concern when building a system in a specific domain. The abstractions and notations used are natural/suitable for the stakeholders who specify that particular concern.
3 Limited Expressiveness. Reduced Need For Tests.
4 Constraint Checks. A Form of Test.
5 Test Semantics, not Structure! Example Models Generator Code Based On Test Cases Tests Binary
6 This tests only the generators! Generator Code Model Tests Generator Test Code
7 Separate test models and generated test code Model Generator Code based on tests Test Model (Test Language) Generator Test Code
8 Separate test models and generated test code Model Generator Code Mocks based on tests Test Model (Test Language) Generator Test Code
9 Testing the Language Testing Programs
10 Does the DSL cover cover? the domain it is intended to Build Examples and discuss with Stakeholders.
11 Interview Experts Get Feedback Structure their Knowledge Create Examples Build the Language
12 ? definition process Can the language all of the relevant notation? (Parser Test) Create and maintain example programs and keep trying to parse them
13 /p/xtext-utils/wiki/unit_testing
14 /p/xtext-utils/wiki/unit_testing
15 Do the scopes work?
16 work? Do the constraints and typesystem
17 ? with certain program Are there any error messages associated elements? Create positive and negative examples and check for correct error annotations.
18
19 tests
20 The method fortype( t ) get( index ) inline( line ) withstringfeaturevalue ( n, v ) errorsonly() named( n ) forelement( t, n ) under( t ) under( t, n ) r e t u r n s a n e w IssueCollection that contains only those issues that are attached to an instance of t are at position index in the IssueCollection are in line line in the model file whose feature named n has the value (tostring()) v contains no warnings contains only those issues that are attached to an element with name property value n contains only those issues that are attached to elements of The type method t that have the name sizeis( n s ) contains only those issues whose element has an ancestor of type t oneofthemcontains( t ) contains only those issues whose element has an ancestor of type t named n allofthemcontain( t ) theoneandonlycontain s(t) asserts that t h e s i z e o f t h e c u r r e n t collection is s the collection has any size, and one of the error messages contains the substring t the collection has any size, and all the error messages contains the substring t the collection is of size 1 and the message of the singe error contains the substring t
21
22
23
24
25 ? Do the generators, transformations or interpreters work? Run them; execute test cases against the running code.
26 You can write test cases in the target language manually. Or you can express test cases on the model level
27
28 Interpreting the tests directly in the IDE reduced turn around time.
29 Behavior
30
31 Behavior
32 Behavior
33 Multiple Mappings at the same time L D L x L y L z Similar Semantics?
34 Multiple Mappings at the same time L D T Similar Semantics? L x L y L z T T T all green!
35 Multiple Mappings alternatively, selectably L D Extend L D to include explicit data that determines transformation L x L y L z
36 Multiple Mappings alternatively, selectably T L D TESTING! L x L y L z T T T
37 ? cannot execute the Generators: What do I do if I programs?
38 ? cannot execute the Generators: What do I do if I programs? Then (and only then!) use structure analysis
39 ? editor perform its Does the actual services correctly? This is highly tool specific
40
41 Moritz Eysholdt s Xpect
42 ? Can I do proofs, and not just trial and error testing? Yes. Formal Methods.
43 Model Checking
44 Challenges
45 State Based
46 mbeddr Approach
47 mbeddr Approach easier to use hopefully used more full power: write CTL/ LTL if you want to
48 Model Checking
49 Model Checking
50 Model Checking
51 Model Checking Finds problems in state machines. even ones you didn t think of! Much more complete than manual testing.
52 Model Checking
53 mbeddr Future
54 mbeddr Future SAT Solving for PLE Variability Decision Table Completeness
55 Abstract Execution Klaus Birken Executing a Program using all possible values and execution paths at the same time
56 Abstract Execution Klaus Birken { [1..3] } + { [10..15], 30 } = { [11..18], [31..33] }
57 Abstract Execution Klaus Birken b ==?
58 Abstract Execution Klaus Birken a == { [7..12] } a == { [13..20] } b == { [7..12], 2011 }
59 Abstract Execution Klaus Birken customer requirements validated against / based on validated against / based on software model online validation with abstract execution abstract testcases model
60 Abstract Execution Klaus Birken customer requirements validated against / based on validated against / based on software model online validation with abstract execution abstract testcases model transformation transformation (generated) system automated black-box regression tests testcases
61 Abstract Execution test for implementation of Audio_Routing_Contr ol service Klaus Birken abstract parameter specification specify reaction of underlying subsystem (with timings!) expected test result: positive response with 0 <= $Result < 100 Warning: implementation will respond with concrete value
62 Abstract Execution Klaus Birken code coverage for abstract execution of testcase against this implementation
63 Abstract Execution Klaus Birken fully explore the state space with abstract test cases maximise coverage, increase confidence, reduce risk tightly integrate development and test iteratively develop implementation and test cases, each uncovering incompleteness in the other
64 The End. This material is part of my upcoming (early 2013) book DSL Engineering with Language Workbenches Stay in touch; it will be cheap or maybe even free :-) +Markus Voelter
A conceptual framework for building good DSLs. Markus Voelter independent/itemis
DSL Design A conceptual framework for building good DSLs Markus Voelter independent/itemis voelter@acm.org www.voelter.de voelterblog.blogspot.de @markusvoelter +Markus Voelter based on material from a
More information10 Thoughts 2 Demos * Discussions
Developing Embedded software with Language Workbenches Stuttgart, 20.09.2011 Markus Voelter Independent/itemis voelter@acm.org 10 Thoughts 2 Demos * Discussions 1 1 Embedded Development Two Classes in
More informationA little History Domain Specific Languages Examples Tools Benefits A more theoretical View Programming and Modeling The LWES Project Bonus: Best
Domain Specific Languages Markus Voelter Independent/itemis voelter@acm.org A little History Domain Specific Languages Examples Tools Benefits A more theoretical View Programming and Modeling The LWES
More informationWhat are Requirements?
Domain Specific Languages and Requirements (Engineering) Markus Voelter www.voelter.de voelter@acm.org What are Requirements? 1 a requirement is a singular documented need of what a particular product
More informationDomain Specific Languages. Product Line Engineering
Using Domain Specific Languages in the context of Product Line Engineering Markus Voelter Independent/itemis voelter@acm.org Using Domain Specific Languages in the context of Product Line Engineering DSLs
More informationLanguage Workbenches, Embedded Software and Formal Verification
Language Workbenches, Embedded Software and Formal Verification Markus Voelter independent/itemis voelter@acm.org www.voelter.de voelterblog.blogspot.de @markusvoelter +Markus Voelter Daniel Ratiu ForTISS
More informationProgramming Modeling Two Worlds? Programmierung Modellierung Zwei Welten? und. and. Markus Voelter Independent/itemis
und Programmierung Modellierung Zwei Welten? and Modeling Two Worlds? Markus Voelter Independent/itemis voelter@acm.org Markus Voelter Independent/itemis voelter@acm.org 1 Languages C# Erlang C++ Python
More informationDSL Implementation. ... with language Workbenches. v1.1 Jan 16, Markus Voelter independent/itemis
DSL Implementation... with language Workbenches. v1.1 Jan 16, 2013 Markus Voelter independent/itemis voelter@acm.org www.voelter.de voelterblog.blogspot.de @markusvoelter +Markus Voelter Last Year s Talk
More informationLanguage Extension and Composition with Language Workbenches
Language Extension and Composition with Language Workbenches Eelco Visser TU Delft E.Visser@tudelft.nl Markus Voelter Independent/itemis voelter@acm.org Different Worlds Programming Tools!= Modeling Tools
More informationDomain Specific Languages. Requirements (Engineering)
Domain Specific Languages and Requirements (Engineering) Andreas Graf Andreas.graf@itemis.de Markus Voelter www.voelter.de voelter@acm.org What are Requirements? a requirement is a singular documented
More informationDomain-Specific Languages Language Workbenches
Software Engineering with and Domain-Specific Languages Language Workbenches Peter Friese Itemis peter.friese@itemis.de Markus Voelter Independent/itemis voelter@acm.org 1 Programming Languages C# Erlang
More informationProgramming Languages
Trends in Programming Languages ICALEPCS 2011 Markus Voelter Independent/itemis voelter@acm.org A single language to rule them all An ecosystem of languages An ecosystem of languages The Pendulum Swings
More informationAutomated Testing of DSL Implementations
Software Quality Journal manuscript No. (will be inserted by the editor) Automated Testing of DSL Implementations Experiences from Building mbeddr Daniel Ratiu Markus Voelter Domenik Pavletic Received:
More informationLanguage Shapes (Architectural) Thought Markus Völter
Language Shapes (Architectural) Thought Markus Völter voelter@acm.org www.voelter.de @markusvoelter Language Shapes (Architectural) Thought Sapir Whorf hypothesis aka Whorfianism The principle of linguis;c
More informationVariability differences among products in PL. Variability in PLE. Language Workbenches. Language Workbenches. Product Line Engineering
PPL 2009 Keynote Markus Voelter Indepenent/itemis voelter@acm.org http://www.voelter.de Language Workbenches in Product Line Engineering Variability in PLE Language Workbenches in Domain Specific Languages
More informationLanguage engineering and Domain Specific Languages
Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh Plan 1. Defining languages 2. General purpose languages vs domain specific languages 3.
More informationPlan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language
Plan Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh 1. Defining languages 2. General purpose languages vs domain specific languages 3.
More informationHCI in the software process
chapter 6 HCI in the software process HCI in the software process Software engineering and the process for interactive systems Usability engineering Iterative and prototyping Design rationale the software
More informationHCI in the software. chapter 6. HCI in the software process. The waterfall model. the software lifecycle
HCI in the software process chapter 6 HCI in the software process Software engineering and the process for interactive systems Usability engineering Iterative and prototyping Design rationale the software
More informationHuman Computer Interaction Lecture 14. HCI in Software Process. HCI in the software process
Human Computer Interaction Lecture 14 HCI in Software Process HCI in the software process Software engineering and the design process for interactive systems Usability engineering Iterative design and
More informationMarkus Völter
of Markus Völter voelter@acm.org www.voelter.de @markusvoelter Examples 1 Healthcare Context & Motivation Mobile Apps that help patients w/ treatments Monitor side-effects and recommend actions Manage
More informationHuman Computer Interaction Lecture 06 [ HCI in Software Process ] HCI in the software process
Human Computer Interaction Lecture 06 [ HCI in Software Process ] Imran Ihsan Assistant Professor www.imranihsan.com aucs.imranihsan.com HCI06 - HCI in Software Process 1 HCI in the software process Software
More informationGoals. Greater Geate Abstraction work on a higher level do more with less insulate from technology. Increase Value. Reduce lossiness.
MDD: the Good, the Bad and the Ugly Steven Kelly CTO, MetaCase www.metacase.com com stevek@metacase.com Markus Voelter Independent/itemis AG www.voelter.de voelter@acm.org Part 1 1 Goals Goals Greater
More informationHandling Variability
Handling Variability Version 2.0, December 11, 2009 Markus Völter, Independent/itemis (voelter@acm.org) 2009 Markus Voelter Copyright retain by author(s). Permission granted to Hillside Europe for inclusion
More informationDESIGN, EVOLUTION AND USE
DESIGN, EVOLUTION AND USE of KernelF voelter@acm.org www.voelter.de @markusvoelter Markus Völter Check out the paper! http://voelter.de/data /pub/kernelf-icmt.pdf EXAMPLE 1 Healthcare 1 Context Mobile
More informationCoding and Unit Testing! The Coding Phase! Coding vs. Code! Coding! Overall Coding Language Trends!
Requirements Spec. Design Coding and Unit Testing Characteristics of System to be built must match required characteristics (high level) Architecture consistent views Software Engineering Computer Science
More informationProfessor Hausi A. Müller PhD PEng FCAE Department of Computer Science Faculty of Engineering University of Victoria
Professor Hausi A. Müller PhD PEng FCAE Department of Computer Science Faculty of Engineering University of Victoria www.engr.uvic.ca/~seng321/ courses1.csc.uvic.ca/courses/201/spring/seng/321 SENG 321
More informationTesting Stragegies. Black Box Testing. Test case
References: Teach Yourself Object-Oriented Programming in 21 Days by A.Sintes, 1 Testing Stragegies Test case a set of inputs and expected outputs looks at specific piece of functionality to determine
More informationOBJECT-ORIENTED MODELING AND DESIGN. Process Overview
OBJECT-ORIENTED MODELING AND DESIGN Process Overview CONTENTS: 1. Development Stages. 2. Development Life Cycle. 3. Summary. A software Development process provides a basis for the organized production
More informationProjecting a Modular Future
Projecting a Modular Future Markus Voelter 1, Jos Warmer 2, and Bernd Kolb 3 1 independent/itemis, voelter@acm.org 2 independent, jos.warmer@openmodeling.nl 3 itemis, bernd.kolb@itemis.de Abstract. We
More informationAgile Tester Foundation E-learning Course Outline
Foundation E-learning Course Outline General Description This course provides testers and test managers with an understanding of the fundamentals of testing on agile projects. Attendees will learn how
More informationCS/ECE 5780/6780: Embedded System Design
CS/ECE 5780/6780: Embedded System Design John Regehr Lecture 18: Introduction to Verification What is verification? Verification: A process that determines if the design conforms to the specification.
More informationPrinciples of Software Construction: Objects, Design, and Concurrency (Part 2: Designing (Sub )Systems)
Principles of Software Construction: Objects, Design, and Concurrency (Part 2: Designing (Sub )Systems) More Analysis for Functional Correctness Jonathan Aldrich Charlie Garrod School of Computer Science
More informationLet s build. like they build. Markus Völter Bernd Kolb
Let s build like they build Markus Völter voelter@acm.org www.voelter.de @markusvoelter Bernd Kolb kolb@itemis.de www.itemis.de @berndkolb B 0 Motivation Examples 1 M Healthcare Context & Motivation Mobile
More informationDeclarative. Contracts
Declarative Smart Contracts Markus Völter voelter@acm.org www.voelter.de @markusvoelter 1 Context SMART An actual contract, executed automatically. CONTRACT Any Turing Complete Program running on a Blockchain.
More informationrethinking the role of design in software development Daniel Jackson Computer Science & Artificial Intelligence Lab MIT
rethinking the role of design in software development Daniel Jackson Computer Science & Artificial Intelligence Lab MIT traditional engineers use models of different sorts three central software models
More informationABAP DSL Workbench SAP TechED 2016
ABAP DSL Workbench SAP TechED 2016 Barcelona, November 2016-0 - Hello. Hello. Example Asia Diner Yes? Number 77. Take away? No. Hello. Hello. Hello. Hello. As always? Yes. As always? Yes. Where are the
More informationSoftware Engineering 2 A practical course in software engineering. Ekkart Kindler
Software Engineering 2 A practical course in software engineering Quality Management Main Message Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase 3 1. Overview
More informationFlight Systems are Cyber-Physical Systems
Flight Systems are Cyber-Physical Systems Dr. Christopher Landauer Software Systems Analysis Department The Aerospace Corporation Computer Science Division / Software Engineering Subdivision 08 November
More informationRequirements Validation and Negotiation
REQUIREMENTS ENGINEERING LECTURE 2017/2018 Joerg Doerr Requirements Validation and Negotiation AGENDA Fundamentals of Requirements Validation Fundamentals of Requirements Negotiation Quality Aspects of
More informationWhy testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties
Why testing and analysis Software Testing Adapted from FSE 98 Tutorial by Michal Young and Mauro Pezze Software is never correct no matter what developing testing technique is used All software must be
More informationPOLITECNICO DI TORINO Repository ISTITUZIONALE
POLITECNICO DI TORINO Repository ISTITUZIONALE Tool-automation for supporting the DSL learning process Original Tool-automation for supporting the DSL learning process / Tomassetti F.; Figueroa C.; Ratiu
More informationAdvanced Security Tester Course Outline
Advanced Security Tester Course Outline General Description This course provides test engineers with advanced skills in security test analysis, design, and execution. In a hands-on, interactive fashion,
More informationSECURITY TESTING USING MODELS AND TEST PATTERNS. Presented by [Bruno Legeard, Elizabeta Fourneret]
Budapest, 26-28 October 2016 SECURITY TESTING USING MODELS AND TEST PATTERNS Presented by [Bruno Legeard, Elizabeta Fourneret] All rights reserved MODEL-BASED SECURITY TESTING Positionning with respect
More informationIntroduction to Dependable Systems: Meta-modeling and modeldriven
Introduction to Dependable Systems: Meta-modeling and modeldriven development http://d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics 3 Software development Automated software
More informationSECURITY TESTING USING MODELS AND TEST PATTERNS. Presented by [Bruno Legeard, Elizabeta Fourneret]
Budapest, 26-28 October 2016 SECURITY TESTING USING MODELS AND TEST PATTERNS Presented by [Bruno Legeard, Elizabeta Fourneret] All rights reserved MODEL-BASED SECURITY TESTING Positionning with respect
More informationOptimize tomorrow today.
Applying Agile Practices to Improve Software Quality Name: Arlene Minkiewicz Chief Scientist 17000 Commerce Parkway Mt. Laurel, NJ 08054 arlene.minkiewicz@pricesystems.com Phone: 856 608-7222 Agenda Introduction
More informationopenarchitectureware 4.1 An introduction
openarchitectureware 4.1 An introduction Markus Voelter, www.voelter.de, openarchitectureware (oaw) is a suite of tools and components assisting with model driven software development, more precisely it
More informationSoftware Engineering Lifecycles. Controlling Complexity
Software Engineering Lifecycles Class url:http://laser.cs.umass.edu/courses/cs320.spring11/ Controlling Complexity Separation of Concerns Planning Ahead Do a little work now to make later work easier The
More informationAutomated Acceptance Testing
Automated Acceptance Testing Björn Beskow Callista Enterprise AB bjorn.beskow@callista.se http://www.callista.se/enterprise CADEC 2004-01-28, Automated Acceptance Testing, Slide 1 Target audience and Objectives
More informationGUI Computer Simulator
Comp145 UNC Chapel Hill Contract II GUI Computer Simulator Team #8 Client: Dr. Frederick P. Brooks Jr. and Prof. Greg Welch February 13, 2001 Dr. Frederick P. Brooks Jr. Chris Bailey [Admin] Ed Goode [Librarian]
More informationRequirements Validation and Negotiation
REQUIREMENTS ENGINEERING LECTURE 2015/2016 Eddy Groen Requirements Validation and Negotiation AGENDA Fundamentals of Requirements Validation Fundamentals of Requirements Negotiation Quality Aspects of
More informationSecurity Risk Management Domain Model
Lecture 2: Security Modelling Understanding security goals and secure business activities Dr. Raimundas Matulevičius email: rma@ut.ee 1" Security Risk Management Domain Model "2"" Goals and Questions What
More informationStructured Analysis and Structured Design
Structured Analysis and Structured Design - Introduction to SASD - Structured Analysis - Structured Design Ver. 1.5 Lecturer: JUNBEOM YOO jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr References Modern
More informationAdministrivia. ECE/CS 5780/6780: Embedded System Design. Acknowledgements. What is verification?
Administrivia ECE/CS 5780/6780: Embedded System Design Scott R. Little Lab 8 status report. Set SCIBD = 52; (The Mclk rate is 16 MHz.) Lecture 18: Introduction to Hardware Verification Scott R. Little
More informationCMSC 132: OBJECT-ORIENTED PROGRAMMING II
CMSC 132: OBJECT-ORIENTED PROGRAMMING II Program Testing Department of Computer Science University of Maryland, College Park Debugging Is Harder Than Coding! Debugging is twice as hard as writing the code
More informationThe PISA Project A Model Driven Development case study
In collaboration with The PISA Project A Model Driven Development case study Pedro J. Molina, PhD. May 19 th, 2007 Contents Introduction Goals Foundations Design aspects & Trade-offs Demo Problems found
More informationDesign, prototyping and construction
Chapter 11 Design, prototyping and construction 1 Overview Prototyping and construction Conceptual design Physical design Generating prototypes Support for design 2 Prototyping and construction What is
More informationDomain Specific - a Binary Decision?
Domain Specific - a Binary Decision? Markus Voelter independent/itemis Ötztaler Strasse 38 70327 Stuttgart, Germany voelter@acm.org Bernhard Merkle SICK AG R&D Software Engineering Erwin-Sick-Str.1 79183
More informationChapter 5 Practice: A Generic View
Chapter 5 Practice: A Generic View Moonzoo Kim CS Division of EECS Dept. KAIST moonzoo@cs.kaist.ac.kr http://pswlab.kaist.ac.kr/courses/cs550-07 Spring 2007 1 What is Practice? Practice is a broad array
More informationObject-Oriented and Classical Software Engineering THE TOOLS OF THE TRADE 9/22/2017. CHAPTER 5 Slide 5.2. Stephen R. Schach. Overview Slide 5.
Slide 5.1 CHAPTER 5 Slide 5.2 Object-Oriented and Classical Software Engineering THE TOOLS OF THE TRADE Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach Overview Slide 5.3 Overview (contd) Slide
More informationPreliminary Experience of using mbeddr for Developing Embedded Software
Preliminary Experience of using mbeddr for Developing Embedded Software Markus Voelter independent/itemis Oetztaler Strasse 38 70327 Stuttgart voelter@acm.org Abstract: Over the last years, as part of
More informationFOUR INDEPENDENT TOOLS TO MANAGE COMPLEXITY INHERENT TO DEVELOPING STATE OF THE ART SYSTEMS. DEVELOPER SPECIFIER TESTER
TELECOM AVIONIC SPACE AUTOMOTIVE SEMICONDUCTOR IOT MEDICAL SPECIFIER DEVELOPER FOUR INDEPENDENT TOOLS TO MANAGE COMPLEXITY INHERENT TO DEVELOPING STATE OF THE ART SYSTEMS. TESTER PragmaDev Studio is a
More informationQ Body of techniques supported by. R precise mathematics. R powerful analysis tools. Q Rigorous, effective mechanisms for system.
Introduction to Formal Methods 1 Introduction to Formal Methods 2 Formal Specification Requirements specification R notational statement of system services Software specification R formal abstract depiction
More informationWhole Platform Foundation. The Long Way Toward Language Oriented Programming
Whole Platform Foundation The Long Way Toward Language Oriented Programming 2008 by Riccardo Solmi made available under the Creative Commons License last updated 22 October 2008 Outline Aim: Engineering
More informationThe process of interaction design and Prototyping
Chapter 6 edited The process of interaction design and Prototyping 1 Overview What is involved in Interaction Design? Importance of involving users Degrees of user involvement What is a user-centered approach?
More informationHuman-Computer Interaction. CA357 Lecture 7 More on Prototyping
Human-Computer Interaction CA357 Lecture 7 More on Prototyping Overview By the end of the session, you should be aware of: Design Importance of prototyping Low fidelity vs High fidelity prototyping Why
More informationECE 587 Hardware/Software Co-Design Lecture 11 Verification I
ECE 587 Hardware/Software Co-Design Spring 2018 1/23 ECE 587 Hardware/Software Co-Design Lecture 11 Verification I Professor Jia Wang Department of Electrical and Computer Engineering Illinois Institute
More informationUsing Language Workbenches and Domain-Specific Languages for Safety-Critical Software Development
Using Language Workbenches and Domain-Specific Languages for Safety-Critical Software Development Markus Voelter independent / itemis AG voelter@acm.org Patrick Alff, Laurent Wiart Voluntis {Patrick.Alff
More informationCOURSE BROCHURE. ITIL - Intermediate Service Transition. Training & Certification
COURSE BROCHURE ITIL - Intermediate Service Transition. Training & Certification What is ITIL ST? The intermediate level of ITIL offers a role based hands-on experience and in-depth coverage of the contents.
More informationPractical DSL Design. Groovy Sydney Meetup May 4th, Peter Bell CEO/CTO SystemsForge
Practical DSL Design Groovy Sydney Meetup May 4th, 2010 Peter Bell CEO/CTO SystemsForge Overview Before DSLs... What is a DSL? Creating a DSL Good DSL Design Key Concepts Implementing DSLs in Groovy Testing
More informationLYREBIRD David Cock
davec@cse.unsw.edu.aullyrebird LYREBIRD David Cock λ What is the Motivation? Program proof is important, but there s more to do. NICTA Copyright c 2011 From Imagination to Impact 2 What is the Motivation?
More informationCSE : Python Programming. Packages (Tutorial, Section 6.4) Announcements. Today. Packages: Concretely. Packages: Overview
Announcements CSE 399-004: Python Programming Lecture 07: Packages, Command-line arguments, and Unit testing February 26, 2007 http://www.seas.upenn.edu/~cse39904/ No homework this week There may be one
More informationProgram generation for schema-based, typed data access
Program generation for schema-based, typed data access Ralf Lämmel Software Engineer Facebook, London Program generation A use case at Facebook Purpose of generation: typed data access ("O/R mapping" et
More informationSoftware Testing part II (white box) Lecturer: Giuseppe Santucci
Software Testing part II (white box) Lecturer: Giuseppe Santucci 4. White box testing White-box (or Glass-box) testing: general characteristics Statement coverage Decision coverage Condition coverage Decision
More informationSemantics. There is no single widely acceptable notation or formalism for describing semantics Operational Semantics
There is no single widely acceptable notation or formalism for describing semantics Operational Describe the meaning of a program by executing its statements on a machine, either simulated or actual. The
More informationA Survey on Domain-Specific Languages in Robotics
A Survey on Domain-Specific Languages in Robotics Arne Nordmann Nico Hochgeschwender Sebastian Wrede October 21st 2014 0 Arne Nordmann, Nico Hochgeschwender, Sebastian Wrede A Survey on Domain-Specific
More informationReal Wireframes Get Real Results
Page 1 of 7 Real Wireframes Get Real Results by Stephen Turbek Published on 09/19/2006 19 Comments 8,935 Views How many times have you been asked, So, is the new website going to be black Just because
More informationFinite State Verification. CSCE Lecture 21-03/28/2017
Finite State Verification CSCE 747 - Lecture 21-03/28/2017 So, You Want to Perform Verification... You have a property that you want your program to obey. Great! Let s write some tests! Does testing guarantee
More informationIntroduction to Modeling
Introduction to Modeling Software Architecture Lecture 9 Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Objectives Concepts What is modeling? How do we choose
More informationA Collaborative User-centered Approach to Fine-tune Geospatial
A Collaborative User-centered Approach to Fine-tune Geospatial Database Design Grira Joel Bédard Yvan Sboui Tarek 16 octobre 2012 6th International Workshop on Semantic and Conceptual Issues in GIS - SeCoGIS
More informationCover Page. The handle holds various files of this Leiden University dissertation
Cover Page The handle http://hdl.handle.net/1887/22891 holds various files of this Leiden University dissertation Author: Gouw, Stijn de Title: Combining monitoring with run-time assertion checking Issue
More informationFrustrated by all the hype?
Fundamentals of Software Architecture Looking beyond the hype Markus Völter (voelter@acm.org) Introduction Frustrated by all the hype? If so this presentation is for you. Otherwise you should leave People
More informationQuestion 1: What is a code walk-through, and how is it performed?
Question 1: What is a code walk-through, and how is it performed? Response: Code walk-throughs have traditionally been viewed as informal evaluations of code, but more attention is being given to this
More informationDefinition of Information Systems
Information Systems Modeling To provide a foundation for the discussions throughout this book, this chapter begins by defining what is actually meant by the term information system. The focus is on model-driven
More informationBayesian Approaches to Content-based Image Retrieval
Bayesian Approaches to Content-based Image Retrieval Simon Wilson Georgios Stefanou Department of Statistics Trinity College Dublin Background Content-based Image Retrieval Problem: searching for images
More informationAn Annotated Language
Hoare Logic An Annotated Language State and Semantics Expressions are interpreted as functions from states to the corresponding domain of interpretation Operators have the obvious interpretation Free of
More informationInteractive Debugging for Extensible Languages in Multi-Stage Transformation Environments
Interactive Debugging for Extensible Languages in Multi-Stage Transformation Environments Domenik Pavletic itemis AG Stuttgart, Germany pavletic@itemis.com Kim Haßlbauer Stuttgart, Germany kim.hasslbauer@gmail.com
More informationCompositional Model Based Software Development
Compositional Model Based Software Development Prof. Dr. Bernhard Rumpe http://www.se-rwth.de/ Seite 2 Our Working Groups and Topics Automotive / Robotics Autonomous driving Functional architecture Variability
More informationCarbon Black PCI Compliance Mapping Checklist
Carbon Black PCI Compliance Mapping Checklist The following table identifies selected PCI 3.0 requirements, the test definition per the PCI validation plan and how Carbon Black Enterprise Protection and
More informationHigh-Level Information Interface
High-Level Information Interface Deliverable Report: SRC task 1875.001 - Jan 31, 2011 Task Title: Exploiting Synergy of Synthesis and Verification Task Leaders: Robert K. Brayton and Alan Mishchenko Univ.
More informationChecking Program Properties with ESC/Java
Checking Program Properties with ESC/Java 17-654/17-765 Analysis of Software Artifacts Jonathan Aldrich 1 ESC/Java A checker for Java programs Finds null pointers, array dereferences Checks Hoare logic
More informationTechniques for the unambiguous specification of software
Formal Techniques for the unambiguous of software Objectives To explain why formal techniques help discover problems in system requirements To describe the use of algebraic techniques for interface To
More informationPrototyping is the Short hand of Design Tom Kelly Prototyping. Prototyping is the short hand of Design Tom Kelly IDEO
Prototyping is the Short hand of Design Tom Kelly Prototyping Prototyping is the short hand of Design Tom Kelly IDEO CONTENT Reasons for Prototyping Types of prototypes When to prototype How to prototype
More informationTesting Extensible Language Debuggers
Testing Extensible Language Debuggers Domenik Pavletic itemis AG pavletic@itemis.com Syed Aoun Raza aoun.raza@gmail.com Kolja Dummann itemis AG dummann@itemis.com Kim Haßlbauer kim.hasslbauer@gmail.com
More informationWrite perfect C code to solve the three problems below.
Fall 2017 CSCI 4963/6963 Week 12 David Goldschmidt goldschmidt@gmail.com Office: Amos Eaton 115 Office hours: Mon/Thu 1:00-1:50PM; Wed 1:00-2:50PM Write perfect C code to solve the three problems below.
More informationChapter 3 (part 3) Describing Syntax and Semantics
Chapter 3 (part 3) Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings
More informationAutomatic Merging of Specification Documents in a Parallel Development Environment
Automatic Merging of Specification Documents in a Parallel Development Environment Rickard Böttcher Linus Karnland Department of Computer Science Lund University, Faculty of Engineering December 16, 2008
More informationIntroduction to Unified Modelling Language (UML)
IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion Introduction to Unified
More informationIterative design and prototyping
Iterative design and prototyping Iterative design and prototyping Requirements of the iterative segments cannot be specified from the beginning. Only way is to built them and test them on real users. It
More information