sábado, 22 de noviembre de 2014

PRESENTACION

ESCUELA SUPERIOR POLITÉCNICA AGROPECUARIA DE MANABÍ MANUEL FÉLIX LÓPEZ
CARRERA: INGENIERÍA INFORMÁTICA


SEMESTRE SÉPTIMO                                 PERÍODO SEP-MAR/2015
INTELIGENCIA ARTIFICIAL II
TEMA 1. METODOLOGÍAS DE DESARROLLO DE SOFTWARE
AUTORA:
MENDOZA MARCILLO ENA KATHERINE
CATEDRÁTICO:
ING.  HIRDAIDA SANTANA


MISIÓN  
Formación de profesionales íntegros que conjuguen ciencia, tecnología y valores en su accionar, comprometidos con la sociedad en el manejo adecuado de programas y herramientas computacionales de última generación.

VISIÓN
Ser referente en la formación de profesionales de prestigio en el desarrollo de aplicaciones informáticas y soluciones de hardware.

CONCLUSIONES

CONCLUSIONES

Los temas tratados en esta clase son de gran interés al estudiante porque posteriormente debe aplicarlos en la vida profesional. Para tener la capacidad de elegir uno de los muchos métodos de desarrollo de software que existen, es indispensable conocerlos uno a uno y clasificarlos acorde al tipo de proyecto.
Personalmente considero que depende mucho de la extensión del proyecto, para la elección de la metodología. Para proyectos pequeños y con requerimientos fijos lo adecuado es utilizar una metodología lineal (cascada), ya que no es necesario obtener versiones ni prototipos cuando el proyecto es pequeño; o sea, bastaría realizar una sola vez las cinco actividades mencionadas anteriormente como son: comunicación, planeación, modelado, construcción y despliegue para obtener el software terminado.
Cabe mencionar que actualmente estos casos de software con requerimientos fijos se dan pocas veces, debido a que el software actual tiene requerimientos que cambian constantemente, entonces para esto no se recomienda aplicar una metodología lineal. Por lo contrario se recomienda aplicar metodología ágil ya sea incremental o evolutiva; ambas permiten realizar versiones cada vez más completas del software recogiendo en cada iteración los nuevos requerimientos y adaptándolos al producto en desarrollo, este proceso se repite cuantas veces sea necesario hasta obtener el software con los requerimientos solicitados.

1.2 MÉTODOS ÁGILES

MÉTODOS ÁGILES:
FLUJO DEL PROCESO ITERATIVO

Repite una o más de las actividades antes de pasar a la siguiente.


FLUJO DEL PROCESO EVOLUTIVO

Realiza las actividades en forma “circular”. A través de las cinco actividades, cada circuito lleva a una versión más completa del software.


Los modelos evolutivos son iterativos. Se caracterizan por la manera en la que permiten desarrollar versiones cada vez más completas del software. Existen dos modelos comunes de proceso evolutivo:

Hacer Prototipos

En la mayoría de proyectos es raro que el primer sistema elaborado sea utilizable. Tal vez sea muy lento, muy grande, difícil de usar o todo a la vez. No hay más alternativa que comenzar de nuevo, con más inteligencia, y construir una versión rediseñada en la que se resuelvan los problemas.

El Modelo Espiral

Es un generador de modelo de proceso impulsado por el riesgo, se usa para guiar la ingeniería concurrente con participantes múltiples de sistemas intensivos en software.

Tiene dos características distintivas principales. La primera es el enfoque cíclico para el crecimiento incremental del grado de definición de un sistema y su implementación, mientras que disminuye su grado de riesgo. La otra es un conjunto de puntos de referencia de anclaje puntual para asegurar el compromiso del participante con soluciones factibles y mutuamente satisfactorias.


INCREMENTAL

El modelo incremental aplica secuencias lineales en forma escalonada a medida que avanza el calendario de actividades. Cada secuencia lineal produce “incrementos” de software susceptibles de entregarse de manera parecida a los incrementos producidos en un flujo de proceso evolutivo.

EL PROCESO UNIFICADO

Es un intento por obtener los mejores rasgos y características de los modelos tradicionales del proceso del software, pero en forma que implemente muchos de los mejores principios del desarrollo ágil de software.
Reconoce la importancia de la comunicación con el cliente y los métodos directos para describir su punto de vista respecto de un sistema.

La arquitectura del software “ayuda a que el arquitecto se centre en las metas correctas, tales como que sea comprensible, permita cambios futuros y la reutilización” se sugiere un flujo del proceso iterativo e incremental, lo que da la sensación evolutiva que resulta esencial en el desarrollo moderno del software.
FASES DEL PROCESO UNIFICADO




v  La fase de concepción del PU agrupa actividades tanto de comunicación con el cliente como de planeación. 

o   Se desarrolla un plan para la naturaleza iterativa e incremental del proyecto en cuestión.
o   La arquitectura se mejorará después y se expandirá en un conjunto de modelos que representarán distintos puntos de vista del sistema.

v  La fase de elaboración incluye las actividades de planeación y modelado del modelo general del proceso

o   La elaboración mejora y amplía los casos de uso preliminares desarrollados como parte de la fase de concepción y aumenta la representación de la arquitectura para incluir puntos de vista distintos del software.
o   En ciertos casos, crea una “línea de base de la arquitectura ejecutable” que representa un sistema ejecutable de “primer corte”. La línea de base de la arquitectura demuestra la viabilidad de ésta, pero no proporciona todas las características y funciones que se requieren para usar el sistema.
o   Al terminar la fase de elaboración se revisa con cuidado el plan a fin de asegurar que el alcance, riesgos y fechas de entrega siguen siendo razonables. Es frecuente que en este momento se hagan modificaciones al plan.

v  La fase de construcción es idéntica a la actividad de construcción definida para el proceso general del software.

v  La fase de transición del PU incluye las últimas etapas de la actividad general de construcción y la primera parte de la actividad de despliegue general (entrega y retroalimentación).

o   Se da el software a los usuarios finales para las pruebas beta, quienes reportan tanto los defectos como los cambios necesarios.
o   El equipo de software genera la información de apoyo necesaria (manuales de usuario, guías de solución de problemas, procedimientos de instalación, etc.) que se requiere para el lanzamiento.
o   Al finalizar la fase de transición, el software incrementado se convierte en un producto utilizable que se lanza.

v  La fase de producción coincide con la actividad de despliegue del proceso general.

o   Se vigila el uso que se da al software
o   Se brinda apoyo para el ambiente de operación
o   Se reportan defectos y solicitudes de cambio para su evaluación

Es probable que al mismo tiempo que se llevan a cabo las fases de construcción, transición y producción, comience el trabajo sobre el siguiente incremento del software. Esto significa que las cinco fases del PU no ocurren en secuencia sino que concurren en forma escalonada.

1.1 FLUJO DEL PROCESO

FLUJO DEL PROCESO


FLUJO DEL PROCESO LINEAL

Ejecuta cada una de las cinco actividades estructurales en secuencia, comenzando por la comunicación y terminando con el despliegue



Conocido también como “cascada”

Llamado ciclo de vida clásico, sugiere un enfoque sistemático y secuencial. El modelo de la cascada suele ser inapropiado para ese tipo de labor. No obstante, sirve como un modelo de proceso útil en situaciones en las que los requerimientos son fijos y el trabajo avanza en forma lineal hacia el final.

Una variante de la representación del modelo de la cascada se denomina modelo en V.



Existe relación entre las acciones para el aseguramiento de la calidad.

A medida que el equipo de software avanza hacia abajo desde el lado izquierdo de la V, los requerimientos básicos del problema mejoran hacia representaciones técnicas cada vez más detalladas del problema y de su solución.

Una vez que se ha generado el código, el equipo sube por el lado derecho de la V, y en esencia ejecuta una serie de pruebas que validan cada uno de los modelos creados cuando el equipo fue hacia abajo por el lado izquierdo.

En realidad, no hay diferencias fundamentales entre el ciclo de vida clásico y el modelo en V. Este último proporciona una forma de visualizar el modo de aplicación de las acciones de verificación y validación al trabajo de ingeniería inicial.
FLUJO DEL PROCESO PARALELO

Ejecuta una o más actividades en paralelo con otras (por ejemplo, el modelado de un aspecto del software tal vez se ejecute en paralelo con la construcción de otro aspecto del software).

METODOLOGÍAS DE DESARROLLO DE SOFTWARE

INTRODUCCIÓN
El objetivo de la primera clase llamada: “Metodologías de Desarrollo de software”, con subtemas: 1.1 Ciclos de Vida del Software, 1.2 Metodologías Tradicionales, 1.3 Metodologías Agiles, dictada por la Ingeniera Hiraida Santana, es conocer el ciclo de vida del software, así como metodologías, modelos y patrones de diseño.

Este curso permite al estudiante desarrollar los conocimientos necesarios para tener la capacidad de elegir la adecuada metodología de desarrollo de software dependiendo de cada caso, de tal forma que se cumplan los requerimientos, presupuesto y tiempo designado para la implementación de la solución software.
 
 MARCO TEÓRICO

SOFTWARE
Conjunto de programas, instrucciones y reglas informáticas para ejecutar ciertas tareas en una computadora. Describe a los componentes no físicos de un sistema informático; es decir, es un elemento del sistema que es lógico.

1. El software se desarrolla o modifica con intelecto; no se manufactura en el sentido clásico.
2. El software no se “desgasta” (el hardware sí).
3. Aunque la industria se mueve hacia la construcción basada en componentes, la mayor parte del software se construye para un uso individualizado.

El software llega a tener tasas de fallas debido a los cambios o nuevas necesidades


INGENIERÍA DE SOFTWARE
Es la rama de la ingeniería que aplica los principios de la ciencia de la computación y las matemáticas para el desarrollo de una aplicación de manera práctica y ordenada

PROCESO DE SOFTWARE
Es un conjunto de pasos ordenados con el fin de lograr una meta, la obtención de un producto de software de calidad.

ACTIVIDADES DEL PROCESO DE SOFTWARE

1) Comunicación o Especificación à Requerimientos funcionales, Características y Funciones.
2) Planeación à Es el plan del proyecto de software, donde se distribuye un cronograma especificado en el tiempo, podría ser un diagrama de GANNT.
3) Modelado à Antes de proceder a codificar, se recomienda hacer un diagrama en UML (Lenguaje Unificado de Modelado).
4) Código o Desarrollo à Codificar el diseño previamente establecido con sus respectivas características y funcionalidades.

5) Despliegue à Puesta en producción del software, una vez pasado por un número de pruebas para comprobar su correcto funcionamiento, con la posibilidad de modificar el software para que se adapte al mercado.
A lo largo de todo el proceso se aplica un conjunto de actividades sombrilla que ayudan al equipo que lo lleva a cabo a administrar y controlar el avance, la calidad, el cambio y el riesgo.

El éxito o fracaso de cualquier proyecto de software depende de las siguientes actividades:

·   Seguimiento y control del proyecto
·   Gestión de riesgos
·   Aseguramiento de la calidad del software, mediante la ejecución de buenas prácticas regidas a normas y estándares de calidad.
·   Revisión de técnicas
·   Medición
·   Administración de la configuración del software
·   Administración de la reutilización, un software adaptable a futuros cambios
·   Preparación y producción del producto




FUENTE BIBLIOGRÁFICA:
Roger S. Pressman (2010). Ingeniería del Software un enfoque Práctico. 7ma. ed. México: Mc Graw Hill.