Universidad Carlos III de Madrid Departamento de Ingeniería Telemática
Home / Teaching / Ing. de Telecomunicación / Communication Software

Communication Software

Degree: Ing. Telecomunicación
Year: 5
Term: 1
Group: 95-5 (Bilingüe)
Type: Optional
Credits: 4,5
Hours/Week: 3
Timetable: Tuesday 13:00-14:00, Thursday 11:00-13:00
Room: 4.0.E02 (lectures), 4.SD02 (labs, Thursday), 4.SD03 (lab, Tuesday)
Lecturers: Simon Pickin (lectures and labs) (en Español: Pablo Basanta Val, Norberto Fernández García)
Coordinator: Simon Pickin
Tutorial times: see the lecturer's personal web page
Authors, lecture materials: Simon Pickin (including translation of content authored by Natividad Martínez Madrid and Florina Almenárez Mendoza)
Authors, lab materials: Simon Pickin (including translation of content authored by Pedro Muñoz Merino and Norberto Fernández García)


The World Wide Web, together with the underlying Internet, is arguably the most important technological development in the history of ICTs, and in the space of a few years has become the pre-eminent access platform for a wide variety of enterprise applications. The objective of this module is to introduce the student to the basic aspects of Web technologies and applications. The students should acquire knowledge of, and competence in, the following areas:
  • Basic notions of software engineering and of analysis and design of communication software systems
  • System integration concepts and some existing software environments which enable such integration, in particular, the Java enterprise edition
  • Technologies for the development of distributed applications, in particular, web-based applications,

  • Part I. Introduction
    • Software engineering
    • UML2 by example
    • Component and multi-tier architectures
    • Integration of corporate applications: the J2EE platform
  • Part II. The data tier in the Java EE platform
    • Review of the relational model
    • Basic SQL
    • Connecting to databases with the JDBC API
  • Part III. The presentation tier in the Java EE platform
    • Servlets.
    • Java ServerPages (JSP)
      • JSP 1
      • JSP 2, the JSP standard tag library (JSTL) and the JSP 2 expression language (EL)
  • Part IV. The business tier in the Java EE platform
    • Object-relational mapping (ORM) and Java persistence solutions
    • The Java Persistence API
    • Enterprise JavaBeans version 3, in particular, EJB3 session beans
    • EJB2 vs. EJB3
  • Part V. Web application technologies
    • Dynamic languages such as PHP, Python, Ruby, Groovy,...
    • Client-tier technologies such as AJAX, Silverlight,...
    • Extensions to, and evolutions of, the Java EE platform such as Jakarta Struts, Java Server Faces...
    • ...

The students will be required to carrry out supervised practical assignments in the laboratory, with the aim of improving their understanding of the concepts presented in the course and of their abilities to put these concepts to practical use. The programming language used is Java.

The detailed course plan contains links to the slides that will be presented by the lecturer in the lectures and to the decriptions of the practical assignments to be carried out in the lab sessions.

Students are strongly recommended to widen their knowledge of the subject and complete the information provided in the slides by consulting the bibliography and/or the links given below.


  • The Unified Modeling Language User Guide. Grady Booch, James Rumbaugh and Ivar Jacobson. 2nd ed., Addison Wesley, 2005
  • Core Servlets and JavaServer Pages, vol 1. Marty Hall and Larry Brown. 2nd ed., Prentice Hall, 2003
  • Core Servlets and JavaServer Pages, vol 2. Marty Hall, Larry Brown and Yaakov Chaikin. 2nd ed., Prentice Hall, 2007
  • Persistence in the Enterprise: A Guide to Persistence Technologies. Roland Barcia, Geoffrey Hambrick, Kyle Brown, Robert Peterson and Kulvir Singh Bhogal. IBM Press, 2008
  • Pro EJB3. Java Persistence API. Mike Keith and Merrick Schincariol. Apress, 2006
  • Enterprise JavaBeans 3.0. Bill Burke and Richard Monson-Haefel. 5th ed., OReilly, 2006.
  • The Unified Modeling Language Reference Manual. James Rumbaugh, Ivar Jacobson and Grady Booch. 2nd ed., Addison Wesley 2005
  • UML Distilled : a Brief Guide to the Standard Object Modeling Language. Martin Fowler. 3rd ed., Addison Wesley, 2004
  • Using UML: Software Engineering with Objects and Components. Perdita Stevens. 2nd ed., Addison-Wesley, 2006
  • Software Engineering. Ian Sommerville. 9th ed., Addison Wesley, 2010.
  • Principles of Concurrent and Distributed Programming. Mordechai Ben-Ari. 2nd ed., Pearson, 2006.
  • Distributed Systems: Principles and Paradigms. Andrew Tanenbaum and Maarten Van Steen. Prentice-Hall, 2002.
  • Thinking in Java. Bruce Eckel. 4th ed., Prentice-Hall, 2006.
  • Effective Java. Josh Bloch. 2nd ed., Prentice Hall, 2008

Software Engineering


J2EE overview

Data Tier: SQL and JDBC

Presentation tier: Servlets and JSP

Business Tier: Enterprise Java Beans and the Java Persistence API


Java RMI


Simon Pickin,

Location | Personnel | Teaching | Research | News | Intranet
home | site map | contact