Вы находитесь на странице: 1из 34

INSTITUTO TECNOLGICO SUPERIOR DE FELIPE

CARRILLO PUERTO
UNIDAD ACADMICA TULUM
INGENIERA EN SISTEMAS COMPUTACIONALES
UNIDAD 2
INGENIERA DE SOFTWARE
ALUMNO: RAL JESS ALEJANDRO LPEZ
DOCENTE. ING. PAMELA YARELI PERERA MALDONADO
INVESTIGACION TEMAS 2.2 OTRAS METODOLOGAS Y
2.3 REINGENIERA DE SOFTWARE
24 DE FEBRERO 2016
Ral Jess Alejandro Lpez

NDICE
INTRODUCCIN................................................................................................... 3
2.2 OTRAS METODOLOGAS................................................................................ 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 INGENIERA WEB.................................................................................. 7
reas............................................................................................................ 8
Categoras........................................................................................................ 9
Ral Jess Alejandro Lpez

Naturaleza multidisciplinaria.........................................................................10
2.2.4 METODOLOGAS GILES.....................................................................11
2.2.5 METODOLOGAS EMERGENTES.............................................................15
2.3 REINGENIERA DEL SOFTWARE....................................................................21
CONCLUSIN..................................................................................................... 22
REFERENCIAS BIBLIOGRFICAS.........................................................................23

INTRODUCCIN

Ral Jess Alejandro Lpez

Para la segunda unidad de ingeniera de software analizaremos dos temas muy


importantes, el primero lleva por nombre otras metodologas. Entre sus temas
encontramos el ganar ganar, la ingeniera web en relacin a la de software,
metodologas agiles y emergentes y por ltimo la reingeniera de software. Todos
estos temas ayudaran a tener una visin ms clara de la materia y de cmo
podemos aplicar esos conocimientos en proyectos que elaboremos en un futuro.
Todos los temas en este documento de investigacin se encuentran resumidos
para tener una idea ms clara del mensaje que se desea proyectar, todos los
trminos que aparecen tienen una funcin especfica, pueden incluso alguno servir
como un marco de trabajo para realizar proyectos o dar soluciones a problemas de
carcter analtico en la ingeniera de software.

Ral Jess Alejandro Lpez

2.2 OTRAS METODOLOGAS


2.2.1GANAR-GANAR (WIN & WIN)
Una variante interesante del Modelo Espiral previamente visto es el Modelo
espiral Win-Win. El Modelo Espiral previo (clsico) sugiere la comunicacin con el
cliente para fijar los requisitos, en que simplemente se pregunta al cliente qu
necesita y l proporciona la informacin para continuar; pero esto es en un
contexto ideal que rara vez ocurre. Normalmente cliente y desarrollador entran en
una negociacin, se negocia coste frente a funcionalidad, rendimiento, calidad,
etc.
Es as que la obtencin de requisitos requiere una negociacin, que tiene xito
cuando

ambas

partes

ganan.

Las mejores negociaciones se fuerzan en obtener Victoria & Victoria (Win &
Win), es decir que el cliente gane obteniendo el producto que lo satisfaga, y el
desarrollador tambin gane consiguiendo presupuesto y fecha de entrega realista.
Evidentemente, este modelo requiere fuertes habilidades de negociacin.
El modelo Win-Win define un conjunto de actividades de negociacin al principio
de cada paso alrededor de la espiral; se definen las siguientes actividades:
Ral Jess Alejandro Lpez

1. Identificacin del sistema o subsistemas clave de los directivos (*) (saber


qu quieren).
2. Determinacin de condiciones de victoria de los directivos (saber qu
necesitan y los satisface)
3. Negociacin de las condiciones victoria de los directivos para obtener
condiciones Victoria & Victoria (negociar para que ambos ganen).
Directivo: Cliente escogido con inters directo en el producto, que puede ser
premiado

por

la

organizacin

si

tiene

xito

criticado

si

no.

El modelo Win & Win hace nfasis en la negociacin inicial, tambin introduce 3
hitos en el proceso llamados puntos de fijacin, que ayudan a establecer la
completitud de un ciclo de la espiral, y proporcionan hitos de decisin antes de
continuar

el

proyecto

de

desarrollo

del

software.

2.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, centrado en la arquitectura y por ser iterativo e incremental. El
refinamiento ms conocido y documentado del Proceso Unificado es el Proceso
Ral Jess Alejandro Lpez

Unificado

Rational

simplemente

RUP.

El Proceso Unificado no es simplemente un proceso, sino un marco de trabajo


extensible que puede ser adaptado a organizaciones o proyectos especficos. De
la misma forma, el Proceso Unificado de Rational, tambin es un marco de trabajo
extensible, por lo que muchas veces resulta imposible decir si un refinamiento
particular del proceso ha sido derivado del Proceso Unificado o del RUP. Por dicho
motivo, los dos nombres suelen utilizarse para referirse a un mismo concepto.
El nombre Proceso Unificado se usa para describir el proceso genrico que
incluye aquellos elementos que son comunes a la mayora de los refinamientos
existentes. Tambin 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). El primer libro sobre el tema se denomin, en su
versin espaola, El Proceso Unificado de Desarrollo de Software y fue publicado
en 1999 por Ivar Jacobson,Grady Booch y James Rumbaugh, conocidos tambin
por ser los desarrolladores del UML, el Lenguaje Unificado de Modelado. Desde
entonces los autores que publican libros sobre el tema y que no estn afiliados a
Rational utilizan el trmino Proceso Unificado, mientras que los autores que
pertenecen a Rational favorecen el nombre de Proceso Unificado de Rational.
Caractersticas
Iterativo e Incremental
Ral Jess Alejandro Lpez

El Proceso Unificado es un marco de desarrollo iterativo e incremental compuesto


de cuatro fases denominadas Inicio, Elaboracin, Construccin y Transicin. 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). Estas iteraciones ofrecen
como resultado un incremento del producto desarrollado que aade o mejora las
funcionalidades del sistema en desarrollo.
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 clsico o en cascada: Anlisis de
requisitos, Diseo, Implementacin y Prueba. Aunque todas las iteraciones suelen
incluir trabajo en casi todas las disciplinas, el grado de esfuerzo dentro de cada
una de ellas vara a lo largo del proyecto.
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. La idea es que cada
iteracin tome un conjunto de casos de uso o escenarios y desarrolle todo el
camino a travs de las distintas disciplinas: diseo, implementacin, prueba, etc. el
proceso dirigido por casos de uso es el rup.
Centrado en la arquitectura

Ral Jess Alejandro Lpez

El Proceso Unificado asume que no existe un modelo nico que cubra todos los
aspectos del sistema. Por dicho motivo existen mltiples modelos y vistas que
definen la arquitectura de software de un sistema. La analoga con la construccin
es clara, cuando construyes un edificio existen diversos planos que incluyen los
distintos servicios del mismo: electricidad, fontanera, etc.
Enfocado en los riesgos
El Proceso Unificado requiere que el equipo del proyecto se centre en identificar
los riesgos crticos en una etapa temprana del ciclo de vida. Los resultados de
cada iteracin, en especial los de la fase de Elaboracin deben ser seleccionados
en un orden que asegure que los riesgos principales son considerados primero.

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 informacion en las diferentes reas en que se presenta ha hecho que
Ral Jess Alejandro Lpez

las

personas

tiendan

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 (Ingenieria de
Software ) ingenieros del software, a raz de esto se crearon enfoques
disciplinados,

sistemticos

metodologas

Para garantizar el buen funcionamiento y mantenimiento de los sitios web, este


debe contar con ciertos atributos y caractersticas que en conjunto forman un
concepto muy importante, para alcanzar el xito en cualquier organizacin,
herramienta, y todo aquello que se pueda considerar como servicio. Dicho
concepto es la calidad, que con atributos como, usabilidad, navegabilidad,
seguridad, mantenibilidad, entre otros, hace posible por un lado la eficiencia del
artefacto

web

por

ende

la

satisfaccin

del

usuario

final.

Pero para tener artefactos de calidad, a esa misma se le debe planificar,


programar y controlar, es decir la calidad no podr ser agregada a un artefacto
web o a cualquier otro producto, al final del proceso de desarrollo, si no que se
deber implementar durante todo el ciclo de vida del desarrollo. Para finalizar el
resultado de un proceso de calidad, podra arrojar recomendaciones para
introducir mejoras, y la decisin final podra consistir en lanzar una nueva versin
del sitio web o en modificar algunos atributos ausentes o pobremente diseados.
Cabe destacar que la ingeniera de la web hace una diferencia entre un Web Site y
Ral Jess Alejandro Lpez

una aplicacin, ya que la ingeniera de la web no se dedica a la construccin de


sitios web si no a la construccin de aplicaciones web la principal caracterstica
que los distingue (aplicaciones de sitios web) es que los sitios web son sitios en la
web en donde se publica contenido generalmente esttico o un muy bajo nivel de
interactividad con el Usuario, mientras que las aplicaciones son lugares con alto
contenido de interactividad y funcionalidades que bien podran ser de un software
convencional, la aplicacin web ms sencillo seria uno que contenga formularios y
subiendo de nivel encontramos los que realizas conexin con bases de datos
remotas,

administradores

de

contenidos

entre

otras.

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.
reas
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
Ral Jess Alejandro Lpez

de

diferentes

reas:

arquitectura

de

la

informacin,

ingeniera

de

hipermedia/hipertexto, ingeniera de requisitos, diseo de interface 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

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

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.

Ral Jess Alejandro Lpez

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.

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.

Ral Jess Alejandro Lpez

Mtodos, herramientas y automatizacin de pruebas para aplicaciones web.

Aplicaciones web mviles y ubicuas.

Usabilidad de aplicaciones web.

Accesibilidad para la web.

Metodologas de diseo web

Formacin en ingeniera de la web.

Diseo de interfaces de usuarios

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:
Ral Jess Alejandro Lpez

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

Ral Jess Alejandro Lpez

implementacin cliente/servidor comnmente conocido que a un sitio web


esttico.
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
La ingeniera de software, incluye nuevas metodologas de desarrollo esenciales
para la administracin de proyectos. Actualmente la ingeniera web ha adoptado
tambin metodologas de la ingeniera del software y ha creado muchas nuevas.
Debido a que la informacin es publicada para conocimiento de todo el mundo,
hay que tener muy en cuenta aspectos sociales, jurdicos y eticos que pueden
influir a la hora de la publicacin. 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


Ral Jess Alejandro Lpez

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


Luego de varias opiniones tanto a favor como en contra de las metodologas
tradicionales se genera un nuevo enfoque denominado, mtodos giles, que
nace como respuesta a los problemas detallados anteriormente y se basa en dos
aspectos puntuales, el retrasar las decisiones y la planificacin adaptativa;
permitiendo potencia an ms el desarrollo de software a gran escala.

Como resultado de esta nueva teora se crea un Manifiesto gil1 cuyas principales
ideas son:

1
Ral Jess Alejandro Lpez

Los individuos y las interacciones entre ellos son ms importantes que las
herramientas y los procesos empleados.

Es ms importante crear un producto software que funcione que escribir


documentacin exhaustiva.

La colaboracin con el cliente debe prevalecer sobre la negociacin de


contratos.

La capacidad de respuesta ante un cambio es ms importante que el


seguimiento estricto de un plan.

Entre los principales mtodos giles tenemos el XP (eXtreme Programming),


Scrum, Iconix, Cristal Methods, AUP entre otras.
Estas metodologas ponen de relevancia que la capacidad de respuesta a un
cambio es ms 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.
Retrasar las decisiones y Planificacin Adaptativa

Ral Jess Alejandro Lpez

Es el eje en cual gira la metodologa gil, el retrasar las decisiones tan como sea
posible de manera responsable ser ventajoso tanto para el cliente como para la
empresa, lo cual permite siempre mantener una satisfaccin en el cliente y por
ende el xito del producto, las principales ventajas de retrasar las decisiones son:

Reduce el nmero de decisiones de alta inversin que se toman.


Reduce el nmero de cambios necesario en el proyecto.
Reduce el coste del cambio

La planificacin adaptativa permite estar preparados para el cambio ya que lo


hemos introducido en nuestro proceso de desarrollo, adems hacer una
planificacin adaptativa consiste en tomar decisiones a lo largo del proyecto,
estaremos transformando el proyecto en un conjunto de proyectos pequeos.
Esta planificacin a corto plazo nos permitir tener software disponible para
nuestros clientes y adems ir aprendiendo del feedback

para hacer nuestra

planificacin ms sensible, sea ante inconvenientes que aceleren o retrasen


nuestro producto. A continuacin se detalla el XP que es el ms aceptado dentro
del desarrollo de SW.
Ral Jess Alejandro Lpez

EXTREME PROGRAMMING (XP)


Es la ms destacada de los procesos agiles de desarrollo de software formulada
por Kent Beck. La programacin extrema se diferencia de las metodologas
tradicionales principalmente en que pone ms nfasis en la adaptabilidad que en
la previsibilidad.
Los defensores de XP consideran que los cambios de requisitos sobre la marcha
son un aspecto natural, inevitable e incluso deseable del desarrollo de proyectos.
Creen que ser capaz de adaptarse a los cambios de requisitos en cualquier punto
de la vida del proyecto es una aproximacin mejor y ms realista que intentar
definir todos los requisitos al comienzo del proyecto e invertir esfuerzos despus
en controlar los cambios en los requisitos.
Las caractersticas fundamentales del mtodo son:

Desarrollo iterativo e incremental: pequeas mejoras, unas tras otras.


Pruebas Unitarias

continuas, frecuentemente repetidas y automatizadas,

incluyendo priebas de regresion. Se aconseja escribir el cdigo de la


prueba antes de la codificacin.

Programacin por parejas: se recomienda que las tareas de desarrollo se


lleven a cabo por dos personas en un mismo puesto. Se supone que la

Ral Jess Alejandro Lpez

mayor calidad del cdigo escrito de esta manera -el cdigo es revisado y
discutido mientras se escribe- es ms importante que la posible prdida de
productividad inmediata.

Frecuente interaccin del equipo de programacin con el cliente o usuario. Se


recomienda que un representante del cliente trabaje junto al equipo de desarrollo.

Correccin de todos los errores antes de aadir nueva funcionalidad. Hacer


entregas frecuentes.

Refactorizacion: del cdigo, es decir, reescribir ciertas partes del cdigo


para aumentar su legibilidad y mantenibilidad pero sin modificar su
comportamiento. Las pruebas han de garantizar que en la refactorizacin
no se ha introducido ningn fallo.

Propiedad del cdigo compartida: en vez de dividir la responsabilidad en el


desarrollo de cada mdulo en grupos de trabajo distintos, este mtodo
promueve el que todo el personal pueda corregir y extender cualquier parte
del proyecto. Las frecuentes pruebas de regresin garantizan que los
posibles errores sern detectados.

Simplicidad en el cdigo: es la mejor manera de que las cosas funcionen.


Cuando todo funcione se podr aadir funcionalidad si es necesario. La

Ral Jess Alejandro Lpez

programacin extrema apuesta que en ms sencillo hacer algo simple y


tener un poco de trabajo extra para cambiarlo si se requiere, que realizar
algo complicado y quizs nunca utilizarlo.

La simplicidad y la comunicacin son extraordinariamente complementarias. Con


ms comunicacin resulta ms fcil identificar qu se debe y qu no se debe
hacer. Mientras ms simple es el sistema, menos tendr que comunicar sobre
este, lo que lleva a una comunicacin ms completa, especialmente si se puede
reducir el equipo de programadores.
Ventajas

Apropiado para entornos voltiles

Estar preparados para el cambio, significa reducir su coste.

Planificacin ms transparente para nuestros clientes, conocen las fechas de


entrega de funcionalidades. Vital para su negocio

Permitir definir en cada iteracin cuales son los objetivos de la siguiente

Permite tener realimentacin de los usuarios muy til.

La presin est a lo largo de todo el proyecto y no en una entrega final


Desventajas
Ral Jess Alejandro Lpez

Delimitar el alcance del proyecto con nuestro cliente

Para mitigar esta desventaja se plantea definir un alcance a alto nivel basado en la
experiencia.

2.2.5 METODOLOGAS EMERGENTES


ICONIX:
El proceso ICONIX se define como un proceso de desarrollo de software prctico.
Est entre la complejidad de RUP y la simplicidad y pragmatismo de XP, sin
eliminar

las

tareas

de

anlisis

diseo

que

XP

no

contempla.

Es un proceso simplificado en comparacin con otros procesos ms tradicionales,


que unifica un conjunto de mtodos de orientacin a objetos con el objetivo de
abarcar todo el ciclo de vida de un proyecto. ICONIX presenta claramente las
actividades de cada fase y exhibe una secuencia de pasos que deben ser
seguidos. Adems, est adaptado a patrones y ofrece el soporte UML, dirigido por
Casos
Las

de
tres

Uso

es

caractersticas

un

proceso

fundamentales

iterativo
de

incremental.

ICONIX

son:

Iterativo e incremental: varias interacciones ocurren entre el modelo del dominio


y la identificacin de los casos de uso. El modelo esttico es incrementalmente
Ral Jess Alejandro Lpez

refinado

por

los

modelos

dinmicos.

Trazabilidad: cada paso est referenciado por algn requisito. Se define la


trazabilidad como la capacidad de seguir una relacin entre los diferentes
artefactos

producidos

Dinmica del UML: la metodologa ofrece un uso dinmico del UML como los
diagramas del caso de uso, diagramas de secuencia y de colaboracin.
Las tareas que se realizan en la metodologa ICONIX son:
Anlisis de requisitos
Anlisis y diseo preliminar
Diseo
Implementacin

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. 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
Ral Jess Alejandro Lpez

polticas de trabajo en equipo definidas. Estas polticas dependern del tamao del
equipo, establecindose una clasificacin por colores, por ejemplo Crystal Clear (3
a

miembros)

Crystal

Orange

(25

50

miembros).

CRYSTAL

CLEAR:

Alistair Cockburn es el propulsor detrs de la serie de metodologas Crystal. Las


mismas presentan un enfoque gil, con gran nfasis en la comunicacin, y con
cierta tolerancia que la hace ideal en los casos en que sea inaplicable la disciplina
requerida por XP. Crystal Clear es la encarnacin ms gil de la serie y de la que
ms documentacin se dispone. La misma se define con mucho nfasis en la
comunicacin, y de forma muy liviana en relacin 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. 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 definicin de los requerimientos
funcionales

no

funcionales

del

software.

Una cuestin interesante que surge del anlisis de la serie Crystal es el


pragmatismo con que se customiza el proceso. Las personas involucradas
escogen aquellos principios que les resultan efectivos y mediante la aplicacin de
Ral Jess Alejandro Lpez

la metodologa en diversos proyectos agregan o remueven principios en base al


consenso
Los

grupal

siete

valores

del
o

equipo

propiedades

de

de

Crystal

desarrollo.
Clear

son:

1. Entrega frecuente. Consiste en entregar software a los clientes con frecuencia,


no solamente en compilar el cdigo. La frecuencia depender del proyecto, pero
puede

ser

diaria,

semanal

mensual.

2. Comunicacin osmtica. Todos juntos en el mismo cuarto. Una variante especial


es disponer en la sala de un diseador senior; eso se llama Experto al Alcance de
la Oreja. Una reunin separada para que los concurrentes se concentren mejor es
descrita

como

El

Cono

del

Silencio.

3. Mejora reflexiva. Tomarse un pequeo tiempo (unas pocas horas por algunas
semanas o una vez al mes) para pensar bien qu se est haciendo, cotejar notas,
reflexionar,

discutir.

4. Seguridad personal. Hablar cuando algo molesta: decirle amigablemente al


manager que la agenda no es realista, o a un colega que su cdigo necesita
mejorarse,

que

sera

conveniente

que

se

baase

ms

seguido.

5. Foco. Saber lo que se est haciendo y tener la tranquilidad y el tiempo para


hacerlo. Lo primero debe venir de la comunicacin sobre direccin y prioridades,
tpicamente con el Patrocinador Ejecutivo. Lo segundo, de un ambiente en que la
gente
6.

no

se
Fcil

vea

compelida

acceso

hacer
a

otras

cosas

usuarios

Ral Jess Alejandro Lpez

incompatibles.
expertos.

7. Ambiente tcnico con prueba automatizada, management de configuracin e


integracin frecuente. Muchos equipos giles compilan e integran varias veces al
da.
FDD

FDD es un proceso diseado por Peter Coad, Erich Lefebvre y Jeff De Luca y se
podra considerar a medio camino entre RUP y XP, aunque al seguir siendo un
proceso ligero (en mi opinin, si tenemos que distinguir entre pesado/ligero) es
ms similar a este ltimo. FDD est pensado para proyectos con tiempo de
desarrollo relativamente cortos (menos de un ao). Se basa en un proceso
iterativo con iteraciones cortas (~2 semanas) que producen un software funcional
que el cliente y la direccin de la empresa pueden ver y monitorizar.
Las iteraciones se deciden en base a features (de ah el nombre del proceso) o
funcionalidades, que son pequeas partes del software con significado para el
cliente. As, construir el sistema de ventas es algo que requiere mucho tiempo, y
construir el sistema de persistencia no tiene significado para el cliente, pero si lo
tiene enviar pedido por e-mail.
Un proyecto que sigue FDD se divide en 5 fases:
1. Desarrollo de un modelo general
2. Construccin de la lista de funcionalidades
3. Plan de relealses en base a las funcionalidades a implementar
4. Disear en base a las funcionalidades
Ral Jess Alejandro Lpez

5. Implementar en base a las funcionalidades


3. Fases de FDD
4. Vista general de FDD
Las primeras tres fases ocupan gran parte del tiempo en las primeras iteraciones,
siendo las dos ltimas las que absorben la mayor parte del tiempo segn va
avanzando el proyecto, limitndose las primeras a un proceso de refinamiento.
El trabajo (tanto de modelado como de desarrollo) se realiza en grupo, aunque
siempre habr un responsable ltimo (arquitecto jefe o jefe de programadores en
funcin de la fase en que se encuentre), con mayor experiencia, que tendr la
ltima palabra en caso de no llegar a un acuerdo. Al hacerlo en grupo se consigue
que todos formen parte del proyecto y que los menos inexpertos aprendan de las
discusiones de los ms experimentados, y al tener un responsable ltimo, se
asignan

las

responsabilidades

que

todas

las

empresas

exigen.

Las funcionalidades a implementar en una release se dividen entre los distintos


subgrupos del equipo, y se procede a implementarlas. Las clases escritas tienen
propietario (es decir, solo quin las crea puede cambiarlas), es por ello que en el
equipo que implementa una funcionalidad dada debern estar todos los dueos de
las clases implicadas, pudiendo encontrarse un programador en varios grupos,
implementando distintas funcionalidades. Habr tambin un programador jefe
(normalmente el ms experimentado) que har las funciones de lder del grupo
que

implementa

esa

Ral Jess Alejandro Lpez

funcionalidad.

En el proceso de implementar la funcionalidad tambin se contemplan como


partes

del

mismo

(en

otros

mtodos

se

describen

como

actividades

independientes) la preparacin y ejecucin de pruebas, as como revisiones del


cdigo (para distribuir el conocimiento y aumentar la calidad) e integracin de las
partes

que

componen

el

software.

FDD tambin define mtricas para seguir el proceso de desarrollo de la aplicacin,


tiles para el cliente y la direccin de la empresa, y que pueden ayudar, adems
de para conocer el estado actual del desarrollo, a realizar mejores estimaciones en
proyectos

Adaptive

futuros.

Software

Development

(ASD):

Este proceso consiste en un cambio de filosofa en las organizaciones pasando de


la transicin del modelo Comando-Control al modelo liderazgo-Colaboracin. Lleva
los conceptos de los Sistemas Adaptativos Complejos al campo de la Ingeniera de
Software en particular. Dada la complejidad inherente al software concluye que la
aplicacin de esta teora es esencial para el nuevo escenario que plantea la
economa

global.

El ciclo de vida de ASD propone tres fases esenciales: especulacin, colaboracin


y aprendizaje. El proyecto comienza con una fase de especulacin en que se lleva
a cabo la planificacin tentativa del proyecto en funcin de las entregas que se
Ral Jess Alejandro Lpez

irn realizando. En esta etapa se fija un rumbo determinado a ser seguido en el


desarrollo, sabiendo a partir de ese momento que no ser el lugar en que
finalizar el proyecto. En cada iteracin, se aprendern nuevas funcionalidades, se
entendern

viejas

cuestiones,

cambiarn

los

requerimientos.

La siguiente fase del ciclo de vida, Colaborar, es aquella en la que se construye la


funcionalidad definida durante la especulacin. ASD define un Componente como
un grupo de funcionalidades o entregables a ser desarrollados durante un ciclo
iterativo. Durante cada iteracin el equipo colabora intensamente para liberar la
funcionalidad planificada. Tambin existe la posibilidad de explorar nuevas
alternativas, realizar pruebas de concepto, pudiendo eventualmente alterar el
rumbo del proyecto profundamente. ASD no propone tcnicas ni prescribe tareas
al momento de llevar a cabo la construccin simplemente mencionando que todas
las prcticas que sirvan para reforzar la colaboracin sern preferidas, siguiendo
de esta forma la lnea de las metodologas giles respecto a la orientacin a
componentes.
La fase final de ASD, Aprender, consiste en la revisin de calidad que se realiza al
final

de

cada

ciclo.

Para evaluar la calidad desde el punto de vista del cliente se sugieren utilizar
grupos de enfoque en el cliente, mediante los cuales se explora un modelo de la
aplicacin

se

anotan

los

requerimientos

de

cambio

del

cliente.

Las revisiones al diseo, al cdigo o a las pruebas permitirn aprender sobre la


Ral Jess Alejandro Lpez

calidad de los mismos. En este caso, el nfasis estar puesto en aprender cuales
han sido los errores o desvos y poder resolverlos, y no en encontrar culpables.
Asimismo, esta es la etapa en que se evaluarn las exploraciones que se hayan
realizado dando la capacidad de poder modificar la arquitectura del sistema si se
ha encontrado algn camino que se ajusta mejor a lo que necesita el usuario o si
han

cambiado

los

requerimientos.

Finalmente se puede afirmar que ASD es un marco filosfico basado en la teora


de Sistemas Adaptativos Complejos que permite encarar la construccin de
software en forma gil utilizando las prcticas que resulten convenientes en cada
caso. En este sentido resulta similar a Scrum.

2.3 REINGENIERA DEL SOFTWARE

La ingeniera se produce en dos niveles distintos de abstraccin. En el nivel de


negocios, la reingeniera se concentra en el proceso de negocios con la intencin
de efectuar cambios que mejoren la competitividad en algn aspecto de los
negocios. En el nivel del software, la reingeniera examina los sistemas y
aplicaciones de informacin con la intencin de reestructurarlos o reconstruirlos de
tal modo que muestren una mayor calidad.

Ral Jess Alejandro Lpez

Tenga en consideracin cualquier producto de tecnologa que haya adquirido. Lo


ve con regularidad, pero esto envejeciendo. Se rompe con frecuencia, tarda en
repararse y ya no representa la ltima tecnologa.
Proceso de la Reingeniera del Software
Compara el anlisis de inventarios.
La reestructuracin de documentos.
La ingeniera inversa.
La estructuracin de programas y datos.
La ingeniera directa.

Ral Jess Alejandro Lpez

CONCLUSIN

Para concluir estos temas podemos decir que lo aprendido es mucho, primero que
nada en las negociaciones la mejor forma de combatir es lograr una buena
negociacin, en la cual el cliente quede muy satisfecho con el producto que se le
ofrece y la parte de ventas quede tambin satisfecha al momento de conseguir el
presupuesto y tiempos de entrega adecuadamente establecidos. Hacemos
referencia al ganar ganar, victoria victoria o win win. El proceso unificado es un
marco que se dirige por modelos de uso, entre sus caractersticas encontramos
que es incremental y se divide en varias capas o fases. Tambin se centra en la
arquitectura es decir trata de generar un modelo capaz de cubrir todos los
aspectos del sistema. Otro tema que se del cual se hablo es la ingeniera web que
es una variante de la software, solo que esta tambin hace requerimiento de sus
propias herramientas y metodologas, en cuanto a las metodologas sirven como
una forma de crear procesos ms confiados y sin riesgos.
Por ltimo la reingeniera de software nos da a entender como los sistemas estn
programados para cumplir un tiempo de vida y despus si no requieren de una
actualizacin pueden requerir de un cambio total al no ser ya compatibles con los
nuevos sistemas o tecnologas salientes.
Ral Jess Alejandro Lpez

REFERENCIAS BIBLIOGRFICAS

https://prezi.com/lx_mrmeplpu7/221-ganar-ganar/
http://u2franciscohdezith.blogspot.mx/
http://mapachessistec.blogspot.mx/2015/05/23-reingenieria-del-software.html

Ral Jess Alejandro Lpez

Вам также может понравиться