Nous pouvons classer les différents types de développement de programmes selon trois critères :
Nous retrouvons dans cette catégorie, soit des systèmes complets, soit des sous-systèmes.
Il s'agit de programmes écrits pour servir d'autres programmes.
Les programmes systèmes sont caractérisés par :
Il s'agit de collecter, contrôler, et d'analyser des informations d'un environnement externe. Le temps de réponse dans ce type de programme est extrêmement court, mais plus important encore, il est prévisible. Il est en effet nécessaire de s'assurer que ce temps de réponse soit constant, afin de pouvoir anticiper les actions à entreprendre.
Remarque : La différence entre un système en temps réel et un système interactif est qu'un dépassement du temps de réponse peut avoir des conséquences désastreuses dans un système en temps réel.
Ce type de programme (Business software) est souvent destiné à un usage unique, et implique des bases de données de taille importante.
Le champ d'applications scientifiques est vaste et touche tous les domaines. L'évolution des programmes scientifiques est marquée par un rapprochement des techniques de temps réel et de programmes système.
Lors du développement de programmes embarqués (embeded software), nous sommes fortement limités par les caractéristiques du matériel. Généralement, la mémoire est accessible uniquement en lecture, et le programme permet l'exécution de fonctions limitées.
Cette catégorie regroupe l'ensemble des programmes que nous pouvons retrouver sur notre ordinateur.
Les programmes d'intelligence artificielle sont caractérisés par la faculté d'auto apprentissage. Ils font usage d'algorithmes non numérique pour résoudre des programmes complexes qui ne peuvent pas faire l'objet d'une analyse rectiligne.
Une crise a été constatée dans le monde des programmes vers les années '60. Afin de déterminer les qualités importantes d'un programme, nous pouvons analyser les symptômes de cette crise :
En réponse à cette crise est né le software engineering :
Angl : software engineering
Fr : génie logiciel
Ensemble des activités de conception et de mise en oeuvre des produits et des procédures tendant à rationaliser la production du logiciel depuis les premières spécifications jusqu'à sa maintenance en cours d'exploitation.
En octobre 1968, deux informaticiens spécialistes des langages de programmation, Friedrich Bauer et Louis Bolliet, inventent le terme software engineering en se disant que si en génie civil il est possible de concevoir et de construire un pont solide et fiable dans un temps donné et dans un budget donné, il devrait être possible de faire la même chose avec des produits logiciels.
Ensuite, en 1993 la branche informatique (Computer Society) de l’IEEE et l’ACM (organisation professionnelle américaine des informaticiens) ont établi un comité qui s’est donné pour tâche de définir les ensembles de critères et de normes appropriés pour la pratique professionnelle du génie logiciel,critères sur lesquels pourront se baser les décisions industrielles, les certifications professionnelles et les programmes d’éducation.
Nous pouvons donc dégager certains aspects d'un bon programme :
Certains facteurs sont contradictoires. Nous devrons donc faire des compromis en fonction du contexte.
Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.
59 mots clés dont 40 définis manuellement (plus d'information...).
Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.
Recherche (afficher)
Utilisateur (masquer)
Navigation (masquer)
Apparence (afficher)
Stats (afficher)
Citation (masquer)