31 Aralık 2018 Pazartesi

2018'den 2019'a Geçerken

Bir yıl daha tükettik ömrümüzden.
Bir yıl daha yaklaştık ölüme.
Kırdıklarımız oldu.
Üzdüklerimiz oldu.
Kırıldıklarımız oldu.
Üzüldüklerimiz oldu.
Ama şimdi bizim için ne kadar süreceğini bilmediğimiz bir yeni yıla başlıyoruz.
Daha dikkatli ol.
Daha mutlu ol.
Kendinle barış.
Kendine güven.
Sen yaparsın.
Güçlüsün.
Yeni bir yıl ya da yeni bir gün farketmez.
Sirkelen artık kendine gel.
Ne kadar ömrün kaldığını biliyor musun?
Kendin için yaşa.
Önce kendini düşün, sonra düşünürsün sevdiklerini.
Hem zaten sen mutlu olmazsan sevdiklerini nasıl mutlu edebilirsin ki?
Gülümse.
Hayat kısa.
Sarıl sevdiklerine.
Seni seviyorum demeyisakın ihmal etme.


                                2019

 

Bana ulaşmak için e-posta ve instagram   

29 Aralık 2018 Cumartesi

Yazılım Testi Nedir?

Yazılımın özelliklerini değerlendirmek amacıyla incelenmesi ve yazılımda var olan ile istenen durumlar arasındaki farklılıkların değerlendirilme süreci yazılım testi olarak adlandırılır.
Test bir yazılımın hata bulma amacıyla çalıştırılmasıdır.
Başka bir tanımla test bir sistemin özellik ve yeteneklerinin uygunluğunu ölçmek için hatalarının açığa çıkarılma sürecidir.
Bir hata yazılım geliştirme sürecinin herhangi bir evresinde ortaya çıkabilir ve hatanın birçok sebebi olabilir.

"Yazılım testi korunmak için, akla gelmeyecek kadar gizli-kapalı belirsizlikleri karşılaştırma sürecidir." Boch.

"Yazılım testi, ürünün davranışlarını öngörme/tahmin etme ve bu tahminlerin gerçek sonuçlarıyla karşılaştırılma sürecidir." R.Vaderwall.

Yazılım testleri hata olmadığını göstermek yerine yazılımda hataların var olduğunu göstermeyi amaçlar. Bu nedenle hataların tespit edilmesi yapılan testlerin başarısını gösterir. Ne kadar çok hata tespit edilip düzeltilmiş ise yazılım o kadar başarılıdır.



Bana ulaşmak için e-posta ve instagram.  

Kabarcık Sıralama

Kabarcık Sıralaması, bilgisayar bilimlerinde kullanılan yalın bir sıralama algoritmasıdır. Sıralanacak dizinin üzerinde sürekli ilerlerken her defasında iki öğenin birbiriyle karşılaştırılıp, karşılaştırılan öğelerin yanlış sırada olmaları durumunda yerlerinin değiştirilmesi mantığına dayanır.
Örnek
İlk geçiş
( 5 1 4 2 8 ) → ( 1 5 4 2 8 ), algoritma iki elemanı karşılaştırır ve 5>1 olduğundan yer değiştirme yapar.

( 1 5 4 2 8 ) → ( 1 4 5 2 8 ),  5>4 olduğundan yer değiştirme yapılır.
( 1 4 5 2 8 ) → ( 1 4 2 5 8 ),  5>2 olduğundan yer değiştirme yapılır.
( 1 4 2 5 8 ) → ( 1 4 2 5 8 ), elemanlar zaten sıralı (8>5), algoritma onların yerini değiştirmez.
İkinci geçiş
( 1 4 2 5 8 ) → ( 1 4 2 5 8 )
( 1 4 2 5 8 ) → ( 1 2 4 5 8 ),  4>2 olduğundan yer değiştirme yapılır.
( 1 2 4 5 8 ) → ( 1 2 4 5 8 )
( 1 2 4 5 8 ) → ( 1 2 4 5 8 )
Dizi sıralanmıştır.





void bubbleSort (int arr [], int n)
{
      int i,j;
      for (i=0; i<n-1; i++)
          for (j=0; j<n-i-1; j++)
              if (arr[j] > arr[j+1])
                 swap (&arr[j], &arr[j+1]);
}




Bana ulaşmak için e-posta ve instagram.   

Bubble Sort

27 Aralık 2018 Perşembe

Bubble Sort

Bubble sort is the simplest sorting algortihm that works by repeatedly swapping the adjacent elements if they are in wrong order.
Example:
First Pass
( 5 1 4 2 8 ) → ( 1 5 4 2 8 ), algorithm compares the first two elements, and swaps since 5>1
( 1 5 4 2 8 ) → ( 1 4 5 2 8 ), swap since 5>4
( 1 4 5 2 8 ) → ( 1 4 2 5 8 ), swap since 5>2
( 1 4 2 5 8 ) → ( 1 4 2 5 8 ), now, since these elements are already in order (8>5), algorithm does not swap them.
Second Pass
( 1 4 2 5 8 ) → ( 1 4 2 5 8 )
( 1 4 2 5 8 ) → ( 1 2 4 5 8 ), swap since 4>2
( 1 2 4 5 8 ) → ( 1 2 4 5 8 )
( 1 2 4 5 8 ) → ( 1 2 4 5 8 )
Now, the array is already sorted.


void bubbleSort (int arr [], int n)
{
      int i,j;
      for (i=0; i<n-1; i++)
          for (j=0; j<n-i-1; j++)
              if (arr[j] > arr[j+1])
                 swap (&arr[j], &arr[j+1]);
}





Bana ulaşmak için e-posta ve instagram.


Kabarcık Sıralama

26 Aralık 2018 Çarşamba

Artımlı Model

Çağlayan modeline yinelemeli bir özellik katılarak artımlı model oluşturulmuştur. Bu model belirli bir takvime bağlı olarak yazılımı sürümler halinde geliştirip teslim etmeye dayanır. Her bir yeni sürüm, öncekinin üstüne bazı ek işlevlerin eklenmesini öngörür. Bu model gereksinimlerin tamamının belli olduğu durumlarda etkin bir şekilde kullanılabilir. Bu modelin evrimsel geliştirme modelinden farkı, çıkan her sürümün son ürünün sahip olduğu tüm işlevleri içermesidir.



Bana ulaşmak için e-posta ve instagram

25 Aralık 2018 Salı

Spiral Model

Spiral modelde yazılım geliştirme süreci geriye dönüşü olan ardışık faaliyetler yerine spiral olarak genişleyen bir yapıda ifade edilir. Spiral model kullanıldığında her bir sarmalın sonunda yazılımın yeni bir sürümü ortaya çıkar. İlk halkanın sonunda artırımda ortaya çıkarılan yazılım uygulama ortamında kullanılanın gerçek bir prototipidir. Geliştirimi sırasında tüm süreç uygulanmıştır. Sonraki yinelemelerde üstüne yeni işlevler sürecin tüm adımları kullanılarak eklenir. Kalite, verimlilik ve kapasite açısından geliştiirlen yazılımın uygun özellikleri taşıması her sarmal döngüde (her yeni sürümde) sağlanarak geliştirme süreci sürdürülür.
Sarmalın herbir döngüsü sırayla tekrarlanan dört etkinlikten oluşur:
  1. Planlama: Yapılacakların eldeki kaynaklar ve zaman çizelgesi gibi konular göz önünde tutularak planlanmasıdır.
  2. Risk Çözümleme: Teknik ve yönetsel risklerin çözümlenmesidir.
  3. Geliştirme: Yazılımın gerçekleştirimi, çözümleme, tasarım, kodlama aşamalarıdır.
  4. Değerlendirme: Kullanıcı geribildiriminin alınması, yapılanın geçerliliğinin ve gerektiği gibi çalıştığının ortaya konmasıdır.
Spiral model çok karmaşık büyük projelerde uygulanabilecek gerçekçi bir model olarak görülmektedir.


Bana ulaşmak için e-posta ve instagram

24 Aralık 2018 Pazartesi

Evrimsel Geliştirme Modelleri

Evrimsel geliştirme modellerinde, ilk gerçekleştirimi hızlı yapıp onun üzerinde kullanıcının tepkilerini alıp iyileştirmeyi öngörerek yazılım geliştirilmesi hedeflenir.
Başlıca evrimsel geliştirme modelleri:
  • Araştırmacı (explatory) Geliştirme
  • Atılabilir (throwaway) Prototipleme
Araştırmacı geliştirmede yazılım geliştirilmeye daha anlaşılır bir kesim ile başlanır; üstüne yeni özellikler eklenerek devam edilir. Bu yaklaşım yazılımın gereksinimlerinin daha iyi anlaşılmasını hedeflemektedir.
Atılabilir prototiplemede amaç yazılım gereksinimlerini keşfetmektir. Bu nedenle ilk anda tespit edilen gereksinimlerden bir prototip yazılım geliştirilerek müşteriye gösterilir. Buradan hareketle müşterinin kafasındaki hedef yazılım keşfedilmeye çalışılır. Gösterilen prototip daha sonra bir daha kullanılmadan atılabilir.



Bana ulaşmak için e-posta ve instagram.