Proje Ynetimi Yazlm Gelitirmede evik Prensipler Neden evik






















- Slides: 22

Proje Yönetimi Yazılım Geliştirmede Çevik Prensipler

Neden Çevik Prensipler ▪ Yöntemler çevik olduğu için sistem tasarımı sürekli değişebiliyor. ▪ İyileştirme ve eklemeler de sistem tasarımını değiştiren unsurlar. ▪ Çevik prensiplere ihtiyaç olduğunu nasıl anlayacağız? Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca

Çevik olmayan sistemlerde görülebilecek semptomlar ▪ Sabit: tasarımda değişiklik yapmak zor ▪ Kırılgan: Tasarım en küçük müdahalede geçersiz hale geliyor ▪ Taşınmaz: Tasarım benzer senaryolar için tekrar kullanılabilir değil ▪ Viskozite: Doğru şeyleri yapmak için çok çaba sarfediliyor ▪ Fazla mühendislik: overengineering, gereksiz kompleks ▪ Gereksiz tekrarlar ▪ Açık olmama: her yiğit ayrı yemek yemiş ▪ Bunlardan birini görüyorsanız, bazı prensipler atlanmış demektir Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca

Semptomların sebebi Çevik olmayan süreçlerle geliştirilen projeler zaman içindeki değişikliklerle bu hale gelebilir. Çünkü kod başlangıç tasarımına sıkıca bağlıdır. Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca

Örnek - Copy Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca

Örnek - Copy Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca

Örnek - Copy Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca

Örnek - Copy Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca

Örnek - Copy Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca

Prensipler ▪ The Single-Responsibility Principle (SRP) ▪ The Open/Closed Principle (OCP) ▪ The Liskov Substitution Principle ▪ The Dependency-Inversion Principle ▪ The Interface Segregation Principle ▪. . ▪ Bu prensipler semptomlar ortaya çıkmadan uygulanmaz ▪ Premature optimization is the root of all evil. -Donald Knuth Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca

The Single Responsibility Principle (SRP) A class should only one reason to change. Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca

The Single Responsibility Principle (SRP) Her bir sebep, değişime yeni bir boyut ekler. (Axis of Change) Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca

Örnek Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca

Önerilen Model Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca

SRP ▪ SRP de dahil hiçbir çevik prensip yolun başında uygulanmaz ▪ Yapacağınız değişiklik, aynı sınıfta birden fazla konuda değişiklik gerektiriyorsa, bu durumda SRP yi uygulamayı düşünebilirsiniz. Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca

The Open/Close Principle ▪ Yazılım varlıkları (class, modül, fonksiyon, method vs. ) eklemelere açık, değiştirmeye kapalı olmalıdır. ▪ Yazılımda yapılan bir değişiklik, ardışık değişikliklere sebep oluyorsa, «sabitlik» semptomu yaşanıyor olabilir. ▪ Eğer OCP doğru uygulanmışsa yapılan değişiklikler eklemelerden ibaret kalır ve iç içe değişiklikleri doğurmaz. Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca

OCP Örnek Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca

OCP Uygulanmış Çözüm Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca

Bir değişiklik daha - Sıralama Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca

Bir değişiklik daha – Çözüm? Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca

Bir değişiklik daha – Daha OCP bir çözüm, Hem de daha SRP Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca

Kaynaklar ▪ Robert C. Martin, Agile Practices and Principles in C#, Prentice Hall, 2006 Prof. Dr. Adem Kalınlı - Öğr. Gör. Burak Sarıca