Professional Documents
Culture Documents
S O F T W A R E
INTRODUCCIÓN
AGENDA:
2. COMPLEJIDAD
3. MODELOS
1
CICLO GENÉRICO EN LA CONSTRUCCIÓN DE SOFTWARE
Comunicación
CONCEPTO
NECESIDADES
S
Y
TEORIAS
DEMANDAS
TECNICAS
REALIDAD MODELO
CONCEPTUAL
MODELO
FUNCIONAL
2
COMPLEJIDAD
Complejidad y Construcción de Software
Orden/organización Desorden
Sujeto Objeto
(Observador) (Sistema Observado)
Complejidad y Construcción de Software
2. COMPLEJIDAD
“La
1. elección de los componentes dependen del observador
2. “Frecuentemente toma forma de Jerarquías”
(susbsistemas)
3. Los enlaces internos de los componentes son
mas fuertes que los externos
4. Usualmente se componen de unas pocas
clases
5. Evolucionan de sistemas mas simples
2. Complejidad y Construcción de Software
ALGORITMICA
TENDENCIAS METODOLOGICAS
DE DESARROLLO DE SOFTWARE Hace énfasis en los procesos
o las funciones del sistema
ORIENTACION A OBJETOS
One tier
Capa Presentación
Capa de Datos
2. Complejidad y Construcción de Software
Two tier
Cliente inteligente
CAPA PRESENTACIÓN
CAPA DE REGLAS
DEL NEGOCIO
CAPA DE
BASE DE
DATOS
Servidor inteligente
2. Complejidad y Construcción de Software
Three tier
Capa de Presentación
CAPA DE REGLAS
DEL NEGOCIO
CAPA DE
BASE DE
DATOS
2. Complejidad y Construcción de Software
N- tier
Capa de Presentación
CAPA DE REGLAS
DEL NEGOCIO
CAPA DE
BASE DE DATOS
3
3. MODELOS
MODELO: Es una
representación de las
caracterísitcas principales de
un sistema.
REALIDAD MODELO
3. MODELOS
NOCIONES DE INCERTIDUMBRE
• COMPLEJIDAD DE SOFTWARE
MÁQUINAS DE ESTADO FINITO
• INCERTIDUMBRE
• GENERALIDAD - GENERACIDAD
• MODELOS DE ANÁLISIS DE
SISTEMAS MAS UTILIZADOS
• INTERFAZ
I S
Á LIS
N
A
D E O S
Í AS ET
G B J
L O O
D O OR
T O S P
ME D A
T A
I EN
OR
METODOLOGÍAS DE ANÁLISIS
ORIENTADAS POR OBJETOS
cluye:
Un modelo estático
(basado en clase, atributo, operación, relación y agregaci
Shaller-Mellor:
Booch:
MOSES:
•Modelo Objetos y Clases.
•Modelo Eventos.
•Modelo Diagramas de Objetos.
•Notación de Objetos de Negocios.
•Modelo de Proceso.
LISTA DE METODOLOGÍAS DE ANÁLISIS
ORIENTADAS POR OBJETOS
Sybtropy:
•Modelo esencial.
•Modelo de especificación
•Modelo de implementación
MOSES:
•Modelo Objetos y Clases.
•Modelo Eventos.
•Modelo Diagramas de Objetos.
•Notación de Objetos de Negocios.
•Modelo de Proceso.
METODOLOGÍAS DE ANÁLISIS
ORIENTADAS POR OBJETOS
• ANALISIS: Descomponer
16% terminan
dentro del CAUSAS: Se estima que:
tiempo 53%
y costo. sobrepasa •16% por no involucrar al usuario
tiempo y costo.
• 14% por falta de ayuda a
los directivos.
A1.Comprender
Objetivo A7
. Proporcionar una
base para el desarrollo
el problema del del sistema
análisis:
A2.Suscitar cuestiones
relevantes del problema A6.
Asegurar satisfaga las
y del sistema necesidades de sus usuarios
y definir los criterios de aceptación
ENTIDAD Fluj
o Dato
Entidad o s
Flujo de Datos Agente Externo
Flujo de Datos
Flujo de Datos
PROCESO Proceso
Entidad o O
Agente Externo Sistema Entidad o
ALMACENAMIENTO Flujo de Datos Agente Externo
Flujo de Datos
entidad 1 a 1
Nombre Entidad
Nombre Entidad
ENTIDAD • Atributos 1 a muchos
• atributos
0
relación
1 Muchos a 1
ASOCIACION
Estudiante Profesor
• Atributos
• Atributos
Muchos a Muchos
Cardinalidad
CONSTRUCCIÓN DE SOFTWARE.
CONSTRUCCIÓN DE SOFTWARE
ORIENTADO A OBJETOS
Bertrand Meyer
Pretince Hall
Segunda edición 1.999
CALIDAD DE SOFTWARE.
Modularidad Velocidad
Legibilidad Facilidad
de uso
CALIDAD DE SOFTWARE. – Factores Externos -
PORTABILIDAD
CORRECCIÓN
FACILIDAD DE USO FIABILIDAD
ROBUSTEZ
FACTORES
FUNCIONALIDAD EXTERNOS
DE EXTENSIBILIDAD
CALIDAD MODULARIDAD
OPORTUNIDAD REUTILIZACIÓN
DE
SOFTWARE
OTRAS CUALIDADES COMPATIBILIDAD
INTEGRIDAD EFICIENCIA
VERIFICABILIDAD
REPARABILIDAD
ECONOMIA
DOCUMENTACIÓN
CALIDAD DE SOFTWARE– Factores Externos-.
Son tantas las situaciones complejas que una estrategia multinivel en la que cada nivel confía
en la corrección de los niveles inferiores.
Sistema de aplicación
Biblioteca de aplicación
...Mas Biblioteca...
Biblioteca Básica
Biblioteca Núcleo
Compilador
Sistema operativo
ROBUSTEZ
. Simplicidad de diseño: Una arquitectura simple siempre será más fácil de adaptar a
cambios que una arquitectura compleja.
. Descentralización: Cuanto más autónomos sean los módulos, más alta es la probabil
de que un cambio simple solo afecte a un módulo o un número reducido de ellos.
CALIDAD DE SOFTWARE-Factores
Externos-.
Es la capacidad de los elementos de software de servir para la construcción
REUTILIZACIÓN
de muchas aplicaciones diferentes.
Hay situaciones en las que sistemas de software siguen ciertos patrones similares de modo que se
puede explotar esta similitud. Capturando este patrón un elemento reutilizable de software se podrá
aplicar en muchos desarrollos diferentes.
FACILIDADEs la facilidad con la cual las personas de diferentes niveles y oficios puede
DE USO aprender a usar los productos software y aplicarlos a la solución de problem
Facilidad de instalación, operación y supervisión.
Otras Cualidades.
Deseable
Común Depuración
Previsión de los
primeros laza –
mientos.
Funcionalidad
CALIDAD DE SOFTWARE – Factores Externos - .
Verificabilidad:
Es la facilidad para preparar procedimientos de aceptación.
DESCOMPOSICIÓN
EXTENSIBILIDAD COMPOSICIÓN
CORRESPONDENCIA
DIRECTA
5 CRITERIOS COMPRENSIBILIDAD
PROTECCIÓN
INTERFACES PEQUEÑAS
(Acoplamiento débil) 5 REGLAS
UNIDADES MODULARES
INTERFACES LINGÜÍSTICA
EXPLÍCITAS
AUTODOCUMENTACIÓN
OCULTACIÓN DE
INFORMACIÓN 5 PRINCIPIOS ACCESO UNIFORME
REUTILIZACIÓN ABIERTO-CERRADO
ELECCIÓN ÚNICA
CALIDAD DE SOFTWARE – Factores Internos –
MODULARIDAD.
1. DESCOMPOSICIÓN MODULAR
2. COMPOSICIÓN MODULAR
4. CONTINUIDAD MODULAR
5. PROTECCIÓN MODULAR
CALIDAD DE SOFTWARE – Factores Internos –
MODULARIDAD.
1. DESCOMPOSICIÓN MODULAR:
B C
D
Condicional
Bucle
C1 I II C2 I1
CALIDAD DE SOFTWARE – Factores Internos –
MODULARIDAD.
2. COMPOSICIÓN MODULAR:
3. COMPRENSIBILIDAD MODULAR:
4. CONTINUIDAD MODULAR:
PROTECCIÓN MODULAR:
ecución, queda confinado a dicho módulo , ó, en el peor de los casos, solo a unos
CORRESPONDENCIA
DIRECTA
POCAS INTERFACES
INTERFACES
EXPLÍCITAS
OCULTACIÓN DE
INFORMACIÓN
CALIDAD DE SOFTWARE – Factores Internos –
MODULARIDAD.
MODULARIDAD.
Esta regla se deriva principalmente de los criterios de: Descomposición y composició
Parte Secreta
2. AUTODOCUMENTACIÓN
4. ABIERTO-CERRADO
5. ELECCIÓN ÚNICA
CALIDAD DE SOFTWARE – Factores Internos –
MODULARIDAD.
Excluye combinar métodos que permiten modularidad y otros no. Ejemplo, intentar
implementar, lo que esta OO en un lenguaje que no permite objetos (pascal o C).
CALIDAD DE SOFTWARE – Factores Internos –
MODULARIDAD.
2. PRINCIPIO AUTO-DOCUMENTACIÓN.
“ El diseñador de un módulo deberá esforzarse
por lograr que toda la información relativa
al módulo forme parte del propio módulo“.
CASO-1
x.f
Nombre de una característica aplicable a x
4. PRINCIPIO ABIERTO-CERRADO.
ABIERTO: El módulo debe poderse extender. Ejemplo: Debería ser posible expandir su
conjunto de operaciones o añadir datos a sus estructuras de datos.
CERRADO: El módulo está disponible para ser usado por otros módulos.
Entonces se supone que el módulo tiene una descripción (interfaz en el sentido de
ocultación de información) estable y bien definidad.
Cerrar un módulo en nivel implementación: Implica que se pueda compilar, tal vez,
almacenar en una biblioteca y ponerlo a
disposición de otros (clientes) para su uso.
CALIDAD DE SOFTWARE – Factores Internos –
MODULARIDAD.
2. Descomposición Composición
(visión descendente) (visión ascendente)
7. Otros más
GENERACIDAD [Meyer-Construcción de Software OO- Cap.10- 1.998]
MANEJADOR_DE_TABLA_DE_CUENTA
S
Generacidad
Para escribir un único patrón de módulo de la forma:
MANEJADOR_DE_TABLA [INTEGER]
MANEJADOR_DE_TABLA [ELECTRON]
MANEJADOR_DE_TABLA [CUENTA]
GENERACIDAD [Meyer-Construcción de Software OO- Cap.10- 1.998]
Abstracción
CONJUNTO
_DE_LIBROS
Generalización
LISTA_ENLAZADA
Generacidad DE_LIBROS
Especialización
La generacidad es una facilidad para autores de módulos proveedores.
Especialización
Hace posible escribir el mismo texto del proveedor cuando se utiliza
la misma implementación de un cierto concepto, aplicada a diferentes
clases de objetos.
PAQUETES [Meyer-Construcción de Software OO- Cap.4.7- 1.998]
PAQUETE: Son unidades de descomposición del software con las siguientes propiedades:
P1. Es una estructura del lenguaje, de modo que todo paquete tiene un nombre
y un ámbito sintáctico claro.
P3. Cada paquete puede especificar unos derechos de acceso precisos que gobierna
la utilización de sus características por parte de otros paquetes. Es decir, permite
la ocultación de información.
La arquitectura de un sistema
se obtiene de objeto o de
Acción (datos u)
funciones.
(funciones) Objeto
Procesadores
(o hilos de control)
• Los procesadores son los dispositivos de computo físicos o virtuales.
• Los objetos son las estructuras de datos sobre los que se aplican las acciones
• Ordenación y desarrollo OO
5.2. Descomposición funcional:
• Continuidad • Reutilización.
• Desarrollo descendente • Producción y descripción
• No solo una función • valoración del diseño
• Encontrar la cima • Descendente
• Funciones y evolución
• Interfaz y diseño de software
• Ordenación prematura
HACIA UNA TENOLOGIA DE OBJETOS
[Meyer-Construcción de Software OO- Cap.5- 1.998]
• Compatibilidad. • Reutilización.
• Extensibilidad.
Análisis orientado a objetos
[Meyer-Construcción de Software OO- Cap.27- 1.998]
A3. Proporcionar una base para responder para responder preguntas acerca de las
propiedades específicas del problema y del sistema.
A6. Asegurar que el sistema satisfaga las necesidades de sus usuarios y definir los
criterios de aceptación (especialmente cuando el sistema se desarrolla para
clientes externos con una relación contractual).
A1. Comprender
Objetivo A7. Proporcionar una
base para el desarrollo
el problema
del del sistema
análisis:
A2. Suscitar cuestiones
relevantes del problema A6. Asegurar satisfaga las
y del sistema necesidades de sus usuarios
y definir los criterios de aceptación
“Una clase es un modelo y un objeto es una instancia de ese modelo” [Meyer pag.158]
Tiene 3 elementos:
No hay reglas infalibles, por el contrario, puede ser muy dañinas. Si se puede
tener una serie de reflexiones que pueden ayudar a evitar problemas.
NEGATICOS ABSOLUTOS:
EXCEPCIONES:
na metáfora se define tanto por lo que difiere como lo que tiene en com
A se parece a B
B tiene la propiedad P
_____________________________
Conclusión: A tiene la propiedad P.
BERTHRAN MEYER - SOBRE LA METÁFORAS