Senin, 22 September 2014

Definisi dan deskripsi posisi dalam pengembangan website

Definisi Dan Deksripsi Posisi Dalam Pengembangan WEB

 

Pada postingan  kali ini saya akan sedikit membahas tentang Definisi dan deskripsi posisi dalam pengembangan website.

dalam pembuatan sebuah website terdapat beberapa posisi diantaranya:

  1. Web Designer
  2. Web Developer
  3. Web Administator
  4. Web Analyis
  5. Web Programing

     Dalam industri web terdapat banyak titel dan deskripsi pekerjaan, tapi dalam kenyataan-nya banyak pekerja di industri web terjebak dalam job desc yang tidak spesifik dan perlahan meluas, ini cukup merugikan pekerja di industri web. Untuk itu menurut saya penting memiliki pemahaman tentang titel pekerjaan di industri ini serta apa saja deskripsi dan tanggung jawab dalam pekerjaan tersebut.


   Pemahaman tentang definisi titel pekerjaan penting bagi si pekerja dan pemberi kerja, konsistensi perlu diterapkan dalam pengertian titel job serta deskripsi pekerjaan itu, tentu saja ini merupakan opini, dan bisa saja diperdebatkan.

Berikut adalah titel-titel pekerjaan dan deskripsi-nya :

1. Web Designer
Web designer, kata “Web” disini memberikan deskripsi spesifik bahwa pekerjaan si desainer adalah fokus terhadap tampilan dan layout web, pemahaman tentang HTML, CSS & Javascript ringan diperlukan dalam bidang pekerjaan ini. Pada kenyataannya di Indonesia banyak web designer yg job desc-nya hanya sebagai graphic desainer (tidak mengkonversi desain ke web format), ini pun kadang tidak di keluhkan si web desainer karena mungkin saja gaji yang tidak selevel dengan web desainer sebenarnya, so it’s web designer with a graphic designer salary..

2. Front End Developer
Pekerjaan ini fokus pada HTML, CSS & Javascript, bahkan sedikit pekerjaan backend ringan, tidak ada kata desainer pada titel job ini dikarenakan memang desain tidak ada di job desc-nya. Sinonim titel pekerjaan dari Front end Dev mungkin juga bisa disebut Front End Engineer.

3. UI Designer
Pekerjaan ini benar-benar fokus pada desain web dan tidak terlalu memikirkan implementasinya, mungkin sedikit skill tentang HTML & CSS diperlukan dalam proses pekerjaannya.

4. UX Designer
Pekerjaan ini fokus pada pembelajaran dan riset terhadap perilaku user & pengalaman user (user experience) dalam browsing web, pekerjaan ini memiliki fokus untuk memperbaiki sistem web menjadi lebih baik dan user-friendly, memang semua titel pekerjaan web lainnya harus memikirkan user experience tapi UX Designer adalah pekerjaan yang benar-benar fokus memikirkan hal tersebut.


5. Interaction Designer
Secara umum job descnya sama dengan UI designer, tapi yang ini lebih fous terhadap interaksi user dan pergerakan elemen-elemen web.
 
6. Art Director
Pekerjaan ini fokus pada quality control, leadership untuk timnya serta komunikasi dengan klien, sinonimnya mungkin Design Director.
 
7. Web Developer
Pekerjaan yang satu ini fokus pada pekerjaan backend dan pemrograman yang berhubungan dengan bahasa web PHP, ASP, Ruby atau phyton, pengetahuan yang baik tentang database seperti mysql dan cara kerja server diperlukan dalam job description web developer, tidak lupa juga mereka tentunya mengerti  HTML & CSS. Tapi hal yang terpenting dalam pekerjaan web developer adalah fokus pada konsep pemrograman, keamanan dan struktur web. Sinonim dari titel pekerjaan ini adalah Web Programmer atau Web Application Developer.

9. Web Administrator
Adalah orang yang bertugas untuk memelihara situs web khususnya pada server. Web administrator harus memahami secara mendalam tentang sistem operasi yang digunakan server, proses penginstalan, memahami jaringan LAN, WAN, keamanan data server, dan yang penting dia juga harus dapat mengatasi masalah Troubleshooting.

10. Web Analisis
Web analis adalah pengukuran, pengumpulan, analisis dan pelaporan data internet untuk tujuan pemahaman dan mengoptimalkan penggunaan web.
Web analis bukan hanya sebuah alat untuk mengukur lalu lintas situs Web, namun dapat digunakan sebagai alat untuk penelitian bisnis dan riset pasar. Analisis Web aplikasi dapat juga membantu perusahaan mengukur hasil kampanye iklan cetak tradisional. Ini membantu orang untuk memperkirakan bagaimana lalu lintas ke situs web berubah setelah peluncuran kampanye iklan baru. Web analytics menyediakan data tentang jumlah pengunjung, tampilan halaman dll untuk mengukur popularitas situs yang akan membantu untuk melakukan riset pasar.
Ada dua kategori analisis Web; off-site dan on-site web analytics.
Off-site web analisis mengacu pada pengukuran dan analisis web tidak peduli apakah Anda sendiri atau mempertahankan sebuah website. Ini mencakup pengukuran potensi sebuah situs web penonton (kesempatan), berbagi suara (visibilitas), dan buzz (komentar) yang terjadi di Internet secara keseluruhan.

 11. Web Progamming
Web Developer adalah seseorang yang menciptakan aplikasi berbasis web dengan menggunakan bahasa pemrograman. Pada dasarnya, web developer membuat berrbagai hal terjadi pada sebuah website. Peran web developer adalah sebagai penghubung dari semua sumber daya yang akan digunakan pada sebuah website. Mulai dari pemanggilan database, membuat halam website yang dinamis, hingga mengatur cara pengunjung untuk berinteraksi dengan elemen-elemen dari website tersebut.
Berikut adalah bagian aplikasi yang harus dipahami oleh seorang web developer :
  • Client-side: JavaScript
  • Server side : ASP,ASP.NET,Java,Perl,PHP,Phyton,Ruby,dsb.
  • Database: MySQL, Oracle, dsb.
Aspek tampilan menjadi sisi yang agak terpinggirkan oleh web developer, Pada umumnya setelah scripting dari aplikasi web telah selesai dibuat, web developer akan menyerahkan pekerjaannya kepada web designer untuk menciptkan tampilan yang baik.

 Agile Development Methods

Secara garis besar tujuan dirumuskannya agile development methods, yaitu :
  1. High-value & working App system, diharapkan dengan memakai agile development methods dapat dihasilkan perangkat lunak yang mempunyai nilai jual yang tinggi, biaya pembuatan bisa di tekan dan perangkat lunak bisa berjalan dengan baik.
  2. Iterative, incremental, evolutionary, agile adalah metode pengembangan perangkat lunak yang iteratif, selalu mengalami perubahan, dan evolusioner. Tim harus bekerja dalam waktu yang singkat(biasanya 1-3 minggu) dan juga selalu menambah fungsionalitas dari perangkat lunak sesuai dengan kebutuhan klien. Agile dapat dianalogikan ketika seseorang ingin pergi ke suatu kota dan dia tidak tahu jalannya. Lalu bagaimana dia bisa sampai tujuan? Dengan sering bertanya kepada orang yang dia temui dijalan hingga dia sampai di tempat tujuan.
  3. Cost control & value-driven development, salah satu tujuan dari agile yaitu pengembangan perangkat lunak disesuaikan dengan kebutuhan pengguna, tim bisa dengan cepat merespon kebutuhan yang diinginkan pengguna sehingga waktu dan biaya pembuatan perangkat lunak bisa dikontrol.
  4. High-quality production, walaupun biaya pembuatan perangkat lunak bisa ditekan dan proses pembuatan bisa dipercepat , tetapi kualitas dari perangkat lunak yang dibuat harus tetap dijaga. Dengan melakukan tes setiap fungsionalitas perangkat lunak setelah selesei dibuat berarti agile juga mengakomodir kebutuhan ini.
  5. Flexible & risk management, jika kita menggunakan metode pembuatan yang biasanya dipakai, jika ingin mengubah fungsionalitas dari wireframe yang telah dibuat di butuhkan proses yang rumit. Mulai dari pertemuan dengan sistem analis untuk mengubah sistem perangkat lunak, perubahan rencana rilis produk hingga perubahan biaya produksi. Pertemuan dengan klien untuk melakukan tes perangkat lunak juga sering dilakukan sehingga fungsionalitas perangkat lunak mudah diubah dan akhirnya kegagalan perangkat lunakpun bisa diminimalisir.
  6. Collaboration, dengan menggunakan agile, tim pengembang diharuskan sering bertemu untuk membahas perkembangan proyek dan feedback dari klien yang nantinya akan ditambahkan dalam perangkat lunak, sehingga tim bisa berkolaborasi dengan maksimal.
  7. Self-organizing, self-managing teams, rekrut orang terbaik, beri dan dukung kebutuhan mereka lalu biarkan mereka bekerja. Itulah perbedaan agile dan SDM lainnya. Dengan agile, developer dapat memanajemen dirinya sendiri, sedangkan manajer tim hanya bertugas mengkolaborasikan developer perangkat lunak dengan klien. Sehingga terciptalah tim yang solid.
  8. Bagaimana agile bekerja
  9. Topik selanjutnya yaitu tentang cara kerja agile development methods. Disini akan dijelaskan bagaimana agile development methods (model scrum) digunakan dalam manajemen proyek.
Komposisi tim
Secara umum komposisi dari sebuah tim pengembang perangkat lunak yaitu :
  1. Owner / Klien, bersama dengan developer sebagai bagian terpenting dalam proyek, tugas dari klien menentukan fungsi dari perangkat lunak yang akan di buat, melakukan testing dan memberikan feedback.
  2. Manajer / Scrum Master, bertugas mengkolaborasikan developer dengan klien, membuat dan mengevaluasi target pengerjaan perangkat lunak.
  3. Sistem Analis, membuat arsitektur sistem dari perangkat lunak yang akan dibuat.
  4. Developer, merupakan titik vital dalam tim, tanpa developer perangkat lunak tidak akan bisa dibuat.
Story
Story adalah daftar kebutuhan atau fitur yang nanti akan dibuat. Story berisi apa yang klien kehendaki, dan ditulis dalam bahasa yang dimengerti klien. Dengan kata lain dapat disimpulan Story adalah bagian terpenting dari Scrum.
Story terdiri dari kolom-kolom berikut ini
  1. ID – Identifikasi unik, biasanya berupa nomor urut. Hal ini untuk menghindari kehilangan jejak story kalau kita mengganti namanya.
  2. Nama – Nama story bersifat deskriptif, padat, singkat, dan jelas (2-10 kata), sehingga tim dan klien memahami kira-kira story yang dibicarakan.
  3. Kepentingan – Derajat kepentingan yang diberikan oleh klien terhadap story. Pemberian derajat kepentingan biasanya menggunakan deret fibonacci (1,1,2,3,5,dst). Semakin tinggi nilainya maka semakin tinggi pula prioritas pengerjaannya.
  4. Perkiraan awal – Perkiraan awal tim tentang berapa banyak kerja yang diperlukan untuk mengimplementasikan sebuah story.
  5. Demo – deskripsi umum bagaimana cara story ini didemokan pada waktu sprint demo (lakukan ini, klik itu, lalu ini akan muncul,dll).
Sprint
Sprint (Rapat perencanaan pembuatan perangkat lunak dilakukan 2-8 minggu sekali), yang perlu diperhatikan saat melaksanakan sprint antara lain
Tujuan sprint.
  1. Daftar anggota tim harus lengkap.
  2. Sprint backlog (daftar story yang akan diikutkan dalam sprint).
  3. Tanggal demo yang pasti.
  4. Tempat dan waktu yang jelas untuk pelaksanaan sprint berikutnya.
Tim akan melakukan sprint secara simultan sampai perangkat lunak selesei dikerjakan, sebagai contoh:
Sprint 1, tim membuat fungsi login,logout dan demo perangkat lunak akan dilakukan 3 minggu kemudian. Setelah dilakukan demo untuk mengevaluasi kerja yang dilakukan tim pada Sprint 1, maka Sprint 1 dianggap selesei. Bahan evaluasi dari Sprint 1 akan dibawa ke Sprint 2 begitu seterusnya sampai aplikasi selesei dikerjakan.
Kelebihan dan Kekurangan

Kelebihan
  1. Beberapa kelebihan dari agile diantaranya
  2. 82% Menambah produktivitas tim.
  3. 7% Menambah kualitas perangkat lunak.
  4. 78% Menambah kepuasan klien.
  5. 37% Menghemat biaya.
Kekurangan
  1. Sedangkan kekurangan dari agile antara lain :
  2. Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
  3. Tidak cocok dalam skala tim yang besar (>20 orang).
  4. Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.

 Sumber :

-http://17-11-2012.blogspot.com/2014/09/dalam-industri-web-terdapat-banyak.html#pages/1

-http://pengertianpengertian.blogspot.com/2012/04/pengertian-web-administrator.html


Mungkin cukup sekian, postingan kali ini.. Semogaa bermanfaat  :)

Minggu, 24 Agustus 2014

Model Pengembangan Perangkat Lunak beserta contoh studi kasus


Assalamualaikum Wr. Wb

Saya kembali lagi dengan membawa postingan baru. Kali ini saya akan membahas tentang Model Perancangan Perangkat Lunak.


No. 1

   Ada beberapa model proses perangkat lunak yang biasa digunakan sesuai dengan kondisi-kondisi tertentu, di antaranya:

1.     Linear sequential Model (Model Sekuensial Linear)/Model Waterfall
     Model ini adalah model klasik yang mengusung pengembangan  perangkat lunak yang sistematis, berurutan/sekuensial dimulai pada tingkat dan kemajuan system pada seluruh persyaratan dalam analisis, perancangan (desain), pengkodean, pengujian (testing), hingga ke tahap pemeliharaan dalam membangun software (perangkat lunak). Berikut ini gambaran dari Linear Sequential Model / waterfall model.



                                                Gambar 1. The linear sequential model

     Pada setiap tahapan dianalogikan bak air yang mengalir dari tempat tinggi ke tempat yang lebih rendah, artinya sebuah proses baru bias dilanjutkan setelah satu tahap awal selesai dengan sempurna.
Penjelasan tentang setiap tahapan dapat diringkas sebagai berikut:

-Tahap analisis: pada tahap ini berlangsung proses pengumpulan kebutuhan secara lengkap  
     untuk dianalisis dan didefinisikan kebutuhan apa saja yang harus dipenuhi oleh program  
     yang akan dibuat, seperti memahami domain permasalahan, tingkah laku, unjuk kerja 
     dan interface (antar muka).
-Tahap desain: proses ini melibatkan empat atribut sebuah program yaitu struktur data, 
     arsitektur, perangkat lunak, representasi interface, dan detail (algoritma) prosedural.
-Tahap pengkodean: proses penterjemahan desain ke dalam bentuk bahasa mesin yang  
      dapat dilakukan secara mekanis.
-Tahap pengujian: proses ini dikerjakan setelah kode dirancang dan difokuskan pada 
      fungsi dan jumlah kesalahan untuk diperbaiki.
-Tahap pemeliharaan: meliputi penyesuaian atau perubahan yang berkembang seiring 
     dengan adaptasi perangkat lunak dengan kondisi atau situasi sebenarnya setelah 
     disampaikan kepada konsumen atau pelanggan.
-Kelebihan metode ini antara lain mudah diaplikasikan karena urutan-urutan pengerjaan 
     sudah sering dipakai; selain itu juga cocok untuk software berskala besar dan yang     
     bersifat umum; yang paling penting, karena langkah-langkahnya sangat sekuensial,   
     pengerjaan 
     proyek akan mudah dikontrol dan terjadwal dengan baik.
  Namun, terdapat pula beberapa kelemahan yang menjadi kekurangan dari metode waterfall ini, seperti kurang fleksibel, dikarenakan rincian prosesnya harus benar-benar jelas dan tidak boleh diubah-ubah. Apabila dikerjakan dengan melampaui tahap yang seharusnya maka proses desain yang sebelumnya itu akan berubah total dan memakan waktu yang banyak jika harus mengulang proses.
    Model waterfal ini sangat sesuai digunakan dalam pengembangan sistem perangkat lunak dan hardware yang luas dan apabila kebutuhan pengguna telah dimengerti dengan baik. Selain itu, juga apabila waktu yang tersedia juga masih cukup banyak.


2. Prototyping Model
     Metode ini menyajikan gambaran yang lengkap dari sistem, terdiri atas model kertas, model kerja dan program. Pihak pengembang akan melakukan identifikasi kebutuhan pemakai, menganalisa sistem dan melakukan studi kelayakan serta studi terhadap kebutuhan pemakai, meliputi model interface, teknik prosedural dan teknologi yang akan dimanfaatkan.

                                            Gambar 2. Prototyping Model
Secara ringkas, tahapan-tahapan dalam model prototyping adalah:

     Tahap Pengumpulan kebutuhan: pada tahap ini, pelanggan dan pengembang saling bantu dalam mendefinisikan format seluruh perangkat lunak, menentukan keperluan dan garis besar sistem yang akan dirancang.
-Tahap Quick design: membangun rancangan global sebagai contoh bagi user
      Tahap Pembangunan Prototipe: proses perancangan sementara yang fokusnya kepada
      penyajian kepada pelanggan, termasuk pengujian dan penyempurnaan.
-Tahap Evaluasi Pelanggan: di mana pelanggan melakukan pengujian terhadap prototipe 
      yang ada dan pengembang memperhalus analisis kebutuhan pemakai.
-Tahap Pembuatan dan Implementasi: tahap ini termasuk proses desain (rancang), 
      pengkodean dan testing.

-Keunggulan model ini adalah sifatnya yang sangat interaktif sehingga pengembang dan pengguna (pemakai) dapat terus berinteraksi selama pengerjaan tahapan-tahapan tersebut. Peran aktif pemakai ini dapat menghemat waktu dalam pengembangan sistem dan bila terdapat kesalahan atau ketidaksesuaian keinginan, pemakai dapat segera memberitahukannya sehingga pengembang dapat secepatnya melakukan penyesuaian.
-Kelemahan model ini antara lain, akibat adanya quick design, kadang pemakai tidak menyadari bahwa perangkat lunak yang ditunjukkan masih berupa blue print sehingga tidak ada jaminan terhadap kualitas secara keseluruhan dan pemeliharaan jangka panjangnya. Dari sisi pengembang, karena ingin menyegerakan selesainya proyek, sering menggunakan bahasa pemrograman yang sederhana dalam membuat prototipe tanpa memikirkan lebih lanjut program yang lebih kompleks untuk membangun sistem yang sebenarnya.
-Model Prototyping ini sangat sesuai diterapkan untuk kondisi yang beresiko tinggi di mana masalah-masalah tidak terstruktur dengan baik, terdapat fluktuasi kebutuhan pemakai yang berubah dari waktu ke waktu atau yang tidak terduga, bila interaksi dengan pemakai menjadi syarat mutlak dan waktu yang tersedia sangat terbatas sehingga butuh penyelesaian yang segera. Model ini juga dapat berjalan dengan maksimal pada situasi di mana sistem yang diharapkan adalah yang inovatif dan mutakhir sementara tahap penggunaan sistemnya relatif singkat.


3. RAD Model (Rapid Aplication Development)  
    RAD adalah proses pembangunan Perangkat Lunak yang menekankan pada siklus pengembangan yang pendek dan singkat. Model ini mengawinkan model waterfall dan model component based construction.


                                                  Gambar 3. Model RAD

Secara ringkas, tahapan-tahapan RAD adalah sebagai berikut.
-Tahap Pemodelan Bisnis: dibuat agar dapat menjawab pertanyaan-pertanyaan berikut: informasi apa yang mengontrol proses bisnis? Informasi apa yang didapat? Siapa yang mendapatkannya? Untuk siapa informasi itu ditujukan? Siapa yang akan memprosesnya?

-Tahap Pemodelan Data: informasi-informasi yang dipadu dari pemodelan bisnis dipilah-pilah ke menjadi sekumpulan objek data yang masing-masing objek diidentifikasikan dan ditentukan hubungan antara objek-objek tersebut.

-Tahap Pemodelan Proses: aliran informasi yang didapat dalam proses pemodelan data diolah sedemikian untuk dapat menopang fungsi-fungsi bisnis. Prosesnya dikreasikan untuk menambah, memodifikasi, menghapus dan atau mendapatkan kembali sebuah objek data.

-Tahap Pembuatan Aplikasi: RAD dapat saja memakai kembali komponen program yang sudah ada bila dimungkinkan, atau membuat komponen yang dapat digunakan lagi bila diperlukan di masa mendatang. RAD juga diasumsikan menggunakan teknik generasi keempat (4GT).

-Tahap Pengujian dan Pergantian: Proses RAD menekankan pada pemakaian kembali yang memungkinkan berkurangnya keseluruhan waktu pengujian, namun komponen harus diuji dan harus dilatih secara penuh dan terintegrasi.

-Kelebihan model RAD: tahap-tahap RAD membuatnya mampu untuk menggunakan kembali komponen yang ada (reusable object), karena setiap komponen software dikerjakan secara terpisah dengan tim-tim tersendiri sehingga dapat digunakan juga untuk aplikasi lain yang pada akhirnya akan menghemat waktu.  Penggunaan tim yang terpisah untuk mengerjakan pekerjaan yang berbeda membuat pekerjaan lebih cepat dalam proses integrasi dan efisien terhadap waktu tanpa mengacaukan aplikasi.

-Kelemahan model RAD: Tidak begitu cocok untuk proyek dengan skala besar karena dibutuhkan sumber daya manusia yang semakin banyak seiring dengan semakin banyaknya komponen yang dikerjakan, selain itu, semakin besar proyek, semakin kompleks pula koordinasi yang dibutuhkan.  Dalam waktu yang singkat, rasanya sulit untuk pengembang dan pemakai berkomitmen untuk melaksanakan berbagai kegiatan untuk melengkapi sistem. Apalagi bila sistem ternyata tidak dapat dimodularisasi sementara sistem mempunyai resiko teknik yang tinggi.

-RAD sangat tepat diterapkan untuk sistem yang telah jelas dan lengkap kebutuhannya, di mana terdapat komponen-komponen yang dapat dipakai kembali dalam proyek yang berskala kecil dengan waktu pengembangan perangkat lunak yang singkat.

4. Evolutionary software process model, terbagi dua.
4. A. Incremental Model
     Model ini merupakan hasil kombinasi elemen-elemen dari model waterfall yang diaplikasikan secara berulang. 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.



                                            Gambar 4. Incremental Model
-Kelebihan model ini adalah mampu mengakomodasi perubahan secara fleksibel, dengan waktu yang relatif singkat dan tidak dibutuhkan anggota/tim yang banyak untuk menjalankannya.

-Kekurangannya adalah tidak cocok untuk proyek berukuran besar (lebih dari 200.000 baris coding) dan sulit untuk memetakan kebutuhan pemakai ke dalam rencana spesifikasi tiap-tiap hasil dari increament.

-Model ini cocok dipakai untuk proyek kecil dengan anggota tim yang sedikit dan ketersediaan waktu yang terbatas.


4.B. Spiral Model/Spiral 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.




                                          Gambar 5. Model Spiral Boehm

 Tahap-tahap model ini dapat dijelaskan secara ringkas sebagai berikut.
-Tahap Liason: pada tahap ini dibangun komunikasi yang baik dengan calon pengguna/pemakai.

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

-Tahap Analisis Resiko: mendefinisikan resiko, menentukan apa saja yang menjadi resiko baik teknis maupun manajemen.

-Tahap Rekayasa (engineering): pembuatan prototipe.

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

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

-Kelebihan model ini adalah sangat mempertimbangkan resiko kemungkinan munculnya kesalahan sehingga sangat dapat diandalkan untuk pengembangan perangkat lunak skala besar. Pendekatan model ini dilakukan melalui tahapan-tahapan yang sangat baik dengan menggabungkan model waterfall ditambah dengan pengulangan-pengulangan sehingga lebih realistis untuk mencerminkan keadaan sebenarnya. Baik pengembang maupun pemakai dapat cepat mengetahui letak kekurangan dan kesalahan dari sistem karena proses-prosesnya dapat diamati dengan baik.
-Kekurangan model ini adalah waktu yang dibutuhkan untuk mengembangkan perangkat lunak cukup panjang demikian juga biaya yang besar. Selain itu, sangat tergantung kepada tenaga ahli yang dapat memperkirakan resiko. Terdapat pula kesulitan untuk mengontrol proses. Sampai saat ini, karena masih relatif baru, belum ada bukti apakah metode ini cukup handal untuk diterapkan.

Model Boehm sangat cocok diterapkan untuk pengembangan sistem dan perangkat lunak skala besar di mana pengembang dan pemakai dapat lebih mudah memahami kondisi pada setiap tahapan dan bereaksi terhadap kemungkinan terjadinya kesalahan. Selain itu, diharapkan juga waktu dan dana yang tersedia cukup memadai.


5. Component Assembly Model (CAM/Model Perakitan Komponen)
       Model ini merupakan gabungan dari berbagai sifat dan karakter dari model spiral Boehm dan sangat erat keterikatannya dengan model RAD (Rapid Application Development) model karena model CAM ini menggunakan peralatan-peralatan dan GUI (Graphic User Interface) untuk membangun software. Dengan kata lain, pembuatan aplikasinya dibuat dari paket perangkat lunak yang berisi serangkaian komponen yang telah ada sebelumnya. Namun, waktu yang dibutuhkan dapat disesuaikan atau lebih efektif ketimbang harus mengerjakan program dari awal.



                                                      Gambar 6. CAM
Tahapan-tahapan Model ini adalah:
Tahap Identifikasi calon-calon komponen (kelas objek); Tahap melihat komponen-komponen dalam pustaka; Tahap mengekstrak komponen jika ada; Tahap membangun komponen jika tidak ada; Tahap menyimpan komponen baru pada pustaka; Tahap mengkonstruksi iterasi ke-n dari sistem.

-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 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.

-ini sangat sesuai digunakan oleh perusahaan besar yang sudah berpengalaman mengembangkan software. Mereka dapat memanfaatkan software-software yang telah umum dikembangkan sebelumnya menjadi bentuk baru dari software yang ingin dikomersilkan.


6. The Concurrent Development Model
      Model ini disebut juga dengan concurrent engineering yang dapat digambarkan secara skematik sebagai serial dari kegiatan teknis utama, tugas-tugas, dan hubungan antar bagian-bagian yang saling terkait di mana aktifitas analisa seperti desain/rancangan atau komunikasi pelanggan dapat diskemakan dengan cara yang sama.



Concurrent process model cocok digunakan untuk pengembangan aplikasi client/server yang terdiri atas satu set komponen yang fungsional. Terdapat dua dimensi aktivitas yang digambarkan oleh model ini sebagai berikut.
-Dimensi sistem: terdapat tiga proses di dalamnya yakni perancangan, perakitan (assembly) dan penggunaan (use).
-Dimensi komponen: terdapat dua kegiatan utama yaitu perancangan dan realisasi.
Concurrency (pertemuan) dapat diperoleh dengan dua cara: 1) sistem dan komponen kegiatan (aktifitas) terjadi secara simultan dan dapat diperagakan dengan memanfaatkan pendekatan yang berdasar pada status sebelumnya; 2) aplikasi client/server yang bersifat unik/khas di mana dapat diterapkan pada banyak komponen yang tiap-tiap komponen bisa dirancang dan direalisasikan secara serentak.


7. Formal Method Models
     Pada model ini, digunakan notasi matematika yang terperinci dan penuh ketelitian dalam mengidentifikasi desain dan menguji sistem yang berbasis komputer. Metode ini sering dipakai untuk spesifikasi yang detail, rancangan dan verifikasi pada bagian-bagian sistem yang penting (bersifat kritikal) seperti pada sistem avionic dan aerospace, serta pada sistem keamanan yang kritikal pada monitor jantung, ATM (Anjungan Tunai Mandiri) dan pada perbankan.
Secara khusus, metode formal sangat cocok dijalankan pada sistem yang kompleks.



8. Fourth Generation Techniques/Model Teknik Generasi ke-4/4GT


                                Gambar 8. Model Teknik Generasi ke-4

     Istilah Fourth Generation Techniques (4GT) mencakup seperangkat peralatan perangkat lunak yang berfungsi sebagai perangkat bantu yang memudahkan seorang pengembang software mengaplikasi beberapa karakteristik software pada tingkat yang tinggi, yang akan menghasilkan source code dan object code secara otomatis sesuai dengan spesifikasi (persyaratan khusus) yang dibuat oleh sang pengembang perangkat lunak.
Dewasa ini, 4GT tools dipakai sebagai bahasa non prosedur untuk DataBase Query, Pembentukan laporan (Report Generation), Manipulasi data, Definisi dan interaksi layar (screen), Pembentukan object dan source (Object and source generation ), Kemampuan grafik yang tinggi, dan Kemampuan spreadsheet.

Tahapan-tahapan model 4GT dapat diringkas sebagai berikut.
-Tahap Pengumpulan Kebutuhan: tahap ini dimulai dengan mengumpulkan serangkaian kebutuhan yang nantinya akan diterjemahkan ke dalam prototipe. Namun, apabila pelanggan tidak yakin dengan apa yang diperlukan dan fakta-fakta tidak jelas diketahui maka prototipe tidak dapat dikerjakan oleh peralatan 4GT.

-Merancang Strategi: tahap ini dibutuhkan untuk proyek besar yakni dengan menterjemahkan kebutuhan menjadi prototipe operasional  agar tidak timbul masalah yang sama jika dibuat dengan model konvensional. Namun, untuk proyek skala kecil tahap ini dapat dihilangkan dengan  langsung melakukan implementasi dengan menggunakan bahasa generasi keempat (4GT).

-Tahap Implementasi Menggunakan Bahasa Keempat: untuk skala kecil tahap ini dapat langsung dilakukan ketika kebutuhan telah jelas, dan untuk proyek besar tahapan ini dijalankan setelah dirancang prototipe operasional. Implementasi yang menggunakan 4GT memudahkan pengembang software untuk menjelaskan hasil yang diharapkan yang nantinya akan diterjemahkan ke dalam bentuk kode sumber dan kode objek.

-Tahap Produksi: Tahap ini merupakan langkah terakhir yakni mengubah implementasi  4GT ke dalam hasil akhir berupa produk.

-Kelebihan model ini adalah pengurangan waktu dan peningkatan produktivitas yang besar.

-Kekurangan model ini adalah kemungkinan akan sulit memanfaatkan alat bantu/peralatan/tools 4GT dibandingkan dengan menggunakan bahasa pemrograman yang konvensional, selain itu terdapat juga masalah dalam hal kode sumber yang tidak efisien. Di samping itu, pemeliharaan sistem software besar yang dikembangkan oleh 4GT juga masih sedang dalam proses pengkajian.

-Model ini diaplikasikan untuk mengembangkan perangkat lunak yang memakai bentuk bahasa khusus atau notasi grafik yang dieksekusi/diselesaikan dengan syarat atau ketentuan yang dipahami oleh pemakai/pengguna/kustomer.

No. 2 

    Andaikan Saya terpilih menjadi seorang manajer proyek pada sebuah perusahaan kecil yang memproduksi perangkat lunak di mana tugas saya adalah membangun sebuah aplikasi yang sangat mirip dengan aplikasi lain yang sudah dibangun sebelumnya, meskipun yang satu ini lebih besar dan kompleks, sementara syarat-syarat sudah didokumentasikan dengan teliti oleh pemakai.
    Maka, struktur yang akan saya pilih adalah struktur table karena fleksibelitas rancangan struktur table ini yang dapat menjelaskan dengan baik hubungan antar elemen/komponen yang dijelaskan, hal tersebut memudahkan pengembang untuk menggunakannya.
    Dan, model proses yang akan saya terapkan adalah RAD model (Rapid Aplication Development),mengingat dalam tahapan RAD dapat digunakan kembali dokumentasi dari pemakai yang sebelumnya telah ada. Dalam RAD ini terdapat tahapan di mana pengembang harus mengetes atau menguji coba program,karena program terdahulunya masih dapat dipakai, pengembang cukup melakukan testing terhadap program-program dan komponen-komponen baru saja sehingga dapat menghemat waktu. Oleh karena produksinya dilakukan oleh perusahaan kecil dengan estimasi proyek berskala kecil dan tenaga manusianya (dalam bentuk) tim dapat dipenuhi maka RAD sangat memungkinkan untuk diterapkan demi efisiensi waktu dan kerja.


No. 3

      Andaikan saya terpilih menjadi seorang manajer proyek pada sebuah perusahaan besar yang memproduksi perangkat lunak, di mana tugas saya adalah mengatur perkembangan versi generasi selanjutnya dari perangkat lunak pengolah kata produk yang sudah dipakai sangat luas, sementara itu, kondisinya adalah kompetisi dan batas waktu yang ketat sudah dibangun dan ditetapkan.
      Maka, struktur yang akan saya pilih adalah struktur chart karena dapat menjelaskan hubungan antar elemen/komponen dengan sangat baik, selain itu, interface yang menghubungkan komponen-komponen dapat dengan mudah ditentukan seperti halnya dapat ditetapkannya wujud dan penempatan komponen dalam tempat penyimpanan sekunder secara fisik.
      Dan, model proses yang akan saya terapkan adalah Component Assembly Model (CAM/Model Perakitan Komponen) karena saya dapat menggunakan kembali program-program dan peralatan-peralatan software yang sudah ada sebelumnya untuk dikembangkan menjadi generasi berikutnya. Oleh karena ini adalah perusahaan besar yang tentunya telah berpengalaman dengan software serupa, maka tools dan program yang akan digunakan untuk CAM sudah kompatibel sehingga dapat mempersingkat waktu.


Sekian postingan mengenai model pengembangan sofware, semoga bermanfaat :D
Terimakasih

Wassalamualaikum Wr. Wb