YZM 311 YAZILIM YAPIMI
ÖDEV #3
Son Teslim Tarihi: 2 Aralık 2014 Salı 13:10
Soruları diğer sayfalarda verilen kod parçalarını dikkate alarak yapınız. Rahatlığınız için
tamamen aynı şeyi yapan program hem Java ile hem C# ile kodlanmıştır. Soruları
cevaplandırırken iki dilden birini kullanabilirsiniz.
Kod parçalarındaki metod, bir listeye eleman eklemektedir. Bunu yaparken de öncelikle
verilen anahtar değeri listede aranır; bulunursa o anahtara karşılık gelen değer parametre
olarak verilen değer ile güncellenir, bulunamazsa verilen anahtar ve değer ile yeni bir eleman
listeye eklenir.
1) ListedeYoksaEkleVarsaGuncelle metodunun Karmaşıklığını (cyclomatic
complexity) hesaplayın.
a) (20 puan) Sadece karmaşıklık değerini yazıp bırakmayın; bu değeri nasıl bulduğunuzu
da ayrıntılı olarak açıklayın.
b) (15 puan) Bulduğunuz karmaşıklık değerini yorumlayın. Yani, bu metod sade mi
karmaşık mı? Karmaşıklığını azaltmak için değişiklik gerekir mi? Evet ise nasıl?
2) ListedeYoksaEkleVarsaGuncelle metodunu test etmek üzere birim testleri (unit
test) yazın.
a) (30 puan) Yalnızca Deyim Kapsama (statement coverage) elde edecek test vakaları
yazın.
b) (35 puan) Dallanma (Karar) Kapsama (branch (decision) coverage) elde edecek
test vakaları yazın.

Geç teslim edilen ödevler kesinlikle kabul edilmeyecektir!

Lütfen birbirinden kopya ödevler teslim etmeyin. Birbirinin aynısı ya da kopya olarak
hazırlandığı çok belli olan raporlar ve kodlar sıfır puan alacaktır

Ödevi yalnızca basılı doküman olarak teslim edin. E-posta yoluyla herhangi bir şey
göndermeyin.
Yrd. Doç. Dr. Volkan TUNALI
[email protected]
1
Java ile yazılmış kod
public void ListedeYoksaEkleVarsaGuncelle(List<ListeElemani> liste,
String eklenecekAnahtar,
Object eklenecekDeger)
{
Boolean listedeVar = false;
ListeElemani bulunanEleman = null;
for (int i = 0; i < liste.size(); i++)
{
ListeElemani le = liste.get(i);
if (le.anahtar.equals(eklenecekAnahtar))
{
listedeVar = true;
bulunanEleman = le;
break;
}
}
if (listedeVar)
{
bulunanEleman.deger = eklenecekDeger;
}
else
{
ListeElemani yeniEleman = new ListeElemani();
yeniEleman.anahtar = eklenecekAnahtar;
yeniEleman.deger = eklenecekDeger;
liste.add(yeniEleman);
}
}
public class ListeElemani
{
public String anahtar;
public Object deger;
}
2
C# ile yazılmış kod
public void ListedeYoksaEkleVarsaGuncelle(List<ListeElemani> liste,
String eklenecekAnahtar,
Object eklenecekDeger)
{
Boolean listedeVar = false;
ListeElemani bulunanEleman = null;
for (int i = 0; i < liste.Count; i++)
{
ListeElemani le = liste[i];
if (le.anahtar == eklenecekAnahtar)
{
listedeVar = true;
bulunanEleman = le;
break;
}
}
if (listedeVar)
{
bulunanEleman.deger = eklenecekDeger;
}
else
{
ListeElemani yeniEleman = new ListeElemani();
yeniEleman.anahtar = eklenecekAnahtar;
yeniEleman.deger = eklenecekDeger;
liste.Add(yeniEleman);
}
}
public class ListeElemani
{
public String anahtar;
public Object deger;
}
3
Download

ÖDEV #3