Datos Identificativos 2012/13
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
Prerrequisitos
Departamento Computación
Coordinación
Blanco Ferro, Antonio angel
Correo electrónico
antonio.blanco.ferro@udc.es
Profesorado
Alonso Ríos, David
Blanco Ferro, Antonio angel
Cabrero Souto, David
Castro Souto, Laura Milagros
Monroy Camafreita, Juan
Mosqueira Rey, Eduardo
Paris Fernandez, Javier
Correo electrónico
david.alonso@udc.es
antonio.blanco.ferro@udc.es
david.cabrero@udc.es
laura.milagros.castro.souto@udc.es
juan.monroy@udc.es
eduardo.mosqueira@udc.es
javier.paris@udc.es
Web
Descrición xeral Esta asignatura ten por obxecto presentar ao estudantado o Deseño Software, fase chave dentro do ciclo de vida do Software que establece o enlace entre os requerimentos dun sistema e a súa posterior implementación.

Durante o curso será identificado o rol do deseño dentro do ciclo de vida, presentaranse conceptos, técnicas e ferramentas propias do deseño, e aprenderase a interpretar as situacións nas que se resolven problemas típicos de deseño aplicando linguaxes de modelado e patróns de deseño. Para acadar un deseño útil, cada estudante aprenderá a empregar o deseño para entender o funcionamento dun sistema e como guía para a implementación do mesmo.

Malia que se presentará de forma xeral o proceso de deseño software, farase fincapé no deseño orientado a obxectos, describindo os artefactos de modelado usando UML, e a súa implementación empregando unha linguaxe orientada a obxectos, a linguaxe Java.

Competencias do título
Código Competencias da titulación
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 Expresarse correctamente, tanto de forma oral coma escrita, nas linguas oficias da comunidade autónoma.
B3 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.
B9 Capacidade de resolución de problemas
B10 Traballo en equipo
B11 Capacidade de análise e síntese
B14 Toma de decisións
B15 Preocupación pola calidade
B17 Capacidade para xerar novas ideas (creatividade)
C1 Expresarse correctamente, tanto de forma oral coma escrita, nas linguas oficiais da comunidade autónoma.
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.
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.

Resultados de aprendizaxe
Competencias de materia (Resultados de aprendizaxe) Competencias da titulación
Identificar o deseño software como unha das fases do ciclo de vida do software A14
B1
B3
B9
B15
C1
C3
C7
Coñecer os conceptos de abstracción de datos e orientación a obxectos A13
B1
B3
B9
B10
B11
C1
C3
C7
Coñecer os conceptos, técnicas e ferramentas propias do deseño software A7
A13
A14
B1
B3
B9
B10
B11
C1
C3
C7
Interpretar as situacións nas que se presentan os problemas típicos de deseño A7
A13
A14
B1
B3
B9
B10
B14
C1
C3
C4
C6
C7
Manexar o deseño como guía para a implementación do software A7
A13
A14
B1
B3
B9
B10
B11
B14
C1
C3
C7
Aplicar as linguaxes de modelado e os patróns de deseño A7
A13
A14
B1
B3
B9
B10
B11
B14
B15
B17
C1
C3
C7

Contidos
Temas Subtemas
O Deseño como parte do Ciclo de Vida do Software Ciclo de Vida do Software
Deseño Software: Definición e posición dentro do Ciclo de Vida
Tipos de Deseño Software
Abstracción de Datos e Orientación a Obxectos Introducción á Orientación a Obxectos
- Evolución desde os tipos abstractos de datos
- Obxectos e Clases
- Encapsulación
- Herencia e Subtipado
- Polimorfismo e Ligadura Dinámica
- Asociacións
- Comunicación entre Obxectos
Introducción ao Deseño Software Introducción ao Deseño Orientado a Obxectos
A Linguaxe de Modelado Unificada UML
- Modelado estático (Diagramas de Clases e Obxectos)
- Modelado Dinámico (Diagramas de Secuencia, Estado e Actividade)
Principios do Deseño Software Composición vs Herencia. Reutilización
Asignación de Responsabilidades e Delegación
Principios de Aberto-Pechado e Sustitución
Baixo acoplamento, Alta cohesión
Manexo das Dependencias entre Obxectos
Deseño por Contrato
Refactorización
Introducción aos Patróns de Deseño Concepto de Patrón de Deseño
Patróns de Deseño
- Creacionáis (Singleton, etc.)
- de Comportamento (Estratexia, Estado, Iterador, etc.)
- Estruturáis (Composición, Decorador, Adaptador, etc.)

Planificación
Metodoloxías / probas Horas presenciais Horas non presenciais / traballo autónomo Horas totais
Sesión maxistral 30 45 75
Prácticas de laboratorio 20 30 50
Seminario 10 10 20
Proba de resposta breve 1 0 1
Proba obxectiva 3 0 3
 
Atención personalizada 1 0 1
 
*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 pola equipa docente da asignatura na facultade virtual.
Prácticas de laboratorio Prácticas deseñadas pola equipa docente da asignatura baseadas nos coñecementos que cada estudante vai adquirindo. Estes traballos serán desenvolvidos preferiblemente en grupo (que serán como máximo de duas personas). 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 Titorías de grupos reducidos (TGRs) nos que se proporán actividades relacionadas cos coñecementos adquiridos en teoría ou práctica
Proba de resposta breve Proba escrita con cuestións breves que se realiza aproximadamente á metade do curso para determinar se o estudantado interiorizou os conceptos básicos antes de introducir aspectos máis avanzados e tomar as accións correctivas oportunas.
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 pola equipa docente.
- 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 Descrición Cualificación
Proba de resposta breve Proba escrita con cuestións breves que se realiza aproximadamente á metade do curso para determinar se o estudantado adquiriu os conceptos básicos antes de introducir aspectos máis avanzados e, en caso contrario, tomar as accións correctivas oportunas. 10
Prácticas de laboratorio Avaliación continua das prácticas propostas ao longo do curso
Entre os aspectos a considerar á hora de valorar as prácticas, atópanse:
- Rigor no acadamento dos obxectivos perseguidos na práctica empregando as técnicas propostas na asignatura.
- Asimilación dos conceptos perseguidos pola práctica.
- Orixinalidade nas propostas acometidas durante a realización da práctica.
- Responsabilidade na entrega das prácticas en tempo e forma, así coma no uso axeitado dos recursos habilitados para esa fin.
- Valoración do traballo en grupo
30
Seminario Evaluación continua de actividades propostas ao longo do curso 5
Proba obxectiva Proba escrita realizada ao final do curso sobre contidos teórico-prácticos. 55
 
Observacións avaliación

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

  • Gardaranse as notas da proba de resposta breve (exame intermedio), dos seminarios (TGRs) e das prácticas de laboratorio.
  • Existirá a posibilidade de mellorar a nota das prácticas de laboratorio tal e como se indicará na plataforma virtual
  • A nota da proba obxectiva (exame teórico-práctico) gardarase se é igual ou maior que 5 sobre 10.


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
Eckel, B. (2007). Piensa en Java, 4ª ed.. Prentice-Hall
Arnold K., Gosling J. y Holmes D. (2005). The Java Programming Language. Prentice Hall
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

Bibliografía complementaria Page-Jones, M. (2004). Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development.. Prentice Hall
Sierra, K., Bates, B. (2005). Head First Java. O’Reilly
Cooper J. (2000). Java Design Patterns: A Tutorial. Addison Wesley
Grand M. (2002). Patterns in Java. John Wiley & Sons
Martin, R.C. (2004). UML para programadores Java. Pearson
Larman, C. (2002). UML y Patrones: Una introducción al análisis y diseño orientado a objetos y al proceso unificado. Prentice-Hall
Stevens, P. y Pooley, R. (1999). Using UML. Software Engineering with Objects and Components. Addison Wesley


Recomendacións
Materias que se recomenda ter cursado previamente
Concorrencia e Paralelismo/614G01018
Proceso Software/614G01019
Interfaces Home Máquina/614G01022
Internet e sistemas distribuidos/614G01023

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

Materias que continúan o temario
Programación II/614G01006

Observacións


(*)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