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.
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.
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