Experiencias Industriales con Programación Declarativa
-
Upload
laura-m-castro -
Category
Technology
-
view
169 -
download
3
description
Transcript of Experiencias Industriales con Programación Declarativa
Experiencias Industrialescon Programación Declarativa
Laura M. [email protected]
www.madsgroup.org/staff/laura
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
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
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
● 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
VoDKA
VoDKATV
ARMISTICE
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
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
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
● Current research: software testing– Specifically: model-based and property-based
testing
● 2 European research projects:– ProTest (http://protestproject.eu): 2007-2011
– PROWESS (http://prowessproject.eu): 2012-2015
MADS (today)
● 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
● 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