Minggu, 12 Maret 2023

Analisis dan Desain PL

 


Sumber : id.pngtree.com
Analisis Perangkat Lunak atau analisis kebutuhan merupakan langkah yang paling awal untuk menentukan rancangan dari perangkat lunak yang akan dihasilkan dan dikembangkan. Perangkat lunak yang sesuai dengan kebutuhan pengguna yang berhasil berdasarkan analisis kebutuhan yang telah dilakukan. Sementara itu, Desain Perangkat Lunak dapat didefinisikan sebagai proses penerapan berbagai macam teknik dan prinsip dengan memiliki tujuan tertentu dalam proses pengembangan perangkat lunak. Desain Perangkat Lunak ini juga  merupakan tahap pertama  dalam proses pengembangan sebuah perangkat lunak. Didalam Analisis dan Desain Perangkat Lunak mencakup juga dua metodologi yang digunakan, yaitu SSAD dan OOAD.

1.  SSAD (Structured Analysis and Desain)

Sumber : pinterest.com

    SSAD merupakan pendekatan terstruktur dengan menggunakan sebuah proses untuk menyelesaikan suatu masalah berdasarkan urutan langkah-langkah perintah secara sistematis, logis, dan tersusun dalam bentuk program yang disertai algoritma yang mudah dipahami. Metode ini mulai diperkenalkan pada tahun 1970 yang merupakan turunan dari pemrograman terstruktur dan bahkan sampai sekarang masih terus dikembangkan dan diperbaiki. Dalam metode ini sangat berpegang pada prinsip; Jika sebuah proses sistem telah selesai dan sesuai dengan langkah yang ada maka proses selanjutnya tidak dapat dilakukan dan akan kembali ke urutan sebelumnya karena metode ini tidak menggunakan proses yang berulang/Looping. Dalam SSAD menggunakan beberapa tools seperti; DFD (Data Flow Diagram), Kamus Data Entity, Relationship Diagra (ERD), serta State Transition Diagram (STD). Selain itu, SSAD juga memiliki Kelebihan dan Kekurangan sebagai, berikut:
  • Kelebihan 
    • Milestone diperlihatkan dengan jelas yang memudahkan dalam memanajemen proyek
    • SSAD merupakan pendekatan visual, sehingga membuat metode ini lebih mudah dimengerti dan dipahami oleh pengguna. 
    • Penggunaan analisis grafis dan tools seperti DFD membuat SSAD menjadi lebih bagus untuk digunakan.
    • SSAD merupakan metode yang banyak diketahui secara umum pada berbagai industri.
    • SSAD telah diterapkan sejak lama sehingga  metode ini sudah layak untuk digunakan.
    • SSAD memungkinkan untuk melakukan validasi antara berbagai kebutuhan.
    • SSAD relatif simple dan mudah dipahami.
  • Kekurangan
    • SSAD berorientasi kepada proses, sehingga mengabaikan kebutuhan non-fungsional.
    • Prinsip dasar SSAD adalah pengembangan dengan sistem non-iterative(waterfall), tetapi kebutuhannya akan berubah disetiap prosesnya.
    • Interaksi antara analisis dan pengguna tidak komprehensif, karena sistem telah didefinisikan dari awal, sehingga tidak adaptif lagi terhadap perubahan yang terjadi.
    • SSAD sulit dalam menghentikan dekomposisi dan membuat nilai dalam sistem.
    • Meskipun menggunakan desain yang logic dan tools DFD, hal tersebut tidak cukup untuk digunakan sebagai perantara komunikasi dengan pengguna, sehingga pengguna sulit untuk melakukan evaluasi.

2. OOAD (Object Oriented Analysis and Desain) 

            OOAD adalah suatu pendekatan berorientasi rekayasa perangkat lunak dari sebuah sistem yang mencakup beberapa objek yang saling berinteraksi dan setiap objek memiliki entitas masing-masing untuk melihat permasalahan dalam sistem. Pendekatan berorientasi merupakan paradigma pemrograman yang lebih utama kepada objek didunia nyata. OOAD mempunyai beberapa tools seperti; Rational Unified Process (RUP), Fusion, STS Development Method 3 (ADM3), Rumbaugh's object Modelling Technique (OMT) dan Object-Oriented sytem Analysis (OOA). OOAD juga memiliki Kelebihan dan Kekurangan sebagai, berikut:
  • Kelebihan
    • OOAD Lebih mudah digunakan dalam pembangunan sistem.
    • Jika dibandingkan dengan SSAD, penggunaan OOAD lebih tinggi dalam hal waktu pengembangan, tingkat organisasi, ketahanan, ketangguhan dan penggunaan kembali kode pemrograman.
    • OOAD memungkinkan adanya standarisasi objek yang akan memudahkan dalam memahami desain dan mengurangi resiko pelaksanaan proyek.
    • Memungkinkan adanya perubahan dan perkembangan terhadap kepercayaan diri yang tinggi terhadap kebenaran software yang membantu untuk mengurangi resiko pada pembangunan sistem yang kompleks.
    • Analis dan programmer tidak dibatasi dengan batasan implementasi sistem.
    • Tidak adanya jarak antara fase desain dan analisis.
  • Kekurangan 
    • OOAD berfokus pada coding.
    • OOAD tidak menekankan pada kinerja team.
    • Desain OOAD pada sistem akan sangat simple.
    • OOAD tidak mudah dalam mendefinisikan class dan objek yang akan dibutuhkan sistem.
    • Dalam pemrograman OOAD lebih sering digunakan untuk melakukan analisis terhadap metode fungsional sistem padahal dalam OOAD tidak menerapkan metode tersebut.
    • OOAD adalah jenis sistem manajemen yang baru dengan menggunakan metode yang berbeda dengan metode analisis terstruktur, yang akan mengakibatkan team developer akan butuh waktu yang sangat lama untuk menyesuaikan pada sistem OOAD.

Pendekatan Terstruktur VS Pendekatan Objek
Pendekatan Terstruktur, Dekomposisi penyelesaian masalah dengan menerapkan fungsi/proses secara hirarki, mulai dari konteks sampai proses paling kecil. 

Pendekatan Objek, Dekomposisi penyelesaian masalah yang dilakukan sesuai dengan objek-objek yang sudah ada dalam sistem. 

Informasi Tambahan Materi YouTube


1. Mengenal DFD 

      DFD merupakan salah satu jenis diagram pemodelan yang sering digunakan pada saat membangun sebuah sistem informasi. DFD merupakan sebuah diagram yang digunakan untuk menggambarkan aliran data pada satu atau beberapa proses yang ada pada sebuah sistem. DFD sering digunakan pada dua fase, yaitu analisis dan fase perancangan. 
  DFD digunakan Ketika menggunakan perancangan terstruktur atau pendekatan terstruktur. Sedangkan, jika menggunakan pendekatan berorientasi objek disarankan untuk menggunakan diagram yang tercakup didalam UML. 
      DFD dapat digunakan untuk memodelkan sistem yang sedang berjalan saat ini maupun sistem yang akan dikembangkan selanjutnya berfokus pada pergerakan data diantara external entity proses dan Proses dengan datastore. Maka dari itu, DFD menerapkan sistem dekomposisi proses. Dekomposisi proses adalah sebuah mekanisme mendetailkan dari sebuah suatu level yang dimulai dari level yang ke 0 atau yang terendah atau paling dasar kemudian berkembang ke level 1, level 2 sampai seterusnya untuk proses yang lebih detail. Berikut beberapa elemen-elemen DFD sebagai berikut:
  1. Terminator atau External Entity berbentuk persegi panjang (), Terminator merupakan pihak-pihak yang berinteraksi dengan sistem berupa orang maupun sistem lain, dan Terminator tidak dapat memproses langsung data serta keterangan yang ada di dalam sebuah Terminator harus dituliskan dengan kata benda. 
  2. Data flow dilambangkan dengan garis panah (), yang menggambarkan sebuah aliran data dan bisa menghubungkan antara Terminator, proses maupun storage. 
  3. Proses dilambangkan dengan lingkaran (O), yang menjelaskan mengenai aktivitas sistem dan ditulis dengan kata kerja lalu akan memproses data.
  4. Storage dilambangkan dengan dua garis seperti simbol sama dengan (=) dan digunakan sebagai tempat penyimpanan data. Ketika ada panah masuk ke dalam storage tersebut atau data flow in artinya data akan diubah. Sedangkan ketika ada panah ke atas keluar berarti dataflow Storage didalam data akan dibaca. 
Contoh:
Level 0


Level 1




2. Entity Relationship Diagram (ERD) dan Perancangan ERD

      ERD adalah suatu model untuk menjelaskan hubungan antara data dalam basis data berdasarkan objek-objek dasar data yang saling berhubungan. ERD juga merupakan teknik yang digunakan untuk memodelkan kebutuhan data dari suatu sistem, hal ini biasanya ditangani oleh System Analys pada tahapan analisis persyaratan pengembangan sistem.
        Entitas/Entity merupakan sebuah benda/objek yang yang nyata dan dapat dibedakan dengan objek lainnya. Entitas memiliki Atribut yang dapat menjelaskan karakter dari objek sebuah entitas. Entitas terbagi menjadi 2 yaitu:
  1. Entitas Kuat (Strong Entity), entitas yang tidak memiliki ketergantungan terhadap entitas lain.       
  2. Entitas Lemah (Weak Entity), entitas yang keberadaannya bergantung dengan entitas lain. 
Sementara itu Apa yang dimaksud dengan atribut? 
Atribut adalah karakteristik yang menyediakan secara detail mengenai entity/relationship sehingga dapat dibedakan dengan yang lain. Contoh; sebuah entitas hotel yang memiliki atribut didalamnya seperti lobby, kamar, ballroom, kolam renang dll. Atribut juga memiliki beberapa jenis, yaitu:
    • Simple Atribut (atribut sederhana) adalah atribut yang tidak dapat dibagi dan menjadi atribut dasar. Contoh, pada sebuah entitas barang memiliki harga dan ukuran. Harga dan ukuran itulah yang termasuk atribut dari entitas barang.
    • Composite Atribut, merupakan atribut yang terdiri dari beberapa atribut yang lebih mendasar. Contoh, terdapat entitas staff dengan atribut nama. Didalam atribut namalah  terdapat Nama depan, Nama tengah, dan Nama belakang yang merupakan pecahan lebih dasar dari atribut nama.
    • Single Values Atribut, merupakan atribut yang memiliki nilai/value tunggal. Contoh, sebuah atribut Rumah memiliki nomor A105. 
    • Multivalues Atribut, merupakan atribut yang memiliki nilai lebih dari satu. Contoh, seorang aktor yang tidak hanya bisa akting saja tetapi juga bisa memasak, menyanyi dan menari.
    • Mandatory Atribut, merupakan Atribut yang haris diisi dan nilainya tidak boleh kosong dan biasanya atribut ini merupakan atribut kunci dalam suatu entitas. Contoh, setiap mahasiswa harus memiliki NIM atau Setiap barang yang ingin dijual harus memiliki harga.
    • Derived Atribut, merupakan atribut yang akan menghasilkan atribut lainnya atau bisa disebut atribut turunan. Contoh, disebuah perpustakan mahasiswa dapat meminjam buku dengan waktu yang sudah ditentukan kapan meminjam dan kapan harus mengembalikan, jangka waktu itulah yang menjadi atribut turunan.
3. Kamus Data

       Kamus Data adalah hasil referensi mendata yang telah disusun analis dan dijadikan panduan untuk melakukan analisis dan perancangan. Kamus Data digunakan untuk menyimpan makna dan asal data, hubungan dengan antar data, format data, dll. Berikut Kebutuhan dari Kamus Data:
  1. Kamus data dapat menghilangkan dan menjaga dari redundansi data yang membingungkan atau ambiguitas.
  2. Kamus Data digunakan untuk memvalidasi diagram aliran data mengenai kelengkapan dan keakuratan.
  3. Kamus Data merupakan titik awal untuk mengembangkan antarmuka dan laporan-laporan.
  4. Kamus Data menentukan muatan data yang disimpan dalam file.
  5. Kamus Data digunakan untuk mengembangkan logika pada proses DFD.
  6. Kamus Data membantu menjaga perancangan programmer agar sinkron ketika digunakan.
  7. Kamus Data menyediaka dokumentasi untuk sistem basis data yang lengkap dalam satu tempat.
 


Kesimpulan
  • Analisis Perangkat Lunak atau analisis kebutuhan merupakan langkah yang paling awal untuk menentukan rancangan dari perangkat lunak yang akan dihasilkan dan dikembangkan.  
  • Desain Perangkat Lunak dapat didefinisikan sebagai proses penerapan berbagai macam teknik dan prinsip dengan memiliki tujuan tertentu dalam proses pengembangan perangkat lunak.
  • Didalam Analisis dan Desain Perangkat Lunak memiliki juga dua metodologi yang digunakan, yaitu SSAD dan OOAD.
  • SSAD merupakan pendekatan terstruktur dengan menggunakan sebuah proses untuk menyelesaikan suatu masalah berdasarkan urutan langkah-langkah perintah secara sistematis, logis, dan tersusun dalam bentuk program yang disertai algoritma yang mudah dipahami.
  • SSAD menggunakan beberapa tools seperti; DFD (Data Flow Diagram), Kamus Data Entity, Relationship Diagra (ERD), serta State Transition Diagram (STD).
  • OOAD adalah suatu pendekatan berorientasi rekayasa perangkat lunak dari sebuah sistem yang mencakup beberapa objek yang saling berinteraksi dan setiap objek memiliki entitas masing-masing untuk melihat permasalahan dalam sistem.
  • Tools dari OOAD yaitu; Rational Unified Process (RUP), Fusion, STS Development Method 3 (ADM3), Rumbaugh's object Modelling Technique (OMT) dan Object-Oriented sytem Analysis (OOA).
  • Pendekatan Terstruktur VS Pendekatan Objek:
    Pendekatan Terstruktur, Dekomposisi penyelesaian masalah dengan menerapkan fungsi/proses secara hirarki, mulai dari konteks sampai proses paling kecil. Sedangkan Pendekatan Objek, Dekomposisi penyelesaian masalah yang dilakukan sesuai dengan objek-objek yang sudah ada dalam sistem. 

Daftar Pustaka:

Minggu, 05 Maret 2023

Rekayasa Kebutuhan

Rekayasa Kebutuhan(Requirement Engineering) adalah proses pembentukan program-program yang customer inginkan dari berjalannya sebuah sistem tersebut. Rekayasa Kebutuhan juga merupakan bagian terpenting yang harus ada dalam kegiatan rekayasa perangkat lunak. Serta memiliki peran yang sangat penting dalam menentukan keberhasilan atau berjalannya suatu proses perangkat lunak. Dalam Rekayasa Kebutuhan ini sangat sangat membantu para ahli perangkat lunak untuk memahami lebih banyak masalah dan cara penyelesaian dari suatu perangkat lunak. Penggunaan pertama dari istilah Requirement Engineering ini pada tahun 1964 dalam buku yang berjudul "Maintenance, Maintainability, and System Requirements Engineering", tetapi tidak digunakan secara umum sampai akhir 1990-an dengan penerbitan IEEE Computer Society pada tahun 1997, serta pembentukan seri konferensi mengenai rekayasa persyaratan ini telah berkembang menjadi Konferensi Teknik Persyaratan InternasionalAdapun tahapan dari sebuah rekayasa kebutuhan antara lain :

  1. RE elicitation, menganalisa kebutuhan-kebutuhan dari customer terkait proyek yang akan dibuat.
  2. RE analysis, suatu kebutuhan yang telah terpenuhi dan sesuai standar pada tahapan RE Elicitatio untuk menjadi produk software yang sudah layak untuk diproduksi.
  3. RE documentation, hasil dokumentasi dari proses-proses rekayasa kebutuhan agar dapat dijadikan sebuah hasil dari dasar pengembangan software secara detail yang mencakup seperti tim proyek, jadwal proyek, proses promosi, progress proyek, gambaran sebuah proyek.
  4. RE verification dan validation, analisis dari beberapa orang mengenai proses gathering requirement dan terdokumentasi dengan baik.



sumber : greskit.com

Software Requirement merupakan kebutuhan dan kendala yang telah diletakkan pada produk perangkat lunak dan memberikan kontribusi kepada beberapa masalah yang ada didunia nyata. Menurut IEEE Software Requirement adalah kondisi atau kemampuan yang dibutuhkan oleh pengguna untuk memecahkan masalah agar tercapainya suatu tujuan yang harus terpenuhi dan dimiliki oleh suatu sistem atau komponen sistem untuk memenuhi spesifikasi standar kontrak dan dokumen lain yang diberlakukan secara resmi. Serta Software Engineering akan membuat model analisis untuk memberikan informasi mengenai perangkat lunak seperti apa saja yang memenuhi persyaratan dalam perangkat lunak. Dan model tersebut berfungsi untuk mengetahui kendala yang ada dalam perangkat lunak tersebut. Dalam Software Requirement memiliki beberapa tahap yaitu:

  • User Requirement, memiliki statement dalam bentuk apapun mengenai layanan dari sistem yang diproduksi dan mengetahui batasan operasionalnya. Contoh; sebuah instansi mampu memanajemen semua laporan mengenai seluruh informasi setiap bulannya.
  • System Requirement, informasi secara detail mengenai fungsional, layanan, dan batasan operasional dari sebuah sistem secara otomatis. Contoh; adanya proses dari suatu sistem dari sebuah klinik untuk memproses seluruh laporan secara mendalam mengenai nama dan harga obat, jumlah resep yang telah dibuat, dosis setiap obat yang diberikan kepasien,  jumlah pasien serta jam operasional.
  • Fuctional Requierement, suatu sistem yang diterapkan mengenai pengembangan untuk mencapai tujuan pengguna serta mendefinisika sebuah perilaku sistem dasar dalam kondisi tertentu. Contoh; pemesanan barang disebuah e-commers dengan mencantumkan email dan nomor telepon agar dapat terverifikasi dan memudahkan setiap kali ada berubahan/pembatalan dalam pemesanan barang tersebut.
  • Non-functional requirements, serangkaian spesifikasi yang mampu menggambarkan kemampuan dan berbagai kendala sebuah operasi sistem dan upaya untuk meningkatkan fungsionalitasnya. Contoh; kecepatan pada saat pengeditan vidio untuk mengubah vidio 1 dengan vidio selanjutnya dalam waktu 0,3 detik sampai perpindahan vidio berikutnya tetapi tetap mempertahankan kejernihan dan tampilan dari vidio yang telah diedit.

Analisis Kebutuhan, pada tahap ini seorang engginer perangkat lunak bekerja sama dengan customer untuk memahami dan smengevaluasi seluruh domain sistem serta layanan yang harus dimiliki dan diberikan, agar dapat menentukan kinerja sistem, batasan sistem, dan lain-lainnya. Dalam hal ini ada beberapa tahap yang diperlukan seperti; 

    • Identifikasi kebutuhan, adanya interaksi untuk mengidentifikasi adanya kebutuhan dari masing-masing sistem.
    • Klasifikasi dan penataan kebutuhan, mengidentifikasi semua kebutuhan sesuai keterkaitannya sesuai pengelompokan kebutuhannya.
    • Prioritas kebutuhan, mengutamakan adanya keterkaitan/solusi antara sistem.
    • Spesifikasi kebutuhan, menghasilkan sebuah dokumen secara formal maupun informal.

Kesimpulan:

  1. Rekayasa Kebutuhan(Requirement Engineering) adalah proses pembentukan program-program yang customer inginkan dari berjalannya sebuah sistem tersebut.
  2. Beberapa tahapan dari sebuah rekayasa kebutuhan seperti; RE elicitation, RE analysis, RE documentation dan RE verification dan validation.
  3. Software Requirement merupakan kebutuhan dan kendala yang telah diletakkan pada produk perangkat lunak dan memberikan kontribusi kepada beberapa masalah yang ada didunia nyata.
  4. Sebuah Software Engineering akan membuat model analisis untuk memberikan informasi mengenai perangkat lunak seperti apa saja yang memenuhi persyaratan dalam perangkat lunak serta model tersebut berfungsi untuk mengetahui kendala yang ada dalam perangkat lunak tersebut.
  5. Software Requirement memiliki beberapa tahapan seperti; User Requirement, System RequirementFuctional Requierement dan Non-functional requirements.
  6. Dalam analisis kebutuhan ada hal yang harus diperlukan seperti; 
    • Identifikasi kebutuhan, adanya interaksi untuk mengidentifikasi adanya kebutuhan dari masing-masing sistem.
    • Klasifikasi dan penataan kebutuhan,, mengidentifikasi semua kebutuhan sesuai keterkaitannya sesuai pengelompokan kebutuhannya.
    • Prioritas kebutuhan, mengutamakan adanya keterkaitan/solusi antara sistem.
    • Spesifikasi kebutuhan, menghasilkan sebuah dokumen secara formal maupun informal.

Daftar Pustaka:

  1. Non-functional Requirements: Examples, Types, Approaches | AltexSofthttps://www.altexsoft.com/blog/non-functional-requirements/.
  2. Software requirements - Wikipediahttps://en.wikipedia.org/wiki/Software_requirements.
  3. SoftwareRequirements (tutorialspoint.com)https://www.tutorialspoint.com/software_engineering/software_requirements.htm.
  4. Requirements Analysis in Software Engineering - Computer Notes (ecomputernotes.com)https://ecomputernotes.com/software-engineering/requirementsanalysis.
  5. Bab3RekayasaKebutuhan(unikom.ac.id)https://repository.unikom.ac.id/48155/1/Bab%203%20-%20Rekayasa%20Kebutuhan.pdf.
  6. mengenal rekayasa kebutuhan (greskit.com)http://greskit.com/2021/09/22/mengenal-rekayasa-kebutuhan/.

Analisis dan Desain PL

  Sumber :  id.pngtree.com A nalisis Perangkat Lunak atau analisis kebutuhan merupakan langkah yang paling awal untuk menentukan rancangan d...