Examen de Sofware 3 Parcial

1

Click here to load reader

description

sofware exmane 3 parcial

Transcript of Examen de Sofware 3 Parcial

Page 1: Examen de Sofware 3 Parcial

Concepto de API Conjunto de funciones y procedimientos (o métodos, en P.O.O.) que ofrece cierta biblioteca (SDK) para ser utilizado

por otro software como una capa de abstracción

Uno de sus propósitos consiste en proporcionar un conjunto de funciones de uso general, por ejemplo, para dibujar ventanas. De esta

forma, los programadores se benefician de las ventajas de la API haciendo uso de su funcionalidad, evitándose el trabajo de programar

todo desde el principio

Sin embargo, las APIs de alto nivel generalmente pierden flexibilidad; por ejemplo, resulta mucho más difícil en un navegador web

hacer girar texto alrededor de un punto con un contorno parpadeante que programarlo a bajo nivel. Al elegir usar una API se debe

llegar a un cierto equilibrio entre su potencia, simplicidad y pérdida de flexibilidad

Ruby on Rails Es un framework de aplicaciones web de código abierto escrito en el lenguaje de programación Ruby. Utiliza el

paradigma de la arquitectura Modelo-Vista-Controlador (MVC)

Trata de combinar la simplicidad con la posibilidad de desarrollar aplicaciones del mundo real escribiendo menos código que con otros

frameworks y con un mínimo de configuración Ruby permite la metaprogramación, de la cual rails hace uso, lo que resulta en una

sintaxis que muchos usuarios encuentran legible

No te repitas significa que las definiciones deberían hacerse una sola vez. Dado que Ruby on Rails es un framework de pila completa,

los componentes están integrados de manera que no hace falta establecer puentes entre ellos. Por ejemplo, en ActiveRecord, las

definiciones de las clases no necesitan especificar los nombres de las columnas; Ruby puede averiguarlos a partir de la propia base de

datos, de forma que definirlos tanto en el código como en el programa sería redundante.

Convención sobre configuración significa que el programador sólo necesita definir aquella configuración que no es convencional. Por

ejemplo, si hay una clase Historia en el modelo, la tabla correspondiente de la base de datos es historias, pero si la tabla no sigue la

convención (por ejemplo blogposts) debe ser especificada manualmente (set_table_name "blogposts”). Así, cuando se diseña una

aplicación partiendo de cero sin una base de datos preexistente, el seguir las convenciones de Rails significa usar menos código (aunque

el comportamiento puede ser configurado si el sistema debe ser compatible con un sistema heredado anterior)

El patrón MVC (Flujo de control)

1. El usuario realiza una acción en la interfaz 2. El controlador trata el evento de entrada - Previamente se ha registrado

3. El controlador notifica al modelo la acción del usuario, lo que puede implicar un cambio del estado del modelo (si no es una mera

consulta) 4. Se genera una nueva vista. La vista toma los datos del modelo - El modelo no tiene conocimiento directo de la vista

5. La interfaz de usuario espera otra interacción del usuario, que comenzará otro nuevo ciclo

¿Cómo funciona MVC? El controlador interpreta las entradas del usuario (tanto teclado como el ratón), enviado el mensaje de acción al

modelo y a la vista para que se proceda con los cambios que se consideren adecuados

Modelo, Vista, Controlador Modelo (Objetos de negocio) = Organización de los datos Vistas (Interfaz de usuario) = Interfaz de usuario y

presentación Controlador (Control de flujo de trabajo de la App, lógica interna) = Manejan los eventos que se producen en las vistas

Alternativas a MVC Ruby Sinatra -> Es un framework para aplicaciones web de software libre y código abierto, y lenguaje específico del

dominio escrita en Ruby. Depende de Rack interfaz de servidor web. No sigue el típico patrón modelo vista controlador que se ve en

otros frameworks, como Ruby on Rails. En su lugar, Sinatra se enfoca en la "rápida creación de aplicaciones web en Ruby con el mínimo

esfuerzo. GitHub y Songbird usan Sinatra.

J2EE -> Una plataforma de programación para desarrollar y ejecutar software de aplicaciones en lenguaje Java. Permite utilizar

arquitecturas de N capas distribuidas y se apoya ampliamente en componentes de software modulares ejecutándose sobre un servidor

de aplicaciones.

Elementos asociados a la capa de Modelo

¿Datos en memoria vs datos en disco? (IMDB o DBMS)

IMDB -> Maximizar el rendimiento, minimizar la latencia, emplea la RAM para almacenar los datos (lo normal es almacenar en HDD).

Usos comunes en: sistemas de comercialización, telecomunicaciones, defensa, etc. Oracle Times Ten y Sybase ASE IMDB son ejemplos

de IMDB. Problemas: fallo de energía

Data Mapper asocia asignador independiente con cada modelo - Idea: mantener la cartografía independiente de especial almacén de datos Usado => trabaja con más tipos de bases de datos - Utilizado por Google App Engine