desarrollo de software basado en componentes
DESCRIPTION
Charla sobre Desarrollo de Software Basado en componentes, presentada en la octava meetup de .NET Uruguay. IncluyeTRANSCRIPT
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