Unidad 2: Modelo de Desarrollo de Programas
a) Modelo de desarrollo:
– Es una filosofía para obtener un software de unas
características
determinadas
b) Metodología de desarrollo:
– Es un proceso concreto que implementa el modelo de desarrollo
• Aquí veremos:
1. Modelo orientado a procedimientos y datos
• Metodología orientada al flujo de datos
2. Modelo orientado a objetos
• Metodología básica de desarrollo orientado a objetos (RUP - Proceso
Unificado de Rational)
1) Modelo Estructurado
Ciclo de Vida Clásico
Objetivo : análisis global, viabilidad .Hay tareas manuales.
Productos:
– Especificación del Sistema::
Objetivos, Requisitos de cada elemento, Análisis Técnico, Análisis Económico,
Viabilidad, Arquitectura, Pruebas globales
– Plan software: Objetivos, Requisitos Software, Requisitos. BD, Arquitectura.
Ingeniería del Sist.
Planificación
Análisis Requisitos
Software
Proceso de descubrimiento, refinado, modelado y especificación
•Producto:
– Especificación de Requisitos Software:
1. Descripción de la Información
2. Descripción Funcional
3. Descripción del Comportamiento
4. Criterios de Validación (del software)
• Objetivo : obtener un modelo detallado de la implementación
• Parte central del desarrollo
• Diseño preliminar:
– Estructura de datos + estructura modular + interfaz
– Producto: Doc de Diseño General
Diseño de datos, Diseño arquitectónico (módulos), Diseño de la interfaz hombremáquina, Pruebas de integración
•Diseño Detallado:
–Detalles de módulos + refinamiento
–Producto: Doc. De Diseño Detallado (o final)
Diseño detallado de los datos, Diseño arquitectónico, Diseño de interfaz hombremáquina, Diseño procedimental de cada módulo, Pruebas para cada módulo.
Diseño
Desarrollo
Codificación
Pruebas
• Objetivo:
–Creación de programas
–Aplicando un paradigma
–Utilizando lenguaje de programación
• Producto:
–Código fuente:
•Comprensible
•Bien comentado y documentado
•Siguiendo convenciones de la organización
•Objetivo: descubrir errores en el software
Elemento crítico para la calidad del software
•Tipos por ámbito:
a)Sistema, b) Validación, c) Integración, d) Unidad
•Tipos por diseño:
a) Caja negra (funcionales) b) Caja blanca (estructurales)
Mantenimiento
•Objetivo: efectuar revisiones e implica una realización de cambios en el software
Mantenimiento
•Motivos:
–Errores encontrados
–Cambios en el entorno
–Ampliaciones o mejoras
Correctivo
Adaptativo
Perfectivo
1.1) Metodología orientada al flujo de datos
1 Examen (survey)
2 Análisis Estructurado
A Modelo ambiental
B Modelo de comportamiento
C Modelo de implantación del
usuario
•Implica un estudio inicial del sistema que determina su viabilidad
•No se aplica en programas pequeños
Objetivos:
–Identificar usuarios responsables y definir la actividad del sistema
–Identificar las deficiencias actuales
–Establecer metas y objetivos del nuevo sistema
–Determinar si es factible automatizar
–Preparar el esquema del proyecto
Modela una especificación estructurada del sistema
Está dividido en:
A Modelo Ambiental: Modela el exterior del sistema
•Establece interfaces del sistema con el exterior
•Determina qué forma parte del sistema y qué no
A.1 Declaración de objetivos
Declaración textual del propósito del sistema desde el punto de vista del
usuario
EJEMPLO: Agenda personal
A.2 Diagrama de contexto
• Define las fronteras del sistema
• Describe entidades, flujos de datos y almacenes externos
• Notación: DFD
A.3 Lista de Sucesos
•Sucesos (eventos) externos a los cuales debe responder el sistema
•Consistente con el Diagrama de .Contexto.
B Modelo de comportamiento
Modela el comportamiento interno del sistema de acuerdo con el modelo
ambiental
B.1Modelo de proceso
Desarrolla:
• DFD:Grafos de flujo de datos
• Especificaciones de proceso: describen cada uno de los procesos finales
de los DFD.
•Diccionario de datos: describe los flujos y almacenes
B.2 Modelo de datos
• Desarrolla el Diagrama E-R para describir los datos almacenados en el
sistema y la relación existente entre ellos.
B.3 Diagrama de transición de estados
•Modela el comportamiento en tiempo real: reacción ante sucesos
•Relaciona sucesos y estados: cambios de estado al al recibir eventos
(transiciones)
C Modelo de Implantación del usuario
Modela características del sistema adaptadas a las características específicas
del usuario
C.1 Establecer límite Hombre – Máquina
Indicar qué procesos reciben tratamiento manual y cuáles no
C.2 Definir la interfaz de usuario
• Dispositivos E/S utilizados
• Formularios de E/S
• Diseño de pantallas (gráficas o texto)
• Secuencia de navegación
C.3 Actividades adicionales manuales
•Normas de verificación de datos y resultados
•Normas para salvaguarda de datos
C.4 Restricciones operativas
•Tiempos de respuesta
•Restricciones de configuración, ambientales, tamaños, ...
•Fiabilidad (MTBF)
•Mantenibilidad (MTTR)
•Disponibilidad (MTBF/(MTBF+MTTR))
•Seguridad
3 Diseño estructurado
A Modelo de implantación
del sistema.
B Modelo de implantación
de programas.
A Modelo de Implantación del sistema
A.1 Modelo de procesador
•Asigna el modelo esencial entre los distintos procesadores asignados al
sistema
A.2 Modelo de tareas
Asigna funcionalidad a las diferentes tareas de un procesador
B Modelo de implantación de programas
•Diseñar el diagrama de estructura, refinarlo, diseñar módulos, bases de
datos y empaquetar el diseño
B.1 Diseñar el diagrama de estructura
•Aplicar el análisis de transformaciones y de transacciones
Análisis de Transformaciones
• Estrategia descendente
•Modular
•Basada en morfología centrada en transformaciones
- Constantine
- Equilibrio entre ramas aferentes y eferentes
• Produce diagramas de estructura equilibrados, modulares y bien
dimensionados.
1.DFD con procesos finales
2. Identificar ramas aferentes y eferentes
3.Factorización de primer nivel:
•Módulo principal
• Un módulo por cada rama aferente
• Un módulo por cada rama eferente
• Un módulo para cada transformación
4. Factorizar ramas aferentes, eferentes y de transformación
Análisis de Transacciones
1 .DFD con procesos finales
2. Identificar ramas aferentes y aferentes
3. Factorización de primer nivel
4. Si se detectan transacciones, definir el centro de
transacciones
5. Factorizar ramas aferentes, eferentes y de transformación
B.2 Refinarlo
Utilizar heurísticas de diseño
Heurísticas Diseño
• Bajo Acoplamiento
–Entre módulos
– Tipo de conexión (de peor a mejor)
•Entorno común: variables globales
•Contenido: código anidado
•Contro:paso de elementos de control
•Datos: paso de parámetros
– Complejidad de la interfaz:
• Número de argumentos y su complejidad
Heurísticas Diseño
• Alta Cohesión
– De cada módulo (de peor a mejor)
– Tipos:
• Coincidental: sin relación
• Lógica: funciones similares
• Temporal: periodo de tiempo
• Procedura: parte de un algoritmo
• Comunicacional: tratan flujo datos
•Secuencia: serie de acciones
•Funcional: una función
B.3 Diseñar los módulos
Debe detallarse el comportamiento de cada
módulo: diseño detallado procedimental Utilizar
diagramas estructurados arborescentes o de
chapin
B.4 Diseñar las bases de datos o los ficheros
Diseñar físicamente las bases de datos, los ficheros
y tipos de datos Partiendo de modelo de datos
B.5 Empaquetar el diseño
Descomponer el diagrama de estructura en módulos físicos
ejecutables
4 Implementación
estructurada
Implementación
•Seleccionar el módulo a implementar
•Codificarlo
•Integrarlo en el sistema
•Estrategias:
–Descendente ( top-down)
- Ascendente ( bottom-up)
–Mixta
Descendente
•Se empieza la codificación y pruebas por los módulos superiores
•Para pruebas de unidad e integración se tienen que codificar unos módulos que
simulan los inferiores
•Estas simulaciones de denominan stubs
•Produce un sistema integral de forma progresiva e incremental
Ascendente
•
•Se empieza la codificación y pruebas por los módulos inferiores
•Para las pruebas de unidad e integración se tienen que codificar unos módulos
ficticios que coordinan la ejecución de los de abajo
•Estos módulos son llamados drivers (monitores de prueba)
•Se prueba todo el sistema al final
Mixta
Estrategia ascendente ( bottom-up) sobre las ramas aferentes
Estrategia descendente ( • top-down) para las ramas eferentes y de
transformación
• Produce un sistema integral
• El costo de programación (de stubs y drivers) es inferior