Documente Academic
Documente Profesional
Documente Cultură
Arquitectura de Software
Sesión 1
Proceso
Herramientas Modelos
(Tecnología) (Notación)
Porque Modelamos?
Y si es un rascacielos?
Que es un modelo?
• Es una representación del sistema a
construir o ya construido.
• Es un vehículo de comunicación con los
distintos agentes implicados.
• Es una simplificación de la realidad:
separa lo esencial de los detalles
permitiendo su análisis y simulación en
situaciones complejas
Modelado Visual - Abstracción
“El modelado captura las
partes esenciales del sistema”
Orden
Item
envío
Proceso de Negocios
Sistema Computacional
Beneficios al modelar (1)
Manejar la complejidad
Beneficios al modelar (2)
Interface de Usuario
(Visual Basic,
Java, ..)
Lógica del Negocio
(C++, Java, ..)
Servidor de BDs
(C++ & SQL, ..)
Componentes
Reutilizados
Promover la Reutilización
Vistas de Modelos
• Un único modelo no es suficiente. Cualquier sistema no
trivial se aborda mejor a través de un PEQUEÑO
CONJUNTO de modelos CASI INDEPENDIENTES.
• Los modelos presentan diferentes niveles de
abstracción:
– Detallado: Modelo de Diseño de Software
– General: Modelo de Arquitectura de Software
• Los modelos son generados durante el proceso y se
consideran activos (artefactos) del mismo
Pero, es suficiente un
modelo?
R/ Se requiere también de un
método que guíe la
construcción de los modelos a
través del proceso
El reto …
=
La realidad …
¿Qué es un Proceso de Desarrollo de SW?
tiempo
Elementos en UP
• Workflows (Disciplinas)
Workflows Primarios
• Business Modeling (Modado del Negocio)
• Requirements (Requisitos)
• Analysis & Design (Análisis y Diseño)
• Implementation (Implementación)
• Test (Pruebas)
• Deployment (Despliegue)
Workflows de Apoyo
• Environment (Entorno)
• Project Management (Gestión del Proyecto)
• Configuration & Change Management (Gestión de Configuración y
Cambios)
Proceso dirigido por los Casos de Uso
Capturar, definir y
Requisitos
validar los casos de uso
Análisis
Diseño
Codific.
n veces Pruebas e
Integración
... Proceso Iterativo e Incremental
Cada iteración comprende:
– Planificar la iteración (estudio de riesgos)
– Análisis de los Casos de Uso y escenarios
– Diseño de opciones arquitectónicas
– Codificación y pruebas. La integración del nuevo código
con el existente de iteraciones anteriores se hace
gradualmente durante la construcción
– Evaluación de la entrega ejecutable (evaluación del
prototipo en función de las pruebas y de los criterios
definidos)
– Preparación de la entrega (documentación e instalación
del prototipo)
Fases del Ciclo de Vida
El ciclo de vida consiste en una serie de ciclos, cada uno de
los cuales produce una nueva versión del producto
Cada ciclo está compuesto por fases y cada una de estas
fases está compuesta por un número de iteraciones
Las fases son:
– Inicio o Estudio de oportunidad
– Elaboración
– Construcción
– Transición
...Fases del Ciclo de Vida
Inicio o Estudio de oportunidad (inception)
– Define el ámbito y objetivos del proyecto
– Se define la funcionalidad y capacidades del
producto
Elaboración
– Tanto la funcionalidad como el dominio del
problema se estudian en profundidad
– Se define una arquitectura básica
– Se planifica el proyecto considerando recursos
disponibles
...Fases del Ciclo de Vida
Construcción
– El producto se desarrolla a través de iteraciones
donde cada iteración involucra tareas de análisis,
diseño e implementación
– Las fases de estudio y análisis sólo dieron una
arquitectura básica que es aquí refinada de manera
incremental conforme se construye (se permiten
cambios en la estructura)
– Gran parte del trabajo es programación y pruebas
– Se documenta tanto el sistema construido como el
manejo del mismo
– Esta fase proporciona un producto construido junto
con la documentación
...Fases del Ciclo de Vida
Transición
– Se libera el producto y se entrega al usuario para
un uso real
– Se incluyen tareas de marketing, empaquetado
atractivo, instalación, configuración,
entrenamiento, soporte, mantenimiento, etc.
– Los manuales de usuario se completan y refinan
con la información anterior
– Estas tareas se realizan también en iteraciones
Modelos de Valoración
Evolución
Disciplinas en la IngeSoft
• Responden al estudio particular de una
actividad del proceso o a un rasgo
predominante de las tecnologías
involucradas en el desarrollo del software
• Incluyen o hacen uso de conceptos de
otras ingenierías o ciencias como
Computación, Biología, Matemáticas,
Sociología, etc.
Algunas disciplinas con actividad
reciente:
• Ingeniería de Requerimientos
• Usabilidad
• Calidad de Software
• Modelos de Valoración
• Gestión de Proyectos de Software
• Ingeniería Web
– Web Semántica
– Computación Social
• Arquitectura de Software
Arquitectura de Software como
disciplina de la IngeSoft
• La Arquitectura de Software (AS) se enfoca en
la organización (un concepto cualitativo o
estructural) del Software el cual puede ser
cuantificado dentro de los modelos de proceso
propios de la IngeSoft.
• La AS Sirve como marco de referencia para:
– Satisfacer requerimientos del software
– Estimación de costos y administración del proceso
– Análisis de las dependencias y la consistencia del
sistema.
Créditos
• Jill Aden (jill.aden@eds.com) Lead Technologist
– Minnesota Solution Centre.
• M.W. Richardson (mrichardson@ilogix.com)
Lead Applications Engineer. I-Logix UK
• Simon Pickin (spickin@it.uc3m.es)
Departamento de Ingeniería Telemática,
Universidad Carlos III de Madrid.
• Patricio Letelier - Introducción al Proceso de
Desarrollo de Software.