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

Post on 17-Apr-2020

2 views 0 download

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

Nov1ro,Jueves

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

Agendaparaestaclase� Módulos� CasodeEstudio:UndodeunCli

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

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

�  Sistemas�  Conjuntodeelementosrelacionadosconunbjetivoencomún

�  Jerarquía:SistemasySubssitemas

� Programa�  Conjuntodemódulosrelacionadosentresíconunobjetivoencomún

�  Jerarquía

� C++�  Relacióndenotataporincludes

�  Includequeimporta�  "Dependede"

�  Includequeexporta�  "Implementa"

DependenciasentreMódulos

� 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

CasodeEstudio

$ 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

SistemadeMódulosyDependencias–Células

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

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

tipo?

�  ¿Quéotromóduloagregaríayporqué?

StructureChart–CartaEstructurada

�  ¿Porquénoestánnicoutnicin?