Digamos que recibí las especificaciones para un proyecto de un cliente, y ahora es el momento de comenzar a desarrollarlo. Normalmente, empiezo con el primer módulo (generalmente registro de usuario) y luego paso de un módulo al siguiente. Solo planifico en mi cabeza justo antes de comenzar un módulo cómo va a funcionar, pero no hay planificación antes de eso.
Sin embargo, creo que sería mejor si revisara las especificaciones y planificara cómo funcionaría el sistema antes de codificarlo, por ejemplo, cuáles son los componentes principales, cómo van a interactuar, etc. Solo estoy No estoy seguro exactamente qué debo planear.
Para dar una mejor idea de lo que estoy pidiendo, ¿cómo debería:
a) Divida el proyecto en componentes,
b) Planifique sus interacciones, por ejemplo, ¿debería hacer diagramas de clase, escribir pruebas unitarias, etc.?
¿Algunas ideas?
fuente
Respuestas:
Cuando tiene el privilegio de comenzar un nuevo proyecto, tiene un lienzo en blanco, que es emocionante y desalentador al mismo tiempo. Trabajo en iteraciones, y así es como divido el trabajo:
Esencialmente, este enfoque de definir progresivamente un proyecto desde un nivel muy alto hasta un diseño más detallado me ha sido útil. Incluso las interacciones entre subsistemas se refinan a medida que intenta implementarlas. Eso es bueno.
fuente
Correcto. Buena idea.
Bueno. Haz más de eso.
Excelente.
Correcto.
¿Cómo puede no estar seguro cuando ya ha enumerado un montón de cosas? Si esas son las cosas que te preocupan, ¿por qué no solo enfocarte en esas cosas?
Lea sobre el modelo de vista 4 + 1: http://en.wikipedia.org/wiki/4%2B1_Architectural_View_Model
Lea sobre el marco de Zachman: http://en.wikipedia.org/wiki/Zachman_Framework
Eso es lo que necesitas planear.
Utilice patrones de diseño ampliamente adoptados para otros proyectos similares.
En caso de duda, lea los planos J2EE para obtener ideas.
http://www.oracle.com/technetwork/java/javaee/blueprints/index.html
Si. Buenas ideas, todas.
fuente
Lo más importante que debe hacer: revisar las especificaciones, interactuar con el cliente para obtener especificaciones más refinadas.
Los requisitos son indudablemente incompletos, vagos o incorrectos. La mayor pérdida de tiempo es hacer lo incorrecto. Los clientes no son ingenieros de software profesionales, y no se puede esperar que sean buenos para desarrollar un buen conjunto de requisitos.
Por lo tanto, debe revisar las especificaciones, entrevistar al cliente y averiguar si esto es lo que realmente necesita y desea, y puede pagar, etc.
Desarrolle casos de prueba / uso y revise con el cliente. Si un requisito no es comprobable, deséchelo.
Desarrolle el diseño y asegúrese de que si todas las piezas funcionan correctamente, en teoría haría lo que necesita.
Desarrolle un prototipo de arquitectura que pruebe toda la tecnología que se utilizará en cada capa pero ignore la funcionalidad. Está probando la arquitectura, no la especificación funcional. Tener la arquitectura incorrecta significará que debe reescribir todo, por lo que es importante obtener la arquitectura correcta. Asegúrese de que pueda cumplir con sus requisitos de velocidad, eficiencia, seguridad, etc.
fuente
Definitivamente desea tener algún diseño en su lugar antes de comenzar a codificar.
Una vez que tenga eso, generalmente prefiero hacer una fase de arquitectura inicial primero para definir cómo encajan las capas de su aplicación. Esto incluiría cosas principales como la seguridad y el registro.
Luego construyo 1 característica de arriba a abajo para que implementes algo completamente.
Entonces ve desde allí.
fuente
Todo
Planifique todo, es más fácil cambiarlo en papel que una vez que parte de él ya está codificado, obtendrá una excelente base para la documentación y muchos otros beneficios.
fuente