You are on page 1of 6

Los ingenieros utilizan modelos

La primera parte de este libro fue acerca de la arquitectura de software y el riesgo.


Se le aconsej que construir modelos de la arquitectura , los modelos que eran lo
suficientemente buenos para mitigar sus riesgos. Pero no dijo cmo construir esos
modelos o lo que haba en ellos, por lo que esta parte del libro se describen los
conceptos y notaciones que necesitar arquitectura de software. No tenga miedo
de los modelos detallados de arquitectura se encuentra en esta parte del libro. La
intencin no es darle vuelta en un arquitecto torre de marfil o un generador de
software de estantera . Empezamos con un captulo que describe cmo se utilizan
los modelos de ingeniera.
Cuando yo estaba en la secundaria , le pregunt a mi padre en busca de ayuda
con mi tarea de clculo . Me sorprend al saber que , a pesar de su trabajo como
ingeniero desde la universidad , su conocimiento del clculo estaba oxidado y rara
vez lo us . Tambin me dijo que su empresa slo contrata ingenieros que saban
clculo - no porque tenan que aplicar el clculo en el trabajo, pero debido a su
formacin de ingeniera que incluye el clculo les dio la capacidad para resolver
problemas usando la abstraccin y modelos.
Algunos problemas sencillos pueden resolverse directamente, sin la abstraccin.
Cuando fachada de convicto con un problema complejo, ingenieros Mapa ese
problema en un modelo abstracto (como una ecuacin de clculo) , resuelven el
problema dentro del modelo , a continuacin, se traducen en que la solucin de
nuevo en una solucin del mundo real . Para los ingenieros , es esta capacidad de
resolver problemas usando modelos abstractos es que es esencial.
Cuando un ingeniero resuelve un problema utilizando un modelo , el proceso
global es el mismo, independientemente del tipo de modelo de . Como se muestra
en la Figura 6.1 , la meta de un ingeniero es pasar de un problema del mundo real
a una solucin del mundo real . Los problemas sencillos pueden resolverse
directamente, sin abstraccin, y un ingeniero pueden moverse directamente al otro
lado de la flecha de color gris. Los problemas que los ingenieros se les paga para
resolver , sin embargo , son ms difciles y requieren que el camino ms largo a
travs de abstracciones. El problema del mundo real est representado en el
modelo abstracto , resuelto en ese dominio de modelado , y luego de que la
solucin se hace corresponder a una solucin del mundo real. Este proceso
general es el mismo si su modelo es una ecuacin de clculo, un libro de
contabilidad , o un modelo de arquitectura .
6.1 La escala y complejidad requieren de la abstraccin
Los desarrolladores de software , ingenieros , instintivamente llegar a
abstracciones cuando sus problemas son grandes o complejas. Cuando los
desarrolladores estn razonando sobre un pequeo nmero de clases en un
programa, que pueden inspeccionar y razonar sobre esas clases directamente.
Cuando ese nmero se eleva , se puede calmar el creciente caos mediante el uso
de patrones de diseo que explicar matas de clases colaborar . Pero en algn
momento el nmero de clases es lo suficientemente grande para que los
desarrolladores llegan a abstracciones an ms grandes para dar sentido a este
programa. No es una cuestin de que se vean obligadas a nuevas abstracciones ,

sino que es una cuestin de usar los adecuados para la escala o complejidad del
problema.
Abstracciones tambin puede ser una forma ms eficiente de aprender acerca de
un sistema de inspeccin directa del cdigo fuente . Imagina que un desarrollador
quiere explicar un sistema que ya entiende a otro desarrollador. Si lo hubieran
hecho hace mucho tiempo, podran leer y discutir mucho cdigo fuente , tal vez
centenares de millares de lneas de . Pero si slo tenan un par de horas , y luego
esbozar un modelo del sistema sera ms eficaz .
Una cosa es decir que los desarrolladores de esbozar un modelo en una pizarra ,
y otra muy distinta para describir exactamente lo que deberan esbozar . Qu
aspecto tienen esos diagramas similares, y cules son las abstracciones que
representan? Esta segunda parte del libro describe un conjunto de abstracciones
que son adecuados para el modelado de la arquitectura de sistemas de software.
6.2 Abstracciones proporcionan informacin y el apalancamiento
Usted seguramente se recordar de sus clases de matemticas un problema
historia como los siguientes :
Dos trenes son 3000m de distancia y se dirigieron hacia la otra en la misma pista .
Uno viaja 10m / s , el otro 20 m / s . Cundo van a cumplir ?
Cuando su maestro introdujo este tipo de problemas , usted ya saba algo de
lgebra , por lo que podra haber resuelto un problema si se expresa como 10
veces + 20x = 3000. La intencin del maestro con el problema de historia era para
que usted aprenda cmo asignar los pisos en un modelo algebraicas y de nuevo ,
al igual que en la Figura 6.1 . Para solucionar el problema , tenas que aprender a
crear un modelo que incluy los detalles que eran pertinentes para que se hizo la
pregunta. El modelo proporciona informacin sobre el problema esencial y lgebra
proporciona apalancamiento para resolverlo. El dominio de los trenes que no dio
ninguna visin o apalancamiento en particular, sino un modelo algebraico hizo.
Lo ideal es que la arquitectura de software sera solucionable y universal como el
lgebra. Modelado de Arquitectura rara vez es tan simple como el problema del
tren, pero los modelos de arquitectura puede dar una idea y el apalancamiento.
Con el modelo adecuado, puede hacer cosas como encontrar posibles vectores
de intrusin , identificar cuellos de botella y la latencia de estimacin. Esto es
importante ya que los desarrolladores necesitan para razonar acerca de algo ms
que las caractersticas de un sistema , sino que necesitan de razonar acerca de
sus cualidades tambin.
6.3 Razonamiento acerca de las cualidades del sistema
Hace poco asist a una conferencia sobre la construccin de sitios web escalables.
El presentador discutieron tecnologa X, su incapacidad para hacer de la
tecnologa X carrera rpidamente, y su cambio exitoso a Y. tecnologa Describi la
compacidad de la nueva lengua utilizada en la tecnologa de Y , la mejora de las
interfaces, su extensibilidad y finalmente present las cifras de rendimiento ha
mejorado mucho por su sitio Web.
Bajo todos estos detalles, no obstante, haba una pepita de penetracin que se
encuentran, que era que los datos de la tecnologa X almacenado en una jerarqua
y Tecnologa de almacenado plano. Ambos utilizaron bases de datos relacionales ,
sino una solicitud de pgina Web en la tecnologa X requiere, en promedio veinte

consultas de bases de datos para recuperar los datos jerrquicos , y Tecnologa de


requiere slo una. Sustancialmente la totalidad de las diferencias de rendimiento
entre la tecnologa X e Y se puede remontar a esa nica diferencia . Al evaluar el
rendimiento , se puede pasar por alto las cualidades tecnologa de Y a excepcin
de la eleccin de representacin de datos . Pero cmo se puede llegar a esa
conclusin?
Para razonar sobre las propiedades del sistema , debe tener un modelo en la
cabeza que le ayuda a organizar y dar sentido a los detalles , algo as como el
boceto (es decir , de la historieta ) en la Figura 6.2 . Ese modelo de modo
simplificado, que funciona para ambas tecnologas X e Y , pero es suficiente para
analizar los datos que se conozcan . Cada solicitud web que viene en requerir
algn tiempo el mensaje de transporte , algn tipo de procesamiento en el
servidor, y un nmero de consultas a la base de datos. Si asigna algunos nmeros
posibles a estas variables , como por ejemplo 10 ms de tiempo de transporte de
mensajes , 10 ms para el tiempo de procesamiento del servidor , y 25 ms para el
tiempo para consultar la base de datos de una vez, es claro que las consultas de
base veinte van a ralentizar el sistema hacia abajo. Este modelo no tiene en
cuenta factores como el almacenamiento en cach y hacer cola, pero incluso este
modelo simple se vuelve un montn de hechos en un problema que se puede
analizar .
Modelos de arquitectura son una buena manera de entender y abordar temas
espinosos ser las causas que pueden cortar a travs de los detalles extraos y
ayudarle a concentrarse en los elementos y relaciones esenciales hacer
predicciones y evaluar alternativas . Si estaba en marcha un sitio web en la
tecnologa X, cdigo ajustes no solucionara el problema rendimiento. Su xito
depender de buscar entre el desorden de datos para descubrir cmo el de
representacin de datos en la tecnologa X obstaculizada rendimiento.
6.4 Modelos Elide detalles
Cuando razonadas sobre cuando dos trenes se reunirn , se elide con seguridad
el color de los trenes y otros muchos detalles . Cuando razon sobre el
rendimiento de un sitio web, elidido detalles como el lenguaje de programacin .
Modelos , por su naturaleza, Elide detalles. "En esencia , todos los modelos estn
equivocados, pero algunos son tiles . " (Caja y Draper, 1987 )
Para crear un modelo de utilidad , se debe elegir de incluir los detalles de la
derecha al reducir de limpieza a los dems bajo la alfombra. Incluyendo detalles
irrelevantes agrega el desorden , lo que hace el modelo ms difcil para que usted
pueda razonar acerca . La introduccin de este libro analiza el modelado de una
ruta en coche desde Nueva York a Los Angeles utilizando carreteras. Qu datos
debe incluir en un modelo para resolver ese problema ? Algunos caminos tienen
seales de madera , otras de concreto y metal otros. Esa opcin se puede omitir
con seguridad de su modelo cuando se busca el camino ms corto . Sin embargo ,
la ruta ms corta puede incluir una carretera ms pequea que una carretera, por
lo que su modelo debe incluir los caminos ms pequeos , o bien su modelo que
puede conducir a una respuesta equivocada.
Usted debe ser consciente de la tensin entre los modelos completos y utilizables
mo-delos . A veces un modelo completo del problema es demasiado difcil razonar
acerca , pero simplificando ese modelo que puede llevar a las respuestas

equivocadas (o subptimas ) . Por ejemplo , si su modelo slo incluye las


carreteras , usted no puede encontrar la ruta ms corta . Por otro lado, si su
modelo incluye todas las superficies vagamente plana y transitable
( estacionamientos, patios , caminos de fuego) y luego su modelo ser enorme y
por lo tanto ms difciles de resolver . La construccin de un modelo de utilidad por
lo general implica hacer concesiones como esta.
6.5 Los modelos pueden amplificar el razonamiento
El mismo modelo puede ser utilizado por diferentes personas para diferentes
propsitos . Existen tres niveles bsicos de habilidad modeladora : modelos de
lectura, modelos de escritura y razonamiento amplificando con los modelos .
Como se muestra grficamente en la Figura 6.3, la capacidad de leer con
precisin un modelo es el ms comn, y es un requisito previo para los dems.
Por ejemplo , los compradores de una casa de diseo personalizado que ser
capaces de leer los planos de las casas para que puedan hablar cuando los
diseos no se ajustan a sus deseos. Una situacin anloga ocurre con el
desarrollo de software a medida entre las partes interesadas y los desarrolladores
de software.
Menos personas deben ser capaces de escribir una modelo, que consiste en
asegurarse su forma documentada , o la sintaxis , es la correcta. Un diseo de la
casa tiene su origen en la mente de un diseador y se anota como planos de
modo que pueda ser compartida con las partes interesadas de la casa ( las
diversas personas que necesitan estar de acuerdo con el diseo ) . Tenga en
cuenta que los roles de diseador de modelos y el modelo de escritor pueden ser
distintos. Por ejemplo , los ponentes son especialistas modelo de escritura que por
lo general no son el diseador.
Durante el diseo de una casa, un diseador de la casa cuenta con un modelo
como una herramienta que amplifica su razonamiento , lo que le permiti disear
casas ms complejas de lo que lo hara slo con su mente y la memoria . Debe
coordinar muchos detalles y es fcil cometer errores . Durante el diseo tiene
preguntas que deben ser contestadas como, " El abrir un bloqueo de puerta de
un armario ? " Y "Cmo se necesita mucha drywall en el dormitorio? " Los errores
son probablemente si mantiene todos los detalles en su cabeza . Cuando en lugar
de eso crea un modelo , que tiene menos de una carga de memoria , puede usar
representaciones estndar que hacen que los errores ms fciles de detectar , y
puede predecir cmo la casa se va a realizar. Su uso de un modelo para ampliar
sus capacidades de razonamiento es diferente de simplemente ser capaz de leer
un modelo que otros han presentado , sino que utiliza el modelo para ayudar a
disear mejor. En el diseo de software , diseadores experimentados saben
cmo construir modelos para permitir anal -lisis , a cometer errores ms fciles de
detectar y descubrir verdades que no son inmediatamente evidentes.
6.6 pregunta primero y segundo modelo
Los diferentes modelos son buenos para diferentes cosas . Un modelo que le
ayuda a predecir tiempo de respuesta , probablemente no va a ayudar a encontrar
agujeros de seguridad. As que lo mejor es seguir esta sencilla regla: pregunta
primero y segundo modelo . Es decir, sabe qu preguntas desea que el modelo

para responder antes de construirlo . De esa manera usted tendr un tiempo ms


fcil la eleccin de su nivel de abstraccin y qu detalles que incluye.
sta es una de esas reglas que se parece sencillo, pero es fcil de violar . Si
alguna vez has hecho algn trabajo en su casa , usted puede haber odo una regla
similar : medir dos veces y cortar una vez . He roto esa regla muchas veces, y
cada vez que me encuentro a m mismo murmurando la regla en voz baja . Yo
tambin soy un fan de su corolario, que me cont un viejo amigo : "No importa
cuntas veces me lo corte , no hay nada ms tiempo!"
Puede que tenga suerte y lo cort la longitud correcta , pero por qu no slo medir
de nuevo? De manera similar, puede que tenga suerte y construir un modelo que
haga lo que quiera, pero por qu no decidir qu preguntas debe responder primero
? De esta forma el modelo ser seguro que le ayudarn .
6.7 Conclusin
Ingenieros utilizan modelos para resolver problemas grandes y complejos . Para
hacerlo, se toman el largo camino alrededor del diagrama de desplazamientos , la
creacin de un modelo abstracto de algn problema, resolverlo mediante el
modelo , entonces mapear de nuevo en la vida real. Un modelo abstracto nos
permite conocer el problema esencial , permitiendo habilidades para resolver su
problema humano para trabajar mejor . Adems, un modelo puede ofrecer
especial influencia en la solucin del problema, as como viste lgebra que
supondr un impulso para resolver los problemas de tren.
Un modelo ayuda a organizar los hechos y detalles acerca de su sistema. T viste
un ejemplo de un sitio web construido a partir de dos tecnologas diferentes con
diversos detalles diferentes . Un modelo sencillo que permiti organizar los
detalles y ver que un solo detalle , la de almacenamiento de datos vs plana
jerrquica, represent la diferencia de rendimiento entre las dos tecnologas .
Un ingrediente esencial en la modelizacin es la eleccin que detalla ser incluir y
excluir . Un modelo con demasiados detalles puede oscurecer el problema
fundamental y en HiBit tu razonamiento. Tenga en cuenta , sin embargo, que es
posible que tenga que aceptar el razonamiento imperfecto que viene con un
modelo ms pequeo ya que un modelo ms completo puede ser demasiado
grande o compleja para razonar sobre .
Algunas personas , como actores , slo necesita leer una modelo. Por ejemplo , un
comprador de casa tiene que ser capaz de leer planos lo suficientemente bien
como para tomar una decisin de compra informada . Delineantes pueden escribir
un modelo sintcticamente correcta. Pero , como desarrollador de software , su
objetivo es usar modelos para ampliar sus capacidades de razonamiento . Si usted
nunca haba sido enseado matemticas formalmente , podra probable que
todava razonar sobre problemas sencillos. Que la educacin inculca un modelo
matemtico que permite resolver problemas mucho ms difciles.
Cada vez que se genera un modelo , usted en efecto decidir no construir otros
modelos , como por ejemplo los modelos que tienen ms informacin sobre el
rendimiento o los que ignoran la seguridad . La nica manera que usted puede
elegir un modelo adecuado es saber , por adelantado , que las preguntas que
necesita ese modelo para contestar . De lo contrario, usted puede construir un

modelo insuficiente o hinchado. Un corolario es que cada vez que se genera un


modelo , debe elegir cuidadosamente su nivel de abstraccin.
6.8 Para leer ms
La idea de utilizar modelos para resolver problemas es central para toda la
ingeniera . El uso de este libro del diagrama de desplazamientos para enfatizar
los modelos viene de Mara Shaw ( Shaw y Garlan , 1996 ) .
Algunas personas pidieron construir un modelo de arquitectura tendr un tiempo
ms fcil de lo que otros, tal vez de la misma manera que algunas personas tienen
una instalacin en particular por el arte y las matemticas. Mi experiencia con la
transferencia de conocimientos de arquitectura muestra una amplia gama de
aptitudes a travs desarrolladores de software ( Fairbanks 2003 ) . Si usted se
encuentra la supervisin de la formacin o transferencia de competencias que
implica los modelos , tenga presente estos tres niveles de mente ( leer modelos ,
escribiendo modelos , amplificando razonamiento) la hora de elegir un programa .

You might also like