Rekayasa Perangat Lunak - pengertian dan pembahasan


APA ITU REKAYASA PERANGKAT LUNAK?
Rekayasa atau teknik adalah penerapan ilmu dan teknologi untuk menyelesaikan permasalahan manusia. Hal ini diselesaikan lewat pengetahuan, matematika, dan pengalaman praktis yang diterapkan untuk mendesain objek atau proses yang berguna. Para praktisi teknik professional  disebut perekayasa (sarjana teknik).
Menurut sejarahnya, banyak para ahli yang meyakini kemampuan teknik manusia sudah tertanam secara alami. Hal ini ditandai dengan kemampuan manusia purba untuk membuat peralatan-peralatan dari batu. Dengan kata lain, teknik pada mulanya didasari dengan metode coba dan ralat (trial and error) untuuk menciptakan alat yang mempermudah kehidupan manusi. Seiring dengan berjalannya waktu, ilmu pengetahuan mulai berkembang dan mulai mengubah cara pandang manusia terhadap bagaimana alam kerja.
Perkembangan ilmu pengetahuan inilah yang kemudian mengubah cara teknik bekerja hingga seperti sekarang ini. Orang tidak lagi begitu mengandalkan metode coba dan ralat dalam menciptakan atau mendesain peralatan, melainkan lebih mengutamakan ilmu pengetahuan sebagai dasar dalam mendesain.
Istilah software engineering, pertama kali digunakan pada akhir tahun 1950-an dan sekitar awal 1960-an. Pada tahun 1968, NATO menyelenggarakan konferensi tentang software engineering di Jerman dan kemudian dilanjutkan pada tahun 1969. Meski penggunaan istilah software engineering dalam konferensi tersebut menimbulkan perdebatan tajam tentang aspek engineering dari pengembangan perangkat lunak, ada banyak pihak yang menganggap bahwa konferensi tersebutlah yang menjadi awal tumbuhnya profesi rekayasa perangkat lunak.
Rekayasa perangkat lunak (RPL atau SE [Software Engineering]) adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembangan perangkat lunak, dan sebagainya.
Pada tahun 2004, istilah rekayasa perangkat lunak secara umum digunakan dalam tiga arti, yaitu:
1.       Sebagai istilah umum untuk berbagai kegiatan yang dulunya bernama pemrograman atau analisis sitem,
2.       Sebagai istilah yang luas untuk analisis teknis dari semua aspek-aspek praktis yang bertentangan dengan teori pemrograman computer, dan
3.       Sebagai istilah yang mewujudkan advokasi suatu pendekatan spesifik ke pemrograman computer, satu hal yang mendesak yang diperlakukan sebagai profesi rekayasa daripada sebuah seni atau kerajinan, dan advokasi dari kodifikasi praktis yang disarankan dalam bentuk metodologi rekayasa perangkat lunak.
Rekayasa perangkat lunak adalah disiplin rekayasa dengan perangkat lunak yang dikembangkan. Biasanya proses melibatkan penemuan pada keinginan klien, menyusunnya di dalam daftar kebutuhan, perancangan, pengodean, pengujian, dan pengintegrasian bagian yang terpisah, menguji keseluruhan, penyebaran dan pemeliharaan perangkat lunak.
Disiplin masih berada dalam pertumbuhannya (tahap awal perkembangan/pengembangan) sebagai suatu disiplin rekayasa. Kita tidak pernah mempunyai pengalaman yang cukup, maupun kumpulan data empiris yang cukup untuk secara sistematis memahami dan meramalkan siklus hidup proyek perangkat lunak.
The Software Engineering Body of Knowledge (SWEBOK) membagi rekayasa perangkat lunak ke dalam 10 area pengetahuan, yaitu:
1.       Kebutuhan perangkat lunak,
2.       Perancangan perangkat lunak,
3.       Konstruksi perangkat lunak,
4.       Pengujian perangkat lunak,
5.       Pemeliharaan perangkat lunak,
6.       Manajemen konfigurasi perangkat lunak,
7.       Manajemen perangkat lunak,
8.       Proses perangkat lunak,
9.       Metode dan tool perangkat lunak, dan
10.   Kualitas perangkat lunak.
DAMPAK REKAYASA PERANGKAT LUNAK
Rekayasa perangkat lunak akan memengaruhi beberapa factor dalam masyarakat, yaitu:
1.       Faktor Ekonomi
Di Amerika Serikat, perangkat lunak memimpin sekitar ¼ dari semua peningkatan GDP pada tahun 1990-an (sekitar $90 miliar per tahun) dan 1/6 dari semua pertumbuhan produktivitas (efisiensi dalam GDP) pada akhir tahun 1990-an (sekitar $ 33 miliar per tahun). Rekayasa perangkat lunak memimpin $ 1 triliun dari pertumbuhan ekonomi dan produktivitas selama decade terakhir ini.
2.       Faktor Sosial
Rekayasa perangkat lunak mengubah budaya dunia yang memungkinkan orang yang menggunakan computer. E-mail, World Wide Web, dan pesan singkat memungkinkan orang untuk berinteraksi dalam cara-cara yang baru. Perangkat lunak mengurangi biaya dan meningkatkan kualitas dari dinas kesehatan, dinas pemadam kebakaran, dan layanan social penting lainnya.
Kesuksesan proyek dengan metode rekayasa perangkat lunak yang telah diterapkan mencakup linux, space shuttle software, dan automatic teller machines.

REKAYASA PERANGKAT LUNAK
Disiplin rekayasa perangkat lunak dimunculkan dari krisis pengembangan perangkat lunakselama tahun 1960-an dan tahun 1970-an sebagai reaksi terhadap kegagalan proyek perangkat lunak, kerugian ekonomi, keterlambatan jadwal, pasar kompetitif yang terrus meningkat, dan peningkatan permintaan untuuk kemampuan, kualitas, keandalan. Sekarang ini, rekayasa perangkat lunak masih tetap memunculkan disiplin, tetapi menunjukkan peningkatan kematangan.
Seperti halnya daerah rekayasa yang lain, rekayasa perangkat lunak yang tanpa alternative digabungkan dengan empat elemen kunci, yaitu:
1.       Kelayakan: menemukan solusi yang terbaik untuk suatu masalah,
2.       Maksimalisasi nilai: memaksimalkan nilai dari solusi yang disediakan,
3.       Strategi yang efektif: mengadopsi suatu strategi yang efektif untuk mengembangkan solusi, dan
4. Pemodelan: perancangan suatu gambaran visual dari tahap sebelum solusi sampai implementasinya.
Definisi Institute of Electrical and Electronics Engineers (IEEE) pada rekayasa perangkat lunak mengtakan bahwa “aplikasi dari suatu system, disiplin, pendekatan dapat dihitung untuk pengembangan, operasi dan pemeliharaan perangkat lunak.” Disiplin meliputu kerangka, metodologi, teknik, dan alat yang dikhususkan untuk memecahkan permasalahan bisnis. Walaupun disiplin rekayasa perangkat lunak ditingkatkan secara akademis keluar dari bagian ilmu pengethuan computer, disiplin ini telah dipengaruhi oleh disiplin lain, seperti manajemen, ekonomi, dan psikologi. Dari waktu ke waktu, dampak dari disiplin pada rekayasa perangkat lunak digambarkan kembalikarakternya dan lingkupnya diperluas untuk mencapai sasaran hasil umum, terutama di dalam daerah bisnis.
Saat ini, banyak praktisi bisnis dan sekolah bisnis memandang rekayasa perangkat lunak sebagai bagian dari sekelompok besar strategi dalam hubungannya dengan permasalahan bisnis yang mempertimbangkan proses pengembangan perangkat lunak sebagai suatu unsure penting dan factor kesuksesan kritis untuk keseluruhan perusahaan. Rekayasa perangkat lunak telah diperluas di luar batas dari ilmu computer untuk mencakup hal yang lebih luas, area antardisiplin ilmu di dalam teori dan aplikasinya.
Penilaian pada luas cakupan rekayasa perangkat lunak bermanfaat untuk mengindentifikasi disiplin apakah yang berbagai elemen dengan rekayasa perangkat lunak. Hal tersebut mencakup tambahan pada ilmu computer dan matematika, rekayaa computer, rekayasa industry, rekayasa system, ekonomi, ilmu manajemen dan manajemen, ilmu teori, psikologi, dan pemelajaranfaktor manusia.
Dampak dari disiplin ini telah menjadi penting dan memunculkan factor dalam evolusi berbagai strategi pemecahan masalah yang dikendalikan perangkat lunak (software-driven problem-solving) untuk model siklus hidup proses perangkat lunak. Tiga dimensi atau lapisan berturut-turut untuk rekayasa perangkat lunak bias digambarkan sebagai berikut:
1.       Dimensi horizontal (the horizontal dimension)
Dimensi ini mengarahkan strategi pada pemecahan masalah yang dikendalikan perangkat lunak yang efektif dan bagaimana mereka dapat dikhususkan untuk memecahkan permasalahan bisnis yang berbeda dan menemukan berbagai kebutuhan proyek. Contoh dimensi ini adalah model terjun, model spiral, prototype, dan lain-lain.
2.       Dimensi vertical (the vertical dimension)
Dimensi ini mengacu pada tahapan umum strategi dan bagaimana mereka dapat dengan efisien ditujukan. Contohnya adalah tahap studi kelayakan, tahap analisis kebutuuhan, tahap perancangan, tahap implementasi, tahap pemeliharaan, dan lain-lain.
3.       Dimensi metodologis (the methodological dimension)
Dimensi ini mengacu pada teknik dan metode yang dapat menengahi implementasi yang sukses dari strategi pemecahan masalah dan tahapan umum strategi. Contohnya adalah metodologi yang berorientasi objek (object-oriented), metodologi yang berorientasi terstruktur (structured-oriented), CASE tool, dan lain-lain.


FAKTOR MANUSIA UNTUK ASPEK-ASPEK MULTIDISIPLIN
Aspek multidisiplin ilmu factor manusia  menjelma pada tingkat masalah, isu yang dibahas adalah disiplin yang terkait dengan orang-orang yang dapat membantu seseorang untuk memahami dasar masalah. Pada tingkat solusi, perhatian yang utama adalah disiplin yang terkait dengan orang-orang yang memungkinkan seseorang untuk ditunjuk di dalam pemecahan masalah yang lebih baik. TABEL 9.1 menawarkan suatu ikhtisar dari isu ini.
 
Gambar 9.3 Faktor manusia di dalam proses pemecahan masalah
TABEL 9.1 Driver dan Disiplin
Pengarah Antardisiplin Ilmu
Disiplin yang relevan
Penggunaan
Pelanggan
Pemasaran
Meliputi beberapa subkategori pelanggan dan stakeholder lain
Memeriksa kebutuhan system dari perspektif pemasaran
Tim Pengembangan
Manajemen Proyek
Penstrukturan tim pengembangan
Pengguna
Teori Psikologi
Desain antarmuka pengguna

Orang-Orang Sebagai Manajer Proyek
Sepanjang decade tahun 1990-an, kesuksesan sebuah organisasi jelas bergantung pada system informasi. Agar proyek IT sukses, penguasa umum untuk keseluruhan kesuksesan bisnis akan diperlukan. Disamping itu, ada banyak organisasi yang mengalami kegagalan di dalam proyek IT dan membuat peningkatan dari manajemen proyek IT menjadi lebih kritis. Walaupun riset dan pengembangan dari metodologi baru untuk proyek IT telah dilakukan selama periode ini , hanya muncul sedikit peningkatan yang bersesuaian untuk berlangsung di dalam pengembangan IT. Implikasinya adalah manajemen proyek IT bukanlah hal yang sederhana untuk mengidentifikasi keahlian yang diperlukan dan menerapkan metodologi, tetapi suatu kemunculan disiplin yang masih menuntut riset lebih lanjut.
Sebelum melanjutkan, bagian ini diperlukan untuk meringkas definisi proyek. Suatu proyek dapat dipikirkan sebagai kelompok trugas dan aktivitas yang dilakukan di dalam periode dan pertemuan spesifik. Sebuah proyek melibatkan suatu kumpulan sumber daya temporer yang ada bersama-sama untuk memecahkan sebuah masalah spesifik.
Tatnall dan Shackleton (1995), Rosenau (1998), dan Meredith dan Mantel (1995) mengidentifikasi beberapa fitur karakteristik proyek dan menjelaskn bahwa proyek itu unik. Proyek harus diselesaikan pada periode waktu tertentu. Definisi proyek yang benar menjadi penting pada manajemen proyek. Definisi proyek membantu menetapkan suatu lingkup yang jelas untuk proyek dan bertindak sebagai dasar perencanaan proyek.
Langkah-langkah yang diperlukan untuk menggambarkan sebuah awal proyek dilakukan dengan menggambarkan peluang proyeknya, penyediaan uraian latar belakang yang menerapkan kebutuhan pada proyek, dan kemudian menggambarkan tujuan untuk proyek. Setelah mengidentifikasi stakeholder dan sumber daya yang tersedia, seseorang harus mengidentifikasi proyek yang terkait yang akan memengaruhi atau dipengaruhi oleh proyek dalam pertimbangan.
Seseorang kemudian mengidentifikasi kriteria-kriteria untuk memutuskan apakah suatu proyek itu baik, pemahamannya mencakup batasan proyek, asumsi, dan risiko, seerti halnya implikasi seperti batasan dan asumsi untuk risiko proyek. Manajemen proyek dapat digambarkan sebagai sekumpulan prinsip, metode, alat, dan teknik untuk perencanaan, pengorganisasian, penempatan pekerja, pengarahan, dan pengendalian aktivitas yang berkaitan dengan proyek untuk mencapai tujuan proyek di dalam waktu, di bawah biaya, dan batasan kinerja.
Aktivitas manajemen proyek dapat digolongkan menurut tahapan proyek, yaitu:
1.       Konsepsi proyek
Tujuan dari tahap konseptual adalah untuk menentukan kelayakan proyek. Sasaran akan diujidalam konteks lingkungan bisnis, cara alternative akan ditetapkan dan dievaluasi, dan perkiraan persiapan biaya, jadwal, dan risiko yang dikerjakan akan ditentukan. Puncak dari tahap ini adalah keputusan, misalnya keputusan untuk meneruskan proyek.
2.       Perencanaan
Kinerja, biaya, dan perkiraan jadwal ditentukan sampai batas pemerincian rencana untuk pelaksanaan proyek dapat dibuat. Anggaran dan jadwal akan dikembangkan, tim proyek dibentuk, dan system manajemen proyek dibentuk untuk memandu manajemen proyek.
3.       Eksekusi
Manajer proyek akan bertanggung jawab untuk mengatur sumber daya yang diperlukan untuk memenuhi sasaran. Penekanan dari tanggung jawab bergeser dari perencanaan untuk control.
4.       Terminasi
Tahap ini dapat dipicu dengan terminasi premature atau dengan pencapaian kesuksesan dari tujuan.

Kesuksesan manajemen proyek tergantung pada factor antara kepemimpinan manajerial dan ketersediaan bisnis, dan rencana komunikasi dan dokumen teknis yang dengan baik ditetapkan, pada organisasi atau dukungan kelembagaan untuk mengembangkan keahlian manajerial, yaitu tingkat orang-orang dan manajemen proyek. Manajemen biasanya berhubungan dengan berbagai kesulitan di dalam manajemen proyek yang meliputi spesifikasi dan penetapan yang kurang baik, kurangnya rencana proyek, dan anggaran dan batas waktu yang tidak realistis.

Efektivitas manajer proyek menjadi penting untuk kesuksesan proyek. Agar berkualitas, seorang manajer proyek harus menguasai pemahaman tentang teknik negosiasi, komunikasi dan keahlian analitis, dan pengetahuan proyek. Variable kontrol yang digunakan untuk menentukan efektivitas manajer proyek meliputi kemampuan manajer sebagai komunikator, keahlian sebagai perunding, dan kepemimpinan yang baik.

Manajer proyek bertanggung jawab untuk sumber daya proyek dan rencana pengembangan, dan harus mampu memastikan bahwa suatu proyek dapat diselesaikan pada periode waktu yang telah ditentukan. Manajer proyek harus mampu:
1.       Mengoptimalkan kemungkinan dari keseluruhan kesuksesan proyek,
2.       Menerapkan konsep dan pengalaman yang dipelajari dari proyek lama pada proyek baru,
3.       Mengatur prioritas proyek,
4.       Memecahkan konflik,
5.       Mengidentifikasi kelemahan di dalam proses pengembangan dan di dalam solusi,
6.       Mengidentifikasi kekuatan proses atas penyelesaian proyek, dan
7.       Secara cepat dan efisien melibatkan anggota tim yang terlibat di dalam proyek untuk diberi informasi.
Studi manajemen proyek pada Mateyaschuk (1998), Sauer, dkk.  (1998), dan Posner (1987) mengidentifikasi cirri dan keahlian umum yang dianggap penting bagi manajer proyek yang efektif, yaitu:
1.       Kepemimpinan,
2.       Perencanaan yang kuat dan keahlian organisasi,
3.       Kemampuan pembentukan tim (team-building),
4.       Kemampuan untuk mengidentifikasi risiko dan menciptakan rencana darurat,
5.       Kemampuan untuk menghasilkan laporan yang dapat dipahami oleh manajer bisnis,
6.       Kemampuan untuk mengevaluasi informasi dan para spesialis, dan
7.       Fleksibilitas dan kesediaan untuk mencoba pendekatan baru.
Feeny dan Willcocks (1998) mengakui bahwa dua indicator utama dari manajer proyek terlihat sebagai efektivitas, yaitu pengalaman proyek yang sukses sebelumnya dan kredibilitas manajer di mata stakeholder. Menurut Mateyaschuk (1998), dan Weston dan Stedman (1998a,b), dasar-dasar pemikiran untuk ini seperti kondisi-kondisi, yang diambil bersama-sama, bantuan yang memastikan bahwa manajer proyek mempunyai keterampilan yang diperlukan untuk melaksanakan sebuah proyek sampai pada penyelesaian dengan stakeholder bisnis yang akan terus mendukung proyek tersebut. Penelitian juga menyatakan bahwa kondisi ini tidak mudah untuk dimengerti, kompleks dengan keadaan yang cepat berubah dari kebutuhan proyek yang mempunyai suatu dampak kritis atas kesuksesan manajer proyek perangkat lunak. Sedangkan menurut Pawel Brodzinki (2009), seperti yang ia tulis di webnya, mengatakan bahwa ada 10 kualitas yang harus dimiliki oleh seorang manajer proyek, yaitu:
1.       Harus dapat mengorganisasi,
2.       Harus lebih sering berkomunikasi,
3.       Harus jujur terhadap klien,
4.       Harus bias mencari solusi, bukan menyalahkan orang lain,
5.       Harus bias bekerja sama dengan pelanggan,
6.       Harus bias memahami cerita bisnis di balik proyek,
7.       Harus bias memahami hal-hal teknis selama pelaksanaan proyek,
8.       Tidak ragu untuk menyampaikan umpan balik yang negative bila diperlukan,
9.       Tidak kecewa atas pendapat-pendapat yang tidak wajar terhadap pekerjaan yang sedang dikerjakan, dan
10.   Harus selalu mengharapkan hal-hal yang tidak terduga

Faktor Tim
Tim dapat digambarkansebagai suatu kelompok perseorangan yang telah terorganisasi untuk kepentingan bekerja bersama untuk mencapai sekumpulan tujuan yang tidak bisasecara efektif dicapai oleh perseorangan yang bekerja sendiri. Efektivitas suatu tim mungkin diukur dalam hasil terhadap penerimaa pelanggan, kemampuan tim, dan kepuasan perseorangan.
Masukan perseorangan dan organisasi dengan mantap memengaruhi masukan tim. Proses pekerjaan tim ditandai oleh usaha yang mengarah pada tujuan, pengetahuan dan keahlian yang digunakan, strategi pengadopsian, dadan dinamika kelompok. Konstruksi tim dan manajemen merupakan sebuah tantangan kritis di dalam pemecahan masalah yang dikendalikan perangkat lunak (software-driven). Sebuah tim akan memerlukan:
1.       Identifikasi tujuan,
2.       Definisi strategi,
3.       Manajemen tugas,
4.       Manajemen waktu,
5.       Penempatan sumber daya,
6.       Komposisi tim antardispilin ilmu,
7.       Waktu control,
8.       Pelatihan,
9.       Komunikasi tim,
10.   Keterpaduan tim, dan
11.   Evaluasi dan jaminan kualitas.
Karakteristik utama dari kesuksesan tim mencakup:
1.       Pembagian tujuan
Harus ada kesadaran bersama pada tujuan tim umum dari semua anggota tim. Berbagi tujuan adalah sasaran yang langsung, panduan dan pengintegrasian usaha perseorangan untuk mencapai hasil yang diharapkan.
2.       Kolaborasi efektif
Suatu tim harus bekerja sebagai tim. Tim ini memerlukan kerja sama, individu pemberi kontribusi, pertukaran gagasan dan pengetahuan oleh individu, dan pembangunan hubungan antarpribadi, dan kepercayaan. Lingkungan proyek memudahkan dan mendorong kerja sama yang efektif dan interoperasi.
3.       Kemampuan individual
Masing-masing anggota tim harus dilatih dan dipandu agar bisa bekerja sama dengan anggota tim lainnya.

Beberapa karakteristik lain dari tim yang berjalan dengan baik meliputi:
1.       Pembagian misis dan tujuan,
2.       Peneyebaran informasi lengkap tentang jadwal, aktivitas, dan prioritas,
3.       Pengembangan suatu pemahaman peran dari tiap anggota tim,
4.       Pemahaman untuk memperhatikan konflik dan kebutuhan untuk memecahkannya,
5.       Secara efisien memanfaatkan kemampuan perseorangan,
6.       Secara efektif menyebarkan pertemuan –pertemuan,
7.       Dengan teliti mengevaluasi kinerja dari tiap anggota tim, dan
8.       Secara terus menerus memperbarui keahlian perseorangan untuk menemukan kebutuhan yang ada.
Indicator tambahan dari operasi yang efektif meliputi tingkat dari keterlibatan dan keikutsertaan manajemen proyek, focus pada tujuan, tanggung jawab bersama, orientasipada pemikiran secara strategis, dan kecepatan untuk tanggap terhadap tantangan dan peluang. Karakteristik kinerja tim ini memerlukan tiap-tiap anggota tim untuk menyokong ide, beroperasi pada lingkungan yang berisi keanekaragaman keahlian , memahami kontribusi dari yang lain, berbagi pengetahuan, menanyakan tingkat pemahaman secara aktif, mengambil bagian dengan penuh semangat, dan melatih fleksibilitas.

Faktor Pelanggan
Ada suatu kebenaran yang mutlak, yaitu rekayasa perangkat lunak harus bisa menjadi pengendali pelanggan (customer-driver). Bagian ini mempertimbangkan beberapa karakteristik dan teknik khusus dari lingkungan pengembangan perangkat lunak yang dikendalikan pelanggan (customer-driven), yang meliputi:
1.       Pengembangan yang dikendalikan pelanggan bersifat padat kebutuhan dan dikendalikan fitur
Karena kebutuhan pelanggan adalah prioritas yang tertinggi, kebutuhan pelanggan harus secara hati-hati dikumpulkan, dikenali, ditetapkan, divisualisasikan, dan secara internal, diprioritaskan anatarkebutuhan sendiri. Sebagai konsekuensinya, kebutuhan rekayasa menjadi kunci tahap strategis antarproses rekayasa perangkat lunak.
2.       Pengembangan yang dikendalikan pelanggan bersifat iterative
Pengembangan iterative menjadi penting karena mengizinkan umpan balik yang luas dan pemberian jawaban untuk umpan balik.
3.       Pengembangan yang dikendalikan pelanggan bertujuan untuk mengembangkan aplikasi-aplikasi terbaik (killer application)
Teknik ini adalah satu-satunya cara untuk bertahan pada pasar yang sangat tinggi kompetisisnya.
4.       Pengembangan yang dikendalikan pelanggan sangat menghargai waktu pemasaran
Waktu berarti kesempatan sehingga aplikasi harus direkayasa secara cepat dan efisien, cukup untuk menangkap peluang pasar yang bergantung waktu.
5.       Pengembangan yang dikendalikan pelanggan berusaha untuk memberikan kepuasan pada banyak stakeholder melalui situasi yang saling menguntungkan
Setiap aktivitas pengembangan perangkat lunak melibatkan banyak orang, masing-masing mempunyai tujuan dan pandangan yang berbeda. Oleh karena itu, rekonsiliasi yang efektif dari konflik atas kebutuhan system menjadi sebuah factor kunci dalam meyakinkan kepuasan pelanggan.
6.       Pengembangan yang dikendalikan pelanggan berfokus pada kualitas produk dan layanan
Jaminan kualitas menyiratkan pengaturan proses perangkat lunak, seperti pengembang dan pelanggan yang dicukupi dengan kualitas dan konsistensi barang-barang atau jasa yang dihasilkan atau yang disediakan.
7.       Pengembangan yang dikendalikan pelanggan memandang pelanggan sebagai mitra, tidak hanya sebagai pembeli
Dalam meyakinkan harapan pelanggan, pelanggan perlu duduk bersama dengan pengembang pada masing-masing tahap proses pengembangan perangkat lunak. Hal tersebut dapat memperkecil resiko dan mengurangi siklus waktu selama proses pengembangan.
8.       Pengembangan yang dikendalikan pelanggan dapat dikostumisasi, dipersonalisasi, dan sesuai dengan kebutuhan individu dan perubahan pada kebutuhan
Tidak ada dua bisnis atau perseorangan yang sama (permintaan dan kebutuhan bertukar-tukar dan meningkat bahkan antarorganisasi tunggal). Mengenali perbedaan perseorangan dan keanekaragaman organisasi menjadi suatu kerumitan dalam penyediaan solusi yan efektif.
9.       Pengembangan yang dikendalikan pelanggan diarahkan oleh psikologi kognitif
Psikologi kognitif mendapat pemikiran seperti bahasa untuk program sumber perangkat lunak. Oleh karena itu, suatu pendekatan pengembangan perangkat lunak yang dikendalikan pelanggan perlu menguji luas perancangan perangkat lunak denagn teliti untuk mencerminkan kebutuhan pelanggan sebagai kebutuhan yang dirasakan oleh pelanggan.
10.   Pengembangan yang dikendalikan pelanggan harus informative dan mudah diakses
Perancangan suatu solusi perangkat lunak di dalam “era pelanggan” (customer age) memerlukan layanan pelanggan yang penuh, dan mendukung bantuan yang terdokumentasi dengan baik dan web interaktif. Aplikasi tidak menyediakan informasi pendukung, seperti subjek kepada keluhan pelanggan, ketidakpuasan, dan penolakan.
11.   Keamanan dan privasi adalah suatu pertimbangan dalam solusi yang dikendalikan pelanggan
Untuk mendapatkan kepercayaan pelanggan, perekayasa perangkat lunak harus merancang system yang dapat dipercaya, dan peka akan invasi privasi atau serangan peretas (hacker). Keamanan dan privasi merupakan perhatian utama dari pelanggan perangkat lunak.

PENGUKURAN FAKTOR-FAKTOR PRODUK PERANGKAT LUNAK

Ada berbagai sudut pandang mengenai bidang pengukuran. Juga ada banyak sekali langkah yang dinilai oleh para professional atau di dalam beberapa konteks. Beberapa pihak percaya bahwa kuantitas pengukuran kualitas perangkat lunaknya itu penting, sedangkan di sisi lain ada yang percaya bahwa konteks dengan pengukuran kuantitatifnya itu berguna dan sangat jarang ada sehingga menjatuhkan pilihan pada pengukuran kuantitatif. Beberapa pemimpin di bidang pengujian perangkat lunak telah menulis sulitnya pengukuran yang benar-benar kita inginkan, termasuk diantaranya adalah Dr. Cem Kaner dan Douglass Hoffman.

Salah satu contoh metric adalah jumlah kesalahan yang dihadapi dalam perangkat lunak. Perangkat lunak yang berisi beberapa kesalahan dianggap memiliki beberapa kualitas yang lebih tinggi daripada perangkat lunak yang mengandung banyak kesalahan. Pertanyaan-pertanyaan yang dapat membantu manfaat dari metric ini dalam konteks tertentu meliputi:
1.       Apa yang menyebabkan munculnya “banyak kesalahan?” apakah penyebabnya berbeda-beda tergantung pada tujuan dari perangkat lunak (misalnya, perangkat lunak blogging versus perangkat lunak navigasional)? Apakah penyebab mempertimbangkan ukuran dan kompleksitas dari perangkat lunak?
2.       Apakah akun tersebutdigunakan untuk kepentingan bug (dan untuk kepentingan para stakeholder)? Apakah kejadian itu merupakan sebuah usaha yang dilakukan untuk menemukan kesalahan atau kejadian itu akan memengaruhi para penggunanya? Jika demikian, bagaimana? Dan jika tidak bagaimana caranya mengetahui bahwa 100 kesalahan yang ditemukan lebih baik dari 1000 kesalahan?
3.       Jika hitungan dari kesalahan yang ditemukan menyusut, bagaimana cara mengetahuinya, dan apa artinya? Sebagai contoh, produk yang ada sekarang tentu tidak bisa dianggap mempunyai kualitas yang dianggap mempunyai kualiatas yang lebih tinggi daripada produk-produk sebelumnya. Atau apakah proyek tersebut merupakan perubahan ambisius yang lebih kecil/kurang dari yang sebelumnya? Atau, apakah waktu para penguji menjadi lebih sedikit daripada waktu yang ada pada proyek-proyek sebelumnya? Atau, apakah proyek tersebut telah diuji oleh para penguji yang kurang terampil daripada penguji sebelumnya?
Factor-faktor kualitas perangkat lunak tidak dapat diukur karena definisinya yang kabur. Sangatlah pnting untuk menemukan pengukuran atau metric yang dapat digunakan untuk mengukur mereka sebagai persyaratan nonfungsional. Misalnya, keandalan merupakan factor kualitas perangkat lunak yang tidak dapat dievaluasi sendiri. Namun, ada atribut yang berhubungan pada keandalan yang benar-benar dapat diukur, misalnya waktu rata-rata untuk gagal, tingkat kegagalan, dan ketersediaan dari system. Dengan cara yang sama, suatu atribut portabilitas didefinisikan sebagai banyaknya pernyataan yang bergantung target di dalam program.

KEBUTUHAN KUALITAS PERANGKAT LUNAK
Faktor-faktor yang memengaruhi
Berbagai factor yang memengaruhi perncanaan, manajemen, dan pemilihan aktivitas SQM dan teknik-teknik adalah sebagai berikut:
1.       Daerah system yang akan ditempati perangkat lunak (safety-critical, mission-critical, dan business critical),
2.       Kebutuhan system dan perangkat lunak,
3.       Komponen komersial (eksternal) atau standar (internal) untuk digunakan di dalam system,
4.       Standar rekayasa perangkat lunak spesifik yang bisa diterapkan,
5.       Metode dan tool perangkat lunak yang digunakan untuk pengembangan dan pemeliharaan, dan untuk peningkatan dan evaluasi kualitas,
6.       Anggaran, staf, organisasi proyek, rencana, dan penjadwalan dari semua proses-proses,
7.       Pengguna yang diharapkan dan penggunaan system, dan
8.       Tingkat integritas system.
Informasi pada factor ini memengaruhi bagaimana proses SQM diorganisasikan dan didokumentasikan, bagaimana aktivitas SQM spesifik dipilih, dan sumber daya apa yang diperlukan dan yang akan memaksakan batas atau usaha.

Keterkaitan
Dalam situasi dengan kegagalan system yang mungkin mempunyai konsekuensi yang sangat hebat, keterkaitan keseluruhan (perangkat keras, perangkat lunak, dan manusia) adalah kebutuhan kualitas yang utama disamping kemampuan dasar. Keterkaitan perangkat lunak mencakup karakteristik toleransi kesalahan, keselamatan, keamanan, dan usabilitas. Keandalan juga menjadi sebuah ukuran yang dapat digambarkan dalam hubungannya dengan keterkaitan.
Badan literature untuk system harus sangat dapat tergantung (“kepercayaan tinggi” atau “system integritas tinggi”). Istilah untuk mekanisme tradisional dan system elektrik yang tidak boleh mencakup perangkat lunak telah di import untuk mendiskusikan ancaman atau risiko, integritas system, dan konsep yang berhubungan, dan mungkin menemukan acuan yang dikutip untuk bagian ini.

Tingkat integritas perangkat lunak
Tingkat integritas ditentukan berdasarkan pada konsekuensi kegagalan dari perangkat lunak. Dalam perangkat lunak yang mementingkan keselamatan atau keamanan, teknik-teknik seperti analisis risiko untuk keselamatan atau analisis ancaman untuk keamanan mungkin digunakan untuk mengembangkan suatu aktivitas perencanaan yang akan mengidentifikasi daerah yang potensial terhadap kekacauan. Sejarah kegagalan dari perangkat lunak juga bisa membantu mendeteksi kesalahan dan menilai kualitas. Tingkatan integritas ( miasalnya, gradasi integritas) akan di usulkan di dalam suatu perangkat lunak.


Category: 1 komentar

1 komentar:

Unknown mengatakan...

Terimakasih.. tulisannya sangat bermanfaat..
My blog

Posting Komentar