Vérifié contenu

Programmation informatique

Sujets connexes: Programmation informatique

Contexte des écoles Wikipédia

Cette sélection se fait pour les écoles par la charité pour enfants lire la suite . Avant de vous décider à propos de parrainer un enfant, pourquoi ne pas en apprendre davantage sur différents organismes de parrainage premier ?

Programmation informatique (souvent abrégé en programmation ou de codage), parfois considéré comme une branche de mathématiques appliquées , est le processus de l'écriture, les tests, le débogage / dépannage, et de maintenir le code source de programmes informatiques. Ce code source est écrit dans un langage de programmation . Le code peut être une modification d'une source existante ou quelque chose de complètement nouveau. Le but de la programmation est de créer un programme qui présente un certain comportement désiré (de personnalisation). Le processus d'écriture du code source requiert une expertise dans de nombreux sujets différents, y compris les connaissances du domaine d'application, spécialisés algorithmes et la logique formelle .

Cycle de développement
Codage Shots plan annuel haute résolution-5.jpg
Un développeur de logiciels au travail
Activités et étapes
  • Exigences
  • Spécification
  • Architecture
  • Construction
  • Conception
  • Essai
  • Débogage
  • Déploiement
  • Entretien
Méthodologies
  • Cascade
  • modèle de Prototype
  • Incrémental
  • Itératif
  • V-Model
  • Spirale
  • Scrum
  • Ranger Sa Chambre
  • RAD
  • DSDM
  • RUP
  • XP
  • Agile
  • Maigre
  • Double Vee Modèle
  • TDD
  • FDD
Soutenir disciplines
  • Gestion de la configuration
  • Documentation
  • Assurance de la qualité (SQA)
  • Gestion de projet
  • conception de l'expérience utilisateur
Outils
  • Compilateur
  • Debugger
  • Profiler
  • GUI Designer
  • IDE
  • Moteur de production

Dans génie logiciel, la programmation (la mise en œuvre) est considéré comme une phase dans un processus de développement de logiciels.

Il ya un débat en cours sur la mesure dans laquelle l'écriture de programmes est un art, un métier ou une discipline d'ingénierie. Une bonne programmation est généralement considéré comme l'application mesurée de tous les trois, dans le but de produire une solution logicielle efficace et maintenable (les critères pour "efficace" et "soutenable" varient considérablement). La discipline se distingue de beaucoup d'autres professions techniques que les programmeurs ne ont généralement pas besoin d'être licencié ou passent des tests de certification normalisés (ou le secteur réglementés) afin de se appeler «programmeurs» ou même «ingénieurs de logiciels".

Un autre débat en cours est la mesure dans laquelle le langage de programmation utilisé dans des programmes d'écriture affecte la forme que prend le programme final. Ce débat est analogue à celle entourant la Hypothèse Sapir-Whorf dans la linguistique , qui postule que la nature d'une langue particulière influence la pensée habituelle de ses locuteurs. Structures linguistiques différentes donnent différents schémas de pensée. Cette idée conteste la possibilité de représenter parfaitement le monde avec la langue, car il reconnaît que les mécanismes de ne importe quelle langue conditionnent les pensées de sa communauté de haut-parleur.

Programmeurs

Les programmeurs sont ceux qui écrivent des logiciels. Leur travail comprend habituellement:

  • Analyse des besoins
  • Spécification
  • Architecture logicielle
  • Codage
  • Compilation
  • Test du logiciel
  • Documentation
  • Intégration
  • Entretien

Langages de programmation

Différents langages de programmation prennent en charge différents styles de programmation (appelés paradigmes de programmation). Le choix de la langue utilisée est l'objet de nombreuses considérations, comme la politique de l'entreprise, l'aptitude à la tâche, la disponibilité des paquets de tierce partie, ou de préférence individuelle. Idéalement, le langage de programmation le mieux adapté à la tâche à accomplir sera sélectionné. Compromis de cet idéal consistent à trouver suffisamment de programmeurs qui connaissent la langue pour construire une équipe, la disponibilité de compilateurs pour cette langue, et l'efficacité avec laquelle les programmes écrits dans une langue donnée exécuter.

Allen Downey, dans son livre Comment penser comme un informaticien, écrit:

Les détails semblent différentes dans différentes langues, mais quelques instructions de base apparaissent dans à peu près toutes les langues: entrée: obtenir des données à partir du clavier, un fichier, ou un autre dispositif de sortie:. Les données d'affichage sur l'écran ou envoyer des données à un fichier ou autre dispositif mathématiques:. effectuer des opérations mathématiques de base comme l'addition et la multiplication exécution conditionnelle:.. Vérifiez certaines conditions et exécuter la séquence appropriée des états répétition: effectuer une action à plusieurs reprises, souvent avec quelques variations.

Beaucoup de langages informatiques fournissent un mécanisme pour appeler des fonctions fournies par les bibliothèques. Pourvu que les fonctions dans une bibliothèque suivent les conventions d'exécution appropriées (par exemple, la méthode du passage d'arguments), alors ces fonctions peuvent être rédigés dans une autre langue.

Histoire de la programmation

Wired carte enfichable pour un IBM machine Comptabilité 402.

La première programmable la machine (ce est une machine dont le comportement peut être contrôlé par des changements à un «programme») était La programmable d'Al-Jazari robot humanoïde en 1206. Al-Jazari de Robot était à l'origine un bateau avec quatre musiciens automatiques qui flottaient sur un lac pour divertir les invités au beuveries royales. Son mécanisme avait une machine à tambour programmable chevilles ( cames) qui bosse dans peu leviers qui exploitent la percussions. Le batteur pourrait être faite pour jouer des rythmes différents et différents patterns de batterie en déplaçant les pions à différents endroits.

Le Jacquard Loom, développé en 1801, est souvent cité comme une source de art antérieur. La machine utilise une série de cartes carton avec des trous percés en eux. Le modèle de trou représenté le motif que le métier a dû suivre dans le tissage. Le métier à tisser pourrait produire entièrement différentes armures en utilisant différents ensembles de cartes. L'utilisation de cartes perforées ont également été adoptées par Charles Babbage vers 1830, de contrôler son Moteur analytique.

Cette innovation a ensuite été affinée par Herman Hollerith qui, en 1896 a fondé le Tabulating Machine Company (qui est devenu IBM ). Il a inventé la carte perforée Hollerith, le Lecteur de carte, et la machine de poinçon clé. Ces inventions étaient le fondement de l'industrie moderne de traitement de l'information. L'addition d'un plug-conseil à son 1906 Type I Tabulator lui permettait de faire différentes tâches sans avoir à reconstruire (la première étape vers la programmation). À la fin des années 1940, il y avait une variété de plug-conseil machines programmables, appelé l'équipement d'enregistrement de l'unité, pour effectuer des tâches de traitement de données (de lecture de carte). Les premiers ordinateurs ont également été programmés à l'aide de plug-conseils.

Une boîte de cartes perforées avec plusieurs ponts de programme.

L'invention de la Architecture permis programmes informatiques Von Neumann à stocker dans mémoire d'ordinateur. Les premiers programmes ont dû être minutieusement conçu en suivant les instructions de la machine particulière, souvent en binaire notation. Chaque modèle d'ordinateur serait susceptible d'avoir besoin des instructions différentes de faire la même tâche. Plus tard langages d'assemblage ont été développés qui laisse le programmeur précise chaque instruction dans un format de texte, entrer abréviations pour chaque code d'opération au lieu d'un nombre et adresses spécifiant sous forme symbolique (par exemple AJOUTER X, TOTAL). En 1954, Fortran, le premier langage de programmation de haut niveau, a été inventé. Cela a permis aux programmeurs de spécifier calculs en entrant une formule directement (par exemple Y = X * 2 + 5 * X + 9). Le texte du programme, ou la source, ont été converties en instructions machine en utilisant un programme spécial appelé compilateur. Beaucoup d'autres langues ont été développés, y compris ceux pour la programmation commerciale, tels que COBOL. Les programmes ont été pour la plupart encore entrés à l'aide de cartes perforées ou ruban de papier. (Voir programmation informatique à l'époque de cartes perforées). À la fin des années 1960, dispositifs de stockage de données et terminaux informatiques sont devenus assez bon marché afin que les programmes pourraient être créés en tapant directement dans les ordinateurs. Les éditeurs de texte ont été développés qui permettait aux changements et corrections à apporter beaucoup plus facilement qu'avec des cartes perforées.

Comme le temps a progressé, les ordinateurs ont fait des pas de géant dans le domaine de la puissance de traitement. Cela a entraîné nouveaux langages de programmation qui sont plus abstraite du matériel sous-jacent. Bien que ces langues les plus abstraites exigent supplémentaires frais généraux, dans la plupart des cas l'énorme augmentation de la vitesse des ordinateurs modernes a entraîné peu de diminution de performance par rapport à leurs homologues antérieures. Les avantages de ces langues les plus abstraites, ce est qu'ils permettent à la fois une courbe d'apprentissage plus facile pour les gens moins familiers avec les langages de programmation de bas niveau plus âgés, et ils permettent également un programmeur expérimenté pour développer des applications simples rapidement. Malgré ces avantages, les grands programmes complexes, et des programmes qui sont plus tributaires de la vitesse encore besoin relativement langues de niveau inférieur et plus rapides avec le matériel d'aujourd'hui. (Les mêmes préoccupations ont été soulevées à propos de la langue d'origine Fortran.)

Tout au long de la seconde moitié du XXe siècle, la programmation était une carrière attrayante dans les pays les plus développés. Certaines formes de programmation ont été de plus en plus soumis à l'externalisation offshore (d'importer des logiciels et des services d'autres pays, généralement à un salaire inférieur), la prise de décisions de carrière de programmation dans les pays développés plus compliqués, tout en augmentant les opportunités économiques dans les zones les moins développées. On ne sait pas dans quelle mesure cette tendance se poursuivra et combien il aura un impact salaires et opportunités programmeur.

Programmation moderne

Les exigences de qualité

Quelle que soit l'approche du développement de logiciel peut être, le programme définitif doit satisfaire certaines propriétés fondamentales. Les cinq propriétés suivantes sont parmi les plus pertinentes:

  • Efficacité: la quantité de ressources système consomme un programme (temps de processeur, espace mémoire, périphériques lents, bande passante du réseau et dans une certaine mesure, même interaction de l'utilisateur), le moins sera le mieux.
  • Fiabilité: combien de fois les résultats d'un programme sont corrects. Cela dépend de la prévention de la propagation d'erreur résultant de la conversion de données et la prévention des erreurs résultant de débordements de tampon, sousverses et division par zéro.
  • Robustesse: comment un programme prévoit des situations de conflit de types et d'autres incompatibilités qui se traduisent par les erreurs d'exécution et haltes de programme. L'accent est mis principalement sur l'interaction de l'utilisateur et le traitement des exceptions.
  • Ergonomie: l'clearity et l'intuitivité d'une sortie de programmes peuvent faire ou défaire son succès. Cela implique un large éventail d'éléments textuels et graphiques qui fait un programme facile et confortable à utiliser.
  • Portabilité: la gamme de plates-formes matérielles et systèmes d'exploitation sur lequel le code source d'un programme peut être compilé et exécuté. Cela dépend principalement sur la gamme de compilateurs spécifiques de plate-forme pour la langue du code source plutôt que quelque chose ayant à voir avec le programme directement.

Complexité algorithmique

Le champ académique et la pratique de l'ingénierie de la programmation informatique sont à la fois largement concernés par la découverte et la mise en œuvre les plus efficaces algorithmes pour une classe donnée de problème. A cet effet, les algorithmes sont classés dans l'ordre en utilisant ce qu'on appelle Comparaison asymptotique, O (n), qui exprime l'utilisation des ressources, telles que le temps d'exécution ou de la consommation de mémoire, en termes de la taille d'une entrée. programmeurs experts sont familiers avec une variété d'algorithmes bien établies et leurs complexités respectives et utiliser ces connaissances pour choisir les algorithmes qui sont les mieux adaptées aux circonstances.

Méthodologies

La première étape dans la plupart des projets de développement de logiciels formelle est l'analyse des besoins, suivie par la modélisation, la mise en œuvre, et l'échec de l'élimination ( débogage). Il existe beaucoup d'approches différentes pour chacune de ces tâches. Une approche populaire pour analyse des besoins est Utiliser l'analyse de cas.

Techniques de modélisation les plus populaires sont l'analyse orientée objet et Design ( OOAD) et Model-Driven Architecture ( MDA). Le (Unified Modeling Language UML) est une notation utilisée à la fois pour OOAD et MDA.

Une technique similaire à celle utilisée pour la conception de base de données est modélisation entité-relation ( ER Modeling).

techniques de mise en œuvre comprennent les langages impératifs ( orientée objet ou procédurale), langages fonctionnels, et langues logiques.

Le débogage est le plus souvent fait avec IDEs comme Visual Studio, NetBeans, et Eclipse. Débogueurs séparées comme GDB sont également utilisés.

usage de la langue de mesure

Il est très difficile de déterminer ce que sont les plus populaires des langages de programmation modernes. Certaines langues sont très populaires pour des types particuliers d'applications (par exemple, COBOL est toujours forte dans le centre de données d'entreprise, souvent sur de grandes mainframes, FORTRAN dans les applications d'ingénierie, et C dans applications embarquées), tandis que certaines langues sont régulièrement utilisés pour écrire de nombreux types d'applications.

Méthodes de mesure de la popularité de la langue comprennent: compter le nombre des offres d'emploi qui mentionnent la langue, le nombre de livres qui enseignent la langue qui sont vendus (ce surestime l'importance des langues les plus récents), et les estimations du nombre de lignes existantes de code écrites dans la langue (cela sous-estime le nombre de locuteurs de langues d'affaires tels que COBOL).

Débogage

Le débogage est une tâche très importante dans le processus de développement de logiciels, en raison d'un programme erronée peut avoir des conséquences importantes pour ses utilisateurs. Certaines langues sont plus sujettes à certains types de défauts parce que leurs spécifications ne nécessite pas compilateurs d'effectuer autant de contrôle que d'autres langues. Utilisation d'un outil d'analyse statique peut aider à détecter des problèmes possibles.

Récupéré à partir de " http://en.wikipedia.org/w/index.php?title=Computer_programming&oldid=229342782 "