Procesos De Ingeniería Del Software Univ. Cantabria - Fac. De Ciencias

Transcription

INGENIERÍA DEL SOFTWARE ITema 2Procesos de Ingeniería del SoftwareUniv. Cantabria – Fac. de CienciasFrancisco RuizObjetivos Comprender las relaciones entre los conceptos de proceso software, ciclo de vida del software ymetodología.Conocer las características de los procesos softwarey cuales pueden ser dichos procesos.Conocer los principales ciclos de vida del software.Comprender la finalidad y características de unametodología software.Conocer los principales tipos de metodologíassoftware.Francisco Ruiz, Michael González Harbour - IS12.21

Contenido Procesos Software Naturaleza y ElementosRelación con otros Tipos de Procesos Concepto de Ciclo de VidaEstándar ISO 12207. Procesos Principales.Procesos Secundarios. En CascadaIncrementalEn EspiralPrototipadoReutilizaciónSíntesis AutomáticaComparativa Modelo de AgrupamientoModelo FuenteCiclos de Vida Tradicionales Ciclos de Vida para Sistemas OO Modelo RemolinoModelo Pinball Definición y ObjetivosElementosCaracterísticas DeseablesConceptos RelacionadosImpacto en el EntornoEvoluciónMetodologías de Desarrollo deSoftware Desarrollo Convencional Desarrollo Estructurado Desarrollo OOTipos de Metodologías Estructuradas Orientadas a Objetos (OO)Ágiles Orientadas a Procesos Orientadas a DatosEjemplosFrancisco Ruiz, Michael González Harbour - IS12.3Bibliografía Básica Caps. 2 y 3 del libro de Piattini (2007). ISO/IEC 12207 Information Technology / Software LifeCycle Processes. 1995. Disponible versión española (norma UNE 71044). Complementaria Charla de Antonio Vallecillo sobre “Desarrollo de softwaredirigido por modelos: ¿quién quiere escribir código?”. Caps. 2 y 3 del libro de Pressman (2005). Caps. 2 y 4 del libro de Sommerville (2005). Cap. 2 del libro de Pfleeger (2002).Francisco Ruiz, Michael González Harbour - IS12.42

Procesos SoftwareNaturaleza y Elementos Un Proceso esUn conjunto de actividades interrelacionadas quetransforman entradas en salidas(ISO 12207/UNE 77104) Un Proceso Software (PS) esUn conjunto coherente de políticas, estructurasorganizacionales, tecnologías, procedimientos yartefactos que son necesarios para concebir,desarrollar, instalar y mantener un productosoftware.(Fugetta, 2000)Francisco Ruiz, Michael González Harbour - IS12.5Procesos SoftwareNaturaleza y ElementosTipos de elementos para modelar/representar un Proceso SoftwareTiene subTiene subTiene entradaActividadProductoTiene intermedioTiene ObedeceTiene subRolActividadFrancisco Ruiz, Michael González Harbour - IS1NormaRecursoProductoOrganización2.63

Procesos SoftwareTipos deprocesos:FocoPropósitoRelaciones con otros Tipos de TOSRELACIONESTransformar y ensamblarAlcanzar lasProcesar y transmitirmateriales ycondiciones quedatos estructuradoscomponentes en otrossatisfacen lasy no estructurados,componentes ynecesidades de losy conocimientoproductos finales,participantes, clientes ousando recursosusuariosCaracterísticasTradiciones de laingeniería industrialTradiciones de laingenieríainformáticaAccionesEnsamblar, Transformar,Transportar, Almacenar,InspeccionarEnviar, Invocar,Grabar, Recuperar,Consultar, Clasificar,Francisco Ruiz, Michael González Harbour - IS1Basados en estructurasde comunicación ycoordinación humanasencontradas en todoslos lenguajes yculturasSolicitar, Prometer,Ofrecer, Rechazar,Proponer, Cancelar,Medir2.7Concepto de Ciclo de VidaCONCEPTO DE CICLO DE VIDA“Una aproximación lógica a la adquisición, el suministro,el desarrollo, la explotación y el mantenimiento del software”IEEE 1074“Un marco de referencia que contiene los procesos, las actividadesy las tareas involucradas en el desarrollo, la explotación y elmantenimiento de un producto de software, abarcando la vida delsistema desde la definición de los requisitos hasta la finalizaciónde su uso”ISO 12207Francisco Ruiz, Michael González Harbour - IS12.84

Estándar ISO 12207 “Establece un marco de referencia común para losprocesos del ciclo de vida del software, con unaterminología bien definida, que puede serreferenciada por la industria del software”. Define los procesos, actividades (que forman cadaproceso) y tareas (que constituyen cada actividad)presentes en la adquisición, suministro, desarrollo, operacióny mantenimiento del software.Según esta norma, un proceso es un conjunto deactividades interrelacionadas que transforman entradas ensalidas. Un proceso define quién, qué, cuándo, y cómo, paraalcanzar un determinado objetivo.Francisco Ruiz, Michael González Harbour - IS12.9Estándar ISO 12207 Original: ISO/IEC 12207: Information Technology / Software LifeCycle Processes. 1995. Versión en español: AENOR Norma UNE 71044: Tecnología de la información /Procesos del ciclo de vida del software. 1999. Actualización y ampliación integrando el ciclo de vidadel software en el ciclo de vida de sistemas (engeneral): ISO/IEC FDIS 12207: Systems and software engineering— Software life cycle processes. 2007.Francisco Ruiz, Michael González Harbour - IS12.105

Estándar ISO esmetalespreciosospreciososEmisiones gases deEmisiones gases deescape, vehículos aescape, vehículos amotormotorCascos de protecciónCascos de protecciónpara usuarios depara usuarios osyyllantasdemotocicletasllantas de motocicletas AENOR motocicletasmotocicletasIEEE – Institute of Electrical and Electronics EngineersFrancisco Ruiz, Michael González Harbour - IS12.11Estándar ISO 12207PROCESOS PRINCIPALESProcesosdelCiclodeVidaPROCESOS DE N DE CONFIGURACIÓNDESARROLLOASEGURAMIENTO DE ACIÓNREVISIÓN CONJUNTAPROC. ORGANIZACIONALESAUDITORÍAGESTIÓNRESOLUCIÓN DE PROBLEMASINFRAESTRUCTURAMEJORARECURSOS HUMANOSUSABILIDADEVALUACIÓN DE PRODUCTOGESTIÓN DE ACTIVOSGEST. PROG. REUTILIZACIÓNINGENIERÍA DE DOMINIOFrancisco Ruiz, Michael González Harbour - IS1PROCESODEADAPTACIÓN2.126

ISO 12207: Procesos PrincipalesPROCESOS PRINCIPALESADQUISICIÓNSUMINISTRO Proceso de Adquisición Actividades y tareas que el te o usuario realiza para adquirir unsistema o producto software. Proceso de Suministro Actividades y tareas que efectúa elsuministrador. Proporciona un producto al clienteFrancisco Ruiz, Michael González Harbour - IS1ISO 12207: Procesos Principales Proceso de Desarrollo: Captura de RequisitosAnálisis de Requisitos del SistemaDiseño Arquitectónico del SistemaAnálisis de los Requisitos del SoftwareDiseño de la Arquitectura del SoftwareDiseño del SoftwareConstrucción del SoftwareIntegración del SoftwarePrueba del SoftwareIntegración del SistemaPrueba del SistemaInstalación del SoftwareFrancisco Ruiz, Michael González Harbour - IS12.13PROCESOS CIÓNMANTENIMIENTO2.147

ISO 12207: Procesos PrincipalesPROCESOS PRINCIPALESADQUISICIÓNSUMINISTRO DESARROLLOProceso de Explotación Incluye la operación del producto softwareEXPLOTACIÓNMANTENIMIENTOen su entorno final y el soporte operativo alos clientes. Proceso de Mantenimiento Incluye la modificación de un sistema o producto softwaredespués de la entrega para: Corregir los fallos (correctivo) Mejorar el rendimiento u otros atributos (de mejora) Adaptarlo a un entorno modificado (adaptativo). Esta modificación(o retirada) debe hacerse preservandoFrancisco Ruiz, Michael González Harbour - IS12.15la integridad.ISO 12207: Procesos de SoportePROCESOS DE SOPORTEDOCUMENTACIÓNGESTIÓN DE LA CONFIGURACIÓN Proceso de Documentación: Desarrollo yMantenimiento de la información softwareregistrada por un proceso.ASEGURAMIENTO DE CALIDADVERIFICACIÓNVALIDACIÓNREVISIÓN CONJUNTAAUDITORÍAProceso de Gestión de la Configuración:Establecer y mantener de la integridad detodos los productos de trabajo de un procesoo proyecto y hacerlos disponibles para laspartes involucradas.GEST. RESOLUC. PROBLEMASUSABILIDADEVALUACIÓN DE PRODUCTOProceso de Aseguramiento de la Calidad: Asegura que los productosde trabajo y los procesos cumplen las previsiones y planespredefinidos.Francisco Ruiz, Michael González Harbour - IS12.168

ISO 12207: Procesos de SoportePROCESOS DE SOPORTEDOCUMENTACIÓNGESTIÓN DE LA CONFIGURACIÓNASEGURAMIENTO DE CALIDAD Proceso de Verificación: Confirmación deque todos los productos de trabajo y/o serviciossoftware de un proceso o proyecto reflejan de formaapropiada los requisitos especificados. ¿Estamos construyendo correctamente el producto?VERIFICACIÓNVALIDACIÓNREVISIÓN CONJUNTAAUDITORÍAGEST. RESOLUC. PROBLEMASUSABILIDADEVALUACIÓN DE PRODUCTO Proceso de Validación: Sirve para determinar si elsistema o software final cumple con los requisitos previstos para su uso. ¿Estamos construyendo el producto correcto?Proceso de Revisión Conjunta: Entendimiento común entre las diferentespartes involucradas sobre el progreso respecto de los objetivos y sobre loque debe hacerse para ayudar a asegurar el desarrollo de un producto quesatisface a las partes involucradas.Francisco Ruiz, Michael González Harbour - IS1ISO 12207: Procesos de Soporte Proceso de Auditoría: Permite determinar,de forma independiente, la conformidad delos productos y procesos seleccionados conlos requisitos, planes y acuerdos.2.17PROCESOS DE SOPORTEDOCUMENTACIÓNGESTIÓN DE LA CONFIGURACIÓNASEGURAMIENTO DE CALIDADVERIFICACIÓNVALIDACIÓNREVISIÓN CONJUNTAAUDITORÍAGEST. RESOLUC. PROBLEMASUSABILIDAD Proceso de Resolución de Problemas: Asegurarque todos los problemas descubiertos se analizan yresuelven. Proceso de Usabilidad: Permitir la optimización del soporte y de laformación, la mejora de la productividad, calidad y condiciones de trabajo delas personas y la reducción de probabilidad de rechazo del sistema Proceso de Evaluación de Productos: Aseguramiento mediante elexamen y la medición sistemáticos, que un producto satisface lasnecesidades implícitas y explícitas de los usuariosFrancisco Ruiz, Michael González Harbour - IS1EVALUACIÓN DE PRODUCTO2.189

PROCESOS ORGANIZACIONALESISO 12207: Procesos Organizacionales Proceso de Gestión: Organizar, supervisar,y controlar el inicio y el desempeño de cualquierproceso para conseguir sus objetivos de acuerdoa los objetivos de negocio de la S HUMANOSGESTIÓN DE ACTIVOSGEST. PROG. REUTILIZACIÓNINGENIERÍA DE DOMINIO Proceso de Infraestructura: Mantener unainfraestructura fiable y estable necesaria paracualquier otro proceso. Proceso de Mejora: Establecer, evaluar, medir, control y mejorar losprocesos del ciclo de vida del software. Proceso de Recursos Humanos: Proporcionar a la organización losrecursos humanos adecuados y mantener su competencia, consistentecon las necesidades de la empresaFrancisco Ruiz, Michael González Harbour - IS1ISO 12207: Procesos Organizacionales2.19PROCESOS ORGANIZACIONALESGESTIÓNINFRAESTRUCTURA Proceso de Gestión de Activos: Gestionar lavida de los activos reutilizables desde su concepciónhasta su retirada.MEJORARECURSOS HUMANOSGESTIÓN DE ACTIVOSGEST. PROG. REUTILIZACIÓNINGENIERÍA DE DOMINIO Proceso de Gestión del Programa deReutilización: Planificar, gestionar y controlar el programa dereutilización de una organización y explotar de forma sistemática lasoportunidades de reutilización. Proceso de Ingeniería del Dominio: Desarrollar y mantener modelosde dominio, arquitecturas de dominio y activos para el dominio.Francisco Ruiz, Michael González Harbour - IS12.2010

ISO 12207: Proceso de Adaptaciónadecuar anuestraOrganizacióny nuestrosProyectosFrancisco Ruiz, Michael González Harbour - IS12.21Estándar ISO 12207 Relacionesentreprocesos yrolesparticipantesFrancisco Ruiz, Michael González Harbour - IS12.2211

ISO 12207: Integración con SistemasFrancisco Ruiz, Michael González Harbour - IS12.23Ciclos de Vida Tradicionales Existen diferentes modelos de ciclo de vida delsoftware que han intentado resolver el problema decrear software. El auge de cada uno está asociado a un momento en eltiempo, unas tecnologías determinadas y una ciertasmetodologías asociadas. Algunos de los más conocidos son: En Cascada Incremental En Espiral PrototipadoFrancisco Ruiz, Michael González Harbour - IS12.2412

Modelo en CascadaFases Originalmentepropuesto por Royce en1970 y posteriormenterefinado por diversosautores Conocido también comociclo de vida lineal obásicoFrancisco Ruiz, Michael González Harbour - IS12.25Modelo en Cascada Características: Cada fase empieza cuando se ha terminado la faseanterior Para pasar de una fase a otra es necesario conseguirtodos los objetivos de la etapa previa Ayuda a prevenir que se sobrepasen las fechas deentrega y los costes esperados Al final de cada fase el personal técnico y los usuariostienen la oportunidad de revisar el progreso delproyectoFrancisco Ruiz, Michael González Harbour - IS12.2613

Modelo en Cascada Críticas:' No refleja realmente el proceso de desarrollo del software' Se tarda mucho tiempo en pasar por todo el ciclo' Acentúa el fracaso de la industria del software en sucomunicación con el usuario final' Se convierten las especificaciones en implementaciones demanera informal' Las revisiones de proyectos de gran complejidad son muydifíciles' Impone una estructura de gestión de proyectosFrancisco Ruiz, Michael González Harbour - IS12.27Modelo Incremental AnálisisSe aplican secuencias lineales deforma escalonada mientrasprogresa el wareIncremento 1DiseñoPreliminar.DiseñoDetalladoCodificación yPruebasIncremento 2Explotación yMantenimientoDiseñoDetalladoCodificación yPruebasIncremento nFrancisco Ruiz, Michael González Harbour - IS1Explotación yMantenimiento2.2814

Modelo Incremental Características: Corrige la necesidad de una secuencia no lineal de pasosde desarrollo El sistema se crea añadiendo componentes funcionales alsistema Æ incrementos El sistema no se ve como una entidad monolítica con unafecha fija de entrega, sino que es una integración deresultados sucesivos obtenidos después de cada iteración Se ajusta a entornos de alta incertidumbreFrancisco Ruiz, Michael González Harbour - IS12.29Modelo Incremental Ventajas:&Se evitan proyectos largos y se entrega “algo de valor” alos usuarios con cierta frecuencia&El usuario se involucra más &Mayor retorno de la inversiónDesventajas:' Difícil de evaluar el coste total' Requiere gestores experimentados' Difícil de aplicar a sistemas transaccionales que tienden aser integrados y a operar como un todo' Los errores en los requisitos se detectan tarde y sucorrección resulta costosaFrancisco Ruiz, Michael González Harbour - IS12.3015

Modelo en Espiral Modelo de proceso de software evolutivo quecombina la naturaleza iterativa de construcción deprototipos con los aspectos controlados ysistemáticos del modelo lineal secuencial. El software se desarrolla en una serie de versionesincrementales. Durante las primeras iteraciones, la versión incrementalpodría ser un modelo en papel o un prototipo. Durante las últimas iteraciones, se producen versionescada vez más completas del sistema diseñado.Francisco Ruiz, Michael González Harbour - IS12.31Modelo en nesEvaluar alternativas,identificar y resolverlos riesgosAnálisisde RiesgosAnálisisde RiesgosAnálisisde RiesgosPrototipo 3Análisis deRiesgosPrototipo 1Simulaciones, modelos, benchmarksPlan de RequisitosPlan del Ciclo de VidaConcepto deOperaciónPlan deDesarrolloValidación deRequisitosPlan deIntegracióny PruebasV & V deldiseñoPlanificar lasfases siguientesPrototipoOperativoPrototipo igoImplementaciónPrueba deaceptaciónPruebasunitariasIntegracióny pruebaDesarrollar, Verificar elproducto del siguiente nivelFrancisco Ruiz, Michael González Harbour - IS12.3216

Modelo en Espiral Cada ciclo empieza identificando: Los objetivos de la porción correspondienteLas alternativasRestriccionesSe evalúan las alternativas respecto a los objetivos y lasrestriccionesSe formula una estrategia efectiva para resolver las fuentesde riesgos (simulación, prototipado, etc.)Se plantea el próximo prototipoUna vez resueltos los riesgos se sigue el ciclo en cascadaCada ciclo se completa con una revisión que incluye todo elciclo anterior y el plan para el siguienteFrancisco Ruiz, Michael González Harbour - IS12.33Modelo en Espiral Características: Permite acomodar otros modelosIncorpora objetivos de calidad y gestión de riesgosElimina errores y alternativas no atractivas al comienzoPermite iteraciones, vuelta atrás y finalizaciones rápidasEs difícil de adaptar a los contratosDiferencias con los métodos más tradicionales (cascada): Existe un reconocimiento explícito de las diferentes alternativas paraalcanzar los objetivos de un proyecto La identificación de riesgos asociados con cada una de las alternativasLa división de los proyectos en ciclosEl modelo se adapta a cualquier tipo de actividadFrancisco Ruiz, Michael González Harbour - IS12.3417

Prototipado Paradigma de construcción de prototipos: Escuchar al cliente Construir/revisar maqueta Probar maqueta Los prototipos tienen una doble función: El cliente ve el producto y refina sus requisitos El desarrollador comprende mejor lo que necesita hacerFrancisco Ruiz, Michael González Harbour - IS12.35Prototipado - Rápido Características: No modifica el flujo del ciclo de vidaFrancisco Ruiz, Michael González Harbour - IS12.3618

Prototipado - Rápido Características: Reduce el riesgo de construir productos que no satisfaganlas necesidades de los usuarios 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 rendimientoFrancisco Ruiz, Michael González Harbour - IS12.37Prototipado - Rápido Para que sea efectivo: Debe ser un sistema con el que se pueda experimentar Debe ser comparativamente barato ( 10%) Debe desarrollarse rápidamente Énfasis en la interfaz de usuario Equipo de desarrollo reducido Herramientas y lenguajes adecuados El prototipado es un medio excelente para recoger el‘feedback’ (realimentación) del usuario finalFrancisco Ruiz, Michael González Harbour - IS12.3819

Prototipado - Rápido Auque la construcción de prototipos puede serefectiva, también pueden surgir problemas: El cliente ve funcionando lo que para él es la primeraversión del producto, que ha sido construido con“plastilina y alambres”, y puede desilusionarse al decirleque el sistema aún no ha sido construido El desarrollador puede caer en la tentación de ampliar elprototipo para construir el sistema final sin tener encuenta los compromisos de calidad y de mantenimientoque tiene con el clienteClave: Definir reglas del juego entre desarrollador yclienteFrancisco Ruiz, Michael González Harbour - IS12.39Prototipado - Evolutivo Construcción de una implementación parcial quecubre los requisitos conocidos, para ir aprendiendoel resto y, paulatinamente, incorporarlos al sistema Características: Reduce el riesgo y aumenta la probabilidad de éxito No se conocen niveles apropiados de calidad ydocumentación Problemas de gestión de configuración Construir software para que pueda ser modificadofácilmente es un “arte desconocido”Francisco Ruiz, Michael González Harbour - IS12.4020

Prototipado - Operacional Es una mezcla entre el prototipado rápido y elevolutivo. En algunos sistemas ni el prototipado rápido ni el evolutivo porsí solos son aceptables porque los requisitos son: Críticos al diseño y bien entendidosNo críticos al diseño y pobremente entendidosDesconocidosEl prototipado rápido por sí solo es poco efectivo porque losrequisitos pobremente entendidos no son críticos.El prototipado evolutivo por sí solo es poco efectivo porque noayuda a clarificar los requisitos que no se entienden.Francisco Ruiz, Michael González Harbour - IS12.41Prototipado - OperacionalModo de trabajo: Un prototipo evolutivose construye con losrequisitos bienconocidos. El usuario lo maneja yespecifica nuevoscambios o detectaproblemas. Si el usuario dice que“no” Æ se desechan Si el usuario dice que“sí” Æ Se implementany completan paraañadirlos al productoevolutivoFrancisco Ruiz, Michael González Harbour - IS12.4221

Reutilización Principios de la reutilización: Existen similitudes entre distintos sistemas de un mismodominio de aplicación El software puede representarse como una combinaciónde módulos Diseñar aplicaciones especificar módulos interrelaciones Los sistemas nuevos se pueden caracterizar pordiferencias respecto a los antiguosFrancisco Ruiz, Michael González Harbour - IS12.43Reutilización Procedimiento para construir un sistema mediante lareutilización de “algo” procedente de algún esfuerzo dedesarrollo anterior.En la mayoría de los proyecto de SW existe algo dereutilización. Esto pasa cuando las personas que trabajan enel proyecto conocen diseño o código similares al requerido.La reutilización sobre todo se usa en el paradigma OO ysupone cambios en el propio ciclo de vida.El software se puede construir igual que el hardware,mediante el ensamblaje de piezas (componentes). El uso delos componentes software facilita la reutilización.Francisco Ruiz, Michael González Harbour - IS12.4422

ReutilizaciónBIBLIOTECASi la reutilizaciónpredomina durante eldesarrollo se habla deDesarrollo Basado enComponentes: Análisis de componentes (sebuscan componentesadecuados). Modificación ( se modificanlos componentes parasatisfacer los requisitos). Diseño con reutilización (sediseña o utiliza un nuevotrabajo para el sistema). Desarrollo e integración.Francisco Ruiz, Michael González Harbour - IS12.45Reutilización Ventajas: Reduce tiempos y costes de desarrollo Si ya están los componentes hechos Aumenta la fiabilidadDesventajas: Hacer componentes es más costoso que hacer módulos SW Dificultad de catalogación y recuperaciónDificultad para reconocer los componentes potencialmentereutilizablesProblemas de motivaciónProblemas de gestión de configuraciónFrancisco Ruiz, Michael González Harbour - IS12.4623

Síntesis Automática Proceso: Los Requisitos se expresan en una especificación formaldetallada expresada en notación matemática. Los procesos (diseño, implementación y pruebas) sereemplazan por un proceso basado en transformacionesdonde la especificación formal se refina.Francisco Ruiz, Michael González Harbour - IS12.47Síntesis AutomáticaFrancisco Ruiz, Michael González Harbour - IS12.4824

Síntesis Automática Ventajas: Se define el sistema utilizando un lenguaje formal La implementación es automática, asistida por elordenador La documentación se genera de forma automática El mantenimiento se realiza “por sustitución” en lasespecificaciones, no mediante “parches” Inconvenientes: Hay dificultad en la participación del usuario Los diseños están poco optimizadosFrancisco Ruiz, Michael González Harbour - IS12.49Comparación entre Ciclos de VidaExpectativasFrancisco Ruiz, Michael González Harbour - IS12.5025

Comparación entre Ciclos de VidaPrototipado RápidoCascadaFrancisco Ruiz, Michael González Harbour - IS12.51Comparación entre Ciclos de VidaEspiralIncrementalFrancisco Ruiz, Michael González Harbour - IS12.5226

Comparación entre Ciclos de VidaSíntesis AutomáticaReutilizaciónFrancisco Ruiz, Michael González Harbour - IS12.53Ciclos de Vida para OO El modelo en cascada no permite aprovechar las ventajas de latecnología OO Modelos tradicionales de ciclo de vida Æ Proyecto Desarrollo Orientado a Objetos Æ Producto Pretende acelerar el desarrollo de sistemas de una manera iterativae incremental Generalizar los componentes para que sean reutilizables Modelos de Ciclo de Vida OO: AgrupamientoFuenteRemolinoPinballFrancisco Ruiz, Michael González Harbour - IS12.5427

Ciclos de Vida para OO - Agrupamiento Modelo de Agrupamiento (Meyer, 1990) Adopta Filosofía de Producto vs Proyecto Agrupamiento: Conjunto de clases relacionadas con unobjetivo común. Características: Subciclos de vida, cada uno con: alizaciónFrancisco Ruiz, Michael González Harbour - IS12.55Ciclos de Vida para OO - AgrupamientoAgrupamiento ENVALGENAgrupamiento 2Agrupamiento 1TIEMPOFrancisco Ruiz, Michael González Harbour - IS12.5628

Ciclos de Vida para OO - Fuente Modelo Fuente(Henderson Sellers y Edwards,1990):Mantenimiento Representagráficamente: El alto grado de iteración ysolapamiento de la OO sPruebasunitariasCodificaciónComponentesDiseño ConceptualAnálisis Aplicable a nivel de claseindividual oagrupamientosEstudio deviabilidad yrequisitosPiscina SWFrancisco Ruiz, Michael González Harbour - IS12.57Ciclos de Vida para OO - Remolino Las metodologías de desarrollo no ofrecen una visión real(Rumbaugh, 1992): En la práctica, el desarrollo es desordenado e implica múltiplesiteraciones relacionadas.El modelo en cascada asume una sola dimensión de iteración:la fase del proyecto.Pero puede haber otras dimensiones de iteración: Amplitud Æ Tamaño de desarrolloProfundidad Æ Nivel de abstracción o detalleMadurez Æ Grado de compleción, corrección y eleganciaAlternativas Æ Diferentes soluciones a un problemaAlcance Æ Objetivos del Sistema (requisitos cambiantes)Proceso multicíclico no lineal con forma de remolino.Francisco Ruiz, Michael González Harbour - IS12.5829

Ciclos de Vida para OO - Pinball Propuesto por Ambler (1994) El Pinball refleja el proceso de desarrollo OO: La pelota representa un proyecto completo o unsubproyecto. El jugador es el equipo de desarrollo. Se procede de forma iterativa a encontrar clases, atributosmétodos e interrelaciones y definir colaboraciones,herencia, agregación y subsistemas. Por último se pasa a la programación, prueba eimplementación. La habilidad y la experiencia son los factores másimportantes, aunque también se requiere algo de suerte.Francisco Ruiz, Michael González Harbour - IS12.59Ciclos de Vida para OO - Pinball Hay dos estilos a lahora de “jugar”: Seguro Æ Tecnologíasy métodos probados Al límite Æ Mayorriesgo, más ventajasFrancisco Ruiz, Michael González Harbour - IS12.6030

Ciclos de Vida para OO Todos estos modelos caracterizan el desarrollo OOpor: Eliminación de fronteras entre fases, ya que debido a lanaturaleza iterativa del desarrollo OO, estas fronteras sedifuminan cada vez más Una nueva forma de concebir los lenguajes deprogramación y su uso, ya que se incorporan bibliotecasde clases y otros componentes reutilizables Un alto grado de iteración y solapamiento, lo que lleva auna forma de trabajo muy dinámica Desarrollo iterativo e incremental.Francisco Ruiz, Michael González Harbour - IS12.61Metodologías – Definición y Objetivos Metodología de Desarrollo de Software:1) Conjunto de pasos y procedimientos que debenseguirse para el desarrollo de software.2) Conjunto de filosofías, fases, procedimientos, reglas,técnicas, herramientas, documentación y aspectos deformación para los desarrolladores de SI.3) Conjunto de procedimientos, tétécnicas,herramientas y soporte documental que ayudaa los desarrolladores a realizar nuevo software.softwareFrancisco Ruiz, Michael González Harbour - IS12.6231

Metodologías – Definición y Objetivos Por tanto, una metodología representa el camino aseguir para desarrollar software de manerasistemática. Objetivos: Mejores Aplicaciones. Un mejor Proceso de Desarrollo que identifique salidas (o productos intermedios) de cada fase de forma que sepueda planificar y controlar los proyectos.Un Proceso Estándar en la organización.Francisco Ruiz, Michael González Harbour - IS12.63Metodologías - ElementosTÉCNICASACTIVIDADES Y TAREASABCDPRODUCTOSWWWWWWWWWWWWOTRAS HERRAMIENTASPROCEDIMIENTOSAUB CEnt. Rel.Int N:M RFrancisco Ruiz, Michael González Harbour - IS12.6432

Metodologías - Elementos Actividades y Tareas El Proceso se descompone hasta el nivel de Actividades yTareas (actividades elementales) Procedimientos Definen la forma de llevar a cabo las Tareas Vínculo de Comunicación entre Usuarios y Desarrolladores Productos Obtenidos como resultado de seguir un Procedimiento Pueden ser Intermedios o FinalesFrancisco Ruiz, Michael González Harbour - IS12.65Metodologías - Elementos Técnicas Se utilizan para aplicar un Procedimiento Pueden ser Gráficas y/o Textuales Determinan el formato de los Productos resultantes encada Tarea Herramientas Software Proporcionan soporte a la aplicación de las TécnicasFrancisco Ruiz, Michael González Harbour - IS12.6633

Metodologías – Características Deseables En general: Claridad y facilidad de comprensión. Facilitar la portabilidad. Rigurosidad.Capacidad de soportar la evolución de lossistemas (mantenimiento).Versatilidad respecto a los tipos de aplicaciones.Flexibilidad / Escalabilidad (independenciarespecto de la dimensión de los proyectos).Adopción de estándares.Francisco Ruiz, Michael González Harbour - IS12.67Metodologías – Características Deseables En Desarrollo de Software& Existencia de reglas predefinidas& Cobertura total del ciclo de desarrollo& Verificaciones intermedias& Planificación y control& Comunicación efectiva& Utilización sobre un abanico amplio de proyectos& Fácil formación& Herramientas CASE& Actividades que mejoren el proceso de desarrollo& Soporte al mantenimiento& Soporte de la reutilización de softwareFrancis

INGENIERÍA DEL SOFTWARE I Tema 2 Procesos de Ingeniería del Software Univ. Cantabria - Fac. de Ciencias Francisco Ruiz Francisco Ruiz, Michael González Harbour - IS1 2.2 Objetivos Comprender las relaciones entre los conceptos de proceso software, ciclo de vida del software y metodología. Conocer las características de los .