View
45
Download
2
Category
Preview:
DESCRIPTION
Tipos de modelos (los mas comunes)
Citation preview
UNIVERSIDAD JUREZ AUTNOMA DE TABASCO LSC. WILLIAM DAMIN DE LA CRUZ
MODELOS DE DESARROLLO DE SOFTWARE TRABAJO DE INVESTIGACIN PARA LA MATERIA DE DESARROLLO DE SOFTWARE
Pgina 1 de 42
Contenido INTRODUCCIN .............................................................................................................................3
MODELO DE CASCADA .......................................................................................................................4
Representacin grfica ...................................................................................................................4
Etapas .............................................................................................................................................5
Ventajas y desventajas: ..................................................................................................................5
MODELO DE PROTOTIPO..............................................................................................................6
Etapas .............................................................................................................................................7
Representacin grfica ...................................................................................................................8
Ventajas y desventajas ...................................................................................................................9
MODELO ESPIRAL .........................................................................................................................9
Etapas ...........................................................................................................................................10
Representacin grfica .................................................................................................................10
Ventajas y desventajas .................................................................................................................10
MODELO DE DESARROLLO RPIDO DE APLICACIONES ....................................................11
Etapas ...........................................................................................................................................11
Representacin grfica .................................................................................................................12
Ventajas y desventajas .................................................................................................................13
MODELO ITERATIVO ..................................................................................................................13
Etapas ...........................................................................................................................................14
Representacin grafica .................................................................................................................14
Ventajas y desventajas .................................................................................................................15
MODELO DE DESARROLLO CONCURRENTE .........................................................................15
Etapas y representacin grafica ....................................................................................................16
Ventajas y desventajas .................................................................................................................17
MODELO EN V O DE CUATRO NIVELES ..................................................................................17
Etapas ...........................................................................................................................................17
Representacin grafica .................................................................................................................18
MODELO INCREMENTAL ...........................................................................................................19
Etapas ...........................................................................................................................................19
Representacin grafica .................................................................................................................20
Ventajas y desventajas .................................................................................................................20
MODELO WIN-WIN ......................................................................................................................21
Pgina 2 de 42
Etapas ...........................................................................................................................................21
Representacin grafica .................................................................................................................22
MODELO DE DESARROLLO BASADO EN COMPONENTE (reutilizacin) .............................22
Etapas ...........................................................................................................................................23
Representacin grafica .................................................................................................................24
Ventajas........................................................................................................................................24
MODELO SAMM APLICADO AL DESARROLLO DE APLICACIONES WEB ........................25
Etapas ...........................................................................................................................................26
Representacin grafica .................................................................................................................26
MODELO DE ETAPAS ..................................................................................................................27
Etapas ...........................................................................................................................................27
Representacion grafica .................................................................................................................28
MODELO DE PROCESO DE DESARROLLO UNIFICADO (RUP).............................................28
Etapas ...........................................................................................................................................29
Representacin grafica .................................................................................................................30
MODELO XP ..................................................................................................................................30
Representacin grafica .................................................................................................................31
Ventajas y desventajas .................................................................................................................32
MODELO DE DESARROLLO EVOLUTIVO................................................................................32
Etapas ...........................................................................................................................................33
Representacin grafica .................................................................................................................33
OTROS MODELOS DE DESARROLLO .......................................................................................33
PROCESO DE SOFTWARE PERSONAL (PSP) ........................................................................33
MODELO DEL COSTO DE UN PROYECTO ...........................................................................34
EL MTODO PSC .......................................................................................................................35
TCNICAS DE 4TA GENERACIN .........................................................................................36
MODELO DE TRANSFORMACIN .........................................................................................37
MODELO DE MTODOS FORMALES ....................................................................................39
CONCLUSIN ................................................................................................................................41
Bibliografa ......................................................................................................................................42
Pgina 3 de 42
INTRODUCCIN
Se puede decir que el proceso de desarrollo de software es un conjunto de herramientas,
mtodos y prcticas que se emplean para producir software. Y pueden ser vistas de la misma
forma que cualquier organizacin, ya que las dedicadas al desarrollo de software entre sus
principales fines estn la produccin de software de acuerdo con lo planificado desde el
principio del proyecto, adems de mantener un constante mejoramiento, esto con el fin de
lograr los tres objetivos principales de cualquier proceso de produccin: alta calidad, bajo
costo y en un mnimo de tiempo.
Histricamente han surgido varios enfoques que buscan abordar de manera sistemtica, la
planificacin, anlisis, diseo e implementacin de los proyectos de desarrollo de software,
sean estos de gran escala y pequeas aplicaciones, software a la medida o productos de
software. Cada uno de estos enfoques tiene su raz en las preconcepciones dominantes en su
poca y, sobre todo, en la bsqueda incesante de mejoras a los enfoques precedentes.
Sin embargo los problemas para desarrollar buen software provienen de la mala gestin
estratgica, como puede ser el entorno social y poltico de la organizacin, el nivel de
madurez y los factores humanos o del personal tcnico. Se puede decir que la incapacidad de
las tcnicas de gestin actuales para tratar el complicado factor humano ha sido el ms grande
problema que se puede encontrar al desarrollar un software
Por tal motivo con el objetivo de realizar un trabajo donde se mencione el proceso de
desarrollo de software se han desarrollado varios modelos. Cada uno de los modelos tiene sus ventajas y desventajas. Algunos de los modelos resultan ms adecuados para algunos
tipos de proyectos y otros para otros tipos. En esta leccin presentamos los modelos ms
conocidos y otros que por su dinmica pueden ser de utilidad para el desarrollador de
software.
Pgina 4 de 42
MODELO DE CASCADA
El modelo de cascada es el ms simple y utilizado de todos los modelos. Este modelo sigue
una estructura lineal estricta en donde se asume que los requisitos nunca cambian. La
siguiente tabla resume las fases del modelo de cascada.
Fase Producto
Estudio de viabilidad Reporte de viabilidad
Anlisis de requisitos Documento de especificaciones de
requisitos
Planificacin del proyecto Plan del proyecto
Diseo del sistema Documento de diseo del sistema
Diseo detallado Documento del diseo detallado
Codificacin y prueba de la unidad Cdigo del programa
Integracin del sistema Documentos de proceso y pruebas de
integracin
Pruebas Plan y resultados de las pruebas y manuales
instalacin Reporte de instalacin
Operacin y mantenimiento
Representacin grfica
Estudio de
viabilidad
Anlisis de
requisitos
Planificacin del
proyecto
Diseo del
sistema
Diseo detallado
Codificacin y
prueba de la
unidad
Integracin del
sistema
Pruebas
Instalacin
Operacin y
mantenimiento
Pgina 5 de 42
Etapas
Anlisis de los requisitos del software. El proceso de reunin de requisitos se
intensifica y se centra especialmente en el software. Para comprender la naturaleza
de los programa(s) a construirse, el ingeniero (analista ) del software debe
comprender el dominio de informacin del software, as como la funcin requerida,
comportamiento, rendimiento e interconexin.
Diseo. El diseo del software es realmente un proceso de muchos pasos que se centra
en cuatro atributos distintos de programa: estructura de datos, arquitectura de
software, representaciones de interfaz y detalle procedimental (algoritmo). El proceso
del diseo traduce requisitos en una representacin del software donde se pueda
evaluar su calidad antes de que comience la codificacin.
Generacin de cdigo. El diseo se debe traducir en una forma legible por la mquina.
El paso de generacin de cdigo lleva a cabo esta tarea. Si se lleva a cabo el diseo
de una forma detallada, la generacin de cdigo se realiza mecnicamente.
Aunque el modelo lineal es a menudo denominado modelo tradicional, resulto un
enfoque razonable cuando los requisitos se han entendido correctamente.
Pruebas. Una vez que se ha generado el cdigo, comienzan las pruebas del programa.
El proceso de pruebas se centra en los procesos lgicos internos del software,
asegurando que todas las sentencias se han comprobado, y en los procesos externos
funcionales es decir, realizar las pruebas para la deteccin de errores y asegurar que
la entrada definida produce resultados reales de acuerdo con los resultados
requeridos.
Mantenimiento. El software indudablemente sufrir cambios despus de ser entregado al cliente (una excepcin posible es el software empotrado). Se producirn
cambios porque se han encontrado errores, porque el software debe adaptarse para
acoplarse a los cambios de su entorno externo (por ejemplo: se requiere un cambio
debido a un sistema operativo dispositivo perifrico nuevo), o porque el cliente
requiere mejoras funcionales o de rendimiento. El soporte y mantenimiento del
software vuelve a aplicar cada una de las fases precedentes a un programa ya existente
y no a uno nuevo.
Ventajas y desventajas: Ventajas
Las ventajas que presentan el modelo de cascada tiene relacin con la idea de postular un
marco de trabajo claro, que reconoce y define las actividades involucradas en el desarrollo
de software, permitiendo establecer relaciones de cooperacin entre ellas, adems de una
planificacin sencilla y una plantilla estructurada para ingeniera de software. Corresponden,
tambin, a los mtodos ms usados en desarrollo de software y que han sido exitosos durante
dcadas tanto en el desarrollo de grandes sistemas como en el de pequeos.
Pgina 6 de 42
Desventajas
Las mismas caractersticas que hacen que el modelo de cascada sea simple son sus puntos
dbiles. Entre las mismas estn:
Asume requisitos estticos
Implica seleccionar el hardware desde el comienzo.
Los requisitos tienen que estar establecidos completamente antes de proseguir el resto
del proceso.
Requiere mucha documentacin
Asumir que los requisitos permanecen inalterados a lo largo del desarrollo del software le
resta flexibilidad al modelo sobretodo porque es poco probable que esto ocurra. Dado que
los requisitos se asumen estticos el hardware en donde se implementar el software se puede
seleccionar desde el comienzo del desarrollo. Esto limita la capacidad del modelo para
ajustarse al uso de nuevo hardware que pueda surgir durante el proceso de desarrollo. Aunque
los primeros dos puntos se pueden flexibilizar durante el proceso de desarrollo una de las
caractersticas que menos agrada del modelo de cascada es que requiere mucha
documentacin. El modelo de cascada es, a pesar de sus limitaciones, el ms utilizado de
todos los modelos. El modelo resulta muy adecuado en el desarrollo de aplicaciones cuyas
especificaciones se conocen bastante bien.
MODELO DE PROTOTIPO
En este modelo se desarrolla un prototipo desechable del sistema con el objeto de comprender
mejor sus requisitos. Presentando el prototipo a los/las posibles usuarios/as se determina se
hacen los ajustes necesarios a los requisitos. El prototipo se mejora de forma iterativa para
refinar los requisitos hasta que se considera que no es costo efectivo seguir refinando el
mismo.
La siguiente figura muestra la estructura del modelo de prototipo. La caja de la izquierda
representa la etapa de desarrollo del prototipo el cual se puede considerar como una
aplicacin simple en s mismo.
Caractersticas del modelo de prototipo
Este modelo es adecuado para sistemas complejos y en donde no se tienen sistemas previos.
Slo aquellos componentes que provean un resultado costo-efectivos son implementados.
Aquellas partes que se conozcan bien o que resulten triviales no se implementan ya que el
objetivo del prototipo es conocer los requisitos que no se conocen bien. El proceso se termina
Pgina 7 de 42
cuando se considera que seguir desarrollando prototipos resultar ms costoso que seguir
adelante con el proceso sin desarrollarlos.
Etapas
Pertenece a los modelos evolutivos, en el cual el prototipo debe de ser construido rpidamente
y con la utilizacin escasa de recursos. El prototipo es construido para mostrrselo al cliente,
obtener crticas y retroalimentacin, con lo cual se obtendrn los requisitos especficos para
la aplicacin a partir de las metas graficas que son mostradas. Las etapas de este modelo son:
Las fases que comprende el mtodo de desarrollo orientado a prototipos seran:
Investigacin preliminar: Las metas principales de esta fase son: determinar el problema y su mbito, la importancia y sus efectos potenciales sobre la organizacin
por una parte y, por otro lado, identificar una idea general de la solucin para realizar
un estudio de factibilidad que determine la factibilidad de una solucin software.
Definicin de los requerimientos del sistema: El objetivo de esta etapa es registrar todos los requerimientos y deseos que los usuarios tienen en relacin al proyecto bajo
desarrollo. Esta etapa es la ms importante de todo el ciclo de vida, es aqu donde el
desarrollador determina los requisitos mediante la construccin, demostracin y
retroalimentaciones del prototipo. Por lo mismo esta etapa ser revisada con ms
detalle luego de esta descripcin.
Diseo tcnico: Durante la construccin del prototipo, el desarrollador ha obviado el diseo detallado. El sistema debe ser entonces rediseado y documentado segn los
estndares de la organizacin y para ayudar a las mantenciones futuras. Esta fase de
diseo tcnico tiene dos etapas: por un lado, la produccin de una documentacin de
diseo que especifica y describe la estructura del software, el control de flujo, las
interfaces de usuario y las funciones y, como segunda etapa, la produccin de todo lo
requerido para promover cualquier mantencin futura del software.
Programacin y prueba: Es donde los cambios identificados en el diseo tcnico son implementados y probados para asegurar la correccin y completitud de los mismos
con respecto a los requerimientos.
Operacin y mantencin: La instalacin del sistema en ambiente de explotacin, en este caso, resulta de menor complejidad, ya que se supone que los usuarios han
trabajado con el sistema al hacer las pruebas de prototipos. Adems, la mantencin
tambin debera ser una fase menos importante, ya que se supone que el refinamiento
del prototipo permitira una mejor claridad en los requerimientos, por lo cual las
mantenciones perfectivas se reduciran. Si eventualmente se requiriese una
mantencin entonces el proceso de prototipado es repetido y se definir un nuevo
conjunto de requerimientos.
La fase ms importante corresponde a la definicin de requerimientos, la cual
correspondera a un proceso que busca aproximar las visiones del usuario y del
Pgina 8 de 42
Comunicacin
Desarrollo, entrega
o retroalimentacin
Construccin del
prototipo
Modelado (diseo
rpido)
Plan rpido
desarrollador mediante sucesivas iteraciones. La definicin de requerimientos
consiste de cinco etapas entre dos de las cuales se establece un ciclo iterativo.
Anlisis grueso y especificacin: El propsito de esta subfase es desarrollar un diseo bsico para el prototipo inicial.
Diseo y construccin: El objetivo de esta subfase es obtener un prototipo inicial. El desarrollador debe concentrarse en construir un sistema con la mxima funcionalidad,
poniendo nfasis en la interface del usuario.
Evaluacin: Esta etapa tiene dos propsitos: extraer a los usuarios la especificacin de los requerimientos adicionales del sistema y verificar que el prototipo desarrollado
lo haya sido en concordancia con la definicin de requerimientos del sistema. Si los
usuarios identifican fallas en el prototipo, entonces el desarrollador simplemente
corrige el prototipo antes de la siguiente evaluacin. El prototipo es repetidamente
modificado y evaluado hasta que todos los requerimientos del sistema han sido
satisfechos. El proceso de evaluacin puede ser dividido en cuatro pasos separados:
preparacin, demostracin, uso del prototipo y discusin de comentarios. En esta fase
se decide si el prototipo es aceptado o modificado.
Modificacin: Esto ocurre cuando la definicin de requerimientos del sistema es alterada en la subfase de evaluacin. El desarrollador entonces debe modificar el
prototipo de acuerdo a los comentarios hechos por los usuarios.
Trmino: Una vez que se ha desarrollado un prototipo estable y completo, es necesario ponerse de acuerdo en relacin a aspectos de calidad y de representacin
del sistema.
En la siguiente figura se puede ver un esquema en que estas etapas se realizan, note que la especificacin de requerimientos est claramente diferenciada de las dems.
Es en ella donde se utiliza el prototipado, ya que permite entregar al usuario lo que
sera una visin la solucin final en etapas tempranas del desarrollo, reduciendo
tempranamente los costos de especificaciones errneas.
Representacin grfica
Pgina 9 de 42
Ventajas y desventajas
Ventajas:
Los conocimientos que se adquieren durante el desarrollo del prototipo pueden
reducir el costo del desarrollo del software ms adelante
Se ajusta mejor que el modelo de cascada a situaciones en donde los requisitos sufren
muchos cambios.
Se logra congelar los requisitos ms tarde en el proceso, cuando es de esperar que
sean ms estables.
Como tanto los desarrolladores como el cliente trabajan en el desarrollo de los
prototipos es ms probable que las especificaciones de los mismos se acerquen ms
a la realidad
Desventajas:
Da la impresin de que se pierden esfuerzos en el desarrollo de los prototipos.
En muchas ocasiones se quiere continuar el desarrollo del prototipo para crear el producto final
No se conoce cuando se tendr un producto aceptable.
No se sabe cuntas iteraciones sern necesarias.
Da una falsa ilusin al usuario sobre la velocidad del desarrollo.
Se puede volver el producto an y cuando no este con los estndares.
MODELO ESPIRAL
El modelo en espiral, propuesto originalmente por Boehm [BOE88], es un modelo de proceso
de software evolutivo que conjuga la naturaleza iterativa de construccin de prototipos con
los aspectos controlados y sistemticos del modelo lineal secuencial. Proporciona el potencial
para el desarrollo rpido de versiones incrementales del software.
En el modelo espiral, el software se desarrolla en una serie de versiones incrementales.
Durante las primeras iteraciones, la versin incremental podra ser un modelo en papel o un
prototipo. Durante las ltimas iteraciones, se producen versiones cada vez ms completas del
sistema diseado.
Pgina 10 de 42
Etapas
El modelo en espiral se divide en un nmero de actividades de marco de trabajo, tambin
llamadas regiones de tareas. Generalmente, existen entre tres y seis regiones de tareas.
Comunicacin con el cliente: las tareas requeridas para establecer comunicacin entre
el desarrollador y el cliente.
Planificacin: las tareas requeridas para definir recursos, el tiempo y otra informacin
relacionadas con el proyecto.
Anlisis de riesgos: las tareas requeridas para evaluar riesgos tcnicos y de gestin.
Ingeniera: las tareas requeridas para construir una o ms representaciones de la
aplicacin.
Construccin y accin: las tareas requeridas para construir, probar, instalar y
proporcionar soporte al usuario (por ejemplo: documentacin y prctica)
Evaluacin del cliente: las tareas requeridas para obtener la reaccin del cliente segn
la evaluacin de las representaciones del software creadas durante la etapa de
ingeniera e implementada durante la etapa de instalacin.
Representacin grfica
Ventajas y desventajas Ventajas:
A diferencia del modelo de proceso clsico que termina cuando se entrega el software
el modelo en espiral puede adaptarse y aplicarse a lo largo de la vida del software de
computadora.
Como el software evoluciona a medida que progresa el proceso, el desarrollador y el
cliente comprenden y reaccionan mejor ante riesgos en cada uno de los nivele
evolutivos.
Planificacin
Comunicacin
con el cliente
Eje de punto
de entrada de
proyecto
Evaluacin del
cliente Construccin y adaptacin
Ingeniera
Anlisis de
riesgos
Pgina 11 de 42
El modelo en espiral permite a quien lo desarrolla aplicar el enfoque de construccin
de prototipos en cualquier etapa de evolucin del producto.
El modelo en espiral demanda una consideracin directa de los riesgos tcnicos en
todas las etapas del proyecto y si se aplica adecuadamente debe reducir los riesgos
antes de que se conviertan en problemas.
En la utilizacin de grandes sistemas ha doblado la productividad.
Es un enfoque realista para el desarrollo de software y de sistemas a gran escala.
Desventajas
No aplicable a proyectos bajo contrato.
No recomendable en proyectos simples.
Resulta difcil convencer a grandes clientes de que el enfoque evolutivo es
controlable.
No se ha utilizado tanto como otros modelos de ciclo de vida.
MODELO DE DESARROLLO RPIDO DE APLICACIONES
El Desarrollo Rpido de Aplicaciones o RAD (Rapid Application Development) es aquel
mtodo que contempla un desarrollo de modo iterativo as como la realizacin de prototipos,
su esencia se concentra en la usabilidad y utilidad as como la rapidez de ejecucin, forma
parte al desarrollo lineal secuencial solo que la diferencia ms notable es que se lleva a cabo
en ciclos cortos, el equipo que implementa esta metodologa realiza desarrollos en periodos
cortos de tiempo.
Caractersticas
Debe contener dentro de un equipo, personas que involucran tanto su desarrollo as
como aquellos que analizan los requerimientos.
Muestra mediante modelos que contemplen los factores que permitan dar nociones a
la vida real.
Etapas
Esta metodologa est constituida por las siguientes etapas:
Modelado de Gestin. El flujo de informacin entre las funciones de gestin se
modela de forma que responda a las siguientes preguntas: Qu informacin conduce
el proceso de gestin? Qu informacin se genera? Quin la genera? A dnde va
la informacin? Quin la procesa?.
Modelado de datos. El flujo de informacin definido como parte de la fase de
modelado de gestin se refina como un conjunto de objetos de datos necesarios para
Pgina 12 de 42
apoyar la empresa. Se definen las caractersticas (llamadas atributos) de cada uno de
los objetos y las relaciones entre estos objetos.
Modelado del proceso. Los objetos de datos definidos en la fase de modelado de datos
quedan transformados para lograr el flujo de informacin necesario para implementar
una funcin de gestin. Las descripciones del proceso se crean para aadir, modificar,
suprimir, o recuperar un objeto de datos.
Generacin de aplicaciones. El DRA asume la utilizacin de tcnicas de cuarta
generacin. En lugar de crear software con lenguajes de programacin de tercera
generacin, el proceso DRA trabaja para volver a utilizar componentes de programas
ya existentes (cuando es posible) o a crear componentes reutilizables (cuando sea
necesario). En todos los casos se utilizan herramientas para facilitar la construccin
de software.
Pruebas y entrega. Como el proceso DRA enfatiza la reutilizacin, ya se han
comprobado muchos de los componentes de los programas. Esto reduce tiempo de
pruebas. Sin embargo, se deben probar todos los componentes nuevos y se deben
ejercitar todas las interfaces a fondo.
Representacin grfica
Inconvenientes
Este mtodo requiere de recursos suficientes, no es adecuado para riesgos tcnicos altos, por
ejemplo cuando se quiere que haya integridad junto con programas existentes dentro de la
maquina donde se quiera someter en operacin.
Modelado de
gestin
Pruebas y
entrega
Generacin de
aplicaciones
Modelado de
procesos
Modelado de
datos
Modelado de
gestin
Pruebas y
entrega
Generacin
de
aplicaciones
Modelado de
procesos
Modelado de
datos
Modelado
de gestin
Pruebas y
entrega
Generacin
de
Modelado
de procesos
Modelado
de datos
Pgina 13 de 42
Ventajas y desventajas Ventajas:
Los entregables pueden ser fcilmente trasladados a otra plataforma.
El desarrollo se realiza a un nivel de abstraccin mayor.
Mayor flexibilidad.
Menor codificacin manual.
Mayor involucramiento de los usuarios.
Posiblemente menos fallas.
Ciclos de desarrollo ms pequeos.
Interfaz grfica estndar.
Desventajas
Comprar puede ser ms caro que construir.
Costo de herramientas integradas y equipo necesario.
Progreso ms difcil de medir.
Menos eficiente.
Riesgo de revertirse a las prcticas sin control de antao.
Ms fallas (por sndrome de "codificar a lo bestia").
Prototipos pueden no escalar, un problema maysculo.
MODELO ITERATIVO Es un modelo derivado del ciclo de vida en cascada. Este modelo busca reducir el riesgo que
surge entre las necesidades del usuario y el producto final por malos entendidos durante la
etapa de recogida de requisitos.
Consiste en la iteracin de varios ciclos de vida en cascada. Al final de cada iteracin se le
entrega al cliente una versin mejorada o con mayores funcionalidades del producto. El
cliente es quien despus de cada iteracin evala el producto y lo corrige o propone mejoras.
Estas iteraciones se repetirn hasta obtener un producto que satisfaga las necesidades del
cliente.
Este modelo se suele utilizar en proyectos en los que los requisitos no estn claros por parte
del usuario, por lo que se hace necesaria la creacin de distintos prototipos para presentarlos
y conseguir la conformidad del cliente.
Caractersticas
Se desarrolla el software de forma incremental.
En primer lugar se desarrolla el ncleo del sistema, dndole prioridad a las
especificaciones que se conocen bien
Pgina 14 de 42
El proceso contiene una lista de las tareas que se desean realizar (lista de control del
proyecto) las cules se van eliminando en orden con cada iteracin
El propsito de cada iteracin es eliminar la prxima entrada en la lista - Luego de
cada iteracin se pueden realizar modificaciones, las cules se utilizarn en el
desarrollo de la prxima iteracin
Al final de cada etapa se realizan las pruebas de integracin del sistema. - Cuando todas las tareas se remueven de la lista de control el sistema est terminado.
til cuando los desarrolladores tienen bastante control sobre los requisitos del sistema ya que pueden establecer la lista de control ellos mismos. El modelo iterativo
bsicamente lo que hace es aplicar el modelo de prototipos de forma iterativa.
Etapas Este tipo de modelo es esencial para el mtodo de programacin extrema. Este tipo de
programacin consiste en la realizacin de programas de manera incremental, la cual sirve
para obtener ventaja de lo que se ha realizado a lo largo del proyecto. En este se entran a
varias iteraciones con las cuales se obtendr el software final y a su vez, se le agregaran
nuevas funcionalidades a cada etapa.
Se puede dividir en los siguientes procesos:
Etapa de inicializacin. La meta de esta etapa es la construccin de un producto en el cual se pueda obtener retroalimentacin de parte del usuario final.
Etapa de iteracin. Consiste en el anlisis, rediseo e implementacin del producto de las iteraciones anteriores
Lista de control del proyecto. Son las tareas que se crean que describen las partes que conforman el proyecto, son implementadas y rediseadas en cada etapa de iteracin
del producto.
Representacin grafica
Cada iteracin refina lo realizado en la iteracin anterior. De esta forma se produce una
dinmica en la que se van mejorando los productos (entregables) obtenidos en la iteracin
anterior. Eventualmente se realizarn todas las iteraciones planificadas, o se llegar al nivel
de refinamiento deseado
Iteraciones
Iteracin 1 Iteracin 2 Iteracin 3 Iteracin N
Pgina 15 de 42
Ventajas y desventajas Ventajas
Una de las principales ventajas que ofrece este modelo es que no hace falta que los requisitos
estn totalmente definidos al inicio del desarrollo, sino que se pueden ir refinando en cada
una de las iteraciones.
Igual que otros modelos similares tiene las ventajas propias de realizar el desarrollo en
pequeos ciclos, lo que permite gestionar mejor los riesgos, gestionar mejor las entregar, etc.
Desventajas
La primera de las ventajas que ofrece este modelo, el no ser necesario tener los requisitos
definidos desde el principio, puede verse tambin como un inconveniente ya que pueden
surgir problemas relacionados con la arquitectura.
MODELO DE DESARROLLO CONCURRENTE
El Modelo de Desarrollo Concurrente conocido adems como Ingeniera Concurrente dado
por Davis Sitaram, se puede representar en forma de esquema como una serie de actividades
tcnicas importantes, tareas y estados asociados a ellas.
Este modelo se utiliza a menudo como el paradigma de desarrollo de aplicaciones
cliente/servidor. Provee una metadescripcin del proceso del software. El modelo
concurrente tiene la capacidad de describir las mltiples actividades del software ocurriendo
simultneamente.
La mayora de los modelos de procesos de desarrollo del software son dirigidos por el tiempo
cuanto ms tarde sea, ms atrs se encontrar en el proceso de desarrollo. Un modelo de
proceso concurrente est dirigido por las necesidades del usuario, las decisiones de la gestin
y los resultados de las revisiones.
El modelo de proceso concurrente define una serie de acontecimientos que dispararn
transiciones de estado a estado para cada una de las actividades de la ingeniera del software.
Durante las primeras etapas del diseo, no se contempla una inconsistencia del modelo de
anlisis. Esto genera la correccin del modelo de anlisis de sucesos, que disparar la
actividad de anlisis del estado hecho al estado cambios en espera.
Esto genera la correccin del modelo de anlisis de sucesos, que disparar la actividad de
anlisis del estado hecho al estado cambios en espera. Es un modelo de tipo de red donde
todas las personas actan simultneamente o al mismo tiempo.
Un sistema cliente/servidor se compone de un conjunto de componentes funcionales. Cuando
se aplica a cliente/servidor, el modelo de proceso concurrente define actividades en dos
dimensiones:
Pgina 16 de 42
1. Dimensin de sistemas.
2. Dimensin de componentes.
Los aspectos del nivel de sistema se afrontan mediante tres actividades: diseo, ensamblaje
y uso. En realidad, el modelo de proceso concurrente es aplicable a todo tipo de desarrollo
de software y proporciona una imagen exacta del estado actual de un proyecto.
La concurrencia se logra de dos formas:
1. Las actividades de sistemas y de componentes ocurren simultneamente y pueden
modelarse con el enfoque orientado a objetos.
2. Una aplicacin cliente/servidor tpica se implementa con muchos componentes, cada uno
de los cuales se pueden disear y realizar concurrentemente.
Etapas y representacin grafica
La Figura proporciona una representacin esquemtica de una actividad dentro del modelo
de proceso concurrente. La actividad anlisis se puede encontrar en uno de los estados'"
destacados anteriormente en cualquier momento dado. De forma similar, otras actividades
(por ejemplo: diseo o comunicacin con el cliente) se puede representar de una forma
anloga.
Todas las actividades existen concurrentemente, pero residen en estados diferentes. Por
ejemplo, al principio del proyecto la actividad de comunicacin con el cliente (no mostrada
en la figura) ha finalizado su primera iteracin y est en el estado de cambios, en espera. La
Ninguna
Realizado
En lnea
base
Bajo revisin
Bajo
modificacin
Cambios en
espera
Bajo desarrollo
Actividad de anlisis
Pgina 17 de 42
actividad de anlisis (que estaba en el estado ninguno mientras que se iniciaba la
comunicacin inicial con el cliente) ahora hace una transicin al estado bajo desarrollo.
Sin embargo, si el cliente indica que se deben hacer cambios en requisitos, la actividad
anlisis cambia del estado bajo desarrollo al estado cambios en espera.
Ventajas y desventajas Ventajas:
Excelente para proyectos en los que se conforman grupos de trabajo independientes.
Proporciona una imagen exacta del estado actual de un proyecto.
Desventajas
Si no se dan las condiciones sealadas no es aplicable.
Si no existen grupos de trabajo no se puede trabajar en este mtodo
MODELO EN V O DE CUATRO NIVELES Se trata de un proceso ideal, por su robustez, para proyectos pequeos, con equipos de una a
cinco personas. Tambin es ideal, por su claridad, para toda esa gente que nunca ha
programado siguiendo una metodologa. Para el proyecto final de carrera o para ese cliente
que te ha conseguido un amigo de un amigo que te lo pide a ti y no se dirige a una empresa
por esto de la desaceleracin.
En qu consiste exactamente?
La figura que aparece a continuacin presenta el Modelo en V, o Modelo de Cuatro Niveles,
del ciclo de vida de un proyecto de desarrollo de software. El modelo representa, en forma
de V, las relaciones temporales entre las distintas fases del ciclo de desarrollo de un proyecto.
Etapas
En los niveles lgicos del 1 al 4, para cada fase del desarrollo, existe una fase correspondiente
o paralela de verificacin o validacin. Esta estructura obedece al principio de que para cada
fase del desarrollo debe existir un resultado verificable.
En la misma estructura se advierte tambin que la proximidad entre una fase del desarrollo y
su fase de verificacin correspondiente va decreciendo a medida que aumenta el nivel dentro
de la V. La longitud de esta separacin intenta ser proporcional a la distancia en el tiempo
entre una fase y su homloga de verificacin.
Pgina 18 de 42
El nivel 1 est orientado al cliente. El inicio del proyecto y el fin del proyecto constituyen
los dos extremos del ciclo. Se compone del anlisis de requisitos y especificaciones, se
traduce en un documento de requisitos y especificaciones.
El nivel 2 se dedica a las caractersticas funcionales del sistema propuesto. Puede
considerarse el sistema como una caja negra, y caracterizarla nicamente con aquellas
funciones que son directa o indirectamente visibles por el usuario final, se traduce en un
documento de anlisis funcional.
El nivel 3 define los componentes hardware y software del sistema final, a cuyo conjunto se
denomina arquitectura del sistema.
El nivel 4 es la fase de implementacin, en la que se desarrollan los elementos unitarios o
mdulos del programa.
Representacin grafica
Tengo que hacer documentacin de todo?
Por supuesto. Cada fase tiene que estar respaldada por su documento correspondiente y test.
Por qu utilizar una metodologa?
Inicio
proyecto
Codificacin
Fase test
diseo
Fase de
diseo
Fase test
funcional
Fase
funcional
Fase test
especificaciones
Fin proyecto
Fase
especificaciones
Plan test especificaciones
Plan test funcional
Plan test diseo
Plan test
Pgina 19 de 42
Porque es lo ms rpido y barato. Volviendo al ejemplo de la casa, imaginad la cantidad de
veces que debera volver atrs y tirar paredes ya hechas porque de pronto descubro que el
suelo es inestable, la baera no cabe, la instalacin elctrica no la haba tenido en cuenta
Pues, con el cdigo pasa exactamente lo mismo.
MODELO INCREMENTAL
El modelo incremental combina elementos del modelo lineal secuencial (aplicados
repetidamente) con la filosofa interactiva de construccin de prototipos. Los riesgos
asociados con el desarrollo de sistemas largos y complejos son enormes. Una forma de
reducir los riesgos es construir slo una parte del sistema, reservando otros aspectos para
niveles posteriores. El desarrollo incremental es el proceso de construccin siempre
incrementando subconjuntos de requerimientos del sistema. Tpicamente, un documento de
requerimientos es escrito al capturar todos los requerimientos para el sistema completo.
Note que el desarrollo incremental es 100% compatible con el modelo cascada. El desarrollo
incremental no demanda una forma especfica de observar el desarrollo de algn otro
incremento. As, el modelo cascada puede ser usado para administrar cada esfuerzo de
desarrollo, como se muestra en la figura.
Etapas
Las fases se dividen en incrementos, en cada incremento se desarrolla una parte de la
funcionalidad y se validan los productos resultantes.
En general, una vez los productos de una fase se consideran listos, estos no se
modifican ms a lo largo de las siguientes fases.
En general, cada incremento aade funcionalidad nueva al sistema, de manera que el
usuario puede ir utilizando (validando) la funcionalidad antes de terminar el sistema
completo.
El sistema se desarrolla como una secuencia de pasos e iteraciones una vez
establecida la arquitectura global.
Los usuarios pueden experimentar con los productos resultantes de cada iteracin, y
usualmente el equipo de desarrollo puede continuar con el trabajo mientras que los
usuarios experimentan con el sistema.
En general, la idea es combinar lo mejor de las estrategias orientadas a prototipos con
una buena gestin.
En general, luego de que se valida y se termina un componente, este no se cambia (o se procura no cambiarlo) a menos que se encuentren errores (Bugs).
Pgina 20 de 42
Representacin grafica
El modelo de desarrollo incremental provee algunos beneficios significativos para los
proyectos:
Construir un sistema pequeo es siempre menos riesgoso que construir un sistema
grande.
Al ir desarrollando parte de las funcionalidades, es ms fcil determinar si los
requerimientos planeados para los niveles subsiguientes son correctos.
Si un error importante es realizado, slo la ltima iteracin necesita ser descartada.
Reduciendo el tiempo de desarrollo de un sistema (en este caso en incremento del
sistema) decrecen las probabilidades que esos requerimientos de usuarios puedan
cambiar durante el desarrollo.
Si un error importante es realizado, el incremento previo puede ser usado.
Los errores de desarrollo realizados en un incremento, pueden ser arreglados antes
del comienzo del prximo incremento.
En la figura se muestra un refino del diagrama previo, bajo un esquema temporal, para
obtener finalmente el esquema del Modelo de ciclo de vida Iterativo Incremental, con sus
actividades genricas asociadas. Aqu se observa claramente cada ciclo cascada que es
aplicado para la obtencin de un incremento; estos ltimos se van integrando para obtener el
producto final completo. Cada incremento es un ciclo Cascada Realimentado, aunque, por
simplicidad, en la figura 5 se muestra como secuencial puro.
Se observa que existen actividades de desarrollo (para cada incremento) que son realizadas
en paralelo o concurrentemente, as por ejemplo, en la figura, mientras se realiza el diseo
detalle del primer incremento ya se est realizando en anlisis del segundo.
Ventajas y desventajas Ventajas:
Pgina 21 de 42
El modelo proporciona todas las ventajas del modelo en cascada realimentado, reduciendo
sus desventajas slo al mbito de cada incremento.
Desventajas:
El modelo Incremental no es recomendable para casos de sistemas de tiempo real, de alto
nivel de seguridad, de procesamiento distribuido, y/o de alto ndice de riesgos.
Critica:
En este modelo se debe especificar con precisin todo lo que el sistema va a hacer antes de
desarrollarlo. Lo cual lo hace manejable y disminuira los costos.
MODELO WIN-WIN Una variante interesante del Modelo Espiral previamente visto es el "Modelo Espiral Win-
Win" (Barry Boehm). 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.
Etapas 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:
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).
Pgina 22 de 42
Representacin grafica
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.
Critica:
En este modelo las actividades que se definen son importantes como lo son: la identificacin
del sistema, la determinacin de las condiciones y la negociacin de estas.
MODELO DE DESARROLLO BASADO EN COMPONENTE
(REUTILIZACIN)
En la mayora de los proyectos de desarrollo de software existe la reutilizacin. Por lo general
esto sucede informalmente cuando las personas conocen diseos o cdigos similares al
requerido. Los buscan, los modifican segn lo creen necesario y los incorporan en un nuevo
sistema. El enfoque evolutivo, la reutilizacin es indispensable para el desarrollo ms gil de
un sistema. Esta reutilizacin es independiente del proceso de desarrollo que se utilice. Sin
embargo, en los ltimos aos ha surgido un enfoque de desarrollo de software denominado "
ingeniera de software basada en componentes", el cual se basa en la reutilizacin. Este
enfoque se basa en la reutilizacin y se compone de una gran base de componentes de
software que son reutilizables.
El modelo de desarrollo basado en componentes (mostrado en la figura) incorpora muchas
de las caractersticas del modelo en espiral. Es evolutivo por naturaleza, y exige un enfoque
Identificacin
de sistema
Eje de punto
de entrada de
proyecto
Negociacin de
las condiciones
de victoria
Determinacin
de condiciones
de victoria
Pgina 23 de 42
iterativo para la creacin del software. Sin embargo, el modelo de desarrollo basado en
componentes configura aplicaciones desde componentes preparados de software.
La actividad de la ingeniera comienza con la identificacin de clases candidatas. Esto se
lleva a cabo examinando los datos que se van a manejar por parte de la aplicacin y el
algoritmo que se va a aplicar para conseguir el tratamientoI2. Los datos y los algoritmos
correspondientes se empaquetan en una clase.
Las clases creadas en los proyectos de ingeniera del software anterior, se almacenan en una
biblioteca de clases o diccionario de datos.
Una vez identificadas las clases candidatas, la biblioteca de clases se examina para
determinar si estas clases ya existen. En caso de que as fuera, se extraen de la biblioteca y
se vuelven a utilizar. Si una clase candidata no reside en la biblioteca, se aplican los mtodos
orientados a objetos. Se compone as la primera iteracin de la aplicacin a construirse,
mediante las clases extradas de la biblioteca y las clases nuevas construidas para cumplir las
necesidades nicas de la aplicacin. El flujo del proceso vuelve a la espiral y volver a
introducir por ltimo la iteracin ensambladora de componentes a travs de la actividad de
ingeniera.
El modelo de desarrollo basado en componentes conduce a la reutilizacin del software, y la
reutilizacin proporciona beneficios a los ingenieros de software. Segn estudios de
reutilizacin, QSM Associates, Inc. informa que el ensamblaje de componentes lleva a una
reduccin el 70 por 100 de tiempo de ciclo de desarrollo, un 84 por 100 del coste del proyecto
y un ndice de productividad del 26.2, comparado con la norma de industria del 16.9. Aunque
estos resultados estn en funcin de la robustez de la biblioteca de componentes, no hay duda
de que el ensamblaje de componentes proporciona ventajas significativas para los ingenieros
de software.
Etapas
Aunque la etapa de especificacin de requerimientos y la revalidacin son comparables con
otros procesos, las etapas intermedias en el proceso orientado a la reutilizacin son diferentes.
Estas etapas son:
Anlisis de componentes. En esta se buscan los componentes para implementar los
con base en su especificacin. Por lo general, no existe una concordancia exacta y los
componentes que se utilizan slo proporcionan parte de la funcionalidad requerida.
Modificacin de requerimientos. En esta etapa los requerimientos se analizan
utilizando informacin acerca de los componentes que se han descubierto. Entonces
dichos componentes se modifican para reflejar los componentes disponibles, la
actividad de anlisis de componentes se puede llevar a cabo para buscar soluciones
alternativas.
Diseo del sistema con reutilizacin. En esta fase los diseadores tienen en cuenta los
componentes que se reutiliza y que se organizan el marco de trabajo para que los
Pgina 24 de 42
satisfaga. Si dichos componentes no estn disponibles se puede disear nuevos
software.
Desarrollo e integracin. El software que no se puede adquirir externamente se
desarrolla y se integra a los componentes. En este modelo, la integracin del sistema
es parte del proceso de desarrollo, ms que una actividad separada.
Adems pueden tomarse las siguientes fases:
Bosquejar los requerimientos del sistema.
Buscar componentes reutilizables ((COTS) (Ej. Aplicaciones Listas o Casi Listas).
Modificar requerimientos acorde a los componentes encontrados + modificar
componentes encontrados.
Diseo arquitectnico.
Buscar componentes reutilizables (COTS) (Ej. Libreras, Frameworks u otros).
Disear el sistema utilizando los componentes reutilizados.
Modificar componentes encontrados.
Representacin grafica
Ventajas El modelo de desarrollo de software basado en componentes creado por Boehm (1988), tiene
la ventaja de reducir la cantidad de software que se debe desarrollar y por ende reduce los
costos y los riesgos. Tambin permite una entrega ms rpida del software. Sin embargo, los
compromisos a los requerimientos son inevitables y esto da lugar a un sistema que no cumpla
con las necesidades reales de los usuarios. Pressman (2006), detecto que: El software de
computadoras moderno se caracteriza por el cambio continuo, los tiempos de entrega son
muy reducidos y una necesidad intensa de satisfacer al cliente/usuario. En muchos casos, el
Planificacin
Comunicacin
con el cliente
Eje de punto
de entrada de
proyecto
Evaluacin del
cliente Construccin y adaptacin
Ingeniera
Anlisis de
riesgos
Identificar
componentes
candidatos
Construir la
iteracin del
sistema
Buscar
componentes en
biblioteca
Extraer
componentes sisi estn disponibles
Poner nuevos
componentes en la biblioteca
Modificar
componentes si
Pgina 25 de 42
tiempo de llegada al mercado es el requisito de gestin ms importante. Si se pierde una
ventana del mercado, el mismo proyecto de software puede perder su significado.
MODELO SAMM APLICADO AL DESARROLLO DE
APLICACIONES WEB
Las aplicaciones Web son programas de software que los usuarios pueden utilizar accediendo
a ellas a travs de un navegador como Internet Explorer, Firefox, Safari y Chrome, entre
otros. Muchas de estas aplicaciones son desarrolladas a la medida y frecuentemente los requerimientos de seguridad no son tomados en cuenta durante el proceso de desarrollo o
adquisicin de la aplicacin, lo cual s sucede por ejemplo con las caractersticas de
funcionalidad, diseo visual, y uso.
Lograr aplicaciones Web seguras solo es posible cuando se utiliza un ciclo de desarrollo de
software seguro (SDLC, Software Development Life Cycle), para lo cual OWASP
recomienda que las organizaciones establezcan una base slida de formacin, estndares y
herramientas que hagan posible la codificacin segura. Por encima de esa base las
organizaciones deben integrar la seguridad a su desarrollo, verificacin y procesos de
mantenimiento que a su vez permitan a la gerencia utilizar los datos generados para gestionar
los costos y riesgos asociados a la seguridad en aplicaciones.
El modelo SAMM (Software Assurance Maturity Model), el cual es un marco de trabajo
abierto que ayuda a definir y estructurar una estrategia de seguridad en el desarrollo de
software basada en los riesgos especficos que enfrenta cada organizacin. En este artculo
se toma como referencia el modelo SAMM y se proporciona una gua de los controles que
se deben implementar en cada una de las prcticas de seguridad del modelo.
Entendiendo el modelo SAMM
El modelo se fundamenta en desarrollar el software de acuerdo a las funciones crticas del
negocio y cuenta con 3 niveles de madurez definidos a travs de 12 prcticas de seguridad,
estas prcticas determinan una variedad de actividades que deben ser implementadas en la
organizacin para reducir los riesgos de seguridad e incrementar el aseguramiento del
software.
El modelo SAMM fue diseado para ser flexible, de tal manera que puede ser adoptado por
cualquier tamao de organizacin y fue construido bajo los siguientes principios:
Cambios paulatinos en la organizacin.- Un programa de seguridad exitoso deben ser implementado en pequeas iteraciones, lo cual permitir producir entregables
tangibles y de valor para la organizacin en el corto plazo, los cuales se pueden ir
incrementando para el logro de metas a largo plazo.
Pgina 26 de 42
No existe una receta nica que funcione en todas las organizaciones.- Un marco de trabajo de seguridad de software debe ser flexible y permitir poner en marcha los
controles necesarios basndose en el nivel de riesgo de la organizacin.
Establecimiento de una directriz de seguridad.- Las actividades de un programa de aseguramiento deben estar bien definidas, ser prcticas y medibles.
Etapas
SAMM define cuatro funciones crticas de negocio de alto nivel. Cada funcin es una
categora de actividades que la organizacin debe cumplir en el proceso de desarrollo de
software. Estas funciones son:
I. Gobernabilidad. Est centrada en la definicin de la estrategia, en los procesos y polticas relacionadas a cmo una organizacin debe gestionar el SDLC (Software
Development Life Cycle).
II. Construccin. Se refiere a los procesos y actividades que la organizacin debe seguir para el desarrollo de la aplicacin, lo cual incluye la administracin del producto,
recoleccin de requerimientos, especificaciones de la arquitectura a alto nivel,
definicin del diseo detallado e implementacin de la aplicacin.
III. Verificacin. Se enfoca a los procesos relacionados a la revisin y pruebas de los artefactos producidos durante el desarrollo del software; incluye aseguramiento de
calidad y diferentes tipos de pruebas.
IV. Implementacin. Se refiere a las actividades relacionadas a la liberacin de la aplicacin.
Representacin grafica
Gobernabilidad
Estrategia y
mtricas de
seguridad
Capacitacin
Polticas y
cumplimiento
Construccin
Anlisis de
amenazas
Requerimientos
de seguridad Arquitectura
de
seguridad
Verificacin
Revisin de
seguridad
Revisin de
cdigo
Pruebas de
seguridad
Implementacin
Gestin de
vulnerabilid
ades
Endurecimiento
de los
ambientes
Habilitacin
operativa
Desarrollo
de software
Pgina 27 de 42
MODELO DE ETAPAS
Modelo lineal que considera que cada etapa debe ir a continuacin de la anterior, que pone
nfasis en la documentacin que resulta de cada una y que es la entrada de la siguiente. Todo
tendiente a conformar una cadena de produccin de software Sage (1956)
En 1956, el enfrentarse a un gran sistema de software como el SemiAutomated Ground
Environment (SAGE) hizo que se reconocieran los problemas inherentes a la codificacin y
esto llev al desarrollo del modelo de etapas, con el objetivo de poder mejorar estos nuevos
problemas.
Etapas Este modelo estipula que el software ser desarrollado en sucesivas etapas:
Plan operativo. Etapa donde se define el problema a resolver, las metas del proyecto, las metas de calidad y se identifica cualquier restriccin aplicable al proyecto.
Especificacin de requerimientos. Permite entregar una visin de alto nivel sobre el proyecto, poniendo nfasis en la descripcin del problema desde el punto de vista de
los clientes y desarrolladores. Tambin se considera la posibilidad de una
planificacin de los recursos sobre una escala de tiempos.
Especificacin funcional. Especifica la informacin sobre la cual el software a desarrollar trabajar.
Diseo. Permite describir como el sistema va a satisfacer los requerimientos. Esta etapa a menudo tiene diferentes niveles de detalle. Los niveles ms altos de detalle
generalmente describen los componentes o mdulos que formarn el software a ser
producido. Los niveles ms bajos, describen, con mucho detalle, cada mdulo que
contendr el sistema.
Implementacin. Aqu es donde el software a ser desarrollado se codifica. Dependiendo del tamao del proyecto, la programacin puede ser distribuida entre
distintos programadores o grupos de programadores. Cada uno se concentrar en la
construccin y prueba de una parte del software, a menudo un subsistema. Las
pruebas, en general, tienen por objetivo asegurar que todas las funciones estn
correctamente implementadas dentro del sistema.
Integracin. Es la fase donde todos los subsistemas codificados independientemente se juntan. Cada seccin es enlazada con otra y, entonces, probada. Este proceso se
repite hasta que se han agregado todos los mdulos y el sistema se prueba como un
todo.
Validacin y verificacin. Una vez que el sistema ha sido integrado, comienza esta etapa. Es donde es probado para verificar que el sistema es consistente con la
definicin de requerimientos y la especificacin funcional. Por otro lado, la
verificacin consiste en una serie de actividades que aseguran que el software
Pgina 28 de 42
implementa correctamente una funcin especfica. Al finalizar esta etapa, el sistema
ya puede ser instalado en ambiente de explotacin.
Mantencin. La mantencin ocurre cuando existe algn problema dentro de un sistema existente, e involucrara la correccin de errores que no fueron descubiertos
en las fases de prueba, mejoras en la implementacin de las unidades del sistema y
cambios para que responda a los nuevos requerimientos. Las mantenciones se puede
clasificar en: correctiva, adaptativa, perfectiva y preventiva.
Representacion grafica
MODELO DE PROCESO DE DESARROLLO UNIFICADO (RUP) Durante varios aos se ha utilizado el modelo tradicional en cascada, demostrando en la
prctica que no refleja en la realidad la complejidad inherente al proceso de desarrollo de
software. Este problema es derivado de la naturaleza implcita de la estructura de este
modelo, definido por una secuencia de grandes etapas que requieren alcanzar hitos que deben
ser concluidos antes de continuar con la siguiente fase.
Como una alternativa de solucin a este problema, se definieron posteriormente los modelos
iterativos e incrementales que trabajan adecuadamente con niveles altos de riesgo, y permiten
entregar liberaciones de software en etapas tempranas tal es el caso del Proceso Unificado
propuesto por IBM, que incluye prcticas claves y aspectos relacionados a la planeacin
estratgica y administracin de riesgos y actualmente guan de forma natural el proceso de
Plan operativo
Especificacin de
requerimientos
Especificacin
funcional
Diseo
Implementacin
Integracin
Validacin y
verificacin
Mantencin
Pgina 29 de 42
desarrollo de software complejo por lo que ha sido considerado como un estndar el
desarrollo de software en las empresas.
El proceso unificado conocido como RUP, es un modelo de software que permite el
desarrollo de software a gran escala, mediante un proceso continuo de pruebas y
retroalimentacin, garantizando el cumplimiento de ciertos estndares de calidad. Aunque
con el inconveniente de generar mayor complejidad en los controles de administracin del
mismo. Sin embargo, los beneficios obtenidos recompensan el esfuerzo invertido en este
aspecto.
El proceso de desarrollo constituye un marco metodolgico que define en trminos de metas
estratgicas, objetivos, actividades y artefactos (documentacin) requerido en cada fase de
desarrollo. Esto permite enfocar esfuerzo de los recursos humanos en trminos de
habilidades, competencias y capacidades a asumir roles especficos con responsabilidades
bien definidas.
Etapas
Fase de concepcin. Esta fase tiene como propsito definir y acordar el alcance del
proyecto con los patrocinadores, identificar los riesgos potenciales asociados al
proyecto, proponer una visin muy general de la arquitectura de software y producir
el plan de las fases y el de iteraciones.
Fase de elaboracin. En la fase de elaboracin se seleccionan los casos de uso que
permiten definir la arquitectura base del sistema y se desarrollaran en esta fase, se
realiza la especificacin de los casos de uso seleccionados y el primer anlisis del
dominio del problema, se disea la solucin preliminar.
Fase de construccin. El propsito de esta fase es completar la funcionalidad del
sistema, para ello se deben clarificar los requerimientos pendientes, administrar los
cambios de acuerdo a las evaluaciones realizados por los usuarios y se realizan las
mejoras para el proyecto.
Fase de transicin. El propsito de esta fase es asegurar que el software est
disponible para los usuarios finales, ajustar los errores y defectos encontrados en las
pruebas de aceptacin, capacitar a los usuarios y proveer el soporte tcnico necesario.
Se debe verificar que el producto cumpla con las especificaciones entregadas por las
personas involucradas en el proyecto.
Pgina 30 de 42
Representacin grafica
Desventajas
Este tipo de metodologa no ha sido aplicada probablemente por su complejidad de
administracin o desconocimiento de la misma, desaprovechando sus considerables ventajas
respecto a los mtodos tradicionales. Por esto, es necesario entonces desarrollar mecanismos
de apropiacin tecnolgica ms eficaces, que permitan mantener actualizadas las prcticas
organizacionales y los marcos de referencia aqu mencionados. Es aqu, donde es necesario
considerar que el conocimiento de la metodologa y desarrollo de habilidades de los analistas,
programadores, administradores de bases de bases de datos y dems miembros del equipo de
desarrollo, comienzan desde su preparacin universitaria donde es necesario conocer este
enfoque y aplicarlo en proyectos en donde utilicen las guas de trabajo definidas en el RUP
y desarrollen los artefactos asociados esperando que con la prctica alcancen un nivel de
madurez en la asimilacin del proceso unificado (RUP).
MODELO XP La programacin extrema (XP) es un modelo de proceso de software que toma los principios
y practicas aceptadas, y las lleva a niveles extremos.
Las creencias de modelo son las siguientes:
Los cambios en un sistema son frecuentes.
Se deben manejar los cambios de manera incremental.
Se debe apoyar los cambios.
Se debe lograr una rpida retroalimentacin.
Se debe lograr un trabajo de calidad.
Se debe buscar la simpleza.
Pgina 31 de 42
Los equipos de desarrollo trabajan directamente con el cliente durante interaccin
con el usuario. ciclos cortos de una o dos semanas como mximo.
La entrega de las versiones del software ocurre muy temprano y en intervalos muy
cortos para maximizar la
Existe una fuerte colaboracin entre el equipo de desarrollo mientras trabaja en el
cdigo.
El cdigo se prueba y depura a lo largo del proceso de desarrollo.
Existen indicadores que miden el progreso del proyecto para poder actualizar el
plan de desarrollo.
Representacin grafica
Variables
La metodologa XP define cuatro variables para cualquier proyecto de software:
costo, tiempo, calidad y alcance.
Adems, se especifica que, de estas cuatro variables, slo tres de ellas podrn ser
fijadas arbitrariamente por actores externos al grupo de desarrolladores (clientes
y jefes de proyecto).
El valor de la variable restante podr ser establecido por el equipo de desarrollo,
en funcin de los valores de las otras tres.
Pgina 32 de 42
Ventajas y desventajas
Ventajas:
Cambios en los objetivos y prioridades son naturales.
Sin sobrecarga al equipo de desarrollo
El cliente desde las primeras etapas tiene software que puede usar y probar.
En cualquier momento puede parar el desarrollo, quedndose con un producto
que representa lo invertido hasta esa fecha.
Desventajas:
Es necesario un representante del cliente en todo momento del desarrollo.
Todo el proceso de desarrollo se basa en la comunicacin, si la misma es
costosa o lenta perjudica enormemente el tiempo y costo del desarrollo.
No sirve para proyectos grandes debido a sus requerimientos de
comunicacin.
MODELO DE DESARROLLO EVOLUTIVO
Como el modelo de desarrollo incremental, el modelo de desarrollo evolutivo (algunas veces
denominado como prototipado evolutivo) construye una serie de grandes versiones sucesivas
de un producto. Sin embargo, mientras que la aproximacin incremental presupone que el
conjunto completo de requerimientos es conocido al comenzar, el modelo evolutivo asume
que los requerimientos no son completamente conocidos al inicio del proyecto.
En el modelo evolutivo, los requerimientos son cuidadosamente examinados, y slo esos que
son bien comprendidos son seleccionados para el primer incremento. Los desarrolladores
construyen una implementacin parcial del sistema que recibe slo estos requerimientos.
Pgina 33 de 42
Etapas
El sistema es entonces desarrollado, los usuarios lo usan, y proveen retroalimentacin a los
desarrolladores. Basada en esta retroalimentacin, la especificacin de requerimientos es
actualizada, y una segunda versin del producto es desarrollada y desplegada. El proceso se
repite indefinidamente.
El desarrollo de software en forma evolutiva requiere un especial cuidado en la manipulacin
de documentos, programas, datos de test, etc. desarrollados para distintas versiones del
software. Cada paso debe ser registrado, la documentacin debe ser recuperada con facilidad,
los cambios deben ser efectuados de una manera controlada.
Representacin grafica
OTROS MODELOS DE DESARROLLO
PROCESO DE SOFTWARE PERSONAL (PSP)
Mejora la planeacin del trabajo, conoce con precisin el desempeo mide la calidad de los
productos y mejora las tcnicas para su desarrollo.
Tambin muestra cmo aplicar mtodos avanzados de ingeniera a sus proyectos y/o deberes
diarios. Asimismo provee mtodos de estimacin y de planeacin muy bien detallados que
son necesarios para dar un seguimiento a su trabajo.
Especificacin
inicial
Desarrollo del
producto
Implementacin,
uso y evolucin
Re-especificacin
Versiones del
software
Pgina 34 de 42
Fases del PSP
Descripcin del problema
Especificacin de componentes
Formas de proceso
Estimadores del tamao del producto y tiempos en base a histricos
Representacin grafica
MODELO DEL COSTO DE UN PROYECTO
Otro punto de vista para el ciclo de vida de desarrollo de un producto de programacin es la
consideracin del costo de la realizacin de las distintas actividades del proyecto. El costo de
un proyecto es la suma de los costos incurridos en cada fase, y stos, a su vez, incluyen los
costos de la realizacin de los procesos y preparacin de los documentos de esa fase, ms los
costos de verificacin de la consistencia de estos productos con los de las fases previas.
Las modificaciones y correcciones a los productos de las fases previas son necesarias, dado
que durante el desarrollo de la fase actual se encontrarn imprecisiones, inconsistencias y
omisiones en sus productos y, adems, porque los requisitos, programacin, prioridades o
presupuesto del cliente pueden cambiar, hecho que producira modificaciones.
El costo de produccin de la Definicin del sistema y del Plan del proyecto es el mismo de
realizar las planeacin y preparacin de los documentos, ms el costo de verificacin de que
la Definicin del sistema establece precisamente las necesidades del cliente y el costo de
verificacin de que el Plan del proyecto es factible.
El costo de preparacin de la Especificacin de requisitos para la produccin de software
incluye el costo de definir requisitos y preparar documentos, ms el costo de modificar y
corregir la Definicin del sistema y el Plan del proyecto, ms el costo de verificacin de que
Pgina 35 de 42
la Especificacin est completa y sea consistente con respecto a la Definicin del sistema y
las necesidades del cliente.
De la misma manera, el costo del diseo es el costo de las actividades propias y la generacin
de los documentos, ms el costo de modificar y corregir la Definicin del sistema, el Plan del
proyecto y la Especificacin de requisitos para la produccin de software, ms el costo de
verificacin del diseo contra los requisitos, la Definicin del sistema y el Plan del proyecto.
El costo de la instrumentacin del producto es el costo de la conversin, documentacin,
depuracin y pruebas del cdigo fuente, ms el costo de la terminacin del Manual del
usuario, el plan de verificacin, los procedimientos de mantenimiento, y las instrucciones de
instalacin y entrenamiento, ms el costo de modificar y corregir la Definicin del sistema,
el Plan del proyecto, la Especificacin de requisitos para la produccin de software, la
Especificacin del diseo, y el Plan de verificacin ms el costo de verificacin de que la
instrumentacin est completa y sea consistente con respecto a la Definicin del sistema, la
Especificacin de requisitos para la produccin de software y los documentos del diseo.
El costo de las pruebas del sistema incluye el costo de planear y llevar a cabo las pruebas,
ms el costo de las modificaciones al cdigo fuente y a los documentos externos durante
ellas, ms el costo de verificacin de que las pruebas validan adecuadamente al producto.
Por ltimo, el costo del mantenimiento es la suma de los costos de llevar a cabo mejoras al
sistema, hacer adaptaciones para nuevas condiciones de operacin, y encontrar fallas. Cada
una de estas actividades puede comprender la modificacin de alguno o de todos los
documentos y la ejecucin de un gran nmero de casos de prueba para verificar la correccin
de la modificacin.
Dado este punto de vista del ciclo de vida de un producto, no es difcil entender por qu es
tan caro efectuar modificaciones o correcciones a la Especificacin de requisitos e para la
produccin de software o documentos del diseo cuando se estn en fases posteriores. No
slo se deben modificar los documentos, sino que todos los productos intermedios deben
actualizarse, y en cada fase siguiente se necesitan coordinar ms gente y ms detalles.
EL MTODO PSC
Este modelo toma otro enfoque, igualmente valido, para la modelaci6n del proceso de
desarrollo al aceptar que varios puntos de vista o perspectivas sean considerados. Las
principales perspectivas descritas dentro del FSC son:
Etapas
Pragmtica. Visualiza al sistema en el contexto de su ambiente.
Entrada/Salida. Estudia el comportamiento externo del sistema y c6mo va a ser
adquirido.
Pgina 36 de 42
Constructiva. Examina el sistema en trminos de una colecci6n de funciones y
recursos.
Operativa Estudia el comportamiento interno del sistema.
El uso del PSC involucra (como el de espiral) cuatro fases principales. Esta vez, cada una de
las fases concierne a los problemas de decisin de una de las perspectivas anteriores. El
modelo identifica la pragmtica como el nivel ms abstracto. En esta fase, el sistema se
estudia en trminos de su relacin con y su efecto en el ambiente en el que va a ser colocado.
El modelo necesita que el diseo, la prueba y el aseguramiento sean completados en este
nivel de abstracci6n antes de moverse a la siguiente fase.
TCNICAS DE 4TA GENERACIN
El trmino tcnicas de cuarta generacin (T4G) abarca un amplio espectro de herramientas
de software que tienen algo en comn: todas facilitan al ingeniero del software la
especificacin de algunas caractersticas del software a alto nivel. Luego, la herramienta
genera automticamente el cdigo fuente basndose en la especificacin del tcnico. Cada
vez parece ms evidente que cuanto mayor sea el nivel en el que se especifique el software,
ms rpido se podr construir el programa. El paradigma T4G para la ingeniera del software
se orienta hacia la posibilidad de especificar el software usando formas de lenguaje
especializado o notaciones grficas que describa el problema que hay que resolver en
trminos que los entienda el cliente.
Actualmente, un entorno para el desarrollo de software que soporte el paradigma T4G puede
incluir todas o algunas de las siguientes herramientas: lenguajes no procedimentales de
consulta a bases de datos, generacin de informes, manejo de datos, interaccin y definicin
de pantallas, generacin de cdigos, capacidades grficas de alto nivel y capacidades de hoja
de clculo, y generacin automatizada de HTML y lenguajes similares utilizados para la
creacin de sitios web usando herramientas de software avanzado. Inicialmente, muchas de
estas herramientas estaban disponibles, pero slo para mbitos de aplicacin muy
especficos, pero actualmente los entornos T4G se han extendido a todas las categoras de
aplicaciones del software.
Al igual que otros paradigmas, T4G comienza con el paso de reunin de requisitos.
Idealmente, el cliente describe los requisitos, que son, a continuacin, traducidos
directamente a un prototipo operativo. Sin embargo, en la prctica no se puede hacer eso.
El cliente puede que no est seguro de lo que necesita puede ser ambiguo en la especificacin
de hechos que le son conocidos y puede que no sea capaz o no est dispuesto a especificar la
informacin en la forma en que puede aceptar una herramienta T4G. Por esta razn, el
dilogo cliente desarrollador descrito por los otros paradigmas sigue siendo una parte
esencial del enfoque T4G
Pgina 37 de 42
MODELO DE TRANSFORMACIN
Desde la perspectiva de la evolucin del software y las leyes de Lehman, se hace una revisin
del ciclo de vida del software, el cual lleva al desarrollo de un mtodo que se podra
denominar el modelo de transformacin.
Desde la ptica de lan Sommerville, este modelo se caracteriza por que... un concepto de
aplicacin se transforma de modo paulatino en una especificacin formal de software. Esto
implica la reduccin de la cantidad de informacin bruta en cada etapa de la transformacin,
proceso que el denomina abstraccin. Una vez establecida la especificacin, se aade la
informacin (a esto le llama materializacin) y el sistema abstracto se transforma, mediante
un conjunto de notaciones formales, en un programa operacional.
Las bases de una concepcin de transformacin en el desarrollo de software, las explica el
mismo Lehman (1980). Al considerar una clasificacin de los programas y, mediante sta,
definir un mtodo sistemtico que permita transformar programas de una clase ms compleja
en otra de complejidad menor.
La clasificacin est basada en el reconocimiento del hecho que cualquier programa es un
modelo de un modelo dentro de una teora de un modelo de una abstraccin de alguna porcin
del mundo o de algn universo del discurso. La clasificacin categoriza a los programas en
tres clases, S, P y E.
ProgramasS.
Los ProgramaS son aquellos cuya funcin puede ser definida formalmente por y derivable
desde, una especificacin.... Las sentencias del problema, el programa y la solucin, cuando
es obtenida, puede relacionarse con un mundo externo. Pero esto es una relacin casual y no
causal. En efecto, cuando esto existe somos libres para cambiar nuestro inters y redefinir el
problema. Pero el resultado de esto es un nuevo programa para esta solucin. Puede ser
posible y eficiente derivar el nuevo programa desde el antiguo. Pero es un programa diferente
que define una solucin para un problema diferente.
Programas PE
En los Programas P (solucin de problemas del mundo real)... a despecho de el hecho de que
el problema a ser resuelto pueda ser definido precisamente, la aceptacin de la solucin est
determinada por el medio ambiente en que est involucrada. La solucin obtenida ser
evaluada por comparacin con el medio ambiente real... En los Programas S, el juicio sobre
la correccin, y por lo tanto el valor, del programa est relacionado con la definicin
solamente de esta especificacin, las sentencias del problema que debe ser reflejado. En los
Programas P, el asunto no est centrado en el problema pero si sobre el valor y la validez de
la solucin obtenida, esto es sobre el contexto del mundo real.
Pgina 38 de 42
Programas E.
La tercera clase, los Programas E, estn inherentemente ms inclinados al cambio. Estos son
programas que mecanizan una actividad humana o social... La instalacin de los programas
junto con este sistema asociado...cambia la real naturaleza del problema a ser resuelto, el
programa puede hasta convertirse en parte del mundo que el mismo modela, est embebido
en l. No como otros sistemas artificiales donde,..., el cambio es ocasional, aqu este aparece
continuamente. La presin del cambio est construida con l. Los Programas P y E estn
estrechamente relacionados, podemos establecer la clase unin de P y E como
ProgramasA.
stos difieren de los ProgramasS en el sentido que representan una aplicacin computacional
en el mundo real.
Los programas son siempre probablemente correctos... muchos de los componentes ms
importantes de un gran programa son del tipo S... un ProgramaA puede siempre ser
particionado y estructurado de manera que todos sus elementos sean ProgramasS.
En esta ltima afirmacin est el trasfondo de la idea de Lehman en relacin a la posibilidad
de definir un metalenguaje que permita reducir programas complejos o "del mundo real" a
especificaciones formales de programas. As, segn Boehm: el modelo de transformacin
asume la existencia de una capacidad de automticamente convertir una especificacin
formal de un producto de software en un programa que satisfaga la especificacin.
Pasos
Los pasos que son prescritos por el modelo de transformacin son:
Una especificacin formal de la mejor comprensin inicial del producto deseado.
Transformacin automtica de la especificacin en cdigo.
Un ciclo iterativo, si es necesario, para mejorar la ejecucin de el cdigo resultante
para dar una gua de optimizacin al sistema de transformacin.
Probar el producto resultante, y
Un ciclo interactivo externo para ajustar las especificaciones basadas en el resultado
de la experiencia operacional, y para rederivar, reoptimizar, y probar el producto de
software ajustado.
Ventajas y desventajas
El modelo de transformacin evita las dificultades de tener que modificar un cdigo que tiene
una estructuracin muy pobre debido a las repetidas optimizaciones , mediante la posibilidad
de que las modificaciones sean fabricadas a travs de las especificaciones, esto sin intervenir
el cdigo, el cual se reconstruira cada vez.
Con este modelo se puede aumentar, al menos tericamente, la capacidad de dar respuesta
rpida a la evolucin que connaturalmente estara asociada a las organizaciones, pero, al igual
Pgina 39 de 42
que el modelo espiral, se ha alejado del problema central que se ha discutido hasta ahora, que
es cmo acortar la brecha conceptual entre los dominios del desarrollador y del usuario, si es
que es posible.
En relacin a este ltimo y central problema, la crtica que se puede hacer al modelo de
transformacin es que necesariamente al transformar un problema del tipo A en problemas
S, se est aplicando un reduccionismo que, probablemente, limite la expresin de toda la
complejidad del problema original, particularizando la solucin a casos en que sea dable
resolver sistemticamente y dejando fuera situaciones en que esta formalizacin no sea
posible. En ese sentido, no sera factible que todos los problemas A sean transformables a
unidades S. Adems, esto no evita la necesidad de tener que caracterizar un problema del
tipo A, lo que remitira necesariamente a la cuestin original.
MODELO DE MTODOS FORMALES
El modelo de mtodos formales comprende un conjunto de actividades que conducen a la
especificacin matemtica del software de computadora. Los mtodos formales permiten que
un ingeniero de software especifique, desarrolle y verifique un sistema basado en
computadora aplicando una notacin rigurosa y matemtica.
Algunas organizaciones de desarrollo del software actualmente aplican una variacin de este
enfoque, llamado ingeniera del software de sala limpia [MIL87, DYE921.
Cuando se utilizan mtodos formales durante el desarrollo, proporcionan un mecanismo para
eliminar muchos de los problemas que son difciles de superar con paradigmas de la
ingeniera del software. La ambigedad, lo incompleto y la inconsistencia
Recommended