Seamless Object-Oriented Requirements - Smart Modeling for software Research and Technology Accéder directement au contenu
Thèse Année : 2019

Seamless Object-Oriented Requirements

Exigences orientées objets dans un cycle de vie continu

Résumé

The constantly changing customers' and users' needs require fast response from software teams. This creates strong demand for seamlessness of the software processes. Continuous integration, delivery and deployment, also known as DevOps, made a huge progress in making software processes responsive to change. This progress had little effect on software requirements, however. Specifying requirements still relies on the natural language, which has an enormous expressive power, but inhibits requirements' traceability, verifiability, reusability and understandability. Promoting the problematic qualities without inhibiting the expressiveness too much introduces a challenge. Bertrand Meyer, in his multirequirements method, accepts the challenge and proposes to express individual requirements on three layers: declarative subset of an object-oriented programming language, natural language and a graphical notation. This approach has motivated and inspired the work on the present thesis. While multirequirements focus on traceability and understandability, the Seamless Object-Oriented Requirements approach presented in the dissertation takes care of verifiability, reusability and understandability. The dissertation explores the Martin Glinz' hypothesis that software requirements should be objects to support seamlessness. The exploration confirms the hypothesis and results in a collection of tool-supported methods for specifying, validating, verifying and reusing object-oriented requirements. The most significant reusable technical contribution of the dissertation is a ready-to-use Eiffel library of template classes that capture recurring software requirement patterns. Concrete seamless object-oriented requirements inherit from these templates and become clients of the specified software. Object-oriented software construction becomes the method for requirements specification, validation and reuse; Design by Contract becomes the method for verifying correctness of implementations against the requirements. The dissertation reflects on several experiments and shows that the new approach promotes requirements' verifiability, reusability and understandability while keeping expressiveness at an acceptable level. The experiments rely on several examples, some of which are used as benchmarks in the requirements literature. Each experiment illustrates a problem through an example, proposes a general solution, and shows how the solution fixes the problem. While the experimentation relies on Eiffel and its advanced tool support, such as automated proving and testing, each idea underpinning the approach scales conceptually to any statically typed object-oriented programming language with genericity and elementary support for contracts.
L'évolution constante des besoins des clients et des utilisateurs exige une réponse rapide de la part des équipes logicielles. Cela crée une forte demande pour un fonctionnement sans rupture des processus logiciels. L'intégration, la livraison et le déploiement continus, également connus sous le nom de DevOps, ont fait d'énormes progrès en rendant les processus logiciels réactifs au changement. Ces progrès n'ont toutefois eu que peu d'effets sur les exigences en matière de logiciels. Aujourd'hui, la plupart des besoins sont exprimés en langage naturel. Cette approche a un grand pouvoir expressif, mais au détriment d'autres aspects de la qualité des exigences telles que la traçabilité, la réutilisabilité, la vérifiabilité et la compréhensibilité. Le défi est ici d'améliorer ces aspects sans sacrifier l'expressivité. Bertrand Meyer, dans sa méthode multi-exigences, relève ce défi et propose d'exprimer les besoins individuels en trois couches : sous-ensemble déclaratif d'un langage de programmation orienté objet, langage naturel et notation graphique. Cette approche a motive et inspire les travaux de la présente thèse. Alors que l'approche multiexigences se concentre sur la traçabilité et la compréhensibilité, l'approche Seamless Object-Oriented Requirements (SOOR) présentée dans cette thèse prend en compte la vérifiabilité, la réutilisabilité et la compréhensibilité. Cette thèse explore l'hypothèse de Martin Glinz selon laquelle, pour soutenir la continuité, les exigences logicielles devraient être des objets. L'exploration confirme l'hypothèse et aboutit à un ensemble de méthodes basées sur des outils pour spécifier, valider, vérifier et réutiliser les exigences orientées objets. La contribution technique réutilisable la plus importante de cette thèse est une bibliothèque Eiffel prête à l'emploi de patrons de classes, qui capturent les modèles d'exigences logicielles récurrents. Les exigences orientées objets, concrètes et sans rupture, héritent de ces patrons et deviennent des clients du logiciel spécifié. La construction de logiciels orientés objets devient la méthode de spécification, de validation et de réutilisation des exigences ; la conception par contrat devient la méthode de vérification de l'exactitude des implémentations par rapport aux exigences. Cette thèse s'appuie sur plusieurs expériences et montre que la nouvelle approche propose favorise la vérifiabilité, la réutilisabilité et la compréhensibilité des exigences tout en maintenant l'expressivité à un niveau acceptable. Les expérimentations mettent en oeuvre plusieurs exemples, dont certains sont des standards de l'état de l'art de l'ingénierie des exigences. Chaque expérimentation illustre un problème par un exemple, propose une solution générale et montre comment la solution règle le problème. Alors que l'expérimentation s'appuie sur Eiffel et son support d'outils avancés, tels que la preuve et les tests automatisés, chaque idée présentée dans l'approche SOOR s'adapte conceptuellement à tout langage de programmation orienté objet typé statiquement, possédant un mécanisme de généricité et un support élémentaire pour les contrats.
Fichier principal
Vignette du fichier
2019TOU30132B.pdf (1.51 Mo) Télécharger le fichier
Origine : Version validée par le jury (STAR)
Loading...

Dates et versions

tel-02872242 , version 1 (17-06-2020)

Identifiants

  • HAL Id : tel-02872242 , version 1

Citer

Alexandr Naumchev. Seamless Object-Oriented Requirements. Software Engineering [cs.SE]. Université Paul Sabatier - Toulouse III, 2019. English. ⟨NNT : 2019TOU30132⟩. ⟨tel-02872242⟩
119 Consultations
447 Téléchargements

Partager

Gmail Facebook X LinkedIn More