Rabu, 07 Desember 2011

RUANG LINGKUP PERANGKAT LUNAK


Sebagai aktivitas pertama dalam perencanaan proyek perangkat lunak, yang mana menggambarkan :
• Data dan Kontrol yang diproses
• Fungsi,
• Kinerja,
• Batasan.
Mendefinisikan dan mengontrol apa yang termasuk dan tidak termasuk pada proyek.

Senin, 17 Oktober 2011

Manajemen Proyek Perangkat Lunak


MPPL sendiri berarti Manajemen Proyek Perangkat Lunak yang sudah pasti ada hubungannya dengan pengelolaan sebuah proyek dimana kita harus mengelola, mengatur dan menganalisa dan mempelajari lebih jauh tentang sebuah proyek yang mungkin sedang kita kembangkan.

menurut saya definisi MPPL adalah sebuah proses pembelajaran dimana kita harus melakukan suatu pekerjaan untuk mencapai tujuan bersama dengan menggunakan beberapa fungsi yaitu perencanaan
( Planning ), pengorganisasian ( Organizing ), penyusunan ( Directing ), pengarahan ( Controlling ), dan pengawasan ( Reporting ) sesuai dengan sumber daya yang kita miliki.

MPPL juga digunakan untuk suatu kegiatan mengkoordinasikan segala sesuatu dengan menggunakan perpaduan sumber daya manusia, teknik, administratif, keuangan untuk mencapai tujuan yang jelas dalam periode waktu tertentu.

Tujuan adanya MPPL ini adalah untuk mempelajari penggunaan sumber daya dalam pengerjaan sesuatu agar dapat tercapai, dan juga mengatur waktu penyelesaiannya.
MPPL merupakan bagian yang penting dalam pembangunan perangkat lunak, dan juga mampu menentukan apakah proyek akan berjalan dengan baik sehingga menghasilkan produk yang baik juga. Hal ini berkaitan dengan manajemen yang mengelola serta mengkoordinasikan tim, prosesnya, dan pengukuran proyek termasuk menentukan harga dari perangkat lunak dan sebagainya.

Sebuah manajemen proyek memiliki karakteristik yaitu :
-          Mempunyai tujuan yang jelas untuk menuju suatu perubahan.
-          Pada kegiatannya sebuah proyek pengerjaannya dibatasi oleh waktu, biaya, dan kualitasnya.
-          Biasanya sebuah proyek tidak akan berulang-ulang dikerjakan, melainkan harus mengerjakan proyek yang baru.
-          Dalam sebuah proyek harus memilkik struktur organisasi agar dalam pengerjaannya sesuai dengan apa yang kita inginkan dan sesuai dengan struktur yang dibangun.

Untuk mengerjakan suatu proyek kita harus membentuk struktur organisasi tim yang akan memudahkan pekerjaan dan membagi pekerjaan kepada anggota tim sesuai dengan kemampuan anggota tim.
Dibentuk sebuah tim untuk melakukan pekerjaan proyek dari awal samapai akhir pengerjaan proyek tersebut, fungsi dari anggota tim ini untuk mendefinisikan produk, merancang produk, menimplementasikan, melakukan uji coba, melakukan review, dan mempersiapkan dokumen-dokumen pendukung. Sebagian anggota tim melakukan instalasi dan pemeliharaan untuk melanjutkan bila ada proyek baru yang akan dikerjakan.

Menurut pengalaman yang saya lihat biasanya bila sebuah kelompok tim yang seluruh anggotanya bekerja secara maksimal maka tim tersebut akan mendapat hasil yang maksimal juga sesuai dengan apa yang diharapkan. Proyek bisa berjalan lancar, pengerjaan proyek bisa selesai tepat waktu, dan seluruh anggota tim merasakan hasil yang cukup memuaskan.

Adapun sebaliknya bila sebagai kesatuan tim tidak bisa bekerja secara maksimal maka hasilnya pun tidak akan maksimal, sehingga proyek yang semula direncanakan akan selesai tepat waktu akan mengalami pengunduran waktu dan akan membutuhkan waktu yang lama kembali untuk menyelesaikan proyek tersebut sehingga proyek yang dikerjakan pun akan semakin tidak jelas keadaannya. Sudah pasti tentu akan terjadi ketidakpuasan pada anggota tim. Maka dari itu dalam pengerjaan suatu proyek dibutuhkan tim yang solid, itulah kegunaan dari struktur organisasi dalam pengerjaan proyek agar mendapatkan hasil pengejaan yang maksimal.

Perencanaan struktur organisasi
Untuk melakukan pelaksanaan sebuah proyek dibentuk tim yang akan melaksanakan pekerjaan proyek pada setiap tahapannya, anggota tim ini dapat juga dirotasi bila ada anggota tim yang merasakan kesulitan pada tahapan pengerjaannya.

Berikut adalah tugas-tugas yang terbagi dari penyusunan struktur organisasi :
- Project Manager mempunyai tanggung jawab dan tugas yang bermacam-macam, tidak hanya terfokus pada hal-hal yg teknis sifatnya. Bagaimana layaknya seorang project manager harus mempunyai kemampuan membuat tim proyek agar tetap solid, mampu memonitor dan mengontrol budget serta mempunyai kemampuan analisis resiko yang baik.
- System Analys bertugas untuk mengembangkan definisi sistem dan planning project.
- Designer bertugas merancang produk yang sesuai dengan project yang sedang dikerjakan.
- Programmer bertugas untuk membuat program-program yang sesuai dengan project timnya, yang nantinya program ini akan berpengaruh terhadap pengerjaan project tersebut.
- Tester atau Penguji bertugas untuk melakukan uji per unit sistem apakah program yang dijalankan sesuai dengan apa yang diharapkan.


RUANG LINGKUP PROJECT MANAJEMEN
Agar proyek tidak overlap dan dapat dimengerti oleh anggota tim
- Kualitas Produk
- Ketidakpastian
- Resiko yang mungkin ada
- Estimasi Biaya
- Penjadwalan Project
- Komunikasi Pelanggan
- Staff
- Pengawasan Project
- Ukuran dari kemampuan memori
- Jumlah pemakai

Manajemen Proyek Software Engineering


Konsep Manajemen Proyek

Manajemen proyek merupakan payung dari keseluruhan kegiatan proyek. Fokus manajemen proyek yang efektif adalah terhadap People, Problem dan Proses (3P). Dari ketiga factor tersebut yang utama adalah factor People.
Dalam manajemen proyek, seorang manager proyek harus memiliki kemampuan :
• Dapat memberikan motivasi
• Mengelola organisasi
• Mendorong orang lain untuk mengemukakan gagasan dan inovasi
Terdapat 3 organisasi tim yang diusulkan Mantei (Man81), dalam manajemen proyek, yaitu :
• Demokratis terdesentralisasi (DD)
• Terkontrol terdesentralisasi (CD)
• Terkontrol tersentralisasi (CC)
Organisasi DD baik untuk masalah-masalah yang sulit, sedangkan organisasi CD dan CC baik untuk masalah yang sederhana. Biasanya proyek PL memiliki kesulitan dalam hal koordinasi dan komunikasi

Pengukuran perangkat lunak
Pengukuran perangkat lunak digunakan untuk membantu memperkirakan kualitas produk kerja teknis serta membantu mengambil keputusan taktis pada saat proyek sudah berjalan. Indikator proyek memungkinkan manajemen proyek untuk :
1. Memperkirakan status proyek yang sedang berjalan
2. Menelusuri resiko-resiko potensial
3. Menemukan area masalah sebelum masalah menjadi makin luas
4. Menyesuaikan aliran kerja
5. Mengevaluasi kemampuan tim proyek untuk mengontrol kualitas hasil kerja
Metrik proses perangkat luak digunakan untuk tujuan strategis
Pengukuran proyek perangkat lunak bersifat taktis.
Tujuan metric proyek :
• Untuk meminimalkan jadwal pengembangan dengan melakukan penyesuaian untuk menghindari penundaan dan mengurangi masalah dan resiko potensial.
• Untuk memperkirakan kualitas produk pada basis yang berlaku dan jika dibutuhkan memodifikasi pendekatan teknis untuk meningkatkan kualitas
Model lain dari metric proyek (Het93) bahwa tiap proyek seharusnya mengukur :
• Input (SDM dan lingkungan)
• Output (kemampuan penyampaian)
• Hasil (efektifitas kemampuan penyampaian)

Metode pengukuran perangkat lunak :
1. Metric size oriented
2. Metric function oriented
3. Metric function oriented yang diperluas

Perencanaan Proyek Perangkat Lunak
• Planning merupakan awal dari sebuah proses manajemen proyek, yang didalamnya terdapat estimasi-estimasi.
• Estimasi yang dilakukan diantaranya terhadap sumber daya , biaya dan jadwal. Estimasi membawa resiko yang inheren yang membawa ke ketidakpastian. Sehingga dalam planning harus memperhatikan : Lama proyek, berapa usaha yang diperlukan, berapa banyak orang yang terlibat, prediksi hardware software dan resiko yang harus dihadapi.
• Kompleksitas proyek sangat berpengaruh terhadap ketidakpastian yang inheren.
• Ukuran proyek merupakan factor penting yang mempengaruhi akurasi estimasi tingkat ketidakpastian structural.
• Tujuan perencanaan : menyediakan sebuah rencana kerja yang memungkinkan manajer membuat estimasi yang dapat dipertanggungjawabkan mengenai sumberdaya, biaya & jadwal. Ruanglingkup perangkat lunak menggambarkan fungsi, kinerjam batasan, interface dan reliabilitas.
• Dalam pelaksanaan proyek, harus dilakukan estimasi yang benar-benar mendekati real. Estimasi yang cukup baik adalah estimasi dengan melihat pelaksanaan proyek sebelumnya. Namun ini pun tidak menjamin estimasi menjadi baik. Karena itu estimasi dapat dilaukan dengan penggabungan antara model dekomposisi, empiris dan historis.

Manajemen Resiko
• Resiko merupakan sesuatu yang pasti ada dalam segala hal termasi dalam proyek perangkat lunak.
• Dalam pelaksanaan proyek, pada tahap awal perlu dilakukan terlebih dahulu analisis resiko. Dengan dilakukannya analisis sebelumnya, ketika resiko itu benar-benar terjadi maka manajemen diharapkan dapat memanaj resiko tersebut agar resiko tersebut menjadi keuntungan, minimal resiko tersebut tidak mengganggu aktifitas ataupun kualitas proyek.
Terdapat 2 karakteristik resiko :
• Ketidakpastian
• Rugi
Kategori resiko :
• Resiko proyek, mengancam rencana proyek
• Resiko teknis, mengancam kualitas dan ketepatan waktu
• Resiko bisnis, mengancam viabilitas PL yang akan dibangun.
Kategori resiko lainnya oleh Charette(Char89) :
• Resiko yang sudah diketahui
• Resiko yang dapat diramalkan
• Resiko yang tidak diharapkan
Jenis-jenis resiko :
1. Resiko ukuran produk
2. Resiko yang mempengaruhi bisnis
3. Resiko yang dihubungkan dengan pelanggan
4. Resiko proses
5. Resiko teknologi
6. Resiko lingkungan pengembangan
7. Resiko yang berhubungan dengan resiko staf dan pengalaman

Penjadwalan Proyek
Dari uraian sebelumnya, penjadwalan merupakan puncak dari aktivitas perencanaan. Penjadwalan merupakan pemetaan dan guide bagi manajer proyek dan akan lebih bernilai jika digabungkan dengan estimasi dan analisis resiko.
Penjadwalan dimulai dengan dekomposisi proyek. Karakteristik proyek digunakan untuk adaptasi sekumpulan tugas yang tepat untuk kerja yang dilakukan. Schedule kerja menunjukan urutan pekerjaan, ketergantungan tiap pekerjaan dan kegiatan lain, sumber daya, waktu, estimasi biaya. Dan dapat pula menetukan jalur kritis proyek, time line.

Jaminan Kualitas Perangkat Lunak
Dalam pembangunan dan pengembangan perangkat lunak, jaminan kualitas harus dilakukan, karena merupakan aktifitas pelindung pada setiap bagian proses perangkat lunak. Kualitas perangkat lunak kompleks, kualitas perangkat lunak mencakup banyak factor produk dan proses yang berbeda.
Salah satu aktifitas SQA adalah kajian perangkat lunak. Jaminan kualitas perangkat lunak harus dilakukan secara tepat. Data proses nya dikumpulkan dan evaluasi serta disebarkan. Dan untuk memperluas pengukuran digunakan model reliabilitas. Dan SQA statistic dapat membantu meningkatkan kualitas produk. Jaminan kualitas perangkat lunak adalah pemetaan aturan managerial serta disiplin desain jaminan kualitas perangkat lunak dalam ruang tknologi dan manajerial aplicabel. Denagan penerapan pemetaan ini maka akan dihasilkan RPL yang baik.

Manajemen Konfigurasi Perangkat Lunak
Merupakan aktifitas pelindung yang diterapkan pada keseelururhan proses perangkat lunak. Aktifitas nya dapat dikembangkan untuk :
1. Mengidentifikasi perubahan
2. Mengontrol perubahan
3. Memastikan bahwa peruahan telah diimplementasi secara tepat
4. Melaporkan perubahankepada pihak-pihak yang tertarik.
Manajemen konfigurasi PL ini merupakan serangkaian penelusuran dan aktifitas control yang dimulai pada saat suatu proyek perangkat lunak dimulai dan berhenti hanya bila perangkat lunak tidak dioperasikan. Manajemen konfigurasi PL merupakan elemen penting dari jaminan kualitas perangkat lunak.


Minggu, 16 Oktober 2011

Membuat Software Requirement

Dalam IEEE Standard Glossary of Software Engineering Technology (IEEE Std
610.12-1990) [IEEE] requirement dapat diartikan sebagai berikut.
1. Suatu kondisi atau kemampuan yang diperlukan oleh user untuk memecahkan  masalah atau mencapai tujuan
2. Suatu kondisi atau kemampuan yang harus dipenuhi atau dimiliki oleh sistem  atau komponen sistem untuk memenuhi kontrak, standard, spesifikasi atau  dokumen formal lain
3. Gambaran yang terdokumentasi dari kondisi atau kemampuan yang disebut  pada kondisi 1 dan 2 diatas  Menurut sommerville [SOMM]  requirement adalah spesifikasi dari apa yang harus  diimplementasikan, deskripsi bagaimana sistem harusnya berkerja atau bagian-bagian  yang ada didalam sistem, bisa juga dijadikan batasan dalam proses pengembangan  sistem.

Ada beberapa macam requirement menurut sommerville [SOMM]yaitu:
a.        User Requirement (kebutuhan pengguna)
Pernyataan tentang layanan yang disediakan sistem dan tentang  batasan-batasan  perasionalnya. Pernyataan ini dapat dilengkapi dengan
gambar/diagram yang dapat dimengerti dengan mudah.
b.       System requirement (kebutuhan system)
Sekumpulan layanan/kemampuan sistem dan batasan-batasannya yang ditulis  secara detil. System requirement document sering disebut functional specification (spesifikasi fungsional), harus menjelaskan dengan tepat dan
detil. Ini bisa berlaku sebagai kontrak antara klien dan pembangun.
c.        Software design specification ( spesifikasi rancangan perangkat lunak)
Gambaran abstrak dari rancangan software yang menjadi dasar bagi
perancangan dan implementasi yang lebih detil.
Disitus Wikipedia [WIKI] menjelaskan bahwa  requirement khususnya dalam  engineering mempunyai arti a singular documented need of what a particular product  or service should be or do.  Istilah tersebut sering digunakan dalam bidang  system  engineering dan software enginnering. Fase dalam pengembangan requirement dapat  dipecah-pecah menjadi : requirements  elicitation (mengumpulkan kebutuhan  stakeholders), analysis (memeriksa konsistensi dan keterlengkapan), specification
(mendokumentasikan  requirements) and verification (memastikan bahwa  requirements yang telah dispesifikasikan benar)

Secara umum, requirement dibagi menjadi 2 yaitu
• Functional requirement : menjelaskan tentang fungsional dari sistem
• Non-Functional requirement  : yang berperan untuk member batasan pada  solusi atau biasa disebut quality requirement.

Requirement adalah pernyataan yang menidentifikasikan kebutuhan yang penting  dalam sistem dan didalamnya mencakup aspek kebenaran, Realistis, Dibutuhkan, tidak  ambigu, dan terukur. Langkah yang paling penting dalam proses  requirement  adalah  komunikasi yang akurat antara user yang memerlukan sistem dengan pembuat sistem.
Banyak orang sering salah dalam mendefinisikan requirement untuk sistem  yang  mereka bangun, kerena mereka kurang mendapat  pelatihan dan pengalaman  dalam membuat requirement. Bahkan di bangku kuliah yang mengajarkan mata kuliah  system engineering  hanya mengajarkan pengenalan untuk materi menulis  requirement.
Aspek yang penting dari sistem engineering adalah merubah kebutuhan user menjadi  jelas, ringkas, dan dapat diverifikasi.
Requirement yang baik menyatakan sesuatu yang  dibutuhkan, dapat diverifikasi,  memungkinkan, dan Jelas.
Terdapat beberapa masalah yang sering ditemui dalam membuat requirement,  diantaranya adalah : membuat asumsi yang buruk, menulis implementasi (HOW)  daripada requirement (WHAT), menjelaskan operasional daripada kebutuhan, mengunakan istilah yang salah, mengunakan bahasa yang kurang tepat, requirement tidak lengkap, dan menspesifikasikan requirement secara berlebihan.
Asusmsi yang buruk terjadi karena pembuat requirement tidak mempunyai akses yang cukup terhadap informasi yang dibutuhkan. Hal ini bisa dikurangi dengan cara mendokumentasikan informasi yang kritis seperti  kebutuhan, tujuan, batasan, misi dan lain-lain. Selain itu semua asumsi juga harus didokumentasikan sehingga ketika direview asumsi bisa diperbaiki jika tidak sesuai.
Spesifikasi requirement harus  menyatakan Apa yang  dibutuhkan (WHAT), bukan bagaimana hal tersebut di sediakan (WHY). Caranya dengan mentanyakan mengapa (WHY) anda membutuhkan requirement tersebut. Requirement biasanya ditulis dalam format (contoh dalam bahasa inggris)
• The System shall provide ……..
• The System shall be capable of ……..
• The System shall weigh ……..
• The Subsystem #1 shall provide ……..