UML vs ER

di il
11 risposte

UML vs ER

Perchè nella progettazione di basi di dati si utilizza il diagramma ER e non l'UML??

11 Risposte

  • Re: UML vs ER

    Perchè è stato inventato prima.
    Secondariamente non si usa UML perchè sono pittogrammi pressochè inutili per qualsiasi cosa più complessa del db del fornaio sotto casa.
    ER invece è diffuso perchè è semplice e comprensibile anche da ragionieri programmatori o assimilati.
  • Re: UML vs ER



    In questo caso un teatro ha nessuno o molti spazi teatrali e uno spazio teatrale ha esattamente un teatro associato.

    Le relazioni indicano un possibile legame tra due o più entità. Quindi è un possibile legame logico significativo per modellare la realtà.

    Quando durante l'analisi dei requisiti si raccolgono le entità e le relazioni tra loro, le relazioni quali forme assumeranno, come le utilizzo nella stesura della bdd??
  • Re: UML vs ER

    Però l'UML nell'ingegneria software è il più utilizzato.
  • Re: UML vs ER

    Francamente uml ha solo una vaga valenza accademica.
    nel mondo reale non serve praticamente a nulla, al pari dei mitici diagrammi di flusso
  • Re: UML vs ER

    Con l'UML puoi modellare ANCHE i diagrammi ER.

    Al contrario di quanto e' stato detto da chi mi precede, l'UML si usa sopprattutto nella documentazione, nella preparazione di casi di test, nella descrizione di moduli particolarmente complessi, e dove vengono usati sistemi di validazione del codice.

    Si usa nei documenti di specifica, nelle Normative (sono documenti in cui si descrive come, per legge, un sistema deve essere realizzato/deve funzionare)...

    Mettiamola cosi': chi usa questi strumenti, ha competenze anni luce piu' avanti rispetto alle competenze del programmatore medio.

    Non e' robba per bamboccioni
  • Re: UML vs ER

    UML è una raccolta di metodi semiformali di origine alquanto variegata ed eterogenea (se interessa, posso facilmente tracciarne l'intera genesi attraverso riferimenti bibliografici e articoli scientifici) che i famosi Tres Amigos hanno sistematizzato e riorganizzato (a modo loro). Nell'ambito delle grandi aziende UML è praticamente inutile senza un paio di centinaia di pagine di ri-specifica e formalizzazione interna, a margine delle guide di stile e coding standards.

    Per ulteriori delucidazioni, si veda qui e anche qui oppure qui, come pure questo breve articolo.
    Si fa presto a dire "software engineering"...
  • Re: UML vs ER

    migliorabile ha scritto:


    Mettiamola cosi': chi usa questi strumenti, ha competenze anni luce piu' avanti rispetto alle competenze del programmatore medio.
    Non e' robba per bamboccioni
    Grazie per il chiarimento.
    In pratica sarebbe l'equivalente nel settore ingegneristico al progetto e al calcolo strutturale che descrive dalla raccolta dei requisiti e lo studio di fattibilità, al processo di sviluppo complessivo del sistema e tutti gli artefatti da produrre, tenendo conto dei rischi e stimando il costo monetario, di risorse umane e hardware.
    Poi l'UML a quanto sto capendo studiando è una sorta di framework che permette di descrivere tutti questi aspetti, utilizzando specifici diagrammi (casi d'uso, attività, classi, architettura, ...), cosicchè il coding diventa quasi l'ultimo problema dato che sarebbe una pseudo traduzione del diagramma delle classi e forse, forse spetta al programmatore decidere quale miglior algoritmo utilizzare (vittima del dispotismo aziendale).

    La mia idea:
    PRO: per progetti distribuiti e complessi è impensabile non utilizzare un modello di processo software (RUP preferibilmente, Agile), che pianifichi il tutto con un bel diagramma di Gantt e tutti i diagrammi UML con tutta la documentazione necessaria.
    CONS: la figura professionale dell'analista e ing. del software è davvero difficile in primis perchè per quanto un esperto di dominio possa istruirli circa il frammento di mondo nel quale lavorerà il sistema e sulle esigenze da soddisfare badando ai vincoli, penso che debbano ogni volta farsi una cultura in base al sistema da sviluppare (medicina, finanza, trasporti, .......................).

    Mi è stato detto sull'utilizzo dell'UML per le basi di dati che è più ridondante e meno coinciso rispetto l'ER (antenato UML); che nell'ambito della progettazione di database permette di formalizzare meglio, risolvendo qualsiasi ambiguità (piccolo bug dell'UML che stanno risolvendo).
  • Re: UML vs ER

    Paolovox ha scritto:


    In pratica sarebbe l'equivalente nel settore ingegneristico al progetto e al calcolo strutturale che descrive dalla raccolta dei requisiti e lo studio di fattibilità, al processo di sviluppo complessivo del sistema e tutti gli artefatti da produrre, tenendo conto dei rischi e stimando il costo monetario, di risorse umane e hardware.
    Mannoooo... Semplicemente sono pittogrammi, disegnini assolutamente inutili in situazioni concrete e complesse.
    Hai presente i diagrammi di flusso? Nessuno sano di mente riterrebbe che siano utili a qualcosa (se non a modellare che so le modalità di disdetta degli abbonamenti Sky).
    UML (e formalisimi simili) soffrono dei medesimi problemi, ovvero
    - diventano giganteschi. Chi sa cosa fa un diagramma UML che ricopre un campo da calcio? nessuno
    - "nascondono" mille e mille sottogliezze che sono insite nel problema (e nella soluzione) di cui non v'è traccia nei pittogrammi UML
    Poi l'UML a quanto sto capendo studiando è una sorta di framework che permette di descrivere tutti questi aspetti, utilizzando specifici diagrammi (casi d'uso, attività, classi, architettura, ...), cosicchè il coding diventa quasi l'ultimo problema dato che sarebbe una pseudo traduzione del diagramma delle classi e forse, forse spetta al programmatore decidere quale miglior algoritmo utilizzare (vittima del dispotismo aziendale).
    Seeeeee... questa è la robaccia che viene insegnata oggi, da chi, spesso, non ha mai lavorato in una industria del software.
    PRO: per progetti distribuiti e complessi è impensabile non utilizzare un modello di processo software (RUP preferibilmente, Agile), che pianifichi il tutto con un bel diagramma di Gantt e tutti i diagrammi UML con tutta la documentazione necessaria.
    Ma va là (in breve)
    CONS: la figura professionale dell'analista e ing. del software è davvero difficile in primis perchè per quanto un esperto di dominio possa istruirli circa il frammento di mondo nel quale lavorerà il sistema e sulle esigenze da soddisfare badando ai vincoli, penso che debbano ogni volta farsi una cultura in base al sistema da sviluppare (medicina, finanza, trasporti, .......................).
    L'ingegnere del software, al massimo, può progettare i tortellini
    Mi è stato detto sull'utilizzo dell'UML per le basi di dati che è più ridondante e meno coinciso rispetto l'ER (antenato UML); che nell'ambito della progettazione di database permette di formalizzare meglio, risolvendo qualsiasi ambiguità (piccolo bug dell'UML che stanno risolvendo).
    Ma va là squared


    Bon, mica dovete "fidarvi" di me (anche se il mio consiglio principale è: segui i miei consigli )
    Appena lavorerete ad un progetto diverso dalle 4 cazzatelle accademiche, o del programmello di 10.000 righe per il fornaio, vedrete che "magicamente" i diagrammi UML serviranno per prendere appunti (sul retro dei fogli, intendo, per riciclarli).

    Mentre i "fantastici" ER, che servono a poco o a nulla, soprattutto se si usano CASE che hanno la cattiva idea di creare diagrammi del tutto incomprensibili e giungle di vincoli di integrità referenziali praticamente impossibili da districare anche per gente come me che sviluppa db da decenni, una sia pur vaga utilità la mantengono.

    Nota a margine: per i database (relazionali, è bene precisarlo) si adottano da decenni e decenni strumenti e tecniche ormai consolidati, perchè l'ambito è assai più specifico rispetto al mondo "universalista" di UML, in particolare combo case-framework.

    Mentre E' possibile da un diagramma ER ottenere un (passabile) database con strumenti automatici, ovviamente da rifinire e sistemare "a mano", ciò non accade affatto con UML.

    In una, anzi due parole: snake oil
  • Re: UML vs ER

    Mi è stato detto sull'utilizzo dell'UML per le basi di dati che è più ridondante e meno coinciso rispetto l'ER
    In parole povere il punto è quello. Tra l'altro, anche l'ER può soffrire dello stesso problema se usato in casi particolari, come ad esempio i data warehouse (dove con i diagrammi ER otterresti delle lunghe catene di relazioni uno-a-molti tra entità con un solo attributo), tant'è che in tali ambiti si usano altri formalismi ancora (purtroppo non standardizzati).
  • Re: UML vs ER

    +m+ ha scritto:


    UML (e formalisimi simili) soffrono dei medesimi problemi, ovvero
    - diventano giganteschi. Chi sa cosa fa un diagramma UML che ricopre un campo da calcio? nessuno
    Non è detto che devi usare un singolo diagramma UML per descrivere, che so, Windows. In ogni caso, se conosci un modo per descrivere in maniera più succinta le stesse informazioni contenute in un diagramma UML pubblica un articolo in modo da condividere il tuo sapere con questi milioni di poveri deficienti che usano ancora UML.
    - "nascondono" mille e mille sottogliezze che sono insite nel problema (e nella soluzione) di cui non v'è traccia nei pittogrammi UML
    Tipo?
  • Re: UML vs ER

    Non so mi spiace, sono cose troppo difficili, per me.
    uml è fantastico e tutti lo usano o dovrebbero usarlo, altrimenti sono deficienti
Devi accedere o registrarti per scrivere nel forum
11 risposte