Paradigma Pembangunan Perangkat Lunak
Paradigma pembangunan perangkat lunak berbasis objek adalah bagaimana merepresentasikan dunia nyata ke dalam sebuah sistem sehingga pemecahan suatu masalah tidak dilihat dari cara menyelesaikan masalah tersebut tetapi dititikberatkan pada objek-objek apa sajakah yang dapat memecahkan masalah tersebut.1)
paradigma pembangunan perangkat lunak selalu disertai dengan tiga tahapan utama yaitu tahap analisis, desain dan implementasi. 2)
1. Pada tahap analisis, pembangunan perangkat lunak melakukan perancangan sistem tanpa memperhitungkan dukungan teknologi yang tersedia. Ia lebih memusatkan perhatian dan kajiannya pada upaya untuk menhawab pertanyaan : "Waht the system must do ?" (Edward, 1994 : 248) dengan menggunakan metoda dan alat bantu yang sesuai.
2. Tahap desain merupakan tahap lanjutan dari tahap analisis. Pada tahap ini pembangun perangkat lunak harus merancang sistem dengan melibatkan dukungan teknologi yang tersedia. Perhatian dan kajian pembangunan perangkat lunak diarahkan untuk menjawab pertanyaan : "How the requirements will be implemented ?" (Edward, 1994 : 248), dengan menggunakan metoda dan alat bantu yang sesuai.
3. Pada tahap implementasi pembangun perangkat lunak akan mengimplementasikan hasil rancangan ke dalam program yang sesuai dengan bahasa pemrograman yang dipilih (tersedia). Bagi para pembangun perangkat lunak, ketiga tahapan di atas merupakan 3 kegiatan utama yang menyatu. Oleh karena itu, kejelasan terhadap pemakaian metode dan alat bantu sampai dengan kejelasan terhadap implementasinya akan sangat membantu kerja pembangun perangkat lunak.
Adapun Metode yang digunakan adalah :
1. Design Pattern adalah sebuah istilah (English) dalam Rekayasa Perangkat Lunak (Software Engineering) yang mengacu kepada solusi umum yang dapat digunakan secara berulang kali untuk menyelesaikan masalah-masalah umum yang ditemukan dalam disain perangkat lunak. Sebuah design pattern tidak berbentuk solusi akhir yang dapat langsung diterjemahkan menjadi kode program. 3)
Design pattern merupakan penjelasan atau template yang menunjukkan bagaimana cara menyelesaikan sebuah masalah yang kemudian dapat digunakan di berbagai situasi yang berbeda-beda. Design pattern untuk object-oriented biasanya menunjukkan relasi dan interaksi antar kelas dan objek, tanpa menjelaskan kelas dan objek akhir yang terlibat dalam sebuah aplikasi. Algoritma biasanya tidak disebut sebagai design pattern, karena algoritma akan menjadi solusi masalah komputasi dan bukan masalah disain.
http://dosen.amikom.ac.id/downloads/artikel/Design%20Pattern.doc
Keuntungan Design Pattern, Pertama, dapat memberikan solusi persoalan yang berhubungan dengan pengembangan software menggunakan solusi yang telah teruji. Solusi pengembangan dengan gabungan modul dengan sedikit pasangan. Kedua, design patterns membuat komunikasi antara designer lebih efisien. Software professionals dapat menggambarkan secara cepat tingkat desain yang ada dalam pikiran mereka ketika mereka merujuk nama pattren yang digunakan untuk memecahkan persoalan ketika mendiskusikan desain sistem.4)
Pattern Format5)
The design pattern format has four essential parts, although names and ordering differ by source:
a. Name
Every pattern needs a name, to provide a language for design discussion.
b. Problem
Recurring circumstances lead to the discovery of this pattern by multiple persons. A primary goal of design is to limit the amount of source change needed to change a program's observed behavior, but this can be difficult to achieve if a designer does not understand the implications of a design.
c. Solution
The solution is described sufficiently for implementation by novices, although the implementation is usually given in general enough terms that it can be adapted to different projects.
d. Consequences
Applying this solution will effect the rest of the project in certain ways, so it is important to mention any common negative or serendipitous side-effects.
2. Refaktoring
Refactoring adalah teknik memodifikasi source code.
Teknik Refactoring merupakan antiteori dari proses pengembangan perangkat lunak konvensional yang menekankan bahwa desain merupakan tahap terpenting pengembangan, sebuah desain yang baik akan menghasilkan implementasi program yang baik pula. Refactoring saat ini dianggap sebagai salah satu bentuk extreme programming (XP), suatu paradigma dalam software engineering yang menekankan bahwa menulis kode program yang baik dan elegan jauh lebih efektif dalam pengembangan perangkat lunak dibandingkan menghabiskan waktu dan sumberdaya untuk membuat desain yang detil dan rumit.6)
3. Test driven development7)
Test driven development adalah metodologi terbaru dalam pengembangan perangkat lunak. Berbeda dengan metodologi lain yang berbasiskan develop then test, metodologi ini mewajibkan pembuatan kasus-kasus pengujian terlebih dahulu sebelum membuat applikasi.
Langkah umumnya adalah :
1. buat class baru
2. buat class pengujinya
3. buat skeleton class baru
4. buat skeleton class penguji
5. kompilasi
6. jalankan di di nunit
7. jika ada kesalahan perbaiki kode class baru dan class penguji dan lakukan langkah 5 dan 6 lagi
Alasan-alasan yang menyebakan metodologi ini dikembangkan adalah :
• pengujian belakangan sering tidak lengkap
• sulit menguji ketika applikasi sudah komplek
• sulit menguji ketika sudah ada user interface (data entri lambat dan tidak reuse)
• manajemen test case sulit dilakukan kecuali pada tataran dimana perusahaan software sudah besar
• metodologi lain menghasilkan code yang kurang self explainatory (menjelaskan dirinya)
Kesulitan utama dalam pembuatan dalam metodologi ini adalah penciptaan kelengkapan kasus pengujian. Ada beberapa teknik yang akan penulis bagikan sebagai hasil uji coba penulis sejauh ini antara lain refactoring, boundary testing dan cylomatic testing. Semua jenis testing ini adalah white box testing. Inti ketiga testing di atas adalah membandingkan hasil yang diperolah dari method yang kita buat dan hasil kalkulasi yang dilakukan manual. Semuanya akan penulis jelaskan di bagian bawah artikel ini nanti.
Pembangkitan kasus uji pada prinsipnya mengacu pada operasi-operasi yang ada dalam sebuah method yang akan diuji. Secara garis besar operasi elementer dalam sebuah method meliputi :
• kalkulasi
• perulangan
• analisa kasus
Catatan Sumber :
1) http://www.ittelkom.ac.id/library/index.php?option=com_repository&Itemid=34&task=detail&nim=113030155 diakses pada 19 February 2009 Pukul 00:34
2) http://lib.atmajaya.ac.id/default.aspx?tabID=61&src=a&id=98608 diakses pada 19 February 2009 Pukul 00:44
3) http://dosen.amikom.ac.id/downloads/artikel/Design%20Pattern.doc diakses pada 19 Februari 209 Pukul 00:12
4) http://www.developer.com/design/article.php/1474561 diakses pada 19 februari pukul 00:55
5) http://knowledgerush.com/kr/encyclopedia/Design_pattern_(computer_science)/ diakses pada 19 February 2009 pukul 00:46
6) http://118.98.171.131/webs/websites/Ilmu%20Komputer/ilmukomputer.com/2007/06/05/refactoring-teknik-membuat-kode-program-lebih-elegan/index.html diakses pada 19 February 2009 pukul 00:53
7) http://www.benpinter.net/article.php?story=20070702154756672 diakses pada 19 February 2009 pukul 01:04
paradigma pembangunan perangkat lunak selalu disertai dengan tiga tahapan utama yaitu tahap analisis, desain dan implementasi. 2)
1. Pada tahap analisis, pembangunan perangkat lunak melakukan perancangan sistem tanpa memperhitungkan dukungan teknologi yang tersedia. Ia lebih memusatkan perhatian dan kajiannya pada upaya untuk menhawab pertanyaan : "Waht the system must do ?" (Edward, 1994 : 248) dengan menggunakan metoda dan alat bantu yang sesuai.
2. Tahap desain merupakan tahap lanjutan dari tahap analisis. Pada tahap ini pembangun perangkat lunak harus merancang sistem dengan melibatkan dukungan teknologi yang tersedia. Perhatian dan kajian pembangunan perangkat lunak diarahkan untuk menjawab pertanyaan : "How the requirements will be implemented ?" (Edward, 1994 : 248), dengan menggunakan metoda dan alat bantu yang sesuai.
3. Pada tahap implementasi pembangun perangkat lunak akan mengimplementasikan hasil rancangan ke dalam program yang sesuai dengan bahasa pemrograman yang dipilih (tersedia). Bagi para pembangun perangkat lunak, ketiga tahapan di atas merupakan 3 kegiatan utama yang menyatu. Oleh karena itu, kejelasan terhadap pemakaian metode dan alat bantu sampai dengan kejelasan terhadap implementasinya akan sangat membantu kerja pembangun perangkat lunak.
Adapun Metode yang digunakan adalah :
1. Design Pattern adalah sebuah istilah (English) dalam Rekayasa Perangkat Lunak (Software Engineering) yang mengacu kepada solusi umum yang dapat digunakan secara berulang kali untuk menyelesaikan masalah-masalah umum yang ditemukan dalam disain perangkat lunak. Sebuah design pattern tidak berbentuk solusi akhir yang dapat langsung diterjemahkan menjadi kode program. 3)
Design pattern merupakan penjelasan atau template yang menunjukkan bagaimana cara menyelesaikan sebuah masalah yang kemudian dapat digunakan di berbagai situasi yang berbeda-beda. Design pattern untuk object-oriented biasanya menunjukkan relasi dan interaksi antar kelas dan objek, tanpa menjelaskan kelas dan objek akhir yang terlibat dalam sebuah aplikasi. Algoritma biasanya tidak disebut sebagai design pattern, karena algoritma akan menjadi solusi masalah komputasi dan bukan masalah disain.
http://dosen.amikom.ac.id/downloads/artikel/Design%20Pattern.doc
Keuntungan Design Pattern, Pertama, dapat memberikan solusi persoalan yang berhubungan dengan pengembangan software menggunakan solusi yang telah teruji. Solusi pengembangan dengan gabungan modul dengan sedikit pasangan. Kedua, design patterns membuat komunikasi antara designer lebih efisien. Software professionals dapat menggambarkan secara cepat tingkat desain yang ada dalam pikiran mereka ketika mereka merujuk nama pattren yang digunakan untuk memecahkan persoalan ketika mendiskusikan desain sistem.4)
Pattern Format5)
The design pattern format has four essential parts, although names and ordering differ by source:
a. Name
Every pattern needs a name, to provide a language for design discussion.
b. Problem
Recurring circumstances lead to the discovery of this pattern by multiple persons. A primary goal of design is to limit the amount of source change needed to change a program's observed behavior, but this can be difficult to achieve if a designer does not understand the implications of a design.
c. Solution
The solution is described sufficiently for implementation by novices, although the implementation is usually given in general enough terms that it can be adapted to different projects.
d. Consequences
Applying this solution will effect the rest of the project in certain ways, so it is important to mention any common negative or serendipitous side-effects.
2. Refaktoring
Refactoring adalah teknik memodifikasi source code.
Teknik Refactoring merupakan antiteori dari proses pengembangan perangkat lunak konvensional yang menekankan bahwa desain merupakan tahap terpenting pengembangan, sebuah desain yang baik akan menghasilkan implementasi program yang baik pula. Refactoring saat ini dianggap sebagai salah satu bentuk extreme programming (XP), suatu paradigma dalam software engineering yang menekankan bahwa menulis kode program yang baik dan elegan jauh lebih efektif dalam pengembangan perangkat lunak dibandingkan menghabiskan waktu dan sumberdaya untuk membuat desain yang detil dan rumit.6)
3. Test driven development7)
Test driven development adalah metodologi terbaru dalam pengembangan perangkat lunak. Berbeda dengan metodologi lain yang berbasiskan develop then test, metodologi ini mewajibkan pembuatan kasus-kasus pengujian terlebih dahulu sebelum membuat applikasi.
Langkah umumnya adalah :
1. buat class baru
2. buat class pengujinya
3. buat skeleton class baru
4. buat skeleton class penguji
5. kompilasi
6. jalankan di di nunit
7. jika ada kesalahan perbaiki kode class baru dan class penguji dan lakukan langkah 5 dan 6 lagi
Alasan-alasan yang menyebakan metodologi ini dikembangkan adalah :
• pengujian belakangan sering tidak lengkap
• sulit menguji ketika applikasi sudah komplek
• sulit menguji ketika sudah ada user interface (data entri lambat dan tidak reuse)
• manajemen test case sulit dilakukan kecuali pada tataran dimana perusahaan software sudah besar
• metodologi lain menghasilkan code yang kurang self explainatory (menjelaskan dirinya)
Kesulitan utama dalam pembuatan dalam metodologi ini adalah penciptaan kelengkapan kasus pengujian. Ada beberapa teknik yang akan penulis bagikan sebagai hasil uji coba penulis sejauh ini antara lain refactoring, boundary testing dan cylomatic testing. Semua jenis testing ini adalah white box testing. Inti ketiga testing di atas adalah membandingkan hasil yang diperolah dari method yang kita buat dan hasil kalkulasi yang dilakukan manual. Semuanya akan penulis jelaskan di bagian bawah artikel ini nanti.
Pembangkitan kasus uji pada prinsipnya mengacu pada operasi-operasi yang ada dalam sebuah method yang akan diuji. Secara garis besar operasi elementer dalam sebuah method meliputi :
• kalkulasi
• perulangan
• analisa kasus
Catatan Sumber :
1) http://www.ittelkom.ac.id/library/index.php?option=com_repository&Itemid=34&task=detail&nim=113030155 diakses pada 19 February 2009 Pukul 00:34
2) http://lib.atmajaya.ac.id/default.aspx?tabID=61&src=a&id=98608 diakses pada 19 February 2009 Pukul 00:44
3) http://dosen.amikom.ac.id/downloads/artikel/Design%20Pattern.doc diakses pada 19 Februari 209 Pukul 00:12
4) http://www.developer.com/design/article.php/1474561 diakses pada 19 februari pukul 00:55
5) http://knowledgerush.com/kr/encyclopedia/Design_pattern_(computer_science)/ diakses pada 19 February 2009 pukul 00:46
6) http://118.98.171.131/webs/websites/Ilmu%20Komputer/ilmukomputer.com/2007/06/05/refactoring-teknik-membuat-kode-program-lebih-elegan/index.html diakses pada 19 February 2009 pukul 00:53
7) http://www.benpinter.net/article.php?story=20070702154756672 diakses pada 19 February 2009 pukul 01:04
Paradigma Pembangunan Perangkat Lunak
Reviewed by Arief Adi NUgroho
on
2/19/2009 06:24:00 AM
Rating: