Y I L D I Z T E K N I K Ü N İ V E R S İ T E S İ YAZILIM MÜHENDİSLİĞİ Mustafa Yoğurtçu Özgür Kuru
İçerik N E D İ R? T A R İ H Ç E Y A Z I L I M T Ü R L E R İ Y A Z I L I M G E L İ Ş T İ R M E A D I M L A R I M O D E L L E R T E S T L E R
N E D İ R? YAZILIM NEDİR? Herhangi bir boyuttaki herhangi bir tür donanımda çalışan bilgisayar programını ve basılı veya elektronik ortamdaki her tür dokümanı içeren ürün.
N E D İ R? YAZILIM MÜH. NEDİR? 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.
N E D İ R? YAZILIM MÜH. AMACI NEDİR? Kullanıcı ihtiyaçlarını analiz ederek, uygun çözümler üretebilmek, Kullanıcının belirlediği fakat genelde sürtüşmelere yol açan zaman, maliyet, kullanılabilirlik gibi noktalarda uzlaşma sağlayabilmek, Mühendislik yaklaşımlarını kullanırken etik, sosyal, yasal ve ekonomik ilgileri bütünleştirecek uygun çözümleri tasarlayabilmek,
T A R İ H Ç E İLK ORTAYA ÇIKIŞ Yazılım Mühendisliği terimi ilk kez 1950'lerin sonunda 1960'ların başında görülmeye başlandı. Programcılar zaten inşaat, elektrik ve bilgisayar mühendisliklerini biliyorlardı ve yazılım için mühendisliğin ne olduğunu tartışmaya başladılar.
T A R İ H Ç E İLK ORTAYA ÇIKIŞ NATO Bilim Komitesi, 1968'deki ve 1969'daki Yazılım Mühendisliği üzerine bu alana destek olan iki konferansa (Garmisch, Almanya) destek oldu. Çoğu kişi bu konferansların yazılım mühendisliğindeki resmi başlangıç olduğuna inanır.
Y A Z I L I M YAZILIM TÜRLERİ Sistem Yazılımı : Diğer programlara hizmet sunmak üzere hazırlanmış programlar. Mühendislik Yazılımı / Bilimsel Yazılım : Mühendislik ve bilimsel hesaplamalarda kullanılmak üzere hazırlanmış programlar.
YAZILIM TÜRLERİ Gömülü yazılım: Denetim makineleri ve bilgisayar sayılmayan aygıtlar için yazılmış yazılımlardır. Uygulama Yazılımı: Bilgisayar uygulaması, bilgisayarların çeşitli işlerde kullanılmasını sağlayan, belirli bir bilgisayar mimarisi (i386, PowerPC, Motorola 680x0 vs.) için uygulama geliştirme dilleri (C/C++, Perl, Python, Java vs.) aracılığı ile hazırlanan yazılımdır.
Y A Z I L I M YAZILIM GELİŞTİRME ADIMLARI Çözümleme (Analysis) Tasarım (Design) Gerçekleme (Implementation) Sınama (Testing) Bakım (Maintenance)
Çözümleme B i r ş e y i a n l a y a b i l m e k i ç i n p a r ç a l a r ı n a a y ı r m a k g e r e k l i d i r. G e r ç e k l e n e c e k s i s t e m i a n l a m a y a y ö n e l i k ç a l ı ş m a l a r d a n v e ü s t d ü z e y p l a n l a m a e y l e m l e r i n d e n o l u ş u r.
Tasarım B i r a r a ş t ı r m a v e / v e y a g e l i ş t i r m e s ü r e c i n i n ç e ş i t l i d ö n e m l e r i n d e i z l e n e c e k y o l v e i ş l e m l e r i t a s a r l a y a n ç e r ç e v e. Ç ö z ü m l e m e i l e a n l a ş ı l a n s o r u n t a s a r ı m a ş a m a s ı n d a k a ğ ı t ü z e r i n d e ç ö z ü l ü r.
Gerçekleme E l d e k i t a s a r ı m, b i r p r o g r a m l a m a d i l i i l e k o d l a n ı r.
Sınama T e s t a l t ı n d a h i z m e t l e r i n v e y a ü r ü n l e r i n k a l i t e s i h a k k ı n d a p a y d a ş l a r a b i l g i s a ğ l a m a k i ç i n y ü r ü t ü l e n b i r a r a ş t ı r m a d ı r. Y a z ı l ı m u y g u l a m a l a r ı n ı n r i s k l e r i n i a n l a m a k i ç i n y a z ı l ı m ı b a ğ ı m s ı z v e n e s n e l o l a r a k i n c e l e m e k t i r.
Bakım Y a z ı l ı m ı n f a a l i y e t e g e ç i r i l m e s i n d e n s o n r a s i s t e m d e y a p ı l a n d e ğ i ş i k l i k l e r d i r.
YAZILIM GELİŞTİRME MODELLERİ WATERFALL SPIRAL V-SHAPE ITERATIVE AGILE
WATERFALL B u m o d e l k u l l a n ı l a r a k g e l i ş t i r i l e n u y g u l a m a l a r d a, h e r b i r b ö l ü m a r d ı ş ı k o l a r a k y a p ı l ı r, h e r b ö l ü m d e n s o n r a g e r ç e k l e ş t i r i l e n b ö l ü m ü n s o n u ç l a r ı g ö s t e r i l i r. F a k a t w a t e r f a l l m o d e l u z u n s ü r e l i p r o j e l e r i ç i n u y g u n o l m a m a k l a b e r a b e r, e s n e k l i k s a ğ l a m a m a k t a d ı r. Y I L D I Z T E K N İ K Ü N I V E R S İ T E S İ
SPIRAL B u m o d e l i n t e m e l i n d e, y a z ı l ı m g e l i ş t i r m e s ü r e c i b o y u n c a r i s k a n a l i z i ö n e m l i d i r. B u m o d e l d e, h e r b i r k l a s i k w a t e r f a l l m o d e l i, ç o k s a y ı d a i t e r a s y o n a b ö l ü n ü r v e h e r i t e r a s y o n d a p l a n l a m a y ı v e r i s k a n a l i z i n i i n c e l e r. Y I L D I Z T E K N İ K Ü N I V E R S İ T E S İ
V-SHAPE W a t e r f a l l m o d e l i n e ç o k b e n z e m e k t e d i r, t e m e l f a r k ı o n a y l a m a s a h a s ı v e t e s t i ş l e m i d i r. T e s t l e r e d ö k ü m a n t a s y o n b ö l ü m ü n d e b a ş l a n ı r, i n t e g r a s y o n s ü r e s i n c e, k o d l a m a d a v e y a z ı l ı m ü r ü n ü n t e s t i n i n g e r ç e k l e ş t i r i m i n d e d e v a m e d i l i r. V t a s a r ı m ı, i l e r i y e y ö n e l i k t e s t y a p ı l m a s ı n ı s a ğ l a r. Y I L D I Z T E K N İ K Ü N I V E R S İ T E S İ
ITERATIVE Y a z ı l ı m ş i r k e t i n e, y a z ı l ı m g e l i ş t i r m e d ö n g ü s ü n ü n e r k e n b ö l ü m l e r i n d e h a t a l a r ı n b u l u n m a s ı n a v e ç ö z ü l m e s i n e o l a n a k s a ğ l a y a n b i r m o d e l d i r. B u n d a n d o l a y ı y a ş a m d ö n g ü s ü b i r ç o k p a r ç a y a b ö l ü n ü r v e s ü r e ç l e r i n k o n t r o l ü k ü ç ü k p a r ç a l a r ü z e r i n d e y a p ı l ı r. B u m o d e l s a y e s i n d e, i l k i t e r a s y o n t a m a m l a n d ı ğ ı n d a, y a z ı l ı m ı n b a s i t b i r ü r ü n ü e l d e e d i l i r. Y I L D I Z T E K N İ K Ü N I V E R S İ T E S İ
AGILE T e m e l o l a r a k i t e r a t i v e m o d e l e b e n z e r, i n s a n f a k t ö r ü n ü k u l l a n a r a k g e l i ş t i r m e s a ğ l a r. G e l i ş t i r m e s ü r e c i b o y u n c a, y a z ı l ı m t a k ı m ı n ı n g e r i d ö n ü ş l e r i n d e n y a r a r l a n ı l ı r. Y I L D I Z T E K N İ K Ü N I V E R S İ T E S İ
TESTLER Y A K L A Ş I M T A R Z L A R I N A G Ö R E : B L A C K - B O X T E S T W H I T E - B O X T E S T Y Ü R Ü T Ü L M E S I R A L A R I N A G Ö R E : V E R I F I C A T I O N T E S T S V A L I D A T I O N T E S T S A L F A T E S T B E T A T E S T Y I L D I Z T E K N İ K Ü N I V E R S İ T E S İ
T E S T L E R BLACK-BOX TEST Sınanacak birimin iç işleyişi bilinmez, sadece birimin beklenen girdilere karşı beklenen çıktıları üretip üretilmediğine bakılır.
T E S T L E R WHITE-BOX TEST Sınanacak birimin iç işleyişi bilinmez, sadece birimin beklenen girdilere karşı beklenen çıktıları üretip üretilmediğine bakılır.
T E S T L E R VERIFICATION TESTS Yazılım ekibi tarafından yapılan testlerdir.ürünü kullanacak kişilerin isteklerinin karşılanıp karşılanmadığını test eden etkinliklerdendir. Unit Test: Yazılımın en küçük bileşeninin sınanmasıdır. Integration Test: Unit testi geçmiş işlevlerin (birim) birlikte doğru bir şekilde çalışmasını test eder.
T E S T L E R VALIDATION TESTS Son kullanıcı tarafından yapılan testlerdir. Geçerleme ise ürünün içsel niteliğine ilişkin izleme ve denetim etkinliklerinden oluşur. Alpha Test: Yazılım ekibinin denetiminde kullanıcılar tarafından yapılan testlerdir. Beta Test: Kullanıcıların bağımsız bir şekilde yaptığı testlerdir. Hatalar düzenli aralıklarla yazılım ekibine bildirilir.
DİNLEDİĞİNİZ İÇİN TEŞEKKÜRLER!