INTRODUCCION El proceso de Ingeniería de Software se basa en modelos,... como una guía para los ingenieros del software durante el...

Anuncio
INTRODUCCION
El proceso de Ingeniería de Software se basa en modelos, métodos y herramientas que sirven
como una guía para los ingenieros del software durante el proceso de desarrollo, con la
finalidad de mejorar la calidad de los proyectos, procesos y productos mediante la evolución y
medición de los mismos.
Para cualquier desarrollo de software de cualquier producto se realizan una serie de tareas
entre las ideas iníciales y el producto final. Un modelo de desarrollo de software establece el
orden en el que se harán las cosas en el proyecto, nos provee de requisitos de entrada y
salida par a cada una de las actividades.
Tanto el ciclo de vida como el modelo de desarrollo ambos se complementan para generar el
producto desde el punto de vista técnico y administrativo
Los Modelos de Desarrollo son:
 El Modelo de Cascada ó Modelo Lineal Secuencial.
 Prototipos
 El Modelo DRA

El Modelo de Espiral.

El Modelo de Procesos.
 Desarrollo incremental ó Concurrente
 El Modelo en V.

En Flor.
EL MODELO EN CASCADA
Llamado algunas veces «ciclo de vida básico», el modelo lineal secuencial sugiere un
enfoque5 sistemático, secuencial, para el desarrollo del software que comienza en un nivel de
sistemas y progresa con el análisis, diseño, codificación, pruebas y mantenimiento secuencial
para la ingeniería del software.
El modelo lineal secuencial comprende las siguientes actividades:
-
El ciclo de desarrollo de software.
Este modelo tiene una secuencia ordenada.
El trabajo de una etapa previa es la entrada del siguiente proceso.
Provee de un gran control sobre las fechas de entrega y entregables.
Establece criterios de entrada y salida en cada fase claramente definidos.
Dado que provee pocos puntos de visibilidad da la impresión de que es lento.
VENTAJAS
-
Excelente cuando se tiene un producto estable y se conoce la tecnología.
Es un método muy estructurado que funciona bien con gente de poca experiencia.
Provee estabilidad en los requerimientos.
La planeación se puede hacer anticipadamente.
Para proyectos grandes.
DESVENTAJAS
-
Tiene poca flexibilidad.
Los proyectos en la práctica raramente siguen un flujo secuencial.
Siempre es difícil para el cliente mostrar todos los requerimientos explícitamente y con
mucha anticipación.
El cliente debe tener paciencia.
Es inflexible y no motiva al cambio.
Poco apropiado para aplicaciones para la toma de decisiones.
Los usuarios tienen una participación limitada
MODELO DE CONTRUCCION DE PROTOTIPOS
Este modelo comienza con la recolección de requisitos, el desarrollador y el cliente definen los
objetivos globales para el software, originándose un diseño rápido que se centra en una
representación de esos aspectos del software que sean visibles para el usuario/cliente. De
este diseño surge la construcción de un prototipo y este es evaluado por el cliente/usuario. La
interacción ocurre cuando el prototipo satisface las necesidades del cliente.
Los pasos necesarios para la construcción de prototipos son los siguientes:
-
Evaluar la solicitud del software para determinar si el sistema es candidato para la
construcción de un prototipo. Considerando si es necesario presentar la interacción
usuario-sistema y tomando en cuenta la complejidad del desarrollo del propio prototipo.
-
Elaborar una representación abreviada de los requisitos. Utilizando alguno de los
modelos mencionados anteriormente.
-
Crear un conjunto de especificaciones de diseño para el prototipo. Centrándose en los
aspectos de mas alto nivel y no en el detalle.
-
Crear y probar el software del prototipo. De ser posible utilizar herramientas
automatizadas para tal efecto, como lenguajes de cuarta generación, módulos de
código
reusables, herramientas RAD o paquetes especializados en prototipos.
- Presentar el prototipo al usuario y orientarlo a que sea él quien lo “opere”. Aquí es
donde el usuario podrá validar sus propios requerimientos y sugerir las modificaciones
necesarias.
- Repetir los pasos IV y V hasta que todos los requisitos queden formalizados.
El modelo de construcción de prototipos se recomienda especialmente cuando los
requerimientos cambian frecuentemente, cuando no se tiene la suficiente participación del
usuario o cuando no se tienen suficientemente especificados los requerimientos. Una ventaja
importante es que el usuario va “viendo” la evolución del sistema.
El principal inconveniente es que se desconoce el tiempo que se tardará en crear un producto
aceptable. No se sabe cuantas iteraciones se tendrán que realizar. Otro inconveniente es que
se pueden adoptar prácticas de programación de prueba-y-error, sin un análisis y diseño
formales previos.
VENTAJAS
-
Versión opretiva casi desde el inicio
Alta integración del usuario con el proceso del desarrollo
Coste relativamente bajo para cada versión
Cambios de dirección en el desarrollo fáciles de realizar
DESVENTAJAS
-
El usuario no valora adecuadamente el trabajo
El sistema puede crecer desmedidamente
No aplica ingeniería
Se confunde el producto final con el prototipo
EL MODELO EN ESPIRAL
-
Los productos de software son creados a través de múltiples repeticiones del proceso
del ciclo de vida. Se rompen un mini-proyectos.
Estos modelos han sido aplicados al desarrollo de software.
Aun no han madurado al punto de ser aplicados como modelos de desarrollo con
tiempos y limitaciones de costos.
VENTAJAS
-
El producto avanza a pasos firmes solucionado riesgos en cada iteración.
El producto termina con todos los riesgos resueltos.
Se pueden incluir otros métodos de desarrollo en las iteraciones.
A medida que el costo aumenta, los riesgos se reducen.
Se tienen puntos de control en cada interacción.
DESVENTAJAS
-
Es complicado.
Requiere de mucha administración.
Difícil de definir los objetivos, metas que indiquen que podemos avanzar al siguiente
ciclo.
Se puede caer en un desarrollo de nunca acabar.
MODELO DE DESARROLLO INCREMENTAL
Los riesgos asociados con el desarrollo de sistemas largos y complejos son enormes. Una
forma de reducir los riesgos es construir sólo una parte del sistema, reservando otros aspectos
para niveles posteriores. El desarrollo incremental es el proceso de construcción siempre
incrementando subconjuntos de requerimientos del sistema. Típicamente, 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 específica de observar el desarrollo de algún otro
incremento. Así, el modelo cascada puede ser usado para administrar cada esfuerzo de
desarrollo, como se muestra en la figura.
El modelo de desarrollo incremental provee algunos beneficios significativos para los
proyectos:






Construir un sistema pequeño es siempre menos riesgoso que construir un sistema
grande.
Al ir desarrollando parte de las funcionalidades, es más fácil determinar si los
requerimientos planeados para los niveles subsiguientes son correctos.
Si un error importante es realizado, sólo la última iteración 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 próximo incremento.
VENTAJAS
-
La solución se va mejorando en forma progresiva a través de las múltiples iteraciones.
Incrementa el entendimiento del problema y de la solución por medio de los
refinamientos sucesivos.
DESVENTAJAS
-
Requiere de mucha planeación, tanto administrativa como técnica.
Requiere de metas claras para conocer el estado del proyecto.
MODELO DRA (DESARROLLO RÁPIDO DE APLICACIONES)
Es un modelo de proceso del desarrollo del software lineal secuencial que enfatiza un ciclo de
desarrollo extremadamente corto. El modelo DRA es una adaptación a “alta velocidad” del
modelo lineal secuencial en el que se logra el desarrollo rápido utilizando una construcción
basada en componentes. Si se comprenden bien los requisitos y se limita el ámbito del
proyecto, el proceso DRA permite al equipo de desarrollo crear un “sistema completamente
funcional” dentro de períodos cortos de tiempo. Cuando se utiliza principalmente para
aplicaciones de sistemas de información, el enfoque DRA comprende las siguientes fases:
modelado de gestión, de datos, del proceso, generación de aplicaciones, pruebas y entregas.
MODELO ESPIRAL
El Modelo Espiral mejora el Modelo de Cascada enfatizando la naturaleza iterativa del proceso
de diseño. Eso introduce un ciclo de prototipo iterativo. En cada iteración, las nuevas
expresiones que son obtenidas transformando otras dadas son examinadas para ver si
representan progresos hacia el objetivo.
Este método está basado en dos importantes principios:
1. la práctica de diseño profesional es caracterizar en términos de conocer, actuar en
situaciones, conversación con la situación y reflexión en acción. Hay un distinto medio
de proceso - orientación en esta aproximación al diseño. Es raro que el diseñador
tenga el diseño en su cabeza por adelantado y que después meramente lo transcriba.
Gran parte del tiempo del diseñador está inmiscuido en una progresiva relación con su
entorno. Una buena metáfora para describirlo es "la conversación con el material",
como un escultor, quien está ocupado en una conversación con el medio. El escultor
modela arcilla y luego mira y siente la escultura para ver lo que ha llegado a ser.
2. la necesidad para diseñadores de tomar la práctica de trabajo seriamente, de
supervisar las formas en las que el trabajo se está haciendo, en el sentido de una
solución abierta y desplegada para aumentar la complejidad de una situación que el
diseñador sólo entiende parcialmente. El hecho por el cual se está tratando con
"actores humanos". Los sistemas necesitan tratar o estar en contacto con las
preocupaciones del usuario. Es, definitiva, el reconocimiento de que el trabajo es
fundamentalmente social, envolviendo cooperación y comunicación.
MODELO EN ESPIRAL WIN & WIN
Una variante interesante del Modelo Espiral previamente visto es el "Modelo espiral Win-Win".
El Modelo Espiral previo sugiere la comunicación con el cliente para fijar los requisitos, en que
simplemente se pregunta al cliente qué necesita y él proporciona la información para
continuar; pero esto es en un contexto ideal que rara vez ocurre. Normalmente cliente y
desarrollador entran en una negociación, se negocia coste frente a funcionalidad, rendimiento,
calidad, etc.
"Es así que la obtención de requisitos requiere una negociación, 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 también gane
consiguiendo presupuesto y fecha de entrega realista. Evidentemente, este modelo requiere
fuertes habilidades de negociación.
El modelo Win-Win define un conjunto de actividades de negociación al principio de cada paso
alrededor de la espiral; se definen las siguientes actividades:
1. Identificación del sistema o subsistemas clave de los directivos(*) (saber qué quieren).
2. Determinación de "condiciones de victoria" de los directivos (saber qué necesitan y los
satisface)
3. Negociación de las condiciones "victoria" de los directivos para obtener condiciones
"Victoria & Victoria" (negociar para que ambos ganen).
(*) Directivo: Cliente escogido con interés directo en el producto, que puede ser premiado por
la organización si tiene éxito o criticado si no.
El modelo Win&Win hace énfasis en la negociación inicial, también introduce 3 hitos en el
proceso llamados "puntos de fijación", que ayudan a establecer la completitud de un ciclo de la
espiral, y proporcionan hitos de decisión antes de continuar el proyecto de desarrollo del
software.
EL MODELO DE PROCESO CONCURRENTE
El modelo de proceso concurrente se puede representar en forma de esquema como una
serie de actividades técnicas importantes, tareas y estados asociados a ellas.
La figura siguiente proporciona una representación esquemática de una actividad dentro del
modelo de proceso concurrente. La actividad "análisis" se puede encontrar en uno de los
estados destacados anteriormente en cualquier momento dado. De forma similar otras
actividades se pueden representar de una forma análoga. Todas las actividades existen
concurrentemente, pero residen en estados diferentes. Por ejemplo: al principio del proyecto,
la actividad de comunicación con el cliente (no mostrada en la figura) ha finalizado su primera
interacción y existe en el estado de cambios en espera. La actividad de análisis (que existía
en el estado ninguno mientras que comenzaba la comunicación inicial con el cliente) ahora
hace una transición al estado bajo desarrollo. Sin embargo, si el cliente indica que se deben
hacer cambios en requisitos, la actividad análisis cambia del estado bajo desarrollo al estado
cambios en espera.
El modelo de proceso concurrente define una serie de acontecimientos que dispararan
transiciones de estado a estado para cada una de las actividades de la ingeniería del software.
Por ejemplo, durante las primeras etapas del diseño, no se contempla una inconsistencia del
modelo de análisis. Esto genera la corrección del modelo de análisis de sucesos, que
disparara la actividad de análisis del estado hecho al estado cambios en espera.
EL MODELO EN V
Una reexaminación del modelo del ciclo de vida desde el punto de vista de aseguramiento de
calidad.
Cuando cada proceso termina su producto, las especificaciones de prueba para la probar los
procesos están también completas.
Entre las características del MODELO V tenemos que también es llamado como el modelo de
4 niveles:
-
-
-
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 análisis de requisitos y
especificaciones, se traduce en un documento de requisitos y especificaciones.
El nivel 2 se dedica a las características 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 análisis 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 implementación, en la que se desarrollan los elementos
unitarios o módulos del programa.
VENTAJAS
Entre las características del MODELO V tenemos que también es llamado como el modelo de
4 niveles: 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 análisis de requisitos y
especificaciones, se traduce en un documento de requisitos y especificaciones. El nivel 2 se
dedica a las características 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 análisis 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 implementación, en la que se
desarrollan los elementos unitarios o módulos del programa.
DESVENTAJAS
-
-
El riesgo es mayor que el de otros modelos, pues en lugar de hacer pruebas de
aceptación al final de cada etapa, las pruebas comienzan a efectuarse luego de haber
terminado la implementación, lo que puede traer como consecuencia un “roll-back” de
todo un proceso que costó tiempo y dinero.
El modelo no contempla la posibilidad de retornar a etapas inmediatamente anteriores,
cosa que en la realidad puede ocurrir.
Se toma toda la complejidad del problema de una vez y no en iteraciones o ciclos de
desarrollo, lo que disminuye el riesgo.
A pesar de todo lo antes mencionado, definitivamente se trata de un modelo más robusto y
completo que el Modelo de Cascada, y puede producir software de mayor calidad que con el
modelo de cascada.
MODELO EN FLOR
-
El propósito del desarrollo de software es el de desarrollar un producto de software.
Los equipos no deben de estar preocupados por el proceso de desarrollo mismo.
Deben de desarrollarse todas las etapas un poco al mismo tiempo hasta que el producto final
es alcanzado.
CONCLUSION
Finalmente se puede concluir acerca del tema, que los procesos de ingeniería de software
están basados en los procesos y métodos, a la definición, evaluación y medición de del
cliente. Existen modelos y procesos aplicados en las diferentes etapas del proceso de
software.
OBJETIVO GENERAL

Comprender los distintos proceso de desarrollo de software
OBJETIVOS ESPECIFICOS

Comprender los componentes que debe considerar un proceso de desarrollo de
software

Obtener un conocimiento básico y tecnológico sobre los distintos procesos de
software.

Desarrollar cada uno de los modelos y utilizar el más adecuado.
TRABAJO DE
:
Modelos de desarrollo de Software.
ASIGNATURA
:
Ingeniería de Software I
LICENCIADO
:
Marvin Antonio Romero
INTEGRANTES
:
Jaime Aurelio Manzanares
Walter Israel Benítez Campos
William Alcides Ayala Vásquez SMTS110510
FECHA DE ENTREGA:
26 de Agosto de 2010.
Descargar