PIS Lectura
PIS Lectura
PIS Lectura
INGENIERIA DE
SOFTWARE (PIS)
INGENIERÍA DE SOFTWARE II
CONTENIDO
CONTENIDO ................................................................................................................................................... 1
PROCESOS DE LA INGENIERIA DE SOFTWARE ............................................................................................... 4
1. INTRODUCCION ................................................................................................................................. 4
2. OBJETIVOS ......................................................................................................................................... 5
3. CONCEPTOS DE PROCESOS DE INGENIERIA DE SOFTWARE .............................................................. 5
3.1. Proceso de Software ..................................................................................................................... 6
3.2. Ingeniería del Software ................................................................................................................. 6
3.3. Proceso de Ingeniería del Software............................................................................................... 7
Concepción ............................................................................................................................................ 7
Elaboración ............................................................................................................................................ 7
Construcción .......................................................................................................................................... 7
Transición .............................................................................................................................................. 7
3.4. Ciclo de vida del Software ............................................................................................................. 8
4. PROCESOS DE IMPLEMENTACION Y CAMBIOS.................................................................................. 8
4.1. Modelo IDEAL ................................................................................................................................ 8
1. Iniciar ............................................................................................................................................. 9
2. Diagnosticar ................................................................................................................................... 9
3. Establecer ...................................................................................................................................... 9
4. Actuar ............................................................................................................................................ 9
5. Difundir ........................................................................................................................................ 10
4.2. Modelo QIP.................................................................................................................................. 10
5. DEFINICION DE PROCESOS .............................................................................................................. 12
5.1. Modelos del ciclo de Vida del Software ...................................................................................... 12
5.1.1. Cascada .................................................................................................................................... 12
Ventajas ............................................................................................................................................... 13
Desventajas ......................................................................................................................................... 13
5.1.2. Prototipado ............................................................................................................................. 14
1
Función ................................................................................................................................................ 15
Características ..................................................................................................................................... 15
Ventajas ............................................................................................................................................... 15
Desventajas ......................................................................................................................................... 16
5.1.3. Iterativo e Incremental ............................................................................................................ 16
El modelo iterativo .............................................................................................................................. 16
El modelo incremental ........................................................................................................................ 16
Características ..................................................................................................................................... 16
Ventajas ............................................................................................................................................... 17
Desventajas ......................................................................................................................................... 18
5.1.4. En Espiral ................................................................................................................................. 18
Características ..................................................................................................................................... 19
Ventajas ............................................................................................................................................... 19
Desventajas ......................................................................................................................................... 20
5.2. Metodologías de desarrollo de Software .................................................................................... 20
5.2.1. RUP .......................................................................................................................................... 20
5.2.1.1. Ciclo de vida de RUP ............................................................................................................ 21
5.2.1.2. Fase de Inicio ....................................................................................................................... 21
Objetivos ............................................................................................................................................. 21
Resultados de la Fase .......................................................................................................................... 22
5.2.1.3. Fase de Elaboración ............................................................................................................. 22
Objetivos ............................................................................................................................................. 22
Resultados ........................................................................................................................................... 23
5.2.1.4. Fase de Construcción........................................................................................................... 23
Objetivos ............................................................................................................................................. 23
Resultados ........................................................................................................................................... 23
5.2.1.5. Fase de Transición ............................................................................................................... 24
Objetivos ............................................................................................................................................. 24
Resultados ........................................................................................................................................... 25
Criterios de evaluación ........................................................................................................................ 25
2
5.2.2. Modelo Ágil ............................................................................................................................. 25
Objetivo ............................................................................................................................................... 26
Ventajas ............................................................................................................................................... 27
Desventajas ......................................................................................................................................... 28
6. EVALUACION DE PROCESOS ............................................................................................................ 28
6.1. Modelos de Evaluación del proceso ............................................................................................ 28
6.1.1. CMMI ....................................................................................................................................... 28
6.2. Métodos de evaluación del proceso ........................................................................................... 29
6.2.1. CBA-IPI ..................................................................................................................................... 29
6.2.2. CAMPI ...................................................................................................................................... 29
7. MEDIDAS DE PRODUCTOS Y PROCESOS .......................................................................................... 29
Actividades de la ISO/IEC 15939.......................................................................................................... 30
8. BIBLIOGRAFIA .................................................................................................................................. 32
3
PROCESOS DE LA INGENIERIA DE
SOFTWARE
1. INTRODUCCION
El proceso de ingeniería del software puede ser visto desde dos enfoques: El primero: ciclo de
vida del software, procesos durante la adquisición, desarrollo, mantenimiento y cierre y el
segundo con definición, implementación, evaluación, manejo, cambio y mejora del ciclo de vida
del software El principal objetivo del manejo del proceso de vida de software es implementar
nuevos o mejores procesos en prácticas actuales y que sean aplicados en el desarrollo de
software, tales modelos como CMMI, IDEAL, QIP, entre otros.
“Cuando puedas medir lo que estás diciendo y expresarlo en números, sabrás algo acerca de eso;
pero cuando no puedes medirlo, cuando no puedes expresarlo en números, tus conocimientos
serán escasos y no satisfactorios”Lord Kelvin
La medición en general tiene tres principales objetivos: entender qué ocurre durante el desarrollo
y el mantenimiento, mejorar nuestros procesos y nuestros productos y controlar lo que ocurre
en nuestros proyectos.
4
2. OBJETIVOS
Los principales objetivos del desarrollo de este trabajo son:
Conocer los métodos y modelos que se aplican actualmente en la ingeniería del software.
5
3.1. Proceso de Software
El proceso de software es un conjunto coherente de: políticas, estructuras organizacionales,
tecnologías, procedimientos y artefactos; que son necesarios para: concebir, desarrollar, instalar
y mantener un producto software.
6
• Ingeniería de Software es el estudio de los principios y metodologías para el desarrollo y
mantenimiento de sistemas software (Zelkovitz, 1978)
Elaboración: Define un plan del proyecto, especifica las características y fundamenta la arquitectura.
7
3.4. Ciclo de vida del Software
Un concepto dado por IEEE 1074 [6] es, el ciclo de vida del software es una aproximación lógica a
la adquisición, el suministro, el desarrollo, la explotación y el mantenimiento del software”
Y otro concepto dado por ISO 12207 “Es un marco de referencia que contiene los procesos, las
actividades y las tareas involucradas en el desarrollo, la explotación y el mantenimiento de un
producto de software, abarcando la vida del sistema desde la definición de los requisitos hasta la
finalización de su uso”
8
El modelo IDEAL [4], es un ciclo de mejoramiento de procesos, proporciona un conjunto de
actividades coherentes para sustentar la adopción de las prácticas recomendadas por el CMM,
teniendo variaciones de una entidad a otra dependiendo del tipo de industria de software,
tamaño de organización y modalidades de operación.
9
4.3. Implementar la solución
5. Difundir Aprende de la experiencia del ciclo recién realizado y aumenta la habilidad de
la empresa u organización para mejorar los procesos en forma continua.
Sus características son:
5.1. Documentar y analizar las lecciones.
5.2. Revisar el enfoque seguido y proponer acciones futuras.
Una forma de ver el modelo es también verlo como un modelo para la organización de
aprendizaje, donde la organización establece una forma de desarrollar las prácticas a través de la
experimentación con ellos y, a continuación, la captura y el paquete en una forma que pueden
ser reutilizados en otras partes, dentro de ciertos límites.
QIP esta basado en las principales disciplinas del software, por eso es natural, revolucionario y
experimental. El trabajo para desarrollo de software se basa en los humanos y su diseño de
trabajo.
10
Otro de los modelos reconocidos es el modelo QIP [5] El propósito de este modelo es apoyar el
proceso de mejora continua y la ingeniería de los procesos de desarrollo, para ayudar en la
tecnología de perfusión. Una forma de ver el modelo es también verlo como un modelo para la
organización de aprendizaje, donde la organización establece una forma de desarrollar las
prácticas a través de la experimentación con ellos y, a continuación, la captura y el paquete en
una forma que pueden ser reutilizados en otras partes, dentro de ciertos límites.
QIP esta basado en las principales disciplinas del software, por eso es natural, revolucionario y
experimental. El trabajo para desarrollo de software se basa en los humanos y su diseño de
trabajo.
11
5. DEFINICION DE PROCESOS
5.1.1. Cascada
Este modelo es conocido también como ciclo de vida lineal o básica. Este modelo admite la
posibilidad de hacer iteraciones. Se define como una secuencia de fases como se muestra en la
Figura, en la que al final de cada una de ellas se reúne la documentación para garantizar que
cumple las especificaciones y los requisitos antes de pasar a la fase siguiente.
12
Para pasar de una fase a otra es necesario conseguir todos los objetivos de la etapa previa
Al final de cada fase el personal técnico y los usuarios tienen la oportunidad de revisar el
progreso del proyecto
Ventajas
Ayuda a prevenir que se sobrepasen las fechas de entrega y los costes esperados
Bajo riesgo para desarrollos bien comprendidos utilizando tecnología conocida.
Este modelo es sencillo ya que sigue los pasos intuitivos necesarios a la hora de desarrollar
el software.
Desventajas
13
5.1.2. Prototipado
El modelo prototipado, modela el producto final y permite efectuar un test sobre determinados
atributos del mismo sin necesidad de que este disponible.
Se trata, simplemente, de testear haciendo uso del modelo. Esta técnica puede ser utilizada en
cualquier etapa de desarrollo.
A medida que el proceso progresa y el producto se completa, el prototipo ha de abarcar, cada vez
más las características del producto final.
14
Prototipado – Rápido
Prototipado – Evolutivo
Prototipado – Operacional
Prototipado – Reutilizable
Función
Los prototipos, tienen una doble función:
Características
Sus principales características son:
Reduce el riesgo de construir productos que no satisfagan las necesidades de los usuario
Reduce costos y aumenta la probabilidad de éxito
Exige disponer de las herramientas adecuadas
No presenta calidad ni robustez
Suele utilizarse principalmente en dos áreas:
Prototipado de la interfaz de usuario
Prototipado del rendimiento
Ventajas
Es mucho mejor y conveniente usar este modelo porque es el único apto para desarrollos
en los que se utiliza nueva tecnología.
El prototipado es un medio excelente para recoger la realimentación del usuario final, así
como también es mucho más rápido de desarrollarse.
El cliente se va familiarizando con el nuevo producto.
15
Permite proporcionar una funcionalidad útil en manos del cliente sin tener la aplicación
finalizada.
Desventajas
No hay que usar en casos experimentales ya que no puede funcionar.
La gestión de desarrollo que es lenta porque da vueltas hasta que el usuario este de
acuerdo, o se pongan limites.
Imposibilidad de conocer a priori el tiempo de desarrollo
Es muy difícil y complejo realizarlo
El modelo iterativo: Este modelo mejora cada versión es decir mejora la función que tiene
la versión.
El modelo incremental: Este modelo mantiene la función anterior y aumenta otra, ya que
puede ser que el primer incremento no hubiera tenido todos los requerimientos que necesitaba
el proyecto.
Características
Sus principales características son:
Ventajas
Se evitan proyectos largos y se entrega “algo de valor” a los usuarios con cierta
frecuencia.
El usuario se involucra más.
Mayor retorno de la inversión.
Disminuyen riesgos
Se puede cambiar los requerimientos pues como nos basamos en una versión a esta la
aumentamos o la modificamos.
17
Reduce costos, si algo sale mal solo volvemos a la antigua versión y comenzamos de
nuevo.
Al usuario se le entrega parte del producto, es decir una versión con la cual el puede
trabajar.
Desventajas
Difícil de evaluar el coste total.
Requiere gestores experimentados.
Difícil de aplicar a sistemas transaccionales que tienden a ser integrados y a operar como
un todo.
Los errores en los requisitos se detectan tarde y su corrección resulta costosa
Necesitan una gran planeación.
Debido a la interacción con los usuarios finales, cuando sea necesaria la
retroalimentación hacia el grupo de desarrollo, utilizar este modelo de desarrollo puede
llevar a avances extremadamente lentos.
No es una aplicación ideal para desarrollos en los que de antemano se sabe que serán
grandes en el consumo de recursos y largos en el tiempo.
Al requerir constantemente la ayuda de los usuarios finales, se agrega un costo extra a
la compañía, pues mientras estos usuarios evalúan el software dejan de ser directamente
productivos para la compañía.
5.1.4. En Espiral
El modelo en Espiral, es un modelo de proceso de software evolutivo que combina la naturaleza iterativa
de construcción de prototipos con los aspectos controlados y sistemáticos del modelo lineal secuencial.
Las actividades de este modelo se conforman en una espiral, en la que cada bucle o iteración representa
un conjunto de actividades.
18
Las actividades no están fijadas a priori, sino que las siguientes se eligen en función del análisis de riesgo,
comenzando por el bucle interior. El software se desarrolla en una serie de versiones incrementales.
Durante las primeras iteraciones, la versión incremental podría ser un modelo en papel o un
prototipo.
Durante las últimas iteraciones, se producen versiones cada vez más completas del sistema
diseñado.
Características
Sus principales características son:
Ventajas
No necesita una definición completa de los requisitos para empezar a funcionar.
Al entregar productos desde el final de la primera iteración es mas fácil validar los
requisitos
El riesgo en general es menor, porque si todo se hace mal , solo se ha perdido el tiempo
y recursos invertidos en una iteración
19
El riesgo de sufrir retrasos es menor ya que al identificar los problemas en etapas
tempranas hay tiempo de subsanarlos,
El análisis del riesgo se hace de forma explícita y clara. Une los mejores elementos de los
restantes modelos.
Reduce riesgos del proyecto
Incorpora objetivos de calidad
Integra el desarrollo con el mantenimiento, etc.
Desventajas
Es difícil evaluar los riesgos
Necesita de la participación continua por parte del cliente
Cuando se subcontrata hay que producir previamente una especificación completa de lo
que se necesita y esto lleva tiempo.
Genera mucho tiempo en el desarrollo del sistema
Modelo costoso requiere experiencia en la identificación de riesgos
5.2.1. RUP
RUP es un proceso para el desarrollo de un proyecto de software que define quien, como, cuando
y que debe hacerse en el proyecto, con 3 características esenciales como: Casos de uso, centrado
n la arquitectura y es iterativo e incremental.
20
Demostrar valor iterativamente.
Elevar el valor de abstracción.
Enfocarse en la calidad.
Objetivos
Los objetivos son:
21
Establecer el ámbito del proyecto y sus limites
Encontrar los casos de uso críticos del sistema, los escenarios básicos.
Mostrar una arquitectura para los escenarios principales.
Estimar el coste en recursos y tiempo en todo el proyecto.
Estimar los riesgos, las fuentes de incertidumbre.
Resultados de la Fase
Los resultados de la fase son:
Documento de visión
Modelo inicial de casos de uso
Glosario inicial
Caso de negocio
Lista de riesgos y plan de contingencia
Plan del proyecto
Modelo de negocio
Objetivos
Los objetivos de esta fase son:
Resultados
Los resultados son los siguientes:
Objetivos
Los objetivos son:
Resultados
Los resultados de la fase de construcción deben ser:
La prueba de la versión beta para validar al nuevo sistema frente a las expectativas del
usuario.
Funcionamiento paralelo con los sistemas legados que están siendo sustituidos por el
nuevo proyecto.
Conversión de las bases de datos operacionales.
Entrenamiento de los usuarios y técnicos de mantenimiento.
Traspaso del producto a los equipos de marketing, distribución y venta.
Objetivos
Los objetivos de esta fase son:
24
Resultados
Los resultados son:
Prototipo operacional
Documentos legales
Caso del negocio completo
Línea base del producto completa y corregida que incluye todos los modelos del sistema
Descripción de la Arquitectura completa y corregida.
Las iteraciones de esta fase irán dirigidas normalmente a conseguir una nueva versión.
Criterios de evaluación
Los criterios de evaluación de esta fase son:
El modelo de desarrollo ágil es un paradigma de Desarrollo de Software que utiliza procesos ágiles
(pequeñas y frecuentes entregas con ciclos rápidos) enfocados en la gente y resultados, se podría
decir que es:
Objetivo
El objetivo de este modelo es desarrollar software rápidamente, respondiendo a los cambios que
puedan surgir a lo largo del proyecto.
Esta metodología propone que un pequeño grupo de personas (10 como máximo) conformado
de los más experimentados y capaces ingenieros de software, trabajen en el desarrollo de
iteraciones (software desarrollado en una unidad de tiempo) con una duración máxima de hasta
4 semanas y desarrollando una serie de “user stories” (Casos de Uso) que al final cumplan con los
requerimientos establecidos en línea directa por los usuarios finales del sistema .
26
Ventajas
Métodos de comunicación más eficaces en este tipo de metodologías.
Es posible identificar y atacar los problemas más críticos y controversiales del proyecto
en las primeras etapas.
El cliente comenzará a ver su sistema lo más pronto posible y verificar que se están
cubriendo sus requerimientos de forma adecuada.
27
Entrega de resultados tangibles en etapas tempranas del proyecto.
Desventajas
Proceso menos controlado y con pocos principios.
No existe contrato tradicional o al menos es bastante flexible.
Grupos pequeños, trabajando en el mismo sitio y no distribuidos adecuadamente.
Menos énfasis en la arquitectura del software, siendo ésta primordial para el éxito del
proyecto de software
6. EVALUACION DE PROCESOS
6.1.1. CMMI
CMMi intenta proveer una guía para los procesos.
Hubo inicialmente algún debate sobre si la ISO 9001 o CMMi podrían ser usadas por los ingenieros
del software para asegurar la calidad. Este debate fue publicado y como resultado la decisión ha
sido tomada que los dos son complementarios y que teniendo certificación ISO 9001 puede
ayudar grandiosamente en altos niveles de madurez del CMMi.
28
El modelo CMMI es un modelo de calidad del software que clasifica las empresas en niveles de
madurez. Estos niveles sirven para conocer la madurez de los procesos que se realizan para
producir software.
6.2.1. CBA-IPI
El CBA-IPI, es un método de evaluación basado en CMM sirve para mejorar internamente los
procesos, fue desarrollado por el Softare Engneer Institute de la Universidad Carnegie Mellon.
6.2.2. CAMPI
Los métodos SCAMPI son grandes torres de evaluación CMMi. Las actividades ejecutadas durante
una evaluación, la distribución de esfuerzo en estas actividades como la atmosfera durante una
evaluación son diferentes cuando son de mejora para la adjudicación de un contrato.
29
Actividades de la ISO/IEC 15939
Las actividades de la ISO/IEC 15939 son:
31
8. BIBLIOGRAFIA
[1] Mario Piattini, Francisco J. Pino y Félix García, “Contribución de los estándares
internacionales a la gestión de procesos software”, Facultad de Ingeniería Electrónica y
Telecomunicaciones, Universidad del Cauca, Colombia
http://www.aemes.org/rpm/descargar.php?volumen=4&nume ro=2&articulo=1
[3] Zavala R. 2000. Diseño de un Sistema de Información Geográfica sobre internet. Tesis de
Maestría en Ciencias de la Computación. Universidad Autónoma
MetropolitanaAzcapotzalco. México, D.F. En prensa,
http://www.angelfire.com/scifi/jzavalar/apuntes/IngSoftware. html#IngSoft
[8] IEEE Standard Association, “IEEE Std 1074-1997 IEEE Standard for Developing Software
Life Cycle Processes - Description”,
http://standards.ieee.org/reading/ieee/std_public/description/s e/1074-1997_desc.html
[9] Jin Lyu, Kyle Hancock y Linus Luotsinen, IEEE Standard 1219-1998 Software Maintenance,
http://classes.cecs.ucf.edu/eel6883/berrios/slides/ch%209%2 0-%20art%202%20-
%20IEEE%20Standard%201219- 1998.ppt
32
[10] “Métricas”, disponible en: http://alarcos.infr.uclm.es/doc/Calidad/capitulo09.ppt
33