Belirli dillerden, çerçevelerden ve kendi yorumlarından soyutlayacaksak, soyut yazılım ayrıntı düzeyi hiyerarşisi şudur:
Product - application, library, service
Module - GUI, core logic, data, etc...
Component - purpose specific collection of objects
Object - collection of primitives
Primitive - numbers, functions, etc...
Sade ve basit, Ürün bağlı fonksiyonel modüllerin çalışan bir koleksiyonudur.
Adından da anlaşılacağı gibi, bir Modülün motivasyonu modülerliktir. Hangi iddiaların aksine, gerçekten kodların yeniden kullanımı anlamına gelmez. Gerçekten yeniden kullanılamayan ve tasarlanmadıkları hiçbir şeye uymayan birçok modül var.
Uygulanmasını ve sürdürülmesini çok daha kolay hale getiren farklı yazılım katmanlarını ayırmak önemlidir ve ön uç gibi farklı bir GUI çerçevesine yeniden uygulama ihtiyacı duyulursa modülerlik, kolay ve güvenli bir şekilde, kırılmadan gerçekleşmesini sağlar. her yerde kod.
Bir modül, tümü modül gereksinimleri tarafından tanımlandığı gibi ortak bir amaca hizmet eden bir bileşen koleksiyonunu kapsar. Bir modül kendi kendine yeten ve eksiksiz olmalı ve kendi başına kullanılamaz olsa da, uyumlu bir uygulama ile birlikte çalışabilmelidir.
Taneciklilik açısından Bileşen, Modül ve Nesne arasında oturur. Bir bileşenin amacı, bir amaca özel bir birim oluşturmak için genel amaçlı nesneler koleksiyonunu bir araya getirmektir.
Adından da anlaşılacağı gibi, Modül'den farklı olarak, Bileşen "kendi kendine yeten" değildir, daha büyük bir işlevsel bütünün bir parçasıdır.
Nesneler, bileşenlerin daha küçük yapı taşlarıdır. Nesneler, ilkellerin koleksiyonlarıdır ve daha belirli bir amaç için daha evrensel, daha evrensel bir seviyeye hizmet etmek için onları bir araya getirirler.
İlkel, yazılım geliştirme ayrıntı düzeyi en küçük, en basit ve en düşük seviyedir. Her ne kadar çoğu dilin kendi ek "birinci sınıf vatandaşları" olmasına rağmen, temelde sadece tamsayı ve gerçek sayılar ve fonksiyonlar / operatörler var.
İlkellerle yapabileceğiniz çok az şey var ve aynı zamanda, pratik olarak her şeyi başarabileceğiniz kadar düşük bir seviyede. Doğrudan ilkellerle çalışırken sadece çok, çok ayrıntılı, delice karmaşık ve imkansızca sıkıcı.
Yukarıda da belirtildiği gibi, doğrudan ilkellerle çalışmak son derece kötü bir fikirdir. Sadece günümüzün yazılım geliştirmesi için yapması imkansız derecede karmaşık, yavaş ve sıkıcı olduğu için değil, aynı zamanda test ve bakım için son derece engelleyici ve engelleyicidir.
Tüm bu kavramsal parçaların yazılım geliştirmeye dahil edilmesi onu daha kolay, daha hızlı, daha basit ve daha güvenli hale getirir. Çok yönlü ve evrensel atomların ne olduğuna bakılmaksızın, atomlardan bir ev yapmazsınız. Bu boşuna bir egzersiz olurdu. Atomların ilkellerin, kil senin nesnen, tuğlaların senin bileşenlerin, duvarların, zeminin ve çatının modüllerin olduğu, bir araya toplandıkları son ürünü gösterirler.
İnsanlar hiçbir şey icat etmiyor, sadece evrende zaten var olan şeyleri keşfediyoruz ve sonra onları kopyalayıp hayatlarımıza uyguluyoruz. Aynı taneciklilik hiyerarşisi, evrenin kendisine, atomlardan ve hatta aşağıdan organik moleküllere, proteinlere, dokulara, organlara, organizmalara ve yukarısına kadar içseldir, gerçekliğin kendisi de aynı prensibi yerine getirir - küçük, basit, sınırlı fonksiyonlar ve soyut şeyleri birleştirerek daha büyük, daha karmaşık, daha işlevsel şeyler ve daha fazla amaca özgü şeyler.
Teknik olarak hepsi "nesneler", hepsi de yazılım geliştirmenin "bileşenleri", hepsi bir araya gelebilecek kadar "modüler", hepsi üretildikleri gibi "ürünler". ..
Bu terminoloji veya terminoloji ile ilgili değildir, şeyleri yukarı ve aşağı ölçeklemenin yaratıcılığın ve üretkenliğin çeşitli yönlerini nasıl etkilediği ile ilgilidir. Ve sadece tüm bu farklı seviyeleri kullanmanın değil, aynı zamanda yanlış bir hedefe ulaşmaya çalışmamanın önemi değil, aynı zamanda sadece üretken olabilir.