Dr. Leonardo Freitas Department of , UK, YO10 5DD Phones: +44-(0) 1904-434753 (office) +44-(0) 7774737430 (mobile) e-mail: [email protected] Home Page: http://www.cs.york.ac.uk/~leo/

Interests:

• Specification and verification of high-integrity systems, with particular expertise in concurrent aspects and complex data types, such as flight-control software. • Software architect of framework for object oriented models using design patterns. • Proof-correct software development with high assurance at the code level. • Discussion and preparation of technical material with technical and non-technical people.

Skills: • 7 years in software verification (1999-2006) o Theorem proving: Z/Eves, Proof power Z, PVS o Model checking: FDR2, NuSMV. • 9 years in design patterns and frameworks (1998-2006) • 2 years in open source development and the use of management tools (2004-2006) o Version control systems: SVN, CVS o Software management and build tools: Apache ant and Maven • 6 years as Java Software Architect (2000-2006). o Tool + architecture development for formal verification tools o Java Servlets and Webserver concurrent programming. o Framework/library development for back-end applications. o Design patterns and model-based unit testing • 4 years as senior Delphi software architect (1997-2000). o Telecommunications and security protocols (i.e. Cybercash) o Multithreaded DCOM/COM components o Windows sockets, named pipes, services, and remote registry APIs o Code interacting with standard internet protocols (i.e., FTP, TCP, HTTP, etc). • 2 years experience in extreme programming (1998-2000) • good knowledge of C and C++ (1 year practical experience) (1997-1998) o Low-level integration with telecommunication hardware • competent user in the following tools and programming languages: o NetBeans, Eclipse IDE o Rational Rose 98, UML/RUP, Visio, Excel, XML O JML and ESC/Java (for Java) and Spec# and Boggie (for C#) • basic network performance and analysis via simulation with stochastic processes, queuing theory and analytical modelling

Education: 2003-2005, PhD program verification and software model checking, University of York, UK Thesis: Model checking Circus • Prototype model checking tool with theorem proving support for formal verification of behavioural and data aspects of distributed reactive systems. • Aimed at concurrent and distributed systems modelled in Circus, a concurrent refinement language that combines Z, CSP and the refinement calculus. • Research published in several international conferences in Journals (see last page). • 150k+ lines of Java code with part of the code derived through mathematical proof.

2000-2002, Honours MSc in process algebras and concurrent systems, UFPE, Brazil Thesis: JACK – A process algebra implementation in Java • Modelling and implementation of a process algebra (CSP) library with concurrency primitives in Java enabling other programmers to safely program concurrency issues. • Case study with the ECOSat, a Brazilian telecommunications satellite project. • 80k+ lines of code for a Java framework for concurrent and distributed programming • Research published at international conferences.

1996-2000, 1st class honours BSc in Computer science, UNIFACS, Brazil • E-commerce model and development of internet based businesses • 1 years junior research post in performance analysis of high-speed ATM networks 1

Professional experience:

• 2006-now, Researcher in software verification, University of York, UK

o 3-year project sponsored by UK Ministry of Defence to provide tool support in the development of proof-correct software for the Euro fighter typhoon jet. o Further development of a model checker for Circus with theorem proving support used in verifying correctness of concurrent and reactive software. o International cooperation with the Community Z Tools since 2004.

• 1999-2000, Software architect and framework writer, Knowhow Informatica, Brazil

o Object oriented development, designing and modelling of COM/DCOM components. o COM object for ASP pages synchronization and web developing (Delphi) o BlowFish and MD5 cryptography algorithms with high performance (C++). o Parser families for C++, Pascal, HTML and math expressions o ASM Intel routines for memory searching, comparing and sorting used for low level memory and record field operations in security protocols. o Components in Delphi and C++ for Windows NT services API, OS Performance monitoring, Offline debugging for Delphi, instance count for applications (local and remote), OS Synchronization objects and thread pool, etc. (200k+ lines of code).

• Jan-Oct 1998, System engineer and development team leader, Simplestec, Brazil

o Development manager of a distributed system for telephone exchange monitoring. o Reading phone calls from serial ports and other systems in C++ o High performance required assembler coding. o Monitoring, alarm tracking, and emergency services for exchange stations. o Windows sockets network programming for integration with other systems o 60k+ lines of code in Delphi, C++ and ASM x386 o Trainer of a 6 month course in Delphi for database and programming for the user. o System administration of Windows Networks.

• Jan-Dec 1997, Software developer and analyst, Simetria Metodos e Sistemas, Brazil

o Delphi developer for school database management applications. o Database administrator in SQL Server. o Course in ISO-9002/03 certification program of software quality. o Installation, support and maintenance of networks for Win95/NT.

Achievements:

• 2006, Co-supervision of 4 MSc students in , University of York o Verification of standard algorithms with Java/JML. o Verification of standard algorithms with C#/Spec#. o Mechanisation of (part) of the IBM CICS protocol. o Formal proof of refinement of UNIX (POSIX) file store specification to Java HashMap.

• 2006, High skilled migration programme (HSMP), UK Residence Permit Visa scheme

• 2005, Cambridge Certificate of Proficiency in English (CPE). o Highest English language proficiency certificate

• 2002-2005, fully funded 3-years overseas PhD grant, University of York.

• 2002-2003, President of Brazilian society, .

• 2000-2002, fully funded 2-years MSc research grant, UFPE Brazil

• 1999-2000. 1-year junior research grant for undergraduates, UNIFACS Brazil.

2

Academic experience: • Nov/2005-now Researcher for Grand challenge in Computing, University of York, UK o Active participant in Prof. Woodcock challenge in dependable systems evolution, a worldwide consortium of scientists aiming at building a verified software repository. o Joint leadership in two projects with international researchers a) May-Oct/2006–Mechanising proof of correctness of ¾ Smartcard application developed by Natwest in 1996 with highest security level (ITSEC-E6), and later extended into a critical operating system for banking applications (Multos) by Praxis. b) Oct/2006-Oct/2008-Specification and verification of a POSIX file store ¾ NASA proposal to develop a proof-correct file system for flash memory to be used in the next missions. Also useful for PDAs, and other devices.

• 2004-now, Community Z tools (CZT) Moderator, York, Liverpool, and New Zealand o International community aiming at the development of formal method tools. o Open source object oriented framework in Java: parser, type checkers, prover, etc o 450k+ lines of code managed via SVN and CVS

• 2002-now, Teaching assistant, University of York and Kent, UK o MSc in software engineering– formal software verification with Z (2004-06 York) o BSc in computer science – object oriented modelling and design (2002-03 Kent) o BSc in computer science – advanced Java programming (2003 Kent)

• 2002-2005, PhD training programme, University of York, UK o Summer school: in Kleene Algebra, University of Manchester (2005) o Training courses: undergraduate teaching, time management, presentation skills o Conference organisation committee: international conference in Integrated (IFM), University of Kent 2004. o Summer School: Joint Programme in Foundations of Computer Science, UK 2002-03 ¾ Syntax, Semantics and Fixed Points (Sussex University) – 12/2002 ¾ Z Specification, and Refinement Techniques (University of Kent) – 02/2003 ¾ CSP, CSP Semantic Models, FDR, and ProBE (Royal Holloway UCL) – 03/2003 o Summer School:Specification, Refinement, Verification, Abo Academy(Finland 2002)

• 2000-2002, MSc training programme, UFPE, Brazil o Artificial intelligence: design and implementation of an e-commerce architecture for autonomous negotiation agents. It sells and buys items accordingly to the user consumption and negotiations patterns. IBM uses this system in its e-commerce platform in a partnership project with UFPE. o Distributed systems: design an academic controlling embedded system. The main stream of the system is CORBA/DCOM with distributed object framework modelling. It also involved a mock COM/DCOM training programme for software engineers with emphasis in concurrency and object marshalling/serialisation. o Formal verification: modelling and verification of the telemetry interfaces of the SACI-1 satellite using CSP. These modules are responsible for the communication between the earth and the satellite. o Programming language semantics: action semantics for CSP (published work), which combines the mathematical approach of process algebras within a programming language environment of Java (basis of MSc dissertation). o Technical report: design issues and necessities to develop a Java CSP framework. Problem analysis of available implementations and proposal of solutions that uses separation of concerns and design patterns.

Certification and professional courses: • Rational unified process and UML, UFPE 2001 • Java programming for web-based (server) applications, UFPE, 2001 • Partial Analysis of programs: implementing compilers, Rio de Janeiro Brazil, 2001 • Catalysis Approach: component based development– Recife, Brazil 2000 • Real time architecture systems– Recife Brazil, 2000 • Design Patterns and Frameworks, VII SEMINFO UFBA Brazil, 1998 • Borland Certified Delphi 3 Client/Server Developer, BORLAND - 1998 3

Selected publications:

• Leo Freitas and Jim Woodcock. Mondex in Z/Eves. FACJ: Special Issue (to appear), 2006. • Jim Woodcock and Leo Freitas. Z/Eves and the Mondex Electronic Purse. Invited speaker at 3rd ICTAC, LNCS 4281 15—34 2006, Tunis Tunisia. • Jim Woodcock, A.L.C.Cavalcanti, M.C.Gaudel, Leo Freitas. Circus Operational Semantics. Formal Aspects of Computing Journal, to appear, 2006 • Leo Freitas and Jim Woodcock. FDR Explorer. 3rd RefineNET 2006, Macau China. • Leo Freitas, et. al. Taking our own medicine: applying the refinement calculus to the development of a state-rich model checker. 6th ICFEM 2006, LNCS 4260, Macau China. • Leo Freitas, Jim Woodcock, and Ana Cavalcanti. State-rich model checking. Innovations in Systems and Software Engineering, a NASA Journal, Feb 2006. • Leo Freitas and Jim Woodcock. Architecture for Integrating Refinement Model Checking with Theorem Proving. Innovations in Systems and Software Engineering, a NASA Journal, to appear April 2006. • Tim Miller, Leo Freitas, Petra Malik, and Mark Utting. CZT Support for Z Extensions. In Proceedings of IFM, 2005, LNCS 3771 pages 227-245. • J. C. P. Woodcock, A. L. C. Cavalcanti, and L. Freitas. Operational Semantics for Model Checking Circus. In Proceedings of FME, 2005, LNCS 3582 pages 237-252. • Leonardo Freitas, Ana Cavalcanti, and Augusto Sampaio. JACK–A Framework for Process Algebra Implementation in Java. In Proceedings of XVIII Simposio Brasileiro de Engenharia de Software in Gramado, pages 98-113, October 2002. • Leo Freitas. JACK–A Process Algebra Implementation in Java. MSc. thesis, 2002. • Leonardo Freitas, Ana Cavalcanti, and Hermano Moura. Action Semantics of CSP . In M Proceedings of XVII SBES in Rio de Janeiro, 2001. References:

Prof. Jim Woodcock – [email protected] University of York, Department of Computer Science Research collaborator York, YO10 5DD Tel: +44(0) 1904-434335 + Phd supervisor Dr. Ana Cavalcanti – [email protected] University of York, Department of Computer Science Research collaborator York, YO10 5DD Tel: +44(0) 1904-432823 + Phd co-supervisor Dr. Augusto Sampaio – [email protected] Centro de Informática UFPE, PO Box 7851, Recife, PE, MSc supervisor Brazil 50732-970 Tel: +55(0) 81-2126-8430, ext 4323 Prof. John Clark – [email protected] University of York, Department of Computer Science PhD examiner York, YO10 5DD Tel: +44(0) 1904-3779 Dr. Gerald Luettgen – [email protected] University of York, Department of Computer Science Research collaborator York, YO10 5DD Tel: +44(0) 1904-434774 Mr. Jose Eduardo Saraiva – [email protected] Microsoft Corporation, 1 Redmond way, Redmond Team leader @ Simplestec WA 98052 USA Tel: +1 425-882-8080 Mr. Demian Lessa – [email protected] 21E-A Creekside Village, Buffalo Director @ Knowhow NY 14261 USA Tel: +1 716-645-0708 Mr. David Noguerol – [email protected] 19 Alameda das Acacias, Salvador BA Director @ Simetria 41.820-250 Brazil Tel: +55 71-3359-4873

* Further publications and references can be provided upon request Dec 2006

4