La fase di OOD si suddivide in:



Documenti analoghi
UniRoma2 - Ingegneria del Software 1 1

Activity Diagram. UniRoma2 - Ingegneria del Software 1 75

Progetto di Applicazioni Software

Progetto di Applicazioni Software

Architetture e applicazioni web

Strumenti di modellazione. Gabriella Trucco

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Concetti di base di ingegneria del software

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita

Base di dati e sistemi informativi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

Architetture software

Architettura SW Definizione e Notazioni

Modellazione dei dati in UML

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Sistemi informativi secondo prospettive combinate

UML Component and Deployment diagram

Distributed Object Computing

Presentazione di Cedac Software

SISTEMI OPERATIVI DISTRIBUITI

7. Architetture Software

Costruire il futuro il valore delle scelte tecnologiche

Scenario di Progettazione

Automazione Industriale 4- Ingegneria del Software

Un approccio innovativo per il delivery di servizi in infrastrutture di nomadic computing

Laboratorio di Informatica I

SDD System design document

SWIM v2 Design Document

WorkFLow (Gestione del flusso pratiche)

Le reti. Introduzione al concetto di rete. Classificazioni in base a

SISTEMI E RETI 4(2) 4(2) 4(2) caratteristiche funzionali

Indice. Indice Premessa e scopo del documento Ambiente operativo Architettura di sistema... 5

Concetti base. Impianti Informatici. Web application

Diagrammi di Interazione

Introduzione alle applicazioni di rete

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Modellazione di sistema

Architetture Informatiche. Dal Mainframe al Personal Computer

Introduzione. Il software e l ingegneria del software. Marina Mongiello Ingegneria del software 1

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013

Reti di Telecomunicazione Lezione 8

Progettazione Web Applicazioni client-server

Tecnologia dei Sistemi Informativi. architettura s.i. 1

BASI DI DATI I Lezione n 2 25/09/2009

Sistemi centralizzati e distribuiti

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB.

ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Architetture Informatiche. Dal Mainframe al Personal Computer

Reti di Telecomunicazione Lezione 6

Sistemi Informativi Distribuiti

Sommario. Oracle Database 10g (laboratorio) Grid computing. Oracle Database 10g. Concetti. Installazione Oracle Database 10g

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Class Discovery E.

In legenda sono riportate le fasi R, P, C/T e I/SA come specificato nella norma ISO/IEC

Siti web centrati sui dati (Data-centric web applications)

Specifiche Tecnico-Funzionali

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

Progettaz. e sviluppo Data Base

Organizzazione degli archivi

DBMS e Linguaggi di programmazione nell'era di Internet

Protezione. Protezione. Protezione. Obiettivi della protezione

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A Marina Mongiello

Il documento rappresenta una guida sintetica per descrivere sia la filosofia che il modulo software per l implementazione dei workflow in recuper@2.

Applicazione: Sistema Informativo Integrato per il Controllo di Gestione

B.P.S. Business Process Server ALLEGATO C10

Database. Si ringrazia Marco Bertini per le slides

Framework di sicurezza della piattaforma OCP (Identity & Access Management)

CORSO DI PROGRAMMAZIONE JAVA

Object-Relational Mapping

IBM Software Demos The Front-End to SOA

Corso di Informatica

POR Calabria FSE 2007/2013 Asse II Occupabilità Obiettivo operativo D1

Ingegneria del Software 12. Progettazione. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Raccolta dei Requisiti con i Casi D'uso. Corso di Ingegneria del Software Anno Accademico 2012/13

appunti delle lezioni Architetture client/server: applicazioni client

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

RETI INFORMATICHE Client-Server e reti paritetiche

Automazione Industriale (scheduling+mms) scheduling+mms.

Progetto Virtualizzazione

Soluzione dell esercizio del 2 Febbraio 2004

Standard di comunicazione

Applicazioni web centrati sui dati (Data-centric web applications)

Liceo Tecnologico. Indirizzo Informatico e Comunicazione. Indicazioni nazionali per Piani di Studi Personalizzati

Laboratorio di Informatica

Elementi di UML (7): Diagrammi dei componenti e di deployment

Corso di Informatica Modulo T3 B2 - Database in rete

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

Cos'è una vlan. Da Wikipedia: Una LAN virtuale, comunemente

Processo parte VII. Strumenti. Maggiore integrazione. Sviluppo tecnologico

L evoluzione delle Applicazioni Distribuite

Sequence Diagram e Collaboration Diagram

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Metodologie Agili per lo sviluppo di applicazioni Internet Distribuite. Agile Group DIEE, Università di Cagliari

Transcript:

Object Oriented Design - OOD La fase di OOD si suddivide in: OOD preliminare (o architetturale, o di sistema): definisce la strategia ad alto livello per risolvere il problema e costruire una soluzione. Le decisioni riguardano l organizzazione complessiva del sistema (architettura di sistema) OOD dettagliato (o degli oggetti): definisce in modo completo le classi e le associazioni usate in fase di codifica, nonché le strutture dati e gli algoritmi dei metodi necessari per la codifica delle operazioni. Secondo l'approccio iterativo ed incrementale allo sviluppo del software, il modello di OOA si "trasforma" in modello di OOD quando si aggiungono dettagli tecnici relativi alle soluzioni hardware/software che si usano per definire come viene realizzato il sistema UniRoma2 - Ingegneria del Software 1 1

Architettura di sistema Una architettura di sistema definisce la struttura delle componenti di un sistema software, le relazioni che intercorrono tra tali componenti ed i principi che ne governano il progetto e l'evoluzione nel tempo Evoluzione delle architetture di sistema: 1. Architetture a mainframe 2. Architetture a condivisione di file 3. Architetture client/server (C/S): 3.1 two-tier (thin client, fat client) 3.2 three-tier (upper layer, middle layer, bottom layer) 4. Architetture ad oggetti distribuiti 5. Architetture component-based Da 3 a 5 si parla di architetture distribuite, ovvero architetture di sistemi software distribuiti UniRoma2 - Ingegneria del Software 1 2

Sistemi software distribuiti In un sistema software distribuito l'elaborazione è distribuita su una collezione di calcolatori indipendenti connessi tramite una infrastruttura di rete (locale o geografica) La collezione di calcolatori indipendenti appare agli utenti del sistema come un unico calcolatore Nella transizione da architetture a mainframe ad architetture C/S hanno giocato un ruolo chiave le tecnologie middleware Con il termine middleware ci si riferisce allo strato software di connettività, interposto tra il sistema operativo e le applicazioni, che consiste di un insieme di servizi che permettono l'interazione di processi applicativi multipli eseguiti su uno o più calcolatori attraverso una infrastruttura di rete (es. TP monitor, RPC, MOM, ORB) UniRoma2 - Ingegneria del Software 1 3

Caratteristiche dei sistemi distribuiti Condivisione di dati e risorse Openness (gestione di risorse eterogenee) Concorrenza Scalabilità Bilanciamento del carico di lavoro Fault-tolerance Adattabilità agli scenari attuali per l'enterprise computing Trasparenza Fattori critici qualità del servizio (performance, disponibilità, ecc.) interoperabilità sicurezza UniRoma2 - Ingegneria del Software 1 4

Architetture client/server - C/S Il client è il processo che interagisce con l'utente, secondo le seguenti caratteristiche: fornisce un'interfaccia per il colloquio con il sistema sottopone uno o più richieste (in un linguaggio predefinito) al server comunica con il server facendo uso di tecnologia middleware presenta all'utente risultati restituiti dal server Il server è il processo (o l'insieme di processi residenti sullo stesso calcolatore) che fornisce servizi ai client con le seguenti caratteristiche: fornisce servizi rispondendo alle richieste provenienti dal client (il server non inizia la conversazione con il client) nasconde l'intero sistema C/S al client ed all'utente (un server può, ad un dato istante, diventare client di un altro server, senza che il client che l'ha invocato ne abbia conoscenza) UniRoma2 - Ingegneria del Software 1 5

Architetture client/server - C/S (2) Un'architettura C/S divide un'applicazione in processi separati operanti o sullo stesso calcolatore o su calcolatori distinti connessi mediante una infrastruttura di rete c1 c2 c3, c4 CC1 CC2 CC3 s1, s2 Network s3, s4 SC2 SC1 Server computer c5, c6, c7 CC4 CC5 c8, c9 c10, c11, c12 CC6 Client computer UniRoma2 - Ingegneria del Software 1 6

Application layers Presentation layer: gestisce la raccolta delle richieste utente e la presentazione dei risultati forniti dal sistema software Application processing layer: incapsula la logica mediante cui il sistema software realizza specifiche funzionalità Data management layer: gestisce l'accesso ai dati del sistema software Presentation layer Application processing layer Data management layer UniRoma2 - Ingegneria del Software 1 7

Architetture C/S two-tier tier modello thin-client: le funzioni di application processing e data management sono svolte esclusivamente dal server; il client viene usato solo per gestire l'interazione con l'utente modello fat-client: il server è responsabile del solo data management, mentre il software lato client realizza sia le funzioni di interazione con l'utente che le funzioni di application processing Thin-client model Client Presentation Server Data management Application processing Fat-client model Client Presentation Application processing Server Data management UniRoma2 - Ingegneria del Software 1 8

Architetture C/S three-tier tier In una architettura C/S three-tier i tre strati applicativi vengono eseguiti da processi distinti Rispetto alle architetture C/S two-tier si ottengono miglioramenti in termini di: performance flessibilità manutenibilità riusabilità scalabilità Presentation Server Server Client Application processing Data management UniRoma2 - Ingegneria del Software 1 9

Esempio di architettura C/S three-tier tier Internet Banking System Client HTTP interaction Client Web server Account service provision SQL query Database server SQL Customer account database Client Client UniRoma2 - Ingegneria del Software 1 10

Architetture ad oggetti distribuiti Architetture ad oggetti distribuiti In una architettura ad oggetti distribuiti non c'è distinzione tra client e server Ogni oggetto distribuito si comporta sia come client che come server (richiede e fornisce servizi agli altri oggetti del sistema software) La comunicazione remota tra gli oggetti distribuiti viene resa trasparente mediante l'utilizzo di tecnologia middleware a software bus (detto object request broker): abstract bus: specifica dell'interfaccia mediante cui vengono forniti i servizi di comunicazione e scambio dati (modello dei tipi dei valori scambiati e modello di trasferimento del controllo) bus implementation: realizzazione dell'abstract bus su una specifica piattaforma HW/SW ( separazione tra interfaccia ed implementazione) Le applicazioni sono costituite da oggetti che risiedono su piattaforme distribuite ed eterogenee e comunicano mediante invocazione remota di metodi UniRoma2 - Ingegneria del Software 1 11

Es. di architettura ad oggetti distribuiti o1 o2 o3 o4 S (o1) S (o2) S (o3) S (o4) Software bus o5 S (o5) o6 S (o6) UniRoma2 - Ingegneria del Software 1 12

Approccio BCED Estensione dell'approccio BCE Introduce il Database Package, che raggruppa le classi che gestiscono l'interfaccia verso il DB (native database interface, ODBC driver, JDBC driver) mettendo a disposizione le operazioni per gestire l'accesso ai dati del DB da parte degli oggetti appartenenti a classi dell'entity Package Control Package Database Package Boundary Package Entity Package UniRoma2 - Ingegneria del Software 1 13

Architetture component-based Le architetture component-based definiscono sistemi software configurati a partire da componenti software progettati per lavorare insieme come facenti parte di un component framework Il component framework fa uso di una architettura software comune per formalizzare una determinata classe di applicazioni I sistemi software component-based nascono al fine di supportare lo sviluppo efficiente di sistemi software i cui requisiti abbiano elevate caratteristiche di variabilità E' quindi necessario identificare e realizzare astrazioni software che forniscano soluzioni efficienti ed affidabili atte a garantirne una cooperazione efficace Tali astrazioni, o componenti, possono essere usate per applicazioni differenti e adattate (riconfigurate) quando cambiano i requisiti UniRoma2 - Ingegneria del Software 1 14

Architetture component-based (2) La chiave per costruire sistemi software basati su componenti è dunque il riuso black-box del software Ogni componente mette a disposizione un insieme di parametri (o «plug») per: effettuare il collegamento ad altri componenti, secondo regole fissate dette regole di composizione ottenere il comportamento desiderato assegnando valori ai parametri del componente (binding), invece di adattare la struttura interna di un elemento software per modificarne le funzionalità (riuso white-box) Aspetti fondamentali nello sviluppo di sistemi software basati su componenti: incapsulamento di strutture software come componenti astratti (caratteristica di variabilità) composizione di componenti attraverso il binding dei parametri con valori specifici o verso altri componenti (caratteristica di adattabilità) UniRoma2 - Ingegneria del Software 1 15

Component framework Component Framework Base di conoscenza Requisiti specifici Modelli di requisiti Architettura software comune Libreria di componenti software Applicazione specifica UniRoma2 - Ingegneria del Software 1 16

Componenti in UML Un componente UML è definito come «a physical and replaceable part of a system that conforms to and provides the realization of a set of interfaces» UML definisce 5 stereotipi standard per i componenti: Executable (es. un modulo eseguibile direttamente) Library(es. un modulo statico o dinamico di libreria) Table(es. una tabella di un DB) File(es. codice sorgente o file dati) Document (es. un documento in linguaggio naturale) UniRoma2 - Ingegneria del Software 1 17

Caratteristiche di un componente Unità di independent deployment non è possibile il deployment parziale Unità di third-party composition sufficientemente documentato e self-contained per essere collegato (plugged into) ad altri componenti secondo regole fissate dette regole di composizione Non ha persistent state in generale un componente non ha attributi ma «pubblica» un interfaccia che definisce l'insieme delle operazioni realizzate copie differenti sono identiche (il componente rappresenta una unità di funzionalità) Definisce una parte rimpiazzabile di un sistema ogni componente può essere sostituito con un altro componente conforme alla stessa interfaccia (netta separazione tra interfaccia ed implementazione) Svolge una funzione ben determinata e mostra elevate caratteristiche di coesione Può essere annidato in altri componenti UniRoma2 - Ingegneria del Software 1 18

Component diagram Un component diagram UML mostra la struttura dei componenti e le relazioni che intercorrono tra i componenti Le relazioni tra componenti possono essere di due tipi: dependency relationship composition relationship <<executable>> InvoicingEXE <<stored procedure>> MaintainInvoiceUSP <<executable>> InvoiceDLL UniRoma2 - Ingegneria del Software 1 19

Rappresentazione di interfacce RoomAllocEXE ClassUSP Allocate RoomUSP Reserve UniRoma2 - Ingegneria del Software 1 20

Deployment diagram Client Browser page requests Web Server In UML il deployment diagram viene usato per rappresentare la piattaforma di esecuzione del sistema software come: insieme di nodi di elaborazione relazioni di connessione (connection relationship) tra nodi database request s Database Server UniRoma2 - Ingegneria del Software 1 21

Allocazione di componenti su nodi Un nodo di elaborazione del deployment diagram «esegue» i componenti che vengono allocati su di esso Un nodo con l'insieme dei componenti allocati definisce una cosiddetta distribution unit Corporate DatabaseServer Corporate DatabaseServer CustomerUSP CustomerUSP InvoiceUSP InvoiceUSP UniRoma2 - Ingegneria del Software 1 22

OOD dettagliato L'impatto della sotto-fase di OOD preliminare su quella di OOD dettagliato è determinato dalla definizione di una piattaforma HW/SW di esecuzione alla quale l'ood dettagliato deve conformarsi Per il resto, la sotto-fase di OOD dettagliato rappresenta una diretta continuazione della fase di OOA L'obiettivo è trasformare i modelli di OOA, espressi nel dominio del problema, in modelli espressi nel dominio della soluzione, a partire dai quali effettuare la codifica del sistema Nella sotto-fase di OOD dettagliato si progettano le unità architetturali del sistema identificate nella sotto-fase di OOD preliminare mediante aggiunta di dettagli tecnici ai modelli esistenti (o mediante creazione di nuovi modelli ad un livello di astrazione inferiore) La sotto-fase di OOD dettagliato si occupa di definire come avviene la collaborazione tra oggetti che è alla base di ogni sistema software object-oriented Tale collaborazione viene definita in termini di realizzazione di casi d'uso e di operazioni UniRoma2 - Ingegneria del Software 1 23

Collaborazione: notazione UML La notazione per la collaborazione è simile a quella utilizzata per i casi d'uso, e si rappresenta mediante un'ellisse con il bordo tratteggiato La relazione (di realizzazione) con i casi d'uso si rappresenta mediante archi orientati etichettati con lo stereotype «realize» <<realize>> Browse Student List <<realize>> Enter Program of Study Add Student to Course Offering UniRoma2 - Ingegneria del Software 1 24

Collaboration diagram Il collaboration diagram è uno dei due formalismi UML per rappresentare l'interazione tra gli oggetti del sistema E' una rappresentazione equivalente al sequence diagram, ma preferibile in fase di OOD Il sequence diagram, usato in fase di OOA, pone l'enfasi sulla sequenza temporale di messaggi che gli oggetti del sistema si scambiano, ma presenta i seguenti svantaggi per l'utilizzo in fase di OOD: imprecisione nella rappresentazione di percorsi alternativi ingombro eccessivo al crescere del numero di oggetti Il collaboration diagram mostra in modo esplicito le relazioni statiche tra gli oggetti del sistema con il flusso dei messaggi che gli oggetti si inviano, con i seguenti vantaggi per l'utilizzo in fase di OOD: migliore leggibilità nella rappresentazione delle interazioni tra un numero elevato di oggetti possibilità di specificare pienamente e annotare ogni messaggio UniRoma2 - Ingegneria del Software 1 25

Da sequence diagram... : Customer aconfw in : ConfigurationWindow opennew getconf displaycomputer(item_recset) acomp : Computer * getconfitem (out item_rec) : Configuration Item UniRoma2 - Ingegneria del Software 1 26

...a.a collaboration diagram acust : Customer aconfitem : ConfigurationItem opennew *getconf (out item_rec) aconfwin : ConfigurationWindow getconf acomp : Computer displaycomputer (item_recset) La sequenza temporale dei messaggi può essere catturata con l'introduzione dei cosiddetti sequence number, che ordinano in modo progressivo i messaggi che gli oggetti si scambiano (i sequence number sono opzionali) UniRoma2 - Ingegneria del Software 1 27

Realizzazione di casi d'uso I casi d'uso introdotti in fase di OOA sono realizzati mediante collaborazioni A causa del differente livello di astrazione, un caso d'uso è realizzato da un insieme di collaborazioni Ogni collaborazione ha: una parte strutturale rappresenta gli aspetti statici della collaborazione descritta attraverso l'elaborazione (rispetto alla versione prodotta in fase di OOA) della porzione di class diagram corrispondente una parte comportamentale rappresenta gli aspetti dinamici della collaborazione tra gli elementi della parte strutturale descritta mediante collaboration diagram UniRoma2 - Ingegneria del Software 1 28

Collaborazione parte strutturale Refer to OOA examples A.3 and A.6 <<Boundary>> ProgramEnt ryw indow add(std, crs, sem) destroy() PrereqCourse prereq_grade : String prereq(out crsoid) * required_for Student <<PK>> student_id : String student_name : String current_fees : Money areyouvalid(out s_check) addcourse(crsoffoid) feespaid(out paid) * takes required_by * Course <<PK>> course_code : String <<CK>> course_name : String credit_points : Integer areyouopen(out c_check) prereq(out crs) addstudent(stdoid) 0..* 0..* AcademicRecord course_code : String year : Date semester : Integer grade : String prereqssatisfied(out satisfied) * Grade grade : String mark : Set<Number> CourseOffering year : Date semester : Integer enrolment_quota : Integer areyouopen(out c_check) addstudent(stdoid) UniRoma2 - Ingegneria del Software 1 29

Collaborazione parte comportamentale Refer to OOA examples A.3 and A.6 : Data Entry Person [ c_check="no"]dest roy [ s_check="no"]dest roy feespaid(out paid) add(std,crs,sem) : Program EntryWindow areyouvalid(crs,out s_check) astudent : Student addcourse(crsoffoid) areyouopen(out c_check) prereqssatisfied(out satisfied) addstudent(stdoid) acourse : Course prereq(out crs) *prereq(out crsoid) anacademicrecord : AcademicRecord areyouopen(out c_check) aprereqcourse : PrereqCourse acourseoffering : CourseOffering UniRoma2 - Ingegneria del Software 1 30

Collaborazione gestione del controllo University Enrolment system Esempio: aggiunta di uno studente (Student) ad un modulo (CourseOffering). Operazioni da effettuare: 1. Ottenere l elenco dei corsi che risultano come prerequisiti per il modulo considerato 2. Verificare che lo studente sia in possesso dei prerequisiti Si consideri che: Il messaggio enrol() viene inviato dal boundary object :EnrolmentWindow Tre entity classes vengono coinvolte: CourseOffering, Course, and Student Almeno 4 soluzioni possibili (con differenti caratteristiche di class coupling) UniRoma2 - Ingegneria del Software 1 31

Gestione del controllo - soluzione 1 : Enrolment Window enrol() acourseoffering : CourseOffering [prereq OK] enrol() Policy maker acourse : Course getacadrec() Mindless astudent : Student UniRoma2 - Ingegneria del Software 1 32

Gestione del controllo - soluzione 2 acourseoffering : CourseOffering : Enrolment Window [acad_rec OK] enrol() enrol() acourse : Course getp rereq() astudent : Student Mindless Policy maker UniRoma2 - Ingegneria del Software 1 33

Gestione del controllo - soluzione 3 Policy maker (the God class) : Enrolment Window enrol() acourseoffering : CourseOffering getprereq() getacadrec() acourse : Course astudent : Student UniRoma2 - Ingegneria del Software 1 34

Gestione del controllo - soluzione 4 : Enrolment Window enrol() acourseoffering : CourseOffering [OK] enrol() The control object : Enrolment Policy getprereq() getacadrec() acourse : Course astudent : St udent UniRoma2 - Ingegneria del Software 1 35

Legge di Demeter (per la riduzione del class coupling) Per qualsiasi metodo m di un oggetto x di una classe, il destinatario dei messaggi nel corpo di m deve essere: x stesso (ovvero this) un oggetto presente come argomento di m un oggetto riferito da un attributo di x (nell interpretazione debole si estende anche ad attributi ereditati) un oggetto istanziato da m un oggetto riferito da una variabile globale La legge di Demeter limita i riferimenti diretti e le dipendenze che attraversano i confini di una classe UniRoma2 - Ingegneria del Software 1 36

Realizzazione di operazioni Le collaborazioni permettono di modellare operazioni complesse che richiedono l'interazione tra più oggetti Operazioni che si possono confinare all'interno di una o due classi sono meglio modellate facendo uso di activity diagram Lo stesso principio si applica alle operazioni che vengono identificate come componenti di operazioni più complesse modellate come collaborazioni Infine, le operazioni elementari possono essere progettate facendo uso di una notazione di tipo pseudo-codice, o PDL (program design language) UniRoma2 - Ingegneria del Software 1 37

Realizzazione di operazioni (2) addstudent( stdoid ) Ex. CourseOffering.addStudent (stdoid) addstudent / add stdoid to CourseOffering.std areyouopen( out c_check ) areyouopen do/ check enrolment quota do/ check current number of students do/ compare Student Added Open [ yes ] [ no ] / add crsoffoid to Student.crsoff Student.setCrsOff Closed UniRoma2 - Ingegneria del Software 1 38