Post on 06-Jan-2015
SISTEMAS II
UNIDAD Nº 1
INTRODUCCION A UML
T.U.I.
LIC. CONTRERAS, PAMELA
Modelos de ciclos de vida
Alternativos Espiral Desarrollo con
prototipado
Desarrolloincrementa
l
Tradicional
Refinamiento sucesivo
Cascada Refinamiento sucesivo
Cascada
Requisitos
Diseño
Codificación
Prueba
OperaciónCaracterísticas:•Obliga a especificar lo que el sistema debe hacer antes de construir el sistema•Obliga a definir como van a interactuar los componentes.•Permite detectar y resolver desviaciones sobre la planificación inicial•Requiere que el proceso de desarrollo genere una serie de documentos que posteriormente pueden utilizarse para la validación y el mantenimiento del sistema
Ventajas:•Las etapas están organizadas de un modo lógico•Cada etapa incluye cierto proceso de revisión.•Esta organizado de modo que se pase el menor numero de errores de una etapa a la siguiente•El ciclo es interactivo. El flujo básico es de arriba hacia abajo, no obstante, reconoce que los problemas de etapas inferiores afectan a las decisiones de las etapas inferiores.-
Modelo de ciclo de vida en cascada
Requerimiento sistema global
Requerimiento sistema software
DiseñoPreliminar
Diseño detallado
Código
Integración software y hardware
Prueba del sistema software
Integracióndel software
Prueba de componente
Prueba de unidad
Visión alternativa del ciclo de vida en Cascada
• Los requisitos del sistema global se dividen en requisitos del hw y requisitos del sw
• Modelo alternativo que enfatiza en la validación de los productos.
Requisitos
Diseño de sistema
Diseño detallada
Implementación / pruebas unitarias
Pruebas de component
es
Pruebas de
integración
Pruebas de
aceptación
Valida requisitos
Verificadiseño
Modelo en cascada en V
Muestra la relación de las actividades de prueba con el análisis y diseño
A. Requisitos del sistema
A. Requisitos del software
Diseño
Codificación
A. Requisitos del software
Diseño
Codificación
A. Requisitos del software
Diseño
Codificación
………
Mantenimiento
Modelo incremental
El desarrollo incremental es el proceso de construir una implementación parcial del sistema global y posteriormente ir aumentando la funcionalidad del sistema.•Ventaja: Facilita la incorporación de nuevos requisitos, por lo tanto el software es fácil de mejorar.-•Desventaja: El equipo de desarrollo sacrifica la etapa de análisis a favor de una obtención rápida de la 1º versión, generando un 1º producto alejado de las necesidades del usuario.-
Recolección y refinamiento de requisitos
Producto de ingeniería Diseño
rápido
Construcción del prototipo
Evaluación del prototipo por el cliente
Refinamiento del prototipo
Parada
Comienzo Modelo de ciclo de vida Prototipo
Sigue el ciclo de vida tradicional , solo que su tiempo de desarrollo será bastante mas reducido. El usuario, mediante a utilización del prototipo, descubrirá los aspectos o requisitos no captados.
El Proceso Unificado
Es un proceso configurable aunque un único proceso no es adecuado para todas las organizaciones de desarrollo de software, el UP es adaptable y puede configurarse para cubrir las necesidades de proyectos pequeños y grandes.
¿QUÉ ES UML?
UML (Unified Modeling Language)
Es un lenguaje gráfico que permite modelar, construir y documentar Los elementos que
constituyen un sistema software orientado a objetos.
Ofrece un conjunto de modelos estándar utilizados para el diseño de proyectos.
Modelo = Representación abstracta de la realidad.
UML no describe la implementación de esos modelos.
LA IMPORTANCIA DE MODELAR
Porque… Proporciona los planos de un sistema. Los modelos pueden involucrar planos
detallados. Incluyen aquellos elementos que tienen una
gran influencia. Omite aquellos elementos menores que no
son relevantes. pueden ser descritos desde diferentes perspectivas.(diferentes modelos).
Es una abstracción cerrada del sistema.
LA IMPORTANCIA DE LA IMPORTANCIA DE MODELARMODELAR
Un modelo puede ser estructural,
destacando la organización del sistema,
o puede ser de comportamiento,
resaltando su dinámica.
RECORDANDO ALGUNAS DEFINICIONES
Un modelo es la representación de algo que existe en el mundo real. (Existencia física o potencial).
El modelo representa en función de un dominio de estudio. Subdominios del que representa al todo.
Se construye un modelo para aprender más del dominio.
También como forma más económica de estudiar algo del mundo real.
¿QUÉ ES ENTONCES UN MODELO?
Un Modelo es una simplificación de la realidad.¿QUÉ MODELAMOS?
Hay una razón fundamental…
Construimos modelos para comprender mejor el sistema que estamos desarrollando.
Cuando los modelos de sistemas son
complejos y no podemos comprender el
sistema en su totalidad.
¿Por qué modelamos?
A TRAVÉS DEL MODELADO…
…Se fijaron cuatro objetivos
1. Los modelos nos ayudan a visualizar cómo es o queremos que sea un sistema.
2. Los modelos nos permiten especificar la estructura o el comportamiento de un sistema.
3. Los modelos nos proporcionan plantillas que nos guían en la construcción de un sistema.
4. Los modelos documentan las decisiones que hemos adoptado.
MODELADO O.O.
De la elección de ver el mundo de una forma O.O. se derivan varias implicaciones:
¿Cuál es la estructura de una buena
arquitectura O.O.?
¿Qué artefactos debería crear un proyecto?
¿Quién debería crearlos?
¿Cómo deberían medirse?
PARA VISUALIZAR
1. La comunicación entre modelos conceptuales esta sujeta a errores a menos que se hable el mismo lenguaje.
2. Hay cuestiones sobre un SW que no se pueden entender a menos que se construyan modelos que trasciendan el lenguaje de programación.
3. Sino se documenta el código, esa información se perderá.
PARA ESPECIFICAR
Construyendo modelos precisos, no ambiguos y completos.
UML, cubre la especificación de todas las decisiones de análisis, diseño e implementación que deben realizarse al desarrollar y desplegar un sistema con gran cantidad de SW.
PARA CONSTRUIR
Produce una ingeniería “de ida y vuelta”,
entendiendo por esto la posibilidad de trabajar en
una vista gráfica o en una textual (código),
mientras las herramientas mantienen la
consistencia entre ambas.
PARA DOCUMENTAR
Requisitos. Arquitectura. Diseño. Código fuente. Planificación de proyectos. Pruebas. Prototipos. Versiones.
¿DÓNDE UTILIZAR UML?
Fue utilizado de manera efectiva en diferentes dominios. Sistemas de información empresariales. Bancos y servicios financieros. Transporte. Ámbito científico. Etc..
FINALIDADES DE UML:
Objetivos: Representar sistemas complejos (más allá de un
solo programa) por conceptos de objetos; Establecer una relación explícita entre los
conceptos y los artefactos ejecutables; Tener en cuenta los factores de escala
inherentes a los sistemas complejos y críticos; Crear un lenguaje de modelado utilizable tanto
por los humanos como por las máquinas.
VENTAJAS
Reutilización de código.
Simple de entender.
Alta cohesión y bajo acoplamiento.
Escalabilidad.
LIMITACIONES DE UML
UML no es un modelo de proceso de desarrollo de software.- No define un ciclo de vida, ni objetivos, ni actividades.
UML no es una metodología.- No prescribe buenas prácticas, ni heurísticas, ni
estrategias para alcanzar los diferentes objetivos. UML fue concebido para describir modelos
de software.
UML está fuertemente vinculado a la OO.
PERSPECTIVAS DE UML
UML será el lenguaje de modelado orientado a objetos estándar predominante los próximos años.
Razones:- Participación de metodólogos influyentes.- Participación de importantes empresas.
Evidencias:- Crecimiento de herramientas que proveen la
notación UML.- “Edición” de libros.- Congresos, cursos, Etc..
MODELOS Y DIAGRAMAS
Un modelo captura una vista de un sistema del mundo
real. Es una abstracción de dicho sistema, considerando
un cierto propósito. Así, el modelo describe
completamente aquellos aspectos del sistema que son
relevantes al propósito del modelo, y a un apropiado
nivel de detalle.
Diagrama: una representación gráfica de una colección
de elementos de modelado.
MODELOS Y DIAGRAMAS
Un proceso de desarrollo de SW debe ofrecer un conjunto de modelos que permitan expresar el producto desde cada una de las perspectivas de interés.
El código fuente del sistema es el modelo más detallado del sistema (y además es ejecutable). Sin embargo, se requieren de otros modelos.
Cada modelo es completo desde su punto de vista del sistema, sin embargo, existen relaciones de trazabilidad (significa capturar las relaciones de implementación y dependencia en el modelo). Por ejemplo, un proceso de negocio requerirá algunas funcionalidades del sistema para implementar las funciones del proceso entre los diferentes modelos
DIAGRAMAS DE UML
Diagrama de Casos de Uso.
Diagrama de Clases.
Diagrama de Objetos.
Diagramas de Comportamiento
Diagrama de Estados.
Diagrama de Actividad.
Diagramas de Interacción
Diagrama de Secuencia.
Diagrama de Colaboración.
Diagramas de implementación
Diagrama de Componentes.
Diagrama de Despliegue.
DIAGRAMAS DE UML
Los diagramas expresan gráficamente partes de un modelo
Use CaseDiagrams
Use CaseDiagramsDiagramas de Casos de Uso
ScenarioDiagrams
ScenarioDiagramsDiagramas deColaboración
StateDiagrams
StateDiagramsDiagramas deComponentes
ComponentDiagramsComponent
DiagramsDiagramas deDistribución
StateDiagrams
StateDiagramsDiagramas de
Objetos
ScenarioDiagrams
ScenarioDiagramsDiagramas de
Estados
Use CaseDiagrams
Use CaseDiagramsDiagramas de
Secuencia
StateDiagrams
StateDiagramsDiagramas de
Clases
Diagramas deActividad
Modelo
MODELO DE ARQUITECTURA
29
Vista de Implementación
Vista de Despliegue
Vista de
Interacción
Vista de Diseño
Vista de
Caso de Uso
VocabularioFuncionalidad
Comportamiento
Rendimiento,Escalabilidad,Capacidad de procesamiento
Ensamblado delSistema, gestión de la configuración
Topología delSistema, distribuciónEntrega, instalación
Conceptos Básicos de Orientación a Objetos
El modelamiento y el diseño orientado a objetos, es un modo de
pensar abstractamente un problema usando conceptos del mundo
real en vez de conceptos de computación.
•Requiere de un gran esfuerzo intelectual
•Surge por los cambios constantes de la realidad. Ej: fecha
•Ese cambio genera la necesidad de reusabilidad del software
•Revolucionó la forma de desarrollo del software
•Necesita de un tiempo de aprendizaje
Definiciones Básicas:
PROGRAMA:
En orientación a Objetos (OO) es una red de objetos cooperantes que
interactúan entre si, enviándose mensajes.
OBJETO:
Es una abstracción de un conjunto de cosas del mundo real que tiene sentido en el problema aplicación
Es una entidad que tiene un comportamiento (clave de la OO). Ese comportamiento está expresado por el conjunto de mensajes que el objeto es capaz de responder
ENCAPSUL AMIENTO
Postula -simplificando- que no hay forma de acceder a las
variables del objeto desde el exterior del mismo
Conocimiento que tiene un objeto:Conocimiento que tiene un objeto:
Características propias del objeto p.e. en una cuenta bancaria
característica propia puede ser el sald), características intrínsecas
del objeto -que lo distinguen respecto a otro-
Parte del objeto un objeto puede tener adentro a otros objetos más
pequeños, p.e. en la cuenta bancaria el conjunto de los movimientos
que se realizaron. La expresión "dentro del objeto" no quiere decir
"físicamente", sino que tiene que ver con la estructura del mismo.
conocer otros objetos cooperantes
CLASECLASE
Una clase es una definición simplificada de las características comunes de un
conjunto de objetos semejante. (comparten el mismo comportamiento) .
Los objetos con la misma estructura de datos (atributos) y comportamiento
(operación) son agrupados en CLASES.
Una especificación de clase en un modelo OO básicamente tiene:Interfaz: conjunto de mensajesEstructura: conjunto de atributosMétodos: uno por cada uno de los mensajes definidos en la interfaz.
ABSTRACCIÓNABSTRACCIÓN
La abstracción es la especificación de ciertos aspectos esenciales de un
sistema para un propósito particular, aisla los aspectos que son
importantes dejando de lado aquellos que no lo son.
La abstracción pone énfasis en la vista externa del objeto y la
encapsulamiento (acuitamiento de información) previene a los clientes de
ver la vista interna del objeto, donde el comportamiento de la abstracción
se implementa.
HERENCIAHERENCIA
La HERENCIA es el compartimiento de atributos y operaciones
entre clases, basados en una relación jerárquica.
OPERACIONES Y MÉTODOSOPERACIONES Y MÉTODOS
Una OPERACIÓN es una función que puede ser aplicada a objetos o
por objetos de una clase.
Un MÉTODO es la implementación de una operación para una clase
POLIMORFISMOPOLIMORFISMO
La misma operación se puede comportar en forma diferente en clases
distintas. Esta característica fundamental de la OO se denomina
POLIMORFISMO.
UMLUMLEs un lenguaje para: Especificar Construir Visualizar Documentar
Un sistema de software orientado a objetosUn sistema de software orientado a objetos
El objetivoobjetivo central del lenguaje es: abstraer cualquier tipo de sistema,
sea informático o no, mediante diagramas.
Un diagramadiagrama es una representación gráfica de una colección de
elementos del modelo, que habitualmente toma la forma de grafo donde
los arcos que conectan sus vértices son las relaciones entre los objetos
y los vértices se corresponden con otros elementos del modelo.
DIAGRAMASDIAGRAMAS
Los diagramas de objetos: que representan los objetos y sus relaciones y corresponden a los diagramas de colaboración simplificados, sin representación de los envíos de mensajes; y diagramas de clases: que representan la estructura estática en términos de clases y relaciones.
Diagramas de Casos de Uso: representan las funciones del sistema desde el punto de vista del usuario.
Diagramas de Secuencia: son una representación temporal de los objetos y sus interacciones. Diagrama de Colaboración: son una representación espacial de los objetos, enlaces e interacciones. Diagrama de estados: representan el comportamiento de una clase en términos de estados
Diagramas de Actividades: representan el comportamiento de una operación en términos de acciones.
Diagramas de Implementación: encontramos los diagramas de componentes: representan los componentes físicos de una aplicación; y los diagramas de despliegue: representan la configuración de los elementos de procesamiento en tiempo de ejecución y los componentes software, procesos y objetos que se ejecutan en ellos.