Minik Bir Yazılım Projesi Simülasyonu -2

Kadir Çamoğlu
3 min readNov 4, 2022

--

Photo by fauxels: https://www.pexels.com/photo/photo-of-pen-on-top-of-notebook-3183170/

Eğer yazının ilk bölümünü okumadıysanız mutlaka buraya tıklayarak okuyun.

Minik yazılım projesi simülasyonumuzda “Bil Bakalım Kaç” oyunumuzun şu ana kadar kapsamını belirledik ve analiz çalışmalarına başladık. Elimizdeki bilgilerin üzerinden geçtik ve eksikler için paydaşlara soru hazırlama aşamasındayız. Ardından mesajlar tablosunu oluşturacağız ve algoritmasıyla ilerleyeceğiz.

***

Analiz Planı ve Paydaşlara Sorular

Diyelim ki Scratch platformunu tanıdık, kapsamımızı da biliyoruz. Bu kadarı analiz için yeterli midir? Yazılımcıya analiz vermeye hazır mıyız? Elbette hayır!

Şimdi elimizdekilere bakarak neler eksik, yazılımcıya iletmek üzere neler yapmamız lazım, bunları hazırlamak için hangi ek bilgilere ihtiyacımız var, birlikte belirleyelim.

1. İlk sorumuz kukla hakkında olabilir. Scratch’in maskotu olan kediyi kullanalım mı, özellikle istedikleri başka bir kukla var mıdır?

2. Kullanıcı/oyuncu yeşil bayrağa basarak uygulamayı çalıştırdığında ilk ne görmesini istiyoruz? Giriş kutusuna ne gireceğini nereden bilecek? Onu nasıl bir mesajla yönlendirmeliyiz?

3. Kullanıcı hatalı bir giriş yaptığında nasıl bir mesaj görüntülemeliyiz? (Mesaj metnimiz ne olmalı?)

4. Kullanıcı tutulan sayıyı bildiğinde göstereceğimiz mesaj metni ne olmalıdır?

5. Kullanıcı tahmin edilenden küçük bir tahmin girdiğinde göstereceğimiz mesaj metni ne olmalıdır?

6. Kullanıcı tahmin edilenden büyük bir tahmin girdiğinde göstereceğimiz mesaj metni ne olmalıdır?

7. Kullanıcı tutulan sayıyı bildiğinde göstereceğimiz mesaj metni ne olmalıdır?

Sorularımız şimdilik bu kadar gibi görünüyor. Şimdi analiz planımızı yapalım. Şu ana kadar zaten kapsam metnini oluşturduk. Sorulardan anlaşılacağı üzere bir de mesaj tablosu oluşturmamız gerekecek. Bu tabloda mesaj metinleri ve bu metinlerin ne zaman gösterileceğini belirteceğiz. Buraya kadar tamam. Ama bir de oyunun akışını yani algoritmasını oluştursak daha da iyi olacaktır. Bu algoritma diyagramını çizmek bazı kurumlarda analistin, bazı kurumlarda yazılımcının görevidir. Ben burada bu görevi analiste veriyorum. Bu durumda yapacaklarımızın listesi şöyle:

  1. Kukla olarak ne kullanacağımız sorusuna alacağımız cevaba uygun şekilde kapsam metnini güncellemek.
  2. Mesaj metinleri tablosunu oluşturmak.
  3. Algoritma diyagramını çizmek.

Kapsam Metnini Güncelleme

Paydaşa sorduğumuzu ve aldığımız cevap sonrasında görsel ve ses efektlerini sonraki versiyona bıraktıklarını bu nedenle bu versiyonda “Scratch’in kedisiyle” ilerlememizin uygun olduğunu söylediklerini varsayalım. Bu durumda aldığımız cevabı resmileştirmek adına kapsam dokümanımızın “Kapsama Dahil Olanlar” bölümüne şu metni ekleyelim: “Ekranda kukla olarak Scratch’in sembolü olan kukla öğesi kullanılacaktır.”

Mesaj Metinleri Tablosunu Oluşturmak

Kullanıyıca oyun sürecinde gösterilecek mesajları yazacağımız mesaj metinleri tablosunu şu şekilde oluşturacağız: Öncelikle paydaşlara mesajları soracağız ve aldığımız cevabın hangi durumda ekranda gösterileceğiyle birlikte tabloya yerleştireceğiz. Bu durumda tabloda birinci sütun mesaj no, ikinci sütun mesajın hangi koşulda gösterileceği ve üçüncü sütun da mesaj metni şeklinde olacaktır.

Algoritma Diyagramı

Oyunun mantığını oluşturan algoritmanın akış diyagramını çizmek önemlidir. Bu oyun çok basit olduğu için algoritma belki metinle de ifade edilebilir ama daha karmaşık örneklerde bir diyagram yapılacak işin mantığını çok daha yalın ve herkesçe aynı şekilde anlaşılacak şekilde anlatacaktır.

***

Bu aşamada algoritmayı metinsel ve görsel olarak oluşturmayı sizin denemenizi istiyorum. Yazının devamını okumadan, şu ana kadar zihninizde oluştuğu kadarıyla uygulamanın algoritmasını oluşturun ve yorumlarda paylaşın.

Originally published at https://www.linkedin.com.

--

--

Kadir Çamoğlu
Kadir Çamoğlu

Written by Kadir Çamoğlu

Kadir Çamoğlu (Ph.D., Computer Engineering) is a problem solver, consultant, teacher, author, practitioner, and architect of system and software solutions.

No responses yet