En la clase aprendemos sobre varios métodos de desarrollo de software. En lo que nos centramos y en lo que desarrollamos nuestro proyecto fue en el método de cascada.
Probablemente aprendió el modelo clásico de Waterfall, que la persona atribuida al introducirlo en el mundo del desarrollo de software declaró desde el principio que no era apropiado para desarrollar sistemas de software a gran escala. Probablemente le interese leer el documento de Winston Royce titulado Gestión del desarrollo de sistemas de software grandes para obtener más información sobre los problemas con lo que mucha gente considera el modelo de la cascada.
Sin embargo, el modelo Waterfall es bueno para enseñar el ciclo de vida del desarrollo de software a medida que avanza y puede pasar tiempo aprendiendo y realizando ingeniería de requisitos, diseño arquitectónico, diseño detallado, implementación, prueba y mantenimiento en fases muy claras y distintas.
En nuestros diagramas de clases, tuvimos que enumerar TODAS las propiedades y métodos, incluidos los privados. He leído algunos libros, a saber, Clean Code, que dicen mantener las funciones lo más cortas y enfocadas posible. Parece tedioso enumerar cada pequeña función en nuestros diagramas si no ayudan a otros desarrolladores (son privados, nadie más los usará). Además, es posible que no piense en cada pequeña función al diseñar el programa, pueden aparecer al refactorizar.
Todos estos son puntos muy válidos.
Enumerar todas las propiedades y métodos durante la fase de diseño, incluso cuando se utiliza Waterfall, probablemente sea exagerado. Definitivamente debe enumerar todo lo que es público, junto con las propiedades esenciales. En realidad, todo lo demás es un detalle de implementación que puede obtener mediante ingeniería inversa de su implementación en diagramas.
El consejo de Clean Code (nunca lo he leído, solo sigo lo que publicaste) parece ser justo y aplicable incluso cuando utilizo la metodología Waterfall. Puede diseñar sus clases y métodos con respecto al Principio de responsabilidad única , la separación de preocupaciones y otros principios de SOLID . Waterfall no te dice cómo diseñar, justo cuando necesitas hacerlo. Dicho esto, es más difícil por adelantado a medida que aprende y piensa en mejores formas de hacerlo durante la implementación.
Creo que esto señala el hecho de que debe haber una iteración entre el diseño y la implementación muy claramente, un problema que Waterfall tradicional no tiene en cuenta.