Post on 17-Sep-2015
description
Diapositiva 1
1
Diseo de SoftwareEn sentidogeneral,disearesuna forma de
resolucindeproblemas.
Porello, al disearseutilizan nocionescomo
ObjetivosRestriccionesAlternativasRepresentacionesSoluciones3
Juega un papel claveeneldesarrollodesoftware
porquepermitea los ingenierosdesoftwareproducirdiversosmodelosque:Caracterizanla solucin aimplementar.
Puedenseranalizadosy evaluados con elfin dedeterminarsisesatisfacenlosrequisitos.
Facilitanel examen y evaluacin dealternativas.
Sirvenpara planificarlassiguientesactividadesdeldesarrollo.
4
Perspectivadel ProcesoDiseareselesfuerzopara definir laarquitectura,componentes,interfacesyotrascaractersticasdeun sistemao componente.
ElDiseodeSoftwareeslaactividaddel ciclode vidadelsoftwareenla cualseanalizanlosrequisitospara
producir unadescripcin de la estructura
internadel software que sirva de
base para
suconstruccin.
Lasalidaes un conjuntodemodelosyartefactosqueregistran las principales decisiones adoptadas.Perspectivadel ResultadoUn Diseoeselresultadodedicho esfuerzo.
UnDiseoSoftwaredescribe:
Laarquitecturadel software
(cmoest
descompuesto y organizadoen
componentes),Lainterfaces
entredichoscomponentes,y
Los componentes a un nivel de
detalleque
permitasu construccin.5
ElestndarISO12207 identifica dostiposdeDiseoSoftware:
Arquitectural [alto nivel]
Describe la estructura y organizacin dealtonivel, es
decir,lossubsistemaso componentesysusrelaciones
DetalladoDescribecadacomponente ysucomportamiento especfico, de forma quepuede procederse a su construccin
DiseoArquitectural
Es el primer paso eneldiseo de un sistema, previoaldiseo detallado.
Suresultadoseconocecomoarquitecturadelsoftware.
[sepresentadespus]
Representaelenlaceentrelaespecificacin de requisitos yeldiseo.
Puede llevarse a cabo en paralelo conactividadesdeespecificacinderequisitos.
Implica un esfuerzo creativo, de forma quelas actividadesa realizar pueden cambiar segn la naturaleza del sistemaadesarrollar.6
Duranteeldiseoarquitecturalesnecesarioadoptaralgunasdecisiones:
Existeuna arquitecturagenrica que pueda ser usada?
Cmo ser distribuido el sistema?
Qu estilosarquitectnicos son apropiados?
Qu aproximacin se utilizar para estructurar elsistema?
Cmo se descompondr el sistema en mdulos?
Qu estrategiade controlseutilizar?
Cmoseevaluar eldiseoarquitecturalresultante?
Cmosedocumentar laarquitectura?
PrincipiosVerdadesbsicasoleyesgenerales que se utilizan comobasederazonamientoocomo gua paraactuar.
LosPrincipios del DiseoSoftwaresonnociones claveconsideradasfundamentalesenmuchas aproximacionesyconceptosdediseodiferentes.7
AbstraccinOlvidarinformacin que diferenciaciertascosasyaspoder tratarlas como si fueran similares.EnSoftwarelos mecanismosbsicosdeabstraccin son:ParametrizacinEspecificacinAbstraccinProceduralAbstraccinde DatosAbstraccinde Control (iteracin)
Acoplamientoy Cohesin
Acoplamiento:Fortalezadelas relacionesentremdulosINTER
Cohesin:cmoestnrelacionadosloselementosdeun mismomdulo.INTRA8
DescomposicinDescomponerun softwareendiversasunidadesmspequeas,habitualmente conelfin desituar
diferentesfuncionalidadeso
responsabilidadesen diferentes componentes.Encapsulamiento[ocultamiento deinformacin]Consisteenagruparyempaquetarloselementosydetallesinternosdeunaabstraccinyhacerquedichos detallesseaninaccesiblesdesdefuera.SeparacindeInterfazeImplementacinDefinirun componenteespecificandouna interfaz
pblica,conocida por otros
componentesoclientes , separada
de los detalles de cmo dicho
componente est realizado
(implementado).Suficienciay CompletitudAsegurarqueuncomponentesoftwarecapturatodaslas caractersticasimportantesdeunaabstraccinyningunams.9
HaydostiposdeDescomposicinEstructuracin/Organizacin del sistema:
El sistemaensubsistemasDescomposicinmodular:
Subsistemas enmdulos.
SubsistemasvsMdulos
Nosiemprehayuna diferenciacinclara
Subsistema:Unsistemaens mismo,cuyo
funcionamiento esindependientede
los servicios provistos
por otros subsistemas.
Mdulo: Componentede un sistema que provee servicios
a otros componentes y que nose
considera un
sistema separado.AproximacionesparaDescomposicinModular: ObjetosEl (sub)-sistemasedescompone enobjetosque interactan.
Tubera o Flujo de Datos[orientado a funciones]
El (sub)-sistemasedescompone
enmdulos funcionales que
transformanentradas en
salidas.10
Al disearsoftwareesnecesarioenfrentarsea varios problemaso dificultadesimportantes.
Atributos deCalidadque deben satisfacerse.
Ej: Rendimiento.Cmo descomponer,organizar y empaquetar
componentes.
Aspectosdel comportamiento del softwarequenoson
deldominio del problemao aplicacin,
sino de dominios
laterales que afectan de manera
transversal a la funcionalidaddel
sistema.
Estosaspectosnosuelensuponer
unidadesdedescomposicin
funcional,sino queson propiedades
queafectana diversoscomponentes (ensu
rendimiento osemntica)de forma
sistemtica.En los ltimos aos se estabordando el problema del
DiseodeSistemas Software Genricos
medianteLneasdeProductoSoftwareSuobjetivoeseldiseodefamiliasde
programas,esdecir,coleccionesde
programasque
tienenmuchascosasencomn.
Ej: Gestin de Tiendas de Venta al Pblico
Haciendoreutilizacinalmximo,pero
permitiendo adaptacinyvariabilidaden
cadaproducto particular.11
LosprincipalesAspectosSoftwarea enfrentar son : Concurrencia.
Cmorepartirelsoftwareen
procesos, tareas o hilos deejecucin
yabordar los problemas deeficiencia,
atomicidad, sincronizaciny
Planificacin asociados.
ControlyManejodeEventos.Cmo organizardatos yflujo de control.Cmomanejar eventos reactivos y temporales mediantemecanismos como
invocacin implcita o llamadas hacia
atrs (callbacks).LosprincipalesAspectosSoftwarea enfrentarson(cont.):
Distribucindecomponentes.
Cmodistribuirel software en el hardware.Cmocomunicar los componentes.
Cmoutilizar el middlewarepara tratar con software heterogneo.
Manejo deErroresyExcepcionesyToleranciaaFallos.
Cmoprevenir ytolerar fallos y
tratar condiciones excepcionales
(no previstas).12
LosprincipalesAspectosSoftwarea enfrentarson(cont.):
InteraccinyPresentacin.
Cmoestructurar y organizar las
interacciones con el usuario yla
presentacinde informacin.
Ej.:separando la presentacin de
la lgica de negocio usando la
aproximacinMVC (Modelo-Vista-Controlador).
PersistenciadeDatos.Cmo se manejanlos datos quetienenunavida superior eindependiente a las ejecuciones del software.
Laarquitecturade un sistemaes la descripcin delos elementos que lo forman y delas interrelaciones entre ellos.
13
ArquitecturaEstructurainterna de algo
Formaenque algo es construido u organizadoArquitecturaSoftwareDescripcin delossubsistemasycomponentesdeun
sistema software ydelas
interrelacionesentreellosDisponerdelaArquitecturadeformaexplcita suponelas siguientesventajasComunicacin conlos interesados
Puede utilizarse para ladiscusinsobrecmoser el sistema.
AnlisisdelSistema
Permite el anlisisdel
cumplimiento de los
requisitosno funcionales.
Reutilizacin a gran escala
Puedeservir para ungrupo desistemas parecidos.
44
Diseo Basado en Componentes (CBD)
UnComponenteSoftwareesunaunidad
independienteconinterfacesydependenciasbien
definidas,quepueda ser
desarrollada y desplegadade
forma independiente.
Principio de CajaNegra.
CBD aborda problemas para proveer,
desarrollar e integrar componentes.
Su finalidad es mejorar lareutilizacin.Haga clic para cambiar el estilo de ttulo
Haga clic para modificar el estilo de texto del patrn
Segundo nivel
Tercer nivel
Cuarto nivel
Quinto nivel
6/4/2015
Haga clic para modificar el estilo de ttulo del patrn
Haga clic para modificar el estilo de subttulo del patrn
6/4/2015
Haga clic para modificar el estilo de ttulo del patrn
Haga clic para modificar el estilo de texto del patrn
Segundo nivel
Tercer nivel
Cuarto nivel
Quinto nivel
6/4/2015
Haga clic para modificar el estilo de ttulo del patrn
Haga clic para modificar el estilo de texto del patrn
6/4/2015
Haga clic para modificar el estilo de ttulo del patrn
Haga clic para modificar el estilo de texto del patrn
Segundo nivel
Tercer nivel
Cuarto nivel
Quinto nivel
Haga clic para modificar el estilo de texto del patrn
Segundo nivel
Tercer nivel
Cuarto nivel
Quinto nivel
6/4/2015
Haga clic para modificar el estilo de ttulo del patrn
Haga clic para modificar el estilo de texto del patrn
Haga clic para modificar el estilo de texto del patrn
Segundo nivel
Tercer nivel
Cuarto nivel
Quinto nivel
Haga clic para modificar el estilo de texto del patrn
Haga clic para modificar el estilo de texto del patrn
Segundo nivel
Tercer nivel
Cuarto nivel
Quinto nivel
6/4/2015
Haga clic para modificar el estilo de ttulo del patrn
6/4/2015
6/4/2015
Haga clic para modificar el estilo de ttulo del patrn
Haga clic para modificar el estilo de texto del patrn
Segundo nivel
Tercer nivel
Cuarto nivel
Quinto nivel
Haga clic para modificar el estilo de texto del patrn
6/4/2015
Haga clic para modificar el estilo de ttulo del patrn
Haga clic en el icono para agregar una imagen
Haga clic para modificar el estilo de texto del patrn
6/4/2015
Haga clic para modificar el estilo de ttulo del patrn
Haga clic para modificar el estilo de texto del patrn
Segundo nivel
Tercer nivel
Cuarto nivel
Quinto nivel
6/4/2015
Haga clic para modificar el estilo de ttulo del patrn
Haga clic para modificar el estilo de texto del patrn
Segundo nivel
Tercer nivel
Cuarto nivel
Quinto nivel
6/4/2015