12 Mart 2014 Çarşamba

SDD

SDD Nedir?
Software Design Document. Yazılım modüllerinin anlatıldığı doküman.

İçeriği Nasıldır?
SDD içinde aşağıdakine benzer başlıklar olur. Başlıklıları aynen aldım ve bazı örnekler yazdım.
1. Scope
2. Referenced Documents
3. CSCI-Wide Design Decisions
  Genel kararlar ve sebepleri (rationale) açıklanır. Genel kararlara örnekler:
   3.1. Design Methodology (Object Oriented Analysis and Design seçilmiştir)
   3.2 Programming Language 
   Bir çok platformda çalışması için Java seçilmiştir. Embedded C++ seçilmiştir.
   3.3 Operating System 
    Unix seçilmiştir veya Mission Critical bir sistem olduğu için Real Time OS seçilmiştir.
   3.4 Abstraction Layers 
    Genel katmanlar anlatılır. OS specific çağrılar yerine örneğin I/O için X kütüphanesi/API'si kullanılacaktır.
   3.5 Reused SW 
   Eğer daha önceden geliştirilmiş bir yazılım yeniden kullanılacaksa belirtilir.
   3.6 Architectural Patterns 
    Örnek: Sistem publish/subscribe mimari örüntüsü üzerine kurgulanmıştır.

4. CSCI Architectural Design
    CSCI içindeki domain/partition gibi mantıksal bölümlenmeler anlatılır. Sistemin etkileşimde bulunduğu dış    arayüzlerden bahsedilir. Her bir domain/partition içinde çalışacak componentleri gösteren bir şekil çizilebilir. Veya domain/partition'lar arasındaki veri akışını gösteren bir Data Flow çizilebilir.

 4.1 CSCI Components
   Milt STD 498 terminolojisinde componentler CSC'ye denk gelir. Her bir CSC'ye Unit ID verilir. Bu ID Proje Kodu + Proje İsmi + Bileşen İsmi şeklinde olabilir.
   Bu kısımda aşağıdaki sorular cevaplar verilir
  • What are the components of the system
  • How are the components connected
  • What are each components responsibilities


Mesaj Tabanlı Sistemler
Mesaj tabalın sistemler, genellikle birden fazla başka sistemle mesaj ağırlıklı olarak iletişim içinde olurlar. Geliştirilen mesajlaşma arayüzleri bileşen gibi düşünülebilir. Örneğin iki farklı cihazla konuşuyor olalım. Her cihaz için gerçekleştirilen arayüz birer bileşendir. Bu bileşenler açıklanabilir. Ayrıca tüm bileşenlerin aldığı verdiği mesajları işleyen bir çekirdek te bileşen olarak tasarlanabilir.


 4.2 Concept of Execution
    Bu kısımda yazılımın nasıl çalışacağı anlatılır. 
State Transition Bakış Açısı: 
Bir State Transition Diagram verilerek her state açıklanabilir.  Örnek: 

Initialization
Sistem açılışta STANDBY durumunda başlar. İlk olarak BIT işlemlerini gerçekleştirir. Önemli bir hata varsa FAILURE durumuna geçer. Yoksa OPERATIONAL duruma geçer. 

OFF
Sistem X sinyalini alınca kapanır. 


Multi-Thread Bakış Açısı:
Initialization
Sistem N tane thread açar. 

Sistem Kaynakları Bakış Açısı:
Initialization
Yazılım X portunu veya connection kanallarını açar

4.5 Interface Design
   Dış arayüzün bit/byte seviyesinde belirtildiği belgeye atıfta bulunan bir cümle yazılır 
4.6 CSCI Detailed Design
    Detaylı tasarım genelde bir UML aracına girildiği için, bu araca atıfta bulunan bir cümle yazılır.
7. Notes
 7.1 Acronyms : Kısaltmalar açıklanır
 7.2 Glossary of Terms : Kavramlar açıklanır

SDD Gözden Geçirilirken Nelere Dikkat Edilir?
Clarity, Completeness, Compliance, Consistency, Correctness, Interfaces, Maintainability, Performance, Reliability, Testability, Traceability gibi bir çok etmene bakılabilir.

Hiç yorum yok:

Yorum Gönder