Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Diseno de Software
Diseno de Software
Contenido
Proceso de desarrollo. Actividades Abstracciones. Orientacin a objetos Diseo basado en abstracciones. Diseo orientado a objetos Metodologa: Booch (Booch), Rumbaugh (OMT), Jacobson (OOSE), Coad-Yourdon (OOA/OOD)
DISEO-2
Metodologas de diseo
Casos de estudio
Rgido, es muy costoso rectificar La documentacin inicial suele quedar obsoleta Ciclo de vida espiral Uso de prototipos Programacin extrema (Extreme Programming) Desarrollo gil
Anlisis
Entrada
Conocimiento del dominio de la aplicacin, actividades de los usuarios, mercado, etc. Identificar las necesidades del usuario Anlisis de viabilidad Determinar los requisitos de la aplicacin Documento de requisitos del software
DISEO-5
Actividades
Salida
Diseo
Entrada
Documento de requisitos del software Establecer una(s) estrategia(s) de solucin Anlisis de alternativas. Formalizar la solucin Descomponer y organizar la aplicacin Fijar descripciones de cada mdulo Documento de diseo del software
DISEO-6
Actividades
Salida
Codificacin
Entrada
Documento de diseo del software Creacin del cdigo fuente Pruebas de unidades Cdigo de mdulos, probado
Actividades
Salida
DISEO-7
Integracin. Validacin
Entrada
Cdigo de mdulos, probado Documento de requisitos del software (validacin) Pruebas de integracin Pruebas de validacin Aplicacin completa, lista para usar
Actividades
Salida
DISEO-8
Proyecto de la asignatura
Actividades a desarrollar
Anlisis Diseo Codificacin Integracin Mantenimiento
DISEO-9
Abstracciones
Abstracciones
Implementan determinados servicios, ocultando los detalles. Se usan conociendo su interfaz Funciones y acciones Realizan una operacin Agrupan un tipo de datos con sus operaciones Ocultan la representacin de los datos
DISEO-10
Abstracciones funcionales
Clases y objetos
Clases
Definen un tipo de objetos y sus operaciones Coinciden en esencia con tipos abstractos de datos La clase oculta los detalles de implementacin Atributos: contenido de informacin de los objetos Mtodos: operaciones sobre los objetos Mensajes: invocacin de las operaciones Datos de una determinada clase
DISEO-11
Objetos
Herencia
Concepto: especializacin
Define una clase particular (subclase o clase hija) a partir de otra clase general (superclase o clase padre) La subclase hereda los atributos y mtodos de la superclase, y puede tener otros nuevos Tambin se pueden redefinir mtodos Ejemplo: fecha => fecha_y_hora Imprimir_Calendario( fecha ) Imprimir_Calendario( fecha_y_hora )
DISEO-12
Partes = clases o abstracciones Organizacin: estructura del conjunto Agregacin: objetos que contienen otros objetos Uso: clases que utilizan otras clases Herencia: clases especializadas Otras relaciones: modelo de datos. Ejemplo: paciente padece enfermedad
DISEO-13
Diagramas de clases
Clase Atributos Mtodos
Agregacin Uso Herencia
DISEO-14
Descomposicin modular
Clases, tipos, constantes, objetos, etc. Ligaduras o interferencias entre mdulos Deseable bajo acoplamiento (independencia) Ejemplo: No usar variables globales por su nombre Relacin entre los elementos de un mdulo Deseable alta cohesin Ejemplo: Mdulos que sean clases o TADs
DISEO-15
Acoplamiento
Cohesin
Diagramas modulares
Dibujar
Uso
Diagramas modulares
Dibujar Curva_C Pluma
- Crear - Poner - Avanzar - GirarDerecha - GirarIzquierda
Papel
- Crear - PonerEnBlanco - MarcarHorizontal - MarcarVertical - Imprimir
DISEO-17
Metodologa de diseo
Evaluar y comprender la especificacin Idear una estrategia de solucin, informal Formalizar la estrategia Validar el modelo: escenarios, etc. Hay elementos complejos? p Iterar Diseo detallado
DISEO-18
Metodologa de diseo
Formalizar la estrategia
Identificacin de entidades (clases, mtodos, ...) Agrupar mtodos en clases Identificar y asignar responsabilidades Identificar relaciones entre clases Refinar las clases Definir atributos, argumentos de las operaciones, ... Codificar interfaces (cdigo Ada, C++, Java, ...)
DISEO-19
Diseo detallado
Reutilizacin
Componentes
Libreras, genricos, etc. Mdulos fijos, ya definidos Mdulos especficos, a crear en cada caso Esquemas conocidos (no reinventar la rueda) E.Gamma, R.Helm, R.Johnson, J.Vlissides: Design Patterns: ... - (la banda de los cuatro)
Patrones de diseo