Datos Identificativos 2020/21
Asignatura (*) Deseño Software Código 614G01015
Titulación
Grao en Enxeñaría Informática
Descriptores Ciclo Período Curso Tipo Créditos
Grao 1º cuadrimestre
Segundo Obrigatoria 6
Idioma
Castelán
Inglés
Modalidade docente Híbrida
Prerrequisitos
Departamento Ciencias da Computación e Tecnoloxías da Información
Computación
Coordinación
Mosqueira Rey, Eduardo
Correo electrónico
eduardo.mosqueira@udc.es
Profesorado
,
Alonso Ríos, David
Monroy Camafreita, Juan
Morán Fernández, Laura
Mosqueira Rey, Eduardo
Pérez Sánchez, Beatriz
Correo electrónico
brais.cancela@udc.es
david.alonso@udc.es
juan.monroy@udc.es
laura.moranf@udc.es
eduardo.mosqueira@udc.es
beatriz.perezs@udc.es
Web
Descrición xeral O Deseño Software é unha fase chave dentro do ciclo de vida do software que establece a ligazón entre os requisitos dun sistema e a sua posterior implementación. O deseño máis habitual hoxe en día é o deseño baseado na orientación a obxectos, que consiste en desenvolver un programa en base a obxectos que intercambian mensaxes.

Esta materia introducirá ao alumnado nos elementos e propiedades básicas da orientación a obxectos usando unha linguaxe orientada a obxectos como Java. Aprenderase tamén a como reflectir os artefactos propios do deseño nunha linguaxe de modelado coma a Linguaxe Unificada de Modelado (UML).

Finalmente presentaranse aqueles principios básicos que representan un bo deseño e aprenderase a identificar aqueles problemas típicos de deseño e as súas solucións máis comúns representadas como patróns de deseño.
Plan de continxencia 1. Modificacións nos contidos

Non se realizarán cambios.

2. Metodoloxías

* Metodoloxías docentes que se manteñen

- Aínda que se manteñen as metodoloxías docentes de Sesión maxistral, Prácticas de laboratorio e Seminarios a forma de impartilas cambia tal e como se detalla no seguinte apartado.

* Metodoloxías docentes que se modifican

- Sesión maxistral. Un grupo xa se impartía de forma telemática. En caso de ter que impartir todos de forma non presencial o que se fará será gravar as sesións de teoría e utilizar o horario de clases para resolver dúbidas e realizar exercicios.

- Prácticas de laboratorio. Pasarán a impartirse de forma telemática. No horario destinado ás clases o profesor atenderá as dúbidas e resolverá os problemas dos alumnos.

- Seminarios. Deixarase gravada a explicación do profesor e aproveitarase o horario destinado ás clases para resolver dúbidas e problemas dos alumnos.


3. Mecanismos de atención personalizada ao alumnado

- Usarase Teams para as titorías tanto de forma síncrona (videoconferencias) como asíncrona (chat) respectando os horarios designados para as titorías.

- Usarase Moodle para comunicar anuncios importantes sobre a materia impartida.


4. Modificacións na avaliación

*Observacións de avaliación:

A avaliación, no caso de que se poida realizar unha avaliación presencial constará das seguintes porcentaxes que se adecúan á memoria do grao:

- Proba obxectiva: 60% (nota mínima de 4)
- Prácticas de laboratorio: 40%

En caso de non poder realizar unha avaliación presencial rebaixarase o peso da proba obxectiva seguindo as recomendacións do reitorado e eliminarase a nota mínima.

- Proba obxectiva non presencial: 40% (sen nota mínima de 4)
- Prácticas de laboratorio: 60%

A proba obxectiva non presencial será unha práctica (preferentemente) ou un tipo test se non se desen as condicións adecuadas para realizar dita práctica.

5. Modificacións da bibliografía ou webgrafía

Non se realizarán cambios. Xa dispoñen de todos os materiais de traballo de maneira dixitalizada en Moodle.

Competencias do título
Código Competencias do título
A7 Capacidade para deseñar, desenvolver, seleccionar e avaliar aplicacións e sistemas informáticos que aseguren a súa fiabilidade, seguranza e calidade, conforme a principios éticos e á lexislación e normativa vixente.
A13 Coñecemento, deseño e utilización de forma eficiente dos tipos e estruturas de datos máis adecuados á resolución dun problema.
A14 Capacidade para analizar, deseñar, construír e manter aplicacións de forma robusta, segura e eficiente, elixindo o paradigma e as linguaxes de programación máis adecuados.
B1 Capacidade de resolución de problemas
B2 Traballo en equipo
B3 Capacidade de análise e síntese
B4 Capacidade para organizar e planificar
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.
C6 Valorar criticamente o coñecemento, a tecnoloxía e a información dispoñible para resolver os problemas cos que deben enfrontarse.

Resultados de aprendizaxe
Resultados de aprendizaxe Competencias do título
Identificar o deseño software como unha das fases do ciclo de vida do software A7
A13
A14
B3
B4
C3
Coñecer os principios e propiedades básicas da orientación a obxectos A7
A13
A14
B1
B2
B3
B4
C3
C6
Plasmar un deseño software utilizando os artefactos propios dunha linguaxe de modelado coma UML A7
A13
A14
B1
B2
B3
B4
C3
C6
Coñecer os principios básicos que representan un bo deseño software A7
A13
A14
B1
B2
B3
B4
C3
C6
Identificar problemas típicos de deseño e as suas solucións máis comúns A7
A13
A14
B1
B2
B3
B4
C3
C6
Usar un deseño como guía para a implementación do software A7
A13
A14
B1
B2
B3
B4
C3
C6
Aprender unha linguaxe orientada a obxectos e aspectos relacionados (IDE, probas, repositorios, etc.) A13
B1
B2
B3
B4
C3
C6

Contidos
Temas Subtemas
1. Introducción • Deseño software
• Analise e deseño orientado a obxectos
2. Elementos Básicos da Orientación a Obxectos • Clases e obxectos
• Identidade de obxectos
• Estado de obxectos
• Comportamento de obxectos
3. Características Básicas da Orientación a Obxectos • Abstracción e encapsulamento
• Modularidade
• Xerarquía
• Polimorfismo
• Tipificación
• Ligadura Dinámica
4. Linguaxe Unificada de Modelado (UML) • Introducción
• Bloques básicos do UML
• Deseño estático: Diagramas de clases
• Deseño dinámico: Diagramas de interacción
• Outros diagramas
5. Principios de Deseño • Calidade no deseño
• Principios SOLID
• Tipos de herdanza
6. Patróns de Deseño • Introducción aos patróns de deseño
• Patróns elementais
• Deseños adaptables aos cambios
• Patróns e coleccións de obxectos
• Deseños débilmente acoplados
• Outros patróns e principios
Prácticas • Introducción a Java
• Excepcións en Java
• Probas de software
• Repositorios de código

Planificación
Metodoloxías / probas Competencias Horas presenciais Horas non presenciais / traballo autónomo Horas totais
Sesión maxistral A7 A13 A14 B1 B3 C6 30 45 75
Prácticas de laboratorio A7 A13 A14 B1 B2 B3 B4 C3 C6 20 30 50
Seminario A7 A13 A14 B1 B2 B3 B4 C3 C6 10 10 20
Proba obxectiva A7 A13 A14 B1 B3 C6 3 0 3
 
Atención personalizada 2 0 2
 
*Os datos que aparecen na táboa de planificación son de carácter orientativo, considerando a heteroxeneidade do alumnado

Metodoloxías
Metodoloxías Descrición
Sesión maxistral Clases expositivas de presentación dos coñecementos teóricos empregando diferentes recursos: pizarra, proxección de material en formato electrónico, apuntes en formato electrónico e os recursos facilitados polo profesorado da asignatura no Campus Virtual da UDC.
Prácticas de laboratorio Prácticas baseadas nos coñecementos que cada estudante vai adquirindo nas clases teóricas. Estes traballos serán desenvolvidos preferiblemente en grupo. Empregarase unha ferramenta de modelado para construir os artefactos de deseño e aplicarase unha linguaxe orientada a obxectos (Java) para realizar a implementación dos mesmos.
Seminario Seminarios nos que se realizarán actividades relacionadas cos coñecementos adquiridos en teoría ou práctica
Proba obxectiva Proba escrita mediante a que se valoran os coñecementos adquiridos polo estudantado. Cada estudante deberá aplicar tanto os seus coñecementos tanto a nivel teórico coma a nivel práctico.

Atención personalizada
Metodoloxías
Prácticas de laboratorio
Seminario
Descrición
A atención personalizada ao estudantado comprende non só as titorías, presenciais ou virtuais, para a discusión de dúbidas, senón tamén as seguintes actuacións:

- Seguemento do labor realizado nas prácticas de laboratorio propostas polo profesorado.
- Avaliación dos resultados obtidos nas prácticas, participación en seminarios realizados por cada estudante.
- Encontros personalizados para resolver dúbidas sobre os contidos da asignatura.


Avaliación
Metodoloxías Competencias Descrición Cualificación
Prácticas de laboratorio A7 A13 A14 B1 B2 B3 B4 C3 C6 Realización de exercicios prácticos baseados na programación en Java, na orientación a obxectos, o deseño de probas, a linguaxe de modelado UML e o uso de principios e patróns de deseño.

Practicas copiadas serán anuladas, tanto o orixinal como a copia, e poderán supor un cero na nota global da práctica en cuestión.
40
Seminario A7 A13 A14 B1 B2 B3 B4 C3 C6 Os seminarios son sesións de carácter práctico dirixidas polo profesorado nas que se comentan aspectos útiles relacionados coas prácticas.

Os seminarios non inclúen a entrega de traballos por parte do alumnado, polo que non é unha actividade avaliable.
0
Proba obxectiva A7 A13 A14 B1 B3 C6 Proba escrita realizada ao final do curso sobre contidos teórico-prácticos.

A proba obxectiva é obrigatoria para aprobar a materia e tamén é obrigatorio obter unha nota mínima de 4 sobre 10 para poder facer media cos outros elementos avaliables.
60
 
Observacións avaliación

En caso de non chegar á nota mínima na proba obxectiva, en calquera das oportunidades, implicará que non se poida obter máis dun 4,5 na nota final da materia.

Aspectos a ter en conta para a avaliación de segunda oportunidade (xullo):

  • A nota das prácticas de laboratorio serán as obtidas na primeira oportunidade (non haberá entrega de prácticas na segunda oportunidade).

Aspectos a ter en conta en caso de matrícula a tempo parcial:

  • Elimínase a obrigatoriedade de asistir as actividades nas que se poida esixir presencialidade. 

Fontes de información
Bibliografía básica Gamma, E.; Helm, R.; Johnson, R. y Vlissides J. (1996). Design Patterns: Elements of Reusable Object-oriented Software.. Addison Wesley
Booch J.; Rumbaugh J. y Jacobson I. (2006). El Lenguaje Unificado de Modelado (2ª ed.) The Unified Modeling Language (2nd ed.). Addison Wesley
Sierra, K., Bates, B. (2005). Head First Java. O’Reilly
Schildt, H. (2018). Java 9. Anaya Multimedia
Martin, R.C. (2004). UML para programadores Java. UML for Java Programmers. Pearson

Bibliografía complementaria Martin, R.C. (2012). Código limpio : manual de estilo para el desarrollo ágil de software. Anaya Multimedia
Bloch, J. (2017). Effective Java (3rd ed.). Addison Wesley
Freeman, E., Freeman, E., Bates, B. (2004). Head First Design Patterns. O'Reilly
Grand M. (2002). Patterns in Java. John Wiley & Sons
Eckel, B. (2007). Piensa en Java (4ª ed.). Thinking in Java (4th ed.). Prentice-Hall
Rumbaugh, J.; Jacobson, I. y Booch, J. (2004). The Unified Modeling Language Reference Manual. Addison Wesley


Recomendacións
Materias que se recomenda ter cursado previamente
Programación I/614G01001
Programación II/614G01006

Materias que se recomenda cursar simultaneamente
Paradigmas de Programación/614G01014

Materias que continúan o temario
Proceso Software/614G01019
Interfaces Home Máquina/614G01022
Internet e sistemas distribuidos/614G01023

Observacións

A materia asume que o alumnado sabe programar e coñece as estruturas de datos (Programación II) aínda que nunca utilizaron unha linguaxe orientada a obxectos. Ao principio do curso, e segundo vanse introducindo os conceptos propios da orientación a obxectos, o alumnado familiarízase cos aspectos básicos da linguaxe de programación Java.



(*)A Guía docente é o documento onde se visualiza a proposta académica da UDC. Este documento é público e non se pode modificar, salvo casos excepcionais baixo a revisión do órgano competente dacordo coa normativa vixente que establece o proceso de elaboración de guías