tema 1 introduccion al diseno software

20
TEMA 1. INTRODUCCIÓN AL DISEÑO SOFTWARE

Upload: rafael-sanchez-gonzalez

Post on 25-Jul-2015

62 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Tema 1 introduccion al diseno software

TEMA 1.INTRODUCCIÓN AL DISEÑO SOFTWARE

Page 2: Tema 1 introduccion al diseno software

Introducción.

Objetivos Conocer diferentes conceptos de la informática y de la

programación. Ver las etapas que se deben de seguir a la hora de realizar

un programa. Conocer el ciclo de vida del software.

2

Page 3: Tema 1 introduccion al diseno software

Capítulo 1. Introducción

¿A que afecta el software? Transporte Servicios médicos Telecomunicaciones Fabricación de bienes Control financiero

Esto exige una garantía operativa

3

Page 4: Tema 1 introduccion al diseno software

Introducción. Construcción de Software

Capítulo 1. 4

Page 5: Tema 1 introduccion al diseno software

Capítulo 1. IntroducciónConstrucción de Software

Metodología de la programación para resolver un problema:

1. Formulación y especificación del problema. ¿Qué problema estamos intentando resolver? ¿Cuál será la finalidad del software en dicho contexto? ¿Quién tiene el conocimiento necesario? Especificación formal del problema

2. Diseño de una solución.3. Implementación de la solución.4. Prueba y documentación de la aplicación.5. Documentación:6. Valoración de la solución.

5

Page 6: Tema 1 introduccion al diseno software

Capítulo 1. IntroducciónConstrucción de Software

Metodología de la programación para resolver un problema:

1. Formulación y especificación del problema.2. Diseño de una solución.

Sin análisis de requisitos ni diseño, programar se convierte en el arte de añadir errores a un archivo de texto vacío. (L. Srygley)

3. Implementación de la solución.4. Prueba y documentación de la aplicación.5. Documentación:6. Valoración de la solución.

6

Page 7: Tema 1 introduccion al diseno software

Capítulo 1. IntroducciónConstrucción de Software

Metodología de la programación para resolver un problema:1. Formulación y especificación del problema.2. Diseño de una solución.3. Implementación de la solución.

Selección de las herramientas apropiadas Traducción del diseño a código Revisión y refinamiento

Profilers de código Análisis estático

4. Prueba y documentación de la aplicación.5. Documentación:6. Valoración de la solución.

7

Page 8: Tema 1 introduccion al diseno software

Capítulo 1. IntroducciónConstrucción de Software

Metodología de la programación para resolver un problema:1. Formulación y especificación del problema.2. Diseño de una solución.3. Implementación de la solución.4. Prueba y documentación de la aplicación.

Pruebas de validación. ¿Hace el sistema lo que necesita el usuario?

Pruebas de verificación. ¿Hace el sistema lo que dicen las especificaciones?

Documentación de uso del sistema5. Documentación:6. Valoración de la solución.

8

Page 9: Tema 1 introduccion al diseno software

Capítulo 1. IntroducciónConstrucción de Software

Metodología de la programación para resolver un problema:

1. Formulación y especificación del problema.2. Diseño de una solución.3. Implementación de la solución.4. Prueba y documentación de la aplicación.5. Documentación:

Implícita. Explícita (Comentarios como el Prólogo o Descriptivos). Herramientas de generación automática

6. Valoración de la solución.

9

Page 10: Tema 1 introduccion al diseno software

Capítulo 1. IntroducciónConstrucción de Software

10

Page 11: Tema 1 introduccion al diseno software

Capítulo 1. IntroducciónConstrucción de Software

Metodología de la programación para resolver un problema:

1. Formulación y especificación del problema.2. Diseño de una solución.3. Implementación de la solución.4. Prueba y documentación de la aplicación.5. Documentación:6. Valoración de la solución.

Estructuración, legibilidad y claridad del programa. Medidas de eficiencia: Espacio y Tiempo.

11

Page 12: Tema 1 introduccion al diseno software

Capítulo 1. IntroducciónConstrucción de Software

12

Page 13: Tema 1 introduccion al diseno software

Introducción. Diseño Software. Fundamentos

Capítulo 1. 13

Page 14: Tema 1 introduccion al diseno software

Capítulo 1. IntroducciónDiseño Software. Fundamentos

A.Abstracción: en distintos niveles, del más alto al más bajo. Procedimental (operaciones compuestas de

operaciones).Reducción de una secuencia de acciones a una denominación simple.

De datos (Datos complejos, formados por otros más simples). Diseño de tipos de datos complejos a partir de los ya existentes.

De control (flujo complejo abstraído)

B. Arquitectura del sistema: Aplicación de patrones arquitectónicos. Hay patrones genéricos

para varios modelos de sistemas software División del sistema en capas. Las arquitecturas que estructuran el

sistema en múltiples capas, son las más comunes

14

Page 15: Tema 1 introduccion al diseno software

Capítulo 1. IntroducciónDiseño Software. Fundamentos

C. Refinamiento: sucesivamente, se añaden detalles procedimentales hasta trabajar con sentencias “primitivas” del lenguaje de programación.

D. Modularidad: atacamos el problema por partes, dividimos el problema en módulos más sencillos de manejar. Cada capa se divide en módulos. Estrategia divide y vencerás aplicada

al diseño del sistema.

Facilidad de desarrollo y mantenimiento. Cuanto más simples sean los módulos mejor.

15

Page 16: Tema 1 introduccion al diseno software

Capítulo 1. IntroducciónDiseño Software. Fundamentos

E. Independencia funcional Máxima cohesión. Cada módulo se encarga de una única tarea y lo

hace de manera global

Mínimo acoplamiento. Los cambios en un módulo no deben provocar modificaciones en otros módulos

16

Page 17: Tema 1 introduccion al diseno software

Capítulo 1. IntroducciónDiseño Software

F. Arquitectura del Software: organización jerárquica de los módulos, su interacción y las estructuras de datos que utilizan.

G.Jerarquía de control: Organización de los módulos de un programa. Visibilidad: Conjunto de módulos que un módulo

puede llamar. Conectividad: módulos que llaman a otro módulos.

H.División Estructural: Capas de la arquitectura (Presentación, Aplicación y Datos)

17

Page 18: Tema 1 introduccion al diseno software

Capítulo 1. IntroducciónDiseño Software

I. Estructura de datos: Relación lógica entre los distintos elementos individuales de datos. Ejemplos: Listas, pilas, colas, etc.

J. Procedimientos de software: Detalles de procesamiento de cada módulo individual.

K. Ocultamiento de información: La información contenida en un modulo debe ser inaccesible al resto de módulos que no necesitan acceder a esa información. Permite independencia entre módulos. Abstracción de la complejidad Exponer únicamente la interfaz de

acceso Mayor independencia entre módulos La información de estado es

inaccesible para otros módulos

18

Page 19: Tema 1 introduccion al diseno software

Capítulo 1. IntroducciónDiseño Software

Existen dos formas de construir un diseño de software. Una forma es hacerlo tan simple que obviamente no haya deficiencias, y la otra es hacerlo tan complicado que no existan deficiencias obvias.

El primer método es mucho más difícil. C.A.R. Hoare

Escribir un programa brillante que funcione es una cosa, diseñar algo que pueda soportar a largo plazo un negocio es otra muy diferente.

C. Ferguson

19

Page 20: Tema 1 introduccion al diseno software

Capítulo 1. IntroducciónBibliografía

[AU87] A.V. Aho, J.A. Ullman. Data structures and algorithms. Addison-Wesley.1992.

[FGG98] J. Fernández, A. Garrido, M. García. Estructuras de datos. Un enfoque práctico usando C. Universidad de Granada, 1998.

[Pres01] R.S. Pressman. Ingeniería del software, Un enfoque práctico. Mc Graw Hill. 2001.

20