Anda di halaman 1dari 25

PENGENALAN REKAYASA PERANGKAT LUNAK (2)

CASE Tools
CASE : Computer Aided Software Engineering
Suatu Peralatan baik HW maupun SW

komputer yang digunakan untuk menyediakan pendukung otomatis dalam aktivitas pembangunan PL. Tujuan : meningkatkan produktivitas dalam proses pembangunan PL secara signifikan.

CASE Tools (2)


CASE dikelompokkan dalam 2 kategori :
Upper-CASE Mendukung aktivitas proses pembangunan tahap awal (Tahap Analisis kebutuhan dan Desain) Lower-CASE Mendukung aktivitas pembangunan di tahap akhir (programming, Debugging dan testing)

CASE Tools (3)


Penggunaan CASE Tools :
Graphical Editor : Membuat model sistem Data Dictionaries : Mengatur unit-unit proyek

GUI Builders : Mengkonstruksi antarmuka pemakai


Debugger : Mencari kesalahan yang mungkin terjadi Automated Translators : Pembangkitan source code

program otomatis Compilator Integrated : membuat antarmuka, coding, hingga membentuk aplikasi yang bisa dijalankan Instalator kit : membuat instalasi/setup

SOFTWARE DEVELOPMENT LIFE CYCLE


Proses Generik
Spesifikasi Apa yang harus dilakukan oleh PL & batasan/kendala pengembangannya Pengembangan Proses memproduksi sistem PL Validasi Pengujian PL terhadap keinginan pengguna Evolusi Perubahan PL berdasarkan perubahan keinginan

Proses Rekayasa PL
Biasanya spesifikasi tidak lengkap /menyimpang dari biasanya (anomalous)
Lebih menghilangkan pembedaan sampai

spesifikasi, desain dan manufaktur Tidak dalam bentuk fisik untuk menguji sistem Software tidak bisa wear-out.
Maintenance bukan berarti mengganti komponen

Berbagai Model Proses PL


Model Waterfall
Model Prototyping Model Evolutionary Model spiral Reused Based Development

Model Waterfall
DEFINISI KEBUTUHAN SISTEM RANCANG SISTEM

IMPLEMENTASI & UNIT TESTING INTEGRASI & SYSTEM TESTING OPERASI & PERAWATAN

Model Waterfall (2)


Definisi Kebutuhan Sistem
Pembentukan kebutuhan

Rancang Sistem
Mengubah kebutuhan menjadi bentiuk karakteristik

yang dimengerti PL

Implementasi dan Unit Testing


Penulisan Program

Integrasi dan Sistem Testing


Memeriksa Program, mencari kesalahan

Operasi dan Perawatan


Pemeliharaan sistem, menambahkan fungsi

Problem Model Waterfall


Jarang sekali proyek yang prosesnya bisa dilakukan secara sequential
Sukar bagi customer untuk secara eksplisist

mengemukakan semua kebutuhannya. Customer harus sabar Developer sering menunda pekerjaan. Anggota tim harus menunggu anggota lainnya menyelesaikan tugasya.

Model Prototyping
Sering terjadi customer menjabarkan objektif umum mengenai software yang diminta tetapi tidak bisa mendefinisikan input,proses,

output yang diminta secara detail Disisi lain developer menjadi tidak yakin terhadap efisiensi algoritma, kemampuan adaptasi terhadap sistem operasi atau bentuk interaksi mesin dengan orang. Untuk mengatasi situasi tersebut, bisa digunakan pendekatan Prototype Paradigm

Tahapan Prototyping
Pengumpulan kebutuhan dan Perbaikan (Awal)
Quick Design

Pembentukan Prototype
Evaluasi Pelanggan Perbaikan Prototype Produk SW (Akhir)

Iterasi ( Pengulangan)

Prototype Paradigm dimulai dengan mengumpulkan kebutuhan-kebutuhan customer. Developer dan customer bertemu dan mendefinisikan obyektif software secara menyeluruh, mengidentifikasi kebutuhankebutuhan yang diketahui dari area pekerjaan.

Setelah itu dibuat Quick Design.


Quick Design difokuskan pada representasi aspek software yang bisa dilihat customer/user (misal:

format input dan output). Quick Design cenderung ke pembuatan prototipe. Prototipe dievaluasi customer/user dan digunakan untuk menyempurnakan kebutuhan software yang akan dikembangkan.

Macam Model Prototyping

EVOLUTIONARY

DIMULAI DARI MODEL DIKEMBANGKAN AKHIRNYA DIMANFAATKAN

MACAM
THROWAWAY
HANYA DIBUAT SEBAGAI MODEL UNTUK MENCARI BENTUK YANG DIINGINKAN (CETAK BIRU)

EVOLUTIONARY PROTOTYPE

TENTUKAN KEBUTUHAN

BUAT PROTOTIPE

EVALUASI

TIDAK SESUAI

SESUAI GUNAKAN PROTOTIPE

THROWAWAY PROTOTYPE

PROGRAM SISTEM

TENTUKAN KEBUTUHAN

UJI SISTEM

BUAT PROTOTIPE

EVALUASI

TIDAK SESUAI

SESUAI TIDAK

EVALUASI

SESUAI
GUNAKAN SISTEM

SESUAI

Problems Prototyping Model


Customer melihat prototipe tersebut sebagai versi dari software.

Pada saat produk tersebut harus dibangun ulang supaya level kualitas bisa terjamin, Customer akan mengeluh dan meminta sedikit perubahan saja supaya prototipe tersebut bisa berjalan.

Development membuat implemetasi yang kompromitas dengan

tujuan untuk memperoleh prototipe pekerjaan secara cepat. Dampaknya adalah sistem operasi atau bahasa pemrograman yang dipergunakan tidak tepat, algoritma tidak efisien.

Evolutionary Model

Evolutionary Model (2)

Evolutionary Model (3) Component Assembly

Reuse Based
Software Re-engineering Apakah itu? - Restrukturisasi atau menulis ulang sebagian atau keseluruhan dari sistem yang telah ada tanpa merubah fungsionalitasnya. Kapan? - Ketika sebagian tetapi tidak semua sub sistem yg besar membutuhkan perawatan yg sering

- Ketika HW dan SW sudah lama hampir tak berfungsi


Bagaimana? - Sistem bisa di restrukturisasi dan didokumentasi ulang untuk membuat menjadi mudah dalam perawatan Mengapa? - Mengurangi resiko SW yang baru dibangun membawa resiko yg tinggi - Mengurangi biaya

Biaya untuk re-engineering sering lebih kecil dibanding membangun SW baru.

Reverse engineering
Analisis SW kembali dalam tahap pemahaman dalam desain dan spesifikasinya
Bisa sebagian proses re-engineering atau

sebagian sistem diimplementasi ulang Membangun database dan bangkitkan program informasi dari proses ini

Reverse Engineering (2)


Mengapa ?
Kode aslinya telah dalam keterbatasan dimana

sudah terlalu lama misal kebutuhan memori, kinerja, dll Perawatan terbentur pada struktur dan program yang rusak sehingga membutuhkan kerja yang sangat keras. Program secara otomatis distrukturisasi ulang untuk menghilangkan beberapa bagian yang tidak beres dalam kondisi yang sangat kompleks.

TAMAT