Anda di halaman 1dari 34

Pengenalan Rekayasa Perangkat Lunak (Software Engineering)

Pendahuluan
Rekayasa perangkat lunak (RPL, atau Software Engineering) adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembanganan perangkat lunak dan manajemen kualitas.

The Institute of Electrical and Electronics Engineers (IEEE Computer Society) mendefinisikan
rekayasa perangkat lunak sebagai penerapan suatu pendekatan yang sistematis, disiplin dan terkuantifikasi atas pengembangan, penggunaan dan pemeliharaan perangkat lunak, serta studi atas pendekatanpendekatan ini, yaitu penerapan pendekatan engineering atas perangkat lunak.

...lanjutan
Pengertian RPL sendiri adalah suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikasi dari kebutuhan pengguna, disain, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan. Dari pengertian ini jelaslah bahwa RPL tidak hanya berhubungan dengan cara pembuatan program komputer. Pernyataan semua aspek produksi pada pengertian di atas, mempunyai arti semua hal yang berhubungan dengan proses produksi seperti manajemen proyek, penentuan personil, anggaran biaya, metode, jadwal, kualitas sampai dengan pelatihan pengguna merupakan bagian dari RPL.

...lanjutan
RPL merupakan penerapan dari penerapan yg sistematis, berdisiplin/berpegang pd prinsip tertentu dan terukur terhadap pengembangan, operasi dan pemeliharaan perangkat lunak. RPL meliputi proses, manajemen, metode teknis, dan penggunaan alat/ tools. RPL merupakan teknologi yg berlapis. Digambarkan sbb :

...lanjutan
RPL memiliki kerangka kerja proses yg umum (common process framework) sbb : o Communication Customer collaboration Requirement gathering o Planning work plan, technical risks, resource requirements, work product produce, and work schedule o Modelling Analysis of requirements Design o Construction Code generation Testing o Deployment-software delivered for customer evaluation and feedback

...lanjutan
Kerangka kerja tsb ada pd setiap model proses, apapun nama model proses tersebut. Setiap poin disebut aktivitas. Disemua aktivitas tsb dilingkupi umbrella activities. Untuk apa ? -> bisa dijelaskan bila mengerti fungsi umbrella/payung. Process framework Framework activities work tasks work products milestone & deliverables QA checkpoints Umbrella Activities

Software Engineering Umbrella Activities


Fase dan langkah-langkah yang berhubungan, seperti yang digambarkan pada pandangan umum kita tentang Software engineering, harus diimbagi dengan sejumlah aktivitas pelindung Software project tracking and control Formal technical reviews Software quality assurance Software configuration management Document preparation and production Reusability management Measurement Risk management

Sejarah
Istilah software engineering, pertama kali digunakan pada akhir tahun 1950-an dan sekitar awal 1960-an. Pada tahun 1968, NATO menyelenggarakan konferensi tentang software engineering di Jerman dan kemudian dilanjutkan pada tahun 1969. Meski penggunaan kata software engineering masukan konferensi tersebut menimbulkan debat tajam tentang aspek engineering dari pengembangan perangkat lunak, banyak pihak yang menganggap konferensi tersebutlah yang menjadi awal tumbuhnya profesi rekayasa perangkat lunak

...lanjutan
Rekayasa perangkat lunak telah berkembang sejak pertama kali diciptakan pada tahun 1940-an hingga kini. Focus utama pengembangannya adalah untuk mengembangkan praktek dan teknologi untuk meningkatkan produktivitas para praktisi pengembang perangkat luank dan kualitas aplikasi yang dapat digunakan oleh pemakai. Pada tahun 1960-an hingga 1980-an, banyak masalah yang ditemukan para praktisi pengembangan perangkat lunak. Banyak project yang gagal, hingga masa ini disebut sebagai krisis perangkat lunak. Kasus kegagalan pengembangan perangkat lunak terjadi mulai dari project yang melebihi anggaran, hingga kasus yang mengakibatkan kerusakan fisik dan kematian. Salah satu kasus yang terkenal antara lain meledaknya roket Ariane akibat kegagalan perangkat lunak.

...lanjutan
Selama bertahun-tahun, para peneliti memfokuskan usahanya untuk menemukan teknik jitu untuk memecahkan masalah krisi perangkat lunak. Berbagai teknik, metode, alat, proses diciptakan dan diklaim sebagai senjata pamungkas untuk memecahkan kasus ini.

Mulai dari pemrograman terstruktur, pemrograman berorientasi objek, perangkat pembantu pengembangan perangkat lunak (CASE tools), berbagai standar, Unified Modeling Language (UML) hingga metode formal, diagung-agungkan sebagai senjata pamungkas untuk menghasilkan software yang benar, sesuai anggaran dan tepat waktu.

...lanjutan
Pada tahun 1987, Fred Brooks menulis artikel No Silver Bullet, yang mengungkapkan bahwa tidak ada satu teknologi atau praktek yang sanggup mencapai 10 kali lipat perbaikan dalam produktivitas pengembanan perangkat lunak dalam tempo 10 tahun. Sebagian berpendapat, 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.

TUJUAN REKAYASA PERANGKAT LUNAK


Secara umum tujuan RPL tidak berbeda dengan bidang rekayasa yang lain. Hal ini dapat kita lihat pada Gambar di bawah ini.

Gambar Tujuan RPL

Dari Gambar di atas dapat diartikan bahwa bidang rekayasa akan selalu berusaha menghasilkan output yang kinerjanya tinggi, biaya rendah dan waktu penyelesaian yang tepat.

...lanjutan

Secara lebih khusus kita dapat menyatakan tujuan RPL adalah: memperoleh biaya produksi perangkat lunak yang rendah menghasilkan perangkat lunak yang kinerjanya tinggi, andal dan tepat waktu menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform menghasilkan perangkat lunak yang biaya perawatannya rendah

RUANG LINGKUP
Sesuai dengan definisi yang telah disampaikan sebelumnya, maka ruang lingkup RPL dapat digambarkan sebagai berikut:

Gambar Ruang lingkup RPL (Abran et.al., 2004)

...lanjutan
software Requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak software desain mencakup proses penampilan arsitektur, komponen, antar muka, dan karakteristik lain dari perangkat lunak software construction berhubungan dengan detail pengembangan perangkat lunak, termasuk algoritma, pengkodean, pengujian dan pencarian kesalahan software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak software maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan

...lanjutan
software configuration management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu software engineering management berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak software engineering tools and methods mencakup kajian teoritis tentang alat bantu dan metode RPL software engineering process berhubungan dengan definisi, implementasi pengukuran, pengelolaan, perubahan dan perbaikan proses RPL software quality menitik beratkan pada kualitas dan daur hidup perangkat lunak

Software Engineering
Jalan untuk membangun produk software berkualitas tinggi adalah melalui proses software. Proses software diadaptasikan untuk memenuhi kebutuhan software engineer dan manager yang memegang peranan penting dalam membangun produk software. Proses software menyediakan framework untuk mengelola aktivitas yang bisa dengan mudah di luar kontrol. Proyek yang berbeda memerlukan proses software yang berbeda pula. Hasil dari pekerjaan software engineer (program, dokumentasi, data) adalah produk dari aktivitas proses software. Indikator terbaik untuk mengetahui seberapa baik kinerja proses software adalah kualitas, waktu, dan hasilnya (produk software).

Software Engineering
Software engineering meliputi proses, teknik manajemen, metode teknis, dan penggunaan tools. Proses -> pondasi untuk membangun software yang tepat waktu dan rasional Proses ini pembentuk dasar bagi kontrol manajemen proyek Software serta membangun konteks dimana metode teknik diaplikasikan , produk usaha (model, dokumen, data, laporan, form, dan lain-lain) dihasilkan, fondasi dibangun, kualitas dijamin, perubahan diatur Metode-metode: teknik untuk membangun Software engineering (menyangkut serangkaian tugas yang luas seperti analisis kebutuhan, konstruksi program, desain, pengujian, dan pemeliharaan) Tool-tool Software engineering memberikan topangan pada proses-proses dan metode yang ada Ketika tool diintegrasikan sehingga informasi yang diciptakan oleh satu tool bisa digunakan oleh yang lain, sistem untuk menopang perkembangan Software engineering (CASE) terbangun.

Fase-fase Generic Software Engineering


Usaha yang berhubungan dengan Software engineering dapat dikategorikan ke dalam tiga fase umum dengan tanpa memperdulikan area aplikasi, ukuran proyek maupun kompleksitasnya. Definition Phase: fokus pada APA (information engineering, software project planning, requirement analysis) Development Phase: fokus pada BAGAIMANA (desain software, code generation, pengujian software) Maintenance/Support Phase: fokus pada PERUBAHAN (corrective maintenance, adaptive maintenance, perfective maintenance, preventative maintenance)

... lanjutan
Ada 4 tipe perubahan yang terjadi selama masa fase pengembangan: 1. Koreksi: manajemen koreksi mengubah perangkat lunak dengan membetulkan kekurangan / kerusakannya 2. Adaptation: untuk memenuhi kebutuhan dari waktu ke waktu seperti CPU, OS, aturan-aturan bisnis, karakteristik produk eksternal dimana perangkat lunak dikembangkan dan akan terus berubah 3. Enhancement (perkembangan): ketika perangkat lunak dipakai, user akan mengenali fungsi-fungsi tambahan yang memberi mereka keuntungan. Perfective maintenance memperluas perangkat lunak sehingga melampaui kebutuhannya fungsi originalnya 4. Pencegahan: dilakukan karena keadaan software semakin memburuk sehubungan dengan waktu dan karena itu preventive maintenance harus dilakukan. Preventive maintenance melakukkan perubahan pada program komputer sehingga bisa menjadi lebih mudah untuk dikoreksi, disesuaikan dan dikembangkan.

Common Process Framework

Software engineering work tasks Project milestones Work products Quality assurance points

Software Engineering Institute (SEI) and Capability Maturity Model (CMM)


Level 1: Level 2: Level 3: Inisialisasi (ad hoc software processes) Repeatable (bisa mengulang kesuksesan sebelumnya) Definisi (manajemen dan dokumentasi proses rekayasa, standarisasi, dan integrasi ke proses software di seluruh organisasi) Managed (proses dan produk software dapat dimengerti dan dikendalikan menggunakan perhitungan yang terinci) optimasi (peningkatan proses yang berkelanjutan dilakukan dengan feedback dari proses dan testing)

Level 4:

Level 5:

Model Proses Software


Proses RPL menunjukkan siklus hidup (life cycle) dr pengembangan software, dr awal s/d akhir pengembangan. Model proses menunjukkan bagaimana aktivitasaktivitas pengembangan software disusun. Disinilah sisi rekayasa dilakukan. Terdapat beberapa macam model prose pengembangan software. Pressman (2006) membagi model proses dlm 2 kelompok besar, yaitu Prescriptive dan Agile. Model proses prescriptive memiliki karakteristik utama pendekatan yg digunakan : pendekatan yg aktivitas yg terurut. Jadi urutan-urutan aktivitaslah yg diperhatikan.

Model Proses Software


Yang termasuk dlm model proses Prescriptive :
Model air terjun / waterfall Incremental Rapid Application Development (RAD) Model Evolusioner (tdd : prototyping, spiral, concurrent)

Model Proses Waterfall; merupakan model proses yg paling lama & populer. Aktivitasnya sbb :
Comminication project initiation requirement gathering
Planning estimating schedulling tracking

Modelling analysis design

Construction code test

Deployment delivery Support feedback

... lanjutan
Model proses Incremental seperti halnya model waterfall, namun dgn pengiriman SW secara bertahap. Model proses ini digambarkan sbb :

... lanjutan
Pada gambar tsb, pengiriman/delivery SW dilakukan secara bertahap sedemikian hingga pd tahap akhir SW telah selesai secara keseluruhan. Berbeda dgn waterfall yg mengirimkan SW sekaligus, model proses ini berusaha memecahmecah kebutuhan SW, dan mengirimkan SW tsb secara bertahap (misal berdasarkan fitur) sampai dgn SW tsb lengkap. 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.

Communication merupakan tahapan pengumpulan sofwtare. Planning merupakan perencanaan, penjadwalan dan pelacakan (bagaimana ketika SW sdh selesai, bisa dibuktikan bhw SW telah selesai sesuai dgn kebutuhan). Modelling merupakan tahapan dimana analisis & perancangan dihasilkan. Construction merupakan pembuatan kode program beserta pengujiannya. Deployment merupakan pengiriman instalasi SW, pelatihan dan umpan balik dr pengguna kpd pengembanga SW. Dlm waterfall, aktivitas-aktivitas yg dijalankan hrs terurut. Satu aktivitas tdk bisa dijalankan sblm aktivitas sebelumnya selesai dilakukan, dan sebaliknya. Jika ada perubahan kebutuhan SW saat aktivitas mulai dijalankan, maka keseluruhan aktivitas hrs diselesaikan dahulu, dan hrs kembali ke awal aktivitas dan membuat kontrak yg baru. Model proses waterfall cocok utk proyek SW yg sdh sangat sering dikerjakan ataupun proyek yg telah jelas kebutuhannya.

... lanjutan
Model Linear Sekuensial (model klasik tetapi pendekatan yang beralasan jika requirement yang ada dapat dipahami dengan baik) Model Prototyping (langkah awal yang baik ketika pemakai memiliki kebutuhan yang resmi tetapi belum memiliki petunjuk tentang detail) Model Rapid Application Development (RAD) (banyak menggunakan komponen software reusable dengan siklus pembangunan yang sangat singkat) Model Incremental ( deliver software in small but usable pieces, each piece builds on pieces already delivered) Model Spiral (melakukan prototyping secara iteratif dengan pengendalian dan aspek sistematis dari model linear sekuensial)

... lanjutan
Model Win-Win Spiral (mengurangi definisi requirement software melalui negosiasi antara pemakai dan developer dengan tetap menjaga keseimbangan constraint teknis dan bisnis) Model Concurrent Development (serupa dengan model spiral dan biasa digunakan pada pembangunan aplikasi client-server) Component-Based Development (variasi model spiral dimana aplikasi dibangun dari komponen software yang tersedia yang disebut class) Model Metode Formal (menggunakan notasi matematis untuk menspesifikasi, mendesain, dan memverivikasi sistem berbasis komputer) Fourth Generation (4GT) Techniques (tool software digunakan untuk menggenerate source code untuk sistem software dari representasi spesifikasi level tinggi)

REKAYASA PERANGKAT LUNAK DAN DISIPLIN ILMU LAIN Cakupan ruang lingkup yang cukup luas, membuat RPL sangat terkait dengan disiplin dengan bidang ilmu lain. tidak saja sub bidang dalam disiplin ilmu komputer namun dengan beberapa disiplin ilmu lain diluar ilmu komputer. Hubungan keterkaitan RPL dengan ilmu lain dapat dilihat pada gambar dibawah ini

... lanjutan
bidang ilmu manajemen meliputi akuntansi, finansial, pemasaran, manajemen operasi, ekonomi, analisis kuantitatif, manajemen sumber daya manusia, kebijakan, dan strategi bisnis bidang ilmu matematika meliputi aljabar linier, kalkulus, peluang, statistik, analisis numerik, dan matematika diskrit bidang ilmu manajemen proyek meliputi semua hal yang berkaitan dengan proyek, seperti ruang lingkup proyek, anggaran, tenaga kerja, kualitas, manajemen resiko dan keandalan, perbaikan kualitas, dan metode-metode kuantitatif

... lanjutan
bidang ilmu ergonomika menyangkut hubungan (interaksi) antar manusia dengan komponen-komponen lain dalam sistem komputer bidang ilmu rekayasa sistem meliputi teori sistem, analisis biayakeuntungan, pemodelan, simulasi, proses, dan operasi bisnis

PERKEMBANGAN REKAYASA PERANGKAT LUNAK

Meskipun baru dicetuskan pada tahun 1968, namun RPL telah memiliki sejarah yang cukup yang panjang. Dari sisi disiplin ilmu, RPL masih reklatif muda dan akan terus berkembang. Arah perkembangan yang saat ini sedang dikembangkan antara lain meliputi :

... lanjutan

Anda mungkin juga menyukai