alguno de los patrones de diseño más conocidos.
Profesorado
Responsable
- Ernest Teniente Lopez ( ernest.teniente@upc.edu )
Otros
- Claudia Patricia Ayala Martinez ( claudia.ayala@upc.edu )
- Francesc Holly Miró ( francesc.holly@upc.edu )
- Jordi Casanovas Muñoz ( jordi.casanovas@fib.upc.edu )
- José Francisco Crespo Sanjusto ( josefran@fib.upc.edu )
- Manuel Rello Saltor ( manuel.rello@upc.edu )
- Oriol Catasús i Llena
- Pau Duran Manzano ( pau.duran.manzano@upc.edu )
- Sergio Morales Garcia ( sergio.morales@upc.edu )
- Xavier Oriol Hilari ( xavier.oriol@upc.edu )
Horas semanales
Teoría
2
Problemas
2
Laboratorio
0
Aprendizaje dirigido
0
Aprendizaje autónomo
6
Competencias
Competencias técnicas comunes
- CT2.1 - Demostrar conocimiento y capacidad de aplicación de los principios, metodologías y ciclos de vida de ingeniería de software.
- CT2.3 - Diseñar, desarrollar, seleccionar y evaluar aplicaciones, sistemas y servicios informáticos, y al mismo tiempo asegurar su fiabilidad, su seguridad y su calidad, conforme a principios éticos y a la legislación y la normativa vigente.
- CT2.4 - Demostrar conocimiento y capacidad de aplicación de las herramientas necesarias para el almacenaje, el procesamiento y el acceso a los Sistemas de información, incluidos los basados en web.
- CT3.3 - Saber encontrar e interpretar la información básica que permite evaluar el entorno económico de la organización.
- CT5.5 - Usar las herramientas de un entorno de desarrollo de software para crear y desarrollar aplicaciones.
- CT6.1 - Demostrar conocimiento y tener capacidad para administrar y mantener sistemas, servicios y aplicaciones informáticas.
- CT7.1 - Demostrar conocimiento de las métricas de calidad y saber utilizarlas.
- CT8.1 - Identificar tecnologías actuales y emergentes y evaluar si son aplicables, y en qué medida, para satisfacer las necesidades de los usuarios.
- CT8.2 - Asumir los roles y las funciones del jefe del proyecto y aplicar, en el ámbito de las organizaciones las técnicas de gestión y programación del tiempo, de los costes y de los aspectos financieros, de los recursos humanos y del riesgo.
- CT8.3 - Demostrar conocimiento y saber aplicar las técnicas apropiadas para modelar y analizar los diferentes tipos de decisiones.
- CT8.4 - Elaborar el pliego de condiciones técnicas de una instalación informática que cumpla los estándares y la normativa vigente.
- CT8.5 - Gestionar y resolver los problemas y conflictos gracias a la capacidad de generar alternativas o escenarios de futuro convenientemente analizados, integrando los aspectos de incertidumbre y los múltiples objetivos a considerar.
- CT8.6 - Demostrar comprensión de la importancia de la negociación, de los hábitos de trabajo efectivos, del liderazgo y de las habilidades de comunicación en todos los entornos de desarrollo de software.
- CT8.7 - Controlar versiones y configuraciones del proyecto.
Comunicación eficaz oral y escrita
- G4.2 - Utilizar estrategias para preparar y llevar a cabo las presentaciones orales y redactar textos y documentos con un contenido coherente, una estructura y un estilo adecuados y un buen nivel ortográfico y gramatical. Hacer una presentación oral ante un auditorio restringido. Escoger adecuadamente los contenidos, el estilo, la temporización y el formato de la presentación. Capacidad de comunicación efectiva con el usuario en un lenguaje no técnico así como de comprender sus necesidades.
Objetivos
-
Tener una visión general del proceso de la ingeniería del software
Competencias relacionadas: CT2.1, CT6.1, CT8.2, CT3.3, -
Ser capaces de entender los requisitos de un sistema software y relacionarlos con partes de las especificaciones
Competencias relacionadas: CT8.3, CT8.6, CT8.5, CT3.3, -
Ser capaces de escribir las especificaciones de un sistema software en UML
Competencias relacionadas: CT8.1, CT8.3, G4.2, CT8.5, CT8.7, CT3.3, CT5.5, CT2.3, -
Conocer las propiedades deseables de las especificaciones de un sistema software
Competencias relacionadas: CT7.1, CT8.4, -
Ser capaces de analizar la completitud y la consistencia de las especificaciones
Competencias relacionadas: CT8.1, CT8.3, CT7.1, CT5.5, CT2.3, -
Conocer los principios generales de la arquitectura del software y del modelo de diseño orientado a objetos en UML
Competencias relacionadas: CT8.1, CT8.5, -
Comprender la estructura lógica en capas de un sistema de información: capa de presentación, de dominio y de gestión de datos
Competencias relacionadas: CT8.1, CT8.3, CT2.4, -
Saber transformar un modelo de especificación UML en uno de diseño
Competencias relacionadas: G4.2, CT5.5, CT2.4, -
Conocer el concepto de patrón de diseño y dominar el uso de algunos de los patrones más conocidos
Competencias relacionadas: CT2.1, CT8.1, CT8.3, G4.2, CT2.3, -
Conocer los conceptos básicos de la prueba del software
Competencias relacionadas: CT2.1, CT8.3, CT7.1, CT8.4, CT5.5,
Contenidos
-
Introducción a la ingeniería del software
-
Requisitos de un sistema software y su especificación
-
El Modelo de Casos de Uso en UML
-
Especificación de sistemas software con UML
- El esquema estructural de los datos
- El esquema del comportamiento
- Los diagramas de estado -
Introducción al diseño de software
-
Diseño orientado a objetos con UML
Actividades
Actividad Acto evaluativo
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h
Teoría
10h
Problemas
10h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
33h
Metodología docente
La docencia de la asignatura está estructurada en clases de teoría y clases de problemas.En las clases de teoría los profesores presentan los contenidos esenciales de la asignatura. Normalmente los profesores usan transparencias, que los estudiantes pueden obtener, y deberían hacerlo, antes de las clases.
En las clases de problemas se practican los contenidos de la asignatura (los presentados en clase y los adquiridos autónomamente) mediante la realización de problemas. A veces se requiere que los problemas se hayan resuelto (o al menos intentado resolver) antes de la clase, y entonces la clase se destina a analizar y discutir colectivamente las mejores soluciones. Otras veces, el problema se plantea y se ha de resolver en la misma clase.
Método de evaluación
Durante el curso se harán tres actos evaluatorios: un examen en horario de clase (C1) y dos exámenes fuera del horario de clase (FHC1 y FHC2). Para el cálculo de la nota final también se tendrà en cuenta la participación activa en clase. La distribución secuencial de estos actos evaluatorios y la su contribución a la nota final de la assignatura vienen definidos por la fórmula siguiente:Nota Final = 40% FHC1 + 15% C2 + 40% FHC2 + 5% partticipación
teniendo en cuenta que:
La nota de participación se consigue entregando un mínimo del 75% de los ejercicios propuestos y participando activamente en clase.
Nota Final = NP si el alumno no se presenta a la FHC2 y su nota final acumulada es <4.
No hay examen final.
Además de la nota de la asignatura, habrá una nota a parte de la competencia genérica asignada a la asignatura, con valores A, B, C, D o NA donde:
o A indica que la competencia se ha superado con un nivel de excelencia
o B indica que la competencia se ha superado con el nivel deseado
o C indica que la competencia se ha superado con un nivel suficiente
o D indica que la competencia no se ha superado
o NA indica que la competencia no se ha evaluado
Bibliografía
Básico
-
Applying UML and patterns: an introduction to object-oriented analysis and design and iterative development
- Larman, C,
Prentice Hall PTR,
2005.
ISBN: 0131489062
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002842069706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Software engineering: a practitioner's approach
- Pressman, R.S.; Maxim, B.R,
McGraw Hill Higher Education,
2020.
ISBN: 9781260548006
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004193559706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
The unified modeling language reference manual
- Rumbaugh, J.; Jacobson, I.; Booch, G,
Addison-Wesley,
2005.
ISBN: 0321245628
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002895869706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Transparències d'Introducció a l'Enginyeria del Software
- Professorat d'IES,
-
Exercicis i exercicis resolts d'Introducció a l'Enginyeria del Software
- Professorat d'IES,
Complementario
-
Conceptual modeling of information systems
- Olivé, A,
Springer,
2007.
ISBN: 9783540393894
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003295159706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Design patterns: elements of reusable object-oriented software
- Gamma, E.; Helm, R.; Johnson, R.; Vlissides, J,
Addison-Wesley,
1995.
ISBN: 0201633612
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991001193289706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Testing object-oriented systems: models, patterns, and tools
- Binder, R.V,
Addison-Wesley,
2000.
ISBN: 9780321700674
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003748579706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Web links
- El principal seti web dels patrons de disseny. http://hillside.net/patterns/
- El seti web de l'Object Management Group (OMG) http://www.omg.org/
- L'UML a l'Object Management Group http://www.uml.org/