Minggu, 14 Juni 2009

Team Software Process Methode

I.LATAR BELAKANG

Langkah penting dalam peningkatan proses perangkat lunak adalah pengenalan tentang Team Software Process (TSP). TSP menyediakan suatu konteks yang teratur untuk merancang dan membangun suatu sistem.
Dikembangkan oleh Watt Humphrey pada tahun 1996, sasarannya adalah menyediakan suatu proses operasional dalam membantu para engineering dalam melakukan pekerjaan yang berkwalitas. Awalnya TSP dirancang sangat sederhana, dimana di buat dalam 2 tim yang kemudian dilihat hasilnya apakah berjalan lancar atau tidak. Tim diidentifikasi lebih lanjut untuk melakukan perbaikan dari sistem yang telah diciptakan sebelumnya.
Dalam 3 tahun yang akan datang Humphrey mengembangkan 9 – lebih versi TSP. Sasaran awalnya adalah jika ada general-purpose team bisa membantu engineering team dalam melakukan pekerjaan mereka. TSP merupakan dasar sasaran untuk proses pengembangan usaha yang diarahkan ke arah penyederhanaan proses tersebut, mengurangi ukurannya dan menyediakan dukungan dan bimbingan yang diperlukan untuk melakukan hal berguna san efisien.
Beberapa team sudah menggunakan TSP dan beberapa metoda telah dikembangkan untuk membantu engineering dan manajer dalam membentuk tim. Selain itu juga dapat membantu engineering untuk merencanakan, merekam data,analisa data dan beberapa aktivitas proyek.

II. Strategi TSP

• Digunakan untuk merumuskan permasalahan secara sederhana
• Dikembangkan dalam beberapa siklus
• Menentukan ukuran standart untuk kualitas dan performance
• Menyediakan batasan yang terperinci
• Gunakan aturan dan peran dari evaluasi setiap siklus
• Diperlukan displin proses
• Diberikan bimbingan pada setiap masalah yang muncul

III.Proses

Elemen yang paling prinsip dalam TSP dapat dilihat dalam gambar dibawah. Sebelum seseorang bergabung dalam suatu TSP, mereka harus mengerti bagaimana mendisiplinkan pekerjaan.
Pelatihan PSP bertujuan untuk menghasilkan engineer dengan pengetahuan dan keterampilan untuk menggunakan TSP. PSP meliputi pengetahuan tentang bagaimana membuat details plan, pengumpulan dan penggunaan suatu proses data, mengembangkan value plant yang didapatkan, menggunakan value plant yang didapatkan untuk menentukan proses dari suatu plan, mengukur dan mengatur mutu produk dan menjelaskan proses operasional penggunaan. Engineering harus dilatih sebelum masuk dalam suatu TSP.



Gambar TSP Team Building

Dalam membangun sebuah sistem dibutuhkan team yang terdiri dari beberapa orang yang dapat bekerja sama untuk memenuhi dan menyelesaikan sebuah tugas dengan maksimal. TSP menuntut pembentukan team untuk suatu proses perencanaan dalam peluncuran sebuah sistem. Dalam peluncuran suatu proses semua anggota team dapat mengembangkan strategi, proses dan rencana untuk kesuksesan proyek yang mereka jalankan.

Peluncuran pertama dilakukan dengan memenuhi permintaan pelanggan, tapi evaluasi tetap dilakukan dengan tujuan agar sistem yang diciptakan atau dibuat dapat digunakan secara maksimal. Pengembangan sistem selanjutnya dilakukan setelah mendapat evaluasi dari peluncuran pertama. Dibutuhkan waktu beberapa bulan untuk meluncurkan sistem yang telah direvisi karena anggota team akan melakukan pengembangan sesuai dengan hasil revisi.


Gambar TSP Process Flow

Gambar TSP Process Flow(2)

1. Launch
• Hasilnya berupa hasil tinjauan
• Menguraikan isi dan struktur TSP
• Menugaskan anggota tim sesuai dengan perannya
• Menguraikan kebutuhan pelanggan
• Menetapkan Tim dan individu goals

2. Strategy
• Menciptakan suatu desain konseptual produk
• Menentukan strategi pengembangan
• Memutuskan apa yang akan dikerjakan pada setiap siklus
• Ukuran awal buatan dan perkiraan usaha
• Menetapkan suatu bentuk rencana manajemen
• Reuse plan
• Manajemen Resiko


3. Plan
• Memperkirakan ukuran dari setiap proses
• Mengidentifikasi tugas yang dilakukan
• Memperkirakan waktu mulai dan akhir proses
• Menentukan tugas masing-masing tim
• Membuat suatu jadwal mingguan untuk penyelesaian tugas
• Membuat suatu quality plan

4. Requirements
• Menganalisa kebutuhan dari hasil interview customer
• Menetapkan kebutuhan customer
• Memeriksa kebutuhan customer
• Mengembangkan suatu rencana test sistem

5. Design
• Menciptakan suatu high level design
• Menetapkan desain
• Memeriksa desain
• Mengembangkan suatu rencana tes integrasi desain

6. Implementasi
• Menggunakan PSP untuk menerapkan modules/units
• Membuat perancangan modules/units secara terperinci
• Meninjau ulang disain
• Menterjemahkan disain ke dalam suatu kode
• Meninjau ulang kode
• Menyusun dan menguji modules/units
• Meneliti mutu dan kualitas modules/units

7. Test
• Membangun dan mengintegrasikan sistem
• Melakukan suatu test sistem
• Dokumentasi setiap proses yang dihasilkan

8. Postmortem
• Melakukan suatu postmortem analisa
• Membuat laporan siklus
• Mengeluarkan hasil dan evaluasi Tim

Seluruh anggota team mengambil bagian dari setiap proses TSP dimana setiap anggota team bekerja sesuai dengan bagian masing-masing. Proses lauching yang dilakukan akan dicatat sesuai dengan kegiatan yang dilakukan, dimana gambarnya dapat dilihat pada gambar dibawah ini. Catatan yang dibuat akan menjadi bahan evaluasi untuk bahan perbaikan launching berikutnya.

IV. STUDI KASUS APLIKASI RENTAL CD
4.1 Deskripsi Umum Perangkat Lunak
Perangkat lunak ini dibuat dengan tujuan untuk mempermudah operator rental CD dalam mendata CD yang ada serta mendata para pelanggan rental CD.

4.2 Fungsi - fungsi perangkat lunak
1. Login setiap operator
2. Mencatat data CD dan mengatur data CD
3. Mencatat data pelanggan
4. Mencari data CD atau pelanggan
5. Menghitung persediaan CD
6. Menghitung biaya peminjaman serta dendanya.

4.3 USE CASE


4.4 Penerapan Metoda Team Software Process

1. Proyek dan Sasaran
Menentukan para anggota team pengembang dan pengguna Software Rental CD.
Team : Arsitek/perancang sistem
Pengguna : Operator rental CD
Kebutuhan sistem yang diinginkan oleh rental CD :
• Operator akan login dengan masing-masing usernamenya.
• Operator mencatat data CD dan mengatur data CD.
• Mencatat data pelanggan.
• Mencari data CD dan data pelanggan.
• Menghitung persediaan CD
• Menghitung biaya peminjaman serta dendanya.

2. Peran dan tujuan team
• Team Analisa : mencari informasi selengkap-lengkapnya pada pelanggan.
• Team Perancang : merancang system yang akan dibuat.
• Team Programmer : terdiri dari beberapa team yang dibagi menurut modul-modul perangkat lunak yang akan dibuat.
Modul Pendataan CD, Modul Pendataaan Pelanggan, Modul Peminjaman CD dan Modul Pencarian Data.
• Team Testing : tester atau team yang mencoba sistem yang telah dikerjakan team perancang. Selain itu team ini akan meluncurkan pada pemilik rental CD.

Tujuan team : Memaksimalkan kebutuhan pelanggan untuk memberikan kesempurnaan sistem yang diinginkan.

3. Strategi proyek dan pendukungnya.
• Produk yang dihasilkan yaitu suatu sistem untuk membantu dalam mengatur dan mendata data CD dan pelanggannya.
• Penentuan produk dan strategi.


4. Seluruh Plan.
• Memperkirakan ukuran proyek dan keseluruhan rencana.


5. Quality Plan
• Mengembangkan quality plan dari setiap proses pada setiap modulnya.


6. Balanced Plan.
• Alokasi pekerjaan oleh anggota team.
• Fase yang seimbang untuk setiap team dan anggota team.

7. Analisa Resiko Proyek.


8. Peluncuran.
• Siapkan laporan peluncuran kepada manajemen.

9. Tinjauan ulang Manajemen.
• Meninjau kembali aktivitas peluncuran Software Rental CD dan perencanaan proyek kepada manajemen Rental tersebut.
• Mendiskusikan kembali resiko proyek Software ini, tanggung-jawab, dan rencana kegiatan yang telah dilaksanakan.

10. Peluncuran Postmortem.
• Meneliti kembali dari awal persiapan laporan mingguan.
• Menyusun data peluncuran dan membuat suatu laporan peluncuran.
• Masukkan hasil laporan kedalam buku catatan proyek.

V. TESTING BLACKBOX
Testing yang saya lakukan tidak pada semua menu. Saya melakukan testing pada menu pencarian data. Data yang bisa di cari yaitu data CD atau pelanggan.

1. Use Case Login


2. Use Case pendataan CD

3. Use Case Entry data CD

4. Use Case Rubah Data CD

5. Use Case Pencarian CD

VI. VALIDASI
Validasi dilakukan oleh pihak team untuk memberikan laporan kepada pihak customer agar sistem yang dikerjakan telah sesuai dan berjalan dengan baik. Proses validasi dilakukan setelah terjadi proses testing sebelumnya.




IX. PENGGUNA TSP

• Teradyne dengan software LOC program
• Hill Air Force Base dengan software Capability Maturity Model Integration (CMMISM) Level 5
• Boeing , penjadwalan dan penguji waktu


Senin, 06 April 2009

Rekayasa Perangkat Lunak - SMARTPARKING



SMARTPARKING



I. Deskripsi Umum Perangkat Lunak
Perangkat lunak ini disebut dengan SmartParking. SmartParking dibuat untuk membantu mengelola secara rapi dan teratur mekanisme perparkiran antara kendaran yang akan parkir dan keluar. Kendaraan yang masuk akan dicatat plat nomor kendaraannya dan waktu masuk parkir oleh operator, karena sistem ini tidak menyadiakan fasilitas untuk menangkap angka dari plat nomor. Selain itu pada saat kendaraan keluar, operator harus mencocokkan plat nomor kendaraan dan waktu keluar sehingga dapat dihitung biaya yang harus dikeluarkan.

II. Fungsi - fungsi perangkat lunak
1. Login setiap operator
2. Mencatat plat nomor kendaraan
3. Mencatat waktu masuk kendaraan
4. Mencari plat nomor kendaraan yang telah terdaftar
5. Menghitung waktu parkir
6. Menghitung biaya

III. USE CASE

UseCase Smart Parking

Penjabaran Form Login

Penjabaran Form Pencatatan Kendaraan Masuk

Penjabaran Form Pencatatan Kendaraan Keluar

IV. Metoda Team Software Process
1. Proyek dan Sasaran
Menentukan para anggota team pengembang dan pengguna SmartParking.
Team : Arsitek/perancang sistem
Pengguna : Manajemen Mall dan operator sistem pada tempat parkir mall
Kebutuhan sistem yang diinginkan oleh mall :
• Operator akan login dengan masing-masing usernamenya.
• Operator mencatat nomor kendaraan yang masuk.
• Mencatat nomor plat nomor polisi mobil.
• Mencatat waktu pada saat masuk parkir.
• Operator mencocokkan plat nomor kendaraan dengan karcis pada saat masuk.
• Operator mencatat waktu keluar untuk menghitung biaya yang dikeluarkan.
• Ada tambahan biaya apabila menggunakan jasa vallet parking.

2. Peran dan tujuan team
• Team analisa : mencari informasi selengkap-lengkapnya pada pelanggan.
• Team perancang : perancang sekaligus pembuat sistem.
• Team testing dan launching : tester atau team yang mencoba sistem yang telah dikerjakan team perancang. Selain itu team ini akan meluncurkan pada pelanggan.

Tujuan team : Memaksimalkan kebutuhan pelanggan untuk memberikan kesempurnaan sistem yang diinginkan.

3. Strategi proyek dan pendukungnya.
• Produk yang dihasilkan yaitu suatu sistem untuk membantu dalam penentuan harga parkir dalam suatu mall.
• Penentuan produk dan strategi.



4. Seluruh Plan.
• Memperkirakan ukuran proyek dan keseluruhan rencana.


5. Quality Plan
• Mengembangkan quality plan.

6. Balanced Plan.
• Alokasi pekerjaan oleh anggota team.
• Fase yang seimbang untuk setiap team dan anggota team.

7. Analisa Resiko Proyek.



8. Peluncuran.
• Siapkan laporan peluncuran kepada manajemen.


9. Tinjauan ulang Manajemen.
• Meninjau kembali aktivitas peluncuran SmartParking dan perencanaan proyek kepada manajemen Mall.
• Mendiskusikan kembali resiko proyek SmartParking, tanggung-jawab, dan rencana kegiatan yang telah dilaksanakan.

10. Peluncuran Postmortem.
• Meneliti kembali dari awal persiapan laporan mingguan.
• Menyusun data peluncuran dan membuat suatu laporan peluncuran.
• Masukkan hasil laporan kedalam buku catatan proyek.


Sabtu, 28 Maret 2009

Requirement Analysis

1) Proyek dan Sasaran 

Peluncuran Team untuk meeting 1.
• Meninjau ulang proses peluncuran dan memperkenalkan anggota team.
• Diskusikan keinginan yang dicapai pada proyek dan manajemennya serta memberikan pertanyaan.

2) Peran dan tujuan team
Peluncuran Team untuk meeting 2.
• Memilih peranan setiap team dan peran cadangannya.
• Menetapkan dan menegaskan tujuan team.

3) Strategi proyek dan pendukungnya.
Peluncuran Team untuk meeting 3.
• Hasilkan suatu sistem disain konseptual dan menentukan daftar perbaikan (jika diperlukan).
• Menentukan produk dan strategi pengembangan yang dihasilkan.
• Menetapkan proses yang digunakan dalam pengembangannya.
• Hasilkan proses dan rencana pendukung.

 
4) Seluruh Plan.
Peluncuran Team untuk meeting 4.
• Memperkirakan ukuran proyek dan keseluruhan rencana.

 


 
5) Quality Plan
Peluncuran Team untuk meeting 5.
• Mengembangkan quality plan.

 


6) Balanced Plan.
Peluncuran Team untuk meeting 6.
• Alokasi pekerjaan oleh anggota team.
• Dari bawah ke atas tiap fase direncanakan untuk setiap anggota.
• Fase yang seimbang untuk setiap team dan anggota team.

7) Analisa Resiko Proyek.
Peluncuran Team untuk meeting 7.
• Identifikasi dan mengevaluasi resiko proyek.
• Menetapkan checkpoint perkiraan resiko dan tanggung-jawabnya.
• Mengusulkan tindakan peringanan untuk high-impact resiko.

8) Peluncuran Persiapan Laporan.
Peluncuran Team untuk meeting 8.
• Siapkan laporan peluncuran kepada manajemen.
 

9) Tinjauan ulang Manajemen.
Peluncuran Team untuk meeting 9.
• Meninjau kembali aktivitas peluncuran dan perencanaan proyek kepada manajemen.
• Mendiskusikan resiko proyek, tanggung-jawab, dan rencana kegiatan.

10) Peluncuran Postmortem.
Peluncuran Team untuk meeting 9.
• Meneliti kembali dari awal persiapan laporan mingguan.
• Menyusun data peluncuran dan membuat suatu laporan peluncuran.
• Masukkan hasil laporan kedalam buku catatan proyek.

 

Proyek dinyatakan selesai apabila :
• Peluncuran yang lengkap dengan rencana tiap anggota team yang telah didokumentasikan.
• Menetapkan peran, tujuan, proses dan tanggung jawab team.
• Persetujuan Manajemen dengan rencana team atau mengenali kegiatan untuk menciptakan resolusi dan tanggung-jawab tiap tugas.
Data Peluncuran disimpan dalam buku catatan proyek.






Jumat, 13 Maret 2009

Team Software Process (TSP)

Latar Belakang
Langkah penting dalam peningkatan proses perangkat lunak adalah pengenalan tentang Team Software Process (TSP). TSP menyediakan suatu konteks yang teratur untuk merancang dan membangun suatu sistem.
Dikembangkan oleh Watt Humphrey pada tahun 1996, sasarannya adalah menyediakan suatu proses operasional dalam membantu para engineering dalam melakukan pekerjaan yang berkwalitas. Awalnya TSP dirancang sangat sederhana, dimana di buat dalam 2 tim yang kemudian dilihat hasilnya apakah berjalan lancar atau tidak. Tim diidentifikasi lebih lanjut untuk melakukan perbaikan dari sistem yang telah diciptakan sebelumnya.
Dalam 3 tahun yang akan datang Humphrey mengembangkan 9 – lebih versi TSP. Sasaran awalnya adalah jika ada general-purpose team bisa membantu engineering team dalam melakukan pekerjaan mereka. TSP merupakan dasar sasaran untuk proses pengembangan usaha yang diarahkan ke arah penyederhanaan proses tersebut, mengurangi ukurannya dan menyediakan dukungan dan bimbingan yang diperlukan untuk melakukan hal berguna san efisien.
Beberapa team sudah menggunakan TSP dan beberapa metoda telah dikembangkan untuk membantu engineering dan manajer dalam membentuk tim. Selain itu juga dapat membantu engineering untuk merencanakan, merekam data,analisa data dan beberapa aktivitas proyek.

Strategi TSP
  • Digunakan untuk merumuskan permasalahan secara sederhana
  • Dikembangkan dalam beberapa siklus
  • Menentukan ukuran standart untuk kualitas dan performance
  • Menyediakan batasan yang terperinci
  • Gunakan aturan dan peran dari evaluasi setiap siklus
  • Diperlukan displin proses
  • Diberikan bimbingan pada setiap masalah yang muncul


Proses
Elemen yang paling prinsip dalam TSP dapat dilihat dalam gambar dibawah. Sebelum seseorang bergabung dalam suatu TSP, mereka harus mengerti bagaimana mendisiplinkan pekerjaan.
Pelatihan PSP bertujuan untuk menghasilkan engineer dengan pengetahuan dan keterampilan untuk menggunakan TSP. PSP meliputi pengetahuan tentang bagaimana membuat details plan, pengumpulan dan penggunaan suatu proses data, mengembangkan value plant yang didapatkan, menggunakan value plant yang didapatkan untuk menentukan proses dari suatu plan, mengukur dan mengatur mutu produk dan menjelaskan proses operasional penggunaan.
Engineering harus dilatih sebelum masuk dalam suatu TSP.


Dalam membangun sebuah sistem dibutuhkan team yang terdiri dari beberapa orang yang dapat bekerja sama untuk memenuhi dan menyelesaikan sebuah tugas dengan maksimal. TSP menuntut pembentukan team untuk suatu proses perencanaan dalam peluncuran sebuah sistem. Dalam peluncuran suatu proses semua anggota team dapat mengembangkan strategi, proses dan rencana untuk kesuksesan proyek yang mereka jalankan.

Peluncuran pertama dilakukan dengan memenuhi permintaan pelanggan, tapi evaluasi tetap dilakukan dengan tujuan agar sistem yang diciptakan atau dibuat dapat digunakan secara maksimal. Pengembangan sistem selanjutnya dilakukan setelah mendapat evaluasi dari peluncuran pertama. Dibutuhkan waktu beberapa bulan untuk meluncurkan sistem yang telah direvisi karena anggota team akan melakukan pengembangan sesuai dengan hasil revisi.


1. Launch
• Hasilnya berupa hasil tinjauan 
• Menguraikan isi dan struktur TSP
• Menugaskan anggota tim sesuai dengan perannya 
• Menguraikan kebutuhan pelanggan
• Menetapkan Tim dan individu goals


2. Strategy
• Menciptakan suatu desain konseptual produk
• Menentukan strategi pengembangan 
• Memutuskan apa yang akan dikerjakan pada setiap siklus 
• Ukuran awal buatan dan perkiraan usaha
• Menetapkan suatu bentuk rencana manajemen 
• Reuse plan
• Manajemen Resiko 

3. Plan
• Memperkirakan ukuran dari setiap proses 
• Mengidentifikasi tugas yang dilakukan 
• Memperkirakan waktu mulai dan akhir proses 
• Menentukan tugas masing-masing tim 
• Membuat suatu jadwal mingguan untuk penyelesaian tugas 
• Membuat suatu quality plan 

4. Requirements
• Menganalisa kebutuhan dari hasil interview customer
• Menetapkan kebutuhan customer
• Memeriksa kebutuhan customer
• Mengembangkan suatu rencana test sistem 

5. Design
• Menciptakan suatu high level design
• Menetapkan desain 
• Memeriksa desain 
• Mengembangkan suatu rencana tes integrasi desain 

6. Implementasi
• Menggunakan PSP untuk menerapkan modules/units 
• Membuat perancangan modules/units secara terperinci 
• Meninjau ulang disain 
• Menterjemahkan disain ke dalam suatu kode
• Meninjau ulang kode 
• Menyusun dan menguji modules/units 
• Meneliti mutu dan kualitas modules/units 

7. Test
• Membangun dan mengintegrasikan sistem 
• Melakukan suatu test sistem 
• Dokumentasi setiap proses yang dihasilkan 

8. Postmortem
• Melakukan suatu postmortem analisa 
• Membuat laporan siklus 
• Mengeluarkan hasil dan evaluasi Tim 

Seluruh anggota team mengambil bagian dari setiap proses TSP dimana setiap anggota team bekerja sesuai dengan bagian masing-masing. Proses lauching yang dilakukan akan dicatat sesuai dengan kegiatan yang dilakukan, dimana gambarnya dapat dilihat pada gambar dibawah ini. Catatan yang dibuat akan menjadi bahan evaluasi untuk bahan perbaikan launching berikutnya. 

Contoh penerapan TSP


Pengguna TSP
1. Teradyne dengan software LOC program
2. Hill Air Force Base 
3. Boeing, Penjadwalan dan pengujian waktu terbang
Referensi :
http://www.sei.cmu.edu/tsp/
http://www.sei.cmu.edu/pub/documents/00.reports/pdf/00tr023.pdf
http://www.slideshare.net