Ingeniería del software

  • Jordi Pradel Miquel

     Jordi Pradel Miquel

    Ingeniero de Informática por la Universidad Politécnica de Cataluña. Socio fundador e ingeniero de software en Agilogy, profesor en el Departamento de Ingeniería de Servicios y Sistemas de Información de la UPC, consultor de los Estudios de Informática y Multimedia en la Universitat Oberta de Catalunya y miembro del Grupo de Investigación de Ingeniería del Software para Sistemas de Información de la UPC, donde ha publicado diversos artículos de investigación en el campo de la ingeniería del software y de su aplicación en sistemas de información.

  • Jose Raya Martos

     Jose Raya Martos

    Ingeniero de Informática por la Universidad Politécnica de Cataluña. Compagina su actividad como ingeniero de software en Agilogy (empresa de la que es socio fundador) con la de consultor en el Área de Ingeniería del Software en la UOC y la de profesor a tiempo parcial en el Departamento de Ingeniería de Servicios y Sistemas de Información de la UPC. A lo largo de los años ha trabajado en proyectos de sectores diversos como el financiero, la Administración pública o las telecomunicaciones ejerciendo trabajos técnicos y de gestión, lo que le ha dado una amplia perspectiva sobre el mundo del desarrollo de software y su diversidad.

PID_00230155
Tercera edición: febrero 2016
© Jordi Pradel Miquel, Jose Raya Martos
Todos los derechos reservados
© de esta edición, FUOC, 2016
Av. Tibidabo, 39-43, 08035 Barcelona
Diseño: Manel Andreu
Realización editorial: Oberta UOC Publishing, SL
Ninguna parte de esta publicación, incluido el diseño general y la cubierta, puede ser copiada, reproducida, almacenada o transmitida de ninguna forma, ni por ningún medio, sea éste eléctrico, químico, mecánico, óptico, grabación, fotocopia, o cualquier otro, sin la previa autorización escrita de los titulares del copyright.

Introducción

Esta asignatura tiene como finalidad introducir la disciplina de la ingeniería del software a los futuros ingenieros de software. A la hora de hacerlo, nos hemos marcado un objetivo muy claro: encontrar el equilibrio con respecto a la temática tratada entre amplitud y profundidad. Consideramos que es fundamental que el futuro ingeniero de software tenga un abanico lo bastante amplio de soluciones y, al mismo tiempo, hemos querido explicar los diferentes temas con bastante detalle para poder aplicarlos a la práctica.
El primer módulo es una introducción en la que estudiaremos la ingeniería del software, su historia y, a grandes rasgos, cómo se organiza un proyecto de desarrollo de software. También veremos algunos ejemplos concretos de métodos de desarrollo, y algunos de los estándares relacionados con esta disciplina.
También aprovecharemos este primer módulo para introducir los diferentes tipos de software y centrar la discusión en un tipo de software concreto: el software para sistemas de información desarrollado a medida.
En el segundo módulo presentaremos el paradigma de la orientación a objetos, ya que se trata del paradigma que se utiliza, de manera mayoritaria, en el desarrollo de software para sistemas de información desarrollado a medida.
El tercer módulo lo dedicaremos a estudiar los requisitos: a quién afecta el software que estamos desarrollando, qué espera cada una de estas partes implicadas y cómo podemos gestionar todos estos intereses para conseguir que el desarrollo del software se considere un éxito.
Finalmente, en el cuarto módulo hablaremos de análisis con UML y veremos cómo crear modelos del software que se tiene que desarrollar que nos permitan entender mejor cómo será este software una vez creado y qué características tendrá.

Objetivos

Los objetivos que el estudiante tiene que alcanzar en esta asignatura son los siguientes:
  1. Entender qué es la ingeniería del software y contextualizarla.

  2. Conocer algunos de los métodos de desarrollo más utilizados.

  3. Entender los conceptos fundamentales de la orientación a objetos.

  4. Identificar y seleccionar los requisitos de un producto de software.

  5. Aprender a utilizar la notación UML para documentar modelos de análisis orientados a objetos.

  6. Aprender a utilizar los casos de uso para analizar funcionalmente software para sistemas de información.

  7. Aprender a modelizar el dominio mediante diagramas de clases UML.

Bibliografía

[SWEBOK]VV.AA. (2004). Software Engineering Body Of Knowledge Guide. IEEE Computer Society.
[LARMAN]Larman, C. (2005). Applying UML and patterns: an introduction to object-oriented analysis and design and iterative development. Prentice Hall.
[COCKBURN]Cockburn, A. (2001). Writing Effective Use Cases. Addison-Wesley.
Cohn, M. (2004). User Stories Applied. Addison Wesley.
[EPM5]Wysocki, R. K. (2009). Effective Project Management: Traditional, Agile, Extreme(5.ª ed.). Wiley.