Ingenieria de Software
Ingenieria de Software
Ingenieria de Software
INGENIERIA DE SOFTWARE
Introduccion
Definicion: Ingenieria
La actividad del ingeniero supone la concreción de una idea en la realidad. Esto quiere decir
que, a través de técnicas, diseños y modelos, y con el conocimiento proveniente de las ciencias,
la ingeniería puede resolver problemas y satisfacer necesidades humanas.
La ingeniería también supone la aplicación de la inventiva y del ingenio para desarrollar una
cierta actividad. Esto, por supuesto, no implica que no se utilice el método científico para llevar
a cabo los planes.
Definicion: Software
El software no son solo programas, sino todos los documentos asociados y la configuracion
de datos que se necesitan para hacer que estos programas operen de manera correcta. Un
sistema de software consiste en diversos programas independientes, archivos de configuracion
que se utilizan para ejecutar estos programas, un sistema de documentacion que describe
la estructura del sistema, la documentacion para el usuario que explica como utilizar
el sistema y sitios web que permitan a los usuarios descargar la informacion de productos
recientes. [Sommerville, 2004]
desempeño deseados; (2) las estructuras de datos que permiten que los programas manipulen
informacion de manera adecuada; y (3) los documentos que describen la operacion y uso
de los programas. [Pressman, 2005]
Referencias:
Es necesario un proceso que sirva como guia para todos los participantes clientes, usuarios,
desarrolladores y directivos ejecutivos. No nos sirve ningun proceso antiguo; necesitamos uno
que sea el mejor proceso que la industria pueda reunir en este punto de su historia. Por ultimo
necesitamos un proceso que este ampliamente disponible de forma que todos los interesados
puedan comprender su papel en el desarrollo en el que se encuentran implicados.
Un proceso de desarrollo de software deberia tambien ser capaz de evolucionar durante muchos
años. Durante esta evolucion deberia limitar su alcance, en un momentodel tiempo dado, a las
realidades que permitan las tecnologias, herramientas, personas y patrones de organizacion.
Los ingenieros del proceso deben equilibrar estos cuatro conjuntos de circunstancias. Ademas el
equilibrio debe estar presente no solo ahora, sino tambien en el futuro. El creador del proceso
debe diseñar el proceso de forma que pueda evolucionar, de igual forma que el desarrollador de
software intenta desarrollar un sistema que no solo funciona este año, sino que evoluciona con
exito en los años venideros. Un proceso debe madurar durante varios años antes de productos
comerciales manteniendo a la vez un nivel razonable de riesgo de utilizacion. El desarrollo de
un producto nuevo es bastante arriesgado en el mismo como para añadirle el riesgo de un
proceso puede ser estable. Sin este equilibrio de tecnologias, herramientas, personas y
organizacion, el uso del proceso seria bastante arriesgado.
Para responder a esta situación, han surgido una serie de herramientas, técnicas y modelos que
facilitan a las organizaciones, encargadas de las tecnologías de la información, generar
productos que cumplan las expectativas del cliente e incluso las rebasen, herramientas que
prometen ser la solución a los problemas de calidad, costo y tiempos de desarrollo; de éstas
podemos mencionar a los “modelos de calidad” como la norma ISO 9000-2000, la ISO/IEC TR
15504 y el modelo CMM (Capability Maturity Model del Software Engineerig Institute SEI).
Ingeniería de Software PRG 151 CEC 5
Inf. Franz Ramos
1. Este programa tiene siete estrategias de donde emergen varios proyectos que ayudarán
a que se alcancen las metas previstas en éste:
2. Promover las exportaciones y la atracción de inversiones.
3. Educar y formar personal competente en el desarrollo de software, en cantidad y calidad
convenientes.
4. Contar con un marco legal promotor de la industria.
5. Desarrollar el mercado interno.
6. Fortalecer a la industria local.
7. Alcanzar niveles internacionales en capacidad de procesos.
8. Promover acciones conjuntas con los gobiernos estatales y construir infraestructura.
Es una norma internacional destinada a evaluar la capacidad de la organización para cumplir los
requisitos del cliente, los reglamentarios y los propios de la organización.
Ventajas
Desventajas
Es un marco evolutivo organizado en cinco niveles para lograr la mejora continua de procesos.
Ventajas
Desventajas
ISO/IEC TR 15504
Ventajas
Desventajas
MoProSoft
Ventajas
• Fácil de entender.
• Fácil de aplicar.
• No es costoso en su adopción.
• Sirve de base para alcanzar evaluaciones exitosas con otros modelos o normas, tales
como ISO 9000:2000 [1] o CMM.1 V1.1[2].
A decir de sus creadores, el modelo está orientado a pequeñas y medianas empresas, hecho
favorable si se considera que aproximadamente el 80% de las empresas desarrolladoras de
software del país caen en esta categoría. Su principal fortaleza es que integra varias de las
prácticas propuestas por los otros modelos y corrige algunas de sus desventajas, como son el
hecho de que no ha sido liberado por completo o al menos falta el modelo de evaluación;
además, está en proceso de convertirse en norma compitiendo con el proyecto de norma
ISO/IEC TR 15504 y aunque no ha sido probado, se planea realizar pilotos en algunas
organizaciones para evaluar qué tan fácil resulta su implantación determinando los recursos
necesarios.
realidad, lo que repercute de manera directa en la gama de soluciones que tiene una
organización para resolver sus necesidades.
Modelo de Cascada:
1. Análisis de requisitos
2. Diseño
3. Codificación
4. Pruebas
5. Implantación
6. Mantenimiento
Si bien ha sido ampliamente criticado desde el ámbito académico y la industria, sigue siendo el
paradigma más seguido al día de hoy.
Análisis de requisitos
Se analizan las necesidades de los usuarios finales del software para determinar qué objetivos
debe cubrir. De esta fase surge una memoria llamada SRD (Documento de Especificación de
Requisitos), que contiene la especificación completa de lo que debe hacer el sistema sin entrar
en detalles internos.
Diseño
especificación de lo que debe hacer cada una de sus partes, así como la manera en que se
combinan unas con otras.
Codificación
Pruebas
Implantación
Mantenimiento
Durante la explotación del sistema software pueden surgir cambios, bien para corregir errores o
bien para introducir mejoras. Todo ello se recoge en los Documentos de Cambios.
Variantes
Existen variantes de este modelo; especialmente destacamos la que hace uso de prototipos y
en la que se establece un ciclo antes de llegar a la fase de mantenimiento, verificando que el
sistema final este libre de fallos
Ingeniería de Software PRG 151 CEC 10
Inf. Franz Ramos
Modelo de Prototipo:
deberían entonces retroceder o volver al punto de partida para definir e implementar más y
mejores partes.
El Modelo Espiral mejora el Modelo de Cascada enfatizando la naturaleza iterativa del proceso
de diseño. Eso introduce un ciclo de prototipo iterativo. En cada iteración, las nuevas
expresiones que son obtenidas transformando otras dadas son examinadas para ver si
representan progresos hacia el objetivo.