Anda di halaman 1dari 10

ASSIGNMENT SOFTWARE ENGINEERING

PARADIGMA SOFTWARE ENGINEERING

DISUSUN OLEH

Ulaen, Hendra
08520102

FAKULTAS ILMU KOMPUTER


UNIVERSITAS KLABAT
SEMESTER II 2010/2011
1. Definisi Software Engineering

Istilah Software Engineering diambil dari 2 kata, yaitu software (perangkat lunak), dan
engineering (bisa diartikan rekayasa). Software/perangkat lunak merupakan perintah-perintah
yang digunakan dalam memproses informasi. Perangkat lunak dapat berupa program, atau
prosedur. Dimana program merupakan kumpulan perintah-perintah yang menggunakan
bahasa pemrograman sehingga dapat dimengerti oleh komputer, sedangkan prosedur
merupakan perintah yang dibutuhkan oleh pengguna dalam memproses informasi. Perangkat
lunak sendiri terdiri atas (1) instruksi dimana saat dieksekusi menyediakan fitur, fungsi, dan
performansi yang diinginkan; (2) struktur data yang mengijinkan program untuk
memanipulasi informasi; (3) dokumen yang menjelaskan/menggambarkan operasi dan
penggunaan dari program. Engineering/rekayasa merupakan proses pembuatan/produksi
yang melibatkan proses-proses dari analisis, design, implementasi, dll.
Software engineering/rekayasa perangkat lunak berdasarkan uraian diatas dapat
didefinisikan sebagai suatu proses dalam rekayasa/pembuatan suatu perangkat lunak, proses-
proses tersebut merupakan proses yang harus dilalui sampai suatu software dapat digunakan,
proses ini meliputi requirement specification, analisis, design, implementasi, testing, dan
maintenance.
Definisi yang lebih jelas mengenai software engineering yaitu melalui aktivitas-aktivitas
berikut :
 Aktivitas modeling – software engineers menghadapi kompleksitas melalui modeling,
dengan terfokus pada suatu hal pada detail yang cocok dan mengabaikan hal-hal yang
lain.
 Aktivitas problem-solving – model digunakan untuk mencari solusi yang dapat diterima
 Aktivitas knowledge acquisition – dalam memodelkan aplikasi dan domain solusi,
software engineers mengumpulkan data, mengaturnya menjadi informasi, dan
memformulasikan menjadi pengetahuan (knowledge).
 Aktivitas rationale-driven – software engineers perlu menangkap konteks dimana
keputusan diambil dan rasional dibelakang keputusan-keputusan ini untuk mengerti
implikasi dari perubahan yang diajukan saat melihat kembali keputusan yang diambil.
2. Sejarah Software Engineering

Sejarah rekayasa perangkat lunak terbagi menjadi beberapa periode, yaitu


 1945-1965 : Awal
Istilah software engineering digunakan pertama kali pada akhir 1950-an dan awal
1960-an. Saat itu, masih terdapat debat tajam mengenai aspek engineering dari
pengembangan perangkat lunak. Pada tahun 1968 dan 1969, komite sains NATO
menspronsori dua konferensi tentang rekayasa perangkat lunak, yang memberikan
dampak kuat terhadap perkembangan rekayasa perangkat lunak.

 1965-1985 : Krisis Perangkat Lunak


Pada tahun 1960-an hingga 1980-an, banyak masalah yang ditemukan para
praktisi pengembangan perangkat lunak. Banyak projek yang gagal, hingga masa ini
disebut sebagai “krisis perangkat lunak”. Kasus kegagalan pengembangan perangkat
lunak terjadi mulai dari :
o Projek yang melebihi anggaran,
o Hingga kasus yang mengakibatkan kerusakan fisik dan kematian.
Salah satu kasus yang terkenal antara lain meledeknya roket Ariane akibat kegagalan
perangkat lunak.

 1985-sekarang
Pada masa ini, berbagai teknik, metode, alat, proses diciptakan dan diklaim
sebagai senjata pamungkas untuk memecahkan kasus yang sebelumnya. Mulai dari :
o Pemrograman terstruktur,
o Pemrograman berorientasi object,
o Perangkat pembantu pengembangan perangkat lunak (CASE tools),
o Berbagai standar,
o UML (Unified Modeling Language),
o Metode formal diagung-agungkan sebagai senjata pamungkas untuk menghasilkan
software yang benar, sesuai anggaran dan tepat waktu.
Pada tahun 1987, Fred Brooks menulis artikel “No Silver Bullet”, yang
berproposisi bahwa tidak ada satu teknologi atau prakter yang sanggup mencapai 10 kali
lipat perbaikan dalam produktivitas pengembangan perangkat lunak dalam tempo 10
tahun. Sebagian berpendapat bahwa “No Silver Bullet” berarti profesi rekayasa perangkat
lunak dianggap telah gagal. Namun sebagian yang lain justru beranggapan, hal ini
menandakan bahwa bidang profesi rekayasa perangkat lunak telah cukup matang, karena
dalam bidang profesi lainnya pun, tidak ada teknik pamungkas yang dapat digunakan
dalam berbagai kondisi.

3. Methodology Software Engineering

Ada beberapa methodology yang biasa digunakan dalam software engineering, yaitu
1. Waterfall model
Model siklus hidup (life cycle model) adalah model utama dan dasar dari banyak model.
Salah satu model yang cukup dikenal dalam dunia rekayasa perangkat lunak adalah Waterfall
Model. Ada 5 tahapan utama dalam Waterfall Model seperti terlihat pada gambar dibawah.
Disebut waterfall (berarti air terjun) karena memang diagram tahapan prosesnya mirip
dengan air terjun yang bertingkat.
Tahapan-tahapan dalam Waterfall Model secara ringkas adalah sebagai berikut:
 Tahap investigasi dilakukan untuk menentukan apakah terjadi suatu masalah atau adakah
peluang suatu sistem informasi dikembangkan. Pada tahapan ini studi kelayakan perlu
dilakukan untuk menentukan apakah sistem informasi yang akan dikembangkan
merupakan solusi yang layak.
 Tahap analisis bertujuan untuk mencari kebutuhan pengguna dan organisasi serta
menganalisa kondisi yang ada (sebelum diterapkan sistem informasi yang baru).
 Tahap disain bertujuan menentukan spesifikasi detil dari komponen-komponen sistem
informasi (manusia, hardware, software, network dan data) dan produk-produk informasi
yang sesuai dengan hasil tahap analisis.
 Tahap implementasi merupakan tahapan untuk mendapatkan atau mengembangkan
hardware dan software (pengkodean program), melakukan pengujian, pelatihan dan
perpindahan ke sistem baru.
 Tahap perawatan (maintenance) dilakukan ketika sistem informasi sudah dioperasikan.
Pada tahapan ini dilakukan monitoring proses, evaluasi dan perubahan (perbaikan) bila
diperlukan.

2. Prototyping
Prototyping adalah salah satu pendekatan dalam rekayasa perangkat lunak yang
secara langsung mendemonstrasikan bagaimana sebuah perangkat lunak atau komponen-
komponen perangkat lunak akan bekerja dalam lingkungannya sebelum tahapan konstruksi
aktual dilakukan.
Tahap-tahap dalam prototyping boleh dikata merupakan tahap-tahap yang dipercepat.
Strategi utama dalam prototyping adalah kerjakan yang mudah terlebih dahulu dan
sampaikan hasil kepada pengguna sesegera mungkin. Harris (2003) membagi prototyping
dalam enam tahapan.

Tahapan-tahapan secara ringkas dapat dijelaskan sebagai berikut:


o Identifikasi kandidat prototyping. Kandidat dalam kasus ini meliputi user
interface (menu, dialog, input dan output), file-file transaksi utama, dan fungsi-
fungsi pemrosesan sederhana.
o Rancang bangun prototype dengan bantuan software seperti word processor,
spreadsheet, database, pengolah grafik, dan software CASE (Computer-Aided
System Engineering).
o Uji prototype untuk memastikan prototype dapat dengan mudah dijalankan untuk
tujuan demonstrasi.
o Siapkan prototype USD (User’s System Diagram) untuk mengidentifikasi bagian-
bagian dari perangkat lunak yang di-prototype-kan.
o Evaluasi dengan pengguna untuk mengevaluasi prototype dan melakukan
perubahan jika diperlukan.
o Transformasikan prototype menjadi perangkat lunak yang beroperasi penuh
dengan melakukan penghilangan kode-kode yang tidak dibutuhkan, penambahan
program-program yang memang dibutuhkan dan perbaikan dan pengujian
perangkat lunak secara berulang.

3. Incremental model
Incremental model menggunakan model dari Waterfall model pada dasarnya,
tetapi, menggabungkannya dalam beberapa increment, dimana dalam pembuatan
software, yaitu melalui tahap-tahap Software Development Life Cycle (SDLC) yang
merupakan tahapan dasar dalam software engineering. Incremental model pada dasarnya
mempunyai sifat-sifat sebagai berikut :
1. Kombinasikan element-element dari waterfall dengan sifat iterasi/perulangan.
2. Element-element dalam waterfall dikerjakan dengan hasil berupa produk dengan
spesifikasi tertentu, kemudian proses dimulai dari fase pertama hingga akhir dan
menghasilkan produk dengan spesifikasi yang lebih lengkap dari yang sebelumnya.
Demikian seterusnya hingga semua spesifikasi memenuhi kebutuhan yang ditetapkan
oleh pengguna.
3. Produk hasil increment pertama biasanya produk inti (core product), yaitu produk
yang memenuhi kebutuhan dasar. Produk tersebut digunakan oleh pengguna atau
menjalani review/pengecekan detil. Hasil review tersebut menjadi bekal untuk
pembangunan pada increment berikutnya. Hal ini terus dikerjakan sampai produk
yang komplit dihasilkan.
4. Model ini cocok jika jumlah anggota tim pengembang/pembangun perangkat lunak
tidak cukup.
5. Mampu mengakomodasi perubahan secara fleksibel.
6. Produk yang dihasilkan pada increment pertama bukanlah prototype, tapi produk
yang sudah bisa berfungsi dengan spesifikasi dasar.

4. Spiral model
Proses digambarkan sebagai spiral. Setiap loop mewakili satu fase dari software
process. Loop paling dalam berfokus pada kelayakan dari sistem, loop selanjutnya
tentang definisi dari kebutuhan, loop berikutnya berkaitan dengan desain sistem dan
seterusnya.

Setiap
Loop dibagi
menjadi beberapa
sektor :
1. Objective
settings

(menentukan tujuan): menentukan tujuan dari fase yang ditentukan. Batasan-batasan


pada proses dan produk sudah diketahui. Perencanaan sudah disiapkan. Resiko dari
proyek sudah diketahui. Alternatif strategi sudah disiapkan berdasarkan resiko-resiko
yang diketahui, dan sudah direncanakan.
2. Risk assessment and reduction (Penanganan dan pengurangan resiko): setiap resiko
dianalisis secara detil pada sektor ini. Langkahlangkah penanganan dilakukan,
misalnya membuat prototype untuk mengetahui ketidakcocokan kebutuhan.
3. Development and Validation (Pembangunan dan pengujian): Setelah evaluasi resiko,
maka model pengembangan sistem dipilih. Misalnya jika resiko user interface
dominan, maka membuat prototype User Interface. Jika bagian keamanan yang
bermasalah, maka menggunakan model formal dengan perhitungan matematis, dan
jika masalahnya adalah integrasi sistem model waterfall lebih cocok.
4. Planning: Proyek dievaluasi atau ditinjau-ulang dan diputuskan untuk terus ke fase
loop selanjutnya atau tidak. Jika melanjutkan ke fase berikutnya rencana untuk loop
selanjutnya.

5. RAD (Rapid Application Development)


Sesuai dengan namanya, RAD merupakan model pembangunan software yang
menekankan pada siklus pembangunan yang pendek/singkat. RAD mengadopsi Waterfall
model dan pembangunan alam waktu singkat dicapai dengan menerapkan component-
based construction. Waktu yang singkat adalah batasan yang penting untuk model ini.
Jika kebutuhan lengkap dan jelas, maka waktu yang dibutuhkan untuk
menyelesaikan secara komplit software yang dibuat adalah misalnya 60 sampai 90 hari.
Kelemahan dari model ini :
1. Tidak cocok untuk proyek skala besar
2. Proyek bisa gagal karena waktu yang disepakati tidak dipenuhi
3. Sistem yang tidak bisa dimodularisasi tidak cocok untuk model ini
4. Resiko teknis yang tinggi juga kurang cocok untuk model ini

Kesimpulan
Software Engineering merupakan suatu proses dalam rekayasa/pembuatan suatu perangkat
lunak, proses-proses tersebut merupakan proses yang harus dilalui sampai suatu software dapat
digunakan, proses ini meliputi requirement specification, analisis, design, implementasi, testing,
dan maintenance. Dalam software engineering terdapat beberapa methodology yang dapat
digunakan. Beberapa diantaranya yaitu Waterfall model, Prototyping, Incremental model, Spiral
model, dan RAD (Rapid Application Development). Methodology-methodology ini merupakan
aspek penting dalam rekayasa perangkat lunak, karena sangat diperlukan dalam pengembangan
software yang baik.

Referensi :
- Pressman, Roger S., Ph.D., Software Engineering a practicioner’s approach Fifth Edition,
(2001), McGraw Hill.
- http://tonyjustinus.wordpress.com/2007/11/11/spiral-model/
- http://iwansantoso.wordpress.com/rekayasa-perangkat-lunak/
- http://dahlanforum.wordpress.com/2009/12/16/pengertian-rekayasa-perangkat-lunak/
- http://www.hyperthot.com/pm_sdm.htm
- http://www.businessdictionary.com/definition/software-engineering.html
- http://www.webopedia.com/TERM/S/software_engineering.html

Anda mungkin juga menyukai