-
ISO (Internacional Organization for Standardization)
Es la Organización Internacional de Normalización, cuya principal actividad es la elaboración de normas técnicas internacionales. Las normas ISO contribuyen a que el desarrollo, la producción y el suministro de bienes y servicios sean más eficaces, seguros y transparentes. Gracias a estas normas, los intercambios comerciales entre países son más fáciles y justos. -
Programación estructurada.
Es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando únicamente subrutinas y tres estructuras: secuencia, selección (if y switch) e iteración (bucles for y while), considerando innecesario y contraproducente el uso de la instrucción de transferencia incondicional (GOTO), que podría conducir a "código espagueti", que es mucho más difícil de seguir y de mantener, y era la causa de muchos errores de programación. -
Ley de Moore
Es un término informático que establece que la velocidad del procesador o el poder de procesamiento total de las computadoras se duplica cada doce meses. En un principio, la norma no era muy popular pero sí se sigue utilizando hasta el día de hoy. Quien la acuñó fue Gordon Moore, el cofundador de la conocida empresa Intel de microprocesadores. Cuando las revistas de electrónica le preguntaron cómo se desarrollaría el área en los próximos diez años. -
Period: to
Crisis del Software
La crisis en la industria del software permanece durante muchos años, lo cual parece una contradicción para el término. Lo que si se podría decir es que hay un problema crónico en el desarrollo de software. Que ha venido originado por una falta de:
Formalismo y metodología
Herramientas de soporte
Administración eficaz La crisis del software pasó, no tanto por la mejora en la gestión de los proyectos, sino en parte porque no es razonable estar en crisis más de veinte años. -
Period: to
Primera etapa de la IGS
Se estableció el software como producto y aparecieron las empresas dedicadas al desarrollo y distribución masiva del mismo. El origen del término Ingeniería del Software, como se ha visto previamente se atribuye a dos conferencias organizadas por la OTAN en 1967 y 1968 -
Teorema del programa estructurado. (Corrado Böhm, Giuseppe Jacopini)
Teorema que soporta la posibilidad que tiene la programación estructurada de expresar un algoritmo computable cualquiera mediante un lenguaje basado solo en secuencias de instrucciones, alternativas y ciclos tipo "while". -
Surgimiento del Concepto
El término que utilizó Fritz Bauer en la primera conferencia sobre desarrollo de software patrocinada por el Comité de Ciencia de la OTAN celebrada en Garmisch (Alemania), en octubre de 1968, previamente había sido utilizado por el holandés Edsger Dijkstra en su obra The Humble Programmer. -
Period: to
Silver Bullets
Durante décadas, resolver la crisis del software desencadenó en que compañías e investigadores produjeran más y más herramientas software. Cada nueva tecnología o práctica que apareció entre 1970 y 1990 fue tratada como una “bala de plata” (en inglés, silver bullet) que solucionaría la crisis del software. -
Moore escribió para el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE)
Aquí Moore explicaba que las técnicas habían mejorado y por ende había menos errores. La producción era más eficiente y se abría paso al terreno de la innovación. También confiaba en que la ley se siguiera cumpliendo por unos cuantos años más, pero teniendo en cuenta que la industria de los semiconductores estaba llegando al límite de algunas técnicas, la velocidad de los avances se iba a frenar, haciendo que el período fuera de veinticuatro y no de doce meses. -
No silver Bullets
Fred Brooks publicó el artículo No Silver Bullet, argumentando que ninguna tecnología o práctica por sí misma podría mejorar en un diez por ciento la productividad en los siguientes diez años. El debate sobre las balas de plata continuó durante la siguiente década, dando lugar a numerosas interpretaciones sobre el artículo de Brooks. -
Método Espiral
Combinación de procesos en cascada y prototipado. Fue definido por Barry Boehm en 1986 en el artículo “A Spiral Model of Software Development and Enhancement”. -
Scrum
El concepto de Scrum tiene su origen en un estudio de 1986 sobre los nuevos procesos de desarrollo utilizados en productos exitosos en Japón y los Estados Unidos (cámaras de fotos de Canon, fotocopiadoras de Xerox, automóviles de Honda, ordenadores de HP y otros). Los equipos que desarrollaron estos productos partían de requisitos muy generales, así como novedosos, y debían salir al mercado en mucho menos del tiempo del que se tardó en lanzar productos anteriores. -
Period: to
RUP (Rationa Unified Process)
En 1987, Ivar Jacobson fundó la compañía Objectory AB, que desarrolló Objetory, un método de desarrollo orientado a objetos, extensión de lo que se conocía como aproximación Ericsson. En 1995, Rational Software compró Objectory AB, y en los siguientes años desarrollaron y lanzaron el estándar UML así como el RUP, que aunaba los esfuerzos y la experiencia de todas las compañías adquiridas por Rational Software. En diciembre de 2002, IBM adquirió Rational Software. -
Programación orientada a objetos (POO).
Es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe variedad de lenguajes de programación que soportan la orientación a objetos. -
RAD
El desarrollo rápido de aplicaciones (RAD, por sus siglas en ingles) describe un método de desarrollo de software que enfatiza en gran medida el prototipado rápido y la entrega iterativa. El modelo RAD es, por lo tanto, una alternativa nítida al modelo típico de desarrollo en cascada, que a menudo se enfoca principalmente en la planificación y las prácticas de diseño secuencial. Introducido por primera vez en 1991 en el libro de James Martin del mismo nombre -
RUP
El Rational Unified Process en inglés es un proceso de desarrollo de software iterativo y junto con el Lenguaje Unificado de Modelado (UML), constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos.
El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización. -
Extreme Programming
Enfoque formulado por Kent Beck en 1999, que se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad. Sus defensores consideran que ser capaz de adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto es una aproximación mejor y más realista que definir todos los requisitos al comienzo e invertir esfuerzos después en controlar los cambios. -
Period: to
Demanda
A medida el software fue avanzando, la demanda en el mercado también se disparo, de esta forma las compañías encargadas del desarrollo se vieron en la necesidad de adoptar nuevas estrategias para acelerar a la velocidad deseada por los usuarios. -
Manifiesto Agil
es un documento redactado en 2001 por 17 expertos en programación que supuso un cambio radical en la forma de desarrollar ‘software’. Frente a los modelos tradicionales —excesivamente rígidos y alejados de las necesidades de los clientes—, estos gurús propusieron cuatro valores que inspiran las diferentes metodologías ágiles que han surgido desde entonces. -
Period: to
Fases BETA del Producto
Las pruebas/fases/versiones BETA en forma generalizada se refieren a versiones del software en las cuales solo se ofrecen algunas características básicas del producto final.
Esto resulta muy útil ya que Las pruebas beta te ofrecen la posibilidad de mejorar tu aplicación en función de los comentarios de los individuos fuera del equipo de desarrollo de aplicaciones que prueban la aplicación no comercial en sus propios dispositivos. -
ISO/IEC 25000
Es una familia de normas que tiene por objetivo la creación de un marco de trabajo común para evaluar la calidad del producto software. La familia ISO/IEC 25000 es el resultado de la evolución de otras normas anteriores, especialmente de las normas ISO/IEC 9126, que describe las particularidades de un modelo de calidad del producto software, e ISO/IEC 14598, que abordaba el proceso de evaluación de productos software. -
Period: to
Prospectiva para el Desarrollo de Software
En esta etapa que comprende desde el año 2010 hasta la actualidad, se muestran algunas técnicas para el desarrollo del software que marcaran el camino a seguir en este, estas plantean nuevos horizontes así como nuevos retos en el desarrollo ágil de productos software, estos son colocados en un año en especifico únicamente por fines prácticos. -
Abundancia Computacional
La Ley de Moore seguirá vigente al menos durante los próximos veinte años. Con esto, vamos a tener una abundancia de aparatos pequeños pero con gran poder de procesamiento. La Ingeniería de Software tendrá que enfrentarse con los problemas de cómo manejar el desarrollo para esta abundancia computacional, además, como integrar estos dispositivos a los SOS. Esto requerirá de nuevos niveles de abstracción para la programación y nuevas herramientas con mayor poder basado en el uso del conocimiento. -
Combinación de biología y computación.
Aquí habrá una influencia mutua. La computación basada en biología utiliza fenómenos moleculares o biológicos para resolver problemas computacionales. Mientras que la biología computacional tratará de mejorar las capacidades humanas, incorporando dispositivos al cuerpo humano. -
Sistemas de Sistemas
La habilidad de las organizaciones de competir, adaptarse y sobrevivir en el mercado y en la sociedad globalizada va a depender, en gran medida, su habilidad para integrar sistemas de software en sistemas de sistemas (SOS). Un SOS integra múltiples sistemas desarrollados independientemente y se caracteriza por su gran tamaño. Los retos para el desarrollo de SOS son: lograr acuerdos a tiempo con diversos involucrados y resolver rápido los conflictos en los requerimientos. -
Autonomía Computacional
Es una visión en la cual la Inteligencia Artificial alcanza plenamente sus objetivos. Las máquinas se vuelven autónomas, evalúan las situaciones y determinan la mejor opción para actuar. -
Globalizacion
La conectividad global proporcionada por el Internet y las comunicaciones de banda ancha causará la evolución de las principales economías hacia redes de economías. En consecuencia, se requerirá de nuevos procesos de desarrollo para la colaboración global exitosa. Los retos claves serán: la colaboración multicultural, lograr las visiones compartidas y la confianza, definir mecanismos de contratación, incentivos, entregas y la sincronización de cambios, que aprovechen múltiples zonas horarias.