Pulse: Plural To EVMDD-SMC

Size: px
Start display at page:

Download "Pulse: Plural To EVMDD-SMC"

Transcription

1 Pulse: Plural To EVMDD-SMC Automated Verification of Specifications with Typestates and Access Permissions Ijaz Ahmed 1 Néstor Cataño 1 Radu I. Siminiceanu 2 1 Carnegie Mellon University - Portugal, The University of Madeira 2 National Institute of Aerospace, Virginia, USA November 9, 2011

2 1 Background Model Checking Plural and EVMDD-SMC Access Permissions and TypeStates 2 Abstract Models of Plural Specification States Space and Relations Translation Algorithm Structure of Generated Model 3 Pulse Working MTTS Case Study Results 4 Planned Extensions

3 Model Checking Plural and EVMDD-SMC Access Permissions and TypeStates Model Checking Automatic technique to verify correctness of a FSM Two Basic Phases Construction of model M of the system Test whether the model M verifies a given property P Popular for counter examples and traces Used to verify both hardware and software system Can be used to verify specification (The focus of our work)

4 Model Checking Plural and EVMDD-SMC Access Permissions and TypeStates Plural and EVMDD-SMC Plural A lightweight verification tool of Java programs by CMU Verify access permissions and typestates An Eclipse plug-in based on static analysis EVMDD-SMC A symbolic model checking tool by NIA Considered faster than well-known model checkers like SAL Less syntactic sugar and edge value decision diagrams

5 Model Checking Plural and EVMDD-SMC Access Permissions and TypeStates Access Permissions and TypeStates Access Permission Is a read or write capability of a reference to a an object Keep track of the various references to an object Can be used to reason (do) parallelism TypeStates Compiler checkable abstraction of the states of an object Provides a way to safe operation over an object Can be used to reason implementation

6 Model Checking Plural and EVMDD-SMC Access Permissions and TypeStates Simultaneous Access Permissions Taxonomy This reference Permission Other references Unique read/write Full read/write Pure Share read/write Share, Pure Pure read-only Full, Share, Pure, Immutable Immutable read-only Pure, Immutable

7 Abstract Models of Plural Specification States Space and Relations Translation Algorithm Structure of Generated Model Pulse Translates Plural specifications into EVMDD-SMC model Why Verification of an industrial application with Plural Tool 1 Plural has some limitations notably, Reachability Analysis Model checkers are good to do Reachability Analysis Uses the Antlr parser generator Works as an Eclipse plug-in 1 FMICS 2011, Italy

8 Abstract Models of Plural Specification States Space and Relations Translation Algorithm Structure of Generated Model Pulse Features (1) Do an exhaustive and tractable analysis of specifications (2) Check the deadlocked (sink) states (typestates) (3) Check the unreachable states (4) Check the unreachable methods (5) Check the possible concurrent methods (6) Reason program implementation (7) Check correct useage of the access permission

9 Abstract Models of Plural Specification States Space and Relations Translation Algorithm Structure of Generated Model Abstract Models of Plural Specification Access Permissions associated to object reference r j i : ap j i AP = {, Unique, Full, Pure, Immutable, Share} Typestate associated to object referencer j i : ts i T S i = { } {ti 1,..., th i i } Program Counter associated to method m i : (pc j i ) PC i = {Exe, notexe} ( { } {Mi 1,... Mm i i } )

10 Abstract Models of Plural Specification States Space and Relations Translation Algorithm Structure of Generated Model States Space and Relations Set of potential global states S: c S = { }, ti 1,..., t h i i i=1 K (PC i AP) j=0 Transition relation between states: R S S.

11 Abstract Models of Plural Specification States Space and Relations Translation Algorithm Structure of Generated Model Translation full(this) in StateA, ensures= full(this) in StateB ) public void m(){... } StartMethod( s:globalstate, t:globaltypestate, r j i :Reference, m:method i, :Triple Triple ) guard s[i][j].ap s[i][j].pc = (notexe, ) t[i 0 ] = ts j 0 i0 compatible (s[i 0 ][j 0 ].ap, ap 0 ) compatible (s[i 1 ][j 1 ].ap, ap 1 ) update s [i][j].pc = (Exe, m) ChangePermission (s[i 0 ][j 0 ], ap 0 ) return guard update (( r j 0 i0, ts k 0 i 0, ap 0 ), ( r j 1 i1, ts k 1 i 1, ap 1 ))

12 Abstract Models of Plural Specification States Space and Relations Translation Algorithm Structure of Generated Model Translation Algorithm (Co.) EndMethod( s: GlobalState, t: GlobalTypestate, r j i : Reference, m : Method i, (( r j 0 i0, ts k ) ( 0, ap i 0, r j 1 0 i1, ts k )) 1, ap i 1 :Triple Triple ) 1 guard s[i][j].pc = (Exe, m) update t [i 1 ] = ts k 1 s [i i 1 ][j 1 ].ap = ap 1 s [i][j].pc = (notexe, m) 1 m) changepermission (s[i 1 ][j 1 ].ap, ap 1 ) return guard update

13 Abstract Models of Plural Specification States Space and Relations Translation Algorithm Structure of Generated Model Structure of Generated Model Variables Declaration (Initilisation) Section Transitions Relation Section Aliasing Section Properties Section (Properties of Interest based on CTL)

14 Abstract Models of Plural Specification States Space and Relations Translation Algorithm Structure of Generated Model Properties of Interest Sink States (Deadlock) deadlock : EX(true) Typesates Transition Matrix(Graph) adjacent i (t 1, t 2 ) : state i = t 1 EX(state i = t 2 ) Concurrency concurrent ( i (m 1, m 2 ) : ) EF pc j 1 i = (m 1, Exe) pc j 2 i = (m 2, Exe) Methods Reachability ( ) method j i : EX pc j i = (m i, Exe)

15 Pulse Working Background Pulse Working MTTS Case Study Results

16 Pulse Working MTTS Case Study Results = Empty = Filled ) }) public class MttsTaskDataX (ensures= Unique(this) in Empty ) MttsTaskDataX() { Full(this) in Empty ) Missing Ensures Clause??? i.e ensures= Full (this) in Filled public void settaskdata() { Created Ready Destroyed ) }) public class MttsTask { private MttsTaskDataX (ensures= Unique(this) in Created ) MttsTask() {... Full(this) in Created * Pure(d) in Filled, ensures= Full(this) in Ready ) public void setdata(mttstaskdatax d) {... Full(this) in Ready, ensures= Full(this) in Complete ) public void execute() {... Full(this) in Complete, ensures= Full(this) in Destroyed ) public void delete() {... } }

17 Method Reachability Test Pulse Working MTTS Case Study Results Number of states satisfying Reachability of MttsTaskDataX MttsTaskDataX: 3 Number of states satisfying Reachability of MttsTaskDataX settaskdata: 3 Number of states satisfying Reachability of MttsTask MttsTask: 5 Number of states satisfying Reachability of MttsTask setdata: 0 Number of states satisfying Reachability of MttsTask execute: 0 Number of states satisfying Reachability of MttsTask delete: 0

18 State Reachability Test Pulse Working MTTS Case Study Results MttsTaskDataX Filled Empty MttsTask Created Ready Complete Destroyed

19 State Reachability Test (Co) Pulse Working MTTS Case Study Results MttsTask Created Ready MttsTaskDataX Empty Complete Filled Destroyed

20 State Reachability Test (Co) Pulse Working MTTS Case Study Results IMutexImpl FS FS_MUTEX_NOT_ACQUIRED FS_NESTED_MUTEX_ACQUIRED FS_MUTEX_ACQUIRED FS_NOT_NESTED_MUTEX_ACQUIRED MUTEX_ACQUIRED MUTEX_NOT_ACQUIRED Figure: State Transition Graph of the class IMutexImpl

21 Pulse Working MTTS Case Study Results Multi-Task Threaded Server (MTTS) MTTS Task organization and distribution server Used in financial sector and is written by Novabase Organizes through queues and schedules through threads MTTS Implementation Three packages mtts-api, il(intelligent lock) and server mtts-api defines tasks and queues il implements a re-entrant mutex algorithm server package organizes and distributes tasks We wrote 546 lines of Plural specifications

22 Results Background Pulse Working MTTS Case Study Results Packages Classes Methods State #Properties Runtime (s) Violations Space SS MR STM SS MR STM SS MR STM library il mtts il, library il, library, mtts il, library, mtts, server

23 Planned Extensions Planned Extensions E1- First Extension Class fields and inheritance E2- Second Extension Typestate invariants E3- Third Extension Nested method calls

24 Planned Extensions Conclusion New window to evaluate Plural specifications Enhances existing strengths of Plural Approach is scalable Practically useful evaluated through MTTS Find numerous error Typesate and method reachability

25 Thanks Background Planned Extensions Questions and Suggestions

The Model Checker SPIN

The Model Checker SPIN The Model Checker SPIN Author: Gerard J. Holzmann Presented By: Maulik Patel Outline Introduction Structure Foundation Algorithms Memory management Example/Demo SPIN-Introduction Introduction SPIN (Simple(

More information

Model Checking: An Introduction

Model Checking: An Introduction Announcements Model Checking: An Introduction Meeting 2 Office hours M 1:30pm-2:30pm W 5:30pm-6:30pm (after class) and by appointment ECOT 621 Moodle problems? Fundamentals of Programming Languages CSCI

More information

Chapter 6, The Operating System Machine Level

Chapter 6, The Operating System Machine Level Chapter 6, The Operating System Machine Level 6.1 Virtual Memory 6.2 Virtual I/O Instructions 6.3 Virtual Instructions For Parallel Processing 6.4 Example Operating Systems 6.5 Summary Virtual Memory General

More information

Formal Verification by Model Checking

Formal Verification by Model Checking Formal Verification by Model Checking Natasha Sharygina Carnegie Mellon University Guest Lectures at the Analysis of Software Artifacts Class, Spring 2005 1 Outline Lecture 1: Overview of Model Checking

More information

https://runtimeverification.com Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois

https://runtimeverification.com Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois https://runtimeverification.com Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois Runtime Verification, Inc. (RV): startup company aimed at bringing the best

More information

Using Eclipse CDT/PTP for Static Analysis

Using Eclipse CDT/PTP for Static Analysis PTP User-Developer Workshop Sept 18-20, 2012 Using Eclipse CDT/PTP for Static Analysis Beth R. Tibbitts IBM STG tibbitts@us.ibm.com "This material is based upon work supported by the Defense Advanced Research

More information

Java SE 7 Programming

Java SE 7 Programming Oracle University Contact Us: 1.800.529.0165 Java SE 7 Programming Duration: 5 Days What you will learn This Java SE 7 Programming training explores the core Application Programming Interfaces (API) you'll

More information

Java SE 7 Programming

Java SE 7 Programming Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 4108 4709 Java SE 7 Programming Duration: 5 Days What you will learn This Java Programming training covers the core Application Programming

More information

An Easier Way for Cross-Platform Data Acquisition Application Development

An Easier Way for Cross-Platform Data Acquisition Application Development An Easier Way for Cross-Platform Data Acquisition Application Development For industrial automation and measurement system developers, software technology continues making rapid progress. Software engineers

More information

SHARED HASH TABLES IN PARALLEL MODEL CHECKING

SHARED HASH TABLES IN PARALLEL MODEL CHECKING SHARED HASH TABLES IN PARALLEL MODEL CHECKING IPA LENTEDAGEN 2010 ALFONS LAARMAN JOINT WORK WITH MICHAEL WEBER AND JACO VAN DE POL 23/4/2010 AGENDA Introduction Goal and motivation What is model checking?

More information

T-79.186 Reactive Systems: Introduction and Finite State Automata

T-79.186 Reactive Systems: Introduction and Finite State Automata T-79.186 Reactive Systems: Introduction and Finite State Automata Timo Latvala 14.1.2004 Reactive Systems: Introduction and Finite State Automata 1-1 Reactive Systems Reactive systems are a class of software

More information

Java SE 7 Programming

Java SE 7 Programming Java SE 7 Programming The second of two courses that cover the Java Standard Edition 7 (Java SE 7) Platform, this course covers the core Application Programming Interfaces (API) you will use to design

More information

Verification of Network Management System Configurations

Verification of Network Management System Configurations Verification of Network Management System Configurations David L. Cohrs (608) 262-6617 dave@cs.wisc.edu Barton P. Miller (608) 262-3378 bart@cs.wisc.edu Computer Sciences Department University of Wisconsin

More information

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts

More information

CACHÉ: FLEXIBLE, HIGH-PERFORMANCE PERSISTENCE FOR JAVA APPLICATIONS

CACHÉ: FLEXIBLE, HIGH-PERFORMANCE PERSISTENCE FOR JAVA APPLICATIONS CACHÉ: FLEXIBLE, HIGH-PERFORMANCE PERSISTENCE FOR JAVA APPLICATIONS A technical white paper by: InterSystems Corporation Introduction Java is indisputably one of the workhorse technologies for application

More information

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm

More information

Thesis Proposal: Improving the Performance of Synchronization in Concurrent Haskell

Thesis Proposal: Improving the Performance of Synchronization in Concurrent Haskell Thesis Proposal: Improving the Performance of Synchronization in Concurrent Haskell Ryan Yates 5-5-2014 1/21 Introduction Outline Thesis Why Haskell? Preliminary work Hybrid TM for GHC Obstacles to Performance

More information

Estimate Performance and Capacity Requirements for Workflow in SharePoint Server 2010

Estimate Performance and Capacity Requirements for Workflow in SharePoint Server 2010 Estimate Performance and Capacity Requirements for Workflow in SharePoint Server 2010 This document is provided as-is. Information and views expressed in this document, including URL and other Internet

More information

Software Verification: Infinite-State Model Checking and Static Program

Software Verification: Infinite-State Model Checking and Static Program Software Verification: Infinite-State Model Checking and Static Program Analysis Dagstuhl Seminar 06081 February 19 24, 2006 Parosh Abdulla 1, Ahmed Bouajjani 2, and Markus Müller-Olm 3 1 Uppsala Universitet,

More information

Umple: An Open-Source Tool for Easy-To-Use Modeling, Analysis, and Code Generation

Umple: An Open-Source Tool for Easy-To-Use Modeling, Analysis, and Code Generation Umple: An Open-Source Tool for Easy-To-Use Modeling, Analysis, and Code Generation Timothy C. Lethbridge School of Electrical Engineering and Computer Science University of Ottawa, Canada K1N 6N5 tcl@eecs.uottawa.ca

More information

Virtual Machines. www.viplavkambli.com

Virtual Machines. www.viplavkambli.com 1 Virtual Machines A virtual machine (VM) is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software

More information

Ontology Model-based Static Analysis on Java Programs

Ontology Model-based Static Analysis on Java Programs Ontology Model-based Static Analysis on Java Programs Lian Yu 1, Jun Zhou, Yue Yi, Ping Li, Qianxiang Wang School of Software and Microelectronics, Peking University, Beijing, 102600, PRC Abstract 1 Typical

More information

Software and the Concurrency Revolution

Software and the Concurrency Revolution Software and the Concurrency Revolution A: The world s fastest supercomputer, with up to 4 processors, 128MB RAM, 942 MFLOPS (peak). 2 Q: What is a 1984 Cray X-MP? (Or a fractional 2005 vintage Xbox )

More information

ORACLE INSTANCE ARCHITECTURE

ORACLE INSTANCE ARCHITECTURE ORACLE INSTANCE ARCHITECTURE ORACLE ARCHITECTURE Oracle Database Instance Memory Architecture Process Architecture Application and Networking Architecture 2 INTRODUCTION TO THE ORACLE DATABASE INSTANCE

More information

Combining Software and Hardware Verification Techniques

Combining Software and Hardware Verification Techniques Formal Methods in System Design, 21, 251 280, 2002 c 2002 Kluwer Academic Publishers. Manufactured in The Netherlands. Combining Software and Hardware Verification Techniques ROBERT P. KURSHAN VLADIMIR

More information

Using the Intel Inspector XE

Using the Intel Inspector XE Using the Dirk Schmidl schmidl@rz.rwth-aachen.de Rechen- und Kommunikationszentrum (RZ) Race Condition Data Race: the typical OpenMP programming error, when: two or more threads access the same memory

More information

A Parameterized Type System for Race-Free Java Programs

A Parameterized Type System for Race-Free Java Programs ACM Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), October 2001 A Parameterized Type System for Race-Free Java Programs Chandrasekhar Boyapati Martin Rinard Laboratory

More information

AUTOMATED TEST GENERATION FOR SOFTWARE COMPONENTS

AUTOMATED TEST GENERATION FOR SOFTWARE COMPONENTS TKK Reports in Information and Computer Science Espoo 2009 TKK-ICS-R26 AUTOMATED TEST GENERATION FOR SOFTWARE COMPONENTS Kari Kähkönen ABTEKNILLINEN KORKEAKOULU TEKNISKA HÖGSKOLAN HELSINKI UNIVERSITY OF

More information

From Workflow Design Patterns to Logical Specifications

From Workflow Design Patterns to Logical Specifications AUTOMATYKA/ AUTOMATICS 2013 Vol. 17 No. 1 http://dx.doi.org/10.7494/automat.2013.17.1.59 Rados³aw Klimek* From Workflow Design Patterns to Logical Specifications 1. Introduction Formal methods in software

More information

Object-Oriented Databases Course Review

Object-Oriented Databases Course Review Object-Oriented Databases Course Review Exam Information Summary OODBMS Architectures 1 Exam Session examination Oral exam in English Duration of 15 minutes 2 Exam Basic Skills: Why, What, How Explain

More information

2) Remove all the certificates listed by following steps 3-5.

2) Remove all the certificates listed by following steps 3-5. HOW TO SETUP THE NEW DIGITAL SIGNATURE COMPONENT (Version 3.0) Updated on: 8 April 2014 STEP 1: Uninstall the Java Certificate 1) Select the Security tab as shown in the diagram below and Click on 2) Remove

More information

Replication on Virtual Machines

Replication on Virtual Machines Replication on Virtual Machines Siggi Cherem CS 717 November 23rd, 2004 Outline 1 Introduction The Java Virtual Machine 2 Napper, Alvisi, Vin - DSN 2003 Introduction JVM as state machine Addressing non-determinism

More information

A Classification of Model Checking-based Verification Approaches for Software Models

A Classification of Model Checking-based Verification Approaches for Software Models A Classification of Model Checking-based Verification Approaches for Software Models Petra Brosch, Sebastian Gabmeyer, Martina Seidl Sebastian Gabmeyer Business Informatics Group Institute of Software

More information

A staged static program analysis to improve the performance of runtime monitoring

A staged static program analysis to improve the performance of runtime monitoring A staged static program analysis to improve the performance of runtime monitoring Eric Bodden 1, Laurie Hendren 1, Ondřej Lhoták 2 1 McGill University, Montréal, Québec, Canada 2 University of Waterloo,

More information

NASA s State-Space Exploration: Verifying Safety-Critical Systems

NASA s State-Space Exploration: Verifying Safety-Critical Systems NASA s State-Space Exploration: Verifying Safety-Critical Systems Dimitra Giannakopoulou CMU / NASA Ames Research Center model checking program / model void add(object o) { buffer[head] = o; head = (head+1)%size;

More information

Introduction to SPIN. Acknowledgments. Parts of the slides are based on an earlier lecture by Radu Iosif, Verimag. Ralf Huuck. Features PROMELA/SPIN

Introduction to SPIN. Acknowledgments. Parts of the slides are based on an earlier lecture by Radu Iosif, Verimag. Ralf Huuck. Features PROMELA/SPIN Acknowledgments Introduction to SPIN Parts of the slides are based on an earlier lecture by Radu Iosif, Verimag. Ralf Huuck Ralf Huuck COMP 4152 1 Ralf Huuck COMP 4152 2 PROMELA/SPIN PROMELA (PROcess MEta

More information

University of Twente. A simulation of the Java Virtual Machine using graph grammars

University of Twente. A simulation of the Java Virtual Machine using graph grammars University of Twente Department of Computer Science A simulation of the Java Virtual Machine using graph grammars Master of Science thesis M. R. Arends, November 2003 A simulation of the Java Virtual Machine

More information

Software Engineering Techniques

Software Engineering Techniques Software Engineering Techniques Low level design issues for programming-in-the-large. Software Quality Design by contract Pre- and post conditions Class invariants Ten do Ten do nots Another type of summary

More information

ACTOR-BASED MODEL FOR CONCURRENT PROGRAMMING. Sander Sõnajalg

ACTOR-BASED MODEL FOR CONCURRENT PROGRAMMING. Sander Sõnajalg ACTOR-BASED MODEL FOR CONCURRENT PROGRAMMING Sander Sõnajalg Contents Introduction to concurrent programming Shared-memory model vs. actor model Main principles of the actor model Actors for light-weight

More information

Bell & LaPadula Model Security Policy Bell & LaPadula Model Types of Access Permission Matrix

Bell & LaPadula Model Security Policy Bell & LaPadula Model Types of Access Permission Matrix 1 Security Policy A document that expresses clearly and concisely what the protection mechanisms are to achieve A statement of the security we expect the system to enforce Bell & LaPadula Model Formalization

More information

logic language, static/dynamic models SAT solvers Verified Software Systems 1 How can we model check of a program or system?

logic language, static/dynamic models SAT solvers Verified Software Systems 1 How can we model check of a program or system? 5. LTL, CTL Last part: Alloy logic language, static/dynamic models SAT solvers Today: Temporal Logic (LTL, CTL) Verified Software Systems 1 Overview How can we model check of a program or system? Modeling

More information

Advanced compiler construction. General course information. Teacher & assistant. Course goals. Evaluation. Grading scheme. Michel Schinz 2007 03 16

Advanced compiler construction. General course information. Teacher & assistant. Course goals. Evaluation. Grading scheme. Michel Schinz 2007 03 16 Advanced compiler construction Michel Schinz 2007 03 16 General course information Teacher & assistant Course goals Teacher: Michel Schinz Michel.Schinz@epfl.ch Assistant: Iulian Dragos INR 321, 368 64

More information

Java Coding Practices for Improved Application Performance

Java Coding Practices for Improved Application Performance 1 Java Coding Practices for Improved Application Performance Lloyd Hagemo Senior Director Application Infrastructure Management Group Candle Corporation In the beginning, Java became the language of the

More information

Application of Design for Verification with Concurrency Controllers to Air Traffic Control Software

Application of Design for Verification with Concurrency Controllers to Air Traffic Control Software Application of Design for Verification with Concurrency Controllers to Air Traffic Control Software Aysu Betin-Can Tevfik Bultan Computer Science Department University of California Santa Barbara, CA 93106,

More information

CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards

CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards Course Title: TeenCoder: Java Programming Course ISBN: 978 0 9887070 2 3 Course Year: 2015 Note: Citation(s) listed may represent

More information

State of the World - Statically Verifying API Usage Rule

State of the World - Statically Verifying API Usage Rule Statically Verifying API Usage Rule using Tracematches Xavier Noumbissi, Patrick Lam University of Waterloo November 4, 2010 (University of Waterloo) Statically Verifying API Usage Rule November 4, 2010

More information

Model Checking II Temporal Logic Model Checking

Model Checking II Temporal Logic Model Checking 1/32 Model Checking II Temporal Logic Model Checking Edmund M Clarke, Jr School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 2/32 Temporal Logic Model Checking Specification Language:

More information

Java EE Web Development Course Program

Java EE Web Development Course Program Java EE Web Development Course Program Part I Introduction to Programming 1. Introduction to programming. Compilers, interpreters, virtual machines. Primitive types, variables, basic operators, expressions,

More information

Model Checking based Software Verification

Model Checking based Software Verification Model Checking based Software Verification 18.5-2006 Keijo Heljanko Keijo.Heljanko@tkk.fi Department of Computer Science and Engineering Helsinki University of Technology http://www.tcs.tkk.fi/~kepa/ 1/24

More information

System requirements for ICS Skills ATS

System requirements for ICS Skills ATS System requirements for ICS Skills ATS A system requirements check verifies that the computer fulfils the requirements to run ICS Skills Automated tests. There are 4 possible checks that can be made prior

More information

Best Practices for Verification, Validation, and Test in Model- Based Design

Best Practices for Verification, Validation, and Test in Model- Based Design 2008-01-1469 Best Practices for Verification, Validation, and in Model- Based Design Copyright 2008 The MathWorks, Inc. Brett Murphy, Amory Wakefield, and Jon Friedman The MathWorks, Inc. ABSTRACT Model-Based

More information

How to Choose your Red Hat Enterprise Linux Filesystem

How to Choose your Red Hat Enterprise Linux Filesystem How to Choose your Red Hat Enterprise Linux Filesystem EXECUTIVE SUMMARY Choosing the Red Hat Enterprise Linux filesystem that is appropriate for your application is often a non-trivial decision due to

More information

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,

More information

Coverability for Parallel Programs

Coverability for Parallel Programs 2015 http://excel.fit.vutbr.cz Coverability for Parallel Programs Lenka Turoňová* Abstract We improve existing method for the automatic verification of systems with parallel running processes. The technique

More information

Rigorous Software Development CSCI-GA 3033-009

Rigorous Software Development CSCI-GA 3033-009 Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 5 Disclaimer. These notes are derived from notes originally developed by Joseph Kiniry, Gary Leavens, Erik Poll,

More information

Lecture 1 Introduction to Android

Lecture 1 Introduction to Android These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy

More information

InfiniteGraph: The Distributed Graph Database

InfiniteGraph: The Distributed Graph Database A Performance and Distributed Performance Benchmark of InfiniteGraph and a Leading Open Source Graph Database Using Synthetic Data Objectivity, Inc. 640 West California Ave. Suite 240 Sunnyvale, CA 94086

More information

Concurrent programming in Java

Concurrent programming in Java Concurrent programming in Java INF4140 04.10.12 Lecture 5 0 Book: Andrews - ch.05 (5.4) Book: Magee & Kramer ch.04 - ch.07 INF4140 (04.10.12) Concurrent programming in Java Lecture 5 1 / 33 Outline 1 Monitors:

More information

Software: Systems and. Application Software. Software and Hardware. Types of Software. Software can represent 75% or more of the total cost of an IS.

Software: Systems and. Application Software. Software and Hardware. Types of Software. Software can represent 75% or more of the total cost of an IS. C H A P T E R 4 Software: Systems and Application Software Software and Hardware Software can represent 75% or more of the total cost of an IS. Less costly hdwr. More complex sftwr. Expensive developers

More information

Storage Backup and Disaster Recovery: Using New Technology to Develop Best Practices

Storage Backup and Disaster Recovery: Using New Technology to Develop Best Practices Storage Backup and Disaster Recovery: Using New Technology to Develop Best Practices September 2008 Recent advances in data storage and data protection technology are nothing short of phenomenal. Today,

More information

Monitoring, Tracing, Debugging (Under Construction)

Monitoring, Tracing, Debugging (Under Construction) Monitoring, Tracing, Debugging (Under Construction) I was already tempted to drop this topic from my lecture on operating systems when I found Stephan Siemen's article "Top Speed" in Linux World 10/2003.

More information

Monitor-Konzepte. nach Brinch Hansen. Konzepte von Betriebssystem-Komponenten: Konkurrenz und Koordinierung in Manycore-Systemen.

Monitor-Konzepte. nach Brinch Hansen. Konzepte von Betriebssystem-Komponenten: Konkurrenz und Koordinierung in Manycore-Systemen. Konzepte von Betriebssystem-Komponenten: Konkurrenz und Koordinierung in Manycore-Systemen Monitor-Konzepte nach Brinch Hansen 18.07.2013 Krzysztof Mazur 2 Motivation Writing to a log file???? 3 Motivation

More information

All Your Code Belongs To Us Dismantling Android Secrets With CodeInspect. Steven Arzt. 04.10.2015 Secure Software Engineering Group Steven Arzt 1

All Your Code Belongs To Us Dismantling Android Secrets With CodeInspect. Steven Arzt. 04.10.2015 Secure Software Engineering Group Steven Arzt 1 All Your Code Belongs To Us Dismantling Android Secrets With CodeInspect Steven Arzt 04.10.2015 Secure Software Engineering Group Steven Arzt 1 04.10.2015 Secure Software Engineering Group Steven Arzt

More information

Software Verification for Space Applications Part 2. Autonomous Systems. G. Brat USRA/RIACS

Software Verification for Space Applications Part 2. Autonomous Systems. G. Brat USRA/RIACS Software Verification for Space Applications Part 2. Autonomous Systems G. Brat USRA/RIACS Main Objectives Implement a sustained and affordable human and robotic program to explore the solar system and

More information

Resurrecting Ada s Rendez-Vous in Java

Resurrecting Ada s Rendez-Vous in Java Resurrecting Ada s Rendez-Vous in Java Luis Mateu, José M. Piquer and Juan León DCC - Universidad de Chile Casilla 2777, Santiago, Chile lmateu@dcc.uchile.cl Abstract Java is a programming language designed

More information

Load Balancing MPI Algorithm for High Throughput Applications

Load Balancing MPI Algorithm for High Throughput Applications Load Balancing MPI Algorithm for High Throughput Applications Igor Grudenić, Stjepan Groš, Nikola Bogunović Faculty of Electrical Engineering and, University of Zagreb Unska 3, 10000 Zagreb, Croatia {igor.grudenic,

More information

IT Best Practices Audit TCS offers a wide range of IT Best Practices Audit content covering 15 subjects and over 2200 topics, including:

IT Best Practices Audit TCS offers a wide range of IT Best Practices Audit content covering 15 subjects and over 2200 topics, including: IT Best Practices Audit TCS offers a wide range of IT Best Practices Audit content covering 15 subjects and over 2200 topics, including: 1. IT Cost Containment 84 topics 2. Cloud Computing Readiness 225

More information

Effective Java Programming. efficient software development

Effective Java Programming. efficient software development Effective Java Programming efficient software development Structure efficient software development what is efficiency? development process profiling during development what determines the performance of

More information

Testing Decision Procedures for Security-by-Contract

Testing Decision Procedures for Security-by-Contract Testing Decision Procedures for Security-by-Contract Nataliia Bielova, Ida Siahaan University of Trento Joint Workshop on Foundations of Computer Security, Automated Reasoning for Security Protocol Analysis

More information

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

KITES TECHNOLOGY COURSE MODULE (C, C++, DS) KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php info@kitestechnology.com technologykites@gmail.com Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL

More information

Design Patterns in C++

Design Patterns in C++ Design Patterns in C++ Concurrency Patterns Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa May 4, 2011 G. Lipari (Scuola Superiore Sant Anna) Concurrency Patterns May 4,

More information

Erlang Testing and Tools Survey

Erlang Testing and Tools Survey Erlang Training and Consulting Ltd Erlang Testing and Tools Survey Aniko Nagyné Víg and Tamás Nagy Victoria, British Columbia, Canada, 27 Sept 2008 Agenda 1 What we are doing and why Goals and tasks Market

More information

Software Quality Exercise 1

Software Quality Exercise 1 Software Quality Exercise Model Checking Information. Dates Release: 7.0.0.5pm Deadline: 07.0.0.5pm Discussion:.0.0. Formalities While this exercise can be solved and handed in in groups of three, every

More information

Lecture 6: Introduction to Monitors and Semaphores

Lecture 6: Introduction to Monitors and Semaphores Concurrent Programming 19530-V (WS01) Lecture 6: Introduction to Monitors and Semaphores Dr. Richard S. Hall rickhall@inf.fu-berlin.de Concurrent programming November 27, 2001 Abstracting Locking Details

More information

Introduction to Automated Testing

Introduction to Automated Testing Introduction to Automated Testing What is Software testing? Examination of a software unit, several integrated software units or an entire software package by running it. execution based on test cases

More information

Secure Software Programming and Vulnerability Analysis

Secure Software Programming and Vulnerability Analysis Secure Software Programming and Vulnerability Analysis Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Testing and Source Code Auditing Secure Software Programming 2 Overview

More information

Development Environment and Tools for Java. Brian Hughes IBM

Development Environment and Tools for Java. Brian Hughes IBM Development Environment and Tools for Java Brian Hughes IBM 1 Acknowledgements and Disclaimers Availability. References in this presentation to IBM products, programs, or services do not imply that they

More information

Model Checking of Software

Model Checking of Software Model Checking of Software Patrice Godefroid Bell Laboratories, Lucent Technologies SpecNCheck Page 1 August 2001 A Brief History of Model Checking Prehistory: transformational programs and theorem proving

More information

Multi-Channel Clustered Web Application Servers

Multi-Channel Clustered Web Application Servers THE AMERICAN UNIVERSITY IN CAIRO SCHOOL OF SCIENCES AND ENGINEERING Multi-Channel Clustered Web Application Servers A Masters Thesis Department of Computer Science and Engineering Status Report Seminar

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6.5 User Guide P/N 300 007 217 A02 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All rights

More information

SimWebLink.NET Remote Control and Monitoring in the Simulink

SimWebLink.NET Remote Control and Monitoring in the Simulink SimWebLink.NET Remote Control and Monitoring in the Simulink MARTIN SYSEL, MICHAL VACLAVSKY Department of Computer and Communication Systems Faculty of Applied Informatics Tomas Bata University in Zlín

More information

Component visualization methods for large legacy software in C/C++

Component visualization methods for large legacy software in C/C++ Annales Mathematicae et Informaticae 44 (2015) pp. 23 33 http://ami.ektf.hu Component visualization methods for large legacy software in C/C++ Máté Cserép a, Dániel Krupp b a Eötvös Loránd University mcserep@caesar.elte.hu

More information

Projectory A Framework for teaching Object Oriented Design and Object Oriented Programming

Projectory A Framework for teaching Object Oriented Design and Object Oriented Programming Projectory A Framework for teaching Object Oriented Design and Object Oriented Programming ElanLunch@L3S, 3.05.003 Jens Gößner, Thomas Mück Educational Setting To learn the construction of object-oriented

More information

Automaton Programming and Inheritance of Automata

Automaton Programming and Inheritance of Automata Declarative Approach to Implementing Automata Classes in Imperative Programming Languages Artyom Astafurov, Anatoly Shalyto (research supervisor), Fac. of Information Technologies and Programming St. Petersburg

More information

Software Development In the Cloud Cloud management and ALM

Software Development In the Cloud Cloud management and ALM Software Development In the Cloud Cloud management and ALM First published in Dr. Dobb's Journal, February 2009: http://www.ddj.com/development-tools/212900736 Nick Gulrajani is a Senior Solutions Architect

More information

Comprehensive Static Analysis Using Polyspace Products. A Solution to Today s Embedded Software Verification Challenges WHITE PAPER

Comprehensive Static Analysis Using Polyspace Products. A Solution to Today s Embedded Software Verification Challenges WHITE PAPER Comprehensive Static Analysis Using Polyspace Products A Solution to Today s Embedded Software Verification Challenges WHITE PAPER Introduction Verification of embedded software is a difficult task, made

More information

Smart Shopping- An Android Based Shopping Application

Smart Shopping- An Android Based Shopping Application Smart Shopping- An Android Based Shopping Application 1 Adarsh Borkar, 2 Madhura Ansingkar, 3 Monali Khobragade, 4 Pooja Nashikkar, 5 Arti Raut 1,2,3,4 Department of Computer Science and Engineering, 5

More information

Module 8. Industrial Embedded and Communication Systems. Version 2 EE IIT, Kharagpur 1

Module 8. Industrial Embedded and Communication Systems. Version 2 EE IIT, Kharagpur 1 Module 8 Industrial Embedded and Communication Systems Version 2 EE IIT, Kharagpur 1 Lesson 37 Real-Time Operating Systems: Introduction and Process Management Version 2 EE IIT, Kharagpur 2 Instructional

More information

Main Reference : Hall, James A. 2011. Information Technology Auditing and Assurance, 3 rd Edition, Florida, USA : Auerbach Publications

Main Reference : Hall, James A. 2011. Information Technology Auditing and Assurance, 3 rd Edition, Florida, USA : Auerbach Publications Main Reference : Hall, James A. 2011. Information Technology Auditing and Assurance, 3 rd Edition, Florida, USA : Auerbach Publications Suggested Reference : Senft, Sandra; Gallegos, Frederick., 2009.

More information

Chapter 6: Programming Languages

Chapter 6: Programming Languages Chapter 6: Programming Languages Computer Science: An Overview Eleventh Edition by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Chapter 6: Programming Languages 6.1 Historical Perspective

More information

An Open Source Wide-Area Distributed File System. Jeffrey Eric Altman jaltman *at* secure-endpoints *dot* com

An Open Source Wide-Area Distributed File System. Jeffrey Eric Altman jaltman *at* secure-endpoints *dot* com An Open Source Wide-Area Distributed File System Jeffrey Eric Altman jaltman *at* secure-endpoints *dot* com What is AFS? A global wide-area Distributed File System providing location independent authenticated

More information

CS Standards Crosswalk: CSTA K-12 Computer Science Standards and Oracle Java Programming (2014)

CS Standards Crosswalk: CSTA K-12 Computer Science Standards and Oracle Java Programming (2014) CS Standards Crosswalk: CSTA K-12 Computer Science Standards and Oracle Java Programming (2014) CSTA Website Oracle Website Oracle Contact http://csta.acm.org/curriculum/sub/k12standards.html https://academy.oracle.com/oa-web-introcs-curriculum.html

More information

Leveraging Integrated Tools for Model-Based Analysis of Service Compositions

Leveraging Integrated Tools for Model-Based Analysis of Service Compositions Leveraging Integrated Tools for Model-Based Analysis of Service Compositions Howard Foster and Philip Mayer London Software Systems, Imperial College London London, United Kingdom Ludwig-Maximilians-Universität,

More information

On the Ubiquity of Logging in Distributed File Systems

On the Ubiquity of Logging in Distributed File Systems On the Ubiquity of Logging in Distributed File Systems M. Satyanarayanan James J. Kistler Puneet Kumar Hank Mashburn School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 Logging is

More information

Frysk The Systems Monitoring and Debugging Tool. Andrew Cagney

Frysk The Systems Monitoring and Debugging Tool. Andrew Cagney Frysk The Systems Monitoring and Debugging Tool Andrew Cagney Agenda Two Use Cases Motivation Comparison with Existing Free Technologies The Frysk Architecture and GUI Command Line Utilities Current Status

More information

02 B The Java Virtual Machine

02 B The Java Virtual Machine 02 B The Java Virtual Machine CS1102S: Data Structures and Algorithms Martin Henz January 22, 2010 Generated on Friday 22 nd January, 2010, 09:46 CS1102S: Data Structures and Algorithms 02 B The Java Virtual

More information

Performance Testing Process A Whitepaper

Performance Testing Process A Whitepaper Process A Whitepaper Copyright 2006. Technologies Pvt. Ltd. All Rights Reserved. is a registered trademark of, Inc. All other trademarks are owned by the respective owners. Proprietary Table of Contents

More information

Introduction to Programming System Design. CSCI 455x (4 Units)

Introduction to Programming System Design. CSCI 455x (4 Units) Introduction to Programming System Design CSCI 455x (4 Units) Description This course covers programming in Java and C++. Topics include review of basic programming concepts such as control structures,

More information

CSCI E 98: Managed Environments for the Execution of Programs

CSCI E 98: Managed Environments for the Execution of Programs CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office

More information

Petascale Software Challenges. Piyush Chaudhary piyushc@us.ibm.com High Performance Computing

Petascale Software Challenges. Piyush Chaudhary piyushc@us.ibm.com High Performance Computing Petascale Software Challenges Piyush Chaudhary piyushc@us.ibm.com High Performance Computing Fundamental Observations Applications are struggling to realize growth in sustained performance at scale Reasons

More information