You are on page 1of 26

INTITUTO TECNOLOGICO DE HUEJUTLA

UNIDAD II METODOLOGIAS DE DESARROLLO

2.1 METODOLOGAS CLSICAS 2.1.1 CASCADA 2.1.2 INCREMENTAL 2.1.3 EVOLUTIVO 2.1.4 ESPIRAL 2.1.5 PROTOTIPOS 2.1.6 DESARROLLO BASADO EN COMPONENTES 2.2 OTRAS METODOLOGAS 2.2.1 GANAR-GANAR 2.2.2 PROCESO UNIFICADO (UP) 2.2.3 INGENIERA WEB 2.2.4 METODOLOGAS GILES 2.3 REINGENIERA

PEDRO HERNANDEZ NAVARRO MODULO 1.

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

2.1 METODOLOGAS CLSICAS Una Metodologa para el Desarrollo de Sistemas de Informacin es un conjunto de actividades llevadas a cabo para desarrollar y poner en marcha un Sistema de Informacin. Los Objetivos de las Metodologas de Desarrollo de Sistemas de Informacin son:

Definir actividades a llevarse a cabo en un Proyecto de S.I. Unificar criterios en la organizacin para el desarrollo de S.I. Proporcionar puntos de control y revisin

Una metodologa puede seguir uno o varios modelos de ciclo de vida, es decir, el ciclo de vida indica qu es lo que hay que obtener a lo largo del desarrollo del proyecto pero no cmo hacerlo. La metodologa indica cmo hay que obtener los distintos productos parciales y finales

2.1.1 CASCADA En Ingeniera de software el desarrollo en cascada, tambin llamado modelo en cascada, es el enfoque metodolgico que ordena rigurosamente las etapas del proceso para el desarrollo de software, de tal forma que el inicio de cada etapa debe esperar a la finalizacin de la etapa anterior Un ejemplo de una metodologa de desarrollo en cascada es: 1. 2. 3. 4. 5. 6. 7. Anlisis de requisitos. Diseo del Sistema. Diseo del Programa. Codificacin. Pruebas. Implantacin. Mantenimiento.

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

De esta forma, cualquier error de diseo detectado en la etapa de prueba conduce necesariamente al rediseo y nueva programacin del cdigo afectado, aumentando los costos del desarrollo. La palabra cascada sugiere, mediante la metfora de la fuerza de la gravedad, el esfuerzo necesario para introducir un cambio en las fases ms avanzadas de un proyecto. Si bien ha sido ampliamente criticado desde el mbito acadmico y la industria sigue siendo el paradigma ms seguido al da de hoy. Fases del modelo.

El "modelo cascada" sin modificar. El progreso fluye de arriba hacia abajo, como una cascada. Anlisis de requisitos En esta fase se analizan las necesidades de los usuarios finales del software para determinar qu objetivos debe cubrir. De esta fase surge una memoria llamada SRD (documento de especificacin de requisitos), que contiene la especificacin completa de lo que debe hacer el sistema sin entrar en detalles internos. Es importante sealar que en esta etapa se debe consensuar todo lo que se requiere del sistema y ser aquello lo que seguir en las siguientes etapas, no pudindose requerir nuevos resultados a mitad del proceso de elaboracin del software. Diseo del Sistema

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

Descompone y organiza el sistema en elementos que puedan elaborarse por separado, aprovechando las ventajas del desarrollo en equipo. Como resultado surge el SDD (Documento de Diseo del Software), que contiene la descripcin de la estructura relacional global del sistema y la especificacin de lo que debe hacer cada una de sus partes, as como la manera en que se combinan unas con otras. Es conveniente distinguir entre diseo de alto nivel o arquitectnico y diseo detallado. El primero de ellos tiene como objetivo definir la estructura de la solucin (una vez que la fase de anlisis ha descrito el problema) identificando grandes mdulos (conjuntos de funciones que van a estar asociadas) y sus relaciones. Con ello se define la arquitectura de la solucin elegida. El segundo define los algoritmos empleados y la organizacin del cdigo para comenzar la implementacin. Diseo del Programa Es la fase en donde se realizan los algoritmos necesarios para el cumplimiento de los requerimientos del usuario as como tambin los anlisis necesarios para saber que herramientas usar en la etapa de codificacin Codificacin Es la fase en donde se implementa el cdigo fuente, haciendo uso de prototipos as como de pruebas y ensayos para corregir errores. Dependiendo del lenguaje de programacin y su versin se crean las bibliotecas y componentes reutilizables dentro del mismo proyecto para hacer que la programacin sea un proceso mucho ms rpido. Pruebas Los elementos, ya programados, se ensamblan para componer el sistema y se comprueba que funciona correctamente y que cumple con los requisitos, antes de ser entregado al usuario final. Verificacin Es la fase en donde el usuario final ejecuta el sistema, para ello el o los programadores ya realizaron exhaustivas pruebas para comprobar que el sistema no falle. En la creacin de desarrollo de cascada se implementa los cdigos de investigacin y pruebas del mismo Mantenimiento

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

Una de las etapas ms crticas, ya que se destina un 75% de los recursos, es el mantenimiento del Software ya que al utilizarlo como usuario final puede ser que no cumpla con todas nuestras expectativas. Variantes Existen variantes de este modelo; especialmente destacamos la que hace uso de prototipos y en la que se establece un ciclo antes de llegar a la fase de mantenimiento, verificando que el sistema final est libre de fallos. Desventajas En la vida real, un proyecto rara vez sigue una secuencia lineal, esto crea una mala implementacin del modelo, lo cual hace que lo lleve al fracaso. El proceso de creacin del software tarda mucho tiempo ya que debe pasar por el proceso de prueba y hasta que el software no est completo no se opera. Esto es la base para que funcione bien. Cualquier error de diseo detectado en la etapa de prueba conduce necesariamente al rediseo y nueva programacin del cdigo afectado, aumentando los costos del desarrollo

2.1.2 INCREMENTAL El Modelo Incremental combina elementos del MLS con la filosofa interactiva de construccin de prototipos. En una visin genrica, el proceso se divide en 4 partes: Anlisis, Diseo, Cdigo y Prueba.

Sin embargo, para la produccin del Software, se usa el principio de trabajo en cadena o Pipeline, utilizado en muchas otras formas de programacin. Con esto se mantiene al cliente en constante contacto con los resultados obtenidos en cada incremento.

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

Es el mismo cliente el que incluye o desecha elementos al final de cada incremento a fin de que el software se adapte mejor a sus necesidades reales. El proceso se repite hasta que se elabore el producto completo. De esta forma el tiempo de entrega se reduce considerablemente. Al igual que los otros mtodos de modelado, el Modelo Incremental es de naturaleza interactiva pero se diferencia de aquellos en que al final de cada incremento se entrega un producto completamente operacional. El Modelo Incremental es particularmente til cuando no se cuenta con una dotacin de personal suficiente. Los primeros pasos los pueden realizar un grupo reducido de personas y en cada incremento se aadir personal, de ser ne cesario. Por otro lado los incrementos se pueden planear para gestionar riesgos tcnicos. Se evitan proyectos largos y se entrega algo de valor a los usuarios con cierta frecuencia. El usuario se involucra ms. Difcil de evaluar el coste total. Difcil de aplicar a los sistemas transaccionales que tienden a ser integrados y a operar como un todo. Caractersticas Se evitan proyectos largos y se entrega algo de valor a los usuarios con cierta frecuencia. El usuario se involucre ms. Difcil de evaluar el costo total. Difcil de aplicar a los sistemas transaccionales que tienden a ser integrados y a operar como un todo. Requiere gestores experimentados. Los errores en los requisitos se detectan tarde. El resultado puede ser muy positivo. Ventajas:

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

Con un paradigma incremental se reduce el tiempo de desarrollo inicial, ya que se implementa la funcionalidad parcial. Tambin provee un impacto ventajoso frente al cliente, que es la entrega temprana de partes operativas del Software. El modelo proporciona todas las ventajas del modelo en cascada realimentado, reduciendo sus desventajas slo al mbito de cada incremento. Permite entregar al cliente un producto ms rpido en comparacin del modelo de cascada. Resulta ms sencillo acomodar cambios al acotar el tamao de los incrementos. Por su versatilidad requiere de una planeacin cuidadosa tanto a nivel administrativo como tcnico. Desventajas: El modelo Incremental no es recomendable para casos de sistemas de tiempo real, de alto nivel de seguridad, de procesamiento distribuido, y/o de alto ndice de riesgos. Requiere de mucha planeacin, tanto administrativa como tcnica. Requiere de metas claras para conocer el estado del proyecto.

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

2.1.3 EVOLUTIVO El modelo Evolutivo consiste en hacer la documentacin de las fases, realizando un prototipo del sistema, se evala el qu tan lejos el prototipo est de la solucin final esperada por el cliente; se toman en cuenta las observaciones de esta evaluacin, y se crea un nuevo prototipo que las incluya.

VENTAJA La ventaja es que es ideal para sistemas que no tienen bien definidos los requerimientos, es decir, para la mayora de los sistemas que se desarrollan. DESVENTAJA Es difcil distinguirlo del proceso "codifica y corrige", pues en cierta medida son parecidos, la diferencia est que en la prctica se requiere que al construir el prototipo se aplique el anlisis y el diseo pero slo a una parte de los requerimientos ya entendidos, que se documente y se codifique.

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

2.1.4 ESPIRAL El modelo en espiral del proceso del software que originalmente fue propuesto por Boehm (1988).Este modelo en espiral es una de las metodologas ms recomendables para el desarrollo y creacin de un programa, ya que consta de pocas etapas o fases, las cuales se van realizando en una manera continua y cclica.

Cada ciclo de la espiral se divide en 4 etapas: 1.- DEFINICIN DE OBJETIVOS: Para esta fase del proyecto se definen los objetivos especficos. Se identifican las restricciones los procesos y el producto, y se estipula un plan detallado de administracin. 2.-EVALUACION Y REDUCCIN DE RIESGOS: Se lleva a cabo un anlisis detallado para cada uno de los riesgos del proyecto. Se definen los pasos para reducir dichos riesgos. 3.- DESARROLLO Y VALIDACIN: Despus de la evaluacin de riesgos, se elige un modelo para el desarrollo del sistema. 4.- PLANEACIN: El proyecto se revisa y se toma la decisin de si se debe continuar con posterior de la espiral.

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

2.1.5 PROTOTIPOS El Modelo de prototipos, en Ingeniera de software, pertenece a los modelos de desarrollo evolutivo. El prototipo debe ser construido en poco tiempo, usando los programas adecuados y no se debe utilizar muchos recursos.

El diseo rpido se centra en una representacin de aquellos aspectos del software que sern visibles para el cliente o el usuario final. Este diseo conduce a la construccin de un prototipo, el cual es evaluado por el cliente para una retroalimentacin; gracias a sta se refinan los requisitos del software que se desarrollar. La interaccin ocurre cuando el prototipo se ajusta para satisfacer las necesidades del cliente. Esto permite que al mismo tiempo el desarrollador entienda mejor lo que se debe hacer y el cliente vea resultados a corto plazo.

ETAPAS PARA LA ELABORACIN DEL PROTOTIPO

Ventajas

Este modelo es til cuando el cliente conoce los objetivos generales para el software, pero no identifica los requisitos detallados de entrada, procesamiento o salida. Tambin ofrece un mejor enfoque cuando el responsable del desarrollo del software est inseguro de la eficacia de un algoritmo, de la adaptabilidad de un sistema operativo o de la forma que debera tomar la interaccin humano-mquina.

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

La construccin de prototipos se puede utilizar como un modelo del proceso independiente, se emplea ms comnmente como una tcnica susceptible de implementarse dentro del contexto de cualquiera de los modelos del proceso expuestos. Sin importar la forma en que ste se aplique, el paradigma de construccin de prototipos ayuda al desarrollador de software y al cliente a entender de mejor manera cul ser el resultado de la construccin cuando los requisitos estn satisfechos. De esta manera, este ciclo de vida en particular, involucra al cliente ms profundamente para adquirir el producto. Inconvenientes El usuario tiende a crearse unas expectativas cuando ve el prototipo de cara al sistema final. A causa de la intencin de crear un prototipo de forma rpida, se suelen desatender aspectos importantes, tales como la calidad y el mantenimiento a largo plazo, lo que obliga en la mayor parte de los casos a reconstruirlo una vez que el prototipo ha cumplido su funcin. Es frecuente que el usuario se muestre reacio a ello y pida que sobre ese prototipo se construya el sistema final, lo que lo convertira en un prototipo evolutivo, pero partiendo de un estado poco recomendado.

En aras de desarrollar rpidamente el prototipo, el desarrollador suele tomar algunas decisiones de implementacin poco convenientes (por ejemplo, elegir un lenguaje de programacin incorrecto porque proporcione un desarrollo ms rpido). Con el paso del tiempo, el desarrollador puede olvidarse de la razn que le llev a tomar tales decisiones, con lo que se corre el riesgo de que dichas elecciones pasen a formar parte del sistema final...

2.1.6 DESARROLLO BASADO EN COMPONENTES Ingeniera de Software Basada en Componentes (ISBC) Tradicionalmente los ingenieros del software han seguido un enfoque de desarrollo descendente (top-down) basado en el ciclo de vida en cascada (anlisis-diseoimplementacin) para la construccin de sus sistemas, donde se establecen los requisitos y la arquitectura de la aplicacin y luego se va desarrollando, diseando e implementando cada parte software hasta obtener la aplicacin completa implementada [Iribarne, 2003].

La ISBC parte de la idea de la integracin de componentes software ya existente

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

(Desarrollo ascendente o bottom-up).

Las tecnologas de objetos proporcionan el marco de trabajo tcnico, para la ingeniera de software, para un modelo de proceso basado en componentes. El paradigma orientado a objetos enfatiza la creacin de clases que encapsulan tanto los datos como los algoritmos para manejar esos datos. Si se disean y se implementan adecuadamente, las clases orientadas a objetos son reutilizables por diferentes aplicaciones. Es la reutilizacin la que permite a los desarrolladores construir aplicaciones sin partir desde cero, sino acercndose ms al modelo de construccin de otras ingenieras, donde los productos se construyen en base al ensamblaje y adaptacin de distintos componentes desarrollados por terceros (como lo es la industria del hardware para computadoras). Por ello requiere un conjunto de estndares, guas, procesos y prcticas, para que se la considere como una ingeniera tal, y como una subdisciplina de la Ingeniera de Software [Iribarne, 2003].

Segn Pressman, La metodologa que propone entonces la Ingeniera de Software Basada en Componentes (ISBC) incorpora muchas de las caractersticas del Modelo en Espiral. Es evolutivo por naturaleza, y por ello exige tambin un enfoque iterativo para la creacin del software. Pero reemplaza las fases de Ingeniera y Construccin y Accin de ste modelo por una sola fase de Construccin y adaptacin de la Ingeniera: Comunicacin con el cliente- las tareas requeridas para establecer comunicacin entre el desarrollador y el cliente. Planificacin- las tareas requeridas para definir recursos, el tiempo y otra informacin relacionadas con el proyecto. Anlisis de riesgos- las tareas requeridas para evaluar riesgos tcnicos y de gestin. Construccin y adaptacin de la Ingeniera Evaluacin del cliente- las tareas requeridas para obtener la reaccin del cliente segn la evaluacin de las representaciones del software creadas durante la etapa de ingeniera e implementada durante la etapa de instalacin.

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

El modelo de desarrollo basado en componentes conduce a la reutilizacin del software, y la reutilizacin proporciona beneficios a los ingenieros de software. Reduce en gran medida el tiempo del ciclo de desarrollo y el coste del proyecto, y aumenta la productividad. VENTAJAS Reutilizacin del software: Nos lleva a alcanzar un mayor nivel de reutilizacin de software. Simplifica las pruebas: Permite que las pruebas sean ejecutadas probando cada uno de los componentes antes de probar el conjunto completo de componentes ensamblados. Simplifica el mantenimiento del sistema: Cuando existe un dbil acoplamiento entre componentes, el desarrollador es libre de actualizar y/o agregar componentes segn sea necesario, sin afectar otras partes del sistema. Mayor calidad: componente puede ser construido y luego mejorado continuamente por un experto u organizacin, la calidad de una aplicacin basada en componentes mejorar con el paso del tiempo. DESVENTAJA La produccin este (mantenimiento). tipo de software es una empresa muy costosa

La mayora de los proyectos grandes fallan parcialmente o totalmente, conduciendo a un riesgo sustancial (interoperabilidad con otros sistemas locales). En un mundo de rpidos y continuos cambios en los requerimientos de los negocios, este tipo de software es usualmente muy lento para ser productivo antes de convertirse en obsoleto. 2.2.1 GANAR-GANAR El modelo Ganar-ganar establece las reglas para definir el proceso del desarrollo, tomando en cuenta las partes implicadas. No necesita mucho tiempo de gestin, lo que permite utilizarlo tanto en proyectos pequeos, como mayores. EL MODELO GANAR-GANAR CONTIENE CUATRO CICLOS Ciclo 0. Grupo de aplicacin:

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

Se determina la viabilidad de un grupo apropiado de aplicaciones. Ciclo 1. Objetivos del ciclo de vida de la aplicacin: Se desarrollan objetivos del ciclo de vida, incluyendo prototipos, planes y especificaciones de aplicaciones individuales, y se verifica la existencia de al menos una arquitectura viable para cada aplicacin. Ciclo 2. Arquitectura del ciclo de vida de la aplicacin: Se establece una arquitectura del ciclo de vida detallado, se verifica la viabilidad y determina que no existen riesgos mayores en satisfacer los planes y especificaciones. Ciclo 3. Capacidad de operacin inicial: Alcanzar una capacidad operacional inicial para cada etapa crtica del proyecto en el ciclo de vida del software. 2.2.2 PROCESO UNIFICADO (UP)

El Proceso Unificado es un proceso de software genrico que puede ser utilizado para una gran cantidad de tipos de sistemas de software, para diferentes reas de aplicacin, diferentes tipos de organizaciones, diferentes niveles de competencia y diferentes tamaos de proyectos. Provee un enfoque disciplinado en la asignacin de tareas y responsabilidades dentro de una organizacin de desarrollo. Su meta es asegurar la produccin de software de muy alta calidad que satisfaga las necesidades de los usuarios finales, dentro de un calendario y presupuesto predecible. El Proceso Unificado tiene dos dimensiones Un eje horizontal que representa el tiempo y muestra los aspectos del ciclo de vida del proceso a lo largo de su desenvolvimiento Un eje vertical que representa las disciplinas, las cuales agrupan actividades de una manera lgica de acuerdo a su naturaleza. La primera dimensin representa el aspecto dinmico del proceso conforme se va desarrollando, se expresa en trminos de fases, iteraciones e hitos (milestones).

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

La segunda dimensin representa el aspecto esttico del proceso: cmo es descrito en trminos de componentes del proceso, disciplinas, actividades, flujos de trabajo, artefactos y roles.

El Proceso Unificado se basa en componentes (component-based), lo que significa que el sistema en construccin est hecho de componentes de software interconectados por medio de interfaces bien definidas (well-defined interfaces). El Proceso Unificado usa el Lenguaje de Modelado Unificado (UML) en la preparacin de todos los planos del sistema. De hecho, UML es una parte integral del Proceso Unificado, fueron desarrollados a la par. Los aspectos distintivos del Proceso Unificado estn capturados en tres conceptos clave: dirigido por casos de uso (use-case driven), centrado en la arquitectura (architecture-centric), iterativo e incremental. Esto es lo que hace nico al Proceso Unificado.

El Proceso Unificado es dirigido por casos de uso Un sistema de software se crea para servir a sus usuarios. Por lo tanto, para construir un sistema exitoso se debe conocer qu es lo que quieren y necesitan los usuarios prospectos. El trmino usuario se refiere no solamente a los usuarios humanos, sino a otros sistemas. En este contexto, el trmino usuario representa algo o alguien que interacta con el sistema por desarrollar. Un caso de uso es una pieza en la funcionalidad del sistema que le da al usuario un resultado de valor. Los casos de uso capturan los requerimientos funcionales. Todos los casos de uso juntos constituyen el modelo de casos de uso el cual describe la funcionalidad completa del sistema. Este modelo reemplaza la tradicional especificacin funcional del sistema. Una especificacin funcional tradicional se concentra en responder la pregunta: Qu se supone que el sistema debe hacer? La estrategia de casos de uso puede ser definida agregando tres palabras al final de la pregunta: por cada usuario? Estas tres palabras tienen una implicacin importante, nos fuerzan a pensar en trminos del valor a los usuarios y no solamente en trminos de las funciones que sera bueno que tuviera. Sin embargo, los casos de uso no son solamente una herramienta para especificar los requerimientos del sistema, tambin dirigen su diseo, implementacin y pruebas, esto es, dirigen el proceso de desarrollo.

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

An y cuando los casos de uso dirigen el proceso, no son elegidos de manera aislada. Son desarrollados a la par con la arquitectura del sistema, esto es, los casos de uso dirigen la arquitectura del sistema y la arquitectura del sistema influencia la eleccin de los casos de uso. Por lo tanto, al arquitectura del sistema y los casos de uso maduran conforme avanza el ciclo de vida. El Proceso Unificado est centrado en la arquitectura El papel del arquitecto de sistemas es similar en naturaleza al papel que el arquitecto desempea en la construccin de edificios. El edificio se mira desde diferentes puntos de vista: estructura, servicios, plomera, electricidad, etc. Esto le permite al constructor ver una radiografa completa antes de empezar a construir. Similarmente, la arquitectura en un sistema de software es descrita como diferentes vistas del sistema que est siendo construido. El concepto de arquitectura de software involucra los aspectos estticos y dinmicos ms significativos del sistema. La arquitectura surge de las necesidades de la empresa, tal y como las interpretan los usuarios y otros stakeholders, y tal y como estn reflejadas en los casos de uso. Sin embargo, tambin est influenciada por muchos otros factores, tales como la plataforma de software en la que se ejecutar, la disponibilidad de componentes reutilizables, consideraciones de instalacin, sistemas legados, requerimientos no funcionales (ej. desempeo, confiabilidad). La arquitectura es la vista del diseo completo con las caractersticas ms importantes hechas ms visibles y dejando los detalles de lado. Ya que lo importante depende en parte del criterio, el cual a su vez viene con la experiencia, el valor de la arquitectura depende del personal asignado a esta tarea. Sin embargo, el proceso ayuda al arquitecto a enfocarse en las metas correctas, tales como claridad (understandability), flexibilidad en los cambios futuros (resilience) y reuso. Cmo se relacionan los casos de uso con la arquitectura? Cada producto tiene funcin y forma. Uno slo de los dos no es suficiente. Estas dos fuerzas deben estar balanceadas para obtener un producto exitoso. En este caso funcin corresponde a los casos de uso y forma a la arquitectura. Existe la necesidad de intercalar entre casos de uso y arquitectura. Es un problema del huevo y la gallina. Por una parte, los casos de uso deben, cuando son realizados, acomodarse en la arquitectura. Por otra parte, la arquitectura debe proveer espacio para la realizacin de todos los casos de uso, hoy y en el futuro. En la realidad, ambos arquitectura y casos de uso deben evolucionar en paralelo. El Proceso Unificado es Iterativo e Incremental Desarrollar un producto de software comercial es una tarea enorme que puede continuar por varios meses o aos. Es prctico dividir el trabajo en pequeos pedazos o mini-proyectos. Cada mini-proyecto es una iteracin que finaliza en un incremento. Las iteraciones se refieren a pasos en el flujo de trabajo,
INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

los incrementos se refieren a crecimiento en el producto. Para ser ms efectivo, las iteraciones deben estar controladas, esto es, deben ser seleccionadas y llevadas a cabo de una manera planeada. Los desarrolladores basan su seleccin de qu van a implementar en una iteracin en dos factores. Primero, la iteracin trata con un grupo de casos de uso que en conjunto extienden la usabilidad del producto. Segundo, la iteracin trata con los riesgos ms importantes. Las iteraciones sucesivas construyen los artefactos del desarrollo a partir del estado en el que fueron dejados en la iteracin anterior. En cada iteracin, los desarrolladores identifican y especifican los casos de uso relevantes, crean el diseo usando la arquitectura como gua, implementan el diseo en componentes y verifican que los componentes satisfacen los casos de uso. Si una iteracin cumple sus metas y usualmente lo hace el desarrollo contina con la siguiente iteracin. Cuando la iteracin no cumple con sus metas, los desarrolladores deben revisar sus decisiones previas y probar un nuevo enfoque.

2.2.3 INGENIERA WEB

La ingeniera web es la aplicacin de metodologas sistemticas, disciplinadas y cuantificables al desarrollo eficiente, operacin y evolucin de aplicaciones de alta calidad en la World Wide Web.

La ingeniera web se debe al crecimiento desenfrenado que est teniendo la Web est ocasionando un impacto en la sociedad y el nuevo manejo que se le est dando a la informacin en las diferentes reas en que se presenta ha hecho que las personas tiendan a realizar todas sus actividades por esta va.

Desde que esto empez a suceder el Internet se volvi ms que una diversin y empez a ser tomado ms en serio, ya que el aumento de publicaciones y de informaciones hizo que la Web se volviera como un desafo para los (Ingeniera del software) ingenieros del software, a raz de esto se crearon enfoques disciplinados, sistemticos y metodologas donde tuvieron en cuenta aspectos especficos de este nuevo medio.

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

Entonces la ingeniera de la Web es la aplicacin de metodologas sistemticas, disciplinadas y cuantificables al desarrollo eficiente, operacin y evolucin de aplicaciones de alta calidad en la World Wide Web. [] En este sentido, la ingeniera de la Web hace referencia a las metodologas, tcnicas y herramientas que se utilizan en el desarrollo de aplicaciones Web complejas y de gran dimensin en las que se apoya la evaluacin, diseo, desarrollo, implementacin y evolucin de dichas aplicaciones.

El desarrollo de aplicaciones Web posee determinadas caractersticas que lo hacen diferente del desarrollo de aplicaciones o software tradicional y sistemas de informacin. La ingeniera de la Web es multidisciplinar y aglutina contribuciones de diferentes reas: arquitectura de la informacin, ingeniera de hipermedia/hipertexto, ingeniera de requisitos, diseo de interfaz de usuario, usabilidad, diseo grfico y de presentacin, diseo y anlisis de sistemas, ingeniera de software, ingeniera de datos, indexado y recuperacin de informacin, testeo, modelado y simulacin, despliegue de aplicaciones, operacin de sistemas y gestin de proyectos. La ingeniera de la Web no es un clon o subconjunto de la ingeniera de software aunque ambas incluyen desarrollo de software y programacin, pues a pesar de que la ingeniera de la Web utiliza principios de ingeniera de software, incluye nuevos enfoques, metodologas, herramientas, tcnicas, guas y patrones para cubrir los requisitos nicos de las aplicaciones web. Sin embargo el trmino de ingeniera de la web ha sido un trmino muy controvertido especialmente para profesionales en disciplinas tales como la ingeniera del software ya que no la consideran como un campo dentro de la ingeniera.

Los principales aspectos de la ingeniera de la Web incluyen, entre otros, los siguientes temas:

Diseo de procesos de negocio para aplicaciones web. Herramientas CASE para aplicaciones web. Generacin de cdigo para aplicaciones web. Desarrollo web colaborativo. Modelado conceptual de aplicaciones web. Diseo de Modelos de datos para sistemas de informacin web. Ingeniera web emprica. Entornos de desarrollo de aplicaciones web integrados. Herramientas de autor para contenido multimedia. Pruebas de rendimiento de aplicaciones basadas en web.

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA


Personalizacin y adaptacin de aplicaciones web. Herramientas y mtodos de prototipado. Control de calidad y pruebas de sistemas. Ingeniera de requisitos para aplicaciones web. Aplicaciones para la Web Semntica. Factoras de software para la web. Mtodos, herramientas y automatizacin de pruebas para aplicaciones web. Aplicaciones web mviles y ubcuas. Usabilidad de aplicaciones web. Accesibilidad para la web. Metodologas de diseo web. Formacin en ingeniera de la web. Diseo de interfaces de usuario. Mtricas para la web, estimacin de costes y medicin. Gestin de proyectos web y gestin de riesgos. Desarrollo y despliegue de servicios web.

Categoras Los sitios web pueden ser categorizados de la siguiente forma:

Slo esttico que se enfoca en la organizacin de la estructura y el contenido, en la forma como se va a presentar la informacin y que sea fcil de manejar para cualquier usuario, pero debe tener en cuenta la eficiencia y la confiabilidad. Sitio esttico con formularios de entrada este sitio tiene las mismas caractersticas que el anterior, adicionndole que l le permite a los usuarios la interaccin por medio de cuestionarios, comentario y sugerencias. Sitio con acceso de datos dinmicos aqu, adems de las caractersticas antes mencionadas, cuenta con bases de datos en las cuales el usuario puede realizar consultas y bsquedas. Sitio creado dinmicamente en este sitio los requerimientos son parecidos pero deben suplir con las necesidades de cada usuario; creando sitios dinmicos que sean compatibles con el entorno de navegacin de cada usuario. Aplicacin de software basada en la Web este sitio puede tener todas las caractersticas antes mencionadas, pero logrando un parecido con una implementacin cliente/servidor comnmente conocido que a un sitio web esttico.

Con el pasar del tiempo y la constante evolucin tecnolgica que atraviesa nuestro mundo circundante hemos podido observar la necesidad y la utilidad de la red de redes; Internet para mejorar de cierta manera nuestras condiciones de vida y as fortalecer ms nuestro proceso de formacin educativa y contribuir con un mejoramiento del global de las necesidades de cada quien observemos que un proyecto que comenz meramente con fines militares para no centralizar los
INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

datos, ha tenido un crecimiento significable hoy en da el mundo se mueve con la web, ayudando a pequeas, medianas y grandes empresas as como todo entidad educativa.

Tengamos en cuenta que empresas mueven sus negocios por medio de la internet y que hasta polticas como el CRM para el manejo de clientes, son muy importantes para las empresas como por ejemplo, Dell, surgen polticas para el mantener los clientes y tenerlos en contactos va Web, mediante Internet se cuidada de cierta manera la imagen de una empresa, por ejemplo mediante el marketing a travs de Internet permite reforzar el servicio, haciendo ms fuerte la relacin entre la marca y el cliente.

Esto implica un uso creativo del medio, involucrando verdaderamente a las personas con la compaa. Utilizando la inmediatez, que brinda esta va de comunicacin. Con la herramienta comunicacional, se permite una relacin constante e inmediata con los clientes, as como mantener a los clientes contentos, conquistar nuevos nichos de mercado y, por ende, incrementar las ventas.

Debemos tener en cuenta que para la efectiva comunicacin en la web, se tienen protocolos que es como el lenguaje para que se haga efectiva el intercambio de comunicacin, vale la pena preguntarse, as para poder acceder a toda la informacin que nos puede suministrar Internet slo debes poseer un servicio de algn proveedor de Internet un navegador como Mozilla o Netscape. Por medio de un sitio web podremos tener nuestro sitio accesible o disponible 24 horas al da, 365 das del ao en absolutamente todo el mundo para quienes tienen acceso; es decir, cerca de 600 millones de personas aproximadamente, es por esto que nuestros datos en internet publicados en el sitio web podran ser accesibles a toda persona en cualquier momento en cualquier parte del mundo. Todas estas consideraciones nos llevan a la conclusin de que un sitio web bien logrado no es nicamente un espacio en la red para ver el mismo comercial que en televisin; es en realidad una extensin de las empresas o instituciones, as mismo teniendo en cuenta la importancia y aplicabilidad que tiene la ingeniera Web en nuestro desarrollo cognitivo, social y vivencial es fcil visionar que cada una de las funciones que ella emana estarn siempre ligadas a la vanguardia del desarrollo progresivo de la tecnologa y del hombre. Naturaleza multidisciplinaria

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

De acuerdo con esto, la ingeniera Web puede utilizar una parte de cada una de estas disciplinas y no ser dominada por puntos de vista muy particulares, es una respuesta de carcter multidisciplinario para las aplicaciones Web. Usualmente, las aplicaciones web son multidisciplinares, ya que son construidas en un medio constantemente cambiante, donde los requerimientos son inestables, los equipos de desarrollo generalmente son pequeos, las comunidades de usuarios son ms amplias que antes y la competicin ahora es a nivel mundial. En general, las aplicaciones web, necesitan ser funcionales, mantenibles, escalables y seguras. Como podemos ver, la actual demanda de las aplicaciones web es totalmente diferente de las aplicaciones convencionales y por lo tanto hay una gran necesidad de la ingeniera web.

2.2.4 METODOLOGAS GILES En febrero de 2001, tras una reunin celebrada en Utah-EEUU, nace el trmino .gil. Aplicado al desarrollo de software. Su objetivo fue esbozar los valores y principios que deberan permitir a los equipos desarrollar software rpidamente y respondiendo a los cambios que puedan surgir a lo largo del proyecto. Por qu surgen las Metodologas giles? 1. Dificultad para implantar metodologas tradicionales. Sofisticadas herramientas CASE y notaciones (UML). 2. Una solucin a medida para un segmento importante de proyectos de desarrollo de software. 3. Aceptar el cambio. Segn el Manifiesto se valora: Al individuo y las interacciones del equipo de desarrollo sobre el proceso y las herramientas. La gente es el principal factor de xito de un proyecto software. Es ms importante construir un buen equipo que construir el entorno. Desarrollar software que funciona ms que conseguir una buena documentacin. La regla a seguir es .no producir documentos a menos que sean necesarios de forma inmediata para tomar una decisin importante. Estos documentos deben ser cortos y centrarse en lo fundamental. La colaboracin con el cliente ms que la negociacin de un contrato. Se propone que exista una interaccin constante entre el cliente y el equipo de

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

desarrollo. Esta colaboracin entre ambos ser la que marque la marcha del proyecto y asegure su xito. Responder a los cambios ms que seguir estrictamente un plan. La habilidad de responder a los cambios que puedan surgir a los largo del proyecto (cambios en los requisitos, en la tecnologa, en el equipo, etc.) determina tambin el xito o fracaso del mismo. Por lo tanto, la planificacin no debe ser estricta sino flexible y abierta.

OTRAS METODOLOGAS GILES Aunque los creadores e impulsores de las metodologas giles ms populares han suscrito el manifiesto gil y coinciden con los principios enunciados anteriormente, cada metodologa tiene caractersticas propias y hace hincapi en algunos aspectos ms especficos. A continuacin se resumen otras metodologas giles. La mayora de ellas ya estaban siendo utilizadas con xito en proyectos reales pero les faltaba una mayor difusin y reconocimiento. SCRUM5 : Desarrollada por Ken Schwaber, Jeff Sutherland y Mike Beedle. Define un marco para la gestin de proyectos, que se ha utilizado con xito durante los ltimos 10 aos. Est especialmente indicada para proyectos con un rpido cambio de requisitos. Sus principales caractersticas se pueden resumir en dos. El desarrollo de software se realiza mediante iteraciones, denominadas sprints, con una duracin de 30 das. El resultado de cada sprint es un incremento ejecutable que se muestra al cliente. La segunda caracterstica importante son las reuniones a lo largo proyecto, entre ellas destaca la reunin diaria de 15 minutos del equipo de desarrollo para coordinacin e integracin.

Crystal Methodologies. Se trata de un conjunto de metodologas para el desarrollo de software caracterizadas por estar centradas en las personas que componen el equipo y la reduccin al mximo del nmero de artefactos producidos. Han sido desarrolladas por Alistair Cockburn. El desarrollo de software se considera un juego cooperativo de invencin y comunicacin, limitado por los recursos a utilizar. El equipo de desarrollo es un factor clave, por lo que se deben invertir esfuerzos en mejorar sus habilidades y destrezas, as como tener polticas de trabajo en equipo definidas. Estas polticas dependern del tamao del equipo, establecindose una clasificacin por colores, por ejemplo Crystal Clear (3 a 8 miembros) y

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

Crystal Orange (25 a 50 miembros).

Dynamic Systems Development Method7 (DSDM) [17]. Define el marco para desarrollar un proceso de produccin de software. Nace en 1994 con el objetivo de crear una metodologa RAD unificada. Sus principales caractersticas son: es un proceso iterativo e incremental y el equipo de desarrollo y el usuario trabajan juntos. Propone cinco fases: estudio viabilidad, estudio del negocio, modelado funcional, diseo y construccin, y finalmente implementacin. Las tres ltimas son iterativas, adems de existir realimentacin a todas las fases.

Adaptive Software Development8 (ASD) . Su impulsor es Jim Highsmith. Sus principales caractersticas son: iterativo, orientado a los componentes software ms que a las tareas y tolerante a los cambios. El ciclo de vida que propone tiene tres fases esenciales: especulacin, colaboracin y aprendizaje. En la primera de ellas se inicia el proyecto y se planifican las caractersticas del software; en la segunda desarrollan las caractersticas y finalmente en la tercera se revisa su calidad, y se entrega al cliente. La revisin de los componentes sirve para aprender de los errores y volver a iniciar el ciclo de desarrollo.

Feature -Driven Development9 (FDD). Define un proceso iterativo que consta de 5 pasos. Las iteraciones son cortas (hasta 2 semanas). Se centra en las fases de diseo e implementacin del sistema partiendo de una lista de caractersticas que debe reunir el software. Sus impulsores son Jeff De Luca y Peter Coad.

Lean Development10 (LD). Definida por Bob Charette.s a partir de su experiencia en proyectos con la industria japonesa del automvil en los aos 80 y utilizada en numerosos proyectos de telecomunicaciones en Europa. En LD, los cambios se consideran riesgos, pero si se manejan adecuadamente se pueden convertir en oportunidades que mejoren la

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

2.3 REINGENIERA En la actualidad cualquier entidad ya sea educacional, gubernamental o empresarial dependen en total medida del rendimiento que tengan sus sistemas informticos.

Resulta limitado imaginar el funcionamiento de una empresa, sin la intervencin de algn sistema computacional, pues estos estn involucrados de algn modo en la organizacin, ventas, desarrollo, produccin, manufactura, inventarios, publicidad, mercadotecnia, personal, costos; de manera resumida casi en todo. Una empresa, no es una entidad en s misma, sino que est basada en programas computacionales, o ms especficamente en productos software.

La vida actual se encuentra en constante cambio y por lo tanto existe un desarrollo e innovacin cada vez ms rpido; y por supuesto las empresas no estn excluidas de dicho cambio y se ven obligadas a actualizar constantemente sus sistemas computacionales, pues sin estos no podran estar a la altura de las necesidades que exigen sus clientes.

La gran competencia y demanda que existe en el mercado, exige que las empresas tengan lo ltimo en tecnologa, por lo que la actualizacin y el perfeccionamiento del software son absolutamente imprescindibles. Y es aqu precisamente donde entran en juego las estrategias para realizar cambios en el producto software.

Los sistemas de informacin heredados generalmente son la columna vertebral del flujo de informacin de las empresas y la principal forma de agruparla. Un sistema de informacin heredado puede ser definido como cualquier sistema de informacin que significativamente se resiste a la modificacin y evolucin.

Tales sistemas de informacin pueden causar serios problemas a la organizacin, entre los cuales resaltan los siguientes:

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

1) Los sistemas de informacin heredados casi siempre son ejecutados sobre hardware obsoleto que son lentos y caros de mantener. (2) El mantenimiento del software puede ser caro, porque se carece de la documentacin necesaria para el entendimiento de los detalles del sistema y su seguimiento es costoso de que adems consume mucho tiempo. (3) Una falta de interfaces limpias hace que la integracin de los sistemas de informacin heredados con otros sistemas sea difcil. (4) Los sistemas de informacin heredados son tambin difciles mas no resulta imposible el ampliarlos.

Por consiguiente la solucin a estos problemas cae en las siguientes categoras:

(1) Mantenimiento. Que consiste en un proceso incremental e iterativo en el cual se hacen pequeas modificaciones al sistema. (2) Modernizacin. Implica cambios ms extensos que el mantenimiento pero conserva partes considerables del sistema existente. (3) Remplazo. Que consiste en reconstruir el sistema desde sus inicios. Esta ltima solucin consiste en aplicarle al sistema actividades de reingeniera.

La reingeniera se focaliza dentro de dos mbitos muy importantes como son el negocio de la organizacin y el desarrollo del software. Por una parte se encarga del proceso de negocio con el fin de elevar la competitividad del mismo y por el otro, evala y examina los programas o aplicaciones con el objetivo de reestructurarlos o reconstruirlos, aportando de esta manera con un alto nivel de calidad.

La reingeniera de procesos en los negocios se encuentra en funcin de las necesidades del cliente, redisendose radicalmente los procesos principales de negocios desde el inicio al fin con la finalidad de alcanzar mejoras en las medidas crticas de rendimiento tales como: costos, calidad, servicio y rapidez.

INGENIERIA EN SISTEMAS COMPUTACIONALES

INTITUTO TECNOLOGICO DE HUEJUTLA

La reingeniera regresa a la esencia del negocio, cuestionando principios fundamentales y su forma de operacin.

La reingeniera significa una revolucin en la forma de administrar la empresa; su xito no se basa en mejorar lo existente sino en olvidar cmo se hacan las cosas, disearlas de nuevo y analizar el proceso.

La reingeniera implica borrar todo lo pasado y empezar de nuevo. Se determina primero qu debe hacerse y luego cmo debe hacerse. Se olvida de lo que es y se concentra en lo que debe ser. Entre las ventajas que proporciona la reingeniera se anotan las siguientes: (1) Se reduce el riesgo en la actualizacin del software. (2) Se reduce el costo en la actualizacin del software. (3) Se aumenta la calidad y confiabilidad del software.

INGENIERIA EN SISTEMAS COMPUTACIONALES

You might also like