Analisis de sistemas : Objetos. Un objeto es una entidad que encapsula una estado y comportamiento; siempre es una instancia de una clase. Todos los objetos son una instancia de una clase. Propiedades: - identidad : Es lo que le hace diferente de los otros objetos. - Estado : El estado de un objeto es determinado por los valores de sus atributos y si se encuentra relacionado en ese instante con otro objeto, podemos decir que un objeto depende de sus atributos. - Comportamiento : Conjunto de acciones que puede hacer el objeto y puede alterar su estado. Una operacion es la especificacion de una pieza del comportamiento. Una implementacion de ese comportamiento se denomina metodo. ![](https://i.imgur.com/VcgeZNC.png) Encapsulacion: Todos los objetos tienen un identificador que los hace unico, la encapsulacion habla sobre como un objeto abarca varios atributos haciendo alterar su estado. Algunos atributos se pueden alterar y otros son constantes. Mensajeria: Los objetos lo que hacen es colaborar para que un sistema funcione. Entonces los objetos que abarca un software por ejemplo, se tienen que relacionar entre si mediante mensajes que se envian para accionar el comportamiento de uno con el otro. ![](https://i.imgur.com/9eTS4o8.png) Notacion de objeto UML: Es un rectangulo con dos partes, la parte superior contiene el identificador del objeto, siempre subrayado, lo de abajo son sus atributos. ![](https://i.imgur.com/fGfbrFs.png) La declaracion del identificador del objeto en UML puede variar : - Solo el nombre de la clase: , esto significa que tiene un objeto anonimo, instancia de esa clase. ![](https://i.imgur.com/sVNpVUo.png) - Solo el nombre de objeto: "cuentaDeNicolas". Esto identifica un objeto especifico pero no identifica a que clase pertenece. ![](https://i.imgur.com/sXLJ4Lq.png) - El nombre del objeto concatenado con el nombre de clase, separado por dos puntos. que es el comun. Diciendo que un objeto es intancia de una clase. ![](https://i.imgur.com/ml32Kfm.png) Valores de atributo de objeto: Todo valor de atributo de un objeto tiene la siguiente forma: nombre:tipo = valor. Puede elegir mostrar todos, algunos o ningun valor de atributo de objeto dependiendo de la finalidad del diagrama. Clases: Una clase es un descriptor para un conjunto de objetos que comparten los mismos atributos, operaciones, metodos, realciones y comportamiento. Una clase determina la estructura de todos los objetos de esa clase, Todos los objetos de la misma clase deben tener el mismo conjunto de operaciones, el mismo conjunto de atributos y el mismo conjunto de realaciones, pero pueden tener diferentes valores en sus atributos. Todo objeto de la clase tiene valores especificos para los atributos definidos por la clase y responderan a los mensajes al invocar las operaciones definidas por la clase. Dependiendo del estado del objeto, va a responder o no al mensaje enviado. Existen relaciones entre clases, una clase puede ser subclase de otro clase por ejemplo : Un gato tiene subclases como "gato domestico" o "gato salvaje". por otro lado, existen reaciones entre objetos como la de "composicion", un arbol tiene sus hojas, cada objeto hoja pertenece a un objeto arbol en especifico, por lo tanto esta hoja si la sacamos de su arbol, no podemos colocarla en otro arbol. Sin embargo, si considera la realcion entre computadora y perifericos, es algo diferente, un periferico no es exclusivo de una solo objeto computadora sino que de un todas los objetos computadoras, por lo cual podes compartirlo. Esta relacion se la conoce como "agregacion". Clases y objetos: La relacion entre una clase y objetos de esa clase es una relacion de clasificacion (este OBJETO es instancia de la CLASE) --> <<instantiate>>. No es habitual que en un diagrama representemos clases e instancias. La flecha de puntos es una relacion de dependencia a la que se le ha dado un significado especial por el estereotipo "objeto de una clase", Cualquier cosa dentro de <>. Se conoce como un estereotipo. Un estereotipo es una forma de personalizar elementos de modelado, una forma de crear variaciones con nueva semntaica. Por ejemplo el nombrado anteriormente genera una dependencia entre una clase y los objetos de una clase. La dependencia de una relacion entre dos elementos en los que un cambio en un elemento puede afectar o promocionar informacion necesaria por el otro elemento. ![](https://i.imgur.com/5r0CZYi.png) Instanciar clases: Instanciar es la creacion de nuevas instancias de elementos de modelo. En este caso, estamos instanciando objetos a partir de clases; estamos creando nuevas instancias de clases. Notacion de una clase en UML: ![](https://i.imgur.com/IFIG2Zu.png) Descripcion de clases: Compartimiento de nombre: - El nombre de clase empieza con una letra mayuscula y luego en una combinacion de may-min. - Evite abreviaciones. - Si existe acronimos especificos del dominio que se utiliszan de forma comun y entenderan todos los lectores del modelo, entonces podria utilizarlos. - Las clases representan cosa, por lo que deberian tener un nombre que es un nombre comun, en singular, por ejemplo : "Persona, Dinero, CuentaBancaria". Compartimiento de atributo: visibilidad nombre: tipo[munltiplicidad] = valorinicial. La unica parte obligatoria de la sintaxis de atributo es el nombre del atributo, el resto de los elementos son opcionales. Los nombres son en minuscula. Ambito de aplicacion: Algunas veces necestiamos definir atributos que tienen un solo valor compartido para cada objeto de la clase, y necesita operaciones que no operen sobre ninguna instancia de clase en particular. Decimos que estos atributos y operaciones tienen ambito de clase. Estas proporcionan un conjunto de caracteristicas globales para una clase entera de objetos. Ambito de instancia y ambito de lase: La semantica para los atributos y operaciones del ambito de instancia y ambito de clase : ![](https://i.imgur.com/LZ83uVc.png) ![](https://i.imgur.com/F349LcB.png) Siempre que una operacion pueda acceder a otras caracteristicas de la clase esta determinado por el ambito de aplicacion de la operacion y por el ambito de la caracteristica que esta tratando de acceder. Las operaciones con ambito de instancia pueden tacceder a otros atributos y operaciones de ambito de aplicaciones de instancia, y tambien a todos los atributos y operaciones del ambito de aplicacion de clase. Las operaciones del ambito de operacion de clase solamente pueden acceder a otras operaciones y atributos del ambito de aplicacion de clase. Las operaciones de ambito de aplicacion de clase no pueden acceder a operaciones de ambito de aplicacion de instancia porque: - Puede que todavia no se haya creado ninguna instancia de clase. - Incluso si existen instancias de clase, no sabe cual utilizar. Construccion y destruccion de objetos: Los constructores son operaciones especiales que crean nuevas instancias de clases; estas operaciones deben tener ambito de aplicacion de clase. Si tuvieran ambito de aplicacion de instancia, no habria forma de crear la primera instancia de una clase. Los constructores son una consideracion de diseño y por lo general no se muestran en los modelos de analisis. Una clase puede tener muchos constructores, todos con el mismo nombre, pero cada uno distinguido por una lista de parametros diferente. el constructor sin parametros se conoce como el constructor predeterminado. Puede utilizar parametros de constructor para inicializar valores de atributo en el punto de la construccion del objeto. Encontrar clases de analisis: Las realizaciones de caso de uso, son colaboraciones entre objetos que muestran como sistemas de objetos que interactuan pueden realizar el comportamiento del sistema expresado en los casos de uso. - Modelo de negocio: Puede o no tener un modelo de negocio disponible que este relacionado con el sistema que esta modelando. Si lo tiene, este es una excelente fuente de requisitos. - Modelo de requisitos: Estos requisitos proporcionan entrada de utilidad para el proceso de modelado de caso de uso. - Modelo de caso de uso. - Descripcion de arquitectura: Una instantanea de los aspectos importantes desde el punto de vista de la arquitectura del sistema. Puede influir extractos de los modelos UML incorporados en un texto explicativo. ¿Que son clases de analisis? Son clases que: - Representan una abstraccion en el dominio del problema. - Deberian mapearse con conceptos de negocio del mundo real. El dominio del problema es el dominio en el que surge primero la necesidad de un sistema de software. (venta online). El aspecto mas importante de una clase de analisis es que deberia mapear de forma clara y nada ambigua con algun concepto de negocio