PDF de programación - INGENIERÍA DEL SOFTWARE I Tema 4 Diseño de Software

Imágen de pdf INGENIERÍA DEL SOFTWARE I Tema 4 Diseño de Software

INGENIERÍA DEL SOFTWARE I Tema 4 Diseño de Softwaregráfica de visualizaciones

Publicado el 14 de Enero del 2017
1.428 visualizaciones desde el 14 de Enero del 2017
1,0 MB
44 paginas
Creado hace 14a (02/11/2009)
INGENIERÍA DEL SOFTWARE I

Tema 4

Diseño de Software

Univ. Cantabria – Fac. de Ciencias

Francisco Ruiz

Objetivos
• Tener una visión general de los principios,

características y métodos de diseño del software.

• Comprender la importancia de tener definida una

correcta y adecuada arquitectura del sistema.

• Conocer las características generales de los

principales estilos arquitecturales.

• Tener una visión general de los distintos tipos de

notaciones gráficas y textuales para artefactos de
diseño software.

• Conocer las características generales de las

principales estrategias y métodos de diseño.

Francisco Ruiz, Michael González Harbour - IS1

4.2

1

Contenido
• Introducción
Definición
Diseño Arquitectural vs

Detallado

• Principios del Diseño de

Software
Descomposición
• Principales Retos

Aspectos

• Arquitectura del Software

Vistas Arquitecturales
Estilos Arquitecturales
Estilos de Control
Patrones de Diseño

• Notaciones

Descripciones Estructurales
Descripciones de
Comportamiento
• Tipos de Modelos

Arquitecturales

• Estrategias y Métodos

Diseño Estructurado
Diseño OO
Diseño Centrado en los Datos
Diseño con Componentes

Francisco Ruiz, Michael González Harbour - IS1

4.3

Bibliografía
• Básica

2004 Version.

Capítulo 3.
http://www.swebok.org/

IEEE Computer Society (2004)

SWEBOK - Guide to the Software Engineering Body of Knowledge,

Caps. 8 y 11 del libro de Sommerville (2005).

• Complementaria

Cap. 14 del libro de Sommerville (2005).
Caps. 8 y 9 del libro de Pressman (2005).
Cap. 6 y 7 del libro de Piattini (2007).
Cap. 5 del libro de Pfleeger (2002).

Francisco Ruiz, Michael González Harbour - IS1

4.4

2

Introducción - Definición
• En sentido general, diseñar es una forma de

resolución de problemas.

• Por ello, al diseñar se utilizan nociones como

Objetivos
Restricciones
Alternativas
Representaciones
Soluciones

Francisco Ruiz, Michael González Harbour - IS1

4.5

Introducción - Definición
• Juega un papel clave en el desarrollo de software

porque permite a los ingenieros de software
producir diversos modelos que:
Caracterizan la solución a implementar.
Pueden ser analizados y evaluados con el fin de

determinar si se satisfacen los requisitos.

Facilitan el examen y evaluación de alternativas.
Sirven para planificar las siguientes actividades del

desarrollo.

Francisco Ruiz, Michael González Harbour - IS1

4.6

3

Introducción - Definición
• Perspectiva del Proceso

Diseñar es el esfuerzo para definir la

arquitectura, componentes, interfaces y otras
características de un sistema o componente [IEEE
610-1990].

El Diseño de Software es la actividad del ciclo de vida
del software en la cual se analizan los requisitos para
producir una descripción de la estructura interna del
software que sirva de base para su construcción.

La salida es un conjunto de modelos y artefactos que

registran las principales decisiones adoptadas.

Francisco Ruiz, Michael González Harbour - IS1

4.7

Introducción - Definición
• Perspectiva del Resultado

Un Diseño es el resultado de dicho esfuerzo.
Un Diseño Software describe:

La arquitectura del software (cómo está

descompuesto y organizado en componentes),

La interfaces entre dichos componentes, y
Los componentes a un nivel de detalle que permita su

construcción.

Francisco Ruiz, Michael González Harbour - IS1

4.8

4

Introducción – Diseño Arquitectural vs Detallado
• El estándar ISO 12207 identifica dos tipos de Diseño

Software:
Arquitectural

[alto nivel]

Describe la estructura y organización de alto nivel, es
decir, los subsistemas o componentes y sus relaciones

Detallado

Describe cada componente y su comportamiento
específico, de forma que puede procederse a su
construcción

Francisco Ruiz, Michael González Harbour - IS1

4.9

Introducción – Diseño Arquitectural vs Detallado
• Diseño Arquitectural

Es el primer paso en el diseño de un sistema, previo al

diseño detallado.

Su resultado se conoce como arquitectura del

software. [se presenta después]

Representa el enlace entre la especificación de requisitos y

el diseño.

Puede llevarse a cabo en paralelo con actividades de

especificación de requisitos.

Implica un esfuerzo creativo, de forma que las actividades
a realizar pueden cambiar según la naturaleza del sistema
a desarrollar.

Francisco Ruiz, Michael González Harbour - IS1

4.10

5

Introducción – Diseño Arquitectural vs Detallado
• Durante el diseño arquitectural es necesario

adoptar algunas decisiones:
¿Existe una arquitectura genérica que pueda ser usada?
¿Cómo será distribuido el sistema?
¿Qué estilos arquitectónicos son apropiados?
¿Qué aproximación se utilizará para estructurar el

sistema?

¿Cómo se descompondrá el sistema en módulos?
¿Qué estrategia de control se utilizará?
¿Cómo se evaluará el diseño arquitectural resultante?
¿Cómo se documentará la arquitectura?

Francisco Ruiz, Michael González Harbour - IS1

4.11

Principios del Diseño de Software
• Principios

Verdades básicas o leyes generales que se utilizan como

base de razonamiento o como guía para actuar.

• Los Principios del Diseño Software son nociones

clave consideradas fundamentales en muchas
aproximaciones y conceptos de diseño diferentes.

Francisco Ruiz, Michael González Harbour - IS1

4.12

6

Principios del Diseño de Software
• Abstracción

Olvidar información que diferencia ciertas cosas y así

poder tratarlas como si fueran similares.

• En Software los mecanismos básicos de abstracción

son:
Parametrización
Especificación

Abstracción Procedural
Abstracción de Datos
Abstracción de Control (iteración)

Francisco Ruiz, Michael González Harbour - IS1

4.13

Principios del Diseño de Software
• Acoplamiento y Cohesión

Acoplamiento: Fortaleza de las relaciones entre

módulos
INTER

Cohesión: cómo están relacionados los

elementos de un mismo módulo.
INTRA

Francisco Ruiz, Michael González Harbour - IS1

4.14

7

Principios del Diseño de Software
• Descomposición

Descomponer un software en diversas unidades
más pequeñas, habitualmente con el fin de situar
diferentes funcionalidades o responsabilidades en
diferentes componentes.

• Encapsulamiento [ocultamiento de información]
Consiste en agrupar y empaquetar los elementos
y detalles internos de una abstracción y hacer que
dichos detalles sean inaccesibles desde fuera.

Francisco Ruiz, Michael González Harbour - IS1

4.15

Principios del Diseño de Software
• Separación de Interfaz e Implementación

Definir un componente especificando una interfaz

pública,
conocida por otros componentes o clientes,
separada de los detalles de cómo dicho componente

está realizado (implementado).

• Suficiencia y Completitud

Asegurar que un componente software captura

todas las características importantes de una
abstracción y ninguna más.

Francisco Ruiz, Michael González Harbour - IS1

4.16

8

Principios del Diseño de Software - Descomposición
• Hay dos tipos de Descomposición

Estructuración/Organización del sistema:

El sistema en subsistemas

Descomposición modular:

Subsistemas en módulos.
• Subsistemas vs Módulos

No siempre hay una diferenciación clara
Subsistema: Un sistema en sí mismo, cuyo

funcionamiento es independiente de los servicios provistos
por otros subsistemas.

Módulo: Componente de un sistema que provee servicios

a otros componentes y que no se considera un sistema
separado.

Francisco Ruiz, Michael González Harbour - IS1

4.17

Principios del Diseño de Software - Descomposición
• Aproximaciones para Descomposición Modular:

Objetos

El (sub)-sistema se decompone en objetos que interactúan.
Tubería o Flujo de Datos [orientado a funciones]

El (sub)-sistema se decompone en módulos funcionales que

transforman entradas en salidas.

Francisco Ruiz, Michael González Harbour - IS1

4.18

9

Principales Retos
• Al diseñar software es necesario enfrentarse a varios

problemas o dificultades importantes.
Atributos de Calidad que deben satisfacerse.

Ej: Rendimiento.

Cómo descomponer, organizar y empaquetar

componentes.

Aspectos del comportamiento del software que no son
del dominio del problema o aplicación, sino de dominios
laterales que afectan de manera transversal a la
funcionalidad del sistema.
Estos aspectos no suelen suponer unidades de descomposición

funcional, sino que son propiedades que afectan a diversos
componentes (en su rendimiento o semántica) de forma
sistemática.

Francisco Ruiz, Michael González Harbour - IS1

4.19

Principales Retos
• En los últimos años se está abordando el problema del

Diseño de Sistemas Software Genéricos
mediante Líneas de Producto Software

• Su objetivo es el diseño de familias de

programas, es decir, colecciones de programas que
tienen muchas cosas en común.
Ej: Gestión de Tiendas de Venta al Público

• Haciendo reutilización al máximo, pero permitiendo

adaptación y variabilidad en cada producto
particular.
Gestión de Tiendas de Ropa / Videoclubs / Supermercados

Francisco Ruiz, Michael González Harbour - IS1

4.20

10

Principales Retos - Aspectos
• Lo
  • Links de descarga
http://lwp-l.com/pdf1068

Comentarios de: INGENIERÍA DEL SOFTWARE I Tema 4 Diseño de Software (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad