Transcript
Page 1: Experiencias Industriales con Programación Declarativa

Experiencias Industrialescon Programación Declarativa

Laura M. [email protected]

www.madsgroup.org/staff/laura

Page 2: Experiencias Industriales con Programación Declarativa

MADS

● Models and Applications of Distributed Systems

http://www.madsgroup.org● Core language: Erlang● Well-known results:

– VoDKA: Video on Demand system

– ARMISTICE: Advanced Risk Management Information System

– Syntheractive

– ADVERTISE

Page 3: Experiencias Industriales con Programación Declarativa

2 spin-offs

MADS

● Models and Applications of Distributed Systems

http://www.madsgroup.org● Core language: Erlang● Well-known results:

– VoDKA: Video on Demand system

– ARMISTICE: Advanced Risk Management Information System

– Syntheractive

– ADVERTISEcollaborationwith industry

Page 4: Experiencias Industriales con Programación Declarativa

2 spin-offs

MADS

● Models and Applications of Distributed Systems

http://www.madsgroup.org● Core language: Erlang● Well-known results:

– VoDKA: Video on Demand system

– ARMISTICE: Advanced Risk Management Information System

– Syntheractive

– ADVERTISE2 spin-offs

Page 5: Experiencias Industriales con Programación Declarativa

● Functional programming language● Developed by Ericsson in the mid-eighties, open

source since 1998● Dynamically typed, eager evaluation● Key features:

– Concurrency: lightweight processes, own memory space, asynchronous message passing

– Distribution: several VMs on several nodes

– High avalilability: links between processes, built-in fault-tolerance mechanisms

Erlang

Page 6: Experiencias Industriales con Programación Declarativa
Page 7: Experiencias Industriales con Programación Declarativa
Page 8: Experiencias Industriales con Programación Declarativa
Page 9: Experiencias Industriales con Programación Declarativa
Page 10: Experiencias Industriales con Programación Declarativa
Page 11: Experiencias Industriales con Programación Declarativa
Page 12: Experiencias Industriales con Programación Declarativa
Page 13: Experiencias Industriales con Programación Declarativa
Page 14: Experiencias Industriales con Programación Declarativa
Page 15: Experiencias Industriales con Programación Declarativa
Page 16: Experiencias Industriales con Programación Declarativa
Page 17: Experiencias Industriales con Programación Declarativa
Page 18: Experiencias Industriales con Programación Declarativa
Page 19: Experiencias Industriales con Programación Declarativa
Page 20: Experiencias Industriales con Programación Declarativa
Page 21: Experiencias Industriales con Programación Declarativa
Page 22: Experiencias Industriales con Programación Declarativa
Page 23: Experiencias Industriales con Programación Declarativa
Page 24: Experiencias Industriales con Programación Declarativa

VoDKA

Page 25: Experiencias Industriales con Programación Declarativa

VoDKATV

Page 26: Experiencias Industriales con Programación Declarativa

ARMISTICE

Page 27: Experiencias Industriales con Programación Declarativa
Page 28: Experiencias Industriales con Programación Declarativa
Page 29: Experiencias Industriales con Programación Declarativa
Page 30: Experiencias Industriales con Programación Declarativa
Page 31: Experiencias Industriales con Programación Declarativa
Page 32: Experiencias Industriales con Programación Declarativa
Page 33: Experiencias Industriales con Programación Declarativa

The key: Erlang

● Erlang features common to all these projects– Supervision, monitoring

● Lightweight processes● Behaviours (lots of boilerplate for free!)

– Seamless distribution

– Nonstop code upgrade

Page 34: Experiencias Industriales con Programación Declarativa

The key: Erlang

● Erlang features common to all these projects– Supervision, monitoring

● Lightweight processes● Behaviours (lots of boilerplate for free!)

– Seamless distribution

– Nonstop code upgrade

– Pattern-matching

– List comprehensions

– Functions as first-class citizens

Page 35: Experiencias Industriales con Programación Declarativa

The key: Erlang

● Erlang features common to all these projects– Supervision, monitoring

● Lightweight processes● Behaviours (lots of boilerplate for free!)

– Seamless distribution

– Nonstop code upgrade

– Pattern-matching

– List comprehensions

– Functions as first-class citizens

Page 36: Experiencias Industriales con Programación Declarativa

● Current research: software testing– Specifically: model-based and property-based

testing

● 2 European research projects:– ProTest (http://protest­project.eu): 2007-2011

– PROWESS (http://prowess­project.eu): 2012-2015

MADS (today)

Page 37: Experiencias Industriales con Programación Declarativa

● Uses declarative statements to specify properties that the software needs to satisfy according to its specification

● Using this approach:– Test cases can be automatically derived from

those properties

– Test cases can be automatically run and diagnosed

● PBT in Erlang:– QuickCheck / PropEr

ProTest: Property-based testing

Page 38: Experiencias Industriales con Programación Declarativa
Page 39: Experiencias Industriales con Programación Declarativa

● Reduce time spent on testing, whilst increasing software quality

– In order to quickly launch new, or enhancements of existing, web services and internet applications

● Provide the European software industry with efficient and effective testing tools and techniques for web services

– Erlang/QuickCheck as core tools/technologies

PROWESS: PBT for web services

Page 40: Experiencias Industriales con Programación Declarativa
Page 41: Experiencias Industriales con Programación Declarativa
Page 42: Experiencias Industriales con Programación Declarativa

Top Related