viernes, 18 de abril de 2014

Ingenieria del software

¿Qué es una metodología?
La metodología , hace referencia al conjunto de procedimientos racionales utilizados para alcanzar una gama de objetivos que rigen una investigación científica, una exposición doctrinal o tareas que requieran habilidades, conocimientos o cuidados específicos. Alternativamente puede definirse la metodología como el estudio o elección de un método pertinente para un determinado objetivo.
No debe llamarse metodología a cualquier procedimiento, ya que es un concepto que en la gran mayoría de los casos resulta demasiado amplio, siendo preferible usar el vocablo método.
Metodología de desarrollo de software en ingeniería de software es un marco de trabajo usado para estructurar, planificar y controlar el proceso de desarrollo en sistemas de información.

Metodologías de desarrollo de software
-Cascada:
el desarrollo se ve como una serie de escalones descendentes (como si se tratara de una cascada de agua) a través de las distintas fases. Análisis Diseño Desarrollo Pruebas Integración Mantenimiento Creada 
-Prototipo:
son actividades de creación de prototipos o maquetas durante el desarrollo de software, los prototipos son versiones incompletas del producto que va a ser desarrollado. Los principios básicos son: No es una metodología que funcione por si sola, es más una vía para manejar determinadas fases de una metodología más tradicional y amplia 
-Incremental:
 Combinación de metodologías iterativas y lineales con el objetivo primario de reducir los riesgos del proyecto, los proyectos se dividen en partes mas pequeñas, de esta manera también se facilitan los cambios durante el proceso de desarrollo. Los principios fundamentales son: Se realizan una serie de mini-waterfalls, donde todas las fases del desarrollo en cascada se completan para una pequeña parte del sistema, antes de abordar la siguiente parte. Los conceptos iniciales del sistema, análisis de requerimientos, diseño de arquitectura, etc. Del sistema completo se definen usando también la técnica de Cascada. Después de esto mediante prototipos se van desarrollando las distintas partes en las que ha sido dividido el proyecto. Finalmente el proceso culmina con la implantación del sistema en su conjunto (otro mini-waterfall)

-Espiral:
Básicamente consiste en una serie de ciclos que se repiten en forma de espiral, comenzando desde el centro. Se suele interpretar como que dentro de cada ciclo de la espiral se sigue un Modelo Cascada, pero no necesariamente debe ser así. Aunque el Espiral puede verse como un modelo evolutivo que conjuga la naturaleza iterativa con los aspectos controlados y sistemáticos del Modelo Cascada, con el agregado de gestión de riegos. Este sistema está indicado en grandes proyectos.
RAD:
Este método comprende el desarrollo iterativo, la construcción de prototipos y el uso de herramientas CASE. Aporta la velocidad del desarrollo , principalmente por el uso de las herramientas CASE. La Calidad es otra de sus características, mediante la implicación del usuario en las etapas de análisis y diseño Apropiado para proyectos de pequeña embergadura Al igual que con los anteriores divide un proyecto en piezas más pequeñas Pone énfasis en el cumplimiento de las expectativas del negocio, mientras que las caráctristicas tecnicas o la excelencia del desarrollo tiene menos importancia.
RUP:
RUP Constituye la metodología estandar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos. RUP no es un sistema cerrado, es un conjunto de metodologías adaptables al contexto y necesidades de cada organización. Su ciclo de vida es una implementación del Desarrollo en espiral.
Principales características Forma disciplinada de asignar tareas y responsabilidades (quien hace que, cuando y cómo) Pretende implementar las mejores prácticas en Ingeniería de software. Desarrollo Iterativo Administración de requisitos Uso de arquitectura basada en componentes Control de cambios Modelado visual de software Verificación de la calidad del software
. Metodologías Ágiles SCRUM Roles Scrum Master Dueño del producto Equipo Artefactos Backlog del producto Backlog de sprint Incremento de funcionalidad Procesos Planificación Reunión diaria (15 min) Revisión Retrospectiva
Metodologías Ágiles eXtreme Programming (XP) Valores Comunicación Simplicidad Retroalimentación Respeto Coraje Practicas Cliente in-situ Metáfora Refactoring Entregas cortas TDD Semana de 40 horas Propiedad colectiva Código Estándar Programación de a pares Integración continua Juego de planificación



RUP

Que es:
 la metodología esta comprende tres principios claves: Dirigido por los casos de uso, centrado en la arquitectura, iterativo e incremental.
En lo referente a dirigido por los casos de uso, significa que los requerimientos están enfocado a dar valor al cliente y que el proceso debe garantizar que todo el desarrollo, pruebas, planeación, documentación etc, está orientado a cubrir estas expectativas del cliente y asegurar que los requerimientos de valor se ponen en producción.
En lo referente a centrado en arquitectura, significa que hay un énfasis a diseñar una arquitectura de calidad, y es la arquitectura también la que guía la forma cómo se debe planear y hacer el desarrollo.
En lo referente a iterativo e incremental, significa que el proyecto se divide en varios ciclos de vida (llamadas iteraciones) que deben dar como resultado un ejecutable. Por cada una de las iteraciones se va agregando requerimientos y sobre todo valor al cliente; por este motivo es incremental.
 El Proceso Unificado de Rational (Rational Unified Process en inglés, habitualmente resumido como RUP) es un proceso de desarrollo de software desarrollado por la empresa Rational Software, actualmente propiedad de IBM. Junto con el Lenguaje Unificado de Modelado UML, constituye la metodología estándar más utilizada para el análisis, diseño, implementación y documentación de sistemas orientados a objetos.
El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización.
También se conoce por este nombre al software, también desarrollado por Rational, que incluye información entrelazada de diversos artefactos y descripciones de las diversas actividades. Está incluido en el Rational Method Composer (RMC), que permite la personalización de acuerdo con las necesidades.
Originalmente se diseñó un proceso genérico y de dominio público, el Proceso Unificado, y una especificación más detallada, el Rational Unified Process, que se vendiera como producto independiente..




Proceso:

Adaptar el proceso

El proceso deberá adaptarse a las necesidades del cliente ya que es muy importante interactuar con él. Las características propias del proyecto. El tamaño del mismo, así como su tipo o las regulaciones que lo condicionen, influirán en su diseño específico. También se deberá tener en cuenta el alcance del proyecto en un área subnormal.

Equilibrar prioridades

Los requisitos de los diversos participantes pueden ser diferentes, contradictorios o disputarse recursos limitados. Debe encontrarse un equilibrio que satisfaga los deseos de todos. Gracias a este equilibrio se podrán corregir desacuerdos que surjan en el futuro.

Demostrar valor iterativamente

Los proyectos se entregan, aunque sea de un modo interno, en etapas iteradas. En cada iteración se analiza la opinión de los inversores, la estabilidad y calidad del producto, y se refina la dirección del proyecto así como también los riesgos involucrados.

Colaboración entre equipos

El desarrollo de software no lo hace una única persona sino múltiples equipos. Debe haber una comunicación fluida para coordinar requisitos, desarrollo, evaluaciones, planes, resultados, etc.

Elevar el nivel de abstracción

 reutilizables tales como patrón del software, lenguajes 4GL o marcos de referencia (frameworks) por nombrar algunos. Esto evita que los ingenieros de software vayan directamente de los requisitos a la codificación de software a la medida del cliente, sin saber con certeza qué codificar para satisfacer de la mejor manera los requisitos y sin comenzar desde un principio pensando en la reutilización del código. Un alto nivel de abstracción también permite discusiones sobre diversos niveles y soluciones arquitectónicas. Éstas se pueden acompañar por las representaciones visuales de la arquitectura, por ejemplo con el lenguaje UML.

Enfocarse en la calidad

El control de calidad no debe realizarse al final de cada iteración, sino en todos los aspectos de la producción. El aseguramiento de la calidad forma parte del proceso de desarrollo y no de un grupo independiente.

Principales características:
·         Forma disciplinada de asignar tareas y responsabilidades (quién hace qué, cuándo y cómo)
·         Pretende implementar las mejores prácticas en Ingeniería de Software
·         Desarrollo iterativo
·         Administración de requisitos
·         Uso de arquitectura basada en componentes
·         Control de cambios
·         Modelado visual del software
·         Verificación de la calidad del software
El RUP es un producto de Rational (IBM). Se caracteriza por ser iterativo e incremental, estar centrado en la arquitectura y guiado por los casos de uso. Incluye artefactos (que son los productos tangibles del proceso como por ejemplo, el modelo de casos de uso, el código fuente, etc.) y roles (papel que desempeña una persona en un determinado momento, una persona puede desempeñar distintos roles a lo largo del proceso).

 

Ventajas del Modelo RUP

-Es el proceso de desarrollo más general de los existentes  actualmente. 
-Es una forma disciplinada de asignar tareas y responsabilidades en  una empresa de desarrollo (quién hace qué, cuándo y cómo).

Desventajas del Modelo RUP

-Método pesado
-Por el grado de complejidad puede ser no muy adecuado.
-En proyectos pequeños, es posible que no se puedan cubrir los costos de dedicación del equipo de profesionales necesarios.

No hay comentarios.:

Publicar un comentario