Tasarım Stratejileri

Yukarıdan Aşağıya Strateji

Yukarıdan aşağıya strateji, bir sistemin tasarımını geliştirmek için modüler yaklaşımı kullanır. En üst veya en üst seviye modülden başlayıp en alt seviye modüllere doğru ilerlediği için böyle adlandırılır.

Bu teknikte, yazılımı geliştirmek için en üst düzey modül veya ana modül tanımlanır. Ana modül, her modül tarafından gerçekleştirilen göreve bağlı olarak daha küçük ve daha basit birkaç alt modüle veya segmente bölünmüştür. Daha sonra, her bir alt modül, bir sonraki alt seviyenin birkaç alt modülüne daha da bölünür. Her modülü birkaç alt modüle bölme işlemi, daha fazla alt bölüme ayrılamayan en düşük seviyeli modüller tanımlanmayana kadar devam eder.

Aşağıdan Yukarıya Stratejisi

Aşağıdan Yukarıya Stratejisi, sistemin tasarımını geliştirmek için modüler yaklaşımı izler. Alt veya en temel seviye modüllerden başlayıp en üst seviye modüllere doğru ilerlediği için denir.

Bu teknikte,

  • En temel veya en düşük seviyedeki modüller belirlenir.

  • Bu modüller daha sonra bir sonraki üst düzey modülleri oluşturmak için her modül tarafından gerçekleştirilen işleve göre gruplandırılır.

  • Daha sonra, bu modüller bir sonraki üst düzey modülleri oluşturmak için daha da birleştirilir.

  • Daha yüksek seviyeli modüller oluşturmak için birkaç basit modülü gruplama süreci, sistem geliştirme sürecinin ana modülüne ulaşılana kadar devam eder.

Yapısal Tasarım

Yapılandırılmış tasarım, gelişen sistemin girdisini ve çıktısını tanımlamaya yardımcı olan veri akışı tabanlı bir metodolojidir. Yapılandırılmış tasarımın temel amacı, bir programın karmaşıklığını en aza indirmek ve modülerliğini artırmaktır. Yapılandırılmış tasarım, sistemin işlevsel yönlerinin tanımlanmasına da yardımcı olur.

Yapılandırılmış tasarımda, sistem özellikleri, veri akışını ve DFD'lerin yardımıyla bir yazılım geliştirmede yer alan işlem sırasını grafik olarak temsil etmek için bir temel görevi görür. Yazılım sistemi için DFD'leri geliştirdikten sonraki adım, yapı grafiğini geliştirmektir.

Modülerleştirme

Yapısal tasarım, programı küçük ve bağımsız modüllere böler. Bunlar, aşağıda gösterilen ayrıntılarla yukarıdan aşağıya düzenlenmiştir.

Bu nedenle, yapılandırılmış tasarım, karmaşıklığı en aza indirmek ve sorunu daha küçük bölümlere ayırarak yönetmek için Modülerleştirme veya ayrıştırma adı verilen bir yaklaşım kullanır.

Advantages

  • Öncelikle kritik arayüzler test edilir.
  • Soyutlama sağlar.
  • Birden fazla programcının aynı anda çalışmasına izin verir.
  • Kodun yeniden kullanımına izin verir.
  • Kontrol sağlar ve morali yükseltir.
  • Yapının tanımlanmasını kolaylaştırır.

Yapılandırılmış Grafikler

Yapılandırılmış grafikler, çeşitli sistem geliştirme modüllerini ve her modül arasındaki ilişkiyi tanımlayan modüler, yukarıdan aşağıya sistemler tasarlamak için önerilen bir araçtır. Sistem modülünü ve aralarındaki ilişkiyi gösterir.

Modülleri, bağlantı oklarını veya çizgileri temsil eden dikdörtgen kutulardan oluşan diyagramdan oluşur.

  • Control Module - Daha düşük seviyeli modülleri yönlendiren üst seviye bir modüldür. subordinate modules.

  • Library Module - Yeniden kullanılabilir bir modüldür ve grafikte birden fazla noktadan çağrılabilir.

Yapılandırılmış bir grafik tasarlamak için iki farklı yaklaşımımız var -

  • Transform-Centered Structured Charts - Tüm işlemler aynı yolu izlediğinde kullanılırlar.

  • Transaction–Centered Structured Charts - Tüm işlemler aynı yolu izlemediğinde kullanılırlar.

Yapı Akış Şemalarını Kullanmanın Amaçları

  • Yukarıdan aşağıya bir tasarımı teşvik etmek için.

  • Modül konseptini desteklemek ve uygun modülleri belirlemek.

  • Sistemin boyutunu ve karmaşıklığını göstermek için.

  • Her bir işlevdeki kolayca tanımlanabilen işlevlerin ve modüllerin sayısını belirlemek için.

  • Her bir tanımlanabilir işlevin yönetilebilir bir varlık olup olmadığını veya daha küçük bileşenlere bölünmesi gerekip gerekmediğini göstermek için.

Sistem Karmaşıklığını Etkileyen Faktörler

Kaliteli sistem yazılımı geliştirmek için iyi bir tasarım geliştirmek gerekir. Bu nedenle, sistemin tasarımını geliştirirken ana odak noktası yazılım tasarımının kalitesidir. Yazılım geliştirmede karmaşıklığı ve maliyet harcamalarını en aza indiren, kaliteli bir yazılım tasarımıdır.

Bir sistemin karmaşıklığının belirlenmesine yardımcı olan sistem geliştirme ile ilgili iki önemli kavram şunlardır: coupling ve cohesion.

Kaplin

Kaplin, bileşenlerin bağımsızlığının ölçüsüdür. Her bir sistem geliştirme modülünün diğerine bağımlılık derecesini tanımlar. Pratikte bu, bir sistemdeki modüller arasındaki bağlantı ne kadar güçlü olursa, sistemi uygulamak ve sürdürmek o kadar zor olur.

Her modülün diğer modüllerle basit, temiz bir arayüzü olmalı ve minimum sayıda veri öğesi modüller arasında paylaşılmalıdır.

Yüksek Kaplin

Bu tür sistemlerin, birbirine bağlı program birimleriyle ara bağlantıları vardır. Bir alt sistemdeki değişiklikler, diğer alt sistem üzerinde yüksek etkiye yol açar.

Düşük Kavrama

Bu tür sistemler, bağımsız veya neredeyse bağımsız bileşenlerden oluşur. Bir alt sistemdeki bir değişiklik, diğer herhangi bir alt sistemi etkilemez.

Kaplin Önlemleri

  • Content Coupling - Bir bileşen diğerini gerçekten değiştirdiğinde, değiştirilen bileşen tamamen bir bileşenin değiştirilmesine bağlıdır.

  • Common Coupling - Verilere ortak bir veri deposundan erişilebilecek şekilde sistem tasarımını düzenleyerek bağlantı miktarı bir miktar azaltıldığında.

  • Control Coupling - Bir bileşen, başka bir bileşenin etkinliğini kontrol etmek için parametreleri geçtiğinde.

  • Stamp Coupling - Bir bileşenden diğerine bilgi aktarmak için veri yapıları kullanıldığında.

  • Data Coupling - Sadece veri aktarıldığında bileşenler bu bağlantı ile bağlanır.

Uyum

Uyum, bileşenleri arasındaki ilişkinin yakınlığının ölçüsüdür. Bir modülün bileşenlerinin birbirine bağımlılık miktarını tanımlar. Pratikte bu, sistem tasarımcısının şunları sağlaması gerektiği anlamına gelir:

  • Temel süreçleri parçalanmış modüllere ayırmazlar.

  • DFD'de süreçler olarak temsil edilen ilgisiz süreçleri anlamsız modüller halinde bir araya getirmezler.

En iyi modüller, işlevsel olarak uyumlu olanlardır. En kötü modüller, tesadüfen uyumlu olanlardır.

En kötü uyum derecesi

Tesadüfi kohezyon, parçaları diğeriyle ilgisiz olan bir bileşende bulunur.

  • Logical Cohesion - Mantıksal olarak ilişkili birkaç işlevin veya veri öğesinin aynı bileşene yerleştirildiği yerdir.

  • Temporal Cohesion - Bir sistemi başlatmak veya değişkenleri ayarlamak için kullanılan bir bileşenin sırayla birkaç işlevi yerine getirmesi, ancak işlevler ilgili zamanlama ile ilişkilendirilmesidir.

  • Procedurally Cohesion - Sadece bu sırayı sağlamak için işlevlerin bir bileşende gruplandırılmasıdır.

  • Sequential Cohesion - Bir bileşenin bir bölümünün çıktısının, bir sonraki parçasının girdisi olduğu zamandır.