Anda di halaman 1dari 4

28/03/2014

Aplicaciones Empresariales
Clase 1
¿Qué tipo de aplicaciones son?

Lic. Ariel Trellini DCIC - UNS


Desarrollo de Aplicaciones Empresariales • 8 Lic. Ariel Trellini • DCIC • UNS

Aplicaciones Empresariales Aplicaciones Empresariales

Ejemplos Características
¿Quién puede dar ejemplos  Datos Persistentes: La información persistida generalmente es el
de aplicaciones empresariales? núcleo del sistema y su ciclo de vida es más amplio que el del
resto de los componentes.
Aplicaciones Empresariales Aplicaciones No Empresariales
Sistema de sueldos Inyección de combustible en autos  Gran Cantidad de Datos: Un sistema moderado contará con
Administración de pacientes Procesadores de texto alrededor de 1GB de datos, organizados en decenas de millones
Seguimientos postales Controladores de ascensores de registros, siendo esta información la mayor parte del sistema.
Seguros Controladores de planta
Banca electrónica Switches telefónicos  Acceso Concurrente a Datos: Generalmente muchas personas
Sistemas contables Sistemas operativos
acceden a los datos concurrentemente. Debido a esto, hay
problemas bien determinados que deben abordarse para
Stock Compiladores
asegurar que los distintos usuarios pueden acceder a la
Venta electrónica Juegos información de manera confiable.
Retail

Desarrollo de Aplicaciones Empresariales • 9 Lic. Ariel Trellini • DCIC • UNS Desarrollo de Aplicaciones Empresariales • 10 Lic. Ariel Trellini • DCIC • UNS

Aplicaciones Empresariales  Características Aplicaciones Empresariales  Características

 Gran Cantidad de UI: Para manejar tanta información es


necesario disponer de cientos de pantallas que permitan
Mucha gente cree que las aplicaciones empresarias implican
presentar los datos de distinta forma y, eventualmente, para
grandes sistemas. Sin embargo es importante recordar que no
distintas audiencias.
todas las aplicaciones empresariales son grandes, aunque
aun así pueden proveer un montón de valor a la empresa.
 Integrado con Otras Aplicaciones Empresariales: Las aplicaciones
empresariales raramente viven de manera aislada; generalmente
requieren integrarse con otras aplicaciones de la empresa o fuera
de la misma

 Lógica de Negocio Compleja: Las reglas de negocio nos caen


encima y por más que intentemos darle integridad lógica, no se
puede hacer mucho. Unas pocos miles de estos casos
extraordinarios es lo que conduce a una “compleja ilógica de
negocio” que hace que el sw de negocios sea tan complejo.
Desarrollo de Aplicaciones Empresariales • 11 Lic. Ariel Trellini • DCIC • UNS Desarrollo de Aplicaciones Empresariales • 12 Lic. Ariel Trellini • DCIC • UNS

1
28/03/2014

Aplicaciones Empresariales Aplicaciones Empresariales  Tipos de Aplicaciones Empresariales

Tipos de Aplicaciones Empresariales


 Ejemplo 2: Proceso de automatización de acuerdos de leasing
 Ejemplo 1: Aplicación B2C de venta on-line  No tendrá más de 100 usuarios a la vez
 Capaz de manejar un muy alto volumen de usuarios  Lógica de negocio mucho más compleja
 Solución razonablemente eficiente en términos de recursos utilizados  Calcular montos mensuales del leasing
 Escalable, tal que se pueda incrementar la carga agregando más hw  Manejar eventos como retornos tempranos y pagos fuera de término
 Lógica de dominio bastante directa  Validar datos de la operación de leasing
 Presentación web genérica tal que pueda ser accedida por la mayor  Reglas de negocio cambiantes y con muchas excepciones
cantidad de usuarios posibles, soportando el rango más amplio de browsers  Interfaces gráficas más complejas
 Base de datos para almacenar las órdenes de compra  Comportamiento transaccional más complejo, debido a la complejidad de
 Comunicación con el sistema de inventario interacción
 Complejo esquema de base de datos

Desarrollo de Aplicaciones Empresariales • 13 Lic. Ariel Trellini • DCIC • UNS Desarrollo de Aplicaciones Empresariales • 14 Lic. Ariel Trellini • DCIC • UNS

Aplicaciones Empresariales  Tipos de Aplicaciones Empresariales Aplicaciones Empresariales  Tipos de Aplicaciones Empresariales

Conclusión
 Ejemplo 3: Sistema de tracking de gastos
 Pocos usuarios Las aplicaciones empresariales son diferentes y estos
 Lógica de negocio simple problemas diferentes conducen a diferentes maneras de
 Es accedido desde dentro de la compañía a través de una interfaz web hacer las cosas.
 Construirlo rápidamente
 Prever su crecimiento. Proveer más funcionalidad, integrarlo con otros
sistemas, etc.

Usar la misma arquitectura para el Ejemplo 3 que para los dos


anteriores haría más lento el desarrollo del sistema y le
agregaría complejidad que eventualmente complicaría su
futura evolución (sobre-arquitecturar).

Desarrollo de Aplicaciones Empresariales • 15 Lic. Ariel Trellini • DCIC • UNS Desarrollo de Aplicaciones Empresariales • 16 Lic. Ariel Trellini • DCIC • UNS

Arquitectura de Software

¿Qué es la Arquitectura de Software?


Comencemos con la siguiente definición

La arquitectura de software es el conjunto de decisiones que el


Arquitecto de Software toma.
- ¿Qué decisiones toma un Arquitecto de Software?
Arquitectura de Software Aquellas que son arquitecturalmente significativas !
- ¿Y qué es algo arquitecturalmente significativo?
Lo que el arquitecto de software decide…
Mitos y leyendas
¿Quién me puede decir qué es la
arquitectura de software?

Desarrollo de Aplicaciones Empresariales • 17 Lic. Ariel Trellini • DCIC • UNS Desarrollo de Aplicaciones Empresariales • 18 Lic. Ariel Trellini • DCIC • UNS

2
28/03/2014

Arquitectura de Software  ¿Qué es ? Arquitectura de Software  ¿Qué es ?

Una arquitectura es el conjunto de decisiones importantes sobre


La organización general del sistema.
la organización de un sistema de software, la selección de los
Garlan & Shaw (94)
elementos estructurales y sus interfaces por los cuales el
sistema está compuesto, junto con su comportamiento como es
Partes que componen el software y sus relaciones. especificado en las colaboraciones entre estos elementos, la
Kruchten composición de estos elementos estructurales y de
comportamiento en subsistemas progresivamente más grandes,
y el estilo de arquitectura que guía a esta organización (estos
La organización fundamental de un sistema, expresada a
elementos y sus interfaces, sus colaboraciones y su
través de sus componentes, las relaciones entre ellos y el
composición).
ambiente, y los principios que gobiernan su diseño y evolución.
Booch, Rumbaugh y Jacobson en UML User Guide
IEEE, 1995
(Addison-Wesley, 1999)

Conjunto de decisiones de diseño que se hacen en etapas Es diseño de software, pero en palabras importantes.
tempranas del proyecto. Martin Fowler
Anónimo
Desarrollo de Aplicaciones Empresariales • 19 Lic. Ariel Trellini • DCIC • UNS Desarrollo de Aplicaciones Empresariales • 20 Lic. Ariel Trellini • DCIC • UNS

Arquitectura de Software  ¿Qué es ? Arquitectura de Software  ¿Qué es ?

Es más alto nivel conceptual de un sistema en su ambiente. La En muchos proyectos de software exitosos, los desarrolladores expertos
arquitectura de un sistema de software (en algún punto en el que trabajan en el proyecto tienen un entendimiento compartido del
tiempo) es su organización o estructura de componentes diseño del sistema. Este entendimiento compartido, llamado
importantes interactuando a través de interfaces, y dichos “arquitectura”, incluye cómo el sistema se divide en componentes, y
componentes siendo compuestos de, sucesivamente, cómo los componentes interactúan a través de interfaces. Estos
componentes e interfaces más pequeños. componentes, generalmente, están compuestos de componentes más
RUP / IEEE pequeños, pero la arquitectura solamente incluye a aquellos
componentes e interfaces más relevantes para los desarrolladores.
Ralph Jonhson
Ralph Jonhson
 ¿Qué es “el más alto nivel conceptual de un sistema”?
Esta definición es más apropiada ya que deja en claro que la
 Los clientes tienen distintos conceptos y visiones que los
arquitectura es una construcción social, porque no sólo depende del
desarrolladores.
software sino también de:
 Entonces la arquitectura sería el más alto nivel conceptual que
 Qué parte del software es considerada importante por el grupo de
los desarrolladores tienen del sistema y su ambiente
consenso.
 ¿Qué hace que un componente sea importante?
 Qué personas toman las decisiones

Desarrollo de Aplicaciones Empresariales • 21 Lic. Ariel Trellini • DCIC • UNS Desarrollo de Aplicaciones Empresariales • 22 Lic. Ariel Trellini • DCIC • UNS

Arquitectura de Software  ¿Qué es ? Arquitectura de Software  ¿Qué es ?

La arquitectura trata de las cosas importantes. Sean lo que Objetivo de arquitectura Eliminar el impacto y costo de
fueren esas cosas. de software cambios
Ralph Jonhson

Toda la arquitectura es diseño, pero no todo el diseño es


arquitectura. La arquitectura representa las decisiones de
diseño que le dan forma a un sistema, donde la importancia es
medida por el costo del cambio.
Booch

Pero no todo es tan feliz en la vida:


… hacer que todo sea fácil de cambiar hace que el sistema
entero sea muy complejo…
Ralph Jonhson
Desarrollo de Aplicaciones Empresariales • 23 Lic. Ariel Trellini • DCIC • UNS Desarrollo de Aplicaciones Empresariales • 24 Lic. Ariel Trellini • DCIC • UNS

3
28/03/2014

Arquitectura de Software  ¿Qué es ? Arquitectura de Software  ¿Qué es ?

¿Cómo podríamos mantener a raya la complejidad


Identificar las costuras en un sistema involucra identificar líneas
incrementando la flexibilidad?
claras de demarcación en tu arquitectura. En ambas márgenes
 Reconocer dónde es necesaria la flexibilidad para reducir el impacto y de aquellas líneas, encontrarás componentes que pueden
costo del cambio cambiar independientemente, sin afectar a los componentes del
otro lado, siempre y cuando los componentes a ambos lados
 Tratar de diferir la obligación de tomar una decisión específica de
cumplan con el contrato especificado por la interfaz.
arquitectura que nos bloquearía en una solución muy particular hasta que
Booch, UML User Guide
tengamos el conocimiento necesario que nos permita tomar una decisión
lo más fundamentada posible
 Aislar las decisiones de las cuales no estamos seguros, asegurando que
Modularidad combinada con patrones de diseño y los principios SOLID
dichas decisiones iniciales sean fáciles de cambiar a medida que vayan
representan nuestra mejor esperanza para minimizar el costo del
surgiendo el conocimiento e información suficientes para asegurar una
cambio.
buena alternativa de solución.

Desarrollo de Aplicaciones Empresariales • 25 Lic. Ariel Trellini • DCIC • UNS Desarrollo de Aplicaciones Empresariales • 26 Lic. Ariel Trellini • DCIC • UNS

Anda mungkin juga menyukai