[go: up one dir, main page]

0% encontró este documento útil (0 votos)
285 vistas26 páginas

Estudiante - CONCEPTOS de DISEÑO - Pressman

Este documento presenta los conceptos fundamentales del diseño de software. Explica que el diseño produce modelos que son funcionales, resistentes y bellos. También describe los lineamientos del proceso de diseño, como dividir el software en módulos independientes y crear interfaces que reduzcan la complejidad. Finalmente, explica conceptos clave como abstracción, arquitectura y patrones de diseño orientados a objetos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
285 vistas26 páginas

Estudiante - CONCEPTOS de DISEÑO - Pressman

Este documento presenta los conceptos fundamentales del diseño de software. Explica que el diseño produce modelos que son funcionales, resistentes y bellos. También describe los lineamientos del proceso de diseño, como dividir el software en módulos independientes y crear interfaces que reduzcan la complejidad. Finalmente, explica conceptos clave como abstracción, arquitectura y patrones de diseño orientados a objetos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 26

CONCEPTOS DE

DISEÑO
Dr. Marco Toranzo
Agosto / 2019
Agenda
Introducción

• El diseño de software agrupa el conjunto de principios, conceptos y prácticas


que llevan al desarrollo de un sistema o producto de alta calidad.
• El objetivo del diseño es producir un modelo o representación que tenga
resistencia, funcionalidad y belleza.
• En este capítulo, se estudian los conceptos y principios fundamentales
aplicables a todo el diseño de software
• Deben entenderse los conceptos de diseño antes de aplicar la mecánica de
éste, y la práctica del diseño en sí lleva a la creación de distintas
representaciones del software que sirve como guía para la actividad de
construcción que siga.
Introducción
DISEÑO EN EL CONTEXTO DE LA INGENIERÍA DE SOFTWARE

• Es una actividad técnica. El diseño de software se ubica en el área técnica de


la ingeniería de software y se aplica sin importar el modelo del proceso que
se utilice.
• ¿Cuándo comienza el diseño?. El diseño del software comienza una vez que
se han analizado y modelado los requerimientos. El diseño prepara la etapa
de construcción (generación y prueba de código).
DISEÑO EN EL CONTEXTO DE LA INGENIERÍA DE SOFTWARE
EL PROCESO DE DISEÑO
EL PROCESO DE DISEÑO

• Lineamientos para el diseño:


1. Debe tener una arquitectura
2. Debe ser modular, es decir, el software debe estar dividido de manera lógica en elementos o
subsistemas.
3. Debe contener distintas representaciones de datos, arquitectura, interfaces y componentes.
4. Debe conducir a estructuras de datos apropiadas para las clases que se van a implementar y que
surjan de patrones reconocibles de datos.
5. Debe llevar a componentes que tengan características funcionales independientes.
6. Debe conducir a interfaces que reduzcan la complejidad de las conexiones entre los componentes y
el ambiente externo.
7. Debe obtenerse con el empleo de un método repetible motivado por la información obtenida
durante el análisis de los requerimientos del software.
8. Debe representarse con una notación que comunique con eficacia su significado.
https://azure.microsoft.com/es-es/solutions/architecture/
https://azure.microsoft.com/es-es/solutions/architecture/hpc-risk-analysis/
EL PROCESO DE DISEÑO

• Atributos de la calidad. Hewlett-Packard [Gra87] desarrolló un conjunto


de atributos de la calidad del software a los que se dio el acrónimo FURPS:
funcionalidad, usabilidad, confiabilidad, rendimiento y mantenibilidad.
• No todo atributo de la calidad del software se pondera por igual al diseñarlo.
Una aplicación tal vez se aboque a lo funcional con énfasis en la seguridad.
Otra quizá busque rendimiento con la mira puesta en la velocidad de
procesamiento.
CONCEPTOS DE DISEÑO

• conceptos importantes del diseño de software:


❖ Abstracción. ❖ Rediseño
❖ Arquitectura. ❖ Conceptos de diseño
❖ Patrones orientados a objeto

❖ División de problemas
❖ Modularidad
❖ Ocultamiento de información
❖ Independencia funcional
❖ Refinamiento
8.3 CONCEPTOS DE DISEÑO

• Abstracción (procedimiento y datos). Cuando se desarrollan niveles de


abstracción distintos, se trabaja para crear abstracciones tanto de
procedimiento como de datos. Una abstracción de procedimiento es una secuencia
de instrucciones que tienen una función específica y limitada. Una abstracción
de datos es un conjunto de éstos con nombre que describe a un objeto de
datos.
• Arquitectura. La arquitectura del software alude a “la estructura general de éste
y a las formas en las que ésta da integridad conceptual a un sistema”
[Sha95a]. En su forma más sencilla, la arquitectura es la estructura de
organización de los componentes de un programa (módulos), la forma en la
que éstos interactúan y la estructura de datos que utilizan.
CONCEPTOS DE DISEÑO

• Shaw y Garlan [Sha95a] describen un conjunto de propiedades que deben


especificarse como parte del diseño de la arquitectura:
❖ Propiedades estructurales. Este aspecto de la representación del diseño arquitectónico
define los componentes de un sistema (módulos, objetos, filtros, etc.) y la manera en la
que están agrupados e interactúan unos con otros.
❖ Propiedades extrafuncionales. La descripción del diseño arquitectónico debe abordar la
forma en la que la arquitectura del diseño satisface los requerimientos de desempeño,
capacidad, confiabilidad, seguridad y adaptabilidad, así como otras características del
sistema.
❖ Familias de sistemas relacionados. El diseño arquitectónico debe basarse en patrones
repetibles que es común encontrar en el diseño de familias de sistemas similares. En esencia,
el diseño debe tener la capacidad de reutilizar bloques de construcción arquitectónica.
Conceptos de diseño orientados a objeto

• Clases de diseño. Las clases de diseño refinan las clases de análisis, dando
detalles del diseño que permitirán que las clases se implementen y generen
una infraestructura para el software que apoye la solución de negocios.
Pueden desarrollarse cinco tipos diferentes de clases de diseño, cada una de
las cuales representa una capa distinta de la arquitectura del diseño [Amb01]:
❖ Clases de usuario de la interfaz.
❖ Clases del dominio de negocios.
❖ Clases de proceso.
❖ Clases persistentes.
❖ Clases de sistemas
Conceptos de diseño orientados a objeto

• Se definen cuatro características de las clases de diseño: Completa y suficiente,


Primitivismo, Mucha cohesión y Poco acoplamiento
❖ Completa y suficiente. Una clase de diseño debe ser el encapsulado total de todos los
atributos y métodos que sea razonable esperar (con base en una interpretación comprensible
del nombre de la clase) y que existan para la clase
❖ Primitivismo. Los métodos asociados con una clase de diseño deben centrarse en el
cumplimiento de un servicio para la clase. Una vez implementado el servicio con un método,
la clase no debe proveer otro modo de hacer lo mismo.
❖ Mucha cohesión (entre métodos de la clase). Una clase de diseño cohesiva tiene un
conjunto pequeño y centrado de responsabilidades; para implementarlas emplea atributos y
métodos de objetivo único
❖ Poco acoplamiento (entre clases). Dentro del modelo de diseño, es necesario que las
clases de diseño colaboren una con otra. Sin embargo, la colaboración debe mantenerse en
un mínimo aceptable.
EL MODELO DEL DISEÑO
EL MODELO DEL DISEÑO
Elementos del diseño de datos

• Igual que otras actividades de la ingeniería de software, el diseño de datos (en


ocasiones denominado arquitectura de datos) crea un modelo de datos o
información que se representa en un nivel de abstracción elevado (el punto
de vista del usuario de los datos).
Elementos del diseño arquitectónico

• El diseño de la arquitectura del software es el equivalente del plano de una casa.


Éste ilustra la distribución general de las habitaciones, su tamaño, forma y
relaciones entre ellas, así como las puertas y ventanas que permiten el
movimiento entre los cuartos.
• El modelo arquitectónico [Sha96] proviene de tres fuentes:
❖ Información sobre el dominio de la aplicación del software que se va a elaborar,
❖ Los elementos específicos del modelo de requerimientos, tales como diagramas de flujo
de datos o clases de análisis, sus relaciones y colaboraciones para el problema en
cuestión y
❖ La disponibilidad de estilos arquitectónicos
Elementos de diseño de la interfaz

• El diseño de la interfaz para el software es análogo al conjunto de trazos (y


especificaciones) detalladas para las puertas, ventanas e instalaciones de una casa.
Tales dibujos ilustran el tamaño y forma de puertas y ventanas, la manera en la que
operan, la forma en la que llegan las instalaciones de servicios (agua, electricidad,
gas, teléfono, etc.) a la vivienda y se distribuyen entre las habitaciones indicadas en el
plano.
• Hay tres elementos importantes del diseño de la interfaz:
1) la interfaz de usuario (IU),
2) las interfaces externas que tienen que ver con otros sistemas, dispositivos, redes y otros
productores o consumidores de información y
3) interfaces internas que involucran a los distintos componentes del diseño
Elementos de diseño de la interfaz
Elementos de diseño de la interfaz
Elementos de diseño de la interfaz
Elementos del diseño en el nivel de los componentes

• El diseño de componentes para el software describe por completo los


detalles internos de cada componente.
• El diseño en el nivel de los componentes del software es el equivalente de los
planos (y especificaciones) detallados de cada habitación de la casa. Estos
dibujos ilustran el cableado y la plomería de cada cuarto, la ubicación de cajas
eléctricas e interruptores, regaderas, tinas, drenajes, gabinetes y closets.
Elementos del diseño del despliegue

• Los elementos del diseño del despliegue


indican la forma en la que se acomodarán la
funcionalidad del software y los subsistemas
dentro del ambiente físico de la computación
que lo apoyará. Por ejemplo, los elementos del
producto CasaSegura se configuran para que
operen dentro de tres ambientes de
computación principales: un PC en la casa, el
panel de control de CasaSegura y un servidor
alojado en CPI Corp.
• Durante el diseño se desarrolla un diagrama
de despliegue que después se refina.

También podría gustarte