Laboratorio di progettazione di software distribuito

Codice: 291AACrediti: 6Semestre: 2Sigla: LPD 
 
Settore disciplinare: INF/01 - Informatica

Docente

Vincenzo Gervasi   gervasi@di.unipi.it  Stanza 305  Tel. 0502212773

Prerequisiti

General programming; algorithms and data structures; Java language; general network programming.

Obiettivi di apprendimento

Il corso affronta il problema dello sviluppo di sistemi software distribuiti rispondenti ai requisiti e consegnati nel rispetto di tempi e costi prestabiliti. Il processo di sviluppo presentato e seguito nel corso di laboratorio prevede attività tecniche (analisi di dominio, specifica dei requisiti, progettazione in UML, realizzazione in Java o in un altro linguaggio di programmazione orientato agli oggetti, documentazione) e gestionali (incontri con il committente, verifiche ispettive, collaudo)
Conoscenze. Students will learn about several requirements analysis techniques, design patterns, and network programming patterns. They will also familiarize with the principal testing techniques and protocols.
Capacità. After successful attendance, students will be able to produce Problem Diagrams and identify canonical Problem Frames in a given domain, map those into Design Patterns, and devise performance measures relevant to assess QoS provided by different designs in a distributed environment. Students will also be able to relate design decisions to actual implementation code, and define and run test suites for such code.
Comportamenti. The course will include a significant component of teamwork; students will accordingly experience working in small teams towards a common goal, and relating to other teams through formal commitments (e.g., defining interfaces and data exchange formats).

Descrizione

Il corso mira a fornire agli studenti una esperienza diretta di analisi dei requisiti, progettazione, sviluppo, test e misure di prestazioni di una applicazione distribuita di dimensioni realistiche. Il corso includerà lezioni teoriche, incontri pratici, e una sostanziale componente di lavoro individuale all'interno di piccoli gruppi.

English Description

The course will provide to students a hands-on experience on requirements analysis, design, development, testing and performance measurement for a real-world sized distributed application. The course will include formal lectures, practical meetings, and a substantial component of individual work, as part of a number of small development teams.

Indicazioni metodologiche

The course will offer a series of formal lectures, interspersed with "hands-on" lectures where the practical issues faced by the various teams will be discussed. It is expected that students will devote substantial time out of class to the various activities (mostly for the building phase); students will be organized on small teams and will be provided with access to shared facilities for teamwork. All teaching, teaching material, students' presentations and the final exam will be in English.

Programma

  1. Analisi dei requisiti: stakeholder, problemi, pattern di analisi, specifiche formali
  2. Progettazione: UML con uso di profili, pattern di progettazione
  3. Costruzione: codifica, assemblaggio e distribuzione di codice
  4. Verifica&validazione, misure di prestazioni: piani di test, monitoraggio, sistemi autonomici e auto-diagnosi
  1. Requirements analysis: Stakeholders, problems, analysis patterns, formal specifications
  2. Design: UML w/specific profiles, design patterns
  3. Building: Coding, assembling and deploying “in the large”
  4. Testing and performance measurement: Test plans, monitoring, autonomic systems and self-diagnosis
     

Bibliografia

Modalità di esame

L’esame consiste in un colloquio individuale con discussione di un progetto realizzato durante il corso

Ulteriore pagina web del corso: http://circe.di.unipi.it/~gervasi/DSDL10


home


email