DISEÑO SOFTWARE TEORIA
Enviado por jejeje • 17 de Enero de 2019 • Apuntes • 6.579 Palabras (27 Páginas) • 460 Visitas
TEMA 1: Introducción
Modelo
• Un modelo es una simplificación de la realidad que permite comprender mejor el sistema
que estamos desarrollando.
Ingeniería del Software (IEEE)
• Es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo,
operación y mantenimiento del software, es decir, la aplicación de la ingeniería al software.
Objetivos del diseño
• Modelo estático: Representa la estructura del programa en base a paquetes y objetos que se
relacionan.
• Modelo dinámico: Representa el comportamiento del programa en base a objetos que se
comunican entre sí.
Programación No Estructurada
• Un solo programa principal que contiene las instrucciones que modifican una serie de datos
globales
Programación Procedimental
• Procedimientos: Conjunto de instrucciones y datos internos identificados por un nombre.
Programación Estructurada
• Estructuras básicas de diseno: Secuencia, selección e iteración y eliminación de saltos
incondicionales
Programación Modular
• Módulos: Agrupan procedimientos con funcionalidades comunes. Incluyen procedimientos
y datos privados al módulo
Tipos Abstractos de Datos
• Instanciación: Se permite la instanciación de tipos propios definidos por el programador
Programación Orientada a Objetos
• Formado por objetos con un comportamiento y estado propios que se comunican
intercambiando mensajes
Similitudes entre Objetos y TADs
• En principio un objeto no es más que un tipo abstracto de datos. Simplemente se cambia la
notación y en vez de hablar de tipos y variables hablamos de clases y objetos.
• Los objetos mantienen características ya existentes en los TADs como abstracción,
encapsulación, modularidad, etc.
• Un objeto pertenece a una clase, mantiene un estado interno privado y ofrece al exterior
procedimientos y funciones (comunmente ́ denominados métodos) que permiten cambiar
dicho estadoHerencia
• Los objetos pueden heredar atributos y comportamiento definidos en otros objetos.
• A la herencia se anaden otras caracter ísticas asociadas como el polimorfismo o la ligadura
dinámica
• La herencia permite definir nuevas clases que hereden las características de sus clases padre
y anadan, a su vez, caracter ísticas especializadas propias.
• También puede usarse para generalizar en una superclase características comunes existentes
en las subclases
Ventajas de la Orientación a Objetos
• Reutilización Los objetos bien disenados pueden utilizarse como base de otros sistemas,
que se constituyen como una combinación de los objetos existentes
• Modularidad Los objetos son autocontenidos y tienen definido de forma clara sus
interfaces con otros objetos
• Comprensión Al estar los datos y procedimientos que conforman los objetos encapsulados
en un mismo compartimento, los objetos pueden ser desarrollados y probados en forma
independiente
• Extensibilidad La herencia permite que sea posible definir y utilizar de forma clara
módulos funcionalmente incompletos y, luego, permiten su extensión sin trastornar la
operación de los módulos cliente
• Escalabilidad Los disenos orientados a objetos, al ser fácilmente extensibles, permiten que
el esfuerzo no aumente exponencialmente con el tamano y la complejidad del proyecto, tal y
como sucede con los sistemas convencionales
• Naturalidad El análisis y el diseno que dividen un dominio en objetos, está más acorde con
la realidad que una descomposición funcional por refinamiento progresivo
Inconvenientes de la Orientación a Objetos
• Curva de aprendizaje Aprender un lenguaje orientado a objetos y dominar sus técnicas
fundamentales es más complejo que aprender un lenguaje imperativo
• Cambio de enfoque Los desarrolladores generalmente aprenden a programar con lenguajes
imperativos a través de una filosofía top-down y deben cambiar a una filosofía bottom-up
• Reutilizaciones ineficientes Los objetos en sí mismos no son reutilizables por ser objetos,
hay que programar pensando en la reutilización y no siempre se invierte el esfuerzo
necesario
• Orientación a objetos forzada “Si la unica herramienta que tienes es un martillo, entonces
tiendes a ver todos los problemas como si fueran clavos”. Forzar la utilización de objetos en
determinados entornos puede producir diseno no adecuados (ej. la clase Math no sigue la
OO)Tema
...