Credits
6
Types
Specialization compulsory (Software Engineering)
Requirements
- Prerequisite: AS
Department
ESSI
Teachers
Person in charge
- Carles Farre Tost ( carles.farre@upc.edu )
Others
- Carlota Catot Bragós ( carlota.catot@upc.edu )
- Marc Oriol Hilari ( marc.oriol@upc.edu )
- Pau Duran Manzano ( pau.duran.manzano@upc.edu )
- Quim Motger de la Encarnacion ( joaquim.motger@upc.edu )
Weekly hours
Theory
2
Problems
0
Laboratory
2
Guided learning
0
Autonomous learning
6
Competences
Common technical competencies
- 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.
Software engineering specialization
- 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.2 - To design adequate solutions in one or more application domains, using software engineering methods which integrate ethical, social, legal and economical aspects.
- CES3.1 - To develop multimedia services and applications.
Autonomous learning
- 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, -
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
-
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, -
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
<ul><li> The core: URIs and HTTP </li><li> On the client: HTML, CSS, JavaScript, DOM, AJAX </li><li> On the server: PHP, Java Servlets, JSPs, ... </li><li> Data exchange formats: XML, JSON </li><li> Web Services: SOAP + WSDL, REST </li></ul> -
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
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
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h
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
Theory
0h
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
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h
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
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% NLABNTP = 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
-
Service design patterns: fundamental design solutions for SOAP/WSDL and RESTful web services
- Daigneau, R,
Addison-Wesley,
2012.
ISBN: 9780321544209
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003924839706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Engineering software as a service: an Agile approach using Cloud Computing: first edition 1.1.1
- Fox, A.; Patterson, D,
Strawberry Canyon,
2012.
ISBN: 9780984881246
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003990539706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
.NET application architecture guide
- ,
Microsoft,
2009.
ISBN: 9780735627109
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004034619706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Web application architecture: principles, protocols, and practices
- Shklar, L.; Rosen, R,
John Wiley,
2009.
ISBN: 9780470518601
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003630939706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Complementary
-
Designing data-intensive web applications
- Ceri, S. [et al.],
Morgan Kaufmann,
2003.
ISBN: 1558608435
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002730699706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Building web applications with UML
- Conallen, J,
Addison-Wesley,
2003.
ISBN: 0201730383
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002575779706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Web Applications and Services
- Farré, Carles,
-
Desenvolupament d'aplicacions web
- Farré, Carles,
Revista de Tecnologia,
2017/7.
ISBN: 2013-9861
https://doi.org/10.2436/20.2004.01.20 -
Patterns of enterprise application architecture
- Fowler, M,
Addison-Wesley,
2003.
ISBN: 0321127420
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002575799706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Web engineering: the discipline of systematic development of web applications
- Kappel, G. [et al.] (eds.),
John Wiley & Sons,
2006.
ISBN: 0470015543
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003175679706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
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.