Ingeniera de software el rea de la ingeniera que ofrece mtodos y tcnicas para desarrollar y
mantener software.
Esta ingeniera trata con reas muy diversas de la informtica y de las ciencias de la computacin,
tales como construccin de compiladores, sistemas operativos, o desarrollos Intranet/Internet,
abordando todas las fases del ciclo de vida del desarrollo de cualquier tipo de sistemas de
informacin y aplicables a infinidad de reas: negocios, investigacin cientfica, medicina,
produccin, logstica, banca, control de trfico, meteorologa, derecho, Internet, Intranet, etc.
Una definicin precisa an no ha sido contemplada en los diccionarios, sin embargo se pueden
citar las enunciadas por algunos de los ms prestigiosos autores:
- Es la aplicacin de un enfoque sistemtico, disciplinado y cuantificable al desarrollo, operacin y
mantenimiento del software; es decir, la aplicacin de la ingeniera al software (IEEE, 1993).
La creacin del software es un proceso intrnsecamente creativo y la ingeniera del software trata
de sistematizar este proceso con el fin de acotar el riesgo del fracaso en la consecucin del
objetivo creativo por medio de diversas tcnicas que se han demostrado adecuadas en base a la
experiencia previa.
La IS se puede considerar como la ingeniera aplicada al software, esto es, por medios
sistematizados y con herramientas preestablecidas, la aplicacin de ellos de la forma ms eficiente
para la obtencin de resultados ptimos; objetivos que siempre busca la ingeniera. No es slo de
la resolucin de problemas, sino ms bien teniendo en cuenta las diferentes soluciones, elegir la
ms apropiada.
Concepto de sistema, conjunto de cosas que ordenadamente relacionadas entre s contribuyen
a un determinado objeto. De forma recursiva, las partes de un sistema pueden ser consideradas
como nuevos sistemas (subsistemas).
Los sistemas informticos son un conjunto de elementos que interactan entre s, para apoyar
a las actividades de un negocio u organizacin. Entre ellos podemos distinguir dos tipos de
subsistemas:
Sistemas Hardware, son los elementos materiales, los que se pueden tocar.
Sistemas Software, los programas que gobiernan el funcionamiento del computador.
El objetivo de los sistemas informticos es el tratamiento de la informacin: almacenamiento,
elaboracin y presentacin de datos. De esta forma se automatizan determinadas acciones.
Caractersticas del software (lo contrario para el hardware):
No se desgasta ni envejece, y por este motivo no requiere reparaciones ocasionales
Su duplicacin es poco costosa, lo caro es el desarrollo
Puede ser modificado fcilmente, tanto que es necesario un control de versiones
Para qu sirve?
Se crean y se siguen para ofrecer calidad total al cliente referente a un producto, bien o un
servicio.
Calidad Son un conjunto de procedimientos que cumplen con la finalidad de cubrir las
necesidades del cliente, en este caso se puede tener un ndice de error casi imperceptible ya sea
de un producto, bien o servicio.
El significado de calidad de esta palabra puede adquirir mltiples interpretaciones, ya que todo
depender del nivel de satisfaccin o conformidad del cliente. Sin embargo, la calidad es el
resultado de un esfuerzo arduo, se trabaja de forma eficaz para poder satisfacer el deseo del
consumidor. Dependiendo de la forma en que un producto o servicio sea aceptado o rechazado
por los clientes, podremos decir si ste es bueno o malo.
Calidad total es tener cero errores y cubrir ms all de las expectativas del cliente.
Modelo de desarrollo es una representacin abstracta de un proceso de software.
CICLO DE VIDA DEL SOFTWARE
Es la forma mediante la cual se describen los diferentes pasos que se deben seguir para el
desarrollo de un software, partiendo desde una necesidad hasta llegar a la puesta en marcha de
una solucin y su apropiado mantenimiento. El ciclo de vida para un software comienza cuando se
tiene la necesidad de resolver un problema, y termina cuando el programa que se desarroll para
cumplir con los requerimientos, deja de ser utilizado.
Existen varias versiones del ciclo de vida del software entre las cuales se destacan: el ciclo de vida
clsico o en cascada, el modelo en espiral, el desarrollo de prototipos, el modelo por incrementos
y el modelo extremo [6].
ETAPAS DEL CICLO DE VIDA DEL SOFTWARE
El ciclo de vida clsico del software siendo uno de los ms utilizados tal como lo plantean
diferentes autores, est conformado en su versin ampliada por siete etapas que se pueden
representar mediante un modelo en cascada as:
Asuncin de responsabilidades.
La entropa del software es creciente.
La gente es la clave del xito.
Nunca dejes que tu jefe o cliente te convenza
para hacer un mal trabajo.
La gente necesita sentir que su trabajo es
apreciado.
La educacin continua es responsabilidad de
cada miembro del equipo.
El compromiso del cliente es el factor ms
crtico en la calidad del software.
Tu mayor desafo es compartir la visin del
producto final con el cliente.
La mejora continua de tu proceso de
desarrollo de software es posible y esencial.
Tener procedimientos escritos de desarrollo
de software puede ayudar a crear una cultura
compartida de buenas prcticas.
Capas
El enfoque de ingeniera del software cuenta con un compromiso organizacional con la calidad
porque no es posible incorporar la ingeniera del software en una organizacin que no est
centrada en conseguir calidad.
La ingeniera del software es una tecnologa multicapa. Se puede ver como un conjunto de
componentes estratificados, que reposan sobre ese enfoque de calidad.
Gestin de proyectos
Aseguramiento de la calidad del software
Gestin de la configuracin del software
Monitorizacin de proyectos
Medidas y mtrica
El modelo CMM
A partir de noviembre de 1986 el SEI, a requerimiento del Gobierno Federal de los Estados Unidos de
Amrica, desarroll una primera definicin de un modelo de madurez de procesos en el desarrollo de
software, que se public en septiembre de 1987. Este trabajo evolucion al modelo CMM o SW-CMM
(CMM for Software), cuya ltima versin (v1.1) se public en febrero de 1993.
Este modelo establece un conjunto de prcticas o procesos clave agrupados en reas Clave de
Proceso (KPA - Key Process Area). Para cada rea de proceso define un conjunto de buenas prcticas
que habrn de ser:
A su vez estas reas de Proceso se agrupan en cinco "niveles de madurez", de modo que una
organizacin que tenga institucionalizadas todas las prcticas incluidas en un nivel y sus inferiores, se
considera que ha alcanzado ese nivel de madurez.
Los niveles son:
1 - Inicial. Las organizaciones en este nivel no disponen de un ambiente estable para el desarrollo y
mantenimiento de software. Aunque se utilicen tcnicas correctas de ingeniera, los esfuerzos se ven
minados por falta de planificacin. El xito de los proyectos se basa la mayora de las veces en el
esfuerzo personal, aunque a menudo se producen fracasos y casi siempre retrasos y sobrecostes. El
resultado de los proyectos es impredecible.
2 - Repetible. En este nivel las organizaciones disponen de unas prcticas institucionalizadas de
gestin de proyectos, existen unas mtricas bsicas y un razonable seguimiento de la calidad. La
relacin con subcontratistas y clientes est gestionada sistemticamente.
3 - Definido. Adems de una buena gestin de proyectos, a este nivel las organizaciones disponen de
correctos procedimientos de coordinacin entre grupos, formacin del personal, tcnicas de
ingeniera ms detallada y un nivel ms avanzado de mtricas en los procesos. Se implementan
tcnicas de revisin por pares (peer reviews).
4 - Gestionado. Se caracteriza porque las organizaciones disponen de un conjunto de mtricas
significativas de calidad y productividad, que se usan de modo sistemtico para la toma de decisiones
y la gestin de riesgos. El software resultante es de alta calidad.
5 - Optimizado. La organizacin completa est volcada en la mejora continua de los procesos. Se
hace uso intensivo de las mtricas y se gestiona el proceso de innovacin.
As es como el modelo CMM establece una medida del progreso, conforme al avance en niveles de
madurez. Cada nivel a su vez cuenta con un nmero de reas de proceso que deben lograrse. El
alcanzar estas reas o estadios se detecta mediante la satisfaccin o insatisfaccin de varias metas
claras y cuantificables. Con la excepcin del primer nivel, cada uno de los restantes Niveles de
Madurez est compuesto por un cierto nmero de reas Claves de P