(IFCT010PO) Análisis con UML (Modelización)

El objetivo de esta obra es que el lector aprenda a analizar problemas de software, entender los requisitos del usuario, generar casos de uso y diagramas para la solución del problema y al mismo tiempo dotarlo de una perspectiva general que permita obtener la solución a un abanico de problemas ligados al que se ha tratado trabajando con patrones.

Escritor
Colección
Formación en el Empleo (Especialidades Formativas)
Materia
Lenguaje Unificado de Modelado (UML)
Idioma
  • Castellano
EAN
9788410360044
ISBN
978-84-10360-04-4
Depósito legal
M-11530-2024
Páginas
504
Ancho
17 cm
Alto
24 cm
Peso
792 g
Edición
1
Fecha publicación
10-05-2024
Edición en papel
28,40 €
Descuento 5%29,90 €

574,04 MX$28,38 US$

Índice de contenido

PRÓLOGO
¿A QUIÉN VA DIRIGIDO ESTE LIBRO?
ESTRUCTURA DEL LIBRO
NOVEDADES EN LA SEGUNDA EDICIÓN
ESTILOS DE PROGRAMACIÓN
DIAGRAMAS Y PROGRAMAS DE EJEMPLO
FEEDBACK
AGRADECIMIENTOS ACADÉMICOS
CAPÍTULO 1. UML EN EL CONTEXTO DE LA INGENIERÍA DEL SOFTWARE
1.1 LA NECESIDAD DE UN MODELO UNIFICADO
1.2 ¿POR QUÉ MODELAR?
1.3 MODELOS DE PROCESO SOFTWARE.
1.3.1 Modelo en cascada
1.3.2 Modelo incremental
1.3.3 Modelo en espiral
1.3.4 Relación de las fases con los diagramas UML
1.4 METODOLOGÍAS DE DESARROLLO
1.4.1 Metodologías ágiles
1.4.2 Metodologías pesadas
1.5 CALIDAD DEL SOFTWARE
1.5.1 Definición y conceptos
1.5.2 Dimensiones de la calidad.
1.5.3 Crisis del software y necesidad de una medida (métricas)
1.5.4 Normalización y certificación
1.5.5 La norma ISO/IEC 9126
1.5.6 Aseguramiento de la calidad del software (SQA)
1.6 DESARROLLO DE SOFTWARE SEGURO
1.6.1 Introducción
1.6.2 Análisis de software seguro
1.6.3 Análisis de riesgos
1.7 MDA
1.7.1 Introducción
1.7.2 Características de MDA
CAPÍTULO 2. DIAGRAMAS DE CASOS DE USO
2.1 INTRODUCCIÓN
2.2 ACTORES
2.3 CASOS DE USO
2.4 ESPECIFICACIÓN DE LOS CASOS DE USO
2.5 FLUJO PRINCIPAL
2.5.1 Sentencia condicional si
2.5.2 Sentencia de control para
2.5.3 Sentencia de control mientras
2.6 USO DE <> Y <>
2.7 CASO DE ESTUDIO: MERCURIAL
2.8 CASO DE ESTUDIO: SERVICIO DE CIFRADO REMOTO
CAPÍTULO 3. DIAGRAMAS DE ROBUSTEZ
3.1 CONCEPTOS BÁSICOS
3.2 IMPORTANCIA DE LOS DIAGRAMAS DE ROBUSTEZ
3.3 CASO DE ESTUDIO: AJEDREZ
3.3.1 Caso de uso Hacer jugada
3.3.2 Caso de uso Configurar parámetros
3.3.3 Caso de uso Validar usuario
3.4 CASO DE ESTUDIO: MERCURIAL
3.4.1 Caso de uso Listar ficheros
3.4.2 Caso de uso Clonar repositorio
3.5 CASO DE ESTUDIO: SERVICIO DE CIFRADO REMOTO
3.5.1 Caso de uso Encriptar
3.5.2 Caso de uso Desencriptar
CAPÍTULO 4. MODELO DEL DOMINIO
4.1 EXTRACCIÓN DE CONCEPTOS
4.2 IDENTIFICAR ASOCIACIONES
4.3 ESTABLECER LOS ATRIBUTOS
4.4 HERENCIA
4.5 AGREGACIÓN Y COMPOSICIÓN
4.6 EJEMPLO DE MODELADO: SPINDIZZY
4.7 CASO DE ESTUDIO: AJEDREZ
4.8 CASO DE ESTUDIO: MERCURIAL
4.9 CASO DE ESTUDIO: SERVICIO DE CIFRADO REMOTO
4.9.1 Cliente
4.9.2 Servidor
CAPÍTULO 5. DIAGRAMAS ORIENTADOS A LA ARQUITECTURA
5.1 TAXONOMÍA DE ESTILOS ARQUITECTÓNICOS
5.1.1 Tuberías y filtros
5.1.2 Por capas
5.1.3 Repositorios
5.1.4 Intérprete
5.1.5 Basadas en eventos
5.1.6 Distribuidas
5.1.7 Programa principal / subprograma
5.2 DIAGRAMAS DE COMPONENTES
5.2.1 Interfaces
5.2.2 Componentes
5.2.3 Puertos
5.2.4 Dependencias
5.2.5 Caso de estudio: Ajedrez
5.2.6 Caso de estudio: Mercurial
5.2.7 Caso de estudio: Servicio de cifrado remoto
5.3 DIAGRAMAS DE DESPLIEGUE
5.3.1 Nodos.
5.3.2 Artefactos
5.3.3 Caso de estudio: Ajedrez
5.3.4 Caso de estudio: Mercurial
5.3.5 Caso de estudio: Servicio de cifrado remoto
5.4 DIAGRAMAS DE PAQUETES
5.4.1 Paquetes
5.4.2 Generalización
5.4.3 Relaciones de dependencia
5.4.4 Caso de estudio: Ajedrez
5.4.5 Caso de estudio: Mercurial
5.4.6 Caso de estudio: Servicio de cifrado remoto
CAPÍTULO 6. DIAGRAMAS DE CLASES
6.1 CLASES
6.2 ASOCIACIONES
6.2.1 Multiplicidad
6.2.2 Agregación y composición
6.3 HERENCIA
6.4 INTERFACES
6.5 DEPENDENCIAS
6.6 EXCEPCIONES
6.7 CLASES PARAMETRIZABLES
6.8 EJEMPLO DE MODELADO: SPINDIZZY
6.9 CASO DE ESTUDIO: AJEDREZ
6.10 CASO DE ESTUDIO: MERCURIAL
6.11 CASO DE ESTUDIO: SERVICIO DE CIFRADO REMOTO
6.11.1 Lado cliente
6.11.2 Lado servidor
CAPÍTULO 7. DIAGRAMAS DE SECUENCIAS
7.1 CONCEPTOS PRELIMINARES
7.2 ESTRUCTURA BÁSICA
7.2.1 Línea de vida
7.2.2 Activación
7.2.3 Mensajes síncronos y asíncronos
7.2.4 Creación, destrucción e invocación recursiva
7.3 EJEMPLO DE MODELADO: SERVIDOR FTP
7.3.1 Un solo cliente
7.3.2 Dos clientes
7.4 FRAGMENTOS COMBINADOS
7.4.1 Saltos condicionales
7.4.2 Iteraciones
7.4.3 Paralelismo
7.5 PARAMETRIZACIÓN
7.6 CASO DE ESTUDIO: AJEDREZ
7.6.1 Turno del jugador humano
7.6.2 Turno de la IA
7.7 CASO DE ESTUDIO: MERCURIAL
7.8 CASO DE ESTUDIO: SERVICIO DE CIFRADO REMOTO
CAPÍTULO 8. DIAGRAMAS DE COMUNICACIÓN
8.1 ESTRUCTURA BÁSICA
8.2 SALTOS CONDICIONALES
8.3 ITERACIONES
8.4 CASO DE ESTUDIO: AJEDREZ
8.5 CASO DE ESTUDIO: MERCURIAL
O8.6 CASO DE ESTUDIO: SERVICIO DE CIFRADO REMOTO
CAPÍTULO 9. PATRONES DE DISEÑO
9.1 ¿POR QUÉ PATRONES?
9.2 TIPOS DE PATRONES
9.3 PATRONES ARQUITECTÓNICOS
9.3.1 Sistemas genéricos
9.3.2 Sistemas distribuidos
9.3.3 Sistemas interactivos
9.4 PATRONES DE DISEÑO GOF
9.4.1 Descripción de un patrón de diseño
9.4.2 Patrones de creación
9.4.3 Patrones estructurales
9.4.4 Patrones de comportamiento
9.5 CASO DE ESTUDIO: AJEDREZ
9.5.1 Patrón Facade
9.5.2 Patrón Observer
9.5.3 Patrón Strategy
9.6 CASO DE ESTUDIO: MERCURIAL
9.6.1 Patrón Facade e Interpreter
9.6.2 Patrón Composite
9.7 CASO DE ESTUDIO: SERVICIO DE CIFRADO REMOTO
9.7.1 Lado cliente
9.7.2 Lado servidor
CAPÍTULO 10. BUENAS PRÁCTICAS DE PROGRAMACIÓN
10.1 PATRONES DE DISEÑO GRASP
10.1.1 ¿Qué es una responsabilidad?
10.1.2 Experto en información
10.1.3 Creador
10.1.4 Bajo acoplamiento
10.1.5 Alta cohesión
10.1.6 Controlador
10.1.7 Polimorfismo
10.1.8 Fabricación Pura
10.1.9 Indirección
10.1.10 Variaciones Protegidas (VP)
10.2 CASO DE ESTUDIO: AJEDREZ
10.3 CASO DE ESTUDIO: MERCURIAL
10.4 CASO DE ESTUDIO: SERVICIO DE CIFRADO REMOTO
10.4.1 Lado cliente
10.4.2 Lado servidor
CAPÍTULO 11. DIAGRAMAS DE ESTADO
11.1 CONCEPTOS BÁSICOS
11.2 ESTRUCTURA DE UN ESTADO
11.3 ESTRUCTURA DE LAS TRANSICIONES
11.4 TIPOS DE NODOS
11.4.1 Nodos inicial y final
11.4.2 Nodos de interconexión
11.4.3 Nodos condicionales
11.5 EVENTOS
11.5.1 Eventos de llamada
11.5.2 Eventos de tiempo
11.6 ESTADOS COMPUESTOS
11.6.1 Estados compuestos simples
11.6.2 Estados compuestos ortogonales
11.7 SINCRONIZACIÓN DE SUBMÁQUINAS
11.8 SIMPLIFICACIÓN DEL DIAGRAMA DE ESTADOS
11.9 HISTORIAL
11.9.1 Historia superficial
11.9.2 Historia profunda
11.10 CASO DE ESTUDIO: AJEDREZ
11.11 CASO DE ESTUDIO: MERCURIAL
11.12 CASO DE ESTUDIO: SERVICIO DE CIFRADO REMOTO
CAPÍTULO 12. DIAGRAMAS DE ACTIVIDAD
12.1 ESTRUCTURA BÁSICA
12.2 ESTRUCTURAS DE CONTROL
12.2.1 Nodos de decisión
12.2.2 Nodos de concurrencia y paralelismo
12.3 EVENTOS DE TIEMPO
12.4 NODOS OBJETO
12.5 NODOS DE DATOS
12.6 PARTICIONES
12.7 PARAMETRIZACIÓN
12.8 REGIONES.
12.8.1 Regiones de expansión
12.8.2 Regiones interrumpibles
12.8.3 Regiones if
12.8.4 Regiones loop
12.9 MANEJO DE EXCEPCIONES
12.10 CONECTORES
12.11 SEÑALES Y EVENTOS
12.12 MÚLTIPLES FLUJOS
12.13 STREAMING
12.14 MULTICASTING
12.15 CASO DE ESTUDIO: AJEDREZ
12.16 CASO DE ESTUDIO: MERCURIAL
12.17 CASO DE ESTUDIO: SERVICIO DE CIFRADO REMOTO
CAPÍTULO 13. DIAGRAMAS DE ESTRUCTURA COMPUESTA
13.1 ESTRUCTURA BÁSICA
13.1.1 Puertos
13.2 COLABORACIONES
13.3 USO DE LA COLABORACIÓN
13.4 CASO DE ESTUDIO: AJEDREZ
13.4.1 Diagrama de estructura compuesta
13.4.2 Colaboración
13.4.3 Uso de la colaboración
13.5 CASO DE ESTUDIO: MERCURIAL
13.5.1 Diagrama de estructura compuesta
13.5.2 Colaboración
13.5.3 Uso de la colaboración
13.6 CASO DE ESTUDIO: SERVICIO DE CIFRADO REMOTO (CLIENTE)
13.6.1 Diagrama de estructura compuesta
13.6.2 Colaboración
13.6.3 Uso de la colaboración
13.7 CASO DE ESTUDIO: SERVICIO DE CIFRADO REMOTO (SERVIDOR)
13.7.1 Diagrama de estructura compuesta
13.7.2 Colaboración
13.7.3 Uso de la colaboración
CAPÍTULO 14. OCL (OBJECT CONSTRAINT LANGUAGE)
14.1 ESTRUCTURA BÁSICA
14.2 TIPOS Y OPERADORES.
14.3 MODELO DE REFERENCIA: ACADEMIA
14.4 EXPRESIONES DE RESTRICCIÓN
14.4.1 Expresión inv:
14.4.2 Expresión pre
14.4.3 Expresión post
14.4.4 Operador @pre
14.5 EXPRESIONES DE DEFINICIÓN
14.5.1 Expresión body
14.5.2 Expresión init
14.5.3 Expresión def
14.5.4 Expresión let
14.5.5 Expresión derive
14.6 COLECCIONES
14.6.1 Nociones básicas
14.6.2 Operaciones básicas
14.7 NAVEGACIÓN
14.8 OCL EN LOS DIAGRAMAS DE ESTADO
14.9 CASO DE ESTUDIO: AJEDREZ
14.10 CASO DE ESTUDIO: MERCURIAL
14.11 CASO DE ESTUDIO: SERVICIO DE CIFRADO REMOTO
CAPÍTULO 15. INGENIERÍA DIRECTA EN JAVA
15.1 DIAGRAMAS DE CLASES
15.1.1 Representación de una clase
15.1.2 Asociaciones
15.1.3 Herencia
15.1.4 Agregación
15.1.5 Composición
15.1.6 Clases abstractas
15.1.7 Clases internas
15.1.8 Clases asociación
15.1.9 Asociación calificada
15.2 DIAGRAMAS DE SECUENCIAS
15.2.1 Interacción básica.
15.2.2 Creación, destrucción, automensajes y recursividad
15.2.3 Saltos condicionales
15.2.4 Iteraciones
15.3 DIAGRAMAS DE ESTADO
15.4 CASO DE ESTUDIO: MERCURIAL
CAPÍTULO 16. INGENIERÍA DIRECTA EN C++
16.1 DIAGRAMAS DE CLASES
16.1.1 Representación de una clase
16.1.2 Asociaciones
16.1.3 Herencia simple
16.1.4 Herencia múltiple
16.1.5 Agregación
16.1.6 Composición
16.1.7 Clases abstractas e interfaces
16.1.8 Clases internas o anidadas
16.1.9 Clases asociación
16.1.10 Asociación calificada
16.2 DIAGRAMAS DE SECUENCIAS
16.2.1 Interacción básica
16.2.2 Creación, destrucción, automensajes y recursividad
16.2.3 Saltos condicionales
16.2.4 Iteraciones
16.3 DIAGRAMAS DE ESTADO
16.4 CASO DE ESTUDIO: AJEDREZ
CAPÍTULO 17. INGENIERÍA DIRECTA EN PYTHON
17.1 DIAGRAMAS DE CLASES
17.1.1 Representación de una clase
17.1.2 Asociaciones
17.1.3 Herencia simple
17.1.4 Herencia múltiple
17.1.5 Implementación de interface
17.1.6 Agregación
17.1.7 Composición
17.1.8 Clases abstractas
17.1.9 Clases internas o anidadas
17.1.10 Clases asociación
17.1.11 Asociación calificada
17.2 DIAGRAMAS DE SECUENCIAS
17.2.1 Interacción básica
17.2.2 Creación, destrucción, automensajes y recursividad
17.2.3 Saltos condicionales
17.2.4 Iteraciones
17.3 DIAGRAMAS DE ESTADO
17.4 CASO DE ESTUDIO: SERVICIO DE CIFRADO REMOTO
17.4.1 Lado cliente
17.4.2 Lado servidor
ANEXO A. PROGRAMACIÓN ORIENTADA A OBJETOS
A.1 BREVE RESEÑA HISTÓRICA
A.2 CARACTERÍSTICAS DE LA POO
A.3 CLASES Y OBJETOS
A.4 PROGRAMACIÓN ORIENTADA A OBJETOS EN C++
A.4.1 Clases y objetos
A.4.2 Herencia
A.4.3 Polimorfismo
A.5 PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA
A.5.1 Clases y objetos
A.5.2 Paquetes
A.5.3 Herencia
A.5.4 Interfaces
A.5.5 Polimorfismo
A.6 PROGRAMACIÓN ORIENTADA A OBJETOS EN PYTHON
A.6.1 Clases y objetos
A.6.2 Paquetes
A.6.3 Herencia
A.6.4 Interfaces
A.6.5 Polimorfismo
ANEXO B. RESUMEN DE NOTACIÓN UML
B.1 DIAGRAMA DE CASOS DE USO
B.2 DIAGRAMA DE ROBUSTEZ
B.3 DIAGRAMA DE COMPONENTES
B.4 DIAGRAMA DE DESPLIEGUE
B.5 DIAGRAMA DE PAQUETES
B.6 DIAGRAMA DE CLASES
B.7 DIAGRAMA DE SECUENCIAS
B.8 DIAGRAMA DE COMUNICACIÓN
B.9 DIAGRAMA DE ESTADOS
B.10 DIAGRAMA DE ACTIVIDADES
B.11 DIAGRAMA DE ESTRUCTURA COMPUESTA
BIBLIOGRAFÍA Y REFERENCIAS WEB
REFERENCIAS WEB
MATERIAL ADICIONAL
ÍNDICE ALFABÉTICO

Libros relacionados