Presentaci - PowerPoint PPT Presentation

About This Presentation
Title:

Presentaci

Description:

Ingenier a del Software I Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIER A INFORM TICA Introducci n L neas de investigaci n: Ingenier a del SW propiamente. – PowerPoint PPT presentation

Number of Views:55
Avg rating:3.0/5.0
Slides: 21
Provided by: JCM4
Category:

less

Transcript and Presenter's Notes

Title: Presentaci


1
Ingeniería del Software I Justo N. Hidalgo
Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
2
Introducción
  • Líneas de investigación
  • Ingeniería del SW propiamente.
  • Ingeniería de requisitos.
  • Análisis y diseño de sistemas de
    información/aplicaciones empresariales.
  • Software orientado a objetos y componentes.
  • Especificaciones formales ejecutables.
  • Prototipado rápido.
  • La ingeniería del software es vital en la
    construcción de sistemas sw complejos.
  • Es lo que diferencia la creación artística de la
    ingeniería.

3
Prerrequisitos
  • Conocimientos de programación.
  • Conceptos de orientación a objetos.
  • Conocimientos de sistemas operativos.
  • No son admisibles dudas acerca de cómo abrir una
    interfaz de comandos, cómo actualizar variables
    de entorno, etc.
  • Capacidad de trabajo en equipo.
  • Las prácticas se realizarán OBLIGATORIAMENTE en
    grupos de tres o más alumnos.

4
Índice Global
  • Introducción a la ingeniería del software
  • Desarrollo de aplicaciones sw mediante
    metodologías
  • Orientación a objetos
  • Proceso Unificado
  • Introducción
  • Fases del Proceso Unificado
  • Flujos del Proceso Unificado
  • Requisitos
  • Análisis
  • Diseño
  • Implementación
  • Pruebas

5
Objetivos
  • Adquirir un conocimiento general de ingeniería
    del software y su problemática.
  • 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 análisis y el diseño de software
    en forma orientada a objetos utilizando UML.
  • Aprender a realizar el análisis de las tareas de
    los usuarios y el diseño de la interfaz de
    usuario.
  • Aprender a hacer las actividades de estos últimos
    puntos con herramientas informatizadas.
  • Adquirir una visión a nivel introductorio de la
    tecnología de objetos distribuidos.

6
1.- Introducción Justo N. Hidalgo
Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
7
La Crisis del Software
  • A finales de los años 60, el hardware existente
    era ya capaz de admitir potentes aplicaciones
    para temas cada vez más diversos.
  • Sin embargo, la disciplina de creación de
    software estaba poco más que en pañales.
  • En ese momento se planteó la necesidad de
    convertir la creación de software en algo más que
    una manifestación artística.
  • Se trataba de convertirla en una INGENIERÍA.
  • Definición de ingeniería Arte de aplicar los
    conocimientos científicos a la invención,
    perfeccionamiento o utilización de la técnica
    industrial en todas sus determinaciones.

8
Mars Pathfinder (I)
  • Síntomas
  • El SW realizó resets absolutos, perdiendo datos
    cada cierto tiempo.
  • Causa
  • 3 threads con acceso al bus mediante exclusión
    mutua (mútex).
  • Prioridad alta Gestor de Información de Bus.
  • Prioridad baja Tarea de Obtención de Datos
    Meteorológicos.
  • Prioridad media Tarea de Comunicaciones.
  • Inversión de prioridades
  • La tarea de p. Baja obtiene el mútex para
    transferir datos al bus.
  • La tarea de p. Alta se bloquea hasta que el mútex
    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 algún
    tiempo.

9
Mars Pathfinder (II) resultado
  • 2001 Steve Easterbrook - University of Toronto

10
Mars Pathfinder (y III). Factores
  • Muy difícil de diagnosticar
  • Difícil de reproducir.
  • Se necesita traza detallada.
  • Se vio anteriormente en pruebas
  • Nunca se pudo reproducir o explicar.
  • Los testers asumieron que era un microcorte.
  • Información obtenida de la Universidad de
    Toronto, Steve Easterbrook

11
Cuestiones a responder
  • Qué significa Ingeniería de Software?
  • Qué implica que la Ingeniería de SW aplique
    conocimientos científicos?
  • Cuándo se puede considerar la Ingeniería del SW
    madura?
  • Cómo separar los problemas de la ingeniería de
    los problemas del dominio?
  • Cómo discernir qué cosas son fijas y cuáles no
    durante el proceso de construcción de sw?
  • Cómo verificar y validar una construcción sw?
  • Cómo integrar técnicas multidisciplinares?
  • es la informática actual una ingeniería de sw?

12
Definición 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
  • Todavía no existe un vocabulario común.
  • Pocas veces se tratan cuestiones hermenéuticas
    -universalización del fenómeno 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 - más divertido,
    pero menos práctico- NO INVENTEMOS LA RUEDA

13
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
    producción sistemática y el mantenimiento de los
    productos sw desarrollados en el plazo fijado y
    dentro del coste estimado.

14
Disciplinas de la ingeniería de SW
  • Gestión
  • dirección de proyectos sw.
  • Economía
  • estimación de costes, control, riesgos,
  • Ingeniería
  • técnicas y procedimientos para la resolución de
    problemas.
  • Psicología
  • entendimiento con el cliente y con los agentes
    relacionados.
  • Informática
  • mayor parte de herramientas y técnicas.

15
Fundamentos de la Ingeniería SW (I)
  • Métodos -cómo construir sw de manera técnica-
  • Planificación y estimación de proyectos.
  • Análisis de requisitos.
  • Diseño.
  • Codificación.
  • Verificación y validación.
  • Mantenimiento.
  • Herramientas -soporte automático o semiautomático
    de los métodos-
  • CASE -Computer-Aided Software Engineering-.

16
Fundamentos de la Ingeniería SW (II)
  • Procedimientos -puntos de unión entre métodos y
    herramientas define la secuencia en la que se
    aplican los métodos-
  • Garantía de calidad del sw.
  • Métrica.
  • Gestión de configuración.
  • Gestión de proyecto.
  • Técnicas de Apoyo
  • Abstracciones
  • Modelos de ciclo de vida.
  • Principios.
  • Representaciones
  • Lenguajes.
  • Notaciones.
  • Evaluaciones
  • Técnicas de control de proyectos.

17
Al grano cómo hago un proyecto?
  • La ingeniería sw está infravalorada desde dentro
  • desarrollador es sólo programar.
  • jefe de proyecto para no bajar tarifas,
    reducimos tiempos.
  • cliente esto no puede ser muy difícil.
  • Vamos a aprender a utilizar una metodología para
    poder acometer con garantías un proyecto
    software
  • metodología de proyectos software
  • lenguaje de modelado
  • gestión del ciclo de vida de un proyecto

18
El Proceso Unificado
  • Nos basaremos en el Proceso Unificado
  • Actualmente es, de facto, el proceso utilizado en
    la mayoría de los proyectos realizadas por y para
    empresas privadas, y para algunos de empresas
    públicas.
  • Realizado por Jacobson, Rumbaugh y Booch, que en
    su momento fueron los creadores de las
    metodologías que revolucionaron el mercado.
  • Realmente el Proceso Unificado no es una
    metodología, sino un framework que permite
    construir una metodología específica para una
    empresa o un desarrollo determinado.

19
Realmente funciona?
  • Al comenzar a utilizar una metodología, la
    sensación siempre es la misma
  • Mucho trabajo.
  • Mucha documentación.
  • Mucho retraso.
  • Sin embargo es indiscutible la necesidad de
    contar con un esquema más o menos rígido de
    trabajo, que permita
  • Imbuir una metodología de trabajo a la empresa.
  • Independizar los proyectos de los nombres propios
    -qué pasa si se va Pepito, el super-gurú que lo
    sabía todo sobre el proyecto X?-
  • Lo de siempre convertir el desarrollo sw en una
    INGENIERÍA conceptos, procesos, etc.

20
Lecturas recomendadas
  • Artículos
  • La crisis crónica de la programación. W. W.
    Gibbs. Investigación y Ciencia. Noviembre 1994.
  • Limitaciones del soporte lógico. B. Littlewood,
    L. Strigini. Investigación y Ciencia. Enero 1993.
  • Prospects for an Engineering Discipline of
    Software. M. Shaw. IEEE Software Nov. 1990
  • Temas
  • Ingeniería del Software (Unidad 52 del Curso
    IBM). Idoia Alarcón.
  • Introduction to Software Engineering (Capítulo 1,
    Pressman).
  • Introduction to Software Engineering (Capítulo 1,
    Sommerville).
Write a Comment
User Comments (0)
About PowerShow.com