BAB - I Konsep Dasar dan Proses dari Rekayasa Perangkat Lunak Tujuan Pembelajaran Umum Menjelaskan Perangkat Lunak Sebagai Proses Tujuan Pembelajaran Khusus Mampu Menjelaskan Konsep Dasar dan Proses Rekayasa Perangkat Lunak
Arti Software Engineering : Rekayasa perangkat lunak (RPL, atau dalam bahasa Inggris: Software Engineering atau SE) adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembanganan perangkat lunak dan manajemen kualitas. IEEE Computer Society mendefinisikan rekayasa perangkat lunak sebagai penerapan suatu pendekatan yang sistematis, disiplin dan terkuantifikasi atas pengembangan, penggunaan dan pemeliharaan perangkat lunak, serta studi atas pendekatan-pendekatan ini, yaitu penerapan pendekatan engineering atas perangkat lunak. 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 kata software engineering masukan konferensi tersebut menimbulkan debat tajam tentang aspek engineering dari pengembangan perangkat lunak, banyak pihak yang menganggap konferensi tersebutlah yang menjadi awal tumbuhnya profesi rekayasa perangkat lunak Rekayasa perangkat lunak berkualitas tinggi dengan cara yang sistematis, terkontrol, dan efisien. Konsekuensi, terdapat penekanan penting pada analisis dan evaluasi, spesifikasi, desain, dan evolusi pada perangkat lunak. Selain itu, ada masalah yang berkaitan dengan manajemen dan kualitas, terhadap hal baru dan kreativitas, dengan standar, keterampilan individu, dan praktek kerja tim dan praktis profesional yang memainkan peran penting dalam rekayasa perangkat lunak. 1 Rekayasa Perangkat Lunak adalah penetapan dan penggunaan prinsip-prinsip rekayasa untuk mendapatkan perangkat lunak yang ekonomis, yaitu perangkat lunak yang dapat diandalkan dan bekerja efisien pada mesin yang riil (Roger, 2005, p10) .
1
Software Enggineering 2004 (SE 2004) http://sites.computer.org/ccse/SE2004Volume.pdf , diakses tanggal : 12 April 2012
Dalam penelitian ini kita menggunakan paradigma Mo de l Waterfall atau Siklus Hidup Klasik (Classic Life Cycle) sebagai metode perancangan. Dalam buku Roger Pressman(2005,p10), perangkat lunak adalah : 1. Perintah (program komputer) yang bila dieksekusi memberikan fungsi dan unjuk kerja seperti yang digunakan. 2. Struktur data yang memungkinkan program memanipulasi informasi secara proporsional. 3. Dokumen yang menggambarkan operasi dan kegunaan program. Menurut Roger (2005,p10-14), perangkat lunak memiliki ciri khas yang berbeda dari perangkat keras, yaitu : 1. Perangkat lunak dibangun dan dikembangkan, tidak dibuat dalam bentuk yang klasik. Meskipun banyak kesamaan di antara pabrik perangkat keras dan perangkat lunak, aktivitas keduanya secara mendasar sangat berbeda. Dalam kedua aktivitas tersebut, kualitas yang tinggi dicapai melalui perancangan yang baik, tetapi di dalam fase pembuatan perangkat keras, selalu ditemukan masalah kualitas yang tidak mudah untuk disesuaikan dengan perangkat lunak. 2. Perangkat lunak tidak pernah usung. Perangkat lunak tidak rentan terhadap pengaruh lingkungan yang merusak yang menyebabkan perangkat keras menjadi usung. 3. Sebagian besar Perangkat lunak dibuat secara custom-built,serta tidak dapat dirakit dari komponen yang sudah ada. Dalam membangun atau membuat perangkat lunak yang baik, melalui beberapa tahapan antara lain: 1. Fase Perencanaan (Planning) : a) Rencana software b) Analisa kebutuhan software c) Analisa cost banefit (Salah satu bagian dari studi kelayakan) 2. Fase Pengembangan (Development) : a) Coding b) Testing Macam-macam test program : i) Unit test (Test per modul) ii) Integreated test (Test penggabungan dari modul-modul yang telah diuji) iii) Validated test (Diuji dengan data sebenarnya) iv) System test (Test dilakukan dengan lingkungan sebenarnya) v) Topdown test (Test gabungan dari atas ke bawah) vi) Bottom up test (Test gabungan dari bawah ke atas) 3. Fase Pemeliharaan (Maintenance) : Jenis-jenis maintenance
a) Koreksi (Corection) b) Adaptasi (Adaptive) Software dikembangkan sesuai dengan tuntutan perkembangan jaman c) Adaptasi yang berkembang pada dewasa ini terbagi atas : i) Sistem Operasi Pengarahan sistem operasi yang bersifat multi user. Contoh : UNIX Sistem operasi yang bersifat jaringan. Contoh : NOVELL ii) RDBMS - Relational DataBase Management System Berkembang dalam bentuk bahasa SQL (Structure Query Language). iii) Bahasa Mengarah pada perkembangan bahasa generasi ke empat (4GL - Fourth Generation Language) Bahasa 4GL adalah suatu bahasa yang dibuat untuk meningkatkan produktifitas programmer dan end user. Contoh : a) INFORMIX - Dapat dijalankan pada PC dengan minimum RAM 4MB + 640KB dan disk storage > 40MB b) ORACLE c) INGRES d) AS / SET - Digunakan pada IBM AS 400 e) POWER HOUSE - digunakan pada HR 3000 iv) Perfective Menyempurnakan software yang ada biasanya dilakukan karena permintaan / saran / kritik user Ruang Lingkup Perangkat Lunak 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 design 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
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
Perangkat Lunak dan Rekayasa Perangkat Lunak (Software and Software engineering)
Selama tiga dekade pertama dari era komputerisasi, tantangan utama adalah mengembangkan hardware komputer yang dapat mengurangi biaya pengolahan dan penyimpanan data. Selama dekade tahun 1980 an, kemajuan yang pesat dari mikro elektronik menghasilkan kemampuan komputer yang lebih baik pada tingkat biaya yang lebih rendah. Namun masalah sekarang berbeda. Tantangan utama adalah mengurangi biaya dan memperbaiki kualitas solusi berbasis komputer (Solusi yang diimplementasikan dengan mempergunakan software). Software merupakan faktor kunci dalam keberhasilan suatu usaha, software dapat membedakan satu perusahaan dari perusahan saingannya. Evolusi Perkembangan Perangkat Lunak
Evolusi software
1950
1960
1970
1980
1990
2000
Tahun-tahun awal :
Batch orientation Limmited distribution Custummer software
Era kedua :
Multi user Real time Database
Era ketiga
Distibuted system Embedded intellegence Low cost hardware Consumer infact
Era keempat :
Expert system A I Machine Parallel architecture
Tahun-Tahun pertama Batch Orientation Suatu orientasi di mana proses dilakukan setelah data dikumpulkan dalam satuan waktu tertentu, atau proses dilakukan setelah data terkumpul, lawan dari batch adalah ONLINE atau Interactive Process. Keuntungan dari Interactive adalah mendapatkan data yang selalu up to date.
Limmited distribution Suatu penyebaran software yang terbatas pada perusahaan-perusahaan tertentu.
Custom software Software yang dikembangkan berdaasarkan perusahaan-perusahaan tertentu.
Era Kedua : Multi user Suatu sistem di mana satu komputer digunakan oleh beberapa user pada saat yang sama.
Real Time Suatu sistem yang dapat mengumpulkan, menganalisa dan mentransformasikan data dari berbagai sumber, mengontrol proses dan menghasilkan output dalam mili second.
Database Perkembangan yang pesat dari alat penyimpan data yang OnLine menyebabkan muncul generasi pertama DBMS (DataBase Management System).
Product Software Adalah software yang dikembangkan untuk dijual kepada masyarakat luas.
Era Ketiga : Distributed system Suatu sistem yang tidak hanya dipusatkan pada komputer induk (Host computer), daerah atau bidang lainnya yang juga memiliki komputer yang ukurannya lebih kecil dari komputer induk. Lawan dari distributed system adalah Centralized System.
Embedded Intelegence Suatu product yang diberi tambahan “Intellegence” dan biasanya ditambahkan mikroprocessor yang mutakhir. Contohnya adalah automobil, robot, peralatan diagnostic serum darah.
Low Cost Hardware harga hardware yang semakin rendah, ini dimungkinkan karena munculnya Personal Computer.
Consummer Inpact Adanya perkembangan komputer yang murah menyebabkan banyaknya software yang dikembangkan, software ini memberi dampak yang besar terhadap masyarakat.
Era Keempat :
Expert system Suatu penerapan A.I. (Artificial Intellegence) pada bidang-bidang tertentu, misalnya bidang kedokteran, komunikasi, dll.
AI Machine Suatu mesin yang dapat meniru kerja dari sebagian otak manusia. Misalnya mesin robot, komputer catur.
Parallel Architecture Arsitektur komputer yang memungkinkan proses kerja LAN paralel, yang dimungkinkan adanya prosesor berbeda dalam satu komputer
Arti Perangkat Lunak 1. Instruksi Atau program komputer yang ketika dieksekusi akan memberi fungsi dan hasil yang diinginkan. 2. Struktur data Yang memungkinkan program memanipulasi informasi 3. Dokumen Yang menggambarkan operasi dan penggunaan program.
Sifat dab Karakteristik Perangkat Lunak 1. Software merupakan elemen sistem logik dan bukan elemen sistem fisik seperti hardware 2. Elemen itu tidak aus, tetapi bisa rusak. 3. Elemen software itu direkayasa atau dikembangkan dan bukan dibuat di pabrik seperti hardware 4. Software itu tidak bisa dirakit.
Komponen Perangkat Lunak 1. Bentuk bahasa Terbagi 2, yaitu
A. High Level, contoh PASCAL, COBOL, FORTRAN. B. Middle Level, contoh C 2. Bentuk translator Terbagi 3 , yaitu : A. Interpreter Menerjemahkan dari bahasa tingkat tinggi ke bahasa tingkat rendah secara satu persatu (statemen demi statemen) B. Compiler Menerjemahkan secara keseluruhan, proses lebih cepat dari interpreter C. Assembler Menerjemahkan dari bahasa rakitan ke bahasa mesin 3. Bentuk mesin : LANGUAGE FORM
HIGH LEVEL MIDDLE LEVEL
T RANSLAT OR
MACHINE LANGUAGE
Gambar : Komponen Perangkat Lunak Perangkat Lunak Aplikasi (Application Software)_ Perangkat lunak dapat diaplikasikan ke berbagai situasi dimana serangakaian langkah prosedural (seperti algoritma) telah didefinisikan. Kandungan (content) dan determinasi informasi merupakan faktor penting dalam menentukan sifat aplikasi perangkat lunak. Content mengarah pada arti dan bentuk informasi yang masuk dan keluar. Misalnya, banyak aplikasi bisnis memakai data input dengan struktur data lebih tinggi (misal database) dan mengahasilkan laporan yang sudah terformat. Perangkat lunak yang mengontrol mesin otomatis menerima bentuk data diskrit dengan struktur yang terbatas dan menghasulkan perintah mesin individual dalam ekskusi yang cepat. Sedangkan determinasi informasi merujuk pada predikbilitas urutan dan timing informasi. Berikut beberapa jenis aplikasi perangkat lunak :
a. Perangkat lunak sistem. Sekumpulan program untuk melayani program–program lain, misalnya sistem operasi, kompiler, editor, utilitas pengatur file, driver, prosesor telekomunikasi. b. Perangkat lunak real-time. Program-program untuk mengontrol/menganalisis/ memonitor kejadian dunia nyata pada saat terjadinya. Misalnya program untuk mengontrol mesin industri. c. Perangkat lunak bisnis. Program untuk pemrosesan informasi di dunia bisnis, mulai dari payroll, account payable, inventory, post system, sampai perangkat lunak sistem informasi manajemen yang bisa mengakses satu atau lebih database. d. Perangkat lunak teknik dan ilmu pengetahuan. Jangkauan aplikasinya meliputi, asmronomi, vulkanologi, kedokteran, analisis otomotif, biologi, mesin-mesin pabrik, sampai pada perangkat bantu dalam perancangan (computer aided design) untuk konstuksi bangunan, komponen elektronik, rancangan mesin, simulasi sitem, dan lain-lain. e. Embeded Software. Program yang disertakan dalam suatu perangkat dan berfungsi untuk mengontrol hasil serta sistem perangkat tersebut. Contoh : key pad control untuk microwave, fungsi digital pada automobil (pengontrol bahan bakar, penampilan dash board, sistem rem, dll). f. Perangkat lunak komputer personal. Program–program yang bisa dijalankan pada komputer personal. Contoh : pengolah kata, multimedia, hiburan, manajemen database, aplikasi keuangan bisnis, dll. g. Perangkat lunak kecerdasan buatan dan jaringan syaraf tiruan. Sistem pakar atau disebut juga sistem berbasis pengetahuan. Program yang digunakan untuk menggerakkan/mengontrol robot, permainan game, pengolah gambar dan pola (image dan voice).
Krisis Perangkat Lunak Adalah sekumpulan masalah yang ditemukan dalam pengembangan software computer. Masalahnya tidak hanya terbatas pada software yang tidak berfungsi sebagaimana mestinya, tetapi krisis software ini terdiri dari masalah yang berhubungan dengan : 1. Bagaimana mengembangkan software ? 2. Bagaimana memelihara software ynag ada, yang berkembang dalam jumlah besar ? 3. Bagaimana mengimbangi permintaan software yang makin besar ?
Masalah Krisis software oleh beberapa masalah : 1. Estimasi jadual dan biaya yang seringkali tidak tepat 2. Produktivitas orang-orang software yang tidak dapat mengimbangi permintaan software 3. Kualitas software yang kurang baik.
Penyebab : Masalah yang berhubungan dengan krisis software disebabkan oleh : 1. Karakteristik software itu sendiri Karakteristik software adalah software yang bersifat logika dibandingkan fisik, oleh karena itu mengukur software harus merupakan suatu kesatuan, tidak seperti hardware. Software yang bersifat tidak aus ini menyebabkan kesalahan yang terjadi pada software. Umumnya terjadi pada tahap pengembangan. Manajer tingkat menengah dan tingkat atas yang tidak mempunyai latar belakang software, seringkali diberi tanggung jawab untuk mengembangkan software. Padahal tidak semua manajer itu dapat me-manage semua proyek. Praktisnya : software programmer atau software engineering mendapatkan latihan formal yang sedikit dalam hal tehnik baru pengembangan software. 2. Kegagalan mereka yang bertanggung jawab dalam pengembangan software.
Mitos Perangkat Lunak 1. Mitos managements A. Kita tidak perlu mengubah pendekatan terhadap pengembangan software, karena jenis pemrograman yang kita lakukan sekarang ini sudah kita lakukan 10 tahun yang lalu. Realitasnya : Walau hasil program sama, produktivitas dan kualitas software harus ditingkatkan dengan menggunakan pendekatan software developments B. Kita sudah mempunyai buku yang berisi standarisasi dan prosedur untuk pembentukan software. Realitasnya : Memang buku tersebut ada, tetapi apakah buku tersebut sudah dibaca atau buku tersebut sudah ketinggalan jaman ( out of date ). C. Jika kita tertinggal dari jadwal yang ditetapkan, kita menambah beberapa programmer saja. Konsep ini sering disebut Mongolian harde concept.
2. Mitos Langganan / Customer A. Pernyataan tujuan umum sudah cukup untuk memulai penulisan program. Penjelasan yang lebih rinci akan menyusul kemudian. Realitasnya : Definisi awal yang buruk adalah penyebab utama kegagalan terhadap usaha-usaha pembentukkan software. Penjelasan yang formal dan terinci tentang informasi fungsi performance interface, hambatan desain dan kriteria validasi adalah penting. Karakteristik di atas dapat ditentukan hanya setelah adanya komunikasi antara customer dan developer. B. Kebutuhan proyek yang terus menerus berubah dapat dengan mudah diatasi karena software itu bersifat fleksibel. Kenyataannya memang benar bahwa kebutuhan software berubah, tetapi dampak dari perubahan berbeda dari waktu ke waktu. Biaya akibat perubahan
60 - 100 kali
1 kali
1,5 - 6 kali Waktu penyeles aian
Definition
Developm ent
Maintenance
Kesimpulan : Jika perubahan mendekati akhir penyelesaian, maka biaya akan lebih besar.
3. Mitos Praktisi A. Tidak ada metode untuk analisis disain dan testing terhadap suatu pekerjaan, cukup menuju ke depan terminal dan mulai coding.
Realitasnya : Metode untuk analisis desain dan testing diperlukan dalam pengembangan software. B. Segera setelah software digunakan, pemeliharaan dapat diminimalisasikan dan diatasi dengan cara “CATCH AS CATCH CAM”. Realitasnya : Diperlukan budget yang besar dalam maintenance software. Pemeliharaan software harus diorganisir, direncanakan dan dikontrol seolah-olah sebagai suatu proyek besar dalam sebuah organisasi.
Model Rekayasa Perangkat Lunak Krisis software tidak dapat hilang dalam satu satu malam, di mana tidak ada suatu pendekatan yang baik dalam mengatasi krisis software, namun gabungan dari metode untuk semua fase dalam pengembangan siftware seperti peralatan yang lebih baik untuk mengautomatisasi metode-metode ini, tehnik yang lebih baik untuk mengontrol kualitas, dan filosofi untuk koordinasi kontrol, serta manajemen dipelajari dalam suatu disiplin ilmu yang kita sebut software engineering. Definisi : Menurut Fritz Badar, software engineering adalah disiplin ilmu yang menerapkan prinsipprinsip engineering agar mendapatkan software yang ekonomis yang dapat dipercaya dan bekerja lebih efisien pada mesin yang sebenarnya. Software engineering terdiri dari 3 elemen kunci, yaitu : 1. Metode, 2. Peralatan (tools), 3. Prosedur, yang memungkinkan manajer mengontrol proses pengembangan software dan memberikan praktisi dasar yang baik untuk pembentukan software berkualitas tinggi.
1. Metode Software Enginnering Metode software engineering memberikan tehnik-tehnik bagaimana membentuk software. Metode ini terdiri dari serangkaian tugas : Perencanaan & estimasi proyek Analisis kebutuhan sistem dan software Desain struktur data Arsitektur program dan prosedur algoritma Coding Testing dan pemeliharaan 2. Peralatan Software Engineering Peralatan software engineering memberikan dukungan atau semiautomasi untuk metode. Contohnya :
CASE (Case Aided Software Engineering), yaitu suatu software yang menggabungkan software, hardware, dan database software engineering untuk menghasilkan suatu lingkungan software engineering. Database Software Engineering, adalah sebuah struktur data yang berisi informasi penting tentang analisis, desain, kode dan testing. Analogi dengan CASE pada hardware adalah : CAD, CAM, CAE 3. Prosedur Software Engineering Terdiri dari :
urut-urutan di mana metode tersebut diterapkan dokumen laporan-laporan formulir-formulir yang diperlukan mengontrol kualitas software mengkoordinasi perubahan yang terjadi pada software
Dalam penguasaan atas model software engineering atau software engineering paradigm, dikenal ada 3 metode yang luas dipergunakan, yaitu : Dalam subbab ini akan dibahas beberapa model proses yang berbeda pada rekaya perangkat lunak. Definisi masalah
Status Quo
Pengembangan Teknis
Gambar 1.6. Fase lingkaran pemecahan masalah
Definisi masalah
Status Quo
Pengembangan Teknis
Penyatuan Solusi
Definisi masalah
Status Quo
Status Quo
Pengembangan Teknis Penyatuan Solusi
Definisi masalah
Status Quo
Pengembangan Teknis Penyatuan Solusi
Gambar 1.7. Fase-fase di dalam lingkaran pemecahan masalah
Latihan :
1. Berbagai konsep RPL (Software Enggineering), dijelaskan melalui beberapa pakar, asosiasi, dan lain-lain. Pertanyaan coba jelaskan pendapat RPL menurut : Roger Pressman, Ian Somervile, IEEE, Software Engginering 2004 (SE2004), Computer Science 2008 (CS2008) ? (gunakan buku, searching melalui internet) 2. Gambarkan dan jelaskan ruang lingkup RPL ? 3. Jelaskan hubungan keterkaitan RPL dengan ilmu lain ? 4. Jelaskan evolusi perkembangan Rekayasa Perangkat Lunak ? 5. Sebutkan dan jelaskan berbagai berbagai aplikasi pengembangan Rekayasa Perangkat Lunak? 6. Apa yang dimaksud dengan model pengembangan perangkat lunak ?
Bab 2 Model Proses dan Proses Agile
Tujuan Pembelajaran Umum Menjelaskan Perangkat Lunak Sebagai Proses Tujuan Pembelajaran Khusus Mampu Menjelaskan Proses dan Proses Agile
Apa ? Proses perangkat lunak - adalah seri langkah pekerjaan yang dapat diprediksi berdasarkan ketepatan waktu, kualitas produk yang baik.
Siapa ? Manajer, Insinyur Perangkat lunak dan pelanggan-pelanggan
Mengapa ? Ditentukan berdasarkan stabilitas, pengawasan, dan organisasi dengan aktifitas yang padat
Langkah-langkah ? Aktifitas-aktifitas untuk seluruh proses dengan detail variasi
Produk kerja ? program, dokumen-dokumen dan data
Rekayasa Perangkat Lunak : Software Engineering: (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1). - IEEE Standard 610.12-1990
Dapat diterjemahkan sebagai berikut : “Rekayasa Perangkat Lunak : (1) Aplikasi yang sistematis, disiplin, pandangan kuantifabel di dalam membangun, mengoperasikan, dan memelihara sebuah perangkat lunak : bahwa pada aplikasi perangkat lunak, (2) Suatu studi yang mempelajari pada poin (1)” Pandangan Umum Rekayasa Perangkat Lunak Kegiatan Rekayasa merupakan pelaksanaan beberapa aktifitas seperti : analisis, desain, konstruksi, verifikasi, dan manajemen entitas teknis (dan sosial). Di dalam mengerjakan Rekayasa Perangkat Lunak tentunya seorang insinyur berusaha menjawab beberapa pertanyaan di dalam mengembangkan perangkat lunak, misalnya:
Problem apa yang harus diselesaikan ? Karakteristik entitias apa yang digunakan untuk menyelesaikan masalah ? Bagaimana entitas (dan solusinya) direalisasikan ? Bagaimana entitas di konstruksi ? Pendekatan apa yang digunakan untuk menemukankesalahan yang dibuat pada desain dan konstruksi entitas ? Bagaimana entitas didukung dalam jangka panjang, dimana koreksi, adaptasi, dan peningkatan selalu diminta pengguna pada entitas Software Process framework Umbrella activities
framework activity #1
framework activity #2
SE action #1.1
SE action #2.1
SE action #1.2
SE action #2.2
Aktifitas yang memayungi dalam pengembangan RPL antara lain :
Manajemen Proyek PL Review Teknik Formal Jaminan Mutu PL Manajemen Konfigurasi PL Persiapan dan Produksi Produk Pekerjaan Manajemen Penggunaan Kembali Pengukuran Manajemen Resiko
Aktifitas Kerangka Kerja dalam pengembangan RPL antara lain :
Komunikasi Perencanaan Kerja Pemodelan
Konstruksi
Analisis kebutuhan Perancangan
Mengenerate program Test
Deployment Model proses adaptaSI o Aktivitas-aktivitas bingkai kerja akan selalu diaplikasikan pada setiap project, tetapi …. o Tugas-tugas (dan derajat kekakuan) pada setiap aktivitas akan bervariasi bergantung pada : Tipe proyek Karakteristik proyek Penilaian umum; persetujuan tim proyek Definisi tersebut menyatakan bahwa RPL merupakan pendekatan yang sistematis, terstruktur dan terukur dalam pengembangan, pengoperasian, dan pemeliharaan P/L. Selain itu, RPL juga membahas pendekatan-pendekatan apa saja yang dapat digunakan dalam pembangunan P/L ini. Dalam hal ini, RPL memiliki arti sebagai proses dan studi tentang proses dalam pembangunan P/L. Sebagai studi tentang proses, RPL ditinjau ke dalam 4 lapis teknologi seperti yang terlihat pada gambar berikut:
tools methods process model
Gambar : Model Proses Perangkat Lunak Keempat lapis ini merupakan concern yang dibahas dalam konteks keilmuan RPL. Lapisan-lapisan ini melambangkan urutan yang perlu menjadi fokus pembahasan dalam RPL. Dalam hal ini, urutannya dimulai dari bawah ke atas. Prinsip dasar RPL adalah membangun P/L yang memiliki kualitas baik, sehingga diperlukan quality focus. Untuk merealisasikan quality focus ini, fondasi yang perlu dibangun adalah pendefinisian process yang baik. Pendefinisian proses berarti akan menjadi basis manajemen pada pembangunan P/L termasuk metode teknis, produk kerja (model, dokumen, data, laporan, form, dll.), milestone, kualitas, dan manajemen perubahan. Setelah proses telah terdefinisi, methods yang menentukan cara teknis membangun P/L juga perlu didefinisikan. Terakhir, tools ditentukan untuk mempermudah proses pembangunan P/L. Pembangunan P/L menggunakan tools otomatis ini biasa disebut CASE (Computer-Aided Software Engineering). Pandangan Umum Proses Generic View of Process Secara umum, proses dalam RPL wajib memiliki tiga fase, yaitu: 1. Definition Phase, yakni berfokus pada “what” (informasi yang perlu diproses, fungsi yang diperlukan,system behavior yang diharapkan, dll.). Hal ini berkaitan dengan penentuan kebutuhan dari P/L. 2. Development Phase, yakni berfokus pada “how” (struktur data yang merepresentasikan informasi, implementasi fungsi, dll.). Hal ini akan berkaitan dengan pembangunan solusi dari problem yang didefinisikan pada fase sebelumnya. 3. Support Phase, yakni berfokus pada “change” yang berkorelasi dengan perbaikan kesalahan, adaptasi, dan perbaikan sesuai perubahan kebutuhan customer. o Koreksi o Adaptasi o Peningkatan o Pencegahan CMMI CMMI menentukan setiap area proses dalam hal “tujuan spesifik” dan “langkahlangkah spesifik” yang dibutuhkan untuk menggapai tujuan-tujuan tersebut.
Tujuan-Tujuan Spesifik membangun karakteristik-karakteristik yang harus ada jika aktivitas yang dilakukan sebuah proses adalah efektif. Langkah-Langkah Spesifik membuat sebuah tujuan menjadi sekelompok aktivitasaktivitas yang berkaitan dengan proses. PSP (Personal Software Process)
Rekomendasi 5 kerangka kerja aktifitas-aktifitas : Perencanaan (Planning) Desain tingkat tinggi (High-level design) Merevisi Desain tingkat tinggi (High-level design review) Pengembangan (Development) Postmortem Stres kebutuhan dari beberapa perekayasa perangkat lunak adalah mengidentifikasi kesalahan sejak dini adalah hal yang terpenting, juga mengerti tipe kesalahan errornya.
TSP (Team Software Project)
Setiap proyek "diluncurkan" menggunakan "script" untuk mendefinisikan tugas yang harus diselesaikan Tim (dari 2 sampai 20 insinyur) adalah mengelola dirinya (self-directed): Rencana dan jalur kerja, menetapkan tujuan, proses sendiri dan rencana Mendorong Pengukuran Tindakan dianalisis dengan maksud meningkatkan proses tim (melalui pelatihan, motivasi, ...) Proses Pola (Patern Process) Pola-pola proses menentukan sekelompok aktivitas, aksi, tugas-tugas pekerjaan, produk-produk pekerjaan dan/atau perilaku yang berkaitan Sebuah template digunakan untuk menentukan pattern/pola Contoh-contoh umum : Komunikasi pelanggan (sebuah aktivitas proses) Analisis (sebuah aksi) Pengumpulan Kebutuhan (sebuah tugas proses) Review sebuah produk kerja (sebuah tugas proses) Model Desain (sebuah produk kerja) Proses Penilaian Sebuah proses harus dinilai untuk memastikan bahwa mereka memenuhi sekumpulan kriteria proses dasar yang penting bagi rekayasa PL yang sukses. Beberapa pilihan penilaian yang tersedia : SCAMPI CBA IPI
SPICE ISO 9001:2000 Penilaian dan peningkatan
Software Process
is examined by
identifies modifications to
identifies capabilities and risk of
Software Process Assessment
Software Process Improvement
leads to
leads to
motivates
Gambar : Proses Penilaian Perangkat Lunak Tujuan utama proses PL
Ingat: Kualitas Tinggi = Proyek PendekProyek pendek Mengapa? Sedikit/Tidak ada Pekerjaan ulang!
Capability Determination
Latihan : 1. 2. 3. 4. 5.
Jelaskan pandangan umum mengenai perangkat lunak ? Proses Perangkat Lunak ? Coba jelaskan model proses perangkat lunak ? Pandangan Umum Proses perangakat lunak ? Proses penilaian perangkat lunak ?