Proses Perangkat Lunak
Kualitas Software Menurut Robert L Glass (Glass, 2002), kualitas software adalah mengenai sekumpulan atribut yang seharusnya dimiliki oleh suatu produk software. Atribut-atribut tersebut adalah: Portability. Kemudahan pemindahan software ke platform lain. Reliability. Software dapat diandalkan untuk melakukan apa yang seharusnya dilakukan. Efficiency. Software dapat melakukan pekerjaan dengan waktu kerja dan penggunaan resource yang ekonomis. Human Engineering. Software dapat digunakan dengan mudah dan nyaman. Testability. Software mudah dievaluasi dengan melakukan pengujian (testing). Understandability. Software mudah dipahami sehingga memudahkan proses pemeliharaan. Modifiability. Software mudah dipelihara (maintain) dan diubah.
Portability Portability pada software, sangat tergantung kepada teknologi yang digunakan. Pemilihan teknologi didasari oleh pertimbangan yang matang berdasarkan hasil analisis terhadap calon pengguna. Jika calon pengguna menggunakan platform yang heterogen, maka portability adalah hal yang sangat penting. Namun portability akan berkurang prioritasnya ketika calon pengguna menggunakan spesifikasi teknologi yang seragam.
Reliability Reliability adalah atribut yang tidak dapat ditawar. Hal ini dapat dicapai dengan melakukan proses analisis kebutuhan calon pengguna dengan baik. Dengan menganalisa masalah calon pengguna, lalu menyimpulkan solusi dari maka engineer dapat lebih menjamin reliability dari suatu software. Selain dari sisi analisis kebutuhan, pengujian sistem dengan mekanisme yang baik juga dapat meningkatkan reliability software. Pengujian sistem adalah fase untuk memastikan bahwa sistem sudah dapat berjalan sesuai dengan yang diharapkan.
Efficiency Efficiency adalah atribut yang seringkali tidak diperhatikan. Umumnya hal tersebut terjadi, karena tim pengembang fokus kepada spesifikasi fungsional sistem. Ketika spesifikasi fungsional sudah terpenuhi, maka modul software dianggap telah mencapai kualitas yang baik. Efficiency seringkali tidak terasa dibutuhkan pada aplikasi sistem informasi yang tidak melakukan proses yang rumit. Namun untuk proses yang rumit, efficiency menjadi hal yang sangat penting untuk diperhatikan. Efficiency dapat dicapai dengan disain yang baik dan code review terhadap hasil implementasi disain yang dilakukan. Selain itu, pada saat pengujian (testing), perlu dilakukan stress testing, suatu proses pengujian yang menekankan pada kemampuan software pada saat melakukan proses pada keadaan yang tersulit (e.g. data yang sangat banyak).
Human engineering Human engineering dapat dicapai dengan melakukan perancangan antar muka software dengan baik. Hal ini juga berkaitan dengan efficiency jika software melakukan proses yang rumit, karena pengguna akan merasa tidak nyaman jika proses yang dilakukan terlalu lama.
Testability Testability akan berpengaruh terhadap reliability. Engineer dapat menyimpulkan bahwa suatu software sudah cukup reliable untuk direlease adalah berdasarkan hasil pengujian. Karena itu, testability adalah atribut yang sangat penting dalam pengembagan software.
Understandability dan modifiability Understandability dan modifiability. Kedua atribut tersebut bisa diacapai dengan melakukan proses disain yang baik dan kontrol terhadap kode yang dihasilkan oleh programmer. Pada pengembangan software, terdapat suatu framework yang digunakan oleh seluruh engineer dalam mengembangkan modul. Kode program yang dihasilkan perlu direview agar dapat dipastikan bahwa programmer telah menulis kode sesuai dengan standar yang sudah ditetepakan di framework. Dengan perancangan dan penulisan kode yang sesuai dengan standar yang ada, maka disain dan kode yang dihasilkan oleh engineer akan mudah untuk dipahami oleh engineer lain. Hal ini menjadi atribut yang sangat penting untuk diperhatikan, terutama jika engineer yang mengerjakan sering berganti
Atribut dari kualitas software Atribut dari kualitas software menurut Karl Wiegers terdiri dari 12 atribut dengan tambahan satu atribut yang berkaitan dengan user serta satu atribut yang berkaitan dengan sitem itu sendiri. Atribut kualitas software yaitu: Reliability, sejauh mana suatu software dapat diharapkan untuk melaksanakan fungsinya dengan ketelitian yang benar. Usability, kemampuan software yang dapat digunakan oleh users, meliputi faktor manusia dan penggunaan dokumen. Integrity, sejauh mana suatu software dalam memfasilitasi kombinasi informasi dari departemen lain . Efficiency, sejauh mana suatu software dalam menjalankan proses data. Portability, sejauh mana suatu software dapat berpindah dari satu lingkungan operasi pada lingkungan operasi lainnya. Reusability, sejauh mana suatu software dapat mengkonversi komponen perangkat lunak untuk digunakan dalam aplikasi lainnya. Interoperability, menunjukkan seberapa mudahnya suatu software dapat bertukar data atau layanan dengan software lainnya.
Atribut dari kualitas software Maintainability, sejauh mana suatu software dalam perawatannya. Flexibility, sejauh mana suatu software dapat beradaptasi dengan berbagai kebutuhan dari para pengguna serta dalam perubahan suatu kondisi. Testability, menunjukkan seberapa mudah suatu software dalam menunjukkan suatu kesalahan. Robustness, seberapa baik suatu software dalam menanggapi suatu kondisi yang tidak terduga. Installability, sejauh mana suatu software dapat dikembangkan kembali suatu waktu. Safety, sejauh mana suatu software dalam berinteraksi dengan penggunanya seperti keamanan data. Availability, ukuran waktu mulai dari perencanaan sampai software benar-benar tersedia dan dapat digunakan sepenuhnya untuk beroperasi.
Paremeter Perangkat Lunak Yang Berkualitas Berdasarkan Sudut Pandang Sisi Sponsor : Tujuan utama sponsor adalah menghasilkan dan atau menghemat uang. Sponsor ingin menggunakan perangkat lunak tersebut untuk meningkatkan produktivitas organisasi. Sponsor mengharapkan untuk dapat menghasilkan sebuah layanan dengan biaya yang rendah tetapi masuk akal. Karena itu sistem yang dibuat harus handal, fleksibel dan efisien. Selain itu biaya dari pemeliharaan, modifikasi dan peningkatan dari sistem tersebut harus serendah mungkin. Sisi Pemakai : Bagi pemakai perangkat lunak adalah alat untuk membantu menyelesaikan tugas-tugasnya. Karena itu perangkat lunak harus menyediakan fungsi-fungsi yang dibutuhkan oleh pemakai. Perangkat lunak juga harus handal dan efisien, perangkat lunak harus dapat menghasilkan output yang konsisten. Selain itu pemakai harus merasa perangkat lunak yang dibuat mudah untuk dipelajari, mudah digunakan dan mudah untuk diingat. Sisi Maintainer/modifier : Yang diinginkan oleh maintainer/modifier adalah perangkat lunak tersebut memiliki sangat sedikit error pada saat penginstallan pertama (catatan : sangat kecil kemungkinannya untuk menghasilkan perangkat lunak yang 100 % bebas dari bug). Selain itu perangkat lunak tersebut harus terdokumentasi dengan baik. Source code juga harus mudah dibaca, terstruktur dan dirancang dengan baik dan bersifat modular.
Paremeter Perangkat Lunak Yang Berkualitas Berdasarkan Sudut Pandang
Masalah-masalah perangkat lunak Perangkat lunak telah diselesaikan dan diserahkan (delivered) tetapi tidak pernah digunakan (47%). Pemakai (user) sudah membayar untuk perangkat lunak tetapi tidak pernah jadi dan diserahkan (29,7%). Perangkat lunak digunakan setelah dilakukan modifikasi (3%). Perangkat lunak digunakan sebagaimana mestinya (2%). Selain itu faktor pendukung kehadiran rekayasa perangkat lunak adalah : Ketidak mampuan untuk memprediksi waktu, usaha dan biaya pada pengembangan perangkat lunak. Kualitas perangkat lunak yang kurang baik. Perubahan perbandingan (rasio) harga perangkat keras dan perangkat lunak. Kemajuan teknologi perangkat keras. Kemajuan teknik perangkat lunak. Kebutuhan yang meningkat terhadap perangkat lunak. Kebutuhan akan perangkat lunak yang lebih besar dan kompleks.
Atribut-atribut PL yang baik Perangkat Lunak seharusnya memberikan user kebutuhan fungsionalitas dan kinerja yang : Dapat dipelihara (Maintanability) PL harus dapat memenuhi perubahan kebutuhan user. Dapat diandalkan (Dependability) PL harus dapat dipercaya dan tidak menyebabkan kerusakan fisik atau ekonomi jika terjadi kegagalan sistem. Efisien PL harus efisien dalam penggunaan sumber daya sistem. Kemampuan pemakaian (Usability) PL harus dapat dipakai sesuai dengan yang direncanakan.
Faktor dan Ukuran Kualitas Perangkat Lunak ( McCall )
Faktor dan Ukuran Kualitas Perangkat Lunak ( McCall ) Berfokus pada tiga hal pokok : Karakteristik operasional kemampuan mengatasi perubahan Kemampuan beradaptasi pada lingkungan baru
Faktor dan Ukuran Kualitas Perangkat Lunak ( McCall ) Karakteristik Operasional CORRECTNESS ukuran apakah perangkat lunak yang dihasilkan memenuhi spesifikasi yang diharuskan dan maksud/tujuan pemakai. RELIABILITY ukuran yang menyatakan nilai kemungkinan suatu program bekerja dengan baik menurut spesifikasi yang dipersyaratkan dalam kurun waktu tertentu EFFICIENCY ukuran yang menyatakan banyaknya sumber daya yang diperlukan untuk proses komputasi dan instruksi yang terdapat pada program untuk menjalankan suatu fungsi tertentu. INTEGRITY ukuran yang manyatakan sejauh mana pemakai atau akses dari pemakai yang tidak berwenang terhadap program dan data dapat dikendalikan. USABILITY ukuran sejauh mana usaha yang diperlukan untuk mempelajari mengoperasikan, menyiapkan data masukan dan menginterprestasikan keluaran suatu program.
Faktor dan Ukuran Kualitas Perangkat Lunak ( McCall ) Karakteristik Kamampuan terhadap Perubahan MAINTAINABILITY : usaha yang diperlukan untuk mencari dan menemukan kesalahan program serta memperbaikinya. FLEXIBILITY : usaha yang diperlukan untuk memodifikasi program yang telah jadi atau telah jalan. TESTABILITY : usaha yang diperlukan untuk menguji suatu program, apakah sesuai dengan fungsi yang diharapkan/dipersyaratkan.
Karakteristik Kamampuan Beradaptasi PORTABILITY : usaha yang diperlukan untuk mentransfer suatu program dari satu perangkat keras dan/atau perangkat lunak ke lainnya. REUSABILITY : tolok ukur yang menggambarkan seberapa banyak bagian dari program dapat dipergunakan kembali pada program yang lainnya. INTEROPERABILITY : usaha yang diperlukan untuk menghubungkan suatu program dengan sistem komputer/program lain.
Proses perangkat lunak Proses perangkat lunak adalah sebuah kerangka kerja untuk membangun perangkat lunak yang berkualitas tinggi
Proses Pengembangan Software Sekumpulan aktifitas yang saling terkait untuk spesifikasi, desain,implementasi dan testing perangkat lunak. Proses perangkat lunak sangat rumit dan,seperti semua proses intelektual. Bergantung pada penilaian manusia. Karena dibutuhkan penilaian dan kreatifitas. Keberhasilan usaha untuk mengotomasi proses perangkat lunak menjadi terbatas.
Proses Pengembangan Software Sekumpulan aktifitas terstruktur yang dibutuhkan untuk mengembangkan sistem software, yang meliputi kegiatan : Spesifikasi perangkat lunak : Fungsionalitas perangkat lunak dan batasan kemampuan operasinya harus didefinisikan Pengembangan (Desain&Implementasi) perangkat lunak : Perangkat lunak yang memenuhi spesifikasi harus di produksi Validasi perangkat lunak, Perangkat lunak harus divalidasi untuk menjamin bahwa perangkat lunak bekerja sesuai dengan apa yang diinginkan oleh pelanggan Evolusi perangkat lunak : Perangkat lunak harus berkembang kembali untuk memenuhi kebutuhan pelanggan
System Development Proses Pengembangan (Desain&Implementasi) perangkat lunak Validasi perangkat lunak Spesifikasi perangkat lunak Evolusi perangkat lunak Proses Pengembangan Perangkat Lunak Sistem yang ada Permasalahan Kesempatan Instruksi Pengembangan Sistem Memecahkan masalah meraih kesempatan memenuhi instruksi Sistem yang baru System Development Proses
Proses Software Evolusi perangkat lunak : Perangkat lunak harus berkembang kembali untuk memenuhi kebutuhan pelanggan Model proses software adalah representasi abstrak dari proses. Merupakan gambaran dari proses dari beberapa perspektif tertentu.
Proses perangkat lunak Penjelasan Gambar adalah : Proses : mendefinisikan kerangka kerja (frame work), sehingga pembangunan perangkat lunak dapat dilakukan secara sistematis Metode : mendefinisikan bagaimana perangkat lunak dibangun, meliputi metode-metode yang digunakan dalam melakukan analisis kebutuhan, perancangan, implementasi dan pengujian. Ex : metode terstruktur, metode berorientasi objek, dan lain-lain Alat Bantu : perangkat yang bersifat otomatis maupun semi otomatis yang berfungsi mendukung tiap tahap pembangunan perangkat lunak
Karakteristik Proses Perangkat Lunak Karakteristik Proses Perangkat Lunak terdiri dari: Understandability, membuat proses secara eksplisit didefinisikan dan bagaimana sehingga mudah untuk mengerti definisi proses Visibility, Aktifitas proses menghasilkan hasil yang jelas sehingga tahapan proses yang dilakukan terlihat Supportability, Aktifitas Proses dapat didukung atas CASE tools Acceptability, Penerimaan atas proses yang terdefinisi dan yang digunakan oleh Engineer selama pembangunan Produk Perangkat Lunak. Reliability, Proses didesain dalam suatu metode untuk dihindarkan dari kesalahan Robustness, Proses dapat meneruskan dalam masalah yang tidak diharpkan terjadi Maintainabiity, Proses yang merefleksi atas perubahan thd permintaan atau perbaikan proses yang diidentifikasi Rapidity, bagaimana cepat dapat berjalan atas proses pengiriman atau implementasi sebuah sistem dari Spesifikasi yang ada sampai selesai
Model proses Perangkat Lunak Model proses perangkat lunak merupakan representasi abstrak dari proses perangkat lunak Setiap model proses merepresentasikan proses dari sudut pandang tertentu sehingga hanya memberikan informasi parsial mengenai proses tersebut. Proses-proses yang berbeda digunakan untuk mengembangkan bagian yang berbeda pada sistem
Beberapa metodologi atau model SDLC antara lain adalah: Waterfall Iterasi RAD Spiral FAST Agile Scrum Extreme Programming Rapid prototyping Iterative and incremental Rational Unified Process Dynamic Systems Development Method Synchronize and stablize
Proses Pengembangan Perangkat Lunak Waterfall RAD Spiral Prototype Iteratif FAST Extreme Programming RUP (Rational Unified Process) Agile Software Development Scrum Metodologi
Proses Pengembangan Perangkat Lunak RAD Aji Spiral Teo Extreme Programming Andi RUP (Rational Unified Process) Harde Agile Software Development deo Scrum Metodologi cun”
Tugas Nama Metodologi : Deskripsi Metodologi : Tahapan Tahapan Elaboration Tujuan : Metode yang digunakan Pelaku Keluaran (Output) Dokumen Tahapan A Sama diatas Aturan kerja Kelebihan Kelemahan/kekurangan
Mempersiapkan Sumberdaya manusia yang berkompeten dibidang pengembangan sistem informasi, pegelolaan database, manajemen proyek teknologi informasi, audit sistem informasi, yang mampu memberikan solusi bisnis dengan memanfaatkan teknologi informasi.
Tren Teknologi Informasi Human-centric : pekerjaan kita sehari-hari akan menjadi lebih baik Real-time insight : menyatunya dunia fisik dan digital yang menghasilkan analisis dan informasi secara cepat Business without border : pelaku bisnis bisa memakai teknologi tanpa batasan yang menghambat bisnis tradisionalnya More on "I", less in "T" : informasi, bukan teknologi yang mendorong kita Everything connected : semua mesin akan saling terhubung dan mengalirkan informasi
Tren Teknologi Informasi Trading places : ketersediaan toko online dan mobile dengan mekanisme sederhana Outside in : informasi dan data pribadi milik manusia akan memiliki nilai uang Choice : organisasi harus bisa menghadirkan banyak pilihan Social working : media sosial akan menjadi sarana utama untuk berkolaborasi Crowding out : menggerakkan tenaga kerja melalui web berdasarkan penugasan tanpa biaya tetap Reshaping organization : perubahan disruptif mengubah cara bisnis beroperasi Long live mobile : mobilitas semakin alamiah dan dipersatukan oleh personal cloud