Overview presentation, CIEL, Bordeaux, 9 June 2015. Means Eidgenösische Technische Hochschule (German)



Similar documents
How To Write A Program Verification And Programming Book

Professional Organization Checklist for the Computer Science Curriculum Updates. Association of Computing Machinery Computing Curricula 2008

Usable Verification of Object-Oriented Programs by Combining Static and Dynamic Techniques

VDM vs. Programming Language Extensions or their Integration

Definition of SOA. Capgemini University Technology Services School Capgemini - All rights reserved November 2006 SOA for Software Architects/ 2

Collaborative Software Development on the Web

Design by Contract beyond class modelling

Boogie: A Modular Reusable Verifier for Object-Oriented Programs

Degrees Major in Computer Science Minor in Computer Science Major in Software Engineering

Office Automation. Industrial Automation. Information Technology and Automation Systems in Industrial Applications. Product Development.

Information Security at ETH Zurich Institute of Information Security at ETH Zurich Zurich Information Security and Privacy Center

DOVER-SHERBORN HIGH SCHOOL PROGRAM OF STUDIES

SOFTWARE ENGINEERING PROGRAM

Lecture 1: Introduction

Implementing an IRC Server Using an Object- Oriented Programming Model for Concurrency

MODEL DRIVEN DEVELOPMENT OF BUSINESS PROCESS MONITORING AND CONTROL SYSTEMS

Programming Languages

Surveying and evaluating tools for managing processes for software intensive systems

INFORMATION TECHNOLOGY PROGRAM

Digital Preservation. OAIS Reference Model

FACULTY OF VIENNA UNIVERSITY OF TECHNOLOGY (TU WIEN) Science and Technology in the Information Age

QTP Open Source Test Automation Framework Introduction

Swiss Joint Master in Computer Science of the universities of Bern, Neuchâtel and Fribourg

Doctor of Philosophy in Computer Science

Specification and Analysis of Contracts Lecture 1 Introduction

The Service Revolution software engineering without programming languages

Final Year Projects at itm. Topics 2010/2011

KS3 Computing Group 1 Programme of Study hours per week

A Symptom Extraction and Classification Method for Self-Management

Object-Oriented Software Construction

Horizontal IoT Application Development using Semantic Web Technologies

Simplifying e Business Collaboration by providing a Semantic Mapping Platform

School of Computer Science

So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02)

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville

Database Replication with Oracle 11g and MS SQL Server 2008

How Network Operators Do Prepare for the Rise of the Machines

XML enabled databases. Non relational databases. Guido Rotondi

ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science

Social Document management with IBM Connections. "Do I use CCM, community files or shared personal files?"

CatDV Pro Workgroup Serve r

OVERVIEW OF JPSEARCH: A STANDARD FOR IMAGE SEARCH AND RETRIEVAL

A CIM-Based Framework for Utility Big Data Analytics

Intelligent Log Analyzer. André Restivo

Semantic Description of Distributed Business Processes

Chair of Software Engineering. Software Verification. Assertion Inference. Carlo A. Furia

JOURNAL OF OBJECT TECHNOLOGY

Business Objects Online training Contents SAP BUSINESS OBJECTS 4.0/XI 3.1. We provide online instructor led Business Objects Training.

We are one of Germany's leading universities of technology

Application Architectures

Integration of DB oriented CAD systems with Product Lifecycle Management

Professional Organization Checklist for the Computer Information Systems Curriculum

Datavetenskapligt Program (kandidat) Computer Science Programme (master)

Analysis and Design with UML

Architecture Design & Sequence Diagram. Week 7

How cloud-based systems and machine-driven big data can contribute to the development of autonomous vehicles

Knowledge based energy management for public buildings through holistic information modeling and 3D visualization. Ing. Antonio Sacchetti TERA SRL

Model Based Management of Configurations of a Complex Systems: Common Submarine Combat System

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

The ConTract Model. Helmut Wächter, Andreas Reuter. November 9, 1999

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

Software Configuration Management. Context. Learning Objectives

USING SYNERGY WITH CRUISE CONTROL

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

Data Integration and Exchange. L. Libkin 1 Data Integration and Exchange

P r oba bi l i sti c R oboti cs. Yrd. Doç. Dr. SIRMA YAVUZ sirma@ce.yildiz.edu.tr Room 130

a new generation software test automation framework - CIVIM

Separation of Concerns in Component-based Robotics

Formal Engineering for Industrial Software Development

Bachelor Degree in Informatics Engineering Master courses

M2M Communications and Internet of Things for Smart Cities. Soumya Kanti Datta Mobile Communications Dept.

Service Oriented Architectures

Business Application Services Testing

Challenges and Opportunities for formal specifications in Service Oriented Architectures

GenericServ, a Generic Server for Web Application Development

Web 3.0 image search: a World First

Security Issues for the Semantic Web

JOURNAL OF OBJECT TECHNOLOGY

Agile SPL-SCM: Agile Software Product Line Configuration and Release Management

FNWI Master Evening 19 February 2015 Computer Science. Alban Ponse, University of Amsterdam FNWI Master Evening : Computer Science 1/18

Keywords IS-SDE, software engineering, CALM, ALM, collaborative software development, development tools

BUSINESS RULES CONCEPTS... 2 BUSINESS RULE ENGINE ARCHITECTURE By using the RETE Algorithm Benefits of RETE Algorithm...

Pluggable Type Systems. Gilad Bracha

MOOCdb: Developing Data Standards for MOOC Data Science

.NET and J2EE Intro to Software Engineering

SMARTPHONES & BIG DATA. Daniel Nelson Head of Enterprise Development, daniel.nelson@braintreepayments.

TECHNOLOGY ANALYSIS FOR INTERNET OF THINGS USING BIG DATA LEARNING

Transcription:

Chair of Software Engineering, ETH Zurich Overview presentation, CIEL, Bordeaux, 9 June 2015 Bertrand Meyer 1 ETH Means Eidgenösische Technische Hochschule (German) The only federal university in Switzerland (with a sister university, EPFL, in Lausanne, French speaking part) Created 1855 18,000 students, 400 professors Budget $1.5 billion Around #8 worldwide (1 st in continental Europe) in rankings 2 1

3 ETH famous people 21 Nobel prizes (last one in 2003, chemistry) This is where Einstein studied; also von Neumann Bernays (logic) Pauli (physics) Clausius (physics) Kalman (electronics) Wirth (computer science) 4 2

ETH Chair of Software Engineering Professor (me) Three senior researchers, several postdocs, PhD students 19 PhD theses completed since 2003 (several more in 2015) Grants: SNF, Hasler, Gebert Ruf, Microsoft Industry collaboration: Eiffel Software, Zurich startups ERC Advanced Investigator Grant, Concurrency Made Easy, 2012 2017, 2.5 M 5 Scope Help move software development to the next level through: Object oriented development Software verification Support for concurrent programming Eiffel as base technology 6 3

Concurrency Underlying model: SCOOP (Simple Concurrent Object Oriented Programming) Minimal extension to Eiffel (one new keyword) Preserves sequential modes of reasoning Guarantee of no data races 7 Roboscoop Coordination layer above SCOOP (and hence Eiffel) Three layer architecture : Deliberation Deliberator Sequence Control Submit plan Query, Respond Synchronization: wait conditions Interoperability through ROS Sequencer (external calls) Submit plan Query, Respond Actuators Start, Stop Controller Sensors Query, Respond 8 4

Robotics: SmartWalker Smart assistant for elderly people Hi tech extension of the regular walker Autonomous robot with sensors and actuators Possible functionalities: Support while going uphill/downhill Navigation during shopping Finding a charging station Fall detection 9 Verification: EVE Eiffel Verification Environment Open source Developed at ETH, others contributions welcome Continuous integration (weekly) with EiffelStudio The platform for trying new ideas All ETH and other contributions included 10 5

EVE: Verification As a Matter Of Course AutoTest Test case generation AutoProof Suggestions Test execution Alias analysis Invariant inference Arbiter Invariant inference AutoFix 11 AutoProof (Nadia Polikarpova, Julian Tschannen, Carlo Furia, Martin Nodio) A practical environment for verifying programs Supports most of Eiffel, including advanced features (agents, exceptions ) Full proof of data structure library (EiffelBase 2) Based on MSR s Boogie and Z3 Ownership methodology Semantic collaboration for invariants Framing Available on the Web (google for AutoProof tutorial ) 12 6

Alias calculus Rules for determining the aliases of an expression a» skip = a a» (then p else q end) = (a» p) (a» q) a» (p ; q) = (a» p)» q a» (forget x) = a {x} a» (create x) = a {x} a» cut x, y = a {[x, y]} a» p 0 = a a» p n+1 = (a» p n )» p a» (loop p end) = (a» p n ) a» call r (v) a» call x r (v) = (a [x r :v])» r = x (x (call r (v)) 13 Frame inference: the change calculus l + p ; q = (l + p) + q then p else q end = loop p end = call r (l ) = Body of r p q p p 2 p 3 Back pointer r [l : r ] call x.r (l ) = x (call r (x'.l )) t := s = a (Current) t Image by the alias relation 14 7

ETH Introduction to Programming course Inverted Curriculum (outside in) See and reuse lots of software: inspiration, imitation, abstraction Reuse through interfaces & contracts Interesting examples from day one Combination of principles and practices Programming/design language is Eiffel touch.ethz.ch Traditional topics too: algorithms, control structures, basic data structures, recursion, syntax & BNF, Advanced topics: closures & lambda calculus, some design patterns, event driven programming, intro to software engineering 15 ETH Introduction to Programming course Inverted Curriculum (outside in) See and reuse lots of software: inspiration, imitation, abstraction Reuse through interfaces & contracts Interesting examples from day one Combination of principles and practices Programming/design language is Eiffel touch.ethz.ch Traditional topics too: algorithms, control structures, basic data structures, recursion, syntax & BNF, Advanced topics: closures & lambda calculus, some design patterns, event driven programming, intro to software engineering 16 8

MOOC (available through EdX) 17 Distributed development Update (check-out) Edit Commit (check-in) Reconcile 18 9

Resolving merge conflicts 19 There is a better way Unobtrusive, optimistic configuration management: Wiki Google Docs 20 10

CodeBoard (Christian Estler, Martin Nordio) Learn to program on the Web! Used today by an increasing number of MOOCs 21 Other work Object oriented persistence & schema evolution Development of Eiffel (ECMA committee) Software Process Agile methods 22 11

Summer school: LASER, September, Elba 23 Agile book Springer, 2014 Tutorial presentation & critical analysis of agile methods from a software engineering perspective 24 12