Usted está aquí: Inicio web asignaturas

DISEÑO DE SISTEMAS SOFTWARE

  Código Nombre    
Asignatura 1713022 DISEÑO DE SISTEMAS SOFTWARE Créditos Teóricos 3
Descriptor   SOFTWARE SYSTEM DESIGN Créditos Prácticos 3
Titulación 1713 INGENIERÍA EN INFORMÁTICA Tipo Troncal
Departamento C137 INGENIERÍA INFORMÁTICA    
Curso 4      
Duración (A: Anual, 1Q/2Q) 2Q      
Créditos ECTS 5      

Para el curso Créditos superados frente a presentados Créditos superados frente a matriculados
2007-08 95.8% 76.7%

 

 

Profesores

Daniel Molina Cabrera (Coordinador)

Situación

Prerrequisitos

El Plan de Estudios no establece ningún prerrequisito para poder
cursar esta
asignatura que  no esté contemplada en los títulos de Ingeniería
Técnica de
Informática.

Contexto dentro de la titulación

En Ingeniería del Software I se les plantea al alumnado una visión
global del
proceso de desarrollo del software.
Durante el segundo ciclo, el proceso de desarrollo del software es
estudiado más
en detalle mediante dos asignaturas troncales: Ingeniería de
Requisitos (proceso
de análisis) y Diseño de Sistemas Software (Diseño y en menor medida
implementación).

Recomendaciones

Se recomienda encarecidamente al alumnado asistir tanto a las clases
teóricas,
en donde se plantearán principios de diseño Orientado a Objetos y
distintos
esquemas de diseño (patrones) como a las clases prácticas (en donde
se aplicarán
dichos esquemas en casos concretos).

El trabajo continuo del alumno para un adecuado seguimiento de la
asignatura, y
la realización de las distintas prácticas.

Se recomienda asímismo ir leyendo la bibliografía recomendada de la
asignatura,
y lecturas adicionadas recomendadas.

Competencias

Competencias transversales/genéricas

INSTRUMENTALES

- Capacidad de análisis y Síntexis.
- Capacidad de organización y planificación.
- Resolución de problemas.
- Toma de decisiones.

PERSONALES
- Trabajo en equipo.

SISTÉMICAS
- Razonamiento crítico.
- Compromiso ético.
- Aprendizaje autónomo.
- Creatividad.
- Motivación por la calidad.

Competencias específicas

  • Cognitivas(Saber):

    - Plantearse los problemas de diseño: exceso de acoplamiento.
    - Conocer distintas soluciones de diseño (patrones) ante
    determinadas
    necesidades de diseño.
    - Conocer desde un punto de vista crítico distintos enfoques
    metodológicos de desarrollo.
    - Conocer el uso de distintas herramientas de desarrollo.
  • Procedimentales/Instrumentales(Saber hacer):

    - Partiendo del análisis de un sistema software plantear un diseño
    orientado hacia las necesidades de dicho sistema.
    - Identificar y aplicar posibles patrones de diseño en problemas
    concretos.
    - Capacidad para aplicar distintas herramientas (sistema de control
    de
    versiones, sistemas de prueba, ...) para mejorar el proceso.
  • Actitudinales:

    - Plantearse el diseño como un proceso contínuo.
    - Búsqueda de la calidad en el desarrollo por medio de un diseño
    adecuado.
    - Ponderar las ventajas e inconvenientes de distintas opciones de
    diseño para la toma de la decisión.
    - Uso de un enfoque crítico para valorar herramientas/modelos que
    permitan mejorar la calidad del proceso de desarrollo (y del
    producto
    obtenido).

Objetivos

- Introducir al alumno en el diseño orientado a objetos de la
arquitectura y de
los diferentes subsistemas  a partir de las especificaciones del
sistema software.
- Clasificar y diseñar sistemas software con alguna propiedad
predominante:
interactividad, distribución, etc.

- Utilización de recursos tecnológicos para la implementación y las
pruebas de
los sistemas diseñados.

Programa

Temario de Teoría
-----------------

Tema 1. Diseño Software:
1.1- Concepto de Diseño Software
1.2- Proceso de Diseño Orientado a Objeto

Tema 2. Principios de Diseño Orientado a Objeto
2.1- Conceptos y Principios de DOO
2.2- Ejemplos de los principios de diseño

Tema 3. Metodologías y Herramientas de implementación y pruebas.
3.1- Proceso de Desarrollo: Metodologías ágiles y
refactorización.
3.2- Pruebas automáticas.

Tema 4. Patrones de Diseño
4.1- Introducción a los Patrones
4.2- Patrones Estrategia, Decorador y Observador
4.3- Patrones de Creación.
4.4- Patrones de Delegación: Fachada, Adaptador, Command
4.5- Otros Patrones: MVC, Iterador, ...
4.6- Aplicando Patrones

Tema 5. Equipo: Factores personales en el proceso de desarrollo.

Tema 6. Programación Defensiva.

PRACTICAS
----------

Como prácticas de la asignatura, se le solicitará al alumnado
el desarrollo de una aplicación sencilla, pasando por distintas fases
(cada uno
con una entrega):

1- Diseño Conceptual de la aplicación.
2- Implementación de la aplicación, en Java.
3- Realización de test automáticos.
4- Mejora de la implementación usando las técnicas aprendidas en
clase.

Adicionalmente, antes de introducir el problema se realizarán
prácticas
de introducción de las herramientas recomendadas: Sistema de Control
de
Versiones, IDE, JUnit, ...

Actividades

-Clases de teoría, utilizando transparencias.
- Realización de una serie de prácticas en la que se aplicarán
algunos de los
principales patrones.
- Discusión en clase de distintas opciones de cara a implementar un
sistema.

Metodología

Se aplicará una metodología dirigida por proyecto, en el que sobre
una
especificación se realizan las distintas fases de diseño y de
implementación.
Dicha práctica consta de varias entregas, en las que el profesor
evaluará y
propondrá cambios para la próxima entrega. Se valorará principalmente
el
cumplimiento de los principios de diseño aunque también ciertos
aspectos de
implementación descritos en clase.
La idea de las distintas entregas es que no se vayan acumulando
errores, y
mostrarle al alumno/a sus errores, para que pueda no cometerlos en
fases posteriores.

Una vez cubierto el ciclo guiado de diseño y de implementación, se
deberá de
realizar una serie de cambios, aplicando las técnicas y patrones
vistos en clase.

Por tanto, el proceso de trabajo se centra en la puesta en práctica
de los
conceptos impartidos en las clases magistrales necesarias para la
exposición de
los contenidos teóricos.

Distribución de horas de trabajo del alumno

Nº de Horas (indicar total): 125

  • Clases Teóricas: 20  
  • Clases Prácticas: 26  
  • Exposiciones y Seminarios: 5  
  • Tutorías Especializadas (presenciales o virtuales):
    • Colectivas: 8  
    • Individules:  
  • Realización de Actividades Académicas Dirigidas:
    • Con presencia del profesor:  
    • Sin presencia del profesor: 12 (pr�icas)  
  • Otro Trabajo Personal Autónomo:
    • Horas de estudio: 30 (repaso de conceptos impartidos en clase)  
    • Preparación de Trabajo Personal: 13  
    • ...
        
  • Realización de Exámenes:
    • Examen escrito:  
    • Exámenes orales (control del Trabajo Personal):  

Técnicas Docentes

Sesiones académicas teóricas:Si   Exposición y debate:Si   Tutorías especializadas:No  
Sesiones académicas Prácticas:Si   Visitas y excursiones:No   Controles de lecturas obligatorias:No  

Criterios y Sistemas de Evaluación

La evaluación se realizará mediante:

- Realización de las prácticas planteadas a lo largo del curso. El
criterio de
evaluación de las prácticas se hará público para que pueda servir
como modelo de
auto-evaluación.

- Examen en el que se plantean la aplicación de los conocimientos
adquiridos para
mejorar sistemas, de forma semejante a las prácticas.

- Presentación por parte de los alumnos de trabajo a exponer (la
preparación de
ciertos patrones de diseño, o sobre alguna metodología).

Recursos Bibliográficos

* Gamma, E., et.al. Patrones de diseño. Addison-Wesley, 2003.
* Larman, C., UML y Patrones. Una introducción al análisis y diseño
orientado a
objetos y al proceso unificado, 2ª ed., Prentice Hall, 2003.
* Eric Freeman & Elisabeth Freeman. Head First Design Patterns,
O'Reilly, 2004.
* Brett D. McLaughlin, Gary Pollice, Dave West, Head First Object-
Oriented
Analysis and Design, O'Reilly, 2006.
* Booch, G., Rumbaugh, J., Jacobson, I. El proceso unificado de
desarrollo de
software. Addison-Wesley, 1999.
* Pressman, R. S. Ingeniería del software: un enfoque práctico, 5ª
ed.
MacGraw-Hill, 2001.
* Booch, G., Rumbaugh, J., Jacobson, I. El lenguaje unificado de
modelado:
manual de referencia. Addison-Wesley, 1999.
* Buschmann, F.et.al. Pattern-Oriented Software Architecture. A
System of
Patterns. Wiley & Sons, 1996.
* The Pragmatic Programmer: From Journeyman to Master. Andrew Hunt
and David
Thomas. Addison-Wesley.

 

El presente documento es propiedad de la Universidad de Cádiz y forma parte de su Sistema de Gestión de Calidad Docente.