


Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Desarrollo Orientado a Objetos, Profesor: , Carrera: Ingeniería Informática, Universidad: UAX
Tipo: Apuntes
1 / 4
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!



Los objetivos que estamos buscando son extensibilidad, reutilización y fiabilidad. Éstos requieren de las condiciones que hemos explicado anteriormente. Para lograr estas condiciones se requiere un método sistemático de descomposición de los sistemas en módulos. En este capítulo vamos a presentar los elementos básicos del método: construir cada módulo sobre la base de un tipo de objeto.
Hasta ahora hemos visto las características que deben tener los módulos. Ahora vamos a ver qué criterios hay que utilizar para encontrar los módulos de nuestro software.
El triángulo básico. Cuando se usa el software para una determinada operación, entran en juego tres fuerzas: acción , objeto y procesador. Ejecutar un sistema software es utilizar ciertos procesadores para aplicar ciertas acciones a ciertos objetos.
Los procesadores serán importantes cuando hablemos de las formas concurrentes de computación. Que no veremos en esta asignatura. Lo cual nos deja con acciones u objetos. Cualquier discusión sobre problemas de software debe tener en cuenta ambos aspectos, pero hay una cuestión sobre la cual es preciso decidir: ¿cuál es el criterio para encontrar los módulos de un sistema? A partir de esta respuesta se desprende la diferencia entre el enfoque orientado a objetos y los otros métodos. Los enfoques tradicionales construyen cada módulo en torno a alguna unidad de descomposición funcional. Como es predecible nos decantaremos por la descomposición O-O, pero vamos a justificar el porqué.
Vamos a examinar los méritos y limitaciones del enfoque tradicional.
Continuidad. Planteémonos el problema de la extensibilidad y más concretamente el de la continuidad. La respuesta tradicional a la cuestión de la modularización ha sido la descomposición funcional descendente. ¿Hasta qué punto responde el diseño descendente a los requisitos de modularidad?
Desarrollo descendente. Explicación del desarrollo descendente. El enfoque descendente presenta algunas ventajas:
Pero presenta algunas limitaciones:
Una valoración del diseño descendente El método resulta poco adecuado para desarrollar sistemas de cierta envergadura. Sigue siendo útil para pequeños programas y para algoritmos individuales. Al desarrollar un sistema de modo descendente se permuta la comodidad a corto plazo por la inflexibilidad a largo plazo.
Las razones para la utilización de objetos como clave para la modularización se basan en la extensibilidad y la reutilización.
Por supuesto no podemos descartar las funciones, sino que éstas se supeditarán a los objetos en las arquitecturas resultantes. La noción de tipo abstracto de datos (siguiente tema) nos proporcionará la definición de los objetos y el lugar apropiado de las funciones.
Extensibilidad. Si las funciones del sistema tienden a cambiar, ¿no podríamos encontrar algún otro elemento más estable que nos sirva como guía para la selección de módulos? Los tipos de los objetos manipulados por el sistema son los candidatos más prometedores. Ej. Sistema de nóminas (empleados, escalas salariales, horas trabajadas, salarios…)
Ya que los módulos se van a basar en tipos de objetos, las relaciones entre ellos determinarán la estructura del software.