Desarrollo de Software Basado en Componentes

Post on 03-Jul-2015

436 views 3 download

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

DesarrollodeSoftwareBasadoenComponentes

DiegoCardozo

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

WebMatrixOrchardCMS

Advertencia:EstaesunacharladeIngenieríadeSoftware

Motivación(1)SiGeneralMotorsevolucionaracomola

industriadelacomputación,hoytendríamosautosquesaldrían$100

consumiendo1litrodecombustiblecada1millóndekilómetros.

Motivación(2)Pero...

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

¿Conclusión?OtrasindustriasutilizanenfoquesdistintosObtienenmuybuenosresultadosenáreasdondenosotrostenemosproblemas.

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

¿Quéesloqueotrasindustriastienenencomún?

TrabajanutilizandocomponentesMayorniveldere-utilizaciónSimplificalaspruebasSimplificaelmantenimientoMayorcalidad

Componentesdesarrolladosporterceros

CiclosdedesarrollomascortosMejorROI

¿QueesuncomponenteenSW?"Uncomponentesesunaunidaddecomposicióndeaplicacionesdesoftware,queposeeunconjuntode

interfacesyunconjuntoderequisitos,yquehadepoderserdesarrollado,adquirido,incorporadoalsistemasycompuestoconotroscomponentesdeformaindependiente,entiempoy

espacio."

Szyperski,1998

7Criterios1. PuedeserusadoporotroselementosdeSW2. Puedeserusadoporlosclientessinlanecesidad

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

alasespecificaciones.6. Sepuedeacoplaraotroscomponentes.7. Puedeserincorporadoaunsistemademanerasuave

yrápida.

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

ComponentesvsObjetosObjeto Componente

Polimorfismo Si No

Instanciación Algotardía

Lomastardeposible

Encapsulación Algo Realyforzada

Herencia Si Porinterfazyreusodebinarios

AplicacionesconocidasBajonivel:COM(ComponentObjectModel)

ComunicacióndeprocesosendistintoslenguajesPrecursoresde.NET

CORBAEstándarcreadoporelOMGUsadodentrodelmundoJava

OtrasaplicacionesProgramaciónparadiseñográfico

Modelodelpintor

Modelodecomposición

Bastadefilosofía...Ejemploconcreto:

Crearunsitiowebparalacomunidadde.NETUruguayIncluírunforo

¿PorquéconunCMS?

SebasanenlaideadeDSBC.Tantolaestructuracomoelcontenidosoncomponentes

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

MicrosoftWebMatrix(1)AmbientededesarrollogratuitodeMicrosoftLiviano:40MBreciéninstaladocomparadoconvariosgigasdeVSPensadoparalanubeSoportavarioslenguajesyplataformas

ASP.NETPHPNode.js

IntegraciónconGITyTFS

MicrosoftWebMatrix(2)VSsesientecomounlaboratorioparacrearWebMatrixesidealparaDSBC

Proporcionacomponentes:GaleríadeframeworksIncorporaNuGetpackagemanagerExtensionesútiles

Aislaalframeworkdeloscomponentes

OrchardCMS(1)CompletamenteOpenSourceCreciendorápidamenteArquitecturaMVCEsosignificaquetodosloscomponentessiguenunaarquitecturaMVC.

CrearnuevoscomponentesessencilloLoscomponentesexistentessonfácilesdecomprenderyextender

OrchardCMS(2)Componentes

ContenidoMódulo

FeaturesTemasTemplates

Formas(shapes)WidgetsUsuarios,roles,permisos

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)

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

altamentecomplejos.Apesardesuubicuidad,laaplicacióndeestosconceptosalaindustriamodernadelsoftwaresolamentehaempezando."

BillGates,1997