- Ingeniería de Software es el estudio de los principios y metodologías para el desarrollo y mantenimiento de sistemas software (Zelkovitz, 1978)
- Ingeniería de software es la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora y a la documentación asociada requerida para desarrollar, operar y mantenerlos. Se conoce también como Desarrollo de Software o Producción de Software ( Bohem, 1976).
- Ingeniería de Software trata del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable, que sea fiable y trabaje en máquinas reales (Bauer, 1972).
- Es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento del software; es decir, la aplicación de la ingeniería al software (IEEE, 1993).
Evolución del Software:
1era Era Finales de los 50
Durante los primeros años de la era de la computadora, el software se contemplaba como un añadido. Existían pocos métodos sistemáticos. El desarrollo del software se realiza virtualmente sin ninguna planificación. El software se diseñaba a medida para cada aplicación y tenía una distribución relativamente pequeña.
2da Era – 1965-1977
La multiprogramación y los sistemas multiusuario introdujeron nuevos conceptos de interacción hombre – maquina. Se estableció el software como producto y las llegas de las casas de software. Se comenzaron a realizar las actividades llamadas “Mantenimiento del software”
3era Era 1978-1979
El sistema distribuido, múltiples computadoras, cada una ejecutando funciones concurrentes y comunicándose con alguna otra, incrementó notablemente la complejidad de los sistemas informáticos
4ta Era – Inicio de los 90
Los sistemas informáticos se alejan de las computadoras individuales y de los programas de computadoras, dirigiéndose al impacto colectivo de las computadoras y del software. La industria del software ya es la cuna de la economía del mundo. Las técnicas de la cuarta generación para el desarrollo del software están cambiando en la forma en que la comunidad del software construye programas informáticos. Las tecnologías orientadas a objetos están desplazando rápidamente los enfoques de desarrollo de software más convencionales en muchas áreas de desarrollo de software
El producto y el proceso de software:
Proceso de software: Conjunto estructurado de actividades requeridas para desarrollar un sistema de software.
- Especificación.
- Diseño.
- Validación.
- Evolución.
Características del Proceso
Entendible
• ¿Se encuentra el proceso bien definido y es entendible?
Visible
• ¿El proceso es visible al exterior?
Soportable
• ¿Puede el proceso ser soportado por herramientas CASE?
Aceptable
• ¿El proceso es aceptado por aquellos involucrados en el?.
Confiable
• ¿Los errores del proceso son descubiertos antes de que se conviertan en errores del producto?
Robusto
• ¿Puede continuar el proceso a pesar de problemas inesperados?
Mantenible
• ¿Puede el proceso evolucionar para cumplir con los objetivos organizacionales?
Rapidez
• ¿Qué tan rápido puede producirse el sistema?
Desarrollo basado en componentes
- Un componente es una pieza de código preelaborado que encapsula alguna funcionalidad expuesta a través de interfaces estándar.
- Los componentes son los "ingredientes de las aplicaciones", que se juntan y combinan para llevar a cabo una tarea.
El paradigma de ensamblar componentes y escribir código para hacer que estos componentes funcionen se conoce como Desarrollo de Software Basado en Componentes. El uso de este paradigma posee algunas ventajas:
- Reutilización del software. Nos lleva a alcanzar un mayor nivel de reutilización de software.
- Simplifica las pruebas. Permite que las pruebas sean ejecutadas probando cada uno de los componentes antes de probar el conjunto completo de componentes ensamblados.
- Simplifica el mantenimiento del sistema. Cuando existe un débil acoplamiento entre componentes, el desarrollador es libre de actualizar y/o agregar componentes según sea necesario, sin afectar otras partes del sistema.
- Mayor calidad. Dado que un componente puede ser construido y luego mejorado continuamente por un experto u organización, la calidad de una aplicación basada en componentes mejorará con el paso del tiempo.
Métodos Formales
"Método formal es cualquier técnica que trate la construcción y/o el análisis de modelos matemáticos que contribuyen a la automatización del desarrollo de sistemas informáticos"
Los métodos formales se basan en el empleo de técnicas, lenguajes y herramientas definidos matemáticamente para cumplir objetivos tales como facilitar el análisis y construcción de sistemas confiables independientemente de su complejidad, delatando posibles inconsistencias o ambigüedades que de otra forma podrían pasar inadvertidas.
En los últimos años, la idea de que la formalización matemática del SW es el enfoque más apropiado para conseguir mejorar su calidad va adquiriendo cada vez más fuerza. Los partidarios de los métodos formales defienden que su empleo, a lo largo de todo el ciclo de vida, facilita el desarrollo de especificaciones claras, concisas y no ambiguas, permite el análisis funcional de la especificación y posibilita el desarrollo de implementaciones correctas respecto a su especificación. Sin embargo los detractores aseguran que el empleo de métodos formales supone un volumen de trabajo considerable, aumento en los costes y tiempo de desarrollo y que debe quedar supeditado a herramientas que lo automaticen.
Ventajas de los métodos formales
Técnicas de cuarta generación
El termino de técnicas de cuarta generación (T4G) Abarca un amplio espectro de herramientas de software que tienen algo en común: todas facilitan al ingeniero del software la especificación de algunas características del software a alto nivel. Luego, la herramienta genera automáticamente el código fuente basándose en la especificación del técnico. Cada vez parece más evidente que cuanto mayor sea el nivel en la que se especifique el software, mas rápido se podrá conseguir el programa
No hay comentarios:
Publicar un comentario