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 (
)
Pau Duran Manzano (
)
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
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,
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,
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,
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,
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,
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
Introduction
Differences between web applications and web services. Historical development. Main characteristics of the applications and Web services.
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
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.
Design of Web Applications
Architecture and design of web applications.
Design of Web Services
Architecture and design of web services.
Security, Usability and Test for Applications and Web Services
Topics related to security, usability and test for applications and web services.
Activities
ActivityEvaluation act
Unit 1: Introduction
Participates actively in the theory class, where the objectives and organization of the course will be exposed.
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:12 Contents:
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:12 Week:
3
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:12 Week:
4
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:
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:
The test will assess all the topics covered in the units 1, 2 and 3. Objectives:4 Week:
9
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:
The test will assess all the topics covered in the units 5 and 6. Objectives:478 Week:
15 (Outside class hours)
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:126 Contents:
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:45678 Contents:
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:
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
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.