1 of 18

Mata Kuliah : Rekayasa Perangkat Lunak�Minggu ke-6

2 of 18

Mahasiswa memahami tentang Software Construction Technologies

Tujuan perkuliahan

3 of 18

Desain dan Penggunaan APIAPI Design and Use

  • Application Programming Interface (API) adalah sebuah interface atau jembatan antara aplikasi atau sistem yang berbeda, yang memungkinkan mereka untuk berkomunikasi dan berinteraksi satu sama lain.
  • API menyediakan seperangkat aturan dan standar untuk membuat panggilan dari satu aplikasi atau sistem ke aplikasi atau sistem lain, sehingga aplikasi atau sistem tersebut dapat menggunakan atau memanfaatkan fitur atau data dari aplikasi atau sistem lain tersebut.
  • API juga membantu mengurangi kompleksitas dan membuat proses integrasi antar aplikasi atau sistem menjadi lebih efisien dan mudah.

4 of 18

Waktu Proses Berorientasi ObjekObject-Oriented Runtime

  • Object Oriented Runtime adalah sebuah sistem yang digunakan untuk menjalankan aplikasi yang dibangun menggunakan paradigma pemrograman berorientasi objek.
  • Sistem ini memiliki beberapa fitur yang membantu mengelola dan menjalankan objek-objek dalam aplikasi. Misalnya, memungkinkan objek untuk saling berinteraksi, melakukan tugas seperti memanggil metode, mengirimkan pesan, dan mengakses properti.
  • Tipe-Tipe Object-Oriented Runtime:
    1. Standalone OOR
    2. Embedded OOR
    3. Dynamic OOR
    4. Distributed OOR
    5. Virtual Machine OOR

5 of 18

Parameterisasi & GenerikParameterization & Generics

  • Parameterization memungkinkan untuk membuat kode yang bisa menerima parameter dan digunakan dengan berbagai jenis data yang berbeda, tanpa perlu membuat ulang kode. Ini memungkinkan untuk membuat kode yang lebih generik dan bisa digunakan berkali-kali dengan input yang berbeda.
  • Generics adalah mekanisme yang memungkinkan untuk membuat kode yang bisa bekerja dengan berbagai jenis data tanpa perlu mengetahui tipe data tersebut. Ini memungkinkan untuk membuat kode yang lebih fleksibel dan bisa digunakan ulang tanpa perlu membuat ulang kode untuk setiap tipe data yang berbeda.
  • Penerapan Parameterization & Generics dalam Kontruksi Software :
    1. Class Parameterization
    2. Function Parameterization

6 of 18

Assertions, Design by Contract And DefensiveAssertions, Design by Contract And Defensive

  • Assertions adalah pernyataan yang digunakan untuk memvalidasi bahwa suatu kondisi benar atau salah. Jika kondisi salah, program akan memunculkan pesan kesalahan. Assertions sering digunakan selama tahap development untuk menemukan dan memperbaiki bug sebelum software di-release.
  • Design by Contract adalah teknik pemrograman yang memperlakukan spesifikasi software sebagai kontrak antara pengembang dan pengguna. Dalam hal ini, pengembang harus memastikan bahwa software memenuhi kontrak yang ditentukan, dan pengguna harus memastikan bahwa software digunakan sesuai dengan kontrak.
  • Defensive programming adalah metode pemrograman yang bertujuan untuk memastikan bahwa software bekerja dengan benar meskipun dihadapkan dengan input atau kondisi yang tidak diharapkan. Dalam defensive programming, pengembang menambahkan tambahan validasi dan handling error untuk memastikan bahwa software tetap bekerja dengan benar meskipun ada kondisi yang tidak diharapkan.

7 of 18

Error handling, exception handling, and fault tolerance

Error handling, exception handling, dan fault tolerance adalah aspek penting dalam software construction. Mereka bertujuan untuk memastikan bahwa aplikasi dapat berfungsi dengan baik dan tetap stabil meskipun terjadi kesalahan atau kegagalan.

  1. Error handling adalah proses memastikan bahwa aplikasi dapat menerima dan memproses input yang salah, misalnya memvalidasi data masukan sebelum memprosesnya.
  2. Exception handling, Contohnya, jika aplikasi mencoba mengakses file yang tidak ada, maka akan diterapkan exception handling untuk menangani situasi tersebut dan memberikan pesan kesalahan yang tepat.
  3. Fault tolerance. Contohnya, sebuah aplikasi dapat memiliki redundansi atau mekanisme backup untuk memastikan bahwa data tetap tersimpan meskipun terjadi kesalahan pada sistem.

8 of 18

Model yang dapat dieksekusiExecutable models

Executable models adalah model yang memiliki spesifikasi sistem dan aplikasi yang dapat dieksekusi. Ini merupakan bagian dari proses software construction yang menggabungkan model abstrak dan spesifikasi sistem ke dalam representasi yang dapat diuji dan dijalankan.

9 of 18

Teknik konstruksi berbasis negara dan berbasis mejaState-based and table - driven construction techniques

  • State-Based Construction. Dalam teknik ini, aplikasi dibangun dengan membuat model state-transition diagram yang menggambarkan keadaan sistem dan perubahan yang terjadi.
  • Table-Driven Construction. Dalam teknik ini, perilaku aplikasi didefinisikan dalam bentuk tabel yang menyimpan informasi mengenai kondisi dan aksi yang harus diambil.

10 of 18

Konfigurasi Runtime dan InternasionalisasiRuntime configuration and internationalization

  • Runtime Configuration. Dalam konstruksi software, runtime configuration memungkinkan software untuk dikonfigurasi setelah diinstall dan sebelum digunakan, tanpa melibatkan recompilation atau reconfigurasi manual.
  • Internationalization adalah proses menyesuaikan software untuk dapat bekerja pada berbagai bahasa dan budaya. Ini melibatkan tiga hal utama:
    1. Desain dan implementasi software agar dapat bekerja dengan bahasa yang berbeda.
    2. Penyediaan data untuk setiap bahasa yang didukung.
    3. Tester dan penguji untuk memverifikasi bahwa software bekerja dengan benar pada setiap bahasa yang didukung.

11 of 18

Pemrosesan input Berbasis Tata BahasaGrammar -based input processing

Grammar-based input processing adalah teknik pengolahan masukan dalam software construction yang menggunakan tata bahasa formal seperti Backus-Naur Form (BNF) atau Extended Backus- Naur Form (EBNF) untuk mendefinisikan aturan- aturan bagaimana masukan harus diterima dan diformatkan.

12 of 18

Primitif konkurensiConcurrency primitives

  • Komponen dasar yang digunakan dalam software construction untuk mengelola tugas yang berjalan bersamaan.
  • Ini termasuk alat seperti semaphore, monitors, dan message passing untuk mengendalikan akses ke sumber daya yang berbagi dan memastikan bahwa tugas-tugas berjalan secara aman dan terkoordinasi.

13 of 18

Perangkat Tengah�Middleware

Perangkat lunak yang berada di antara sistem operasi dan aplikasi yang menjalankan tugas-tugas seperti mengatur komunikasi antar aplikasi, mengelola sumber daya, dan menyediakan layanan umum yang digunakan oleh aplikasi.

Peranan Utama Middleware :

  1. Memfasilitasi komunikasi antar aplikasi dan membuat tugas-tugas tersedia secara transparan untuk aplikasi.
  2. Middleware membantu dalam mengatasi masalah- masalah yang berkaitan dengan interoperabilitas antar aplikasi dan membuat tugas-tugas seperti pemrosesan data, pengiriman pesan, dan manajemen sumber daya lebih mudah.

14 of 18

Konstruksi Sistem HeterogenConstruction heterogenous systems

  • Proses desain dan pembuatan sistem yang terdiri dari komponen atau elemen yang berbeda, baik dalam hal hardware, sistem operasi, atau bahasa pemrograman.
  • Dalam hal ini, komponen-komponen sistem tersebut berasal dari sumber yang berbeda dan memiliki spesifikasi yang berbeda pula.

15 of 18

Analisis dan Penyetelan KinerjaPerformance analysis and tuning

  • Proses mempelajari dan mengoptimalkan performa sebuah sistem atau aplikasi, seperti mengukur waktu respon, mengidentifikasi bottle neck, dan mencari solusi untuk meningkatkan performa.
  • Performance tuning dapat dilakukan pada berbagai tingkat, termasuk hardware, sistem operasi, dan aplikasi.

16 of 18

Standar platformPlatform standards

  • Spesifikasi lingkungan pengembangan software: Standar ini mencakup spesifikasi sistem operasi, bahasa pemrograman, dan perangkat lunak yang harus digunakan untuk membangun software.
  • Metodologi pengembangan software: Standar ini mencakup metodologi pengembangan software yang harus dipakai, seperti metodologi Agile atau Waterfall.
  • Desain dan arsitektur software: Standar ini mencakup aturan desain dan arsitektur software, seperti bagaimana data harus diorganisir, bagaimana alur kerja harus didefinisikan, dan bagaimana modul harus dipisahkan dan saling berkomunikasi.

17 of 18

Pemrograman Tes Pertama�Test-first programming

  • Metodologi pengembangan perangkat lunak di mana tes dilakukan terlebih dahulu sebelum menulis kode fungsional.
  • Membuat rancangan algoritma dalam bentuk pseudocode, kemudian kode program dituliskan dan diuji.

18 of 18