Documente Academic
Documente Profesional
Documente Cultură
- concepte, exemple -
1. Introducere
method copiecarte::imprumutare
input parameter – NrImprumut
return type – int
0 dacă nu e disponibilă copia
1 dacă e disponibilă copia
3. Concepte ale designului
Soluţie. Pe primul nivel de design, începem printr-o funcţie imprumutare care are
doi parametri: titlul cărţii şi numele cititorului.
Dacă funcţia imprumutare din modulul biblioteca ştie despre clasa imprumut, poate
verifica disponibilitatea cărţii, poate crea instanţa imprumut şi poate apela funcţiile
imprumutare pentru a seta valorile instanţei imprumut.
Aşa cum se arată în figura de mai sus, abstractizarea nu e bună. De ce?
4. Măsurarea coeziunii
4.1 “Feliile” unui program (program slices)
Valorile unei variabile într-un program depind de valorile altor variabile.
z = 0;
while x > 0 do
z = z + y;
x = x –1;
end-while
Program slices pot fi obţinute din ambele direcţii. Output slices găsesc
fiecare instrucţiune care afectează valoarea unei ieşiri (output) specificate.
Input slices găsesc fiecare instrucţiune care e afectată de valoarea unui
input specificat.
Soluţie. Vom folosi linie continuă pentru data dependencies şi linie punctată pentru
control dependencies.
Soluţie. În figura de pe pagina următoare din fiecare token către toate tokens care
sunt afectate imediat de valoarea token-ului.
Graf orientat arătând toate dependenţele
Nu sunt superglue tokens, aşadar strong functional cohesion (SFC) este
zero. Din cei 31 tokens, sunt 12 glue tokens, deci weak functional
cohesion este 12/31 sau 0.387.
Sunt patru slices. Zero tokens au adezivitate 100%. Patru tokens sunt în
trei slices, aşa încât au adezivitate 100%. Opt tokens sunt în două slices,
aşa încât au adezivitate 50%. Tokens rămaşi, 19, sunt doar într-un slice,
aşa încât au adezivitate 25%.
(4*0,75+8*0,50+19*0,25)/31=11,25/31=0,363
5. Măsurarea cuplării (coupling)
Dharma (H. Dharma, ‘‘Quantitative Models of Cohesion and Coupling in
Software,’’ Journal of Systems and Software, 29:4, April 1995.) a propus o
metrică cu următoarea listă de situaţii pentru numărare:
di = Numărul de parametri de date de intrare
ci = Numărul de parametri de control de intrare
do = Numărul de parametri de date de ieşire (output data parameters)
co = Numărul de parametri de control de ieşire (output control
parameters)
gd = Numărul de variabile globale folosite ca date
gc = Numărul de variabile globale folsoite ca control
w = Numărul de module apelate (fan-out)
r = Numărul de module apelante a modului fan-in)
inapoi