TY - BOOK AU - Martin,James AU - Odell,James J. TI - Análisis y diseño orientado a objetos / SN - 9688803626 PY - 1994/// CY - México PB - Prentice Hall KW - PROGRAMACION ORIENTADA A OBJETO KW - DISEÑO DE SOFTWARE KW - DISEÑO ORIENTADO A OBJETOS KW - HERRAMIENTA CASE KW - BASE DE DATOS ORIENTADAS A OBJETOS N1 - CONTENIDO PARTE I ¿POR QUE TANTO ENTUSIASMO? 1 Una revolución industrial en el software 3 Tecnologías killer 5 Integración de las tecnologías killer 10 Quitándose anteojeras 11 Todo tipo de computación 12 El paradigma de la integración 13 2 Introducción básica 17 ¿Qué es un objeto? 17 ¿Qué es un tipo de objeto? 18 Métodos 19 Encapsulado 19 Mensajes 21 BLOB 23 ¿Qué es una clase? 23 Herencia 24 Percepción y realidad 25 Criaturas autocontenidas 28 Bloques de construcción de la naturaleza 29 Referencias 31 3 ¿Por qué orientado a objetos? 33 La verdadera ingeniería del software 33 Características de las técnicas OO 35 Resumen de los beneficios de la tecnología OO 36 Medida de la complejidad de un programa 40 Reutilización 42 Beneficios diversos 42 Un cambio en nuestra forma de pensar 45 Referencias 46 4 El futuro del software 49 Introducción 49 Discos ópticos 50 La necesidad de herramientas poderosas 50 Evolución de la producción de software 51 El uso inhumano de los seres humanos 52 Reacción en cadena 53 Estándares de los depósitos 55 Software en paquetes 56 Reutilización 57 Paralelismo 62 Redes y distribución de objetos 63 Interacción para la computación entre empresas 64 Rapidez de interacción 65 La necesidad de un desarrollo rápido 66 Estándares internacionales para las clases reutilizables 67 Generación de código a partir del modelo empresarial 68 Evolución de la técnica de programación 69 Pirámides de complejidad 71 Referencias 71 PARTE II PANORAMA DEL ANALISIS Y EL DISEÑO 5 5 Modelos OO 75 Modelos de la realidad 75 Herramientas 76 Dos tipos de modelos 77 Analogía de análisis y diseño 78 Ingeniería de la información 81 Adecuación de sistemas anteriores 81 6 Análisis de la estructura de objetos 85 Objetos y tipos de objetos 85 Asociaciones de objetos 87 Jerarquías de generalización 88 Jerarquías compuestas 90 Diagramas de la relación entre los objetos 90 Esquemas de objetos 93 7 Análisis del comportamiento de objetos 95 Estados de un objeto 95 Eventos 97 Tipos de eventos 98 El ciclo vital de un objeto 100 Interacciones entre tipos de objetos 102 Operaciones 103 Fuentes externas de eventos 104 Reglas de activación 105 Condiciones de control 105 Subtipos y supertipos de eventos 106 Esquemas jerárquicos 106 Aislamiento de la causa y el efecto 107 Modularización clara 109 La analogía del análisis y el diseño 109 Diagramas de flujo de objetos 111 8 Diseño de la estructura y el comportamiento de un objeto 117 Clase 118; ¿Cuál es la diferencia entre operación y método? 119 Herencia de clase 122 Selección del método 123 Polimorfismo 123 "Igual que, excepto..." 128 9 Estándares recomendados de diagramación 113 Una forma de lenguaje 131 Diagramas convencionales 133 Diagramas orientados a objetos 133 Cuadros con esquinas redondeadas o rectangulares 133 Realidad e información relativa a la realidad 138 Objetos y operaciones externos 139 Líneas y flechas 140 Exclusividad mutua 140 Restricciones de cardinalidad 142 Expansión y contracción 145 Uso de ventanas para mayor claridad 146 Subtipos y supertipos 146 Diagramas de ramificación 148 Tipos e instancias 149 Subconjuntos de asociaciones 149 Diagramas de composición 149 Tipos de objetos derivados 152 Diagramas de relación entre los objetos 152 Eventos 153 Eventos de reloj 154 Esquemas de actividad 154 Condiciones de control 154 Omisión de eventos y condiciones de control 154 Reglas de activación 156 Procesamiento paralelo 157 Guardias 159 Nivelación 159 Estados 159 Subestados 161 Enlace de actividades y cambios de estado 162 Referencias 166 10 Lenguajes de programación orientados a objetos 167 Génesis de la tecnología OO 167 La evolución de lenguajes no tipificados a tipificados 168 Tipos de datos abstractos (TDA) 170 Implantaciones orientadas a objetos y basadas en objetos 178 Referencias 180 11 Herramientas CASE 183 Variedad de herramientas 184 Categorías de las herramientas CASE 185 Modelos perspicaces 185 Síntesis del diseño y generación de códigos 186 Precisión en la diagramación 188 Diagramas para el desarrollo OO 189 Depósito 190 Más que un diccionario 191 Inteligencia en el depósito 194 Depósito OO para técnicas no OO 194 Consistencia entre los diagramas 195 Consistencia entre los distintos analistas 196 Consistencia entre los distintos proyectos 196 Reutilización máxima 197 Tres fuentes de componentes reutilizables 200 Referencias 201 12 Estándares para la interacción de objetos 203 El grupo de administración de objetos 203 Arquitectura para la administración de objetos 204 Solicitudes y respuestas estándar 206 Interfaz con software no OO 208 Referencias 209 13 Bases de datos orientadas a objetos 211 Breve historia del desarrollo de las bases de datos 212 Un modelo conceptual unificado 219 Arquitectura de una base de datos OO 221 Desarrollo con bases de datos OO 223 Tres enfoques de la construcción de bases de datos OO 223 Independencia de datos versus encapsulado 224 Complejidad de la estructura de datos 225 Rendimiento 225 Evasión de la redundancia 226 Diferencias entre las bases de datos por relación y las bases de datos orientadas a objetos 226 Resumen 229 Referencias 230 14 Ingeniería de la información orientada a objetos 233 Ingeniería de la información 233; Ingeniería de la información mediante técnicas OO 238 Análisis para la reutilización 241 Referencias 245 PARTE III FUNDAMENTOS DEL ANALISIS DE LA ESTRUCTURA DE LOS OBJETOS 15 Conceptos y objetos 247 Conceptos 249 Intensidad y extensión del concepto 253 Objetos 257 Conjuntos 259 Resumen 262 Referencias 262 16 Administración de la complejidad de un objeto 265 Abstracción 265 Generalización 266 Composición 269 Resumen 273 Referencias 274 17 Concepto versus tipo de objeto 277 18 Tipos de objetos y asociaciones 279 Asociaciones 279 Relaciones 280 Funciones 283 Resumen 284 Referencias 285 19 Funciones 287 Funciones y sus inversas 287 Restricciones de cardinalidad 289 Dominio y rango de una función 292 Funciones ocupadas con argumentos 296 Funciones de varios argumentos 297 Funciones básicas y para cálculos 298 Resumen 300 Referencias 301 20 Relaciones 303 Cardinalidad de una relación 303 Relaciones como tipos de objetos 304 Otros aspectos de las relaciones 311 Resumen 316 Referencias 317 21 Supertipos y subtipos 319 Conjuntos que incluyen a otros conjuntos 319 Particiones de tipos 323 Particiones completas versus incompletas 325 Niveles de partición 329 Subtipos de una relación 332 Resumen 334 Referencias 335 PARTE IV FUNDAMENTOS DEL ANALISIS COMPORTAMIENTO DE OBJETOS 22 Aspectos del comportamiento 339 Estructura y comportamiento de objetos 339 Máquinas de estado finito 342 Esquemas de eventos 348 Resumen 353 Referencias 354 23 Tipos de eventos, reglas de activación, condiciones de control y operaciones 357 Tipos de eventos 357 Operaciones 364 Condiciones de control 368 Reglas de activación 373 Resumen 377 Referencias 378 24 Análisis del comportamiento de objetos 379 Análisis del comportamiento de objetos mediante esquemas de eventos 379 Eventos y análisis de objetos 400 Resumen 402 Referencia 403 25 Diagramas de flujo de objetos 405 Una visión funcional de alto nivel 405 Productos 408 Actividades 414 Resumen 425 Referencias 426 PARTE V DISEÑO 26 Diseño orientado a objetos: Asociación con las estructuras de los lenguajes de programación OO 429 Asociación a partir de esquemas con código OO 429 Asociación a partir de los tipos de objetos 430 Asociación a partir de los objetos 431 Asociación a partir de las funciones básicas 436 Asociación a partir de las jerarquías de generalización 442 Asociación a partir de las funciones calculadas 444 Asociación a partir de los tipos de objetos calculados 448 Referencias 449 27 Diseño orientado a objetos: asociación con el comportamiento de un lenguaje de programación OO 451 Asociación a partir de operaciones 451 Asociación a partir de las reglas de activación 452 Asociación a partir de tipos de eventos 454 Asociación a partir de esquemas de eventos 454 Un planificador de eventos 456 Una última reflexión acerca de los lenguajes de programación OO 459 28 Diseño orientado a objetos: Consideraciones en lenguajes no OO 461 Asociaciones OO para los lenguajes de programación imperativos 461 Asociaciones OO para las bases de datos por relación 463 Referencias 467 29 Administración de un proyecto OO 469 Factores humanos clave en los proyectos de análisis y diseño OO 469 Comunidad de usuarios 470 Equipo de proyecto comunitario de los sistemas de información 471 Administración del proyecto 472 Evolución del sistema 473 Un ejemplo de experiencia en la industria 475 Referencias 476 PARTE VI APENDICES A Glosario de términos 479 B Esquemas de objetos y diagramas de entidad - relación 489 Esquemas de objetos contra diagramas de entidad-relación 489 Ramificaciones de los tipos de objetos para el diseño OO 492 Garantizando que los diagramas de ER soporten el diseño OO 495 Resumen 497 Referencias 497 C Conceptos compuestos 499 Tipos de objetos en términos de otros tipos de objetos 499 Expresión de los tipos de objetos calculados 501 Expresión de funciones 506 Expresión de tipos de objetos como funciones con argumentos proporcionados 513 Resumen 516 Referencias 518 D Modelos y metamodelos 519 Niveles de modelado 519 Representación de tipos de objetos 524 Resumen 532 Referencia 534 E Estado: Una colección de tipos de objetos versus una colección de atributos 535 Indice 539 ER -