proceso de desarrollo de software

33
Sistemas de Sistemas de Información: Metodos, Información: Metodos, técnicas y técnicas y metodologías metodologías

Upload: duberlisg

Post on 07-Jun-2015

2.303 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Proceso de desarrollo de software

Sistemas de Información: Sistemas de Información: Metodos, técnicas y Metodos, técnicas y

metodologíasmetodologías

Page 2: Proceso de desarrollo de software

Proceso de Desarrollo de Proceso de Desarrollo de SoftwareSoftware

Page 3: Proceso de desarrollo de software

ProcesoProceso

Un proceso define quien hace que cuando Un proceso define quien hace que cuando y como para alcanzar cierto objetivoy como para alcanzar cierto objetivo

El éxito de una empresa depende en gran El éxito de una empresa depende en gran medida de la definición y seguimiento de medida de la definición y seguimiento de sus procesos.sus procesos.

Los sistemas software pueden llegar a ser Los sistemas software pueden llegar a ser extremadamente complejosextremadamente complejos

Por lo tanto es necesario contar con Por lo tanto es necesario contar con modelos de proceso y tecnologías modelos de proceso y tecnologías adecuadas.adecuadas.

Page 4: Proceso de desarrollo de software

Modelo de ProcesoModelo de Proceso

Define como solucionar la problemáticaDefine como solucionar la problemática Para desarrollar SW se requiere resolver Para desarrollar SW se requiere resolver

ciertas fases de su proceso(ciclo de vida)ciertas fases de su proceso(ciclo de vida) Aspectos a considerar:Aspectos a considerar:

Conjunto de personasConjunto de personas Estructuras organizacionalesEstructuras organizacionales ReglasReglas PoliticasPoliticas ActividadesActividades Componentes SWComponentes SW Metodologías y HerramientasMetodologías y Herramientas

Page 5: Proceso de desarrollo de software

Modelo de procesoModelo de proceso

El modelo depende de un tipo de El modelo depende de un tipo de proyectoproyectoPrimer proyecto de su tipoPrimer proyecto de su tipoSegundo proyecto de su tipoSegundo proyecto de su tipoVariación de un proyectoVariación de un proyectoProyecto de reescritura de legado(legacy)Proyecto de reescritura de legado(legacy)Proyecto de creacion de software Proyecto de creacion de software

reutilizablereutilizableProyecto de mejora de sistema o Proyecto de mejora de sistema o

mantenimientomantenimiento

Page 6: Proceso de desarrollo de software

Modelo de Proceso(3)Modelo de Proceso(3)

Componentes de un modeloComponentes de un modeloArquitecturaArquitecturaActividadActividadMetodosMetodosEstrategiaEstrategiaHerramientasHerramientas

Page 7: Proceso de desarrollo de software

ArquitecturaArquitectura

Una arquitectura de SW define la Una arquitectura de SW define la estructura general de un sistemaestructura general de un sistema

Ejemplos:Ejemplos:Transformacion en loteTransformacion en loteTransformacion continuaTransformacion continuaSistemas interactivosSistemas interactivosSimulacion dinamicaSimulacion dinamicaSistemas de tiempo realSistemas de tiempo realAdministracion de transaccionAdministracion de transaccion

Page 8: Proceso de desarrollo de software

ActividadActividad

Una actividad es una unidad o paso Una actividad es una unidad o paso básico de un procesobásico de un proceso

Son las pasos necesarios para lograr Son las pasos necesarios para lograr la metala meta

Las actividades básicas se conocen Las actividades básicas se conocen como el ciclo de vida del softwarecomo el ciclo de vida del software

Page 9: Proceso de desarrollo de software

Actividad(1)Actividad(1)

RequisitosRequisitos Sirve para especificar los aspectos funcionalesSirve para especificar los aspectos funcionales Modelo de requisitosModelo de requisitos

AnalisisAnalisis Permite dar una estructura robusta y Permite dar una estructura robusta y

extensible extensible DiseñoDiseño

Adoptar y refinar una arquitectura y adaptarla Adoptar y refinar una arquitectura y adaptarla al ambienteal ambiente

Page 10: Proceso de desarrollo de software

Actividad(2)Actividad(2)

ImplementacionImplementacion Codificar el sistemaCodificar el sistema

IntegracionIntegracion Combinar componentesCombinar componentes

PruebasPruebas Validar y verificar el sistemaValidar y verificar el sistema

DocumentacionDocumentacion Describir el sistemaDescribir el sistema

MantenimientoMantenimiento Extender la funcionalidad del sistemaExtender la funcionalidad del sistema

Page 11: Proceso de desarrollo de software

Métodos y MetodologíasMétodos y Metodologías

Los métodos definen las reglas para Los métodos definen las reglas para las transformaciones internas de las las transformaciones internas de las actividadesactividades

Las metodologías definen un Las metodologías definen un conjunto de métodos.conjunto de métodos.

Método es un procedimiento que Método es un procedimiento que define tareas o acciones a realizardefine tareas o acciones a realizar

Page 12: Proceso de desarrollo de software

Métodos y Metodologías(1)Métodos y Metodologías(1)

Existe una gran variedad de métodos Existe una gran variedad de métodos y metodologías y metodologías

Metodologias:Metodologias:Estructuradas o tradicionalesEstructuradas o tradicionalesOrientadas a objetosOrientadas a objetos

Page 13: Proceso de desarrollo de software

Métodos y Metodologías(2)Métodos y Metodologías(2)

EstructuradasEstructuradasDescomposición funcionalDescomposición funcionalDefinir en forma de funciones, y Definir en forma de funciones, y

estableciendo los datos de entrada y estableciendo los datos de entrada y salidasalida

HerramientasHerramientasDiagramas de flujos de datosDiagramas de flujos de datosDiagramas de transición de estadosDiagramas de transición de estadosDiagramas Entidad-RelaciónDiagramas Entidad-Relación

Page 14: Proceso de desarrollo de software

Métodos y Metodologías(3)Métodos y Metodologías(3)

Orientadas a objetosOrientadas a objetos Modelado de un sistema en términos de objetosModelado de un sistema en términos de objetos Se identifican objetos, para luego especificar su Se identifican objetos, para luego especificar su

comportamientocomportamiento Hay una gran variedadHay una gran variedad HerramientasHerramientas

Diagramas de clasesDiagramas de clases Diagramas de casos de usoDiagramas de casos de uso Diagramas de transición/estadoDiagramas de transición/estado Diagrama de secuenciaDiagrama de secuencia Diagrama de colaboracionDiagrama de colaboracion

Page 15: Proceso de desarrollo de software

Métodos y Metodologías(4)Métodos y Metodologías(4)

Son distintos actividad, metodo y Son distintos actividad, metodo y notacionnotacion

Actividad: RequisitosActividad: RequisitosMetodos de requisitos:Metodos de requisitos:

OBAOBAFUSIONFUSIONUPUP

NotaciónNotaciónCaso de usoCaso de uso

Page 16: Proceso de desarrollo de software

EstrategiasEstrategias

Un plan para lograr un objetivoUn plan para lograr un objetivoAfectan a: La arquitectura del Afectan a: La arquitectura del

sistema, Orden de las actividades, sistema, Orden de las actividades, Metodologías a usarse.Metodologías a usarse.

Decisiones sobre: Decisiones sobre: Tipo de proyectoTipo de proyectoTecnologia Tecnologia HerramientasHerramientas

Page 17: Proceso de desarrollo de software

Estrategias(1)Estrategias(1)

Estrategias aceptadas actualmente:Estrategias aceptadas actualmente:PrototiposPrototipos

Versión preliminar intencionalmente Versión preliminar intencionalmente incompleta o reducida del sistemaincompleta o reducida del sistema

ReutilizaciónReutilizaciónExplotación de componentes desarrolladosExplotación de componentes desarrollados

Page 18: Proceso de desarrollo de software

HerramientasHerramientas

Aplicaciones que apoyan la Aplicaciones que apoyan la administracion del proceso de administracion del proceso de software.software.

Herramientas CASEHerramientas CASEEditores de textoEditores de textoDiagramadoresDiagramadoresetcetc

Page 19: Proceso de desarrollo de software

MODELOS DE MODELOS DE DESARROLLODESARROLLO

Page 20: Proceso de desarrollo de software

Modelos ClásicosModelos Clásicos

Creencias u opiniones de personas Creencias u opiniones de personas involucradas en el proyectoinvolucradas en el proyecto

Son:Son: Comprender el problema antes de desarrollarComprender el problema antes de desarrollar Proceso debe dar un resultado predecibleProceso debe dar un resultado predecible Planear y calcular el proceso con gran Planear y calcular el proceso con gran

precisiónprecisión Evaluar y administrar el riesgoEvaluar y administrar el riesgo Entrega en etapas intermedias aumenta la Entrega en etapas intermedias aumenta la

confianza de un buen resultadoconfianza de un buen resultado

Page 21: Proceso de desarrollo de software

Modelos Clásicos(1)Modelos Clásicos(1)

CascadaCascada Secuencia de actividadesSecuencia de actividades Seguir hacia puntos de revisión bien definidos Seguir hacia puntos de revisión bien definidos

mediante reglas calendarizadasmediante reglas calendarizadas No hay etapa de documentación explicitaNo hay etapa de documentación explicita

Especificación de requisitosEspecificación de requisitosAnalisis Analisis DiseñoDiseño ImplentacionImplentacionPruebasPruebas IntegracionIntegracion

Page 22: Proceso de desarrollo de software

Modelos Clásicos(2)Modelos Clásicos(2)

IncrementalIncrementalEs un desarrollo inicial de la arquitectura Es un desarrollo inicial de la arquitectura

completa del sistema seguido de completa del sistema seguido de incrementos o versiones parcialesincrementos o versiones parciales

Cada incremento tiene su propio cicloCada incremento tiene su propio cicloCada incremento agrega una Cada incremento agrega una

funcionalidadfuncionalidad

Page 23: Proceso de desarrollo de software

Modelos Clásicos(3)Modelos Clásicos(3)

EvolucionarioEvolucionarioExtensión del incrementalExtensión del incrementalLos incrementos se hacen de manera Los incrementos se hacen de manera

secuencial en vez de paralelasecuencial en vez de paralelaEl sistema va evolucionando según se El sistema va evolucionando según se

entrega cada incrementoentrega cada incrementoPrimeros requerimientos dictan el Primeros requerimientos dictan el

incremento inicialincremento inicialSe considera las deltas de especificación Se considera las deltas de especificación

de requerimientosde requerimientos

Page 24: Proceso de desarrollo de software

Modelos Clásicos(4)Modelos Clásicos(4)

EspiralEspiralExtensión del modelo de cascadaExtensión del modelo de cascadaSe basa en la estrategia para reducir el Se basa en la estrategia para reducir el

riesgoriesgoEnfatiza en ciclos de trabajoEnfatiza en ciclos de trabajoCada uno de los cuales estudia el riesgo Cada uno de los cuales estudia el riesgo

antes de seguir al siguienteantes de seguir al siguienteIncorpora al igual que los anteriores una Incorpora al igual que los anteriores una

estrategia de uso de prototiposestrategia de uso de prototipos

Page 25: Proceso de desarrollo de software

Modelos RecientesModelos Recientes

Ganar-GanarGanar-GanarExtiende el modelo de espiralExtiende el modelo de espiralConsidera condiciones de gananciaConsidera condiciones de gananciaCrea un plan para alcanzar situaciones Crea un plan para alcanzar situaciones

ganadorasganadorasCicloCiclo

Objetivos, restricciones, alternativasObjetivos, restricciones, alternativasEvaluar alternativasEvaluar alternativasElaborar definición del proceso y productoElaborar definición del proceso y productoPlanear el siguiente cicloPlanear el siguiente ciclo

Page 26: Proceso de desarrollo de software

Modelos Recientes(1)Modelos Recientes(1)

Programación extrema(XP)Programación extrema(XP)Toma los principios y practicas de Toma los principios y practicas de

programación aceptadas y las enfatiza a programación aceptadas y las enfatiza a mayor gradomayor gradoRefactoringRefactoringProgramacion por paresProgramacion por paresEvaluación permanenteEvaluación permanenteEntregas en plazos cortosEntregas en plazos cortos

Page 27: Proceso de desarrollo de software

Modelos Recientes(2)Modelos Recientes(2)

Proceso UnificadoProceso UnificadoBasado en casos de usoBasado en casos de usoCentrado en la arquitecturaCentrado en la arquitecturaIterativo e incrementalIterativo e incrementalInvolucraInvolucra

CiclosCiclosFasesFasesFlujos de trabajoFlujos de trabajoMitigaciónMitigaciónControl de calidadControl de calidad

Page 28: Proceso de desarrollo de software

Calidad de Software y modelos Calidad de Software y modelos de madurez del procesode madurez del proceso

Calidad directamente relacionado Calidad directamente relacionado con su procesocon su proceso

Factores para obtener productos de Factores para obtener productos de calidadcalidadCliente o usuarioCliente o usuarioDesarrolladorDesarrolladorProcesoProcesoProductoProducto

Page 29: Proceso de desarrollo de software

Modelos de madurez del Modelos de madurez del ProcesoProceso

Modelo de Madurez de Modelo de Madurez de Capacidades(CMM)Capacidades(CMM)Evaluar los procesos en sus niveles de Evaluar los procesos en sus niveles de

madurezmadurezSe evalua el area de proceso claveSe evalua el area de proceso claveNivelesNiveles

InicialInicialRepetibleRepetibleDefinidoDefinidoAdministradoAdministradoOptimizadoOptimizado

Page 30: Proceso de desarrollo de software

Modelos de madurez del Modelos de madurez del ProcesoProceso

Organizacion Internacional De la Organizacion Internacional De la Estandarizacion(ISO)Estandarizacion(ISO)ISO 9000ISO 9000

Normas relacionadas con la administracion Normas relacionadas con la administracion de la calidad de productos y serviciosde la calidad de productos y servicios

En SW 9000-1En SW 9000-1ISO 12207ISO 12207

Calidad en los procesos del ciclo de vidaCalidad en los procesos del ciclo de vida

Page 31: Proceso de desarrollo de software

Modelos de madurez del Modelos de madurez del ProcesoProceso

Modelo de Madurez de Ingenieria de Modelo de Madurez de Ingenieria de Desempeño(PEMM)Desempeño(PEMM) Evaluar niveles de integracion, aplicacion, Evaluar niveles de integracion, aplicacion,

ejecucion y diseno de la ingenieria de ejecucion y diseno de la ingenieria de desempeñodesempeño

Tiene cinco nivelesTiene cinco nivelesPracticas sin coordinacionPracticas sin coordinacionDesempeño en subprocesosDesempeño en subprocesosCompleta definicion del procesoCompleta definicion del procesoExito de integracion y pruebaExito de integracion y pruebaOptimizacion de procesosOptimizacion de procesos

Page 32: Proceso de desarrollo de software

Modelos de madurez del Modelos de madurez del ProcesoProceso

Proceso de Software Personal(PSP)Proceso de Software Personal(PSP) Esta basado en la creencia de que la calidad Esta basado en la creencia de que la calidad

del software depende del trabajo de cada uno del software depende del trabajo de cada uno de los ingenieros.de los ingenieros.

Por lo cual el proceso Controla y Maneja el Por lo cual el proceso Controla y Maneja el trabajo de estostrabajo de estos

Instrumentacion: Evolucion del PSPInstrumentacion: Evolucion del PSP1. medida personal1. medida personal2. Planeacion personal2. Planeacion personal3. Calidad de personal3. Calidad de personal4. Proceso ciclico4. Proceso ciclico

Page 33: Proceso de desarrollo de software

Modelos de madurez del Modelos de madurez del ProcesoProceso

Proceso de Software de Equipos(TSP)Proceso de Software de Equipos(TSP)Extiende el modelo PSP e integra los Extiende el modelo PSP e integra los

aspectos de desarrollo de SW realizados aspectos de desarrollo de SW realizados por equipos de trabajo. por equipos de trabajo.

Define asignacion y control de tareas a Define asignacion y control de tareas a miembros del equipomiembros del equipo