You are on page 1of 49

TECNOLOGÍAS PARA LA

CONSTRUCCIÓN

Integrantes:
▪ Cueva Chambilla, Christian Manuel 2015-119006
▪ Apaza Atencio Juan Pablo 2015-119015
▪ Medina Lupo, Harold Joel 2014-119030
DISEÑO Y USO DE API

2
Que es una API
▪ Es un conjunto de subrutinas, funciones y procedimientos
▪ Son usadas generalmente en las bibliotecas de
programación.
▪ Una API representa la capacidad de comunicación entre
componentes de software. Se trata del conjunto de llamadas
a ciertas bibliotecas que ofrecen acceso a ciertos servicios
desde los procesos y representa un método para conseguir
abstracción en la programación
▪ Uno de los principales propósitos de una API consiste en
proporcionar un conjunto de funciones de uso general
3
Diseño de un API
Las arquitecturas de los microservicios necesitan un buen diseño
de API, ya que todos los intercambios de datos entre servicios se
producen mediante mensajes o llamadas API
Es importante distinguir entre dos tipos de API:
▪ Las API públicas que llaman las aplicaciones cliente.
▪ Las API de back-end que se usan para la comunicación entre
servicios.

4
Implementación de una API
REST frente a RPC.
Tenga en cuenta los inconvenientes de usar una interfaz tipo
REST en comparación con una tipo RPC
▪ REST modela recursos, lo cual puede ser una manera natural
de expresar el modelo de dominio. Define una interfaz
uniforme en función de verbos HTTP, que fomenta la
evolución.
▪ RPC está más orientado a las operaciones o los comandos.

5
Implementación de una API
Eficacia. Considere la eficacia en cuanto a tamaño de carga, memoria y
velocidad.
Lenguaje de definición de interfaz (IDL). Se utiliza para definir los
métodos, los parámetros y los valores devueltos de una API. Puede
utilizarse para generar código de cliente, código de serialización y
documentación de API.
Serialización
Cómo se serializan los objetos a través de la conexión?
Las opciones incluyen formatos de texto (principalmente, JSON) y
formatos binarios como el búfer de protocolo.

6
Implementación de una API
Compatibilidad del lenguaje y la plataforma. HTTP se admite en
casi todas las plataformas y lenguajes. gRPC, Avro y Thrift tienen
bibliotecas de C++, C#, Java y Python. Thrift y gRPC también ad
Compatibilidad e interoperabilidad. Si elige un protocolo como
gRPC, puede que necesite una capa de traducción de protocolo
entre la API pública y el back-end. miten Go.
Una puerta de enlace puede realizar esa función. Si utiliza una
malla de servicio, considere los protocolos compatibles. Por
ejemplo, linked tiene compatibilidad integrada para HTTP, Thrift
y gRPC.
7
TEMAS DE LA EJECUCIÓN
ORIENTADA A OBJETOS

8
Aserciones
Los contratos de software se especifican mediante la
utilización de expresiones lógicas denominadas
aserciones
Existen diferentes tipos de aserciones. En el Diseño
por Contratos se utilizan tres tipos de aserciones:
▪ •Precondiciones
▪ •Poscondiciones
▪ •Invariante de Clase
9
Diseño por contratos
Puede ser visto como la aplicación a la construcción de software
de los contratos que rigen los asuntos de las personas.
Da una visión de la construcción de sistemas como un conjunto
de elementos de software cooperando entre sí. Los elementos
juegan en determinados momentos alguno de los dos roles
principales proveedores o clientes. La cooperación establece
claramente obligaciones y beneficios, siendo la especificación de
estas obligaciones y beneficios los contratos.

10
Programación defensiva
La programación defensiva es una forma de diseño defensivo aplicada
al diseño de software que busca garantizar el comportamiento de todo
elemento.
La programación defensiva es un enfoque que busca mejorar el
software y el código fuente, en términos de:
▪ Calidad - reduciendo el número de fallos de software y, en
consecuencia, problemas.
▪ Haciendo el código fuente comprensible - el código fuente debe ser
legible y comprensible, a prueba de una auditoría de código.
▪ Hacer que el software se comporte de una manera predecible pese
a entradas o acciones de usuario inesperadas.
11
GESTIÓN DE ERRORES, EXCEPCIÓN
Y TOLERANCIA AL FALLO

12
Excepción
Son un medio específico por el cual el código puede pasar errores
o eventos excepcionales al código que lo llamó.
Si el código en una rutina encuentra una condición inesperada
que no sabe cómo manejar, arroja una excepción, esencialmente
alzando las manos y gritando: "No sé qué hacer al respecto,
espero que alguien más sepa ¡cómo manejarlo! ”El código que no
tiene sentido del contexto de un error puede devolver el control a
otras partes del sistema que podrían tener una mejor capacidad
para interpretar el error y hacer algo útil al respecto.

13
Excepción
Los lenguajes populares varían en la forma en que implementan
las excepciones

14
Excepción

15
Excepción

16
Tolerancia a fallos
Es la propiedad que le permite a un sistema seguir funcionando
correctamente en caso de fallo de uno o varios de sus componentes
Es un sistema que está capacitado para continuar su funcionamiento
cuando algún componente del sistema falla., posiblemente a un nivel
más reducido, lo que es mejor a que el sistema falle completamente
No es sólo una propiedad de cada una de las máquinas, sino que
también puede caracterizar las reglas según las cuales interactúan. Por
ejemplo, el protocolo TCP está diseñado para permitir una comunicación
fiable de dos sentidos en una red de conmutación de paquetes,

17
MODELOS EJECUTABLES

18
MODELOS EJECUTABLES
Es un modelo lo suficientemente completo como para ser
ejecutable. Soy plenamente consciente de que esta
definición es inútil, pero la capacidad de ejecución de un
modelo depende más de la herramienta de ejecución que
usamos que del modelo en sí
Por ejemplo, algunas herramientas pueden requerir una
especificación de modelo más completa y precisa,
mientras que otras pueden ser capaces de “Llene los
huecos” y ejecute más modelos incompletos.
19
TÉCNICAS DE TOLERANCIA AL FALLO
EN LA CONSTRUCCIÓN BASADA EN
ESTADOS Y DIRIGIDA POR TABLAS

20
Devuelve un valor neutral
A veces, la mejor respuesta a los datos erróneos es continuar
operando y simplemente devolver un valor que se sabe que es
inofensivo. Un cálculo numérico puede devolver 0.
Una operación de cadena puede devolver una cadena vacía, o
una operación de puntero puede devolver un puntero vacío.
`Una rutina de dibujo que obtiene un valor de entrada incorrecto
para el color en un videojuego puede usar el fondo
predeterminado o el color de primer plano

21
Sustituye la siguiente pieza de datos
válidos
Al procesar un flujo de datos, algunas circunstancias
requieren simplemente devolver los siguientes datos válidos. Si
está leyendo registros de una base de datos y encuentra un
registro dañado, simplemente puede continuar leyendo hasta
que encuentre un registro válido. Si toma lecturas de un
termómetro 100 veces por segundo y no obtiene una lectura
válida una sola vez, puede simplemente esperar otra 1/100 de
segundo y tomar la siguiente lectura.

22
Devuelve la misma respuesta
que la vez anterior
Si el software de lectura del termómetro no obtiene una lectura
una sola vez, simplemente podría devolver el mismo valor que la
última vez.
Dependiendo de la aplicación, es probable que las temperaturas
no cambien mucho en 1/100 de segundo.
En un videojuego, si detecta una solicitud para pintar parte de la
pantalla con un color no válido, simplemente puede devolver el
mismo color utilizado anteriormente.

23
Sustituir el valor legal más cercano
En algunos casos, puede optar por devolver el valor legal más
cercano.
Este suele ser un enfoque razonable cuando se toman lecturas
de un instrumento calibrado..
El termómetro podría estar calibrado entre 0 y 100 grados
centígrados, por ejemplo. Si detecta una lectura inferior a 0,
puede sustituir 0, que es el valor legal más cercano. Si detecta un
valor mayor que 100, puede sustituir 100. Para una operación de
cadena, si se informa que la longitud de la cadena es menor que
0, podría sustituir a 0
24
Registrar un mensaje de advertencia en
un archivo
Cuando se detectan datos erróneos, puede optar por registrar un
mensaje de advertencia en un archivo y luego continuar. Este
enfoque se puede utilizar junto con otras técnicas como la
sustitución del valor legal más cercano o la sustitución de la
siguiente pieza de datos válidos. Si usa un registro, considere si
puede hacerlo público de forma segura o si necesita cifrarlo o
protegerlo de otra manera.

25
Mostrar un mensaje de error donde sea
que se encuentre el error
Este enfoque minimiza la sobrecarga de manejo de errores; sin
embargo, tiene el potencial de difundir los mensajes de la
interfaz de usuario en toda la aplicación, lo que puede crear
desafíos cuando necesita crear una interfaz de usuario
coherente, cuando intenta separar claramente la interfaz de
usuario del resto del sistema o cuando intenta para localizar el
software en un idioma diferente.

26
Apagar
Algunos sistemas se apagan cada vez que detectan un error.
Este enfoque es útil en aplicaciones críticas para la seguridad.
Por ejemplo, si el software que controla el equipo de radiación
para el tratamiento de pacientes con cáncer recibe datos de
entrada incorrectos para la dosis de radiación cuál es su mejor
respuesta de manejo de errores? ¿Debería usar el mismo valor
que la última vez? ¿Debería usar el valor legal más cercano?
¿Debería usar un valor neutral? En este caso, apagar es la mejor
opción. Preferiríamos reiniciar la máquina antes que correr el
riesgo de administrar la dosis incorrecta.
27
CONFIGURACIÓN E
INTERNACIONALIZACIÓN EN EJECUCION

28
Configuración e internacionalización en
ejecucion
Garantizar la internacionalización es diferente que probar
versiones de programa localizadas, y más amplio que sólo
realizar pruebas de funcionalidad.
▪ El código no debe hacer suposiciones acerca de cuál es el
idioma predeterminado del sistema .
▪ El código no debe hacer suposiciones acerca de las
convenciones locales de la configuración regional del sistema
▪ El código de la aplicación y el idioma de su interfaz de usuario
no están relacionados
29
PROCESAMIENTO DE ENTRADAS BASADO
EN LA GRAMÁTICA

30
Procesamiento del imput
En este proceso entran en juego muchos factores que pueden favorecer
o impedir el procesamiento de todo aquello que como aprendices
leemos o escuchamos. Por ejemplo, la atención y su papel ha sido uno
de los elementos más estudiados dentro de este proceso.
Son muchos los que han otorgado al input un papel indispensable en la
adquisición de una L2. Krashen afirmaba que el input comprensible
causa adquisición siempre que haya suficiente motivación y un
entorno adecuado
VanPatten (2002) sin embargo nos dice que no es suficiente con hablar
del input, sino que es necesario describir los procesos, los mecanismos
de aprendizaje que operan o interactúan sobre él
31
Modelo del procesamiento del input
El objetivo del modelo del procesamiento del input es
cambiar la forma en la que los aprendices perciben y
procesan el input.
Este modelo consta de una serie de principios que
describen la relación entre el procesamiento del input y la
capacidad limitada de la atención de un aprendiz. Al
parecer cuando atendemos a un acto de lengua en la L2
nuestros procesadores internos puede que no detecten
todas los elementos del input.
32
PRIMITIVAS PARA CONCURRENCIA

33
Primitivas para concurrencia
Para lograr la distribución de procesos se requiere de
mecanismos que permitan coordinar y controlar la ejecución de
procesos en ambientes no centralizados, ya sean de manera
local y remota.
▪ Los primeros protocolos para la distribución de procesos
remotos fueron para máquinas homogéneas
▪ La mayoría del control de procesos se hace a nivel de sistema
operativo a través de las llamadas del sistema.
▪ El sistema de archivo forma parte importante de las
primitivas de sincronización entre procesos.
34
Comunicación de sockets
Los sockets proporcionan una comunicación de dos vías, punto a
punto entre dos procesos. Los sockets son muy versátiles y son
un componente básico de comunicación entre interprocesos e
intersistemas.
Un socket es un punto final de comunicación al cual se puede
asociar un nombre. Este tiene un tipo y uno o más procesos
asociados.
Los sockets existen en los dominios de comunicación. Un socket
de dominio es una representación que da una estructura de
direccionamiento y un conjunto de protocolos. Los sockets se
conectan solamente con sockets en el mismo dominio.
35
Comunicación RCP
El mecanismo general para las aplicaciones cliente-servidor se
proporciona por el paquete Remote Procedure Call (RPC). RPC
fue desarrollado por Sun Microsystems y es una colección de
herramientas y funciones de biblioteca. Aplicaciones importantes
construidas sobre RPC son NIS, Sistema de Información de Red y
NFS, Sistema de Ficheros de Red.
Un servidor RPC consiste en una colección de procedimientos
que un cliente puede solicitar por el envío de una petición RPC al
servidor junto con los parámetros del procedimiento

36
Comunicación memoria compartida
En computación, la Distributed Shared Memory (DSM,
o memoria distribuida compartida) es un tipo de
implementación hardware y software, en la que cada
nodo de un cluster tiene acceso a una amplia
memoria compartida que se añade a la memoria
limitada privada, no compartida, propia de cada nodo.

37
CAPA INTERMEDIA

38
Tres capas
La ventaja principal de este estilo es que el desarrollo se puede
llevar a cabo en varios niveles y, en caso de que sobrevenga
algún cambio, solo afectará al nivel requerido sin tener que
revisar entre el código fuente de otros módulos, dado que se
habrá reducido el Acoplamiento informático hasta una interfaz
de paso de mensajes.
Permite distribuir el trabajo de creación de una aplicación por
niveles; de este modo, cada grupo de trabajo está totalmente
abstraído del resto de niveles, de forma que basta con conocer la
API que existe entre niveles.
39
Capa de presentación
Es la que se encarga de que el sistema interactúe con el
usuario y viceversa, muestra el sistema al usuario, le
presenta la información y obtiene la información del usuario
en un mínimo de proceso
En el mundo de la informática es conocida como interfaz
gráfica y debe tener la característica de ser amigable, o sea,
entendible y fácil de usar para el usuario. Esta capa se
comunica únicamente con la capa intermedia o de negocio.

40
Capa de negocio
Es donde residen las funciones que se ejecutan, se
reciben las peticiones del usuario, se procesa la
información y se envían las respuestas tras el
proceso. Se denomina capa de negocio o capa de
lógica del negocio, porque es aquí donde se
establecen todas las reglas que deben cumplirse.

41
Capa de acceso a datos
Esta capa es la encargada de almacenar los datos del sistema
y de los usuarios. Su función es almacenar y devolver datos a
la capa de negocio, aunque para esto también es necesario en
algunos casos, que tengan procedimientos almacenados y
funciones dentro de la capa.
Pueden estar localizadas todas en un mismo ordenador, si el
programa o software informático que se desarrolla es de baja
complejidad.

42
METODOS DE CONSTRUCCION PARA
SOFTWARE DISTRIBUIDO

43
Métodos de construcción para software
distribuido
Las características más importantes de los lenguajes
de especificación y programación concurrente son:
▪ La descomposición del sistema y la estructura de
los procesos
▪ Las características de comunicación
▪ Las características de sincronización
▪ La descripción del comportamiento de los procesos
▪ La asignación de tareas
44
SADT (Técnica de Análisis y Diseño
Estructurado)
Desarrollado por Soffech entre 1972 y 1975, es uno
de los lenguajes gráficos más conocidos para expresar
especificaciones.
El método SADT se enfoca sobre el flujo de datos e
implica un refinamiento paso a paso de los así
llamados Diagramas-SADT, los cuales están
jerárquicamente ordenados. Los diagramas pueden
ser de dos tipos:
45
SADT (Técnica de Análisis y Diseño
Estructurado)
Los actigramas identifican a las funciones como
elementos centrales de la descripción y suministra
datos, esto es entrada o salida para las funciones.
Los datagramas identifica a los datos como
elementos centrales de la descripción y
suministra funciones, esto es, entrada o salida para
los datos.

46
Análisis Estructurado (SA)
SA fue desarrollado por [DeMarco en 1978]. Aparte del hecho de
que el nombre es muy similar a SADT, solamente es común para
ambos los flujos de datos como el principio central : SA está
complementado con el Diseño Estructurado (SD), una técnica de
diseño.
El método permite al usuario modelar un sistema con diagramas
de flujos de datos (DFDs) que contienen datos y procesos
transformando los datos
el usuario divide y refina el sistema tanto como sea posible, esto
es, cada proceso de un DFD es descrito en más y más detalle
hasta cuando el nivel de un proceso atómico es alcanzado.
47
Lenguaje de Descripción de Problemas/ Analizador
de Descripción de problemas(PSL/PSA)
PSUPSA (Lenguaje de Descripción de Problemas/Analizador de
Descripción de Problemas) fue el primer sistema basado en
herramientas para especificación semi-formal.
Se basa en cubrir conceptos como: ciclo de vida, desarrollo paso
a paso, validación permanente.Algunos de sus métodos son:
entrar la información inmediatamente, permitir descripciones
informales, revisar exactitud, consistencia y ambigüedad,
concentrarse en la información necesaria para una
especificación; utiliza lenguajes semiformales, y diversas
representaciones para las especificaciones (gráficas, tablas, etc.)
48
GRACIAS!

You might also like