Erlang as Supporting Technology for teaching Software Architecture

Laura M. Castro
Teacher and Learner, Researcher and Finder, Traveler and Stayer

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.

Talk objectives: This talk is an experience-based argument in favour of using Erlang as a vehicle for higher-level learning processes. Avoid the 'learning yet another language' feeling by focusing on software architecture and design rather than in system implementation, but take the most out of Erlang's features to translate theory into practice.

Target audience: Erlangers interested in an Erlang-based teaching experience beyond programming. 

Slides
Video

Laura became fascinated with Erlang when she learned the language as part of a functional programming course she took during the forth year of her studies in Software Engineering. She was determined to make use of this language as part of her master thesis, so she joined the LFCIA Lab (today MADS Group) at the University of A Coruña (Spain), and participated in the development of an enterprise risk management system whose core was Erlang/OTP. Years later, she presented her PhD in Computer Science: a functional software development methodology which takes advantage of using functional technology to introduce quality assurance techniques and improve both the development process and the software result.

Since then, she has specialized in software testing but remained closely attached to the Erlang community, collaborating with researchers and former colleagues now working in universities and companies around the world. For instance, she has been involved in several European research projects such as ProTest and PROWESS.

Also, she has become an associate professor at the University of A Coruña, where she teaches software architecture and software testing to undergraduate students and supervises several PhD students.


Back to conference page