Konsep Dasar Rekayasa Perangkat Lunak

Pertemuan 1
Pengenalan Rekayasa Perangkat Lunak
TIK : Menjelaskan tentang konsep dasar rekayasa perangkat lunak

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, prosedur, 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

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, 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 (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.
Era Keempat (1990 – 2000) :
Expert system

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
Model proses perangkat lunak merupakan deskripsi yang disederhanakan dari proses
perangkat lunak yang di presentasikan dengan sudut pandang tertentu. Model, sesuai sifatnya
merupakan penyederhanaan, sehingga model proses perangkat lunak merupakan abstraksi
dari proses sebenarnya yang dideskripsikan. Model proses juga bisa mencakup kegiata n yang
merupakan bagian dari proses perangkat lunak, produk perangkat lunak dan peran orang yang

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

Subfase perencanaan menghasilkan dua produk : System Definition dan Poject Plan.
Format kedua produk adalah sebagai berikut :

Format System Definition
Bab 1 : Pendefinisian masalah
Bab 2 : Justifikasi sistem
Bab 3 : Sasaran sistem dan proyek
Bab 4 : Batasan sistem dan proyek
Bab 5 : Fungsi yang harus disiapkan

(H/W, S/W, personal)
Bab 6 : Karakteristik pengguna
Bab 7 : Lingkungan pengembangan/
operasi/pemeliharaan
Bab 8 : Strategi solusi
Bab 9 : Prioritas gambaran sistem
Bab 10: Kriteria penerimaan sistem
Bab 11: Sumber informasi
Bab 12: Daftar istilah

Format Project Plan
Bab 1 : Model life cycle : terminologi, tonggak penting,
produk kerja
Bab 2 : Struktur organisasi : struktur manajemen/
struktur team, gambaran kerja
Bab 3 : Perkiraan personal & persyaratan sumber daya
Bab 4 : Jadwal awal pengembangan
Bab 5 : Perkiraan awal biaya
Bab 6 : Pengawasan proyek dan mekanisme kontrol
Bab 7 : Alat bantu dan teknik yang digunakan

Bab 8 : Bahasa pemrograman
Bab 9 : Persyaratan pengujian
Bab 10: Dokumen pendukung yang diperlukan
Bab 11: Cara demonstrasi
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.
Kegiatan yang meliputi fase pemeliharaan adalah : peningkatan kemampuan, adaptasi
terhadap lingkungan pemrosesan, dan melakukan berbagai koreksi atas kesalahan
yang terjadi

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
-perencanaan
-penetapan
persyaratan
arsitektur
rinci
verifikasi

Implementasi

Pengujian

Pemeliharaan

coding, debugging,
dan uji code
verifikasi
- uji integrasi
- uji penerimaan
verifikasi
verifikasi

PFR SRR

- peningkatan
- adaptasi
- perbaikan
PDR CDR

Review
PFR (Product Fea sibility Review)

SRR (Softwa re Requirements Review)
PDR (Preliminary Design Review)
CDR (Critica l Design Review)
SCR (Source Code Review)
ATR (Acceptance Test Review)
PRR (Product Relea se Review)
PPM (Project Post-Mortem)

SCRs

ATR

PRR
PPM

Produk Kerja yang direview
System Definition
Project Pla n
Spsesifikasi persyaratan perangkat lunak
User’s Manual awal
Rencana awal verifikasi
Dokumen disain arsitektur
Spesifikasi disain rinci
Penelusuran dan Pemeriksaan source code
Rencana uji penerimaan
Semua produk kerja sebelumnya
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
SD

SD : System Definition, Project Plan

S/W
requirements
analysis
Verify
SRS

Fix SD

Verify

Verify

SRS : Software Requirement Spesification, preliminary User‟s Manual

Design
Verify
DD

Modify SD

Modify SD/SRS
Verify

Fix SD/SRS
Verify

DD : Software Design Spesification, Software Verification Plan

Build
Verify

Modify SD/SRS/DD
Verify

Fix SD/SRS/DD
Verify

SC

SC : Source Code, Acceptance Test Plan

System test

Modify SD/SRS/DD/SC

Verify

Verify

SS

SS : Source Code, User‟s Manual, Principles of Operation

Operate and Maintain
Verify

Fix
SD/SRS/DD/SC
Verify

Modify
SS
Verify

Adapt
SS
Verify

Fix SS
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
Requirements

Business
Plans
Authorize
Feasibilty

Customer
Request

Internal
Request

Study
Preliminary
Requirements
Analysis

Preliminary
Requirements
Spesification

Autorize
Prorotype

Formal
Equirements
Spesification

Preliminary
Design
Spesification

Prototype
Implementation
Design
Code
Test
Demo

Implementation
Plan

Preliminary
Test Plan

Final
Test
Spesification

Maintenance
Spesification

Authorize
Project
Final
Design
Spesification

Product
Implementation
Detailed design
Coding
Checkout
Integration
Document
Demo
Final
Validation

Quality
Assurance

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

Design
Versi I

Versi I
I = 1..N

Build
Version I

Build
Version I

Assess
Version I

Assess
Version I
No

Good ?

No
I=N?

Maintenance
Maintenance

Perancangan dan implementasi model
berurutan

Analisa dan perancangan yang diikuti
implementasi dari model berurutan

Daftar Pustaka
1. Presman, Rouger S, Software Enigineer ing , 4th Edition, Mc. Graw Hill,1997.
2. Sommerville,Ian, Software Engineering, 7th Edition, Addison Wesley, 2004.
3. Kendall & Kendall, Systems Analysis and Design , 6th Edition, Prentice Hall,2006.
4. Jacobsan Ivar, Process and The UML, Rational Software Corporation,1997.