lunes, 21 de abril de 2014

INGENIERÍA DEL SOFTWARE




Que es una metodología
Una metodología es aquella guía que se sigue a fin realizar las acciones propias de una investigación.
En términos más sencillos se trata de la guía que nos va indicando qué hacer y cómo actuar cuando se quiere obtener algún tipo de investigación.
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.

Una Metodología de desarrollo de software consiste en: Una filosofía de desarrollo de software con una base de procesos de desarrollo de software Múltiples herramientas, modelos y métodos, para asistir en el proceso de desarrollo de software.
Suele estar documentada y alguna clase de documentación formal.
 Suele estar promovida por algún tipo de organización ya sea esta pública o privada que es la que se encarga de promover esta metodología.
 Metodologías de desarrollo Diferentes enfoques sobre desarrollo de Software Cada metodología de desarrollo tiene más o menos su propio enfoque de en lo que debería de consistir un proyecto de desarrollo de software. Pero todas ellas se basan en una serie de enfoques generalistas como son:

Waterfall Model - cascada
 Lineal Prototipado
Iterativo Incremental
Lineal Espiral
(RAD) lineal Rapid Application Development
RUP

El Waterfall Model o modelo en cascada en el cual 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 en 1970 por Winston W. Royce.



Principios básicos de este modelo son: El proyecto se divide en fases secuenciales , se permite algún tipo de solapamiento entre las distintas fases. Hace énfasis en la planificación, los tiempos, fechas objetivo, presupuestos y en la implantación del sistema completo al mismo tiempo.
 Se mantiene un férreo control durante la duración del proyecto a través del uso extensivo de documentación así como a través de revisiones y aprobaciones por los usuarios y gestores del proyecto, al final de cada fase antes de comenzar la siguiente.

Metodología de Prototipos Se conoce así a las actividades de creación de prototipos 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 sí sola, es más una vía para manejar determinadas fases de una metodología más tradicional y amplia (Incremental, Espiral o RAD) Intenta reducir el riesgo inherente al proyecto dividiendo el proyecto en partes más pequeñas.
El usuario está más involucrado a través del proyecto, y eso hace que se incremente la aceptación final del producto por los usuarios.
Se van realizando maquetas a menor escala siguiendo una política de modificaciones hasta culminar los requerimientos de los usuarios.
La mayoría de los prototipos se desarrollan con la expectativa de ser deshechos, es posible en algunos casos evolucionar los prototipos hacia el sistema final.

Incremental Es combinación de metodologías iterativas y lineales con el objetivo primario de reducir los riesgos del proyecto.
 Los proyectos se dividen en partes más 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 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.

 Espiral (Boehm 1988) 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.



Espiral En cada vuelta o iteración hay que tener en cuenta:

Los Objetivos: Que necesidad debe cubrir el producto.

Alternativas: Las diferentes formas de conseguir los objetivos de forma exitosa, desde diferentes puntos de vista como pueden ser:

 Características: experiencia del personal, requisitos a cumplir, etc. Formas de gestión del sistema. Riesgo asumido con cada alternativa.

Desarrollar y Verificar: Programar y probar el software

 Si el resultado no es el adecuado o se necesitan mejoras: Se planifican los siguientes pasos y se comienza un nuevo ciclo de la espiral, la espiral tiene dos dimensiones, la radial y la angular. Angular Indica el avance del proyecto dentro de un ciclo Radial Indica el aumento del coste del proyecto, ya que con cada nueva iteración se pasa más tiempo desarrollado
Al ser un modelo de ciclo de vida orientado a la gestión del riesgo, se dice que uno de los aspectos fundamentales de su éxito radica en que el equipo que lo aplique tenga la necesaria experiencia y habilidad para detectar y catalogar correctamente los riesgos.

RAD RAD (James Martin 1980) Este método comprende el desarrollo iterativo, la construcción de prototipos y el uso de herramientas.
 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 envergadura 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.



El control del proyecto da prioridad a las fases de desarrollo y define “deadlines”. Si el proyecto empieza a excederse en tiempos, se considera reducir los requerimientos, no aumentar los tiempos.
Los usuarios están especialmente involucrados en las fases de diseño mediante el uso de sesiones de trabajo.

RUP Constituye la metodología estándar 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.



 Las Principales características Forma disciplinada de asignar tareas y responsabilidades (quien hace que, 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 de software Verificación de la calidad del software
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 ej.: El modelo de casos de uso, El modelo de clases, El código fuente Etc.. Incluye también roles que desempeñan acciones en un determinado momento. Una persona puede desempeñar distintos roles a lo largo del proceso.

Ciclo de vida Fase de Construcción Se lleva a cabo la construcción del producto mediante series de iteraciones. Para cada iteración se seleccionan algunos casos de uso, se refina su análisis y diseño y se procede a su implementación y pruebas.


Artefactos Fase de construcción Trabaja desde cuatro vistas: Vista lógica Diagrama de clases Modelo ER Vista de implementación Diagrama de Secuencia Diagrama de estados Diagrama de colaboración Vista conceptual Modelo de dominio Vista física Mapa de comportamiento HARDWARE




No hay comentarios:

Publicar un comentario