Академический Документы
Профессиональный Документы
Культура Документы
Modelo en Cascada.
Modelos Evolutivos.
Modelos Especiales.
El Proceso Unificado de Desarrollo de software.
Modelo de Proceso de Software IEEE.
Herramientas CASE.
Competencia a desarrollar :
Comprender los Modelos Prescriptivos del desarrollo de Sistemas de
Informacin.
Examen escrito ()
35%
50%
Actitud
15%
Bibliografa:
Cohen y Asin.; Sistemas de Informacin un enfoque de toma de
decisiones. 3 Edicin. Mc Graw Hill.2000
EDWARDS, CHRIS; JOHN WARD y ANDY BYTHEWAY. Fundamentos
de Sistemas de Informacin. 2da. Edicin. Ed. Prentice Hall.
1998
Preguntas detonantes
Qu es?
Porqu es importante?
Qu elemento los
componen?
Cmo se aplica?
Fuentes de informacin:
a. Significado Dentro del Ciclo de Vida de
Desarrollo de Sistemas.
b. Modelos de Desarrollo de software
i. Modelos de Desarrollo Estructurado
Sommerville. Seccin
4.5.1
Pressman. Seccin 2.10
8.5
1. Modelo en Cascada.
3. RUP
Un modelo de
ciclo
de
vida
define el estado
de las fases a
travs de las
cuales se mueve
un proyecto de
desarrollo
de
software.
Definicin
de un Modelo de
Ciclo de Vida
Un modelo de
ciclo de vida de
software es una
vista de las
actividades que
ocurren durante
el desarrollo de
software, intenta
determinar el
orden de las
etapas
involucradas y
los criterios de
transicin
asociadas entre
Un modelo de ciclo
de vida del
software:
Describe las fases principales de desarrollo de
software.
Define las fases primarias esperadas de ser ejecutadas
durante esas fases.
Ayuda a administrar el progreso del desarrollo, y
Provee un espacio de trabajo para la definicin de un
detallado proceso de desarrollo de software.
MODELOS EVOLUTIVOS
Qu es un modelo de desarrollo?
Un modelo de desarrollo es una representacin abstracta de un proceso de
software, cada modelo representa el proceso de desarrollo de software de una
manera en particular. A pesar de estar definidos claramente, no representan
necesariamente la realidad de cmo se debe desarrollar el software, sino que
establece un enfoque comn. Un modelo puede ser modificado y adaptado de
acuerdo a las necesidades del software en desarrollo.
En forma general podemos clasificar los modelos de desarrollo en 3 grupos:
Desventajas:
Los proyectos reales raramente siguen el flujo secuencial que propone el modelo, siempre hay iteraciones y se crean problemas
en la aplicacin del paradigma.
Normalmente, es difcil para el cliente establecer explcitamente al principio todos los requisitos.
El ciclo de vida clsico lo requiere y tiene dificultades en acomodar posibles incertidumbres que pueden existir al comienzo de
muchos productos.
El cliente debe tener paciencia. Hasta llegar a las etapas finales del proyecto, no estar disponible una versin operativa del
programa. Un error importante no detectado hasta que el programa este funcionando puede ser desastroso.
La Inflexibilidad al dividir el proyecto en distintas etapas hace difcil responder al cambio en los requerimientos del cliente.
Entonces, este modelo slo es apropiado cuando los requerimientos se han entendido bien y los cambios estn bastante
limitados durante el proceso de diseo.
Entrega incremental
Ian Sommerville, 4.2.1
El modelo de desarrollo en cascada requiere:
1.Obtener los Requerimientos del Sistema antes de
empezar el Diseo.
2.Que el Diseador cumpla estrategias particulares de
Diseo antes de la Implementacin.
3.Los cambios de Requerimientos implican rehacer el
trabajo de captura de Requerimientos, de Diseo e
Implementacin.
4.La separacin de las etapas origina sistemas bien
documentados, slidos, que pueden evolucionar ms
fcilmente.
Modelos Evolutivos:
Especificacin
Esbozo de
la
descripcin
Desarrollo
Validacin
Versin Inicial
Versiones
Versiones
Versiones
intermedias
intermedias
intermedias
Versin final
(Hay 2
Iteracin de procesos
Ian Sommerville, 4.2
Iteracin de
procesos
El proceso del software no es un
proceso nico. Las actividades del
proceso se repiten regularmente a
medida que el sistema se va
rehaciendo, en respuesta a peticiones
de cambios. Hay dos modelos de
procesosparaapoyarestaiteracin:
1. Entrega incremental. La
especificacin, el diseo y
la
implementacin
del
software se dividen en una
serie de incrementos, que
se desarrollan por turnos.
2. Desarrollo en espiral. El
desarrollo del sistema gira
en espiral hacia fuera,
empezando con un esbozo
inicial y terminando con el
desarrollo final.
Entrega incremental
Desarrollo Evolutivo (caracteres)
Desarrollo Evolutivo
caractersticas:
1. Permite
que
los
Requerimientos
(Anlisis) y las decisiones
de Diseo se retrasen.
2. Origina
un
software
dbilmente estructurado y
difcil de comprender y
mantener.
Entrega incremental
Caractersticas
La Entrega Incremental es un enfoque intermedio
que combina las ventajas de ambos modelos:
Los clientes identifican, a grandes rasgos, los servicios
que proporcionar el sistema.
Identifican qu servicios son ms importantes y cules
menos.
Entonces, se definen varios incrementos en donde cada
uno proporciona una funcionalidad distinta del sistema.
Entrega incremental
Caractersticas
Los incrementos que proporcionen servicios con mayor prioridad
son desarrollados y entregados primero.
Una vez que se identifican los incrementos del sistema, se definen
en detalle los requerimientos para los servicios que se van a
entregar en el primer incremento, que es inmediatamente
desarrollado.
Durante el desarrollo, se puede llevar a cabo un anlisis adicional
de requerimientos para los requerimientos posteriores, pero no se
aceptan cambios en los requerimientos para el incremento actual.
Una vez que un incremento se completa y entrega, los clientes
pueden ponerlo en servicio.
Entrega incremental
Caractersticas
Hay una entrega temprana de partes de la
funcionalidad del sistema.
El cliente puede experimentar con el sistema, lo que
le ayuda a clarificar sus requerimientos para los
incrementos posteriores y para las ltimas versiones
del incremento actual.
Tan pronto como se completan nuevos incrementos,
se integran en los existentes.
La funcionalidad del sistema mejora con cada
incremento entregado.
Entrega incremental
Caractersticas
Los servicios comunes se pueden implementar
al inicio del proceso o de forma incremental tan
pronto como sean requeridos.
Entrega incremental
Ventajas
1. Los clientes no tienen que esperar a que se entregue
el sistema completo para poder sacarle provecho. El
primer incremento satisface los requerimientos ms
crticos y se puede utilizar el software inmediatamente.
2. Los clientes pueden utilizar los incrementos iniciales
como prototipos y obtener experiencia sobre los
requerimientos de los incrementos posteriores.
3. Existe un bajo riesgo de falla total del proyecto.
Aunque se pueden encontrar problemas en algunos
incrementos, lo normal es que el sistema se entregue
de forma satisfactoria.
Entrega incremental
Ventajas
4. Como los servicios ms prioritarios se entregan primero,
y los incrementos posteriores se integran, despus, en ellos;
a esos servicios ms importantes se les hacen ms pruebas.
As, es menos probable que haya fallas en las partes ms
importantes del sistema.
Entrega incremental
Desventajas
Los incrementos deben ser relativamente pequeos (no
ms de 20.000 lneas de cdigo) y cada uno debe
entregar alguna funcionalidad del sistema.
Puede ser difcil adaptar los requerimientos del cliente a
incrementos de tamao apropiado.
Muchos sistemas requieren un conjunto de recursos que
se utilizan en diferentes partes del sistema.
Como los requerimientos no se definen en detalle hasta
que un incremento se implementa, puede ser difcil
identificar los recursos comunes que requieren todos los
incrementos.
Desarrollo en espiral
Ian Sommerville, 4.2.2
El modelo en espiral del proceso del software fue
propuesto por Boehm (1988).
No representa al proceso del software como una
secuencia de actividades, sino como una espiral.
Cada ciclo en la espiral representa una fase del proceso
del software.
As. el ciclo ms interno alude a la Viabilidad del
Sistema, el siguiente ciclo a la Definicin de
Requerimientos, el siguiente ciclo al Diseo del
Sistema, y as sucesivamente.
Desarrollo en espiral
4 Sectores de cada Ciclo
Cada ciclo de la espiral se divide en cuatro sectores:
1. Definicin de objetivos. Para esta fase del
proyecto se definen los objetivos especficos.
Se identifican las restricciones del proceso y el
producto, y se traza un plan detallado de gestin.
Se identifican los riesgos del proyecto.
Dependiendo de estos riesgos, se planean estrategias
alternativas.
Desarrollo en espiral
4 Sectores de cada Ciclo
2. Evaluacin y reduccin de riesgos. Se lleva a
cabo un anlisis detallado para cada uno de los riesgos
del proyecto identificados.
Se definen los pasos para reducir dichos riesgo.
Por ejemplo, si existe el riesgo de tener requerimientos
inapropiados, se puede desarrollar un prototipo del
sistema.
Desarrollo en espiral
4 Sectores de cada Ciclo
3. Desarrollo y validacin. Despus de la evaluacin
de riesgos, se elige un modelo para el desarrollo del
sistema.
Por ejemplo, si hay riesgos en la interfaz de usuario =>
construir prototipos evolutivos.
Si hay riesgos de seguridad => un desarrollo basado en
transformaciones formales.
Si el mayor riesgo es la integracin de los subsistemas
=> Modelo en Cascada.
Desarrollo en espiral
4 Sectores de cada Ciclo
4. Planificacin. El proyecto se revisa y se toma la
decisin de si se debe continuar con un ciclo posterior
de la espiral.
Si se decide continuar, se desarrollan los planes para la
siguiente fase del proyecto.
Desarrollo en espiral
Figura Ilustrativa
Desarrollo en espiral
Desarrollo en espiral
La consideracin del RIESGO
Los riesgos originan problemas en el proyecto; como
ser: problemas de agendas y excesos en los costos.
Por eso la disminucin de riesgos es una actividad muy
importante en la gestin del proyecto.
Un ciclo de la espiral empieza con la elaboracin de
objetivos, como el rendimiento y la funcionalidad.
Entonces se enumeran alternativas de alcanzar estos
objetivos y las restricciones de cada una.
Desarrollo en espiral
Conclusiones
Cada alternativa se evala contra cada objetivo
Se identifican las fuentes de riesgo del proyecto.
El siguiente paso es resolver estos riesgos, mediante: la
recopilacin de informacin, detallar ms el anlisis, la
construccin de prototipos y la simulacin.
Una vez que se han evaluado los riesgos, se desarrolla,
seguido de una actividad de planificacin para la
siguiente fase del proceso.
Pgina 42
Pgina 43
Pgina 44
45
Casos de Uso
Qu es un caso de uso?
Un caso de uso es una secuencia de interacciones entre uno o
varios actores y el sistema que tiene lugar bajo ciertas
circunstancias y que:
Es iniciada por un actor.
Se puede describir como una secuencia de actividades.
Produce un resultado de valor observable para algn actor.
Pgina 47
Ejemplo
Pgina 49
Sacar dinero
Ingresar dinero
Cliente del
banco
Transferencia
Pgina 50
IEEE/EIA 12207
Tecnologa de la Informacin
Documentacin
GestindelaConfiguracin
AseguramientodelaCalidad
Verificacin
Operacin
Validacin
RevisinConjunta
Desarrollo
Auditora
Mantenimiento
ResolucindeProblemas
Procesos Organizacionales del Ciclo de Vida
Administracin/Gestin
Infraestructura
Mejoramiento
Capacitacin
Objetivos
de la
Tecnologa
CASE
Componentes
de una
Herramienta
CASE
Clasificacin
La siguiente clasificacin es la ms habitual basada en las fases del ciclo de
desarrollo que cubren:
Upper CASE (U-CASE), herramientas que ayudan en las fases de
planificacin, anlisis de requisitos y estrategia del desarrollo, usando, entre
otros diagramas UML.
Middle CASE (M-CASE), herramientas para automatizar tareas en el anlisis
y diseo de la aplicacin.
Lower CASE (L-CASE), herramientas que semi-automatizan la generacin de
cdigo, crean programas de deteccin de errores, soportan la depuracin de
programas y pruebas. Adems automatizan la documentacin completa de la
aplicacin. Aqu pueden incluirse las herramientas de Desarrollo rpido de
aplicaciones.
EasyCASE
EasyCASE Profesional, el centro de productos para procesos, modelamiento de datos y eventos, e Ingeniera de Base de Datos, es un producto para la generacin de esquemas de base de
datos e ingeniera reversa, trabaja para proveer una solucin comprensible para el diseo, consistencia y documentacin del sistema en conjunto.
Oracle Designer
Oracle Designer es un juego de herramientas para guardar las definiciones que necesita el usuario y automatizar la construccin rpida de aplicaciones cliente/servidor flexibles y grficas.
Integrado con Oracle Developer, Oracle Designer provee una solucin para desarrollar sistemas empresariales cliente/servidor de segunda generacin.
PowerDesigner
PowerDesigner es una suite de aplicaciones de Powersoft para la construccin, diseo y modelado de datos a travs de diversas aplicaciones. Es la herramienta para el anlisis, diseo
inteligente y construccin slida de una base de datos y un desarrollo orientado a modelos de datos a nivel fsico y conceptual, que dan a los desarrolladores de aplicaciones
Cliente/Servidor la ms firme base para aplicaciones de alto rendimiento.
System Architect
System Architect posee un repositorio nico que integra todas las herramientas, y metodologas usadas. En la elaboracin de los diagramas, el System Architect conecta directamente al
diccionario de datos, los elementos asociados, comentarios,reglas de validaciones, normalizacin, etc. Posee control automtico de diagramas y datos, normalizaciones y balanceo entre
diagramas "Padre e Hijo", adems de balanceo horizontal, que trabaja integrado con el diccionario de datos, asegurando la compatibilidad entre el Modelo de Datos y el Modelo Funcional.
SNAP
SNAP es un CASE para el desarrollo de aplicaciones en Sistemas AS/400 de IBM. Proporciona el ambiente integral de trabajo, brindando la posibilidad de construir sistemas de inmejorable
calidad, adheridos a los estndares S.A.A de IBM., totalmente documentados y ajustados a los requerimientos especficos de la organizacin, en una fraccin del tiempo y coste del que se
invertira, si se utilizaran herramientas tradicionales.