0 calificaciones0% encontró este documento útil (0 votos)
36 vistas29 páginas
Este documento presenta los conceptos clave del análisis y diseño de sistemas, incluyendo la arquitectura de software, diagramas de clases de análisis y el uso de estereotipos. Explica que el análisis se centra en entender cómo las entidades del negocio pueden implementar los casos de uso, mientras que el diseño se centra en la estructura del sistema. También describe tres niveles de arquitectura comunes (presentación, aplicación y almacenamiento) y cómo mejoran la cohesión y el acoplamiento
Este documento presenta los conceptos clave del análisis y diseño de sistemas, incluyendo la arquitectura de software, diagramas de clases de análisis y el uso de estereotipos. Explica que el análisis se centra en entender cómo las entidades del negocio pueden implementar los casos de uso, mientras que el diseño se centra en la estructura del sistema. También describe tres niveles de arquitectura comunes (presentación, aplicación y almacenamiento) y cómo mejoran la cohesión y el acoplamiento
Este documento presenta los conceptos clave del análisis y diseño de sistemas, incluyendo la arquitectura de software, diagramas de clases de análisis y el uso de estereotipos. Explica que el análisis se centra en entender cómo las entidades del negocio pueden implementar los casos de uso, mientras que el diseño se centra en la estructura del sistema. También describe tres niveles de arquitectura comunes (presentación, aplicación y almacenamiento) y cómo mejoran la cohesión y el acoplamiento
Anlisis Anlisis y Diseo de Sistemas Elizabeth Vidal D. 2 En dnde estamos ahora? Requerimientos Analisis Diseno Implementacion Pruebas Analizar los requerimientos del sistema Realizacin de casos de Uso Comprender como las entidades del negocio pueden ser utilizadas para soportar los casos de uso. Elizabeth Vidal D. 3 Anlisis: Visin General Entrada: Casos de Uso Modelo del Dominio Actividades: Esquematizar la Arquitectura del Software Realizar los Casos de Uso
Creacin de Diagramas de Secuencia Refinar el Modelo del Dominio en un Diagrama de Clases de Anlisis
Elizabeth Vidal D. 4 Anlisis: Vision General
Requerimientos (Casos de Uso) da la vista externa
Modelo del Dominio, da informacin estructural sobre las entidades del negocio.
El ANALISIS se realiza para entender como las entidades del negocio pueden ser implementadas y soportar la realizacin de los Casos de Uso: Agregando operaciones a las entidades del negocio Acercndose mas a las clases de programacin.
Elizabeth Vidal D. 5 Diferencia entre Anlisis y Diseo La distincin no es clara entre las dos actividades: Usualmente parece ser una actividad continua sin limites claros Se hace aun mas confuso al utilizar los mismos diagramas UML Anlisis: Se centra en los requerimientos del sistema Diseo: Se centra en la estructura que implementa el sistema La actividad de Diseo emplea la versin mas completa de los diagramas: Elizabeth Vidal D. 6 Que es la Arquitectura de Software? Es una descripcin de Alto Nivel de todo el sistema La estructura de alto nivel de los subsistemas El rol y la interaccin de estos subsistemas Agrupamiento de Clases para: Mejorar Cohesion Reducir Acoplamiento Cohesion: Conjunto de cosas que trabajan bien juntas Acoplamiento: Inter-Dependencia entre dos entidades Elizabeth Vidal D. 7 Arquitectura de Software: Ejemplo Tomemos el juego Buscaminas como ejemplo, e identifique los componentes de alto nivel: Pantalla: Mostrando el juego graficamente Logica de Aplicacion: Determinando las banderas y numeros Verificando si hay o no mas minas, etc Almacenamiento de Puntaje: Almacena puntaje mas alto, configuraciones, etc Elizabeth Vidal D. 8 Buscaminas: Sistema Uno Class Buscaminas{
public void ClickOnSquare( ){ if (cuadrado == bomba) gameState = muerto mostrar icono muerto escribir puntaje mas alto a un archivo
else if (cuadro == numero){ abrir cuadros vecinos marcar cuadros como abierto mostrar nuevo tablero } } ..// some other code } Mala Cohesion: Funciones de Displayado en todos sitio Logica de aplicacion junto con otras operaciones Funcion de almacenamiento no separada Bajo Acoplamiento: Ya que solo hay una clase, no hay interdependencia Elizabeth Vidal D. 9 Buscaminas: Sistema Dos Class BuscaminasGUI{
public void abrirCuadro(posicion){ if (cuadro == bomba) gameState = muerto else if (cuadro == numero){ abrir cuadros vecinos marcar cuadros como abiertos } }
public board GetCurrentBoard() { .. .. }
public void grabaTableroActual() { bmAlmacena.escribeTablero(.. )
} Class BMAlmacena{
Public void escribePuntajeAlto(..){ } Public void escribeTablero(..) { } }
Elizabeth Vidal D. 10 Buscaminas: Sistema Dos Cohesion: Cada clase agrupa logicamente funcionalidad similar Class BuscaminasGUI: interfaz de usuario, input/output en pantalla Class Buscaminas: Computacion y Logica Class BMAlmacena: Operaciones de archivo Acoplamiento: Algunas interdpendencias. Puede mejorarse. Observe que BuscaminasGui utiliza BMAlmacenamiento directamente. Sin embargo, si sustituimos otra interfaz de usuario, el puntaje mas algo necesita ser grabado. Elizabeth Vidal D. 11 Buscaminas: Sistema Tres Class BuscaminasGUI{
Buscaminas miBM // BMAlmacena bmAlmana No necesario
.. .. ..
Public void MenuExitClick( ){ miBM.ClosingDown( ) } }
Class Buscaminas{
BMAlmacena bmAlmacena
.. .. ..
Public void ClosingDown() { bmAlmacena.escribePuntajeAlto(..) }
Public void grabarTableroActual() { } } Class BMAlmacena{
Public void escribePuntajeAlto(..){ } Public void escribeTablero(..){ } }
Elizabeth Vidal D. 12 Buscaminas: Sistema Tres Acoplamiento: Reducido. BuscaminasGUI depende solo de Buscaminas. Buscaminas depende solo de BMAlmacena. El bajo acoplamiento posibilita el facil mantenimiento, ejemplo Cambiar BuscaminasGUI por BuscaminasTextoUI no afectaria el mantenimiento de la aplicacion. Podemos cambiar a otro tipo de almacenamiento, por ejemplo cambio a base de datos utilizando los mismos metodos Elizabeth Vidal D. 13 Buscaminas: Comparacion de Sistemas Sistema 2
Buscaminas Sistema 3
BuscaminasGUI BMAlmacena Buscaminas BuscaminasGui BMAlmacena Sistema 1
Buscaminas Mala Cohesion No Acoplamiento Buena Cohesion Acoplamiento Medio Buena Cohesion Bajo Acoplamiento Elizabeth Vidal D. 14 Buscaminas: Observaciones Escoger entre cohesion y acoplamiento: Mejorar la cohesion usualmente implica empeorar el acoplamiento (mas alto) y viceversa Las tres categorias de funcionalidad son ampliamente aplicables: Interfaz de Usuario Logica del Negocio Almacenamiento (Persistencia) Estas observaciones ayudan a definir la Arquitectura de Software: Dividir un sistema en sub-sistemas Elizabeth Vidal D. 15 Arquitectura en Tres Niveles Una de las ideas mas antiguas de la Ingenieria del Software Dividir en tres niveles separados: Nivel de Presentacin Interface de Usuario Nivel de Aplicacin Centrado en la lgica del negocio Implementa la funcionalidad del sistema. Nivel de Almacenamiento Maneja el almacenamiento de datos: archivos, bases de datos, etc Los niveles son de un alto nivel de abstraccin. Cada uno puede contener muchas clases, o muchos paquetes (grupo de clases) Elizabeth Vidal D. 16 Diagrama de Paquetes UML Dependencia: Representa la relacion hace uso de r
Paquete: Coleccion de clases o sub- paquetes
Elizabeth Vidal D. 17 Buscaminas: Diagrama de Paquetes Presentation Buscaminas Application BuscaminasGUI BMAlmacena Storage
Corresponde a constructores de programacion: Java: Package C++: namespace
Elizabeth Vidal D. 18 Arquitectura en Niveles: Ventajas Los niveles intentan reducir lo efectos del cambio en el sistema.
Por ejemplo, si la interfaz de usario cambia pero el nivel de aplicacion no hace uso del nivel de presentacion Los cambios en el sistema deberan estar restringidos al nivel de presentacin. DIAGRAMA DE CLASES DE ANALISIS Elizabeth Vidal D. 20 Estereotipos para Clases de Anlisis Con el tipo de arquitectura en tres niveles, los objetos pueden tener varios roles tipicos:
Objetos interfaz (boundary): interactuan con los actores del sistema Objetos control: manejan el comportamiento del caso de uso Objetos entidad: manejan los datos
Los objetos son representados explicitamente utilizando estereotipos de clases de UML Estos estereotipos dan informacin informal adicional acerca de los objetos.
Elizabeth Vidal D. 21 Los estereotipos pueden ser texto o conos grficos.
Notacin de Clases con Estereotipos Ejemplo: Mailing List Elizabeth Vidal D. 23 Modelo del Dominio Elizabeth Vidal D. 24 REGISTRARSE ALUMNO MODIFICAR PREFERENCIAS ENVIAR NOTICIAS PROFESOR LOGEARSE CREAR LISTA ELIMINAR USUARIOS ADMINISTRADOR ELIMINAR LISTA GRABAR NOTICIAS <<extend>> Elizabeth Vidal D. 25 Interfaz: CU Registrarse Elizabeth Vidal D. 26 Ejemplo de Clases de Anlisis CU01 : Registrar Alumno Elizabeth Vidal D. 27 Al umno_Boundary Al umno_Enti ty Al umno_Control Al umno (f rom Actors) Li sta_Enti ty Elizabeth Vidal D. 28 Lectura Obligatoria Priestley Practical Object-Oriented Design with UML, Capitulo 5.3
Object Oriented Software Engineering Using UML , Patterns and Java, Capitulo 5.4
Lectura6 An IntroductionToSoftwareArchitecture.pdf Lectura7 Who Needs an Architect Lectura8BuildingArchitect Lectura9RedduciendoElAcoplamiento
Elizabeth Vidal D. 29 Control de Lectura Prxima Semana