Tuesday, November 26, 2013


1.      Model Pengembangan Sistem Informasi
Berikut adalah beberapa model pengembangan informasi, yaitu :

  1. Metode SDLC / Waterfall
  2.  



Model waterfall mengusulkan sebuah pendekatan kepada perkembangan software yang sistematik dan sekuensial yang mulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, pengujian, dan pemeliharaan. Model ini melingkupi aktivitas – aktivitas sebagai berikut : rekayasa dan pemodelan sistem/informasi, analisis kebutuhan, desain, coding, pemeliharaan dan pengujian.

Setiap phase pada Waterfall dilakukan secara berurutan namun kurang dalam iterasi pada setiap level. Dalam pengembangan Sistem Informasi berbasis web, Waterfall memiliki kekakuan untuk ke iterasi sebelumnya. Dimana Sistem Informasi berbasis Web selalu berkembang baik teknologi ataupun lingkungannya.




  1. Model Prototype
Model prototype dimulai dengan pengumpulan kebutuhan. Pengembang dan user bertemu dan mendefinisikan obyektif keseluruhan dari software, mengidentifikasi segala kebutuhan yang diketahui, dan area garis besar dimana definisi lebih jauh merupakan keharusan kemudian dilakukan “perancangan kilat”.
Perancangan kilat berfokus pada penyajian dari aspek – aspek software tersebut yang akan nampak bagi user atau pemakai (contohnya pendekatan input dan format output). Perancangan kilat membawa kepada konstruksi sebuah prototype. Prototype tersebut dievaluasi oleh pelanggan/pemakai dan dipakai untuk menyaring kebutuhan pengembangan software. Iterasi terjadi pada saat prototype disetel untuk memenuhi kebutuhan pelanggan, dan pada saat yang sama memungkinkan pengembang untuk secara lebih baik memahami apa yang harus dilakukannya.
Dalam pengembangan informasi berbasis web, model ini dapat membantu user dalam menilai setiap versi dari sistem. Sangat baik untuk “aplikasi yang interaktif”, Umumnya user lebih tertarik pada tampilan dari pada proses pada sistem. Namun dalam prosesnya prototype cenderung lambat karena user akan menambah komponen dari luar sistem. Sehingga kepastian penyelesaian project tidak jelas. Dan target user dalam Web lebih bervariasi.
Model Prototype




  1. Model Rapid Aplication Development
Rapid Application Development (RAD) adalah sebuah model proses perkembangan software sekuensial linier yang menekankan siklus perkembangan yang sangat pendek. Model RAD ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier di mana perkembangan cepat dicapai dengan menggunakan pendekatan kontruksi 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). Karena dipakai terutama pada aplikasi sistem konstruksi, pendekatan RAD melingkupi fase – fase sebagai berikut : bussiness modeling, data modeling, process modeling, application generation dan testing and turnover.
Beberapa kategori RAD misalnya Phased Development, Prototyping dan Throw-away Prototyping. Dalam pengembangan sistem informasi bebasis web, bentuk dari prototipe dengan throw away jika ada modul yang salah maka akan dibuang. Artinya setiap modul tidak akan dikembangkan sampai selesai, karena jika dianalisa salah langsung dibuang. “RAD involve building the wrong site multiple times until the right site falls out of the process”. Kekurangan model RAD adalah :
-        Bagi proyek yang besar tetapi berskala, RAD memerlukan sumber daya manusia yang memadai untuk menciptakan jumlah tim RAD yang baik.
-        RAD menuntut pengembang dan user 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.





d.      Model Spiral / Incremental





Model spiral (spiral model) adalah model proses software yang evolusioner yang merangkai sifat iteratif dari prototipe dengan cara kontrol dan aspek sistematis dari model sekuensial linier. Model ini berpotensi untuk pengembangan versi pertambahan software secara cepat. Di dalam model spiral, software dikembangkan di dalam suatu deretan pertambahan. Selama awal iterasi, rilis inkremental bisa merupakan sebuah model atau prototipe kertas. Selama iterasi berikutnya, sedikit demi sedikit dihasilkan versi sistem rekayasa yang lebih lengkap.
Model spiral dibagi menjadi sejumlah aktifitas kerangka kerja, disebut juga wilayah tugas, di antara tiga sampai enam wilayah tugas, yaitu : komunikasi pelanggan yang dibutuhkan untuk membangun komunikasi yang efektif di antara pengembangan dan pelanggan, perencanaan yang dibutuhkan untuk mendefinisikan sumber – sumber daya, ketepatan waktu, dan proyek informasi lain yang berhubungan, analisis risiko yang dibutuhkan untuk menperhitungkan resiko (manajemen maupun teknis), perekayasaan yang dibutuhkan untuk membangun satu atau lebih representasi dari aplikasi tersebut, konstruksi dan peluncuran yang dibutuhkan untuk mengkonstruksi dan menguji serta memasang (instal) dan memberikan pelayanan kepada user (contohnya pelatihan dan dokumentasi) dan bagian evaluasi user yang dibutuhkan untuk memperoleh umpan balik dari user dengan didasarkan pada evaluasi representasi software, yang dibuat selama masa perekayasaan, dan diimplementasikan selama masa pemasangan.
Dalam pengembangan sistem informasi berbasis web, model ini digunakan untuk menyelesaikan sistem secara global terlebih dahulu, kemudian untuk feature dari sistem akan dikembangkan kemudian. Dengan ini mempercepat dalam pengimplementasian project. dan hal ini cocok digunakan dalam sistem informasi Web.
Kekurangan model spiral adalah sulitnya untuk meyakinkan konsumen (khusunya dalam situasi kontrak) bahwa pendekatan evolusioner bisa dikontrol. Model spiral memerlukan keahlian penaksiran risiko yang msuk akal , dan sangat bertumpu pada keakhlian ini untuk mencapai keberhasilan. Jika resiko mayor tidak ditemukan dan diatur, pasti akan terjadi masalah. Akhirnya model itu sendiri masih baru dan belum dipergunakan secara luas seperti paradigma sekuensial dan prototipe.



INCEMENTAL MODEL




Model incremental adalah pendekatan intuitif untuk model air terjun. Model Incremental menggabungkan unsur-unsur dari model sekuensial linier dengan filosofi iteratif dari prototipe tersebut. Model ini telah secara eksplisit dirancang untuk mengakomodasi produk yang berkembang dari waktu ke waktu. Siklus pengembangan multiple berlangsung di sini, membuat siklus hidup "multi-air terjun" siklus. Siklus dibagi menjadi lebih kecil, iterasi lebih mudah dikelola. Setiap iterasi melewati, desain pelaksanaan persyaratan, dan fase pengujian.

Sebuah versi kerja perangkat lunak yang dihasilkan selama iterasi pertama, sehingga Anda telah bekerja software awal selama siklus hidup perangkat lunak. Iterasi berikutnya membangun perangkat lunak awal yang dihasilkan selama iterasi pertama.







Keuntungan Incremental Model

1. Menghasilkan perangkat lunak yang bekerja dengan cepat dan awal selama siklus hidup perangkat lunak.
2. Lebih fleksibel - lebih murah untuk mengubah ruang lingkup dan persyaratan.
3. Mudah untuk menguji dan debug selama iterasi yang lebih kecil.
4. Lebih mudah untuk mengelola risiko karena potongan berisiko diidentifikasi dan ditangani selama iterasi nya.
5. Setiap iterasi merupakan tonggak mudah dikelola.
6. Sistem dikembangkan dan disampaikan secara bertahap setelah membangun arsitektur keseluruhan.
7. Persyaratan dan spesifikasi untuk peningkatan masing-masing dapat dikembangkan.
8. Dimaksudkan untuk menggabungkan beberapa keuntungan dari prototipe tetapi dengan proses yang  lebih mudah dikelola dan struktur sistem yang lebih baik.





Kekurangan Incremental Model

1. Setiap fase iterasi suatu kaku dan tidak saling tumpang tindih.
2. Masalah mungkin timbul berkaitan dengan arsitektur sistem karena tidak semua persyaratan yang berkumpul di depan untuk siklus hidup perangkat lunak keseluruhan.



Unified Process (UP)

Unified Process (UP) merupakan suatu metode pembangunan sistem secara objek oriented yang dikembangkan   oleh Rational Rose, bagian dari IBM. Secara  luas, UP telah diakui sebagai standar metodologi pengembangan sistem berorientasi objek. Vesri alsi dari UP didefinisikan sangat rumit untuk setiap kegiatan. Namun versi terbaru dari UP yakni metodologinya lebih sederhana. Ciri utama metode ini adalah menggunakan use-case driven dan pendekatan iteratif untuk siklus pengembangan perangkat lunak.UP tepat digunakan saat kondisi:
-          Pengembangan perangkat lunak yang berorientasi objek dengan berfokus pada  UML (Unified  Modeling Language )
-          Mempunyai waktu pengembangan yang panjang
-          Dikembangkan pada perangkat lunak sebagai sarana interaksi antara pengguna dan perangkat keras
-          Mempunyai tim programmer  yang cukup banyak
-          Pengembangan dan perubahan perangkat lunak berdasarkan kebutuhan user
Keuntungan Pengembangan Perangkat Lunak RUP :
Ada beberapa keuntungan dengan mengunakan RUP di antaranya :
1. Menyediakan akses yang mudah terhadap pengetahuan dasar bagi anggota tim.
2.  Menyediakan petunjuk bagaimana menggunakan UML secara efektif.
3.  Mendukung proses pengulangan dalam pengembangan software.
4.  Memungkinkan adanya penambahan-penambahan pada proses.
5.  Memungkinkan untuk secara sistematis mengontrol perubahan- perubahan yang  terjadi pada software selama proses pengembangannya.
6.  Memungkinkan untuk menjalankan test case dengan menggunakan Rational
Test Manager Tool
Kekurangan Pengembangan Perangkat Lunak RUP :
-          Metodologi ini hanya dapat digunakan pada pengembangan perangkat lunak  yang berorientasi objek dengan berfokus pada UML (Unified Modeling Language).
-          Membutuhkan waktu yang cukup lama dibandingkan XP dan Scrum

XP (Extreme Programming)
XP merupakan suatu model yang tergolong dalam pendekatan agile yang diusulkan oleh Kent Back. Menurut penjelasannya, definisi XP adalah sebagai berikut: "Extreme Programming (XP) is a lightweight, efficient, low-risk,flexible, predictable, scientific, and fun way to develop software". Model ini cenderung menggunakan pendekatan Object-Oriented. Tahapan-tahapan yang harus dilalui antara lain: Planning, Design, Coding, dan Testing. Sasaran Extreme Programming adalah tim yang dibentuk berukuran antara kecil sampai medium saja, tidak perlu menggunakan sebuah tim yang besar. Hal ini dimaksudkan untuk menghadapi requirements yang tidak jelas maupun terjadinya perubahan- perubahan requirements yang sangat cepat. Extreme Programming merupakan agile methods yang paling banyak digunakan dan menjadi sebuah pendekatan yang sangat terkenal. XP tepat digunakan saat kondisi
-          Keperluan berubah dengan cepat
-          Resiko tinggi dan ada proyek dengan tantangan yang baru
-          Tim programmer sedikit, yaitu 2-10 orang
-          Mampu mengotomatiskan tes
-          Ada peran serta pelanggan secara langsung
Kelemahan XP:

-          Cerita-cerita yang menunjukkan requirements kemungkinan besar tidak lengkap sehingga  Developer  harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
-          Tidak bisa membuat kode yang detail di awal (prinsip  simplicity  dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).
-          XP tidak memiliki dokumentasi formal yang dibuat  selama pengembangan. Satu-satunya dokumentasi adalah dokumentasi awal yang dilakukan oleh user.

Agile Modeling


Agile Modeling merupakan filosofi tentang bagaimana membangun model, dengan beberapa diantaranya dilakukan secara format dan terperinci dan yang lainnya dilakukan secara samar dan minim. Agile Software Development juga melihat pentingnya komunikasi antara anggota tim, antara orang-orang teknis dan businessmen, antara developer dan managernya. Ciri lain adalah klien menjadi bagian dari tim pembangun software.
Kelebihan dari Agile Modeling:
1.  Meningkatkan kepuasan kepada klien
2.  Pembangunan system dibuat lebih cepat
3.  Mengurangi resiko kegagalan implementasi software dari segi non-teknis
4.  Jika pada saat pembangunan system terjadi kegagalan,kerugian dar segi materi relative kecil.
Kelemahan dari Agile Modeling:
Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.




SCRUM

Pertama kali diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990an, dan dikembangkan selanjutnya dilakukan oleh Schwaber dan Beedle. Pada dasarnya Scrum merupakan salah satu komponen dari metodologi pengembangan Agile mengenai pertemuan harian untuk membahas kemajuan sedangkan XP adalah menekankan metodologi yang berbeda yaitu ujian, pemrograman dan pembangunan.Scrum menguraikan proses untuk mengidentifikasi dan katalogisasi pekerjaan yang perlu dilakukan, memprioritaskan yang bekerja dengan berkomunikasi dengan pelanggan atau wakil pelanggan, dan pelaksanaan yang bekerja menggunakan rilis iterative dan memiliki tujuan utama untuk mendapatkan perkiraan berapa lama akan pembangunan. XP lebih lanjut tentang pengembang membantu menyelesaikan pekerjaan secepat dan maintainably mungkinScrum merupakan suatu kerangka kerja. Jadi, bukannya menyediakan deskripsi rinci tentang bagaimana segala sesuatu yang harus dilakukan pada proyek seperti diserahkan kepada tim pengembangan perangkat lunak pada umumnya. Hal ini dilakukan supaya tim akan tahu bagaimana cara terbaik untuk memecahkan masalah yang mereka disajikan. Ada 3 elemen organisasi utama pada scrum yaitu product owner, Scrum master, dan the Scrum team. Scrum Master dapat dianggap sebagai pelatih bagi tim, membantu anggota tim menggunakan kerangka Scrum untuk tampil di tingkat tertinggi. Product Owner mewakili bisnis, pelanggan atau pengguna dan memandu tim ke arah pegembangan produk yang tepat. Sedangkan The Scrum Team merupakan grup pengembang kecil biasanya terdiri dari 5-9 orang. Untuk projek yang sangat besar, pekerjaan biasanya dibagi dan didelegasikan ke grup-grup kecil. Jika sangat dibutuhkan the scrum master juga dapat ikut membantu dalam koordinasi team. Scrum tepat digunakan saat kondisi:
-          Keperluan berubah dengan cepat
-          Tim programmer sedikit, yaitu 5-9 orang
-          Pelanggan tidak terlalu paham dengan apa yang diinginkan Scrum memiliki prinsip yaitu:
-          Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu sama lain
-          Proses dapat beradaptasi terhadap perubahan teknis dan bisnis
-          Proses menghasilkan beberapa software increment
-          Pembangunan dan orang yang membangun dibagi dalam tim yang kecil
-          Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
-          Proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan Kelebihan Scrum antara lain:
-          Keperluan berubah dengan cepat
-          Tim berukuran kecil sehingga melancarkan komunikasi, mengurangi biaya dan memberdayakan satu sama lain
-          Pekerjaan terbagi-bagi sehingga dapat diselesaikan dengan cepat
-          Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
-          Proses Scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan
Kelemahan Scrum antara lain:
Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.

Component-based Development Model

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.
Secara umum proses yang terjadi dalam model ini adalah:
1.    Identifikasi class-class yang akan digunakan kembali dengan menguji class tersebut dengan data yang akan dimanipulasi dengan aplikasi/software dan algoritma yang baru
2.    Class yang dibuat pada proyek sebelumnya disimpan dalam class library, sehingga bisa langsung diambil dari library yang sudah ada. Jika ternyata ada kebutuhan class baru, maka class baru dibuat dengan metode berorientasi objek.
3.    Bangun software dengan class-class yang sudah ditentukan atau class baru yang dibuat, integrasikan.

Penggunaan kembali komponen software yang sudah ada menguntungkan dari segi:

► Siklus waktu pengembangan
  software, karena   mampu   mengurangi
              waktu 70%
Biaya produksi berkurang sampai 84% arena pembangunan komponen
     berkurang

Pembangunan software dengan menggunakan komponen yang sudah tersedia dapat menggunakan komponen COTS (Commercial off-the-shelf) – yang bisa didapatkan dengan membeli atau komponen yang sudah dibangun sebelumnya secara internal. Component-Based Software Engineering (CBSE) adalah proses yang menekankan perancangan dan pembangunan software dengan menggunakan komponen software yang sudah ada. CBSE terdiri dari dua bagian yang terjadi secara paralel yaitu software engineering (component-based development) dan domain engineering.


Model Formal


Model metode formal mencakup sekumpulan aktivitas yang membawa kepada spesifikasi matematis perangkat lunak komputer. Metode formal memungkinkan perekayasa perangkat lunak untuk mengkhususkan, mengembangkan, dan memverifikasi sistem berbasis komputer dengan menggunakan notasi matematis yang tepat. Variasi di dalam pendekatan ini, disebut juga clean-room Rekayasa perangkat lunak, sedang diaplikasikan oleh banyak organisasi pengembang perangkat lunak.
Meskipun belum menjadi pendekatan utama, model metode formal sudah menawarkan janji perangkat lunak yang bebas cacat/kesalahan; tetapi perhatian tentang kemampuan aplikasinya di dalam lingkungan bisnis sudah mulai disuarakan :
1.      Pengembangan model formal banyak memakan waktu dan mahal
2.      Karena beberapa pengembang perangkat lunak perlu mempunyai latar belakang yang diperlukan untuk mengaplikasikan metode formal, maka diperlukan pelatihan yang ekstensif.
Sulit untuk menggunakan model-model sebagai sebuah mekanisme komunikasi bagi pemakai yang secara teknik belum canggih.