erlang as a supporting technology for teaching software architecture

Post on 06-Sep-2014

370 Views

Category:

Technology

6 Downloads

Preview:

Click to see full reader

DESCRIPTION

At university, it is usually the case that students are introduced to programming languages to the extent in which they serve a teaching purpose usually related to acquiring some paradigm-bounded programming skills. Thus, they (we) learn to code our first source lines using PASCAL, are introduced to C programming to handle memory and threads, enter the Java world hand-in-hand with UML and object-orientation. However, Erlang is seldom the choice for learning about the declarative paradigm, for which ML or Haskell are often preferred candidates. Two years ago, the University of A Coruña (UDC) stepped out of this box and decided to use Erlang as supporting technology for teaching Software Architecture. In this subject, we go beyond programming and, in helping students build up a more abstract, system-wide design competence, we make them face the strengths and weaknesses of different architectures (client-server, multi-layered, repository, pipe & filter, master-slave, peer-to-peer) in terms of non-functional requirements (availability, flexibility, performance, security). In this setting, Erlang has worked as an excellent tool in order to quickly prototype and compare systems of different architectural nature, as we will illustrate in more detail during this talk.

TRANSCRIPT

Erlangas supporting technology for teaching

Software Architecture

Laura M. Castro

Department of Computer ScienceUniversidade da Coruña (Spain)

Stockholm, June 9-10th, 2014

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 1 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 2 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 3 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 4 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 5 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 6 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 7 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 8 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 9 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 10 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 11 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 12 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 13 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 14 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 14 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 15 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 16 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 17 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 18 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 18 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 19 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 20 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 21 / 43

2 bachelor degrees (3 academic years)+

1 university degree (5 academic years)

1 degree (4 academic years)+

5 professional profiles

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 22 / 43

2 bachelor degrees (3 academic years)+

1 university degree (5 academic years)

1 degree (4 academic years)+

5 professional profiles

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 22 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 23 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 24 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 25 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 26 / 43

ping/echo availability heartbeat activeredundancy scalability shadowoperation pasive redundancy monitorfault tolerance event ratio robustnessevent queues fixed priority limitedexposure efficiency dynamic priorityfacade wrapper security proxy cachenotifier dispatcher adaptability

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 27 / 43

Erlang as a rapid prototying tool

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 28 / 43

Agile approach

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 29 / 43

Individual work + Team work

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 30 / 43

“We dared to do things far more complex thatwe usually do”

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 31 / 43

“I was a bit lost at the beginning, theexercises were easy but being unfamiliar withFP made me progress very slowly. But then,

during the team project, we found ourselvesbuilding things very quickly.”

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 32 / 43

“I thought working with so many processeswas going to be a nightmare”

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 33 / 43

“I wish we had a few more weeks, we all couldhave made our projects even more awesome”

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 34 / 43

Student’s projects

Games (poker, trivia,. . . )

IM systems

Web crawlers

Text analyzers

Ship-to-shore crane control

Smart-city sensor information

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 35 / 43

Student’s evaluation

Almost 0 drop-outs

All students passed

Most students got B scores

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 36 / 43

“Loved the iterations, you know exactly whatyou have to do”

“It forces you not to give up on the course”

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 37 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 38 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 39 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 40 / 43

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 41 / 43

Thanks for your attentionI hope this has been interesting!

time_for(Questions) ->

[ speaker ! Q || Q <- Questions ].

@lauramcastro

lcastro@udc.es

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 42 / 43

CreditsImage authoring attribution (in order of appearance)

Rusty tools, Wikimedia Commons.

Octopus shell, Wikipedia.

Claw hammer, Wikipedia.

Nail art, SAYANEcw on Deviant Art.

Ericsson DBH 1001 1939, Wikipedia.

James Webb space telescope, Wikipedia.

Rappelling success, Laity Lodge Family Camp on Flickr.

Map of users, Erlang Central.

Cidade da Coruña nun mar de brétema, Wikimedia Commons.

View of A Coruña from lighthouse, Wikimedia Commons.

Facultad de Informática, Wikipedia.

Bologna seen from Asinelli tower, Wikipedia.

Charla contra Bolonia, Wikimedia.

Bologna Centrale AV, Wikimedia.

Estudiantes contra Bolonia, Wikimedia.

Nevada Test Site Control Point, Wikipedia.

Flag of Europe, Wikimedia Commons.

Greek wrap, Flickr user ‘waferboard’.

Thor’s hammer, Flickr user Carlos Pacheco.

Back door, Flickr user Chad Hunter.

Red heart symbol, OpenClips on Pixabay.

Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 43 / 43

top related