Run-Time Assertion Checking and Monitoring Java Programs
|
|
|
- Anastasia Payne
- 10 years ago
- Views:
Transcription
1 Run-Time Assertion Checking and Monitoring Java Programs Envisage Bertinoro Summer School June 2014 June 19, 2014
2 Your Lecturers Today Frank en Stijn
3 What This Talk Is All About Formal Methods in Practice: Theorie ist, wenn man alles weiss und nichts klappt. Praxis ist, wenn alles klappt und keiner weiss warum.
4 What Fails In Practice: Run-Time Assertion Checking Take for example JML (citing Peter Wong) Stability of tooling IDE support e.g. on-the-fly parsing and type checking, navigability between specifcations and source codes Maintainability of specification due to constant code change Error reporting and analysis See also Run-time checking of data- and protocol-oriented properties of Java programs: an industrial case study. Stijn de Gouw, Frank S. de Boer, Peter Y. H. Wong and Einar Broch Johnsen. SAC 2013.
5 Outline Formal Specification: Assertions Behavioral Abstraction Run-time checking of data- and protocol-oriented properties Tooling
6 What? Formal Specfification? Assertions?
7 Industrial Relevance National Institute of Standards and Technology (NIST): Software errors cost us approximately $60 billion per year in lost productivity, increased time to market costs, higher market transaction costs, etc. If allowed to continue unchecked this problem s costs may get much worse. Managerial Misconceptions: Software development is not an art, and programmers are not artists, despite any claims to the contrary. Management has come to believe the first and most important misconception: that it is impossible to ship software devoid of errors in a cost-effective way.
8 What Makes Software Buggy? An imperative program describes how a problem can be solved by a computer.
9 The Von Neumann Architecture of Imperative Programming
10 What The Hack Are You Doing? What does the following program compute, assuming that the initial value of x is greater than or equal to 0? y := 0; u := 0; v := 1; while u + v x do y := y + 1; u := u + v; v := v + 2 od
11 Debugging: Let it Flow x y u v What s the relation between the values of x, y, u and v?..
12 Robert Floyd Introduced Assertions For Program Specification in the Seventies y 2 x < (y + 1) 2
13 Edsger Dijkstra Introduced Structured Programming Debugging only shows that a program is incorrect.
14 Sir. Tony Hoare Developed a First Programming Logic {P}S{Q}
15 Design by Contract Caller = Client and Callee = Supplier in Method calls in object-oriented programs Designer must formally specify for each method: What does it expect? (precondition) What does it guarantee?(postcondition) What does it maintain? (invariant) Main idea: Formal specification of contracts by assertions, i.e. logical formulas
16 Design by Contract in Practice Object-oriented programming language Eiffel introduced by the company Eiffel Software. The Java Modelling Language JML supports run-time assertion checking. Spec# is a formal language for API contracts developed and used by Microsoft. Object Constraint Language (OCL) for the specification of UML diagrams
17 Behavioral Abstraction (Information Hiding) State of the Art (= state-based) Getters: Get X Model variables (JML): public model instance JMLObjectBag elementsinqueue
18 Formal Semantics: Full Abstraction That is, Minimal information required for compositionality smallest congruence containing operational equivalence: for every context C[ ] S S if and only if O(C[S]) = O(C[S ]),
19 Compositionality Java Programs Two perspectives: Threads (stack: shared-variable concurrency) Classes (Objects) (monitor: message passing)
20 Compositionality Shared Variable Concurrency (Multi-threading) Initial/final state semantics is not compositional: O(x := x + 1; x := x + 1) = O(x := x + 2) but O(x := x + 1; x := x + 1 x := 0) O(x := x + 2 x := 0) We need reactive sequences: and R(x := x + 1) = { σ, σ[x := σ(x) + 1] σ Σ} R(S 1 S 2 ) = R(S 1 ) R(S 2 ) where denotes interleaving. See Reasoning about Recursive Processes in Shared-Variable Concurrency. F.S. de Boer. LNCS 5930, 2010.
21 Compositional Proof Theory for Communicating Sequential Processes (CSP) From non-compositional: Communication Assumptions {p}c?x{q} and {p}c!e{q} Cooperation Test {p} c!e {q} {p } c?x {q } to compositional by means of histories (or traces) Communication Axioms Example: See } {p p }x := e{q q } { x.p[h (c, x)/h]}c?x{q} and {p[h (c, e)/h]}c!e{q} {[h] c = ɛ}c?x{[h] c = (c, x)} {[h] c = ɛ}c!0{[h] c = (c, 0)} {[h] c = ɛ}c?x c!0{[h] c = (c, x) [h] c = (c, 0)} An assertion-based proof system for multithreaded Java by Abraham, de Boer, de Roever and Steffen, in TCS, Vol. 331, 2005.
22 A Short History of Histories Proofs of networks of processes by Misra and Chandy, in IEEE Transactions on Sofware Engineering, Formal justification of a proof system for CSP by K.R. Apt in J.ACM, Vol 30, A theory of communicating sequential processes, by Brookes, Hoare and Roscoe, in J. ACM, Vol. 31, Compositionality and concurrent networks: soundness and completeness of a proof system by Zwiers, de Roever and van Emde Boas, in LNCS, Vol. 194, Fully abstract trace semantics for a core Java language by Jeffrey and Rathke, in LNCS, Vol. 344, Object Connectivity and Full Abstraction for a Concurrent Calculus of Classes. Erika Ábrahám, Marcello M. Bonsangue, Frank S. de Boer, Martin Steffen: ICTAC 2004: 37-51
23 The Very Nature of Object-Orientation Inherently Parallel (even If Sequential)
24 Run-Time Assertion Checking Requires Executable assertions But what we want (need badly) is combining data- and protocol-oriented properties
25 Main Idea Grammars to specify protocols (= formal languages) Main problem/challenge: Integration grammars in assertion checking that works in practice
26 Specifying Interfaces in Java: A Running Example interface Stack { void push(object item); Object pop(); }
27 The Modelling Framework: Messages call-push Attributes public Object item return-push Attributes public Object item call-pop Attributes public Object item return-pop Attributes public Object result
28 The Modelling Framework: Communication Views Partial mappings from call and return events to tokens
29 Communication Views: An Example view StackHistory { return void push(object item) push, return Object pop() pop }
30 General Properties of Communication Views Multiple views for interfaces Multiple views for classes/components (provided/required methods) User-defined event names Abstraction of irrelevant events Identifying different events Distinguishing different events using method signatures (method overloading)
31 The Modelling Framework: Attribute Grammars class EList extends List { public EList append(object element) public EList append(elist list) } Elist stack S ::= push S 1 stack = S 1.stack.append(push.item) S 1 S 2 stack = S 2.stack.append(S 1.Stack) B stack = new EList() B ::= push B pop ɛ
32 Example Parse tree of sequence of tokens push(5) push(7) pop(7) S S.stack=5 push 5 S S.stack=<> push B pop 7 7
33 The Modelling Framework: Interface Specifications interface Stack { //@ public model instance StackHistory history; //@ ensures history.stack() == \old(history.stack()).append(item); void push(object item); //@ requires history.stack().size! = 0; //@ ensures history.stack() = \old(history.stack()).tail(); //@ ensures \result == \old(history.stack()).head(); Object pop()
34 The Modelling Framework: Summary ATTRIBUTE GRAMMAR ATTRIBUTES HISTORY TERMINALS VIEW MODEL FIELDS MESSAGE TYPES INTERFACE SPECIFICATION JML
35 Run-Time Assertion Checking: Method Invocation Program JML API History (instance) Parser Check Precondition Incoming Method Call Get Attributes Attribute values Triggers New Attribute values Program JML API History (instance) Parser
36 Run-Time Assertion Checking: Method Return Program History (instance) Parser JML API stdout Method Return Triggers Attribute values Check Postcondition Get Attributes Attribute values Assertion Failure Program History (instance) Parser JML API stdout
37 Attribute Grammars as Behavioral Types Another Example: Specifying the BufferedReader class Class BufferedReader { BufferedReader(Reader in); void close(); String readline();... } Communication View: view BufferedReaderHistory { new(reader in) open, call String readline() read, call void close() close }
38 Extended Attribute Grammar modeling the behavior of a BufferedReader BufferedReader can only be read when opened and before closed. BufferedReader can only be closed by the object that opened it: S ::= open C assert open.caller!= null ==> open.caller == C.caller; ɛ C ::= read C 1 C.caller = C 1.caller; close S C.caller = close.caller; ɛ C.caller = null;
39 Summarizing Attribute grammars provide a systematic approach for specifying histories which allows a declarative expression of complex properties of histories and seamlessly combines specification of protocol oriented properties (grammar) data-oriented properties (attributes) into a single formalism.
40
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,
VDM vs. Programming Language Extensions or their Integration
VDM vs. Programming Language Extensions or their Integration Alexander A. Koptelov and Alexander K. Petrenko Institute for System Programming of Russian Academy of Sciences (ISPRAS), B. Communisticheskaya,
Verifying Semantic of System Composition for an Aspect-Oriented Approach
2012 International Conference on System Engineering and Modeling (ICSEM 2012) IPCSIT vol. 34 (2012) (2012) IACSIT Press, Singapore Verifying Semantic of System Composition for an Aspect-Oriented Approach
A Framework for the Semantics of Behavioral Contracts
A Framework for the Semantics of Behavioral Contracts Ashley McNeile Metamaxim Ltd, 48 Brunswick Gardens, London W8 4AN, UK [email protected] Abstract. Contracts have proved a powerful concept
Rigorous Software Engineering Hoare Logic and Design by Contracts
Rigorous Software Engineering Hoare Logic and Design by Contracts Simão Melo de Sousa RELEASE (UBI), LIACC (Porto) Computer Science Department University of Beira Interior, Portugal 2010-2011 S. Melo de
Rigorous Software Development CSCI-GA 3033-009
Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 11 Semantics of Programming Languages Denotational Semantics Meaning of a program is defined as the mathematical
Programming by Contract vs. Defensive Programming: A Comparison of Run-time Performance and Complexity
Department of Computer Science Roger Andersson Patrick Jungner Programming by Contract vs. Defensive Programming: A Comparison of Run-time Performance and Complexity Master s Thesis 2003:03 Programming
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
Design by Contract beyond class modelling
Design by Contract beyond class modelling Introduction Design by Contract (DbC) or Programming by Contract is an approach to designing software. It says that designers should define precise and verifiable
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
Specification and Analysis of Contracts Lecture 1 Introduction
Specification and Analysis of Contracts Lecture 1 Introduction Gerardo Schneider [email protected] http://folk.uio.no/gerardo/ Department of Informatics, University of Oslo SEFM School, Oct. 27 - Nov.
DIRECT PH.D. (POST B.S.) IN COMPUTER SCIENCE PROGRAM
DIRECT PH.D. (POST B.S.) IN COMPUTER SCIENCE PROGRAM OVERVIEW ADMISSION REQUIREMENTS PROGRAM REQUIREMENTS OVERVIEW FOR THE DIRECT PH.D. IN COMPUTER SCIENCE The Direct Ph.D. in Computer Science program
An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases
An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases Paul L. Bergstein, Priyanka Gariba, Vaibhavi Pisolkar, and Sheetal Subbanwad Dept. of Computer and Information Science,
Monitors, Java, Threads and Processes
Monitors, Java, Threads and Processes 185 An object-oriented view of shared memory A semaphore can be seen as a shared object accessible through two methods: wait and signal. The idea behind the concept
Glossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
Constructing Contracts: Making Discrete Mathematics Relevant to Beginning Programmers
Constructing Contracts: Making Discrete Mathematics Relevant to Beginning Programmers TIMOTHY S. GEGG-HARRISON Winona State University Although computer scientists understand the importance of discrete
StaRVOOrS: A Tool for Combined Static and Runtime Verification of Java
StaRVOOrS: A Tool for Combined Static and Runtime Verification of Java Jesús Mauricio Chimento 1, Wolfgang Ahrendt 1, Gordon J. Pace 2, and Gerardo Schneider 3 1 Chalmers University of Technology, Sweden.
Computer Science. General Education Students must complete the requirements shown in the General Education Requirements section of this catalog.
Computer Science Dr. Ilhyun Lee Professor Dr. Ilhyun Lee is a Professor of Computer Science. He received his Ph.D. degree from Illinois Institute of Technology, Chicago, Illinois (1996). He was selected
Java Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
02-201: Programming for Scientists
1. Course Information 1.1 Course description 02-201: Programming for Scientists Carl Kingsford Fall 2015 Provides a practical introduction to programming for students with little or no prior programming
How To Write A Test Engine For A Microsoft Microsoft Web Browser (Php) For A Web Browser For A Non-Procedural Reason)
Praspel: A Specification Language for Contract-Driven Testing in PHP Ivan Enderlin Frédéric Dadeau Alain Giorgetti Abdallah Ben Othman October 27th, 2011 Meetings: LTP MTVV Ivan Enderlin, Frédéric Dadeau,
Structure of Presentation. Stages in Teaching Formal Methods. Motivation (1) Motivation (2) The Scope of Formal Methods (1)
Stages in Teaching Formal Methods A. J. Cowling Structure of Presentation Introduction to Issues Motivation for this work. Analysis of the Role of Formal Methods Define their scope; Review their treatment
Safe Locking for Multi-threaded Java
Safe Locking for Multi-threaded Java Einar Broch Johnsen, Thi Mai Thuong Tran, Olaf Owe, Martin Steffen University of Oslo, Norway NWPT 10 10-12 November, 2010 Motivation Concurrency control mechanisms
Software Component Specification Using Design by Contract
Software Component Specification Using Design by Contract Yi Liu and H. Conrad Cunningham Department of Computer and Information Science University of Mississippi 237 Kinard Hall University, MS 38677 USA
Challenges and Opportunities for formal specifications in Service Oriented Architectures
ACSD ATPN Xi an China June 2008 Challenges and Opportunities for formal specifications in Service Oriented Architectures Gustavo Alonso Systems Group Department of Computer Science Swiss Federal Institute
Lecture 1: Introduction
Programming Languages Lecture 1: Introduction Benjamin J. Keller Department of Computer Science, Virginia Tech Programming Languages Lecture 1 Introduction 2 Lecture Outline Preview History of Programming
1.1 WHAT IS A PROGRAMMING LANGUAGE?
1 INTRODUCTION 1.1 What is a Programming Language? 1.2 Abstractions in Programming Languages 1.3 Computational Paradigms 1.4 Language Definition 1.5 Language Translation 1.6 Language Design How we communicate
Unified Static and Runtime Verification of Object-Oriented Software
Unified Static and Runtime Verification of Object-Oriented Software Wolfgang Ahrendt 1, Mauricio Chimento 1, Gerardo Schneider 2, Gordon J. Pace 3 1 Chalmers University of Technology, Gothenburg, Sweden
Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g
Systems Integration: Component-based software engineering Objectives To explain that CBSE is concerned with developing standardised components and composing these into applications To describe components
SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems
SOFT 437 Software Performance Analysis Ch 5:Web Applications and Other Distributed Systems Outline Overview of Web applications, distributed object technologies, and the important considerations for SPE
Formal Engineering for Industrial Software Development
Shaoying Liu Formal Engineering for Industrial Software Development Using the SOFL Method With 90 Figures and 30 Tables Springer Contents Introduction 1 1.1 Software Life Cycle... 2 1.2 The Problem 4 1.3
Advances in Programming Languages
Advances in Programming Languages Lecture 13: Certifying Correctness Ian Stark School of Informatics The University of Edinburgh Tuesday 4 November 2014 Semester 1 Week 8 http://www.inf.ed.ac.uk/teaching/courses/apl
A Hoare Logic for Monitors in Java
INSTITUT FÜR INFORMATIK UND PRAKTISCHE MATHEMATIK EHRSTUH FÜR SOFTWARETECHNOOIE A Hoare ogic for Monitors in Java Erika Ábrahám Frank S. de Boer Willem-Paul de Roever Martin Steffen Bericht Nr. TR-ST-03-1
Fundamentals of Java Programming
Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors
Resource-Aware Applications for the Cloud
Resource-Aware Applications for the Cloud Reiner Hähnle 1 and Einar Broch Johnsen 2 1 Technical University of Darmstadt, Germany [email protected] 2 University of Oslo, Norway [email protected]
Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification
Introduction Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Advanced Topics in Software Engineering 1 Concurrent Programs Characterized by
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
BCS Higher Education Qualifications. Professional Graduate Diploma in IT. Programming Paradigms Syllabus
BCS Higher Education Qualifications Professional Graduate Diploma in IT Programming Paradigms Syllabus Version: 180516 Contents 1. Change History 3 2. Rationale 3 3. Aims 3 4. Objectives 3 5. Prior Knowledge
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
Programming Without a Call Stack: Event-driven Architectures
Gregor Hohpe Google Programming Without a Call Stack: -driven Architectures www.eaipatterns.com Who's Gregor? Distributed systems, enterprise integration, service-oriented architectures MQ, MSMQ, JMS,
2010-2011 Assessment for Master s Degree Program Fall 2010 - Spring 2011 Computer Science Dept. Texas A&M University - Commerce
2010-2011 Assessment for Master s Degree Program Fall 2010 - Spring 2011 Computer Science Dept. Texas A&M University - Commerce Program Objective #1 (PO1):Students will be able to demonstrate a broad knowledge
C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln.
Koln C#5.0 IN A NUTSHELL Fifth Edition Joseph Albahari and Ben Albahari O'REILLY Beijing Cambridge Farnham Sebastopol Tokyo Table of Contents Preface xi 1. Introducing C# and the.net Framework 1 Object
A Structured Methodology For Spreadsheet Modelling
A Structured Methodology For Spreadsheet Modelling ABSTRACT Brian Knight, David Chadwick, Kamalesen Rajalingham University of Greenwich, Information Integrity Research Centre, School of Computing and Mathematics,
Construct by Contract: Construct by Contract: An Approach for Developing Reliable Software
Construct by Contract: Construct by Contract: An Approach for Developing Reliable Software Juan Jose Mendoza Santana Dissertation 2013 Erasmus Mundus MSc in Dependable Software Systems Department of Computer
Meta Model Based Integration of Role-Based and Discretionary Access Control Using Path Expressions
Meta Model Based Integration of Role-Based and Discretionary Access Control Using Path Expressions Kathrin Lehmann, Florian Matthes Chair for Software Engineering for Business Information Systems Technische
Quotes from Object-Oriented Software Construction
Quotes from Object-Oriented Software Construction Bertrand Meyer Prentice-Hall, 1988 Preface, p. xiv We study the object-oriented approach as a set of principles, methods and tools which can be instrumental
Useful Patterns for BPEL Developers
Central Page 457 of 493 Useful Patterns for BPEL Developers Darko Andročec, Dragutin Kermek Faculty of Organization and Informatics University of Zagreb Pavlinska 2, 42000 {darko.androcec, dragutin.kermek}@foi.hr
Lecture 9. Semantic Analysis Scoping and Symbol Table
Lecture 9. Semantic Analysis Scoping and Symbol Table Wei Le 2015.10 Outline Semantic analysis Scoping The Role of Symbol Table Implementing a Symbol Table Semantic Analysis Parser builds abstract syntax
MSc Information Technology - E521
MSc Information Technology - E521 1. Aims and Objectives This conversion programme targets non-engineering graduates with a view of preparing them for the employment market where up-to-date IT skills represent
LIACS Fundamentals. Jetty Kleijn Informatica Bachelorklas 2015-12-01
LIACS Fundamentals Jetty Kleijn Informatica Bachelorklas 2015-12-01 Discover the Discover world at the Leiden world University at Leiden University Research at LIACS Two clusters Algorithms and Software
Adapting C++ Exception Handling to an Extended COM Exception Model
Adapting C++ Exception Handling to an Extended COM Exception Model Bjørn Egil Hansen DNV AS, DT 990 Risk Management Software Palace House, 3 Cathedral Street, London SE1 9DE, UK [email protected]
Fully Abstract Operation Contracts
Fully Abstract Operation Contracts Richard Bubel, Reiner Hähnle, and Maria Pelevina Department of Computer Science Technical University of Darmstadt bubel [email protected] [email protected]
Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages
ICOM 4036 Programming Languages Preliminaries Dr. Amirhossein Chinaei Dept. of Electrical & Computer Engineering UPRM Spring 2010 Language Evaluation Criteria Readability: the ease with which programs
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 [email protected]
Business Rule Standards -- Interoperability and Portability
Rule Standards -- Interoperability and Portability April 2005 Mark H. Linehan Senior Technical Staff Member IBM Software Group Emerging Technology [email protected] Donald F. Ferguson IBM Fellow Software
Applications of formal verification for secure Cloud environments at CEA LIST
Applications of formal verification for secure Cloud environments at CEA LIST Nikolai Kosmatov joint work with A.Blanchard, F.Bobot, M.Lemerre,... SEC2, Lille, June 30 th, 2015 N. Kosmatov (CEA LIST) Formal
Analysis of the Specifics for a Business Rules Engine Based Projects
Analysis of the Specifics for a Business Rules Engine Based Projects By Dmitri Ilkaev and Dan Meenan Introduction In recent years business rules engines (BRE) have become a key component in almost every
Static vs. Dynamic. Lecture 10: Static Semantics Overview 1. Typical Semantic Errors: Java, C++ Typical Tasks of the Semantic Analyzer
Lecture 10: Static Semantics Overview 1 Lexical analysis Produces tokens Detects & eliminates illegal tokens Parsing Produces trees Detects & eliminates ill-formed parse trees Static semantic analysis
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
Programming Language Pragmatics
Programming Language Pragmatics THIRD EDITION Michael L. Scott Department of Computer Science University of Rochester ^ШШШШШ AMSTERDAM BOSTON HEIDELBERG LONDON, '-*i» ЩЛ< ^ ' m H NEW YORK «OXFORD «PARIS»SAN
On the Relation between Design Contracts and Errors: A Software Development Strategy
On the Relation between Design Contracts and Errors: A Software Development Strategy Eivind J. Nordby, Martin Blom, Anna Brunstrom Computer Science, Karlstad University SE-651 88 Karlstad, Sweden {Eivind.Nordby,
PROPERTECHNIQUEOFSOFTWARE INSPECTIONUSING GUARDED COMMANDLANGUAGE
International Journal of Computer ScienceandCommunication Vol. 2, No. 1, January-June2011, pp. 153-157 PROPERTECHNIQUEOFSOFTWARE INSPECTIONUSING GUARDED COMMANDLANGUAGE Neeraj Kumar Singhania University,
Composing Concerns with a Framework Approach
Composing Concerns with a Framework Approach Constantinos A. Constantinides 1,2 and Tzilla Elrad 2 1 Mathematical and Computer Sciences Department Loyola University Chicago [email protected] 2 Concurrent
Real Time Programming: Concepts
Real Time Programming: Concepts Radek Pelánek Plan at first we will study basic concepts related to real time programming then we will have a look at specific programming languages and study how they realize
Software Specification and Testing
Software Specification and Testing Using UML and OCL Jonathan Milley Faculty of Engineering and Applied Science MUN St. John s, Newfoundland Email: [email protected] Dr. Dennis K. Peters Faculty of Engineering
Automated Program Behavior Analysis
Automated Program Behavior Analysis Stacy Prowell [email protected] March 2005 SQRL / SEI Motivation: Semantics Development: Most engineering designs are subjected to extensive analysis; software is
Monitoring Method Call Sequences using Annotations
Monitoring Method Call Sequences using Annotations B. Nobakht 1, M.M. Bonsangue 1,2, F.S. de Boer 1,2, and S. de Gouw 1,2 1 Leiden Institute of Advanced Computing, Universiteit Leiden, Niels Bohrweg 1,
Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students
Eastern Washington University Department of Computer Science Questionnaire for Prospective Masters in Computer Science Students I. Personal Information Name: Last First M.I. Mailing Address: Permanent
Integration of Application Business Logic and Business Rules with DSL and AOP
Integration of Application Business Logic and Business Rules with DSL and AOP Bogumiła Hnatkowska and Krzysztof Kasprzyk Wroclaw University of Technology, Wyb. Wyspianskiego 27 50-370 Wroclaw, Poland [email protected]
Software Verification and Testing. Lecture Notes: Temporal Logics
Software Verification and Testing Lecture Notes: Temporal Logics Motivation traditional programs (whether terminating or non-terminating) can be modelled as relations are analysed wrt their input/output
Hoare-Style Monitors for Java
Hoare-Style Monitors for Java Theodore S Norvell Electrical and Computer Engineering Memorial University February 17, 2006 1 Hoare-Style Monitors Coordinating the interactions of two or more threads can
A Case Study on Model-Driven and Conventional Software Development: The Palladio Editor
A Case Study on Model-Driven and Conventional Software Development: The Palladio Editor Klaus Krogmann, Steffen Becker University of Karlsruhe (TH) {krogmann, sbecker}@ipd.uka.de Abstract: The actual benefits
What is a programming language?
Overview Introduction Motivation Why study programming languages? Some key concepts What is a programming language? Artificial language" Computers" Programs" Syntax" Semantics" What is a programming language?...there
Deployment Pattern. Youngsu Son 1,JiwonKim 2, DongukKim 3, Jinho Jang 4
Deployment Pattern Youngsu Son 1,JiwonKim 2, DongukKim 3, Jinho Jang 4 Samsung Electronics 1,2,3, Hanyang University 4 alroad.son 1, jiwon.ss.kim 2, dude.kim 3 @samsung.net, [email protected] 4
CONSTRAINT-BASED DATA QUALITY MANAGEMENT FRAMEWORK FOR OBJECT DATABASES
CONSTRAINT-BASED DATA QUALITY MANAGEMENT FRAMEWORK FOR OBJECT DATABASES Weber, David, ETH Zurich, Universitaetstrasse 6, 8092 Zurich, Switzerland, [email protected] Leone, Stefania, ETH Zurich, Universitaetstrasse
Chapter 1: Introduction
Chapter 1: Introduction Database System Concepts, 5th Ed. See www.db book.com for conditions on re use Chapter 1: Introduction Purpose of Database Systems View of Data Database Languages Relational Databases
KITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php [email protected] [email protected] Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
Information Systems. Administered by the Department of Mathematical and Computing Sciences within the College of Arts and Sciences.
Information Systems Dr. Haesun Lee Professor Dr. Haesun Lee is a Professor of Computer Science. She received her Ph.D. degree from Illinois Institute of Technology, Chicago, Illinois (1997). Her primary
3 Extending the Refinement Calculus
Building BSP Programs Using the Refinement Calculus D.B. Skillicorn? Department of Computing and Information Science Queen s University, Kingston, Canada [email protected] Abstract. We extend the
Regular Expressions with Nested Levels of Back Referencing Form a Hierarchy
Regular Expressions with Nested Levels of Back Referencing Form a Hierarchy Kim S. Larsen Odense University Abstract For many years, regular expressions with back referencing have been used in a variety
Hochschule Esslingen University of Applied Sciences
Hochschule Esslingen University of Applied Sciences Campus Göppingen Campus Hilltop Faculty of Engineering Management Faculty of Information Technology - English Lectures - English Lectures Core Courses:
University of Dayton Department of Computer Science Undergraduate Programs Assessment Plan DRAFT September 14, 2011
University of Dayton Department of Computer Science Undergraduate Programs Assessment Plan DRAFT September 14, 2011 Department Mission The Department of Computer Science in the College of Arts and Sciences
AndroLIFT: A Tool for Android Application Life Cycles
AndroLIFT: A Tool for Android Application Life Cycles Dominik Franke, Tobias Royé, and Stefan Kowalewski Embedded Software Laboratory Ahornstraße 55, 52074 Aachen, Germany { franke, roye, kowalewski}@embedded.rwth-aachen.de
Scoping (Readings 7.1,7.4,7.6) Parameter passing methods (7.5) Building symbol tables (7.6)
Semantic Analysis Scoping (Readings 7.1,7.4,7.6) Static Dynamic Parameter passing methods (7.5) Building symbol tables (7.6) How to use them to find multiply-declared and undeclared variables Type checking
Agile Specification-Driven Development
Agile Specification-Driven Development Jonathan S. Ostroff 1, David Makalsky 1, and Richard F. Paige 2 1 Department of Computer Science, York University, Canada. {jonathan, dm}@cs.yorku.ca 2 Department
