NO. 7 • 27 VEN
Arquitectura de Softwate REVISTA
DEFINICIÓN, TIPOS Y ELEMENTOS
ESTÁNDARES SEGÚN IEEE/ANSI
Una arquitectura de software describe los componentes básicos | 03
The Institute of Electrical and Electronics Engineer | 07
MÉTRICAS PARA LA SELECCIÓN DE LA ARQUITECTURA Y SU VERIFICACIÓN.
DEFINICIÓN
Una arquitectura de software describe los componentes básicos de un sistema de software y su combinación interna. El concepto de arquitectura de software se refiere a la estructuración del sistema que, idealmente, se crea en etapas tempranas del desarrollo. Esta estructuración representa un diseño de alto nivel del sistema que tiene dos propósitos primarios: satisfacer los atributos de calidad (desempeño, seguridad, modificabilidad), y servir como guía en el desarrollo. Al igual que en la ingeniería civil, las decisiones críticas relativas al diseño general de un sistema de software complejo deben de hacerse desde un principio. El no crear este diseño desde etapas tempranas del desarrollo puede limitar severamente el que
el
producto
final
satisfaga
necesidades de los clientes.
Adquitectura de Software | 03
las
Índice
03 Definición 04 Etapas para el desarrollo de software 05 Tipos 06 Elementos que lo conforman 07 Estándares según IEEE/ANSI 08 Métricas para la selección de la arquitectura y su verificación. 10 Bibliografías
ETAPAS PARA EL DESARROLLO DE SOFTWARE
04 | Arquitectura de Software
BY JOSÉ A. AÑEZ
TIPOS Para utilizar la arquitectura de software se sigue un conjunto de patrones arquitectónicos,entre los cuales podemos encontrar:
ESCRITO POR JOSÉ AÑEZ FOTO DE GOOGLE
Arquitectura Spaghetti: En los inicios de las aplicaciones web con la
aparición
programadas
de en
las en
páginas lado
del
servidor con servlets y JSP en Java, ASP de Microsoft y PHP la arquitectura de las mismas se caracterizaba por que no había arquitectura. En el mismo servlet o JSP, ASP o PHP el mismo código tenía diferentes responsabilidades sin ninguna separación entre ellas. 05 | Arquitectura de Software
Arquitectura por capas: Para suplir
Arquitectura por hexagonal: En la
las carencias de la arquitectura
arquitectura hexagonal o también
spaghetti surge la arquitectura por
conocida
capas. En la arquitectura por capas
adaptadores aísla las entradas y
cada
una
salidas de la aplicación de la lógica
responsabilidad definida, una capa
interna de la aplicación. Este
se encarga de la visualización de
aislamiento
los datos y la interacción con el
exteriores hace que la aplicación
usuario, otra capa se encarga de la
no requiera prácticamente ningún
lógica de negocio y otra capa del
cambio que esté influenciado por
acceso a la base de datos. Esta
cambios externos ya sea una
distribución de responsabilidades
nueva base de datos para persistir
pone
capa
cierto
organización
tiene
orden del
como
de
puertos-
las
partes
a
la
los datos o un nuevo tipo de
código
y
cliente como un dispositivo móvil.
estructura de las aplicaciones. Las
Cada entrada ya sea desde una
capas superiores dependen de las
petición REST o desde la linea de
capas inferiores, ya sea en un
comandos o salida ya sea a una
modelo estricto donde la superior
base de datos o un sistema de
depende
mensajería es un tipo diferente de
únicamente
de
la
inmediatamente inferior o en un modelo más permisivo donde una capa superior puede depender de cualquiera de las inferiores.
puerto para su interacción.
Elementos que lo conforman
Clientes y servidores
Niveles en
Bases de
sistemas
datos.
jerárquico.
Filtros
Entre los componentes de la arquitectura de software existe un conjunto de interacciones entre las que sobresalen llamadas a procedimientos. comportamiento de variables. protocolos cliente servidor. transmición asíncrona de eventos.
06| Arquitectura de Software
Estándares según IEEE/ANSI
The Institute of Electrical and Electronics Engineers, el Instituto de Ingenieros Eléctricos y Electrónicos
El
Instituto
Nacional
Estándares
Estadounidense
(American
National
de
IEEE 754: es el estándar más extendido para las
Standards
computaciones en coma flotante, y es seguido por
Institute) es una organización sin fines de lucro
muchas de las mejoras de CPU y FPU.
que
Estándares IEEE y ANSI
supervisa
productos, Estados
el
desarrollo
servicios,
Unidos.
Organización
ANSI
Electrotécnica
(ISO)
es
sistemas
miembro
y
de
la
IEEE 1394: es un tipo de conexión para diversas
la
plataformas, destinado a la entrada y salida de
la
datos en serie a gran velocidad. Suele utilizarse
Comisión
IEC).
coordina
estadounidense
de
los
(International
Commission,
también
para
en
para
Internacional
Electrotechnical
país
estándares
y
Internacional
Estandarización
organización
de
procesos
La
estándares
con
para
la
como
interconexión
cámaras
de
dispositivos
digitales
y
digitales
videocámaras
a
computadoras.
del
estándares
IEEE-488:
permite
que
hasta
15
dispositivos
internacionales, de tal modo que los productos de
inteligentes compartan un simple bus paralelo de
dicho país puedan usarse en todo el mundo.
8
bits,
mediante
conexión
en
cadena,
con
el
dispositivo más lento determinando la velocidad Estándares IEEE y ANSI IEEE
802.11:
inferiores
define la
el
uso
los
niveles
sus normas de funcionamiento en una WLAN. Los
1980 paralelamente al diseño del Modelo OSI. Se
protocolos de la rama 802.x definen la tecnología
desarrolló con el fin de crear estándares para que
de
diferentes
área
local
metropolitana.
07 | Arquitectura de Software
OSI,
dos
IEEE 802 fue un proyecto creado en febrero de
de
arquitectura
de
especificando
redes
de
de transferencia.
y
redes
de
área
tipos
de
integrarse y trabajar juntas
tecnologías
pudieran
SISTEMAS I
By José A. Añez
Métricas para la selección de la arquitectura y su verificación El objetivo primordial de la ingeniería del software es producir un sistema, aplicación o producto de alta calidad. Para lograr este objetivo, los ingenieros de software deben emplear métodos efectivos junto con herramientas modernas dentro del contexto de un proceso maduro de desarrollo del software. Al mismo tiempo, un buen ingeniero del software y buenos administradores de la ingeniería del software deben medir si la alta calidad se va a llevar a cabo. A continuación se verá un conjunto de métricas del software que pueden emplearse a la valoración cuantitativa de la calidad de software.
La definición estándar de calidad en ISO-8402 es “La totalidad de rasgos y características de un producto, proceso o servicio que sostiene la habilidad de satisfacer estados o necesidades implícitas” [Mcdermid ’91]. “Concordar explícitamente al estado funcional y a los requerimientos del funcionamiento, explícitamente a los estándares de documentación de 61 desarrollo, e implícitamente características que son expectativas de todos los desarrolladores profesionales de software” [Pressman ’93].
El punto de vista de ¿Qué es calidad? Es diverso, y por lo tanto existen distintas respuestas, tales como se muestra a continuación: El American Heritage Dictionary [Pressman ´98] define la calidad como “Una característica o atributo de algo.”
08| Arquitectura de Software
Metricas Presencial: Esta métrica indica si un atributo está presente en el componente o no. Para ello se utiliza una variable booleana y una variable de tipo string que especifique como o con que método, formato etc, se implementa el atributo en cuestión en caso de estar presente. Tiempo: Esta métrica se utiliza para medir intervalos de tiempo, utiliza una variable de tipo entero para indicar el valor absoluto y una variable de tipo string para indicar las unidades, por ejemplo, 10 segundos o 4 meses. Nivel: Se utiliza para indicar un grado de esfuerzo, habilidad, etc., cuando se da una medida subjetiva dentro de una escala de valores. Es una variable entera que puede tomar el siguiente rango de valores: 0 (Muy Bajo), 1 (Bajo), 2 (Medio), 3 (Alto), 4 (Muy Alto). Ratio: Se utiliza para dar un porcentaje (entre 0 y 100). Entero: variable de tipo entero. Además de estas métricas básicas, para medir algunos atributos se utiliza también índices, que se obtienen a partir de dos métricas básicas, generando un “indicador”. En general, es conveniente distinguir entre métricas básicas e indicadores, pues estos últimos son valores derivados de los primeros.
JOSÉ A. AÑEZ EDITOR
PSM Bibliografías [1] Pressman, R. “Ingeniería del Software. Un enfoque práctico”, 5ta edición, McGraw–Hill Interamericana, España, 2002. [2] Humphrey, W., Introduction to the Personal Software Process, Addison Wesley Longman, Inc., Massachusetts, 1997. [3] Pressman, R. “Ingeniería de Software. Un enfoque práctico”,1995
ARQUITECTURA DE SOFTWARE | 010
"LA VERDADERA INNOVACIÓN A MENUDO VIENE DE LAS PEQUEÑAS STARTUPS QUE SON CAPACES DE CREAR MERCADOS PERO CARECEN DE PESO PARA POSEERLOS" TIMM MARTIN
La arquitectura de software define, de manera abstracta, los componentes que llevan a cabo alguna tarea de computación, sus interfaces y la comunicación entre ellos. Toda arquitectura debe ser implementable en una arquitectura física, que consiste simplemente en determinar qué computadora tendrá asignada cada tarea.