n° 185
Maggio/Giugno 2013
Maggio 24, 2013, 05:49:08 pm *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  

* Messaggi recenti
Messaggi recenti
Pagine: [1] 2   Vai giù
  Stampa  
Autore Discussione: Ingegneria del Software... domande su analisi e progettazione  (Letto 2938 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
QuasarLex
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 22


Mostra profilo E-mail
« inserita:: Giugno 29, 2012, 10:39:15 am »

Salve a tutti.... devo fare un esame di ingegneria del software all' uni, ma ho diverse cose che non mi sono chiare.

La traccia tipica è l' analisi, progettazione e implementazione del software. Dalla traccia bisogna estrapolare i requisiti, bisogna costruire dei casi d' uso, il system domain model in UML, il class diagram di progetto, sequence diagram, e poi a casa bisogna implementare ( architettura BCED con interfaccia grafica, in java , e database mysql )

Vorrei capire come procedere ad ogni step... mi spiego meglio: mi riesce difficile ( le tracce sono molto grandi ) distinguere con precisione tra requisiti funzionali e non funzionali, non capisco come costruire in modo sicuro ( leggi: in modo meccanico ) i casi d' uso, e come questi possano servire a fare l' SDM e come passare da SDM a class Diagram.

Credo che questa confusione sia data dalle poche ore di esercitazione fatte in classe... quel poco che abbiamo fatto ci siamo concentrati sull' implementazione, infatti noto il class diagram, credo di riuscire a cavarmela per l' implementazione.

Quindi magari qualcuno disponibile potrebbe darmi qualche dritta? grazie Sorriso

PS:
Ho ordinato "Dall'idea al codice con UML 2" di Baresi, libro consigliatomi dal prof. Ho già il sommerville, il Fowler e il GoF.. ma nessuno di questi tre espone con esempi quello che mi serve ( Ovviamente... il fowler è una quick-reference su UML, il GoF illustra i design pattern e il sommerville.... è un mattone che non porta esempi, anche se sembra ottimo dal punto di vista lavorativo, ma non certo per quest' esame ), il libro di Baresi è una buona scelta?
Registrato
DEV-01
Full Member
***

Karma: +8/-21
Scollegato Scollegato

Messaggi: 363


Mostra profilo E-mail
« Risposta #1 inserita:: Giugno 29, 2012, 04:32:31 pm »

Cominciamo col dire che i requisiti funzionali sono effettivamente tutto l' insieme delle possibili interazioni "dirette" fruibili dall'utente finale (es:operazioni CRUD), mentre un esempio tipico di requisito non funzionale è, ad esempio, la cifratura della base dati.

Questa la metto non tanto per la spiegazione ma per eventuali aspetti d' interesse linkati a fondopagina:
http://it.wikipedia.org/wiki/Ingegneria_del_software

Esercizi e materiale didattico di approfondimento (magari una nozione in più accende una lampadina)  Ghigno:
http://www.cs.unibo.it/~gabbri/corsi/ISbo.html

Esempio d' uso in UML:
http://web.ing.unisannio.it/cimitile/ing-soft/dispense/UMLusecase.PDF

Esempio di caso di utilizzo del Class Diagramm
http://web.ing.unisannio.it/cimitile/ing-soft/dispense/UMLclassdiagram.PDF

Step di formalizzazione:
http://www.math.unipd.it/~tullio/IS-2/Dispense_2002/A4.pdf

Altra esercitazione (giusto per orientarsi su flusso e organizzazione):
http://home.dei.polimi.it/dinitto/Didattica/SETLC0203/EsercitazioneUml.pdf

Alcuni manuali online (creati si suppone da professionisti)
http://www.morpheusweb.it/html/manuali/ing_software.asp

Spero in qualche modo di esserti stato d' aiuto.
Registrato

01000100 01100101 01110110 00101101 00110000 00110001
thedom
Newbie
*

Karma: +0/-1
Scollegato Scollegato

Messaggi: 37


zinzidomenico@hotmail.it
Mostra profilo E-mail
« Risposta #2 inserita:: Giugno 29, 2012, 05:59:25 pm »

Molto simpatiche le slide di uniroma sui requisiti
http://www.uniroma2.it/didattica/ISW1/deposito/03-Requisiti_software.pdf
Registrato
QuasarLex
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 22


Mostra profilo E-mail
« Risposta #3 inserita:: Giugno 29, 2012, 06:08:35 pm »

Grazie mille... avete qualcosa anche sul passaggio da SDM a diagramma di implementazione ??
Registrato
Tudor
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 3


Mostra profilo E-mail
« Risposta #4 inserita:: Giugno 29, 2012, 06:15:16 pm »

Anchio ho bisogno di approfondire questa materia... consigliate qualche libro? oppure basta andare su internet?
Registrato
DEV-01
Full Member
***

Karma: +8/-21
Scollegato Scollegato

Messaggi: 363


Mostra profilo E-mail
« Risposta #5 inserita:: Luglio 01, 2012, 10:39:30 am »

Anchio ho bisogno di approfondire questa materia... consigliate qualche libro? oppure basta andare su internet?
Nel mio post sono segnalati dei link per e-book...

Per QuasarLex:
Partiamo dal principio (tanto le nozioni del modello dovrebbero essere universali e slegate dal linguaggio):
http://msdn.microsoft.com/it-it/library/ms181772(v=vs.90).aspx
e:
http://msdn.microsoft.com/it-it/library/ms181775(v=vs.90).aspx
inoltre troverai di sicuro interesse questo link presente nella pagina citata:
http://msdn.microsoft.com/it-it/library/ms181775(v=vs.90).aspx#SynchAppSys
 
Altre nozioni che possono fungere da punto d' ingresso:
http://www.cs.unibo.it/~cianca/wwwpages/labspo/Lab3.pdf
http://msdn.microsoft.com/it-it/library/ms181872(v=vs.90).aspx
http://msdn.microsoft.com/it-it/library/ms181774(v=vs.90).aspx
http://msdn.microsoft.com/it-it/library/ms181876(v=vs.90).aspx

Nella ricerca ho tentato di fornirti link che trattassero la teoria (anche dal punto di vista della prevenzione di eventuali errori che da inesperto potresti commettere).
Di primo acchito non sono riuscito a trovare esercitazioni e progetti in merito ma suppongo che partendo dalle basi e studiando un pò di teoria che sta alla base di questi argomenti tu possa inquadrare meglio (o ottenere un punto di vista più incisivo) relativamente a ciò che ti occorre realizzare.

Questo tratta un poco tutto il passaggio di tuo interesse (anche se l' argomento è un pò specifico mi è parso completo e inerente) inoltre è scritto in C# che è molto vicino a java.
http://www.elettronica.unige.it/CdS/Dati/Tesi/T2952985.PDF
inoltre a fondo pagina sono citati dei testi che, se riesci a visualizzare in anteprima su google libri, potresti decidere di procurarti qualora li ritenessi validi.
Registrato

01000100 01100101 01110110 00101101 00110000 00110001
M.A.W. 1968
** LEGGETE IL REGOLAMENTO ! **
Global Moderator
Hero Member
*****

Karma: +205/-15
Scollegato Scollegato

Messaggi: 2706


Discrete And Combinatorial Mathematics


Mostra profilo WWW
« Risposta #6 inserita:: Luglio 01, 2012, 02:40:21 pm »

Occorre innanzi tutto premettere che qui si parla di software engineering lightweight: metodologie generali implementate con strumenti semiformali (tipicamente UML). Considerando come vanno le cose nell'Università italiana oggi, è già molto che si studino ancora almeno codesti aspetti introduttivi della materia. Occhi al cielo

Tale considerazione, tuttavia, spiega la sostanziale assenza su questo sito di una entry bibliografica strettamente dedicata a codesta tematica. Da un lato, i testi classici del software engineering (Pressman, Sommerville, Mandrioli-Ghezzi) sono pochissimi e probabilmente esorbitanti per le esigenze di un corso moderno: senza contare poi che sono già stati citati innumerevoli volte en passant nel corso di altre discussioni. Dall'altro lato, il numero di testi che cita UML fin dal titolo è imbarazzantemente elevato, e fin troppo spesso si tratta di testi del tutto inutilizzabili.

Per il resto, sono decisamente validi i riferimenti riportati dal buon DEV-01.
Si ricordi comunque che il vero e proprio core del software engineering è unicamente dedicato allo studio e all'uso di linguaggi formali: da Z alle reti di Petri, alle logiche temporali, fino alla variegata galassia delle semantiche formali dei linguaggi di programmazione. I metodi semiformali, dai banali diagrammi di flusso a UML, sono solamente un antipasto. Alla fine di un corso siffatto, la cosa più importante da ricordare è che quanto studiato sta al corpo del software engineering come una soapbox car sta ad un bolide di F1.
Registrato

I Moderatori invitano tutti gli utenti a prendere visione del REGOLAMENTO e a rispettarlo.

Un blog? Io? Occhiolino
DEV-01
Full Member
***

Karma: +8/-21
Scollegato Scollegato

Messaggi: 363


Mostra profilo E-mail
« Risposta #7 inserita:: Luglio 02, 2012, 03:09:54 pm »

Per il resto, sono decisamente validi i riferimenti riportati dal buon DEV-01.


Grazie per la notifica... sei uno dei miei miti!!


Alla fine di un corso siffatto, la cosa più importante da ricordare è che quanto studiato sta al corpo del software engineering come una soapbox car sta ad un bolide di F1.

Sono perfettamente d'accordo ed è per questo che ho scelto quei link far i vari esaminati.
Registrato

01000100 01100101 01110110 00101101 00110000 00110001
QuasarLex
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 22


Mostra profilo E-mail
« Risposta #8 inserita:: Luglio 04, 2012, 05:52:34 pm »

Grazie per le risposte... avrei una domanda più pratica:

Se ho una due entità legate tra di loro con una associazione da un lato uno, dall' altro * ( molti ), nell' implementazione, per esempio, potrei utilizzare una lista di riferimenti che puntano ai vari oggetti del lato molti. E fino a qui ci siamo...

cosa succede invece per le associazioni molti-molti ?? Vanno inserite le liste in entrambe le classi?

E , ancora più importante, nel caso di Classi associative?Che?!? ( in pratica le ternarie.. )
Registrato
DEV-01
Full Member
***

Karma: +8/-21
Scollegato Scollegato

Messaggi: 363


Mostra profilo E-mail
« Risposta #9 inserita:: Luglio 04, 2012, 09:56:04 pm »

Per prima cosa devi occuparti della struttura del database, non delle classi che andranno ad utilizzarlo, con un altissimo grado di disaccoppiamento "mentale" (tuo), questo è un errore molto comune tra i neofiti, me compreso.  Sorriso

Le relazioni fra le tabelle seguono la logica e l' ordinamento dettato dalle forme normali:

http://www.apriliselena.altervista.org/FormeNormali.pdf

Nel link sopra vengono brevemente illustrate le prime 3 di 5 che in genere sono anche quelle sufficienti (o per lo meno le più diffuse, a seguire i motivi, più che altro legati alle prestazioni e al grado di complessità):

http://it.wikipedia.org/wiki/Normalizzazione_(informatica)

Questo link dovrebbe rispondere più o meno anche alla tua domanda relativa alle classi riguardo le relazioni ternarie; puoi dare un' occhiata qui (entry-level) tanto per farti un' idea:

http://didawiki.cli.di.unipi.it/lib/exe/fetch.php/bdd-infuma/bdd.10.prog.conc.2.pdf

Si tratta comunque di una struttura "incrociata" a dipendenza "interconnessa".

Puoi dare un' occhiata generale anche a questo:
http://www.math.unipd.it/~tullio/IS-1/2009/Dispense/E3.pdf

E senz'altro a questo:
http://www.dmi.unict.it/~giugno/database/progettazione-1.pdf

SQL ti fornisce tutti gli strumenti per operare in merito ma sei tu a decidere come agire tenendo in conto integrità dei dati, velocità di esecuzione e consumo di risorse. Da qui, come passo successivo, la scrittura delle classi e dei metodi che andrai ad implementare.
Registrato

01000100 01100101 01110110 00101101 00110000 00110001
QuasarLex
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 22


Mostra profilo E-mail
« Risposta #10 inserita:: Luglio 04, 2012, 11:41:17 pm »

Si conosco le forme normali ( già affrontate nel corso di basi di dati ). Quindi il consiglio è partire l' analisi dal modello E-R ? In classe l' esercizio non è mai stato affrontato in questo modo...
Registrato
thedom
Newbie
*

Karma: +0/-1
Scollegato Scollegato

Messaggi: 37


zinzidomenico@hotmail.it
Mostra profilo E-mail
« Risposta #11 inserita:: Luglio 05, 2012, 01:41:18 pm »


Ciao

E' consuetudine nello studio di  Ingegneria del Software non approfondire argomenti di basi ma di concentrarsi molto sulla programmazione ad oggetti e tutto ciò che può aiutare la progettazione (es:design pattern - digrammi sequenza ... ) .

Solitamente si da per scontata la conoscenza di basi di dati.

Molte università hanno proprio una propedeuticità Occhiolino
Registrato
QuasarLex
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 22


Mostra profilo E-mail
« Risposta #12 inserita:: Luglio 05, 2012, 02:01:24 pm »

Si, però il dato di fatto è che all' esame mi viene chiesto di sviluppare un software..
Registrato
DEV-01
Full Member
***

Karma: +8/-21
Scollegato Scollegato

Messaggi: 363


Mostra profilo E-mail
« Risposta #13 inserita:: Luglio 05, 2012, 02:26:12 pm »

E' consuetudine nello studio di  Ingegneria del Software non approfondire argomenti di basi ma di concentrarsi molto sulla programmazione ad oggetti e tutto ciò che può aiutare la progettazione (es:design pattern - digrammi sequenza ... ) .

Solitamente si da per scontata la conoscenza di basi di dati.

Si , hai ragione.
Tuttavia mi pare di aver scelto le risposte in base agli argomenti delle richieste effettuate di volta in volta relativamente alle cose "poco chiare" citate da QuasarLex.
Una volta chiariti o approfonditi gli argomenti di base (ove lui lo ritenga necessario, le mie erano solo proposte), si può senz'altro procedere con i restanti argomenti altrimenti è come costruire un grattacielo nella cui scala ogni gradino può rappresentare una potenziale trappola (almeno questo è come la vedo io ma non sono un aftegmatico).
Registrato

01000100 01100101 01110110 00101101 00110000 00110001
DEV-01
Full Member
***

Karma: +8/-21
Scollegato Scollegato

Messaggi: 363


Mostra profilo E-mail
« Risposta #14 inserita:: Luglio 05, 2012, 02:49:59 pm »

Si conosco le forme normali ( già affrontate nel corso di basi di dati ). Quindi il consiglio è partire l' analisi dal modello E-R ? In classe l' esercizio non è mai stato affrontato in questo modo...

No, quella era la risposta al tuo intervento n #8.

Cit. Wikipedica (dalla page:http://it.wikipedia.org/wiki/Unified_Modeling_Language):
1)"Gran parte della letteratura di settore usa UML per descrivere soluzioni analitiche e progettuali in modo sintetico";
2) "Vista dei casi d'uso (Use Case View) utilizzata per analizzare i requisiti utente. Obiettivo di questo livello di analisi è studiare il sistema considerandolo come una scatola nera. È necessario concentrarsi su cosa il sistema deve fare astraendosi il più possibile dal come: è necessario individuare tutti gli attori, i casi d'uso e le relative associazioni. Importante è dettagliare i requisiti del cliente, capirne i desideri più o meno consapevoli, cercare di prevedere i possibili sviluppi futuri, ecc."

Per cui in base a quanto concerne la comprensione dell' approccio allo sviluppo dovrai rifarti ai link dei miei post precedente (#1) e (#5) ma l' sdm che andrai a formalizzare con UML è virtualmente slegato dalla struttura della base dati.
Registrato

01000100 01100101 01110110 00101101 00110000 00110001
Pagine: [1] 2   Vai su
  Stampa  
 
Vai a:  

Copyright © 2011 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



Links to Page