Sunteți pe pagina 1din 34

Arquitectura de

Software
UNIVERSIDAD TCNICA DEL NORTE
Diego Javier Trejo Espaa
Marzo - 2015

Diseo de Software
Es tanto el proceso de definicin de la arquitectura,
mdulos, interfaces y otras caractersticas de un
sistema, como el resultado de ese proceso
Al ser un proceso conlleva una ruta a seguirse
(planificacin)
La planificacin mitiga los riesgos inherentes a la
construccin de un software complejo
Se persigue proyectar el software antes de construirlo
El resultado de esta proyeccin es el DISEO

Diseo de Software
El Diseo facilita dos actividades esenciales en el Ciclo
de Vida
Evaluar si el sistema cumple los objetivos antes de construir el
software
Construir el sistema

Se evalan modelos y prototipos que constituyen una


solucin
La evaluacin aumenta la calidad del producto final
La evaluacin no es 100% completa dado que se basa
slo en modelos

Caractersticas del Diseo de


Software (I)
Permite la evaluacin PREVIA
Garantiza el cumplimiento de requisitos
El diseo del software es ms barato que construir el software

Estimula el modelado
El diseador se concentra en el Dominio del Problema
Se ignoran detalles poco significativos
Facilita la separacin de la Complejidad Esencial de la
Complejidad Accidental del problema

Caractersticas del Diseo de


Software (II)
Involucra planificacin
Sirve de gua en la fase de construccin
El diseador anticipa lo que ser necesario para la fase de
construccin
La planificacin ayuda en la estimacin de costos de
desarrollo

Tiempo de duracin del desarrollo


Nro. de desarrolladores necesarios por mdulo
Si es comprado, cunto costar cada mdulo
Costo total del desarrollo

Facilita la comunicacin
Al contener conocimientos sobre el sistema, stos pueden ser

Caractersticas del Diseo de


Software (III)
El problema a ser resuelto puede no permanecer el
mismo durante todo el proceso de diseo
Hay diferencias entre el Diseo y el Software construido
a partir de l

El Proceso de Diseo de Software


CONOCIMIENTO ABSTRACTO

Objetivos

Objetiv
os del
Cliente

Alternativa 1
Alternativa 2

Producto de
diseo

Alternativa 3

Solucin

Restricciones
Cliente y
Usuarios

Construccin

Proceso de Diseo

Anlisis Requisitos

Representaci
n

Analista
Diversificacin

CONOCIMIENTO CONCRETO

Convergencia

Software

Elementos del Proceso de Diseo de


Soft. (I)
El Proceso de Diseo involucra la eleccin de la
representacin de una solucin a partir de varias
alternativas
En la eleccin se toma en cuenta las restricciones que
un conjunto de objetivos envuelve
El Proceso de Diseo se divide en dos fases:
Diversificacin
Convergencia

Elementos del Proceso de Diseo de


Soft. (II)
Fase de Diversificacin
Se generan las alternativas
Una alternativa puede ser un documento conteniendo una
posible solucin
O tambin una idea de solucin
Una alternativa constituye una solucin en potencia por tanto
satisface los objetivos esperados
Se generan/obtienen a partir del conocimiento y la
experiencia del diseador

Elementos del Proceso de Diseo de


Soft. (III)
Convergencia
El diseador escoge la alternativa o combinacin de algunas
La alternativa elegida se somete a las restricciones impuestas
por el Dominio del Problema
Se obtiene una solucin que se describe por medio de alguna
representacin

Objetivos, restricciones, alternativas, representaciones y


soluciones. Juntos definen un esquema conceptual del
Diseo del Software

Elementos del Proceso de Diseo de


Soft. (IV)
Elemento: Objetivos
En Ingeniera de Software, el cliente especifica sus
necesidades
Esas necesidades al querer ser satisfechas, se
constituyen en objetivos a alcanzar
Aquello que se pretende alcanzar para resolver las
necesidades del cliente
Necesidades del cliente = Requisitos del Sistema
Requisitos funcionales
Requisitos no funcionales

Elementos del Proceso de Diseo de


Soft. (V)
Elemento: Restricciones
Las restricciones son: las reglas, requisitos, relaciones, convenciones
o principios que definen el contexto del proceso de diseo, de forma
que su producto sea viable
Elemento: Alternativas
Alternativa de diseo es una posibilidad de solucin representada en
nivel de conocimiento
El diseador no necesariamente documenta todas las alternativas
La generacin de alternativas es un verdadero desafo
Las alternativas se basan en principios de diseo, experiencia y
creatividad

Elementos del Proceso de Diseo de


Soft. (VI)
Elemento: Representaciones
La representacin de diseo es el lenguaje que expone el
producto de diseo para su construccin
Facilita la comunicacin porque hace las Alternativas
manipulables, comunicables, evaluables y discutibles
Usan dimensiones: comportamiento, estructura, relaciones,
entidades lgicas y fsicas
Elemento: Soluciones
Solucin de diseo es la descripcin del diseo que permite
la construccin del software que alcanza los objetivos

Niveles de Diseo de Software


El Proceso de Diseo da como resultado el Producto de
Diseo
El Producto de Diseo es la descripcin que permite la
construccin del software
La Descripcin tiene dos niveles de detalle
Alto Nivel (Diseo arquitectural): Describe la organizacin
fundamental del sistema, identificando los mdulos y las
relaciones entre s y con el entorno. En otras palabras describe
como el software se descompone y organiza en mdulos y sus
relaciones
Diseo detallado: Describe el detalle y comportamiento
especfico de cada mdulo que compone el Diseo

Principios y Tcnicas de Diseo de


Soft. (I)
Divisin y conquista
Abstraccin: Existen diversos grados de abstraccin ,
entre mayor sea el grado de la misma se considera una
solucin general, entre menor sea su grado se hace
referencia a elementos de mayor especificidad.
Abstraccin procedimental: Permiten describir procesos
omitiendo detalles especficos.(ej: encender automvil)
Abstraccin de datos: Describe las caractersticas de un
objeto. (automvil, no siendo necesario describir en
detalle su especificacin para reconocerlo)

Principios y Tcnicas de Diseo de


Soft. (II)
Arquitectura: Representa la estructura general del
software y la forma como interactan sus componentes.
Modelos Estructurales
Modelos de Marco de Trabajo
Modelos Dinmicos
Modelos del Proceso
Modelos Funcionales

Principios y Tcnicas de Diseo de


Soft. (III)
Patrones: Es una semilla de conocimiento, la cual tiene
un nombre y transporta la esencia de una solucin
probada a un problema concurrente dentro de cierto
contexto en medio de intereses en competencia
Encapsulamiento
Modularidad: El software se divide en componentes con
nombres independientes y que es posible abordar en
forma individual
Separacin de preocupaciones

Principios y Tcnicas de Diseo de


Soft. (IV)
Ocultacin de informacin: Los mdulos se caracterizan por
ocultar las soluciones de diseo a otros
Independencia Funcional = Modularidad + abstraccin +
ocultamiento
Mdulos independientes permiten probarlos, modificarlos y
optimizarlos de manera mas rpida y efectiva
Cohesin : Medida de la fuerza funcional relativa de un
modulo
Acoplamiento: Medida de interdependencia entre mdulos.

Principios y Tcnicas de Diseo de


Soft. (V)
Refinamiento: Estrategia de diseo descendente,
complemento de la abstraccin
Refabricacin: Proceso de cambiar un sistema de
software de tal forma que no altere el comportamiento
externo de su cdigo y an as se mejore su estructura
interna
Problemas de diseo: Redundancias, elementos intiles,
algoritmos innecesarios, estructuras de datos
inapropiados o mal construidas.

Atributos de Calidad del Software (I)


Funcionalidad: Se estima al evaluar el conjunto de caractersticas
y capacidades del programa, la generalidad de las funciones que
se entregan y la seguridad del sistema en su totalidad.
Facilidad de uso Se valora al considerar los factores humanos, la
esttica, consistencia y documentacin general.
Confiabilidad Se evala al medir la frecuencia y severidad de las
fallas, la precisin de los resultados de salida, la media del
momento de fallas, la habilidad para recuperarse de las fallas y la
previsibilidad del programa.
Testeo
Escalabilidad

Atributos de Calidad del Software (II)


Desempeo Se mide con la velocidad de procesamiento, tiempo
de respuesta, consumo de recursos, rendimiento y eficacia.
Soportabilidad
Facilidad de mantenimiento
Extensibilidad
Disponibilidad
Configurabilidad, Facilidad de instalacin
Facilidad localizacin de problemas.
Legibilidad
Reusabilidad

Fundamentos de la Arq. de Software


Complejidad del Proceso del Software
Metodologas de Desarrollo: Incrementales,
Evolutivas, giles
El Proceso de Desarrollo no es tarea fcil
Muchos proyectos de software fracasan durante su
desarrollo
o fracasan al obtener sus resultados
Entre los tipos de fracaso tenemos:
Proyectos que costaron mucho ms de lo presupuestado
Proyectos incompletos

No es fcil alcanzar un buen


producto
Hay que lidiar con los siguientes aspectos:
La complejidad inherente al problema a resolver
La manera de resolver el problema

El software debe, adems de resolver el problema,


resolverlo de la mejor forma
Tcnicamente hablando, el software debe cumplir con:
La funcionalidad
Atributos de calidad

Definicin de Arq. de Software (I)


Un primer acercamiento a la definicin:
Arquitectura = { elementos, organizacin, decisiones }

AS: Conjunto de elementos arquitecturales que poseen alguna


organizacin. Estos elementos y su organizacin son definidos
por decisiones tomadas para satisfacer objetivos y
restricciones
Pero tambin existen relaciones entre elementos arquitecturales.
Poseen propiedades
Restringen los elementos arquitecturales para que satisfagan los objetivos
del sistema
Son ponderadas para indicar su importancia en la seleccin de alternativas

Definicin de Arq. de Software (III)


Definicin ISO / IEEE 1471-2000
AS: Es la organizacin fundamental de un sistema
incorporado sus componentes, sus relaciones, el
entorno y los principios que conducen su diseo y
evolucin.
Constituye:

Estructura
Componentes / Elementos
Relaciones
Diseo
Evolucin

Elementos Arquitecturales
Tipos de elementos arquitecturales:
Los que usan o transforman informacin
Los que poseen informacin para ser usada o transformada
Los que conectan elementos entre si

Tambin se clasifican en:


Estticos
Dinmicos

Elementos Arquitecturales Estticos


Partes de un sistema y su organizacin, es decir las
relaciones que existen entre ellos
Se definen durante el diseo y son:
De software:
Modelos, clases, paquetes, procedimientos, servicios, etc.

De datos:
Estructuras, tablas, BDD, objetos, entidades, etc.

De hardware:
CPU, comunicaciones, infraestructura

Elementos Arquitecturales
Dinmicos
Definen el comportamiento del sistema
Se definen durante la ejecucin del sistema y son:
Procesos
Mdulos
Protocolos

Decisiones Arquitecturales (I)


Decidir incorporar un Elemento Arquitectural significa tomar
una Decisin Arquitectural
Al tomar todas las Decisiones Arquitecturales se debe
documentar su resultado, a esto se denomina Documento
Arquitectural o Documento de la Arquitectura de Software
Cada Decisin Arquitectural debe alcanzar al menos un
Atributo de Calidad, aplicado a uno o varios Objetivos o
Requerimientos del Cliente
Por lo general una Decisin Arquitectural es el resultado de
elegir uno de entre varios Elementos Arquitecturales
propuestos en las Alternativas de Diseo

Decisiones Arquitecturales (II)


Caractersticas
Descripcin
Objetivos
Fundamentacin

Rastreabilidad
Evolucin. Aplicacin de reglas para:

Adicin de funcionalidad
Eliminacin
Modificacin
Atributos de calidad

Decisiones Arquitecturales (III)


Caractersticas:
Descripcin:
Describir los elementos, mdulos, clases, servicios, la
comunicacin entre ellos, principios que conducen a la
evolucin

Objetivos
Explicar el objeto de cada decisin, normalmente se expresa
como la accin de alcanzar o restringir un atributo de calidad

Fundamentacin
Explicar porque fue tomada la decisin. Sea por estndares,
conocimiento propio, porque presenta mejores resultados, por

Decisiones Arquitecturales (IV)


Ejemplos
Descripcin:
La descripcin lgica de las capas de una aplicacin que
expone servicios web y la aplicacin que los consume

Objetivos:
La divisin en capas disminuye el acoplamiento entre
elementos internos facilitando el desarrollo y mantenimiento

Fundamentacin:
Dividir en capas ayuda a la cohesin y acoplamiento

Decisiones Arquitecturales (VI)


Rastreabilidad:
Facilita la comprensin de la evolucin la decisin tomada,
pues debe existir un registro histrico (versiones). Como
resultado, promueve la compresin y el mantenimiento del
sistema representado por la arquitectura

Evolucin:
Una decisin arquitectural no necesariamente describe
mdulos, clases o servicios. Puede describir reglas a seguirse,
tales como:
Reglas para adicin de funcionalidad
Reglas para la modificacin o mantenimiento
Reglas para eliminacin o desactivacin de funcionalidad

S-ar putea să vă placă și