Lecturer Note Mata Kuliah Metode Formal

Rekayasa Perangkat Lunak

IEEE 610.12 definition
Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software, and the study of such approaches.

Rekayasa perangkat lunak mencakup :
1. Metodologi untuk mendesain, membangun, dan melakukan tes perangkat lunak agar dapat memenuhi kebutuhan klien.
2. Perangkat lunak didesain dengan baik, dibangun dan telah dites dengan memadai sesuai dengan prinsip-prinsip engineering / teknik pembangunan perangkat lunak.
3. Kualitas dan standar keamanan yang baik.
4. Matematika dapat digunakan untuk membantu mendesain dan memverifikasi produk perangkat lunak. Level matematika yang digunakan tergantung dari seberapa kritis / pentingnya produk yang dibuat. Tinjauan sejawat yang sistematis dan pengujian yang ketat akan seringkali digunakan untuk memastikan perangkat lunak yang dibangun berkualitas. Teknik matematika yang lebih tinggi dapat digunakan untuk pengujian perangkat lunak yang memiliki resiko tingkat keamanan dan keselamatan yang tinggi.
5. Penerapan manajemen proyek yang baik disertai dengan praktik manajemen yang berkualitas.
6. Dukungan dan pemeliharaan perangkat lunak yang ditangani dengan baik.

Metode Formal

Penggunaan konsep matematika untuk mendeksripsikan / menspesifikasi sistem sebelum diimplementasikan
Penggunaan pembuktian matematika untuk memeriksa correctness dari spesifikasi program yang dibuat
Pengunaan teknik logika dan matematika diskrit untuk spesifikasi, desain, konstruksi, dan analisis software dan sistem komputer

Metode Formal x Software Engineering

Metodologi software engineering berkembang untuk mengakomodasi berbagai tantangan yang dihadapi. Agar pembangunan dan pemeliharaan perangkat lunak dapat dilakukan dengan optimal, dibutuhkan pendefinisian kebutuhan perangkat lunak yang akurat.

Hal ini dipandang sangat penting, misalnya dalam kasus safety-critical systems. Terdapat sejumlah sistem yang menuntut tingkat kesalahan minimal, misalnya sistem di rumah sakit untuk membantu perawatan pasien. Kualitas perangkat lunak yang digunakan dalam safety-critical systems harus terjamin, tidak memiliki cacat yang disebabkan kesalahan desain.

Metode formal digunakan sebagai salah satu teknik untuk menjamin kualitas desain perangkat lunak, sebisa mungkin dihindari adanya spesifikasi dan deskripsi sistem yang tidak lengkap, tidak konsisten, ataupun ambigu.

Ekspresi maematika dapat digunakan untuk memodelkan representasi abstrak dari sistem yang akan dibuat dengan disertai validasi. Teknik validasi diterapkan berdasarkan pembuktian matematika untuk mengevaluasi model sistem yang dibuat. Teknik ini diharapkan mampu mengidentifikasi potensi kesalahan desain sistem sesegera mungkin, untuk mencegah kegagalan sistem setelah diimplementasikan.

Baca lebih lanjut
Concise Guide to Formal Methods : Theory, Fundamentals, and Industry Applications, chapter 1
https://softwarehut.com/blog/tech/examples-of-formal-methods
https://link.springer.com/chapter/10.1007/978-3-662-22646-9_2
https://www.foi.se/rest-api/report/FOI-R--4156--SE

Perlunya pemeriksaan spesifikasi perangkat lunak

Sebelum sebuah sistem diimplementasikan, langkah pertama yang dilakukan adalah membuat spesifikasi kebutuhan. Spesifikasi tersebut harus mendeskripsikan secara tepat perilaku sistem yang diharapkan. Spesifikasi perangkat lunak diperiksa untuk memastikan spesifikasi tersebut ditulis dengan jelas, lengkap, konsisten, dan tidak ambigu. Spesikasi yang ditulis dengan baik akan memudahkan programmer yang akan mengubah spesifikasi tersebut menjadi kode program. Hal ini sangat penting terutama untuk kasus safety-critical systems, spesifikasi perangkat lunak yang ditulis dengan baik dapat membantu deteksi kesalahan desain sedini mungkin. Baca lebih lanjut https://www.foi.se/rest-api/report/FOI-R--4156--SE sub bab 1.2

diperbarui pada 06/09/2021

Comments

Popular posts from this blog

Contoh Inheritance (Pewarisan) di Java

Physical address dan Logical Address (1)

Deploy CodeIgniter 3 Menggunakan Docker