desarrollo de software basado en componentes

20
Desarrollo de Software Basado en Componentes Diego Cardozo

Upload: diego-cardozo

Post on 03-Jul-2015

436 views

Category:

Software


3 download

DESCRIPTION

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

TRANSCRIPT

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