BLM113 Bilgisayar Bilimlerine Giriş

Slides:



Advertisements
Benzer bir sunumlar
DOÇ. DR.MEHMET ERDOĞAN AKDENİZ ÜNİVERSİTESİ
Advertisements

ODTÜ Bilgisayar Mühendisliği Tanıtım Günleri Temmuz 2005.
Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
İŞLE 524 – İŞLE 531 Yönetim Muhasebesi
Yazılım Mühendisliği Eğitimi YYurtaY. Bir yazılım mühendisliği (lisans) mezununun sahip olması gereken yetenekler şunlardır : 1. Yazılım ürünleri geliştirmek.
. Bologna Sürecinde İç Denetçilerin Rolü (YÖK Düzeyinde) Hazırlayan: Süreyya SÜZEN Yükseköğretim Kurulu Başkanlığı İç Denetçisi.
T.C. ORDU VALİLİĞİ İlköğretim Müfettişleri Başkanlığı TAM ÖĞRENME MODELİ TAM ÖĞRENME MODELİ.
Bilimsel bilgi Diğer bilgi türlerinden farklı
Stratejik Pazarlama 4. Hafta
BÖLÜM 1 TEMEL KAVRAMLAR. BÖLÜM 1 TEMEL KAVRAMLAR.
Veri Toplama ve Değerlendirme Sistemi Tanıtım Toplantısı.
Bağlam Arayüz Görev Kullanıcı Kullanılabilirliğin Ana Bileşenleri.
Performans ve Ücret Yönetimi Yrd. Doç. Dr. Özlem BALABAN
Öğretim  Öğrenci gelişimini amaçlayan, öğrenmenin başlatılması, sürdürülmesi ve gerçekleştirilmesi için düzenlenen planlı etkinliklerden oluşan bir süreçtir.
Program Tasarım Modelleri
Yazılım Mühendisliği1[ 3.hft ]. Yazılım Mühendisliği2 Yazılım İ sterlerinin Çözümlemesi Yazılım Yaşam Çevrimi “ Yazılım Yaşam çevrimin herhangi bir yazılım.
Leyla İÇERLİ Araş. Gör. Dr. Aksaray Üniversitesi İİBF İşletme Bölümü.
Pazarlama İlkeleri.
Öğr. Gör. Dr. İnanç GÜNEY Adana MYO
Projenin Bitirilmesi ve Teslimi
KURUMSAL DIŞ DEĞERLENDİRME SORULARI
Proje Dosyası - Belgeleme - Raporlama
İNÖNÜ ÜNİVERSİTESİ İç Denetim Başkanlığı
Sistem Tasarımı Sistem Tasarımı İş Koşul E H Yazılım Mühendisliği.
İç Kontrol Standartlarına Uyum Eylem Planı Toplantısı
AŞAMALI PLAN MODELİ Tek Aşamalı Planlama Modeli
PROGRAMLI ÖĞRETİM Tanımı:
ASSURE Modeli.
Proje Oluşturma ve Yönetimi Bilişim Teknolojileri Öğretmeni
Proje Oluşturma ve Yönetimi
DENEYSEL TERTİPLER VE PAZAR DENEMESİ
Yapay Sinir Ağı Modeli (öğretmenli öğrenme) Çok Katmanlı Algılayıcı
ANKARA ÜNİVERSİTESİ SAĞLIK BİLİMLERİ FAKÜLTESİ SOSYAL HİZMET BÖLÜMÜ
MUHASEBEYE GİRİŞ Muhasebenin Tanımı Muhasebenin Türleri
1-Proje Yönetİmİne Gİrİş
ÜRETİM YÖNETİMİ.
Program Tasarım Modelleri
Üretim ve Üretim Yönetimi Temel Bilgileri
WEB PROJE YÖNETİMİ Ahmet TAŞTAN.
BİREYSELLEŞTİRİLMİŞ EĞİTİM PROGRAMI
Proje Risk Yönetimi YRD. DOÇ. DR. KENAN GENÇOL.
İnsan Kaynakları ve Kalite Yönetimi
Sağlık Bilimleri Fakültesi
ZEE ZİHİN ENGELLİLERE BECERİ VE KAVRAM ÖĞRETİMİ
GÖRÜŞME İLKE VE TEKNİKLERİ Sağlık Bilimleri Fakültesi
Geniş Ölçekli Testler Yrd. Doç. Dr .Ömer Kutlu.
MATEMATİK DERSİ ÖĞRETİM PROGRAMI
Futbol Yetenek Avcısı AOFScout.
YAZILIM MİMARİSİ.
Yazılım Mühendisliği Ders 1: Giriş.
Bölüm 6 Örgütsel Yönlendirme
EĞİTİME GİRİŞ Mehmet Akif Ersoy Üniversitesi
TEKNOLOJİ VE TASARIM DERSİ 7.D.1. Özgün Ürünümü Tasarlıyorum.
ÖBBS (Öğrenci Başarılarının Belirlenmesi Sınavı)
PROGRAM DEĞERLENDİRME
NİŞANTAŞI ÜNİVERSİTESİ
Doğrusal Mantık Yapısı İle Problem Çözme
Yazılım Mühendisliği Süreç Modelleri
ÖLÇME-DEĞERLENDİRME 1.DERS
PERFORMANS KAVRAMI PERFORMANSIN BOYUTLARI
NİŞANTAŞI ÜNİVERSİTESİ
Ders 2: Yazılım Geliştirme
EĞİTİME GİRİŞ Mehmet Akif Ersoy Üniversitesi
NİŞANTAŞI ÜNİVERSİTESİ
öneriler Sınıfların tüm öğrencileri içerecek biçimde düzenlenmesi
Araştırma Önerisi ve Hazırlanması
Veri ve Türleri Araştırma amacına uygun gözlenen ve kaydedilen değişken ya da değişkenlere veri denir. Olgusal Veriler Yargısal Veriler.
Bilimsel Araştırma Yöntemleri
Bilimsel araştırma türleri (Deneysel Desenler)
GEÇİŞ GEÇİŞ SÜRECİ Özel Gereksinimli ve / veya Engeli
Sunum transkripti:

BLM113 Bilgisayar Bilimlerine Giriş Ankara Üniversitesi Bilgisayar Mühendisliği Bölümü

Bölüm 7: Yazılım Mühendisliği Bu bölümde ele alınan konular; Sistem ve yazılım kavramı Veri, Program, Belge. Yazılım mühendisliği kavramı Yazılım yaşam döngüsü Yazılı süreci modelleri Yazılım testleri

Sistem ve Yazılım Nedir? Bilgisayar Sistemleri; donanım, yazılım ve kullanıcılardan oluşur. Yazılım sadece belirli bir işlemi yapan bir program değildir. Yazılım belirli bir mantık dahilinde insanlar tarafından oluşturulan program, veri ve belgeler topluluğudur.

Veri Her tür yazılım mutlaka bir veri üzerinde çalışmak durumundadır. Veri dış ortamdan alınabileceği gibi, yazılım içerisinde de üretilebilir. Yazılımın temel amacı “veri”yi belirli algoritmalar kullanarak “bilgi”ye dönüştürmektir.

Program (kod) Yazılımın ana çıktısı sonuçta bir bilgisayar programıdır. Program işletime alındıktan sonra bakım çalışmaları sürekli olarak gündeme gelir. Bunun iki temel nedeni: hiç bir program bütünüyle her olasılık göz önüne alınarak test edilemez. işletmeler doğaları gereği dinamik bir yapıya sahiptir ve zaman içerisinde sürekli olarak yeni istek ve gereksinimler ortaya çıkabilmektedir.

Belge (dokümanlar) Yazılım üretimi bir mühendislik disiplini gerektirir. Mühendislik çalışmalarında izlenen yol ve kullanılan yaklaşımlar yazılım üretimi için de geçerlidir. Yazılım üretimi sırasında, bir çok aşamada (planlama, analiz, tasarım, gerçekleştirim, vb.) yapılan ara üretimlere ait bilgiler belli bir düzende belgelenmelidirler.

Yazılım Mühendisliği IEEE (The Institute of Electrical and Electronics Engineers) Tanımı (1993) “Yazılım Mühendisliği: Sistemli, düzenli, ölçülebilir bir yaklaşımın yazılım geliştirmede, yazılımın işlenilmesinde ve bakımında uygulanmasıdır. Diğer bir deyişle mühendisliğin yazılıma uygulanmasıdır.

Yazılım Mühendisliği Yazılım mühendisliği bir yöntemler, teknikler ve araçlar kümesi olarak değerlendirilebilir. Yazılım mühendisliğinin hedefi; yazılım üretimindeki karmaşıklıkları gidermektir. Geçmişte kullanılan iş akış şemaları gibi yöntemler günümüzde yetersiz kalmaktadır. Ayrıca, yazılım üretimi işi tek kişinin başarabileceği boyuttan çıkmış ve bir takım işi biçimine dönüşmüştür.

Yazılım Mühendisi Yazılımın daha çok mantıksal boyutuyla ilgilenir ve işi insanlarla ilişkiyi gerektirir. Temel hedefi; üretimin en az maliyet ve en yüksek nitelikte yapılmasını sağlamaktır. Programcı değildir. Ancak programcının tüm yeteneklerine sahiptir. Sistem analisti de değildir. Farkı; analist sadece sistemin analiz aşaması ile ilgilenirken, yazılım mühendisi tüm aşamaların içindedir.

Yazılımda Kalite Üretim Süreci Boyunca ara ürünlere ilişkin kalite standartlarının geliştirilmesi ve geliştirme işlemlerinin bu standartlara uygunluğunun denetlenmesidir. Yazılım kalite sağlama etkinlikleriyle; Yazılım maliyetleri düşürülür, Yazılım üretiminin yönetimi kolaylaşır, Belgeleme ve standart sorunları giderilir.

Yazılım Geliştirme Yaşam Döngüsü ve Modeller Herhangi bir yazılımın, üretim aşaması ve kullanım aşaması birlikte olmak üzere geçirdiği tüm aşamalar olarak tanımlanır. Yazılım işlevleri ve ihtiyaçlar sürekli değiştiği ve geliştiği için bir döngü biçiminde düşünülür. Yazılım yaşam döngüleri tek yönlü, doğrusal olarak düşünülmemelidir.

Yazılım Yaşam Döngüsü Temel Adımları Planlama Personel ve donanım gereksinimlerinin çıkarıldığı, fizibilite çalışmasının yapıldığı ve proje planının oluşturulduğu aşamadır. Analiz Sistem gereksinimlerinin ve işlevlerinin ayrıntılı olarak çıkarıldığı aşama. Var olan işler incelenir, temel sorunlar ortaya çıkarılır. Tasarım Belirlenen gereksinimlere yanıt verecek yazılım sisteminin temel yapısının oluşturulduğu aşamadır. mantıksal; önerilen sistemin yapısı anlatılır (akış şemaları) fiziksel; yazılımı içeren bileşenler ve bunların ayrıntıları (ekran tasarımları)

Yazılım Yaşam Döngüsü Temel Adımları Gerçekleştirim Kodlama, test etme ve kurulum çalışmalarının yapıldığı aşamadır. Bakım Hata giderme ve yeni eklentiler yapma aşaması (teslimden sonra).

Yazılım Süreci Modelleri Yazılım üretim işinin genel yapılma düzenine ilişkin rehberlerdir. Süreçlere ilişkin ayrıntılarla ya da süreçler arası ilişkilerle ilgilenmezler. Gelişigüzel Model Barok Modeli Çağlayan (Şelale) Modeli V Modeli Helezonik (Spiral) Model Evrimsel Model Artırımsal Model Araştırma Tabanlı Model

Gelişigüzel Model Herhangi bir kuraldan bağımsız, yalnızca geliştiren kişiye bağımlı hatta onun bile bir zaman sonra anlayamadığı ve değiştirme zorluğu yaşadığı modeldir. 60’lı yıllarda tek kişinin ürettiği programlar böyledir. Basit öğrenci projeleri böyledir.

Barok Modeli Yaşam döngüsü temel adımlarının doğrusal bir şekilde geliştirildiği model. 70’li yıllarda kullanılan model. Belgelemeyi ayrı bir süreç olarak ele alır, ve yazılımın geliştirilmesi ve testinden hemen sonra yapılmasının öngörür. Halbuki, günümüzde belgeleme yapılan işin doğal bir ürünü olarak görülmektedir. Aşamalar arası geri dönüşlerin nasıl yapılacağı tanımlı değil. Gerçekleştirim aşamasına daha fazla ağırlık veren bir model olup, günümüzde kullanımı önerilmemektedir

Barok Modeli

Çağlayan Modeli

Çağlayan Modeli Yaşam döngüsü temel adımları baştan sona en az bir kez izleyerek gerçekleştirilir. İyi tanımlı projeler ve üretimi az zaman gerektiren yazılım projeleri için uygun bir modeldir. Geleneksel model olarak da bilinen bu modelin kullanımı günümüzde giderek azalmaktadır. Barok modelin aksine belgeleme işlevini ayrı bir aşama olarak ele almaz ve üretimin doğal bir parçası olarak görür. Barok modele göre geri dönüşler iyi tanımlanmıştır. Yazılım tanımlamada belirsizlik yok (ya da az) ise ve yazılım üretimi çok zaman almayacak ise uygun bir süreç modelidir. Bir sonraki aşama, önceki aşama tamamlanmadan başlayamaz. Her aşamanın sonucu bir ya da birden fazla onaylanan (imzalanan) belgedir. Gerektiğinde geliştirme aktivitelerinde iterasyonlar (tekrarlamalar) olabilir.

Çağlayan Modelinin Aşamaları Gereksinim Tanımlama: Gerçekleştirilecek sistemin gereksinimlerinin belirlenmesi isidir. Müşteri ne istiyor? Ürün ne yapacak, ne işlevsellik gösterecek? Sistem ve Yazılım Tasarımı: Gereksinimleri belirlenmiş bir sistemin yapısal ve detay tasarımını oluşturma isidir. Ürün, müşterinin beklediği işlevselliği nasıl sağlayacak? Gerçekleştirme ve Birim Test: Tasarımı yapılmış bir yazılım sisteminin kodlanarak gerçekleştirilmesi isidir. Yazılım ürünü, tasarımı gerçekleştirecek şekilde kodlandı mı? Birleştirme ve Sistem Testi: Gerçekleştirilmiş sistemin beklenen işlevselliği gösterip göstermediğini sınama işlemidir. Ürün, müşterinin beklediği işlevselliği sağlıyor mu? İşlem ve Bakım: Müşteriye teslim edilmiş ürünü, değişen ihtiyaçlara ve ek müşteri taleplerine göre güncelleme isidir. Ürün müşteri tarafından memnuniyetle kullanılabiliyor mu?

Çağlayan Modeli - Avantajları Müşteriler ve son kullanıcılar tarafından da iyi bilenen anlaşılabilen adımlardan oluşur. İterasyonlar (tekrarlamalar) bir sonraki ve bir önceki adımlarla gerçekleşir, daha uzak adımlarla olması nadirdir. Değişiklik süreci yönetilebilir birimlere bölünmüştür. Gereksinim adımı tamamlandıktan sonra sağlam bir temel oluşur. Erken işin miktarını arttırır.

V Süreç Modeli

V Süreç Modeli Proje ve gereksinim planlaması Ürün gereksinimleri ve belirtim çözümlemesi Mimari ve yüksek seviye tasarım Detaylı tasarım Kodlama Birim testi Tümleştirme ve test Sistem ve kabul edilme testleri Üretim, işletim ve sürdürülebilirlik

V Süreç Modeli Belirsizliklerin az, iş tanımlarının belirgin olduğu BT projeleri için uygun bir modeldir. Model, kullanıcının projeye katkısını arttırmaktadır. BT projesinin iki aşamalı olarak ihale edilmesi için oldukça uygundur: İlk ihalede kullanıcı modeli hedeflenerek, iş analizi ve kabul sınamalarının tanımları yapılmakta, İkinci ihalede ise ilkinde elde edilmiş olan kullanıcı modeli tasarlanıp, gerçekleştirilmektedir.

V Süreç Modeli-Avantajları Verification ve validation planları erken aşamalarda vurgulanır. Verification ve validation sadece son üründe değil tüm teslim edilebilir ürünlerde uygulanır. Proje yönetimi tarafında takibi kolaydır Kullanımı kolaydır.

V Süreç Modeli-Avantajları Aynı zamanda gerçekleştirilebilecek olaylara kolay imkan tanımaz. Aşamalar arasında tekrarlamaları kullanmaz. Risk çözümleme ile ilgili aktiviteleri içermez.

Helezonik (Spiral) Model Risk Analizi Proto- tip 1 Prototip 2 Prototip 3 İşin Prototipi Öninceleme Genel Kavramı Geliştirme Planı Birleştirme ve Test Planı Yazılım Gereksinimi Gereksinim onaylama Ürün Tasarımı Tasarımı test Etme ve onay Detaylı Tasarım Kodlama Modül Testi Birleştirme testi Kabul testi Servis Simulasyon ve Modelleme Amaca, Alternatiflere ve Sınırlamalara karar verme Alternatifleri değerlendirme ve risk analizi Bir sonraki fazın planlanması ve kullanıcı değerlendirmesi Geliştirme ve bir sonraki ürünü onaylama onay ekseni Planlama Risk Analizi Üretim Kullanıcı Değerlendirme

Helezonik Model Risk Analizi Olgusu ön plana çıkmıştır. Her döngü bir fazı ifade eder. Doğrudan tanımlama, tasarım,... vs gibi bir faz yoktur. Yinelemeli artımsal bir yaklaşım vardır. Prototip yaklaşımı vardır.

Helezonik Model Planlama Risk Analizi Üretim Kullanıcı Değerlendirmesi Üretilecek ara ürün için planlama, amaç belirleme, bir önceki adımda üretilen ara ürün ile bütünleştirme Risk Analizi Risk seçeneklerinin araştırılması ve risklerin belirlenmesi Üretim Ara ürünün üretilmesi Kullanıcı Değerlendirmesi Ara ürün ile ilgili olarak kullanıcı tarafından yapılan sınama ve değerlendirmeler

Helezonik modelin avantajları Kullanıcı Katkısı Üretim süreci boyunca ara ürün üretme ve üretilen ara ürünün kullanıcı tarafından sınanması temeline dayanır. Yazılımı kullanacak personelin sürece erken katılması ileride oluşabilecek istenmeyen durumları engeller. Yönetici Bakışı Gerek proje sahibi, gerekse yüklenici tarafındaki yöneticiler, çalışan yazılımlarla proje boyunca karşılaştıkları için daha kolay izleme ve hak ediş planlaması yapılır. Yazılım Geliştirici (Mühendis) Bakışı Yazılımın kodlanması ve sınanması daha erken başlar.

Evrimsel Geliştirme Modeli Eşzamanlı Aktiviteler Tanımlama İlk Sürüm Genel Son Geliştirme Test Etme Ara Sürümler

Evrimsel Geliştirme Modeli İlk tam ölçekli modeldir. Coğrafik olarak geniş alana yayılmış, çok birimli organizasyonlar için önerilmektedir (banka uygulamaları). Her aşamada üretilen ürünler, üretildikleri alan için tam işlevselliği içermektedirler. Pilot uygulama kullan, test et, güncelle diğer birimlere taşı. Modelin başarısı ilk evrimin başarısına bağımlıdır.

Örnek Çok birimli banka uygulamaları. Önce sistem geliştirilir ve Şube-1’e yüklenir. Daha sonra aksaklıklar giderilerek geliştirilen sistem Şube-2’ye yüklenir. Daha sonra geliştirilen sistem Şube-3’e,…. yüklenir. Belirli aralıklarla eski şubelerde de güncellemeler yapılır.

Artırımsal Geliştirme Modeli Üretilen her yazılım sürümü birbirini kapsayacak ve giderek artan sayıda işlev içerecek şekilde geliştirilir. Öğrencilerin bir dönem boyunca geliştirmeleri gereken bir programlama ödevinin 2 haftada bir gelişiminin izlenmesi (bitirme tezleri). Uzun zaman alabilecek ve sistemin eksik işlevlikle çalışabileceği türdeki projeler bu modele uygun olabilir. Bir taraftan kullanım, diğer taraftan üretim yapılır

Artırımsal Geliştirme Modeli Genel Gereksinim Belirlenmesi Gereksinimleri Artırımlara Bölme Sistem Mimarisini Tanımlama Sistem Artırılımının Yapılması Artırılımın Onaylanması Birleştirilmesi Sistemin Onaylanması Son Sistem Bitmemiş Sistem

Araştırma Tabanlı Model Yap-at prototipi olarak ta bilinir. Araştırma ortamları bütünüyle belirsizlik üzerine çalışan ortamlardır. Yapılan işlerden edinilecek sonuçlar belirgin değildir. Geliştirilen yazılımlar genellikle sınırlı sayıda kullanılır ve kullanım bittikten sonra işe yaramaz hale gelir ve atılır. Model-zaman-fiyat kestirimi olmadığı için sabit fiyat sözleşmelerinde uygun değildir.

Örnek Bir fizik deneyinin sonuçlarını değerlendirmek amacıyla kullanılan bir yazılımın geliştirilmesi Belirli bir matematiksel işlemi en hızlı yapan programın geliştirilmesi Veri şifreleme yazılımı geliştirilmesi Veri sıkıştırma yazılımı geliştirilmesi

Yazılımın Doğrulanması ve Geçerlenmesi Geliştirilecek bilgi sistemi yazılımın doğrulanması ve geçerlenmesi işlemi üretim süreci boyunca süren etkinliklerden oluşur. Bu etkinlikler; Her bir etkinlik sonunda alınan çıktıların tamam, doğru, açık ve tutarlı olduğunun doğrulanması. Her etkinlikte ürünün teknik yeterliliğinin değerlendirilmesi ve uygun çözüm elde edilene kadar aktivitelerin tekrarlanması. Geliştirilen belirtimlerin önceki belirtimlerle karşılaştırılması. Yazılım ürünlerinin tüm uygulanabilir gereklerinin sağlandığının gerçeklenmesi için sınamaların hazırlanıp yürütülmesi.

Yazılımın Doğrulanması ve Geçerlenmesi Doğrulama Doğru ürünü mü üretiyoruz? ürünü kullanacak kişilerin isteklerinin karşılanıp karşılanmadığı Geçerleme Ürünü doğru olarak mı üretiyoruz? ürünün içsel niteliğine ilişkin izleme ve denetim etkinliklerinden oluşur. Doğrulama ve Geçerleme işlemleri temel olarak çeşitli düzeylerde sınama, gözden geçirme, denetim ve hata giderme süreçlerinden oluşur.

Yazılım Testleri Testin en belirgin amacı, yazılımın uygunluğu ile ilgili karar vermektir. Yazılımı yayıma uygunluğu, standartlara uygunluğu, kabul şartnamesine uygunluğu gibi konular test aktiviteleri ile belirlenir.

Yazılım Testleri Sınama Yöntemleri hedef açısından şu şekilde gruplandırılır. Birim sınama Alt sistem sınama Sistem sınaması Kabul sınaması Alfa-Beta sınaması

Yazılım Testleri Birim sınama Modül sınama Alt Sistem sınama Teslim alma sınaması Bileşen sınama Bütünleştirme sınaması Kesin Kabul Testi

Yazılım Testleri Birim Sınama: Alt Sistem Sınama: Bağlı oldukları diğer sistem unsurlarından tümüyle soyutlanmış olarak , birimlerin doğru çalışıp çalışmadıklarının belirlenmesi amacıyla yapılır. Alt Sistem Sınama: Alt-sistemler modüllerin bütünleştirilmeleri ile ortaya çıkarlar. Yine bağımsız olarak sınamaları yapılmalıdır. Bu aşamada en çok hata ara yüzlerde bulunmaktadır.

Yazılım Testleri Sistem Sınaması: Üst düzeyde, bileşenlerin sistem ile olan etkileşiminde çıkacak hatalar aranmaktadır. Ayrıca, belirtilen ihtiyaçların doğru yorumlanıp yorumlanmadıkları da sınanmalıdır.

Yazılım Testleri Kabul Sınaması: Çalıştırılmadan önce sistemin son sınamasıdır. Artık, yapay veriler yerine gerçek veriler kullanılır. Alfa Sınamada; sistemin geliştirildiği yerde kullanıcıların gelerek katkıda bulunması sistemi test etmesi amaçlanmaktadır. Beta Sınamasında; kullanıcı, geliştirilen sistemi kendi yerleşkesinde, bir gözetmen eşliğinde yapar.

Yazılım Testleri Yazılım testleri sistem bilgisine göre de iki şekilde test edilir. Bir yazılım uzmanı sistemini bu iki testten geçirmelidir. Kara kutu testi (Black-Box Testing): Sistemin tümüne yönelik işlevlerin doğru yürütüldüğünün testidir. Sistem şartnamesinin gerekleri incelenir. Beyaz kutu testi (White-Box Testing): İç işlemlerin belirtimlere uygun olarak yürütüldüğünün bileşenler tabanında sınanmasıdır.

Yazılım Ekiplerinin Yapısı Yazılım geliştirme faaliyeti, bir veya birkaç ekip tarafından yürütülmektedir. Bir ekibin yapısı; projenin ve üretilecek yazılımın özelliklerine, ekibi oluşturan üyelerin karakterlerine ve yeteneklerine uygun olarak kurulmalıdır. Genel olarak ekip yapısı: demokratik, şef, hiyerarşik biçimlerde olabilmektedir

Yazılım Ekiplerinin Yapısı – Demokratik Sistem Bütün üyeler eşit olup, aynı yetkiye sahiptirler. Yazılım geliştirme amaçlarının ve yöntemlerinin saptanması, gerekli kararların alınması anlaşma yoluyla sağlanmaktadır. Ekip başkanlığı, sıra ile ve dönemsel olarak yürütülmektedir.

Yazılım Ekiplerinin Yapısı – Demokratik Sistem Bu sistemde anlaşma sağlanması halinde, iyi bir çalışma ortamı oluşmakta ve üyeler birbirinden çok şeyler öğrenebilmektedir. Özellikle; karmaşık ve büyük projelerin yürütülmesinde uygun bir sistem olarak görülmektedir. Ancak, anlaşan bir takım oluşturulamaması halinde otorite boşluğu oluşması, üyelerin kişisel sorumluluk taşımaması ve kendi insiyatiflerini kullanamaması sakıncaları doğmaktadır.

Yazılım Ekiplerinin Yapısı – Şef Sistemi Ürünün tasarımı, geliştirilmesi ve diğer teknik konularda kararlar şef tarafından alınmaktadır. Görev dağıtımını da şef yapmaktadır. 2-5 kişiden oluşan üyeler de kodlama, hataları izleme ve düzeltme, belgeleri hazırlama, ürünü sınama vb. rutin işleri üstlenirler. Ekipte ayrıca bir arşivci ve şef yardımcısı bulunabilmektedir

Yazılım Ekiplerinin Yapısı – Şef Sistemi Şef sisteminde kararlar bir kişi tarafından alındığı için işler daha hızlı yürütülmektedir. Ancak kararların doğruluğu ve tutarlılığı, şefin yeteneğine bağlı olmaktadır.

Yazılım Ekiplerinin Yapısı – Hiyerarşik Sistem Bir proje yöneticisine bağlı birkaç ekip oluşturulmaktadır. Ekipte 2-5 genç üye ve başlarında deneyimli bir şef bulunmaktadır. Proje yöneticisi; görevleri belirlemekte, çalışmaları izlemekte ve denetlemekte, sorun alanlarını bulmakta, iş yüklerini dengelemekte ve teknik çalışmalara katılmaktadır. Ekip şefleri, kendilerine ayrılan alt sistem veya modülün geliştirilmesinden sorumlu bulunmaktadır.

Yazılım Ekiplerinin Yapısı – Hiyerarşik Sistem Bu sistemde hiyerarşik olarak şeflik sistemi, yatay yönde de demokratik sistem uygulanmaktadır.

Yazılım Ekiplerinin Yapısı – Hiyerarşik Sistem Hiyerarşik sistem, yazılım ürünlerinin hiyerarşik yapıda alt programlara ayrılabilmesi halinde uygulanan bir yöntemdir. Böylece, her ekip bağımsız olarak bir alt program üzerinde çalışmaktadır. Bu sistemin sakıncası, teknik konularda çok başarılı fakat yönetim bakımından yeteneksiz kişilerin de şef ya da proje yöneticisi olabilmesidir.