You are on page 1of 34

INSTITUTO TECNOLÓGICO SUPERIOR DE FELIPE

CARRILLO PUERTO
UNIDAD ACADÉMICA TULUM
INGENIERÍA EN SISTEMAS COMPUTACIONALES
UNIDAD 2
INGENIERÍA DE SOFTWARE
ALUMNO: RAÚL JESÚS ALEJANDRO LÓPEZ
DOCENTE. ING. PAMELA YARELI PERERA MALDONADO
INVESTIGACION TEMAS 2.2 OTRAS METODOLOGÍAS Y
2.3 REINGENIERÍA DE SOFTWARE
24 DE FEBRERO 2016
Raúl Jesús Alejandro López

6

‫سخيسو‬
‫لوار‬

ÍNDICE
INTRODUCCIÓN................................................................................................... 3
2.2 OTRAS METODOLOGÍAS................................................................................ 4
2.2.1GANAR-GANAR (WIN & WIN)....................................................................4
Iterativo e Incremental................................................................................. 5
Dirigido por los casos de uso........................................................................6
Centrado en la arquitectura..........................................................................6
Enfocado en los riesgos................................................................................ 6
2.2.3 INGENIERÍA WEB.................................................................................. 7
Áreas............................................................................................................ 8
Categorías........................................................................................................ 9
Raúl Jesús Alejandro López

6

‫سخيسو‬
‫لوار‬

Naturaleza multidisciplinaria.........................................................................10
2.2.4 METODOLOGÍAS ÁGILES.....................................................................11
2.2.5 METODOLOGÍAS EMERGENTES.............................................................15
2.3 REINGENIERÍA DEL SOFTWARE....................................................................21
CONCLUSIÓN..................................................................................................... 22
REFERENCIAS BIBLIOGRÁFICAS.........................................................................23

INTRODUCCIÓN

Raúl Jesús Alejandro López

6

‫سخيسو‬
‫لوار‬

Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . la ingeniería web en relación a la de software. todos los términos que aparecen tienen una función específica. Todos estos temas ayudaran a tener una visión más clara de la materia y de cómo podemos aplicar esos conocimientos en proyectos que elaboremos en un futuro. metodologías agiles y emergentes y por último la reingeniería de software. pueden incluso alguno servir como un marco de trabajo para realizar proyectos o dar soluciones a problemas de carácter analítico en la ingeniería de software. Todos los temas en este documento de investigación se encuentran resumidos para tener una idea más clara del mensaje que se desea proyectar. Entre sus temas encontramos el ganar ganar. el primero lleva por nombre otras metodologías.Para la segunda unidad de ingeniería de software analizaremos dos temas muy importantes.

Normalmente cliente y desarrollador entran en una negociación. pero esto es en un contexto ideal que rara vez ocurre. este modelo requiere fuertes habilidades de negociación. Las mejores negociaciones se fuerzan en obtener «Victoria & Victoria» (Win & Win).2. es decir que el cliente gane obteniendo el producto que lo satisfaga. El modelo Win-Win define un conjunto de actividades de negociación al principio de cada paso alrededor de la espiral. se definen las siguientes actividades: Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . en que simplemente se pregunta al cliente qué necesita y él proporciona la información para continuar. que tiene éxito cuando ambas partes ganan».2 OTRAS METODOLOGÍAS 2. etc. Evidentemente.2. rendimiento. se negocia coste frente a funcionalidad. El Modelo Espiral previo (clásico) sugiere la comunicación con el cliente para fijar los requisitos. y el desarrollador también gane consiguiendo presupuesto y fecha de entrega realista.1GANAR-GANAR (WIN & WIN) Una variante interesante del Modelo Espiral previamente visto es el «Modelo espiral Win-Win». calidad. «Es así que la obtención de requisitos requiere una negociación.

Determinación de «condiciones de victoria» de los directivos (saber qué necesitan y los satisface) 3. El modelo Win & Win hace énfasis en la negociación inicial. también introduce 3 hitos en el proceso llamados «puntos de fijación». 2.2 PROCESO UNIFICADO (UP) El Proceso Unificado de Desarrollo Software o simplemente Proceso Unificado es un marco de desarrollo de software que se caracteriza por estar dirigido por casos de uso. que ayudan a establecer la completitud de un ciclo de la espiral. 2. Identificación del sistema o subsistemas clave de los directivos (*) (saber qué quieren). Negociación de las condiciones «victoria» de los directivos para obtener condiciones «Victoria & Victoria» (negociar para que ambos ganen). y proporcionan hitos de decisión antes de continuar el proyecto de desarrollo del software. El refinamiento más conocido y documentado del Proceso Unificado es el Proceso Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . Directivo: Cliente escogido con interés directo en el producto.1. centrado en la arquitectura y por ser iterativo e incremental.2. que puede ser premiado por la organización si tiene éxito o criticado si no.

sino un marco de trabajo extensible que puede ser adaptado a organizaciones o proyectos específicos. Desde entonces los autores que publican libros sobre el tema y que no están afiliados a Rational utilizan el término Proceso Unificado. Por dicho motivo. también es un marco de trabajo extensible. El primer libro sobre el tema se denominó. mientras que los autores que pertenecen a Rational favorecen el nombre de Proceso Unificado de Rational. el Proceso Unificado de Rational.Unificado Rational o simplemente RUP. Características Iterativo e Incremental Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . También permite evitar problemas legales ya que Proceso Unificado de Rational o RUP son marcas registradas por IBM (desde su compra de Rational Software Corporation en 2003). en su versión española. El nombre Proceso Unificado se usa para describir el proceso genérico que incluye aquellos elementos que son comunes a la mayoría de los refinamientos existentes. El Proceso Unificado no es simplemente un proceso. los dos nombres suelen utilizarse para referirse a un mismo concepto.Grady Booch y James Rumbaugh. el Lenguaje Unificado de Modelado. conocidos también por ser los desarrolladores del UML. De la misma forma. por lo que muchas veces resulta imposible decir si un refinamiento particular del proceso ha sido derivado del Proceso Unificado o del RUP. El Proceso Unificado de Desarrollo de Software y fue publicado en 1999 por Ivar Jacobson.

El Proceso Unificado es un marco de desarrollo iterativo e incremental compuesto de cuatro fases denominadas Inicio. Dirigido por los casos de uso En el Proceso Unificado los casos de uso se utilizan para capturar los requisitos funcionales y para definir los contenidos de las iteraciones. Elaboración. Cada una de estas iteraciones se divide a su vez en una serie de disciplinas que recuerdan a las definidas en el ciclo de vida clásico o en cascada: Análisis de requisitos. el grado de esfuerzo dentro de cada una de ellas varía a lo largo del proyecto. Cada una de estas fases es a su vez dividida en una serie de iteraciones (la de inicio puede incluir varias iteraciones en proyectos grandes). Centrado en la arquitectura Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . Implementación y Prueba. Estas iteraciones ofrecen como resultado un incremento del producto desarrollado que añade o mejora las funcionalidades del sistema en desarrollo. prueba. implementación. el proceso dirigido por casos de uso es el rup. etc. Diseño. Aunque todas las iteraciones suelen incluir trabajo en casi todas las disciplinas. Construcción y Transición. La idea es que cada iteración tome un conjunto de casos de uso o escenarios y desarrolle todo el camino a través de las distintas disciplinas: diseño.

operación y evolución de aplicaciones de alta calidad en la World Wide Web. etc. Por dicho motivo existen múltiples modelos y vistas que definen la arquitectura de software de un sistema.3 INGENIERÍA WEB La ingeniería web es la aplicación de metodologías sistemáticas. Los resultados de cada iteración. disciplinadas y cuantificables al desarrollo eficiente. 2.2. La ingeniería 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 informacion en las diferentes áreas en que se presenta ha hecho que Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . fontanería. cuando construyes un edificio existen diversos planos que incluyen los distintos servicios del mismo: electricidad. Enfocado en los riesgos El Proceso Unificado requiere que el equipo del proyecto se centre en identificar los riesgos críticos en una etapa temprana del ciclo de vida.El Proceso Unificado asume que no existe un modelo único que cubra todos los aspectos del sistema. en especial los de la fase de Elaboración deben ser seleccionados en un orden que asegure que los riesgos principales son considerados primero. La analogía con la construcción es clara.

seguridad. para alcanzar el éxito en cualquier organización. este debe contar con ciertos atributos y características que en conjunto forman un concepto muy importante. Desde que esto empezó a suceder el internet se volvió más que una diversión y empezó a ser tomado más en serio. podría arrojar recomendaciones para introducir mejoras. a raíz de esto se crearon enfoques disciplinados. Dicho concepto es la calidad. es decir la calidad no podrá ser agregada a un artefacto web o a cualquier otro producto. si no que se deberá implementar durante todo el ciclo de vida del desarrollo. sistemáticos y metodologías Para garantizar el buen funcionamiento y mantenimiento de los sitios web. y la decisión final podría consistir en lanzar una nueva versión del sitio web o en modificar algunos atributos ausentes o pobremente diseñados. usabilidad. a esa misma se le debe planificar. mantenibilidad. hace posible por un lado la eficiencia del artefacto web y por ende la satisfacción del usuario final.las personas tiendan a realizar todas sus actividades por esta vía. ya que el aumento de publicaciones y de informaciones hizo que la Web se volviera como un desafío para los (Ingenieria de Software ) ingenieros del software. Cabe destacar que la ingeniería de la web hace una diferencia entre un Web Site y Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . herramienta. al final del proceso de desarrollo. Para finalizar el resultado de un proceso de calidad. navegabilidad. Pero para tener artefactos de calidad. y todo aquello que se pueda considerar como servicio. entre otros. que con atributos como. programar y controlar.

operación y evolución de aplicaciones de alta calidad en la World Wide Web. La ingeniería de la Web es multidisciplinar y aglutina contribuciones Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . implementación y evolución de dichas aplicaciones. y administradores de contenidos entre otras. ya que la ingeniería de la web no se dedica a la construcción de sitios web si no a la construcción de aplicaciones web la principal característica que los distingue (aplicaciones de sitios web) es que los sitios web son sitios en la web en donde se publica contenido generalmente estático o un muy bajo nivel de interactividad con el Usuario. técnicas y herramientas que se utilizan en el desarrollo de aplicaciones Web complejas y de gran dimensión en las que se apoya la evaluación. disciplinadas y cuantificables al desarrollo eficiente.una aplicación. desarrollo. Áreas El desarrollo de aplicaciones Web posee determinadas características que lo hacen diferente del desarrollo de aplicaciones o software tradicional y sistemas de información. diseño. mientras que las aplicaciones son lugares con alto contenido de interactividad y funcionalidades que bien podrían ser de un software convencional. En este sentido. Entonces la ingeniería de la Web es la aplicación de metodologías sistemáticas. la ingeniería de la Web hace referencia a las metodologías. la aplicación web más sencillo seria uno que contenga formularios y subiendo de nivel encontramos los que realizas conexión con bases de datos remotas.

despliegue de aplicaciones.  Herramientas CASE para aplicaciones web. los siguientes temas:  Diseño de procesos de negocio para aplicaciones web. diseño de interface de usuario.de diferentes áreas: arquitectura de la información. ingeniería de software ingeniería de datos. Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . operación de sistemas y gestión de proyectos La ingeniería de la Web no es un clon o subconjunto de la ingeniería de software aunque ambas incluyen desarrollo de software y programación. testeo. diseño gráfico y de presentación. metodologías. diseño y análisis de sistemas. pues a pesar de que la ingeniería de la Web utiliza principios de ingeniería de software. ingeniería de requisitos. usabilidad.  Generación de código para aplicaciones web.  Desarrollo web colaborativo. indexado y recuperación de información. ingeniería de hipermedia/hipertexto. técnicas. modelado y simulación. herramientas. incluye nuevos enfoques. entre otros. guías y patrones para cubrir los requisitos únicos de las aplicaciones web Los principales aspectos de la ingeniería de la Web incluyen.

 Pruebas de rendimiento de aplicaciones basadas en web.  Personalización y adaptación de aplicaciones web.  Herramientas de autor para contenido multimedia.  Diseño de modelos de datos para sistemas de información web. Modelado conceptual de aplicaciones web.  Aplicaciones para la web semántica  Factorías de software para la web.  Control de calidad y pruebas de sistemas. Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ .  Ingeniería web empírica.  Ingeniería de requisitos para aplicaciones web.  Herramientas y métodos de prototipado.  Entornos de desarrollo de aplicaciones web integrados.

Categorías Los sitios web pueden ser categorizados de la siguiente forma: Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . herramientas y automatización de pruebas para aplicaciones web.  Metodologías de diseño web  Formación en ingeniería de la web. estimación de costes y medición.  Aplicaciones web móviles y ubicuas.  Desarrollo y despliegue de servicios web.  Gestión de proyectos web y gestión de riesgos.  Diseño de interfaces de usuarios  Métricas para la web.  Accesibilidad para la web. Métodos.  Usabilidad de aplicaciones web.

en la forma como se va a presentar la información y que sea fácil de manejar para cualquier usuario. comentario y sugerencias.  Sitio con acceso de datos dinámicos aquí.  Sitio estático con formularios de entrada este sitio tiene las mismas características que el anterior. creando sitios dinámicos que sean compatibles con el entorno de navegación de cada usuario.  Aplicación de software basada en la Web este sitio puede tener todas las características antes mencionadas. además de las características antes mencionadas. adicionándole que él le permite a los usuarios la interacción por medio de cuestionarios. pero debe tener en cuenta la eficiencia y la confiabilidad. Sólo estático que se enfoca en la organización de la estructura y el contenido. pero logrando un parecido con una Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ .  Sitio creado dinámicamente en este sitio los requerimientos son parecidos pero deben suplir con las necesidades de cada usuario. cuenta con bases de datos en las cuales el usuario puede realizar consultas y búsquedas.

Actualmente la ingeniería web ha adoptado también metodologías de la ingeniería del software y ha creado muchas nuevas. hay que tener muy en cuenta aspectos sociales. ya que son construidas Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . social y vivencial es fácil visionar que cada una de las funciones que ella emana estarán siempre ligadas a la vanguardia del desarrollo progresivo de la tecnología y del hombre. Naturaleza multidisciplinaria La ingeniería de software. la ingeniería Web puede utilizar una parte de cada una de estas disciplinas y no ser dominada por puntos de vista muy particulares. Usualmente. así mismo teniendo en cuenta la importancia y aplicabilidad que tiene la ingeniería Web en nuestro desarrollo cognitivo. es una respuesta de carácter multidisciplinario para las aplicaciones Web. Todas estas consideraciones nos llevan a la conclusión de que un sitio web bien logrado no es únicamente un espacio en la red para ver el mismo comercial que en televisión. incluye nuevas metodologías de desarrollo esenciales para la administración de proyectos. jurídicos y eticos que pueden influir a la hora de la publicación. las aplicaciones web son multidisciplinares. Debido a que la información es publicada para conocimiento de todo el mundo.implementación cliente/servidor comúnmente conocido que a un sitio web estático. es en realidad una extensión de las empresas o instituciones. De acuerdo con esto.

permitiendo potencia aún más el desarrollo de software a gran escala. el retrasar las decisiones y la planificación adaptativa. mantenibles. donde los requerimientos son inestables. que nace como respuesta a los problemas detallados anteriormente y se basa en dos aspectos puntuales. En general. las comunidades de usuarios son más amplias que antes y la competición ahora es a nivel mundial. necesitan ser funcionales. 2. las aplicaciones web. Como resultado de esta nueva teoría se crea un Manifiesto Ágil1 cuyas principales ideas son: 1 Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . Como podemos ver.en un medio constantemente cambiante. escalables y seguras. la actual demanda de las aplicaciones web es totalmente diferente de las aplicaciones convencionales y por lo tanto hay una gran necesidad de la ingeniería web.4 Metodologías Ágiles Luego de varias opiniones tanto a favor como en contra de las metodologías tradicionales se genera un nuevo enfoque denominado. métodos ágiles. los equipos de desarrollo generalmente son pequeños.2.

 Es más importante crear un producto software que funcione que escribir documentación exhaustiva.  La capacidad de respuesta ante un cambio es más importante que el seguimiento estricto de un plan. Nos lo proponen porque para muchos clientes esta flexibilidad será una ventaja competitiva y porque estar preparados para el cambio significar reducir su coste. Estas metodologías ponen de relevancia que la capacidad de respuesta a un cambio es más importante que el seguimiento estricto de un plan. Scrum. Iconix. Entre los principales métodos ágiles tenemos el XP (eXtreme Programming). Los individuos y las interacciones entre ellos son más importantes que las herramientas y los procesos empleados.  La colaboración con el cliente debe prevalecer sobre la negociación de contratos. Retrasar las decisiones y Planificación Adaptativa Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . Cristal Methods. AUP entre otras.

estaremos transformando el proyecto en un conjunto de proyectos pequeños. además hacer una planificación adaptativa consiste en tomar decisiones a lo largo del proyecto.Es el eje en cual gira la metodología ágil. el retrasar las decisiones tan como sea posible de manera responsable será ventajoso tanto para el cliente como para la empresa. Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . A continuación se detalla el XP que es el más aceptado dentro del desarrollo de SW. lo cual permite siempre mantener una satisfacción en el cliente y por ende el éxito del producto. Esta planificación a corto plazo nos permitirá tener software disponible para nuestros clientes y además ir aprendiendo del feedback para hacer nuestra planificación más sensible.  Reduce el número de cambios necesario en el proyecto. las principales ventajas de retrasar las decisiones son:  Reduce el número de decisiones de alta inversión que se toman. sea ante inconvenientes que aceleren o retrasen nuestro producto.  Reduce el coste del cambio La planificación adaptativa permite estar preparados para el cambio ya que lo hemos introducido en nuestro proceso de desarrollo.

frecuentemente repetidas y automatizadas.  Programación por parejas: se recomienda que las tareas de desarrollo se lleven a cabo por dos personas en un mismo puesto. incluyendo priebas de regresion. La programación extrema se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad. inevitable e incluso deseable del desarrollo de proyectos. Los defensores de XP consideran que los cambios de requisitos sobre la marcha son un aspecto natural. Creen que ser capaz de adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto es una aproximación mejor y más realista que intentar definir todos los requisitos al comienzo del proyecto e invertir esfuerzos después en controlar los cambios en los requisitos. unas tras otras. Las características fundamentales del método son:   Desarrollo iterativo e incremental: pequeñas mejoras. Se supone que la Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . Pruebas Unitarias continuas. Se aconseja escribir el código de la prueba antes de la codificación.EXTREME PROGRAMMING (XP) Es la más destacada de los procesos agiles de desarrollo de software formulada por Kent Beck.

La Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . Las pruebas han de garantizar que en la refactorización no se ha introducido ningún fallo.es más importante que la posible pérdida de productividad inmediata.mayor calidad del código escrito de esta manera -el código es revisado y discutido mientras se escribe.  Propiedad del código compartida: en vez de dividir la responsabilidad en el desarrollo de cada módulo en grupos de trabajo distintos.  Frecuente interacción del equipo de programación con el cliente o usuario. reescribir ciertas partes del código para aumentar su legibilidad y mantenibilidad pero sin modificar su comportamiento.  Refactorizacion: del código. Se recomienda que un representante del cliente trabaje junto al equipo de desarrollo. es decir.  Corrección de todos los errores antes de añadir nueva funcionalidad. Cuando todo funcione se podrá añadir funcionalidad si es necesario. Hacer entregas frecuentes. este método promueve el que todo el personal pueda corregir y extender cualquier parte del proyecto. Las frecuentes pruebas de regresión garantizan que los posibles errores serán detectados.  Simplicidad en el código: es la mejor manera de que las cosas funcionen.

significa reducir su coste.programación extrema apuesta que en más sencillo hacer algo simple y tener un poco de trabajo extra para cambiarlo si se requiere. Vital para su negocio  Permitirá definir en cada iteración cuales son los objetivos de la siguiente  Permite tener realimentación de los usuarios muy útil. Con más comunicación resulta más fácil identificar qué se debe y qué no se debe hacer. lo que lleva a una comunicación más completa.  Planificación más transparente para nuestros clientes. Ventajas  Apropiado para entornos volátiles  Estar preparados para el cambio.  La presión está a lo largo de todo el proyecto y no en una entrega final Desventajas Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . menos tendrá que comunicar sobre este. especialmente si se puede reducir el equipo de programadores. conocen las fechas de entrega de funcionalidades. Mientras más simple es el sistema. que realizar algo complicado y quizás nunca utilizarlo. La simplicidad y la comunicación son extraordinariamente complementarias.

dirigido por Casos Las de tres Uso y es características un proceso fundamentales iterativo de e incremental. Además. El modelo estático es incrementalmente Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ .2. Está entre la complejidad de RUP y la simplicidad y pragmatismo de XP. Delimitar el alcance del proyecto con nuestro cliente Para mitigar esta desventaja se plantea definir un alcance a alto nivel basado en la experiencia. sin eliminar las tareas de análisis y diseño que XP no contempla. está adaptado a patrones y ofrece el soporte UML. ICONIX presenta claramente las actividades de cada fase y exhibe una secuencia de pasos que deben ser seguidos. ICONIX son: • Iterativo e incremental: varias interacciones ocurren entre el modelo del dominio y la identificación de los casos de uso.5 METODOLOGÍAS EMERGENTES ICONIX: El proceso ICONIX se define como un proceso de desarrollo de software práctico. que unifica un conjunto de métodos de orientación a objetos con el objetivo de abarcar todo el ciclo de vida de un proyecto. 2. Es un proceso simplificado en comparación con otros procesos más tradicionales.

diagramas de secuencia y de colaboración. limitado por los recursos a utilizar. así como tener Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ .refinado por los modelos dinámicos. El equipo de desarrollo es un factor clave. • Trazabilidad: cada paso está referenciado por algún requisito. por lo que se deben invertir esfuerzos en mejorar sus habilidades y destrezas. El desarrollo de software se considera un juego cooperativo de invención y comunicación. Se define la trazabilidad como la capacidad de seguir una relación entre los diferentes artefactos producidos • Dinámica del UML: la metodología ofrece un uso dinámico del UML como los diagramas del caso de uso. Las tareas que se realizan en la metodología ICONIX son: • Análisis de requisitos • Análisis y diseño preliminar • Diseño • Implementación CRYSTAL METHODOLOGIES: Se trata de un conjunto de metodologías para el desarrollo de software caracterizadas por estar centradas en las personas que componen el equipo y la reducción al máximo del número de artefactos producidos.

políticas de trabajo en equipo definidas. CRYSTAL CLEAR: Alistair Cockburn es el propulsor detrás de la serie de metodologías Crystal. estableciéndose una clasificación por colores. Otra de las cuestiones planteadas es la necesidad de disponer de un usuario real aunque sea de forma part time para realizar validaciones sobre la Interfase del Usuario y para participar en la definición de los requerimientos funcionales y no funcionales del software. y de forma muy liviana en relación a los entregables. Crystal maneja iteraciones cortas con feedback frecuente por parte de los usuarios/clientes. minimizando de esta forma la necesidad de productos intermedios. Crystal “Clear” es la encarnación más ágil de la serie y de la que más documentación se dispone. Estas políticas dependerán del tamaño del equipo. Las personas involucradas escogen aquellos principios que les resultan efectivos y mediante la aplicación de Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . La misma se define con mucho énfasis en la comunicación. y con cierta tolerancia que la hace ideal en los casos en que sea inaplicable la disciplina requerida por XP. por ejemplo Crystal Clear (3 a 8 miembros) y Crystal Orange (25 a 50 miembros). con gran énfasis en la comunicación. Una cuestión interesante que surge del análisis de la serie Crystal es el pragmatismo con que se customiza el proceso. Las mismas presentan un enfoque ágil.

Comunicación osmótica. Hablar cuando algo molesta: decirle amigablemente al manager que la agenda no es realista. expertos. Una reunión separada para que los concurrentes se concentren mejor es descrita como El Cono del Silencio. no se Fácil vea compelida a acceso hacer a otras cosas usuarios Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ incompatibles. pero puede ser diaria. eso se llama Experto al Alcance de la Oreja. cotejar notas. Todos juntos en el mismo cuarto. La frecuencia dependerá del proyecto. 5. Consiste en entregar software a los clientes con frecuencia. Lo primero debe venir de la comunicación sobre dirección y prioridades. 3. no solamente en compilar el código. Saber lo que se está haciendo y tener la tranquilidad y el tiempo para hacerlo. reflexionar. de un ambiente en que la gente 6. Una variante especial es disponer en la sala de un diseñador senior. 2. o a un colega que su código necesita mejorarse. o que sería conveniente que se bañase más seguido. típicamente con el Patrocinador Ejecutivo. . 4. Lo segundo.la metodología en diversos proyectos agregan o remueven principios en base al consenso Los grupal siete valores del o equipo propiedades de de Crystal desarrollo. Entrega frecuente. semanal o mensual. Clear son: 1. Mejora reflexiva. Tomarse un pequeño tiempo (unas pocas horas por algunas semanas o una vez al mes) para pensar bien qué se está haciendo. Foco. discutir. Seguridad personal.

Desarrollo de un modelo general 2. FDD está pensado para proyectos con tiempo de desarrollo relativamente cortos (menos de un año). Las iteraciones se deciden en base a features (de ahí el nombre del proceso) o funcionalidades. FDD : FDD es un proceso diseñado por Peter Coad.7. y construir el sistema de persistencia no tiene significado para el cliente. pero si lo tiene enviar pedido por e-mail. Muchos equipos ágiles compilan e integran varias veces al día. Un proyecto que sigue FDD se divide en 5 fases: 1. Construcción de la lista de funcionalidades 3. que son pequeñas partes del software con significado para el cliente. Así. aunque al seguir siendo un proceso ligero (en mi opinión. Ambiente técnico con prueba automatizada. Diseñar en base a las funcionalidades Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . management de configuración e integración frecuente. si tenemos que distinguir entre pesado/ligero) es más similar a este último. Se basa en un proceso iterativo con iteraciones cortas (~2 semanas) que producen un software funcional que el cliente y la dirección de la empresa pueden ver y monitorizar. Plan de relealses en base a las funcionalidades a implementar 4. construir el sistema de ventas es algo que requiere mucho tiempo. Erich Lefebvre y Jeff De Luca y se podría considerar a medio camino entre RUP y XP.

Al hacerlo en grupo se consigue que todos formen parte del proyecto y que los menos inexpertos aprendan de las discusiones de los más experimentados. se asignan las responsabilidades que todas las empresas exigen. aunque siempre habrá un responsable último (arquitecto jefe o jefe de programadores en función de la fase en que se encuentre). limitándose las primeras a un proceso de refinamiento. con mayor experiencia. Habrá también un programador jefe (normalmente el más experimentado) que hará las funciones de líder del grupo que implementa esa Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ funcionalidad. El trabajo (tanto de modelado como de desarrollo) se realiza en grupo. Las funcionalidades a implementar en una release se dividen entre los distintos subgrupos del equipo. Fases de FDD 4. Implementar en base a las funcionalidades 3. y al tener un responsable último. es por ello que en el equipo que implementa una funcionalidad dada deberán estar todos los dueños de las clases implicadas. solo quién las crea puede cambiarlas). Vista general de FDD Las primeras tres fases ocupan gran parte del tiempo en las primeras iteraciones. implementando distintas funcionalidades. Las clases escritas tienen propietario (es decir.5. y se procede a implementarlas. . pudiendo encontrarse un programador en varios grupos. siendo las dos últimas las que absorben la mayor parte del tiempo según va avanzando el proyecto. que tendrá la última palabra en caso de no llegar a un acuerdo.

colaboración y aprendizaje. Lleva los conceptos de los Sistemas Adaptativos Complejos al campo de la Ingeniería de Software en particular.En el proceso de implementar la funcionalidad también se contemplan como partes del mismo (en otros métodos se describen como actividades independientes) la preparación y ejecución de pruebas. El ciclo de vida de ASD propone tres fases esenciales: especulación. Software Development (ASD): Este proceso consiste en un cambio de filosofía en las organizaciones pasando de la transición del modelo Comando-Control al modelo liderazgo-Colaboración. FDD también define métricas para seguir el proceso de desarrollo de la aplicación. a realizar mejores estimaciones en proyectos Adaptive futuros. así como revisiones del código (para distribuir el conocimiento y aumentar la calidad) e integración de las partes que componen el software. El proyecto comienza con una fase de especulación en que se lleva a cabo la planificación tentativa del proyecto en función de las entregas que se Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . útiles para el cliente y la dirección de la empresa. Dada la complejidad inherente al software concluye que la aplicación de esta teoría es esencial para el nuevo escenario que plantea la economía global. y que pueden ayudar. además de para conocer el estado actual del desarrollo.

realizar pruebas de concepto. es aquella en la que se construye la funcionalidad definida durante la especulación. se entenderán viejas cuestiones. Durante cada iteración el equipo colabora intensamente para liberar la funcionalidad planificada. En cada iteración. consiste en la revisión de calidad que se realiza al final de cada ciclo. Colaborar. siguiendo de esta forma la línea de las metodologías ágiles respecto a la orientación a componentes. se aprenderán nuevas funcionalidades. En esta etapa se fija un rumbo determinado a ser seguido en el desarrollo.irán realizando. ASD no propone técnicas ni prescribe tareas al momento de llevar a cabo la construcción simplemente mencionando que todas las prácticas que sirvan para reforzar la colaboración serán preferidas. y cambiarán los requerimientos. También existe la posibilidad de explorar nuevas alternativas. Aprender. Las revisiones al diseño. al código o a las pruebas permitirán aprender sobre la Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . La siguiente fase del ciclo de vida. mediante los cuales se explora un modelo de la aplicación y se anotan los requerimientos de cambio del cliente. pudiendo eventualmente alterar el rumbo del proyecto profundamente. Para evaluar la calidad desde el punto de vista del cliente se sugieren utilizar grupos de enfoque en el cliente. ASD define un Componente como un grupo de funcionalidades o entregables a ser desarrollados durante un ciclo iterativo. sabiendo a partir de ese momento que no será el lugar en que finalizará el proyecto. La fase final de ASD.

esta es la etapa en que se evaluarán las exploraciones que se hayan realizado dando la capacidad de poder modificar la arquitectura del sistema si se ha encontrado algún camino que se ajusta mejor a lo que necesita el usuario o si han cambiado los requerimientos. En este caso. el énfasis estará puesto en aprender cuales han sido los errores o desvíos y poder resolverlos. Finalmente se puede afirmar que ASD es un marco filosófico basado en la teoría de Sistemas Adaptativos Complejos que permite encarar la construcción de software en forma ágil utilizando las prácticas que resulten convenientes en cada caso. Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ .3 REINGENIERÍA DEL SOFTWARE La ingeniería se produce en dos niveles distintos de abstracción. 2. la reingeniería examina los sistemas y aplicaciones de información con la intención de reestructurarlos o reconstruirlos de tal modo que muestren una mayor calidad. Asimismo. En el nivel del software. y no en encontrar culpables. En el nivel de negocios. En este sentido resulta similar a Scrum. la reingeniería se concentra en el proceso de negocios con la intención de efectuar cambios que mejoren la competitividad en algún aspecto de los negocios.calidad de los mismos.

La ingeniería directa. La estructuración de programas y datos. pero esto envejeciendo. La ingeniería inversa. Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . Proceso de la Reingeniería del Software Compara el análisis de inventarios. Se rompe con frecuencia. tarda en repararse y ya no representa la última tecnología.Tenga en consideración cualquier producto de tecnología que haya adquirido. La reestructuración de documentos. Lo ve con regularidad.

victoria victoria o win win. en la cual el cliente quede muy satisfecho con el producto que se le ofrece y la parte de ventas quede también satisfecha al momento de conseguir el presupuesto y tiempos de entrega adecuadamente establecidos. primero que nada en las negociaciones la mejor forma de combatir es lograr una buena negociación. entre sus características encontramos que es incremental y se divide en varias capas o fases. Otro tema que se del cual se hablo es la ingeniería web que es una variante de la software. También se centra en la arquitectura es decir trata de generar un modelo capaz de cubrir todos los aspectos del sistema. en cuanto a las metodologías sirven como una forma de crear procesos más confiados y sin riesgos. Por último la reingeniería de software nos da a entender como los sistemas están programados para cumplir un tiempo de vida y después si no requieren de una actualización pueden requerir de un cambio total al no ser ya compatibles con los nuevos sistemas o tecnologías salientes. Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ . Hacemos referencia al ganar ganar. El proceso unificado es un marco que se dirige por modelos de uso. solo que esta también hace requerimiento de sus propias herramientas y metodologías.CONCLUSIÓN Para concluir estos temas podemos decir que lo aprendido es mucho.

html Raúl Jesús Alejandro López 6 ‫سخيسو‬ ‫لوار‬ .blogspot.mx/2015/05/23-reingenieria-del-software.mx/ http://mapachessistec.com/lx_mrmeplpu7/221-ganar-ganar/ http://u2franciscohdezith.blogspot.REFERENCIAS BIBLIOGRÁFICAS https://prezi.