la importancia del_modelado_en_la_producción_de_sw_vf
TRANSCRIPT
Dr. Carlos Arias Méndez (UNPA - UMAG)
Ing. Silvia Gabriela Rivadeneira (UNPA)
Ing. Juan Enrique Fontana (UNPA)
Ángel G. Páez (Estudiante Analista de Sistemas)
Claudio R. Monserrat (Estudiante Analista de
Sistemas)
Del 11 al 22 De Junio. Río Turbio. SANTA CRUZ
• 1. m. Arquetipo o punto de referencia para imitarlo o reproducirlo.
• 2. m. En las obras de ingenio y en las acciones morales, ejemplar que por su perfección se debe seguir e imitar.
• 3. m. Representación en pequeño de alguna cosa.
• 4. m. Esquema teórico, generalmente en forma matemática, de un sistema o de una realidad compleja, como la evolución económica de un país, que se elabora para facilitar su comprensión y el estudio de su comportamiento.
• 5. m. Objeto, aparato, construcción, etc., o conjunto de ellos realizados con arreglo a un mismo diseño. Auto modelo 1976. Lavadora último modelo.
• 6. m. Vestido con características únicas, creado por determinado modista, y, en general, cualquier prenda de vestir que esté de moda.
• 7. m. En empresas, u. en aposición para indicar que lo designado por el nombre anterior ha sido creado como ejemplar o se considera que puede serlo. Empresa modelo. Granjas modelo.
• 8. m. Esc. Figura de barro, yeso o cera, que se ha de reproducir en madera, mármol o metal.
• 9. m. Cuba. impreso (‖ hoja con espacios en blanco).
• 10. com. Persona de buena figura que en las tiendas de modas se pone los vestidos, trajes y otras prendas para que las vean los clientes.
• 11. com. Esc. y Pint. Persona u objeto que copia el artista.• Diccionario de la Real Academia Española.
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"2
• Booch, Rumbaugh y Jacobson (2006) establecen que un
modelo es una simplificación de la realidad, que
modelamos para comprender mejor el sistema que
estamos desarrollando, y agregan que cuando el
sistema se complejiza, el modelado se vuelve muy
importante ya que si no lo construimos no podemos
comprender el sistema en su totalidad.
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"3
• Para comprender el sistema actual.
• Para conceptualizar la solución.
• Para mejorar la comunicación.
• Para evitar ambigüedades e interpretaciones erróneas.
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"4
• Atómicos, Matemáticos, Económicos, Educativos,
Pedagógicos, y otros.
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"5
• Programas de computadora, procedimientos,
documentación posiblemente asociada y datos en
relación con la operación de un sistema de computadora
(IEEE Std 610.12-1990).
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"6
• Objetivos:
• Dada una necesidad, pretende satisfacerla a través de una
solución software.
• Mantenimiento del software producido hasta el final de su vida útil.
• La solución de un problema mediante ingeniería de
software es una actividad de modelización que comienza
con el desarrollo de modelos conceptuales (no formales)
y los convierte en modelos formales (producto software).
• Modelo conceptual determina la validez ¿es válido para ese
problema?
• Modelo formal determina la corrección ¿funciona correctamente el
modelo?
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"7
• Análisis y Especificación de Requerimientos ¿Qué
hacer?
• Diseño ¿Cómo lo hacemos?
• Codificación hacerlo
• Pruebas probarlo
• Instalación usarlo
• Mantenimiento cuidarlo
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"8
• Necesidad
Obtención de requerimientos
• Especificación de requerimientos
Diseñar el sistema • Diseño
Programar el código
• Código
Probar el sistema • Sistema o
Producto Software
Instalación
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"9
• Un ciclo de vida debe:
• Determinar el orden de las fases del proceso software.
• Establecer los criterios de transición entre fases.
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"10
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"11
• No existe un único ciclo de vida. Existen muchas
aplicaciones para las que se construyen productos
software.
• El problema es conocido y pequeño, el grupo tiene experiencia en
esos desarrollos, el usuario puede describir claramente los
requisitos, un ciclo de vida tradicional en cascada es adecuado.
• El problema es complejo o medianamente complejo, los
requerimientos cambiantes, conlleva riesgos, conviene utilizar
combinaciones por ejemplo iterativos e incremental. Donde a cada
iteración o incremento se aplica el ciclo de vida tradicional en
cascada.
• El desarrollo tiene riesgos, el ciclo en espiral es más adecuado.
• Probar el producto al usuario para mostrar su utilidad podemos
usar el prototipado.PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"12
Desde la década del 60 hasta nuestros días
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"13
60 – 70 Artesanía
Código espagueti
Artesanía del software
70 – 80 Cascada
Métodos estructurados
Procesos cascada
80 – 90 Productividad
Métodos orientados a objetos
Medición de productividad y calidad
Nace el concepto de fábrica de software
90 – 00 Procesos
concurrentes
Arquitecturas de software especializadas
por dominio. Reutilización por línea
de producto.
Reutilización basada en flexibilidad de
componentes. Líneas de producto.
Modelos de madurez.
Entornos integrados (CASE)
00 – 10 Agilidad
Arquitecturas orientadas a servicios.
Métodos ágiles de desarrollo.
Afianzamiento en reutilización por línea de producto y modelo
de madurez.
Actualidad Integración
Global
Conectividad global.
Arquitectura empresarial.
Computación en la nube.
Equipos de trabajo distribuidos.
Métodos colaborativos con asistencias de
Groupware.
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"14
• Un servicio es una funcionalidad (ofrecida por una entidad y que satisface una necesidad de una entidad solicitante) y no la forma en que dicha funcionalidad es implementada en el sistema. Es una entidad autónoma.
• Se basa en el paradigma de computación orientada a servicios.
• Utiliza un conjunto de servicios para dar soporte a los requisitos de determinados procesos de negocio de una determinada organización.
• No está unida a una plataforma o tecnología concreta, se puede usar por ejemplo Servicios Web.
• Ejemplos
• Sistemas que comparten información médica.
• Sistemas de reservas.
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"15
• Promueve iteraciones en el desarrollo a lo largo de todo el
ciclo de vida del proyecto.
• La mayoría minimiza riesgos desarrollando software en cortos
lapsos de tiempo. El software desarrollado en una unidad de
tiempo es llamado una iteración, la cual debe durar de una a
cuatro semanas.
• Cada iteración del ciclo de vida incluye: planificación, análisis
de requerimientos, diseño, codificación, revisión y
documentación.
• Una iteración no debe agregar demasiada funcionalidad para
justificar el lanzamiento del producto al mercado, pero la meta
es tener un demo (sin errores) al final de cada iteración.
• Al final de cada iteración el equipo vuelve a evaluar las
prioridades del proyectoPI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"16
• DSD o desarrollo distribuido de software permite que
stakeholders no estén en un mismo lugar físico. Cuando
la lejanía incluye países distintos se denomina Desarrollo
Global de Software (GSD).
• Si los stakeholders no pertenecen a la misma
organización se denomina tercerización (outsourcing).
• Si se transfieren empleos a otro país se denomina
deslocalización (offshoring).
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"17
• También denominado servicios en la nube.
• Paradigma que permite ofrecer servicios de computación
a través de internet.
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"18
Arquitectura versus Complejidad
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"19
Desarrollo
Basado en
la Arquitectura
•Importancia de modelos de alto nivel que luego se refinan
•Desarrollo basado en interfaces antes que clases
•Uso de patrones y tácticas de arquitectura
•Estimar esfuerzo de construcción
•Plan de construcción de los CU según su
impacto en la arquitectura
•Nuevos esquemas de negociación del proyecto
•Nuevos esquemas de interacción cliente/proveedor
•La arquitectura como elemento para evaluar
riesgos
•Medición de la calidad “sobre
planos”
•Adopción de frameworks de
atributos de calidad
En la ingeniería
En la gestión del proyecto En la calidad del producto
PhasesProcess Workflows
Supporting Workflows
ManagementEnvironment
Business Modeling
Implementation
Test
Analysis & Design
Preliminary Iteration(s)
Iter.#1
Iter.#2
Iter.#n
Iter.#n+1
Iter.#n+2
Iter.#n
Iter.#n+1
Deployment
Configuration Mgmt
Requirements
Elaboration TransitionInception Construction
•Especificación precisa de requisitos no funcionales
•Pruebas de concepto de la arquitectura
•Definición de la línea base de la arquitectura
•Procesos formales de análisis y evaluación de la arquitectura
Enfatiza la importancia de:
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"21
Cualidadesde la Arquitectura
Procesos
Representación
de la arquitectura
Qué? Por qué?
Para qué?Quién?
Características
Del Sistema
ArquitecturaRequerimientos
S/W
Atributos de
Calidad del sistema
Satisface
Restringe
Organización
Arquitecto
Habilidades
Stakeholders
Define roles
Produce
Analiza
DefinesTecnología
Fuente: Rational SoftwarePI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"22
arquitecto
gerente del
proyecto
líder de
mercadeo
usuario
final
soporte
aplicativo
cliente
Bajo costo
Rendimiento
del equipo
Corto tiempo en mercado
Bajo costo; ventajas con
productos similares
Funcionalidad
Rendimiento
Seguridad
usabilidad
modificabilidad
Bajo costo y tiempo
de entrega, que no cambie
muy a menudo
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"23
• En la medida que la complejidad de los sistemas
crece, los algoritmos y las estructuras de datos
dejan de convertirse en el mayor problema.
• El diseño y especificación de la estructura general
del sistema emerge como un nuevo tipo de
problema: el diseño a nivel de arquitectura.
• En aplicaciones OO las clases representan
unidades de granularidad muy fina; en sistemas
grandes se requiere hablar de unidades que
represente una funcionalidad mayor (módulos /
subsistemas / componentes de negocio)
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"24
Fuente: Architecture as a Business Competency. Bredemeyer Consulting
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"25
• La complejidad de los sistemas deriva, directamente de lainvención de la computadora y su utilización, y forman tantoparte de ellas que han sido incorporadas en la informática,sirviéndole de impulso.
• Podemos hablar de las ciencias de la complejidad y estas seencuentran en la base de la modelización de los sistemasinformáticos, dentro de estas ciencias encontramos, el caos,la geometría de fractales, la vida artificial, y las lógicas no-clásicas.
Justamente la incorporación de está última a los sistemasinformáticos desde hace un tiempo hacia acá, es la que acontribuido, al desarrollo de los sistemas actuales.
• Un ejemplo de sistemas informáticos que nos permitenenfrentar situaciones complejas, son los sistemas expertos.
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"26
Es un software que incorpora conocimiento de un expertohumano sobre un dominio de aplicación dado, de manera quees capaz de resolver problemas de relativa dificultad y apoyarla toma de decisiones inteligentes en base a un proceso derazonamiento simbólico. Se puede entender como una ramade la inteligencia artificial y está compuesta en forma generalpor:
• Base de conocimientos (BC): Contiene conocimiento modelado extraído del diálogo con un experto.
• Base de hechos (Memoria de trabajo): contiene los hechos sobre un problema que se ha descubierto durante el análisis.
• Motor de inferencia: Modela el proceso de razonamiento humano.
• Módulos de justificación: Explica el razonamiento utilizado por el sistema para llegar a una determinada conclusión.
• Interfaz de usuario: es la interacción entre el SE y el usuario, y se realiza mediante el lenguaje naturalPI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"27
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"28
Breve detalle
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"29
• PI 29/B134 Modelado de Requerimientos y Diseño de
Sistemas Complejos
• Radicado en UNPA – Unidad Académica Caleta Olivia
• Inicio: 01.01.2012 Fin: 01.01.2014
• Directora: Lic. Gabriela Vilanova
• Co-Directora: Ing. Silvia G. Rivadeneira Molina
• Integrantes: Dr. Carlos Arias Méndez, Ing. Valeria Varas, Ing.
Juan Fontana, Al. Brenda Ducasse, Al. Ángel Páez, Al. Claudio
Monserrat.
• Se está tramitando el ingreso de dos docentes investigadores
(Ing. Gabriela Miranda y la Lic. Diana Cruz)
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"30
• Modelado BPMN (Business Process Modeling Notation).
• Metodologías ágiles.
• Desarrollo de software para dispositivos móviles.
• Arquitectura de Sistemas Complejos.
• Arquitecturas orientadas a servicios.
• Innovaciones en la enseñanza de modelado de software.
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"31
• ¡Muchas gracias!
PI 29/B134 "Modelado de Requerimientos y
Diseño de Sistemas Complejos"32