2009-03-11 15 views
13

Qué técnica (s) de diagramación usa durante la programación para ayudarlo u otras personas entienden su programa o diseño. Estoy sin hablar de herramienta favorita de una persona, aunque una buena herramienta probable ayuda a una persona enormemente con diagramación.¿Qué técnicas de diagramación (no herramientas) usa durante su programación?

Mi intención en esta pregunta es encontrar técnicas de diagramación útiles simples personas realmente usan y encuentran otras nuevas para aprender.

¿Utiliza diagramas de flujo, diagramas de flujo de datos, diagramas ER, etc.?

¡La web está llena de recomendaciones! Pero, ¿qué es lo que realmente usan los programadores, diseñadores reales, y los mantenedores de código en su trabajo diario?

Gracias por su colaboración

Respuesta

17
  • nivel muy alto Discusión - Diagramas contexto en el que las cajas podrían representar clases, paquetes, o subsistemas.
  • Diseño de alto nivel: diagramas de secuencia que muestran la interfaz entre subsistemas, todavía no hay clases directamente utilizadas, pero pueden estar implícitas de esto.
  • Diseño detallado - Diagramas de secuencia que están en el nivel de clase.

Si hay un algoritmo complicado para algo como la correlación de múltiples flujos de datos en una nueva secuencia, generalmente usaré un diagrama de flujo para calcular el algoritmo.

Si la solución requiere conocimiento de estado, también se utiliza un diagrama de estado.

Esos son los que más uso.

Al hacer el diseño de Data Warehouse, dibujo Star Schemas para averiguar cómo almacenar los datos. Al hacer un diseño de base de datos transaccional utilizo diagramas de relación de entidad para trabajar nuestro almacenamiento de datos.

Al diseñar una interfaz de usuario, simplemente la esbozo. Una vez que comience a trabajar en algunas partes de la interfaz de usuario y quiera jugar con algunas áreas, haré una plantilla, imprimiré copias y luego la usaré como guía para trabajar en subsecciones. Para esquemas de color, puede ser útil hacer un gráfico usando el gimp y tener capas para cada pieza del diseño y luego jugar con las capas que colorean cada una para encontrar el equilibrio correcto.

+0

La respuesta más útil, ojalá hubieras obtenido más votos ascendentes. –

1

que tienen un Flow chart del producto principal que trabajo y desarrollarse.

Mi equipo también utiliza a menudo bocetos de UML diagram en pizarras blancas mientras diseña piezas nuevas para que las implementemos. Son muy útiles para crear patrones de diseño y modelar la estructura de alto nivel de las clases que se necesitarán. Estos son nunca UML completo ...

12

¿Qué es lo que realmente usamos? Tal vez otras personas realmente crean diagramas formales, pero en su mayor parte solo garabateo burbujas, cajas y líneas en una hoja de papel.

+1

+1 para "lo que funcione". – Abizern

+0

Creo que el bolígrafo y el papel antiguos nunca desaparecerán de mi caja de herramientas, sin importar de qué salgan ... –

6

Uso una pizarra para modelar, así que supongo que el "lenguaje de modelado de la pizarra" sería mi respuesta.

+0

+1 para WML. Mi ruta preferida también. – RSolberg

+0

Esa es una herramienta: OP deseaba saber qué tipo de diagramas usa. –

+0

@DJ, "lenguaje de modelado de pizarra" está ahí en mi respuesta. ¿Echaste de menos eso? –

3

Haré un diagrama de clase UML para todo lo que estoy diseñando que sea más grande que un par de clases. Al dibujar un diagrama de clases, me tomo un tiempo para pensar en el diseño en lugar de arar directamente en el código y siempre produce un mejor resultado.

Para arquitecturas más grandes y más complicadas, encuentro que los diagramas de secuencia son una buena forma de comunicar el comportamiento, especialmente para sistemas de subprocesos múltiples.

0

Uso lo que sea necesario para la comunicación. Usualmente eso no es nada en absoluto. A veces es una pizarra.

De vez en cuando, yo uso Sparx Enterprise Architect, que es una herramienta demodelado UML, aunque se produce diagams decente mientras que es en ella. Lo he usado para requisitos, caso de uso, actividad, secuencia, dominio e incluso modelado de clases, y algunas veces algunos diagramas ER de ingeniería inversa. Lo que sea necesario para transmitir el mensaje.

2

Uso diagramas como una forma de entender rápidamente el código heredado. Se necesita algo de trabajo para crear el diagrama, pero siempre paga al final.

Normalmente utilizo diagramas de clases para obtener una visión general. A veces diagramas de secuencia e incluso diagrama de flujo de datos si una pieza de código es extremadamente difícil de entender.

En la fase de diseño utilizo diagramas de clase, y a menudo los diagramas de estado. Los diagramas de estado son perfectos si el comportamiento de clase difiere con su estado.

1

Pizarra para las discusiones.

Lápiz y papel para un registro temporal menor.

Trozos de código para 'Things to impelement'.

código probado y de trabajo (con extensos comentarios) para la posteridad.

+0

Me gustó el orden y el proceso, ¡Gracias! Quiero código probado y de trabajo para la posteridad –

2

Uso Sequence Diagrams mucho (dibujado en papel). Encuentro que me brindan una buena representación visual del flujo lógico de llamadas de método e información entre varios sistemas y componentes en nuestras aplicaciones.

1

Uso los diagramas ER y de clase en papel y pizarra para cualquier proyecto que sea más grande que un script de shell.

Diagramas de flujo, solo cuando necesito explicar un proceso a un no programador (o si es un proceso realmente complicado y necesito entenderlo primero).

Mi antiguo jefe solía decir "al tipo le encanta dibujar cosas".

1

Dibujo versiones bastardizadas de clase UML, diagramas de objeto y secuencia. Mientras trato de ser fiel a la sintaxis, estoy mucho más preocupado por expresar la idea principal detrás de una característica particular. Por lo tanto, redactaré algo, le pediré a un compañero que eche un vistazo y, si parece lo suficientemente claro, podríamos escanearlo y publicarlo en nuestra Wiki.

Entonces, cuando se da la circunstancia de que de que tengamos un poco de tiempo para trabajar en la documentación (y que es casi nunca ), voy a utilizar BOUML y volver a dibujar los garabatos en un diagrama adecuado.

Ahora, ponerlo todo en contexto, estoy trabajando en un equipo relativamente pequeño (5 desarrolladores), haciendo plataformas de negociación y configuración de productos en Java. Tenemos nuestros dos productos que luego personalizamos a pedido del cliente. Al ser una comunidad unida, con un cambio bajo (cero) durante algunos años, utilizamos la documentación principalmente como un remanente de nosotros mismos. Y en esta configuración, el enfoque anterior funciona bastante bien.

1

Trabajo en un entorno de desarrollo AJAX, y la mayor parte del código de back-end que escribo funciona como un conducto entre una base de datos relacional y el interfaz javascript (interfaz de usuario). Entonces, el 'diagrama' más usado por decir que uso son los objetos JSON para describir cómo los datos deben pasarse entre la base de datos y la interfaz. Son estructuras de datos simples, universales y fáciles de entender.

Ejemplo:

{ "id": fila [ 'id'], "name": fila [ 'nombre'], "obligatoria": fila [ 'obligatorio'], "rangeDescription": "Este es el rango", "globalRate": fila [ 'global']}

1

Me gustan los diagramas de flujo de datos. Mucho.

+0

Ben, ¿Qué te gusta de los DFD? –

+1

Su simplicidad. Cualquiera puede ver lo que sucede con un DFD, incluso si no están familiarizados con la notación. Fomentan un desglose jerárquico de los flujos de datos y los procesos en un sistema, fomentan la encapsulación, etc. Se pueden usar de manera efectiva tanto en el diseño de sistemas nuevos como en la documentación de los existentes. Mucho de lo que hacemos es simplemente mover datos y realizar transformaciones en él. Los DFD son una forma ideal de describir esto en un nivel alto. –

Cuestiones relacionadas