Pendekatan Software development yang spesifik pada kebutuhan real-time system terdiri atas beberapa proses yang konkuren yang harus bisa saling berkomunikasi dan bersingkoronisasi dalam operasinya.
Software life cycle untuk real time system adalah sebagai berikut
- Requirement analysis and specification : Kebutuhan user dianalisa dan sistem di spesifikasikan
- System Design : system di strukturisasi menjadi beberapa task ( concurrent process ) dan task interface di definisikan.
- Task Design : setiap task di jabarkan menjadi modul dan modul interface di definisikan.
- Modul Construction : proses desain yang lebih detil, koding, serta unit testing pada tiap modul yang ada.
- Task and System Integration : semua modul terintegrasi dan teruji untuk menjalankan task yang kemudian menuju terintegrasi dan teruji untuk menjalankan keseluruhan system
- System Testing : seluruh sistem atau sub sistem yang utama di uji untuk memverifikasi kesesuaian dengan spesifikasi fungsional. Untuk mendapatkan mendapatkan hasil yang baik, system testing dilakukan oleh tim yang independen.
- Acceptance Testing : dilakukan oleh pengguna.
Peranan Software design dalam Real time system development adalah sebagai berikut :
- Design Process
Design adalah proses yang creative yang bergantung pada kemampuan , pengalaman, penilaian dari designer. Beberapa hal perlu diperhatikan dalam proses mendesain software.
- Real Time Design as software Life-Cycle phase
Life-Cycle Consideration for real time system yang umum dipakai saat itu [1989] adalah waterfall, namun life-cycle seperti incremental (evolutionary prototyping) dan rapid prototyping muncul untuk menutupi kelemahan model sebelumnya.
Requirement definition terdiri atas definisi system requirement dan dilanjutkan definisi software requirement. Terkadang dibutuhkan juga D-Requirement (developer-oriented requirements)
Dalam Architectural Design system di atur menjadi komponen, faktor penting yang harus diperhatikan adalah mengatur real time system menjadi task/process yang konsuren. Selain itu harus memperhatikan aspek behavioral dari system real time.
Algoritma secara detail di definisikan pada Detailed design , sering mengunakan notasi program design language (PDL) atau pseudocode. Yang harus diperhatikan adalah resource sharing, deadlock, dan interfacing hardware I/O device.
Pada tahap Implementation , testing sering kali komplek daripada system lain karena kebanyakan real time system adalah embedded system, untuk itu perlu simulator pada tahap pembangunan. Selain itu perlu dibandingkan performa sesuai dengan requirement.
- Real Time System Design Concept
Design konsep yang penting untuk real-time system adalah Finite State Machines, Concurrent Task, dan information hiding.
- Real time design representations
Ada beberapa diagram yang bisa digunakan untuk merepresentasikan real time system design, diantaranya adalah data flow/control flow diagram, task structure diagram, mascot diagram, structure graphs, structure chart, Entity Structure diagram, JSD Network Diagram, Object Diagrams, Class Structure Diagram, State Treansition Diagram, Statecharts, dan lain lain.
- Software Design Strategies for real-time system
Beberapa jenis metode mendiskripsikan perbedaan strategi dan konsep design dalam mendekomposisi sistem menjadi komponen. Metode-metode tersebut antara lain adalah design methods based on functional decomposition, design methods based on concurrent task structuring, design methid based on information hiding module structuring, design method based on modeling the problem domain.
Hassan gomaa melakukan penelitian tentang aplikasi pendekatan software development dalam proyek robot controller dan menghasilkan hasil yang positif, mengunakan merode desain DARTS, sistem real time robot controller secara efektif terstruktur sehingga walaupun terjadi beberapa kali perubahan terhadap requirement specification setelah desain, tidak dibutuhkan perubahan yang besar dalam system structure atau task interface.
Robot controller dikembangkan mengunakan pendekatan system architect , yang artinya 1 orang bertanggung jawab untuk melihat sistem secara keseluruhan, dengan pengertian detail tentang requirement specification dan system desain, namun tidak dalam detail implementasi.dengan begitu memungkinan untuk menjaga integritas konseptual dalam desain sistem dan pengembangan.
Prototype dikembangkan dengan 2 cara, pertama membuat throwaway prototype untuk mengambarkan interface untuk merekam user requirement, kedua membuat evolutionary prototype yang mengarah ke pengembangan sistem secara incremental. Karena prototype kedua pada akhirnya akan menjadi produk yang sebenarnya maka kualitas menjadi faktor yang penting, sehingga pembuatannya mengikuti prinsip software life cycle.
Referensi :
0 komentar:
Posting Komentar