Study programme competencies |
Code
|
Study programme competences
|
A1 |
Capacidade para a integración de tecnoloxías, aplicacións, servizos e sistemas propios da enxeñaría informática, con carácter xeneralista, e en contextos máis amplos e multidisciplinares. |
A2 |
Capacidade para a planificación estratéxica, elaboración, dirección, coordinación, e xestión técnica e económica nos ámbitos da enxeñaría informática relacionados, entre outros, con: sistemas, aplicacións, servizos, redes, infraestruturas ou instalacións informáticas e centros ou factorías de desenvolvemento de sóftware, respectando o adecuado cumprimento dos criterios de calidade e ambientais e en contornos de traballo multidisciplinares. |
A3 |
Capacidade para a dirección de proxectos de investigación, desenvolvemento e innovación en empresas e centros tecnolóxicos, con garantía da seguridade para as persoas e bens, a calidade final dos produtos e a súa homologación. |
A4 |
Capacidade para modelar, deseñar, definir a arquitectura, implantar, xestionar, operar, administrar e manter aplicacións, redes, sistemas, servizos e contidos informáticos. |
A6 |
Capacidade para asegurar, xestionar, auditar e certificar a calidade dos desenvolvementos, procesos, sistemas, servizos, aplicacións e produtos informáticos. |
A7 |
Capacidade para deseñar, desenvolver, xestionar e avaliar mecanismos de certificación e garantía de seguridade no tratamento e acceso á información nun sistema de procesamento local ou distribuído. |
A8 |
Capacidade para analizar as necesidades de información que se presentan nun contorno e levar a cabo en todas as súas etapas o proceso de construción dun sistema de información. |
A9 |
Capacidade para deseñar e avaliar sistemas operativos e servidores, e aplicacións e sistemas baseados en computación distribuída. |
A11 |
Capacidade de deseñar e desenvolver sistemas, aplicacións e servizos informáticos en sistemas encaixados e ubicuos. |
A13 |
Capacidade para utilizar e desenvolver metodoloxías, métodos, técnicas, programas de uso específico, normas e estándares de computación gráfica. |
A14 |
Capacidade para conceptualizar, deseñar, desenvolver e avaliar a interacción persoa–ordenador de produtos, sistemas, aplicacións e servizos informáticos. |
B1 |
Capacidade de resolución de problemas. |
B2 |
Traballo en equipo. |
B3 |
Capacidade de análise e síntese. |
B6 |
Toma de decisións. |
B7 |
Preocupación pola calidade. |
B9 |
Capacidade para xerar novas ideas (creatividade). |
C2 |
Dominar a expresión e a comprensión de forma oral e escrita dun idioma estranxeiro. |
C3 |
Utilizar as ferramentas básicas das tecnoloxías da información e as comunicacións (TIC) necesarias para o exercicio da súa profesión e para a aprendizaxe ao longo da súa vida. |
C4 |
Desenvolverse para o exercicio dunha cidadanía aberta, culta, crítica, comprometida, democrática e solidaria, capaz de analizar a realidade, diagnosticar problemas, formular e implantar solucións baseadas no coñecemento e orientadas ao ben común. |
C5 |
Entender a importancia da cultura emprendedora e coñecer os medios ao alcance das persoas emprendedoras. |
C6 |
Valorar criticamente o coñecemento, a tecnoloxía e a información dispoñible para resolver os problemas cos que deben enfrontarse. |
C7 |
Asumir como profesional e cidadán a importancia da aprendizaxe ao longo da vida. |
C8 |
Valorar a importancia que ten a investigación, a innovación e o desenvolvemento tecnolóxico no avance socioeconómico e cultural da sociedade |
Learning aims |
Subject competencies (Learning outcomes) |
Study programme competences |
Know advanced concepts and techniques of Software Engineering |
AJ3 AJ6 AJ7 AJ9 AJ11
|
BJ1 BJ2 BJ7 BJ9
|
CJ2 CJ3 CJ6 CJ7
|
Know the languages and methodologies used in industry for the design of complex software systems |
AJ3 AJ4 AJ9
|
BJ1 BJ2 BJ3
|
CJ2 CJ3 CJ6
|
Know advanced tools used in industry for the design of complex software systems |
AJ1 AJ9 AJ11 AJ13
|
BJ1 BJ2
|
CJ2 CJ3 CJ6
|
Understand the main challenges and methodologies for evaluating design quality and software complexity |
AJ4 AJ6 AJ9
|
BJ1 BJ2 BJ7
|
CJ2 CJ3 CJ7 CJ8
|
Understand the importance of software accessibility and its technical implications |
AJ1 AJ6 AJ14
|
BJ1 BJ2 BJ7
|
CJ2 CJ4 CJ7
|
Understand the challenges of real world complex systems, and the trade offs that their designers have to make |
AJ2 AJ6 AJ8 AJ14
|
BJ1 BJ2 BJ3 BJ6 BJ7 BJ9
|
CJ2 CJ3 CJ4 CJ5 CJ6 CJ7 CJ8
|
Contents |
Topic |
Sub-topic |
Introduction to advanced software design |
Importance of software design
Software design and software development processes and methodologies
Design and architectural patterns, component-based design
Software evolution, design quality, metrics and software complexity
Software accessibility
Real world examples of complex software design |
Advanced concepts of software design |
Languages and tools used for software design
Design patterns
Architectural patterns
User interface and User experience patterns
Introduction to software refactoring and evolution |
Advanced concepts of quality in software design |
Software and design quality
Metrics and software complexity
Evaluation and verification of software systems |
Advanced concepts of software accessibility |
Importance of software accessibility
Software accessibility and software design
Software accessibility standards
Tools and technologies for software accessibility
Case studies of software accessibility |
Real world case studies |
Overview of some well known, complex software systems
Software design in industry-used open source projects
In depth analysis of the design, tools, quality and accessibility in several open source projects (e.g. WebKit, GNOME&KDE, Linux, MeeGo/Tizen, etc.) |
Planning |
Methodologies / tests |
Ordinary class hours |
Student’s personal work hours |
Total hours |
Guest lecture / keynote speech |
10 |
15 |
25 |
Case study |
10 |
20 |
30 |
Objective test |
5 |
0 |
5 |
Workshop |
10 |
20 |
30 |
Workbook |
0 |
10 |
10 |
Laboratory practice |
10 |
20 |
30 |
Events academic / information |
0 |
8 |
8 |
Online forum |
0 |
10 |
10 |
|
Personalized attention |
2 |
0 |
2 |
|
(*)The information in the planning table is for guidance only and does not take into account the heterogeneity of the students. |
Methodologies |
Methodologies |
Description |
Guest lecture / keynote speech |
We will invite relevant engineers and managers from the IT industry, in order to give the students guest lectures aligned with the contents of the course. |
Case study |
We will review real world projects and discuss how the theoretical content that we have studied in the lectures is applied there. We plan to focus mostly on open source projects, as we have full access to the design material and source code. |
Objective test |
Written exam, where the student will need to show both the theoretical knowledge acquired, and the capacity to resolve practical problems. |
Workshop |
Practical discussion, analysis and design sessions, with the students organized in groups, supervised by the teacher. |
Workbook |
The teacher will provide the student with relevant book chapters and articles, related to the theoretical content of the lectures, and the student will need to do a critical read of them, and prepare an executive summary that will be either reviewed by the teacher or by the whole classroom, depending on the case. |
Laboratory practice |
Practical design and coding exercises, with the students organized in groups, supervised by the teacher. |
Events academic / information |
We will complement the theoretical and practical lectures with attendance (either onsite or virtually) to conferences related to software design and development. |
Online forum |
All the topics discussed in lectures, workshops and practical lab time will have a follow up in the virtual forums. We will try to stimulate the discussion there and open new topics proposing links to extra content so that the students can complement their knowledge in the topics they have personal interest in. |
Personalized attention |
Methodologies
|
Online forum |
Workbook |
Laboratory practice |
|
Description |
The personal attention to the students includes, in this case, not only the classical supervision time (tutorship), or the virtual help using the online resources, but also the following actions:
- We will follow constantly the work of the student in all the supervised tasks that will be proposed along the duration of the subject.
- Assessment of the results obtained in the practical assignments developed by the student.
- Constant communication with the goal of solving the problems found by the student to understand the contents discussed in the lectures or the difficulties of the tasks proposed by the teacher.
|
|
Assessment |
Methodologies
|
Description
|
Qualification
|
Objective test |
Written exam with 3 parts: short theoretical questions, more practical questions where the students can elaborate a bit more the answers to the problems explained, and a specific complete design challenge. |
50 |
Workshop |
The assesment of practical tasks in workshops will be continuous along the course, and will be based on a final presentation to the teacher. We will consider as part of the assesment the following aspects:
- Capacity to work as part of a group.
- Personal capacity to carry out work and explain it.
- Capacity to cover all the goals of the task.
- Capacity to apply the knowledge acquired during the theoretical lessons.
- Critical thinking and capacity to innovate and find solutions to problems.
- Capacity to deliver the tasks on time. |
50 |
|
Assessment comments |
The summary of the qualification distribution is that we will obtain 50% of the marks from the written exam and 50% from a collection of workshops and practical activities that will be carried out during the course.
|
Sources of information |
Basic
|
|
Gamma, E.; Helm, R.; Johnson, R. y Vlissides J. (1996). Design Patterns: Elements of Reusable Object-oriented Software. Addison Wesley Martin Fowler with contributions by Kent Beck, John Brant, William Opdyke and Don Roberts. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999. Michael Jackson. Problem Analysis and Structure. In Proceedings of NATO Summer School, Marktoberdorf, August 2000 (in publication). Available here. Michael Jackson. Problem Frames: Analyzing and Structuring Software Development Problems. Addison Wesley, 2001. G. Polya. How to Solve It. 2nd ed., Princeton University Press, 1957. Diomidis Spinellis. Code Quality: The Open Source Perspective. Addison Wesley, Boston, MA, 2006. Stephen H. Kan. Metrics and Models in Software Quality Engineering. Addison-Wesley, Boston, MA, second edition, 2002. Henry, Shawn Lawton. Integrating Accessibility Throughout Design. Lulu.com. February 2007 |
Complementary
|
|
Rumbaugh, J.; Jacobson, I. y Booch, J. (2004). The Unified Modeling Language Reference Manual. Addison Wesley
Booch J.; Rumbaugh J. y Jacobson I. (2005). The Unified Modeling Language User Guide. Addison Wesley
Page-Jones, M. (2004). Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. Prentice Hall PTR
Cooper J. (2000). Java Design Patterns: A Tutorial. Addison Wesley
Stevens, P. y Pooley, R. (1999). Using UML. Software Engineering with Objects and Components. Addison Wesley
Ho-Won Jung, Seung-Gweon Kim, and Chang-Sin Chung. Measuring software product quality: A survey of ISO/IEC 9126. IEEE Software, 21(5):10–13, September/October 2004.
Omar Alshathry, Helge Janicke, "Optimizing Software Quality Assurance," compsacw, pp. 87–92, 2010 IEEE 34th Annual Computer Software and Applications Conference Workshops, 2010.
Robert L. Glass. Building Quality Software. Prentice Hall, Upper Saddle River, NJ, 1992.
Roland Petrasch, "The Definition of‚ Software Quality’: A Practical Approach", ISSRE, 1999 |
Recommendations |
Subjects that it is recommended to have taken before |
Dirección de proxectos/614502002 | Calidade. seguridade e auditoría informática/614502003 | Arquitecturas e plataformas móbiles/614502005 | Prácticas en empresa/614502011 | Traballo fin de mestrado/614502012 |
|
Subjects that are recommended to be taken simultaneously |
Análise de sistemas de información/614502006 |
|
Subjects that continue the syllabus |
|
|