Synthèse & Résumé des articles
Thèmes et axes de recherche
Cest dans le cadre de ces trois axes de recherche que jai poursuivi mes travaux au sein du CERIA à luniversité de Paris-Dauphine en collaboration avec des chercheurs appartenant également au monde industriel. Depuis la fin de ma thèse, mes travaux de recherche se sont déroulés de la manière suivante. Dans un premier temps, jai défini un cadre général pour mes travaux futurs. Il sagit dun modèle générique, dit " modèle global du génie logiciel ", qui complète et précise le cadre proposé dans ma thèse.
Le modèle global du logiciel prend en compte d'une part, tous les aspects du système d'information et de sa partie automatisée (le logiciel) et d'autre part, les intérêts et les points de vue des acteurs concernés par le développement et l'utilisation du logiciel au sein de l'organisation. Ce modèle repose sur la " théorie des dimensions du logiciel " [1] proposee par Claudine Toffolon et sur les théories économiques de l'agence et des coûts de transaction. La théorie des dimensions du logiciel fournit des instruments pour prendre en compte tous les aspects du logiciel notamment les aspects économiques, organisationnels et humains. Les théories de lagence et des coûts de transaction permettent d'identifier les métiers des acteurs impliqués dans le processus d'informatisation, de modéliser leurs interactions et de prendre en compte leurs intérêts et leurs points de vue. Le modèle global du logiciel représente le domaine du génie logiciel en quatre espaces: l'espace des problèmes, l'espace des solutions, l'espace de construction et l'espace d'opération. Il distingue quatre types d'acteurs représentant les types de métiers liés au développement et à la maintenance de logiciels: le client, l'utilisateur final, l'architecte et le développeur. Ces acteurs sont liés par des contrats du type producteur consommateur. Chaque acteur joue le rôle principal dans l'espace représentant son métier mais peut jouer un rôle secondaire dans plusieurs autres espaces. Le modèle global du logiciel a été utilisé dans la plupart de mes publications relatives aux axes de recherche énumérés précédemment. Ces publications se répartissent entre ces trois axes de la manière suivante :
Références
[1] C> Toffolon, "The Software Dimensions Theory", in 'Enterprise Information Systems", Kluwer Academic Press, J. Filippe Eds., 1999. Résumé
[2] C. Toffolon, S. Dakhli: " A Three Layers Software Development Method: Foundations and Definitions", Conference IEEE-ICECCS97, Como, Italy, 8-12 Sept. 1997.
[3] C. Toffolon, S. Dakhli: "A Framework for Software Engineering Inconsistencies Analysis and Reduction", Conference IEEE-COMPSAC98, Vienna, Austria, 19-21 August 1998.
[4] C. Toffolon, S. Dakhli : " Informatisation des processus complexes : Un modèle générique pour réduire les incertitudes ", Conférence MOSIM99, Annecy, France, oct. 99.
[5] C. Toffolon, S. Dakhli : " Le modèle des cinq spirales : Un cadre générique dinformatisation des organisations ", Conférence MFPE99, Tunis, Tunisie, mai 1999.
[6] C. Toffolon, S. Dakhli: " Software Artifacts Reuse and Maintenance: An Organizational Framework", Conference IEEE-CSMR98, Florence, Italy, 9-11 March 1998.
[7] C. Toffolon, S. Dakhli : " Software Reusable Artifacts Evolution : A three level abstraction framework ", Conference INCOSE99, Brighton, UK, 6-11 June 1999.
[8] C. Toffolon, S. Dakhli: " A Framework of Software Architecture: The Ladder Model, Document de travail, CERIA, Université de Paris-Dauphine, janvier 1998.
[9] S. Dakhli, C. Toffolon : " Requirements Elicitation Process: An Iterative Approach Based on Software Prototyping", Document de travail, CERIA, Université de Paris-Dauphine, janvier 1999.
[10] S. Dakhli, C. Toffolon: " A Framework for Studying the Coordination Process in Software Engineering ", Document de travail, CERIA, Université de Paris-Dauphine, février 1999.
[11] C. Toffolon, S. Dakhli : " Human-Centered Systems Development and Use Inconsistencies ", Document de travail, CERIA, Université de Paris-Dauphine, mars 1999.
[12] S. Dakhli, C. Toffolon: " A Software Evaluation Approach Based on the Software Dimensions Theory ", Conference ESCOM8, Berlin, Germany, 26-28 May 1997.
[14] C. Toffolon, S. Dakhli : " An Economic Model of Software Reuse ", Conference ESCOM-SCOPE99, Herstmonceux Castle, UK, 27-29 April 1999.
[15] C. Toffolon, S. Dakhli : " Software Rapid Prototyping Evaluation ", Conference UKSMA98, London, UK, 29-30 Oct. 1998.
[16] C. Toffolon, S. Dakhli : " Decision-Making Process Improvement : A framework based on the option pricing theory ", Conference CIMCA99, Vienna, Austria, 17-19 Feb. 1999.
[17] C. Toffolon, S. Dakhli : " The Decision Process in Software Engineering: A Framework Based on The Real Options Theory ", Conference ICEIS99, Setúbal, Portugal, 27-30 March, 1999.
[19] C. Toffolon, S. Dakhli: " Software Evaluation and Control: A Framework of Software Engineering Meta-process ", Conference ESCOM/ENCRESS98, Rome, Italy, 27-29 May 1998.
[20] C. Toffolon, S. Dakhli,: " Software Projects Evaluation and Control: A Decision-Oriented Generic Framework ", Conference FESMA98, Antwerpen, Belgium, 06-08 May 1998.
Une approche globale dévaluation basée sur la théorie des dimensions du logiciel [12]
Salem Dakhli Claudine Toffolon
Université Paris-IX Dauphine, CERIA, France
Conférence ESCOM8, Berlin, Allemagne, 26-28 mai 1997
Résumé
Le génie logiciel peut être défini comme étant un ensemble de trois processus interreliés qui sont:
Un processus de production qui est un ensemble partiellement ordonné dactivités interreliées dont le but est la réalisation et la maintenance dun produit logiciel;
Un processus de support qui consiste en une conjonction dun modèle du processus de production et dune technologie permettant de le mettre en uvre;
Un méta-processus qui est un ensemble dactivités liées à lévolution des processus de génie logiciel ayant pour objectif dy introduire les innovations permettant dévaluer et daméliorer la qualité des artefacts et la structure des processus (y compris le méta-processus lui-même).
Ainsi, le méta-processus en génie logiciel comporte deux aspects: lévaluation des artefacts logiciels et lévaluation des processus, méthodes, outils afin de choisir les mieux adéquats pour produire ces artefacts. En effet, plusieurs approches, méthodes ou techniques de développement différentes peuvent potentiellement conduire à la réalisation dun même logiciel. De même, de nombreuses architectures logicielles et matérielles peuvent potentiellement répondre aux mêmes besoins fonctionnels tout en étant différentes. A ce jour, malgré labondance des recherches concernant lévaluation du logiciel, il nexiste pas dapproche globale prenant en compte tous les aspects du génie logiciel. Les tentatives dévaluation connues ne constituent que des vues partielles de portée limitée et négligent souvent létude de certains aspects, pouvant causer alors des biais dans les résultats et des erreurs dinterprétation. Par conséquent, lélaboration dun modèle conceptuel décrivant une approche dévaluation englobant tous les aspects du génie logiciel, est une condition préalable à toute tentative dévaluation dune entité constitutive de ce domaine.
Dans ce contexte, nous avons dabord identifié dix aspects majeurs des logiciels, nous parlons alors de dimensions du logiciel, sur la base desquelles on réalise un logiciel. Ces dimensions concernent le processus logiciel et les artefacts qui en résultent. Les cinq dimensions du processus de développement (coût, délai, technique, communication, organisationnelle) et les cinq dimensions du logiciel final (fonctionnelle, humaine, économique, organisationnelle, temporelle) montrent quun même logiciel peut refléter des réalités différentes selon les contextes organisationnel, social et économique auxquels il est destiné. La théorie des dimensions du logiciel, tout en expliquant la crise du logiciel, fournit un outil danalyse a priori, à dominante décisionnelle, qui permet de classer les dimensions, en tenant compte de la catégorie du logiciel et du contexte organisationnel et un outil danalyse et dévaluation a posteriori qui permet, sur la base de la mesure des composantes logicielles relativement aux différentes dimensions, de déclencher un processus itératif damélioration et de rectification des choix effectués. Dans un deuxième temps, nous avons élaboré sur la base de la théorie des dimensions, une approche dévaluation qui, en tenant compte du contexte social, organisationnel et technique de production et dutilisation dun logiciel, reste conforme au principe de rationalité limitée.
Lapproche que nous proposons permet dune part, de choisir entre plusieurs solutions logicielles, entre plusieurs méthodes, outils ou processus et dautre part, dévaluer la qualité dun artefact logiciel, sur la base dun classement des dimensions du logiciel et en fonction des priorités et des contraintes de lorganisation. Après une description de la technique de classement des dimensions, nous déduisons un algorithme de choix qui repose sur une fonction-score qui tient compte, en plus des caractéristiques propres de lorganisation, des aspects liés aux risques et à lincertitude. Une étude de cas, nous a permis de valider cette approche en permettant de répondre à deux questions qui concernent :
Une méthode de développement de logiciels en trois couches:
Fondements et Définitions [2]
Salem Dakhli Claudine Toffolon
Université Paris-IX Dauphine, CERIA, France
Conférence IEEE-ICECCS97, Côme, Italie, 8-12 septembre 1997
Résumé
Le rôle des systèmes dinformation (S.I.) dans les organisations modernes est sans cesse croissant. Les S.I. sont devenus une composante essentielle de la compétitivité des organisations dans lesquelles ils sinsèrent. Cependant, lindustrie du logiciel nest pas encore mature et toujours en crise. Les logiciels coûtent cher, les dépassements de budgets et de délais sont quasi généralisés, tandis que nombre des logiciels réalisés ne sont pas de qualité et ne répondent pas aux besoins des utilisateurs.
Même si la démarche dinformatisation des S.I. apparaît aujourdhui bien codée, le processus de réalisation des logiciels nest pas encore totalement maîtrisé. Il est clair que lensemble des solutions, approches, méthodes, techniques et outils qui ont été proposés ces dernières années ont contribué dans une large mesure à améliorer la productivité du processus de développement des logiciels et leur qualité mais il est vite apparu quils sont restés insuffisants pour résoudre complètement les problèmes liés à la crise du logiciel. En premier lieu, parce que ces solutions nont pas su prendre en compte tous les aspects des logiciels et en second lieu, parce quelles nont pas été fondées sur une analyse en profondeur des causes de la crise du logiciel.
Lobjet de cet article est de proposer une méthode de conduite de projet qui offre une solution globale à la crise du logiciel. Cette méthode est basée sur une théorie dite " des dimensions du logiciel " selon laquelle un logiciel peut être caractérisé par dix dimensions. Nous avons identifié ces dimensions à partir de létude des démarches dinformatisation et de lanalyse des effets de la crise. Ces dimensions nous ont aidé à dégager les sources de risques critiques en génie logiciel et à définir les instruments pour les réduire. Elles appartiennent à deux catégories et concernent respectivement le processus de développement du logiciel et le résultat de ce processus, liées aux facteurs organisationnels, techniques, économiques et humains des logiciels et des organisations dans lesquelles ils sinsèrent.
La méthode que nous avons élaboré comporte deux parties: une partie statique et une partie dynamique. La partie dynamique est divisée en trois couches: une couche organisationnelle, une couche architecturale et une couche logicielle. La couche logicielle sappuie sur une superstructure que constitue la couche organisationnelle et une infrastructre constituée par la couche architecturale. Chaque couche est supportée par trois processus interdépendants, évolutifs et itératifs: un processus de production, un processus de support et un méta-processus. Le processus de support qui consiste en une conjonction dun modèle du processus de production et dune technologie permettant de le mettre en uvre, porte sur la description des méthodes et des techniques réalisant les activités permettant de produire les artefacts logiciel. Ce processus est basé sur une représentation du modèle en spirale dans un sous-ensemble des dix dimensions. La partie dynamique de notre méthode décrit la mise en uvre et le contrôle de ces trois processus qui animent les trois espaces constituant le champ de déroulement dun projet informatique: lespace des problèmes, lespace des solutions et lespace de construction. La partie statique est organisée autour de référentiels qui capitalisent les ressources logicielles (architectures logicielles, modèles, techniques, outils,...) ainsi que les normes, les standards en vigueur dans lorganisation, nécessaires pour la mise en uvre de la partie dynamique de la méthode de conduite de projet.
Notre méthode met en évidence les apports du prototypage, de la réutilisabilité et du paradigme objet dans une approche évolutive dingénierie des logiciels sans interdire lutilisation de méthodes et de techniques conventionnelles de développement.
Après avoir décrit les aspects les plus importants de notre méthode, nous présentons une étude de cas pour la valider et nous concluons en identifiant une liste daméliorations futures potentielles
.Réutilisation et maintenance des artefacts logiciels:
Un modèle organisationnel [6]
Claudine Toffolon Salem Dakhli
Université Paris-IX Dauphine, CERIA, France
Conférence IEEE-CSMR98, 9-11 mars 1998, Florence, Italie
Résumé
Afin de faire face à la globalisation croissante des marchés et aux contraintes économiques et technologiques dun environnement en évolution permanente, les organisations utilisent les technologies de linformation comme instrument de compétitivité. Ainsi, le rôle des systèmes dinformation dans les organisations ne cesse de croître et évoluer. Ils supportent les processus opérationnels et décisionnels et représentent aujourdhui une composante essentielle des organisations. Toutefois, les bénéfices de linvestissement massif des organisations dans les technologies de linformation sont inférieurs à ceux escomptés, en partie à cause de la crise du logiciel dont les coûts élevés de maintenance et léchec de nombreux projets informatiques sont les symptômes les plus évidents. La plupart des solutions proposées à ce jour pour sortir de la crise du logiciel ont en partie échoué dune part, en raison de la complexité croissante des systèmes informatiques et dautre part, parce quelles ne prennent pas en compte tous les aspects du logiciel. Cest ainsi que depuis la fin des années 80, de nombreux auteurs voient dans la réutilisation et larchitecture logicielle, le moyen de sortir de la crise du logiciel en améliorant la productivité du processus de développement et la qualité des logiciels qui en sont issus. Cependant plusieurs problèmes liés à la réutilisation des artefacts logiciels et à leur maintenance demeurent. Tout dabord, de nombreuses études empiriques ont montré que la valeur ajoutée de la réutilisation de fragments de code est basse. Ensuite, les problèmes liés à lorganisation du cycle de vie des artefacts réutilisables constituent un frein à la réutilisation. Enfin, les rares méthodes de conduite de projet qui prennent en compte les aspects liés à la réutilisation dartefacts logiciels sont encore incomplètes et doivent être validées empiriquement. Par conséquent, afin de réaliser les bénéfices potentiels de la réutilisation dartefacts logiciels, deux problèmes doivent être résolus: dune part, les liens entre réutilisation et architecture logicielle doivent être définis et dautre part, les processus de développement, de maintenance et dutilisation dartefacts réutilisables doivent être décrits. Cest pour tenter de résoudre ces problèmes que les auteurs proposent dans cet article un modèle organisationnel de la réutilisation. Ce modèle, fondé sur la théorie économique de lagence et sur larchitecture logicielle, permet dune part, de comprendre les difficultés inhérentes à la réutilisation en génie logiciel et dautre part, de répondre aux questions liées aux problèmes listés ci-dessus, notamment:
Dans ce travail, les auteurs ont distingué quatre espaces, associés à chacun des acteurs du projet: larchitecte, le développeur, lutilisateur et le client/décideur. Ils ont examiné plus particulièrement les interrelations entre lespace darchitecture où larchitecte définit la solution informatique dun problème organisationnel soumis par les décideurs, et lespace de construction associé au développeur où la solution informatique est implémentée.
Le modèle décrit dans cet article a été utilisé en pratique dans le cadre de la définition et la mise en uvre dune politique de réutilisation dans une compagnie française dassurances.
Évaluation et contrôle du logiciel: Le méta-processus en génie logiciel [19]
Claudine Toffolon Salem Dakhli
Université Paris-IX Dauphine, CERIA, France
Conférence ESCOM/ENCRESS98, 26-28 mai 1998, Rome, Italie
Résumé
Le génie logiciel est " l'établissement et l'utilisation de principes technologiques bien établis afin d'obtenir de manière économique un logiciel fiable et fonctionnant efficacement sur de vraies machines ". Ainsi, en plus du développement et de la maintenance dartefacts logiciels, le génie logiciel comprend un ensemble dactivités, désignées par lexpression méta-processus, consistant en lintroduction dinnovations, l'évaluation et l'amélioration de la qualité des artefacts logiciels et de la structure du processus de production du logiciel. Le méta-processus en génie logiciel comporte deux aspects: lévaluation des artefacts logiciels et lévaluation des processus, méthodes et outils afin den choisir les plus appropriés pour produire ces artefacts. En effet, diverses approches, méthodes ou technologies de développement sont possibles pour réaliser un logiciel. De la même manière, divers logiciels et architectures matérielles peuvent potentiellement répondre aux mêmes besoins fonctionnels. La littérature sur le sujet de l'évaluation en génie logiciel est très riche et abondante et de nombreuses méthodes et technologies comme le paradigme "GQM" (Goal-Question-Metric), le modèle de maturité technologique (CMM) ou le modèle ISO/IEC 9126 sont proposés. Néanmoins, l'utilisation de ces modèles bien établis est à l'origine de deux types de problèmes. D'une part, il est souvent difficile de définir l'ensemble des métriques permettant de répondre aux objectifs d'évaluation. D'autre part, ces modèles donnent seulement une vue partielle et de portée limitée du logiciel, et omettent souvent d'étudier beaucoup d'autres aspects, ce qui peut biaiser les résultats et mener à des interprétations fausses. Aujourdhui, malgré labondance des travaux relatifs à lévaluation, il nexiste aucune approche globale d'évaluation et de contrôle qui tient compte de tous les aspects du logiciel. Dans cet article, nous proposons un cadre décrivant une approche globale d'évaluation prenant en compte tous les aspects du logiciel ainsi que les points de vue et les intérêts conflictuels des différents acteurs du projet. En effet, l'évaluation en génie logiciel correspond aux besoins exprimés par les différents acteurs de lorganisation qui sont des producteurs ou des consommateurs de logiciel, et implique généralement un grand nombre de facteurs réels et intangibles. Ignorer totalement ou partiellement certains de ces facteurs peut mener à des résultats d'évaluation erronés et par conséquent à une décision erronée. Ce cadre est composé de trois parties. Dans un premier temps, nous utilisons la théorie économique de lagence pour modéliser le génie logiciel comme un nud de contrats entre différents acteurs avec des intérêts et des points de vues qui peuvent être contradictoires. Les acteurs dun projet logiciel appartiennent aux quatre espaces identifiés par les auteurs dans des travaux précédents: l'espace des problèmes, l'espace des solutions, l'espace de construction et l'espace d'opération. Chaque espace se caractérise par un sous-ensemble des dix dimensions du logiciel. Dans un deuxième temps, nous employons ce modèle pour expliquer les coûts, les avantages et les risques dun projet logiciel. Par exemple, nous identifions deux sources de coûts dun logiciel: les coûts opérationnels, et les coûts d'agence. Les coûts d'agence sont liés aux divergences entre les objectifs des acteurs concernés par le logiciel. Finalement, nous employons les dimensions du logiciel pour définir, pour chaque acteur, un ensemble de métriques qui lui permet d'évaluer les logiciels selon son propre intérêt et point de vue. Ces métriques fournissent d'une part, des instruments dévaluation " a priori " pour contrôler le projet et aider les responsables dans la prise de décision, et d'autre part, des instruments dévaluation " a posteriori " des logiciels.
Nous avons validé ce cadre de travail de deux manières différentes. Tout d'abord, nous avons démontré qu'il est compatible avec de nombreux de modèles d'évaluation existants. Ensuite, nous l'avons appliqué pour évaluer des artefacts logiciels réutilisables et pour comparer deux stratégies de développement: "le développement avec réutilisation " et le " développement sans réutilisation ".
Evaluation et contrôle des projets informatiques:
Un modèle générique orienté décision [20]
Salem Dakhli Claudine Toffolon
Université Paris-IX Dauphine, CERIA, France
Conférence FESMA98, 6-8 mai 1998, Anvers, Belgique
Résumé
Le génie logiciel est un ensemble dactivités de conception et de réalisation destinées à rationaliser la production, le contrôle et le suivi de projets informatiques. Il est basé sur trois processus: le processus de production, le processus de support et le méta-processus. Ce dernier est lensemble des activités du processus de génie logiciel consistant liées à lintroduction des innovations, lévaluation et lamélioration de la qualité des artefacts logiciels et de la structure des processus (y compris le méta-processus lui-même).
La complexité, lincertitude et les risques sont trois caractéristiques intrinsèques du processus de production du logiciel. Ces caractéristiques sont liées dune part, aux dimensions du logiciel identifiées dans un précédent travail1 , dautre part aux attributs des processus métier supportées par les systèmes informatiques, et enfin à limportance du nombre de méthodes, techniques et outils proposés pour supporter le processus de production du logiciel. Le processus de production du logiciel comporte deux types dincertitudes: lincertitude technique et lincertitude économique. Lincertitude technique est endogène au processus de décision et fait référence aux facteurs inconnus inhérents au développement dartefacts logiciels: délai, effort, technologies requises,... Lincertitude économique est exogène au processus de décision et fait référence aux événements incontrôlables directement par lorganisation: événements politiques, changements des taux dintérêt,...Le méta-processus du génie logiciel fournit un ensemble dapproches et doutils dévaluation et de contrôle permettant de réduire les effets de la complexité, de lincertitude et des risques inhérents au processus de production du logiciel. A ce jour, malgré la richesse de la littérature relative à lévaluation, il nexiste pas dapproche globale dévaluation et de contrôle qui prend en compte tous les aspects du génie logiciel. Par exemple, les approches dévaluation basées sur la règle de la Valeur Actualisée Nette (VAN) ne prennent pas en compte les événements incertains susceptibles de survenir au cours du développement du logiciel. Par ailleurs, ces approches supposent que les risques et lincertitude inhérents au processus de production du logiciel ne changent pas au fur et à mesure que les managers prennent des décisions. Dans ce papier, nous proposons un modèle générique dévaluation orienté aide à la décision et basé sur le prototypage, la théorie de la décision économique et la théorie des options. Ce modèle concerne lévaluation et le contrôle des projets informatiques à risques et permet aux managers de prendre des décisions intermédiaires de continuer, de différer ou dannuler ces projets afin de réagir aux événements incertains. Ce modèle peut être utilisé pour décrire des méthodes et des outils nécessaires pour réduire lincertitude à laide du prototypage, et pour évaluer le retour sur investissement des technologies du logiciel (modèles darchitecture, méthodes orientées objet,...).
Afin de valider le modèle générique proposé, nous lavons utilisé pour évaluer le retour sur investissement du développement dun kit dartefacts réutilisables, et déterminer la valeur de linformation fournie par le prototypage rapide dans plusieurs banques et compagnies françaises dassurance. Pour atteindre ce but, nous avons défini un ensemble de métriques nécessaires pour mesurer les inputs, les outputs et les bénéfices des artefacts réutilisables et du prototypage rapide. Lanalyse des données collectées nous a permis de conclure notamment que:
Un modèle générique pour lanalyse et la réduction des inconsistances du logiciel [3]
Claudine Toffolon Salem Dakhli
Université Paris-IX Dauphine, CERIA, France
Conférence IEEE-COMPSAC98, Vienne, Autriche, 19-21 août 1998
Résumé
Malgré limportance économique et fonctionnelle des systèmes informatiques dans les organisations modernes, le développement et la maintenance du logiciel sont considérés comme des activités à haut risque. En effet, un nombre important de projets informatiques n'aboutissent pas aux logiciels répondant aux besoins des utilisateurs en respectant les contraintes de budget et de délai. Par ailleurs, selon G. Wierderhold, la part de la maintenance dans le coût global du logiciel dans lindustrie atteint environ 60 à 85%. Le nombre important de projets informatiques qui échouent et les coûts élevés de la maintenance logicielle constituent les ramifications économiques de la crise du logiciel. Les ramifications sociales de cette crise concernent la résistance des utilisateurs à la mise en uvre des systèmes informatiques dans les organisations. La crise du logiciel apparaît comme la plus importante cause du " paradoxe de la productivité " mis en évidence par de nombreux auteurs. Les solutions proposées à ce jour pour sortir de la crise du logiciel ne sont pas appropriées, dune part en raison de la complexité croissante des systèmes informatiques et dautre part, parce quelles ne prennent pas en compte tous les aspects du logiciel. En particulier, ces solutions ne mettent pas suffisamment laccent sur les causes réelles de la crise du logiciel. Cela ne signifie pas que les paradigmes, les méthodes, les outils et les technologies utilisés jusquaujourdhui sont mauvais. Bien au contraire, nous pensons quils fournissent des instruments efficients pour remédier à certains aspects de la crise du logiciel, si les vrais problèmes sont identifiés et bien connus. Par conséquent, pour élaborer une solution de la crise du logiciel, il faut tout dabord identifier les causes réelles de cette crise et ensuite définir les processus, les méthodes et les outils les plus appropriés pour éliminer ces causes.
Cet article fournit un cadre qui dune part, permet de comprendre les causes de la crise du logiciel et dautre part, propose un processus de développement permettant aux développeurs déliminer ces causes. A la place de la vue traditionnelle du génie logiciel comme un ensemble dactivités de spécifications, de conception et de réalisation, ce cadre basé sur la théorie économique de lagence permet de modéliser le génie logiciel en termes de contrats entre des acteurs organisationnels qui interagissent et qui ont des points de vue et des intérêts conflictuels. Ainsi, les causes réelles de la crise du logiciel sont dues aux inconsistances résultant des discrépances entre les objectifs des acteurs du projet. Ce travail fournit notamment:
Le cadre décrit dans ce papier met laccent sur le fait que les paradigmes, les approches, les méthodes et les outils existants peuvent faciliter la réduction de ces inconsistances sils sont intégrés dans un processus global de développement qui:
Software Rapid Prototyping Evaluation [15]
Claudine Toffolon Salem Dakhli
Université de Paris-IX Dauphine, CERIA, France
UKSMA98 Conference, London, UK, October 1998
Abstract
Software rapid prototyping is an instrument which may be used to reduce uncertainty inherent in software engineering. In particular, it provides information needed to choose the most appropriate computer solutions, technologies, methods and tools to build the software products meeting the organizations requirements. This information permits reducing the impacts of communications problems between the software project actors. For example, software rapid prototyping makes it possible to describe the users needs with precision and is useful to assess the impacts of an architecture model, a process or a new software technology on the universe of discourse. Nevertheless, software rapid prototyping corresponds to an irreversible investment which have two characteristics: firstly, its level depends on the quantity of information sought to reduce uncertainty and secondly, its profitability is dubious. By another way, information provided by software rapid prototyping may result in more complex software, additional development and maintenance costs, and higher risks of failure. Consequently, an a priori evaluation of software rapid prototyping costs, benefits and risks must be undertaken before building a software prototype in order to answer the following questions:
In this paper, we propose a decision oriented framework to manage software rapid prototyping process, based on a set of metrics and decision rules. To validate this framework, we have used it to manage rapid prototyping activities of many object oriented software development processes in a French insurance company. The results of these experiences are described in this paper.
The Decision-Making Process Improvement:
A Framework Based on the Option-Pricing Theory [16]
Claudine Toffolon Salem Dakhli
Paris-Dauphine University, CERIA, France
CIMCA99 conference, Vienna, Austria, February 1999
Abstract
Decision-making plays a central role in determining the shape of modern organizations and helping them to take into account their internal and environmental constraints. Many authors have proposed paradigms to cope with the difficulties inherent in the decision-making process. For example, [Marshak et al. 72] proposed an information economics view to study the impacts of the information structure and the information value on the decision-making process. By another way, the relationships between this process and the organizations environmental forces (increased speed, complexity, turbulence,...) have been analyzed by [Huber et al. 86]. More recently, [Stohr at al. 92] stressed the role of information technology in the support of the organizations decision-making processes. Nowadays, in spite of the richness of literature on the subject of decision-making, many problems and difficulties related to the ability of organizations to make effective and timely decisions, are still unsolved. Firstly, almost all decisions problems involve the simultaneous consideration of several different objectives and conflicting interests and points of view. Indeed, according to the economic agency theory [Alchian et al. 72], an organization is a nexus of contracts among self-interested individuals. Each agency contract links a principal (entrepreneur) and agents (employees) in order to perform some service. The economic agency theory is based on the following assumption: each agent maximizes its proper utility and pays no regard to the welfare of the principal or non-pecuniary virtues. The discrepancies between the objectives of the principal and those of agents result in conflicting objectives that must be taken into account in the decision-making process. Secondly, complexity, uncertainty and risks are three intrinsic characteristics of the decision-making process. These characteristics are related, on the one hand to the attributes of the organizations business processes and on the other hand, to the organizations environmental constraints. In particular, in each organization, the decision-making process must cope with two kinds of uncertainty: technical uncertainty and economic uncertainty. Technical uncertainty is endogenous to the decision process and refers to the unknowns involved in the organizations operational and decision-making processes: time, effort and technologies required,... Economic uncertainty is exogenous to the decision process and refers to unexpected events beyond the direct control of the organization: political events, changes in interest rates,... Many methods and tools proposed to cope with the uncertainty inherent in the decision-making process are based on the economic decision theory. These methods present many problems: for example, they assume that the organizations business processes uncertainty and risks dont change as managers make decisions. By another way, the proposed methods are based on only one time period and dont consider that a decision-maker may make intermediary decisions to continue, postpone or alter some actions in order to respond to uncertain events. In this paper, we use the option-pricing theory to improve the decision-making process especially when decisions are irreversible. We assume that an irreversible decision corresponds to a capital investment opportunity comparable with a call option. Therefore, the decision-making process we propose in this work is based on an investment tree and considers uncertainty over many time periods. In particular, this process stresses that complexity reduction and uncertainty reduction are conflicting objectives. Indeed, information resulting from uncertainty reduction increases the complexity of the decision-making process. So, the decision-making process description includes an algorithm to compute the value of information. In order to validate the proposed framework, we use it to understand the software development process and to evaluate the return on investment of many tasks composing this process.
References
[Alchian et al. 72] Alchian A.A., Demsetz H.: " Production, Information Costs and Economic Organization ", American Economic Review, Vol. 62, No. 5 (Dec. 1972), pp. 777-795.
[Huber et al. 86] Huber G.P., McDaniel R.R.: " The Decision-Making Paradigm of Organizational Design ", Management Science, Vol. 32, No. 5, 1986, pp. 572-589.
[Marshak et al. 72] Marshak J., Radnor R.: " Economic Theory of Teams ", Yale University Press, New Haven, Connecticut, 1972.
[Stohr et al. 92] Stohr E.A., Konsynski B.R.: " Information Systems and Decision Processes ", IEEE Computer Society Press, Los Alamitos, California, 1992.
The Decision Process in Software Engineering:
A Framework Based on The Real Options Theory [17]
Claudine Toffolon Salem Dakhli
Université Paris-IX Dauphine, CERIA, France
ICEIS99 conference, Setùbal, Portugal, March 1999
Abstract
Software engineering is " the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines ". Therefore, software engineering is a set of design and implementing activities intended to rationalize production, control and monitoring of software projects. It comprises four processes: a production process, a support process, a meta-process and a decision process. The production process is a partially orderly set of interrelated development and maintenance activities of software artifacts. The support process is a conjunction of a production process model and a technology implementing this model. The meta-process is a set of activities related to software engineering process which consist in introducing innovations, evaluating and improving the quality of software artifacts and process structure (including the meta-process itself). The decision process uses information provided by the meta-process to make decisions related either to a stimulus or to the performance of the organizations business and management processes. These four processes are interrelated and may be considered as meta-activities belonging to an iterative process which takes place according to the Boehms spiral model. Indeed, the software production process rests on the software support process, the software support process activities are selected and undertaken according to the decision process results, the decision process is based on the evaluation results of the meta-process, the meta-process is applied to the outputs of the three other processes. Existing software development processes, approaches and methods used in software engineering have many weaknesses. In particular, the decision process inherent in software engineering has been ignored by the majority of methods and tools suggested to date. Many authors have tried to take into account some aspects related to the decision-making process during software development and maintenance lifecycles. Their work, which rests on the economic decision theory, presents some disadvantages. In particular, it is based on the Net Present Value technique which is not compliant with the Simons Bounded Rationality Principle, and lead to " now or never " decisions.
We think that without describing the decision process inherent in software engineering, the ability of software developers and project managers to accommodate all risks and accurately schedule complex projects in changing environments, is seriously challenged. In this paper, we propose a framework to formalize the decision process inherent in software engineering. This framework, based on the call option theory, rests on the following assumption: each software project is a succession of irreversible investment decisions corresponding to the activities needed to develop software artifacts. The real options theory is applicable to evaluate design decisions made during the software development process since these decisions are, in general, irreversible and uncertain. So, the evaluation of a design decision can lead to four strategies: make follow-on the investment corresponding to this activity, postpone the activity, abandon the activity, invest to get more information about this activity. The real options theory provides instruments to manage software iterative lifecycles, in particular software rapid prototyping. Indeed, since software rapid prototyping requires an irreversible and uncertain investment in limited resources whose level depends on the quantity of required information, it corresponds to a call option that can be exercised by the software developer.
Our paper is organized as follows. Section 1 is an introduction which synthesizes the problems encountered in software engineering, in particular those related to the decision process, and describes the purpose of the paper. Section 2 describes the real option theory and proves how this approach is suited to cope with software project management and decision-making. In section 3, we apply the real options theory to define an evaluation approach which views design decisions as irreversible investments under uncertainty. Section 4 presents a spiral model, which shows the relationships between the four processes related to software engineering activities. In section 5, we present a case study and conclude this paper by listing lessons learned and research directions.
Software Reusable Artifacts Evolution:
A Three Levels of Abstraction Framework [7]
Claudine Toffolon Salem Dakhli
Paris-Dauphine University, CERIA, France
INCOSE99 conference, Brighton, England, June 1999
Abstract
Since the late 80's, many studies dedicated to the analysis of the payoffs resulting from the investments in information technology, have focused on the " productivity paradox ". This paradox is related to the little contribution of information technology to organization productivity. Many authors lay stress the critical role of software products in modern organizations competitiveness and conclude that the productivity paradox is one aspect of the so-called " software crisis ". This crisis is going on but is nowadays more critical as organizations can not exist without operational software.
In that context, software reuse is a key technology which permits organizations to cope with many aspects of the software crisis (maintenance costs and development cycle times reduction, software systems quality increase). Software reuse consists in the utilization of existing software artifacts in an environment different from that it was originally intended, to build software systems by assembly with other artifacts. Although software reusable artifacts may be plugged into a new project without modification (black-box reuse), software reuse usually implies changing some aspects of reusable artifacts (white-box reuse).
However, despite the potential benefits of software reuse, current reuse methods, techniques and tools fail to improve the software development process productivity and the software products quality. Indeed, software reuse is, on the one hand, limited in most cases to fragments of source code programs with low added value while, on the other hand, problems related to the organizing of reusable artifacts lifecycle put a brake on its progress. Furthermore, the few software development methodologies which take these topics into account are not complete and need to be validated empirically. By another way, the complexity of the software reuse process has been highlighted by numerous studies which demonstrate notably that the cost-effectiveness of this paradigm is still an open question. In addition of the technical difficulties, we think that the complexity of the software reuse process results from two factors. Firstly, the software reuse process is strongly dependent of three types of activities: reusable artifacts development, maintenance and configuration management. Secondly, the software reuse process is based on two strategies, the " development with reuse " strategy and the " development for reuse strategy " which have conflicting goals.
Consequently, to realize all the potential benefits of software reuse in terms of software engineering productivity and software products quality improvements, many organizational and technical problems must be solved. In this paper, we propose a three-levels of abstraction (conceptual, organizational, technical) framework to describe the reusable artifacts evolution activity. The conceptual level lists the main tasks of the evolution activity and the data flows they exchange. The organizational level describes the actors contributing to the evolution activity and the evolution tasks carried out by each actor. The technical level emphasizes the version control problems resulting from reusable artifacts evolution and defines a set of basic rules to cope with these problems. This framework is based on the software engineering model we have defined in a previous work. This paper is organized as follows. In section 2, we present the software engineering model. Section 3 describes the structural aspects of the " software reuse environment " proposed in this work. Section 4 defines and discusses the conceptual and organizational models of our framework. In section 5, we offer a short insight into the version control aspects of reusable artifacts evolution activity. Section 6 concludes this paper by presenting research directions and lessons learned from using the proposed framework in many real cases.
Un cadre générique dinformatisation des organisations [5]
Claudine Toffolon Salem Dakhli
Université Paris IX-Dauphine, CERIA, France
Conférence MFPE99, Tunis, Tunisie, mai 1999
Résumé
Le système dinformation (S.I.) et sa partie automatisée jouent un rôle à la fois stratégique, tactique et opérationnel dans les organisations, contribuant fortement à leur croissance et leur pérennité. Il constitue un outil de compétitivité, un catalyseur de linnovation, il crée les conditions favorables à lamélioration de lefficacité et de la réactivité de lorganisation tout en favorisant la prise de décision. Ainsi, selon certains spécialistes, les organisations qui auront les meilleurs S.I. domineront léconomie des prochaines décennies. Cependant, le processus dinformatisation des systèmes dinformation demeure dans les années 90 la préoccupation majeure des organisations, sa maîtrise nétant pas encore acquise. En effet, le développement et la maintenance de produits logiciels sont encore considérés comme des activités à haut risque, et la valeur ajoutée résultant des importants investissements en technologie de linformation est souvent inférieure aux prévisions. Ainsi, depuis les débuts des activités de réalisation de logiciels, constituant ce que lon appelle désormais le génie logiciel, parle-t-on de " crise du logiciel ". Cette crise se manifeste à travers les coûts élevés de maintenance logicielle, le nombre important déchecs de projets informatiques, et les phénomènes de résistance aux changements organisationnels et sociaux déclenchés par lintroduction dun nouveau logiciel dans lorganisation. Ces effets économiques et sociaux génèrent des coûts supplémentaires pour lorganisation qui amplifient le phénomène de " crise du logiciel ". Certes, les solutions proposées à ce jour pour sortir de la " crise du logiciel " contribuent de façon significative à lamélioration de la productivité du processus de développement de logiciels et de la qualité des produits qui en sont issus. Néanmoins, ces solutions sont insuffisantes, en partie parce quelles privilégient les aspects techniques et ignorent les autres aspects du logiciel. Par ailleurs, ces solutions comportent une confusion entre plusieurs points de vue différents qui reflètent les intérêts parfois conflictuels des différents acteurs de lorganisation concernés par le développement dun système informatique. En particulier, la confusion ou lignorance de ces intérêts et points de vue résultent en premier lieu de faiblesses des méthodes de spécification des besoins. Sortir de la " crise du logiciel ", suppose tout dabord, lidentification des causes de cette crise, ensuite la définition des instruments logiciels permettant dagir sur ces causes et den limiter les effets et enfin, de mettre en place un processus dévaluation et damélioration continue des solutions proposées. Dans cet article, nous proposons un cadre générique dinformatisation des organisations qui permet de traiter de nombreux aspects importants de la " crise du logiciel ". Ce cadre, dit " modèle des cinq spirales " est basé sur un modèle global du génie logiciel élaboré à laide de la théorie économique de lagence et la théorie des dimensions du logiciel. Le modèle global du génie logiciel que nous proposons permet de prendre en compte tous les aspects du logiciel ainsi que les points de vue et les intérêts des différents acteurs concernés par un projet informatique. Cet article est organisé de la manière suivante. Le premier paragraphe est une introduction qui définit le problème traité dans larticle sur la base dune analyse de lexistant notamment des ramifications de la " crise du logiciel " et des insuffisances des solutions proposées. Le deuxième paragraphe présente succinctement le modèle global du génie logiciel sur lequel repose notre cadre de travail. Dans le troisième paragraphe, nous décrivons le modèle de processus de production de logiciel, dit " modèle des cinq spirales ", que nous proposons et qui améliore et complète le modèle en spirale de Boehm. Le " modèle des cinq spirales " comporte cinq processus interreliés dont les quatre premiers supportent les métiers des différents acteurs impliqués dans un projet informatique. Ce sont les processus organisationnel, architectural, logiciel, opérationnel et de coordination. Enfin nous concluons larticle dans le quatrième paragraphe en décrivant les principaux enseignements de lexpérimentation de ce processus ainsi que les futures directions de recherche.
Informatisation des processus complexes:
Un modèle générique pour réduire les incertitudes [4]
Claudine Toffolon Salem Dakhli
Université de Paris-Dauphine, CERIA, France
Conférence Mosim99, Annecy, France, octobre 1999
Résumé
Le contexte économique de cette fin du vingtième siècle a profondément changé, certains auteurs parlent de nouvelle révolution industrielle pour expliquer la rupture avec lenvironnement économique passé de production de masse, de stabilité et de croissance, et lémergence dune " ère informationnelle ", une société post-industrielle à haute teneur en information où les changements sont incessants, souvent inattendus et lenvironnement incertain. Cela signifie pour les organisations de chercher sans cesse à sadapter à un monde en évolution, en " révolution " permanente où plus rien nest constant ni prévisible. Dans ce contexte, le bon fonctionnement voire la survie dune organisation moderne est conditionné par la mise en place d'une communication cohérente et fluide aussi bien entre ses différentes composantes qu'avec son environnement externe. L'essence de cette communication est l'information qui n'a donc d'utilité que si elle est exploitée et mise à disposition de façon optimale. L'augmentation du volume d'informations à traiter et la complexité croissante de la communication dans les organisations ont amené ces dernières à se doter de systèmes d'information afin de gérer efficacement la ressource stratégique qu'est devenue l'information. Lautomatisation du système dinformation grâce à lemploi des technologies de linformation devant permettre à cet égard, de faciliter et améliorer le traitement de l'information en privilégiant sa circulation et sa mise à disposition auprès de l'utilisateur final, notamment pour laider dans ses décisions. Cependant, le processus dinformatisation des systèmes dinformation demeure dans les années 90 la préoccupation majeure des organisations, sa maîtrise nétant pas encore acquise. Ainsi, depuis les débuts de lactivité de réalisation de logiciels, constituant ce que lon appelle désormais le génie logiciel, parle-t-on de crise du logiciel. Cette crise est dautant plus préoccupante que le coût du logiciel représente une part importante dans léconomie des pays.
La crise du logiciel découle en grande partie du fait que le processus de développement de systèmes informatiques nest pas encore bien maîtrisé. En effet, les tâches composant ce processus sont à la fois complexes et incertaines. Par conséquent, le succès de l'informatisation des organisations passe nécessairement par la réduction de la complexité et des incertitudes inhérentes à ce processus. Notons que la réduction des incertitudes et la réduction de la complexité ont souvent des effets contradictoires. En particulier, l'information obtenue lors de la réduction des incertitudes rend le développement d'un logiciel plus complexe.
Dans cet article, nous étudions le rôle du prototypage rapide ou informatif dans la réduction de l'incertitude inhérente à l'informatisation des processus organisationnels complexes. Afin de mieux maîtriser le prototypage dans le cadre de linformatisaton des processus organisationnels, nous proposons une démarche en trois étapes. Tout dabord, il est nécessaire de définir un modèle dinformatisation qui prend en compte dune part, tous les aspects du logiciel notamment économiques, organisationnels et humains; dautre part, tous les acteurs concernés par le logiciel au sein de l'organisation, acteurs qui ont des intérêts et des points de vue contradictoires voire conflictuels; et enfin tous les métiers impliqués dans le processus d'informatisation.
La deuxième étape de notre démarche consiste à définir une classification des prototypes basée sur le modèle dinformatisation issu de la première étape. Selon cette classification, un prototype comporte quatre facettes : la portée (processus ou produit), la dimension, lespace et lacteur. Ainsi, le prototypage informatif est un instrument de réduction de toutes les incertitudes inhérentes à linformatisation quelles soient liées à la technologie de linformation, au contexte organisationnel ou encore aux acteurs impliqués dans linformatisation.
La troisième étape de notre démarche propose un cadre générique pour évaluer le prototypage informatif. Dune part, ce cadre permet de déterminer le nombre optimal ditérations. Dautre part, il assimile le prototypage à une option que les acteurs organisationnels peuvent lever ou non. La levée de loption dinvestir dans le développement dun prototype informatif est associée à un coût dit "dopportunité " qui traduit la perte de lopportunité de choisir le moment dinvestir. Ainsi, le cadre dévaluation du prototypage permet de corriger les faiblesses des approches d'évaluation existantes basées sur la technique de la valeur actualisée nette (VAN).
Pour valider notre démarche, nous lavons utilisée dans le cadre de linformatisation du service international dune compagnie dassurances. Les leçons de cette expérience et les futurs axes de recherche sont décrits succinctement dans cet article.
Un modèle générique darchitecture logicielle: le " modèle de léchelle " [8]
Claudine Toffolon Salem Dakhli
Université de Paris-IX Dauphine, CERIA, France
Document de travail
Résumé
Les méthodes, approches, technologies et outils de génie logiciel existants ont contribué jusquà un certain degré à lamélioration de la productivité du développement de logiciels ainsi quà la qualité des artefacts logiciels qui en sont issus. Néanmoins, ces améliorations sont insuffisantes pour sortir complètement de la crise du logiciel et minimiser ses impacts négatifs dordre économiques et sociaux.
Lanalyse des échecs dans la conduite de projets informatiques qui sont intervenus dans les quatre premières ères identifiées par V. Basili and J. Musa, montrent que lamélioration des processus de développement et de maintenance du logiciel reposent sur deux hypothèses majeures:
Seuls quelques auteurs ont mis laccent simultanément sur ces deux hypothèses en définissant les méthodes de développement nécessaires pour sortir de la crise du logiciel. Par exemple, les auteurs ont dune part, prouvé que la prise en compte de ces deux hypothèses conduit à distinguer les métiers du client/organisateur, de lutilisateur final, de larchitecte et du développeur et dautre part, défini quatre espaces associés respectivement à chacun de ces métiers: lespace des problèmes associé au métier du client/organisateur, lespace dopération associé au métier de lutilisateur final, lespace des solutions associé au métier de larchitecte et lespace de construction associé au métier du développeur. En particulier, le rôle de larchitecte consiste à définir, dans lespace des solutions, la solution logicielle du problème du client/organisateur alors que le rôle du développeur est dimplémenter cette solution dans lespace de construction.
Ainsi, larchitecture logicielle joue le rôle dinfrastructure du processus de développement puisquelle fournit un ensemble dartefacts logiciels (modèles, composants,...) qui capitalisent lexpérience et le savoir-faire de lorganisation. Par conséquent, le génie logiciel est entré aujourdhui dans une nouvelle ère, lère de larchitecture, caractérisée par la définition dun produit logiciel comme un assemblage dartefacts logiciels, en grande partie réutilisables, qui fournissent les services nécessaires à lorganisation et qui peuvent être acquis sur le marché ou développés au sein même de lorganisation. Larchitecture logicielle est la condition préalable pour développer des logiciels ouverts, évolutifs et de grande qualité compatibles avec les besoins et les contraintes de lorganisation. De ce fait, larchitecture logicielle doit être prise en compte par les méthodes de développement de logiciels:
La réutilisation dartefacts logiciels dans le cadre de la définition de larchitecture dun produit logiciel est la source de plusieurs coûts: les coûts de recherche, les coûts de customisation, les coûts de maintenance, les coûts de gestion de configuration. Ainsi, lélaboration efficace dune architecture logicielle repose sur la définition et lorganisation dun référentiel darchitecture afin de minimiser les coûts listés ci-dessus. Lobjet de cet article est dune part, de proposer une définition rigoureuse de larchitecture logicielle, dautre part de décrire son rôle et ses motivations et enfin, de proposer un modèle global darchitecture, dit " modèle de léchelle " qui facilite la construction et lutilisation efficace du référentiel architectural de lorganisation. Le modèle générique décrit dans cet article fournit les éléments de base nécessaires pour la définition dun langage darchitecture qui permet aux développeurs déviter les interprétations erronées et qui facilite la réutilisation dartefacts logiciels. Ce modèle générique a été utilisé pour organiser lensemble des artefacts réutilisables acquis sur le marché par une compagnie française dassurance, et pour définir une politique de réutilisation au sein de cette compagnie. En particulier, le " modèle de léchelle " a été utilisé pour élaborer un modèle organisationnel pour la maintenance et la gestion de configuration des artefacts logiciels réutilisables nécessaire pour établir le lien entre le référentiel architectural et les projets informatiques.
Requirements Elicitation Process:
An Iterative Approach Based on the Spiral Model [9]
Claudine Toffolon (1) Salem Dakhli (2)
(1) Littoral University, LIL, France
(2) Paris-Dauphine University, CERIA, France
ISCIS'99 Conference, Izmir, Turkish, October 1999
Abstract
The value obtained from organizations vast investment in information technology is often less than expected, due in large measure to the software crisis. The software crisis has two main ramifications: social and economic. Social ramification of the software crisis is characterized by users resistance, stress and productivity loss. Economic ramification of the software crisis is characterized by software development costs and schedule slippages and maintenance burden. In particular, many software projects are two or three times over their schedule and budget. By another way, delivered systems often fail to meet users needs and are difficult and expensive to change. Many authors stress the fact that requirements deficiencies are among the most important contributors to the software crisis. They point out that approaches and techniques provided by existing software development methods to carry out requirements elicitation and management process are often insufficient. Too often, software systems dont adequately meet all the stakeholders true requirements. This paper provides an iterative approach based on software prototyping to improve the software requirements elicitation process. This approach is based on a framework which models the stakeholders points of view and interactions.
A framework for Studying the Coordination Process in Software Engineering [10]
Claudine Toffolon Salem Dakhli
Paris-Dauphine University, CERIA, France
14th ACM Symposium on Applied Computing (SAC 2000), Villa Olmo, Como, Italy, 19-21 mars 2000
Abstract
Despite the economic and functional importance of software systems in modern organizations, activities related to software engineering are still regarded as complex and high-risk activities. The complexity inherent in the software engineering discipline originates from three aspects. On the one hand, the organizations business processes supported by software are complex and continuously evolving. On the other hand, software engineering exists in a larger environment of entire systems involving various technical, economic, human and organizational factors. Finally, software engineering is based on many interdependent processes involving many interacting stakeholders with conflicting interests and points of view. The management of dependencies between stakeholders activities corresponds to the coordination process. This process plays a key role in software engineering notably because of the large use of networks, distributed computing and groupware technology. Nevertheless, coordination activities are neglected by well established methods and tools in software engineering, which stress in particular the technical aspects related to development and maintenance of software systems. In this paper, we propose a framework for studying the foundations and the basic activities of the coordination process. Since the coordination process consists in managing dependencies between software engineering activities, our framework has two major objectives. The first objective consists in identifying the different categories of stakeholders and characterizing their interactions and the dependencies between their activities resulting from these interactions. The second objective is the description of the appropriate coordination activities that can be used to manage these dependencies. This framework is based on the software model proposed by the author. This model rests on three paradigms: the economic agency theory, the transaction costs theory and the software dimension theory. According to the software model, software systems development, maintenance and use take place in four spaces: the operation space associated with the end user business, the problem space associated with the customer business, the solution space associated with the architect business and the construction space associated with the developer business. The software model is used to determine the dependencies between the stakeholders. So, we distinguish two kinds of dependencies: intra-space (vertical) dependencies and inter-spaces (horizontal) dependencies. To manage vertical and horizontal dependencies, we propose a coordination process composed of two layers. The first layer relates to the informal coordination activities while the second layer corresponds to the formal coordination activities which are supported by formal organizational procedures stored in a repository, called the coordination repository. The ISO9001 norm provides examples of procedures that can be used to support formal coordination activities. In our framework, the first layer of the coordination process is supported by a negotiation process. The Win-Win process is an example of such process. The negotiation process consists in eliminating conflicts and discrepancies between producers and consumers of artifacts needed to build a software system. It may use various approaches and techniques like, for example, rapid prototyping, interviews and cost/benefit analyzis. Informal coordination activities constitute generally a preliminary step before formal coordination activities. So, the negotiation process may lead to three possible actions: the use of an existing formal procedure stored in the coordination repository, the customization of an existing formal procedure stored in the coordination repository, or the definition of a new formal procedure.
Consequently, the coordination repository is continuously and repeatedly improved and enriched. In this paper, in addition to the description of the two layers of the coordination process and the structure of the coordination repository, we provide examples of formal coordination procedures. To validate this framework, we use it in a French insurance company to build a workflow system which implements the horizontal (inter-spaces) coordination activities as well as the vertical (intra-space) coordination activities within the solution and construction spaces. This workflow system and the lessons learned from this experience are described in this paper.
Human-Centered Systems Development and Use Inconsistencies [11]
Claudine Toffolon (1) Salem Dakhli (2)
(1) Littoral University, LIL France
(2)Paris-Dauphine University, CERIA, France
Conférence HCP'99, Brest, France, septembre 1999
Abstract
A human-centered system is one in which humans, supported by information technology, play a key role. Development and use of human-centered system involve actors, organizational structures, rule, procedures and computerized tools. Actors are humans who perform tasks in order to accomplish various categories of goals related to the business process supported by the human-centered system. Their role is characterized by three types of cooperation. On the one hand, they interact and cooperate among themselves (actor/actor cooperation). On the other hand, they interact and cooperate with the computerized tools (software, hardware, networks) which compose the human-centered system (actor/computerized tool cooperation). Finally, they interact with the organizational context composed of organization's internal and external constraints and priorities. Organizational structures, rules, procedures are instruments which permit actors either to interact among themselves or to cooperate with computerized tools and organizational context. Interactions and cooperation inherent in human-centered processes are either formal or informal. In recent years, many methods, techniques and tools have been proposed to support formal interactions. For example, workflow technology provides instruments to automate well defined sequences of actions performed by humans or machines. In particular, it automates formal procedures associated with actor/actor and actor/computerized tool cooperation. Informal interactions and cooperation either among actors or between actors and computerized tools are sources of various unexpected deviations and inconsistencies. Indeed, most processes governing these informal interactions cannot be completely specified in advance and once for all. A human-centered system inconsistency reflects a state of the software development or use process or a state of a software artifact resulting from this process, and originates from a set of deviations. A wide range of deviations and inconsistencies arise during the development of human-centered systems. Many researchers and practitioners have proven that deviations and inconsistencies are inevitable in particular in complex human-centered systems. Moreover, in such systems, removal of certain inconsistencies can cause others to pop up. By another way, inconsistencies may be useful for focusing on aspects of human-centered systems which need particular attention. Consequently, management of human-centered systems inconsistencies must be integrated in the human-centered systems development and use. We think that to be managed, deviations and inconsistencies must be identified and the issues related to understanding why they occur must be addressed. In this paper, we propose a framework which:
In particular, we use the Z formal specification language to describe the typology of deviations and inconsistencies provided by this work. To be complete, the human-centered systems deviations and inconsistencies description and analysis must take into account firstly, the conflicting interests and points of views of all the organizational actors involved in human-centered systems development and use, and secondly all the aspects of software engineering. Therefore, our framework rests on a global model of software built using the economic agency theory, the transactions costs theory and the software dimensions theory.
The framework we describe in this paper provides basic instruments to cope with inconsistencies of human-centered systems. In particular, it permits defining methods and tools to manage inconsistencies in compliance with the organizations constraints, priorities and technical maturity. So, it is compliant with the Simons Bounded Rationality Principle. Besides, it is compliant with new software engineering paradigms like distributed software, computer supported cooperative work (CSCW) and software agents.