sábado, 25 de abril de 2015

MODELO CASCADA

Fecha de Clase: 20 - 24 de Abril 2015

INTRODUCCIÓN
En esta clase se estudiaron los modelos de procesos prescriptivos, este tipo de modelo surgen por la necesidad de disminuir los problemas que se presentan en el desarrollo de software. Estos modelos tradicionales han sido muy útil a través de la historia, siendo de gran ayuda para dar solución a problemáticas que suelen presentarse frecuentemente. Sin embrago estos no han sido suficientes para los ingenieros de software ya que los problemas aún siguen existiendo. Pero aun así estos siguen siendo utilizados es por esto que a continuación se describirá  al modelo cascada y su variante.

OBJETIVO
Identificar los diferentes tipos de modelos de proceso prescriptivos y cuando se pueden aplicar.
MARCO TEÓRICO
MODELO DE PROCESO PRESCRIPTIVO
Los modelos prescriptivos o también conocidos como modelos tradicionales son creados para darles orden a los problemas que se presentan en el desarrollo del software, para así llevar un trabajo más organizado y desarrollar proyectos que sean funcionales.
Los modelos prescriptivos más conocidos son:
  •  Modelo cascada
  • Modelo de proceso incremental
  • Modelo de proceso evolutivo
  • Modelo concurrente

A continuación se describirá el modelo cascada y su evolución el modelo en V.

MODELO CASCADA
EL modelo de la cascada, también conocido como ciclo de vida clásico, sigue un flujo de actividades sistemático y secuencial para el desarrollo del software, que  va desde la comunicación es donde el cliente especifica los requerimientos, y avanza por la planeación, modelado, construcción y finalmente el despliegue en la cual se culmina o se entrega el  producto como se muestra en la figura 1. Este modelo es muy utilizado para software pequeños donde el cliente conozca todos los requisitos del software  y  el desarrollador tenga clara todas las etapas del modelo; también es aplicado cuando se realizan adaptaciones y mejoras al software. Un ejemplo de aplicación de este modelo es en software de contabilidad  donde deben realizarse adaptaciones o cambios de nuevas  reglas gubernamentales.
Figura 1. Modelo Cascada

VENTAJAS
  • Este modelo tiene la ventaja de ser sencillo, ya que sigue el paso intuitivo necesario al momento de la creación de un software.
  • La ventaja de este modelo es que es fácil aprender su aplicación, lo cual facilita al desarrollador la compresión del mismo.

DESVENTAJAS
Este modelo presenta algunas desventajas, que a continuación presentamos:
  • Este modelo sigue un flujo secuencial y raramente los proyectos siguen este flujo, lo  cual crea un conflicto en los proyectos puesto que siempre hay iteraciones y esto a su vez trae inconvenientes en la aplicación del paradigma.
  • Una de las más grandes desventajas de este modelo, es que requiere que el cliente establezca al principio del proyecto todos los requisitos, ya que el ciclo de vida de este modelo lo necesita.
  • El proyecto estará disponible al llegar a las etapas finales, y un error no detectado a tiempo puede ser catastrófico. Es por esto que el cliente debe de ser paciente.

Una de las variantes del Modelo cascada es el modelo de V.

MODELO EN V
El modelo en V es una mejora del modelo cascada, se puede ver que la parte del lado izquierdo de la V están asociada con la comunicación, modelado y construcción temprana y la parte derecha tiene como objetivo realizar pruebas e integración asociadas a las etapas de la parte izquierda de la V figura 2.
 La ventaja principal de este modelo, comparado con el de cascada es que este modelo realiza chequeos de cada una de las etapas, lo cual hace que este modelo  en V sea más eficiente y más seguro.
La desventaja de este modelo es que no contempla la posibilidad de retornar a etapas inmediatamente anteriores, y esto no puede ocurrir ya que esto acarrea muchos problemas en el desarrollo del software.

Figura 2. Modelo en V

CONCLUSIÓN
Los modelos prescriptivos son modelos tradicionales que no son los más eficaces, pero estos han sido de gran ayuda al pasar del tiempo, estos modelos han ayudado a tener un orden o una  estructura en el desarrollo de software, en este documento se han presentado algunos tipos de modelos, y cada uno es utilizado de acuerdo al tipo de software que se vaya a desarrollar. Entre los diferentes modelo prescriptivos se mencionó al modelo cascada que realiza las actividades de forma secuencial, y es uno de los más fáciles de usar frecuentemente usados para pequeños proyectos y para mejoras de software donde se conocen todos los requisitos del cliente. A este evoluciona y nace el modelo en V el cual es mucho más riguroso y eficaz.

BIBLIOGRAFÍA
Pressman, R. 2010. Ingeniería del Software un enfoque Práctico. 7ma. ed. México: Mc Graw Hill.

Sommerville, I. 2005. Ingeniería del software. Pearson Educación. Madrid.

Rojas, R. 2005. Ingeniería del software II. Ciclos de Vida de Ingeniería del Software. Formato Docx.

Velázquez, J.2012. Desarrollo en Cascada (Waterfall) VS Desarrollo Agile-SCRUM. Formato PDF.



sábado, 18 de abril de 2015

PROCESOS DEL SOFTWARE

Fecha de Clase: 13 - 17 de Abril 2015

INTRODUCCIÓN
En la segunda clase se estudió los procesos de software ya que para el desarrollo del software es necesario la utilización de procesos que permitan a los diseñadores interactuar con el usuario  y las herramientas tecnológicas. Estos son procesos se repiten una y otra vez hasta crear un producto.
Los procesos de software son muy utilizados ya que estos sirven de estructura para llevar a cabo tareas organizadas, con el fin de crear software de alta calidad, que sean de gran beneficio y que cumplan con los requerimientos debidos. En la Ingeniería del Software los modelos de procesos son muy requeridos para obtener resultados satisfactorios.

OBJETIVO
Conocer los modelos del proceso y su utilización en la Ingeniería del Software.

MARCO TEÓRICO
PROCESO DEL SOFTWARE
Los procesos son una agrupación de tareas, actividades y acciones que se realizan cuando se va a crear un producto.
En ingeniería de software, “un proceso no es una prescripción rígida de cómo elaborar software de cómputo. Por el contrario, es un enfoque adaptable que permite que las personas que hacen el trabajo (el equipo de software) busquen y elijan el conjunto apropiado de acciones y tareas para el trabajo. Se busca siempre entregar el software en forma oportuna y con calidad suficiente para satisfacer a quienes patrocinaron su creación y a aquellos que lo usarán”. (Pressman, R. 2010)

ESTRUCTURA DEL PROCESO
Los procesos en Ingeniería de software cumplen con cinco actividades que son aplicables a todos los proyectos de software:


MODELO DEL PROCESO
Un modelo de procesos de software es una descripción simplificada de un proceso del software que presenta una visión de ese proceso. Estos modelos pueden incluir actividades que son parte de los procesos y productos de software y el papel de las personas involucradas en la ingeniería del software. Algunos de estos tipos de modelos que se pueden producir son:
Un modelo de flujo de trabajo.- Muestra la secuencia de actividades en el proceso junto con sus entradas, salidas y dependencias. Las actividades en este modelo representan acciones humanas.
Un modelo de flujo de datos o de actividad.- Representa el proceso como un conjunto de actividades, cada una de las cuales realiza alguna transformación en los datos. Muestra como la entrada en el proceso, tal como una especificación, se transforma en una salida, tal como un diseño. Pueden representar transformaciones llevadas a cabo por las personas o por las computadoras.
Un modelo de rolacion.- Representa los roles de las personas involucradas en el proceso del software y las actividades de las que son responsables.

MODELO GENERAL DE PROCESO
En esta sección se introducen varios modelos de proceso muy generales (paradigmas de proceso). Estos modelos generales no son descripciones definitivas de los procesos del software. Más bien, son abstracciones de los procesos que se pueden utilizar para explicar diferentes enfoques para el desarrollo del software.
La mayor parte de los modelos de procesos de software se basan en uno de los tres modelos generales o paradigmas de desarrollo de software:
El modelo en cascada.- Considera las actividades fundamentales del proceso de especificación, desarrollo, validación y evolución, y los representa como fases separadas del proceso, tales como la especificación de requerimientos, el diseño del software, la implementación, pruebas, etc.
Desarrollo evolutivo.- Este enfoque entrelaza las actividades de especificación, desarrollo y validación. Un sistema inicial se desarrolla rápidamente a partir de especificaciones abstractas. Este se refina basándose en las peticiones del cliente para producir un sistema que satisfaga sus necesidades.
Ingeniería del software basada en componentes.- Este enfoque se basa en la existencia de un número significativo de componentes reutilizables. El proceso de desarrollo del sistema se enfoca en integrar estos componentes en el sistema más que en desarrollarlos desde cero.
Estos tres modelos de procesos genéricos se utilizan ampliamente en la práctica actual de la ingeniería de software. No se excluyen mutuamente y a menudo se utilizan juntos, especialmente para el desarrollo de sistemas grandes. De hecho, el Proceso Unificado de Racional combina elementos de los tres modelos. Aunque es conveniente estudiar estos modelos separadamente, debe entenderse que, en la práctica, a menudo se combinan.

FLUJO DE PROCESO
Existen cuatro tipos de flujo de proceso:
Flujo de proceso lineal: en este se realizan las cinco actividades de manera secuencial, iniciando por comunicación y culminando en despliegue, como se muestra en la figura 1.
Figura 1. Flujo de proceso lineal

 Flujo de proceso iterativo: este proceso se repite más de una vez las actividades antes de pasar a la siguiente, como se muestra en la figura 2.
Figura 2. Flujo de proceso iterativo
Flujo de proceso evolutivo: como su nombre lo dice este realiza las cincos actividades de manera circular y cada vez que se realice un circuito se van mejorando las versiones,  como se muestra en la figura 3.
Figura 3. Flujo de proceso evolutivo
Flujo de proceso paralelo: como su nombre lo dice este realiza una o más actividades en paralelo, como se muestra en la figura 4.
Figura 1. Flujo de proceso paralelo

CONCLUSIÓN
Se puede concluir que los procesos de software son la base para el desarrollo de software de alta calidad, software que sean capaces de cumplir con los requerimientos del usuario. Con ayuda de los procesos se pueden llevar a cabo un mejor trabajo en la elaboración del software puesto que estos ayudan a que se cree una estructura organizada de tareas, acciones y actividades a realizarse para alcanzar el objetivo deseado. Los procesos cumplen con cinco actividades que sirven para llevar un orden de la información que se requiere; estas actividades se las puede organizar de diferentes maneras lo cual se lo conoce como flujo de proceso.

BIBLIOGRAFÍA
Pressman, R. 2010. Ingeniería del Software un enfoque Práctico. 7ma. ed. México: Mc Graw Hill.

Sommerville, I. 2005. Ingeniería del software. 7ma ed. Madrid. Pearson Educación.

Ruiz, F. 2009. Procesos de Ingeniería del Software. Formato PDF.

Granollers, T; Lorés, J; Perdrix F. 2002. Modelo de proceso de la ingeniería de la usabilidad. Formato PDF.



miércoles, 15 de abril de 2015

INTRODUCCIÓN IS

INTRODUCCIÓN
En la  primera clase se realizó una introducción  a la ingeniería del software, la cual nos permitió conocer más acerca  de las características de la catedra que vamos a estudiar. En esta se definió  porque es importante el estudio de la Ingeniera del software y cuáles son sus beneficios.
El software es indispensable para el funcionamiento del ordenador, puesto que es el que se encarga de realizar tareas específicas, es decir que es aquel que le da vida a un ordenador a través de una serie de instrucciones y datos.

OBJETIVO
Afianzar los conocimientos de los conceptos básicos  e aplicaciones del  software y la ingeniería del software.

MARCO TEÓRICO
¿QUÉ ES EL SOFTWARE?
El software es uno de las áreas que con el pasar del tiempo se ha desarrollado de manera impresionante, como ya conocemos en el mercado hay una gran diversidad de software, en la actualidad el software juega un gran papel en la sociedad, tanto que hoy en día  se ha vuelto indispensable para subsistir. (Clemente, E. 2014)
El término software es un conjunto de instrucciones de programa electrónico que es capaz leer datos de un procesador de la computadora para realizar una tarea u operación. En otras palabras, el software es el término general para la información que se graba en algún tipo de medio. La mayoría del software en su ordenador viene en forma de programas. El programa consiste en instrucciones que decirle a la computadora qué hacer, cómo comportarse.

INGENIERIA EN SOFTWARE
Según Sommerville Ian:
“La ingeniería en software es una disciplina de la ingeniería que comprende todos los aspectos de la producción de software desde las etapas iniciales de la especificación del sistema, hasta el mantenimiento de este después de que se utiliza”.
La ingeniería es software es muy importante ya que ayuda a los ingenieros en software a producir software de alta calidad, puesto que este ayuda a desarrollar los proyectos de forma organizada y sistemática, obteniendo así mejores resultados en la producción de software.

DIFERENCIA ENTRE INGENIERÍA EN SOFWARE Y INGENIERÍA EN SISTEMA
Muchas veces estos dos terminos son confundidos, pero su significados son diferentes commo se muestra en la figura 1. (Poveda, J. 2008.)
Figura 1. diferencia entre ingeniería en software y sistema


DOMINIOS DE APLICACIÓN DEL SOFTWARE
A continuación se describirá las aplicaciones de software más importantes:


CONCLUSIÓN
El estudio de la ingeniería del software es fundamental puesto que esta nos permite conocer el funcionamiento del software, también nos permite abarcar la producción del software en todas sus etapas desde el principio hasta el fin. Por otra parte también se pudo conocer que el software es el que le da vida al hardware, ya que es el encargado de ejecutar las instrucciones. En la actualidad el software juega un rol muy importante en la sociedad, tanto así que se ha vuelto parte de nuestra vida cotidiana, ya que cada vez se desarrollan diferentes tipos  de software que son de gran ayuda para el hombre.

BIBLIOGRAFÍA
Clemente, E. 2014. La Importancia del Software en la Sociedad. Consultado 15 de abr. 2015. Formato Html. Disponible en: http://okhosting.com

Curley, C. 2015?. What is Application Software? - Definition, Examples & Types. Consultado 15 de abr. 2015. Formato Html. Disponible en: http://study.com/

Poveda, J. 2008. Que es software. Consultado 15 de abr. 2015. Formato Html. Disponible en: http://slideplayer.es/

Pressman, R. 2010. Ingeniería del Software un enfoque Práctico. 7ma. ed. México: Mc Graw Hill

Simple Organization. 2013?. Tipos de Software. Consultado 15 de abr. 2015. Formato Html. Disponible en: http://www.tiposde.org/

Sommerville, I. 2005. Ingeniería del software. Pearson Educación. Madrid