Nov 1ro, Jueves 2018... · 2020-03-04 · Alta Cohesión Funcional Bajo Acoplamiento Pocas...

13
Nov 1ro, Jueves Prof. Esp. Ing. José María Sola 243

Transcript of Nov 1ro, Jueves 2018... · 2020-03-04 · Alta Cohesión Funcional Bajo Acoplamiento Pocas...

Page 1: Nov 1ro, Jueves 2018... · 2020-03-04 · Alta Cohesión Funcional Bajo Acoplamiento Pocas dependencias Depedencia sobre abstracciones, no sobre implementaciones 2015/04/08/high-cohesion-loose-coupling

Nov1ro,Jueves

Prof. Esp. Ing. José María Sola 243

Page 2: Nov 1ro, Jueves 2018... · 2020-03-04 · Alta Cohesión Funcional Bajo Acoplamiento Pocas dependencias Depedencia sobre abstracciones, no sobre implementaciones 2015/04/08/high-cohesion-loose-coupling

Agendaparaestaclase� Módulos� CasodeEstudio:UndodeunCli

Prof. Esp. Ing. José María Sola 244

Page 3: Nov 1ro, Jueves 2018... · 2020-03-04 · Alta Cohesión Funcional Bajo Acoplamiento Pocas dependencias Depedencia sobre abstracciones, no sobre implementaciones 2015/04/08/high-cohesion-loose-coupling
Page 4: Nov 1ro, Jueves 2018... · 2020-03-04 · Alta Cohesión Funcional Bajo Acoplamiento Pocas dependencias Depedencia sobre abstracciones, no sobre implementaciones 2015/04/08/high-cohesion-loose-coupling

MódulosenC++yAnalogíaconCélulas

Prof. Esp. Ing. José María Sola 246

Interfaz Pública

Imple- mentación

Privada

Módulo.h

Módulo.cpp

Sistema Célula Módulo C++ •  Sistemas

abiertos •  Interfaces •  Parte

pública •  Parte

privada •  Relaciones

con otros sistemas

•  Membrana celular

•  Pasaje de información através proteínas de transporte en

•  Núcleo con estructura interna privada

•  Interfaz, contrato,

•  Invocaciones •  Envío de

mensajes •  Estado •  Comportamiento •  Elementos

privados

•  .h (Membrana) •  Tipos públicos •  Prototipos públicos •  Obejtos públicos

•  .cpp (Núcleo) •  Estructura de datos privada •  Método (i.e., forma de responder

el mensaje) privado •  Objetos, Tipos y Funciones

auxiliares

Page 5: Nov 1ro, Jueves 2018... · 2020-03-04 · Alta Cohesión Funcional Bajo Acoplamiento Pocas dependencias Depedencia sobre abstracciones, no sobre implementaciones 2015/04/08/high-cohesion-loose-coupling

�  Sistemas�  Conjuntodeelementosrelacionadosconunbjetivoencomún

�  Jerarquía:SistemasySubssitemas

� Programa�  Conjuntodemódulosrelacionadosentresíconunobjetivoencomún

�  Jerarquía

� C++�  Relacióndenotataporincludes

�  Includequeimporta�  "Dependede"

�  Includequeexporta�  "Implementa"

DependenciasentreMódulos

Page 6: Nov 1ro, Jueves 2018... · 2020-03-04 · Alta Cohesión Funcional Bajo Acoplamiento Pocas dependencias Depedencia sobre abstracciones, no sobre implementaciones 2015/04/08/high-cohesion-loose-coupling

� AltaCohesión�  Funcional

� BajoAcoplamiento�  Pocasdependencias� Depedenciasobreabstracciones,nosobreimplementaciones

� https://thebojan.ninja/2015/04/08/high-cohesion-loose-coupling

�  OcultamientodeInformación�  Queelclientenonecesiteconocerlosdetallesdelaimplementaciónparausarlaabstracción

�  Encapsulamiento�  Bloquearalclienteelaccesoalosdetallesdelaimplementación�  Keywordstaticparacerrarlos

porosdelamembrana�  Forwarddeclarationpara

punterosaobjetosconestructuradesconocida

AtributosdeCalidaddeMódulos

Prof. Esp. Ing. José María Sola 248

Page 7: Nov 1ro, Jueves 2018... · 2020-03-04 · Alta Cohesión Funcional Bajo Acoplamiento Pocas dependencias Depedencia sobre abstracciones, no sobre implementaciones 2015/04/08/high-cohesion-loose-coupling

CasodeEstudio

Page 8: Nov 1ro, Jueves 2018... · 2020-03-04 · Alta Cohesión Funcional Bajo Acoplamiento Pocas dependencias Depedencia sobre abstracciones, no sobre implementaciones 2015/04/08/high-cohesion-loose-coupling

$ cli > comando1 comando1 > comando2 comando2 > comando3 comando3 > undo comando3 undone > comando4 comando4 > undo comando4 undone > undo comando2 undone > undo comando1 undone > undo No hay nada para deshacer > quit Bye! $

�  Comandos�  Echo�  Undo�  Quit

�  Diseño�  DiseñarMódulos�  DiseñarInterfaces�  DiseñarRelaciones

�  Backlogdefeatures�  ComandosCaseinsensitive�  ComandoRedo�  ComandoRepeat/DoOver�  Historialdecomandosentresesiones

�  Save�  Load

�  Evaluacióndeexpresiónennotaciónpolacainversa

�  Evaluacióndeexpresionesennotacióninfija

�  Variables

Cli–UsoyDiseño

Prof. Esp. Ing. José María Sola 250

Page 9: Nov 1ro, Jueves 2018... · 2020-03-04 · Alta Cohesión Funcional Bajo Acoplamiento Pocas dependencias Depedencia sobre abstracciones, no sobre implementaciones 2015/04/08/high-cohesion-loose-coupling

SistemadeMódulosyDependencias–Células

�  ¿Agregaríaoremoveríaalgúnmódulo?¿Cuál?¿Porqué?

Page 10: Nov 1ro, Jueves 2018... · 2020-03-04 · Alta Cohesión Funcional Bajo Acoplamiento Pocas dependencias Depedencia sobre abstracciones, no sobre implementaciones 2015/04/08/high-cohesion-loose-coupling

InterfaceseImplementaciones�  ¿AnalicetheStack?�  ¿Quées?�  ¿Cuálessu

tipo?

�  ¿Quéotromóduloagregaríayporqué?

Page 11: Nov 1ro, Jueves 2018... · 2020-03-04 · Alta Cohesión Funcional Bajo Acoplamiento Pocas dependencias Depedencia sobre abstracciones, no sobre implementaciones 2015/04/08/high-cohesion-loose-coupling

StructureChart–CartaEstructurada

�  ¿Porquénoestánnicoutnicin?

Page 12: Nov 1ro, Jueves 2018... · 2020-03-04 · Alta Cohesión Funcional Bajo Acoplamiento Pocas dependencias Depedencia sobre abstracciones, no sobre implementaciones 2015/04/08/high-cohesion-loose-coupling
Page 13: Nov 1ro, Jueves 2018... · 2020-03-04 · Alta Cohesión Funcional Bajo Acoplamiento Pocas dependencias Depedencia sobre abstracciones, no sobre implementaciones 2015/04/08/high-cohesion-loose-coupling