Queue based software

Historia de la Ingeniería de Software

  • Sistemas tradicionales de ciclo de vida

    El desarrollo de los sistemas tradicionales de ciclo de vida se originó en la década de 1960 para desarrollar a gran escala funcional de sistemas de negocio en una época de grandes conglomerados empresariales. La idea principal era continuar el desarrollo de los sistemas de información en una muy deliberada, estructurada y metódica, reiterando cada una de las etapas del ciclo de vida.
  • Programación estructurada sol

    El lenguaje SOL ( por las siglas en Inglés de Structured Oriented
    Languaje ) trata de llenar este hueco de historiar la concepción de un programa partiendo de la idea básica de que todo comportamiento secuencial puede modelarse por medio de un autómata finito.
  • Desarrollo de Software (Code & Fix)

    Desarrollo de Software (Code & Fix)
    A fines de los 60's el desarrollar software consistía
    principalmente en codificar y corregir errores.
  • Modelo en cascada

    Es un proceso secuencial, fácil de desarrollo en el que los pasos de desarrollo son vistos hacia abajo (como en una cascada de agua) a través de las fases de análisis de las necesidades, el diseño, implantación, pruebas (validación), la integración, y mantenimiento. La primera descripción formal del modelo de cascada se cita a menudo a un artículo publicado por Winston Royce W.
  • Crisis del software

    Crisis del software
    Surge la llamada crisis del software porque:
    - no respondía a las necesidades de los clientes.
    - costaba mucho más caro de lo contratado.
    - no se entregaba en el tiempo planeado.
  • Top-down y bottom-up

    En el modelo top-down se formula un resumen del sistema, sin especificar detalles. Cada parte del sistema se refina diseñando con mayor detalle. Cada parte nueva es entonces redefinida, cada vez con mayor detalle, hasta que la especificación completa es lo suficientemente detallada para validar el modelo. El modelo top-down se diseña con frecuencia con la ayuda de "cajas negras" que hacen más fácil cumplir requisitos aunque estas cajas negras no expliquen en detalle los componentes individuales.
  • Metodologías de desarrollo de software estructuradas.

    Metodologías de desarrollo de software estructuradas.
    Su objetivo es desarrollar software siguiendo el ciclo
    de vida del software.
    • definir los requerimientos para el software,
    • analizarlos,
    • diseñar el software,
    • implementarlo,
    • probarlo y
    • ponerlo a disposición de los usuarios. Una vez entregado al cliente, se le daba mantenimiento:
    • correctivo(para eliminar los defectos)
    • adaptativo(para adecuarlo a necesidades del cliente)
    • perfectivo(para mejorarlo)
  • Error de software

    Error de software
    El sistema de alerta temprana de la Unión Soviética estuvo a punto en 1983 de causar la 3ra Guerra Mundial cuando un error en el software indicó que cinco misiles balísticos habían sido lanzados por los Estados Unidos.
  • Accidente de un F-18

    Accidente de un F-18
    Un avión de combate se estrelló por culpa de un giro descontrolado atribuido a una expresión "if then" para lo cual había una expresión Else, debido a que los desarrolladores lo encontraron innecesario.
  • Ingeniería de Software en los 90´s

    Procesos de software: “El Proceso de software es un grupo de personas, la estructura de una organización, reglas, políticas, actividades y procedimientos, componentes de software, metodologías y herramientas usadas o creadas específicamente para conceptualizar, desarrollar, ofrecer un servicio, innovar y extender un producto de software” (FuggetaA., 1996).
  • Error en redes telefonicas

    La red de AT&T se hundió en 1990 y dejó sin respuesta a 75 millones de llamadas por un error en una sola línea de código.
  • Programación Orientada a Objetos

    Programación Orientada a Objetos
    En los inicios de esta década surge Programación Orientada a Objetosy nuevas metodologías de desarrollo de software:
    –OMT(RumbaughJ. BlahaM. PremeerlaniW., 1991)
    –propuestas de modelado como Casos de uso (Jacobson I. C. M., 1992)
    –diagramas de clases (BoochB., 1991)
  • Rapid application development

    El desarrollo rápido de aplicaciones o RAD (acrónimo en inglés de rapid application development) es un proceso de desarrollo de software, desarrollado inicialmente por James Martin en 1980. El método comprende el desarrollo interactivo, la construcción de prototipos y el uso de utilidades CASE (ingeniería asistida por computadora). Tradicionalmente, el desarrollo rápido de aplicaciones tiende a englobar también la usabilidad, utilidad y la rapidez de ejecución.
  • Método de desarrollo de sistemas dinámicos

    El método de desarrollo de sistemas dinámicos (en inglés Dynamic Systems Development Method o DSDM) es un método que provee un framework para el desarrollo ágil de software, apoyado por su continua implicación del usuario en un desarrollo iterativo y creciente que sea sensible a los requerimientos cambiantes, para desarrollar un sistema que reúna las necesidades de la empresa en tiempo y presupuesto. Es uno de un número de métodos de desarrollo ágil de software y forma parte de la alianza ágil.
  • PSP y TSP

    WattsHumphrey propuso dos procesos de apoyo al desarrollo de software.
    –Dirigido a individuos, llamado Personal Software Process(PSP) (Humphrey W., 1996)
    –Dirigido a equipos -TeamSoftware Process(TSP) (Humphrey, 1999).
  • Lenguaje de Modelado Unificado

    A través de la OMG (ObjectManagement Group) (OMG), de un estándar para el modelado de sistemas de software llamado Lenguaje de Modelado Unificado (UnifiedModelingLanguage-UML)(BoochG., 1998).
    –UML sigue siendo el estándar de modelado vigente y el más utilizado en la industria de software.
    –El Proceso Unificado(Jacobson I. B. G., 1999).
  • Proceso Unificado Racional

    El Proceso Racional Unificado o RUP (por sus siglas en inglés de Rational Unified Process) es un proceso de desarrollo de software desarrollado por la empresa Rational Software, actualmente propiedad de IBM. Junto con el Lenguaje Unificado de Modelado (UML), constituye la metodología estándar más utilizada para el análisis, diseño, implementación y documentación de sistemas orientados a objetos.
  • Programación extrema

    La programación extrema o eXtreme Programming (llamada XP) es una metodología de desarrollo de la ingeniería de software formulada por Kent Beck, autor del primer libro sobre la materia, Extreme Programming Explained: Embrace Change (1999). Es el más destacado de los procesos ágiles de desarrollo de software. Al igual que éstos, la programación extrema se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad.
  • Y2k

    Y2k
    El efecto 2000 y los miles de millones gastados para evitar el temido desastre que afortunadamente no sucedió.
  • Agile Unified Process

    El Proceso Unificado Ágil de Scott Ambler o Agile Unified Process (AUP) en inglés es una versión simplificada del Proceso Unificado de Rational (RUP). Este describe de una manera simple y fácil de entender la forma de desarrollar aplicaciones de software de negocio usando técnicas ágiles y conceptos que aún se mantienen válidos en RUP para mejorar la productividad.
  • Estándares nacionales

    Una desventaja de los es que se volvieron muy burocráticos y para las empresas pequeñas que desarrollan software, irrealizables.
    - Evolucionar los procesos y estándares internacionales para aplicarse a empresas pequeñas surgiendo estándares nacionales como el estándar mexicano MoProSoft(MoProSoft, 2005).
  • Red defectuosa

    Una simple tarjeta de red defectuosa dejó en tierra a una parte de los 17000 aviones que maneja el aeropuerto de Los Angeles.
  • Métodos y prácticas

    –Se propone hablar de Métodos y prácticas que cada organización establece según su experiencia, alimentada por las ideas de los estándares, pero que cada grupo de desarrollo pueda definir y mejorar según sus propias circunstancias.