Mühendisler olarak hepimiz eserleri (binalar, programlar, devreler, moleküller ...) tasarlıyoruz. Bu, bir tür sonuç (isim-tasarım) üreten bir faaliyettir (fiil-tasarım).
Sanırım hepimiz, tasarımın yapının kendisinden farklı bir varlık olduğu konusunda hemfikiriz.
Yazılım işindeki (aslında, ortaya çıkan ürün artefaktının geliştirilmesi gereken herhangi bir işte) önemli bir faaliyet, "tasarım (isim)" yi anlamaktır. Yine de, bir topluluk olarak, insanların kod tabanları hakkındaki gerçekleri yeniden keşfetmeye harcadıkları çabanın kanıtladığı gibi, onu kaydetmede neredeyse tamamen başarısız gibi görünüyoruz. Birinden size kodlarının tasarımını göstermesini ve ne elde ettiğinizi görmesini isteyin.
Yazılım için bir tasarıma sahip olduğumu düşünüyorum:
- Yazılımın ne yapması gerektiği ve ne kadar iyi yaptığı konusunda açık bir spesifikasyon
- Kodun açık bir sürümü (bu bölüm kolaydır, herkes sahiptir)
- Kodun her bir parçasının spesifikasyonu elde etmeye nasıl hizmet ettiğine dair bir açıklama (örneğin, spesifikasyon parçaları ile kod parçaları arasındaki ilişki)
- Bir mantığı kodu bu şekilde olduğunu neden olarak (örneğin, neden belirli bir seçim yerine başka)
Bir tasarım DEĞİL ne kod üzerinde belirli bir bakış açısıdır. Örneğin, [özel olarak seçmeyin] UML diyagramları tasarım değildir. Aksine, koddan türetebileceğiniz özellikler veya tartışmasız olarak koddan türetmek istediğiniz özelliklerdir. Ancak genel bir kural olarak, kodu UML'den türeyemezsiniz.
Neden 50 yıldan fazla yazılım geliştirdikten sonra, bunu ifade etmek için neden düzenli yöntemlerimiz yok? (Açık örneklerle benimle çelişmekten çekinmeyin!)
Yapsak bile, topluluğun çoğu “kod” almaya odaklanmış görünüyor ve isim-tasarım yine de kayboluyor. (IMHO, tasarım mühendisliğin amacı haline gelene kadar, tasarımdan çıkarılan eserle bunun üstesinden gelmeyeceğiz).
Tasarımları kaydetmenin bir yolu olarak gördünüz (onu tanımladığım anlamda)? Makalelere açıkça atıflar iyi olur. Sizce neden özel ve genel araçlar başarılı olamadı? Bunu nasıl değiştirebiliriz?
[ Yukarıdaki madde işaretli bakış açısını ortadan kaldıran kendi fikirlerim var, ama diğer insanların cevaplarıyla ilgileniyorum ... ve planımı uygulamak zor [[ve belki de gerçek sorun: -]]]]
DÜZENLEME 2011/1/3: Yanıt dizilerinden biri, "dokümantasyon" un (muhtemelen metinsel, özellikle resmi olmayan) yeterli olabileceğini ima ediyor. Sanırım buna inanmadığımı açıklığa kavuşturmalıyım. CASE araçları sahnede 80'lerden itibaren ortaya çıktı, ancak ilk araçlar çoğunlukla çizdiğiniz şeylerin şemaları için pikselleri yakaladı; araçlar tartışmasız ticari olarak başarılı olsa da, gerçekten çok yardımcı olmadılar. Önemli bir içgörü, ek "tasarım" eserleri resmi olarak yorumlanamazsa, ciddi bir araç yardımı alamayacağınızdı. Aynı görüşün uzun vadeli yararlı tasarım yakalama biçimleri için de geçerli olduğuna inanıyorum: eğer resmi bir yapıya sahip değilse, herhangi bir gerçek kullanım olmayacaktır. Metin belgeleri bu testte başarısız oluyor.