Paradigma Pengembangan Perangkat Lunak; RAD

Pada dasarnya paradigma pengembangan perangkat lunak terbagi menjadi beberapa model. Beberapa model yang populer–yang melingkupi SDLC (System Development Life Cycle)–diantaranya: Linear Sequential Model/ Waterfall Model, V-Model, Incremental Model, Spiral Model, RAD Model, Prototyping Model, Componen-based Development Model, dan Extreme Programming Model. Kali ini saya akan membahas panjang lebar salah satu model saja, yaitu RAD Model.

Rapid Aplication Development (RAD) adalah sebuah model proses perkembangan perangkat lunak sekuensial linier yang menekankan siklus perkembangan yang sangat pendek. Model RAD ini merupakan sebuah adaptasi ” kecepatan tinggi ” dari model sekuensial linier dimana perkembangan cepat dicapai dengan menggunakan pendekatan konstruksi berbasis komponen. Jika kebutuhan dipahami dengan baik, proses RAD memungkinkan tim pengembangan menciptakan ” sistem fungsional yang utuh ” dalam periode waktu yang sangat pendek (kira-kira 60 sampai 90 hari).

RAD Model

Karena dipakai terutama pada aplikasi sistem konstruksi, pendekatan RAD melingkupi fase-fase sebagai berikut:

  1. Bussines Modelling. Aliran informasi diantara funsi-fungsi bisnis dimodelkan dengan suatu cara untuk menjawab pertanyaan-pertanyaan berikut: Informasi apa yang mengendalikan proses bisnis? Informasi apa yang dimunculkan? Siapa yang memunculkan? Ke mana informasi itu pergi? Siapa yang memprosesnya?
  2. Data ModellingAliran informasi yang di definisikan sebagai bagian dari fase bussiness modelling di saring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut. Karakteristik (disebut atribut) masing-masing objek diidentifikasi dan hubungan antara objek-objek tersebut didefinisikan.
  3. Prosess Modeling. Aliran informasi yang didefinisikan di dalam fase data modelling ditransformasikan untuk mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi bisnis. Gambaran pemrosesan digunakan untuk menambah, memodifikasi, menghapus, atau mendapatkan kembali sebuah objek data.
  4. Aplication generation. RAD mengasumsikan pemakaian teknik generasi ke-empat. Selain menciptakan perangkat lunak dengan menggunakan bahasa pemrograman generasi ke-tiga yang konvensional, RAD lebih banyak memproses kerja memakai lagi komponen program yang ada (pada saat memungkinkan) atau menciptakan komponen yang bisa dipakai lagi (bila perlu). Pada semua kasus, alat-alat bantu otomatis dipakai untuk memfasilitasi konstruksi perangkat lunak.
  5. Testing and turnover. Karena proses RAD menekankan pada pemakaian kembali, banyak komponen program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tetapi komponen baru harus diuji dan semua interface harus dilatih secara penuh.

Kekurangan RAD :

  1. RAD memerlukan sumber daya manusia yang memadai untuk menciptakan jumlah tim RAD yang baik.
  2. 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.
  3. Kecepatan yang tinggi dengan biaya minimal kemungkinan besar hasil kualitasnya rendah.
  4. Proyek mungkin berakhir dengan lebih banyak tambahan kebutuhan daripada yang telah dipenuhi
  5. Potensial adanya penambahan fitur karena fitur yang sekarang hasilnya asal-asalan
  6. Potensial ketidaksesuaian desain dan implementasi
  7. Potensial ketidakkonsistenan penamaan dan dokumentasi
  8. Sangat sulit membuat modul yang dapat digunakan kembali

Kelebihan RAD :

  1. Hasil pengembangan bisa lebih cepat dibandingkan SDLC lainnya
  2. Memerlukan biaya yang lebih sedikit
  3. Mementingkan dari segi bisnis dan teknik
  4. Berkonsentrasi pada sudut pandang user
  5. Menyediakan kemungkinan perubahan secara cepat sesuai permintaan user
  6. Menghasilkan jarak kesesuaian yang kecil antara kebutuhan user dan spesifikasi sistem
  7. Waktu, biaya, dan effort minimal

Kondisi tidak sesuai RAD :

  1. Proyek dengan skala kecil sampai medium dengan waktu pendek.
  2. Fokus pada lingkup tertentu, misalnya pada objek bisnis yang telah didefinisikan dengan baik
  3. Bukan aplikasi dengan komputasi yang kompleks
  4. User tahu pasti area yang harus dimiliki aplikasi
  5. Manajemen memiliki komitmen terhadap keterlibatan user
  6. Spesifikasi kebutuhan sudah benar-benar diketahui
  7. Pendefinisian spesifikasi yang tidak perlu waktu lama
  8. Anggota tim memiliki keahlian yang baik
  9. Komposisi tim stabil
  10. Ada kontrol proyek yang efektif

Referensi:

http://id.wikipedia.org/wiki/Rapid_application_development

https://docs.google.com/file/d/0B2PuCGsYasf8OWQxY2JjYTAtNjVlZi00YzBiLWIxMWMtMzMxNjEzZDdjZTI3/edit?hl=en_US

Perbedaan Platform dengan Sistem Operasi

Platform adalah suatu sistem yang terdiri berbagai arsitektur komputer, baik hardware maupun software, sebagai pondasi dasar dari suatu project yang akan menghasilkan suatu software tertentu. Selanjutnya platform akan berfungsi sebagai media untuk menjalankan software yang dihasilkannya. Output dari platform—suatu software baru—ini bisa bersifat mono platform ataupun multy platform tergantung arsitektur atau serangkaian komponen yang membentuk platform tersebut.

Sebagai contoh: aplikasi kalkulator yang berbasis php, adalah sebuah output dari dari suatu platform yang terdiri dari: seperangakat PC atau laptop, sistem operasi (windows maupun linux), Apache web server, database MySQL (pengolahan datanya bisa juga menggunkan phpMyAdmin), php editor (misalnya Macromedia Dreamweaver, gedit, php editor, Notepad++, dll), serta web browser (misalkan Mozila Firefox).

Lalu apa itu sistem operasi? Secara umum sistem operasi adalah perangkat lunak sistem yang bertugas untuk melakukan kontrol dan manajemen perangkat keras serta operasi-operasi dasar sistem, Sistem Operasi adalah perangkat lunak pada lapisan pertama yang ditempatkan pada memori komputer pada saat komputer dinyalakan booting. Sedangkan software-software lainnya dijalankan setelah Sistem Operasi berjalan, dan Sistem Operasi akan melakukan layanan inti untuk software-software itu. Layanan inti tersebut seperti akses ke disk, manajemen memori, penjadwalan tugas schedule task, dan antar-muka user GUI/CLI. Sehingga masing-masing software tidak perlu lagi melakukan tugas-tugas inti umum tersebut, karena dapat dilayani dan dilakukan oleh Sistem Operasi. Bagian kode yang melakukan tugas-tugas inti dan umum tersebut dinamakan dengan “kernel” suatu Sistem Operasi.

Sistem Operasi secara umum terdiri dari beberapa bagian:

  • Mekanisme Boot, yaitu meletakkan kernel ke dalam memory
  • Kernel, yaitu inti dari sebuah Sistem Operasi
  • Command Interpreter atau shell, yang bertugas membaca input dari pengguna
  • Pustaka-pustaka, yaitu yang menyediakan kumpulan fungsi dasar dan standar yang dapat dipanggil oleh aplikasi lain
  • Driver untuk berinteraksi dengan hardware eksternal, sekaligus untuk mengontrolnya.

Lalu apakah sistem operasi bagian dari komponen platform? Ya, dalam sebuah kondisi sistem operasi bisa berfungsi sebagai sebuah komponen penting dari suatu platform tertentu, tetapi dalam kondisi lain sistem operasi bisa juga sebagai output dari platform yang lain.

Referensi:

http://id.wikipedia.org/wiki/Sistem_operasi

http://en.wikipedia.org/wiki/Computing_platform

http://www.tanyapedia.com/apa-itu-platform/

http://id.wikipedia.org/wiki/Lintas_platform

Perbandingan Beberapa Sistem Operasi

Sistem operasi yang pernah saya gunakan diantaranya Linux Ubuntu, Blankon Linux, pernah juga mencoba-coba Backtrack, mencoba-coba Ubuntu Server dan FreeBSD. Di keluarga Windows diantaranya Windows 2000, Windows XP, Windows7, mencoba-coba Windows8, sedikit mencoba Windows Server 2000 dan 2008. Dan untuk OS Mobile saya pernah menggunakan Symbian dan Android. Kali ini saya akan membandingkan kelebihan dan kekurangan beberapa system operasi yang paling lama saya gunakan.

Untuk OS pada Personal Computer:

  1. Linux Ubuntu. Ubuntu desktop yang saya gunakan dari mulai versi 9.10 sampai ubuntu 13.04 yang masih digunakan hingga saat ini. Kelebihan Ubuntu yang masih saya gunakan saat ini adalah: user friendy dalam segi interface (ditambah fitur unity-nya yang sudah menyerupai interface pada system operasi mobile), kernel terasa lebih stabil dari versi keversi, sudah auto detect (plug and play) pada cukup banyak device maka kita tidak akan membutuhkan driver untuk device tertentu, banyak aplikasi yang serba free yang bisa diakses langsung dari Ubuntu Software Center, kemudahan upgrade versi, beberapa aplikasi yang bejalan pada sisitem operasi Microsoft Windows umumnya sudah bisa berjalan juga di OS ini, lebih ringan dan lebih responsive, sistem keamanan yang lebih baik, tidak memerlukan anti virus dan jika diinstal pada PC dengan dual boot OS ini bisa berfungsi sebagai antivirus bagi OS Windows, dan yang paling penting OS ini free, kita tidak perlu membajak atau berdosa karena melanggar hak pihak lain. Sedangkan kekurangan Ubuntu diantaranya: belum semua hardware support sistem operasi ini, maka membutuhkan beberapa usaha lain untuk membuat OS ini berjalan baik pada hardware yang tidak mendukung system operasi ubuntu, meskipun beberapa aplikasi Windows sudah bisa berjalan di Ubuntu tetapi tidak bisa semulus di tempat asalnya (Windows), butuh waktu untuk penyesuaian penggunaan OS ini jika usernya betul-betul awam, masih ada beberapa perusahaan hardware atau device yang keukeuh tidak mensupport  system operasi ini.
  2. Microsoft Windows XP. Windows XP yang pernah saya gunakan adalah versi Home Edition dan Professional SP1 sampai SP3. Seperti banyak diketahui bahwa Windows XP bisa dibilang OS dari keluarga Windows yang paling bandel, paling banyak digunakan karena hampir semua perusahaan hardware atau device sudah mensupport. Hingga saat ini, beberapa perusahaan besar masih menggunakan OS ini untuk menunjang komputerisasi, hal ini disebabkan  karena mesin-mesin dan peralatan tertentu yang terhubung ke computer hanya mampu support OS Windows XP, tentu saja akan membutuhkan biaya tidak sedikit jika hendak upgrade OS. Secara umum kelebihan Windows XP diantaranya: OS ini relative hemat resource, sudah auto detect dan plug and play, OS lebih stabil, sudah familiar dan user friendly sekalipun untuk pengguna awam, lebih mudah instalasi aplikasi dibandingkan di linux, OS ini lebih cocok untuk aktivitas hacking. Sedang kekurangannya: system keamanan yang kurang baik, mudah terkena / terinfeksi virus, Resiko kehilangan data sangat besar dibanding sodaranya OS Vista dikarenakan sistem security centre nya tidak secara otomatis mendeteksi input-output yang tidak dikenal (unknow); Dalam Remote Administration Windows XP, Network Securitiy-nya sangat lambat untuk membaca file-file crack yang bercampur dengan file system sehingga saat melakukan Akses Remote sangat rawan dari virus dan penyusup; dan kelemahan lainnya yang saya ambil dari blog http://firmansanctuary.wordpress.com/kelebihan-dan-kekurangan-windows-xpvista7/ sebagai referensi.
  3. Windows 7. Bisa dibilang OS ini lanjutan Windows XP yang lebih banyak dipakai dibandingkan OS windows Vista pendahulunya. Berikut beberapa kelebihan Windows 7:  proses booting dan shutdown relative lebih cepat, hemat daya, lebih stabil dibanding pendahulunya, memiliki fitur baru yaitu aplikasi device storage, memiliki fitur UAC (User Account Control), interface lebih ringan dan lebih memanjakan mata, tersedia pilihan bahasa berbagai Negara (versi Ultimate) dan tidak memerlukan versi khusus, system keamanan relative lebih baik dari pendahulunya, memliki fitur auto recovery, dsb. Sedangkan kekurangannya: masih ada beberapa program atau aplikasi yang belum berjalan di Windows7, sensitive terjadi bug terhadap kemampuan hardware (pada computer rakitan), tidak mendukung samba (untuk network dan file sharing server Linux), lebih mudah dibajak dibandingkan Windows XP, dsb.

Untuk system operasi mobile:

  1. Symbian. System operasi ini pernah menjadi mobile OS yang paling banyak digunakan, secara umum kelebihan OS  ini adalah: user friendly bahkan untuk user awam sekalipun, relative stabil, hampir semua aplikasi kompatibel di OS  ini, dan lain-lain. Sedangkan kekurangannya: rentan terhadap infeksi virus, tidak mau bermanufer untuk menghadapi pesaingnya saat ini (bisa dibilang jadul), walaupun dikatakan bisa costumisasi / dimodifikasi tapi cenderung tidak lebih mudah dari Android.
  2. Android. System operasi besutan google ini memang menjadi mobil OS yang popular saat ini, hal ini didukung pula dengan banyaknya vendor yang mensupportnya. Secara umum kelebihan Android yaitu: bersifat opensource yang memungkinkan usernya untuk mengembangkan maupun memodifikasinya secara bebas, memiliki banyak pilihan aplikasi yang free maupun yang berbayar, user friendly, interface mudah dikostumisasi sekalipun oleh user awam, sangat cocok untuk user yang hobinya ngoprek ataupun programing serta pecinta opensource, banyak sekali milis ataupun komunitas android untuk sharing pengalaman dan pengetahuan, dsb. Sedang kekurangannya: beberapa aplikasi membutuhkan akses root dan tidak semua user mampu melakukannya (setelah root garansi gadget hilang), pada beberapa aplikasi yang free selalu ada iklan, konsumsi daya relative boros, dsb.

Demikian sedikit review sistem operasi yang bisa saya uraikan kali ini, semoga bermanfaat.