Özellik odaklı geliştirme - Feature-driven development
| Yazılım geliştirme |
|---|
Özellik odaklı geliştirme ( FDD ), yinelemeli ve artımlı bir yazılım geliştirme sürecidir . Bu bir olan hafif veya Çevik yöntemi geliştirmek için yazılım . FDD, endüstri tarafından tanınan bir dizi en iyi uygulamayı uyumlu bir bütün halinde birleştirir. Bu uygulamalar, müşteriye değer verilen işlevsellik ( özellik ) perspektifinden yönlendirilir. Temel amacı, Çevik Manifesto'nun arkasındaki İlkelere uygun olarak somut, çalışan yazılımları zamanında ve tekrar tekrar sunmaktır .
Tarih
FDD ilk olarak 1997 yılında büyük bir Singapur bankasında 15 aylık, 50 kişilik bir yazılım geliştirme projesinin özel ihtiyaçlarını karşılamak için Jeff De Luca tarafından tasarlandı . Bu, genel bir modelin geliştirilmesini kapsayan beş süreçle sonuçlandı ve özelliklerin listelenmesi, planlanması, tasarımı ve oluşturulması. İlk süreç, Peter Coad'ın nesne modelleme yaklaşımından büyük ölçüde etkilenmiştir . İkinci süreç, Coad'ın işlevsel gereksinimleri ve geliştirme görevlerini yönetmek için bir özellik listesi kullanma fikirlerini içerir. Diğer süreçler Jeff De Luca'nın deneyiminin bir sonucudur. Singapur projesinde başarılı kullanımından bu yana FDD'nin birkaç uygulaması olmuştur.
FDD'nin tanımı dünyaya ilk kez 1999 yılında Peter Coad, Eric Lefebvre ve Jeff De Luca tarafından UML ile Renkli Java modelleme kitabının 6. Bölümünde tanıtıldı . Daha sonra Stephen Palmer ve Mac Felsing'in A Practical Guide adlı kitabında Özellik Odaklı Geliştirmeye (2002'de yayınlandı), FDD'nin daha genel bir tanımı Java modellemesinden ayrıştırılarak verildi.
genel bakış
FDD, beş temel aktiviteden oluşan model odaklı bir kısa yineleme sürecidir. Doğru durum raporlaması ve yazılım geliştirme projesinin takibi için her bir özellikte kaydedilen ilerlemeyi gösteren kilometre taşları tanımlanır. Bu bölüm, faaliyetlere yüksek düzeyde bir genel bakış sunar. Sağdaki şekilde, bu faaliyetler için meta-süreç modeli gösterilmektedir. İlk iki ardışık aktivite sırasında, genel bir model şekli oluşturulur. Son üç aktivite her özellik için tekrarlanır .
Genel model geliştirin
FDD proje üst düzey ile başlar örneklerde sistem ve bağlamında kapsamı. Daha sonra, her modelleme alanı için küçük gruplar tarafından ayrıntılı alan modelleri oluşturulur ve akran incelemesine sunulur . Önerilen modellerden bir veya daha fazlası, her etki alanı için model olacak şekilde seçilir. Etki alanı alanı modelleri aşamalı olarak genel bir modelde birleştirilir.
Özellik listesi oluştur
İlk modelleme sırasında toplanan bilgiler, alanı işlevsel olarak konu alanlarına ayrıştırarak bir özellik listesini belirlemek için kullanılır. Konu alanlarının her biri iş faaliyetlerini içerir ve her bir iş faaliyetindeki adımlar, kategorize edilmiş bir özellik listesi için temel oluşturur. Bu bağlamdaki özellikler, "<eylem> <sonuç> <nesne>" biçiminde ifade edilen müşteri değerli işlevlerin küçük parçalarıdır, örneğin: 'Bir satışın toplamını hesapla' veya 'Bir kullanıcının parolasını doğrula'. Özelliklerin tamamlanması iki haftadan fazla sürmemeli, aksi takdirde daha küçük parçalara ayrılmalıdır.
Özelliğe göre planla
Özellik listesi tamamlandıktan sonra, bir sonraki adım olarak gelişim planı ve özellikleri (veya özellik setleri) ait atama sahipliğini üretmektir sınıflar için programcılar .
Özelliğe göre tasarım
Her özellik için bir tasarım paketi üretilir. Bir baş programcı, iki hafta içinde geliştirilecek olan küçük bir özellik grubu seçer. İlgili sınıf sahipleriyle birlikte baş programcı , her bir özellik için ayrıntılı dizi diyagramları üzerinde çalışır ve genel modeli iyileştirir. Daha sonra sınıf ve metot girişleri yazılır ve son olarak tasarım incelemesi yapılır.
Özelliğe göre oluştur
Her bir etkinliğin bir özellik üretmesi için başarılı bir tasarım incelemesi planlandıktan sonra, sınıf sahipleri sınıfları için kod geliştirir. Sonra birim test ve başarılı kod muayene tamamlanmış özellik ana yapı yükseltilir.
kilometre taşları
Özellikler küçük olduğundan, bir özelliği tamamlamak nispeten küçük bir iştir. Doğru durum raporlaması ve yazılım geliştirme projesini takip etmek için her bir özellikte kaydedilen ilerlemeyi işaretlemek önemlidir. Bu nedenle FDD, sırayla tamamlanacak özellik başına altı kilometre taşı tanımlar. İlk üç aşama Özelliğe Göre Tasarım etkinliği sırasında, son üç aşama Özelliğe Göre Oluşturma etkinliği sırasında tamamlanır . İlerlemeyi izlemek için, her kilometre taşına bir tamamlanma yüzdesi atanır. Aşağıdaki tabloda kilometre taşları ve tamamlanma yüzdeleri gösterilmektedir. Kodlamanın başladığı noktada, bir özellik zaten %44 tamamlanmış durumdadır (Alan Adında Gözden Geçirme %1, Tasarım %40 ve Tasarım Denetimi %3 = %44).
| Etki Alanı İncelemesi | Tasarım | Tasarım Denetimi | kod | Kod İnceleme | İnşa Etmeyi Teşvik Edin |
|---|---|---|---|---|---|
| %1 | %40 | %3 | %45 | %10 | %1 |
En iyi uygulamalar
Özellik odaklı geliştirme, müşteri tarafından değer verilen bir özellik perspektifini hedefleyen bir dizi temel yazılım mühendisliği en iyi uygulamaları üzerine kuruludur .
- Etki Alanı Nesnesi modelleme . Etki Alanı Nesne modellemesi, çözülecek problemin etki alanını keşfetmeyi ve açıklamayı içerir. Ortaya çıkan etki alanı nesne modeli, özelliklerin ekleneceği genel bir çerçeve sağlar.
- Özelliğe Göre Geliştirme . İki hafta içinde uygulanamayacak kadar karmaşık olan herhangi bir fonksiyon, her bir alt problem bir özellik olarak adlandırılacak kadar küçük olana kadar daha küçük fonksiyonlara ayrıştırılır. Bu, doğru işlevleri sağlamayı ve sistemi genişletmeyi veya değiştirmeyi kolaylaştırır.
- Bireysel Sınıf (Kod) Sahipliği . Bireysel sınıf sahipliği, farklı kod parçalarının veya gruplamalarının tek bir sahibe atanması anlamına gelir. Sınıfın tutarlılığından, performansından ve kavramsal bütünlüğünden sahibi sorumludur.
- Özellik Takımları . Özellik ekibi, küçük bir etkinlik geliştiren küçük, dinamik olarak oluşturulmuş bir ekiptir. Her tasarım kararına her zaman birden çok akıl uygulanır ve biri seçilmeden önce birden çok tasarım seçeneği değerlendirilir.
- Denetimler . Öncelikli olarak kusurların tespiti ile kaliteli tasarım ve kod sağlamak için denetimler yapılır.
- Yapılandırma Yönetimi . Konfigürasyon yönetimi, bugüne kadar tamamlanan tüm özellikler için kaynak kodunun belirlenmesine ve özellik ekipleri bunları geliştirirken sınıflardaki değişikliklerin geçmişini korumaya yardımcı olur.
- Düzenli Yapılar . Düzenli derlemeler, her zaman müşteriye gösterilebilecek güncel bir sistem olmasını sağlar ve özellikler için kaynak kodun entegrasyon hatalarını erkenden vurgulamaya yardımcı olur.
- İlerleme ve sonuçların görünürlüğü . Yöneticiler, tamamlanan çalışmaya dayalı olarak proje içindeki ve dışındaki tüm seviyelerden sık, uygun ve doğru ilerleme raporlaması kullanarak bir projeyi yönlendirir.
Metamodel (Metamodelleme)
Meta modelleme, bir yöntemin hem süreçlerini hem de verilerini görselleştirmeye yardımcı olur . Bu, yöntemlerin karşılaştırılmasına olanak tanır ve yöntem mühendisliği sürecindeki yöntem parçaları kolayca yeniden kullanılabilir. Bu tekniğin kullanımı UML standartlarıyla uyumludur .
Meta veri modelinin sol tarafı, FDD kullanan bir yazılım geliştirme projesinde yer alan beş temel etkinliği gösterir. Faaliyetlerin tümü, FDD süreç tanımındaki alt faaliyetlere karşılık gelen alt faaliyetleri içerir. Modelin sağ tarafı ilgili kavramları gösterir. Bu kavramlar, diyagramın sol tarafında gösterilen etkinliklerden kaynaklanmaktadır.
Kullanılan aletler
- Belge Sayfaları . Doc Sheets, özellik odaklı geliştirme için ticari bir kurumsal araçtır.
- TechExcel DevSuite . TechExcel DevSuite, özellik odaklı geliştirmeyi mümkün kılan ticari bir uygulama paketidir.
- FDD Araçları . FDD Tools projesi, Özellik Odaklı Geliştirme metodolojisini destekleyen açık kaynaklı, platformlar arası bir araç seti üretmeyi amaçlamaktadır.
- FDD Görüntüleyici . FDD Viewer, park yerlerini görüntülemek ve yazdırmak için bir yardımcı programdır.
Ayrıca bakınız
- Çevik Yazılım Geliştirme
- Davranış odaklı geliştirme
- Proje yaşam döngüsü
- Yazılım mimarisi
- Yazılım geliştirme süreci
- Yazılım Mühendisliği
Referanslar
- 1. ^ Coad, P. , Lefebvre, E. & De Luca, J. (1999). UML ile Renkli Java modellemesi: Kurumsal Bileşenler ve Süreç . Prentice Hall Uluslararası. ( ISBN 0-13-011510-X )
- 2. ^ Palmer, SR ve Felsing, JM (2002). Özellik Odaklı Geliştirme için Pratik Bir Kılavuz . Prentice Salonu. ( ISBN 0-13-067615-2 )
Dış bağlantılar
- Özellik Odaklı Geliştirme Topluluğu
- Özelliği odaklı gelişimini de Curlie
- Nebulon FDD Sayfası - Nebulon, Jeff De Luca'nın danışmanlık uygulamasıdır
- Başarılı Web Geliştirme Metodolojileri - Web Geliştirme projeleri için FDD Kullanımı
- Özellik Odaklı Geliştirme Kullanarak Gerçek İş Değeri Sunma - Makale, FDD'ye temel bir genel bakış sunar
- FDD ve Çevik modelleme
- Daha İyi Yazılım Daha Hızlı - Coad Serisinde Özellik Odaklı Geliştirmeye atıfta bulunan başka bir kitap. Yazarlar Andy Carmichael ve Dan Haywood ISBN 0-13-008752-1
- FDD Yaratıcısı Jeff DeLuca ile Röportaj (Podcast)