Yazılım mühendisliğinde modül nedir? [kapalı]


18

Stephen Schach'a göre, “Klasik ve Nesneye Yönelik Yazılım Mühendisliği”, bölüm 6:

bir modül, bir prosedür, fonksiyon veya yöntemin çağrılması şeklinde çağrılabilen tek bir kod bloğundan oluşur

Bu çok belirsiz ve geniş görünüyor. Peki herkes bunu açık bir şekilde açıklayabilir ve bir gereksinimi modüllere nasıl ayıracağına dair bazı gerçek örnekleri gösterebilir mi? Teşekkürler.

Yanıtlar:


16

Bir modül,

  • belirli bir işlevselliği uygulamak için kod ve verileri içerir.
  • istemcilerin işlevlerine düzgün bir şekilde erişmelerini sağlayan bir arayüze sahiptir.
  • arayüzünü bekleyen başka bir modülle kolayca takılabilir.
  • genellikle kolayca dağıtılabilmesi için tek bir birim halinde paketlenir.

Örneğin, dapper.net veritabanı erişimini kapsar. İşlevselliğine erişmek için bir API'ye sahiptir. Oluşturulacak bir kaynak ağaca takılabilen tek bir dosyadır.

Modül kavramı, yazılımın program işlevlerini modüllerin her biri bir işlevi yerine getiren ve bunu gerçekleştirmek için gereken her şeyi içeren modüllere bölerek modül olarak adlandırılan ayrı, değiştirilebilir bileşenlerden oluşması gerektiğini savunan modüler programlama paradigmasından gelir.


bir sürü gereksinimimiz varsa, bu yüzden her gereksinim bir modül olarak kabul edilebilir mi? Örneğin: "Çalışan ekleme" gereksinimi bir modül olabilir mi?
Hoan

1
Hayır ya da değişir. Program fonksiyonları uyumlu birimlere bölünmelidir. Gereksinimler bu şekilde bozulabilirse, evet olabilir. Ama henüz böyle bir şey görmedim. Ayrıca, "Çalışan Ekleme" modülüne aday olmamalıdır. Genellikle modüller, programları mantıksal olarak tutarlı birimlere ayıran daha yüksek seviyeli yapılardır.
Thed

12

Modül aşırı yüklenmiş bir terim olabilir, bu yüzden Wikipedia, yazılımı yazılıma göre tartışırken Modüler Programlama terimi altında tanımlar . Bunu yukarıdan aşağıya tasarım yaklaşımına dayanan yapılandırılmış programlama açısından tartışıyorlar. Düşük kuplaj ve yüksek kohezyon kullanımına bağlı modülerliğin temel özellikleri .

Benim kullanımım, C veya hatta C ++ gibi bir dilde, bir modülün, bir kaynak dosyadan (.c veya .cpp) ve genellikle bir ilişkili başlık dosyasından (.h) ayrı olarak derlenmiş bir birim tanımlamakla ilgili olmasıdır. Diğer diller modülü açıklama olarak kullanır ve Modula-2 dili modüllerin adını ve yaklaşımını ön ve merkez etrafında yapılandırır.

Tarihsel olarak modül, DL Parnas'ın "Yazılımın Modüllere Ayrıştırılmasında Kullanılacak Kriterler Üzerine" makalesinde anlatıldığı gibi başka bazı etkileri de vardır . Öncelikle, fonksiyonel ayrışmanın, nesne yönelimli ayrışma olan günümüz teknolojisine doğru büyük bir adım olan veri odaklı ayrışma ile değiştirilmesinin yararlarını tartışmaktadır.

Nesneye yönelik diller sınıflar etrafında düzenlenmiştir, bu nedenle modül terimi bu bağlamda daha az önemli ve daha az kesindir.


7

Bir modülün resmi bir tanımı yoktur ve bir modülün projeniz bağlamında ne olduğu (veya olmadığı) büyük ölçüde projenin doğasına ve tasarımına bağlıdır.

Genel olarak konuşursak, bir modül belirli ve sıkı bir şekilde bağlı işlevsellik sağlayan bağımsız bir kod parçasıdır, modüller kodunuzdaki mantıksal sınırları tanımlar ve uygular.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.