Você está na página 1de 13

Facultad ingeniería y arquitectura

Ingeniería en sistemas

Asignatura:

Análisis y Diseño de Sistemas I.

Docente:

Ludwing Alduvi Hernández

Tema:

Diagrama De Clases.

Integrantes:

Carlos Javier Batres Martínez

Cindy Lisseth Molina De Benítez

Kevin Alexander Rodríguez González

Año:

2019
DIAGRAMA DE CLASE

Diagramas de Clase en UML. El UML (Lenguaje Unificado de Modelado), es


una de las herramientas más emocionantes en el mundo actual del desarrollo de
sistemas. Esto se debe a que los creadores de sistemas generar diseños que
capturen sus ideas en forma convencional y bacín de aprender para
comunicarlas a otras personas. El UML es la creación de Grady Booch, James
Rumbaugh e Ivar Jacobson. “Los tres Amigos” como se apodaron estos tres
grandes utilizaban metodologías diferentes para el diseño de software hasta que
en los años 90 decidieron unirse y trabajar en conjunto en una solo metodología,
el UML está compuesto por diversos elementos gráficos que se combinan para
conformar diagramas, con las mismas finalidades que es presentar diversas
perspectivas de un sistema a las cuales se conoce como modelo. En este artículo
nos estaremos refiriendo principalmente al Diagrama de Clases.

DESARROLLADO
POR: "Grady Booch,
James Rumbaugh,
Ivar Jacobson"

Un diagrama de clases sirve para visualizar las relaciones entre las clases que
involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y
de agregación, ya que una clase es una descripción de conjunto de objetos que
comparten los mismos atributos, operaciones, métodos, relaciones y semántica;
mostrando un conjunto de elementos que son estáticos, como las clases y tipos
junto con sus contenidos y relaciones. Un diagrama de clases está compuesto
por los siguientes elementos: Clase: atributos, métodos y visibilidad.
Relaciones: Herencia, Composición, Agregación, Asociación y Uso.
Simbología del diagrama

Clase
Es la unidad básica que encapsula toda la información de un Objeto (un objeto
es una instancia de una clase). A través de ella podemos modelar el entorno en
estudio (una Casa, un Auto, una Cuenta Corriente, etc.).
En UML, una clase es representada por un rectángulo que posee tres divisiones:
En donde:
Superior: Contiene el nombre de la Clase.
Intermedio: Contiene los atributos (o variables de
instancia) que caracterizan a la Clase (pueden ser
private, protected o public).
Inferior: Contiene los métodos u operaciones, los
cuales son la forma como interactúa el objeto con su entorno (dependiendo de
la visibilidad: private, protected o public).

Atributos y Métodos

Los atributos o características de una Clase pueden ser de tres tipos, los que
definen el grado de comunicación y visibilidad de ellos con el entorno, estos
son:

 public (+,): Indica que el atributo será visible tanto dentro como fuera de la
clase, es decir, es accesible desde todos lados.
 private (-,): Indica que el atributo sólo será accesible desde dentro de
la Clase (sólo sus métodos lo pueden acceder a él).
 protected (#,): Indica que el atributo no será accesible desde fuera de la clase,
pero si se podrá acceder por métodos de la clase además de las subclases que
se deriven (ver Herencia).

Los métodos u operaciones de una clase son la forma en como ésta interactúa
con su entorno, éstos pueden tener las características:

 public (+,): Indica que el método será visible tanto dentro como fuera de
la Clase, es decir, es accesible desde todos lados.
 private (-,): Indica que el método sólo será accesible desde dentro de la clase
(sólo otros métodos de la clase lo pueden accesar).
 protected (#,): Indica que el método no será accesible desde fuera de la clase,
pero si podrá ser accesado por métodos de la clase además de métodos de
las subclases que se deriven (ver herencia).

Relaciones

Ahora ya definido el concepto de Clase, es necesario explicar cómo se pueden


interrelacionar dos o más clases (cada uno con características y objetivos
diferentes). Antes es necesario explicar el concepto de cordialidad de
relaciones:
En UML, la cordialidad de las relaciones indica el grado y nivel de dependencia,
se anotan en cada extremo de la relación y éstas pueden ser:
 * = Cero, uno o n.
 0,1 = Cero o uno.
 1.. * = Uno o más.
 1 = Exactamente uno (también podría ser otro número).
 1..5 = Entre uno y cinco.
Herencia

Indica que una subclase hereda los métodos y atributos especificados por una
superclase, de esta forma la subclase además de poseer sus propios métodos y
atributos, poseerá las características y atributos visibles de la superclase.

Agregación

Para modelar objetos complejos, no es suficiente con los tipos de datos básicos
que proveen los lenguajes:

 Enteros, reales y secuencias de caracteres. Cuando se


requiere componer objetos que son instancias de clases
definidas por el desarrollador de la aplicación, tenemos
dos posibilidades:
 Por Valor: Es un tipo de relación estática,
en donde el tiempo de vida del objeto incluido está
condicionado por el tiempo de vida del que lo incluye.
Este tipo de relación es comúnmente llamada
Composición (el Objeto base se construye a partir del
objeto incluido, es decir, es "parte/todo").
 Por Referencia: Es un tipo de relación
dinámica, en donde el tiempo de vida del objeto incluido
es independiente del que lo incluye. Este tipo de relación
es comúnmente llamada Agregación (el objeto base utiliza al incluido para
su funcionamiento).

Asociación

La relación entre clases conocida como Asociación, permite asociar objetos que
colaboran entre sí. Cabe destacar que no es una relación fuerte, es decir, el
tiempo de vida de un objeto no depende del otro.

Del ejemplo se puede deducir que una persona puede usa diferentes tipos de
ropa (varias ropas), en cambio una ropa solo puede ser usada por sólo una
persona en un momento determinado.
Los elementos adicionales que pueden aparecer en una relación de este tipo son
los siguientes:
Rol: Identifica con nombres a los elementos que aparecen en los extremos de la
línea que denota la relación, dicho nombre describe la semántica que tiene la
relación en el sentido indicado.
Multiplicidad: La multiplicidad de una relación determina cuantos objetos de
cada tipo intervienen en la relación. Presenta las siguientes características:
MULTIPLICIDAD SIGNIFICADO
1 Uno y solo uno
0..1 Cero o uno
X..Y Desde X hasta Y
* Cero o varios
0..* Cero o varios
1..* Uno o varios
Cada asociación tiene dos multiplicidades (una para cada extremo de la
relación).
Para especificar hay que indicar que la multiplicidad mínima y máxima
(mínima...máxima)
Cuando a multiplicidad mínima es 0, la relación es opcional  Una
multiplicidad mínima mayor igual que 1 establece una relación obligatoria

Dependencia o Instanciación

Representa un tipo de relación muy particular, en la que una clase es instanciada


(su instanciación es dependiente de otro objeto/clase). Se denota por una flecha
punteada. El uso más particular de este tipo de relación es para denotar la
dependencia que tiene una clase de otra, como por ejemplo una
aplicación Gráfica que instancia una ventana (la creación del
Objeto Ventana está condicionado a la instanciación proveniente desde el
objeto Aplicación):
Ejemplo

Una aplicación necesita almacenar información sobre empresas, en sus ventas


online, sus clientes pueden ser corporativos o Personas normales (Cliente
personal),
Ventajas y Desventajas

Ventajas

 Genera un código automáticamente.


 Propone soluciones a algunos errores.
 Representa las relaciones entre las clases de sistema.
 Se diseña los componentes de los sistemas.
 Se protegen los datos.
 Se posibilita una reducción de acoplamiento.
 Más fácil la comunicación entre los programadores, descubrimiento de
fallas del sistema en el diseño Mejor diseño del sistema ofrece más
documentación.

Desventajas

 Los diagramas de clases especifican qué clases hay y cómo están


relacionadas, pero no cómo interactúan para alcanzar comportamientos
particulares.
 El método tiende hacer muy lento.
 La instalación es muy costosa
PARA COMERCIO ELECTRONICO CONTRATACION SANA: SE SOLICITA AYUDA

“Le agradará saber que presionamos mucho a la gerencia para contratar un nuevo analista de
sistemas especializado en el desarrollo de comercio electrónico”, dice Al Falfa, analista de sistemas
de la cadena internacional Marathon Vitamin Shops, con múltiples puntos de venta, quien se reunirá
con su extenso equipo de analistas de sistemas para decidir sobre las cualidades que deberá poseer
el nuevo miembro de su equipo. Al continúa: “De hecho, les emocionó tanto la posibilidad de que
nuestro equipo ayude a migrar a Marathon a una estrategia de comercio electrónico que dijeron
que deberíamos empezar a buscar ahora y no esperar hasta otoño”.

Ginger Rute, una de las analistas, asiente diciendo: “La demanda de desarrolladores de sitios Web
aún sobrepasa a la oferta. Debemos movernos con rapidez. Creo que el nuevo miembro de nuestro
equipo debe tener experiencia en modelado de sistemas, JavaScript, C++ y Rational Rose, y debe
estar familiarizado con Ajax, entre otras cosas”.

Al mira sorprendida la extensa lista de habilidades de Ginger y luego responde: “Bueno, sin duda
podríamos basarnos en eso. Pero también me gustaría una persona con conocimientos de negocios.
La mayoría de los recién egresados tienen sólidas habilidades de programación, pero también deben
saber sobre contabilidad, inventarios y distribución de bienes y servicios”.

Vita Ming, la analista más reciente del grupo, finalmente participa en la discusión: “Una de las
razones por las que elegí trabajar con ustedes es que sentí que nos llevaríamos muy bien. Como
tenía otras oportunidades, analicé con mucho cuidado la atmósfera de aquí. Hasta donde he visto,
somos un grupo amigable. Debemos asegurarnos de contratar a alguien con buena personalidad y
que se acople bien a nosotros”.

Al asiente y continúa: “Vita tiene razón. El nuevo miembro debe ser capaz de comunicarse bien
tanto con nosotros como con los clientes de la empresa. Siempre nos estamos comunicando de una
forma u otra, por medio de presentaciones formales, dibujando diagramas o entrevistando usuarios;
si comprenden el proceso de toma de decisiones, el trabajo será más sencillo. Asimismo, Marathon
está interesada en integrar el comercio electrónico en todas las actividades comerciales.
Necesitamos alguien que por lo menos tenga una noción de la importancia estratégica de la Web.
El diseño de páginas es una parte muy pequeña de ello”.

Ginger interviene de nuevo con una dosis saludable de sentido práctico y dice: “Dejemos eso a la
administración. Yo sigo pensando que el nuevo miembro debe ser un buen programador”. Después
delibera en voz alta: “Me pregunto, ¿qué tan importante será el UML?”.

Después de escuchar pacientemente la lista de deseos de todos los demás, Carl Siem, uno de los
analistas en jefe habla bromeando: “¡Mejor deberíamos averiguar si Supermán está disponible!”.
Mientras todos en el grupo comparten risas, Al ve una oportunidad de intentar consenso y dice: “Ya
escuchamos varias cualidades. Ahora hagamos, cada uno de nosotros, una lista de las cualidades
que personalmente creemos deba poseer la nueva persona encargada del desarrollo de comercio
electrónico. Compartiremos las listas y seguiremos discutiendo hasta que podamos describir a la
persona con el detalle suficiente como para enviar la descripción al grupo de recursos humanos para
que la procesen.”
¿Qué cualidades debería estar buscando el equipo al contratar al nuevo miembro del equipo de
desarrollo de comercio electrónico?

El nuevo miembro de equipo tiene que tener conocimientos en el diseño de páginas web, tiene que
ser muy sociable con todo tipo de personas y debe ser un buen programador.

Debe tener experiencia en lo que es el comercio electrectronico o tener conocimiento de que se


trata esta área.

¿Es más importante conocer lenguajes específicos o tener la aptitud de aprender a usar lenguajes
y paquetes de software con rapidez?

Como equipo pensamos que es mejor tener la aptitud para aprender a usar lenguajes, pero no este
también debe tener una idea de cómo se trabajan estos lenguajes o conocer un poco de ellos.

¿Qué tan importante es que la persona a contratar tenga ciertos conocimientos básicos de
negocios?

Como el proyecto va orientado a eso pensamos que si ya tiene conocimientos de negocios tendrá
una mejor idea de cómo debe trabajarse y pensar en la forma más adecuada de resolver los
problemas que se presenten.

¿Deben todos los miembros del equipo poseer competencias y habilidades idénticas?

No necesariamente, pero si deben tener conocimiento s y habilidades parecidas ya que estos


tendrán que realizar o trabajar en un mismo proyecto y convivirán juntos por mucho tiempo.

¿Qué rasgos de personalidad o carácter son deseables en un analista de sistemas que trabaje en
el desarrollo de comercio electrónico?

tienen que tener una muy buena actitud, deben de ser muy responsables, honestos y sobre todo
muy muy tolerantes a la hora de trabajar en equipo.
Estudiante: KEVIN ALEXANDER RODRIGUEZ GONZALEZ
Código: U20160780

¿Qué cualidades debería tener un analista de


sistemas?

Facilidad para aseguran la efectividad de la operación mediante el


establecimiento de especificaciones; dirigiendo al equipo u orientarlo
proporcionando ayuda.
El analista de sistemas es un solucionador de problemas. Es una persona que
aborda como un reto el análisis de problemas y que disfruta al diseñar
soluciones factibles.

Lograr el trabajo requerido cumpliendo con todas las necesidades de la


empresa.

El analista también debe ser un comunicador con capacidad para relacionarse


con los demás durante extensos periodos. Necesita suficiente experiencia
en computación para programar, entender las capacidades de las computaras,
recabar los requisitos de información de los usuarios y comunicarlos a los a
programadores

Líder de Proyecto Se encarga de establecer las condiciones de trabajo. Tiene


la función de dirigir y asignar recursos, coordina las interacciones con los
usuarios, define la organización del proyecto, entre otras responsabilidades.
Mentor Conoce todas las prácticas involucradas y entiende el porqué de la
misma. Acompaña y apoya a los equipos de trabajo mediante revisiones, tiene
la capacidad de aclarar cualquier duda, así como también contribuye a que la
calidad se mantenga durante el desarrollo del sistema.

Debe ser entusiasta con respecto a las nuevas tecnologías y como aplicarlas,
debe tener conocimiento y ser confiable, con buen historial de satisfacción al
cliente.
Alumna: Cindy Lisseth Molina Sorto U20160244
Carrera: Ingeniería en Sistema

PERFIL DEL ANALISTA DE SISTEMAS EXPERTO

Mis habilidades son:


Conozco el funcionamiento las computadoras.
Tengo conocimiento de los diferentes sistemas operativos.
Tengo conocimientos previos comunes del software y del
hardware.
Conocer detalladamente los componentes de un computador.
Habilidades de dialogar con las personas para resolver problemas
pequeños de su computador.
Habilidades de comunicación escritas y orales.
Habilidades de liderazgo.

Você também pode gostar