Génie logiciel assisté par ordinateur - Computer-aided software engineering

Exemple d'outil CASE.

L'ingénierie logicielle assistée par ordinateur ( CASE ) est le domaine des outils logiciels utilisés pour concevoir et mettre en œuvre des applications. Les outils CASE sont similaires et ont été en partie inspirés des outils de conception assistée par ordinateur (CAO) utilisés pour la conception de produits matériels. Les outils CASE sont utilisés pour développer des logiciels de haute qualité, sans défaut et maintenables. Le logiciel CASE est souvent associé à des méthodes de développement de systèmes d'information ainsi qu'à des outils automatisés pouvant être utilisés dans le processus de développement logiciel .

Histoire

Le projet ISDOS (Information System Design and Optimization System), lancé en 1968 à l' Université du Michigan , a suscité un grand intérêt pour l'ensemble du concept d'utilisation de systèmes informatiques pour aider les analystes dans le processus très difficile d'analyse des exigences et de développement de systèmes. Plusieurs articles de Daniel Teichroew ont attiré toute une génération de passionnés avec le potentiel du développement de systèmes automatisés. Son outil PSL / PSA (Problem Statement Language / Problem Statement Analyzer) était un outil CASE bien qu'il soit antérieur à ce terme.

Un autre thread majeur est apparu comme une extension logique du dictionnaire de données d'une base de données . En étendant la gamme de métadonnées détenues, les attributs d'une application pourraient être conservés dans un dictionnaire et utilisés au moment de l'exécution. Ce «dictionnaire actif» est devenu le précurseur de la capacité d' ingénierie axée sur les modèles plus moderne . Cependant, le dictionnaire actif ne fournissait une représentation graphique d'aucune des métadonnées. C'est le lien entre le concept de dictionnaire contenant les métadonnées des analystes, dérivé de l'utilisation d'un ensemble intégré de techniques, avec la représentation graphique de ces données qui a donné naissance aux versions antérieures de CASE.

Le prochain entrant sur le marché était Excelerator d'Index Technology à Cambridge, Massachusetts. Alors que DesignAid fonctionnait sur Convergent Technologies et plus tard sur des micro-ordinateurs en réseau Burroughs Ngen, Index a lancé Excelerator sur la plate-forme IBM PC / AT . Alors qu'au moment du lancement, et pendant plusieurs années, la plate-forme IBM ne prenait pas en charge la mise en réseau ou une base de données centralisée comme le faisaient les technologies Convergent Technologies ou les machines Burroughs, l'attrait d'IBM était fort et Excelerator a pris de l'importance. Dans la foulée d'Excelerator se trouvaient une série d'offres de sociétés telles que Knowledgeware (James Martin, Fran Tarkenton et Don Addington), CA Gen de Texas Instrument et FOUNDATION toolset d' Andersen Consulting (DESIGN / 1, INSTALL / 1, FCP).

Les outils CASE étaient à leur apogée au début des années 90. Selon le PC Magazine de janvier 1990, plus de 100 entreprises proposaient près de 200 outils CASE différents. À l'époque, IBM avait proposé AD / Cycle, qui était une alliance de fournisseurs de logiciels centrée sur le référentiel de logiciels d' IBM utilisant IBM DB2 dans le mainframe et OS / 2 :

Les outils de développement d'applications peuvent provenir de plusieurs sources: d'IBM, de fournisseurs et des clients eux-mêmes. IBM a conclu des relations avec Bachman Information Systems, Index Technology Corporation et Knowledgeware, dans le cadre desquelles des produits sélectionnés de ces fournisseurs seront commercialisés via un programme de marketing complémentaire IBM afin de proposer des offres qui aideront à atteindre une couverture complète du cycle de vie .

Avec le déclin du mainframe, AD / Cycle et les outils Big CASE se sont éteints, ouvrant le marché aux principaux outils CASE d'aujourd'hui. De nombreux leaders du marché CASE du début des années 1990 ont été rachetés par Computer Associates , notamment IEW, IEF, ADW, Cayenne et Learmonth & Burchett Management Systems (LBMS). L'autre tendance qui a conduit à l'évolution des outils CASE était la montée en puissance des méthodes et des outils orientés objet. La plupart des différents fournisseurs d'outils ont ajouté une prise en charge des méthodes et des outils orientés objet. De plus, de nouveaux produits ont vu le jour, conçus de bas en haut pour prendre en charge l'approche orientée objet. Andersen a développé son projet Eagle comme alternative à Foundation. Plusieurs des leaders d'opinion du développement orienté objet ont chacun développé leur propre méthodologie et leur propre ensemble d'outils CASE: Jacobsen, Rumbaugh, Booch , etc. Finalement, ces divers ensembles d'outils et méthodes ont été consolidés via des normes dirigées par l' Object Management Group (OMG). Le langage de modélisation unifié (UML) de l' OMG est actuellement largement accepté comme la norme de l'industrie pour la modélisation orientée objet.

Logiciel CASE

A. Fuggetta a classé les logiciels CASE différents en 3 catégories:

  1. Les outils prennent en charge des tâches spécifiques dans le cycle de vie du logiciel .
  2. Les ateliers combinent deux ou plusieurs outils axés sur une partie spécifique du cycle de vie du logiciel.
  3. Les environnements combinent au moins deux outils ou établis et prennent en charge le cycle de vie complet du logiciel.

Outils

Les outils CASE prennent en charge des tâches spécifiques dans le cycle de vie du développement logiciel. Ils peuvent être divisés dans les catégories suivantes:

  1. Modélisation commerciale et d'analyse. Outils de modélisation graphique. Par exemple, la modélisation E / R, la modélisation d'objets, etc.
  2. Développement. Phases de conception et de construction du cycle de vie. Environnements de débogage. Par exemple, IISE LKO .
  3. Vérification et validation . Analyser le code et les spécifications pour vérifier l'exactitude , les performances, etc.
  4. Gestion de la configuration. Contrôlez l'archivage et l'extraction des objets et des fichiers du référentiel. Par exemple, SCCS , IISE.
  5. Métriques et mesures. Analysez le code pour la complexité, la modularité (par exemple, pas de "go to"), les performances, etc.
  6. Gestion de projet. Gérer les plans de projet, les affectations de tâches, la planification.

Une autre façon courante de distinguer les outils CASE est la distinction entre CAS supérieur et CAS inférieur. Upper CASE Tools prend en charge la modélisation commerciale et d'analyse. Ils prennent en charge des langues schématiques traditionnelles telles que les diagrammes ER , diagramme de flux de données , diagrammes de structure , arbres de décision , tables de décision , etc. Minuscules activités de développement de soutien des outils tels que la conception physique, le débogage, la construction, les tests, l' intégration des composants, l' entretien, et inverse ingénierie. Toutes les autres activités couvrent tout le cycle de vie et s'appliquent également au CAS supérieur et inférieur.

Etablis

Les ateliers intègrent au moins deux outils CASE et prennent en charge des activités de processus logiciel spécifiques. Par conséquent, ils réalisent:

  • une interface homogène et cohérente (intégration de présentation).
  • Intégration transparente des outils et des chaînes d'outils (contrôle et intégration des données).

Un exemple d'atelier est l' environnement de programmation Visual Basic de Microsoft . Il incorpore plusieurs outils de développement: un générateur d'interface graphique, un éditeur de code intelligent, un débogueur, etc. La plupart des produits CASE commerciaux avaient tendance à être de tels établis qui intégraient de manière transparente deux outils ou plus. Les établis peuvent également être classés de la même manière que les outils; comme se concentrant sur l'analyse, le développement, la vérification, etc., ainsi que sur les majuscules, les minuscules ou des processus tels que la gestion de la configuration qui couvrent le cycle de vie complet.

Environnements

Un environnement est un ensemble d'outils ou d'établis CASE qui tente de prendre en charge l'ensemble du processus logiciel. Cela contraste avec les outils qui se concentrent sur une tâche spécifique ou une partie spécifique du cycle de vie. Les environnements CASE sont classés par Fuggetta comme suit:

  1. Boîtes à outils. Collections d'outils faiblement couplées. Celles-ci s'appuient généralement sur des ateliers de système d'exploitation tels que l'atelier du programmeur Unix ou l'ensemble VMS VAX. Ils effectuent généralement une intégration via une tuyauterie ou un autre mécanisme de base pour partager des données et passer le contrôle. La force d'une intégration facile est également l'un des inconvénients. Le simple passage de paramètres via des technologies telles que le script shell ne peut pas fournir le type d'intégration sophistiquée qu'une base de données de référentiel commune peut.
  2. Quatrième génération. Ces environnements sont également connus sous le nom de 4GL pour les environnements linguistiques de quatrième génération en raison du fait que les premiers environnements ont été conçus autour de langages spécifiques tels que Visual Basic. Ils ont été les premiers environnements à fournir une intégration approfondie de plusieurs outils. En règle générale, ces environnements étaient axés sur des types d'applications spécifiques. Par exemple, les applications pilotées par l'interface utilisateur qui effectuaient des transactions atomiques standard vers une base de données relationnelle. Les exemples sont Informix 4GL et Focus.
  3. Centré sur la langue. Environnements basés sur un seul langage souvent orienté objet comme l'environnement Symbolics Lisp Genera ou VisualWorks Smalltalk de Parcplace. Dans ces environnements, toutes les ressources du système d'exploitation étaient des objets dans le langage orienté objet. Cela fournit de puissantes opportunités de débogage et graphiques, mais le code développé est principalement limité au langage spécifique. Pour cette raison, ces environnements étaient principalement une niche au sein de CASE. Leur utilisation était principalement pour le prototypage et les projets de R&D. Une idée de base commune pour ces environnements était l' interface utilisateur modèle – vue – contrôleur qui permettait de garder plusieurs présentations de la même conception cohérentes avec le modèle sous-jacent. L'architecture MVC a été adoptée par les autres types d'environnements CASE ainsi que par de nombreuses applications créées avec eux.
  4. Intégré. Ces environnements sont un exemple de ce à quoi la plupart des informaticiens ont tendance à penser en premier lorsqu'ils pensent à CASE. Environnements tels que AD / Cycle d'IBM, FOUNDATION d'Andersen Consulting, le système ICL CADES et DEC Cohesion. Ces environnements tentent de couvrir le cycle de vie complet de l'analyse à la maintenance et fournissent un référentiel de base de données intégré pour stocker tous les artefacts du processus logiciel. Le référentiel de logiciels intégré était la caractéristique déterminante de ces types d'outils. Ils ont fourni plusieurs modèles de conception différents ainsi que la prise en charge du code dans des langages hétérogènes. L'un des principaux objectifs de ces types d'environnements était «l'ingénierie aller-retour»: être capable d'apporter des modifications au niveau de la conception et de les refléter automatiquement dans le code et vice versa. Ces environnements étaient également généralement associés à une méthodologie particulière pour le développement de logiciels. Par exemple, la suite FOUNDATION CASE d'Andersen était étroitement liée à la méthodologie Andersen Method / 1.
  5. Centré sur les processus. C'est le type d'intégration le plus ambitieux. Ces environnements tentent non seulement de spécifier formellement les objets d'analyse et de conception du processus logiciel, mais le processus lui-même et d'utiliser ce processus formel pour contrôler et guider les projets logiciels. Les exemples sont East, Enterprise II, Process Wise, Process Weaver et Arcadia. Ces environnements étaient par définition liés à une méthodologie puisque le processus logiciel lui-même fait partie de l'environnement et peut contrôler de nombreux aspects de l'invocation d'outils.

Dans la pratique, la distinction entre les établis et les environnements était flexible. Visual Basic, par exemple, était un atelier de programmation, mais était également considéré par beaucoup comme un environnement 4GL. Les caractéristiques qui distinguaient les ateliers des environnements étaient une intégration profonde via un référentiel partagé ou un langage commun et une sorte de spécificité de méthodologie (environnements intégrés et centrés sur les processus) ou de domaine (4GL).

Principaux facteurs de risque CASE

Certains des facteurs de risque les plus importants pour les organisations qui adoptent la technologie CASE comprennent:

  • Normalisation inadéquate. Les organisations doivent généralement adapter et adopter des méthodologies et des outils en fonction de leurs besoins spécifiques. Cela peut exiger des efforts importants pour intégrer à la fois des technologies divergentes et des méthodes divergentes. Par exemple, avant l'adoption de la norme UML, les conventions de diagramme et les méthodes de conception de modèles orientés objet étaient très différentes parmi les adeptes de Jacobsen, Booch et Rumbaugh.
  • Attentes irréalistes. Les partisans de la technologie CASE - en particulier les fournisseurs qui commercialisent des ensembles d'outils coûteux - espèrent souvent que la nouvelle approche sera une solution miracle qui résoudra tous les problèmes. En réalité, aucune technologie de ce type ne peut faire cela et si les organisations abordent CASE avec des attentes irréalistes, elles seront inévitablement déçues.
  • Formation inadéquate. Comme pour toute nouvelle technologie, CASE a besoin de temps pour former les gens à l'utilisation des outils et se familiariser avec eux. Les projets CASE peuvent échouer si les praticiens ne disposent pas de suffisamment de temps pour la formation ou si le premier projet tenté avec la nouvelle technologie est lui-même hautement critique et risqué.
  • Contrôle de processus inadéquat. CASE offre de nouvelles capacités significatives pour utiliser de nouveaux types d'outils de manière innovante. Sans le guidage et les contrôles de processus appropriés, ces nouvelles capacités peuvent également causer de nouveaux problèmes importants.

Voir également

Les références