SlideShare una empresa de Scribd logo
ESCUELA DE INGENIERÍA DE
SISTEMAS INFORMÁTICOS
UNIVERSIDAD LATINA
LIC. RANDY VALVERDE VALVERDE
1
Programación IV
CONTENIDO
1. DISEÑO ESTRUCTURADO.
Definición y Principios de Diseño
Inicios del Diseño
Efectividad del Diseño
Modularidad
Abstracción
Refinamiento
Factores de calidad: Acoplamiento y Cohesión
Diseño de Calidad
Resultados del Diseño
Diagrama de Estructura
Estrategias de Diseño
Construcción del Diagrama de Estructura
Randy V² - II Q – 2016, 100 % positivo
CONTENIDO
2. DISEÑO ORIENTADO A OBJETOS.
Diagramas UML
Randy V² - II Q – 2016, 100 % positivo
1. DISEÑO ESTRUCTURADO
Randy V² - II Q – 2016, 100 % positivo
DEFINICION Y PRINCIPIOS DE DISEÑO
 El Diseño es un proceso a través del cual los requerimientos establecidos en la
fase de análisis deben traducirse en una representación modular del producto
de software a construir.
 Cada módulo se acompaña de los procedimientos de acuerdo a los cuales debe
llevar a cabo su tarea, y de las estructuras de datos que procesa.
Randy V² - II Q – 2016, 100 % positivo
DEFINICION Y PRINCIPIOS DE DISEÑO
 El Diseño Estructurado es un método de configuración de la organización
modular del software que se desarrolla a partir de los Flujos de Datos que
contiene la especificación de requerimientos obtenida en la fase de análisis bajo
un enfoque de desarrollo estructurado (paradigma de desarrollo).
 Entonces, su punto de partida es la Especificación Estructurada.
 Puede decirse que consiste en el diseño de programas como estructuras de
funciones únicas y de relativa independencia.
Randy V² - II Q – 2016, 100 % positivo
DISEÑO
El Diseño de un Sistema de Información corresponde a la fase que continúa al
Análisis, y consiste principalmente en:
 la especificación de la estructura o arquitectura del producto de software a
construir.
 la especificación de los procedimientos en virtud de los cuales cada
componente estructural debe realizar su tarea.
 la especificación de las estructuras de datos, la cual tiene que responder a los
requerimientos de tratamiento automatizado de datos y generación de
información planteados en la especificación de requerimientos generada en la
fase de análisis.
Randy V² - II Q – 2016, 100 % positivo
DISEÑO MODULAR EFECTIVO
Para poder evaluar la efectividad de una representación de diseño, es
preciso establecer lo que se denomina en Ingeniería de Software, los
CRITERIOS PARA UN BUEN DISEÑO:
• El Diseño debe exhibir una organización jerárquica con mecanismos de
control que no atenten contra la independencia relativa de cada
componente de la jerarquía.
Randy V² - II Q – 2016, 100 % positivo
DISEÑO MODULAR EFECTIVO
• El diseño debe ser modular, esto es, el software debe estar particionado
lógicamente en elementos que ejecuten funciones y subfunciones
específicas.
• El diseño debe generar módulos que exhiban niveles adecuados de
independencia funcional.
• El diseño debe obtenerse a partir de la especificación de requerimientos
generada durante la fase de análisis.
Randy V² - II Q – 2016, 100 % positivo
DISEÑO MODULAR EFECTIVO
Conceptos fundamentales que se han validado a lo largo del tiempo:
Modularidad
Abstracción
Refinamiento
Randy V² - II Q – 2016, 100 % positivo
MODULARIDAD
• Módulo: cada una de las unidades claramente definidas y manejables
constituyentes del software.
• La modularidad consiste en el particionamiento del software en elementos
con nombres y direcciones separadas que se denominan módulos, los
cuales en su composición generan una totalidad que debe ser capaz de
resolver el problema que da origen a la necesidad de construir un producto
de software.
• Tiene que ver con la división de las funciones que en conjunto cumplen un
objetivo mayor, esto es, responden a la idea de totalidades emergentes
propia de la noción de sistemas.
Randy V² - II Q – 2016, 100 % positivo
MODULARIDAD
Beneficios de la Modularidad
• Programas más simples, ya que puede ser comprendido,
verificado, programado, depurado, mejorado y alterado por
partes.
• Módulos que pueden ser desarrollados con relativa
independencia.
• Disminución de la posibilidad de errores al reducir la
complejidad.
Randy V² - II Q – 2016, 100 % positivo
MODULARIDAD
Beneficios de la Modularidad
• Programas que pueden evaluarse por partes, por lo cual todo test
se hace más fácil.
• Programas más fáciles de alterar ya que son menores las
líneas de código a considerar para incorporar los cambios.
• Módulos de función única que pueden ser reutilizados.
MODULARIDAD
Beneficios de la Modularidad
• El programa puede ser comprendido por partes.
• Disminuye errores de programación. Son menos las líneas de código que
deben enfrentar al mismo tiempo los programadores.
• Los efectos colaterales de los cambios que afectan al sistema son drásticamente
reducidos.
• Rotación de personal menos crítica, ya que los programadores están involucrados
en unidades de código más pequeñas por lo cual la sustitución resulta menos
dificultosa.
• Responde al requerimiento de la división del código en segmentos de una
página, como lo sugiere la programación estructurada.
MODULARIDAD
El FAN OUT es una medida del número de módulos controlados
directamente por otro módulo (número de subordinados inmediatos
que posee).
El FAN IN indica cuántos módulos controlan directamente un
determinado módulo (número de superiores inmediatos que posee).
Un módulo que controla a otro se dice que es "superordinado" a éste
y, recíprocamente, un módulo controlado por otro se dice que es
"subordinado".
Randy V² - II Q – 2016, 100 % positivo
MODULARIDAD
Módulo Superordinado
Módulo Subordinado
FAN OUT: 2 FAN IN : 1
Randy V² - II Q – 2016, 100 % positivo
MODULARIDAD
¿ Dividir hasta el infinito para que el Esfuerzo sea Cero ?
N° Módulos
Costos
o Esfuerzo
Costo por Módulo
Costo por IntegraciónCosto Total SW
Costos MínimosRandy V² - II Q – 2016, 100 % positivo
ABSTRACCION
Cuando se considera una solución modular para enfrentar un
problema, se puede plantear en distintos niveles de abstracción.
Un nivel superior de Abstracción supone una solución en términos
amplios, usando un lenguaje del entorno del problema.
A niveles más bajos, se toma una orientación más procedimental, se
combina una terminología orientada al problema con una orientada a
la implementación.
El nivel más bajo de abstracción permitirá que la solución pueda
implementarse directamente.
Randy V² - II Q – 2016, 100 % positivo
REFINAMIENTO
El refinamiento sucesivo es una estrategia de diseño descendente (Top_Down)
propuesta de Niklaus Wirth. Quien postuló que ”la arquitectura de un programa
se desarrolla refinando sucesivamente los niveles de detalle de los
procedimientos, lográndose una jerarquía de procedimientos al descomponer
sucesivamente una sentencia global hasta alcanzar sentencias específicas a
nivel de un lenguaje de programación ".
En “Ingeniería del Software: Un Enfoque Práctico” de Roger S. Pressman, se
puede leer: “en cada etapa del refinamiento, se descomponen una o varias de las
instrucciones del programa dado en instrucciones cada vez más detalladas. Esta
descomposición o refinamiento sucesivo termina cuando todas las intrucciones
están expresadas en términos de cualquier lenguaje básico de computador o de
programación”.
Randy V² - II Q – 2016, 100 % positivo
REFINAMIENTO
Proceso iterativo mediante el cual la arquitectura del software es el
reflejo de la especificación de requerimientos del sistema, el cual se
realiza sistemáticamente con el propósito de lograr una estructura
modular, es decir, una representación que explicite las relaciones
entre los principales elementos del software.
Esto significa que, inicialmente, se configura una representación que
muestra una visión global tanto de las estructuras de datos como de
las estructuras de los componentes, la cual tras un proceso de
refinamiento sucesivo se transforma en una representación del diseño
muy cercana al código fuente, en cuanto a los detalles de los
procedimientos que han de regir las transformaciones que deben
llevarse a cabo en cada módulo y en estructuras de datos detalladas.
Randy V² - II Q – 2016, 100 % positivo
REFINAMIENTO
En la Ingeniería de Software, la modularización se apoya en lo que se
conoce como refinamiento sucesivo o gradual, para la configuración
de la estructura del software.
Módulo A
Abstracción
Refinamiento
Gradual
A1 A2
Modularidad Factorización
Randy V² - II Q – 2016, 100 % positivo
FACTORES DE CALIDAD: ACOPLAMIENTO
Corresponde al grado de independencia entre dos módulos.
Minimizar el acoplamiento aparece entonces como un objetivo al configurar
la estructura.
La obtención de módulos tan independientes como sea posible,se puede
ser lograr principalmente de tres maneras:
Eliminando relaciones innecesarias.
Reduciendo el número de relaciones necesarias.
Debilitando la dependencia de las relaciones necesarias.
Randy V² - II Q – 2016, 100 % positivo
FACTORES DE CALIDAD:
COHESION
Corresponde a la medida de relación funcional de los elementos en un
módulo.
Los elementos de un módulo corresponden a instrucciones, definiciones de
datos, o llamadas o otros módulos.
La idea es organizar estos elementos de tal manera que tengan una mayor
relación entre ellos al momento de cumplir su tarea.
Randy V² - II Q – 2016, 100 % positivo
FACTORES DE CALIDAD: ACOPLAMIENTO Y
COHESION
Acoplamiento
Cohesión
Principios de un
Buen Diseño
Randy V² - II Q – 2016, 100 % positivo
Tipos de Acoplamiento
1. Acoplamiento Normal
2. Acoplamiento de Datos
3. Acoplamiento de Marca (Stamp)
4. Acoplamiento de Control
5. Acoplamiento Común
6. Acopalmiento Externo
7. Acoplamiento de Contenido
Randy V² - II Q – 2016, 100 % positivo
Tipos de Acoplamiento
Grado de
Acoplamiento
NORMAL
Mejor Acoplamiento
DATOS
DE MARCA (STAMP)
CONTROL
EXTERNO (caso especial de COMÚN)
COMÚN
CONTENIDO (grado más alto : peor)
Randy V² - II Q – 2016, 100 % positivo
Acoplamiento Normal
Dos Módulo A y B están Normalmente Acoplados si:
• Un Módulo A llama a otro B
• B retorna el control a A
No se produce traspaso de parámetros entre ellos, sólo existe la llamada de
uno a otro.
A
B
Randy V² - II Q – 2016, 100 % positivo
Acoplamiento de Datos
Dos módulos están acoplados por datos si
ellos se comunican por parámetros.
Siendo cada parámetro una unidad
elemental de datos
El acoplamiento por datos corresponde a
la comunicación de datos necesaria entre
módulos. Toda vez que los módulos tienen
que comunicarse entre sí, la ligazón por
datos es inevitable y serán adecuadas si
se mantienen a niveles mínimos.
Obtener
Datos
Cliente
Leer Rut
Rut_cliente
Randy V² - II Q – 2016, 100 % positivo
Acoplamiento de Marca (Stamp)
Dos módulos aparecen "acoplados
de marca” si ellos se refieren a la
misma estructura datos local.
Por estructura de datos se debe
entender un grupo compuesto de
datos en vez de argumentos
simples.
Por ejemplo un Registro.
Calcular
Deuda
Cliente
Leer Cliente
Cliente
Cliente= rut+nombres+apellido_paterno+
apellido_materno+dirección+fono+e_mail
Randy V² - II Q – 2016, 100 % positivo
Acoplamiento de Control
Dos módulos están acoplados por
control cuando uno de ellos pasa al
otro módulo indicadores de control
(flag, switch).
Provoca dependencia de ejecución
entre un módulo y otro.
No es muy recomendable. Tratar de
utilizarlo moderadamente.
Obtener
Datos
Cliente
Leer Cliente
ClienteTipo_dato
Randy V² - II Q – 2016, 100 % positivo
Acoplamiento Común o Global
Dos módulos presentan acoplamiento
común, si ellos se refieren a la misma
área global de datos (archivo o área
de memoria).
Obtener
Nombre
Video
Leer Registro
Video
video
Actualizar
Stock
Video
Programas con muchos datos globales son
difíciles de entender por los programadores de
mantención, porque no es fácil saber cuáles son
los datos usados por un cierto módulo.
Randy V² - II Q – 2016, 100 % positivo
Acoplamiento Externo
Cuando los módulos están atados
a un entorno externo al software
se dan niveles relativamente altos
de acoplamiento.
Por ejemplo, la E/S acopla un
módulo a dispositivos, formatos y
protocolos de comunicación.
El acoplamiento externo debe
limitarse a unos pocos módulos en
la estructura.
Obtener
Nómina
Nómina
Actualizar
DW
DW
Registro_act
Randy V² - II Q – 2016, 100 % positivo
Acoplamiento de Contenido
Este es un tipo de Acoplamiento
indeseable.
Dos módulos presentan acoplamiento
de contenido (o patológico) si uno
hace referencia al interior del otro.
Esto ocurre si por ejemplo, en un
módulo se desvía la secuencia de
instrucciones al interior de otro o si un
módulo altera un comando de otro.
Tal acoplamiento rompe el concepto de módulos configurados bajo el criterio de
la caja negra. Forzando a un módulo conocer explícitamente los contenidos y la
implementación de otro.
………..
………
………..
Jump to Srch
……….
………
A
………..
Srch: Move..
………..
……….
……….
………
B
Randy V² - II Q – 2016, 100 % positivo
Tipos de Acoplamiento
Dos módulos pueden estar relacionados por más de un tipo de
acoplamiento. Si esto ocurre, el acoplamiento que caracteriza la relación
entre ellos queda definido por el peor tipo que presenten.
Por ejemplo, si dos módulos están ligados por acoplamiento de marca y
acoplamiento común a la vez, se dirá que los módulos están ligados por
acoplamiento común.
¿Cómo Analizar el Tipo de Acoplamiento?
Imaginar el Módulo como una Biblioteca
Cada Módulo es codificado por un programador diferente
Randy V² - II Q – 2016, 100 % positivo
“Imaginar el Módulo como una Biblioteca”.
• Cómo el módulo podría ser más fácilmente entendido.
• Cómo el módulo podría ser más utilizado por otros sistemas o invocado
por otros módulos del mismo sistema
Randy V² - II Q – 2016, 100 % positivo
“Cada Módulo es codificado por un programador
diferente”.
• ¿Qué tan independientes pueden trabajar los programadores?
• ¿Existe algún supuesto, convención o decisiones de implementación
a los cuales más de un módulo deba prestar atención?
• ¿Cuáles son las posibilidades de cambio que existen en relación a los
supuestos, convenciones o a la implementación?
• ¿Existe alguna manera de aislar aquellos cambios y situarlos en un
sólo módulo?
Randy V² - II Q – 2016, 100 % positivo
Ideas Centrales
• Sistemas altamente acoplados conducen a depurar verdaderas
pesadillas. Evítelos
• Sistemas altamente acoplados, tienden a tratarse como una sola gran
unidad. Y un sistema monolítico es la contrapartida a particionar.
• Hablar de módulos, cajas negras, es hablar de particionamiento.
• Particionar es la estrategia para abordar la complejidad.
• Las cajas negras se organizan jerárquicamente.
Randy V² - II Q – 2016, 100 % positivo
Tipos de Cohesión
Grado de
Cohesión
FUNCIONAL
Mayor Cohesión
SECUENCIAL
COMUNICACIONAL
PROCEDURAL
TEMPORAL
LÓGICA
COINCIDENTAL
Módulo como
Caja Negra
Módulo
Transparente
STEVEN, MYERS, CONSTANTINE y YOURDON (1974)
establecieron "una escala de cohesión"
Randy V² - II Q – 2016, 100 % positivo
Cohesión Funcional
Un módulo con cohesión funcional es aquel que contiene elementos que
contribuyen a la ejecución de una y sólo una tarea relacionada al problema
objeto de diseño.
Ejemplos:
Calcular el coseno de un ángulo
Calcular el I.V.A. de una factura
Verificar el dígito de un RUT
Randy V² - II Q – 2016, 100 % positivo
Cohesión Secuencial
Un módulo secuencialmente
cohesionado es aquel cuyos
elementos están envueltos en
actividades tales que los
datos de salida de una
actividad en general sirven
como datos de entrada para la
próxima actividad.
Ejemplo: Calcular Salario
1. Obtener sueldo base
2. Verificar número de cargas
3. Revisar días con permiso
4. Revisar días con licencia
5. Calcular horas de trabajo
6. Descontar horas de atraso
7. Agregar horas extras
....
Randy V² - II Q – 2016, 100 % positivo
Cohesión Comunicacional
Un módulo presenta cohesión
comunicacional cuando sus
elementos contribuyen a
actividades que usan la misma
entrada o la misma salida. No
importa el orden secuencial
Ejemplo: Obtener datos
Producto
1. Obtener nombre
2. Obtener stock
3. Obtener ubicación
4. Obtener precio
....
Randy V² - II Q – 2016, 100 % positivo
Cohesión Procedimental
Cuando sus elementos de procesamiento están relacionados y deben
ejecutarse en un orden específico.
Randy V² - II Q – 2016, 100 % positivo
Cohesión Temporal
Un módulo con cohesión temporal
es aquel cuyos elementos están
envueltos en actividades que
están relacionadas en función del
momento en que se realizan.
Ejemplo: Actividades al
iniciar el día
1. Apagar despertador
2. Tomar una ducha
3. Vestirse
4. Hacer la cama
5. Tomar desayuno
....
Randy V² - II Q – 2016, 100 % positivo
Cohesión Lógica
Un módulo tiene cohesión lógica,
cuando existe alguna relación
entre los elementos del módulo,
contribuyendo al desarrollo de
actividades de una misma
categoría general, donde la
actividad o las actividades a ser
ejecutadas se seleccionan desde
fuera del módulo.
Ejemplo: Registrar Pago
1. Registrar pago con tarjeta
de crédito
2. Registrar pago con cheque
3. Registrar pago con efectivo
....
Randy V² - II Q – 2016, 100 % positivo
Cohesión Coincidental
Un módulo coincidentemente
cohesionado es aquel cuyos
elementos desarrollan actividades
sin relación significativa entre sí.
Ejemplo:
1. Comprar un libro
2. Comer un trozo de torta
3. Ir al teatro
4. Lavar la ropa
5. Dormir
....
Randy V² - II Q – 2016, 100 % positivo

Más contenido relacionado

La actualidad más candente

Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
Jose Patricio Bovet Derpich
 
Prototipo
PrototipoPrototipo
Prototipo
Rolando Maita
 
Lenguaje de Maquinas
Lenguaje de Maquinas Lenguaje de Maquinas
Lenguaje de Maquinas
hector Orellana
 
Desarrollo de software diapositiva
Desarrollo  de software diapositivaDesarrollo  de software diapositiva
Desarrollo de software diapositiva
Norma Rodriguez
 
AD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasAD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidas
Franklin Parrales Bravo
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)
Jose R. Hilera
 
Unidad 3 : Sistemas Operativos I
Unidad 3 : Sistemas Operativos IUnidad 3 : Sistemas Operativos I
Unidad 3 : Sistemas Operativos I
Kamps Tepes
 
Técnicas de Recuperación Bases de Datos
Técnicas de Recuperación Bases de DatosTécnicas de Recuperación Bases de Datos
Técnicas de Recuperación Bases de Datos
Lork Ederwin
 
Unidad temática III: El significado como Unidad Cultura. El interpretante.
Unidad temática III: El significado como Unidad Cultura. El interpretante.Unidad temática III: El significado como Unidad Cultura. El interpretante.
Unidad temática III: El significado como Unidad Cultura. El interpretante.
Lingüística Uces
 
Tipos de licencia de software
Tipos de licencia de softwareTipos de licencia de software
Tipos de licencia de software
Paola Valverde Gonzalez
 
IHC - Slide 2 - Usabilidade e Princípios de Design
IHC - Slide 2 - Usabilidade e Princípios de DesignIHC - Slide 2 - Usabilidade e Princípios de Design
IHC - Slide 2 - Usabilidade e Princípios de Design
Márcio Darlen Lopes Cavalcante
 
arquitectura-de-linux
arquitectura-de-linuxarquitectura-de-linux
arquitectura-de-linux
William Pathernina
 
Tema 4: Procesamiento paralelo.
Tema 4: Procesamiento paralelo.Tema 4: Procesamiento paralelo.
Tema 4: Procesamiento paralelo.
Manuel Fernandez Barcell
 
inteligencia artificial unidad 1
inteligencia artificial unidad 1inteligencia artificial unidad 1
inteligencia artificial unidad 1
JosepSalvadorSotoObregon
 
Arquitectura de la computadora
Arquitectura de la computadoraArquitectura de la computadora
Arquitectura de la computadora
Mauricio Hernandez
 
Cuadro comparativo de los modelos de proceso del software (1)
Cuadro comparativo  de los modelos de proceso del software (1)Cuadro comparativo  de los modelos de proceso del software (1)
Cuadro comparativo de los modelos de proceso del software (1)
Erik Emanuel Amador Saldaña
 
1-Unidad 1. Arquitectura de Diseño
1-Unidad 1. Arquitectura de Diseño1-Unidad 1. Arquitectura de Diseño
1-Unidad 1. Arquitectura de Diseño
Luis Fernando Aguas Bucheli
 
Requerimientos, Ventajas y Desventajas de las aplicaciones web
Requerimientos, Ventajas y Desventajas de las aplicaciones webRequerimientos, Ventajas y Desventajas de las aplicaciones web
Requerimientos, Ventajas y Desventajas de las aplicaciones web
Alonzer Acid Nox
 
Administracion de usuarios y grupos
Administracion de usuarios y gruposAdministracion de usuarios y grupos
Administracion de usuarios y grupos
JACKELIN SORALUZ
 
Figuras retoricas y publicidad
Figuras retoricas y publicidadFiguras retoricas y publicidad
Figuras retoricas y publicidad
Benjamín Román Abram
 

La actualidad más candente (20)

Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
Prototipo
PrototipoPrototipo
Prototipo
 
Lenguaje de Maquinas
Lenguaje de Maquinas Lenguaje de Maquinas
Lenguaje de Maquinas
 
Desarrollo de software diapositiva
Desarrollo  de software diapositivaDesarrollo  de software diapositiva
Desarrollo de software diapositiva
 
AD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasAD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidas
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)
 
Unidad 3 : Sistemas Operativos I
Unidad 3 : Sistemas Operativos IUnidad 3 : Sistemas Operativos I
Unidad 3 : Sistemas Operativos I
 
Técnicas de Recuperación Bases de Datos
Técnicas de Recuperación Bases de DatosTécnicas de Recuperación Bases de Datos
Técnicas de Recuperación Bases de Datos
 
Unidad temática III: El significado como Unidad Cultura. El interpretante.
Unidad temática III: El significado como Unidad Cultura. El interpretante.Unidad temática III: El significado como Unidad Cultura. El interpretante.
Unidad temática III: El significado como Unidad Cultura. El interpretante.
 
Tipos de licencia de software
Tipos de licencia de softwareTipos de licencia de software
Tipos de licencia de software
 
IHC - Slide 2 - Usabilidade e Princípios de Design
IHC - Slide 2 - Usabilidade e Princípios de DesignIHC - Slide 2 - Usabilidade e Princípios de Design
IHC - Slide 2 - Usabilidade e Princípios de Design
 
arquitectura-de-linux
arquitectura-de-linuxarquitectura-de-linux
arquitectura-de-linux
 
Tema 4: Procesamiento paralelo.
Tema 4: Procesamiento paralelo.Tema 4: Procesamiento paralelo.
Tema 4: Procesamiento paralelo.
 
inteligencia artificial unidad 1
inteligencia artificial unidad 1inteligencia artificial unidad 1
inteligencia artificial unidad 1
 
Arquitectura de la computadora
Arquitectura de la computadoraArquitectura de la computadora
Arquitectura de la computadora
 
Cuadro comparativo de los modelos de proceso del software (1)
Cuadro comparativo  de los modelos de proceso del software (1)Cuadro comparativo  de los modelos de proceso del software (1)
Cuadro comparativo de los modelos de proceso del software (1)
 
1-Unidad 1. Arquitectura de Diseño
1-Unidad 1. Arquitectura de Diseño1-Unidad 1. Arquitectura de Diseño
1-Unidad 1. Arquitectura de Diseño
 
Requerimientos, Ventajas y Desventajas de las aplicaciones web
Requerimientos, Ventajas y Desventajas de las aplicaciones webRequerimientos, Ventajas y Desventajas de las aplicaciones web
Requerimientos, Ventajas y Desventajas de las aplicaciones web
 
Administracion de usuarios y grupos
Administracion de usuarios y gruposAdministracion de usuarios y grupos
Administracion de usuarios y grupos
 
Figuras retoricas y publicidad
Figuras retoricas y publicidadFiguras retoricas y publicidad
Figuras retoricas y publicidad
 

Destacado

Clase 4 - Programación IV - BSI1100
Clase 4 - Programación IV - BSI1100Clase 4 - Programación IV - BSI1100
Clase 4 - Programación IV - BSI1100
Randy Valverde
 
Clase 2 - Programación IV - BSI1100
Clase 2 - Programación IV - BSI1100Clase 2 - Programación IV - BSI1100
Clase 2 - Programación IV - BSI1100
Randy Valverde
 
Clase 1- Programación IV - BSI1100
Clase 1- Programación IV  - BSI1100Clase 1- Programación IV  - BSI1100
Clase 1- Programación IV - BSI1100
Randy Valverde
 
Clase 2 redes
Clase 2 redesClase 2 redes
Clase 2 redes
Randy Valverde
 
10 Polimorfismo
10   Polimorfismo10   Polimorfismo
10 Polimorfismo
Network Sens
 
Uia pe-30 - randy valverde
Uia   pe-30 - randy valverdeUia   pe-30 - randy valverde
Uia pe-30 - randy valverde
Randy Valverde
 
Clase 1 redes
Clase 1 redesClase 1 redes
Clase 1 redes
Randy Valverde
 
Clase 3 redes
Clase 3 redesClase 3 redes
Clase 3 redes
Randy Valverde
 
Clase 4 redes
Clase 4 redesClase 4 redes
Clase 4 redes
Randy Valverde
 

Destacado (9)

Clase 4 - Programación IV - BSI1100
Clase 4 - Programación IV - BSI1100Clase 4 - Programación IV - BSI1100
Clase 4 - Programación IV - BSI1100
 
Clase 2 - Programación IV - BSI1100
Clase 2 - Programación IV - BSI1100Clase 2 - Programación IV - BSI1100
Clase 2 - Programación IV - BSI1100
 
Clase 1- Programación IV - BSI1100
Clase 1- Programación IV  - BSI1100Clase 1- Programación IV  - BSI1100
Clase 1- Programación IV - BSI1100
 
Clase 2 redes
Clase 2 redesClase 2 redes
Clase 2 redes
 
10 Polimorfismo
10   Polimorfismo10   Polimorfismo
10 Polimorfismo
 
Uia pe-30 - randy valverde
Uia   pe-30 - randy valverdeUia   pe-30 - randy valverde
Uia pe-30 - randy valverde
 
Clase 1 redes
Clase 1 redesClase 1 redes
Clase 1 redes
 
Clase 3 redes
Clase 3 redesClase 3 redes
Clase 3 redes
 
Clase 4 redes
Clase 4 redesClase 4 redes
Clase 4 redes
 

Similar a Clase 3 - Programación IV - BSI1100

Diseño del software
Diseño del softwareDiseño del software
Diseño del software
duberlisg
 
Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto de Software
Maricela Ramirez
 
Fundamentos basicos del diseño de software
Fundamentos basicos del diseño de softwareFundamentos basicos del diseño de software
Fundamentos basicos del diseño de software
Jesús Molleda
 
Diseño del software
Diseño del softwareDiseño del software
Diseño del software
genesisptc_
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
Dascorp
 
Modelo
ModeloModelo
Modelo
mendez45
 
Modelo cascada
Modelo cascadaModelo cascada
metodologias cascada vs v
metodologias cascada vs vmetodologias cascada vs v
metodologias cascada vs v
Juan Carlos Lema Ch
 
Presentaciondefundamentosdesoftware
PresentaciondefundamentosdesoftwarePresentaciondefundamentosdesoftware
Presentaciondefundamentosdesoftware
Luisana Mia Leon Rengel
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
Yamnibel
 
Vinculación diseño-ódigo
Vinculación diseño-ódigoVinculación diseño-ódigo
Vinculación diseño-ódigo
Ju Pe
 
Vinculación diseño-código
Vinculación diseño-códigoVinculación diseño-código
Vinculación diseño-código
Ju Pe
 
Riverodanna_presentacion
Riverodanna_presentacionRiverodanna_presentacion
Riverodanna_presentacion
DannaRivero
 
Presentación Fundamentos Básicos del Diseño de Software Pedro Luces
Presentación Fundamentos Básicos del Diseño de Software Pedro LucesPresentación Fundamentos Básicos del Diseño de Software Pedro Luces
Presentación Fundamentos Básicos del Diseño de Software Pedro Luces
PedroLuces3
 
Fundamentos del diseño de software
Fundamentos del diseño de software Fundamentos del diseño de software
Fundamentos del diseño de software
AlessandreMndez
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
NayelisMartinez3
 
Modelo de cascadaa
Modelo de cascadaaModelo de cascadaa
Modelo de cascadaa
mendez45
 
Fundamentos Basicos para El Diseño de Software
Fundamentos Basicos para El Diseño de SoftwareFundamentos Basicos para El Diseño de Software
Fundamentos Basicos para El Diseño de Software
RicardoAlvarez235
 
arquitectura de software 1 parte.pdf
arquitectura de software 1 parte.pdfarquitectura de software 1 parte.pdf
arquitectura de software 1 parte.pdf
jhonademirpalominopa
 
clase_unidad_i__FUNDA_DISE_SOF_PARTE_I.ppt
clase_unidad_i__FUNDA_DISE_SOF_PARTE_I.pptclase_unidad_i__FUNDA_DISE_SOF_PARTE_I.ppt
clase_unidad_i__FUNDA_DISE_SOF_PARTE_I.ppt
ssuseraff8a1
 

Similar a Clase 3 - Programación IV - BSI1100 (20)

Diseño del software
Diseño del softwareDiseño del software
Diseño del software
 
Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto de Software
 
Fundamentos basicos del diseño de software
Fundamentos basicos del diseño de softwareFundamentos basicos del diseño de software
Fundamentos basicos del diseño de software
 
Diseño del software
Diseño del softwareDiseño del software
Diseño del software
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
Modelo
ModeloModelo
Modelo
 
Modelo cascada
Modelo cascadaModelo cascada
Modelo cascada
 
metodologias cascada vs v
metodologias cascada vs vmetodologias cascada vs v
metodologias cascada vs v
 
Presentaciondefundamentosdesoftware
PresentaciondefundamentosdesoftwarePresentaciondefundamentosdesoftware
Presentaciondefundamentosdesoftware
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
Vinculación diseño-ódigo
Vinculación diseño-ódigoVinculación diseño-ódigo
Vinculación diseño-ódigo
 
Vinculación diseño-código
Vinculación diseño-códigoVinculación diseño-código
Vinculación diseño-código
 
Riverodanna_presentacion
Riverodanna_presentacionRiverodanna_presentacion
Riverodanna_presentacion
 
Presentación Fundamentos Básicos del Diseño de Software Pedro Luces
Presentación Fundamentos Básicos del Diseño de Software Pedro LucesPresentación Fundamentos Básicos del Diseño de Software Pedro Luces
Presentación Fundamentos Básicos del Diseño de Software Pedro Luces
 
Fundamentos del diseño de software
Fundamentos del diseño de software Fundamentos del diseño de software
Fundamentos del diseño de software
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Modelo de cascadaa
Modelo de cascadaaModelo de cascadaa
Modelo de cascadaa
 
Fundamentos Basicos para El Diseño de Software
Fundamentos Basicos para El Diseño de SoftwareFundamentos Basicos para El Diseño de Software
Fundamentos Basicos para El Diseño de Software
 
arquitectura de software 1 parte.pdf
arquitectura de software 1 parte.pdfarquitectura de software 1 parte.pdf
arquitectura de software 1 parte.pdf
 
clase_unidad_i__FUNDA_DISE_SOF_PARTE_I.ppt
clase_unidad_i__FUNDA_DISE_SOF_PARTE_I.pptclase_unidad_i__FUNDA_DISE_SOF_PARTE_I.ppt
clase_unidad_i__FUNDA_DISE_SOF_PARTE_I.ppt
 

Último

Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaCatalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
AMADO SALVADOR
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
paulroyal74
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
LilibethEstupian
 
Gabinete, puertos y dispositivos que se conectan al case
Gabinete,  puertos y  dispositivos que se conectan al caseGabinete,  puertos y  dispositivos que se conectan al case
Gabinete, puertos y dispositivos que se conectan al case
JuanaNT7
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
AMADO SALVADOR
 
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
IsabelQuintero36
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
YaniEscobar2
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
mantenimientocarbra6
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
cbtechchihuahua
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
NicandroMartinez2
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
maralache30
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
AMADO SALVADOR
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Festibity
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
julio05042006
 
Actividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdfActividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdf
NajwaNimri1
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
larapalaciosmonzon28
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
larapalaciosmonzon28
 

Último (20)

Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaCatalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
 
Gabinete, puertos y dispositivos que se conectan al case
Gabinete,  puertos y  dispositivos que se conectan al caseGabinete,  puertos y  dispositivos que se conectan al case
Gabinete, puertos y dispositivos que se conectan al case
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
 
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
 
Actividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdfActividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdf
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
 

Clase 3 - Programación IV - BSI1100

  • 1. ESCUELA DE INGENIERÍA DE SISTEMAS INFORMÁTICOS UNIVERSIDAD LATINA LIC. RANDY VALVERDE VALVERDE 1 Programación IV
  • 2. CONTENIDO 1. DISEÑO ESTRUCTURADO. Definición y Principios de Diseño Inicios del Diseño Efectividad del Diseño Modularidad Abstracción Refinamiento Factores de calidad: Acoplamiento y Cohesión Diseño de Calidad Resultados del Diseño Diagrama de Estructura Estrategias de Diseño Construcción del Diagrama de Estructura Randy V² - II Q – 2016, 100 % positivo
  • 3. CONTENIDO 2. DISEÑO ORIENTADO A OBJETOS. Diagramas UML Randy V² - II Q – 2016, 100 % positivo
  • 4. 1. DISEÑO ESTRUCTURADO Randy V² - II Q – 2016, 100 % positivo
  • 5. DEFINICION Y PRINCIPIOS DE DISEÑO  El Diseño es un proceso a través del cual los requerimientos establecidos en la fase de análisis deben traducirse en una representación modular del producto de software a construir.  Cada módulo se acompaña de los procedimientos de acuerdo a los cuales debe llevar a cabo su tarea, y de las estructuras de datos que procesa. Randy V² - II Q – 2016, 100 % positivo
  • 6. DEFINICION Y PRINCIPIOS DE DISEÑO  El Diseño Estructurado es un método de configuración de la organización modular del software que se desarrolla a partir de los Flujos de Datos que contiene la especificación de requerimientos obtenida en la fase de análisis bajo un enfoque de desarrollo estructurado (paradigma de desarrollo).  Entonces, su punto de partida es la Especificación Estructurada.  Puede decirse que consiste en el diseño de programas como estructuras de funciones únicas y de relativa independencia. Randy V² - II Q – 2016, 100 % positivo
  • 7. DISEÑO El Diseño de un Sistema de Información corresponde a la fase que continúa al Análisis, y consiste principalmente en:  la especificación de la estructura o arquitectura del producto de software a construir.  la especificación de los procedimientos en virtud de los cuales cada componente estructural debe realizar su tarea.  la especificación de las estructuras de datos, la cual tiene que responder a los requerimientos de tratamiento automatizado de datos y generación de información planteados en la especificación de requerimientos generada en la fase de análisis. Randy V² - II Q – 2016, 100 % positivo
  • 8. DISEÑO MODULAR EFECTIVO Para poder evaluar la efectividad de una representación de diseño, es preciso establecer lo que se denomina en Ingeniería de Software, los CRITERIOS PARA UN BUEN DISEÑO: • El Diseño debe exhibir una organización jerárquica con mecanismos de control que no atenten contra la independencia relativa de cada componente de la jerarquía. Randy V² - II Q – 2016, 100 % positivo
  • 9. DISEÑO MODULAR EFECTIVO • El diseño debe ser modular, esto es, el software debe estar particionado lógicamente en elementos que ejecuten funciones y subfunciones específicas. • El diseño debe generar módulos que exhiban niveles adecuados de independencia funcional. • El diseño debe obtenerse a partir de la especificación de requerimientos generada durante la fase de análisis. Randy V² - II Q – 2016, 100 % positivo
  • 10. DISEÑO MODULAR EFECTIVO Conceptos fundamentales que se han validado a lo largo del tiempo: Modularidad Abstracción Refinamiento Randy V² - II Q – 2016, 100 % positivo
  • 11. MODULARIDAD • Módulo: cada una de las unidades claramente definidas y manejables constituyentes del software. • La modularidad consiste en el particionamiento del software en elementos con nombres y direcciones separadas que se denominan módulos, los cuales en su composición generan una totalidad que debe ser capaz de resolver el problema que da origen a la necesidad de construir un producto de software. • Tiene que ver con la división de las funciones que en conjunto cumplen un objetivo mayor, esto es, responden a la idea de totalidades emergentes propia de la noción de sistemas. Randy V² - II Q – 2016, 100 % positivo
  • 12. MODULARIDAD Beneficios de la Modularidad • Programas más simples, ya que puede ser comprendido, verificado, programado, depurado, mejorado y alterado por partes. • Módulos que pueden ser desarrollados con relativa independencia. • Disminución de la posibilidad de errores al reducir la complejidad. Randy V² - II Q – 2016, 100 % positivo
  • 13. MODULARIDAD Beneficios de la Modularidad • Programas que pueden evaluarse por partes, por lo cual todo test se hace más fácil. • Programas más fáciles de alterar ya que son menores las líneas de código a considerar para incorporar los cambios. • Módulos de función única que pueden ser reutilizados.
  • 14. MODULARIDAD Beneficios de la Modularidad • El programa puede ser comprendido por partes. • Disminuye errores de programación. Son menos las líneas de código que deben enfrentar al mismo tiempo los programadores. • Los efectos colaterales de los cambios que afectan al sistema son drásticamente reducidos. • Rotación de personal menos crítica, ya que los programadores están involucrados en unidades de código más pequeñas por lo cual la sustitución resulta menos dificultosa. • Responde al requerimiento de la división del código en segmentos de una página, como lo sugiere la programación estructurada.
  • 15. MODULARIDAD El FAN OUT es una medida del número de módulos controlados directamente por otro módulo (número de subordinados inmediatos que posee). El FAN IN indica cuántos módulos controlan directamente un determinado módulo (número de superiores inmediatos que posee). Un módulo que controla a otro se dice que es "superordinado" a éste y, recíprocamente, un módulo controlado por otro se dice que es "subordinado". Randy V² - II Q – 2016, 100 % positivo
  • 16. MODULARIDAD Módulo Superordinado Módulo Subordinado FAN OUT: 2 FAN IN : 1 Randy V² - II Q – 2016, 100 % positivo
  • 17. MODULARIDAD ¿ Dividir hasta el infinito para que el Esfuerzo sea Cero ? N° Módulos Costos o Esfuerzo Costo por Módulo Costo por IntegraciónCosto Total SW Costos MínimosRandy V² - II Q – 2016, 100 % positivo
  • 18. ABSTRACCION Cuando se considera una solución modular para enfrentar un problema, se puede plantear en distintos niveles de abstracción. Un nivel superior de Abstracción supone una solución en términos amplios, usando un lenguaje del entorno del problema. A niveles más bajos, se toma una orientación más procedimental, se combina una terminología orientada al problema con una orientada a la implementación. El nivel más bajo de abstracción permitirá que la solución pueda implementarse directamente. Randy V² - II Q – 2016, 100 % positivo
  • 19. REFINAMIENTO El refinamiento sucesivo es una estrategia de diseño descendente (Top_Down) propuesta de Niklaus Wirth. Quien postuló que ”la arquitectura de un programa se desarrolla refinando sucesivamente los niveles de detalle de los procedimientos, lográndose una jerarquía de procedimientos al descomponer sucesivamente una sentencia global hasta alcanzar sentencias específicas a nivel de un lenguaje de programación ". En “Ingeniería del Software: Un Enfoque Práctico” de Roger S. Pressman, se puede leer: “en cada etapa del refinamiento, se descomponen una o varias de las instrucciones del programa dado en instrucciones cada vez más detalladas. Esta descomposición o refinamiento sucesivo termina cuando todas las intrucciones están expresadas en términos de cualquier lenguaje básico de computador o de programación”. Randy V² - II Q – 2016, 100 % positivo
  • 20. REFINAMIENTO Proceso iterativo mediante el cual la arquitectura del software es el reflejo de la especificación de requerimientos del sistema, el cual se realiza sistemáticamente con el propósito de lograr una estructura modular, es decir, una representación que explicite las relaciones entre los principales elementos del software. Esto significa que, inicialmente, se configura una representación que muestra una visión global tanto de las estructuras de datos como de las estructuras de los componentes, la cual tras un proceso de refinamiento sucesivo se transforma en una representación del diseño muy cercana al código fuente, en cuanto a los detalles de los procedimientos que han de regir las transformaciones que deben llevarse a cabo en cada módulo y en estructuras de datos detalladas. Randy V² - II Q – 2016, 100 % positivo
  • 21. REFINAMIENTO En la Ingeniería de Software, la modularización se apoya en lo que se conoce como refinamiento sucesivo o gradual, para la configuración de la estructura del software. Módulo A Abstracción Refinamiento Gradual A1 A2 Modularidad Factorización Randy V² - II Q – 2016, 100 % positivo
  • 22. FACTORES DE CALIDAD: ACOPLAMIENTO Corresponde al grado de independencia entre dos módulos. Minimizar el acoplamiento aparece entonces como un objetivo al configurar la estructura. La obtención de módulos tan independientes como sea posible,se puede ser lograr principalmente de tres maneras: Eliminando relaciones innecesarias. Reduciendo el número de relaciones necesarias. Debilitando la dependencia de las relaciones necesarias. Randy V² - II Q – 2016, 100 % positivo
  • 23. FACTORES DE CALIDAD: COHESION Corresponde a la medida de relación funcional de los elementos en un módulo. Los elementos de un módulo corresponden a instrucciones, definiciones de datos, o llamadas o otros módulos. La idea es organizar estos elementos de tal manera que tengan una mayor relación entre ellos al momento de cumplir su tarea. Randy V² - II Q – 2016, 100 % positivo
  • 24. FACTORES DE CALIDAD: ACOPLAMIENTO Y COHESION Acoplamiento Cohesión Principios de un Buen Diseño Randy V² - II Q – 2016, 100 % positivo
  • 25. Tipos de Acoplamiento 1. Acoplamiento Normal 2. Acoplamiento de Datos 3. Acoplamiento de Marca (Stamp) 4. Acoplamiento de Control 5. Acoplamiento Común 6. Acopalmiento Externo 7. Acoplamiento de Contenido Randy V² - II Q – 2016, 100 % positivo
  • 26. Tipos de Acoplamiento Grado de Acoplamiento NORMAL Mejor Acoplamiento DATOS DE MARCA (STAMP) CONTROL EXTERNO (caso especial de COMÚN) COMÚN CONTENIDO (grado más alto : peor) Randy V² - II Q – 2016, 100 % positivo
  • 27. Acoplamiento Normal Dos Módulo A y B están Normalmente Acoplados si: • Un Módulo A llama a otro B • B retorna el control a A No se produce traspaso de parámetros entre ellos, sólo existe la llamada de uno a otro. A B Randy V² - II Q – 2016, 100 % positivo
  • 28. Acoplamiento de Datos Dos módulos están acoplados por datos si ellos se comunican por parámetros. Siendo cada parámetro una unidad elemental de datos El acoplamiento por datos corresponde a la comunicación de datos necesaria entre módulos. Toda vez que los módulos tienen que comunicarse entre sí, la ligazón por datos es inevitable y serán adecuadas si se mantienen a niveles mínimos. Obtener Datos Cliente Leer Rut Rut_cliente Randy V² - II Q – 2016, 100 % positivo
  • 29. Acoplamiento de Marca (Stamp) Dos módulos aparecen "acoplados de marca” si ellos se refieren a la misma estructura datos local. Por estructura de datos se debe entender un grupo compuesto de datos en vez de argumentos simples. Por ejemplo un Registro. Calcular Deuda Cliente Leer Cliente Cliente Cliente= rut+nombres+apellido_paterno+ apellido_materno+dirección+fono+e_mail Randy V² - II Q – 2016, 100 % positivo
  • 30. Acoplamiento de Control Dos módulos están acoplados por control cuando uno de ellos pasa al otro módulo indicadores de control (flag, switch). Provoca dependencia de ejecución entre un módulo y otro. No es muy recomendable. Tratar de utilizarlo moderadamente. Obtener Datos Cliente Leer Cliente ClienteTipo_dato Randy V² - II Q – 2016, 100 % positivo
  • 31. Acoplamiento Común o Global Dos módulos presentan acoplamiento común, si ellos se refieren a la misma área global de datos (archivo o área de memoria). Obtener Nombre Video Leer Registro Video video Actualizar Stock Video Programas con muchos datos globales son difíciles de entender por los programadores de mantención, porque no es fácil saber cuáles son los datos usados por un cierto módulo. Randy V² - II Q – 2016, 100 % positivo
  • 32. Acoplamiento Externo Cuando los módulos están atados a un entorno externo al software se dan niveles relativamente altos de acoplamiento. Por ejemplo, la E/S acopla un módulo a dispositivos, formatos y protocolos de comunicación. El acoplamiento externo debe limitarse a unos pocos módulos en la estructura. Obtener Nómina Nómina Actualizar DW DW Registro_act Randy V² - II Q – 2016, 100 % positivo
  • 33. Acoplamiento de Contenido Este es un tipo de Acoplamiento indeseable. Dos módulos presentan acoplamiento de contenido (o patológico) si uno hace referencia al interior del otro. Esto ocurre si por ejemplo, en un módulo se desvía la secuencia de instrucciones al interior de otro o si un módulo altera un comando de otro. Tal acoplamiento rompe el concepto de módulos configurados bajo el criterio de la caja negra. Forzando a un módulo conocer explícitamente los contenidos y la implementación de otro. ……….. ……… ……….. Jump to Srch ………. ……… A ……….. Srch: Move.. ……….. ………. ………. ……… B Randy V² - II Q – 2016, 100 % positivo
  • 34. Tipos de Acoplamiento Dos módulos pueden estar relacionados por más de un tipo de acoplamiento. Si esto ocurre, el acoplamiento que caracteriza la relación entre ellos queda definido por el peor tipo que presenten. Por ejemplo, si dos módulos están ligados por acoplamiento de marca y acoplamiento común a la vez, se dirá que los módulos están ligados por acoplamiento común. ¿Cómo Analizar el Tipo de Acoplamiento? Imaginar el Módulo como una Biblioteca Cada Módulo es codificado por un programador diferente Randy V² - II Q – 2016, 100 % positivo
  • 35. “Imaginar el Módulo como una Biblioteca”. • Cómo el módulo podría ser más fácilmente entendido. • Cómo el módulo podría ser más utilizado por otros sistemas o invocado por otros módulos del mismo sistema Randy V² - II Q – 2016, 100 % positivo
  • 36. “Cada Módulo es codificado por un programador diferente”. • ¿Qué tan independientes pueden trabajar los programadores? • ¿Existe algún supuesto, convención o decisiones de implementación a los cuales más de un módulo deba prestar atención? • ¿Cuáles son las posibilidades de cambio que existen en relación a los supuestos, convenciones o a la implementación? • ¿Existe alguna manera de aislar aquellos cambios y situarlos en un sólo módulo? Randy V² - II Q – 2016, 100 % positivo
  • 37. Ideas Centrales • Sistemas altamente acoplados conducen a depurar verdaderas pesadillas. Evítelos • Sistemas altamente acoplados, tienden a tratarse como una sola gran unidad. Y un sistema monolítico es la contrapartida a particionar. • Hablar de módulos, cajas negras, es hablar de particionamiento. • Particionar es la estrategia para abordar la complejidad. • Las cajas negras se organizan jerárquicamente. Randy V² - II Q – 2016, 100 % positivo
  • 38. Tipos de Cohesión Grado de Cohesión FUNCIONAL Mayor Cohesión SECUENCIAL COMUNICACIONAL PROCEDURAL TEMPORAL LÓGICA COINCIDENTAL Módulo como Caja Negra Módulo Transparente STEVEN, MYERS, CONSTANTINE y YOURDON (1974) establecieron "una escala de cohesión" Randy V² - II Q – 2016, 100 % positivo
  • 39. Cohesión Funcional Un módulo con cohesión funcional es aquel que contiene elementos que contribuyen a la ejecución de una y sólo una tarea relacionada al problema objeto de diseño. Ejemplos: Calcular el coseno de un ángulo Calcular el I.V.A. de una factura Verificar el dígito de un RUT Randy V² - II Q – 2016, 100 % positivo
  • 40. Cohesión Secuencial Un módulo secuencialmente cohesionado es aquel cuyos elementos están envueltos en actividades tales que los datos de salida de una actividad en general sirven como datos de entrada para la próxima actividad. Ejemplo: Calcular Salario 1. Obtener sueldo base 2. Verificar número de cargas 3. Revisar días con permiso 4. Revisar días con licencia 5. Calcular horas de trabajo 6. Descontar horas de atraso 7. Agregar horas extras .... Randy V² - II Q – 2016, 100 % positivo
  • 41. Cohesión Comunicacional Un módulo presenta cohesión comunicacional cuando sus elementos contribuyen a actividades que usan la misma entrada o la misma salida. No importa el orden secuencial Ejemplo: Obtener datos Producto 1. Obtener nombre 2. Obtener stock 3. Obtener ubicación 4. Obtener precio .... Randy V² - II Q – 2016, 100 % positivo
  • 42. Cohesión Procedimental Cuando sus elementos de procesamiento están relacionados y deben ejecutarse en un orden específico. Randy V² - II Q – 2016, 100 % positivo
  • 43. Cohesión Temporal Un módulo con cohesión temporal es aquel cuyos elementos están envueltos en actividades que están relacionadas en función del momento en que se realizan. Ejemplo: Actividades al iniciar el día 1. Apagar despertador 2. Tomar una ducha 3. Vestirse 4. Hacer la cama 5. Tomar desayuno .... Randy V² - II Q – 2016, 100 % positivo
  • 44. Cohesión Lógica Un módulo tiene cohesión lógica, cuando existe alguna relación entre los elementos del módulo, contribuyendo al desarrollo de actividades de una misma categoría general, donde la actividad o las actividades a ser ejecutadas se seleccionan desde fuera del módulo. Ejemplo: Registrar Pago 1. Registrar pago con tarjeta de crédito 2. Registrar pago con cheque 3. Registrar pago con efectivo .... Randy V² - II Q – 2016, 100 % positivo
  • 45. Cohesión Coincidental Un módulo coincidentemente cohesionado es aquel cuyos elementos desarrollan actividades sin relación significativa entre sí. Ejemplo: 1. Comprar un libro 2. Comer un trozo de torta 3. Ir al teatro 4. Lavar la ropa 5. Dormir .... Randy V² - II Q – 2016, 100 % positivo