1. Konsep Dasar Rekayasa Perangkat Lunak
Konsep dasar rekayasa perangkat lunak mempunyai dua hal pokok yaitu perangkat lunak (software) dan komponen perekayasa. Menurut IEEE definisi perangkat lunak (software) merupakan program komputer, pro sedur, data dan semua dokumentasi yang berhubungan operasi pada sistem komputer. jadi bisa disimpulkan bahwa software merupakan kumpulan dari object membentuk konfigurasi yang didalamnya termasuk program, dokumen, dan data. Sedangkan Perekayasa software bertugas mengembangkan produk perangkat lunak, yang secara produk dapat dikategorikan menjadi 2 tipe yaitu :
a. Produk generik
Sistem stand-alone, produk shrink-wrapped b. Produk pesanan
Produk custemisasi, terdapat proses interaksi antara pemesan dan pembuat.
Rekayasa perangkat lunak dapat didefinisikan sebagai disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai tahap awal spesifikasi sistem sampai pemeliharaan sistem setelah digunakan. Rekayasa perangkat lunak tidak hanya berhubungan dengan proses teknis dari pengembangan perangkat lunak tetapi juga mencakup kegiatan manajemen proyek perangkat lunak dan pengembangan alat bantu, metode dan teori untuk mendukung produksi perangkat lunak. Secara umum rekayasa perangkat lunak memakai pendekatan yang sistematis dan terorganisir dengan menggunakan metode tertentu.
2. Proses dan Metode Perangkat Lunak
Proses perangkat lunak merupakan serangkaian kegiatan dan hasil hasil relevannya yang menghasilkan perangkat lunak. Kegiatan ini sebagian besar dilakukan oleh perekayasa perangkat lunak. Terdapat empat kegiatan proses dasar, meliputi :
1. Spesifikasi perangkat lunak.
Fungsionalitas perangkat lunak dan batasan kemampuan operasinya harus didefinisikan.
2. Pengembangan perangkat lunak.
Pengembangan terhadap produk perangkat lunak yang memenuhi spesifikasi perangkat lunak.
3. Validasi perangkat lunak.
Perangkat lunak harus divalidasi untuk menjamin bahwa perangkau lunak melakukan apa yang diinginkan oleh user.
4. Evolusi rangkat lunak.
Perangkat lunak harus berkembang untuk memenuhi kebutuhan pelanggan yang berubah ubah.
Metode rekayasa perangkat lunak merupakan pendekatan terstruktur terhadap pengembangan perangkat lunak yang bertujuan memfasilitasi produksi perangkat lunak kualitas tinggi dengan cara yang efektif dalam hal biaya. Terdapat beberapa metode yang bisa digunaka seperti metode berorientasi fungsi, metode berorientasi objek dan metode pendekatan gabungan yang sekarang lebih dikenal dengan istilah UML (unified modeling language).
3. Evolusi Pe rkembangan Software
Pertemuan 1
Pengenalan Rekayasa Perangkat Lunak
Gambar 1. Evolusi Software Era Pertama ( 1950 – 1960) :
Batch Or ientation
Suatu orientasi di mana proses dilakukan setelah data dikumpulkan dalam satuan waktu tertentu, atau proses dilakukan setelah data terkumpul, lawa n 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 (1960 – 1970) :
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 mentransfo rmasikan 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 (DataBa se Management System).
Product Software
Adalah software yang dikembangkan untuk dijual kepada masyarakat luas. Era Ketiga (1980 – 1990) :
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.
Suatu penerapan A.I. (Artificia l 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 Ar chitecture
Arsitektur komputer yang memungkinkan proses kerja LAN paralel, yang dimungkinkan adanya prosesor berbeda dalam satu komputer.
4. Karakteristik dan Atribut Perangkat Lunak Karakteristik perangkat lunak :
a. Software merupakan elemen sistem logik dan bukan elemen sistem fisik seperti hardware.
b. Elemen itu tidak aus, tetapi bisa rusak.
c. Elemen software itu direkayasa atau dikembangkan dan bukan dibuat di pabrik sepert i hardware
d. Software itu tidak bisa dirakit. Atribut perangkat lunak :
a. Dapat dipelihara : Perangkat lunak dapat ditulis sedemikian rupa sehingga perangkat lunak dapat berubah seiring dengan perubahan kebutuhan pelanggan.
b. Dapat diandalkan : Perangkat lunak mempunyai serangkaian karakteristik, termasuk keandalan, keamanan dan keselamatan.
c. Efisien : Perangkat lunak tidak boleh menggunakan sumber daya sistem seperti siklus memori dan prosesor.
d. Kemampupakaian : Perangkat lunak harus dapat dipakai, memiliki interface user yang bagus dan dokumentasi yang mencukupi.
5. Tanggung Jawab Profesional dan Etika
Rekayasa perangkat lunak jelas dibatasi oleh hukum lokal, nasional dan internasional. Perekayasa perangkat lunak harus memiliki tanggung jawab etis dan moral jika ingin dihormati sebagai profesional. Terdapat beberapa standar dan kode etik yang harus dipertimbangkan, yaitu:
a. Konfidensialitas
Harus menghormati konfidensialitas atasan dan kliennya walaupun tidak ada persetujuan yang ditanda tangani secara formal.
b. Kompetensi
Tidak boleh menyalahi tingkat kompetensinya (melebihi atau menyimpang) c. Hak Properti Intelektual
Menyadari terhadap hukum yang mengatur penggunaan properti intelektual, seperti paten, hak cipta dan lain sebagainya.
d. Penyalahgunaan Komputer
Tidak boleh dengan sengaja menyalah gunakan komputer yang nantinya berakibat merugikan orang lain, seperti penyebaran virus, penyadapan dan lain sebagainya.
6. Model Proses Perangkat Lunak
terlibat pada rekayasa perangkat lunak.
Ada beberapa contoh jenis model proses perangkat lunak, antara lain: a. Model aliran kerja (work flow)
Model ini memandang proses dari urutan dan prosedur kerja (input, output dan ketergantungannya).
b. Model aliran data (data flow)
Model ini merepresentasikan proses sebagai satu set kegiatan yang masing masing melakukan transformasi data.
c. Model peran/aksi
Model ini merepresentasikan peran orang yang terlibat pada proses perangkat lunak dan kegiatan yang menjadi tanggung jawabnya dalam penyelesaian sebuah sistem.
Life Cycle
Life-cycle sebuah perangkat lunak mencakup semua kegiatan yang yang perlu dilakukan untuk mendefinisikan, mengembangkan, menguji, mengantarkan, mengoperasikan, dan memelihara produk perangkat lunak. Beberapa model yang akan dibahas adalah : model fase (phased model), model biaya (cost model), model prototipe (prototype model), dan model berurutan (successive model).
a. Model Fase
Model ini membagi life cycle ke dalam sederetan kegiatan (fase). Setiap fase membutuhkan informasi masukan, proses, dan produk yang terdefinisi dengan baik. Deretan fase tersebut adalah : analisa, perancangan, implementasi, pengujian, dan pemeliharaan. Berikut ini model fase dasar yang dinyatakan sebagai waterfall chart :
Analisis Perancangan Implementasi Pengujian Pemeliharaan
-perencanaan -penetapan persyaratan
arsitektur
rinci
verifikasi
coding, debugging, dan uji code
verifikasi
- uji integrasi - uji penerimaan verifikasi
verifikasi - peningkatan
- adaptasi - perbaikan
Life cycle mode fase dari sebuah perangkat lunak
Format System Definition Format Project Plan
Bab 1 : Pendefinisian masalah Bab 1 : Model life cycle : terminologi, tonggak penting,
Bab 2 : Justifikasi sistem produk kerja
Bab 3 : Sasaran sistem dan proyek Bab 2 : Struktur organisasi : struktur manajemen/
Bab 4 : Batasan sistem dan proyek struktur team, gambaran kerja
Bab 5 : Fungsi yang harus disiapkan Bab 3 : Perkiraan personal & persyaratan sumber daya
(H/W, S/W, personal) Bab 4 : Jadwal awal pengembangan
Bab 6 : Karakteristik pengguna Bab 5 : Perkiraan awal biaya
Bab 7 : Lingkungan pengembangan/ Bab 6 : Pengawasan proyek dan mekanisme kontrol operasi/pemeliharaan Bab 7 : Alat bantu dan teknik yang digunakan
Bab 8 : Strategi solusi Bab 8 : Bahasa pemrograman
Bab 9 : Prioritas gambaran sistem Bab 9 : Persyaratan pengujian
Bab 10: Kriteria penerimaan sistem Bab 10: Dokumen pendukung yang diperlukan
Bab 11: Sumber informasi Bab 11: Cara demonstrasi
Bab 12: Daftar istilah Bab 12: Jadwal dan materi pelatihan
Bab 13: Rencana pemasangan (instalasi)
Bab 14: Pokok perhatian dalam pemeliharaan Bab 15: Metoda dan waktu pengantaran Bab 16: Metoda dan waktu pembayaran Bab 17: Sumber informasi
Subfase penetapan persyaratan menghasilkan sebuah produk : Software Requirements Specifications. Format produk ini adalah sbb :
Format Software Requirements Specifications Bab 1 : Gambaran dan penjelasan ringkasan produk
Bab 2 : Lingkungan pengembangan, pengoperasian, dan pemeliharaan
Bab 3 : Pengantarmukaan eksternal dan aliran data : format tampilan, user comma nd, DFD, kamus data
Bab 4 : Persyaratan fungsional : fungsi-fungsi yang diinginkan Bab 5 : Persyaratan kinerja : tanggapan, waktu proses
Bab 6 : Penanganan kesalahan : aksi dan pesan yang harus dilakukan sebagai tanggapan atas input atau situasia yang tidak dikehendaki produk
Bab 7 : Subset permulaan dan prioritas implementasi : „versi‟ awal produk Bab 8 : Perkiraan modifikasi dan peningkatan
Bab 9 : Kriteria penerimaan
Bab 10 : Petunjuk dan panduan perancangan Bab 11 : Index acuan
Bab 12 : Daftar istilah
Fase perancangan melakukan identifikasi terhadap komponen perangkat lunak (fungsi, arus data, penyimpanan data), hubungan antar komponen, struktur perangkat lunak (dekomposisi menjadi modul- modul dan pengatarmukaannya). Fase ini menghasilkan arsitektur rinci, terutama dalam bentuk algoritma-algoritma.
Fase implementasi adalah terjemahan langsung arsitektur rinci ke dalam bahasa pemrograman tertentu.
Subfase uji integrasi melakukan pengujian terhadap semua modul dan pengantarmukaan sehingga pada level sistem dapat beroperasi dengan benar
Subfase uji penerimaan melakukan baerbagi pengujian mengacu kepada berbagai persyaratan yang telah ditentukan.
Penilaian kemajuan proyek akan lebih mudah jika pada model fase tersebut ditetapkan beberapa tonggak penting (milestone) yang pada setiap fase atau antar setiap dua fase yang berurutan. Berikut ini Life cycle mode fase dari sebuah perangkat lunak yang dilengkapi dengan kegiatan review dan tonggak penting :
Analisis Perancangan Implementasi Pengujian Pemeliharaan -perencanaan
-penetapan persyaratan
arsitektur
rinci
verifikasi
coding, debugging, dan uji code
verifikasi
- uji integrasi - uji penerimaan verifikasi
verifikasi - peningkatan
- adaptasi - perbaikan
PFR SRR PDR CDR SCRs ATR PRR
PPM
Review Produk Kerja yang direview
PFR (Product Fea sibility Review) System Definition
Project Pla n
Spsesifikasi persyaratan perangkat lunak
SRR (Softwa re Requirements Review) User’s Manual awal
Rencana awal verifikasi
PDR (Preliminary Design Review) Dokumen disain arsitektur
CDR (Critica l Design Review) Spesifikasi disain rinci
SCR (Source Code Review) Penelusuran dan Pemeriksaan source code
ATR (Acceptance Test Review) Rencana uji penerimaan
PRR (Product Relea se Review) Semua produk kerja sebelumnya
PPM (Project Post-Mortem) Catatan umum pelaksanaan proyek
b. Model Biaya
Model biaya adalah cara pandang lain model fase sebuah perangkat lunak dengan cara memperhatikan biaya berbagai kegiatan dalam proyek perangkat lunak. Biaya proyek adalah jumlah biaya dari setiap fase proyek. Biaya setiap fase mencakup biaya kegiatan dan penyiapan produk pada fase tersebut ditambah dengan biaya verifikasi konsistensi produk suatu fase terhadap semua fase sebelumnya.
Plan Verify
S/W requirements
analysis
Modify SD Fix SD
Verify Verify Verify
SRS SRS : Software Requirement Spesification, preliminary User‟s Manual
Design Modify SD/SRS Fix SD/SRS
Verify Verify Verify
DD DD : Software Design Spesification, Software Verification Plan
Build Modify SD/SRS/DD Fix SD/SRS/DD
Verify Verify Verify
SC SC : Source Code, Acceptance Test Plan
System test Modify SD/SRS/DD/SC Fix
SD/SRS/DD/SC
Verify Verify Verify
SS SS : Source Code, User‟s Manual, Principles of Operation
Operate and Maintain Modify
SS
Adapt SS
Fix SS
Verify Verify Verify Verify
Ada 2 sisi penting dari model biaya :
Karena modl biaya hanyalah cara pandang lain dari model fase maka semua dokumen yang dihasilkan tepat sama dengan yang dihasilkan pada model fase.
Biaya verifikasi, apalagi perbaikan, atas suatu produk akan makin besar jika produk tersebut dihasilkan oleh suatu fase yang jauh di belakang fase saat verifikasi dilakukan.
c. Model Prototipe
Marketing Business Customer Internal
Requirements Plans Request Request
Study
Preliminary Preliminary
Requirements Requirements
Analysis Spesification
Autorize Prorotype
Prototype
Formal Preliminary Implementation Implementation Preliminary
Equirements Design Design Plan Test Plan
Spesification Spesification Code Test
Demo
Authorize Project
Final Product Final Maintenance
Design Implementation Test Spesification Spesification Detailed design Spesification
Coding Checkout Integration
Document Quality
Demo Assurance
Final
Validation Evaluation
Report Product
Release
Beberap catatan tentang model prototipe :
Sebuah prototipe adalah model dari sebuah produk perangkat lunak tetapi dengan beberapa keterbatasan, misalnya : keterbatasan kemampuan, keandalan yang rendah, dan kinerja yang tidak efisien.
Alasan penggunaan model prorotipe adalah :
1. untuk menggambarkan format data masukan, pesan-pesan, laporan, dan dialog interaktif
2. untuk mengeksplorasi isu-isu teknis dalam produk yang diusulkan
3. model fase „analisis perancangan implementasi‟ tidak dapat digunakan
d. Model Succesive
Planning & analysis
Planning & analysis
Design Versi I
Build Version I
Assess Version I
No Good ?
Maintenance
Versi I I = 1..N
Build Version I
Assess Version I
No I=N?
Maintenance
Perancangan dan implementasi model berurutan
Analisa dan perancangan yang diikuti implementasi dari model berurutan
Daftar Pustaka