Specifica tipi di dato

Documento separato da accludere allo schema concettuale, utilizzato per definire tipi di dati non di default.

Esempio

Specifica di classe

Documento separato da accludere allo schema concettuale in cui vengono specificate:

  • La descrizione della classe
  • Specifica delle operazioni

La specifica di un operazione è composta da:

oss: per ora per descrivere queste condizioni utilizziamo un linguaggio pedante in futuro utilizzeremo espressione logiche per rimuovere le ambiguità.

Pre-Condizioni

Condizioni che devono essere soddisfatte affinché l’operazione possa essere invocata con successo, riguardano:

  • l’oggetto di invocazione
  • valori degli argomenti
  • altri oggetti del sitema

Post-Condizioni

  • Definiscono il tipo di ritorno
  • Definizione delle modifiche all’insieme degli oggetti esistenti, creazione di nuovi oggetti o link, eliminazione di oggetti o link

Esempio

Specifica informale (la specifica formale si fa in logica del primo ordine)

Specifica di use-case

Documento separato da accludere allo schema concettuale, è utilizzato per descrivere le operazioni più in generale (non quelle di classe).

oss: non si utilizza this perché il diagramma degli use-case non descrive le operazioni di classe ma a delle operazioni più generali.

Esempio

Specifica vincoli esterni

Alcuni requisiti potrebbero implicare vincoli sui dati/oggetti/link che sono non sono esprimibili nel diagramma delle classi e per questo di definiscono vincoli esterni.

Dei vincoli esterni vanno definiti nel documento specificando:

  • Un identificatore univoco utilizzato per riferirsi al vincolo in altre parti dello schema, l’identificatore rispetta uno standard noi useremo [V.classi_a_cui_il_vincolo_si_applica.nome_vincolo].
  • Un asserzione che definisce le condizioni che devono essere soddisfatte dai link/oggetti affinché siano in una configurazione legale per i vincoli.

Vincoli esterni nel diagramma delle classi

Nel caso (frequente) in cui un vincolo esterno si applica naturalmente agli oggetti di una sola classe, è raccomandato definirlo nella specifica di quella classe piuttosto che nella specifica dei vincoli esterni.

Con questo approccio, il documento “Specifica dei vincoli esterni” conterrà solo la definizione dei vincoli che non sono attribuibili a singole classi.