Está en la página 1de 26

Captulo 1 El diseo de software

Diseo y Programacin Orientado a Objetos Ingeniera Informtica Ingeniera Tcnica de Informtica de Sistemas y Gestin Optativa (6 crditos) http://www.info-ab.uclm.es/asignaturas/42579

Palabras clave del captulo


Extensibilidad Reutilizacin Modularidad Facilidad de mantenimiento Factores de calidad del software internos y externos Paradigmas de programacin

Curso 2004/05

Diseo y Programacin Orientada a Objetos

Bibliografa de consulta
Construccin de software orientado a objetos (Segunda edicin) Bertrand Meyer. Prentice Hall. Inteniera del software. Un enfoque prctico (Quinta edicin) Roger S. Pressman. McGraw Hill. Piensa en Java (Segunda edicin) Bruce Eckel. Prentice Hall.
Curso 2004/05 Diseo y Programacin Orientada a Objetos 3

Objetivos del captulo


Resaltar la importancia del diseo Presentar factores de calidad del software Presentar directrices y conceptos de diseo Caractersticas del software Pasos hacia la programacin orientada a objetos

Curso 2004/05

Diseo y Programacin Orientada a Objetos

Introduccin (i)
El objetivo general de la Ingeniera del Software es producir software de calidad Por calidad se entiende la adecuacin del software a los requisitos exigidos El camino para obtener software de calidad es mediante un planteamiento riguroso del problema El proceso de desarrollo de software es aquel en el que las necesidades del usuario son traducidas en requisitos de software, estos transformados en diseo y el diseo implementado en cdigo

Curso 2004/05

Diseo y Programacin Orientada a Objetos

Introduccin (y ii)
El proceso de desarrollo de software requiere por un lado un conjunto de conceptos, una metodologa y un lenguaje propio. A este proceso tambin se le denomina ciclo de vida del software

Anlisis Diseo Implementacin Instalacin


Curso 2004/05 Diseo y Programacin Orientada a Objetos 6

La calidad y sus factores


Pueden distinguirse dos tipos de factores de calidad: Los factores de calidad externos son aquellos que son perceptibles por los usuarios Correccin Eficiencia Robustez Portabilidad Extensibilidad Facilidad de uso Reutilizacin Funcionalidad Compatibilidad Los factores de calidad internos son los perceptibles por los profesionales en computacin Modularidad Legibilidad
Curso 2004/05 Diseo y Programacin Orientada a Objetos 7

Factores de calidad. Definiciones (i)


Correccin Habilidad de un sistema o producto software para desempear las funciones, exactamente como le fueron definidas en los requisitos y especificaciones Solidez o robustez Habilidad para funcionar an en condiciones anormales, es decir, con aquellos casos no explicitados en las especificaciones. Si se presentan el sistema termina limpiamente Confiabilidad = Correccin + Robustez

Curso 2004/05

Diseo y Programacin Orientada a Objetos

Factores de calidad. Definiciones (ii)


Extensibilidad Facilidad para adaptarse a los cambios en las especificaciones. Se logra haciendo simples los diseos de los mdulos autnomos Reutilizacin Habilidad para utilizar de nuevo productos de software completos o partes de ellos en nuevas aplicaciones Compatibilidad Facilidad con la que un producto software puede combinarse con otros. Se logra homogeneidad en el diseo y estandarizacin en la comunicacin entre programas
Curso 2004/05 Diseo y Programacin Orientada a Objetos 9

Factores de calidad. Definiciones (iii)


Eficiencia Facilidad de utilizar el mnimo de recursos de cmputo para conseguir mayor rapidez y menor necesidad de almacenamiento Portabilidad Facilidad de transferir productos a diferentes plataformas Facilidad de uso Facilidad con la que personas con diferentes niveles de experiencia pueden aprender a usar los productos software y aplicarlos a resolver problemas

Curso 2004/05

Diseo y Programacin Orientada a Objetos

10

Factores de calidad. Definiciones (y iv)


Funcionalidad Conjunto de posibilidades ofrecido por un sistema Otros factores Oportunidad Economa Integridad Facilidad de reparacin Facilidad de verificacin ...

Curso 2004/05

Diseo y Programacin Orientada a Objetos

11

Qu es diseo? (i)
El proceso de aplicar distintas tcnicas y principios con el propsito de definir un producto con los suficientes detalles como para permitir su realizacin fsica. Con el diseo se pretende construir un sistema que: Satisfaga determinada especificacin del sistema Se ajuste a las limitaciones impuestas por el medio de destino Respete requisitos sobre forma, rendimiento utilizacin de recursos, coste, etc.

Curso 2004/05

Diseo y Programacin Orientada a Objetos

12

Qu es diseo? (y ii)
El diseo es la primera etapa tcnica del proceso de Ingeniera del Software, consiste en producir un modelo o representacin tcnica del software que se va a desarrollar El diseo es el proceso sobre el que se asienta la calidad del software El diseo de software es un proceso iterativo a travs del cual se traducen los requisitos en una representacin del software El diseo se representa a un alto nivel de abstraccin, un nivel que se puede seguir hasta requisitos especficos de datos, funcionales y de comportamiento

Curso 2004/05

Diseo y Programacin Orientada a Objetos

13

Metodologas de diseo
Diseo de datos: Modelo de informacin a estructuras de datos Diseo arquitectnico: Define las relaciones entre los elementos estructurales de nuestro programa Diseo procedimental: Se transforman los elementos estructurales de nuestro programa en una descripcin procedimental del software Diseo de interfaz: Describe cmo se comunica el software consigo mismo y con su entorno
Curso 2004/05 Diseo y Programacin Orientada a Objetos 14

Directrices para un buen diseo


El diseo debe implementar todos los requisitos explcitos contenidos en el modelo de anlisis y debe acomodar todos los requisitos implcitos que desee el cliente El diseo debe ser una gua que puedan leer y entender los que construyan el cdigo y los que prueban y mantienen el software El diseo debera proporcionar una completa idea de lo que es el software, enfocando los dominios de datos, funcional y de comportamiento desde la perspectiva de la implementacin

Curso 2004/05

Diseo y Programacin Orientada a Objetos

15

Principios bsicos de diseo


El diseador debe considerar enfoques alternativos juzgando a cada uno en base a los requisitos del problema, los resultados disponibles y los criterios de calidad interna Se deberan poder seguir los pasos de diseo hasta el modelo de anlisis El diseo no va a reinventar nada que ya est inventado El diseo debera presentar uniformidad e integracin Debe estructurarse para admitir cambios El diseo no es escribir cdigo y escribir cdigo no es disear Se debera valorar la calidad del diseo mientras se crea, no despus de terminado

Curso 2004/05

Diseo y Programacin Orientada a Objetos

16

Conceptos del diseo (i)


A la hora de realizar el diseo del software debes plantearte Qu criterios se pueden usar para dividir el software en componentes individuales? Cmo se separan los detalles de una funcin o de la estructura de datos de la representacin conceptual del software? Existen criterios uniformes que definan la calidad tcnica de un diseo de programas?

Curso 2004/05

Diseo y Programacin Orientada a Objetos

17

Conceptos del diseo (ii)


Para ayudar a resolver las anteriores preguntas se han establecido unos conceptos fundamentales del diseo del software Abstraccin Refinamiento Modularidad Arquitectura del software Jerarqua de control Particin estructural (horizontal y vertical) Estructura de datos Procedimientos Ocultamiento de la informacin
Curso 2004/05 Diseo y Programacin Orientada a Objetos 18

Conceptos del diseo (y iv)


El diseo modular efectivo reduce la complejidad, facilita los cambios y produce como resultado una implementacin ms sencilla, permitiendo el desarrollo paralelo de las diferentes partes del sistema La independencia funcional se adquiere desarrollando mdulos con una clara funcin evitando una excesiva interaccin con otros mdulos. Este concepto est derivado de la modularidad, la abstraccin y el ocultamiento de la informacin

Curso 2004/05

Diseo y Programacin Orientada a Objetos

19

Conceptos del diseo (iii)


La independencia funcional se mide con dos criterios: Cohesin: extensin del concepto de ocultamiento de informacin. Un mdulo cohesivo ejecuta una tarea sencilla de un procedimiento de software y requiere poca interaccin con procedimientos que ejecutan otras partes de un programa Acoplamiento: medida de la interconexin entre mdulos de un programa Interesa una cohesin alta y un acoplamiento bajo

Curso 2004/05

Diseo y Programacin Orientada a Objetos

20

Modularidad
Criterios Descomposicin modular Composicin modular Comprensibilidad modular Continuidad modular Proteccin modular Reglas Correspondencia directa Pocas interfaces Interfaces pequeas Interfaces explicitas Ocultacin de la informacin

Principios Unidades modulares lingsticas Auto-documentacin Acceso uniforme Principio de abierto-cerrado Eleccin nica
Diseo y Programacin Orientada a Objetos 21

Curso 2004/05

Programacin Orientada a Objetos


Como paradigma es una filosofa de la que surge una cultura nueva que incorpora tcnicas y metodologas diferentes En ella el universo computacional est poblado por objetos, cada uno responsable de si mismo, y comunicndose con los dems por medio de mensajes. Cada objeto representa una instancia de alguna clase, y estas clases son miembros de una jerarqua de clases unidas va relaciones de herencia La diferencia entre un objeto y una clase es que un objeto es una entidad concreta que existe en tiempo y espacio, mientras que una clase representa una abstraccin, la esencia de un objeto.

Curso 2004/05

Diseo y Programacin Orientada a Objetos

22

Principios del modelo orientado a objetos


Abstraccin Descripcin simplificada del sistema que resalta unos detalles y suprime otros Encapsulacin Ocultar detalles de un objeto que no contribuyen a sus caractersticas esenciales Modularidad Propiedad de un sistema que ha sido descompuesto en un conjunto de mdulos coherentes e independientes Jerarqua o herencia Abstracciones organizadas por niveles
Curso 2004/05 Diseo y Programacin Orientada a Objetos 23

Evolucin histrica
Programacin estructurada Programacin modular Programacin orientada a objetos Programacin orientada a aspectos Programacin orientada a componentes

Curso 2004/05

Diseo y Programacin Orientada a Objetos

24

Principios de construccin
FUNCTION busquedaColeccin(x: elemento, t:coleccin): BOOLEAN VAR pos: posicin; Variacin de tipos BEGIN Variacin en implementacin pos = Comenzar(x, t); WHILE not Completa(pos, t) and not Encontrado(pos, t) DO pos = Siguiente(pos, x, t); busquedaColeccin = not Completa(pos, t); END; Independencia de la representacin Agrupacin de rutinas Factorizar los comportamientos comunes
Curso 2004/05 Diseo y Programacin Orientada a Objetos 25

Resumen
El diseo es el proceso sobre el que se asienta la calidad del software Por calidad se entiende la adecuacin del software a los requisitos exigidos El diseo modular efectivo reduce la complejidad, reduce la complejidad, facilita los cambios y produce como resultado una implementacin ms sencilla Los principios del modelo orientado a objetos son: abstraccin, encapsulacin, modularidad y jerarqua

Curso 2004/05

Diseo y Programacin Orientada a Objetos

26

También podría gustarte