Identifying Data 2015/16
Subject (*) Deseño Software Code 614G01015
Study programme
Grao en Enxeñaría Informática
Descriptors Cycle Period Year Type Credits
Graduate 1st four-month period
Second Obligatoria 6
Language
Spanish
Teaching method Face-to-face
Prerequisites
Department Computación
Coordinador
Mosqueira Rey, Eduardo
E-mail
eduardo.mosqueira@udc.es
Lecturers
Alonso Betanzos, Maria Amparo
Alonso Ríos, David
Cabrero Canosa, Mariano Javier
Fontenla Romero, Oscar
Guijarro Berdiñas, Berta M.
Hernandez Pereira, Elena Maria
Monroy Camafreita, Juan
Mosqueira Rey, Eduardo
Pérez Sánchez, Beatriz
Sanchez Maroño, Noelia
E-mail
amparo.alonso.betanzos@udc.es
david.alonso@udc.es
mariano.cabrero@udc.es
oscar.fontenla@udc.es
berta.guijarro@udc.es
elena.hernandez@udc.es
juan.monroy@udc.es
eduardo.mosqueira@udc.es
beatriz.perezs@udc.es
noelia.sanchez@udc.es
Web
General description 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á aos alumnos 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.

Study programme competencies
Code Study programme competences
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.

Learning aims
Learning outcomes Study programme competences
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

Contents
Topic Sub-topic
1. Introducción • Deseño software
• 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

Planning
Methodologies / tests Competencies Ordinary class hours Student’s personal work hours Total hours
Guest lecture / keynote speech A7 A13 A14 B1 B3 C6 30 45 75
Laboratory practice A7 A13 A14 B1 B2 B3 B4 C3 C6 20 30 50
Seminar A7 A13 A14 B1 B2 B3 B4 C3 C6 10 10 20
Objective test A7 A13 A14 B1 B3 C6 3 0 3
 
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 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.
Laboratory practice 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.
Seminar Titorías de grupos reducidos (TGRs) nos que se proporán actividades relacionadas cos coñecementos adquiridos en teoría ou práctica
Objective test 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.

Personalized attention
Methodologies
Laboratory practice
Seminar
Description
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.


Assessment
Methodologies Competencies Description Qualification
Laboratory practice A7 A13 A14 B1 B2 B3 B4 C3 C6 Dous boletíns de exercicios baseados na programación en Java, na orientación a obxectos e o deseño de probas.
Unha práctica de deseño centrada no uso de principios e patróns de deseño.
40
Seminar A7 A13 A14 B1 B2 B3 B4 C3 C6 Os seminarios son prácticas de laboratorio desenroladas polos alumnos coa axuda directa do profesor que, ao final dos mesmos, mostrará cal era a solución a que os alumnos tiñan que chegar.

Os seminarios están directamente relacionados coa teoría e a práctica e a súa evaluación farase nestos apartados
0
Objective test 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
 
Assessment comments

En caso de non chegar á nota mínima na proba obxectiva, en calqueira 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).

Aspecto 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. 

Sources of information
Basic 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.). Addison Wesley
Sierra, K., Bates, B. (2005). Head First Java. O’Reilly
Eckel, B. (2007). Piensa en Java (4ª ed.). Prentice-Hall
Martin, R.C. (2004). UML para programadores Java. Pearson

Complementary Freeman, E., Freeman, E., Bates, B. (2004). Head First Design Patterns. O'Reilly
Grand M. (2002). Patterns in Java. John Wiley & Sons
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
Stevens, P. y Pooley, R. (2006). Using UML. Software Engineering with Objects and Components. Addison Wesley


Recommendations
Subjects that it is recommended to have taken before
Programming I/614G01001
Programming II/614G01006

Subjects that are recommended to be taken simultaneously
Paradigmas de Programación/614G01014

Subjects that continue the syllabus
Proceso Software/614G01019
Interfaces Home Máquina/614G01022
Internet e sistemas distribuidos/614G01023

Other comments

A materia asume que os estudantes saben programar e coñecen 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, os alumnos familiarízanse cos aspectos básicos da linguaxe de programación Java.



(*)The teaching guide is the document in which the URV publishes the information about all its courses. It is a public document and cannot be modified. Only in exceptional cases can it be revised by the competent agent or duly revised so that it is in line with current legislation.