Tema IV: Modelado y Análisis Estructurado IntroducciónIS... · Estructural o de comportamiento...

37
Tema IV: Modelado y Análisis Estructurado Introducción Diana Marcela Sánchez Fúquene Ingeniería del Software de Gestión

Transcript of Tema IV: Modelado y Análisis Estructurado IntroducciónIS... · Estructural o de comportamiento...

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

Un modelo de Software

Ingeniería del Software de Gestión 8

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

Construcción de un rascacielos

Ingeniería del Software de Gestión 12

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