Strategies in programming programmable controllers: A field study on a professional programmer
Résumé
One of the questions raised at the end of the First Workshop on Empirical Programmers (see 17), and which subsequently became the title of a Future Directions paper, was "By the way, did anyone study any real programmers?" (7). Our answer is "Yes." It is our wish in presenting this paper to contribute to the understanding of some aspects of "programming-in-the-large," in particular those concerning the specific strategies that the programmer uses. A professional programmer constructing a program that was to control an automatic machine tool installation was observed full time for four weeks in his daily work. In this paper, we chose to focus on the strategies used, under the hypothesis that they differ, at least partially, from those observed to date in most novice, student programmers working on artificial, limited problems. We observed some strategies already known to be at work in "programming-in-the small": planning, top-down and bottom-up processing, schema-guided information processing. However, other strategies seem indeed to be characteristic of programming in a work context: the frequent use of example programs, the importance of analogical reasoning, and the search for homogeneity (for comprehension and maintenance reasons). Finally, the opportunistic nature of the activity we observed also seems to be a characteristic of real programming activity.
Cet article présente quelques aspects de la programmation "in-the-large", notammentles stratégies particulières utilisées par un programmeur professionnel. L'hypothèse qui sous-tend cette étude était que ces stratégies diffèrent, au moins en partie, de celles observées jusque là auprès de la plupart des programmeurs novices, généralement des étudiants travaillant sur des problèmes artificielllement restreints. Un programmeur professionnel a été observé pendant quatre semaines tout au long de son travail qui consistait à concevoir un programme de commande pour une installation automatisée de machine-outil. Certaines stratégies dont on savait déjà qu'elles sont mises en oeuvre dans la programmation "in-the-small" on été observées: de la planification, du traitement de-haut-en-bas et de-bas-en-haut et du traitement de l'information guidée par des schémas. Cependant, d'autres stratégies semblent en effet être propres à la conception de logiciel dans un contexte de travail professionnel: l'utilisation fréquente de programmes-exemples, l'importance du raisonnement analogique et la recherche de structures homogènes (pour des raisons de de compréhensibilité et de maintenance). Le caractère opportuniste de l'activité observée semble également typique d'une activité de conception réelle.
Mots clés
Program design
Software design
Programming strategies
Design strategies
Opportunistic organisation
Real-time observational study
Field study
Protocol analysis
Industrial programmable controller
Automated machine-tool installation
Conception de programme
Conception logicielle
Stratégies de programmation
Stratégies de conception
Organisation opportuniste
Observation en temps réel
Etude de terrain
Analyse de protocoles
Automate programmable
Installation automatisée de machine-outil
Origine : Fichiers produits par l'(les) auteur(s)
Loading...