Tema 1

Descargar como pps, pdf o txt
Descargar como pps, pdf o txt
Está en la página 1de 20

Ingeniera del Software I

Justo N. Hidalgo Sanz

DEPARTAMENTO DE INGENIERA
INFORMTICA

Introduccin

Lneas de investigacin:

Ingeniera del SW propiamente.


Ingeniera de requisitos.
Anlisis y diseo de sistemas de
informacin/aplicaciones empresariales.
Software orientado a objetos y componentes.
Especificaciones formales ejecutables.
Prototipado rpido.

La ingeniera del software es vital en la


construccin de sistemas sw complejos.
Es lo que diferencia la creacin artstica de la
ingeniera.

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Prerrequisitos

Conocimientos de programacin.

Conocimientos de sistemas operativos.

Conceptos de orientacin a objetos.


No son admisibles dudas acerca de cmo abrir una
interfaz de comandos, cmo actualizar variables de
entorno, etc.

Capacidad de trabajo en equipo.

Las prcticas se realizarn OBLIGATORIAMENTE en


grupos de tres o ms alumnos.

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

ndice Global

Introduccin a la ingeniera del software


Desarrollo de aplicaciones sw mediante
metodologas
Orientacin a objetos
Proceso Unificado

Introduccin
Fases del Proceso Unificado
Flujos del Proceso Unificado

Requisitos
Anlisis
Diseo
Implementacin
Pruebas

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Objetivos

Adquirir un conocimiento general de ingeniera del


software y su problemtica.
Asimilar el concepto de ciclo de vida en general y de
ciclo de vida interativo e incremental, con el Rational
Unified Process como ejemplo.
Conocer UML como modelo general orientado a objetos.
Aprender a llevar a cabo la recogida de requisitos y el
anlisis y el diseo de software en forma orientada a
objetos utilizando UML.
Aprender a realizar el anlisis de las tareas de los
usuarios y el diseo de la interfaz de usuario.
Aprender a hacer las actividades de estos ltimos
puntos con herramientas informatizadas.
Adquirir una visin a nivel introductorio de la tecnologa
de objetos distribuidos.

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

1.- Introduccin
Justo N. Hidalgo Sanz

DEPARTAMENTO DE INGENIERA
INFORMTICA

La Crisis del Software

A finales de los aos 60, el hardware existente


era ya capaz de admitir potentes aplicaciones
para temas cada vez ms diversos.
Sin embargo, la disciplina de creacin de
software estaba poco ms que en paales.
En ese momento se plante la necesidad de
convertir la creacin de software en algo ms
que una manifestacin artstica.
Se trataba de convertirla en una INGENIERA.

Definicin de ingeniera: Arte de aplicar los


conocimientos cientficos a la invencin, perfeccionamiento
o utilizacin de la tcnica industrial en todas sus
determinaciones.

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Mars Pathfinder (I)

Sntomas:

El SW realiz resets absolutos, perdiendo datos cada


cierto tiempo.

Causa:

3 threads con acceso al bus mediante exclusin mutua


(mtex).

Prioridad alta: Gestor de Informacin de Bus.


Prioridad baja: Tarea de Obtencin de Datos Meteorolgicos.
Prioridad media: Tarea de Comunicaciones.

Inversin de prioridades

La tarea de p. Baja obtiene el mtex para transferir datos al


bus.
La tarea de p. Alta se bloquea hasta que el mtex se suelte.
La tarea de p. Media requisa la tarea de p. Baja.
Eventualmente un temporizador se da cuenta de que el Gestor
de Bus no se ha ejecutado durante algn tiempo.

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Mars Pathfinder (II): resultado

2001 Steve Easterbrook - University of Toronto

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Mars Pathfinder (y III). Factores

Muy difcil de diagnosticar:

Se vio anteriormente en pruebas:

Difcil de reproducir.
Se necesita traza detallada.
Nunca se pudo reproducir o explicar.
Los testers asumieron que era un microcorte.

Informacin obtenida de la Universidad de Toronto, Steve Easterbrook

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Cuestiones a responder

Qu significa Ingeniera de Software?


Qu implica que la Ingeniera de SW aplique
conocimientos cientficos?
Cundo se puede considerar la Ingeniera del
SW madura?
Cmo separar los problemas de la ingeniera de
los problemas del dominio?
Cmo discernir qu cosas son fijas y cules no
durante el proceso de construccin de sw?
Cmo verificar y validar una construccin sw?
Cmo integrar tcnicas multidisciplinares?
es la informtica actual una ingeniera de sw?

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Definicin del IEEE

the application of a systematic, disciplined, quantifiable


approach to the development, operation, and maintenance
of software; that is, the application of engineering to
software
Pero:

Todava no existe un vocabulario comn.


Pocas veces se tratan cuestiones hermenuticas -universalizacin
del fenmeno interpretativo-.
Existen demasiadas soluciones del tipo cookbook.
Casi nunca se celebran experimentos controlados, casi siempre por
razones de coste.
El Postmortem tampoco se realiza por dejadez o por miedo a los
resultados.
No se diferencia entre trabajo de rutina e innovador: siempre se
innova - ms divertido, pero menos prctico-: NO INVENTEMOS
LA RUEDA

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Objetivos

Metas

Producto de sw fiable, de alta calidad, bajo coste.


Proceso de desarrollo y mantenimiento de sw de manera
eficiente y con xito.

Mejorar la calidad de los productos sw.


Aumentar la productividad y trabajo de los ingenieros
de sw.
Facilitar el control de proceso de desarrollo de sw.
Suministrar a los desarrolladores las bases para
construir sw de alta calidad, eficientemente.
Definir una disciplina que garantice la produccin
sistemtica y el mantenimiento de los productos sw
desarrollados en el plazo fijado y dentro del coste
estimado.

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Disciplinas de la ingeniera de SW

Gestin:

Economa:

tcnicas y procedimientos para la resolucin de


problemas.

Psicologa:

estimacin de costes, control, riesgos,

Ingeniera:

direccin de proyectos sw.

entendimiento con el cliente y con los agentes


relacionados.

Informtica:

mayor parte de herramientas y tcnicas.

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Fundamentos de la Ingeniera SW
(I)

Mtodos -cmo construir sw de manera


tcnica-:

Planificacin y estimacin de proyectos.


Anlisis de requisitos.
Diseo.
Codificacin.
Verificacin y validacin.
Mantenimiento.

Herramientas -soporte automtico o


semiautomtico de los mtodos-:

CASE -Computer-Aided Software Engineering-.

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Fundamentos de la Ingeniera SW
(II)

Procedimientos -puntos de unin entre mtodos y


herramientas; define la secuencia en la que se aplican
los mtodos-:

Garanta de calidad del sw.


Mtrica.
Gestin de configuracin.
Gestin de proyecto.

Tcnicas de Apoyo:

Abstracciones:

Representaciones:

Modelos de ciclo de vida.


Principios.
Lenguajes.
Notaciones.

Evaluaciones:

Tcnicas de control de proyectos.

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Al grano: cmo hago un proyecto?

La ingeniera sw est infravalorada desde


dentro:

desarrollador: es slo programar.


jefe de proyecto: para no bajar tarifas, reducimos
tiempos.
cliente: esto no puede ser muy difcil.

Vamos a aprender a utilizar una metodologa


para poder acometer con garantas un
proyecto software:

metodologa de proyectos software


lenguaje de modelado
gestin del ciclo de vida de un proyecto

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

El Proceso Unificado

Nos basaremos en el Proceso Unificado


Actualmente es, de facto,
facto el proceso utilizado
en la mayora de los proyectos realizadas por y
para empresas privadas, y para algunos de
empresas pblicas.
Realizado por Jacobson, Rumbaugh y Booch, que
en su momento fueron los creadores de las
metodologas que revolucionaron el mercado.
Realmente el Proceso Unificado no es una
metodologa, sino un framework que permite
construir una metodologa especfica para una
empresa o un desarrollo determinado.

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Realmente funciona?

Al comenzar a utilizar una metodologa, la


sensacin siempre es la misma:

Mucho trabajo.
Mucha documentacin.
Mucho retraso.

Sin embargo es indiscutible la necesidad de


contar con un esquema ms o menos rgido de
trabajo, que permita:

Imbuir una metodologa de trabajo a la empresa.


Independizar los proyectos de los nombres propios qu pasa si se va Pepito, el super-gur que lo saba
todo sobre el proyecto X?Lo de siempre: convertir el desarrollo sw en una
INGENIERA: conceptos, procesos, etc.

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

Lecturas recomendadas

Artculos:

La crisis crnica de la programacin. W. W. Gibbs.


Investigacin y Ciencia. Noviembre 1994.
Limitaciones del soporte lgico. B. Littlewood, L. Strigini.
Investigacin y Ciencia. Enero 1993.
Prospects for an Engineering Discipline of Software. M. Shaw.
IEEE Software Nov. 1990

Temas:

Ingeniera del Software (Unidad 52 del Curso IBM). Idoia


Alarcn.
Introduction to Software Engineering (Captulo 1, Pressman).
Introduction to Software Engineering (Captulo 1,
Sommerville).

Escuela Politcnica Superior de Ingeniera


Departamento de Ingeniera Informtica (DII)

También podría gustarte