estudiovicentetapia6
0 views
43 slides
Oct 08, 2025
Slide 1 of 43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
About This Presentation
USACH
Size: 934.05 KB
Language: es
Added: Oct 08, 2025
Slides: 43 pages
Slide Content
CONCEPTOS DE DISEÑO
FUNDAMENTOS DE INGENIERÍA DE SOFTWARE
2024-02
Clase 09
Autores:
Felipe Fuentes Bravo
Carlos Vera Escobar
CONTENIDOS
Introducción
Diseño en el contexto de la ingeniería de software
•Lineamientos y atributos de la calidad del software
•Evolución del diseño de software
El proceso de diseño
•Abstracción
•Arquitectura
•Patrones
•Modularidad
•Diseño orientado a objetos
Conceptos de diseño
El modelo de diseño
INTRODUCCIÓN
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Eldiseñodesoftwareagrupaprincipios,conceptosyprácticasque
llevanaldesarrollodeunsistemaoproductodealtacalidad.
•Elobjetivodeldiseñoesproducirunmodeloorepresentaciónque
tengaresistencia,funcionalidadybelleza.
•Eldiseñodelsoftwarecambiacontinuamenteconforme
evolucionanlosnuevosmétodos,surgenmejoresanálisisyse
obtieneunacomprensiónmásamplia.
•Preguntas:
•¿Quéeseldiseñodesoftware?
•¿Quiénlohace?
•¿Cuálessonlasetapas?
•¿Cuáleselproductofinal?
•¿Cómoseaseguraquesehizobien?
DISEÑO EN EL CONTEXTO DE LA INGENIERÍA
DE SOFTWARE
Introducción
Diseño en el
contextode la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Seubicaeneláreatécnicayseaplicasinimportarelmodelode
procesoqueseutilice.
•Eldiseñocomienzadespuésdehaberanalizadoymodeladolos
requerimientos.EslaúltimaaccióndelaISdentrodelaetapade
modelado,ypreparalaetapadeConstrucción.
Traducción del modelo de requerimientos al modelo de diseño.
(Software Engineering_ A Practitioner's Approach - Pressman)
DISEÑO EN EL CONTEXTO DE LA INGENIERÍA
DE SOFTWARE
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Eldiseñodedatosoclasestransformalosmodelosdeclasesen
realizacionesdeclasesdediseñoyenlasestructurasdedatosque
serequierenparaimplementarelsoftware.
•LosobjetosyrelacionesdefinidoseneldiagramaCRCyelcontenido
detalladodelosdatosilustradoporlosatributosdeclaseyotros
tiposdenotacióndanlabaseparaeldiseñodelosdatos.
•Partedeldiseñodeclasepuedellevarseacabojuntoconeldiseño
delaarquitecturadelsoftware.
•Undiseñomásdetalladodelasclasestienelugarcuandosediseña
cadacomponentedelsoftware.
DISEÑO EN EL CONTEXTO DE LA INGENIERÍA
DE SOFTWARE
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Eldiseñodelaarquitecturadefinelarelaciónentreloselementos
principalesdelaestructuradelsoftware,losestilosypatronesde
diseñodelaarquitecturaquepuedenusarseparaalcanzarlos
requerimientosdefinidosporelsistemaylasrestriccionesque
afectanlaformaenlaqueseimplementalaarquitectura.
•Larepresentacióndeldiseñodelaarquitecturaseobtienedel
modelodelosrequerimientos.
•Eldiseñodelainterfazdescribelaformaenlaqueelsoftwarese
comunicaconlossistemasqueinteractúanconélyconlos
humanosqueloutilizan.
•Unainterfazimplicaunflujodeinformaciónyuntipoespecíficode
comportamiento.Entonces,losmodelosdeescenariosdeusoyde
comportamientodanmuchadelainformaciónrequeridapara
diseñarlainterfaz.
DISEÑO EN EL CONTEXTO DE LA INGENIERÍA
DE SOFTWARE
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Eldiseñoenelniveldecomponentetransformaloselementos
estructuralesdelaarquitecturadelsoftwareenunadescripciónde
suscomponentesencuantoaprocedimiento.
•Lainformaciónobtenidaapartirdelosmodelosbasadosenclase,
flujoycomportamientosirvecomolabaseparadiseñarlos
componentes.
•Laimportanciadeldiseñodesoftwareseresumenen:calidad.
•Esacádondeseintroduceelconceptodecalidaddelsoftware.
•Darepresentacionesdelsoftwarequepuedenevaluarseensu
calidad.
•Eslaúnicamaneradetraducirconexactitudaunproductoo
sistematerminadolosrequerimientosdelosparticipantes.
•Eselfundamentodetodalaingenieríadesoftwareydelas
actividadesquedanelapoyoquesigue.
•Sindiseñosecorreelriesgodeobtenerunsistemainestable,
quefallecuandosehagancambiospequeños,ounoquesea
difícildesometeraprueba,oenelquenoseaposibleevaluar
lacalidadhastaqueseademasiadotardeenelprocesode
software.
EL PROCESO DE DISEÑO
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Eldiseñodesoftwareesunprocesoiterativoenelcualsetraducen
losrequerimientosenunplanoparaconstruirelsoftware.
•Lineamientosyatributosdelacalidaddesoftware:
•Debeimplementartodoslosrequerimientosexplícitos
contenidosenelmodeloderequerimientosydarcabidaa
todoslosrequerimientosimplícitosquedeseanlos
participantes.
•Debeserunaguíalegibleycomprensibleparaquienesgeneran
elcódigoyparalosquelopruebanydanelapoyoposterior.
•Debeproporcionarelpanoramacompletodelsoftware,y
abordarlosdominiosdelosdatos,lasfuncionesyel
comportamientodesdeelpuntodevistadela
implementación.
LINEAMIENTOS Y ATRIBUTOS DE LA CALIDAD
DE SOFTWARE
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Considerelossiguienteslineamientosparaeldiseñodesoftware:
1.Debetenerunaarquitecturaque:
1.Sehayacreadoconelempleodeestilosopatrones
arquitectónicosreconocibles.
2.Estécompuestadecomponentesconbuenas
característicasdediseño.
3.Seimplementenenformaevolutiva,demodoque
facilitenlaimplementaciónylaspruebas.
2.Debesermodular,esdecir,elsoftwaredebeestardivididode
maneralógicaenelementososubsistemas.
3.Debecontenerdistintasrepresentacionesdedatos,
arquitectura,interfacesycomponentes.
4.Debeconduciraestructurasdedatosapropiadasparalas
clasesquesevanaimplementaryquesurjandepatrones
reconociblesdedatos.
LINEAMIENTOS Y ATRIBUTOS DE LA CALIDAD
DE SOFTWARE
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Considerelossiguienteslineamientosparaeldiseñodesoftware:
5.Debellevaracomponentesquetengancaracterísticas
funcionalesindependientes.
6.Debeconducirainterfacesquereduzcanlacomplejidaddelas
conexionesentreloscomponentesyelambienteexterno.
7.Debeobtenerseconelempleodeunmétodorepetible
motivadoporlainformaciónobtenidaduranteelanálisisde
losrequerimientosdelsoftware.
8.Deberepresentarseconunanotaciónquecomuniquecon
eficaciasusignificado.
•Estoslineamientosdediseñonoselogranporazar.Seconsiguen
conlaaplicacióndelosprincipiosdediseñofundamentales,una
metodologíasistemáticayconrevisión.
LINEAMIENTOS Y ATRIBUTOS DE LA CALIDAD
DE SOFTWARE
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Hewlett-Packarddesarrollóunconjuntodeatributosdelacalidad
delsoftwarealosquesedioelacrónimoFURPS:funcionalidad
(functionality),usabilidad(usability),confiabilidad(reliability),
rendimiento(performance)ymantenibilidad(supportability).
•Lafuncionalidadsecalificadeacuerdoconelconjuntode
característicasycapacidadesdelprograma,lageneralidadde
lasfuncionesqueseentreganylaseguridadgeneraldel
sistema.
•Lausabilidadseevalúatomandoencuentafactoreshumanos,
laestéticageneral,laconsistenciayladocumentación.
•Laconfiabilidadseevalúaconlamedicióndelafrecuenciay
gravedaddelasfallas,laexactituddelosresultadosquesalen,
eltiempomedioparaqueocurraunafalla(TMPF),la
capacidadderecuperaciónanteéstaylopredecibledel
programa.
LINEAMIENTOS Y ATRIBUTOS DE LA CALIDAD
DE SOFTWARE
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Hewlett-Packarddesarrollóunconjuntodeatributosdelacalidad
delsoftwarealosquesedioelacrónimoFURPS:funcionalidad
(functionality),usabilidad(usability),confiabilidad(reliability),
rendimiento(performance)ymantenibilidad(supportability).
•Elrendimientosemideconbaseenlavelocidadde
procesamiento,eltiempoderespuesta,elusoderecursos,el
conjuntoylaeficiencia.
•Lamantenibilidadcombinalacapacidaddelprogramaparaser
ampliable(extensibilidad),adaptableyservicial,yademásque
puedaprobarse,sercompatibleyconfigurable(capacidadde
organizarycontrolarloselementosdelaconfiguracióndel
software)yquecuenteconlafacilidadparainstalarseenel
sistemayparaquesedetectenlosproblemas.
•Notodoatributodelacalidaddelsoftwareseponderaporigualal
diseñarlo.
•Sinimportarlaponderación,esimportanteobservarqueestos
atributosdelacalidaddebentomarseencuentacuandocomienza
eldiseño,nocuandohayaterminadoésteylaconstrucciónse
encuentreenmarcha.
EVOLUCIÓN DEL DISEÑO DE SOFTWARE
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Esunprocesoqueyallevacercadeseisdécadas.
•Losprimerostrabajosseconcentrabanencriteriosparael
desarrollodeprogramasmodularesymétodosparamejorar
estructurasdesoftwareconenfoquedearribaabajo.
•Losaspectosdeprocedimientodeldiseñoevolucionaronhaciauna
filosofíallamadaprogramaciónestructurada.
•Lostrabajosposteriorespropusieronmétodosparatraducirelflujo
dedatosolaestructuradeéstosaunadefinicióndediseño.
•Losenfoquesmásnuevosproponenunenfoqueorientadoa
objetos.
•Ahoraúltimosehacentradoenlaarquitecturadeésteypatrones
dediseñoautilizar.
EVOLUCIÓN DEL DISEÑO DE SOFTWARE
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Todoslosmétodosdediseñotienenalgunascaracterísticasen
común:
•Unmecanismoparatraducirelmodeloderequerimientosen
unarepresentacióndeldiseño.
•Unanotaciónpararepresentarlascomponentesfuncionalesy
susinterfaces.
•Unaheurísticaparamejoraryhacerparticiones
•Lineamientosparaevaluarlacalidad.
•Sinimportarelmétododediseñoqueseutilice,debeaplicarseun
conjuntodeconceptosbásicosaldiseñoenelniveldedatos,
arquitectura,interfazycomponente.
CONCEPTOS DE DISEÑO
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Laevolucióndelosconceptosfundamentalessobresudiseño,ha
pasadolapruebadeltiempo,ytodoslosconceptossirvenpara
responderlaspreguntas:
•¿Quécriteriosseusanparadividirelsoftwareensus
componentesindividuales?
•¿Cómoseextraenlosdetallesdelafunciónolaestructurade
datosdelarepresentaciónconceptualdelsoftware?
•¿Cuálessonloscriteriosuniformesquedefinenlacalidad
técnicadeundiseñodesoftware?
•“Elprincipiodelasabiduríaesreconocerladiferenciaquehayentre
hacerqueunprogramafuncioneylograrquelohagabien”.(M.A.
Jackson,1975)
•Losconceptosfundamentalesdeldiseñodesoftwareproveenla
estructuranecesariapara“hacerlobien”.
CONCEPTOS DE DISEÑO -ABSTRACCIÓN
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Esposibleplantearmuchosnivelesdeabstracción.
•Enelmáselevadoseenunciaunasoluciónentérminos
gruesosconelusodellenguajedelambientedelproblema.
•Ennivelesmásbajosdeabstracciónsedaladescripciónmás
detalladadelasolución
•Enelniveldeabstracciónmásbajoseplantealasolución,demodo
quepuedaimplementarsedirectamente.
•Unaabstraccióndeprocedimientoesunasecuenciade
instruccionesquetienenunafunciónespecíficaylimitada,se
omitendetallesespecíficos.
•Unaabstraccióndedatosesunconjuntodeéstosconnombreque
describeaunobjetodedatos.
CONCEPTOS DE DISEÑO -ARQUITECTURA
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Aludeala“Estructurageneraldeésteyalasformasenlasqueesta
daintegridadconceptualaunsistema”.
•Laarquitecturaeslaestructuradeorganizacióndeloscomponentes
deunprograma(módulos),laformaenlaqueéstosinteractúanyla
estructuradedatosqueutilizan.
•Unametadeldiseñodelsoftwareesobtenerunaaproximación
arquitectónicadeunsistema.Éstasirvecomoestructuraapartirde
lacualserealizanlasactividadesdediseñomásdetalladas.
•Unconjuntodepatronesarquitectónicospermitequeelingeniero
desoftwareresuelvaproblemasdediseñocomunes.
CONCEPTOS DE DISEÑO -ARQUITECTURA
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Propiedadesquedebenespecificarsecomopartedeldiseñodela
arquitectura:
•Propiedadesestructurales:Esteaspectodelarepresentación
deldiseñoarquitectónicodefineloscomponentesdeun
sistema(módulos,objetos,filtros,etc.)ylamaneraenlaque
estánagrupadoseinteractúanunosconotros.Porejemplo,los
objetosseagrupanparaqueencapsulentantodatoscomoel
procedimientoquelosmanipulaeinteractúeninvocando
métodos.
•Propiedadesextrafuncionales:Ladescripcióndeldiseño
arquitectónicodebeabordarlaformaenlaquelaarquitectura
deldiseñosatisfacelosrequerimientosdedesempeño,
capacidad,confiabilidad,seguridadyadaptabilidad,asícomo
otrascaracterísticasdelsistema.
•Familiasdesistemasrelacionados:Eldiseñoarquitectónico
debebasarseenpatronesrepetiblesqueescomúnencontrar
eneldiseñodefamiliasdesistemassimilares.Enesencia,el
diseñodebetenerlacapacidaddereutilizarbloquesde
construcciónarquitectónica.
•Pararepresentarestosmodelos,sehadesarrolladociertonúmero
delenguajesdedescripciónarquitectónica(LDA).
CONCEPTOS DE DISEÑO -PATRONES
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•“Esunamezclaconnombrepropiodepuntosdevistaquecontienen
laesenciadeunasolucióndemostradaparaunproblemarecurrente
dentrodeciertocontextodenecesidadesencompetencia”
•Unpatróndediseñodescribeunaestructuradediseñoque
resuelveunproblemaparticulardeldiseñodentrodeuncontexto
específicoyentre“fuerzas”queafectanlamaneraenlaquese
aplicayenlaqueseutilizadichopatrón.
•Elobjetivodecadapatróndediseñoesproporcionaruna
descripciónquepermitaaundiseñadordeterminar:
1.Sielpatrónesaplicablealtrabajoencuestión.
2.Sipuedevolverseausar(conloqueseahorratiempode
diseño)
3.Sisirvecomoguíaparadesarrollarunpatróndistintoen
funcionesoestructura.
CONCEPTOS DE DISEÑO –DIVISIÓN DE
PROBLEMAS
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Ladivisióndeproblemasesunconceptodediseñoquesugiereque
cualquierproblemacomplejopuedemanejarseconmásfacilidadsise
subdivideenelementossusceptiblesderesolverseuoptimizarsedemanera
independiente.
•Unproblemaesunacaracterísticaocomportamientoqueseespecificaenel
modelodelosrequerimientosparaelsoftware.
•Alsepararunproblemaensuspiezasmáspequeñasyporellomás
manejables,serequieremenosesfuerzoytiempopararesolverlo.
•Siparadosproblemas,p1yp2,lacomplejidadquesepercibeparap1es
mayorquelapercibidaparap2,entoncesseconcluyequeelesfuerzo
requeridopararesolverp1esmayorqueelnecesariopararesolverp2.
Comocasogeneral,esteresultadoesintuitivamenteobvio.Llevamás
tiemporesolverunproblemadifícil.
•Seconcluyequecuandosecombinandosproblemas,confrecuenciala
complejidadpercibidaesmayorquelasumadelacomplejidadtomadapor
separado.Estollevaalaestrategiadedivideyvencerás,puesesmásfácil
resolverunproblemacomplejosisedivideenelementosmanejables.
CONCEPTOS DE DISEÑO –MODULARIDAD
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Elsoftwaresedivideencomponentesconnombresdistintosy
abordablesporseparado,enocasionesllamadosmódulos,quese
integranparasatisfacerlosrequerimientosdelproblema.
•Lamodularidadeselúnicoatributodelsoftwarequepermiteque
unprogramaseamanejableenlointelectual.Eldiseñodebe
descomponerseenmuchosmódulosconlaesperanzadequesea
másfácilentenderlosyreducirelcostorequeridoparaelaborarel
software.
Modularidad y costo del software
(Software Engineering_ A Practitioner's Approach - Pressman)
CONCEPTOS DE DISEÑO –OCULTAMIENTO
DE INFORMACIÓN
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Lamodularidadllevaalapregunta:“¿Cómodescomponeruna
solucióndesoftwareparaobtenerelmejorconjuntodemódulos?”.
•Elprincipiodelocultamientodeinformaciónsugierequelos
módulosse“caractericenpordecisionesdediseñoqueseoculten
(cadauna)delasdemás”.
•Debenespecificarseydiseñarsemódulos,deformaquela
información(algoritmosydatos)contenidaenunmódulosea
inaccesibleparalosquenonecesitendeella.
•Elocultamientoimplicaquelamodularidadefectivaselogra
definiendounconjuntodemódulosindependientesque
intercambiensóloaquellainformaciónnecesariaparalograrla
funcióndelsoftware.
CONCEPTOS DE DISEÑO –OCULTAMIENTO
DE INFORMACIÓN
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Laabstracciónayudaadefinirlasentidadesdeprocedimiento(o
informativas)queconstituyenelsoftware.Elocultamientodefiney
hacecumplirlasrestriccionesdeaccesotantoalosdetallesde
procedimientocomoacualquierestructuradedatoslocalque
utiliceelmódulo.
•Elusodelocultamientodeinformacióncomocriteriodediseño
paralossistemasmodularesproporcionalosmáximosbeneficios
cuandoserequierehacermodificacionesdurantelaspruebas,y
másadelante,aldarmantenimientoalsoftware.Debidoaquela
mayoríadelosdatosydetallesdelprocedimientoquedanocultos
paraotraspartesdelsoftware,esmenosprobablequeloserrores
inadvertidosintroducidosdurantelamodificaciónsepropaguena
distintossitiosdentrodelsoftware.
CONCEPTOS DE DISEÑO –INDEPENDENCIA
FUNCIONAL
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Elconceptodeindependenciafuncionalesresultadodirectodela
separacióndeproblemasydelosconceptosdeabstraccióny
ocultamientodeinformación.
•Debediseñarsesoftwaredemaneraquecadamóduloresuelvaun
subconjuntoespecíficoderequerimientosytengaunainterfaz
sencillacuandoseveadesdeotraspartesdelaestructuradel
programa.
•Elsoftwareconmodularidadeficaz,esdecir,conmódulos
independientes,esmásfácildedesarrollarporquesufunciónse
subdivideylasinterfacessesimplifican.
•Losmódulosindependientessonmásfácilesdemantener(y
probar)debidoaquelosefectossecundarioscausadosporel
diseñooporlamodificacióndelcódigosonlimitados,sereducela
propagacióndelerroryesposibleobtenermódulosreutilizables.
CONCEPTOS DE DISEÑO –INDEPENDENCIA
FUNCIONAL
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Laindependenciaseevalúaconelusodedoscriterioscualitativos:
lacohesiónyelacoplamiento.
•Lacohesiónesunindicadordelafortalezarelativafuncional
deunmódulo.
•Elacoplamientoloesdelaindependenciarelativaentre
módulos.
•Unmódulocohesivoejecutaunasolatarea,porloquerequiere
interactuarpococonotroscomponentes.
•Debe(idealmente)hacersólounacosa.
•Siempredebetratarsedelograrmuchacohesión(porejemplo,una
solatarea),confrecuenciaesnecesarioyaconsejablehacerqueun
componentedesoftwarerealicefuncionesmúltiples.
•Paralograrunbuendiseñohayqueevitarloscomponentesque
llevanacabofuncionesnorelacionadas.
CONCEPTOS DE DISEÑO –INDEPENDENCIA
FUNCIONAL
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Laindependenciaseevalúaconelusodedoscriterioscualitativos:
lacohesiónyelacoplamiento.
•Lacohesiónesunindicadordelafortalezarelativafuncional
deunmódulo.
•Elacoplamientoloesdelaindependenciarelativaentre
módulos.
•Elacoplamientoesunaindicacióndelainterconexiónentre
módulosenunaestructuradesoftware,ydependedela
complejidaddelainterfazentremódulos,delgradoenelquese
entraosehacereferenciaaunmóduloydequédatospasana
travésdelainterfaz.
•Eneldiseñodesoftware,debebuscarseelmínimoacoplamiento
posible.
•Laconectividadsimpleentremódulosdacomoresultadoun
softwarequeesmásfácildeentenderymenospropensoal“efecto
deoleaje”,ocasionadocuandoocurrenerroresenunsitioyse
propaganportodoelsistema.
CONCEPTOS DE DISEÑO –REFINAMIENTO
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Unprogramaseelaborapormediodelrefinamientosucesivodelos
detallesdelprocedimiento.
•Elrefinamientoesunprocesodeelaboración.
•Secomienzaconunenunciadodelafunción(odescripcióndela
información),definidaenunniveldeabstracciónalto.
•Elenunciadodescribelafunciónoinformacióndemanera
conceptual,peronodicenadasobrelostrabajosinternosdela
funciónodelaestructurainternadelainformación.
•Despuéssetrabajasobreelenunciadooriginal,dandomásy
másdetallesconformetienelugarelrefinamiento
(elaboración)sucesivo.
•Laabstracciónyelrefinamientosonconceptoscomplementarios.
•Abstracción:Permiteespecificarinternamenteel
procedimientoylosdatos,peroeliminalanecesidaddeque
los“extraños”conozcanlosdetallesdebajonivel.
•Refinamiento:Ayudaarevelarestosdetallesamedidaque
avanzaeldiseño.Ambosconceptospermitencrearunmodelo
completodeldiseñoconformeésteevoluciona.
CONCEPTOS DE DISEÑO –ASPECTOS
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Idealmente,unmodeloderequerimientosseorganizademanera
quepermitaaislarcadapreocupación(requerimiento)afinde
considerarlaenformaindependiente.Sinembargo,enlapráctica,
algunasdeestaspreocupacionesabarcantodoelsistemaynoes
fácildividirlasencompartimientos.
•Enuncontextoideal,unaspectoseimplementacomomódulo
(componente)separadoynocomofragmentosdesoftware
“dispersos”o“regados”enmuchoscomponentes.Paralograresto,
laarquitecturadeldiseñodebeapoyarunmecanismoparadefinir
aspecto:unmóduloquepermitaimplementarlapreocupaciónen
todasaquellasconlasqueinterfiera.
CONCEPTOS DE DISEÑO –REDISEÑO
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•“Eselprocesodecambiarunsistemadesoftwareenformatalque
nosealteraelcomportamientoexternodelcódigo[diseño],perosí
semejorasuestructurainterna”.(Flower,2000)
•Cuandoserediseñaelsoftware,seexaminaeldiseñoexistenteen
buscaderedundancias,elementosdediseñonoutilizados,
algoritmosineficientesoinnecesarios,estructurasdedatosmal
construidasoinapropiadasycualquierotrafalladeldiseñoque
puedacorregirseparaobtenerundiseñomejor.
CONCEPTOS DE DISEÑO –CLASES DE DISEÑO
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Elmodeloderequerimientosdefineunconjuntodeclasesde
análisis.
•Cadaunadescribealgúnelementodeldominiodelproblemay
secentraenaspectosdeéstequesonvisiblesparaelusuario.
•Elniveldeabstraccióndeunaclasedeanálisisesrelativamente
alto.
•Puedendesarrollarsecincotiposdiferentesdeclasesdediseño,
cadaunadelascualesrepresentaunacapadistintadela
arquitecturadeldiseño:
•Clasesdeusuariodelainterfaz.Definentodaslas
abstraccionesnecesariasparalainteracciónhumano-
computadora(IHC).
•Clasesdeldominiodenegocios.Esfrecuentequesean
refinamientosdelasclasesdeanálisisdefinidasantes.Las
clasesidentificanlosatributosyservicios(métodos)quese
requierenparaimplementaralgunoselementosdeldominio
denegocios.
•Clasesdeproceso.Implantanabstraccionesdenegociosde
bajonivelqueserequierenparaadministrarporcompletolas
clasesdedominiodenegocios
CONCEPTOS DE DISEÑO –CLASES DE DISEÑO
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Elmodeloderequerimientosdefineunconjuntodeclasesde
análisis.
•Cadaunadescribealgúnelementodeldominiodelproblemay
secentraenaspectosdeéstequesonvisiblesparaelusuario.
•Elniveldeabstraccióndeunaclasedeanálisisesrelativamente
alto.
•Puedendesarrollarsecincotiposdiferentesdeclasesdediseño,
cadaunadelascualesrepresentaunacapadistintadela
arquitecturadeldiseño:
•Clasespersistentes.Representanalmacenamientosdedatos
(porejemplo,unabasededatos)quepersistiránmásalládela
ejecucióndelsoftware.
•Clasesdesistemas.Implantanlasfuncionesdeadministración
ycontroldelsoftwarequepermitenqueelsistemaopereyse
comuniquedentrodesuambientedecomputaciónyconel
mundoexterior.
CONCEPTOS DE DISEÑO –CLASES DE DISEÑO
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Definencuatrocaracterísticasdelasclasesdediseñobien
formadas:
•Completaysuficiente.Unaclasedediseñodebeserelencapsulado
totaldetodoslosatributosymétodosquesearazonableesperaryque
existanparalaclase.
•Primitivismo.Losmétodosasociadosconunaclasedediseñodeben
centrarseenelcumplimientodeunservicioparalaclase.Unavez
implementadoelservicioconunmétodo,laclasenodebeproveer
otromododehacerlomismo.
•Muchacohesión.Unaclasedediseñocohesivatieneunconjunto
pequeñoycentradoderesponsabilidades;paraimplementarlas
empleaatributosymétodosdeobjetivoúnico.
•Pocoacoplamiento.Dentrodelmodelodediseño,esnecesarioquelas
clasesdediseñocolaborenunaconotra.Sinembargo,lacolaboración
debemantenerseenunmínimoaceptable.Siunmodelodediseño
estámuyacoplado,elsistemaesdifícildeimplementar,probary
mantenerconelpasodeltiempo.
•Engeneral,lasclasesdediseñodentrodeunsubsistemadebentener
sólounconocimientolimitadodeotrasclases.Estarestricciónsellama
LeydeDemeterysugierequeunmétodosólodebeenviarmensajesa
métodosqueestánenclasesvecinas.
EL MODELO DE DISEÑO
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
Dimensiones del modelo de diseño
(Software Engineering_ A Practitioner's Approach - Pressman)
EL MODELO DE DISEÑO
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Ladimensióndelprocesoindicalaevolucióndelmodelodeldiseño
conformeseejecutanlastareasdeéstecomopartedelprocesodel
software.Ladimensióndelaabstracciónrepresentaelnivelde
detalleamedidaquecadaelementodelmodelodeanálisisse
transformaenunequivalentedediseñoyluegosemejoraenforma
iterativa.
•Lalíneapunteadaindicalafronteraentrelosmodelosdeanálisisy
dediseño.
EL MODELO DE DISEÑO –ELEMENTOS DEL
DISEÑO DE DATOS
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Eldiseñodedatos(oarquitecturadedatos)creaunmodelode
datosoinformaciónqueserepresentaenunniveldeabstracción
elevado.
•Estemodelodelosdatosserefinadespuésenformaprogresiva
haciarepresentacionesmásespecíficasdelaimplementaciónque
puedanserprocesadas.
•Enmuchasaplicacionesdesoftware,laarquitecturadelosdatos
tendráunainfluenciaprofundaenlaarquitecturadelsoftwareque
debeprocesarlo.
EL MODELO DE DISEÑO –ELEMENTOS DEL
DISEÑO DE DATOS
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Laestructuradelosdatossiemprehasidoparteimportantedel
diseñodesoftware.
•Enelniveldecomponentesdelprograma,deldiseñodelas
estructurasdedatosydelosalgoritmosrequeridospara
manipularlos,esesenciallacreacióndeaplicacionesdealtacalidad.
•Enelniveldelaaplicación,latraduccióndeunmodelodedatos
(obtenidocomopartedelaingenieríadelosrequerimientos)auna
basededatosescrucialparalograrlosobjetivosdenegociosdeun
sistema.
•Enelniveldenegocios,elconjuntodeinformaciónalmacenadaen
basesdedatosincompatiblesyreorganizadosenun“data
warehouse”permitelamineríadedatosodescubrimientode
conocimientoquetieneunefectoeneléxitodelnegocioensí.
•Encadacaso,eldiseñodelosdatosjuegaunpapelimportante.
EL MODELO DE DISEÑO –ELEMENTOS DEL
DISEÑO ARQUITECTÓNICO
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Eldiseñodelaarquitecturadelsoftwareeselequivalentedelplano
deunacasa.
•
•Loselementosdeldiseñodelaarquitecturadanlavisióngeneral
delsoftware.
•Elmodeloarquitectónicoprovienedetresfuentes:
1.Informaciónsobreeldominiodelaaplicacióndelsoftware
quesevaaelaborar.
2.Loselementosespecíficosdelmodeloderequerimientos,
talescomodiagramasdeflujodedatosoclasesdeanálisis,
susrelacionesycolaboracionesparaelproblemaencuestión.
3.Ladisponibilidaddeestilosarquitectónicosysuspatrones.
•Elelementodediseñoarquitectónicoseilustracomounconjunto
desistemasinterconectados,confrecuenciaobtenidosde
paquetesdeanálisisdentrodelmodeloderequerimientos.
•Cadasubsistemapuedetenersupropiaarquitectura.
EL MODELO DE DISEÑO –ELEMENTOS DEL
DISEÑO DE LA INTERFAZ
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Eldiseñodelainterfazparaelsoftwareesanálogoalconjuntode
trazos(yespecificaciones)detalladasparalaspuertas,ventanase
instalacionesdeunacasa.
•Loselementosdediseñodelainterfazdelsoftwarepermitenquela
informaciónfluyahaciadentroyafueradelsistema,ycómoestán
comunicadosloscomponentesquesonpartedelaarquitectura.
•Haytreselementosimportantesdeldiseñodelainterfaz:
1.Lainterfazdeusuario(IU).
2.Lasinterfacesexternasquetienenqueverconotrossistemas,
dispositivos,redesyotrosproductoresoconsumidoresde
información.
3.Interfacesinternasqueinvolucranalosdistintoscomponentes
deldiseño.
•Estoselementosdeldiseñodelainterfazpermitenqueelsoftware
secomuniqueexternamenteypermitalacomunicacióny
colaboracióninternasentreloscomponentesqueconstituyenla
arquitecturadelsoftware.
EL MODELO DE DISEÑO –ELEMENTOS DEL
DISEÑO DE LA INTERFAZ
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•EldiseñodelaIU(denominadacadavezconmásfrecuenciadiseño
delausabilidad)esunaacciónprincipaldelaingenieríade
software.
•Eldiseñodelausabilidadincorporaelementosestéticos(como
distribución,color,gráficos,mecanismosdeinteracción,etc.),
elementosergonómicos(porejemplo,distribuciónycolocaciónde
lainformación,metáforas,navegaciónporlaIU,etc.)yelementos
técnicos(comopatronesdelaIUypatronesreutilizables).
•Engeneral,laIUesunsubsistemaúnicodentrodelaarquitectura
generaldelaaplicación.
EL MODELO DE DISEÑO –ELEMENTOS DEL
DISEÑO DE LA INTERFAZ
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Eldiseñodeinterfacesexternasrequiereinformacióndefinitiva
sobrelaentidadalaqueseenvíainformaciónodesdelaquese
recibe.
•Entodocaso,estainformacióndeberecabarsedurantelaingeniería
derequerimientosyverificarseunavezquecomienzaeldiseñode
lainterfaz.
•Eldiseñodeinterfacesexternasdebeincorporarlarevisiónen
buscadeerroresy(cuandoseanecesario)lasmedidasdeseguridad
apropiadas.
EL MODELO DE DISEÑO –ELEMENTOS DEL
DISEÑO EN EL NIVEL DE LOS COMPONENTES
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Eldiseñoenelniveldeloscomponentesdelsoftwareesel
equivalentedelosplanos(yespecificaciones)detalladosdecada
habitacióndelacasa.
•Eldiseñodecomponentesparaelsoftwaredescribeporcompleto
losdetallesinternosdecadacomponente.
•Paralograrlo,estediseñodefineestructurasdedatosparatodoslos
objetosdedatoslocalesydetallesalgorítmicosparatodoel
procesamientoquetienelugardentrodeuncomponente,asícomo
lainterfazquepermiteelaccesoatodaslasoperacionesdelos
componentes(comportamientos).
Diagrama de componentes
(Software Engineering_ A Practitioner's Approach - Pressman)
EL MODELO DE DISEÑO –ELEMENTOS DEL
DISEÑO DEL DESPLIEGUE
Introducción
Diseño en el
contexto de la
ingeniería de
software
El proceso de
diseño
Conceptos de
diseño
El modelo de
diseño
•Loselementosdeldiseñodeldespliegueindicanlaformaenlaque
seacomodaránlafuncionalidaddelsoftwareylossubsistemas
dentrodelambientefísicodelacomputaciónqueloapoyará.
Diagrama de despliegue
(Software Engineering_ A Practitioner's Approach - Pressman)
•Conceptos de diseño (Pressman --> Capítulo 12)
BIBLIOGRAFÍA DE LA CLASE