Teaching Formal Methods for the Unconquered Territory Nestor Catano Madeira ITI, Portugal Camilo Rueda Pontificia Universidad Javeriana (PUJ), Cali, Colombia.

Slides:



Advertisements
Similar presentations
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 18 Program Correctness To treat programming.
Advertisements

Formal techniques for getting software right: some old ideas and some new tools Applied Formal Methods Research Group David Lightfoot:
Raising Achievement. 2 Aims To explore approaches and materials to support the planning of learning. To consider strategies for preparing learners for.
Addressing the Challenges of Current Software. Questions to Address Why? What? Where? How?
11111 Functional Program Verification CS 4311 A. M. Stavely, Toward Zero Defect Programming, Addison-Wesley, Y. Cheon and M. Vela, A Tutorial on.
Role of Vendor Technologies in the Development of Network Professionals Mak Sharma and Sharon Cox School of Computing, Telecommunications and Networks.
ISBN Chapter 3 Describing Syntax and Semantics.
CS 355 – Programming Languages
Shaoying Liu Department of Computer Science
Formal Methods of Systems Specification Logical Specification of Hard- and Software Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Math 308 Discrete Mathematics Discrete Mathematics deals with “Separated” or discrete sets of objects (rather than continuous sets) Processes with a sequence.
Cleanroom Engineering and the B-Method: A Comparison Drew Connelly.
UGCC Report, 11/29/05 Committee: Bettati, Gutierrez, Keyser, Jiheon Kwan (undergrad rep), Leyk, Loguinov, Petersen, Welch (chair) Meetings: Fridays 2-3.
From Discrete Mathematics to AI applications: A progression path for an undergraduate program in math Abdul Huq Middle East College of Information Technology,
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 18 Program Correctness To treat programming.
A practical approach to formal methods Lecturer: Ralph Back Place: A5059 Time:e very second Monday, Dates: 28.1, 11.2, 25.2, 10.3, 31.3, 14.4,
Describing Syntax and Semantics
Verification and Validation
Mathematics throughout the CS Curriculum Support by NSF #
Evaluation of Pace University's Master's Degree Program for BNY Mellon Employees Seidenberg School of Computer Science and Information Systems Pace University.
Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013.
Ada Lovelace, c World’s first computer programmer.
Introduction Methodology Results This study aims to explore the current progress of using different types of software with various autism conditions. One.
Nama : Jehan binti Jamian No.matrik : UK Discrete Mathematics Area of mathematics that deals with the study of discrete objects. Discusses languages.
LEFIS W2 Posgraduate Workshop 1 LEFIS, WG 2 Postgraduate studies Meeting, Rotterdam.
Chapter 14 Security, Privacy, & Ethical Issues in IS & the Internet.
Software Engineering Program School of Information Technology and Engineering ugrad/softwareengineering.html.
Purpose of study A high-quality computing education equips pupils to use computational thinking and creativity to understand and change the world. Computing.
SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary,
Course: Software Engineering © Alessandra RussoUnit 1 - Introduction, slide Number 1 Unit 1: Introduction Course: C525 Software Engineering Lecturer: Alessandra.
Software engineering. What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software.
1 Program Correctness CIS 375 Bruce R. Maxim UM-Dearborn.
ISETT SETA Learnerships ISETT SETA LEARNERSHIPS LEARNERSHIPS Transforming People! Transforming South Africa!
1 Chapter Nine Engineering Your Career. 2 Engineering Careers  Electrical and computer engineers find employment in: 1.Private industry. 2.Government.
Computer Science 101 Preparing programmers to be architects Michael Huth, Computing, Imperial College.
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
Information Ethics Prof. Madya Dr. Rozinah Jamaludin 11 March 2010.
University job placement as a first gate to the world of work: the good practices in Genoa Prof. Marilena Carnasciali University Deputy for Guidance activities.
Computer Science Department of 16 October 2012 Creating a Progression of Writing, Speaking & Teaming Learning Outcomes.
Computer Science School of Computing Clemson University Discrete Math and Reasoning about Software Correctness Joseph E. Hollingsworth
Software Engineering in the Academy Bertrand Meyer IEEE Computer, May 2001.
© Gudmund Grov & Andrew Ireland Dependable Systems Group Planning for System Development Gudmund Grov & Andrew Ireland Dependable Systems Group School.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
Deriving Operational Software Specification from System Goals Xin Bai EEL 5881 Course Fall, 2003.
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
Computer Science 210 Computer Organization Course Introduction.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Communities of Practice Stephen Merry & Paul Orsmond Staffordshire University Faculty of Sciences.
1 CC2039 Professional Development for Communication Technology Developing a Project Proposal.
PROGRAMMING PRE- AND POSTCONDITIONS, INVARIANTS AND METHOD CONTRACTS B MODULE 2: SOFTWARE SYSTEMS 13 NOVEMBER 2013.
Engineers and Engineering Design 1. Seven Engineering Resources 1. People 2. Information 3. Time 4. Capital 5. Machines & Tools 6. Materials 7. Energy.
1 Undergraduate Software Engineering Programs in the United States (in 2003) Mark A. Ardis Rose-Hulman Institute of Technology.
CMPB454 ARTIFICIAL INTELLIGENCE (AI) CHAPTER 1.1 Background Information CHAPTER 1.1 Background Information Instructor: Alicia Tang Y. C.
FORMAL METHOD. Formal Method Formal methods are system design techniques that use rigorously specified mathematical models to build software and hardware.
© Andrew IrelandGrand Challenges for Computing Research 2004 The Verifying Compiler Andrew Ireland Dependable Systems Group School of Mathematical & Computer.
CSC3315 (Spring 2009)1 CSC 3315 Languages & Compilers Hamid Harroud School of Science and Engineering, Akhawayn University
Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.
Formal Methods. Objectives To introduce formal methods including multiple logic based approaches for software modelling and reasoning 2.
Specialties Description
Creating Skills-Based Job Postings: An Overview Guide
Software Engineering in the Academy
Partial Differential Equations and Applied Mathematics Seminar
FORESTUR: “Tailored training for professionals in the rural tourist sector” ES/06/B/F/PP FLORIDA PRESENTATION Valencia, November 2006.
B (The language of B-Method )
Computer Science 210 Computer Organization
Software Engineering in the Academy
Logic: tool-based modeling and reasoning
Java Modeling Language (JML)
Programming Languages 2nd edition Tucker and Noonan
Computer Science 210 Computer Organization
Presentation transcript:

Teaching Formal Methods for the Unconquered Territory Nestor Catano Madeira ITI, Portugal Camilo Rueda Pontificia Universidad Javeriana (PUJ), Cali, Colombia

Engineering in Computer Science at PUJ 5 years program – 2 years common trunk in mathematics and physics – 3 years program in computer Science 2 courses in discrete mathematics and logic – ACM/IEEE undergraduate computer science curriculum 2 courses in Software Engineering

Formal Methods Courses Local companies consider the ability to reason about software design as a key competence in young professionals The economic development plan of Cali pointed out at software production as a key strategy, and increasing software quality as the most pressing need in this realm

PUJ and Software Companies Students are encouraged to initiate software start-ups at ParqueSoft through an entrepreneurship joint educational program Students substitute their engineering degree final work with a technical report on their proposed software venture About half of ParqueSoft companies have achieved standard quality assurance certifications

The Courses 1.Program Specification and Verification Course – JML (Java Modeling Language) – The Design-by-Contract 2.Formal Program Development – Refinement calculus theory in B – The parachute strategy for Software development

Our Goals To help students to build skills on formal methods To master formal tools they might use in their future IT software engineering jobs –unconquered territory – Software companies

Program Specification and Verification Program Correctness and WP Calculus Design-by-Contract JML (Java Modeling Language) Software Verification Examples – Smart Card Applications – Bank Applications – Social Network apps

JML-based Software Development Three steps specification approach – informal specification, semi-formal, formal in JML Checking JML Specifications – JML Common Tools, ESC/Java 2 Evolving code + Specifications

Health Card There must not exist duplicated entries for allergies with the same designation code

Health Card If a new allergy is to be added to the list of referenced allergies, and the allergy designation has already been referenced, then the new allergy is not inserted

Health Card requires assignable as, ensures requires assignable ensures public abstract void addAllergy ( byte[] designation, byte[] date) throws RemoteException, UserException;

Health Card: Invariants All allergy designation codes must have a stipulated length

Health Card: Invariants invariant size(des) == CODE_LENGTH

Health Card: Invariants invariant des.size == CODE_LENGTH;

Formal Program Development Role of Predicate + relational calculus in software specifications The Event B method The Refinement model Modeling examples – Physical systems: MIO – Program development: patterns – Software structuring: invoice system

Formal Program Development Building a hierarchy of event B machines Abstract Event B machine – Properties and invariants: pre-condition – A single event: post-condition Refined machines – Proposed invariant determines new variables – Proof obligations determine new progress events – Post-condition ensured by final events

Go-Home Message We should guide students in the process of discovering the close embracing relation between software models and mathematical formalisms

Go-Home Message The JML course allows students to have a first contact with formal specification of programs, and program correctness Students enjoy evolving program and JML specifications

Go-Home Message We endeavor to develop in students a point of complementarity of formal methods with respect to standard software engineering We are careful not to present formal methods as better methodologies that should replace other strategies in all situations We do stress what can be gained by formal thinking in better requirements specification, even for traditional methodologies

Go-Home Message In the event B method we stress the fact that abstract and refined models serve different purposes, for different types of users We give a complementary view of tools, Rodin and ProB, and show their interplay in development Through many examples we endeavor to present formal proofs as aids to program development, rather than requirements of a methodology