OOAD - Pemodelan Fungsional

Pemodelan Fungsional memberikan perspektif proses dari model analisis berorientasi objek dan gambaran umum tentang apa yang seharusnya dilakukan oleh sistem. Ini mendefinisikan fungsi proses internal dalam sistem dengan bantuan Data Flow Diagram (DFD). Ini menggambarkan turunan fungsional dari nilai data tanpa menunjukkan bagaimana mereka diturunkan ketika mereka dihitung, atau mengapa mereka perlu dihitung.

Diagram Alir Data

Pemodelan Fungsional direpresentasikan melalui hierarki DFD. DFD adalah representasi grafis dari suatu sistem yang menunjukkan input ke sistem, pemrosesan atas input, output dari sistem serta penyimpanan data internal. DFD menggambarkan rangkaian transformasi atau komputasi yang dilakukan pada objek atau sistem, dan kontrol eksternal serta objek yang memengaruhi transformasi.

Rumbaugh dkk. telah mendefinisikan DFD sebagai, "Diagram aliran data adalah grafik yang menunjukkan aliran nilai data dari sumbernya di objek melalui proses yang mengubahnya ke tujuannya di objek lain."

Empat bagian utama DFD adalah -

  • Processes,
  • Arus Data,
  • Aktor, dan
  • Penyimpanan Data.

Bagian lain dari DFD adalah -

  • Kendala, dan
  • Kontrol Arus.

Fitur DFD

Proses

Proses adalah aktivitas komputasi yang mengubah nilai data. Seluruh sistem dapat divisualisasikan sebagai proses tingkat tinggi. Sebuah proses selanjutnya dapat dibagi menjadi beberapa komponen yang lebih kecil. Proses tingkat terendah mungkin merupakan fungsi sederhana.

Representation in DFD - Sebuah proses direpresentasikan sebagai elips dengan namanya tertulis di dalamnya dan berisi sejumlah nilai data input dan output yang tetap.

Example - Gambar berikut menunjukkan proses Compute_HCF_LCM yang menerima dua bilangan bulat sebagai input dan output HCF (faktor persekutuan tertinggi) dan LCM (kelipatan persekutuan terkecil).

Arus Data

Aliran data merepresentasikan aliran data antara dua proses. Ini bisa terjadi antara aktor dan proses, atau antara penyimpanan data dan proses. Aliran data menunjukkan nilai item data di beberapa titik komputasi. Nilai ini tidak diubah oleh aliran data.

Representation in DFD - Aliran data diwakili oleh busur yang diarahkan atau panah, diberi label dengan nama item data yang dibawanya.

Pada gambar di atas, Integer_a dan Integer_b merepresentasikan arus data masukan ke proses, sedangkan LCM dan HCF merupakan arus data keluaran.

Aliran data mungkin bercabang dalam kasus berikut -

  • Nilai keluaran dikirim ke beberapa tempat seperti yang ditunjukkan pada gambar berikut. Di sini, panah keluaran tidak berlabel karena menunjukkan nilai yang sama.

  • Aliran data berisi nilai agregat, dan masing-masing komponen dikirim ke tempat berbeda seperti yang ditunjukkan pada gambar berikut. Di sini, setiap komponen bercabang diberi label.

Aktor

Aktor adalah objek aktif yang berinteraksi dengan sistem baik dengan menghasilkan data dan memasukkannya ke sistem, atau mengonsumsi data yang dihasilkan oleh sistem. Dengan kata lain, aktor berperan sebagai sumber dan penyerap data.

Representation in DFD- Seorang aktor diwakili oleh sebuah persegi panjang. Aktor terhubung ke input dan output dan terletak di batas DFD.

Example - Gambar berikut menunjukkan pelaku, yaitu, Pelanggan dan Penjual_Kereta dalam sistem penjualan counter.

Penyimpanan Data

Penyimpanan data adalah objek pasif yang bertindak sebagai tempat penyimpanan data. Tidak seperti aktor, mereka tidak dapat melakukan operasi apapun. Mereka digunakan untuk menyimpan data dan mengambil data yang disimpan. Mereka mewakili struktur data, file disk, atau tabel dalam database.

Representation in DFD- Penyimpanan data diwakili oleh dua garis sejajar yang berisi nama penyimpanan data. Setiap penyimpanan data terhubung ke setidaknya satu proses. Panah input berisi informasi untuk mengubah konten penyimpanan data, sedangkan panah output berisi informasi yang diambil dari penyimpanan data. Ketika bagian dari informasi akan diambil, panah keluaran diberi label. Panah tanpa label menunjukkan pengambilan data penuh. Panah dua arah menyiratkan pengambilan dan pembaruan.

Example- Gambar berikut menunjukkan penyimpanan data, Sales_Record, yang menyimpan detail semua penjualan. Input ke penyimpanan data terdiri dari rincian penjualan seperti item, jumlah tagihan, tanggal, dll. Untuk mengetahui rata-rata penjualan, proses mengambil catatan penjualan dan menghitung rata-rata.

Kendala

Batasan menentukan kondisi atau batasan yang perlu dipenuhi dari waktu ke waktu. Mereka mengizinkan penambahan aturan baru atau modifikasi yang sudah ada. Batasan dapat muncul di ketiga model analisis berorientasi objek.

  • Dalam Pemodelan Objek, batasan menentukan hubungan antar objek. Mereka juga dapat menentukan hubungan antara nilai-nilai berbeda yang mungkin diambil objek pada waktu yang berbeda.

  • Dalam Pemodelan Dinamis, batasan menentukan hubungan antara keadaan dan kejadian objek yang berbeda.

  • Dalam Pemodelan Fungsional, batasan menentukan batasan pada transformasi dan komputasi.

Representation - Batasan dirender sebagai string di dalam kurung kurawal.

Example- Gambar berikut menunjukkan porsi DFD untuk menghitung gaji karyawan suatu perusahaan yang telah memutuskan untuk memberikan insentif kepada seluruh karyawan bagian penjualan dan kenaikan gaji seluruh karyawan bagian SDM. Dapat dilihat bahwa batasan {Dept: Sales} menyebabkan insentif dihitung hanya jika departemen adalah penjualan dan batasan {Dept: HR} menyebabkan kenaikan dihitung hanya jika departemen adalah HR.

Kontrol Arus

Suatu proses dapat dikaitkan dengan nilai Boolean tertentu dan dievaluasi hanya jika nilainya benar, meskipun itu bukan masukan langsung ke proses. Nilai Boolean ini disebut aliran kontrol.

Representation in DFD - Aliran kontrol diwakili oleh busur putus-putus dari proses yang menghasilkan nilai Boolean ke proses yang dikendalikan olehnya.

Example- Gambar berikut mewakili DFD untuk divisi aritmatika. Pembagi diuji untuk bukan nol. Jika bukan nol, aliran kontrol OK memiliki nilai True dan selanjutnya proses Divide menghitung Hasil Bagi dan Sisa.

Mengembangkan Model DFD dari suatu Sistem

Untuk mengembangkan model DFD suatu sistem, dibuatlah hirarki DFD. DFD tingkat atas terdiri dari satu proses dan para aktor yang berinteraksi dengannya.

Pada setiap tingkat bawah yang berurutan, rincian lebih lanjut secara bertahap disertakan. Sebuah proses diuraikan menjadi sub-proses, aliran data di antara sub-proses diidentifikasi, aliran kontrol ditentukan, dan penyimpanan data ditentukan. Saat menguraikan proses, aliran data ke dalam atau ke luar proses harus sesuai dengan aliran data di tingkat DFD berikutnya.

Example- Mari kita pertimbangkan sistem perangkat lunak, Perangkat Lunak Grosir, yang mengotomatiskan transaksi di toko grosir. Toko tersebut menjual dalam jumlah besar dan memiliki pelanggan yang terdiri dari pedagang dan pemilik toko eceran. Setiap pelanggan diminta untuk mendaftar dengan keterangannya dan diberi kode pelanggan unik, C_Code. Setelah penjualan selesai, toko mendaftarkan detailnya dan mengirimkan barang untuk dikirim. Setiap tahun, toko membagikan hadiah Natal kepada pelanggannya, yang terdiri dari koin perak atau koin emas tergantung pada total penjualan dan keputusan pemiliknya.

Model fungsional untuk Perangkat Lunak Grosir diberikan di bawah ini. Gambar di bawah ini menunjukkan DFD tingkat atas. Ini menunjukkan perangkat lunak sebagai satu proses dan aktor yang berinteraksi dengannya.

Aktor dalam sistem adalah -

  • Customers
  • Salesperson
  • Proprietor

Pada level DFD berikutnya, seperti yang ditunjukkan pada gambar berikut, proses utama dari sistem diidentifikasi, penyimpanan data ditentukan dan interaksi proses dengan para pelaku, dan penyimpanan data dibuat.

Dalam sistem, tiga proses dapat diidentifikasi, yaitu -

  • Daftarkan Pelanggan
  • Proses Penjualan
  • Pastikan Hadiah

Penyimpanan data yang akan dibutuhkan adalah -

  • detil pelanggan
  • Rincian Penjualan
  • Detail Hadiah

Gambar berikut menunjukkan detail dari proses Registrasi Pelanggan. Ada tiga proses di dalamnya, Verify Details, Generate C_Code, dan Update Customer Details. Ketika detail pelanggan dimasukkan, mereka diverifikasi. Jika datanya benar, C_Code dibuat dan penyimpanan data Detail Pelanggan diperbarui.

Gambar berikut menunjukkan perluasan proses Menetapkan Hadiah. Ini memiliki dua proses di dalamnya, Temukan Total Penjualan dan Tentukan Jenis Koin Hadiah. Proses Find Total Sales menghitung total penjualan tahunan yang sesuai dengan setiap pelanggan dan mencatat datanya. Mengambil catatan ini dan keputusan pemilik sebagai masukan, koin hadiah dialokasikan melalui proses Putuskan Jenis Koin Hadiah.

Keuntungan dan Kerugian DFD

Keuntungan Kekurangan
DFD menggambarkan batas-batas sistem dan karenanya sangat membantu dalam menggambarkan hubungan antara objek eksternal dan proses di dalam sistem. Pembuatan DFD membutuhkan waktu lama, yang mungkin tidak dapat dilakukan untuk tujuan praktis.
Mereka membantu pengguna untuk memiliki pengetahuan tentang sistem. DFD tidak memberikan informasi apa pun tentang perilaku bergantung waktu, yaitu, DFD tidak menentukan kapan transformasi dilakukan.
Representasi grafis berfungsi sebagai cetak biru bagi pemrogram untuk mengembangkan sistem. Mereka tidak menyoroti frekuensi komputasi atau alasan komputasi.
DFD memberikan informasi rinci tentang proses sistem. Penyusunan DFD merupakan proses kompleks yang membutuhkan keahlian yang cukup. Selain itu, sulit bagi orang non-teknis untuk memahaminya.
Mereka digunakan sebagai bagian dari dokumentasi sistem. Metode persiapannya subjektif dan menyisakan banyak ruang untuk menjadi tidak tepat.

Hubungan antara Model Objek, Dinamis, dan Fungsional

Model Objek, Model Dinamis, dan Model Fungsional saling melengkapi satu sama lain untuk Analisis Berorientasi Objek yang lengkap.

  • Pemodelan objek mengembangkan struktur statis dari sistem perangkat lunak dalam hal objek. Jadi ini menunjukkan "pelaku" dari suatu sistem.

  • Pemodelan Dinamis mengembangkan perilaku temporal objek dalam menanggapi peristiwa eksternal. Ini menunjukkan urutan operasi yang dilakukan pada objek.

  • Model fungsional memberikan gambaran umum tentang apa yang harus dilakukan sistem.

Model Fungsional dan Model Objek

Empat bagian utama Model Fungsional dalam istilah model objek adalah -

  • Process - Proses menyiratkan metode objek yang perlu diimplementasikan.

  • Actors - Aktor adalah objek dalam model objek.

  • Data Stores - Ini bisa berupa objek dalam model objek atau atribut objek.

  • Data Flows- Arus data ke atau dari aktor merepresentasikan operasi pada atau oleh objek. Aliran data ke atau dari penyimpanan data mewakili kueri atau pembaruan.

Model Fungsional dan Model Dinamis

Model dinamis menyatakan kapan operasi dilakukan, sedangkan model fungsional menyatakan bagaimana mereka dilakukan dan argumen mana yang diperlukan. Karena aktor adalah objek aktif, model dinamis harus menentukan kapan ia bertindak. Penyimpanan data adalah objek pasif dan mereka hanya menanggapi pembaruan dan kueri; oleh karena itu model dinamis tidak perlu ditentukan kapan mereka bertindak.

Model Objek dan Model Dinamis

Model dinamis menunjukkan status objek dan operasi yang dilakukan pada kejadian peristiwa dan perubahan status selanjutnya. Keadaan objek sebagai hasil dari perubahan tersebut ditampilkan dalam model objek.