Tuesday, October 4, 2016

Model Proses Perangkat Lunak

1. Model Waterfall/Air Terjun atau Sekuensial Linier

Pada model Waterfall atau disebut model air terjun, ada beberapa fase yang harus kita terapkan, yaitu:
  • Analisi kebutuhan lalu pendefenisiannya
  • Perancangan sistem dan perangkat lunaknya
  • Implementasi dan unit testing
  • Integrasi dan pengujian sistem
  • Pengoprasian dan pemeliharaan
Dimana sebuah proses akan kembali ke state sebulumnya agar tidak ada perubahan setelah proses menuju state di bawahnya sebab sangat sulit.
Proses Waterfall dapat digambarkan sebagai berikut:
Pertama: Analisis dan Definisi Persyaratan melingkupin Pelayanan, batasan, dan tujuan sistem ditentukan melalui konsultasi dengan user sistem.

Kedua: Perancangan sistem dan perangkat lunak melingkupi proses perancangan sistem dan membagi persyaratan dalam sistem perangkat keras atau perangkat lunak, lalu menentukan arsitektur sistem secara keseluruhan.

Ketiga: Perancangan perangkat lunak direalisasikan sebagai serangkaian program atau unit program. Pengujian unit melibatkan verifikasi bahwa setiap unit telah memenuhi spesifikasinya.

Keempat: Integrasi dan pengujian sistem dimana unit program atau program individual diintegrasikan dan diuji sebagai sistem yang lengkap untuk menjamin bahwa persyaratan sistem telah dipenuhi.

Kelima: Operasi dan pemeliharaan biasanya merupakan fase siklus yg paling lama (walaupun tidak seharusnya) dimana sistem diinstall dan di pakai. Pemeliharaan pun mencakup koreksi dan berbagai error yang tdk ditemukan pada tahap-tahap sebelumnya, perbaikan atas implementasi unit sistem dan pengembangan pelayanan sistem.

  • Kelebihan Model Sekuensial Linear / Waterfall Development Model :
    • Tahapan proses pengembangannya tetap (pasti), mudah diaplikasikan, dan prosesnya teratur.
    • Cocok digunakan untuk produk software/program yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya.
    • Software yang dikembangkan dengan metode ini biasanya menghasilkan kualitas yang baik.
    • Documen pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya.

  • Kekurangan Model Sekuensial Linear / Waterfall Development Model :
    • Proyek yang sebenarnya jarang mengikuti alur sekuensial seperti diusulkan, sehingga perubahan yang terjadi dapat menyebabkan hasil yang sudah didapatkan tim pengembang harus diubah kembali/iterasi sering menyebabkan masalah baru.
    • Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses.
    • Sulit untuk mengalami perubahan kebutuhan yang diinginkan oleh customer/pelanggan.
    • Pelanggan harus sabar untuk menanti produk selesai, karena dikerjakan tahap per tahap, dan proses pengerjaanya akan berlanjut ke setiap tahapan bila tahap sebelumnya sudah benar-benar selesai.
    • Perubahan ditengah-tengah pengerjaan produk akan membuat bingung tim pengembang yang sedang membuat produk.
    • Adanya waktu kosong (menganggur) bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya.

  • Contoh software atau penerapan yang menggunakan model waterfall :
Software pembuatan program pendaftaran online ke suatu Instansi Pendidikan. Program ini akan sangat membantu dalam proses pendaftaran, karena dapat meng-efektifkan waktu serta pendaftar tidak perlu repot-repot langsung mendatangi Instansi Pendidikan. Teknisnya adalah sebagai berikut :
  • Sistem program untuk pendaftaran dibuat menggunakan bahasa pemrograman PHP, dengan Sistem Database yang dibuat menggunakan MySQL, dan diterapkan (diaplikasikan) pada PC (personal computer) dengan sistem operasi berbasis Microsoft Windows, Linux, dan sebagainya.
  • Setelah program selesai dibuat dan kemudian dipergunakan oleh user, programmer akan memelihara serta menambah atau menyesuaikan program dengan kebutuhan serta kondisi user.


2. Model Rapid Application Development (RAD)

Rapid application development(RAD) adalah model proses pengembangan perangkat lunak tambahan yang menekankan siklus perkembangan yang sangat pendek. Model RAD adalah adaptasi dari model sekuensial linier (Waterfall models) "kecepatan tinggi" berbasis komponen.  Dari penjelasan Pressman (2012) , satu perhatian khusus mengenai metodologi RAD dapat diketahui, yakni implementasi metode RAD akan berjalan maksimal jika pengembang aplikasi telah merumuskan kebutuhan dan ruang lingkup pengembangan aplikasi dengan baik.
Proses RAD dapat digambarkan sebagai berikut:




Pertama: Business modelling : berfungsi menjawab pertanyaan-pertanyaan seperti informasi apa yang mengendalikan proses bisnis? Informasi apa yang dihasilkan? Siapa yang menghasilkan informasi? Kemana informasi itu diberikan? Siapa yang mengolah informasi?.
Kedua: Data modelling: aliran informasi yang sudah didefinisikan, disusun menjadi sekumpulan objek data. karakteristik/atribut dan hubungan antar objek-objek tersebut analisis kebutuhan dan data.
Ketiga: Process Modelling : objek data yang sudah didefinisikan diubah menjadi aliran informasi yang diperlukan untukmenjalankan fungsi-fungsi bisnis.
Keempat: Application Generation: RAD menggunakan component program yang sudah ada atau membuat component yang bisa digunakan lagi, selama diperlukan.
Kelima: Testing and Turnover: karena menggunakan component yang sudah ada, maka kebanyakan component sudah melalui uji atau testing. Namun component baru dan interface harus tetap diuji.

  • Kelebihan Model RAD :
  • Lebih efektif dari Pengembangan Model waterfall/sequential linear dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan.
  • Cocok untuk proyek yang memerlukan waktu yang singkat.
  • Model RAD mengikuti tahap pengembangan sistem seperti pada umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada sehingga pengembang tidak perlu membuatnya dari awal lagi sehingga waktu pengembangan menjadi lebih singkat dan efisien.
  • Kekurangan Model RAD :
  • Model RAD menuntut pengembangan dan pelanggan memiliki komitmen di dalam aktivitas rapid-fire yang diperlukan untuk melengkapi sebuah sistem, di dalam kerangka waktu yang sangat diperpendek. Jika komitmen tersebut tidak ada, proyek RAD akan gagal.
  • Tidak semua aplikasi sesuai untuk RAD, bila system tidak dapat dimodulkan dengan teratur, pembangunan komponen penting pada RAD akan menjadi sangat bermasalah.
  • RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang tinggi.
  • Membutuhkan Tenaga kerja yang banyak untuk menyelesaikan sebuah proyek dalam skala besar.
  • Jika ada perubahan di tengah-tengah pengerjaan maka harus membuat kontrak baru antara pengembang dan pelanggan.

   Contoh software atau penerapan menggunakan model RAD : 

Model RAD dapat diterapkan secara berturut-turut untuk proyek fungsional kompleks dan sangat besar yang memiliki kemungkinan yang jelas dari modularisasi proyek. Jika proses modularisasi tidak berhasil diterapkan pada proyek maka mungkin terjadi RAD menjadi kondisi yang rapuh.

  • Untuk proyek dengan budget yang murah.
  • Ketika sumber daya yang tinggi terampil yang tersedia.
  • Ketika itu mudah untuk memodularisasi proyek.
  • Jika risiko teknis rendah.
  • Jika pengembangan yang dibutuhkan untuk menyelesaikan dalam waktu yang ditentukan.
  • RAD Model ini cocok jika fungsi memiliki ketergantungan yang sedikit terhadap fungsi lainnya.

3. Model Prototype

Metode prototyping adalah sistem informasi yang menggambarkan hal-hal penting dari sistem informasi yang akan datang. Prototipe sistem informasi bukanlah merupakan sesuatu yang lengkap, tetapi sesuatu yang harus dimodifikasi kembali, dikembangkan, ditambahkan atau digabungkan dengan sistem informasi yang lain bila perlu.

Prototyping Meliputi :
  1. Perancangan Model
  2. Perancangan Dialog
  3. Simulasi

Berikut adalah 4 langkah yang menjadi karakteristik dalam proses pengembangan pada metode prototype, yaitu :
  1. Pemilihan fungsi
  2. Penyusunan Sistem Informasi
  3. Evaluasi
  4. Penggunaan Selanjutnya

Berikut adalah tahapan-tahapan proses pengembangan dalam model prototype, yaitu :
  1. Pengumpulan kebutuhan
  2. Membangun prototyping
  3. Evaluasi protoptyping
  4. Mengkodekan sistem
  5. Menguji sistem
  6. Evaluasi Sistem
  7. Menggunakan sistem

Proses model prototype digambarkan sebagai berikut:

Pertama: Membuat sebuah contoh prototipe untuk menunjukan kebutuhan dan desain ke pemakai.

Kedua: Harus ada versi yang dapat dijalankan sebagai prototipe sebelum sistem dikembangkan(bisa berupa contoh sistem lain).

Ketiga: Harus ada implementasi sistem yang dikembangkan sebelum dibuat sistem final.

  • Kelebihan Model Prototype :
  • Pelanggan berpartisipasi aktif dalam pengembangan sistem, sehingga hasil produk pengembangan akan semakin mudah disesuaikan dengan keinginan dan kebutuhan pelanggan.
  • Penentuan kebutuhan lebih mudah diwujudkan.
  • Mempersingkat waktu pengembangan produk perangkat lunak.
  • Adanya komunikasi yang baik antara pengembang dan pelanggan.
  • Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan.
  • Lebih menghemat waktu dalam pengembangan sistem.
  • Penerapan menjadi lebih mudah karena pelanggan mengetahui apa yang diharapkannya.

  • Kekurangan Model Prototype :
  • Proses analisis dan perancangan terlalu singkat.
  • Biasanya kurang fleksibel dalam mengahadapi perubahan.
  • Walaupun pemakai melihat berbagai perbaikan dari setiap versi prototype, tetapi pemakai mungkin tidak menyadari bahwa versi tersebut dibuat tanpa memperhatikan kualitas dan pemeliharaan jangka panjang.
  • Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak efisien.

  • Contoh software atau penerapan menggunakan model Prototype :
Sebuah rumah sakit ingin membuat aplikasi sistem database untuk pendataan pasiennya. Seorang atau sekelompok programmer akan melakukan identifikasi mengenai apa saja yang dibutuhkan oleh pelanggan, dan bagaimana model kerja program tersebut. Kemudian dilakukan rancangan program yang diujikan kepada pelanggan. Hasil/penilaian dari pelanggan dievaluasi, dan analisis kebutuhan pemakai kembali di lakukan.


4. Model Evolutionary Development/Evolutionary Software Process Models

Model Evolutionary Development bersifat iteratif (mengandung perulangan). Hasil prosesnya berupa produk yang makin lama makin lengkap sampai versi terlengkap dihasilkan sebagai produk akhir dari proses. Model Evolutionary Development / Evolutionary Software Process terbagi menjadi 3, yaitu :

A. Model Incremental 

Model Incremental merupakan hasil kombinasi elemen-elemen dari model waterfall yang diaplikasikan secara berulang, atau bisa disebut gabungan dari Model linear sekuensial (waterfall) dengan Model Prototype. Elemen-elemen tersebut dikerjakan hingga menghasilkan produk dengan spesifikasi tertentu kemudian proses dimulai dari awal kembali hingga muncul hasil yang spesifikasinya lebih lengkap dari sebelumnya dan tentunya memenuhi kebutuhan pemakai.

Proses model incremental dapat digambarkan sebagai berikut:

Model ini berfokus pada penyampaian produk operasional dalam Setiap pertambahanya. Pertambahan awal ada di versi stripped down dari produk akhir, tetapi memberikan kemampuan untuk melayani pemakai dan juga menyediakan platform untuk evaluasi oleh pemakai. Model ini cocok dipakai untuk proyek kecil dengan anggota tim yang sedikit dan ketersediaan waktu yang terbatas.

  • Kelebihan Model Incremental :
  • Personil bekerja optimal.
  • mampu mengakomodasi perubahan secara fleksibel, dengan waktu yang relatif singkat dan tidak dibutuhkan anggota/tim kerja yang banyak untuk menjalankannya.
  • Pihak konsumen dapat langsung menggunakan dahulu bagian-bagian yang telah selesai dibangun. Contohnya pemasukan data karyawan.
  • Mengurangi trauma karena perubahan sistem. Klien dibiasakan perlahan-lahan menggunakan produknya setiap bagian demi bagian.
  • Memaksimalkan pengembalian modal investasi konsumen.

  • Kekurangan Model Incremental :
  • Tidak cocok untuk proyek berukuran besar (lebih dari 200.000 baris coding).
  • Sulit untuk memetakan kebutuhan pemakai ke dalam rencana spesifikasi tiap-tiap hasil dari increament.

   Contoh software atau penerapan menggunakan model incremental :

Dalam sebuah software, adanya sebuah Graphical User Interface akan jauh lebih memudahkan pengguna software untuk berinteraksi dengan software, dikarenakan tampilan GUI akan jauh lebih meminimalkan kesalahan penggunaan dari user daripada pada aplikasi yang berbasis console. Selain itu, aplikasi yang menggunakan GUI akan jauh lebih menarik dan user-friendly daripada aplikasi yang berbasis console.

Aplikasi yang akan dibuat adalah aplikasi yang akan dijalankan pada perangkat mobile (handphone), karena memang aplikasi mobile banking lebih ditujukan untuk mengimbangi mobilitas seseorang dengan tetap dapat melaksanakan aktifitas perbankan. aplikasi disini bukanlah aplikasi besar yang berlevel enterprise, sehingga baris kodennya juga tidak terlalu banyak.

Software yang nantinya dikembangkan haruslah memenuhi beberapa kriteria diantaranya : aplikasinya tidak membutuhkan resource yang besar, dapat berjalan di perangkat mobile, kecepatan proses transaksi haruslah cepat, aplikasi nantinya bisa dikembangkan lebih lanjut untuk mengimbangi kebutuhan pengguna software.

B. Model Spiral/Model Boehm
Model ini mengadaptasi dua model perangkat lunak yang ada yaitu model prototyping dengan pengulangannya dan model waterfall dengan pengendalian dan sistematikanya.  Model ini dikenal dengan sebutan Spiral Boehm. Pengembang dalam model ini memadupadankan beberapa model umum tersebut untuk menghasilkan produk khusus atau untuk menjawab persoalan-persoalan tertentu selama proses pengerjaan proyek.

Proses model spiral dapat digambarkan sebagai berikut:



Tahap-tahap model ini dapat dijelaskan secara ringkas sebagai berikut :

Pertama: Tahap Liason pada tahap ini dibangun komunikasi yang baik dengan calon pengguna/pemakai.

Kedua: Tahap Planning(perencanaan) pada tahap ini ditentukan sumber-sumber informasi, batas waktu dan informasi-informasi yang dapat menjelaskan proyek.

Ketiga: Tahap Analisis Risiko mendefinisikan risiko, menentukan apa saja yang menjadi risiko baik teknis maupun manajemen.

Keempat: Tahap Rekayasa(engineering) pembuatan prototipe.

Kelima: Tahap Konstruksi dan Pelepasan(release) pada tahap ini dilakukan pembangunan perangkat lunak yang dimaksud, diuji, diinstall dan diberikan sokongan-sokongan tambahan untuk keberhasilan proyek.

Keenam: Tahap Evaluasi Pelanggan/pemakai/pengguna biasanya memberikan masukan berdasarkan hasil yang didapat dari tahap engineering dan instalasi.



Kelebihan model Spiral :


  •  Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak komputer.
  •  Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar
  •  Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap   tingkat evolusi karena perangkat lunak terus bekerja selama proses.
Kelemahan model Spiral:


  • Sulit untuk menyakinkan pelanggan bahwa pendekatan evolusioner ini bisa dikontrol.
  • Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang serius jika resiko mayor tidak ditemukan dan diatur.
  • Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang absolute.
Contoh software atau penerapan menggunakan spiral model :
  • Concept Development Project(Proyek Pengembang Konsep)
  • New Product Development Project(Proyek Pengembangan Produk Baru)
  • Product Enhancement Project(Proyek Peningkatan Produk)
  • Product Maintenance Project(Proyek Pemeliharaan Produk)

C. Model WINWIN Spiral Model

Dalam hal ini win win merupakan situasi kemenangan antara tim pengembang dan pelanggan. Yang membedakan antara win win spiral model dan spiral model adalah setelah selesai mendapatkan feed back dari pelanggan, tim pengembang perangkat lunak dan pelanggan akan kembali melakukan negosiasi untuk perkembangan perangkat lunak tersebut.

Proses model WINWIN Spiral Model dapat digambarkan sebagai berikut:


Tahapan-tahapan WINWIN Spiral Model:
Pertama: Identifikasi kunci sistem atau subsistem dari yang berkepentingan.

Kedua: Penentuan kondisi kemenangan dari yang berkepentingan.

Ketiga: Negosiasi kondisi menang yang berkepentingan agar terjadi kedamaian.

  • Kelebihan WINWIN Spiral Model : 
  • Sama-sama adanya kesepakatan developer dengan customer
  • Terdapat kepuasan dan keuntungan antara developer dengan customer karena aplikasi yang dijalankan dengan negoisasi sesuai kesepakatan.
  • Sangat efektif untuk digunakan karena kesepakatan antara developer dengan customer sama-sama disepakati sehingga tidak akan menimbulkan ketidakpuasan customer.
  • Kekurangan WINWIN Spiral Model :
  • Membutuhkan waktu yang cukup lama
  • Seringkali pada awalnya customer dengan developer mengalami kecekcokkan pada saat negoisasi.
5. V-Model

Bisa dikatakan model ini merupakan perluasan dari model waterfall, karena tahapnya mirip dengan yang terdapat dalam model waterfall. Jika dalam model waterfall proses dijalankan secara linear, maka dalam model V proses dilakukan bercabang. Dalam model V ini digambarkan hubungan antara tahap pengembangan software dengan tahap pengujiannya.

Proses V-Model dapat digambarkan sebagai berikut:


Pertama: Requirement Analysis & Acceptance Testing
Tahap Requirement Analysis sama seperti yang terdapat dalam model waterfall. Keluaran dari tahap ini adalah dokumentasi kebutuhan pengguna.
Acceptance Testing merupakan tahap yang akan mengkaji apakah dokumentasi yang dihasilkan tersebut dapat diterima oleh para pengguna atau tidak.

Kedua: System Design & System Testing
Dalam tahap ini analis sistem mulai merancang sistem dengan mengacu pada dokumentasi kebutuhan pengguna yang sudah dibuat pada tahap sebelumnya. Keluaran dari tahap ini adalah spesifikasi software yang meliputi organisasi sistem secara umum, struktur data, dan yang lain. Selain itu tahap ini juga menghasilkan contoh tampilan window dan juga dokumentasi teknik yang lain seperti Entity Diagram dan Data Dictionary.

Ketiga: Architecture Design & Integration Testing
Sering juga disebut High Level Design. Dasar dari pemilihan arsitektur yang akan digunakan berdasar kepada beberapa hal seperti: pemakaian kembali tiap modul, ketergantungan tabel dalam basis data, hubungan antar interface, detail teknologi yang dipakai.

Keempat: Module Design & Unit Testing
Sering juga disebut sebagai Low Level Design. Perancangan dipecah menjadi modul-modul yang lebih kecil. Setiap modul tersebut diberi penjelasan yang cukup untuk memudahkan programmer melakukan coding. Tahap ini menghasilkan spesifikasi program seperti: fungsi dan logika tiap modul, pesan kesalahan, proses input-output untuk tiap modul, dan lain-lain.

Kelima: Coding
Dalam tahap ini dilakukan pemrograman terhadap setiap modul yang sudah dibentuk.
  • Kelebihan V-Model :
  • V Model sangat fleksibel. V Model mendukung project tailoring dan penambahan dan pengurangan method dan tool secara dinamik. Akibatnya sangat mudah untuk melakukan tailoring pada V Model agar sesuai dengan suatu proyek tertentu dan sangat mudah untuk menambahkan method dan tool baru atau menghilangkan method dan tool yang dianggap sudah obsolete.
  • V Model dikembangkan dan di-maintain oleh publik. User dari V Model berpartisipasi dalam change control board yang memproses semua change request terhadap V Model.
  • Kekurangan V-Model :
  • V Model adalah model yang project oriented sehingga hanya bisa digunakan sekali dalam suatu proyek.
  • V Model terlalu fleksibel dalam arti ada beberapa activity dalam V Model yang digambarkan terlalu abstrak sehingga tidak bisa diketahui dengan jelas apa yang termasuk dalam activity tersebut dan apa yang tidak.


Contoh software atau penerapan menggunakan model V :

  • Dalam proyek teknologi informasi di Jerman.
  • V Model dibandingkan dengan CMM.
  • V Model didesain untuk mengembangkan sistem yang didalamnya terdapat dua komponen.
  • Pengembangan V Model dalam bidang industri dapat dilakukan dengan mudah.





          6. The Concurrent Development Model(Concurrent Engineering)

          Pada model ini aktifitas kerja dilakukan secara bersamaan, setiap proses kerja memiliki beberapa pemicu kerja dari aktifitas. Pemicu dapat berasal dari awal proses kerja maupun dari pemicu yang lain karena setiap pemicu akan saling berhubungan.

          Proses Concurrent Engineering dapat digambarkan sebagai berikut:



          • Kelebihan Model Concurrent Engineering :
          • Proses ini berlaku untuk semua jenis pengembangan perangkat lunak dan memberikan gambaran yang akurat tentang keadaan sekarang dari suatu proyek.
          • Kekurangan Model Concurrent Engineering :
          • Statenya sangat banyak sehingga membutuhkan waktu yang lebih lama.
          Contoh software atau penerapan menggunakan concurrent model :
          Concurrent model dapat mengembangkan semua jenis perangkat lunak, dari yang perangkat lunak dasar hingga perangkat lunak tingkat tinggi, seperti software untuk perbankan, marketing, games, hingga software dengan fungsi tingkat tinggi.
          7. Component Based Development
          Component-based development sangat berkaitan dengan teknologi berorientasi objek. Pada pemrograman berorientasi objek, banyak class yang dibangun dan menjadi komponen dalam suatu software. Class-class tersebut bersifat reusable artinya bisa digunakan kembali. Model ini bersifat iteratif atau berulang-ulang prosesnya.
          Proses Component Based Development dapat digambarkan sebagai berikut:
           
          Pertama: Identifikasi kelas-kelas yang akan digunakan kembali dengan menguji kelas tersebut dengan data yang akan dimanipulasi dengan aplikasi/software dan algoritma yang baru
          Kedua: Kelas yang dibuat pada proyek sebelumnya disimpan dalam kelas library, sehingga bisa langsung diambil dari library yang sudah ada. Jika ada kebutuhan kelas baru, maka kelas baru dibuat dengan metode berorientasi objek.
          Ketiga: Bangun software dengan kelas-kelas yang sudah ditentukan atau kelas baru yang dibuat, integrasikan.
          • Kelebihan CBD :
          • Kelebihan model ini adalah tinggal mencaplok atau menggunakan program atau komponen yang sudah ada dan menyusunnya menjadi sebuah program yang lebih kompleks dan berkembang sesuai dengan kebutuhan user/pengguna sehingga dapat mengefisienkan penggunaan waktu dan tenaga.Selain itu,model ini juga menyediakan kemampuan untuk memvisualisasikan hasil rakitan dengan kesanggupan untuk mengukur, menganalisa, merancang dan merancang ulang program.
          • Kekurangan CBD :
          • Kekurangan model ini adalah seringnya program atau komponen-komponen terdahulu tidak kompatibel atau sejalan dengan model perakitan komponen ini sehingga untuk perusahaan berskala kecil akan kesulitan menemukan komponen yang sesuai untuk dirakit.
          Contoh software atau penerapan Component Based Development :
          Model ini lebih tepat digunakan untuk pengembangan aplikasi dengan waktu yang lebih singkat dan untuk pengembangan aplikasi dari suatu perusahaan yang sudah memiliki standarisasi, sehingga ketika perusahaan tersebut ingin menambah/mengembangkan modul-modul tertentu, developer tidak usah melakukan pengkodean ulang, namun untuk hal-hal yang sesuai dengan standarisasi tersebut, developer hanya tinggal menggunakan kembali class-class yang sudah ada, baik itu class yang ada dalam satu project tersebut maupun pada project lain.
          8. Formal Method Model
          Teknik formal method adalah teknik yang mengandalkan perhitungan matematika dalam setiap prosesnya. Hanya digunakan pada sistem yang sangat memperhatikan keamanan atau keselamatan dari pengguna. Contoh penggunaan teknik ini adalah aerospace engineering.
          Proses Formal Method Model dapat digambarkan sebagai berikut : 



          Pertama: persyaratan informal dianalisis dan fungsi ditentukan secara resmi.

          Kedua: proses pembangunan membutuhkan spesifikasi formal ini dan merubahnya menjadi lebih rinci.

          Ketiga: deskripsi dapat dieksekusi oleh beberapa prosesor.

          • Keuntungan Formal Method Model :
          • Meminimalkan risiko dengan adanya perhitungan komputasi.
          • Kerugian Formal Method Model :
          • Biaya tinggi/mahal.
          • Kompleks.
          • Tidak Umum untuk proyek software pada umumnya.
          9. Aspect-Oriented Software Development/Aspect Oriented Programming

          Aspect-Oriented Software Development(AOSD) adalah pendekatan baru untuk desain perangkat lunak yang menangani masalah-masalah modularitas yang tidak ditangani dengan baik oleh pendekatan-pendekatan lainnya, termasuk pemrograman terstruktur dan Object-Oriented Programming. AOSD melengkapi, tetapi tidak menggantikan pendekatan-pendekatan lainnya.

          • Kelebihan AOSD :
          • Pemrograman full dengan program yang berorientasi objek
          • Apabila ada kesalahan dapat diperbaiki dengan mudah
          • dapat dengan mudah mengembangkan perangkat lunak itu sendiri.

          • Kelemahan AOSD:
          • Membutuhkan tenaga ahli yang handal
          • Waktu yang diperlukan cukup lama
          • Pembuatan program yang rumit karena berlandaskan objek.

          REFERENSI : 






          No comments:

          Post a Comment