129 DISE\u00d1IO DE SISTEMAS.pdf - Dise\u00f1o de sistemas Molina R\u00edos Jimmy Valarezo Pardo Milton Zea Ordo\u00f1ez Mariuxi Universidad T\u00e9cnica de Machala Dise\u00f1o

129 DISEu00d1IO DE SISTEMAS.pdf - Diseu00f1o de sistemas...

This preview shows page 1 out of 236 pages.

You've reached the end of your free preview.

Want to read all 236 pages?

Unformatted text preview: Diseño de sistemas Molina Ríos Jimmy, Valarezo Pardo Milton, Zea Ordoñez Mariuxi Universidad Técnica de Machala Diseño de sistemas Ing. César Quezada Abad, MBA Rector Ing. Amarilis Borja Herrera, Mg. Sc. Vicerrectora Académica Soc. Ramiro Ordóñez Morejón, Mg. Sc. Vicerrector Administrativo COORDINACIÓN EDITORIAL VICERRECTORADO ACADÉMICO Tomás Fontaines-Ruiz, PhD. Investigador Becario Prometeo-Utmach Asesor Del Programa De Reingeniería Ing. Karina Lozano Zambrano Coordinadora Editorial Ing. Jorge Maza Córdova, Ms. Ing. Cyndi Aguilar Equipo de Publicaciones Diseño de sistemas Jimmy Molina Rios Milton Valarezo Pardo Mariuxi Zea Ordoñez UNIVERSIDAD TÉCNICA DE MACHALA 2015 Primera edición 2015 ISBN: 978-9942-24-075-0 D.R. © 2015, universidad técnica Ediciones utmach Km. 5 1/2 Vía Machala Pasaje Este de machala texto ha sido sometido a un proceso de evaluación por pares externos con base en la normativa editorial de la utmach. Portada: Concepto editorial Samanta Cabezas (est. Comunicación Social) Fotografía: Dir. de Comunicación UTMACH Diseño, montaje y producción editorial: UTMACH Impreso y hecho en Ecuador Printed and made in Ecuador Advertencia: “Se prohíbe la reproducción, el registro o la transmisión parcial o total de esta obra por cualquier sistema de recuperación de información, sea mecánico, fotoquímico, electrónico, magnético, electroóptico, por fotocopia o cualquier otro, existente o por existir, sin el permiso previo por escrito del titular de los derechos correspondientes”. Índice Prefacio................................................................................ 17 Prólogo................................................................................. 19 Dedicatoria.......................................................................... 21 CAPÍTULO 1......................................................................... 23 DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA............ 23 1.1 Diseño arquitectónico..................................................... 24 1.1.1 Decisiones de diseño arquitectónico............................ 27 1.1.2 Organización del sistema............................................. 28 1.1.2.1 El modelo de repositorio de datos............................. 28 1.1.2.2 El modelo cliente-servidor......................................... 30 1.1.2.3 El modelo de capas................................................... 31 1.1.3 Estilos de descomposición modular............................. 32 1.1.3.1 Descomposición orientada a objetos......................... 33 1.1.3.2 Descomposición orientada a flujos de funciones....... 34 1.1.4 Estilos de control........................................................ 35 1.1.4.1 Control centralizado................................................. 36 1.1.4.2 Sistemas dirigidos por eventos.................................. 37 1.1.5 Arquitecturas de referencia......................................... 39 1.2 Arquitecturas de sistemas distribuidos........................... 40 1.2.1 Arquitecturas multiprocesador.................................... 41 1.2.2 Arquitecturas cliente-servidor...................................... 42 1.2.3 Arquitecturas de objetos distribuidos.......................... 46 1.2.3.1 CORBA..................................................................... 48 1.2.4 Computación distribuida interorganizacional............... 50 8 Segura M, Lam A, García C 1.2.4.1 Arquitectura peer-to-peer (p2p)................................ 51 1.2.4.2 Arquitectura de sistemas orientados a servicios........ 52 1.3 Arquitecturas de aplicaciones......................................... 54 1.3.1 Sistemas de procesamiento de datos........................... 54 1.3.2 Sistemas de procesamiento de transacciones............... 56 1.3.2.1 Sistemas de información y de gestión de recursos.... 57 1.3.3 Sistemas de procesamiento de eventos........................ 60 1.3.4 Sistemas de procesamiento de lenguajes..................... 61 CAPÍTULO 2......................................................................... 67 MODELADO DEL SISTEMA.................................................. 67 2.1 Diseño Orientado a Objetos............................................ 68 2.1.1 Objetos y clases........................................................... 70 2.1.1.1 Objetos concurrentes............................................... 74 2.1.2 Un proceso de diseño orientado a objetos.................... 76 2.1.2.1 Contexto del sistema y modelos de utilización........... 79 2.1.2.2 Diseño de la arquitectura......................................... 81 2.1.2.3 Identificación de objetos........................................... 82 2.1.2.4 Modelos de diseño.................................................... 85 2.1.2.5 Especificación de la interfaz de los objetos................ 90 2.1.3 Evolución del diseño.................................................... 90 2.2 Diseño de software de tiempo real.................................. 92 2.2.1 Diseño del sistema...................................................... 94 2.2.1.1 Modelado de sistemas de tiempo real........................ 96 2.2.2 Sistemas operativos de tiempo real.............................. 96 2.2.2.1 Gestión de procesos................................................. 97 2.2.3 Sistemas de monitorización y control........................... 99 2.2.4 Sistemas de adquisición de datos.............................. 101 2.3 Diseño de interfaces de usuario.................................... 107 2.3.1 Asuntos de diseño..................................................... 108 2.3.1.1 Interacción del usuario........................................... 109 2.3.1.2 Presentación de la información............................... 118 2.3.2 El proceso de diseño de la interfaz de usuario........... 119 2.3.3 Análisis del usuario................................................... 121 2.3.3.1 Técnicas de análisis................................................ 123 2.3.4 Prototipado de la interfaz de usuario......................... 125 Índice 2.3.5 Evaluación de la interfaz........................................... 132 3.1 Desarrollo rápido de software....................................... 137 3.1.1 Métodos ágiles........................................................... 140 3.1.2 Programación extrema............................................... 140 3.1.2.1 Pruebas en XP........................................................ 143 3.1.2.2 Programación en parejas....................................... 145 3.1.3 Desarrollo rápido de aplicaciones.............................. 146 3.1.4 Prototipado del software............................................ 150 3.2. Reutilización del software............................................ 152 3.2.1El campo de la reutilización........................................ 152 3.2.2 Patrones de diseño.................................................... 154 3.2.3 Reutilización asentada en productores...................... 156 3.2.4 Marcos de trabajo de aplicaciones............................. 157 3.2.5 Reutilización de sistemas de aplicaciones.................. 158 3.2.3.1 Reutilización de productos COTS............................ 159 3.2.5.2 Líneas de productos software................................. 162 CAPÍTULO 4....................................................................... 169 ESPECIFICACIONES PARA LA CONSTRUCCIÓN DE SISTEMAS......................................................................... 169 4.1. Ingeniería del software basada en componentes........... 170 4.1.1 Componentes y modelos de componentes.................. 172 4.1.1.1 Modelos de componentes........................................ 174 4.1.1.2 Desarrollo de componentes para reutilización......... 174 4.1.2 El proceso CBSE....................................................... 175 4.2 Desarrollo de sistemas críticos..................................... 175 4.2.1 Métodos confiables.................................................... 180 4.2.2 Programación confiable............................................. 181 4.2.3 Tolerancia a defectos................................................. 188 4.2.3.1 Detección de efectos y evaluación de daños............ 189 4.2.3.2 Recuperación y reparación de defectos................... 193 4.2.4 Arquitectura tolerante a defectos............................... 195 4.3 Evolución del software.................................................. 199 4.3.1 Dinámica de evolución de los programas................... 201 4.3.2 Mantenimiento del Software...................................... 202 4.3.2.1 Predicción del Mantenimiento................................. 206 9 4.3.3 Procesos de evolución................................................ 209 4.3.3.1 Reingeniería de sistemas........................................ 212 4.3.4 Evolución del sistema heredado................................. 217 Glosario............................................................................. 227 Bibliografía........................................................................ 229 Índice de gráficos Figura 1. Diagrama de bloques de un sistema robótico......... 26 Figura 2. Arquitectura de un conjunto de herramientas case integradas.................................................................... 29 Figura 3. Petición cliente – servidor...................................... 31 Figura 4. Modelo de capas.................................................... 32 Figura 5. Modelo de objetos de un sistema de procesamiento de facturas................................................... 33 Figura 6. Modelo de objetos para la emisión de facturas al cliente.................................................................................. 34 Figura 7. Modelo llamada-retorno........................................ 36 Figura 8. Manejador de eventos............................................ 37 Figura 9. Control dirigido por interrupciones........................ 38 Figura 10. Modelo OSI.......................................................... 40 Figura 11. Sistema multiprocesador para el control de tráfico.................................................................................. 42 Figura 12. Sistema cliente – servidor.................................... 43 Figura 13. Sistema de tres capas.......................................... 43 Figura 14. Sistema de dos capas – Cliente ligero y pesado.... 44 Figura 15. Sistema bancario ATM......................................... 45 Figura 16. Arquitectura cliente – servidor de tres capas........ 45 Figura 17. Modelo cliente servidor de tres capas – Sistema bancario en internet............................................................. 46 Figura 18. Arquitectura de objetos distribuidos.................... 47 Figura 19. Estructura de una aplicación distribuida basada en CORBA................................................................ 49 Figura 20. Comunicación de objetos a través de ORB........... 50 Figura 21. Arquitectura peer-to-peer descentralizada........... 51 Figura 22. Arquitectura peer-to-peer semicentralizada......... 52 Figura 23. Componentes del procesamiento por lotes........... 55 Figura 24. Estructura de aplicaciones del procesamiento de transacciones........................................... 56 Figura 25. Sistema de transacciones bancarias usando un ATM..................................................................................... 57 Figura 26. Middleware para gestión de transacciones........... 57 Figura 27. Sistema de información....................................... 58 Figura 28. Sistema bibliotecario LYBYS................................ 58 Figura 29. Capas de un sistema de asignación de recursos.. 59 Figura 30. Sistema multicapa de procesamiento de transacciones por Internet................................................... 60 Figura 31. Modelo arquitectónico de un sistema edición....... 61 Figura 32. Arquitectura de un sistema de procesamiento de lenguajes.................................................. 62 Figura 33. Un modelo de flujo de datos de un compilador..... 63 Figura 34. El modelo de repositorio de un sistema de procesamiento de lenguajes.................................................. 63 Figura 35. Un Sistema compuesto de objetos que interactúan entre sí................................................................................ 69 Figura 36. Un objeto empleado............................................. 72 Figura 37. Un ejemplo de jerarquía con generalización......... 73 Figura 38. Un ejemplo objetos concurrentes......................... 74 Figura 39. Implementación de un objeto utilizando subprocesos de Java............................................................ 76 Figura 40. Arquitectura de capas para un sistema de creación de mapas meteorológico......................................... 78 Figura 41. Subsistemas en el ejemplo de mapas meteorológicos.................................................................... 79 Figura 42. Casos de usos de la estación meteorológica......... 80 Figura 43. Un ejemplo de caso de uso “Informar”................. 81 Figura 44. La arquitectura de una estación meteorológica.... 82 Figura 45. Ejemplos de clases en el sistema de estación meteorológica......................................................... 84 Figura 46. Subsistema de una estación meteorológica...... ....87 Figura 47. Secuencia de las operaciones de recogida de datos.................................................................................... 89 Figura 48. Diagrama de estado para WeatherStation............ 89 Figura 49. Descripción de Java de la interfaz de la estación meteorológica......................................................... 91 Figura 50. Nuevos objetos para ayudar a la supervisión de la contaminación............................................................. 91 Figura 51. Modelo general de un sistema en tiempo real...... 93 Figura 52. Procesos de control sensor/actuador................... 93 Figura 53. Modelo de máquina de estados de una bomba de petróleo................................................................ 97 Figura 54. Múltiples interfaces de usuario.......................... 110 Figura 55. Presentación de la información.......................... 110 Figura 56. El modelo MVC de interacción del usuario......... 111 Figura 57. Presentaciones alternativas de la información... 113 Figura 58. Métodos de presentar información numérica que varía dinámicamente................................................... 113 Figura 59. Vista de Información gráfica que muestra valores relativos................................................................. 115 Figura 60. Un recuadro de entrada de texto utilizado por una asistente............................................................... 118 Figura 61. Mensajes de error al sistema y al usuario.......... 118 Figura 62. Un proceso de desarrollo iterativo...................... 134 Figura 63. Desarrollo y prototipado incremental................. 137 Figura 64. El ciclo de entrega en la programación extrema.141 Figura 65. Tarjeta de historia para la descarga de documentos....................................................................... 142 Figura 66. Tarjetas de tareas para la descarga de documentos....................................................................... 144 Figura 67. Validez de la tarjeta de crédito........................... 144 Figura 68. Un entorno de desarrollo rápido de aplicaciones....................................................................... 146 Figura 69. Programación visual con reutilización................ 148 Figura 70. Vinculación de aplicaciones............................... 149 Figura 71. Pruebas Back-to-back....................................... 151 Figura 72. Proceso de desarrollo de prototipos.................... 151 Figura 73. Proceso de desarrollo de prototipos.................... 173 Figura 74. Costes crecientes de la eliminación de defectos residuales............................................................. 179 Figura 75. Excepción para manejar los números ingresados en una división.................................................................. 185 Figura 76. Excepción para el manejo de un numero ingresado dentro de un intervalo........................................ 187 Figura 77. Restricciones de los estados que se aplican en una bomba de insulina............................................................. 190 Figura 78. Programa que calcula el mayor de tres números enteros en Java.................................................................. 191 Figura 79. Interfaz para ocupaciones de justificación o comprobación en Java....................................................... 191 Figura 80. Procedimiento de ordenación seguro con recuperación hacia atrás.................................................... 193 Figura 81. Programación con n-versiones........................... 196 Figura 82. Redundancia modular Triple para tratar los fallos de ejecución del hardware......................................... 197 Figura 82. Bloques de Recuperación.................................. 197 Figura 84. Un modelo de desarrollo de software................. 200 Figura 85. Distribución del esfuerzo de mantenimiento...... 204 Figura 86. Conste de desarrollo y mantenimiento............... 205 Figura 87. Predicción de mantenimiento............................ 207 Figura 88. Identificación de los cambios y procesos de evolución........................................................................... 210 Figura 89. Implementación de Cambios.............................. 211 Figura 90. Proceso de reparación de emergencia................. 212 Figura 91. Ingeniería hacia adelante y reingeniería............. 214 Figura 92. El proceso de reingeniería................................. 216 Figura 93. Aproximación de reingeniería............................ 216 Figura 94. Evaluación de sistemas heredados.................. 2019 Índice de tablas Tabla 1. Principios de diseño de las interfaces de usuario... 105 Tabla 2. Factores que implican un mensaje de error........... 117 Tabla 3. Los principios de los métodos agiles...................... 139 Tabla 4. Prácticas de la programación extrema................... 139 Tabla 5. Características de los componentes...................... 173 Tabla 6. Factores utilizados en la evolución del entorno..... 222 Tabla 7. Factores Utilizados en la Evolución de la Aplicación.......................................................................... 224 Prefacio Por medio del epígrafe de la Ingeniería del software se puntualizan una enorme cantidad de disciplinas, técnicas y metodologías que se referencian a todas las actividades relacionadas con la fabricación del software y su gestión, expuestas desde el enfoque de la ingeniería. Este concepto abre un estudio muy amplio que es totalmente nuevo para el alumno. El éxito del desarrollo de un software es cuando satisfacen las necesidades de las personas que lo manipulan; en caso que funcione impecablemente durante mucho tiempo; en el momento que es fácil de modificar o incluso es más fácil de utilizar puede cambiar todas las cosas y de hecho las cambia para mejor. En el momento que falla un software es cuando los usuarios no se quedan satisfechos, cuando es propenso a errores; además, cuando es difícil de cambiar e incluso más difícil de utilizar, ocurren verdaderos desastres. Todos los programadores tienen la aspiración de desarrollar un software que haga bien las cosas, evitando que esas cosas malas ronden por las sombras de los esfuerzos fracasados. Para tener éxito al diseñar y construir un software necesitaremos disciplina. Es decir, necesitaremos un enfoque más allá de la ingeniería de sistemas. Hoy en día, el software es una parte integral de la mayoría de los sistemas. Para ejecutar proyectos software de forma satisfactoria y construir productos de alta calidad, los profesionales del software neces...
View Full Document

  • Winter '18
  • Comunicación, Computadora, Ingeniería de software, Cliente-servidor

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture