Anda di halaman 1dari 18

Rekayasa Perangkat Lunak

Tujuan Perkuliahan RPL


Mengetahui bagaimana melakukan rekayasa terhadap perangkat lunak

Mengetahui software life cycle

Dapat melakukan analisa kebutuhan untuk mengembangkan suatu


perangkat lunak

Dapat merancang suatu perangkat lunak sesuai software life cycle

Dapat mengintegrasikan perangkat lunak yang dibuat

Dapat melakukan pengujian dan debbuging terhadap perangkat lunak


Pendahuluan

Definisi Perangkat Lunak

Tentang Perangkat Lunak


• Evolusi Perangkat Lunak
• Komponen Perangkat Lunak
• Aplikasi Perangkat Lunak

Definisi Rekayasa Perangat Lunak

Mengapa Rekayasa Perangkat Lunak?

Siapa yang melakukan Rekayasa Perangkat Lunak?


Definisi Perangkat Lunak
Pressman (2001) :
Kumpulan instruksi yang akan menyediakan fungsi dan daya guna,
dan struktur data yang memungkinkan program memanipulasi
informasi secukupnya, dan dokumentasi dari proses dan kinerja
program tersebut.

Sommerville (2001) :
Mendefinisikan perangkat lunak tidak hanya berupa program tetapi
semua dokumen yang berhubungan dan konfigurasi yang
diperlukan untuk membuat program beroperasi secara tepat
Definisi Perangkat Lunak
Pada komputer ada dua (2) jenis perangkat lunak sistem yang
penting :
Sistem Operasi :
Menyediakan tempat dalam memori untuk menyimpan data yang
sedang diolah dan mengawasi bahwa tidak ada data yang tiba-tiba
masuk dan menimpa data lain atau sebagian dari program aplikasi.

Bahasa Pemrograman :
Bahasa pemrograman komputer hanya dapat menjalankan
instruksi dalam bahasa mesin, yaitu sebaris angka 0 dan 1.
sehingga dikembangkan bahasa tingkat tinggi.
Perangkat Lunak
Sifat & Karakteristik Perangkat lunak
⚫ Perangkat Lunak merupakan elemen sistem logik dan
bukan elemen sistem fisik seperti hardware
⚫ Elemen itu tidak aus, tetapi bisa rusak.
⚫ Elemen perangkat lunak itu direkayasa atau
dikembangkan dan bukan dibuat di pabrik seperti
hardware
⚫ Perangkat lunak itu tidak bisa dirakit/disusun.
Komponen Perangkat Lunak
•Biaya Produksi

•Kinerja Program Yang Tinggi


dipengaruhi keandalan perangkat keras

•Portabilitas Yang Tinggi


Kemampuan transfer perangkat lunak

•Biaya Perawatan
Perawatan perangkat lunak memerlukan usaha yang besar, perbaikan
membutuhkan waktu, perubahan membutuhkan waktu

•Keandalan sistem dan penyerahan tepat waktu


Goal
Komponen Perangkat Lunak
1. Bentuk Bahasa
2. Bentuk Translator
3. Bentuk Mesin
Bentuk Bahasa
Terbagi 3, yaitu
A. High Level, contoh JAVA, BASIC, PASCAL, COBOL,
FORTRAN.
B. Middle Level, contoh C
C. Low Level, contoh Bahasa Assembly
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
Bentuk Mesin
Aplikasi Perangkat Lunak
System Software - Kumpulan dari beberapa program yang dibuat untuk memberikan servis
terhadap program lainnya pada setiap level. Contohnya : compiler, operating sistem

Real-time Software - Program yang dapat memonitor/menganalisa/mengontrol kejadian nyata


yang terjadi di dunia ini.

Business Software - Program yang dapat mengakses, menganalisa dan memproses informasi
bisnis. Contoh : aplikasi penjualan

Engineering and Scientific Software - Software yang menggunakan algoritma “number


crunching” untuk membedakan science dan applications. Sistem simulation, computer-aided
design. Contoh : aplikasi perhitungan reasi kimia

Embedded Software - Software terletak pada read only memory dan digunakan untuk
mengontrol produk dan sistem yang akan dikirimkan untuk konsumen dan industrial markets.
Contoh : keypad untuk mengontrol microwave oven

Artificial Intelligence (AI) Software - program yang digunakan untuk teknik AI dan metodenya
digunakan untuk memecahkan masalah yang kompleks. Contohnya : expert sistem, pengenalan
pola, games.

Internet Software - program yang mensupport pengaksesan internet. Contohnya : search


engine, browser, e-commerce software,authoring tools.

Software Tools and CASE environment - tools dan program yang dapat membantu pembuatan
aplikasi software dan sistem. contohnya : test tools dan version control tools.
Apa Rekayasa Perangkat
Lunak?
Ladjamuddin B (2006) :
Sebagai disiplin managerial dan teknis yang berhubungan dengan penemuan
sistematik, produksi dan maintenance sistem perangkat lunak yang berkualitas
tinggi, disampaikan pada waktu yang tepat serta memiliki harga yang mahal

Pressman (2001) :
Pembuatan dan penggunaan prinsip-prinsip keahlian teknik untuk mendapatkan
perangkat lunak yang ekonomis, yang handal dan bekerja secara efisien pada
mesin yang sesungguhnya.

The IEEE [IEE93] Institute of Electrical and Electronics Engineers


Software Engineering : (1) aplikasi yang bersifat sistematik, disipilin dengan
mendekati metode pengembangan, operasi, dan maintemaintenance dari
software; (2) studi dengan pendekatan pada definisi nomor (1)

Fritz Bauer[NAU 69]


[Software engineering adalah] prinsip yang digunakan pada sound engineering
yang digunakan untuk mendapatkan software yang bersifat ekonomis dan dapat
bekerja secara efisien pada real machines

Sommerville (2001) :
Prinsip tentang perekayasaan yang berhubungan dengan semua aspek dari
pembuatan perangkat lunak dari tahap awal spesifikasi sistem dampai perawatan
sistem setelah memasuki tahap penggunaan
Apa Rekayasa Perangkat Lunak?

Tiga phase dalam production software


- phase definition
- phase development
- phase maintenance

Phase definition : (dilakukan dalam tahap pendefinisian dan perencenaan dari


software sistem)
Phase definition terfokus pada apa yang terjadi dalam software sistem.
- informasi apa yang harus diproses pada sistem?
- fungsi apa saja yang harus disediakan oleh sistem?
- performance sistem dan kriteria yang diperlukan oleh sistem?
- apa yang diperlukan pada sistem behavior?
- dengan cara apa requirement akan direpresentasikan?

Tiga tugas utama pada phase definisi :


- sistem atau informasi engineering]
- software project planning
- requirement analisis
Apa Rekayasa Perangkat Lunak?-
A Generic View

Phase Development : (terjadi selama proses pengembangan dari software


sistem)

Phase development terfokus pada bagaimana.


- bagaimana sistem menjadi terstruktur?
- bagaimana data-data yang ada menjadi terstruktur?
- bagaiman informasi dapat diproses?
- bagaimana fungsi dapat diimplementasikan?
- bagaiamana karakteristik dari interface?
- bagaimana design dapat menjadi lebih spesifik?
- bagaimana testing dapat ditunjukkan?

Terdapat tiga tipe task dari phase development :


- software design
- code generation, dan
- software testing
Apa Rekayasa Perangkat Lunak?-
A Generic View

Phase maintenance : -> evaluasi dari produk software setelah sistem testing.
Phase maintenance mengulang kembali langkah-langkah pada phase definisi dan
pengembangan

Phase maintenance terfokus pada perubahan software sistem.

-Error correction – apabila ini terjadi maka dilakukan perubahan software


sehingga software menjadi benar.

-Adaptation – memodifikasi software untuk mengakomodasi perubahan yang terjadi


terhadap lingkungan.

-Enhancement – mengembangkan software dengan melakukan penambahan


fungsi-fungsi yang baru untuk customer/user.

-Prevention - preventive maintenance, called software reengineering .


dengan membuat perubahan pada software sehingga dapat lebih mudah dikoreksi,
ditangani.
Stakeholder (pengguna) yang memanfaatkan hasil rekayasa
perangkat lunak

∙ USER
Pihak yang akan memanfaatkan perangkat lunak,
∙ CUSTOMER (sering disebut client)
Adalah bagian yang membuat keputusan akan memesan atau membeli suatu
perangkat lunak. Bisa sebagai user bisa juga bukan. Tujuannya untuk
meningkatkan profit atau menjalankan bisnis lebih efektif.
Customer berapresiasi pada perangkat lunak yang membantu organisasi mereka
∙ SOFTWARE DEVELOPMENT
Adalah bagian yang membangun dan mengelola perangkat lunak beberapa atau
semuanya. Seringkali disebut perekayasa perangkat lunak. Dalam bentuk tim
biasanya terdiri dari berbagai macam spesialis, seperti : analisis, database,
programmer dll.
∙ DEVELOPMENT MANAGER
Pihak yang mengendalikan organisasi pembangun perangkat lunak. Tujuannya
menjual sebanyak mungkin perangkat lunak. Biasanya tidak terlibat secara detail
dalam proyek perangkat lunak.

Anda mungkin juga menyukai