Post on 18-Oct-2018
Tema IV:
Modelado y Análisis Estructurado
Introducción
Diana Marcela Sánchez FúqueneIngeniería del Software de Gestión
Análisis de Sistemas: Introducción
Análisis de Sistemas
◦ Descomposición en componenetes para
estudiarlos
Aisladamente
Interactuando con el resto
Requisitos insuficientes → Análisis
◦ Datos + Gráficos
◦ Mejora de la comprensión
◦ Revisión: corrección, integridad, consistencia
Ingeniería del Software de Gestión 2
Análisis de Sistemas
Proceso◦ Entrada: requisitos◦ Salida: modelos de análisis◦ Actor: analista o modelador
El modelador se extiende sobre los requisitos
El modelo de análisis forma parte del contrato cliente-desarrollador
Sirve de puente entre la descripción del sistema y el modelo de diseño
Ingeniería del Software de Gestión 3
Modelo de Análisis:
recomendaciones Alto grado de abstracción
Valor añadido sobre algún requisito/s
Retrasar consideraciones sobre
infraestructura
Minimizar el acoplamiento
Simplicidad: número de modelos y
notaciones utilizadas
Ingeniería del Software de Gestión 4
Modelado
Los requisitos admiten una representación mas técnica → Modelos
Representaciones gráficas que describen los procesos del negocio, el problema a resolver y el sistema que ha de ser
desarrollado
Diferentes perspectivas
◦ Dominio
◦ Comportamiento
◦ Estructural
Ingeniería del Software de Gestión 5
¿Qué es un modelo?
Un modelo es una simplificación de la realidad
Un modelo es resultado de un proceso de abstracción
y ayuda a comprender y razonar sobre una realidad
Un modelo de software es una descripción de un
aspecto del sistema expresada en un lenguaje bien
definido
Ingeniería del Software de Gestión 6
División del Producto
Se fracciona el producto de modo que
cada fragmento lo puede realizar un
miembro del grupo de desarrollo
Ingeniería del Software de Gestión 7
Claves en el desarrollo de SI
Ingeniería del Software de Gestión 9
Herramientas
Notación
Proceso
Figura “Triangle of Success” adaptada de “Visual Modeling
with Rational Rose and UML” de Terry Quatrani
Construcción de una casa para
“Fido”
Puede hacerlo una
sola persona.
Requiere:
◦ Modelado mínimo
◦ Proceso simple
◦ Herramientas simples
Ingeniería del Software de Gestión 10
Ejemplo extraído de la presentación “Software Architecture and UML” de Grady Booch (“Rationale Software”)
Construcción de una casa
Construida eficientemente y en un tiempo razonable por un equipo
Requiere
◦ Modelado
◦ Proceso bien definido
◦ Herramientas mas sofisticadas
Ingeniería del Software de Gestión 11
Modelado de Software
El modelado es el análisis y diseño de
aplicaciones software antes de escribir el
código
Se crean un conjunto de modelos (“planos
del software”) que permiten especificar
aspectos del sistema como los requisitos,
la estructura y el comportamiento
Ingeniería del Software de Gestión 13
Utilidad del modelado
Ingeniería del Software de Gestión 14
“Una empresa software con éxito es aquella
que produce de manera consistente
software de calidad que satisface las
necesidades de los usuarios”
“El modelado es la parte esencial de todas
las actividades que conducen a la
producción de software de calidad”
¿Construimos software de calidad?
Retrasos en los plazos Proyectos cancelados Rápido deterioro del sistema instalado Tasa de defectos o fallos Requisitos mal comprendidos Cambios frecuentes en el dominio del
problema Buenos programadores se cansan y dejan
el equipo¿Modelado es la solución?
Ingeniería del Software de Gestión 15
Utilidad del modelado
Sería lo ideal pero…
… necesitamos escribir modelos,
aunque la mayoría de desarrolladores
todavía no practican el modelado
Ingeniería del Software de Gestión 16
¿ Por qué no escribo
código directamente?
Utilidad del modelado
¿Sé obtienen beneficios del modelado?
Un coste en formación y tiempo
Una mejora de la productividad
Una mejora de la calidad de software
Ingeniería del Software de Gestión 17
¿ Por qué la mayoría
de las empresas no
practican el
modelado?
Abstracción – Modelado Visual (MV)
“El modelado captura las partes
esenciales del sistema”
Ingeniería del Software de Gestión 18
Proceso de Negocio
Sistema Computacional
Notación (Visual) - Beneficios
“Modelar el sistema
independientemente
del lenguaje de
implementación”
Ingeniería del Software de Gestión 19
Manejar la complejidad
Promover la reutilización
Múltiples sistemas
Componentes
reutilizados
Servidor de BDs
(Oracle, DB2, SQL Server)
Lógica del Negocio
(C++, Java)
Interfaz de
usuario (VB,
Java)
Utilidad del modelado
Hay estructuras que no son visibles en los programas
Ayuda a razonar sobre el cómo se implementa
Se facilita la comunicación entre el equipo al existir un lenguaje común
Se dispone de documentación que trasciende al proyecto
Generación de código a partir de modelos◦ Ha sugido un nuevo paradigma de desarrollo de software a
partir de modelos (p.e. MDA de OMG)
Los modelos:◦ Visualizan cómo es que queremos que sea el sistema
◦ Especifican la estructura y comportamientos del sistema
◦ Guían la construcción del sistema
◦ Documentan las decisiones
Ingeniería del Software de Gestión 20
Tipos de modelo
¿En qué etapa del proceso se usa?◦ Análisis y Diseño
¿Cuál es su grado de detalle?◦ Abstracto o detallado
¿Qué sistema describe?◦ Modelo de negocio o modelo software
¿Qué aspecto describe?◦ Estructural o de comportamiento
¿Es específico o independiente de plataforma?
¿A que plataforma va dirigido?◦ J2EE, .NET, CORBA, etc.
Ingeniería del Software de Gestión 21
Claves en el Desarrollo de SI
Ingeniería del Software de Gestión 22
Poseidon
ERWIN
Herramientas
RUP
Métrica 3.0
Proceso
UML DFD – E/R
Notación
Desarrollo Estructurado
De la construcción de programas de forma artesanal
métodos de ingeniería.
Sienta las bases para un desarrollo automatizado.
Técnicas dirigidas a aspectos técnicos y de gestión en la
construcción de software.
Surge a partir del concepto de programación
estructurada.
Ingeniería del Software de Gestión 23
Desarrollo Estructurado
Programación estructurada◦ El enfoque estructurado comenzó con la programación
◦ Normas para la aplicación de las estructuras de datos y de control
Diseño estructurado◦ El enfoque estructurado se extiende posteriormente a la
fase de diseño
◦ Aparecen las primeras publicaciones sobre el diseño (YOURDON y CONSTANTINE, 1975)
◦ Se refina el concepto de modularidad (módulo de programa, medidas en la calidad de los programas)
Ingeniería del Software de Gestión 24
Desarrollo Estructurado
Análisis estructurado
◦ Inicialmente se hacía una especificación narrativa de los requisitos, tal y como los percibía el analista.
◦ Los primeros autores sobre el análisis estructurado (GANE y SARSON, 1977; WEINBERG, 1978; DE MARCO, 1979) identificaron problemas: Eran monolíticas
Eran redundantes
Eran ambiguas
Imposibles de mantener
Ingeniería del Software de Gestión 25
Análisis Estructurado
Introducción Aparece para mejorar el análisis tradicional:
◦ Descomposición / Modularización
◦ Soporte gráfico
◦ Ausencia de Redundancia
Se advierte la importancia del análisis:
◦ Si el análisis era erróneo, se realizaría una buena solución a un problema equivocado
◦ Especificaciones funcionales:
Gráficas
Particionadas
Mínimamente redundantes
Ingeniería del Software de Gestión 26
Este enfoque, que se conoce como análisis estructurado (o análisis descendente o “top-down”)
Análisis Estructurado
Ciclo de vida
Ingeniería del Software de Gestión 27
Estudio de Viabilidad
Recogida de Información
Análisis y Negociación
Especificación de Requisitos
Análisis Estructurado
Modelo de Análisis
Estructurado
Diseño Estructurado
Implementación
Análisis Estructurado
Introducción
Herramientas de documentación del
Análisis Estructurado
◦ Diagramas de Flujo de Datos (DFDs)
◦ Diccionario de Datos (DD)
◦ Diagramas de Entidad-Relación (ER)
◦ Diagramas de Transición de Estado (DTEs)
◦ Especificación de procesos
Ingeniería del Software de Gestión 28
Análisis Estructurado
Introducción -> DFD
Diagramas de Flujo de Datos (DFD)
Un modelo de proceso es una manera formal de representar cómo funciona un negocio
Los DFD son una herramienta para el modelado de procesos
Ingeniería del Software de Gestión 29
Análisis Estructurado
Introducción -> DFD
Ingeniería del Software de Gestión 30
COMPONENTES
FLUJO de DATOS
ALMACÉN
PROCESO
ENTIDAD EXTERNA
Análisis Estructurado
Introducción -> DFD
Ingeniería del Software de Gestión 31
GESTIONSISTEMA
X
DIAGRAMA DE CONTEXTO
E1
E2
E3
A
B
C
D
E
0
1 2
A1
A2
A
B
E
D
CDIAGRAMA 0: GESTION SISTEMA X
DIAGRAMA 1: DIAGRAMA 2:A2A1
A
E
BA3
1.1 1.2
1.3
A1
A2
A3
B1.2.1 1.2.2
1.2.3
DIAGRAMA 1.2:
IDEA BÁSICA
Partir de un modelo
inicial e ir refinándolo
Análisis Estructurado
Introducción -> DD
Diccionario de Datos
◦ Conjunto de Metadatos
◦ Completa los diagramas
◦ Herramienta de consulta para poner en
común el conocimiento
Ejemplo:
Ingeniería del Software de Gestión 32
PETICIÓN LIBROS = CARNET BIBLIOTECA + FICHA LIBROS
CARNET BIBLIOTECA = NUM. CARNET + APELLIDOS + NOMBRE +
TIPO CARNET
TIPO CARNET = [SALA | FIN DE SEMANA | COLABORADOR | PFC |
DOCTORADO]
Análisis Estructurado
Introducción -> E/R
Diagramas
Entidad-
Relación
◦ Se utilizan para
definir el
modelo de
datos
◦ Identifican
Objetos y sus
Relaciones
Ingeniería del Software de Gestión 33
Análisis Estructurado
Introducción -> Especificación de Procesos
Especificación de Procesos
◦ Describir lo que pasa en cada burbuja
◦ ¿Cómo se transforman las entradas en salidas?
Varios formatos
◦ Lenguaje estructurado
◦ Tablas o árboles de decisión
◦ Diagramas de Transición de Estados
◦ Pre/postcondiciones
(son alternativas no excluyentes)
Ingeniería del Software de Gestión 34
De Análisis a Diseño
Pasar del QUÉ al
CÓMO
A partir del
DFD se define la
estructura del
programa
◦ Diagrama de
Estructuras
Ingeniería del Software de Gestión 35
Una vista general
Ingeniería del Software de Gestión 36
Diagrama de Flujo de Datos
PROCESO ALMACENEntrada
PROCESO
Flujo
Modelo Entidad/Relación
Diccionario
de Datos
Diagrama de
Estructuras
Definiciones de Módulos
Descripción de
entidades externas
y flujos de datos
Definición de
Entidades
Bibliografía
Análisis y Diseño Detallado de Aplicaciones Informáticas de Gestión. Piattini et al., RA-MA, 2003.
Análisis Estructurado Moderno. Yourdon, Prentice-Hall, 1985.
Just Enough Structured Analysis. Yourdon.
(http://www.yourdon.info/jesa/jesa.php )
Ingeniería del Software de Gestión 37