Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SOFTWARE
OBJETIVO
23/6/2020 19:21:32 3
Unidad 1
Tema 1
FUNDAMENTOS DEL DISEÑO DE
SOFTWARE
Tema 1
OBJETIVO
23/6/2020 19:21:32 5
Tema1:Fundamentos de diseño
de Software
• Subtema 1: Conceptos generales de diseño
Subtema 2: El contexto del diseño de software
Subtema 3: Procesos de diseño de software
Subtema 4: Principios de diseño de software
23/6/2020 19:21:32 6
sobre este curso ...
¡Palabra!
Clave
23/6/2020 19:21:32 7
Entonces¿Qué es el diseño?
• ¿Arte?
• Ingenieria?
• Mezcla de ambos?
23/6/2020 19:21:32 8
¿Es el diseño creativo como los
artistas?
Ivan Chermayeff
23/6/2020 19:21:32 9
¿Es el diseño lo que hacen los innovadores?
" En el vocabulario de la mayoría de las
personas, diseño significa barniz.
Trabajo de partes
interesadas del proyecto
de software, que incluye
clientes, usuarios y
desarrollores.
23/6/2020 19:21:32 13
Los resultados del aprendizaje:
2. Problemas y soluciones
23/6/2020 19:21:32 15
Los resultados del aprendizaje:
4. Orientado a objetos Diseño
23/6/2020 19:21:32 16
http: //enterprisegeeks.com/ blog / 2009/07 /
Los resultados del aprendizaje:
5. Fundamental Diseño
Identifique criterios
para el diseño de un
sistema de software y
seleccione
patrones, cree Primer uso de un freno de aire en
marcos y divida el competición - Mercedes-Benz 300
SLR en Le Mans, 1955. Desde http:
software //justacarguy.blogspot.com/2010/04/
air-brakes-were-first-deployed-at-
1955.html.
23/6/2020 19:21:32 18
Aprendizaje Resultados:
7) Análisis de diseño
23/6/2020 19:21:32 20
"Deberes" Asignación
23/6/2020 19:21:32 32
Conceptos generales de diseño
Las palabras de uno de los metodólogos pioneros del diseño, J. Christopher Jones, tomado de su
trabajo clásico, Métodos de diseño: Semillas de futuros humanos ( Design Methods: Seeds of Human
Futures , Jones, 1970).
El resultado final del diseño debe ser asumido antes de que se puedan explorar los
medios para lograrlo''.
23/6/2020 19:21:32 22
La interacción entre la humanidad y el 'mundo' circundante ha
tomado históricamente dos caminos:
• El camino de Ciencias se ha preocupado por estudiar las cosas que existen, con la
observación y la experimentación como actividades clave. En su forma "clásica", el
enfoque científico es la resolución de problemas.
• El camino de Ingeniería ha estado mucho más preocupado por crear nuevo cosas,
siendo las actividades clave involucradas la de construcción y evaluación. estas
actividades se dirigen mucho más hacia el logro de un objetivo (un Producto).
23/6/2020 19:21:32 23
La naturaleza complementaria de las actividades científicas y de ingeniería
Esfuerzos humanos /
interacción con el
Camino de la ciencia mundo Camino de la ingeniería
23/6/2020 19:21:32 24
Diseño de ingeniería - Simple Definición
23/6/2020 19:21:32 25
Donde hacer Diseños ¿Viene de?
• Intuición/Evolución
• Adopción
• Ingenieria
23/6/2020 19:21:32 26
"Diseño" es "codificación?"
si o no porque?
NO LO ES
23/6/2020 19:21:32 27
Diseño ¿Viene de?
23/6/2020 19:21:32 28
Requisitos externos
UN MODELO DEL PROCESO DE DISEÑO
Especificación de requisitos
1 Aclarar la
naturaleza 2 Analice las
de los necesidades y
requisitos cree el modelo de
'caja negra' de
problema
Especificación funcional
4 Validar
Lista de desajustes solución
3 Postule una
(incluido el uso
solución de
de prototipos)
diseño de 'caja
blanca'
Modelo caja blanca
5 Implementación del
plan de diseño
utilizando un adecuado
23/6/2020 19:21:32 forma de software 29
MODELO DE PROCESO DE DISEÑO
23/6/2020 19:21:32 30
Los diseñadores de pirámides y catedrales casi seguramente habrán intercambiado
ideas con sus pares y aprendido de ellos, aunque solo con el surgimiento de prácticas de
ingeniería hubo nuevas entradas significativas para los procesos de aprendizaje del
diseñador como las siguientes:
• Especificación de requisitos
• Planes para la realización del diseño.
• Restricciones
• Conocimiento del dominio
23/6/2020 19:21:33 32
POR EJEMPLO
En un proyecto grande que emplea muchos programadores, los planes de diseño
necesitarán capturar una gama más amplia de factores que los que necesitará el
proyecto de una persona. Por lo general, dichos planes se ocuparán de describir:
23/6/2020 19:21:33 33
PROCESOS DE DISEÑO DE SOFTWARE
¿Qué es el software?
Se consideraba que el software abarcaba todas las formas relacionadas con la
generación de 'código binario ejecutable' destinado a la ejecución en una sola máquina.
De hecho, esta suposición estaba implícita en todas las primeras reflexiones sobre el
diseño de software.
La estructura de tales sistemas se fijó en gran medida cuando se compiló el código, por
lo tanto, las ideas de los diseñadores se dirigieron a producir una única unidad
monolítica de código binario.
23/6/2020 19:21:33 34
.
• Complejidad. Esto se ve como una propiedad esencial del software, en el que no dos partes son iguales
y un sistema puede poseer muchos estados durante la ejecución.
• Conformidad. Se espera que el software sea 'flexible' y se ajuste a los estándares impuesto por otros
componentes, como hardware, o por cuerpos externos, o por software existente.
• Posibilidad de cambiar. El software sufre una necesidad constante de cambio, en parte debido a la
aparente facilidad para hacer cambios (y técnicas relativamente pobres para costarlos).
• Invisibilidad. Debido a que el software es 'invisible', cualquier forma de representación que sea usado
para describirlo carecerá de cualquier forma de visual enlace que puede proporcionar una relación
fácilmente comprendida entre la representación y el sistema.
23/6/2020 19:21:33 35
La construcción de un modelo para una solución propuesta le permite al diseñador explorar
las limitaciones potenciales de la solución, así como evaluar su comportamiento y estructura.
Especificación de
requisitos
Descripción del
programa Proceso de
Decisiones del diseñador
diseño
FASE 1: El diseñador desarrolla un modelo altamente abstracto de una solución (el diseño
'arquitectónico' o 'lógico') en el que solo se incluyen las propiedades (CAJA NEGRA)
FASE 2: Los "fragmentos" abstractos del problema que se identificaron en la primera fase
se asignan a unidades basadas en la tecnología (el diseño "detallado" o "físico"), por lo que
Se denomina caja blanca. El resultado de esta fase proporciona las especificaciones para
los programadores.
23/6/2020 19:21:33 37
LAS PRINCIPALES FASES DEL PROCESO DE DISEÑO DE SOFTWARE
Especificación Decisiones de
Detalles de
de requisitos diseño
diseño lógico
arquitectónico
Decisiones de
Detalles de
diseño
diseño físico
detalladas
23/6/2020 19:21:33 38
Restricciones sobre el proceso de diseño y el producto.
23/6/2020 19:21:33 39
ARQUITECTURA Y DISEÑO
DE SOFTWARE
• Subtema 1: Concurrencia
• Subtema 2: Persistencia de datos
• Subtema 3: Control y manejo de eventos
• Subtema 4: Confiabilidad y seguridad
OBJETIVO
Aplicar los conceptos de
concurrencia, persistencia de datos,
manejo de errores y seguridad a un
proyecto de diseño de software
típico.
Son impredecibles.
El tiempo de respuesta
depende de la carga
total del sistema, su
arquitectura y la carga
de la red.
2. Apertura Los sistemas distribuidos. diseñados en torno a protocolos estándar que permiten la
combinación de equipo y software de diferentes proveedores.
3. Escalabilidad pueden aumentarse al agregar nuevos recursos para enfrentar nuevas demandas
del sistema.
Reintentar: se intenta cambiar las condiciones que llevaron a la rutina al estado de excepción,
y se ejecuta nuevamente desde el principio. Generalmente es la opción más adecuada que
permite que se rectifiquen los parámetros incorrectos y no paraliza la ejecución de la rutina
LA CONFIABILIDAD
Las fallas del sistema son Mientras se usan los sistemas, Es parte de la usabilidad y refleja
inevitables; la falla podría surgen nuevos requerimientos y la medida en que el sistema se
minimizarse siempre que el es importante mantener diseñó de modo que se eviten y
sistema logre repararse funcionando pese a esos cambios toleren los errores de entrada de
rápidamente. usuario.
Disponibilidad es la
Fiabilidad es la probabilidad de que un
probabilidad de operación sistema, en un momento
libre de falla durante en el tiempo, sea
cierto tiempo, operativo y brinde los
servicios solicitados.
Nunca se puede
tener una total
La especificación
certeza de que
podría estar
un sistema de
incompleta
software esté
libre de fallas
El mal
Los operadores
funcionamiento
del sistema
del hardware
pueden generar
origina que el
entradas que no
sistema se
son
comporte de
individualmente
forma
incorrectas,
impredecible
Moisés López Bermúdez, Mg. Ing.Soft 32
SEGURIDAD
• La seguridad es un atributo del sistema
que refleja la habilidad de éste para
protegerse a sí mismo de ataques
externos, que podrían ser accidentales
o deliberados.
• Estos ataques externos son posibles
puesto que la mayoría de las
computadoras de propósito general
ahora están en red y, en consecuencia,
son accesibles a personas externas.
• Subtema 1: Abstracción
• Subtema 2: Descomposición, encapsulamiento
(Ocultación de información).
• Subtema 3: Cohesión y acoplamiento (Modulos)
• Análisis Classes/
Objects
• Investigación del problema.
y requisitos, más bien
que una solución
Operatio
Patterns O-O Design ns/Meth
• Diseño ods
Secuencia
Colección • Mecanismo de
identificada de
identificada de control de
instrucciones que
datos que programa sin
tiene una función
describe un especificar los
especificada y
objeto de datos datos internos
limitada.
Descomposición
Descomponer un software en diversas unidades más
pequeñas, con el fin de situar diferentes
funcionalidades en diferentes componentes.
Encapsulamiento
El grado de encapsulación de un componente viene definido
por la forma en el que el componente oculta la información
innecesaria y la lógica de lo que hace al resto de componentes
del sistema.
2
Por otro lado, si hacemos que la
funcionalidad de la clase X se
base en la implementación de
interfaces, los componentes que
necesiten usar X se referirán a
ella por sus interfaces y no por la
clase en sí
1
El hecho de ocultar la lógica hacia el
exterior hace que podamos cambiar
la implementación interna sin que
afecte al resto de clases del diseño.
información
Con la información oculta, la información
que podría cambiar potencialmente se
encapsula dentro un objeto.
La cohesión
• La cohesión es la medida de la relación funcional de los
elementos de un módulo.
• A mayor cohesión, mejor: el módulo en cuestión será más
sencillo de diseñar, programar, probar y mantener.
Mayor Cohesión
Funcional Caja Negra
Secuencial
Comunicacional
Lógica
Coincidental o casual Peor Cohesión Caja Transparente
Mejor
Normal
- acoplado Bajo
De Datos
Por Estampados
De control
Débil
Externo
Común
Peor Alto
Contenido
+ acoplado
Acoplamiento normal
Dos módulos están acoplados normalmente
cuando no se pasan ningún parámetro
entre ellos, sólo existe la llamada de uno a
otro
Los módulos se
Reducir el número de
comunican mediante
parámetros
parámetros
Acoplamiento
de datos
Influencia de un módulo
Acoplamiento de control
en la ejecución de otro
Desde un módulo se
salta a otro, pero la
Dos módulos comparten
sentencia a la que se
los mismos contenidos
pasa no está definida
como punto de entrada
OBJETIVO
Entender la relación y transición
entre la etapa de requerimiento
hacia el diseño y arquitectura de
software.
Proceso de negocio
• Grupo de tareas o actividades
• Ofrecen resultados de interés a alguien
Área Funcional
• Grupo de trabajo
Objetivos
• Comprende la dinámica de la función objetivo
• Obtiene de forma preliminar los requerimientos del sistema
Modelo de casos De
uso del negocio
Roles y Entregables
Productos
responsabilidades internos
Modelo de
Eventos Objetos del negocio
03/07/2020 08:19 a. m. 9
SUBTEMA 2: OBTENCIÓN DE REQUISITOS
Se comienza con un
documento de trabajo y Al final del JAD
se discute
Doc. De requisito es
aprobado
Reducir tiempo
Reducir costo
El área de la
Es necesario evaluar
aplicación no está El costo del rechazo
previamente el
bien definida de la aplicación por
impacto del sistema
(posiblemente por los usuarios es muy
en los usuarios y en
ser algo muy alto.
la organización.
novedoso).
CUESTIONARIO
Al igual que con las entrevistas, se debe
seleccionar a los encuestados.
Las excepciones se
El nombre del siguiente
muestran en la parte
evento esperado después
inferior del recuadro. Si
de completar el escenario
existen varias excepciones
se muestra en un
posibles, éstas se
recuadro sombreado.
encierran en un recuadro.
análisis diseño
En el modelo de
requisitos, el sistema se
considera como una caja
negra.
Se desarrolla el modelo
de caso de uso.
Prestar libro
Actualizar
Catálogo
Usuario
Bibliotecario
Devolver libro
Cajero Log In
Cliente
Cliente Comprar productos
Paga productos Pagar producto
Agregar usuarios
Modelado de
Estructuración de
Modelado estático. interacción
objetos.
dinámica.
Modelo de
máquina de estado
dinámico yo ng.
objetos de objetos de
entidad límite
Los diagramas de
secuencia se
desarrollan para
Los casos de uso se mostrar cómo los
realizan para mostrar objetos se comunican
la interacción entre entre sí para ejecutar
los objetos que el caso de uso
participan en cada
caso de uso.
Ventanas:
• Ventanas múltiples permiten que se despliegue
simultáneamente información diversa en la pantalla del
usuario.
Iconos:
• Representan diferentes tipos de información, por ejemplo
archivos, procesos ,etc.
Menús:
• Los comandos se seleccionan de un menú en lugar de
teclearse en un lenguaje de ordenes.
Gráficos:
• Los elementos gráficos se pueden mezclar con texto en el
mismo despliegue.
Diseñar el Producir el
prototipo prototipo del diseño Evaluar el diseño con los
dinámico usuarios finales