You are on page 1of 4

Captulo 1.

Introduccin
2

A q que afecta el software?


TEMA 1. 1 INTRODUCCIN AL DISEO SOFTWARE

Transporte Servicios mdicos Telecomunicaciones Fabricacin de bienes Control financiero

Esto exige una garanta operativa

Captulo 1. Introduccin Construccin de Software


Metodologa M t d l de d la l programacin i para resolver l un problema: 1. Formulacin y especificacin del problema.

Captulo 1.
Introduccin. Construccin de Software

Qu problema estamos intentando resolver? Cul ser la finalidad del software en dicho contexto? Quin tiene el conocimiento necesario? Especificacin formal del problema

2 Diseo 2.

de una solucin. solucin de la solucin. 4. Prueba y documentacin de la aplicacin. 5. Documentacin: 6. Valoracin de la solucin.
3. Implementacin

Captulo 1. Introduccin Construccin de Software


Metodologa M t d l de d la l programacin i para resolver l un problema:
1 Formulacin 1.

Captulo 1. Introduccin Construccin de Software


M t d l d Metodologa de la l programacin i para resolver l un problema: bl
1. 2. 3.

y especificacin del problema. problema 2. Diseo de una solucin.


Sin anlisis de requisitos ni diseo, diseo programar se convierte en el arte de aadir errores a un archivo de texto vaco. (L. Srygley)

Formulacin y especificacin del problema. Diseo de una solucin. Implementacin de la solucin.


Seleccin de las herramientas apropiadas Traduccin d del d l diseo d a cdigo d Revisin y refinamiento

3. Implementacin I l i

de d l la solucin. l i 4. Prueba y documentacin de la aplicacin. 5. Documentacin: D t i 6. Valoracin de la solucin.

Profilers de cdigo Anlisis esttico

4. 5 5. 6.

Prueba y documentacin de la aplicacin. Documentacin: Valoracin de la solucin.

Captulo 1. Introduccin Construccin de Software


M t d l d Metodologa de la l programacin i para resolver l un problema: bl
1. 2. 3. 4.

Captulo 1. Introduccin Construccin de Software


Metodologa M t d l de d la l programacin i para resolver l un problema:
1 Formulacin 1. 2. Diseo

Formulacin y especificacin del problema. Diseo de una solucin. Implementacin de la solucin. Prueba y documentacin de la aplicacin.

Pruebas de validacin.

Hace el sistema lo que necesita el usuario? Hace el sistema lo que dicen las especificaciones?

Pruebas de verificacin. Documentacin de uso del sistema

y especificacin del problema. problema de una solucin. 3 Implementacin de la solucin. 3. solucin 4. Prueba y documentacin de la aplicacin. 5 Documentacin: 5.

5 5. 6.

Documentacin: Valoracin de la solucin.

Implcita. Explcita p (Comentarios ( como el Prlogo g o Descriptivos). p )

Herramientas de generacin automtica 6. Valoracin de la solucin.

Captulo 1. Introduccin Construccin de Software

10

Captulo 1. Introduccin Construccin de Software


Metodologa M d l de d la l programacin i para resolver l un problema:
1. Formulacin 2. Diseo

y especificacin del problema. de una solucin. 3. Implementacin de la solucin. 4. Prueba y documentacin de la aplicacin. 5. Documentacin: 6. Valoracin de la solucin.

Estructuracin, legibilidad y claridad del programa. Medidas de eficiencia: Espacio y Tiempo.

11

Captulo 1. Introduccin Construccin de Software


12

Captulo 1.
Introduccin. Diseo Software. Fundamentos

13

Captulo 1. Introduccin Diseo Software. Fundamentos


A. Abstraccin: Ab i

14

Captulo 1. Introduccin Diseo Software. Fundamentos


C. Refinamiento:

en distintos d niveles, l del d l ms alto l al l ms bajo. b

Procedimental (operaciones compuestas de operaciones).Reduccin de una secuencia de acciones a una denominacin simple. De datos (Datos complejos, formados por otros ms simples). Di de Diseo d tipos ti de d datos d t complejos l j a partir ti d de los l ya existentes. it t De control (flujo complejo abstrado)

sucesivamente, se aaden detalles procedimentales hasta trabajar con sentencias primitivas del lenguaje de programacin. programacin D. Modularidad: atacamos el problema por partes, dividimos el problema en mdulos ms sencillos de manejar. manejar

B Arquitectura B.

del sistema:

Cada capa se divide en mdulos. Estrategia divide y vencers aplicada al diseo del sistema. Facilidad de desarrollo y mantenimiento. Cuanto ms simples sean los mdulos mejor.

Aplicacin de patrones arquitectnicos. Hay patrones genricos para varios modelos de sistemas software Divisin del sistema en capas. Las arquitecturas que estructuran el sistema en mltiples capas son las ms comunes

15

Captulo 1. Introduccin Diseo Software. Fundamentos


E.

16

Captulo 1. Introduccin Diseo Software


F. Arquitectura A i

Independencia funcional

Mxima cohesin. Cada mdulo se encarga de una nica tarea y lo hace de manera global Mnimo acoplamiento. Los cambios en un mdulo no deben provocar modificaciones en otros mdulos

d del l Software: S f organizacin jerrquica de los mdulos, su interaccin y las estructuras de d t que utilizan. datos tili G.Jerarqua de control: Organizacin de los mdulos de un programa. d

Visibilidad: Conjunto de mdulos que un mdulo puede d llamar. ll Conectividad: mdulos que llaman a otro mdulos.

H.Divisin Di i i

Estructural: E t t l Capas C de d la l arquitectura i (Presentacin, Aplicacin y Datos)

17

Captulo 1. Introduccin Diseo Software


Estructura E t t d de datos: d t Relacin R l i lgica l i entre t los l di distintos ti t elementos individuales de datos. Ejemplos: Listas, pilas, colas, etc. J. Procedimientos de software: Detalles de procesamiento de cada mdulo individual. K Ocultamiento K. O lt i t de d informacin: i f i La L informacin i f i contenida t id en un modulo debe ser inaccesible al resto de mdulos que no necesitan acceder a esa informacin. Permite independencia entre mdulos.
I I.

18

Captulo 1. Introduccin Diseo Software


Existen dos formas de construir un diseo de software. Una forma es hacerlo tan simple que obviamente no haya deficiencias, y la otra es h hacerlo l tan complicado li d que no existan i d deficiencias fi i i obvias. b i El primer mtodo es mucho ms difcil. C.A.R. Hoare

Abstraccin de la complejidad Exponer nicamente la interfaz de acceso Mayor independencia entre mdulos La informacin de estado es inaccesible para otros mdulos

Escribir una pieza de cdigo brillante que funcione es una cosa, disear algo l que pueda d soportar t al largo plazo l un negocio i es otra t muy diferente. dif t C. Ferguson

19

Captulo 1. Introduccin Bibliografa


[AU87] A.V. Aho, J.A. Ullman. Data structures and algorithms. Addison-Wesley.1992. [FGG98] J. Fernndez, A. Garrido, M. Garca. Estructuras de datos. Un enfoque prctico usando C. Universidad de Granada, 1998. [Pres01] [P 01] R R.S. S Pressman. P I Ingeniera i d del l software, ft U Un enfoque f prctico. Mc Graw Hill. 2001.

You might also like