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

Universidad Nacional del

Altiplano Puno

Facultad De Ingeniera Mecnica


Elctrica, Electrnica Y Sistemas
Escuela Profesional De Ingeniera De
Sistemas

Ingeniera de Software
Monografa: Desarrollo
Software
Docente:

Adaptativo

Ing. Elmer COYLA IDME

Alumnos: ROMERO ALMONTE, Yoel


Diomedez
VARGAS CAMACHO, Juan Carlos

Puno

Per

de

2015
Desarrollo adaptativo de software
I.

Breve Historia
Para muchas personas el software son solo programas de
computadora, sin embargo nos comenta que son todos aquellos
documentos asociados a la configuracin de datos que se necesitan
para hacer que estos programas operen de manera adecuada. Estos
productos de software se desarrollan para algn cliente en particular
o para un mercado en general. Para el diseo y desarrollo de
proyectos de software se aplican metodologas, modelos y tcnicas
que permiten resolver los problemas. En los aos 50 no existan
metodologas de desarrollo, el desarrollo estaba a cargo de los
propios programadores. De ah la importancia de contar con analistas
y diseadores que permitieran un anlisis adecuado de las
necesidades que se deberan de implementar.
Aun as los resultados eran impredecibles, no se saba la fecha
exacta en que concluira un proyecto de software, no haba forma de
controlar las actividades que se estaban desarrollando. Tampoco se
contaba con documentacin estandarizada. El nacimiento de
tcnicas estructuradas es lo que da origen al desarrollo de
aplicaciones a travs de mtodos de ingeniera. La informtica aporta
herramientas y procedimientos que se apoyan en la ingeniera de
software con el fin de mejorar la calidad de los productos de
software, aumentar la productividad y trabajo de los ingenieros
desarrolladores de software, facilitar el control del proceso de
desarrollo de software y suministrar a los desarrolladores las bases
para construir software de alta calidad en una forma eficiente.
El objetivo principal que busca la ingeniera de software es convertir
el desarrollo de software en un proceso formal, con resultados
predecibles, que permitan obtener un producto final de alta calidad y
satisfaga las necesidades y expectativas del cliente. A partir de aqu
nacen muchas modelos y metodologas para el desarrollo de
software.
El desarrollo adaptativo de software ASD (por sus siglas en ingls)
fue creada por Jim Highsmith en 1998 como una metodologa para
desarrollar software y sistemas complejos, que se describe en su
libro de 1999 Adaptive Software Development. Un enfoque de
desarrollo gil y adaptativo basado en la colaboracin es " una fuente
de orden en las complejas interacciones entre disciplina e
ingeniera".

1) Especulacin; en esta fase se inicia el proyecto y se conduce


el ciclo adaptativo de planeacin. Este ltimo utiliza
informacin de inicio del proyecto, es decir, el enunciado de la
misin del cliente, restricciones del proyecto y los requisitos
bsicos. Esto permite definir el conjunto de ciclos de
lanzamiento que se requerirn para el proyecto.
2) Colaboracin; la gente motivada trabaja de una forma que
multiplica su talento y sus salidas creativas ms all de sus
nmeros absolutos. Este enfoque de colaboracin es un tema
recurrente en todos los mtodos giles, pero la cooperacin
no es fcil. No solamente es la comunicacin, o que la
comunicacin es parte de ella. No slo es un asunto de trabajo
en equipo, aunque un equipo cuajado es esencial para la
presencia de la colaboracin real. No es un rechazo al
individualismo ya que la creatividad individual representa un
papel importante en el pensamiento de colaboracin. Esto es,
por encima de todo, una cuestin de confianza. Las personas
que trabajan juntas deben confiar entre s para:
a) Criticar de forma constructiva
b) Ayudar sin resentimientos
c) Trabajar ms duro de lo que ya lo hace
d) Tener el conjunto de actitudes para contribuir al trabajo
curso
e) Comunicar los problemas o preocupaciones en una
forma que conduzca a la accin efectiva
3) Aprendizaje; como miembros de un equipo de DAS se
comienzan a desarrollar los componentes integrantes de un
ciclo adaptativo, la importancia radica en el aprendizaje y en el
progreso a travs de un ciclo completo. De hecho Highsmith
argumenta que los desarrolladores de software a menudo
sobreestima su comprensin (de la tecnologa, el proceso y el
proyecto), y que el aprendizaje les podr ayudar a mejorar su
grado de entendimiento real. Los equipos del DAS aprenden
de tres maneras:
a) Grupos enfocados. El cliente o los usuarios finales
proporcionan retroalimentacin sobre los incrementos de
software que se entregan. Esto indica en forma directa la
satisfaccin o la insatisfaccin de las necesidades del
negocio.

b) Revisiones tcnicas formales. Los miembros del equipo


del DAS revisan los componentes del software
desarrollado mientras mejoran su calidad y su aprendizaje.

c) Post mortem. El equipo de DAS se vuelve introspectivo al


vigilar su propio desempeo y proceso con el propsito de
aprender acerca de su enfoque y despus mejorarlo.

Es importante destacar que la filosofa del DAS es meritoria sin


importar el modelo del proceso empleado. La dinmica de la
organizacin propia los equipos, la colaboracin interpersonal y el
aprendizaje individual conducen a los grupos de proyectos de
software con una mayor posibilidad de xito.
Los apoyos filosficos del ASD se enfocan en la colaboracin
humana y la organizacin propia del equipo.

II.

Definiciones
Los procesos de desarrollo del software basados en una completa
especificacin de los requerimientos, diseo, construccin y pruebas
del sistema no se ajustan al desarrollo rpido de aplicaciones.
Cuando los requerimientos cambian o se descubren problemas con
ellos, el diseo o implementacin del sistema se tiene que volver a
realizar o probar. Como consecuencia, normalmente se prolonga en
el tiempo un proceso en cascada convencional y el software definitivo
se entrega mucho tiempo despus al cliente con el que inicialmente
se pact. En un entorno de negocios tan cambiante, esto puede
causar verdaderos problemas. Para cuando est disponible el
software, la razn original de su adquisicin puede ser que haya
cambiado de forma radical que en realidad ste sea intil.
Actualmente los negocios operan en un entorno global que cambia
rpidamente. Tienen que responder a nuevas oportunidades y
mercados, condiciones econmicas cambiantes y la aparicin de
productos y servicios competidores. El software es parte de casi
todas las operaciones de negocio, por lo que es fundamental que el
software nuevo se desarrolle rpidamente para aprovechar nuevas
oportunidades y responder a la presin competitiva. Actualmente el
desarrollo y entrega de manera rpida son los requerimientos ms
crticos de los sistemas. De hecho, muchas organizaciones estn
dispuestas a obtener una prdida en la calidad del software y en el
compromiso sobre los requerimientos en favor de una entrega rpida
del software. Esta entrega rpida del software necesita otra
metodologa llamada Desarrollo de Software Ligeras, que luego
fueron llamadas giles.

Dicha metodologa combina una filosofa y un conjunto de directrices


de desarrollo. La filosofa busca la satisfaccin del cliente y la
entrega temprana de software incremental, equipos pequeos con
alta motivacin, mtodos informales y una simplicidad general del
desarrollo. Los procesos de desarrollo rpido de software estn
diseados para producir software til de forma rpida. Generalmente,
son procesos interactivos en los que se entrelazan la especificacin,
el diseo, el desarrollo y las pruebas.
Como habamos dicho Jim Highsmith es la mente detrs de este
proceso gil. ASD consiste en un cambio de filosofa en las
organizaciones pasando de la transicin del modelo ComandoControl al modelo Liderazgo-Colaboracin. Basado en los conceptos
de los Sistemas Adaptativos Complejos relacionada con la
Inteligencia Artificial, Highsmith lleva los mismos 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.
Barry Boehm indica que las actividades se conforman en una espiral,
en la que cada bucle o iteracin representa un conjunto de
actividades. Las actividades no estn fijadas a ninguna prioridad,
sino que las siguientes se eligen en funcin del anlisis de riesgo,
comenzando por el bucle interior.
Sin embargo, Ikujiro Nonaka e Hirotaka Takeuchi, definen a los
marcos de desarrollo giles denotan, adoptar una estrategia de
desarrollo incremental, en lugar de la planificacin y ejecucin
completa del producto.
Basar la calidad del resultado ms en el conocimiento tcito de las
personas en equipos auto-organizados, que en la calidad de los
procesos empleados. Junto con el solapamiento de las diferentes
fases del desarrollo, en lugar de realizar una tras otra en un ciclo
secuencial o de cascada.
Por otro lado, Kent Beck, nos dice que una metodologa gil se debe
basar en los valores de simplicidad, comunicacin, retroalimentacin
(feedback) coraje y respeto.
Con estos valores 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.
Al final tendremos un ciclo basado en Deming, el cual tendr
comenzar por hacer un cambio en el modelo de desarrollo
determinista, tomado dicho ciclo, en que se aplica la secuencia
Planificar-Ejecutar-Evaluar. Tal esquema es llevado a la prctica con

el modelo en cascada, en que se realiza una precisa planificacin


inicial mediante el WBS, el Gantt, y el Pert definiendo las tareas a
realizar en detalle, luego se tiene las fases de construccin, y
finalmente, se tiene el testing que brinda el feedback en relacin al
producto construido.

III.

Fases

Caractersticas

Highsmith argumenta que un enfoque de desarrollo adaptativo


basado en la colaboracin es tanto una fuente de orden en nuestras
complejas interacciones, como de disciplina e ingeniera. El define
un ciclo de vida del ASD que incorpora tres fases: especulacin,
colaboracin y aprendizaje.

Especulacin, se inicia el proyecto y se lleva a cabo la planeacin


adaptativa del ciclo. La especulacin emplea la informacin de inicio
del proyecto, enunciado de misin de los clientes, restricciones del
proyecto y requerimientos bsicos para definir el conjunto de ciclos
de entrega (incrementos de software) que se requerirn para el
proyecto
Colaboracin, las personas motivadas la usan de manera que
multiplica su talento y produccin creativa, sin embargo, la
colaboracin no es fcil, incluye la comunicacin y el trabajo en
equipo, pero tambin resalta el individualismo porque la creatividad
individual desempea un papel importante en el pensamiento
colaborativo. Es cuestin, sobre todo de confianza.
Aprendizaje, conforme los miembros de un equipo ASD comienzan a
desarrollar los componentes que forman parte de un ciclo adaptativo,
el nfasis se traslada al aprendizaje de todo lo que hay en avance
hacia la terminacin del ciclo.
En resumen tendramos la figura siguiente; en la cual se puede ver el
detalle interno de cada fase como ya fue explicado, mostrndose con
una flecha que trasciende las tres fases en sentido inverso, el bucle
de aprendizaje. Este bucle es algo crtico para ASD ya que denota un
cambio en el esquema tradicional de la vista de un sistema en que se

tena un bucle de control para detectar diferencias y corregirlas. Es


decir, en las metodologas tradicionales las diferencias respecto a lo
planificado eran vistas como errores que deban ser enmendados
para que cumplieran lo pautado. ASD y las metodologas giles
plantean la necesidad de que el feedback necesario sea para
aprender, nos da la posibilidad de entender ms respecto al dominio
y construir la aplicacin que mejor satisfaga las necesidades del
cliente. Highsmith lo expone claramente en la siguiente frase:

IV.

Ventajas y Desventajas
Ventajas Desventajas

Se utiliza para poder aprender

Los errores y cambios que no


son
detectados
con
anterioridad afectan la calidad
del producto y su costo total.

Ya
que
esta
es
una
metodologa gil, no permite
realizar procesos que son
requeridos
en
las
metodologas tradicionales.

de los errores e iniciar


nuevamente el ciclo de
desarrollo.
Utiliza informacin disponible

acerca de todos los cambios


para poder mejorar el
comportamiento del Software.
Difunde la colaboracin de

distintas personas.

V.

Casos de xito
Uno de los casos ms notables del xito de esta metodologa en el
mundo actual es en el de las telecomunicaciones. A pesar de que la
tecnologa aqu empleada no cumple con los sueos y visiones de los
hombres de antes, se tiene un acercamiento cada vez ms cercano a
las visiones e imaginaciones de los mismos realizadores de pelculas
futuristas de los aos 70. Una gran desventaja que se tiene es el
cambio relativamente brusco de la tecnologa en estos das. Se tiene
as que pues mientras tengamos una computadora de cinco ncleos
de procesamiento, maana saldr una de once. Dejando, no tanto
como obsoleta nuestra mquina sino que esta pasar a ser una que
ya no est en el filo de la tecnologa de la noche a la maana. Lo
mismo pasa con los celulares, tablets, y dems artefactos de
tecnologa que tengamos. Pasarn a la historia de la noche a la
maana.
Esto hace que nuestro mundo cambiante, sea netamente
impredecible, pues por ms actualizados que seamos en este tema
de la tecnologa, no podremos estar al tanto de lo que cada compaa
tecnolgica haga. Por ende, al desarrollar un sistema, y que este
cumpla con los requerimientos que satisfagan al cliente, sea en la
tecnologa que apliquemos, necesitamos estar frente al cambio no
como un objeto evolutivo, ms sino como uno adaptable. Es en esto
que debemos de someternos al cambio y a la metamorfosis constante
de la tecnologa sin sufrir prdidas. Esto nos lleva a que la idea de un
software que desarrollemos no cambie segn el tiempo, sino esta se
mantenga y mediante los componentes necesarios sea lo
suficientemente flexible y logre adaptarse netamente a los cambios
que el maana depare.
Los casos de xito que se tiene en la aplicacin de esta metodologa
es los sitemas operativos Android y de iPhone, siendo el primero el
que mayor adaptabilidad ha sufrido, debido a que al ser ms aplicado
a dispositivos mviles, necesitar ser ms adaptable, ya que la
tecnologa en estos dispositivos como fue mencionado anteriormente
est disparada.
Citando el siguiente prrafo de Metodologa de desarrollo gil para
sistemas mviles Introduccin al desarrollo con Android y el iPhone
(Paco Blanco, Julio Camarero,etc.), tenemos, que a medida que el
negocio de las aplicaciones mviles se va expandiendo y hacindose
rentable, se tienen que investigar las metodologas ptimas de
desarrollo software para tales aplicaciones y entornos que lleven
dicho desarrollo a xito de una forma tractiva y eficiente; todo esto
antes de que sea demasiado tarde y que el mercado est tan maduro
que las empresas hayan optado por las metodologas ya
implementadas de software tradicional. Aunque stas difieran
bastante de las metodologas necesarias debido a que el software

mvil debe satisfacer requerimientos y restricciones especiales. A


pesar de estas caractersticas tan especiales, el software producido
debe exigir un alto nivel de calidad para que este puede operar
propiamente en la cantidad ingente de terminales que llenan el
mercado actual y el venidero. El desarrollador de aplicaciones mviles
se enfrenta, adems, con un escenario muy fragmentado, formado
por multitud de plataforma incompatibles, como Symbian, Windows
Mobile, Brew, iPhone SDK, Android, Linux o Java. Todo esto hace que
el proceso de desarrollo para plataformas mviles sea ms complejo.
Entonces es entendido que es necesario no un cambio de una idea,
sino, su adaptacin al cambiante mundo tecnolgico hoy en da.
Otro ejemplo dado es el del caso del navegador Opera. Opera es un
navegador web creado por la empresa noruega Opera Software, que
e usa el motor de renderizado Blink. Este navegador tiene versiones
para computadoras de escritorio, telfonos mviles y tabletas. Los
sistemas operativos compatibles con Opera de escritorio son
Microsoft Windows, Mac OS X y GNU/Linux (Ubuntu 64-bit). Los
sistemas operativos mviles soportados son Maemo, BlackBerry,
Symbian, Windows Mobile, Windows Phone, Android e iOS; as como
la plataforma Java ME. Existe tambin una suite de Internet antigua
de Opera, basada en el motor Presto, que an sigue recibiendo
soporte de seguridad a pesar de ser ya casi obsoleto. Opera ha sido
pionero en originar caractersticas que han sido posteriormente
adoptadas por otros navegadores web, como por ejemplo el Acceso
Rpido (Speed Dial). Eso tiene que ser tomado en cuenta, debido a
que su adaptabilidad es clara.
El navegador no sufri cambio en su idea original sino en su cambio
de plataforma. Usa la menor cantidad de transferencia de datos para
que su desempeo sea rpido. Y en comparacin de navegadores
grandes como el Chrome o el Safari, se pierden detalles como fuentes
especiales que los diseadores web pusieron en sus pginas, pero
frente a las necesidades de lugares como Per, por ejemplo, en
donde el ancho de lnea no es del todo eficiente, hace que el
navegador cumpla su objetivo sin complicaciones. Lo que se debe
tener en cuenta es lo resaltante de la adaptabilidad del software en el
entorno tecnolgico hoy en da. Si este es testeado en una tablet
moderna, as como en un celular con Android o en un Blackberry de
hace ms de cinco aos, el desempeo ser el mismo (las diferencias
de velocidad sern determinadas por la mquina al final).

VI.

Papers en Observacin
Metodologas tradicionales vs Metodologas giles. Roberth G.
Figueroa , Camilo J. Sols, Armando A. Cabrera. Universidad Tcnica
Particular de Loja, Escuela de Ciencias en Computacin
Resumen: En conclusin general es indicado que el papel
preponderante de las metodologas es sin duda esencial en un
proyecto y en el paso inicial, que debe encajar en el equipo, guiar y
organizar actividades que conlleven a las metas trazadas en el grupo.
En el trabajo presentado en este paper se detallan los dos grandes
enfoques, tanto metodologas tradicionales y metodologas giles,
indicando as que las primeras metodologas estn pensadas para el
uso exhaustivo de documentacin durante todo el ciclo del proyecto
mientras que las segundas ponen vital importancia en la capacidad de
respuesta a los cambios, su adaptacin, la confianza en las
habilidades del equipo y al mantener una buena relacin con el
cliente. Son explicadas tambin las diferencias, ventajas, desventajas
y cual puede encajar en un proyecto de software. Adems de que los
autores plantean al final una cuestin al lector de poder decidir su
respuesta frente a lo que cree que es conveniente para el desarrollo
de software.
Comparative Study on Agile software development methodologies. A B
M Moniruzzaman y Dr Syed Akhter Hossain.
Resumen: Plantea que frente al cambio constante de los
requerimientos y los ajustes de los nuevos ambientes, adems de las
demandas para la entrega de software en el mundo actual, se debe
tener en cuenta que las metodologas tradicionales no colaboran al
cambio real del mundo actual. En torno a satisfacer las necesidades
de los cliente, se tienen que tener en cuenta mtodos basados en
procesos de desarrollo que sean iterativos e incrementales, donde los
requerimientos y el desarrollo evolucionen a travs de a colaboracin
y organizacin de equipos que permitan la entrega rpida de un
sistema de alta calidad que pueda encontrar el cliente para que este
en s quede satisfecho. Este sistema tambin se debe acomodar a los
cambios de los requerimientos que el cliente objete durante todo el
proceso de su desarrollo. El paper describe las mejoras que los
procesos giles permiten en comparacin a las metodologas
tradicionales. Adems de que indica que las metodologas giles
surgen como una alternativa a los mtodos basados en un slo plan
de los sistemas tradicionales adems de proveer un profundo
entendimiento de los ms resaltantes beneficios que se aplican en la
industria del desarrollo de software.

VII.

Resumen
En el desarrollo de software hay una tensin entre la calidad, costo y
tiempo. Dejando atrs la competencia de costos en la actualidad en
los restringidos mercados es una tarea muy difcil. Muchos procesos
tradicionales para el desarrollo de software son muy pesados con la
documentacin y el control de los mecanismos suele ser muy rgido,
haciendo que sea difcil su aplicacin a diversos proyectos. Nuevas
familias de procesos, referidos como Procesos giles, estn, o bueno
son, aplicados ahora a la industria de software. Estos procesos se
basan en un cdigo ms que en la documentacin llamndose as
giles, porque, en comparacin de los procesos tradicionales, son
adaptables y no rgidos.
Una de las metodologas de estos procesos es el Adaptive Software
Development, Desarrollo Adaptativo de Software (ASD en adelante),
desarrollado por Jim Highsmith. A pesar de que no se proveen los
detalles generalmente asociados con el proceso. Los hitos, mtodos y
derivados no son los elementos especficos discutidos por el ASD. En
vez de eso, el ASD pone en nfasis la aplicacin de ideas originadas
en los complejos sistemas adaptativos. El ASD provee la base
fundamental para desarrollar sistemas adaptativos de los cuales
surgen los sistemas giles.
Tomando esto es entendido que el ncleo del ASD es la premisa que
resulta y es naturalmente impredecible, y sin embargo, su
planeamiento es paradjica. Esto nos hace entender que no es
posible planear un movimiento rpido e impredecible en el ambiente
de los negocios. El desarrollo adaptativo es esencial cuando se tiene
a los desarrolladores, clientes, vendedores, competidores y
accionistas todos juntos intentado interactuar uno con otro para lidiar
con las reglas de causa y efecto que no pueden asegurar un xito. El
ASD reemplaza el ciclo de vida evolucionario con un modelo de ciclo
de vida adaptativo. Como se tiene abajo.
Comparando esos dos modelos, el ASD reconoce que no es deseable
el cmo experimentar constantemente esperando encontrar xito. Por
otro lado, la palabra planeamiento es demasiado determinstica para
nuestro mundo impredecible, as que el ASD prefiere la palabra
Especular. Desarrollar una idea de adnde nuestro proyecto es
dirigido, y poner los mecanismos en el lugar correcto para adaptarlo a
los cambios que los clientes necesiten, cambiando tambin la
tecnologa y el mercado.
La colaboracin reemplaza el desarrollo, porque, segn el ASD, se
tiene que las personas son el ingrediente esencial para producir un
producto que sea meramente exitoso. La colaboracin es el balance
de las actividades: administrando un proyecto como el control de las
configuraciones y el cambio administrativo, con la creatividad de las
personas de confianza para poder encontrar respuestas creativas en

un entorno impredecible; y al final completando el ciclo con el debido


aprendizaje.
El aprendizaje es preferido sobre la revisin o la modificacin, por que
la revisin es mirar hacia atrs. La revisin en el contexto del ciclo de
vida evolucionario implica que mientras es necesario un cambio este
es un cambio en el plan original. El Aprendizaje, sin embargo, es el
acto de ganar ms experiencia. Poniendo el producto bajo el
escrutinio y la inquisicin de todas las previas conjeturas, usando los
resultados del ciclo para poder aprender qu direccin el siguiente
ciclo debe tomar. El ASD no es presentado como una metodologa de
hacer proyectos de software pero ms es como un alcance de una
actitud que debe ser adoptada por una organizacin cuando aplica
procesos giles. Adoptando la premisa de que este mundo est en
ritmo constantemente acelerado e impredecible requiriendo procesos
adaptativos para ser completos y exitosos. En fin este es el mensaje
que dej Jim Highsmith.

VIII.

Referencias

Bruegge, B., Dutoit, A.H., Ingeniera del Software Orientado a


Objetos, cap. 1
Juan F. Ingls-Romero y Cristina Vicente-Chicote, Desarrollo de
Software Adaptativo para Robtica, Divisin de Sistemas e
Ingeniera Electrnica (DSIE). Universidad Politcnica de
Cartagena
Jacobson, I., Booch, G., Rumbaugh, J., El Proceso Unificado de
Desarrollo de Software, cap. 1
Pressman, R.S., Ingeniera del Software. Un enfoque prctico, cap.
1y2
Sommerville, I., Ingeniera de Software, cap. 1, 2 y 3
Everette R. Keith, Agile Software Development Processes A
Different Approach to Software Design

Referencias Web
Metodologa DAS Desarrollo adaptativo del software. Noviembre
del
2011.
http://inf162expogrupo10-2011.blogspot.com/2011/11/metodologiadas-desarrollo-adaptativo.html

Desarrollo adaptativo de software (DAS), Junio del 2011.


http://desarrolloadaptativodesoftware.blogspot.com/2011/06/desarr
ollo-adaptativo-de-software-das.html

Jos Luis Cendejas Valdz (CV), Implementacin Del Modelo


Integral Colaborativo (Mdsic) Como Fuente De Innovacin Para El
Desarrollo gil De Software En Las Empresas De La Zona Centro
Occidente
En
Mxico,
Noviembre
del
2013.
http://www.eumed.net/tesis-doctorales/2014/jlcv/software.htm

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