Ingeniería de Software

Documentos relacionados
Ingeniería de Software: Parte 2

Ingeniería de Software: Metodologías

Ingeniería de Software

Ingeniería de Software: Metodologías

Introducción a Rational Unified Process (RUP)

INGENIERÍA DE SOFTWARE CICLOS DE VIDA Y METODOLOGIAS

Syllabus.

Rational Unified Process (RUP)

Ingeniería de Software I

Sistemas de Información II. Introducción al Proceso Unificado de Desarrollo de Software. Autor: Ing. Silverio Bonilla 1

Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Gobierno Municipal del Cantón Bolívar


Ingeniería del Software II

Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Gobierno Municipal del Cantón Bolívar

RUP. Rational Unified Process

INGENIERÍA DE SOFTWARE Rational Unified Process RUP

Guía metodologíca para la gestión de proyectos de software basada en metodologías agiles, que integre las herramientas de seguimiento de actividades,

UNIVERSIDAD UNION BOLIVARIANA CARRERA DE INGENIERIA DE SISTEMAS

Gerencia de Proyectos Proceso de Software

Desarrollo de software

Introducción al Unified Process. Curso IIC 2143 Ingeniería de Software Rodrigo Sandoval 2010

Plan de curso Sílabo-

6 Anexos: 6.1 Definición de Rup:

UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO

El Proceso Unificado Rational para el Desarrollo de Software.

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Ingeniería de Software. Procesos. Proyecto de Ingeniería. Metodologías. Metodologías. Metodologías. Metodologías de desarrollo

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Proceso de Desarrollo de Software: Herramientas de Configuración de Procesos. Elisa Herrmann Ingeniería del Software de Gestión

PDSM: PROCESO DE DESARROLLO DE SOFTWARE MIXTO COMBINANDO RUP Y SCRUM. Mariani, María Florencia Okabe, Evangelina

Instituto Educación Superior Tecnológico Privado El Buen Pastor

Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre

El Proceso Unificado

METODOLOGÍA TRADICIONAL.

IMPLEMENTACION DE UN SOFTWARE EN ENTORNO WEB UTILIZANDO UN SISTEMA DE INFORMACION GEOGRAFICO PARA LOS PROCESOS DE REGISTRO Y DESCARGO DE DEFICIENCIAS

Tema 2. El Ciclo de Vida del Software (ISG1-ITIG)

INDRA-DAY APPLICATION LIFECYCLE MANEGEMENT JUNIO 2015

ACADEMIA AGIL PROFESSIONAL SCRUM DEVELOPER

Ingeniería del Software

Anexo 4 Documento de Arquitectura

CLASE 2: INTRODUCCIÓN A LA ING. DE SOFTWARE. MODELOS DE PROCESOS. MEJORES PRÁCTICAS. USB Ing. De Software. Prof. I. C. Martínez

ITZOFT, una metodología de desarrollo de sistemas basada en el Proceso Unificado de Rational. Resumen

Enterprise Architect y UML

Programación orientada a

SOFTWARE & SYSTEMS PROCESS ENGINEERING METAMODEL SPECIFICATION V.20 SPEM 2.0

cilred.com CICLO DE VIDA DEL SOFTWARE & METODOLOGIAS DE DESARROLLO DE SOFTWARE ING. EDUARDO CRUZ ROMERO eduar14_cr@hotmail.com cilred.

RESUMEN. IV P á g i n a

El tema del proyecto de tesis que estoy desarrollando, según la clasificación de la ACM (Association for Computing Machinery) es la siguiente:

Enterprise Architect y UML Basic

Primer avance de proyecto de software para la gestión de inscripciones en cursos

Tema 4c: El Proceso Unificado de Desarrollo

Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL

CONTENIDO. ACERCA DE SWAT IT Quiénes somos y para qué trabajamos

Certified Scrum Developer (CSD), Módulo 3 y Track Completo

Interacción Persona - Ordenador

El Proceso Unificado de Desarrollo de Software

Proceso de Desarrollo de SW

CAPÍTULO I NUEVOS ENFOQUES DE LA INGENIERÍA DE SOFTWARE.

UNIVERSIDAD TÉCNICA DEL NORTE FACULTAD DE INGENIERÍA EN CIENCIAS APLICADAS CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES ARTÍCULO CIENTÍFICO

Departamento de Lenguajes y Sistemas Informáticos. Ciclo de vida del software

Ciclo de Ingeniería de Software

Dirección General de Educación Superior Tecnológica

INDICE 1 INTRODUCCION. 4

PROYECTO DE INGENIERIA DE SISTEMAS I

Implementación de Procesos Business Process Management BPM Services Oriented Architecture SOA

INSTITUTO TECNOLÓGICO SUPERIOR DE APATZINGÁN

La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática

Fundamentos de Ingeniería de Software [Modelos]

Curso: El Proceso de Desarrollo de Software

Programación del curso

GUÍA METODOLÓGICA DE DESARROLLO DE SISTEMAS TABLA DE CONTENIDO

CONSEJO DE NORMALIZACIÓN Y CERTIFICACIÓN DE COMPETENCIA LABORAL NORMAS TÉCNICAS DE COMPETENCIA LABORAL

MARCO DE REFERENCIA SISTEMAS DE INFORMACIÓN PARA LA GESTIÓN DE TI EN EL ESTADO COLOMBIANO

Curso Taller de Arquitectura de Software usando UML

Proceso Desarrollo de Sistemas Informáticos (Internos o Externos) P-DAF-NC-DSI

Modelos de desarrollo de software. septiembre de

TEMA 1.-Programación orientada a objetos (POO) Objetivo

El Proceso de Desarrollo de Software. Diseño de Software Avanzado Departamento de Informática

Tema 13: El Proceso Unificado de Desarrollo

Eclipse Process Framework Composer EPFC, es un editor de procesos gratuito que sirve para editar fragmentos de método, procesos o metodologías y

Calidad. Preparado por: Amelia Soriano. Referencias. Rational Unified Process Version Copyright Rational Software Corporation

METODOLOGÍA TRADICIONAL.

Anteproyecto Fin de Carrera

Elementos requeridos para crearlos (ejemplo: el compilador)

Capítulo 1 Introducción

Marcos López Sanz Ingeniería del Software de Gestión. Introducción El proceso unificado Principios básicos Las 4 p

Principios de Análisis Informático. Tema 2: El proceso unificado de desarrollo de software

Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

Transcripción:

IngenieríadeSoftware AgustínJ.González ElO329:DiseñoyProgramaciónOrientadosa Objeto Tomadode:http://www.dsic.upv.es/~uml http://inst.eecs.berkeley.edu/~cs169/ entreotrasfuentes.

Definición (1993)Laaplicaciónmecanismossistemáticos,disciplinados,y cuantificablesparaeldesarrollo,operaciónymantenciónde software;estoeslaaplicacióndelaingenieríaalsoftware. Establecimientoyusodeprincipiosconcaracteresdeingeniería apropiadosparaobtener,eficientemente,softwareconfiable,que opereeficazyeficientementeenmáquinasreales Laaplicacióndelartedeldesarrollosoftwarejuntoconlasciencias matemáticasycomputadoresparadiseñar,construir,ymantener programascomputacionaleseficientesyeconómicosquelogran susobjetivos.

EstadodelarteenIng.DeSoftware Esunacienciarigurosaconfuertesfundamentos matemáticos? Esunacampotécnicobiendesarrolladoconmuchode disciplinadeingeniería? Oestárealmenteenunestadoprimitivo... Alomásunaseriede mejoresprácticas,desarrolladoresde softwareconstruyensoftwareysiéstosfuncionanentonces nosotrosestudiamoscomoelloslohicieron. Siéstosfuncionanporunlargotiempoentoncesestudiamossus procesosdesoftwareaúnmáscuidadosamente.

Construccióndeunacasapara fido Puedehacerlounasolapersona Requiere: Modeladomínimo Procesosimple Herramientassimples

Construccióndeunacasa Construidaeficientementeyenuntiempo razonableporunequipo Requiere: Modelado Procesobiendefinido Herramientasmássofisticadas

Construccióndeunrascacielos

ClavesenDesarrollodeSI Notación(UML) Calidad:Ej:CMM Herramientas (Ej:RationalRose) Proceso (Metodologías Ej:ITIL,ExtremeProgramming, RUP:RationalUnified Process)

Abstracción ModeladoVisual(MV) Elmodeladocapturalas partesesencialesdelsistema Orden Item envío ProcesodeNegocios SistemaComputacional

Notación(Visual) Beneficios Manejarlacomplejidad InterfazdeUsuario (VisualBasic, Java,..) LógicadelNegocio (C++,Java,..) MúltiplesSistemas ServidordeBDs (C++&SQL,..) Modelarelsistemaindependientemente dellenguajedeimplementación Componentes Reutilizados PromoverlaReutilización

PorquélaOrientaciónaObjetos? Proximidaddelosconceptosdemodeladorespectodelas entidadesdelmundoreal Modeladointegradodepropiedadesestáticasydinámicas delámbitodelproblema Mejoralacapturayvalidaciónderequisitos Acercael espaciodelproblema yel espaciodelasolución Facilitaconstrucción,mantenimientoyreutilización Podríamosdarmuchasrazonesperohayproblemas..

ProblemasenOO...LosconceptosbásicosdelaOOseconocendesdehacedos décadas,perosuaceptacióntodavíanoestátanextendidacomolos beneficiosqueestatecnologíapuedesugerir

ProblemasenOO Unobjetocontienedatosyoperacionesqueoperansobrelosdatos, pero... Podemosdistinguirdostiposdeobjetosdegenerados: Unobjetosindatos(queseríalomismoqueunabibliotecadefunciones) Unobjetosin operaciones,consólooperacionesdeltipocrear,recuperar, actualizaryborrar(quesecorresponderíaconlasestructurasdedatos tradicionales) Unsistemaconstruidoconobjetosdegeneradosnoesunsistema verdaderamenteorientadoaobjetos

ProcesodeDesarrollo desw

Elprocesodedesarrollo Completo Sedaenuncontextoydependiendoeltextooinvestigador destacamásomenosetapas. Elmáscompletoquehevistoincluye: Sueño Investigación Desarrollo Lanzamiento Soporte Tiempo Aldesarrolloesaloquenormalmenteseladamásénfasis enlaliteratura.

QuéesunProcesodeDesarrollodeSW? Sueño Investigación Desarrollo Lanzamiento Soporte Tiempo DefineQuiéndebehacerQué,CuándoyCómodebehacerlo Sistemanuevo Requisitosnuevos omodificados ProcesodeDesarrollo omodificado desoftware Noexisteunprocesodesoftwareuniversal.Lascaracterísticasde cadaproyecto(equipodedesarrollo,recursos,etc.)exigenqueel procesoseaconfigurable

ÁreascubiertasporlaIng.deSolftware LaIngenieríadelSoftwareestudiatodoslosaspectosinvolucradosenel desarrollodesoftware,entreloscualesseencuentran: EtapasdeunProyectodesoftware Paradigmas/enfoquesparaenfrentareldesarrollodelproyectode software(cascada,interativoincremental) TiempoyCostos Aspectostecnológicos GestióndeProyectos

EtapasdeunproyectodeSoftware Etapas/Hitosescencialesrqueridosenunproyectodedesarrollodesoftware: OportunidaddeNegocio(Hito) LevantamientoIncialdeRequerimientos(Dominiodelproblema) Entendimientoinicialdelaproblemáticaaresolver ReunionesconCliente Especificacióninicialderequerimientos ConfeccióndePropuesta Estimacióndeesfuerzosyplanificacióndelproyecto.Usodetécnicas (COCOMO)yestadisticasdeproyectossimilaresalquesedessarrollará, entrevistasapersonasconexperienciaenproyectossimilaresalquese desarrollará Definicióndelalcancedelproyecto Costos AnálisisOO(Dominiodelproblema) CasosdeUso análisisdinámico ModelosConceptuales análisisestático Diseñopreliminardeinterfaces(web,GUI,comandos,voz)

EtapasdeunproyectodeSoftware(cont) Arquitectura(DominiodelaSolución) Especificacióndelatecnologíaautilizar(J2EE,.NET) EspecificacióndePatronesdeDiseño Diseño(DominiodelaSolución) DiseñodeInterfaces(web,gui,comandos,voz) Realizacióndediagramasdesecuencia Realizacióndediagramasdeclases Construcción/Codificación Entendimientorealdeldiseño(solución)aprogramar Programacióneficienteyoptimadelcódigofuente Comentarenformaentendibleyrazonableelcódigofuente Construccióndeprogramade TEST Pruebaunitariadeldesarrolladormedianteunprogramade TEST PruebasUnitarias Realizacióndeplandepruebas PruebasIntegradas Realizacióndeplandepruebas

EtapasdeunproyectodeSoftware(cont) CapacitaciónaUsuarios ConfeccióndeManualesdeUsuario Reunionesconusuariofinal PuestaenProducción Confeccióndeplandepuestaenproducción MarchaBlanca Garantía ResolucióndeIncidencias

PlanificaryEvaluarProyectos... Podrécumplirconlosplazos? Estarédentrodelopresupuestado? El cliente quedarásatisfecho? Las Metodologías pueden ser la ayuda que necesitamos, si podemos usarlas correctamente!!

Procesos,Metodologías

QuéesunaMetodología... Lasmetodologíasimponenunproceso disciplinadosobreeldesarrollode softwareconelfindehacerlomás predecibleyeficiente.

Laságilesmásconocidas... XP(ProgramaciónExtrema) LafamiliaCristaldeCockburn CódigoAbierto ASD(DesarrollodeSoftwareAdaptable) SCRUM FFD(DesarrolloManejadoporRasgos) DSDM(Métododedesarrollodesistemadinámico) RUP(RationalUnifiedProcess) Yo no conozco todas, pero vale la pena conocer al menos una. Aquellas en rojo son la más populares.

MetodologíasenáreaTI Másdetallesaquí.

ApostandoporRUP...

Desarrollodesoftware:Característicasde RUP... Guiado y Manejado por Casos de Uso Centrado en la Arquitectura Iterativo e Incremental Desarrollo Basado en Componentes Utilización de UML Proceso Integrado

Principalesmetodologíaseneltiempo Definiciónde Requerimientos Construcción/Pruebas Análisis&Diseño Modelo Tradicional de Cascada Implementacióny TestUnitarios Integracióny testdelsistema Operacióny mantención Tiempo t Modelo Iterativo Incremental Iteración 1 Iteración 2 R R A&D R A&D C A&D C P C P Tiempo Iteración 3 P t

RUPDefineFasesdeDesarrollo... Áreasdetrabajo (Workflow) Concepción Análisis&Diseño Construcción Pruebas Distribución EsfuerzoNecesarioporActividad Requerimientos Construcción Transición R R R R A&D A&D A&D A&D C C C C P P P P D D D D IteraciónPreliminar Elaboración Iteración 1 Iteración 2...... Iteración n Iteración n+1 Tiempo

ImportanciadelosHitosenRUP... Compromisoderecursos parafaseelaboración Concepción Elaboración Aceptación delcliente Construcción Transición Tiempo Hito Objetivos, visión Hito Arquitectura Hito Capacidad Operacional Liberación Producto

MejoresPrácticasdeRUP... DesarrolleIterativamente Administrelos Requerimientos UseArquitectura decomponentes Modele Visualmente ControlelosCambios VerifiqueCalidad

UnEjemplo:CompararconV Model (Motorola)

RationalUnifiedProcess(RUP) RationalUnifiedProcess 1998 Rational ObjectoryProcess 1996 1997 UML ObjectoryProcess 1987 1995 EnfoqueEricsson Pruebasfuncionales Pruebasdedesempeño Gestiónderequisitos Gestióndecambiosy configuración IngenieríadeNegocio Ingenieríadedatos Diseñodeinterfaces

OtravisiónsimilarconmásActividades

OtravisiónsimilarconmásActividades Disciplinas o áreas de trabajo Modelado del Negocio Requisitos Análisis y Diseño Primarios Implementación Pruebas Despliegue, distribución Gestión de configuración y cambios Gestión del proyecto Entorno De Apoyo

...ElementosenRUP Artefactos EselResultadoparcialofinalqueesproducidoyusadoduranteel proyecto.sonlasentradasysalidasdelasactividades Unartefactopuedeserundocumento,unmodeloounelementode modelo ConjuntosdeArtefactos BusinessModelingSet RequirementsSet DeploymentSet ProjectManagementSet Analysis&DesignSet Configuration&ChangeManagementSet ImplementationSet EnvironmentSet TestSet

CaracterísticasEsencialesdeRUP ProcesoDirigidoporlosCasosdeUso ProcesoIterativoeIncremental ProcesoCentradoenlaArquitectura

ProcesodirigidoporlosCasosdeUso Capturar,definiry validarloscasosdeuso Requisitos Análisis&Diseño Implementación CasosdeUso integranel trabajo Verificarquese satisfacenloscasosde uso Pruebas Realizarlos casosdeuso

...ProcesodirigidoporlosCasosdeUso «trace» CasodeUso «trace» RealizacióndeAnálisis RealizacióndeDiseño «trace» «trace» Pruebas Unitarias PruebasFuncionales X CasodePrueba [TheUnifiedSoftwareDevelopmentProcess.I.Jacobson,G.BoochandJ.Rumbaugh.Addison Wesley,1999]

...ProcesodirigidoporlosCasosdeUso

ProcesoIterativoeIncremental Elciclodevidaiterativosebasaenlaevoluciónde prototiposejecutablesquesemuestranalosusuariosy clientes Enelciclodevidaiterativoencadaiteraciónsereproduce elciclodevidaencascadaamenorescala Losobjetivosdeunaiteraciónseestablecenenfunciónde laevaluacióndelasiteracionesprecedentes

...ProcesoIterativoeIncremental Lasactividadesseencadenanenunamini cascadaconun alcancelimitadoporlosobjetivosdelaiteración Análisis Diseño Codific. Pruebase Integración nveces

...ProcesoIterativoeIncremental Cadaiteracióncomprende: Planificarlaiteración(estudioderiesgos) AnálisisdelosCasosdeUsoyescenarios Diseñodeopcionesarquitectónicas Codificaciónypruebas.Laintegracióndelnuevocódigoconel hechoeniteracionesanterioressehacegradualmentedurante laconstrucción Evaluacióndelaentregadeejecutable(evaluacióndelprototipo enfuncióndelaspruebasydeloscriteriosdefinidos) Preparacióndelaentrega(documentacióneinstalacióndel prototipo)

ProcesoIterativoeIncremental Enfoque Cascada Enfoque Iterativoe Incremental

...ProcesoIterativoeIncremental GradodeFinalizacióndeArtefactos

ProcesoCentradoenlaArquitectura Laarquitecturadeunsistemaeslaorganizaciónoestructurade suspartesmásrelevantes Unarquitecturaejecutableesunaimplementaciónparcialdel sistema,construidaparademostraralgunasfuncionesy propiedades RUPestablecerefinamientossucesivosdeunaarquitectura ejecutable,construidacomounprototipoevolutivo Inception Elaboration Construction Architecture Transition

FasesdelCiclodeVida Elciclodevidaconsisteenunaseriedeciclos,cadaunode loscualesproduceunanuevaversióndelproducto Cadacicloestácompuestoporfasesycadaunadeestas fasesestácompuestaporunnúmerodeiteraciones Lasfasesson: IniciooEstudiodeoportunidad Elaboración Construcción Transición

...FasesdelCiclodeVida IniciooEstudiodeoportunidad(inception) Defineelámbitoyobjetivosdelproyecto Sedefinelafuncionalidadycapacidadesdelproducto Elaboración Tantolafuncionalidadcomoeldominiodelproblema seestudianenprofundidad Sedefineunaarquitecturabásica Seplanificaelproyectoconsiderandorecursos disponibles

...FasesdelCiclodeVida Construcción Elproductosedesarrollaatravésdeiteracionesdondecada iteracióninvolucratareasdeanálisis,diseñoeimplementación Lasfasesdeestudioyanálisissólodieronunaarquitectura básicaqueesaquírefinadademaneraincrementalconformese construye(sepermitencambiosenlaestructura) Granpartedeltrabajoesprogramaciónypruebas Sedocumentatantoelsistemaconstruidocomoelmanejodel mismo Estafaseproporcionaunproductoconstruidojuntoconla documentación

...FasesdelCiclodeVida Transición Seliberaelproductoyseentregaalusuarioparaunusoreal Seincluyentareasdemarketing,empaquetadoatractivo, instalación,configuración,entrenamiento,soporte, mantenimiento,etc. Losmanualesdeusuariosecompletanyrefinanconla informaciónanterior Estastareasserealizantambiéneniteraciones

EsfuerzorespectodelasWorkflows Ince ption E la bora tion C onstruction Tra nsition 15% Requisitos Unaiteraciónenla fasedeelaboración Análisis 10% Diseño 15% 30% Implementación 15% Pruebas P r e lim in a ry I te r a tio n ( s ) ite r. #1 ite r. #2 ite r. #n ite r. #n+1 ite r. #n+2 ite r. #m ite r. #m +1

...EsfuerzorespectodelasFases Ince ption E la bora tion C onstruction Tra nsition Requisitos Unaiteraciónenla fasedeelaboración Análisis Diseño Implementación Pruebas P r e lim in a ry I te r a tio n ( s ) Esfuerzo:5% Duración:10% 20% 30% ite r. #1 ite r. #2 ite r. #n ite r. #n+1 65%10% 50%10% ite r. #n+2 ite r. #m ite r. #m +1

Dosleccionesimportantes Eltiempoesindependientedelcontexto.Ahorraruna semanalacomienzodeunproyectoestanbuenocomo ahorrarlaalfinal.unasemanaesunasemana. Esmuchomásfácilahorrartiempoaliniciodelproyecto (cuandolosentregablessonmenosclaros). Conclusión:Prontohayquetenerclaroelproyectodel ramo.

Idearelacionada:PatronesdeDiseño Esunasoluciónaunproblemageneraldediseño. Tienelaformadeunconjuntodeclasesqueinter actúan. Lasclasesrequierenpersonalizaciónalcasoespecífico(partesen blanco)

Ejemplo:PatrónObservador Vista Controlador Modelo Modelo,vista,controlador