Desarrollo de Software Basado en Componentes

20
Desarrollo de Software Basado en Componentes Diego Cardozo

description

Charla sobre Desarrollo de Software Basado en componentes, presentada en la octava meetup de .NET Uruguay. Incluye

Transcript of Desarrollo de Software Basado en Componentes

Page 1: Desarrollo de Software Basado en Componentes

DesarrollodeSoftwareBasadoenComponentes

DiegoCardozo

Page 2: Desarrollo de Software Basado en Componentes

Agenda1. Motivación2. ¿QuéeselDSBC?3. ComponentesvsObjetos4. Aplicacionesconocidas5. ¿ComoencajanlosCMS?6. Bajaratierraconceptos

WebMatrixOrchardCMS

Advertencia:EstaesunacharladeIngenieríadeSoftware

Page 3: Desarrollo de Software Basado en Componentes

Motivación(1)SiGeneralMotorsevolucionaracomola

industriadelacomputación,hoytendríamosautosquesaldrían$100

consumiendo1litrodecombustiblecada1millóndekilómetros.

Page 4: Desarrollo de Software Basado en Componentes

Motivación(2)Pero...

Chocaríasalmenos2vecesaldíaComprarunautonuevocadavezquesecambiaunaseñaldetránsitoCadavezquecomprásunmodelonuevo,tenésqueaprenderamanejarnuevamente.

Page 5: Desarrollo de Software Basado en Componentes

¿Conclusión?OtrasindustriasutilizanenfoquesdistintosObtienenmuybuenosresultadosenáreasdondenosotrostenemosproblemas.

Automotriz:procesoságiles,productocomplejoqueseconstruyedeformarápida.Construcción:tienencostosasociadosalcambiomuchomayoresquenosotros,perosearreglanmejor.

¿Quéesloqueotrasindustriastienenencomún?

Page 6: Desarrollo de Software Basado en Componentes

TrabajanutilizandocomponentesMayorniveldere-utilizaciónSimplificalaspruebasSimplificaelmantenimientoMayorcalidad

Componentesdesarrolladosporterceros

CiclosdedesarrollomascortosMejorROI

Page 7: Desarrollo de Software Basado en Componentes

¿QueesuncomponenteenSW?"Uncomponentesesunaunidaddecomposicióndeaplicacionesdesoftware,queposeeunconjuntode

interfacesyunconjuntoderequisitos,yquehadepoderserdesarrollado,adquirido,incorporadoalsistemasycompuestoconotroscomponentesdeformaindependiente,entiempoy

espacio."

Szyperski,1998

Page 8: Desarrollo de Software Basado en Componentes

7Criterios1. PuedeserusadoporotroselementosdeSW2. Puedeserusadoporlosclientessinlanecesidad

deintervencióndeldesarrollador(CMS).3. Incluyelasespecificacionesdetodaslasdependencias.4. Incluyedocumentacióndelasfuncionalidadesqueofrece.5. Sepuedeentendersufuncionamientoenbase

alasespecificaciones.6. Sepuedeacoplaraotroscomponentes.7. Puedeserincorporadoaunsistemademanerasuave

yrápida.

Page 9: Desarrollo de Software Basado en Componentes

DesventajasClarividencia:diseñaruncomponentesinconocerquienloutilizará.Particularización:esdifícil"customizar"uncomponentesinaccederasuimplementación.Faltadesoporte:unavezqueuncomponenteescreadoysellado,¿comoyquienlomantiene?

Page 10: Desarrollo de Software Basado en Componentes

ComponentesvsObjetosObjeto Componente

Polimorfismo Si No

Instanciación Algotardía

Lomastardeposible

Encapsulación Algo Realyforzada

Herencia Si Porinterfazyreusodebinarios

Page 11: Desarrollo de Software Basado en Componentes

AplicacionesconocidasBajonivel:COM(ComponentObjectModel)

ComunicacióndeprocesosendistintoslenguajesPrecursoresde.NET

CORBAEstándarcreadoporelOMGUsadodentrodelmundoJava

OtrasaplicacionesProgramaciónparadiseñográfico

Page 12: Desarrollo de Software Basado en Componentes

Modelodelpintor

Page 13: Desarrollo de Software Basado en Componentes

Modelodecomposición

Page 14: Desarrollo de Software Basado en Componentes

Bastadefilosofía...Ejemploconcreto:

Crearunsitiowebparalacomunidadde.NETUruguayIncluírunforo

¿PorquéconunCMS?

SebasanenlaideadeDSBC.Tantolaestructuracomoelcontenidosoncomponentes

Páginas,imágenes,posts,widgets,módulos,etc.Cuentanconunacomunidadyuncatálogodecomponentesexistentesenorme.

Page 15: Desarrollo de Software Basado en Componentes

MicrosoftWebMatrix(1)AmbientededesarrollogratuitodeMicrosoftLiviano:40MBreciéninstaladocomparadoconvariosgigasdeVSPensadoparalanubeSoportavarioslenguajesyplataformas

ASP.NETPHPNode.js

IntegraciónconGITyTFS

Page 16: Desarrollo de Software Basado en Componentes

MicrosoftWebMatrix(2)VSsesientecomounlaboratorioparacrearWebMatrixesidealparaDSBC

Proporcionacomponentes:GaleríadeframeworksIncorporaNuGetpackagemanagerExtensionesútiles

Aislaalframeworkdeloscomponentes

Page 17: Desarrollo de Software Basado en Componentes

OrchardCMS(1)CompletamenteOpenSourceCreciendorápidamenteArquitecturaMVCEsosignificaquetodosloscomponentessiguenunaarquitecturaMVC.

CrearnuevoscomponentesessencilloLoscomponentesexistentessonfácilesdecomprenderyextender

Page 18: Desarrollo de Software Basado en Componentes

OrchardCMS(2)Componentes

ContenidoMódulo

FeaturesTemasTemplates

Formas(shapes)WidgetsUsuarios,roles,permisos

Page 19: Desarrollo de Software Basado en Componentes

RecursosCharlaycódigo:

github.com/diegocard/CBSD-presentationDSBCenMSDN:

http://msdn.microsoft.com/es-es/library/bb972268.aspx#ref07back

Excelentepresentaciónrelacionada:http://www.slideshare.net/ulicruz/desarrollo-de-software-basado-en-componentes

PaperComponent-BasedSoftwareEngineering–NewParadigmofSoftwareDevelopment(Crnkovic,Larsson)

Page 20: Desarrollo de Software Basado en Componentes

Fin"LaRevoluciónIndustrialdelsoftwareestáfinalmenteantenosotros.Laespecializaciónderecursos,estándaresparapartesintercambiables,yherramientasdeensamblajedeúltimageneraciónhansidousadasenotrasindustriasporcientosdeañosparaacelerareldesarrollodeproductos

altamentecomplejos.Apesardesuubicuidad,laaplicacióndeestosconceptosalaindustriamodernadelsoftwaresolamentehaempezando."

BillGates,1997