Master Thesis Project Plan. Reusable Mathematical Models

Size: px
Start display at page:

Download "Master Thesis Project Plan. Reusable Mathematical Models"

Transcription

1 Master Thesis Project Plan Reusable Mathematical Models Tobias K. Widmer Supervisors: Prof. Dr. B. Meyer B. Schoeller Chair of Software Engineering Department of Computer Science, ETH Zurich January 13, 2004

2 Chapter 1 Project Description 1.1 Overview Proving programs in a fully mathematical and rigorous way is hard and time consuming. Although there exist a number of formal approaches to software engineering like the Z specification language or the B method, these environments strongly focus on refinement based programming and do not directly support object-oriented programming. On the other side, the JML specification language is an object-oriented extension to the JAVA programming language, which allows annotating existing JAVA programs with specification attributes and contracts. But neither of these approaches really take advantage of the most beneficial concept in software engineering: Reuse of already available software elements. It should not only be possible to reuse units of implemented software, but also rely on units of already proven software. Unfortunately, the traditional methods like B and JML only gradually support the reuse of already proven software units. In the Eiffel method, contracts have become first-class citizens of the programming language. Designed as taking an integral part in the software specification process and providing expressive semi-formal definitions of software interfaces, it turns out that Eiffel contracts are not powerful enough to express the complicated relationships in object graphs of modern object-oriented environments. Faced with these shortcomings, the idea to combine the reusability and extendibility of object-oriented methods with the rigorous mathematical models used in formal method like B seams reasonable. The idea of applying mathematical models to prove contract equipped classes has been developed by [Mey03]. The open question remains how these mathematical concepts can be modeled as software components to help making Eiffel contracts even more expressive and powerful. The goal of this thesis is therefore to create a collection of extendible and reusable software components that allow Eiffel programmers to write more rigorous and expressive contracts using abstract mathematical models. 1.2 Scope of the work Translating mathematical concepts into reusable software models requires several subproblems to be solved. In the first part of this thesis, the basic blocks of mathematical reasoning over programs have to be identified and categorized. We therefore give an overview about the necessary mathematical concepts and justify their necessity with respect to the aim of providing a minimal, yet expressive enough set of software facilities to describe Eiffel contracts. The approaches taken in B and Z are certainly influencing the result. The ideas behind JML are considered as well, since JML promises to be much closer to object-oriented methods than the other approaches. After the necessary mathematical concepts have been identified, a representative set of data structures 1

3 has to be chosen to deliver the proof of concept, meaning that these data structures can be specified using the acquired models. For us, the EiffelBase library serves this purpose. Only the most fundamental data structures are specified. As time permits, more advanced data structures are treated as well. This specification phase is followed by an implementation phase, during which we create the necessary software facilities to support the specification of the above data structures. This collection of software classes will be called Mathematical Model Library (MML) and is written in a defined subset of the Eiffel language, which we name Intermediate Functional Language (IFL). This language provides the client programmer with the necessary constructs to define expressive contracts and is restricted to use features from the MML class library only. 1.3 Intended results Mathematical Model Library The library of mathematical models forms the most important deliverable. It will comprise the following items: 1. A library of thoroughly documented classes modeling the mathematical concepts identified in the first part of this thesis 2. A user s manual describing the scope and usage of the library classes Thesis Report The report associated with this thesis covers the following topics: 1. An overview about the existing formal approaches to software engineering. We introduce the concepts and ideas behind B and JML and how they could be used in the context of Eiffel contracts 2. A compilation of basic mathematical concepts used for the design of the MML class library 3. Mathematical models of the most fundamental data structures contained in the EiffelBase library 4. The specification of the functional language IFL needed by the MML classes 5. The design ideas and architectural decisions behind the MML class library In the end, this master thesis should result in reusable software components that are ready to be used in contracts of programs written in the Eiffel language. 2

4 Chapter 2 Background Material 2.1 Reading List In this chapter we introduce the tentative list of bibliographic sources used in this thesis: Formal Methods: The B-Book [Abr96], The B-Method: An Introduction [Sch01] The Z notation [Spi89] JML Reference Manual Draft [LPC + ], JML: A notation for detailed design [LBR], Design by Contract with JML [LC] Program Verification: Towards practical proofs of class correctness [Mey03], A logic for the Verification of Object- Oriented Programs [PHM97], Formal Verification of a Doubly Linked List Implementation: A Case Study Using the JIVE System [LMMPH00] Mathematical Concepts: Introduction to the Theory of Programming Languages [Mey90], The Z notation [Spi89] Eiffel Language: Object-Oriented Software Construction [Mey97], Eiffel: The language [Mey92] Software Engineering Design Patterns: Elements of Reusable Object-Oriented Software [GHJV95], Introduction to Algorithms [CLRS01] This list is certainly not exhaustive and is likely to be extended during the course of this master thesis. 3

5 Chapter 3 Project Management 3.1 Objectives and priorities The primary objective of this thesis is to deliver in a timely fashion a powerful collection of Eiffel classes that can be used to write expressive and precise contracts. 3.2 Criteria for Success Mathematical Model Library The following criteria have to be met by the implementation of this class library: Extendible and reusable library classes that directly model the needed mathematical concepts A carefully designed class hierarchy which is easily understandable Well documented code with precise and rigorous contracts Easy to use class interfaces that hide the internal mathematical complexity Thesis Report The thesis report should complement the work of the class library: It should give a comprehensive overview about the mathematical concepts necessary to define the intermediate functional language IFL The report should present the specification of the EiffelBase data structures in a clear and concise way addressing Eiffel programmers primarily It has to provide a rigorous specification of the functional language IFL It should contain a broad presentation of the design ideas behind the MML class library 4

6 3.3 Method of work The thesis report and the library classes are created in parallel, hopefully influencing each other positively. The development of the source code is guided by the Seamless Development Process described in [Mey97]. The use of a version control system facilitates the source code management both at home and at work. Frequent validation steps ensure constant progress and minimal deviation from the project plan. 3.4 Quality Management Validation Steps The following validation steps are planned to perform regularly during the course of this thesis: Frequent discussion meetings with the assigned supervisors Weekly reviews and wrap-ups to ensure consistent progress Monthly position-fixings to avoid loosing the plot Test Cases For the software-related part of this thesis, the MML class library, we additionally provide example programs to display the successful application of the mathematical models to Eiffel contracts. This demonstrative examples are accompanied by test cases to ensure a high level of software quality Documentation The class library is fully documented using Design by Contract T M and the Eiffel method style guide lines. The user s manual describes the usage of the library classes from the client programmer s point of view. Information about the design ideas and the architecture of the MML class library can be found in the thesis report. 5

7 Chapter 4 Project Schedule 4.1 Deadlines Project Start: Mo, Project End: Fr, Gantt Chart ID Task Name Duration Start Finish 1 Identify Mathematical 20 days Mon Fri Concepts 2 Reading 5 days Mon Fri Collecting Concepts 4 days Mon Thu Writing Report Chapter 11 days Fri Fri Specify Data Structures 25 days Mon Fri Examine EiffelBase 2 days Mon Tue Create Collection 3 days Wed Fri Write Specification 15 days Mon Fri Write Report Chapter 5 days Mon Fri Define IFL 25 days Mon Fri Review Identified Concepts 5 days Mon Fri Create IFL Draft 10 days Mon Fri Verify Draft on Specifications 4 days Mon Thu Write Report Chapter 6 days Fri Fri Implement MML 35 days Mon Fri Design Class Hierarchy 3 days Mon Wed Specify Interfaces 7 days Thu Fri Implement Classes 15 days Mon Fri Test Classes 5 days Mon Fri Write Examples 5 days Mon Fri Finalization 25 days Mon Fri Write Design and Architecture 6 days Mon Mon Write User's Manual 4 days Tue Fri General Clean-Up 3 days Mon Wed Proof Reading 6 days Thu Thu Reserved 6 days Fri Fri Dec '0 05 Jan '0 19 Jan '0 02 Feb '0 16 Feb '0 01 Mar '0 15 Mar '0 29 Mar '0 12 Apr '0 26 Apr '0 10 May '0 24 May '0 07 Jun '0 21 Jun '0 05 Jul '04 6

8 Bibliography [Abr96] J. R. Abrial. The B-Book. Cambridge University Press, [CLRS01] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction to Algorithms, Second Edition. MIT Press, [GHJV95] E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, [LBR] G. T. Leavens, A. L. Baker, and C. Ruby. JML: a notation for detailed design. ftp://ftp.cs.iastate.edu/pub/leavens/jml/jmlkluwer.pdf. [LC] G. T. Leavens and Y. Cheon. Design by Contract with JML. ftp://ftp.cs.iastate.edu/pub/leavens/jml/jmldbc.pdf. [LMMPH00] M. Labeth, J. Meyer, P. Müller, and A. Poetzsch-Heffter. Formal verification of a doubly linked list implementation: A case study using the JIVE system. Technical Report 270, Fernuniversität Hagen, [LPC + ] G. T. Leavens, E. Poll, C. Clifton, Y. Cheon, C. Ruby, D. Cok, and J. Kiniry. JML Reference Manual Draft. ftp://ftp.cs.iastate.edu/pub/leavens/jml/jmlrefman.pdf. [Mey90] B. Meyer. Introduction to the Theory of Programming Languages. Prentice Hall, [Mey92] B. Meyer. Eiffel: The Language. Prentice Hall, [Mey97] B. Meyer. Object-Oriented Software Construction. Prentice Hall, 2nd edition, [Mey03] [PHM97] B. Meyer. Towards practical proofs of class correctness. In ZB 2003 (D. B. et al., ed.), LNCS 2651, pp Springer-Verlag Berlin, A. Poetzsch-Heffter and P. Müller. A logic for the verification of object-oriented programs. In R. Berghammer and F. Simon, editors, Programming Languages and Fundamentals of Programming, volume 9717 of Technical Report. Christian-Albrechts-Universität Kiel, [Sch01] S. Schneider. The B-Method: An Introduction. Palgrave, [Spi89] J. M. Spivey. The Z notation. Prentice Hall International,

Research Collection. Reusable mathematical models. Master Thesis. ETH Library. Author(s): Widmer, Tobias K. Publication Date: 2004

Research Collection. Reusable mathematical models. Master Thesis. ETH Library. Author(s): Widmer, Tobias K. Publication Date: 2004 Research Collection Master Thesis Reusable mathematical models Author(s): Widmer, Tobias K. Publication Date: 2004 Permanent Link: https://doi.org/10.3929/ethz-a-005115737 Rights / License: In Copyright

More information

EIFFEL TEST STUDIO Locating faults in external code Master Thesis Project Plan

EIFFEL TEST STUDIO Locating faults in external code Master Thesis Project Plan EIFFEL TEST STUDIO Locating faults in external code Master Thesis Project Plan Reto Ghioldi Department of Computer Science ETH Zürich September 6, 2005 Project period 8.September 2005-9.March 2006 Student

More information

Contract Wizard II: Developing a GUI

Contract Wizard II: Developing a GUI Contract Wizard II: Developing a GUI PROJECT PLAN Diploma project Project period 2004-04-26 2004-08-25 Student name Petra Marty Status 9 th semester Email address martypet@student.ethz.ch Supervisor name

More information

Concurrency Patterns in SCOOP

Concurrency Patterns in SCOOP Concurrency Patterns in SCOOP Master Thesis Project Plan Project period: 10. March to 8. September 2014 Student name: Roman Schmocker, 09-911-215 Status: 4. semester, Msc in Computer Science Email address:

More information

Canica: An IDE for the Java Modeling Language

Canica: An IDE for the Java Modeling Language Canica: An IDE for the Java Modeling Language Angelica B. Perez, Yoonsik Cheon, and Ann Q. Gates TR #06-36 August 2006 Keywords: Integrated development environment, specification tool, programming tool,

More information

Bibliography. [Baldwin 01] Baldwin, D., Gries, D., Henderson, P., Marion, B., Schwartz, D. Panel:

Bibliography. [Baldwin 01] Baldwin, D., Gries, D., Henderson, P., Marion, B., Schwartz, D. Panel: Bibliography [Baber 97] Baber, R. L., The Ariane 5 Explosion: A Software Engineer s View, Technical Report, Computer Science, University of the Witwatersrand, South Africa, February 1997; http://www.cs.wits.ac.za/ariane5.htm.

More information

Reflection Library for Eiffel PROJECT PLAN

Reflection Library for Eiffel PROJECT PLAN Reflection Library for Eiffel PROJECT PLAN Master thesis Project period: Monday, 2004-03-15 Wednesday, 2004-09-15 Student: Beat Fluri (fluribe@student.ethz.ch) Status: 9th semester Supervising Assistant:

More information

Verifying JML specifications with model fields

Verifying JML specifications with model fields Verifying JML specifications with model fields Cees-Bart Breunesse and Erik Poll Department of Computer Science, University of Nijmegen Abstract. The specification language JML (Java Modeling Language)

More information

York University Department of Computer Science & Engineering Revised January 27, 2014

York University Department of Computer Science & Engineering Revised January 27, 2014 York University Department of Computer Science & Engineering Revised January 27, 2014 CSE 1019 3.0 Discrete Math for Computer Science Discrete Mathematics and Its Applications, by Kenneth.H. Rosen ISBN:

More information

Eiffel as a Framework for Verification

Eiffel as a Framework for Verification Eiffel as a Framework for Verification Bertrand Meyer ETH Zurich http://se.inf.ethz.ch Eiffel Software www.eiffel.com Abstract. The Eiffel method and language integrate a number of ideas originating from

More information

Java-MOP: A Monitoring Oriented Programming Environment for Java

Java-MOP: A Monitoring Oriented Programming Environment for Java Java-MOP: A Monitoring Oriented Programming Environment for Java Feng Chen and Grigore Roşu Department of Computer Science, University of Illinois at Urbana - Champaign, USA {fengchen, grosu}@uiuc.edu

More information

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout 1 Last update: 15 October 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 1: Issues of software quality Agenda for today 3 Introduction Some statistics

More information

A Small Survey of Java Specification Languages *

A Small Survey of Java Specification Languages * Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, 2010. Vol. 2. pp. 409 416. A Small Survey of Java Specification Languages * Gábor Kusper a, Gergely

More information

UK EPR GDA PROJECT. Name/Initials Date 30/06/2011 Name/Initials Date 30/06/2011. Resolution Plan Revision History

UK EPR GDA PROJECT. Name/Initials Date 30/06/2011 Name/Initials Date 30/06/2011. Resolution Plan Revision History RP unique number: Page GI-UKEPR-RP-01-RP 0 30/06/2011 1 of 5 Approved for EDF by: A. PETIT Approved for AREVA by: C. WOOLDRIDGE Name/Initials Date 30/06/2011 Name/Initials Date 30/06/2011 Resolution Plan

More information

A System of Patterns for Web Navigation

A System of Patterns for Web Navigation A System of Patterns for Web Navigation Mohammed Abul Khayes Akanda and Daniel M. German Department of Computer Science, University of Victoria, Canada maka@alumni.uvic.ca, dmgerman@uvic.ca Abstract. In

More information

Modeling Systems Using Design Patterns

Modeling Systems Using Design Patterns Modeling Systems Using Design Patterns Jaroslav JAKUBÍK Slovak University of Technology Faculty of Informatics and Information Technologies Ilkovičova 3, 842 16 Bratislava, Slovakia jakubik@fiit.stuba.sk

More information

SYLLABUS Type of evaluation

SYLLABUS Type of evaluation SYLLABUS 1. Information regarding the programme 1.1 Higher education Babeș-Bolyai University, Cluj-Napoca institution 1.2 Faculty Faculty of Mathematics and Computer Science 1.3 Department Department of

More information

2 nd UML 2 Semantics Symposium: Formal Semantics for UML

2 nd UML 2 Semantics Symposium: Formal Semantics for UML 2 nd UML 2 Semantics Symposium: Formal Semantics for UML Manfred Broy 1, Michelle L. Crane 2, Juergen Dingel 2, Alan Hartman 3, Bernhard Rumpe 4, and Bran Selic 5 1 Technische Universität München, Germany

More information

Wrapping a complex C++ library for Eiffel. FINAL REPORT July 1 st, 2005

Wrapping a complex C++ library for Eiffel. FINAL REPORT July 1 st, 2005 Wrapping a complex C++ library for Eiffel FINAL REPORT July 1 st, 2005 Semester project Student: Supervising Assistant: Supervising Professor: Simon Reinhard simonrei@student.ethz.ch Bernd Schoeller Bertrand

More information

How Efficient Can Fully Verified Functional Programs Be - A Case Study of Graph Traversal Algorithms

How Efficient Can Fully Verified Functional Programs Be - A Case Study of Graph Traversal Algorithms How Efficient Can Fully Verified Functional Programs Be - A Case Study of Graph Traversal Algorithms Mirko Stojadinović Faculty of Mathematics, University of Belgrade Abstract. One approach in achieving

More information

A MULTI-DIMENSIONAL DATA ORGANIZATION THAT ASSISTS IN THE PARSING AND PRODUCTION OF A SENTENCE

A MULTI-DIMENSIONAL DATA ORGANIZATION THAT ASSISTS IN THE PARSING AND PRODUCTION OF A SENTENCE A MULTI-DIMENSIONAL DATA ORGANIZATION THAT ASSISTS IN THE PARSING AND PRODUCTION OF A SENTENCE W. Faris and K. Cheng Department of Computer Science University of Houston Houston, TX, 77204, USA http://www.cs.uh.edu

More information

Towards Better Support for Pattern-Oriented Software Development

Towards Better Support for Pattern-Oriented Software Development Towards Better Support for Pattern-Oriented Software Development Dietrich Travkin Software Engineering Research Group, Heinz Nixdorf Institute & Department of Computer Science, University of Paderborn,

More information

11 days Mon 12/7/15 Mon 12/21/15. 4 days Tue 12/8/15 Fri 12/11/ days Mon 1/4/16 Mon 2/29/16. External Milestone. Manual Summary Rollup Split

11 days Mon 12/7/15 Mon 12/21/15. 4 days Tue 12/8/15 Fri 12/11/ days Mon 1/4/16 Mon 2/29/16. External Milestone. Manual Summary Rollup Split ID Mode WBS Name Duration Start Finish 1 1 Behavioral Health Center (BHC) Grant writing Proposal with BRG 11 days Mon 12/7/15 Mon 12/21/15 2 1.1 BRG draft for Jay Mittal and 5 days Mon 12/7/15 Fri 12/11/15

More information

Java Modelling Language (JML) References

Java Modelling Language (JML) References Java Modelling Language (JML) References G. T. Leavens and Y. Cheon. Design by Contract with JML, August 2005. L. Burdy, Y. Cheon, D. Cok, M. Ernst, J. Kiniry, G. T. Leavens, K. R. M. Leino, and E. Poll.

More information

Automatic Verification of Closures and Lambda-Functions in Python Master s Thesis Project Description

Automatic Verification of Closures and Lambda-Functions in Python Master s Thesis Project Description Automatic Verification of Closures and Lambda-Functions in Python Master s Thesis Project Description Benjamin Weber March 2017 Introduction Higher-order functions take other functions as parameters. Thus,

More information

Concurrent Object-Oriented Development with Behavioral Design Patterns

Concurrent Object-Oriented Development with Behavioral Design Patterns Concurrent Object-Oriented Development with Behavioral Design Patterns Benjamin Morandi 1, Scott West 1, Sebastian Nanz 1, and Hassan Gomaa 2 1 ETH Zurich, Switzerland 2 George Mason University, USA firstname.lastname@inf.ethz.ch

More information

Course specification

Course specification The University of Southern Queensland Course specification Description: Object-Oriented Programming in C++ Subject Cat-nbr Class Term Mode Units Campus CSC 2402 30366 1, 2004 ONC 1.00 TWMBA Academic group:

More information

Specifying Reusable Components

Specifying Reusable Components Specifying Reusable Components Nadia Polikarpova, Carlo A. Furia, and Bertrand Meyer Chair of Software Engineering, ETH Zurich, Switzerland {nadia.polikarpova,carlo.furia,bertrand.meyer}@inf.ethz.ch Abstract.

More information

On Preserving Domain Consistency for an Evolving Application

On Preserving Domain Consistency for an Evolving Application On Preserving Domain Consistency for an Evolving Application João Roxo Neves and João Cachopo INESC-ID / Instituto Superior Técnico, Universidade Técnica de Lisboa, Portugal {JoaoRoxoNeves,joao.cachopo}@ist.utl.pt

More information

VISUALIZING NP-COMPLETENESS THROUGH CIRCUIT-BASED WIDGETS

VISUALIZING NP-COMPLETENESS THROUGH CIRCUIT-BASED WIDGETS University of Portland Pilot Scholars Engineering Faculty Publications and Presentations Shiley School of Engineering 2016 VISUALIZING NP-COMPLETENESS THROUGH CIRCUIT-BASED WIDGETS Steven R. Vegdahl University

More information

From Event-B Models to Dafny Code Contracts

From Event-B Models to Dafny Code Contracts From Event-B Models to Dafny Code Contracts Mohammadsadegh Dalvandi, Michael Butler, Abdolbaghi Rezazadeh Electronic and Computer Science School, University of Southampton Southampton, United Kingdom {md5g11,mjb,ra3}@ecs.soton.ac.uk

More information

INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM

INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM Charles S. Saxon, Eastern Michigan University, charles.saxon@emich.edu ABSTRACT Incorporating advanced programming

More information

BON-CASE: An Extensible CASE Tool for Formal Specification and Reasoning

BON-CASE: An Extensible CASE Tool for Formal Specification and Reasoning BON-CASE: An Extensible CASE Tool for Formal Specification and Reasoning Richard Paige Department of Computer Science, University of York, York, U.K. Liliya Kaminskaya AMDocs Inc., Toronto, Ontario, Canada

More information

CS342 Operating Systems

CS342 Operating Systems Bilkent University Department of Computer Engineering CS342 Operating Systems CS342 Operating Systems Dr. İbrahim Körpeoğlu http://www.cs.bilkent.edu.tr/~korpe 1 About the Course Will teach operating systems

More information

Advanced Algorithms and Data Structures

Advanced Algorithms and Data Structures Advanced Algorithms and Data Structures Prof. Tapio Elomaa tapio.elomaa@tut.fi Course Prerequisites A seven credit unit course Replaced OHJ-2156 Analysis of Algorithms We take things a bit further than

More information

An Approach to Software Component Specification

An Approach to Software Component Specification Page 1 of 5 An Approach to Software Component Specification Jun Han Peninsula School of Computing and Information Technology Monash University, Melbourne, Australia Abstract. Current models for software

More information

Reasoning about Object Structures Using Ownership

Reasoning about Object Structures Using Ownership Reasoning about Object Structures Using Ownership Peter Müller ETH Zurich, Switzerland Peter.Mueller@inf.ethz.ch Abstract. Many well-established concepts of object-oriented programming work for individual

More information

SYLLABUS. 1. Information regarding the programme 1.1 Higher education Babeş-Bolyai University of Cluj-Napoca

SYLLABUS. 1. Information regarding the programme 1.1 Higher education Babeş-Bolyai University of Cluj-Napoca SYLLABUS 1. Information regarding the programme 1.1 Higher education Babeş-Bolyai University of Cluj-Napoca institution 1.2 Faculty Faculty of Mathematics and Computer Science 1.3 Departament Departament

More information

Faithful mapping of model classes to mathematical structures

Faithful mapping of model classes to mathematical structures Faithful mapping of model classes to mathematical structures Ádám Darvas ETH Zurich adam.darvas@inf.ethz.ch Peter Müller Microsoft Research mueller@microsoft.com Abstract Abstraction techniques are indispensable

More information

Helping Programmers to Adopt Set-Based Specifications

Helping Programmers to Adopt Set-Based Specifications Helping Programmers to Adopt Set-Based Specifications Maximiliano Cristiá 1, Gianfranco Rossi 2, and Claudia Frydman 3 1 CIFASIS and UNR, Rosario, Argentina cristia@cifasis-conicet.gov.ar 2 Università

More information

Pennington County Government Justice Center. Schematic Design - October 27, 2015

Pennington County Government Justice Center. Schematic Design - October 27, 2015 Government Schematic Design - October 27, 2015 N Architecture 2 Proposed - Site Plan Proposed Jail / LEC Addition Proposed Addition 3 County Board Room Public Entrance County Attorney Proposed - Ground

More information

Static program checking and verification

Static program checking and verification Chair of Software Engineering Software Engineering Prof. Dr. Bertrand Meyer March 2007 June 2007 Slides: Based on KSE06 With kind permission of Peter Müller Static program checking and verification Correctness

More information

JML tool-supported specification for Java Erik Poll Radboud University Nijmegen

JML tool-supported specification for Java Erik Poll Radboud University Nijmegen JML tool-supported specification for Java Erik Poll Radboud University Nijmegen Erik Poll - JML p.1/41 Overview The specification language JML Tools for JML, in particular runtime assertion checking using

More information

Formal Methods for Java

Formal Methods for Java Formal Methods for Java Lecture 30: Conclusion Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Feb 17, 2012 Jochen Hoenicke (Software Engineering) FM4J Feb 17, 2012 1 / 21 Topics

More information

Modular verification of static class invariants

Modular verification of static class invariants Modular verification of static class invariants K. Rustan M. Leino 1 and Peter Müller 2 1 Microsoft Research, Redmond, WA, USA, leino@microsoft.com 2 ETH Zürich, Switzerland, peter.mueller@inf.ethz.ch

More information

Diagnosing Java code: Designing extensible applications, Part 3

Diagnosing Java code: Designing extensible applications, Part 3 Diagnosing Java code: Designing extensible applications, Part 3 Examine when, where, and how black box extensibility works best Level: Introductory Eric Allen (eallen@cs.rice.edu), Ph.D. candidate, Java

More information

A Prototype for Guideline Checking and Model Transformation in Matlab/Simulink

A Prototype for Guideline Checking and Model Transformation in Matlab/Simulink A Prototype for Guideline Checking and Model Transformation in Matlab/Simulink Holger Giese, Matthias Meyer, Robert Wagner Software Engineering Group Department of Computer Science University of Paderborn

More information

Introduction to Software Engineering

Introduction to Software Engineering Introduction to Software Engineering Gérald Monard Ecole GDR CORREL - April 16, 2013 www.monard.info Bibliography Software Engineering, 9th ed. (I. Sommerville, 2010, Pearson) Conduite de projets informatiques,

More information

Polynomial Size Analysis for an Imperative Language

Polynomial Size Analysis for an Imperative Language Polynomial Size Analysis for an Imperative Language Master Thesis Research Plan Rody Kersten Supervised by Marko van Eekelen February 16, 2009 Abstract Analysis of heap space consumption is a valuable

More information

Automatic Black-Box Method-Level Test Case Generation Based on Constraint Logic Programming

Automatic Black-Box Method-Level Test Case Generation Based on Constraint Logic Programming Automatic Black-Box Method-Level Test Case Generation Based on Constraint Logic Programming i-tin Hu and ai-wei Lin Department of Computer Science and Information Engineering ational Chung Cheng University

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2002 Vol. 1, No. 2, July-August 2002 The Theory of Classification Part 2: The Scratch-Built

More information

Introduction to JML David Cok, Joe Kiniry, and Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen

Introduction to JML David Cok, Joe Kiniry, and Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen Introduction to JML David Cok, Joe Kiniry, and Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen David Cok, Joe Kiniry & Erik Poll - ESC/Java2 & JML Tutorial p.1/30

More information

CS2 Algorithms and Data Structures Note 1

CS2 Algorithms and Data Structures Note 1 CS2 Algorithms and Data Structures Note 1 Analysing Algorithms This thread of the course is concerned with the design and analysis of good algorithms and data structures. Intuitively speaking, an algorithm

More information

NORTHWEST. Course Schedule: Through June 2018 MICROSOFT ACCESS. Access 2016 / Access 2010 / Last Revised: 11/13/2017

NORTHWEST. Course Schedule: Through June 2018 MICROSOFT ACCESS. Access 2016 / Access 2010 / Last Revised: 11/13/2017 2659 Commercial Street SE, Suite 210 Salem, Oregon 97302 The Professional s Choice since 1983 Locally Owned & Operated Course Schedule: Through June 2018 Last Revised: 11/13/2017 Phone: (503) 362-4818

More information

UPCOMING PROGRAMMES/COURSES APRIL 2016 MARCH 2017 (MIND KINGSTON & MANDEVILLE CAMPUSES)

UPCOMING PROGRAMMES/COURSES APRIL 2016 MARCH 2017 (MIND KINGSTON & MANDEVILLE CAMPUSES) UPCOMING PROGRAMMES/ IL CH 2 UPCOMING PROGRAMMES/ IL CH Award Categories Certificate Budget Preparation & Effective Corporate Governance Effective Report Writing Finance for NonFinancial Managers Fundamentals

More information

A Class-Level Unit Testing Tool for Java

A Class-Level Unit Testing Tool for Java A Class-Level Unit Testing Tool for Java Tz-Fan Hu and Nai-Wei Lin Department of Computer Science and Information Engineering National Chung Cheng University Chiayi 621, Taiwan, R.O.C. Email: {htf97m,naiwei}@cs.ccu.edu.tw

More information

Software Specification, Implementation and Execution with Perfect

Software Specification, Implementation and Execution with Perfect National University of Ireland, Maynooth MAYNOOTH, Co. KILDARE, IRELAND. DEPARTMENT OF COMPUTER SCIENCE, TECHNICAL REPORT SERIES Software Specification, Implementation and Execution with Perfect Gareth

More information

An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com

An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com Department of Software Systems Engineering University of Isfahan Fall 2013 Overview Model & Modeling UML & UML Profile

More information

COMP Analysis of Algorithms & Data Structures

COMP Analysis of Algorithms & Data Structures COMP 3170 - Analysis of Algorithms & Data Structures Shahin Kamali Topic 1 - Introductions University of Manitoba Picture is from the cover of the textbook CLRS. COMP 3170 - Analysis of Algorithms & Data

More information

To: Prof. Chang, Prof. Lasser From: Mark Robinton, Brandon Balkind Subject: Senior Project Proposal Date: 12/2/2004

To: Prof. Chang, Prof. Lasser From: Mark Robinton, Brandon Balkind Subject: Senior Project Proposal Date: 12/2/2004 Page 1 of 8 To: Prof. Chang, Prof. Lasser From:, Subject: Senior Project Proposal Date: 12/2/2004 1. Introduction Managing artificial aquatic environments currently requires significant human interaction

More information

CIS24 Project #3. Student Name: Chun Chung Cheung Course Section: SA Date: 4/28/2003 Professor: Kopec. Subject: Functional Programming Language (ML)

CIS24 Project #3. Student Name: Chun Chung Cheung Course Section: SA Date: 4/28/2003 Professor: Kopec. Subject: Functional Programming Language (ML) CIS24 Project #3 Student Name: Chun Chung Cheung Course Section: SA Date: 4/28/2003 Professor: Kopec Subject: Functional Programming Language (ML) 1 Introduction ML Programming Language Functional programming

More information

w3.ualg.pt/~jvo/poo

w3.ualg.pt/~jvo/poo POO - Programação Orientada por Objetos OOP - Object-oriented programming 2015/2016 José Valente de Oliveira jvo@ualg.pt 1 www.ualg.pt w3.ualg.pt/~jvo/poo 1 http://www.fct.ualg.pt/gcal?curso=lei What is

More information

A Thought on Specification Reflection

A Thought on Specification Reflection A Thought on Specification Reflection Yoonsik Cheon, Yoshiki Hayashi Department of Computer Science, University of Texas at El Paso El Paso, Texas 79912 USA cheon@cs.utep.edu Gary T. Leavens Department

More information

LECTURE 6: INTRODUCTION TO FORMAL METHODS. Software Engineering Mike Wooldridge

LECTURE 6: INTRODUCTION TO FORMAL METHODS. Software Engineering Mike Wooldridge LECTURE 6: INTRODUCTION TO FORMAL METHODS Mike Wooldridge 1 What are Formal Methods? Formal methods is that area of computer science that is concerned with the application of mathematical techniques to

More information

Unit 1: Introduction

Unit 1: Introduction Unit 1: Introduction Course: M225 Software Engineering Lecturer: email: Alessandra Russo ar3@doc.ic.ac.uk office hours: available in my office (room 560) between 1:30-3:30pm on Tuesday. Duration: 12 lectures

More information

Automatic Generation of Graph Models for Model Checking

Automatic Generation of Graph Models for Model Checking Automatic Generation of Graph Models for Model Checking E.J. Smulders University of Twente edwin.smulders@gmail.com ABSTRACT There exist many methods to prove the correctness of applications and verify

More information

v. T_visit (Current) t.accept (v) CLIENT t v The Visitor pattern

v. T_visit (Current) t.accept (v) CLIENT t v The Visitor pattern 608 INHERITANCE 16.14 The Visitor pattern The Visitor pattern is an architectural technique enabling you to define arbitrary facilities applicable to instances of existing classes. The idea is very simple:

More information

Algorithms and Data Structures. Algorithms and Data Structures. Algorithms and Data Structures. Algorithms and Data Structures

Algorithms and Data Structures. Algorithms and Data Structures. Algorithms and Data Structures. Algorithms and Data Structures Richard Mayr Slides adapted from Mary Cryan (2015/16) with some changes. School of Informatics University of Edinburgh ADS (2018/19) Lecture 1 slide 1 ADS (2018/19) Lecture 1 slide 3 ADS (2018/19) Lecture

More information

CSE 504: Compiler Design

CSE 504: Compiler Design http://xkcd.com/303/ Compiler Design Course Organization CSE 504 1 / 20 CSE 504: Compiler Design http://www.cs.stonybrook.edu/~cse504/ Mon., Wed. 2:30pm 3:50pm Harriman Hall 116 C. R. Ramakrishnan e-mail:

More information

SCHEDULED PROGRAMMES/COURSES APRIL 2017 MARCH 2018 (MIND KINGSTON / MANDEVILLE CAMPUSES & MONTEGO BAY)

SCHEDULED PROGRAMMES/COURSES APRIL 2017 MARCH 2018 (MIND KINGSTON / MANDEVILLE CAMPUSES & MONTEGO BAY) SCHEDULED PROGRAMMES/ IL CH 2 SCHEDULED PROGRAMMES/ IL CH Award Categories Certificate Advanced Records (Modules 1 5)** Auditing Fundamentals Level 1: Modules 1 4 (NEW) Budget Preparation & Effective Corporate

More information

Algorithms and Data Structures, or

Algorithms and Data Structures, or Algorithms and Data Structures, or... Classical Algorithms of the 50s, 60s and 70s Mary Cryan A&DS Lecture 1 1 Mary Cryan Our focus Emphasis is Algorithms ( Data Structures less important). Most of the

More information

Syllabus DATABASE I Introduction to Database (INLS523)

Syllabus DATABASE I Introduction to Database (INLS523) Syllabus DATABASE I Introduction to Database (INLS523) Course Description Databases are the backbones of modern scholarly, scientific, and commercial information systems. For example, NASA uses databases

More information

The architecture of Eiffel software 3.1 OVERVIEW classes clusters systems

The architecture of Eiffel software 3.1 OVERVIEW classes clusters systems 3 Draft 5.02.00-0, 15 August 2005 (Santa Barbara). Extracted from ongoing work on future third edition of Eiffel: The Language. Copyright Bertrand Meyer 1986-2005. Access restricted to purchasers of the

More information

Finding Specifications of While Statements Using Patterns

Finding Specifications of While Statements Using Patterns Finding Specifications of While Statements Using Patterns Aditi Barua and Yoonsik Cheon TR #13-67 November 2013 Keywords: code pattern, functional program verification, intended functions, program specification,

More information

Test Driven Development with Oracles and Formal Specifications

Test Driven Development with Oracles and Formal Specifications Test Driven Development with Oracles and Formal Specifications Shadi Alawneh and Dennis Peters Faculty of Engineering and Applied Science Memorial University, St.John s, NL Canada A1B 3X5 {shadi.alawneh,dpeters}@mun.ca

More information

Multiple Pivot Sort Algorithm is Faster than Quick Sort Algorithms: An Empirical Study

Multiple Pivot Sort Algorithm is Faster than Quick Sort Algorithms: An Empirical Study International Journal of Electrical & Computer Sciences IJECS-IJENS Vol: 11 No: 03 14 Multiple Algorithm is Faster than Quick Sort Algorithms: An Empirical Study Salman Faiz Solehria 1, Sultanullah Jadoon

More information

CIMA Certificate BA Interactive Timetable

CIMA Certificate BA Interactive Timetable CIMA Certificate BA Interactive Timetable 2018 Nottingham & Leicester Version 3.2 Information last updated 09/03/18 Please note: Information and dates in this timetable are subject to change. Introduction

More information

Information Hiding and Visibility in Interface Specifications

Information Hiding and Visibility in Interface Specifications Information Hiding and Visibility in Interface Specifications Gary T. Leavens and Peter Müller TR #06-28 September 2006 Keywords: Information hiding, visibility, behavioral interface specification language,

More information

A Type Graph Model for Java Programs

A Type Graph Model for Java Programs A Type Graph Model for Java Programs Arend Rensink and Eduardo Zambon Formal Methods and Tools Group, EWI-INF, University of Twente PO Box 217, 7500 AE, Enschede, The Netherlands {rensink,zambon}@cs.utwente.nl

More information

Kent Academic Repository

Kent Academic Repository Kent Academic Repository Full text document (pdf) Citation for published version Chitil, Olaf (2006) Promoting Non-Strict Programming. In: Draft Proceedings of the 18th International Symposium on Implementation

More information

Ms. Bhawna Sharma 1, Ms. Kavita Choudhary 2, Mr Rajendra Purohit 3 1 M.Tech. Scholar, 2 Associate professor, 3 Research Scholar

Ms. Bhawna Sharma 1, Ms. Kavita Choudhary 2, Mr Rajendra Purohit 3 1 M.Tech. Scholar, 2 Associate professor, 3 Research Scholar Function Point Analysis: Converting various design elements into Function Points Ms. Bhawna Sharma 1, Ms. Kavita Choudhary 2, Mr Rajendra Purohit 3 1 M.Tech. Scholar, 2 Associate professor, 3 Research

More information

A Simplified Correctness Proof for a Well-Known Algorithm Computing Strongly Connected Components

A Simplified Correctness Proof for a Well-Known Algorithm Computing Strongly Connected Components A Simplified Correctness Proof for a Well-Known Algorithm Computing Strongly Connected Components Ingo Wegener FB Informatik, LS2, Univ. Dortmund, 44221 Dortmund, Germany wegener@ls2.cs.uni-dortmund.de

More information

SCHEDULED PROGRAMMES/COURSES APRIL 2018 MARCH 2019 (MIND KINGSTON / MANDEVILLE CAMPUSES & MONTEGO BAY)

SCHEDULED PROGRAMMES/COURSES APRIL 2018 MARCH 2019 (MIND KINGSTON / MANDEVILLE CAMPUSES & MONTEGO BAY) SCHEDULED PROGRAMMES/ IL CH 2 SCHEDULED PROGRAMMES/ IL CH Award Categories Certificate Advanced Records : Modules 1 5** Audit Fundamentals: Modules 1 4 Budget Preparation & Effective Corporate Governance

More information

Course specification

Course specification The University of Southern Queensland Course specification Description: Object-Oriented Programming in C++ Subject CSC Cat-nbr 2402 Class 40341 Term 1, 2005 Mode ONC Units 1.00 Campus Toowoomba Academic

More information

Model-View-Controller

Model-View-Controller CNM STEMulus Center Web Development with PHP November 11, 2015 1/8 Outline 1 2 2/8 Definition A design pattern is a reusable and accepted solution to a particular software engineering problem. Design patterns

More information

SCHEDULED PROGRAMMES/COURSES APRIL 2018 MARCH 2019 (MIND KINGSTON / MANDEVILLE CAMPUSES & MONTEGO BAY)

SCHEDULED PROGRAMMES/COURSES APRIL 2018 MARCH 2019 (MIND KINGSTON / MANDEVILLE CAMPUSES & MONTEGO BAY) SCHEDULED PROGRAMMES/ IL CH 2 SCHEDULED PROGRAMMES/ IL CH Award Categories Certificate Advanced Records : Modules 1 5** Audit Fundamentals: Modules 1 4 Budget Preparation & Effective Corporate Governance

More information

Guidelines for deployment of MathWorks R2010a toolset within a DO-178B-compliant process

Guidelines for deployment of MathWorks R2010a toolset within a DO-178B-compliant process Guidelines for deployment of MathWorks R2010a toolset within a DO-178B-compliant process UK MathWorks Aerospace & Defence Industry Working Group Guidelines for deployment of MathWorks R2010a toolset within

More information

AIMMS Function Reference - Date Time Related Identifiers

AIMMS Function Reference - Date Time Related Identifiers AIMMS Function Reference - Date Time Related Identifiers This file contains only one chapter of the book. For a free download of the complete book in pdf format, please visit www.aimms.com Aimms 3.13 Date-Time

More information

Design and Analysis of Algorithms. Comp 271. Mordecai Golin. Department of Computer Science, HKUST

Design and Analysis of Algorithms. Comp 271. Mordecai Golin. Department of Computer Science, HKUST Design and Analysis of Algorithms Revised 05/02/03 Comp 271 Mordecai Golin Department of Computer Science, HKUST Information about the Lecturer Dr. Mordecai Golin Office: 3559 Email: golin@cs.ust.hk http://www.cs.ust.hk/

More information

Properties Preservation during Transformation

Properties Preservation during Transformation Properties Preservation during Transformation Daniela da Cruz 1, Jorge Sousa Pinto 1, and Pedro Rangel Henriques 1 University of Minho - Department of Computer Science, CCTC - Centro de Ciências e Tecnologias

More information

Formal Specification of Software Systems

Formal Specification of Software Systems Formal Specification of Software Systems Lecture Notes Winter Term 2001 / 2002 Heinrich Hußmann Technische Universität Dresden Formal Specification of Software Systems Summary: Construction of large software

More information

What if Analysis, Charting, and Working with Large Worksheets. Chapter 3

What if Analysis, Charting, and Working with Large Worksheets. Chapter 3 What if Analysis, Charting, and Working with Large Worksheets Chapter 3 What we will cover Rotating Text Using the fill handle to create a series of month names Copying and pasting What we will cover Inserting,

More information

Part V: Annotated Bibliography of RESOLVE Research

Part V: Annotated Bibliography of RESOLVE Research SOFTWARE ENGINEERING NOTES 19, 4 (OCT. 1994), 64-67. Part V: Annotated Bibliography of RESOLVE Research Stephen H. Edwards This brief annotated bibliography describes a select subset of the RESOLVE literature,

More information

Lecture 1. Introduction

Lecture 1. Introduction Lecture 1 Introduction 1 Lecture Contents 1. What is an algorithm? 2. Fundamentals of Algorithmic Problem Solving 3. Important Problem Types 4. Fundamental Data Structures 2 1. What is an Algorithm? Algorithm

More information

Lecture 06 Tabu Search

Lecture 06 Tabu Search Lecture 06 Tabu Search s.l. dr. ing. Ciprian-Bogdan Chirila chirila@cs.upt.ro http://www.cs.upt.ro/~chirila Heuristic Methods Outline Introduction The TS framework Example Notation and problem description

More information

High-Level Information Interface

High-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 information

Advanced Algorithms and Data Structures

Advanced Algorithms and Data Structures Advanced Algorithms and Data Structures Prof. Tapio Elomaa Course Basics A new 7 credit unit course Replaces OHJ-2156 Analysis of Algorithms We take things a bit further than OHJ-2156 We will assume familiarity

More information

Design by Contract and JML: concepts and tools

Design by Contract and JML: concepts and tools Métodos Formais em Engenharia de Software Design by Contract and JML: concepts and tools José Carlos Bacelar Almeida Departamento de Informática Universidade do Minho MI/MEI 2008/2009 1 Talk Outline Design

More information

On the correctness of template metaprograms

On the correctness of template metaprograms Proceedings of the 7 th International Conference on Applied Informatics Eger, Hungary, January 28 31, 2007 Vol 2 pp 301 308 On the correctness of template metaprograms Ádám Sipos, István Zólyomi, Zoltán

More information

Pattern-Based Architectural Design Process Model

Pattern-Based Architectural Design Process Model Pattern-Based Architectural Design Process Model N. Lévy, F. Losavio Abstract: The identification of quality requirements is crucial to develop modern software systems, especially when their underlying

More information