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

Kadir Çamoğlu
4 min readNov 2, 2022

--

Bu yazı, yazılım sektörüne yabancı olan ama bu sektöre ilgi duyanlar için. Mezun olmamış, yeni mezun ya da başka bir meslekte olup da yazılım alanında analist, yazılım ya da test uzmanı olmak isteyenlere yönelik minik bir yazılım proje simülasyonu yapacağız.

Siz de bir yazılımın geliştirilme sürecini merak ediyorsunuz, buyurun, başlıyoruz!

Projede 3 temel görev var: analiz, yazılım ve test. Doğal olarak 3 adet de temel rol var: analist, yazılımcı ve test uzmanı.

Analist hem proje talebini ve paydaşlarla iletişimi yürütüyor hem de iş analizi çalışmalarını gerçekleştiriyor.

Yazılımcı analistin ortaya koyduğu analiz üzerinden yazılımı geliştirmek ve ortaya çıkan oyunu devreye almaktan sorumlu.

Test uzmanı ise analiz bilgileri üzerinden test senaryolarını oluşturuyor, teste açılan yazılımı test ediyor, çıkan hataları ve çözülmesini takip ediyor.

Hikâye oyunun ilk versiyonunun kapsamının belirlenmesiyle başlıyor. Ardından detay analiz, geliştirme, test ve devreye almayla devam ediyor.

İşin test kısmı kendi içinde birkaç döngü şeklinde gerçekleşiyor. Önce hatalar eksikler tespit ediliyor, yazılımcı bunları onarıyor, sonra yeniden test ediliyor. Bu döngü, yazılım müşteriye demoya çıkılabilecek kadar stabil olana kadar devam ediyor. Sonra müşteri/kullanıcı kabul testi yapılıyor. Burada da bazı değişiklikler isteniyor. Yeniden analiz, geliştirme, test çalışmaları yapılıyor. En son müşteri kabulü alınarak yazılım platforma yükleniyor ve orada son kez kontrol edildikten sonra proje tamamına eriyor.

Eğer hikâye ilginizi çektiyse gelin proje fikrini hatırlayarak ve ilk versiyonun kapsamını belirleyerek başlayalım.

Bil Bakalım Kaç Versiyon 1

İlk olarak oyunumuzun birinci versiyonunun kapsamını belirleyerek başlayacağız. Öncelikle müşteriyle bir görüşme yaparak projeye yönelik beklentisini öğreniyoruz.

“Bil Bakalım Kaç” bir oyun projesidir. Müşteri oyunun Scratch (https://scratch.mit.edu/) ortamında geliştirilmesini ve geliştirilen oyunun Scratch platformunda yayınlanmasını istiyor. Oyun temel olarak şöyle işliyor: Yazılım 1–100 arasında rastgele bir sayı tutar ve kullanıcının bu sayıyı tahmin etmesini ister. Kullanıcı tahminini sisteme girer. Sistem tutulan ile tahmini karşılaştırır ve eğer ikisi aynıysa kullanıcı oyunu kazanmış olur. Eğer tutulan ile tahmin aynı değilse sistem kullanıcıyı daha büyük ya da daha küçük sayı girmesi konusunda yönlendirir.

Bunlar temel isteklerdi. Bunlara ek olarak aşağıdakiler de önerilmiş:

  • Oyuna görsel efektler ekleyebilirsiniz.
  • Oyuna ses efektleri ekleyebilirsiniz.
  • Oyuna arka plan ekleyebilirsiniz.
  • Bilip/bilmeme haricinde bir geri sayım mekanizması kurgulayabilirsiniz. Örneğin kullanıcı 90 saniye içinde doğru cevabı bilemezse oyun biter.
  • Deneme sayısı tutulabilir.
  • Geçersiz veri giriş kontrolü yapabilirsiniz. Kullanıcı 1–100 dışında bir rakam ya da harf/özel karakter gibi geçersiz veri girişi yaparsa hata mesajı göstererek geçerli bir değer girmesi istenebilir.
  • Oyuna dil seçeneği eklenebilir. Türkçe, İngilizce, Almanca, Fransızca, vb.
  • Oyuna zorluk dereceleri eklenebilir. (Kolay: 90 saniye, 1–100 arası, Orta: 60 saniye, 1–200 arası, Zor: 30 saniye, 1–300 arası)

Oyunun ilk versiyonunu geliştirirken mümkün olan en basit ama oyun açısından eksiği olmayan bir kapsamla başlayacağız. Şimdi neleri kapsama alacağız, bunları neden alacağız ve kapsam dışında kalanları neden sonraya bırakacağımıza teker teker bakalım.

  1. Oyunun bir Scratch projesi olarak geliştirilmesi isteniyor. Projeyi en baştan itibaren Scratch ile kurgulamamız kaçınılmaz. Bunu kapsama alıyoruz.
  2. Yazılım 1–100 arasında bir sayı tutacak. Kullanıcı bunu tahmin etmek üzere belirli sayılar girecek. Bilirse kazanacak, bilmezse küçük sayı girerse daha büyük girmesi, büyük girerse daha küçük sayı girmesi söylenecek. Bunlar da oyunun çatısını oluşturduğu için kapsama dahil ediyoruz.
  3. Diğer önerilere baktığımızda oradaki bir maddenin de ilk versiyondan itibaren uygulanması gerektiğini fark edeceksiniz: “Geçersiz veri giriş kontrolü.” Eğer bunu kapsama almazsak, birinci versiyon ile oynayan bir oyuncu hatalı bir giriş yaptığında (“a”, “ “, “@”, “500”, “-10”) oyun ya yanlış yönlendirir ya da çöker. Bunu istemeyiz değil mi?

Yukarıdaki 3 madde ana kapsamımızı oluşturuyor. Peki neleri kapsam dışında tutabiliriz?

  1. Görsel efektler, arka plan ve ses efektleri.
  2. Deneme sayısının takibi.
  3. 90 saniye geri sayım sonrası oyunun bitmesi.
  4. Dil seçeneği.
  5. Zorluk dereceleri.
  6. Oyun giriş ekranı.
  7. Oyun bitiş ekranı.

Evet, böylece ilk analiz çalışmamızı yapmış olduk. Projemizin kapsamını (kapsama dahil olanlar ve olmayanlar) belirlemiş olduk.

Şimdi bu yukarıdaki konuşmayı paydaşlarımızla yapmış olduğumuzu ve birlikte kapsamı belirlediğimizi düşünelim. Bu çalışma sonrasında gelin analiz dokümanımıza kapsam başlığımızı açalım ve gerekli bilgileri yazalım.

İlk analiz metnimizi yazdık, hayırlı uğurlu olsun!

Scratch’i Biraz Tanıyalım

Şimdi elimizde bir metin var. Buna analiz metni dedik. Kapsamı anlatıyor. Gördüğümüz gibi kapsam denilen şey aslında projede olması gereken “gereksinimleri” içeriyor. Sistemin nelere sahip olması gerekiyor, neleri yapması gerekiyor, nasıl yapması gerekiyor, bunları anlatıyor…

Ama analizimiz şu aşamada geliştirme aşamasına göndermek için yeterince detaylı mı? İstenileni anladığımızdan emin miyiz?

Bu aşamada paydaşlara sormamız gereken sorular var mı bir bakalım. Öncelikle Scratch’ı hiç bilmediğinizi varsayarak ben çok hızlı bir özet geçiyorum. Eğer daha fazlasını öğrenmek isterseniz https://scratch.mit.edu/ adresinden biraz inceleyin.

Scratch platformu 7'den 77'ye herkese kodlamayı öğretmek için geliştirilmiş bir platform. Bir yazılım geliştirmek ve geliştirdiğiniz yazılımı yükleyerek çalıştırılmasını sağlamak için gerekli her şeyi sağlıyor. Geliştirdiğiniz bir programı çalıştırmak için ekranın sol üst tarafındaki yeşil bayrağa (1) basıyorsunuz. Oyunu durdurmak için de onun hemen sağındaki kırmızı yuvarlağa (5) basmanız yeterli.

Oyunda temel öğeler “kukla” olarak ifade ediliyor. Buradaki kedi bir kukla ve tüm olay kukla üzerinde gelişiyor. Ekranda kuklanın “Adınız?” (2) diye bir mesaj görüntülediğini görüyorsunuz.

Veri girişi için ekranın altında bir metin kutusu açılıyor (3). Buraya bilgiyi yazdıktan sonra klavyeden [ENTER] tuşuna basarak ya da (4) no’lu işareti tıklayarak girişinizi tamamlayabilirsiniz.

Bir analist olarak analizimizi yapmak üzere bu kadar Scratch size yeterli olacaktır. Şimdi sorulara geçelim.

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. Bir soru listesi oluşturalım ve bunu paydaşlara soralım. Aldığımız cevaplara göre de analiz çalışmamızda ilerleriz.

Bu aşamada, bir sonraki bölüme geçmeden önce soruları kendiniz çıkartmaya çalışın ve yorum olarak aşağıya bırakın. Bakalım sizin çıkarttığınız sorularla benim hazırladığım sorular arasında farklılıklar neler olacak?

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