Formal methods for service oriented software engineering

Emanuele Glorio · Università Politecnica delle Marche (Università Politecnica delle Marche) · 2013

Il Service-Oriented Computing sta diventando sempre più importante e la proliferazione del grid e cloud computing sta incrementando ancora questa tendenza. Di conseguenza, sempre più aziende stanno esponendo su Internet i loro Web Service. Questo fatto ha l’effetto di trasformare il web da un contenitore di dati ad un contenitore di servizi. In questo scenario, un ingegnere del software è chiamato a progettare un’applicazione tenendo in considerazione l’opportunità/ bisogno di riusare servizi esistenti. Ciò richiede due cose: - una metodologia di ingegneria del software che parta dagli obiettivi di business e dall’organizzazione di una data azienda e arrivi ad identificare quali parti poter delegare a servizi esterni; - l’abilità di localizare i servizi più appropriati. Infatti, mentre le tecnologie e gli standard, come ad esempio iWeb Service, sono importanti, è stato ampiamente riconosciuto che non sono sufficenti da sole. Invece è di estrema importanza un approccio sistematico e completo, che prenda in considerazione i requisiti di business e segua le pratiche raccomandate. Per questo motivo, anche se oggigiorno ci sono molte metodologie orientate ai servizi, l’Ingegneria del Software orientata ai Servizi (SOSE) è ancora un campo aperto. In questa tesi presentiamo la definizione di una nuova metodologia SOSE. Innanzitutto usiamo le fasi iniziali di Tropos dato che è una metodologia orientata agli agenti che porta particolare attenzione alle esigenze degli stakeholder e all’analisi dei requisiti. Inoltre Tropos è stato già modificato in passato al fine di supportare la progettazione dei Web Service. Non modifichiamo le prime tre fasi (Early Requirements, Late Requirements e Architectural Design) e ci concentriamo sulle fasi finali (Detailed Design e Implementation). Nella fase di Detailed Design proponiamo un mapping fra concetti i* ed elementi BPMN 2.0 per avere una traduzione automatica del diagramma i* derivato dalle fasi precedenti in un linguaggio di workflow. In più forniamo delle tecniche e dei metodi formali per selezionare codice e servizi esistenti in modo da riutilizzarli all’interno del software che si sta progettando. Infine, nella fase Implementation proponiamo un mapping BPMN - Alan (un linguaggio di programmazione orientato agli agenti e agli oggetti) in modo da produrre automaticamente un’applicazione eseguibile. Presentiamo inoltre un caso di studio dall’ambito e-commerce e lo usiamo per mostrare come applicare passo passo la nostra metodologia.

Read the paper · More papers on PaperTik