2010-02-23 18 views
10

Duplicar posibles:
Is UML practical?¿Qué utilidad tiene UML?

que estoy haciendo UML en mi Universidad y yo no entiendo por qué hay que hacerlo. Parece un modelo para bases de datos OO, pero creo que puedo escribir Java sin UML.

Quiero saber las razones técnicas por las que UML se utiliza en el mundo profesional; por qué es importante No solo aprende porque el profesor lo dice.

+0

¿Ha preguntado _ el profesor? –

Respuesta

12

Puede escribir java bastante bien, pero UML es independiente del idioma. Cuando se trata de comunicar su diseño a sus colegas, necesita un "lenguaje" común. UML es la mejor manera, creo, para hacerlo.

Estoy ahora preparándome para una reunión con un colega para discutir el diseño de API dado algunos escenarios que se le han ocurrido. Un par de diagramas de secuencia muestran inequívocamente cómo estamos proponiendo acomodar sus necesidades. Él no necesita ser un programador de Java para entender el diseño.

+4

Creo que entiendo lo que quieres decir. Es como un powerpoint para programadores si permite la comparación, ¿verdad? – loriser

+0

+1 para esa comparación :-) –

+0

No, es un lenguaje real para comunicarse. Estudié patrones de diseño (y algo de Java) en la universidad. Tan pronto como comencé mi primer trabajo (.NET) descubrí que tenía un lenguaje común con el que podía comunicarme con mis colegas. Sin poder dibujar UML y hablar en abstracciones de diseño OO (que realmente no se pueden describir eficientemente sin UML) no podría haber empezado tan rápido como lo hice. Es algo importante. – Joe

14

Nos parece que UML es útil como medio de intercambio, para dibujar para otras personas el aspecto que tendrá el diseño antes de encriptarlo o visualizar cómo es el código existente.

No estamos especialmente preocupados por nuestro UML que coincida con la especificación, tanto porque ninguno de nosotros está completamente seguro de qué bits más difíciles se supone que debemos utilizar y porque los diagramas generalmente no duran mucho. Yo diría que probablemente dibujemos más UML usando un lápiz que usando software.

Los usos prácticos incluyen tratar de determinar dónde encaja una nueva clase en una jerarquía existente, averiguar dónde están las cosas en la jerarquía para refactorizar las interfaces, dibujar posibles diseños para su discusión antes de comenzar nuevas funciones.

+0

¿Puedes explicar más? – loriser

+0

Muchas gracias a todos, ahora entiendo cuál era el significado. No programamos en grupos y entonces no entendí. Me gustan otras cosas como la especificación de la función, pero uml parecía inútil. – loriser

1

le da un diseño visual del proyecto

2

UML se puede utilizar para diferentes propósitos:

1) Antes de escribir código que (con su equipo) quieren llegar a un acuerdo sobre el componente (o incluso de proyectos) arquitectura para evitar malentendidos y es por eso que puede dibujar el diagrama de clase

2) desea crear un diagrama de casos de uso y colocarlo en un lugar que vea a menudo para recordar qué funciones principales debería realizar su aplicación (y en qué tareas que debe concentrarse más)

3) el diagrama de clases puede servir como una documentación de la macro-arquitectura de proyectos. Es vitalmente importante tener dicho diagrama de clases si desea invitar a nuevos desarrolladores a su proyecto.

1

Como programador, puede obtener un trabajo para construir un pequeño sitio web para una pequeña tienda. Puede ser muy simple. Es posible que no tenga documentos de diseño, ni UML, ni pruebas, y podría funcionar bien.

Pero puede obtener un trabajo para trabajar en sistemas de control de tráfico aéreo, o un sistema de frenos antibloqueo para un automóvil, o un sistema de comercio para uno de los bancos más grandes del mundo. En casos como este, no escribirá código usted mismo. Tendrá que convencer a muchas otras personas de que su código realmente va a hacer lo correcto, no solo a sus colegas, sino a los auditores independientes. Para ayudarlos a comprender el código rápidamente, querrán algunos diagramas.¿Qué podría ser mejor que una notación estándar para ayudarlos a obtener una imagen de su código? (¡Por supuesto, también necesitará su documentación de diseño y pruebas!)

3

Editado para añadir otro punto. UML se utiliza para el diseño, que es como crear un plan para su software. Una simple analogía será como diseñar y revisar el diagrama de la arquitectura de una casa/edificio antes de construirlo realmente. Actúa como un medio para comunicar, pensar y desafiar el diseño. Cuando se finaliza, se convierte en el modelo - punto de referencia para luego construir su software.


UML no se utiliza para el diseño de la base de datos OO. Se usa para modelar diferentes diseños del software. Por ejemplo, usará el Caso de uso para capturar la frontera del sistema o la interacción de actores/usuarios con el sistema. Este diseño ayuda a capturar los requisitos del usuario. Usas diagramas estáticos para modelar clase y su relación. Puede modelar la interacción usando el diagrama de secuencia y es extremadamente útil en mi humilde opinión.

Bien, ahora volviendo a responder su pregunta específica. Si está trabajando en un proyecto de asignación pequeña y de una sola persona, sí puede argumentar que el UML no va a agregar muchos valores. En la vida real, donde tiene un equipo más grande y diferentes roles (arquitecto, diseñador, BA, desarrollador, etc.) UML se utiliza para capturar y comunicar arquitectura, requisitos e información de diseño de manera uniforme y estándar. Por ejemplo, puedo diseñar un modelo bancario basado en información de requisitos y diagramas de casos de uso suministrados por el diseñador/BA y me transformaré en diseño técnico de diagrama de clases y capturaré su interacción y flujo de mensajes usando un diagrama de secuencia y lo pasaré a otros 4 miembros en mi equipo para implementar eso.

1

Tengo más de 10 años de experiencia en codificación, C/C++/C# en el sector financiero y ni una sola vez he usado UML.
Podría ser un reflejo de mis trabajos jaja, pero nunca lo he visto en uso tampoco. Los documentos de diseño tienden a basarse en descripciones escritas y/o guiones gráficos.
El quid parece ser que para cuando haya escrito un diagrama UML preciso y completo que se convertirá en código, también podría haber escrito el código.
Existe el argumento de que si usted necesita para transmitir un diseño para otros puede ser útil ... pero supongo que lo que se necesita saber:

  • ¿con qué frecuencia tiene que hacer este tipo de diseño (desde el principio, presumiblemente)? No hay muchos sistemas tan nuevos como para necesitar un diseño tan completo.
  • ¿la gente que le dices que realmente lo entienda tan bien como tú, que se ha tomado el tiempo para hacerlo? La gente de negocios es poco probable que lo haga.
  • ¿Diagramas de flujo/guiones gráficos/hablar será suficiente? En general, es mucho más intuitivo y llega a un público más amplio.
  • ¿Los empresarios querrán que comiences a implementarlo antes de poder completarlo debido a las necesidades de competencia/prototipo? ¿Te va a importar un diagrama tan formal si para el momento en que lo has hecho, los requisitos cambian tanto que tienes que rehacerlo?

    Supongo que si está escribiendo software real, por ejemplo, sistemas de control de aeronaves, tiene que ser un diseño de roca, pero no sé si este es el método.
0

Como desarrollador, apenas tendrá que hacer esquemas uml, pero tendrá que leer muchos de ellos.

Clase diagrama es genial, pero siempre desactualizado, por lo que no es realmente importante.

Por otro lado, una especificación sin el uso caso y diagrama de actividad es mucho más difícil de leer y traducir a código.

1

Una de las ventajas que encontré con UML es que ayuda a uno a comunicar el diseño y la intención de una manera independiente de la plataforma.

Digamos que está escribiendo un código utilizando métodos API proporcionados por otro equipo. Si tiene un diagrama UML (diagrama de clases) de las clases API y si se siguen las convenciones de nomenclatura adecuadas, entonces puede averiguar fácilmente cuáles son todos los métodos API que puede esperar que estén disponibles para una clase en particular. Por ejemplo, si el diagrama de clases indica que la relación entre dos clases es la agregación y la cardinalidad es 1 .. *, puede suponer razonablemente que la clase contenedora podría proporcionar un iterador para acceder a los elementos constituyentes. En el presente caso, el desarrollador que utiliza las clases API puede obtener una visión general de alto nivel de las clases API rápidamente en comparación con pasar por la documentación API y descubrir los métodos que quiere usar.

3

No cometa el error de pensar que UML es solo un diagrama de clase. diagramas de casos de uso son un puente de comunicación entre los desarrolladores y administradores, los diagramas de secuencia permite que el algoritmo exacto para describir visualmente, etc.

Usando estos juntos, UML hace dos cosas:

  1. Como alguien escribiendo una aplicación le obliga a mapear cómo encaja su software antes de comienza a producir el código
  2. Como alguien que se une como equipo, puede permitirle obtener una visión general de la base de códigos más rápidamente que rastrear todo el código.
+0

Ya veo. Me gusta el punto 2. – loriser