Tema: el proceso unificado de desarrollo de software (uml) vision general del proceso unificado (introduccion) El Proceso Unificado



Descargar 124.04 Kb.
Fecha de conversión18.11.2018
Tamaño124.04 Kb.

RESUMEN DEL PROCESO UNIFICADO DE DESARROLLO DE SOFTWARE (UML)

TEMA: EL PROCESO UNIFICADO DE DESARROLLO DE SOFTWARE (UML)

VISION GENERAL DEL PROCESO UNIFICADO (INTRODUCCION)

El Proceso Unificado: Es un “conjunto de actividades necesarias para transformar los requisitos del usuario en un sistema software”.
* Es un marco genérico.

RUP *El software esta formado por componentes software

(Proceso Unificado de Rational) interconectados a través de interfaces.

*Esta dirigido por casos de uso, centrado en arquitectura y



es iterativo e incremental.
DIRIGIDO POR CASOS DE USO
Un caso de uso es un fragmento de funcionalidad del sistema (aplicación) que proporciona un resultado de valor a un usuario, juntos constituyen el modelo de casos de uso, los cuales guían el proceso de desarrollo (diseño, implementación y prueba).
CENTRADO EN LA ARQUITECTURA
Arquitectura: Son los aspectos estáticos y dinámicos mas significativos del sistema y es una vista del diseño completo de las características mas importantes, en conclusión podemos decir que la arquitectura es conjunto de decisiones significativas acerca de la organización de un sistema software, la selección de los elementos estructurales a partir de los cuales se compone el sistema, las interfaces entre ellos, su comportamiento, sus colaboraciones, y su composición.
La arquitectura es una vista del diseño completo con las características más importantes resaltadas, dejando los detalles de lado.
El arquitecto, Crea un esquema en borrador de la arquitectura, posteriormente, trabaja con un conjunto de casos de uso claves o fundamentales (Cada caso de uso es especificado en detalle), esto permite que se descubra más de la arquitectura, y esto a su vez lleva a la maduración de más casos de uso hasta llegar a la construcción del sistema.
ITERATIVO INCREMENTAL
Es practico dividir el esfuerzo de desarrollo de un proyecto de software en partes mas pequeñas o mini proyectos los cuales son iteraciones que resultan en un incremento.
Las iteraciones hacen referencia a pasos en el flujo de trabajo, y los incrementos a crecimientos en el producto es decir en cada iteración los desarrolladores identifican y especifican los casos de uso relevantes, crean un diseño utilizando la arquitectura seleccionada como guía, para implementar dichos casos de uso. Si la iteración cumple sus objetivos, se continúa con la próxima. Si no, deben revisarse las decisiones previas y probar un nuevo enfoque.
BENEFICIOS DEL ENFOQUE ITERATIVO


  • Reduce el riesgo a los costes de un solo incremento

  • Reduce riesgos de retraso atacando los riesgos mas importantes

  • Acelera el desarrollo

  • Tiene un enfoque mas realista sobre los requisitos



EL CICLO DE VIDA DEL PROCESO UNIFICADO
El Proceso Unificado se repite a lo largo de una serie de ciclos que constituyen la vida de un sistema. Cada ciclo constituye una versión del sistema, es decir consta de cuatro fases: inicio, elaboración, construcción y transición.
FASES


  • El ciclo de vida organiza las tareas en fases e iteraciones

  • Cada ciclo constas de cuatro fases: inicio, elaboración, construcción, y transición.

  • Cada fase se subdivide en iteraciones. En cada iteración se desarrolla en secuencia un conjunto de disciplinas o flujos de trabajos.

  • Durante la fase de inicio las iteraciones hacen mayor énfasis en actividades de modelado del negocio y de requisitos.

  • En la fase de elaboración, las iteraciones se orientan al desarrollo de la arquitectura, modelo de negocios (refinamiento), análisis, diseño y una pequeña parte de la arquitectura.

  • En la fase de construcción, se lleva a cabo la construcción del producto por medio de una serie de iteraciones.

  • En la fase de transición se pretende garantizar que se tiene un producto preparado para su entrega a la comunidad de usuarios.

Cada fase se subdivide en iteraciones. En cada iteración se desarrolla una secuencia, es decir un conjunto de disciplinas o flujos de trabajo.



Disciplinas

Cada disciplina es un conjunto de actividades relacionadas y vinculadas a un área específica dentro del proyecto total. Las más importantes son: Requerimientos, Análisis, Diseño, Codificación, y Prueba.



Las disciplinas producen modelos o artefactos, los más importantes son:

Modelos de caso de uso Modelo de diseño

http://users.dsic.upv.es/asignaturas/facultad/lsi/ejemplorup/diagramas/cus/mon_vender.gif http://4.bp.blogspot.com/_q43cngnbt9y/safpdegzxai/aaaaaaaaa7m/d1monlueodk/s400/04_ddd_software_development.jpg

Modelo de implementación Modelo de negocioshttp://t2.gstatic.com/images?q=tbn:and9gct5-6z58_i9h3auxt5r7s4-1zg4lvjdiawyewq30gzpq4yihyznkahttp://t2.gstatic.com/images?q=tbn:and9gct5-6z58_i9h3auxt5r7s4-1zg4lvjdiawyewq30gzpq4yihyznka



http://www.prodigioconsultores.com/sitio/img/modelo_prodigio_consultores.jpghttp://www.ibm.com/developerworks/ssa/websphere/techjournal/1004_col_xu/images/onetimedev.gif

El Proceso Unificado consiste en una serie de disciplinas o flujos de trabajo. Los flujos de trabajo desarrollan modelos desde el modelo de casos de uso hasta el modelo de pruebas.




Disciplina

Modelos

Requisitos

Modelo de Casos de Uso

Análisis

Modelo de Análisis

Diseño

Modelo de Diseño - Modelo de Despliegue

Implementación

Modelo de Implementación

Prueba

Modelo de Prueba


HITOS
Cada fase finaliza con un hito. Cada hito se determina por la disponibilidad de un conjunto de artefactos, tiene muchos objetivos y también permite controlar la dirección y progreso del trabajo.
FASE DE INICIO
Esta fase tiene como propósito definir y acordar el alcance del proyecto con el cliente, identificar los riesgos asociados al proyecto, proponer una visión muy general de la arquitectura de software y producir el plan de las fases y el de iteraciones posteriores.
FASE DE ELABORACIÓN
En esta fase se seleccionan los casos de uso que permiten definir la arquitectura base del sistema y se desarrollaran en esta fase, se realiza la especificación de los casos de uso seleccionados y el primer análisis del dominio del problema, se diseña la solución preliminar.
FASE DE CONSTRUCCIÓN
Durante la fase de construcción se crea el producto. La línea base de la arquitectura crece hasta convertirse en el sistema completo.
Al final de esta fase, el producto contiene todos los casos de uso implementados, sin embargo puede que no esté libre de defectos.
Los artefactos producidos durante esta fase son:


  • El sistema software

  • Los casos de prueba

  • Los manuales de usuario

La fase de construcción finaliza cuando:




  • El producto es estable para ser usado

  • El producto provee alguna funcionalidad de valor

  • Todas las partes están listas para comenzar la transición


FASE DE TRANSICIÓN
La fase de transición cubre el período durante el cual el producto se convierte en la versión beta o de prueba.
En esta fase el equipo se encuentra ocupado fundamentalmente en corregir y extender la funcionalidad del sistema.
La fase de transición finaliza cuando:


  • Se han alcanzado los objetivos fijados en la fase de Inicio.

  • El usuario está satisfecho.


2. UN PROCESO CONDUCIDO POR CASOS DE USO (INTRODUCCION)
Tomaremos como ejemplo una versión simplificada de un sistema para un cajero automático (CA).


  1. EL MODELO DE CASO DE USOS REPRESENTA LOS REQUISITOS FUNCIONALES

La primera disciplina que se desarrolla dentro de cada iteración es la de requerimientos; Su objetivo es determinar los requerimientos del sistema. Los requerimientos son plasmados a través de casos de uso en un Modelo de Casos de Uso.


El modelo de casos de uso ayuda al cliente, a los usuarios, y a los desarrolladores a llegar a un acuerdo sobre cómo utilizar el sistema. Cada tipo de usuario del sistema se representa mediante un actor que define un rol de utilización del sistema.
Los actores modelan el entorno del sistema, y los casos de uso especifican el sistema.
Un diagrama de casos de uso describe parte del modelo de casos de uso y muestra un conjunto de casos de uso y actores asociados.


  1. CREACIÓN DEL MODELO DE ANÁLISIS A PARTIR DE LOS CASOS DE USO

En él, se describen un conjunto de Clases del análisis que se utilizan para realizar una descripción abstracta de la realización de los casos de uso del modelo de casos de uso.
El modelo de análisis crece incrementalmente a medida que se analizan más y más casos de uso.

Las clases del análisis evolucionan hacia otras clases más detalladas en el Modelo del Diseño.






Cada clase debe cumplir todos sus roles de colaboración: las responsabilidades de una clase son la recopilación de todos los roles que cumple en todas las realizaciones de casos de uso.


  1. CREACIÓN DEL MODELO DE DISEÑO A PARTIR DEL MODELO DE ANÁLISIS

El modelo de diseño se crea tomando el modelo de análisis como entrada principal y se lo adapta a un entorno de implementación, como: adecuaciones a un framework (marco) de construcción de GUI (Graphical User Interface) particular, uso de un ORB(Object Request Broker, el nombre que recibe una capa de software y que Maneja la transferencia de estructuras de datos, de manera que sean compatibles entre los dos objetos), sistemas heredados, etc.


El modelo de diseño es similar al modelo de análisis ya que incluye clasificadores, relaciones, y realizaciones de casos de uso.
En el diseño sin embargo, utilizaremos principalmente diagramas de secuencia para representar esta interacción.

Las clases del diseño refinan las clases del análisis.



Diagrama de secuencia para representar la realización del caso de uso Sacar Dinero en el modelo de diseño.


AGRUPACIÓN DE CLASES EN SUBSISTEMAS
Es imposible utilizar sólo clases para realizar los casos de uso en un sistema grande. Las clases se agrupan en subsistemas.
Un subsistema es un agrupamiento semánticamente útil de clases o de otros subsistemas.
Los subsistemas de bajo nivel se denominan subsistemas de servicio.
Los subsistemas pueden diseñarse en forma descendente o ascendente.
El diseño ascendente se realiza a partir de la agrupación de clases ya identificadas.

El diseño descendente, implica la definición previa por parte del arquitecto de los subsistemas de más alto nivel y las interfaces entre ellos, antes de que se hayan identificado las clases.


Para el sistema de CA se agrupan las clases en tres subsistemas:
- <> Interfaz del CA: agrupa todas las clases que proporcionan la interfaz gráfica del CA:

o Lector de tarjetas

o Dispositivo de visualización

o Teclado

o Alimentador de la salida

o Sensor de la salida

o Contador de efectivo

o Gestor de cliente

- <> Gestión de transacciones

o Gestión de Transacciones

o <> Gestión de retirada de efectivo

§ Retirada de efectivo

- <> Gestión de cuentas

o Clase Persistente

o Gestor de Cuentas

o Cuenta
Los subsistemas implementan interfaces. Las interfaces se representa por un círculo vinculado con una línea de trazo continuo a la clase dentro del subsistema que proporciona la interfaz. Una línea de trazo discontinuo de una clase a una interfaz representa que la clase usa la interfaz.





  1. CREACIÓN DEL MODELO DE IMPLEMENTACIÓN A PARTIR DEL MODELO DE DISEÑO

Creación del modelo de implementación a partir del modelo de diseño. El modelo de implementación está formado por componentes, que incluyen todos los ejecutables (Ej. ActiveX, JavaBeans, .exe), y otro tipo de componentes como ser componentes de fichero (código fuente, shell scripts, etc.), componentes de tabla (elementos de base de datos), etc.


Un componente es una parte física y reemplazable del sistema que cumple y proporciona la realización de un conjunto de interfaces.
Componentes implementan clases del diseño



  1. PRUEBA DE CASOS DE USO

Durante la prueba, verificamos que el sistema implementa correctamente su función.


El modelo de prueba está compuesto por: casos de prueba y procedimientos de prueba.
Un caso de prueba es un conjunto de entradas de prueba, condiciones de ejecución, y resultados esperados, desarrollados para un objetivo concreto.
Un procedimiento de prueba es una especificación de cómo llevar a cabo la preparación, ejecución, y evaluación de los resultados de un caso de prueba particular.
Ejemplo:

Entradas:

- La cuenta 12-121-1211 del Cliente de Banco tiene un saldo de 350 $

- El Cliente de Banco se identifica correctamente

- El Cliente de Banco solicita la retirada de 200 $ de la cuenta 12-121-1211

- Hay suficiente dinero en el Cajero Automático

Resultados

- El saldo de la cuenta 12-121-1211 disminuye a 150 $

- El Cliente de Banco recibe 200 $ del Cajero Automático

Condiciones

- No se permite que ningún otro caso de uso (instancias de) acceda a la

cuenta 12-121-1211 durante la ejecución del caso de prueba.

3. UN PROCESO CENTRADO EN LA ARQUITECTURA

Importancia y necesidad de una arquitectura
Se necesita una arquitectura para:


  • Comprender el sistema

  • Organizar el desarrollo

  • Fomentar la reutilización

  • Hacer evolucionar el sistema

DESARROLLO DE LA ARQUITECTURA
La arquitectura se desarrolla mediante iteraciones, principalmente en la etapa de elaboración.

Los casos de uso que son relevantes para la arquitectura, son aquellos que eliminan los mayores riesgos del proyecto.


DESCRIPCIÓN DE LA ARQUITECTURA
La línea base de la arquitectura, es la versión interna del sistema al final de la fase de elaboración.

El conjunto de modelos que describen esta línea base se denomina Descripción de la Arquitectura.


El papel de la descripción de la arquitectura es guiar al equipo de desarrollo a través del ciclo de vida del sistema.
La vista de la arquitectura del modelo de casos de uso Presenta los actores y casos de uso más importantes como lo vemos en el ejemplo del CA el caso de uso más importante es Sacar Dinero. Sin él, no tendría sentido el CA.
LA VISTA DE LA ARQUITECTURA DEL MODELO DE CASOS DE USO
Presenta los clasificadores más importantes para la arquitectura pertenecientes al modelo de diseño: subsistemas e interfaces, clases importantes.
La vista de la arquitectura del modelo de diseño
Se incluyen las tres clases activas: Gestor de Clientes, Gestor de Transacciones, y Gestor de Cuentas.
También se incluyen los subsistemas: Interfaz del CA, Gestión de Transacciones, y Gestión de Cuentas, por ser necesarios para la realización del caso de uso Sacar Dinero.
LA VISTA DE LA ARQUITECTURA DEL MODELO DE DESPLIEGUE
Presenta los nodos interconectados y las clases activas que se ejecutan en ellos identificados durante el diseño. Se incluyen los siguientes nodos y objetos activos:
- Nodo: Cliente CA – Objeto activo: Gestor de Clientes

- Nodo: Servidor de aplicaciones CA – Objeto activo: Gestor de transacciones

- Nodo: Servidor de datos CA – Objeto activo: Gestor de Cuentas


4. UN PROCESO ITERATIVO E INCREMENTAL

Desarrollo en pequeños pasos
La tercera clave importante del RUP consiste en desarrollar un producto software en pasos pequeños manejables:


  • Planificar un poco.

  • Especificar, diseñar, e implementar un poco.

  • Integrar, probar, y ejecutar un poco en cada iteración.

Las iteraciones en las primeras fases tratan en su mayor parte con la determinación del ámbito del proyecto, la eliminación de los riesgos críticos, y la creación de la línea base de la arquitectura.



¿Por qué un desarrollo iterativo e incremental?


  • Para tomar las riendas de los riesgos críticos y significativos desde el principio.

  • Para poner en marcha una arquitectura que guíe el desarrollo del software.

  • Para proporcionar un marco de trabajo que gestione de mejor forma los inevitables cambios en los requisitos y en otros aspectos.

  • Para construir el sistema a lo largo del tiempo en lugar de hacerlo de una sola vez cerca del final, cuando el cambiar algo se ha vuelto costoso.

  • Para proporcionar un proceso de desarrollo a través del cual el personal puede trabajar de manera más eficaz.



5.CONCEPTOS CLAVE



PROCESO DE INGENIERÍA DE SOFTWARE
Un proceso es: un conjunto de pasos ordenados para alcanzar un objetivo. En ingeniería de software, es construir un producto de software nuevo o extender uno existente. En RUP se organiza en un conjunto de Disciplinas que define un flujo de trabajo.
DISCIPLINA
Es una colección de actividades relacionadas vinculadas con un área específica del proyecto. Este agrupamiento de actividades en disciplinas es principalmente para facilitar la comprensión del proyecto desde la perspectiva tradicional del modelo en cascada.
FLUJO DE TRABAJO
Describe la secuencia en que se realizan las actividades en una disciplina, quienes la realizan (trabajadores) y que artefactos producen.
TRABAJADOR (ROL)
Define un comportamiento o responsabilidades de un individuo o grupo de individuos trabajando en equipo, en el contexto de una organización de ingeniería de software.
ACTIVIDAD
Los trabajadores realizan actividades. Una actividad es algo que realiza un trabajador

para proveer un resultado de valor en el contexto de un proyecto.


PASOS (STEPS)
Las actividades son descompuestas en pasos. Podemos distinguir tres categorías de

pasos:
Pasos de análisis: donde el trabajador comprende la naturaleza de la tarea,

examina los artefactos de entrada, y formula las salidas.
Pasos de acción: donde los trabajadores crean o actualizan algunos artefactos.
Pasos de revisión: donde los trabajadores inspeccionan los resultados según

determinados criterios.


ARTEFACTOS
Las actividades tienen artefactos de entrada y de salida. Un artefacto es un producto

de trabajo en un proceso: los trabajadores utilizan artefactos para realizar actividades

y producen artefactos como resultado de sus actividades. Los artefactos son responsabilidad de un único trabajador y promueven la idea de que toda pieza de

información en el proceso debe ser responsabilidad de un rol específico. Un trabajador

es el “propietario” de un artefacto, pero otros trabajadores pueden usarlo y tal vez

modificarlo si tienen permiso para ello.



Principales artefactos en el proceso y flujo de información entre ellos.
El diagrama muestra como la información fluye a través del proyecto vía los artefactos.
Por claridad se han omitido muchos artefactos.
6.CAPTURA DE REQUISITOS (INTRODUCCION)
Es guiar el desarrollo hacia el sistema correcto. En algunos casos comenzamos haciendo un modelo del negocio o partimos de uno ya desarrollado. En otros casos si es un sistema acotado que no da soporte al negocio podemos partir de un modelo de objetos sencillo como un modelo del dominio.
En otros casos el cliente puede ya haber desarrollado una especificación completa de

requisitos no basada en objetos, de la cual podemos partir.


El flujo de trabajo de requisitos incluye los siguientes pasos:
Enumerar los requisitos candidatos.

Comprender el contexto del sistema.

Capturar requisitos funcionales.

Capturar requisitos no funcionales.


ENUMERAR LOS REQUISITOS CANDIDATOS
La lista de características deseadas del sistema constituyen los requisitos candidatos los cuales de cada característica se registra:
- Nombre corto

- Descripción

- Estado (propuesto, aprobado, incluido, o validado)

- Coste estimado de implementación (en término de tipos de recursos y

horas-hombre)

- Prioridad (crítico, importante, o secundario)

- Nivel de riesgo asociado a la implementación de la característica (crítico,

significativo, ordinario)


Estos valores se utilizan para estimar el tamaño del proyecto y decidir cómo dividirlo

en secuencia de iteraciones. La prioridad y nivel de riesgo asociados por ejemplo, se

utiliza para decidir en que iteración se implementará la característica.
COMPRENDER EL CONTEXTO DEL SISTEMA
Hay por lo menos dos aproximaciones para expresar el contexto de un sistema: modelado del dominio y modelado del negocio.
Un modelo del dominio describe los conceptos importantes del contexto como objetos

del dominio relacionados entres sí.


Un modelo del negocio es más amplio. Describe los procesos con el objetivo de comprenderlos. El modelado del negocio especifica que procesos de negocio soportará el sistema.
CAPTURAR REQUISITOS FUNCIONALES
Los requisitos funcionales son capturados por medio de casos de uso, que conforman el modelo de casos de uso. Los casos de uso también capturan requisitos no funcionales específicos de un caso de uso determinado.
ARTEFACTOS
Los artefactos utilizados en la captura de requisitos por casos de uso son:
- Modelo de casos de uso

- Actor


- Caso de uso

- Descripción de la arquitectura – vista del modelo de casos de uso –

- Glosario

- Prototipo de interfaz de usuario


ARTEFACTO: MODELO DE CASOS DE USO
Un modelo de casos de uso es un modelo del sistema que contiene actores, casos de

uso y sus relaciones.


ARTEFACTO: ACTOR
El modelo de casos de uso describe lo que hace el sistema para cada tipo de usuario.
Cada uno de éstos se representa mediante uno o más actores.
Los actores suelen corresponderse con trabajadores (o actores del negocio).
ARTEFACTO: CASO DE USO
Para cada caso de uso debe detallarse su flujo de sucesos.
También pueden vincularse a un caso de uso requisitos no funcionales específicos

del caso de uso.


ARTEFACTO: DESCRIPCIÓN DE LA ARQUITECTURA – VISTA DEL MODELO DE CASOS DE

USO –

Contiene una vista de la arquitectura del modelo de casos de uso, que representa los casos de uso significativos para la arquitectura.


ARTEFACTO: GLOSARIO
Podemos utilizar un glosario para definir términos comunes importantes que los analistas utilizan para describir el sistema.
ARTEFACTO: PROTOTIPO DE INTERFAZ DE USUARIO
Nos ayudan a comprender y especificar las interacciones entre actores humanos y el sistema durante la captura de requisitos.
TRABAJADORES
Analizamos los trabajadores responsables de crear los artefactos mencionados.
TRABAJADOR: ANALISTA DE SISTEMAS
Responsable de:
- modelo de casos de uso

- actores que contiene

- glosario

TRABAJADOR: ESPECIFICADOR DE CASOS DE USO
Asisten al analista de sistema en la descripción detallada de cada caso de uso.

Responsable de:

- caso de uso

TRABAJADOR: DISEÑADOR DE INTERFAZ DE USUARIO
Responsable de:
- prototipo de interfaz de usuario
TRABAJADOR: ARQUITECTO
Responsable de:
- descripción de la arquitectura (vista del modelo de casos de uso)
ACTIVIDAD: ENCONTRAR ACTORES Y CASOS DE USO
Identificamos actores y casos de uso para:
- Delimitar el sistema de su entorno

- Esbozar quién y qué (actores) interactuarán con el sistema, y que funcionalidad (casos de uso) se espera del sistema

- Capturar y definir un glosario de términos comunes esenciales para la creación de descripciones detalladas de las funcionalidades del sistema.
Esta actividad consta de cuatro pasos:
- Encontrar los actores

- Encontrar los casos de uso

- Describir brevemente cada caso de uso

- Describir el modelo de casos de uso completo (este paso tambien incluye la preparación de un glosario de términos).


ACTIVIDAD: PRIORIZAR CASOS DE USO
Es priorizar cuales son los casos de uso más importantes para abordar en las primeras iteraciones.
Los resultados se recogen en la vista de la arquitectura del modelo de casos de uso.
Esta vista revisada con el jefe de proyecto se utiliza como entrada al hacer la planificación de lo que debe desarrollarse dentro de una iteración.
ACTIVIDAD: DETALLAR CASOS DE USO
El objetivo principal de detallar cada caso de uso es describir su flujo de sucesos en detalle, incluyendo como comienza, termina, e interactúan con los actores.
Para detallar los casos de uso se usan:
- Descripciones textuales

- Diagramas de transición de estados para describir los estados de los casos de uso y las transiciones entre esos estados

- Diagramas de actividad para describir transiciones entre estados con más detalle como secuencias de acciones. Los diagramas de actividad pueden describirse como la generalización de los diagramas de transición de estados.

- Diagramas de interacción para describir cómo interactúa una instancia de caso de uso con la instancia de un actor. Los diagramas de interacción muestran el caso de uso y el actor o actores participantes.


Para cada caso de uso debe detallarse:
- Estado inicial como precondición

- Cómo y cuando comienza el caso de uso (primera acción a ejecutar)

- Orden en que deben ejecutarse las acciones (puede ser una secuencia numerada)

- Cómo y cuando terminan los casos de uso

- Posibles estados finales como postcondiciones

- Caminos de ejecución que no están permitidos

- Camino básico

- Caminos alternativos


ACTIVIDAD: PROTOTIPAR INTERFAZ DE USUARIO
Comenzamos con los casos de uso e intentamos discernir que se necesita de las interfaces de usuario para habilitar los casos de uso para cada actor. Hacemos un

diseño lógico de la interfaz de usuario, luego creamos un modelo físico, y desarrollamos prototipos para ilustrar como pueden utilizar el sistema los usuarios para ejecutar los casos de uso.


ACTIVIDAD: ESTRUCTURAR EL MODELO DE CASOS DE USO
Los casos de uso identificado son estructurados utilizando las relaciones de uso (secuencias comunes), extensiones (casos excepcionales), y generalizaciones.
7.ANALISIS (INTRODUCCION)
Analizamos los requisitos que se describieron en la captura de requisitos, refinándolos y estructurándolos. El objetivo de hacerlo es conseguir una comprensión más precisa de los requisitos y una descripción de los mismos que sea fácil de mantener y que nos ayude a estructurar el sistema entero, incluyendo su arquitectura.
COMPARACIÓN DEL MODELO DE CASOS DE USO CON EL MODELO DEL ANÁLISIS:
El lenguaje que utilizamos en el análisis se basa en un modelo de objetos conceptual, que llamamos modelo de análisis. El modelo de análisis nos ayuda a refinar los requisitos.
Analizar los requisitos en la forma de un modelo de análisis es importante por varios motivos:
Un modelo de análisis ofrece una especificación más precisa de los requisitos que la que tenemos como resultado de la captura de requisitos, incluyendo al modelo de casos de uso.

Un modelo de análisis se describe utilizando el lenguaje de los desarrolladores, y se puede por tanto introducir un mayor formalismo y ser utilizado para razonar sobre los funcionamientos internos del sistema.

Un modelo de análisis estructura los requisitos de un modo que facilita su comprensión, su preparación, su modificación, y en general, su mantenimiento.

Un modelo de análisis puede considerarse como una primera aproximación al modelo de diseño (aunque es un modelo por sí mismo), y es por tanto una entrada fundamental cuando se da forma al sistema en el diseño y en la implementación.


ACTIVIDAD: ANALIZAR UNA CLASE
Los objetivos de analizar una clase son:
- Identificar y mantener las responsabilidades de la clase, basadas en su papel en las realizaciones de casos de uso.

- Identificar atributos y relaciones de la clase.

- Capturar requisitos especiales sobre la realización de la clase.
ACTIVIDAD: ANALIZAR UN PAQUETE
Los objetivos de analizar una clase son:
- Garantizar que el paquete es tan independiente de otros como sea posible.

- Garantizar que el paquete del análisis cumple su objetivo de realizar algunas clases del dominio o casos de uso.

- Describir las dependencias de forma que pueda estimarse el efecto de los cambios futuros.
8.DISEÑO (INTRODUCCION)
Aquí se modela el sistema y su arquitectura para que soporte los requisitos funcionales y no funcionales. Una entrada esencial al diseño es el modelo de análisis.
ARTEFACTO: MODELO DEL DISEÑO
Es un modelo de objetos que describe la realización física de los casos de uso centrándose en los requisitos funcionales como en los no funcionales.
Las abstracciones del modelo de diseño tienen una correspondencia directa con los elementos físicos del ambiente de implementación.
ARTEFACTO: CLASE DEL DISEÑO

Es una abstracción sin costuras con una clase o construcción similar en la implementación del sistema.


- Se especifica en el lenguaje de implementación (Java, C#, etc).

- Se especifica visibilidad de atributos y operaciones.

- Se implementan las relaciones de generalización via herencia del lenguaje de programación.

- Se implementan las relaciones de asociación y agregación via atributos de las clases que implementan las referencias.

- Se especifican los métodos con la sintaxis del lenguaje de programación.

- Se usan estereotipos que se corresponden con el lenguaje de programación, por ejemplo en VB se puede utilizar <>,



<
>, etc.

ARTEFACTO: REALIZACIÓN DE CASO DE USO-DISEÑO
Es una colaboración en término de clases de diseño que describe como se realiza un caso de uso específico. Una realización de caso de uso diseño, tiene una traza directa a la correspondiente realización del caso de uso análisis.
Una realización de caso de uso-diseño se describe utilizando:
- Diagramas de clases para mostrar los objetos participantes en la realización.

- Diagrama de interacción, particularmente diagramas de secuencia, enfatizando en la secuencia de mensajes.

- Flujos de sucesos-diseño, descripción textual que explica y complementa los diagramas y sus etiquetas.
ARTEFACTO: SUBSISTEMA DE DISEÑO
Los subsistemas de diseño son una forma de organizar los artefactos del modelo de diseño en piezas más manejables. Un subsistema puede constar de clases de diseño, realizaciones de caso de uso, interfaces, y otros subsistemas.
TRABAJADOR: ARQUITECTO
Responsable del modelo de diseño, modelo de despliegue, y descripción de la arquitectura.
TRABAJADOR: INGENIERO DE CASOS DE USO
Responsable de la realización de caso de uso – diseño.
TRABAJADOR: INGENIERO DE COMPONENTES
Responsable de Clases de diseño, subsistema de diseño, interfaz.
ACTIVIDAD: DISEÑO DE LA ARQUITECTURA
El objetivo del diseño de la arquitectura es esbozar los modelos de diseño y despliegue identificando:
- Nodos y configuraciones de red.

- Subsistemas e interfaces

- Clases de diseño significativas para la arquitectura como las clases activas (procesos).

- Mecanismos de diseño genéricos que tratan requisitos comunes.


ACTIVIDAD: DISEÑO DE UN CASO DE USO
Los objetivos del diseño de un caso de uso son:
- Identificar clases y/o subsistemas necesarios para llevar a cabo el caso de uso

- Distribuir el comportamiento del caso de uso entre los objetos del diseño que interactúan y/o entre los subsistemas participantes.

- Definir los requisitos sobre las operaciones de las clases del diseño y/o sobre los subsistemas y sus interfaces.

- Capturar los requisitos de implementación del caso de uso.


ACTIVIDAD: DISEÑO DE UNA CLASE
Para una clase implica definir:
- sus operaciones

- sus atributos

- sus relaciones

- sus métodos (que realizan sus operaciones)

- su ciclo de vida (máquina de estados)

- sus dependencias con cualquier mecanismo de diseño genérico

- los requisitos relevantes a su implementación

- la correcta realización de cualquier interfaz requerida


Esbozar la clase del diseño:
- Diseñar clase interfaz: depende de la tecnología específica que se use (VB, Java, etc)

Diseño de Sistemas A.U.S. Gustavo Torossi Página 45 de 54

- Diseñar clases entidad: aspectos de persistencia, a menudo implica uso de tecnologías BD.

- Diseñar clases de control: encapsulan secuencias, coordinación de otros objetos, y a veces lógica del negocio. Se deben tener en cuenta: aspectos de distribución en nodos de red, aspectos de rendimiento, aspectos de transacción.


Identificar Operaciones:
Identificamos las operaciones y las describimos utilizando el lenguaje de programación que se usará. Entradas importantes son:
- Responsabilidades de las clases de análisis que tienen traza con la clase de diseño

- Requisitos especiales de la clase de análisis que tienen traza

- Interfaces que la clase de diseño necesita proporcionar

- Realizaciones de caso de uso diseño en las que la clase participa


Identificar Atributos:
Identificamos atributos requeridos por la clase y los describimos utilizando el lenguaje de programación que se usará.
Identificar Asociaciones y agregaciones:
Los ingenieros de componentes estudian la transmisión de mensajes en los diagramas de secuencia para determinar que asociaciones son necesarias.
Aspectos a tener en cuenta:
- Asociaciones y agregaciones en las clases de análisis correspondientes

- Los nombres de roles de asociación pueden llegar a ser atributos de la clase de diseño que referencia a la otra clase.

- Una asociación de clases puede llegar a ser una nueva clase.

- Se debe considerar la navegabilidad (dirección de los mensajes).


Identificar generalizaciones:
Las generalizaciones deben implementarse utilizando herencia si el lenguaje lo permite. Si el lenguaje no lo admite debe utilizarse asociación / agregación para proporcionar la delegación desde los objetos de clases más específicas a objetos de clases más generales.
Describir los métodos:
Pueden describirse los algoritmos de los métodos utilizando lenguaje natural, pseudocódigo, o el lenguaje de programación específico. Sin embargo esto suele diferirse hasta la implementación de la clase.
Describir estados:
Se utilizan diagramas de estado para describir los estados de los objetos estado dependientes.
ACTIVIDAD: DISEÑO DE UN SUBSISTEMA
Los objetivos del diseño de un subsistema son:
- Garantizar que el subsistema es lo más independiente de los otros subsistemas.

- Garantizar que el subsistema proporciona las interfaces correctas.

- Garantizar que el subsistema cumple su propósito de ofrecer una realización correcta de las operaciones que se definen en las interfaces.
9. IMPLEMENTACIÓN (INTRODUCCION)
Empezamos con el resultado del diseño e implementamos el sistema en término de componentes, es decir, ficheros de código fuente, scripts, ficheros de código binario, ejecutables, y similares.
Es el centro durante las iteraciones de construcción, aunque también se lleva a cabo trabajo de implementación durante la fase de elaboración, para crear la línea base ejecutable de la arquitectura, y durante la fase de transición para tratar defectos tardíos.
ARTEFACTOS
ARTEFACTO: MODELO DE IMPLEMENTACIÓN
El modelo de diseño es un modelo de objetos que describe la realización física de los elementos del modelo de diseño.
ARTEFACTO: COMPONENTE
Un componente es el empaquetamiento físico de los elementos de un modelo, como son las clases en el modelo de diseño. Algunos estereotipos típicos son:
<> programa ejecutable en un nodo

<> fichero que contiene código fuente o datos

<> librería estática o dinámica

<

> es una tabla de base de datos

<> es un documento
Los componentes tienen relaciones de traza con los elementos que implementan.
Es normal que un componente implemente varios elementos, por ejemplo varias clases.
STUBS
Es un componente con una implementación esquelética o de propósito especial que puede ser utilizado para desarrollar o probar otro componente que depende del stub.
ARTEFACTO: SUBSISTEMA DE IMPLEMENTACIÓN
Proporcionan una forma de organizar los artefactos del modelo de implementación en trozos más manejables.
Se manifiesta a través de un mecanismo de empaquetamiento concreto en un entorno de implementación determinado, como:
- Un paquete en Java

- Un proyecto en VB.

- Un directorio de ficheros en un proyecto de C++

- Un paquete en una herramienta de modelado como Rational Rose.


ARTEFACTO: INTERFAZ
En el modelo de implementación las interfaces pueden ser utilizadas para especificar las operaciones implementadas por componentes y subsistemas de implementación.
ARTEFACTO: DESCRIPCIÓN DE LA ARQUITECTURA
La descripción de la arquitectura tiene la visión de la arquitectura del modelo de implementación.
Los siguientes artefactos son considerados arquitectónicamente significativos:
- Descomposición del modelo de implementación en subsistemas, sus interfaces, y dependencias entre ellos.

- Componentes clave que siguen la traza de las clases de diseño significativas arquitectónicamente.


ARTEFACTO: PLAN DE INTEGRACIÓN
El sistema se desarrolla incrementalmente a pasos manejables. Cada paso de construcción debe ser sometido a pruebas de integración.
Para prepararse ante el fallo de una construcción se lleva un control de versiones para poder volver atrás a una construcción anterior.
10. PRUEBA (INTRODUCCIÓN)
Los objetivos de la prueba son:
- Planificar las pruebas necesarias en cada iteración, incluyendo las pruebas de integración y las pruebas de sistema.

- Diseñar e implementar pruebas creando los casos de prueba (especifican qué probar), procedimientos de prueba (especifican cómo realizar las pruebas), creando componentes de prueba para automatizar las pruebas.

- Realizar las pruebas.
ARTEFACTOS
ARTEFACTO: MODELO DE PRUEBAS
Describe como se prueban los componentes en el modelo de implementación. El modelo de pruebas es una colección de casos de prueba, procedimientos de prueba, y componentes de prueba.
ARTEFACTO: CASO DE PRUEBA
Especifica una forma de probar el sistema, incluyendo la entrada o resultado con la que se ha de probar y las condiciones bajo las que ha de probarse.
ARTEFACTO: PROCEDIMIENTO DE PRUEBA
Especifica cómo realizar uno o varios casos de prueba o partes de estos.
ARTEFACTO: COMPONENTE DE PRUEBA
Automatiza uno o varios procedimientos de prueba o partes de ellos.
ARTEFACTO: PLAN DE PRUEBA
Describe las estrategias, recursos y planificación de la prueba. La estrategia incluye definición de tipo de pruebas a realizar por iteración, sus objetivos, nivel de cobertura y código necesario.
ARTEFACTO: DEFECTO
Es una anomalía del sistema. Un defecto puede ser utilizado para localizar cualquier cosa que los desarrolladores necesitan registrar como síntoma de un problema.
ARTEFACTO: EVALUACIÓN DE PRUEBA
Es una evaluación de los resultados de la prueba.
TRABAJADORES
TRABAJADOR: DISEÑADOR DE PRUEBAS
Un diseñador de pruebas es responsable de la integridad del modelo de pruebas, asegurando que el modelo cumple con su propósito.
Planean las pruebas.
Seleccionan y describen los casos de prueba y procedimientos de prueba.
TRABAJADOR: INGENIERO DE COMPONENTES
Son responsables de los componentes de prueba que automatizan algunos de los procedimientos de prueba.
TRABAJADOR: INGENIERO DE PRUEBAS DE INTEGRACIÓN
Son los responsables de realizar las pruebas de integración que se necesitan para cada construcción producida en el flujo de implementación.
Documentan los defectos que aparecen como resultados de las pruebas de integración.
TRABAJADOR: INGENIERO DE PRUEBAS DE SISTEMA
Un ingeniero de pruebas de sistema es responsable de realizar las pruebas de sistema necesarias sobre una construcción que muestra el resultado de una iteración completa.
Las pruebas de sistema se llevan a cabo para verificar interacciones entre los actores y el sistema.
ACTIVIDAD: PLANIFICAR PRUEBA
- Describir una estrategia de la prueba

- Estimar requisitos para la prueba, recursos humanos y sistemas necesarios

- Planificar esfuerzo de la prueba
ACTIVIDAD: DISEÑAR LA PRUEBA
- Identificar y describir los casos de prueba para cada construcción

- Identificar y estructurar los procedimientos de prueba especificando como realizar los casos de prueba.


ACTIVIDAD: IMPLEMENTAR LA PRUEBA
- Automatizar los procedimientos de prueba creando componentes de prueba si esto es posible.
ACTIVIDAD: REALIZAR PRUEBAS DE INTEGRACIÓN
- Realizar las pruebas de integración relevantes ejecutando los procedimientos o componentes de prueba correspondientes.

- Comparar los resultados de las pruebas con los resultados esperados e investigar resultados no esperados.

- Informar defectos a los ingenieros de componentes responsables de los componentes que registran fallas.
-Informar los defectos a los diseñadores de pruebas, quienes usarán los defectos para evaluar los resultados de las pruebas.
ACTIVIDAD: REALIZAR PRUEBA DEL SISTEMA
Una vez finalizadas las pruebas de integración se realizan las pruebas de sistema de forma similar.
ACTIVIDAD: EVALUAR LA PRUEBA
Se comparan resultados de la prueba con resultados esperados. Para esto se utilizan métricas:
- Compleción de la prueba: indica el porcentaje de casos de prueba que han sido ejecutados y el porcentaje de código que ha sido probado.

- Fiabilidad: Se basa en el análisis de las tendencias den los defectos detectados y en las tendencias en las pruebas que se ejecutan con el resultado esperado.



ANALISIS Y DISEÑO DE SISTEMAS DE INFORMACION II

F.F.T.


Compartir con tus amigos:


La base de datos está protegida por derechos de autor ©composi.info 2017
enviar mensaje

    Página principal