Metodologías de programación - Introducción
Cuando los programas se desarrollan para resolver problemas de la vida real como la gestión de inventarios, el procesamiento de nóminas, la admisión de estudiantes, el procesamiento de resultados de exámenes, etc., tienden a ser enormes y complejos. El enfoque para analizar problemas tan complejos, planificar el desarrollo de software y controlar el proceso de desarrollo se denominaprogramming methodology.
Tipos de metodologías de programación
Hay muchos tipos de metodologías de programación que prevalecen entre los desarrolladores de software:
Programación procedimental
El problema se divide en procedimientos o bloques de código que realizan una tarea cada uno. Todos los procedimientos tomados en conjunto forman el programa completo. Es adecuado solo para programas pequeños que tienen un bajo nivel de complejidad.
Example- Para un programa de calculadora que hace suma, resta, multiplicación, división, raíz cuadrada y comparación, cada una de estas operaciones se puede desarrollar como procedimientos separados. En el programa principal, cada procedimiento se invoca según la elección del usuario.
Programación orientada a objetos
Aquí la solución gira en torno a entidades u objetos que forman parte del problema. La solución trata sobre cómo almacenar datos relacionados con las entidades, cómo se comportan las entidades y cómo interactúan entre sí para dar una solución cohesiva.
Example - Si tenemos que desarrollar un sistema de gestión de nóminas, tendremos entidades como empleados, estructura salarial, reglas de licencia, etc. en torno a las cuales se debe construir la solución.
Programación funcional
Aquí el problema, o la solución deseada, se divide en unidades funcionales. Cada unidad realiza su propia tarea y es autosuficiente. Luego, estas unidades se unen para formar la solución completa.
Example - Un procesamiento de nómina puede tener unidades funcionales como mantenimiento de datos de empleados, cálculo de salario básico, cálculo de salario bruto, procesamiento de licencias, procesamiento de reembolso de préstamos, etc.
Programación lógica
Aquí el problema se divide en unidades lógicas en lugar de unidades funcionales. Example:En un sistema de gestión escolar, los usuarios tienen roles muy definidos como profesor de clase, profesor de asignatura, asistente de laboratorio, coordinador, responsable académico, etc. Por lo que el software se puede dividir en unidades según los roles del usuario. Cada usuario puede tener diferentes interfaces, permisos, etc.
Los desarrolladores de software pueden elegir una o una combinación de más de una de estas metodologías para desarrollar un software. Tenga en cuenta que en cada una de las metodologías discutidas, el problema debe dividirse en unidades más pequeñas. Para hacer esto, los desarrolladores utilizan cualquiera de los siguientes dos enfoques:
- Enfoque de arriba hacia abajo
- Enfoque de abajo hacia arriba
Enfoque modular o de arriba hacia abajo
El problema se divide en unidades más pequeñas, que pueden dividirse aún más en unidades aún más pequeñas. Cada unidad se llamamodule. Cada módulo es una unidad autosuficiente que tiene todo lo necesario para realizar su tarea.
La siguiente ilustración muestra un ejemplo de cómo puede seguir un enfoque modular para crear diferentes módulos mientras desarrolla un programa de procesamiento de nómina.
Enfoque de abajo hacia arriba
En el enfoque ascendente, el diseño del sistema comienza con el nivel más bajo de componentes, que luego se interconectan para obtener componentes de nivel superior. Este proceso continúa hasta que se genera una jerarquía de todos los componentes del sistema. Sin embargo, en el escenario de la vida real es muy difícil conocer todos los componentes del nivel más bajo desde el principio. Por lo tanto, el enfoque de abajo hacia arriba se usa solo para problemas muy simples.
Veamos los componentes de un programa de calculadora.