Cari Blog Ini

Selasa, 25 Mei 2010

Pemodelan Perangkat Lunak

Pengertian Pemodelan Perangkat Lunak

Untuk mendapatkan suatu definisi yang dapat dipahami dengan baik dari pengertian Pemodelan Sistem, maka kita harus mengetahui secara mendalam apa arti sebenarnya dari dua kata tersebut, yakni Pemodelan (Model) dan Sistem. Model adalah adalah rencana, representasi, atau deskripsi yang menjelaskan suatu objek, sistem, atau konsep, yang seringkali berupa penyederhanaan atau idealisasi. Bentuknya dapat berupa model fisik (maket, bentuk prototipe), model citra (gambar, komputerisasi,grafis dll), atau rumusan matematis.Sedangkan Sistem adalah suatu kesatuan yang terdiri komponen atau elemen yang dihubungkan bersama untuk memudahkan aliran informasi, materi atau energi. Menurut Anatol Rapoport Sistem adalah “satu kesatuan yang berfungsi sebagai satu kesatuan karena bagian-bagian yang saling bergantung dan sebuah metode yang bertujuan menemukan bagaimana sistem ini menyebabkan sistem yang lebih luas yang disebut sistem teori umum”Jadi apa yang disebut dengan Pemodelan Sistem ? Pemodelan Sistem adalah suatu bentuk penyederhanaan dari sebuah elemen dan komponen yang sangat komplek untuk memudahkan pemahaman dari informasi yang dibutuhkan.

Karakteristik daripada Pemodelan Sistem, adalah sebagai berikut :
1. Dibuat dalam bentuk grafis dan tambahan keterangan secara tekstual.
2. Dapat diamati dengan pola top-down dan partitioned.
3. Memenuhi persyaratan minimal redundancy.
4. Dapat mempresentasikan tingkah laku sistem dengan cara yang transparan.

Dari karakteristik pemodelan diatas, dapat diambil kesimpulan bahwa model itu dibuat dalam bentuk grafis atau bergambar sehingga dapat memudahkan customer dan dilengkapi juga dengan keterangan dari gambar atau grafis tersebut. Alur dari proses model tersebut dapat di lihat dan diamati, memenuhi syaran minimal reudansi dan yang terpenting adalah dapat mempresentasikan proses dari pada system yang dibuat dan dapat di pahami oleh customer.

Menurut Grady Booch, James Rumbaugh dan Ivar Jacobson Prinsip dari Pemodelan adalah:
1. Memilih model apa yang di gunakan, bagaimana masalahnya dan bagaimana juga dengan solusinya.
2. Setiap Model dapat dinyatakan dalam tingkatan yang berbeda
3. Model yang terbaik adalah yang berhubungan dengan realitas.
4. Tidak pernah ada model tunggal yang cukup baik, setiap system yang baik memilik serangkaian model kecil yang independen.

Prinsip pemodelan sistem tidak terlalu menitik beratkan kepada bentuk model apa untuk merancang sebuah sitem, bentuk model ini bebas, bisa menggunakan bentuk apa saja, sesuai dengan keinginan kita, contohnya bisa berupa narasi, prototype, maupun gambar, yang terpenting adalah harus mampu merepresentasikan visualisasi bentuk sistem yang diinginkan oleh user, karena sistem akhir yagn dibuat bagi user akan diturunkan dari hasil model tersebut
Metode formal memiliki kemampuan untuk
meningkatkan kualitas dan produktifitas dalam
pembangunan perangkat lunak. Diantara
kemampuannya :
 Untuk meningkatkan pendeteksian eror sejak awal
 Untuk membangun sistem perangkat lunak yang
aman, handal dan terjamin
 Untuk memfasilitasi pengujian dari implementasi
 Untuk memungkinkan dilakukannya simulasi,
animasi, pembuktian, eksekusi dan transformasi
 Model ini menggambarkan sistem dengan
lingkungan diluarnya tetapi tidak
menggambarkan relasi antara sistem dengan
lingkungan luar
 Lingkungan luar mungkin mengirim data ke
sistem, terhubung langsung ke sistem dan
membagi datanya ke sistem.
 Untuk itu ada detail proses yang harus
disediakan seperti dalam model proses.

Computer System Engineering

Pengertian Computer System Engineering

Merupakan suatu aktifitas pemecahan masalah fungsi sistem yang
diinginkan, ditemukan, dianalisis, dan dialokasikan ke elemenelemen
sistem individu.
Computer system engineering disebut juga Sistem Analis, terdiri
dari 2 bagian, yaitu :
 Hardware engineering
 Software engineering
Sistem merupakan sekumpulan elemen yang saling berinteraksi
untuk mencapai suatu tujuan, sedangkan Computer Based System
diorganisir untuk mendapatkan beberapa metode, prosedur atau
pengontrolan dengan cara mengelola informasi.



Computer System Engineering dimulai dengan :
1. Penetapan tujuan customer
2. Hambatan-hambatan dan representasi fungsi performance yang
dapat dialokasikan ke masing-masing elemen sistem.
Segera setelah fungsi performance, hambatan dan interface
ditetapkan, sistem engineering selanjutnya melakukan pekerjaan
alokasi. Selama pengalokasian fungsi diserahkan kepada satu / lebih
elemen sistem (misalnya software, hardware, people, dll) seringkali
alokasi alternatif diusulkan dan dievaluasi.
Berikut ini adalah kriteria pemilihan konfigurasi sistem berdasarkan
alokasi fungsi dan performance ke elemen sistem :
1. Project Consideration - Pertimbangan Proyek
Dapatkah konfigurasi dihasilkan dengan biaya dan jadwal yang
ditetapkan lebih awal?
2. Business Consideration - Pertimbangan Bisnis
 Dapatkah konfigurasi memberikan solusi yang paling
menguntungkan?
 Dapatkah dipasarkan dengan sukses? (Pertimbangan ini yang
paling penting).
3. Technical Consideration - Pertimbangan tehnik
 Apakah ada tehnologi untuk mengembangkan semua elemen
sistem?
 Dapatkah fungsi performance dijamin?
 Dapatkah konfigurasi dipelihara dengan cukup baik?
4. Manufacturing Evaluation - Evaluasi Pabrikasi
 Apakah fasilitas dan peralatan manufaktur tersedia?
 Apakah ada komponen yang diperlukan dengan segera?
 Apakah jaminan kualitas dapat dipercaya?
5. Human Issues - Hal-hal yang berhubungan dengan manusia
 Apakah tenaga kerja terlatih untuk pengembangan dan
manufaktur tersedia?
 Apakah customer mengerti dengan apa yang akan dicapai oleh
sistem?
6. Environmental Interface - Berhubungan dengan lingkungan
 Apakah konfigurasi yang diusulkan sudah cukup berhubungan
dengan lingkungan external dari sistem?
 Apakah komunikasi mesin ke manusia dan sebaliknya sudah
ditangani dengan baik?
7. Legal Consideration - Pertimbangan hukum
Apakah pertimbangan yang dihasilkan sudah dilindungi oleh
hukum?
PERTIMBANGAN HARDWARE
Aplikasi hardware dapat dikelompokan dalam 3 bagian besar, yaitu :
1. Pengelolahan informasi
2. Pengontrolan proses dan aplikasi real time
3. Tambahan intelegensi
Rekayasa Hardware
Untuk komputer digital yang dikembangkan dari perancangan
elektronik, proses perancangannya terdiri dari 3 tahap :
1. Perencanaan dan spesifikasi
2. Perencanaan dan implementasi prototype
3. Manufaktur distribusi dan pelayanan
Segera/sesudah analisis dan definisi dijalankan, fungsi dialokasikan
ke hardware.

Definisi sistem merupakan langkah pertama dalam fase
perencanaan.
Tujuan dari definisi sistem ini adalah :
1. Evaluasi konsep sistem : feasibility, cost benefit, dan businness
needs
2. Jelaskan interface, function, dan performance sistem
3. Alokasi fungsi pada hardware, software dan elemen tambahan.
Tujuan dari perencanaan software adalah mengestimasi biaya dan
waktu pengembangan. Untuk mencapai ini, lingkup software harus
dimengerti dengan sempurna, dan sumber harus ditentukan dengan
tepat.
Analisis kebutuhan software memperjelas:
Software interfaces, atribut fungsional, karakteristik performance,
Kendala desain dan Kriteria validasi
Timbul pertanyaan :
1. Berapa besar usaha yang akan diberikan pada fase perencanaan?
10 s/d 20 % dari usaha keseluruhan proyek diberikan pada
perencanaan dan analisis kebutuhan software.
2. Siapa yang mengerjakannya?
Analis yang berpengalaman dan terlatih memperkerjakan hampir
semua pekerjaan yang berhubungan dengan fase perencanaan.
Untuk proyek yang sangat besar, dapat dibentuk sebuah tim
analis.
3. Mengapa begitu sulit?
Konsep yang tidak jelas harus ditransformasikan ke dalam elemen
yang jelas.
FEASIBILITY STUDY (STUDI KELAYAKAN)
Semua proyek layak bila sumber dan waktunya tidak terbatas.
Kenyataannya, pengembangan sistem berbasis komputer dibatasi
oleh sumber dan waktu.
Ada 4 bidang utama yang menjadi konsentrasi dari feasibility study:
1. Economic Feasibility :
Evaluasi biaya (cost) dan manfaat (benefit) dalam pengembangan
sistem.
2. Technical Feasibility :
Studi tentang fungsi, performance, dan hambatan yang
berpengaruh terhadap kemampuan mendapatkan sistem yang
baik.
3. Legal Feasibility :
Penentuan berbagai pelanggaran, kewajiban yang dapat terjadi
dari pengembangan sistem.
4. Alternative :
Evaluasi sebagai alternatif untuk mengembangkan sistem
ANALISIS COST BENEFIT
Menggambarkan biaya pengembangan proyek serta mempertimbangkan
keuntungan sistem, baik yang dapat diukur (tangible)
maupun yang tidak dapat diukur (intangible).
Analis cost benefit ini tergantung dari karakteristik sistem yang akan
dikembangkan, ukuran relatif proyek (besar kecil proyek), dan ROI
(Return On Invesment) yang diharapkan dari proyek.
Keuntungan dari sistem baru selalu dibandingkan dengan
keuntungan dari sistem yang ada.
Contoh soal :
Suatu CAD akan menggantikan cara manual dalam membuat
gambar-gambar tehnik. Misalkan :
 t = waktu rata-rata menggambar = 4 jam
 c = biaya gambar per jam = $20
 n = banyaknya gambar pertahun = 8000
 p = persentase gambar yang dihasilkan dengan sistem CAD=60%
Penurunan waktu gambar menjadi 1/4 nya dengan adanya sistem
CAD.
Jadi : Biaya yang dapat ditekan (dihemat) sebesar :
4 20 8000 60% = 96,000/thn
4
= 1
4
= 1 t c n p    
Bila untuk sistem CAD harus dikeluarkan biaya sebesar :
 biaya pengembangan/membeli = $204,000
 biaya pemeliharaan = $32,000 per tahun
maka masa pengembalian (payback period) dari proyek ini adalah :
Biaya pengeluaran (cost ) = biaya penghematan ( benefit )
204,000 + x * 32,000 = 96,000 * x
64,000 * x = 204,000
x = 3.2 tahun
Ini berarti setelah 3.2 tahun, barulah proyek CAD ini memberikan
titik impas (break even). Setelah ini barulah memberikan
keuntungan.
Grafik :
3.2
204
307
MASA KEUNTUNGAN
(PROFIT)
MASA KERUGIAN
(LOSS)
BREAK EVEN
POINT
PENGHEMATAN DENGAN
SISTEM CAD
BIAYA DENGAN
SISTEM CAD
BIAYA PENGHEMATAN (DALAM RIBUAN)
PAYBACK PERIODE
(MASA PENGEMBALIAN)

Kamis, 20 Mei 2010

Pengenalan Perangkat Lunak

REKAYASA PERANGKAT LUNAK
(SOFTWARE ENGINEERING)

I. PENDAHULUAN
Rekayasa perangkat lunak telah berkembang sejak pertama kali ddiciptakan pada tahun 1940-an hingga kini. Focus utama pengembangannya adalah untuk mengembangkan praktek dan teknologi untuk meningkatkan produktivitas para praktisi pengembang perangkatluank dan kualitas aplikasi yang dapat digunakan oleh pemakai.

I.1 Sejarah Software Engineering
Istilah software engineering digunakan pertama kali pada akhir 1950-an dan awal 1960-an. Saat itu, masih terdapat perdebatan tajam mengenai aspek engineering dari pengembangan perangkat lunak. Pada tahun 1968 dan 1969, komite sains NATO mensponsori dua konferensi tentang rekayasa perangkat lunak, yang memberikan dampak kuat terhadap pengembangan rekayasa perangkat lunak. Banyak yang menganggap dua konferensi inilah yang menandai awal resmi profesi rekayasa perangkat lunak.
Pada tahun 1960-an hingga 1980-an, banyak masalah yang ditemukan para praktisi pengembangan perangkat lunak. Banyak project yang gagal, hingga masa ini disebut sebagai krisis perangkat lunak. Kasus kegagalan pengembangan perangkat lunak terjadi mulai dari project yang melebihi anggaran, hingga kasusu yang mengakibatkan kerusakan fisik dan kematian. Salah satu kasus yang terkenal antara lain meledaknya roket Ariane akibat kegagalan perangkat lunak. Selama bertahun-tahun, para peneliti memfokuskan usahanay untuk menemukan teknik jitu untuk memecahkan masalah krisi perangkat lunak. Berbagai teknik, metode, alat, proses diciptakan dan diklaim sebagai senjata pamungkas untuk memecahkan kasus ini. Mulai dari pemrograman terstruktur, pemrograman berorientasi objek, pernagkat pembantu pengembangan perangkat lunak (CASE tools), berbagai standar, UML hingga metode formal diagung-agungkan sebagai senjaat pamungkas untuk menghasilkan software yang benar, sesuai anggaran dan tepat
waktu. Pada tahun 1987, Fred Brooks menulis artikel No Silver Bullet, yang berproposisi bahwa tidak ada satu teknologi atau praktek yang sanggup mencapai 10 kali lipat perbaikan dalam produktivitas pengembanan perngkat lunak dalam tempo 10 tahun.
Sebagian berpendapat, no silver bullet berarti profesi rekayasa perangkat lunak dianggap telah gagal. Namun sebagian yang lain justru beranggapan, hal ini menandakan bahwa bidang profesi rekayasa perangkat lunak telah cukup matang, karena dalam bidang profesi lainnya pun, tidak ada teknik pamungkas yang dapat digunakan dalam berbagai kondisi.

I.2 Pengertian Dasar
Istilah Reakayasa Perangkat Lunak (RPL) secara umum disepakati sebagai terjemahan dari istilah Software engineering. Istilah Software Engineering mulai dipopulerkan pada tahun 1968 pada software engineering Conference yang diselenggarakan oleh NATO. Sebagian orang mengartikan RPL hanya sebatas pada bagaimana membuat program komputer. Padahal ada perbedaan yang mendasar antara perangkat lunak (software) dan program komputer.
Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses informasi. Perangkat lunak dapat berupa program atau prosedur. Program adalah kumpulan perintah yang dimengerti oleh komputer sedangkan prosedur adalah perintah yang dibutuhkan oleh pengguna dalam memproses informasi (O’Brien, 1999).
Pengertian RPL sendiri adalah suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikasi dari kebutuhan pengguna, disain, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan. Dari pengertian ini jelaslah bahwa RPL tidak hanya berhubungan dengan cara pembuatan program komputer. Pernyataan ”semua aspek produksi” pada pengertian di atas, mempunyai arti semnua hal yang berhubungan dengan proses produksi seperti manajemen proyek, penentuan personil, anggaran biaya, metode, jadwal, kualitas sampai dengan pelatihan pengguna merupakan bagian dari RPL.

TUJUAN REKAYASA PERANGKAT LUNAK

Secara umunmm tujuan RPL tidak berbeda dengan bidang rekayasa yang lain. Hal ini dapat kita lihat pada Gambar di bawah ini.



Dari Gambar di atas dapat diartikan bahwa bidang rekayasa akan selalu berusaha menghasilkan output yang kinerjanya tinggi, biaya rendah dan waktu penyelesaian yang tepat. Secara leboih khusus kita dapat menyatakan tujuan RPL adalah:
a. memperoleh biaya produksi perangkat lunak yang rendah
b. menghasilkan pereangkat lunak yang kinerjanya tinggi, andal dan tepat waktu
c. menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform
d. menghasilkan perangkat lunak yang biaya perawatannya rendah


III. RUANG LINGKUP
Sesuai dengan definisi yang telah disampaikan sebelumnya, maka ruang lingkup RPL dapat digambarkan sebagai berikut:



Gambar 2. Ruang lingkup RPL (Abran et.al., 2004).

- software Requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak
- software desain mencakup proses penampilan arsitektur, komponen, antar muka, dan karakteristik lain dari perangkat lunak
- software construction berhubungan dengan detail pengembangan perangkat lunak, termasuk algoritma, pengkodean, pengujian dan pencarian kesalahan
- software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak
- software maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan
- software configuration management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu
- software engineering management berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak
- software engineering tools and methods mencakup kajian teoritis tentang alat bantu dan metode RPL
- software engineering process berhubungan dengan definisi, implementasi pengukuran, pengelolaan, perubahan dan perbaikan proses RPL
- software quality menitik beratkan pada kualitas dan daur hidup perangkat lunak

IV. REKAYASA PERANGKAT LUNAK DAN DISIPLIN ILMU LAIN
Cakupan ruang lingkup yang cukup luas, membuat RPL sangat terkait dengan disiplin dengan bidang ilmu lain. tidak saja sub bidang dalam disiplin ilmu komputer namun dengan beberapa disiplin ilmu lain diluar ilmu komputer.
Hubungan keterkaitan RPL dengan ilmu lain dapat dilihat pada gambar dibawah ini



Gambar 3. Keterkaitan RPL dengan bidang ilmu lain.

- bidang ilmu manajemen meliputi akuntansi, finansial, pemasaran, manajemen operasi, ekonomi, analisis kuantitatif, manajemen sumber daya manusia, kebijakan, dan strategi bisnis
- bidang ilmu matematika meliputi aljabar linier, kalkulus, peluang, statistik, analisis numerik, dan matematika diskrit
- bidang ilmu manajemen proyek meliputi semua hal yang berkaitan dengan proyek, seperti ruang lingkup proyek, anggaran, tenaga kerja, kualitas, manajemen resiko dan keandalan, perbaikan kualitas, dan metode-metode kuantitatif
- bidang ilmu ergonomika menyangkut hubungan ( interaksi) antar manusia dengan komponen-komponen lain dalam sistem komputer
- bidang ilmu rekayasa sistem meliputi teori sistem, analisis biaya-keuntungan, pemodelan, simulasi, proses, dan operasi bisnis