DSW IntroDiseno1 2xh
Introducción a Diseño de Software
1ra Parte
Desarrolllo de Software ‐ UNCo
1
Contenidos
y FUNDAMENTOS Y OBJETIVOS
y PROCESO DE DISEÑO
y PRINCIPIOS DE DISEÑO
y DISEÑAR PARA EL CAMBIO
Desarrolllo de Software ‐ UNCo
2
Fundamentos de Diseño
y Lectura Inicial
y Ghezzi – Fundamentals of Software Engineering –
Prentice‐Hall, 1991. Capítulo 4
Desarrolllo de Software ‐ UNCo
3Fundamentos de Diseño
Diseño de Software: proceso por el cual se desarrolla un modelo o
representación de la entidad objetivo.
• Combina:
• Intuición (basada en el sentido común).
• Alta creatividad
• Criterios basados en experiencia de desarrollos previos
• Principios y heurísticas que guían la forma del desarrollo.
• Criterios que permiten discernir sobre la calidad.
• Un proceso de iteración queconduce a una representación del
diseño final.
Objetivo del Diseño: Actividad que transforma los requerimientos en
una descripción de la arquitectura.
Desarrolllo de Software ‐ UNCo
4
Objetivos de Diseño
♦
Descomponer el sistema en componentes
- identificar la arquitectura de software
♦
Determinar relaciones entre los componentes
- identificar dependencias entre componentes y
mecanismos decomunicación intercomponente
♦
Especificar interfaces de componentes
- interfaces bien definidas
♦
Facilitar testing de componentes y
comunicación dentro de los grupos de desarrollo
♦
Describir funcionalidad de componentes
- informal o formalmente
♦
Identificar oportunidades para
reuso sistemático
Desarrolllo de Software ‐ UNCo
5
Proceso de Diseño
• Pasos Iterativos (Vista de Gestión):
♦Diseño Preliminar
Diseño externo: describe el modelo del mundo real.
♦
Diseño Arquitectónico: descompone la SRS
en subsistemas de software.
Diseño Detallado
Especificar cada subsistema
Profundizar en cada subsistema
(si es necesario)
Desarrolllo de Software ‐ UNCo
6
Proceso de Diseño (cont.)
Etapas de Diseño. Vista Técnica
•
Diseño de Datos: Efectuar
• Diseño de Funcionalidad:Abstracción procedimental.
Determinar la secuencia de
instrucciones de una función acotada
y específica.
abstracción de la información.
Conformar la colección de datos que
describen a una entidad.
Ej. Empleado de una empresa.
Composición: Nombre y Apellido, dirección,
Telefono, Categoria, Cargo, etc..
Nos referimos a esta colección simplemente
como “Empleado”.
•
Diseño Arquitectónico: Abstracciónholística. Particionamiento de acuerdo a
cualidades de software: reusabilidad,
mantenibilidad, etc.
Ej. 2 niveles. Arquitectura de tres capas:
Presentación, Aplicación, Base Datos.
Ej. 2 niveles. Transacción Extracción :
Obtener Cantidad a Extraer, Obtener Saldo,
Comparar Cantidades, Otorgar Extracción.
Obtener Saldo: Recibir nro_cuenta, Consultar
saldo en Ar_Cuentas con nro_cuenta,
Devolversaldo.
• Diseño de Interfaces de Usuario:
Establecer la disposición y los
mecanismos para la interacción
Hombre-Máquina (HCI).
Aplicación: Compras, Ventas, Consultas.
Desarrolllo de Software ‐ UNCo
7
Proceso de Diseño (cont.)
- Niveles de Abstracción Relaciones entre las vistas de Gestión y Técnica.
Vista de Gestión
Diseño Detallado
Diseño Preliminar
Diseño de Datos
Diseño Arquitectónico
VistaTécnica
Diseño de Funcionalidad
Diseño Interface Usuario
Desarrolllo de Software ‐ UNCo
8
Principios de Diseño
Necesitamos diseñar sistemas confiables y evolutivos.
“Lograr alcanzar las cualidades anheladas”.
•
•
•
•
•
Modularidad
Separación de Aspectos
Ocultamiento de Información
Rigor y Formalidad
Anticipación al Cambio
Desarrolllo de Software ‐ UNCo
9
Principios de Diseño (cont.)
•Modularidad
•
Cuando un modulo M se descompone en otros
modulos, decimos que éstos implementan a M.
•
La implementacion se realiza por
descomposicion recursiva en (sub) modulos
dentro de un modulo.
•
Proceso iterativo hasta alcanzar la instancia
donde la implementación se puede hacer en
términos de un lenguaje de programación.
Desarrolllo de Software ‐ UNCo
10
Principios de Diseño (cont.)...
Regístrate para leer el documento completo.