Teaching Guides Query



Academic Year: 2018/19

439 - Bachelor's Degree in Informatics Engineering

30249 - Software Engineering Laboratory


Teaching Plan Information

Academic Year:
2018/19
Subject:
30249 - Software Engineering Laboratory
Faculty / School:
110 - Escuela de Ingeniería y Arquitectura
Degree:
439 - Bachelor's Degree in Informatics Engineering
ECTS:
6.0
Year:
4
Semester:
Second semester
Subject Type:
---
Module:
---

1.1. Aims of the course

At the end of the course students will have developed a smart campus software application, from the requirements determination phase to the delivery of the finished product. This work will give them the opportunity to gain first contact with the domain of geographic information systems, as well as to learn and practice the technique of domain-driven design and some advanced patterns of software architecture, such as hexagonal architecture and event-driven architecture.

1.2. Context and importance of this course in the degree

In the first two years of the degree the student acquires skills and knowledge that will enable him/her to develop small computer applications, while in the third year the subjects of Software Engineering and Software Project enable him/her to tackle larger projects professionally. The Software Engineering Laboratory course deepens this training, while providing a practical dimension framed in the context of a specific problem area.

1.3. Recommendations to take this course

It is important to have taken the subjects of Software Engineering and Software Project before this course. Besides that it is convenient, although not essential, to have also studied Software Architectures and Software Project Management.

2.1. Competences

Upon passing the course, the student will be more competent to....

 

Successfully address the following cross-cutting issues:

CT1. Ability to conceive, design and develop engineering projects.
CT2. Ability to plan, budget, organize, direct and control tasks, people and resources.
CT4. Ability to solve problems and make decisions with initiative, creativity and critical thinking.
CT7. Ability to analyze and assess the social and environmental impact of technical solutions acting with ethics, professional responsibility and social commitment.
CT8. Ability to work in a multidisciplinary group and in a multilingual environment.

Successfully undertake the following tasks related to Computer Engineering in general:

CGC2. Ability to plan, design, deploy and manage projects, services and IT systems in all areas, leading their implementation and continuous improvement and assessing their economic and social impact.
CGC3. Ability to understand the importance of negotiation, effective work habits, leadership and communication skills in all software development environments.
CGC4. Ability to prepare the technical specifications of a computer installation that complies with current standards and regulations.
CGC8. Ability to analyze, design, build and maintain applications in a robust, secure and efficient manner, choosing the most appropriate paradigm and programming languages.

Successfully address the following Software Engineering related performance issues:

CEIS2. Ability to assess customer needs and specify software requirements to meet these needs, reconciling conflicting objectives by seeking acceptable compromises within the constraints of cost, time, existing systems already developed and the organisations themselves.
CEIS3. Ability to provide solutions to integration problems according to the available strategies, standards and technologies.
CEIS5. Ability to identify, assess and manage potential associated risks that may arise.
CEIS6. Ability to design appropriate solutions in one or more application domains using software engineering methods that integrate ethical, social, legal and economic aspects.

2.2. Learning goals

In order to pass this course, the student must demonstrate the following results...

 

It is able to propose different solutions to digitally preserve data and complete systems.
Learn about the activities involved in the process of building a component based system.
It is capable of applying domain engineering to identify, build, catalog and disseminate a set of software components that are applicable to existing and future software in a particular application domain.
Knows the characteristics and implications of an application domain when proposing a solution with software engineering methods.
Knows an infrastructure of processes and tools necessary to develop a software project, based on the best practices of software engineering available in a software factory business environment.
It puts into practice the knowledge acquired in the subjects of Software Engineering intensification in a specific project developed as a team: requirements, analysis, design, testing (verification and validation), project management.

2.3. Importance of learning goals

The reality of the industry shows that the development of software systems is almost always carried out on a software development infrastructure of a certain complexity and in a specific application domain. It is important that students face conditions as similar as possible to those they will encounter in their professional lives.

3.1. Assessment tasks (description of tasks, marking system and assessment criteria)

The student must demonstrate that he or she has achieved the expected learning outcomes by taking an assessment test with two exercises:

Practical project (80%): the exercise consists of the delivery of results (technical report, source code and others) that reflect the work of the students in a "smart campus" software development project (learning outcomes 1-6).
Written test questions on concepts learned in theory and practice (20%): this exercise evaluates the knowledge acquired by each student in the theory, problems and practice sessions.

To pass the course, the total sum of both exercises must be at least 5 out of 10 points (it is not necessary to pass both exercises separately).

4.1. Methodological overview

The learning process is based on:

  1. Daily study and work
  2. Learning concepts about a specific problem domain, and about the activities involved in developing a software project in this domain, during the lectures.
  3. Applying these concepts to practical cases during problem-oriented interactive lectures
  4. Laboratory assignments on a specialized problem domain (geographic information systems)
  5. Teamwork on a project to develop a small software system following modern software engineering techniques

4.2. Learning tasks

  1. Lectures in the classroom to develop the program
  2. Problem-solving activities to put into practice the concepts and techniques in the program
  3. Laboratory assignments to learn about the domain of geographic information systems
  4. Team project: software development of a small software system

4.3. Syllabus

  1. Introduction to geographic information systems.
  2. Domain-driven design.
  3. Advanced software architecture concepts: layered architectures, dependency inversion and hexagonal architecture.
  4. Development of a team software project in the field of geographic information systems: smart campus application

4.4. Course planning and calendar

  • Lectures (2 hours per week)
  • Problems (1 hour per week)
  • Laboratory assignments (5 sessions of 3 hours)

The students are expected to work:

  • 35 hours in classroom activities (theory and problems)
  • 15 hours in the laboratory assignments
  • 105 hours of study and teamwork

 

4.5. Bibliography and recommended resources

[BB: Bibliografía básica / BC: Bibliografía complementaria]

  • Zaragoza:
  • [BB] Evans, Eric. Domain-driven design : tackling complexity in the heart of software / Eric Evans . Boston : Addison-Wesley, cop. 2004
  • [BC] Vernon, Vaughn. Implementing Domain-Driven Design / Vaughn Vernon Addison Wesley, 2013.

Listado de URL

  • Víctor Olaya. Sistemas de Información Geográfica (versión 1.0). Disponible bajo licencia Creative Commons Attribution [https://volaya.github.io/libro-sig/]
  • Teruel:
  • No hay relación bibliográfica para esta asignatura(Ver toda la bibliografía recomendada + enlace al catálogo)


Curso Académico: 2018/19

439 - Graduado en Ingeniería Informática

30249 - Laboratorio de ingeniería del software


Información del Plan Docente

Año académico:
2018/19
Asignatura:
30249 - Laboratorio de ingeniería del software
Centro académico:
110 - Escuela de Ingeniería y Arquitectura
Titulación:
439 - Graduado en Ingeniería Informática
Créditos:
6.0
Curso:
4
Periodo de impartición:
Segundo semestre
Clase de asignatura:
---
Módulo:
---

1.1. Objetivos de la asignatura

Al finalizar el curso los estudiantes habrán desarrollado una aplicación software de tipo “smart campus”, desde la fase de determinación de requisitos hasta la entrega del producto terminado. Este trabajo les dará la oportunidad de adquirir un primer contacto con el dominio de los sistemas de información geográfica, así como la de aprender y poner en práctica la técnica del diseño dirigido por el dominio y algunos patrones avanzados de arquitectura de software, como la arquitectura hexagonal y la arquitectura dirigida por eventos.

1.2. Contexto y sentido de la asignatura en la titulación

En los dos primeros cursos del grado el estudiante adquiere competencias y conocimientos que le van a posibilitar desarrollar aplicaciones informáticas de pequeño tamaño, mientras que en tercero las asignaturas de Ingeniería del Software y Proyecto Software le capacitan para abordar profesionalmente proyectos más grandes. La asignatura de Laboratorio de Ingeniería del Software profundiza en esta capacitación, mientras le aporta una dimensión práctica enmarcada en el contexto de un dominio de problema específico.

1.3. Recomendaciones para cursar la asignatura

Es importante haber cursado las asignaturas de Ingeniería del Software y Proyecto Software antes de esta asignatura. Además de eso es conveniente, aunque no imprescindible, haber cursado también Arquitecturas Software y Gestión de Proyecto Software.

2.1. Competencias

Al superar la asignatura, el estudiante será más competente para...

 

Afrontar con éxito los siguientes desempeños transversales:

  • CT1. Capacidad para concebir, diseñar y desarrollar proyectos de Ingeniería.
  • CT2. Capacidad para planificar, presupuestar, organizar, dirigir y controlar tareas, personas y recursos.
  • CT4. Capacidad para resolver problemas y tomar decisiones con iniciativa, creatividad y razonamiento crítico.
  • CT7. Capacidad para analizar y valorar el impacto social y medioambiental de las soluciones técnicas actuando con ética, responsabilidad profesional y compromiso social.
  • CT8. Capacidad para trabajar en un grupo multidisciplinar y en un entorno multilingüe. 

Afrontar con éxito los siguientes desempeños relacionados con la Ingeniería Informática en general:

  • CGC2. Capacidad para planificar, concebir, desplegar y dirigir proyectos, servicios y sistemas informáticos en todos los ámbitos, liderando su puesta en marcha y su mejora continua y valorando su impacto económico y social.
  • CGC3. Capacidad para comprender la importancia de la negociación, los hábitos de trabajo efectivos, el liderazgo y las habilidades de comunicación en todos los entornos de desarrollo de software.
  • CGC4. Capacidad para elaborar el pliego de condiciones técnicas de una instalación informática que cumpla los estándares y normativas vigentes.
  • CGC8. Capacidad para analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, eligiendo el paradigma y los lenguajes de programación más adecuados.

Afrontar con éxito los siguientes desempeños relacionados con la Ingeniería del Software:

  • CEIS2. Capacidad para valorar las necesidades del cliente y especificar los requisitos software para satisfacer estas necesidades, reconciliando objetivos en conflicto mediante la búsqueda de compromisos aceptables dentro de las limitaciones derivadas del coste, del tiempo, de la existencia de sistemas ya desarrollados y de las propias organizaciones.
  • CEIS3. Capacidad de dar solución a problemas de integración en función de las estrategias, estándares y tecnologías disponibles.
  • CEIS5. Capacidad de identificar, evaluar y gestionar los riesgos potenciales asociados que pudieran presentarse.
  • CEIS6. Capacidad para diseñar soluciones apropiadas en uno o más dominios de aplicación utilizando métodos de la ingeniería del software que integren aspectos éticos, sociales, legales y económicos.

2.2. Resultados de aprendizaje

El estudiante, para superar esta asignatura, deberá demostrar los siguientes resultados...

 

  • Es capaz de proponer distintas soluciones para preservar digitalmente datos y sistemas completos.
  • Conoce las actividades involucradas en el proceso de construcción de un sistema basado en componentes.
  • Es capaz de aplicar la ingeniería de dominio para identificar, construir, catalogar y diseminar un conjunto de componentes software que sean aplicables para el software existente y futuro en un dominio de aplicación particular.
  • Conoce las características e implicaciones de un dominio de aplicación a la hora de plantear una solución con los métodos de la ingeniería de software.
  • Conoce una infraestructura de procesos y herramientas necesarios para desarrollar un proyecto software, basado en las buenas prácticas de ingeniería de software disponible en un entorno empresarial de factoría de software.
  • Pone en práctica los conocimientos adquiridos en las asignaturas de la intensificación de Ingeniería de Software en un proyecto concreto desarrollado en equipo: requisitos, análisis, diseño, pruebas (verificación y validación), gestión de proyectos.

2.3. Importancia de los resultados de aprendizaje

La realidad de la industria muestra que el desarrollo de sistemas software se efectúa casi siempre sobre una infraestructura de desarrollo de software de cierta complejidad y en un dominio de aplicación concreto. Es importante que los alumnos se enfrenten a condiciones lo más parecidas posibles a aquellas que van a encontrar en su vida profesional.

3.1. Tipo de pruebas y su valor sobre la nota final y criterios de evaluación para cada prueba

El estudiante deberá demostrar que ha alcanzado los resultados de aprendizaje previstos mediante una prueba de evaluación con dos ejercicios:

  1. Proyecto práctico (80%): el ejercicio consiste en la entrega de resultados (memoria técnica, código fuente y otros) que reflejen la labor de los estudiantes en un proyecto de desarrollo de software tipo "smart campus" (resultados de aprendizaje 1-6).
  2. Preguntas escritas de tipo test sobre conceptos aprendidos en teoría y prácticas (20%): ese ejercicio evalúa los conocimientos adquiridos por cada estudiante en las sesiones de teoría, problemas y prácticas.

Para superar la asignatura será necesario que la suma total de ambos ejercicios sea de al menos 5 sobre 10 puntos (no es necesario superar ambos ejercicios por separado).

4.1. Presentación metodológica general

El proceso de aprendizaje que se ha diseñado para esta asignatura se basa en lo siguiente:

  1. El estudio y trabajo continuado desde el primer día de clase.
  2. El aprendizaje de conceptos vinculados a un dominio de aplicación concreto y de las diferentes actividades que integra el desarrollo de un proyecto software en este dominio, a través de clases magistrales en las que se favorecerá la participación de los alumnos.
  3. La aplicación de tales conocimientos a casos prácticos en las clases de problemas. En estas clases los alumnos desempeñarán un papel activo en la discusión y resolución de los problemas. Muchos de estos problemas se encontrarán vinculados a actividades específicas del proyecto que han de desarrollar en equipo a lo largo del cuatrimestre.
  4. Las clases de prácticas en laboratorio en las que los alumnos profundizarán en un dominio de problema especializado (los sistemas de información geográfica) bajo la tutela de los profesores.
  5. El trabajo en equipo abordando el desarrollo de un proyecto que comprenderá la construcción de una aplicación informática de pequeñas dimensiones en la que deberán abordar todas las tareas propias de la ingeniería del software. Este trabajo permitirá aplicar de forma conjunta todos los aspectos teóricos desarrollados en las clase magistrales, así como enfatizar el desarrollo de todas las competencias vinculadas al trabajo en equipo colaborativo.

4.2. Actividades de aprendizaje

  1. En las clases impartidas en el aula se desarrollará el temario de la asignatura.
  2. En las clases de problemas se resolverán problemas de aplicación de los conceptos y técnicas presentadas en el programa de la asignatura.
  3. En las sesiones de prácticas se aprenderá sobre el dominio de los sistemas de información geográfica.
  4. A lo largo del cuatrimestre, y de manera coordinada con las clases, se realizará un trabajo en equipo donde se abordará un proyecto de software de pequeño tamaño en un dominio de aplicación específico.

4.3. Programa

  1. Introducción a los sistemas de información geográfica.
  2. Diseño dirigido por el dominio.
  3. Conceptos avanzados de arquitecturas software: arquitecturas por capas, inversión de dependencias y arquitectura hexagonal.
  4. Desarrollo de un proyecto de software en equipo en el dominio de los sistemas de información geográfica: aplicación de tipo “smart campus”

4.4. Planificación de las actividades de aprendizaje y calendario de fechas clave

La organización docente prevista de las sesiones presenciales en el campus Río Ebro es la siguiente:

  • Clases magistrales (2 horas por semana)
  • Resolución de problemas y casos (1 hora por semana)
  • Prácticas de laboratorio (5 sesiones de 3 horas programadas según el calendario que ofrezca el Centro)

Los horarios de todas las clases y fechas de las sesiones de prácticas se anunciarán con suficiente antelación a través de las webs del centro y de la asignatura. El total de clases magistrales + clases de problemas por semana puede variar si el centro establece un horario “compacto” para que las clases presenciales terminen antes que el cuatrimestre.

Las fechas de evaluación se anunciarán con suficiente antelación y se adecuarán a la normativa vigente.

 

La dedicación del estudiante para alcanzar los resultados de aprendizaje en esta asignatura se estima en 150 horas distribuidas del siguiente modo:

  • 35 horas, aproximadamente, de actividades en el aula (teóricas y de problemas).
  • 15 horas de prácticas de laboratorio
  • 105 horas de estudio y de trabajo en grupo

 

El calendario detallado de las diversas actividades a desarrollar se establecerá una vez que la Universidad haya aprobado el calendario académico del curso correspondiente. En cualquier caso, las fechas importantes serán anunciadas con la suficiente antelación.

4.5. Bibliografía y recursos recomendados

[BB: Bibliografía básica / BC: Bibliografía complementaria]

  • Zaragoza:
  • [BB] Evans, Eric. Domain-driven design : tackling complexity in the heart of software / Eric Evans . Boston : Addison-Wesley, cop. 2004
  • [BC] Vernon, Vaughn. Implementing Domain-Driven Design / Vaughn Vernon Addison Wesley, 2013.

Listado de URL

  • Víctor Olaya. Sistemas de Información Geográfica (versión 1.0). Disponible bajo licencia Creative Commons Attribution [https://volaya.github.io/libro-sig/]
  • Teruel:
  • No hay relación bibliográfica para esta asignatura(Ver toda la bibliografía recomendada + enlace al catálogo)