You are on page 1of 40

Ingeniera de Software

Universidad Politcnica de Victoria

Unidad Uno 29/abr al 24/may, 2013

MODELOS DE PROCESO

El Software
Instrucciones que cuando se ejecutan proporcionan las caractersticas, funcin y desempeo buscados. Pressman Conjunto de programas, instrucciones y reglas informticas para ejecutar ciertas tareas en una computadora. (RAE) Instructions that tell a computer what to do. Software is the entire set of programs, procedures, and routines associated with the operation of a computer system, including the operating system. Merriam-Webster

El Software
El software se modifica con intelecto, no se manufactura El software no se desgasta, pero s se deteriora! La industria tiende hacia la construccin basada en componentes

Los dominios del software


Software de sistemas Software de aplicacin Software de ingeniera y ciencias Software incrustado Software de lnea de productos Aplicaciones Web Software de Inteligencia Artificial

Ingeniera de Software
La aplicacin de un enfoque sistemtico, disciplinado y cuantificable al desarrollo, operacin y mantenimiento de software IEEE

Esto es, la aplicacin de la ingeniera al software


Incluye un proceso, mtodos y herramientas para administrar y hacer ingeniera con el software

Ingeniera de Software

Herramientas Mtodos Proceso Compromiso con la calidad

Compromiso con la calidad


Cultura laboral. Es la base sobre la cual se apoya la Ingeniera de Software
Mejora continua, mejor enfoque de la IS Calidad Total Six Sigma

Capa de proceso
Estructuras esenciales para la gestin del proyecto y realizar un trabajo eficaz Proceso = conjunto de acciones, actividades y tareas para lograr un objetivo Una actividad define un objetivo amplio
Ejemplo: Comunicacin con los participantes

Una accin es un conjunto de tareas y cada tarea busca un objetivo puntual, lo que produce un resultado tangible

El Proceso del software


Actividades estructurales
Comunicacin Planeacin Modelado Construccin despliegue

Actividades sombrilla

Seguimiento y control

Administracin del riesgo


Aseguramiento de calidad Revisiones tcnicas

Mtodos
Proporcionan la experiencia tcnica para elaborar el software Conjunto de tareas como: Comunicacin, anlisis de requerimientos, modelar el diseo, construir el programa, pruebas, etc. Experiencias basada en principios y reflejada en modelos de proceso

Herramientas
Apoyo para el proceso y los mtodos, generalmente software CASE (computer-aided software engineering) es un conjunto de herramientas de apoyo integradas en un solo sistema.
Generar diagramas Generador de interfaces Repositorio de informacin Gestin de requerimientos

Ingeniera de Software

Herramientas Mtodos Proceso Compromiso con la calidad

Modelos de Proceso (prescriptivos)


Modelo de Cascada Modelo de proceso incremental Modelo de proceso evolutivo
Prototipos Espiral

Modelos concurrentes

Modelos de proceso especializado


Desarrollo basado en componentes Modelo de mtodos formales Desarrollo de software orientado a aspectos El proceso unificado

Algunas consideraciones
Las 5 actividades estructurales son consideradas en todos los modelos de software Cada modelo propone un flujo distinto y hace nfasis en diferentes actividades Cada actividad implica un conjunto de acciones; y cada accin un conjunto de tareas

Flujo del proceso


Lineal Iterativo Evolutivo Paralelo

Comunicacin

Planeacin

Flujo Lineal

Modelado

Construccin

Despliegue

Flujo Iterativo

Comun icacin

Planea cin

Model ado

Constr uccin

Despli egue

Flujo evolutivo
planeacin

comunicacin

modelado

Incremento obtenido

despliegue

construccin

Flujo paralelo
comunicacin planeacin

modelado

tiempo

construccin

despliegue

Modelo de Cascada (ciclo de vida clsico)


Comunicacin
Inicio del proyecto, recabar requerimientos

Planeacin
Estimacin, programacin, seguimiento

Modelado
Anlisis, diseo

Construccin
Cdigo, pruebas

Despliegue
Entrega, asistencia, retroalimentacin

Modelo Incremental
Ejecuta una serie de avances (incrementos) que progresivamente dan ms funcionalidad al cliente El 1er incremento entrega una funcionalidad bsica, cumple requerimientos bsicos y esenciales Permite una evaluacin rpida por el cliente, planear el siguiente incremento y entregarle as un mejor producto

Modelo Incremental
comunicacin planeacin modelado construccin despliegue
Funcionalidad y caractersticas del software

Incremento # n

Incremento #2
Entrega del 2 incremento

Incremento #1
Entrega del 1er incremento

Calendario del proyecto (tiempo)

Modelo incremental
cmo impacta en el costo y tiempo de entrega? Qu fortalezas y debilidades encuentras al modelo? cundo es til este modelo?

Modelos Evolutivos
Son iterativos Permiten desarrollar versiones cada vez ms completas del software Dos modelos comunes:
Hacer prototipos El modelo espiral

Evolutivos: Prototipos
Plan rpido

Comunicacin

Modelado Diseo Rpido

Despliegue: entrega y retroalimentacin

Construccin del prototipo

Evolutivos: Prototipos
Mejoran la comprensin de lo que hay que hacer cuando los requerimientos no estn claros (los detalles) Prototipo terminado
a) Se desecha y se inicia el software considerando lo mejor del prototipo b) Se afina el prototipo hasta culminar en un software real totalmente funcional

Evolutivos: Prototipos
Contras del modelo: Suele dejarse de lado la calidad por demostrar capacidad funcional
Otros aspectos como capacidad de mantenimiento a largo plazo o la eficiencia de los algoritmos, tambin

Evolutivos: El modelo espiral


Propuesto en 1988, mejorado en 1998 Potencial de desarrollar versiones cada vez ms completas Es impulsado por el riesgo para guiar la ingeniera En cada ciclo, la definicin del sistema crece y el riesgo disminuye

Evolutivos: El modelo espiral

Modelo Espiral: Aspectos a considerar


Se adapta para usarse en todo el ciclo de vida del software. Se apoya en prototipos El riesgo y costo se revisa y modifica en cada ciclo. Si debemos apegarnos a presupuesto, el modelo se vuelve un problema Enfoque realista para desarrollo de software a gran escala Demanda mucha experiencia en evaluacin de riesgos. No es la panacea del desarrollo

Modelo espiral (original)


Fuente: A spiral model of software development and enhancement. Boehm, Barry. 1988

Modelos concurrentes
Este modelo permite representar cualquiera de los modelos a manera de un tablero de indicadores (dashboard) Permite apreciar el estado de las diferentes actividades estructurales, las cuales cambian de estado dinmicamente

Un elemento del modelo de proceso concurrente


Actividad de modelado

En desarrollo

Cambios en espera En evaluacin

En revisin

Actividades: Anlisis Diseo modelado

Alcance mnimo

terminado

Modelos concurrentes
Define una serie de eventos que desencadenan transiciones de un estado a otro para c/u de las actividades Cada actividad/accin/tarea existe simultneamente junto a otras, a manera de una red de actividades+estados

Evidencias de aprendizaje
UNIDAD EVIDENCIA

UNO

EC1: Cuestionario acerca de las caractersticas de los modelos de software


ED1: Exposicin de casos. Indicando el modelo a usar y la razn EP1: Elaboracin de la matriz de habilidades de los recursos humanos del proyecto EP2: Resolucin de un problema de estimacin de costos aplicando COCOMO

DOS

TRES

EP1: Especificacin del plan del proyecto con programacin de actividades EP2: Resolucin de problemas con la tcnica de caja blanca

CUATRO EP1: desarrollo de diagramas de clases del proyecto EP2: desarrollar los diagramas de casos de uso y de interaccin

bibliografa
Ingeniera del Software. Un enfoque prctico. Pressman, Roger S. McGraw-Hill. 7 edicin. UML. Fontanela, Carlos. Alfa Omega

Contacto
Ing. Julio Csar Balderas Cepeda, MTI
E-mail: juliocesar.upv@gmail.com Skype: jcbalderas1 Twitter: balderasjc

El material del curso Ingeniera de Software por Ing. Julio Csar Balderas Cepeda se encuentra bajo una Licencia Creative Commons Atribucin-NoComercial-CompartirIgual 3.0 Unported.

You might also like