Contenido Checked

Programación de ordenadores

Temas relacionados: Programas de computadoras

Antecedentes de las escuelas de Wikipedia

Esta selección se hace para las escuelas por caridad para niños leer más . Antes de decidir sobre el patrocinio de un niño, ¿por qué no aprender sobre diferentes obras de caridad de patrocinio primero ?

Programación de ordenadores (a menudo abreviado como la programación o codificación), a veces se considera una rama de las matemáticas aplicadas , es el proceso de la escritura, pruebas, depuración / solución de problemas y el mantenimiento de la código fuente de programas de ordenador. Este código fuente está escrito en un lenguaje de programación . El código puede ser una modificación de una fuente existente o algo completamente nuevo. El propósito de la programación es crear un programa que exhibe un cierto comportamiento deseado (personalización). El proceso de escribir código fuente requiere experiencia en muchos temas diferentes, incluido el conocimiento del dominio de aplicación, especializados algoritmos y lógica formal .

Proceso de desarrollo de software
Codificación Shots Plan Anual de alta resolución-5.jpg
La desarrollador de software en el trabajo
Actividades y medidas
  • Requerimientos
  • Especificación
  • Arquitectura
  • Construcción
  • Diseño
  • Pruebas
  • Depuración
  • Despliegue
  • Mantenimiento
Metodologías
  • Cascada
  • Modelo de Prototipo
  • Incremental
  • Iterativo
  • V-Modelo
  • Espiral
  • Melé
  • Habitación Límpia
  • RAD
  • DSDM
  • RUP
  • XP
  • Ágil
  • Magro
  • Dual Vee Modelo
  • TDD
  • FDD
Apoyando disciplinas
  • Gestión de la configuración
  • Documentación
  • La garantía de calidad (SQA)
  • Gestión de proyectos
  • Diseño de la experiencia del usuario
Instrumentos
  • Compilador
  • Depurador
  • Profiler
  • Diseñador de interfaz gráfica de usuario
  • IDE
  • Automatización de la construcción

Dentro ingeniería de software, la programación (la implementación) es considerada como una de las fases en un proceso de desarrollo de software.

Hay un debate en curso sobre el grado en que la redacción de los programas es un arte, un oficio o una disciplina de ingeniería. Una buena programación se considera generalmente que es la aplicación de medición de los tres, con el objetivo de producir una solución de software eficiente y mantenible (los criterios para "eficiente" y "mantenible" varían considerablemente). La disciplina es diferente de muchas otras profesiones técnicas en que los programadores en general no necesitan tener una licencia o pasan las pruebas de certificación normalizados (o gubernamental regulados) con el fin de llamar a sí mismos "programadores" o incluso "los ingenieros de software".

Otro debate es el grado en que el lenguaje de programación utilizado en programas de escritura afecta a la forma en que el programa final toma. Este debate es análoga a la que rodea el Hipótesis de Sapir-Whorf en la lingüística , que postula que la naturaleza de un idioma en particular influye en el pensamiento habitual de sus hablantes. Diferentes patrones de lenguaje producen diferentes patrones de pensamiento. Esta idea se opone a la posibilidad de representar el mundo perfectamente con el lenguaje, porque reconoce que los mecanismos de cualquier idioma condicionan los pensamientos de su comunidad hablante.

Programadores

Los programadores de computadoras son los que escriben los programas informáticos. Su trabajo implica generalmente:

  • El análisis de requerimientos
  • Especificación
  • Arquitectura de software
  • Codificación
  • Compilación
  • Las pruebas de software
  • Documentación
  • Integración
  • Mantenimiento

Lenguajes de programación

Diferentes lenguajes de programación soportan diferentes estilos de programación (llamados paradigmas de programación). La elección del lenguaje utilizado está sujeto a muchas consideraciones, como la política de la empresa, la adecuación a la tarea, la disponibilidad de paquetes de terceros, o preferencia individual. Idealmente, se seleccionará el lenguaje de programación más adecuado para la tarea en cuestión. Las compensaciones de este ideal implican encontrar suficientes programadores que conocen el lenguaje para construir un equipo, la disponibilidad de compiladores para que el lenguaje y la eficiencia con la que los programas escritos en un idioma determinado ejecutar.

Allen Downey, en su libro Cómo Pensar como un Informático, escribe:

Los detalles se ven diferentes en diferentes idiomas, pero algunas instrucciones básicas aparecen en casi todos los idiomas: entrada: Obtener datos desde el teclado, un archivo, o algún otro dispositivo de salida:. Datos de visualización en la pantalla o enviar datos a un archivo o otro dispositivo de matemáticas:. Realizar operaciones matemáticas básicas como suma y la multiplicación ejecución condicional:.. Compruebe si ciertas condiciones y ejecutar la secuencia de instrucciones apropiada repetición: realizar alguna acción en varias ocasiones, por lo general con alguna variación.

Muchos lenguajes de programación proporcionan un mecanismo para llamar a funciones que proporcionan las bibliotecas. Siempre que las funciones de una biblioteca siguen las convenciones tiempo de ejecución adecuados (por ejemplo, el método de pasar argumentos), estas funciones pueden ser escritos en cualquier otro idioma.

Historia de la programación

Placa de conexión con cable para un IBM Machine Contabilidad 402.

La primera programable máquina (que es una máquina cuyo comportamiento puede ser controlado por los cambios a un "programa") fue Programable de Al-Yazari robot humanoide en 1206. Al-Yazari de robot fue originalmente una embarcación con cuatro músicos automáticos que flotaban en un lago para entretener a los invitados en las fiestas de beber reales. Su mecanismo tenía una caja de ritmos programable con clavijas ( levas) que choque con poco palancas que operan el percusión. El baterista se podría hacer para jugar diferentes ritmos y diferentes patrones de batería moviendo las clavijas a diferentes lugares.

La Jacquard Telar, desarrollado en 1801, es citado a menudo como fuente de de la técnica anterior. La máquina utiliza una serie de tarjetas de cartón con agujeros en ellos. El patrón de agujeros representó el patrón que el telar tenía que seguir en el tejido de telas. El telar podría producir enteramente diferentes tejidos utilizando diferentes conjuntos de tarjetas. El uso de tarjetas perforadas también fue adoptado por Charles Babbage en 1830, para controlar su Máquina Analítica.

Esta innovación fue posteriormente refinada por Herman Hollerith quien, en 1896 fundó la Empresa Tabuladora (que se convirtió en IBM ). Inventó el Hollerith tarjeta perforada, la lector de tarjetas, y la máquina perforadora clave. Estas invenciones fueron la base de la moderna industria de procesamiento de la información. La adición de una enchufe a bordo para su 1906 Tipo I Tabulador le permitió hacer diferentes trabajos sin tener que ser reconstruido (el primer paso hacia la programación). A finales de la década de 1940 había una gran variedad de máquinas programables plug-tablero, llamado equipos de registro de la unidad, para realizar tareas de procesamiento de datos (lectura de tarjetas). Las primeras computadoras también se programaron el uso de plug-boards.

Una caja de tarjetas perforadas con varias cubiertas programa.

La invención de la Von Neumann arquitectura permitido que los programas informáticos que se almacenan en memoria de la computadora. Los primeros programas tuvieron que ser elaborado cuidadosamente siguiendo las instrucciones de la máquina en particular, a menudo en binario notación. Cada modelo de ordenador sería probable que necesite diferentes instrucciones para realizar la misma tarea. Más tarde lenguajes ensambladores fueron desarrollados que dejar que el programador especifique cada instrucción en un formato de texto, entrando abreviaturas para cada código de operación en lugar de un número y direcciones de especificar, en forma simbólica (por ejemplo ADD X, en total). En 1954 Fortran, el primer lenguaje de programación de alto nivel, se inventó. Esto permitió a los programadores especificar cálculos mediante la introducción de una fórmula directamente (por ejemplo, Y = X * 2 + 5 * X + 9). El texto del programa, o la fuente, se convierten en instrucciones de máquina utilizando un programa especial llamado compilador. Muchos otros idiomas fueron desarrollados, incluyendo las de la programación comercial, como COBOL. Programas eran en su mayoría aún introducirse utilizando tarjetas perforadas o cinta de papel. (Ver la programación de computadoras en la era de tarjetas perforadas). A finales de 1960, dispositivos de almacenamiento de datos y terminales de ordenador se volvieron lo suficientemente barato para que los programas se podrían crear escribiendo directamente en los ordenadores. Editores de texto fueron desarrollados que permiten cambios y correcciones a realizar mucho más fácilmente que con tarjetas perforadas.

Con el tiempo ha progresado, las computadoras se han dado pasos de gigante en el área de la potencia de procesamiento. Esto ha llevado a los lenguajes de programación más nuevos que son más abstraído del hardware subyacente. Aunque estos lenguajes más abstractos requieren adicional gastos generales, en la mayoría de los casos, el enorme aumento de la velocidad de las computadoras modernas ha provocado poca disminución de rendimiento en comparación con homólogos anteriores. Los beneficios de estos lenguajes más abstractos es que permiten tanto una curva de aprendizaje más fácil para las personas menos familiarizadas con los lenguajes de programación de bajo nivel de mayor edad, y que también permiten a un programador más experimentado para desarrollar aplicaciones sencillas rápidamente. A pesar de estos beneficios, los grandes programas complicados, y los programas que son más dependientes de la velocidad aún requieren los idiomas más rápido y relativamente de bajo nivel con el hardware actual. (Los mismos se expresaron preocupaciones acerca del lenguaje Fortran original).

A lo largo de la segunda mitad del siglo XX, la programación era una carrera atractiva en los países más desarrollados. Algunas formas de programación han sido cada vez más sujetos a subcontratación en el extranjero (importación de software y servicios de otros países, por lo general con un salario inferior), la toma de decisiones de carrera de programación en los países desarrollados más complicados, mientras que el aumento de las oportunidades económicas en las zonas menos desarrolladas. No está claro hasta qué punto continuará esta tendencia y lo profundamente que tendrá un impacto en los salarios y las oportunidades de programador.

Programación moderna

Los requisitos de calidad

Cualquiera que sea el enfoque del desarrollo de software puede ser, el programa final debe satisfacer algunas propiedades fundamentales. Los siguientes cinco propiedades se encuentran entre los más relevantes:

  • Eficiencia: la cantidad de recursos del sistema un programa consume (tiempo de procesador, espacio de memoria, dispositivos lentos, ancho de banda de red y hasta cierto punto incluso de interacción del usuario), mientras menos, mejor.
  • Fiabilidad: la frecuencia con los resultados de un programa son correctos. Esto depende de la prevención de propagación de errores resultantes de la conversión de datos y la prevención de los errores resultantes de los desbordamientos de búfer, subdesbordamientos y división por cero.
  • Robustez: la eficacia de un programa prevé situaciones de conflicto de tipo y otras incompatibilidades que dan lugar a errores de tiempo de ejecución y se detiene el programa. La atención se centra principalmente en la interacción con el usuario y el manejo de excepciones.
  • Usabilidad: la clearity y intuitividad de una salida de los programas pueden hacer o romper su éxito. Esto implica una amplia gama de elementos textuales y gráficos que hace un programa fácil y cómodo de usar.
  • Portabilidad: la gama de plataformas de hardware y del sistema operativo en el que el código fuente de un programa se puede compilar y ejecutar. Esto depende principalmente de la variedad de compiladores específicos de la plataforma para el lenguaje del código fuente en lugar de todo lo que tenga que ver con el programa directamente.

Complejidad algorítmica

El ámbito académico y la práctica de la ingeniería de la programación de computadoras son tanto en gran medida de que se trate con el descubrimiento y la aplicación de las más eficientes algoritmos para una determinada clase de problema. Para este propósito, los algoritmos se clasifican en órdenes utilizando llamada Notación Big O, O (n), que expresa la utilización de recursos, tales como el tiempo de ejecución o consumo de memoria, en términos del tamaño de una entrada. Programadores expertos están familiarizados con una variedad de algoritmos bien establecidos y sus respectivas complejidades y utilizar este conocimiento para elegir algoritmos que mejor se adapten a las circunstancias.

Metodologías

El primer paso en la mayoría de los proyectos de desarrollo de software formal es el análisis de requerimientos, seguido por el modelado, implementación, y la eliminación fracaso ( depuración). Existen muchos enfoques diferentes para cada una de esas tareas. Un enfoque popular para análisis de requisitos es Utilice el análisis de casos.

Técnicas de modelado populares incluyen Análisis Orientado a Objetos y Diseño ( OOAD) y Model-Driven Architecture ( MDA). El Lenguaje de Modelado Unificado ( UML) es una notación utilizada tanto para OOAD y MDA.

Una técnica similar utilizado para el diseño de base de datos es la Entidad-Relación Modeling ( ER Modeling).

Técnicas de implementación incluyen lenguajes imperativos ( orientado a objetos o procedimental), lenguajes funcionales, y lenguajes lógicos.

La depuración se realiza con mayor frecuencia con IDEs como Estudio Visual, NetBeans, y Eclipse. Depuradores separadas como gdb también se utilizan.

El uso del lenguaje de medición

Es muy difícil determinar cuáles son los más populares de los lenguajes de programación modernos. Algunas lenguas son muy populares para determinados tipos de aplicaciones (por ejemplo, COBOL sigue siendo fuerte en el centro de datos corporativo, a menudo en gran mainframes, FORTRAN en aplicaciones de ingeniería, y C en aplicaciones integradas), mientras que algunos idiomas se utilizan regularmente para escribir muchos tipos diferentes de aplicaciones.

Los métodos para medir su popularidad lenguaje incluyen: contar el número de ofertas de empleo que mencionan el idioma, el número de libros que enseñan el idioma que se venden (esto sobreestima la importancia de las nuevas lenguas), y las estimaciones del número de líneas existentes de código escritas en el idioma (esto subestima el número de usuarios de idiomas de negocios tales como COBOL).

Depuración

La depuración es una tarea muy importante en el proceso de desarrollo de software, ya que un programa erróneo puede tener consecuencias importantes para sus usuarios. Algunos idiomas son más propensos a algunos tipos de fallos debido a que su especificación no requiere compiladores para llevar a cabo tanto la comprobación como otros idiomas. El uso de una herramienta de análisis estático puede ayudar a detectar algunos problemas posibles.

Recuperado de " http://en.wikipedia.org/w/index.php?title=Computer_programming&oldid=229342782 "