Proje Ynetimi Yazlm Gelitirmede evik Prensipler Neden evik

  • Slides: 22
Download presentation
Proje Yönetimi Yazılım Geliştirmede Çevik Prensipler

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

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

Ç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ü

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

Ö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

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.

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

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

Ö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

Ö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,

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,

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 Ö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

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 - 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 – Çö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.

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

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