
División de Tareas #
El proceso de producción de un programa se concebía como un conjunto de tareas altamente especializadas en el cual estaba claramente definido el papel de cada profesional
Los Diseñadores #
Se especializan en la arquitectura del programa, el diseño conceptual y la estructura operacional fundamental de un sistema de computadora.
Es decir, el modelo y la descripción funcional de los requerimientos y las implementaciones del diseño para varias partes del programa.
El Analista #
Estudia un problema y lo describe con el propósito de buscar su solución.
El Programador #
Traslada las especificaciones del analista en código ejecutable por la computadora. Dichas especificaciones se recogen en un documento denominado “cuaderno de carga”.
Esta concepción ha ido evolucionando y este enfoque ya no resulta válido para organizar tareas de tipo intelectual como la producción de programas.
Las dificultades de comunicación entre analistas y programadores (un documento no bastaba para describir lo que se quería hacer) dieron origen a una categoría profesional intermedia, denominada ¨Analista Programador¨.
La concepción original del programador desaparece y se sustituye por la de un profesional mucho más formado, con funciones y tareas menos mecánicas.
La profesión de analista también ha evolucionado debido a los avances de la ingeniería del software, surgiendo el concepto de diseñador de programas.
Se reconoce que el análisis es una actividad distinta del diseño. El análisis describe el problema (qué hacer) mientras que el diseño describe la solución (cómo hacerlo).
Con el auge de las computadoras y la diversificación de funciones que se le requieren, la profesión de programador se ha convertido en una especialización de alta calificación.
Hoy en día, un programador debe tener profundos conocimientos que incluyen matemática, electrónica, algorítmica, ingeniería de software, teoría de la computación, interacción persona-ordenador, etc.
Si bien la profesión de programador no cuenta con especialidades en los niveles académicos, podría decirse que las diversas ramas que existen se fueron dando a partir de las ofertas de empleo del mercado laboral.
Factores de Calidad #
Lo más importante es que el programador debe ante todo perseguir la obtención de programas de calidad. Para ello se establecen una serie de factores que determinan la calidad de un programa.
Corrección #
Un programa es correcto si hace lo que debe hacer tal y como se estableció en las fases previas a su desarrollo.
Para determinar si un programa hace lo que debe, es muy importante especificar claramente qué debe hacer el programa antes de desarrollarlo y una vez acabado, compararlo con lo que realmente hace.
Claridad #
Es muy importante que el programa sea lo más claro y legible posible para facilitar así su desarrollo y posterior mantenimiento. Al elaborar un programa debe intentarse que su estructura sea sencilla y coherente, así como cuidar el estilo en la edición.
De esta forma se ve facilitado el trabajo del programador, tanto en la fase de creación como en las posteriores de corrección de errores, ampliaciones o modificaciones.
Estas fases pueden ser realizadas por otro programador, así que la claridad es necesaria para que pueda continuar el trabajo fácilmente.
Eficiencia #
El programa, además de realizar aquello para lo que fue creado, lo haga gestionando de la mejor forma posible los recursos que utiliza.
Normalmente, al hablar de eficiencia de un programa se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido creado y a la cantidad de memoria que necesita.
Sin embargo, hay otros recursos que también pueden ser de consideración para evaluar la eficiencia de un programa, dependiendo de su naturaleza (espacio en disco que utiliza o tráfico de red que genera).
Portabilidad #
Un programa es portable cuando tiene la capacidad de ejecutarse en una plataforma, ya sea hardware o software, diferente de aquella en la que se elaboró.
Por ejemplo, permite a un programa que se ha desarrollado en sistemas GNU/Linux ejecutarse también en la familia de sistemas operativos Windows.
Esto hace que el programa pueda llegar a una mayor cantidad de usuarios más fácilmente.
En síntesis, el programador tiene como función especificar de manera precisa sobre qué datos debe operar una computadora, cómo deben ser almacenados, transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias.