Architecture Logicielle des Systèmes d Information (ALSI) Ordinateur? ORDINATEUR MATERIEL Computer = Hardware + Software Septembre 2010 Sources: GJL, Wikipédia,, Internet Ordinateur = Matériel + Logiciel 1 2 Hardware? Software? Utilisation du logiciel? Hardware = le matériel voir AMSI Software = le logiciel ALSI Définition: ensemble des programmes permettant d effectuer des traitements sur un ordinateur Larrousse: logiciel (nom masculin): Ensemble des programmes, procédés et règles, et éventuellement de la documentation, relatifs au fonctionnement d'un ensemble de traitement de données. (Par opposition au matériel.) [Synonyme : software.] Licences d utilisation des logiciels les plus courants: Logiciel propriétaire: l'auteur se réserve le droit de diffuser, et de modifier le logiciel. L'acquisition du droit d'utiliser le logiciel est payante. Partagiciel (anglais shareware): l'auteur autorise autrui à diffuser le logiciel. L'utilisation prolongée du logiciel requiert un don à son auteur. Gratuiciel (anglais freeware): l'auteur autorise la diffusion et l'utilisation par autrui gratuitement, mais garde le droit de modifier le logiciel. Open Source : un logiciel dont le code source est mis à disposition d'autrui. Logiciel libre : logiciel sur lequel il est possible d'effectuer copie, modification et diffusion. 3 4
Logiciel? SYSTEME D EXPLOITATION D APPLICATION Système d exploitation (SE) = Operating System (OS) Logiciel d applications = Oriented Software Système d exploitation? Le système d'exploitation: anglais operating system, en abrégé OS = logiciel de base d un ordinateur ensemble des programmes nécessaires et indispensables au fonctionnement d'un ordinateur coordonne et uniformise l'utilisation du matériel par les logiciels applicatifs sert d'intermédiaire entre les logiciels applicatifs et le matériel offre une manière unifiée d'exploiter les périphériques de l'ordinateur par l'intermédiaire d'interfaces de programmation banalisées. 5 6 Système d exploitation Système d exploitation Différents types de SE: SE monoposte (micro) SE multipostes (ou multi-utilisateurs) (gros systèmes) SE multipostes propriétaire SE multipostes ouvert SE Réseau (NOS) ou Serveur 7 8
Système d exploitation Fonctions d un SE: Interface normalisée entre programmes et matériels Attribuer la mémoire vive aux applications Contrôler l exécution des applications Gestion des périphériques et des entrées/sorties Interface Homme Machine (IHM) en mode texte ou graphique Logiciel d application? Le logiciel d application: Ensemble des programmes permettant la résolution d un problème donné sur un ordinateur. Ou logiciel adapté à la résolution d'un problème spécifique D APPLICATION PROGICIEL DE APPLICATIF PROGRAMMATION 9 10 Progiciel? Progiciel Le progiciel contraction de produit et logiciel = programme standard = package = programme produit C est un logiciel applicatif commercial «prêt-à-porter», standardisé et générique, prévu pour répondre à des besoins ordinaires. Ce terme s'oppose aux «logiciels sur mesure» développés en interne dans une entreprise et conçus pour répondre à des besoins spécifiques. L'article 2 du cahier des clauses administratives générales relatif aux techniques de l'information et de la communication (CCAG-TIC) impose désormais le terme de logiciel standard. Définition: Ensemble cohérent et indépendant constitué de programmes, de services, de supports de manipulation d'informations (CD/DVD, langages, etc.) et d'une documentation, conçu pour réaliser des traitements informatiques standards, dont la commercialisation s effectue sous une même forme pour tous les utilisateurs, et qu'un utilisateur peut utiliser de façon autonome. 11 12
Catégories de progiciels Bureautique SGBD Utilitaires Communication Jeux Logiciel applicatif? L applicatif est en général un programme (ou un ensemble de programmes) spécifiquement développé et écrit pour un usage précis et unique dans une entreprise. Qui développe? Le développeur! Où? Dans une SSII. Avec quoi? Un langage de programmation! 13 14 Logiciel de programmation? Compilateur? Interpréteur? Un logiciel de programmation est un outil qui utilise un langage de programmation et permet de développer des applications. Un langage de programmation est un langage informatique, permettant d'écrire programme sous forme d un code source. Le code source sera ensuite traduit dans une forme utilisable par la machine: le programme exécutable. L'activité de rédaction du code source d'un programme est nommée programmation. Elle consiste en la mise en œuvre de techniques d'écriture et de résolution d'algorithmes informatiques. Suivant le langage utilisé, un programme doit être interprété ou compilé en passant par un autre langage qui pourra être compris par la machine : l'assembleur. Un compilateur est un programme informatique qui traduit un code source écrit dans un langage de programmation en un autre langage, habituellement un langage d'assemblage ou un langage machine. Le programme en langage machine produit par un compilateur est appelé code objet. C est le programme objet qui est utilisé à chaque exécution, la traduction n est plus nécessaire. Contrairement au compilateur, un interprèteur exécute les instructions du programme au fur et à mesure de leur lecture pour interprétation. Du fait de cette phase sans traduction préalable, l'exécution d'un programme interprété est généralement plus lente que le même programme compilé. Chaque exécution donne lieu à une nouvelle traduction. 15 16
Générations de langages? Les générations de langages: La première génération s'adressait aux ordinateurs en langage binaire (des 0 et des 1). La seconde génération, s'adresse au microprocesseur instruction par instruction: c est le célèbre langage assembleur. La troisième génération introduit une syntaxe et des mots réservés proche du langage naturel. Ce sont les langages procéduraux (COBOL, Fortran, BASIC, Pascal, langage C, PHP ) ou encore à objets (Java, C++, C# ). On indique à l ordinateur Quoi faire, et Comment faire! La quatrième génération se situe un niveau au-dessus. Ce sont des langages NON procéduraux et qui sont encore plus proche de la syntaxe naturelle. Ils sont souvent associée à des bases de données. Le plus célèbre est le langage SQL présent dans tous les SGBD/R On indique le Quoi faire, mais le Comment est assuré par l ordinateur. Cinquième génération de langage? Un langage de programmation de cinquième génération, en abrégé L5G, est un langage de programmation basé sur le concept de résolution de problèmes en utilisant des contraintes données au programme, plutôt que d'utiliser un algorithme écrit par un programmeur. Dans les années 1990, les langages de cinquième génération ont été considérées comme étant la vague du futur, et certains avaient même «prédit» qu'ils remplaceraient tous autres langages pour le développement de systèmes, excepté les langages de bas niveau. Aujourd'hui, les langages de cinquième génération ont perdu une partie de leur attrait initial et sont pour la plupart du temps utilisés à des fins académiques. 17 18 POO? Autres définitions La programmation orientée objet (POO), est une technique de programmation informatique qui consiste en la définition et l'interaction de briques logicielles appelées objets. Un objet représente un concept, une idée ou toute entité du monde physique. Il possède une structure interne et un comportement, et il sait communiquer avec ses pairs. Cet objet est réutilisable par différents programmes pour réaliser les fonctionnalités attendues. Le développement informatique est passé du stade artisanal au stade industriel. Micrologiciel: (anglais firmware) ou logiciel système, logiciel interne, logiciel embarqué. C est un programme qui est intégré dans un composant matériel. On peut le mettre à jour (flash). Progiciel de gestion intégré: (anglais : Enterprise Resource Planning ou ERP). Catégorie d'outil qui intègre tous les systèmes informatisés permettant d'aider le travail dans l'entreprise. On y retrouve souvent la facturation, l'aide à la production, la comptabilité, etc. Atelier de génie logiciel (AGL): ensemble de programmes informatiques permettant eux-mêmes de produire des programmes de manière industrielle. On parle aussi d'outils CASE pour Computer Aided Software Engineering. 19 20