MODELO BASADO EN REUTILIZACIÓN

Introducción al modelo


El diseño basado en reutilización puro busca construir un producto software integrando componentes pre-existentes.
Los beneficios principales que otorga este modelo son:
-Tiempos de desarrollos cortos
-Disminucion de errores
-Disminucion de costos y riegos ya que se reduce los componentes a desarrollar
-Existe un aumento de la confiabilidad ya que los componentes a utilizar ya fueron testeados y utilizados en otro momento previo al comienzo del proyecto

A modo de desventaja podemos mencionar el hecho de que al no poseer algún componente que cubra con un requisito dado por el usuario, este debe ser modificado para adaptarlo a los componentes almacenados en el repositorio de componentes.
Esto se da en el modelo puro. En cambio en el modelo real si no se puede adaptar un requisito de usuario, se conseguirá o se desarrollara ese modulo para que cumpla con lo pedido por el usuario.
Otra desventaja de este modelo es que una vez finalizada la etapa de modificación de requisitos, y ante la eventual necesidad de cambios en estos ultimos, puede pasar que no haya componentes que se adapten a las nuevas moficicaciones.


Modelo_puro..png
Modelo puro

Modelo_real..png
Modelo real


Lista de símbolos


Nro.
Símbolo
Tipo
01
Adaptación de componentes
Verbo
02
Adaptación de requisitos
Verbo
03
Adquisición de nuevos componentes
Verbo
04
Análisis de componentes
Verbo
05
Analista
Sujeto
06
Arquitecto
Sujeto
07
Arquitectura de dominio
Objeto
08
Cliente
Sujeto
09
Código de interfaces de componentes
Objeto
10
Componente
Objeto
11
Definición de requisitos
Verbo
12
Desarrollador
Sujeto
13
Desarrollo de interfaces y codificación
Verbo
14
Diseño del sistema con reutilización
Verbo
15
Documento de análisis de componentes
Objeto
16
Especificación de requisitos
Objeto
17
Instalación del producto
Verbo
18
Manual técnico de componentes
Objeto
19
Mecanos
Sujeto
20
Producto software
Objeto
21
Prueba de integración
Verbo
22
Repositorio de componente
Objeto
23
Tester
Sujeto


Símbolo:
Adaptación de componentes
Tipo:
Verbo
Noción:
Es una tarea donde se modifican los componentes existentes en el repositorio de componentes, para que se adapten a la especificación de requisitos, en el caso de que no se adapten y que no se encuentren en empresas externas
Tarea realizada por el desarrollador
Impacto:
El analista especifica la modificación que debe hacerse al componente existente en el repositorio de componentes para adaparlos a la especificación de requisitos
El desarrollador modifica el componente en cuestión
Va a generar una actualización del repositorio de componentes

Símbolo:
Adaptación de requisitos
Tipo:
Verbo
Noción:
Acción de adaptar la especificación de requisitos, según los componentes encontrados en el repositorio de componentes
Tarea realizada por el analista
Impacto:
El arquitecto indica los componentes encontrados en el repositorio de componentes que mejor se adaptan a la especificación de requisitos
El analista modifica la especificación de requisitos adaptandola a los componentes encontrados en el repositorio de componentes

Símbolo:
Adquisición de nuevos componentes
Tipo:
Verbo
Noción:
Tarea de busqueda de componentes faltantes para cumplir con la especificación de requisitos en empresas externas
Tarea realizada por el analista
Impacto:
El analista busca en empresas externas, componentes que se adapten mejor a la especificación de requisitos que los que se encuentran en el repositorio de componentes
En el caso de que encuentre, se comprarán y se utilizarán para realizar el proyecto
Los componentes adquiridos se agregarán al repositorio de componentes

Símbolo:
Análisis de componentes
Tipo:
Verbo
Noción:
Tarea que analiza los componentes del repositorio de componentes a utilizar para cumplir con la especificación de requisitos
Tarea realizada por el arquitecto
Impacto:
El arquitecto busca en el repositorio de componentes los componentes que mejor se adaptan a la especificación de requisitos para construir el producto software
Los componentes encontrados se documentan en el documento de análisos de componentes
Según los componentes que se encuentren, se deberá hacer una adaptación de requisitos, o una adquisición de nuevos componentes o no

Símbolo:
Analista
Tipo:
Sujeto
Noción:
Persona con conocimientos funcionales sobre el producto software que se quiere construir
Impacto:
Se encarga de la definición de requisitos, a trabes de entrevistas con el cliente
El analista confecciona la especificación de requisitos
Luego del análisis de componentes, debe modificar la especificación de requisitos para adaptarla a los componentes encontrados en el repositorio de componentes

Símbolo:
Arquitecto
Tipo:
Sujeto
Noción:
Persona con conocimientos de la arquitectura del producto software que se quiere construir
Tiene la capacidad de analizar diferentes alternativas para construir el producto software
Impacto:
Se encarga del análisis de componentes
Confecciona el documento de análisis de componentes una vez realizado el análisis de componentes
Se encarga del diseño del sistema con reutilización

Símbolo:
Arquitectura de dominio
Tipo:
Objeto
Noción:
Abstracciones sobre un dominio de aplicacion
Impacto:
Estructuras arquitectonicas comunes que se reutilizan cuando se desarrollan nuevos producto software que difieren en detalles de los ateriores implementados

Símbolo:
Cliente
Tipo:
Sujeto
Noción:
Persona o empresa que tiene una necesidad de un producto software
Impacto:
El cliente, junto con el analista, definirán los requisitos del producto software a construir
Es quien luego de la instalación del producto, validará el funcionamiento del producto software

Símbolo:
Código de interfaces de componentes
Tipo:
Objeto
Noción:
Es el codigo necesario para que las salidas de un componente sea la entrada de otro, generando asi la integración de los mismos
Tarea realizada por el desarrollador
Impacto:
El desarrollador se guia en el diseño del sistema con reutilización para realizar este código
Los componentes que debe interrelacionar son los listados en el documento de análisis de componentes
Los componentes para los cuales desarrolla el código de interfaz, pueden ser del repositorio de componentes o adquiridos de empresas externas

Símbolo:
Componente
Tipo:
Objeto
Noción:
Es un modulo funcional de software
Es de tamaño pequeño y es independiente a otros componentes
Impacto:
Se utiliza para formar el producto software
Reciben datos de entrada y generan salidas
La salida de un componente será la entrada de otro componente
Se almacenan en el repositorio de componentes

Símbolo:
Definición de requisitos
Tipo:
Verbo
Noción:
Tarea de relevamiento de requisitos de cliente
Tarea realizada por el analista
Impacto:
El analista tiene conversaciones con el cliente para adquirir los requerimientos del producto software
El cliente por su parte explica lo mas detalladamente posible las funcionalidades que necesita
El analista confecciona la especificación de requisitos

Símbolo:
Desarrollador
Tipo:
Sujeto
Noción:
Es un programador, encargado de la codificación de nuevos componentes y de las interfaces entre componentes
Impacto:
Será en encargado del desarrollo de interfaces y codificación
Realizará el código de interfaces de componentes
Será el encargado de la adaptación de componentes
Será el encargado de la construccion del manual técnico de componentes, para los componentes desarrollados

Símbolo:
Desarrollo de interfaces y codificación
Tipo:
Verbo
Noción:
Tarea de desarro de interfaces entre componentes y codificación de nuevos componentes
Tarea realizada por el desarrollador
Impacto:
El desarrollador realiza el código necesario para la vinculación de varios componentes
El desarrollador modifica el código fuente de los componentes del repositorio de componentes para adaptarlos a algún requerimiento de la especificación de requisitos
El desarrollador crea nuevos componentes para cumplir con la especificación de requisitos
Los componentes nuevos se agregan al repositorio de componentes

Símbolo:
Diseño del sistema con reutilización
Tipo:
Verbo
Noción:
Implica diseñar el modo en que los distintos componentes se interrelacionarán entre sí y con el contexto para satisfacer la especificación de requisitos
Tarea realizada por el arquitecto
Impacto:
El arquitecto diseña las interfases que se deben desarrollar para interrelacionar los componentes
El arquitecto diseña que componente se va a relacionar con cual otro para cumplir con la especificación de requisitos

Símbolo:
Documento de análisis de componentes
Tipo:
Objeto
Noción:
Documento que contiene el listado de componentes a utilizar para construir un producto software
Documento realizado por el arquitecto
Impacto:
Es el documento resultante del análisis de componentes
Puede contener un listado de componentes necesarios de adquirir o desarrollar

Símbolo:
Especificación de requisitos
Tipo:
Objeto
Noción:
Es un documento donde se detallan los requerimiento del cliente para el producto software a construir
Documento realizado y actualizado por el analista
Impacto:
Luego de la definición de requisitos, el analista construye este documento con los requerimientos del cliente
Luego del análisis de componentes puede realizarse una adaptación de requisitos, para adaptar los requisitos a los componentes encontrados en el repositorio de componentes
Este documento sirve como base para el diseño del sistema con reutilización

Símbolo:
Instalación del producto
Tipo:
Verbo
Noción:
Es la funcion de instalar el producto software al cliente
Tarea realizada por el arquitecto
Impacto:
Una vez realizadas satisfactoriamente todas las prueba de integración, el arquitecto instala el producto software en el sistema del cliente
El cliente valida el funcionamiento del producto software

Símbolo:
Manual técnico de componentes
Tipo:
Objeto
Noción:
Son los manuales de los componentes tanto de desarrollo propio como adquiridos
Se modifican y versionan en la medida que se modifiquen los componentes
Lo realiza el desarrollador
Impacto:
Cuando se haga una adquisición de nuevos componentes, se agregará en manual del componente adquirido
Se va a actualizar la version del componente modificado en la adaptación de componentes

Símbolo:
Mecanos
Tipo:
Sujeto
Noción:
Estructura compleja de reutilizaciòn.
Impacto:
Enlazan elementos de anàlisis, diseño e iplementaciòn a traves de una comparaiòn por analogìa

Símbolo:
Producto software
Tipo:
Objeto
Noción:
Es el elemento software que se va a construir
Es el resultado de todo el proceso de construccion del software
Impacto:
El producto software lo usará el cliente
Los componentes se integran a trabes del código de interfaces de componentes para formar el producto software
El producto software estará listo para la instalación del producto una vez superadas las prueba de integración

Símbolo:
Prueba de integración
Tipo:
Verbo
Noción:
Tarea que verifica el coorecto funcionamiento del producto software luego del desarrollo de interfaces y codificación
Tarea reealizada por el tester
Impacto:
El tester prueba el producto software con todos los componentes integrados
El tester define si las pruebas son exitosas o defectuosas
En el caso de que sean defectuosas, se devolverá el producto software al desarrollador para corregir los errores

Símbolo:
Repositorio de componentes
Tipo:
Objeto
Noción:
Es un lugar donde se almacenan los componentes para reutilizar
Se lo utiliza para almacenar los componentes para que luego se puedan integrar y asi construir el producto software
Impacto:
Durante el análisis de componentes se van a analizar los componentes que esten en el repositorio de componentes para hacer el documento de análisos de componentes
Luego de la adquisición de nuevos componentes, los componentes adquiridos se agregan al repositorio de componentes
Luego de la adaptación de componentes, los componentes modificados se agregan al repositorio de componentes como nuevas versiones de los originales
Se lo utiliza para almacenar los componentes para que luego se puedan integrar y asi construir el producto software

Símbolo:
Tester
Tipo:
Sujeto
Noción:
Persona que prueba el producto software
Impacto:
Va a realizar las prueba de integración luego del desarrollo de interfaces y codificación
Es el encargado de verificar que el producto software cumpla con la especificación de requisitos



Bibliografia consultada