Web Applications and Services

You are here

Credits
6
Types
Specialization compulsory (Software Engineering)
Requirements
  • Prerequisite: AS
Department
ESSI
In this course we want the student to acquire a thorough knowledge on the most important technologies for the development of modern web applications and services, as well as that s/he be able to use this knowledge in specific situations according to the appropriate design principles and best practices

Teachers

Person in charge

  • Carles Farre Tost ( )

Others

  • Carlota Catot Bragós ( )
  • Marc Oriol Hilari ( )
  • Quim Motger de la Encarnacion ( )

Weekly hours

Theory
2
Problems
0
Laboratory
2
Guided learning
0
Autonomous learning
6

Competences

Technical Competences

Common technical competencies

  • CT2 - To use properly theories, procedures and tools in the professional development of the informatics engineering in all its fields (specification, design, implementation, deployment and products evaluation) demonstrating the comprehension of the adopted compromises in the design decisions.
    • CT2.1 - To demonstrate knowledge and capacity to apply the principles, methodologies and life cycles of software engineering.
    • CT2.3 - To design, develop, select and evaluate computer applications, systems and services and, at the same time, ensure its reliability, security and quality in function of ethical principles and the current legislation and normative.
    • CT2.5 - To design and evaluate person-computer interfaces which guarantee the accessibility and usability of computer systems, services and applications.

Technical Competences of each Specialization

Software engineering specialization

  • CES1 - To develop, maintain and evaluate software services and systems which satisfy all user requirements, which behave reliably and efficiently, with a reasonable development and maintenance and which satisfy the rules for quality applying the theories, principles, methods and practices of Software Engineering.
    • CES1.1 - To develop, maintain and evaluate complex and/or critical software systems and services.
    • CES1.2 - To solve integration problems in function of the strategies, standards and available technologies
    • CES1.4 - To develop, mantain and evaluate distributed services and applications with network support.
    • CES1.7 - To control the quality and design tests in the software production
  • CES2 - To value the client needs and specify the software requirements to satisfy these needs, reconciling conflictive objectives through searching acceptable compromises, taking into account the limitations related to the cost, time, already developed systems and organizations.
    • CES2.2 - To design adequate solutions in one or more application domains, using software engineering methods which integrate ethical, social, legal and economical aspects.
  • CES3 - To identify and analyse problems; design, develop, implement, verify and document software solutions having an adequate knowledge about the current theories, models and techniques.
    • CES3.1 - To develop multimedia services and applications.

Transversal Competences

Autonomous learning

  • G7 [Avaluable] - To detect deficiencies in the own knowledge and overcome them through critical reflection and choosing the best actuation to extend this knowledge. Capacity for learning new methods and technologies, and versatility to adapt oneself to new situations.
    • G7.3 - Autonomous learning: capacity to plan and organize personal work. To apply the acquired knowledge when performing a task, in function of its suitability and importance, decide how to perform it and the needed time, and select the most adequate information sources. To identify the importance of establishing and maintaining contacts with students, teacher staff and professionals (networking). To identify information forums about ICT engineering, its advances and its impact in the society (IEEE, associations, etc.).

Objectives

  1. Acquire a critical and systematic knowledge of the main protocols and web technologies
    Related competences: CES1.1, CES1.2, CES1.4, CES3.1, G7.3, CT2.3,
  2. Gain an overview of the wide range of languages, tools and techniques available for application development and web services
    Related competences: CES1.1, CES1.2, CES1.4, CES2.2, G7.3, CT2.3,
  3. Evaluate and select the most appropriate architecture and technologies for a given application / web service
    Related competences: CT2.1, CES1.1, CES1.2, CES1.4, CES2.2, G7.3, CT2.3,
  4. Design web applications and services
    Related competences: CT2.1, CES1.1, CES1.2, CES1.4, CES2.2, G7.3, CES1.7, CT2.3,
    Subcompetences:
    • Understand and apply appropriate design patterns in each case
    • Designing Web service interfaces
    • Making the external design of web applications
    • Making the internal design of Web applications and services
  5. Know and use frameworks to implement Web applications and services
    Related competences: CT2.1, CES1.1, CES1.2, CES1.4, CES2.2, G7.3, CT2.3,
  6. Implement, deploy and configure Web applications and services using the proposed technologies and techniques
    Related competences: CT2.1, CES1.1, CES1.2, CES1.4, CES2.2, G7.3, CT2.3,
  7. Understand and identify the main security risks of Web applications and services as well as the strategies to solve them.
    Related competences: CT2.1, CES1.1, CES1.4, CES2.2, G7.3, CES1.7, CT2.3,
  8. Analyze and evaluate Web applications and services according to quality criteria
    Related competences: CT2.1, CES1.1, CES1.4, CES2.2, CT2.5, G7.3, CES1.7, CT2.3,
    Subcompetences:
    • Know and apply principles, strategies and tools for evaluating the performance of Web applications and services
    • Design and execute regression tests
    • Know and apply principles, strategies and tools to evaluate the usability of Web applications and services

Contents

  1. Introduction
    Differences between web applications and web services. Historical development. Main characteristics of the applications and Web services.
  2. Protocols, languages ​​and web technologies
    • The core: URIs and HTTP
    • On the client: HTML, CSS, JavaScript, DOM, AJAX
    • On the server: PHP, Java Servlets, JSPs, ...
    • Data exchange formats: XML, JSON
    • Web Services: SOAP + WSDL, REST
  3. Architectures for Web Applications and Services
    Logic Architecture vs. Physical Architecture. Specifics and conditions of web applications and services. Components of a generic web architecture. Patterns of physical architectures.
  4. Design of Web Applications
    Architecture and design of web applications.
  5. Design of Web Services
    Architecture and design of web services.
  6. Security, Usability and Test for Applications and Web Services
    Topics related to security, usability and test for applications and web services.

Activities

Activity Evaluation act


Unit 1: Introduction

Participates actively in the theory class, where the objectives and organization of the course will be exposed.

Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h

Unit 2: Protocols, languages ​​and web technologies

Participates actively in the theory class. Autonomously, and in groups of two or three, s/he will begin to look for information on a specific technology to be presented in class.
Objectives: 1 2
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h

P1: Presentation on Web protocols, languages and technologies (Part 1)

Apart from making the presentation before the entire class, students must hand in a file with the slides prepared for this purpose.
Objectives: 1 2
Week: 3
Type: theory exam
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h

P1: Presentation on Web protocols, languages and technologies (Part 2)

Apart from making the presentation before the entire class, students must hand in a file with the slides prepared for this purpose.
Objectives: 1 2
Week: 4
Type: theory exam
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h

Unit 3: Architectures for Web Applicationsand Services

Participate actively in class theory.
Objectives: 3
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

Unit 4: Design of Web Applications

Participates actively in the theory class. Autonomously, s/he will study some material related to the subject and do the exercises proposed by the teacher.
Objectives: 4
Contents:
Theory
6h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
9h

C1: Control 1

The test will assess all the topics covered in the units 1, 2 and 3.
Objectives: 4
Week: 9
Type: theory exam
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h

Unit 5: Design of Web Services

Participates actively in the theory class. Autonomously, s/he will study some material related to the subject and do the exercises proposed by the teacher.
Objectives: 4
Contents:
Theory
6h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
9h

P2: Presentation on security, usability and test for web applications and services (Part 1)


Objectives: 7 8
Week: 13
Type: theory exam
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h

P2: Presentation on security, usability and test for web applications and services (Part 2)


Objectives: 7 8
Week: 14
Type: theory exam
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h

C2: Control 2

The test will assess all the topics covered in the units 5 and 6.
Objectives: 4 7 8
Week: 15 (Outside class hours)
Type: theory exam
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h

Laboratory: Introductory sessions to technologies for web applications and services

In pairs, s/he works (installs, configures, programs) in order to achieve a certain number of tasks defined in the statement handed in at the beginning of the session, using the required language, tools and resources. In advance, and autonomously, s/he has introduced her/himself to the use of these technologies.
Objectives: 1 2 6
Contents:
Theory
0h
Problems
0h
Laboratory
8h
Guided learning
0h
Autonomous learning
10h

Laboratory: Project

In groups of 3-4, s/he designs and implements the tests and code for a web application, and deploys it on the cloud. Regardless of its functionalities, the application will consist of three parts: "classic" web application, REST API, and responsive mobile interface. Each week s/he comes to the laboratory session to work on the project, indicate the level of achievement of the milestones set for that session, (re)plan the milestones for the next session, present results, and report doubts and problems. At the end of the project, s/he assess the work of his/her project fellows.
Objectives: 4 5 6 7 8
Contents:
Theory
0h
Problems
0h
Laboratory
22h
Guided learning
0h
Autonomous learning
30h

Teaching methodology

The teaching of the course is structured in theory/problems sessions and laboratory sessions.

Theory/problems sessions: 2 hours per week.
The instructors can present some of the course content using slides or other material available at Atenea. Problems will be aimed to help and test learning. Sometimes, students may be required to have fully or partially solved problems before class, so the possible solutions will be discussed in class. At other times, the problem will be raised and resolved during class, using cooperative learning techniques. There will be also sessions in which students will be required to prepare on their own and present to the class a certain topic.

Laboratory sessions: 2 hours per week.
During the first 4 weeks of the course, and after a brief introduction, the students will be required to complete a certain number of tasks using the computer in accordance with a work plan.
Durant the remaining weeks of the course, the students, in groups of 3-4, will design and implement a web project. The lab sessions will be used to work in the project, discuss and fix doubts and problems, plan and manage goals, and present results.

Evaluation methodology

Final Grade = 50% NTP + 50% NLAB

NTP = theory and exercises mark
NLAB = laboratory grade mark

NTP is computed from C1 (Test 1), C2 (Test 2), P1 (Presentation 1) and P2 (Presentation 2) marks applying the following formula:

NTP= 30% C1 + 30% C2 + 20% P1 + 20% P2

NLAB is computed from IntroLAB (Introductory sessions to web technologies) and Project marks applying the following formula:

NLAB = 30% IntroLAB + 70% Project

Presentations (P1 and P2) and Project involve group work. In these cases, the student will have a personalized note that will be calculated based on the assessment that the teacher will make on the overall quality of the item (presentation or project), the assessment that the teacher will make on the student's contribution within the group and the assessment that the fellow group members will make on the contribution of the student to the group.

The assessment of the transversal competence assigned to the course (G7.3) is obtained from the following formula:

Numeric G7.3 Grade = 60% Project + 40% ((P1 + P2) / 2)

And will have values A, B, C, D according to the following distribution:

G7.3 Grade = A if Numeric G7.3 Grade is in [8.5, 10]
G7.3 Grade = B if Numeric G7.3 Grade is in [7, 8.4]
G7.3 Grade = C if Numeric G7.3 Grade is in [5, 6.9]
G7.3 Grade = D if Numeric G7.3 Grade is less than 5

Bibliography

Basic:

Complementary:

Web links

Previous capacities

1) Learn how to specify a system"s functional and non-functional requirements in UML.
2) Learn the context in which one can design a system and what the previous and subsequent steps are.
3) Learn the nature of software architecture, and the architectural styles there are (of which layered architecture is one).
4) Principles of object-oriented design
5) Understand the concept of design patterns and know the main design patterns available.
6) Learn the specific UML elements of design.
7) Learn the main characteristics of distributed component systems.