diseño: fundamento y documentación isf5501 ingeniería de software semana 13/2

24
Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

Upload: beatriz-rubio-gonzalez

Post on 02-Feb-2016

213 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

Diseño: Fundamento y Documentación

ISF5501 Ingeniería de SoftwareSemana 13/2

Page 2: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

Aprendizajes Esperados: Modela y Diseñar Sistemas de acuerdo a

requerimientos de negocio. Identifica técnicas de documentación en una solución.

Contenidos: Formula un proceso de diseño para el

desarrollo de aplicaciones informáticas para la gestión. Describe las técnicas de

documentación de la solución a implantar.

Page 3: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

1. Fundamentos del Diseño

2. Documentación de Diseño

3. Síntesis

Temario Semana 13-2

Page 4: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

Durante los últimos años se han desarrollado un conjunto de conceptos fundamentales para el diseño del software.

Estos fundamentos entregan al diseñador una base sobre la que puedan aplicarse metodologías de diseño mas o menos sofisticadas.

Todos ayudan al diseñador a responder las siguientes preguntas:

• ¿Qué criterios se pueden usar para partir el software en componentes individuales?.

• ¿Cómo se separan los detalles de una función o de la estructura de los datos de la representación conceptual del software?.

Fundamentos del Diseño

Page 5: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

a. Abstracción:

Considerando las soluciones modulares, pueden formularse muchos niveles de abstracción.

En el nivel superior de abstracción se establece una solución en términos amplios, usando el lenguaje del entorno del problema.

En los niveles inferiores de abstracción se toma una orientación mas procedimental. La terminología orientada al problema se acompaña con una terminología orientada a la implementación.

Fundamentos del Diseño

Page 6: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

Considerando las soluciones modulares, pueden formularse muchos niveles de abstracción.

En el nivel superior de abstracción se establece una solución en términos amplios, usando el lenguaje del entorno del problema.

Durante el análisis de requerimientos, se establece la solución del software en términos al entorno del problema. Conforme nos movemos desde lo Preliminar al Detallado, se reduce el nivel de abstracción. El nivel mas bajo de abstracción es la generación del código.

a. Abstracción:

Fundamentos del Diseño

Page 7: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

La abstracción de datos, como la abstracción procedimental, permite al diseñador representar un objeto de datos a diferentes niveles de detalle.

Ciertos conceptos de ingeniería como el refinamiento sucesivo y modularidad, están muy cerca del concepto de abstracción.

La abstracción de control es la tercera forma de abstracción que se utiliza en el diseño del software. Al igual que la abstracción de datos y procedimental, la abstracción de control implica un mecanismo de control de programa, sin especificar los detalles internos.

a. Abstracción:

Fundamentos del Diseño

Page 8: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

b. Refinamiento:

El Refinamiento es realmente un proceso de elaboración. Comenzamos con una declaración de la función definida a un nivel superior de abstracción.

Esto es, la declaración describe la función o la información conceptual, pero no proporciona información sobre el funcionamiento interno de la función.

El refinamiento hace que el diseñador amplíe la declaración original, dando cada vez mas detalles conforme se produzcan los sucesivos refinamientos.

Fundamentos del Diseño

Page 9: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

c. Modularidad:

Toda arquitectura implica modularidad; esto es, el software se divide en componentes con nombres y ubicaciones determinadas, que se denominan módulos, y que se integran para satisfacer los requisitos del software.

Se dice que la modularidad “es el atributo individual del software que permite a un programa ser intelectualmente manejable”.

Fundamentos del Diseño

Page 10: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

c. Modularidad:

A diferencia de los programas monolíticos, no pueden ser fácilmente abarcados el número de caminos de control, la expansión de las referencias, el número de variables y la complejidad global. Estos podrían hacer compleja su correcta comprensión.

Fundamentos del Diseño

Page 11: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

d. Arquitectura del Software:

Se refiere a dos características importantes del software:• La estructura jerárquica de los componentes

procedimentales (módulos).• La estructura de los datos.

La arquitectura del software se obtiene tras un proceso de partición, que relaciona los elementos de una solución del software con partes del mundo real.

La solución aparece cuando cada parte del problema está resuelto mediante uno o mas elementos del software. Este proceso representa una transición entre el Análisis de requisitos del software y el Diseño.

Fundamentos del Diseño

Page 12: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

P3

P1 P2

P4P5

“Problema” a ser resuelto con el software

P1 P2

P4 P5

P3

“Solución” de software

d. Arquitectura del Software:

Fundamentos del Diseño

Page 13: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

Estructura 1Estructura 2 Estructura 3

S1 S2 S3 S4 S5

“Problema”

S1

S3

S2

S4 S5

S1 S5S2

S4

S3

P

d. Arquitectura del Software:

Fundamentos del Diseño

Page 14: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

e. Jerarquía de Control (Estructura de Programa):

Representa la organización, regularmente jerárquica, de los componentes del sistema (módulos).

Para representar la Jerarquía de Control se pueden utilizar distintas notaciones entre las cuales destaca el Diagrama de Árbol, donde se expresa además su anchura y profundidad como indicadores de amplitud y niveles de control. Su lectura incluye: dependencia, compañeros, subordinados, etc.

Fundamentos del Diseño

A

B

B1 B2

C

C1

Page 15: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

f. Estructura de Datos:

Es una representación de la relación lógica existente entre los elementos individuales de datos.

Dicha Estructura dicta la organización, los métodos de acceso, el grado de asociatividad y las alternativas de procedimiento para la información.

La organización y complejidad de una estructura de datos tan solo está limitada por el ingenio del diseñador.

Existe un número reducido de estructuras de datos clásicas, que constituyen los bloques para la construcción de estructuras de datos mas complejas.

Fundamentos del Diseño

Page 16: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

• Elemento Escalar: representa un elemento simple de información, como por ejemplo una entidad lógica de un bit, un entero, una cadena de caracteres de cientos bytes, etc.

Elemento Escalar

• Vector Secuencial: organización de elementos escalares en una lista o agrupación contigua.

Vector Secuencial

f. Estructura de Datos:

Fundamentos del Diseño

Page 17: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

• Espacio n-dimensional: cuando el vector secuencial se amplía a dos, tres o, en último término, a un número arbitrario de dimensiones.

• Lista Enlazada: organización de elementos escalares, vectores o espacios, no contiguos (nodos), de modo de ser procesados como en una lista.

Lista Enlazada

f. Estructura de Datos:

Fundamentos del Diseño

Page 18: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

g. Procedimientos del Software:

Se centra sobre los detalles de procesamiento de cada módulo individual.

El procedimiento debe entregar una especificación precisa del procesamiento, incluyendo la secuencia de sucesos, los puntos concretos de decisiones, la repetición de operaciones e incluso la organización y estructuración de los datos.

Fundamentos del Diseño

Page 19: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

h. Ocultamiento de Información:

Está orientado a que los módulos deben especificarse y diseñarse de forma que la información (procedimientos y datos) contenida dentro de un módulo sea inaccesible a otros módulos que no necesiten tal información.

El ocultamiento implica que para conseguir una modularidad efectiva hay que definir un conjunto de módulos independientes, que se comuniquen con los otros sólo mediante la información que sea necesaria para realizar la función del software.

Fundamentos del Diseño

Page 20: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

1. Fundamentos del Diseño

2. Documentación de Diseño

3. Síntesis

Temario Semana 13-2

Page 21: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

Como toda etapa dentro del desarrollo de software, se debe incluir la Documentación.

El Documento de Diseño es que el respaldo formal de las actividades y tareas de esta etapa, junto con la entrega de la información relevante que le dará pauta a las otras etapas.

El Documento de Diseño, puede incluir temas tales como:

• Aspectos del Ámbito del Sistema• Documentación de Referencia

Documento de Diseño

• Descripciones propias del Diseño

• Descripciones Modular

Page 22: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

• Aspectos del Ámbito del Sistema• Documentación de Referencia

Documento de Diseño

• Descripciones propias del Diseño

• Descripciones Modular• Estructura de los repositorios de Datos

• Referencias cruzadas• Provisiones de Pruebas• Notas especiales• Otros.

Page 23: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

1. Fundamentos del Diseño

2. Documentación de Diseño

3. Síntesis

Temario Semana 13-2

Page 24: Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2

Síntesis• Los fundamentos del diseño son esenciales para un

correcto proceso de diseño.

• Cada fundamento es independiente en su definición, pero actúan en conjunto para que el diseño como etapa sea robusta en su definición.

• El documento de diseño es la formalidad documental de la etapa que siempre va en son de las actividades realizadas.