domingo, 16 de febrero de 2014


Metodología ICONIX.



Introducción

ICONIX.
La finalidad de este trabajo es el de tener claro que es  y para que se utiliza ICONIX. Dicha finalidad es explicada por la investigación realizada por  los integrantes del equipo y plasmada en este documento.
Para lograr una mejor y más completa comprensión del tema se integro el ejemplo de una empresa dedicada a la creación de software que utiliza ICONIX para la creación de sus proyectos.
Esto nos permite conocer del tema en un ambiente de trabajo y pasar de la teoría a la práctica pudiendo así demostrar de manera grafica  el concepto, además nos ayuda a la identificación de sus características, ventajas y desventajas.



¿Qué es ICONIX?
ICONIX es un proceso simplificado en comparación con otros más tradicionales, que unifica un conjunto de métodos de orientación a objetos con el objetivo de abarcar todo el ciclo de vida de un proyecto.
Es una metodología pesada-ligera de Desarrollo del Software que se halla  entre RUP (Rational Unified Process) y XP (eXtreme Programming), unifica un conjunto de métodos de orientación a objetos con el objetivo de tener un control estricto sobre todo el ciclo de vida del producto a realizar.
Fue elaborado por Doug Rosenberg y Kendall Scott a partir de una síntesis del proceso unificado de los “tres amigos” Booch, Rumbaugh y Jacobson y que ha dado soporte y conocimiento a la metodología ICONIX desde 1993. Presenta claramente las actividades de cada fase y exhibe una secuencia de pasos que deben ser seguidos.



Características Principales
ICONIX cuenta con tres características fundamentales:
Ø  Iterativo e Incremental: durante el desarrollo del modelo del dominio y la definición de los casos de uso se producen varias iteraciones. El ciclo de vida incremental consiste en desarrollar por partes el producto de manera que puedas integrarlas funcionalmente. Ciclo de vida Iterativo, en cada ciclo de iteración se revisa y mejora el producto.
El desarrollo se organiza en series de mini-proyectos cortos, llamados iteraciones.

Ø  Trazabilidad: Cada paso que se realiza está definido por un requisito, se define la trazabilidad como la capacidad de seguir una relación entre los diferentes artefactos de software producidos.

Ø  Dinámica del UML: Ofrece un uso dinámico del UML porque utiliza algunos diagramas UML, sin exigir la utilización de todos, como en el caso de RUP (Rational Unified Process).




Fases de ICONIX
Revisión de los requisitos/ Análisis de Requisitos
En esta fase se deben analizar todos los requisitos que formaran parte del sistema y con estos construir el diagrama de clases, que representa las agrupaciones funcionales que estructuraran el sistema en desarrollo.
Para esta fase se utilizan 3 herramientas:
Ø  Modelo de Dominio: esto se refiere a identificar objetos y cosas del mundo real que intervienen con nuestro sistema. (Estático)
Ø  Modelo de Casos de Uso: describe las acciones o el comportamiento que un usuario realiza dentro del sistema. Comprende de actores, casos de uso y el sistema.
Ø  Prototipo de Interfaz de Usuario: implica la creación de un modelo o modelos operativos del trabajo de un sistema, en el que analistas y clientes deben estar de acuerdo. (Dinámico/ los usuarios se hacen participantes activos en el desarrollo).





Revisión del diseño preliminar /Análisis y Diseño Preliminar
En esta fase a partir de cada caso de uso se obtendrán una ficha de caso de uso, está formada por un nombre, una descripción, una precondición que debe cumplir antes de iniciarse, unapos-condición que debe cumplir al terminar si termina correctamente.
Realizar Diagrama de Robustez: es un híbrido entre un Diagrama de Clases y un Diagrama de Actividades. Es una herramienta que nos permite capturar el Que hacer y a partir de eso él Como hacerlo. Facilita el reconocimiento de objetos y hace más sencilla la lectura del sistema.

El diagrama de Robustez se divide en:
Ø  Objetos fronterizos: usado por los actores para comunicarse con el sistema.
Ø  Objetos entidad: son objetos del modelo del dominio.
Ø  Objetos de Control: es la unión entre la interfaz y los objetos de entidad.
Ø  Diagrama de Clases: describe la estructura de un sistema mostrando sus clases, atributos y las relaciones entre ellos.




Revisión crítica del diseño/Diseño
En esta fase se registran todos los elementos que forman parte de nuestro sistema.
Diagramas de Secuencia: muestra los métodos que llevaran las clases de nuestro sistema. Muestra todos los cursos alternos que pueden tomar todos nuestros casos de uso. Se debe terminar el modelo estático, añadiendo los detalles del diseño en el diagrama de clases y verificar si el diseño satisface todos los requisitos identificados.

Implementación
Después de tener el diseño se creara el software; que posteriormente se entregara. Se debe utilizar el diagrama de componentes si fuera necesario para apoyar el desarrollo, es decir mostrar una distribución física de los elementos que componen la estructura interna del sistema. Así como escribir y generar el código.


Ejemplo de la metodología ICONIX
Empresa: Softdem, Desarrollo Bajo Demanda.

¿Como se trabaja?  SOFTDEM utiliza un modelo de trabajo basado en procesos, lo cual permite una mayor velocidad en el desarrollo del proyecto, con la seguridad y solidez metodológica que se requiere.


Análisis de Requisitos
·         Identificar objetos del dominio y relaciones de agregación y generalización
·         Identificar casos de uso
·         Organizar casos de uso en grupos (paquetes)
·         Asignar requerimientos no funcionales a casos de uso y objetos del dominio
·         Revisión de requerimientos

Diseño
·         Diseño de usuarios y datos hacia sistema.
·         Detalle a partir de modelos de alto nivel.
·         Para cada caso de uso.
·         Identifica mensajes y métodos.
·         Dibujar diagramas de secuencia.
·         Actualizar clases.
·         Terminar modelo estático
·         Verificar cumplimiento de requerimientos

Análisis y diseño preliminar
·         Descripción de Casos de uso
·         Análisis de robustez
·         Identificar grupos de objetos que realizan escenario
·         Actualizar diagramas de clases del dominio
·         Diagramas de clases

Implementación y pruebas
·         Producir diagramas necesarios
·         Despliegue
·         Componentes
·         Escritura de código
·         Pruebas de sistema y aceptación basadas en casos de uso


Ciclos de vida de desarrollo de software utilizado

Iterativo e Incremental:
Ø  El ciclo de vida incremental consiste en desarrollar por partes el producto de manera que puedas integrarlas funcionalmente.

Ø  Ciclo de vida Iterativo, en cada ciclo de iteración se revisa y mejora el producto.
El desarrollo se organiza en series de mini-proyectos cortos, llamados iteraciones.





Roles y Responsabilidades

Puesto
Responsabilidad
Jefe de Proyecto
El jefe de proyecto asigna los recursos, gestiona las prioridades, coordina las interacciones con los clientes y usuarios, y mantiene al equipo del proyecto enfocado en los objetivos. El jefe de proyecto también establece un conjunto de prácticas que aseguran la integridad y calidad de los artefactos del proyecto. Además, el jefe de proyecto se encargará de supervisar el establecimiento de la arquitectura del sistema. Gestión de riesgos. Planificación y control del proyecto.
Analista de Sistemas

Captura, especificación y validación de requisitos, interactuando con el cliente y los usuarios mediante entrevistas. Elaboración del Modelo de Análisis y Diseño. Colaboración en la elaboración de las pruebas funcionales y el modelo de datos.
Programador

Construcción de prototipos. Colaboración en la elaboración de las pruebas funcionales, modelo de datos y en las validaciones con el usuario
Ingeniero de Software

Gestión de requisitos, gestión de configuración y cambios, elaboración del modelo de datos, preparación de las pruebas funcionales, elaboración de la documentación. Elaborar modelos de implementación y despliegue.

Ventajas de ICONIX.
Ø  Proceso ágil para obtener un sistema informático.

Ø  Dedicada a la construcción de sistemas de gestión de pequeña y mediana complejidad con la participación de los usuarios finales.


Desventajas de ICONIX.
Ø  Necesita información rápida y puntual de los requisitos, del diseño y de las estimaciones.

Ø  Es una metodología que no debe ser usada en proyectos de larga duración.

Conclusión.
Se entendió  ICONIX como una metodología que utiliza un modelo de trabajo basado en procesos, lo cual permite una mayor velocidad en el desarrollo del proyecto, con la seguridad y solidez que este permite al utilizarlo de manera adecuada.
ICONIX permite tener proyectos de calidad,  en un tiempo corto y que permiten a los usuarios o clientes a estar al pendiente y tener más conocimientos acerca del proyecto que requieren, esto para que el proyecto se valla generando tal y como el cliente lo necesita, esta metodología no se utiliza en proyectos que requieran mucho tiempo



Bibliografía

EcuRed. (s.f.). Recuperado el 14 de Febrero de 2014, de http://www.ecured.cu/index.php/ICONIX#Car.C3.A1cter.C3.ADsticas_de_Iconix
Juan Manuel Fernandez Peña, M. d. (s.f.). Recuperado el 14 de Febrero de 2014, de http://www.uv.mx/personal/asumano/files/2010/07/iconix2.pdf
Kendall Scott, D. R. (2001). Applying Use Case Driven Object Modeling with UML: An Annotated e-Commerce Example.Addison Wesley.
Molina, J. (s.f.). Recuperado el 14 de Febrero de 2014, de http://ima.udg.edu/~sellares/EINF-ES2/Present1011/MetodoPesadesTranspes.pdf
Oliva, C. R. (s.f.). portal huarpe. Recuperado el 14 de Febrero de 2014, de http://www.portalhuarpe.com.ar/Seminario09/archivos/MetodologiaICONIX.pdf
Softdem. (s.f.). Recuperado el 14 de Febrero de 2014, de http://softdem.com.mx/


Triptico: http://www.mediafire.com/view/d2ghry4gq0d5y27/IS.Exp.3.333063.pub

Trabajo Word: http://www.mediafire.com/view/ap9tf0pd497xgfy/IS.Exp.3.333063.docx

Presentacion en Power Point: http://www.mediafire.com/view/z7kz0b6o4jpdspk/IS.Exp.3.333063.pptx