• Tidak ada hasil yang ditemukan

BAB - I Konsep Dasar dan Proses dari Rekayasa Perangkat Lunak. Mampu Menjelaskan Konsep Dasar dan Proses Rekayasa Perangkat Lunak

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB - I Konsep Dasar dan Proses dari Rekayasa Perangkat Lunak. Mampu Menjelaskan Konsep Dasar dan Proses Rekayasa Perangkat Lunak"

Copied!
22
0
0

Teks penuh

(1)

BAB - I

Konsep Dasar dan Proses dari Rekayasa Perangkat Lunak Tujuan Pembelajaran Umum

Menjelaskan Perangkat Lunak Sebagai Proses Tujuan Pembelajaran Khusus

Mampu Menjelaskan Konsep Dasar dan Proses Rekayasa Perangkat Lunak

Arti Software Engineering :

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

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 pendekatan-pendekatan ini, yaitu penerapan pendekatan engineering atas perangkat lunak.

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

Rekayasa perangkat lunak berkualitas tinggi dengan cara yang sistematis, terkontrol, dan efisien. Konsekuensi, terdapat penekanan penting pada analisis dan evaluasi, spesifikasi, desain, dan evolusi pada perangkat lunak. Selain itu, ada masalah yang berkaitan dengan manajemen dan kualitas, terhadap hal baru dan kreativitas, dengan standar, keterampilan individu, dan praktek kerja tim dan praktis profesional yang memainkan peran penting dalam rekayasa perangkat lunak. 1

Rekayasa Perangkat Lunak adalah penetapan dan penggunaan prinsip-prinsip rekayasa untuk mendapatkan perangkat lunak yang ekonomis, yaitu perangkat lunak yang dapat diandalkan dan bekerja efisien pada mesin yang riil (Roger, 2005, p10) .

1

Software Enggineering 2004 (SE 2004) http://sites.computer.org/ccse/SE2004Volume.pdf , diakses tanggal : 12 April 2012

(2)

Dalam penelitian ini kita menggunakan paradigma M o d e l Waterfall atau Siklus Hidup Klasik (Classic Life Cycle) sebagai metode perancangan. Dalam buku Roger Pressman(2005,p10), perangkat lunak adalah :

1. Perintah (program komputer) yang bila dieksekusi memberikan fungsi dan unjuk kerja seperti yang digunakan.

2. Struktur data yang memungkinkan program memanipulasi informasi secara proporsional.

3. Dokumen yang menggambarkan operasi dan kegunaan program.

Menurut Roger (2005,p10-14), perangkat lunak memiliki ciri khas yang berbeda dari perangkat keras, yaitu :

1. Perangkat lunak dibangun dan dikembangkan, tidak dibuat dalam bentuk yang klasik.

Meskipun banyak kesamaan di antara pabrik perangkat keras dan perangkat lunak, aktivitas keduanya secara mendasar sangat berbeda. Dalam kedua aktivitas tersebut, kualitas yang tinggi dicapai melalui perancangan yang baik, tetapi di dalam fase pembuatan perangkat keras, selalu ditemukan masalah kualitas yang tidak mudah untuk disesuaikan dengan perangkat lunak.

2. Perangkat lunak tidak pernah usung.

Perangkat lunak tidak rentan terhadap pengaruh lingkungan yang merusak yang menyebabkan perangkat keras menjadi usung.

3. Sebagian besar Perangkat lunak dibuat secara custom-built,serta tidak dapat dirakit dari komponen yang sudah ada.

Dalam membangun atau membuat perangkat lunak yang baik, melalui beberapa tahapan antara lain:

1. Fase Perencanaan (Planning) : a) Rencana software

b) Analisa kebutuhan software

c) Analisa cost banefit (Salah satu bagian dari studi kelayakan) 2. Fase Pengembangan (Development) :

a) Coding b) Testing

Macam-macam test program : i) Unit test (Test per modul)

ii) Integreated test (Test penggabungan dari modul-modul yang telah diuji) iii) Validated test (Diuji dengan data sebenarnya)

iv) System test (Test dilakukan dengan lingkungan sebenarnya) v) Topdown test (Test gabungan dari atas ke bawah)

vi) Bottom up test (Test gabungan dari bawah ke atas) 3. Fase Pemeliharaan (Maintenance) :

(3)

a) Koreksi (Corection) b) Adaptasi (Adaptive)

Software dikembangkan sesuai dengan tuntutan perkembangan jaman c) Adaptasi yang berkembang pada dewasa ini terbagi atas :

i) Sistem Operasi

 Pengarahan sistem operasi yang bersifat multi user. Contoh : UNIX

 Sistem operasi yang bersifat jaringan. Contoh : NOVELL ii) RDBMS - Relational DataBase Management System

 Berkembang dalam bentuk bahasa SQL (Structure Query Language). iii) Bahasa

Mengarah pada perkembangan bahasa generasi ke empat (4GL - Fourth Generation Language)

Bahasa 4GL adalah suatu bahasa yang dibuat untuk meningkatkan produktifitas programmer dan end user. Contoh :

a) INFORMIX - Dapat dijalankan pada PC dengan minimum RAM 4MB + 640KB dan disk storage > 40MB

b) ORACLE c) INGRES

d) AS / SET - Digunakan pada IBM AS 400 e) POWER HOUSE - digunakan pada HR 3000 iv) Perfective

Menyempurnakan software yang ada biasanya dilakukan karena permin-taan / saran / kritik user

Ruang Lingkup Perangkat Lunak

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

(4)

 software Requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak

 software design 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

 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

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

(5)

- 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

- bidang ilmu ergonomika menyangkut hubungan ( interaksi) antar manusia dengan komponen-komponen lain dalam sistem komputer

- bidang ilmu rekayasa sistem meliputi teori sistem, analisis biaya-keuntungan, pemodelan, simulasi, proses, dan operasi bisnis

Perangkat Lunak dan Rekayasa Perangkat Lunak (Software and Software engineering)

Selama tiga dekade pertama dari era komputerisasi, tantangan utama adalah mengembangkan hardware komputer yang dapat mengurangi biaya pengolahan dan penyimpanan data. Selama dekade tahun 1980 an, kemajuan yang pesat dari mikro elektronik menghasilkan kemampuan komputer yang lebih baik pada tingkat biaya yang lebih rendah. Namun masalah sekarang berbeda. Tantangan utama adalah mengurangi biaya dan memperbaiki kualitas solusi berbasis komputer (Solusi yang diimplementasikan dengan mempergunakan software). Software merupakan faktor kunci dalam keberhasilan suatu usaha, software dapat membedakan satu perusahaan dari perusahan saingannya.

Evolusi Perkembangan Perangkat Lunak

Evolusi software

(6)

Tahun-tahun awal :  Batch orientation  Limmited distribution  Custummer software Era kedua :  Multi user  Real time  Database Era ketiga  Distibuted system  Embedded intellegence

 Low cost hardware

 Consumer infact Era keempat :  Expert system  A I Machine  Parallel architecture Tahun-Tahun pertama  Batch Orientation

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

(7)

Era Kedua :

 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 mentransformasikan 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 (DataBase Management System).

 Product Software

Adalah software yang dikembangkan untuk dijual kepada masyarakat luas.

Era Ketiga :

 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.

(8)

 Expert system

Suatu penerapan A.I. (Artificial 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 Architecture

Arsitektur komputer yang memungkinkan proses kerja LAN paralel, yang dimungkinkan adanya prosesor berbeda dalam satu komputer

Arti Perangkat Lunak 1. Instruksi

Atau program komputer yang ketika dieksekusi akan memberi fungsi dan hasil yang diinginkan.

2. Struktur data

Yang memungkinkan program memanipulasi informasi 3. Dokumen

Yang menggambarkan operasi dan penggunaan program.

Sifat dab Karakteristik Perangkat Lunak

1. Software merupakan elemen sistem logik dan bukan elemen sistem fisik seperti hardware

2. Elemen itu tidak aus, tetapi bisa rusak.

3. Elemen software itu direkayasa atau dikembangkan dan bukan dibuat di pabrik seperti hardware

4. Software itu tidak bisa dirakit.

Komponen Perangkat Lunak 1. Bentuk bahasa

(9)

A. High Level, contoh PASCAL, COBOL, FORTRAN. B. Middle Level, contoh C

2. 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 3. Bentuk mesin :

Gambar : Komponen Perangkat Lunak Perangkat Lunak Aplikasi (Application Software)_

Perangkat lunak dapat diaplikasikan ke berbagai situasi dimana serangakaian langkah prosedural (seperti algoritma) telah didefinisikan. Kandungan (content) dan determinasi informasi merupakan faktor penting dalam menentukan sifat aplikasi perangkat lunak. Content mengarah pada arti dan bentuk informasi yang masuk dan keluar. Misalnya, banyak aplikasi bisnis memakai data input dengan struktur data lebih tinggi (misal database) dan mengahasilkan laporan yang sudah terformat. Perangkat lunak yang mengontrol mesin otomatis menerima bentuk data diskrit dengan struktur yang terbatas dan menghasulkan perintah mesin individual dalam ekskusi yang cepat. Sedangkan determinasi informasi merujuk pada predikbilitas urutan dan timing informasi.

Berikut beberapa jenis aplikasi perangkat lunak : LANGUAGE FORM T RANSLAT OR MACHINE LANGUAGE HIGH LEVEL MIDDLE LEVEL

(10)

a. Perangkat lunak sistem. Sekumpulan program untuk melayani program–program lain, misalnya sistem operasi, kompiler, editor, utilitas pengatur file, driver, prosesor telekomunikasi.

b. Perangkat lunak real-time. Program-program untuk mengontrol/menganalisis/ memonitor kejadian dunia nyata pada saat terjadinya. Misalnya program untuk mengontrol mesin industri.

c. Perangkat lunak bisnis. Program untuk pemrosesan informasi di dunia bisnis, mulai dari payroll, account payable, inventory, post system, sampai perangkat lunak sistem informasi manajemen yang bisa mengakses satu atau lebih database.

d. Perangkat lunak teknik dan ilmu pengetahuan. Jangkauan aplikasinya meliputi, asmronomi, vulkanologi, kedokteran, analisis otomotif, biologi, mesin-mesin pabrik, sampai pada perangkat bantu dalam perancangan (computer aided design) untuk konstuksi bangunan, komponen elektronik, rancangan mesin, simulasi sitem, dan lain-lain.

e. Embeded Software. Program yang disertakan dalam suatu perangkat dan berfungsi untuk mengontrol hasil serta sistem perangkat tersebut. Contoh : key pad control untuk microwave, fungsi digital pada automobil (pengontrol bahan bakar, penampilan dash board, sistem rem, dll).

f. Perangkat lunak komputer personal. Program–program yang bisa dijalankan pada komputer personal. Contoh : pengolah kata, multimedia, hiburan, manajemen database, aplikasi keuangan bisnis, dll.

g. Perangkat lunak kecerdasan buatan dan jaringan syaraf tiruan. Sistem pakar atau disebut juga sistem berbasis pengetahuan. Program yang digunakan untuk menggerakkan/mengontrol robot, permainan game, pengolah gambar dan pola (image dan voice).

Krisis Perangkat Lunak

Adalah sekumpulan masalah yang ditemukan dalam pengembangan software computer. Masalahnya tidak hanya terbatas pada software yang tidak berfungsi sebagaimana mestinya, tetapi krisis software ini terdiri dari masalah yang berhubungan dengan : 1. Bagaimana mengembangkan software ?

2. Bagaimana memelihara software ynag ada, yang berkembang dalam jumlah besar ? 3. Bagaimana mengimbangi permintaan software yang makin besar ?

Masalah

Krisis software oleh beberapa masalah :

1. Estimasi jadual dan biaya yang seringkali tidak tepat

2. Produktivitas orang-orang software yang tidak dapat mengimbangi permintaan software 3. Kualitas software yang kurang baik.

(11)

Penyebab :

Masalah yang berhubungan dengan krisis software disebabkan oleh : 1. Karakteristik software itu sendiri

Karakteristik software adalah software yang bersifat logika dibandingkan fisik, oleh karena itu mengukur software harus merupakan suatu kesatuan, tidak seperti hardware. Software yang bersifat tidak aus ini menyebabkan kesalahan yang terjadi pada software. Umumnya terjadi pada tahap pengembangan. Manajer tingkat menengah dan tingkat atas yang tidak mempunyai latar belakang software, seringkali diberi tanggung jawab untuk mengembangkan software. Padahal tidak semua manajer itu dapat me-manage semua proyek.

Praktisnya : software programmer atau software engineering mendapatkan latihan formal yang sedikit dalam hal tehnik baru pengembangan software.

(12)

Mitos Perangkat Lunak 1. Mitos managements

A. Kita tidak perlu mengubah pendekatan terhadap pengembangan software, karena jenis pemrograman yang kita lakukan sekarang ini sudah kita lakukan 10 tahun yang lalu.

Realitasnya : Walau hasil program sama, produktivitas dan kualitas software harus ditingkatkan dengan menggunakan pendekatan software developments B. Kita sudah mempunyai buku yang berisi standarisasi dan prosedur untuk

pembentukan software.

Realitasnya : Memang buku tersebut ada, tetapi apakah buku tersebut sudah dibaca atau buku tersebut sudah ketinggalan jaman ( out of date ).

C. Jika kita tertinggal dari jadwal yang ditetapkan, kita menambah beberapa programmer saja. Konsep ini sering disebut Mongolian harde concept.

2. Mitos Langganan / Customer

A. Pernyataan tujuan umum sudah cukup untuk memulai penulisan program. Penjelasan yang lebih rinci akan menyusul kemudian.

Realitasnya : Definisi awal yang buruk adalah penyebab utama kegagalan terhadap usaha-usaha pembentukkan software. Penjelasan yang formal dan terinci tentang informasi fungsi performance interface, hambatan desain dan kriteria validasi adalah penting. Karakteristik di atas dapat ditentukan hanya setelah adanya komunikasi antara customer dan developer.

B. Kebutuhan proyek yang terus menerus berubah dapat dengan mudah diatasi karena software itu bersifat fleksibel. Kenyataannya memang benar bahwa kebutuhan software berubah, tetapi dampak dari perubahan berbeda dari waktu ke waktu. 1 kali 1,5 - 6 kali 60 - 100 kali Biaya akibat perubahan

Definition Developm ent Maintenance

(13)

Kesimpulan : Jika perubahan mendekati akhir penyelesaian, maka biaya akan lebih besar.

3. Mitos Praktisi

A. Tidak ada metode untuk analisis disain dan testing terhadap suatu pekerjaan, cukup menuju ke depan terminal dan mulai coding.

Realitasnya : Metode untuk analisis desain dan testing diperlukan dalam pengembangan software.

B. Segera setelah software digunakan, pemeliharaan dapat diminimalisasikan dan diatasi dengan cara “CATCH AS CATCH CAM”.

Realitasnya : Diperlukan budget yang besar dalam maintenance software. Pemeliharaan software harus diorganisir, direncanakan dan dikontrol seolah-olah sebagai suatu proyek besar dalam sebuah organisasi.

Model Rekayasa Perangkat Lunak

Krisis software tidak dapat hilang dalam satu satu malam, di mana tidak ada suatu pendekatan yang baik dalam mengatasi krisis software, namun gabungan dari metode untuk semua fase dalam pengembangan siftware seperti peralatan yang lebih baik untuk mengautomatisasi metode-metode ini, tehnik yang lebih baik untuk mengontrol kualitas, dan filosofi untuk koordinasi kontrol, serta manajemen dipelajari dalam suatu disiplin ilmu yang kita sebut software engineering.

Definisi :

Menurut Fritz Badar, software engineering adalah disiplin ilmu yang menerapkan prinsip-prinsip engineering agar mendapatkan software yang ekonomis yang dapat dipercaya dan bekerja lebih efisien pada mesin yang sebenarnya.

Software engineering terdiri dari 3 elemen kunci, yaitu : 1. Metode,

2. Peralatan (tools), 3. Prosedur,

yang memungkinkan manajer mengontrol proses pengembangan software dan memberikan praktisi dasar yang baik untuk pembentukan software berkualitas tinggi.

(14)

1. Metode Software Enginnering

Metode software engineering memberikan tehnik-tehnik bagaimana membentuk software. Metode ini terdiri dari serangkaian tugas :

 Perencanaan & estimasi proyek

 Analisis kebutuhan sistem dan software

 Desain struktur data

 Arsitektur program dan prosedur algoritma

 Coding

 Testing dan pemeliharaan 2. Peralatan Software Engineering

Peralatan software engineering memberikan dukungan atau semiautomasi untuk metode. Contohnya :

 CASE (Case Aided Software Engineering), yaitu suatu software yang menggabungkan software, hardware, dan database software engineering untuk menghasilkan suatu lingkungan software engineering.

 Database Software Engineering, adalah sebuah struktur data yang berisi informasi penting tentang analisis, desain, kode dan testing.

 Analogi dengan CASE pada hardware adalah : CAD, CAM, CAE 3. Prosedur Software Engineering

Terdiri dari :

 urut-urutan di mana metode tersebut diterapkan

 dokumen

 laporan-laporan

 formulir-formulir yang diperlukan

 mengontrol kualitas software

 mengkoordinasi perubahan yang terjadi pada software

Dalam penguasaan atas model software engineering atau software engineering paradigm, dikenal ada 3 metode yang luas dipergunakan, yaitu :

Dalam subbab ini akan dibahas beberapa model proses yang berbeda pada rekaya perangkat lunak. Definisi masalah Pengembangan Teknis Status Quo

(15)

Gambar 1.6. Fase lingkaran pemecahan masalah

Gambar 1.7. Fase-fase di dalam lingkaran pemecahan masalah

Latihan : Definisi masalah Penyatuan Solusi Pengembangan Teknis Status Quo Definisi masalah Penyatuan Solusi Pengembangan Teknis Status Quo Definisi masalah Penyatuan Solusi Pengembangan Teknis Status Quo Status Quo

(16)

1. Berbagai konsep RPL (Software Enggineering), dijelaskan melalui beberapa pakar, asosiasi, dan lain-lain. Pertanyaan coba jelaskan pendapat RPL menurut : Roger Pressman, Ian Somervile, IEEE, Software Engginering 2004 (SE2004), Computer Science 2008 (CS2008) ? (gunakan buku, searching melalui internet)

2. Gambarkan dan jelaskan ruang lingkup RPL ?

3. Jelaskan hubungan keterkaitan RPL dengan ilmu lain ? 4. Jelaskan evolusi perkembangan Rekayasa Perangkat Lunak ?

5. Sebutkan dan jelaskan berbagai berbagai aplikasi pengembangan Rekayasa Perangkat Lunak?

6. Apa yang dimaksud dengan model pengembangan perangkat lunak ?

Bab 2

Model Proses dan Proses Agile

Tujuan Pembelajaran Umum

Menjelaskan Perangkat Lunak Sebagai Proses Tujuan Pembelajaran Khusus

Mampu Menjelaskan Proses dan Proses Agile

 Apa ? Proses perangkat lunak - adalah seri langkah pekerjaan yang dapat diprediksi berdasarkan ketepatan waktu, kualitas produk yang baik.  Siapa ? Manajer, Insinyur Perangkat lunak dan pelanggan-pelanggan  Mengapa ? Ditentukan berdasarkan stabilitas, pengawasan, dan organisasi

dengan aktifitas yang padat

 Langkah-langkah ? Aktifitas-aktifitas untuk seluruh proses dengan detail variasi  Produk kerja ? program, dokumen-dokumen dan data

Rekayasa Perangkat Lunak :

Software Engineering: (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1). - IEEE Standard 610.12-1990

(17)

Dapat diterjemahkan sebagai berikut : “Rekayasa Perangkat Lunak : (1) Aplikasi yang sistematis, disiplin, pandangan kuantifabel di dalam membangun, mengoperasikan, dan memelihara sebuah perangkat lunak : bahwa pada aplikasi perangkat lunak, (2) Suatu studi yang mempelajari pada poin (1)”

Pandangan Umum Rekayasa Perangkat Lunak

Kegiatan Rekayasa merupakan pelaksanaan beberapa aktifitas seperti : analisis, desain, konstruksi, verifikasi, dan manajemen entitas teknis (dan sosial). Di dalam mengerjakan Rekayasa Perangkat Lunak tentunya seorang insinyur berusaha menjawab beberapa pertanyaan di dalam mengembangkan perangkat lunak, misalnya:

 Problem apa yang harus diselesaikan ?

 Karakteristik entitias apa yang digunakan untuk menyelesaikan masalah ?

 Bagaimana entitas (dan solusinya) direalisasikan ?

 Bagaimana entitas di konstruksi ?

 Pendekatan apa yang digunakan untuk menemukankesalahan yang dibuat pada desain dan konstruksi entitas ?

Bagaimana entitas didukung dalam jangka panjang, dimana koreksi, adaptasi, dan peningkatan selalu diminta pengguna pada entitas

Process framework Umbrella activities

framework activity #1

SE action #1.1

Software

SE action #1.2

framework activity #2

SE action #2.1

SE action #2.2

(18)

Aktifitas yang memayungi dalam pengembangan RPL antara lain :

 Manajemen Proyek PL

 Review Teknik Formal

 Jaminan Mutu PL

 Manajemen Konfigurasi PL

 Persiapan dan Produksi Produk Pekerjaan

 Manajemen Penggunaan Kembali

 Pengukuran

 Manajemen Resiko

Aktifitas Kerangka Kerja dalam pengembangan RPL antara lain :

 Komunikasi  Perencanaan Kerja  Pemodelan  Analisis kebutuhan  Perancangan  Konstruksi  Mengenerate program  Test  Deployment

Model proses adaptaSI

o Aktivitas-aktivitas bingkai kerja akan selalu diaplikasikan pada setiap project, tetapi …. o Tugas-tugas (dan derajat kekakuan) pada setiap aktivitas akan bervariasi bergantung

pada :

 Tipe proyek

 Karakteristik proyek

 Penilaian umum; persetujuan tim proyek

Definisi tersebut menyatakan bahwa RPL merupakan pendekatan yang sistematis, terstruktur dan terukur dalam pengembangan, pengoperasian, dan pemeliharaan P/L. Selain itu, RPL juga membahas pendekatan-pendekatan apa saja yang dapat digunakan dalam pembangunan P/L ini. Dalam hal ini, RPL memiliki arti sebagai proses dan studi tentang proses dalam pembangunan P/L. Sebagai studi tentang proses, RPL ditinjau ke dalam 4 lapis teknologi seperti yang terlihat pada gambar berikut:

process model methods

(19)

Gambar : Model Proses Perangkat Lunak

Keempat lapis ini merupakan concern yang dibahas dalam konteks keilmuan RPL. Lapisan-lapisan ini melambangkan urutan yang perlu menjadi fokus pembahasan dalam RPL. Dalam hal ini, urutannya dimulai dari bawah ke atas.

Prinsip dasar RPL adalah membangun P/L yang memiliki kualitas baik, sehingga diperlukan quality focus. Untuk merealisasikan quality focus ini, fondasi yang perlu dibangun adalah pendefinisian process yang baik. Pendefinisian proses berarti akan menjadi basis manajemen pada pembangunan P/L termasuk metode teknis, produk kerja (model, dokumen, data, laporan, form, dll.), milestone, kualitas, dan manajemen perubahan.

Setelah proses telah terdefinisi, methods yang menentukan cara teknis membangun P/L juga perlu didefinisikan. Terakhir, tools ditentukan untuk mempermudah proses pembangunan P/L. Pembangunan P/L menggunakan tools otomatis ini biasa disebut CASE (Computer-Aided Software Engineering).

Pandangan Umum Proses Generic View of Process

Secara umum, proses dalam RPL wajib memiliki tiga fase, yaitu:

1. Definition Phase, yakni berfokus pada “what” (informasi yang perlu diproses, fungsi yang diperlukan,system behavior yang diharapkan, dll.). Hal ini berkaitan dengan penentuan kebutuhan dari P/L.

2. Development Phase, yakni berfokus pada “how” (struktur data yang merepresentasikan informasi, implementasi fungsi, dll.). Hal ini akan berkaitan dengan pembangunan solusi dari problem yang didefinisikan pada fase sebelumnya.

3. Support Phase, yakni berfokus pada “change” yang berkorelasi dengan perbaikan kesalahan, adaptasi, dan perbaikan sesuai perubahan kebutuhan customer.

o Koreksi o Adaptasi o Peningkatan o Pencegahan

CMMI

 CMMI menentukan setiap area proses dalam hal “tujuan spesifik” dan “langkah-langkah spesifik” yang dibutuhkan untuk menggapai tujuan-tujuan tersebut.

(20)

 Tujuan-Tujuan Spesifik membangun karakteristik-karakteristik yang harus ada jika aktivitas yang dilakukan sebuah proses adalah efektif.

 Langkah-Langkah Spesifik membuat sebuah tujuan menjadi sekelompok aktivitas-aktivitas yang berkaitan dengan proses.

PSP (Personal Software Process)

 Rekomendasi 5 kerangka kerja aktifitas-aktifitas :  Perencanaan (Planning)

 Desain tingkat tinggi (High-level design)

 Merevisi Desain tingkat tinggi (High-level design review)  Pengembangan (Development)

 Postmortem

 Stres kebutuhan dari beberapa perekayasa perangkat lunak adalah mengidentifikasi kesalahan sejak dini adalah hal yang terpenting, juga mengerti tipe kesalahan errornya.

TSP (Team Software Project)

 Setiap proyek "diluncurkan" menggunakan "script" untuk mendefinisikan tugas yang harus diselesaikan

 Tim (dari 2 sampai 20 insinyur) adalah mengelola dirinya (self-directed):  Rencana dan jalur kerja, menetapkan tujuan, proses sendiri dan rencana  Mendorong Pengukuran

 Tindakan dianalisis dengan maksud meningkatkan proses tim (melalui pelatihan, motivasi, ...)

Proses Pola (Patern Process)

 Pola-pola proses menentukan sekelompok aktivitas, aksi, tugas-tugas pekerjaan, produk-produk pekerjaan dan/atau perilaku yang berkaitan

 Sebuah template digunakan untuk menentukan pattern/pola Contoh-contoh umum :

 Komunikasi pelanggan (sebuah aktivitas proses)  Analisis (sebuah aksi)

 Pengumpulan Kebutuhan (sebuah tugas proses)  Review sebuah produk kerja (sebuah tugas proses)  Model Desain (sebuah produk kerja)

Proses Penilaian

 Sebuah proses harus dinilai untuk memastikan bahwa mereka memenuhi sekumpulan kriteria proses dasar yang penting bagi rekayasa PL yang sukses.  Beberapa pilihan penilaian yang tersedia :

 SCAMPI  CBA IPI

(21)

 SPICE

 ISO 9001:2000 Penilaian dan peningkatan

Gambar : Proses Penilaian Perangkat Lunak Tujuan utama proses PL

Software Process

Software Process Assessment

is examined by identifies capabilities and risk of identifies modifications to Software Process Improvement Capability Determination leads to leads to motivates Ingat:

Kualitas Tinggi = Proyek PendekProyek pendek Mengapa?

(22)

Latihan :

1. Jelaskan pandangan umum mengenai perangkat lunak ? 2. Proses Perangkat Lunak ?

3. Coba jelaskan model proses perangkat lunak ? 4. Pandangan Umum Proses perangakat lunak ? 5. Proses penilaian perangkat lunak ?

Gambar

Gambar 2. Ruang lingkup RPL (Abran et.al., 2004).
Gambar 3. Keterkaitan RPL dengan bidang ilmu lain.
Gambar 1.6. Fase lingkaran pemecahan masalah
Gambar : Proses Penilaian Perangkat Lunak  Tujuan utama proses PL

Referensi

Dokumen terkait

Untuk mengetahui secara simultan besarnya pengaruh citra merek dan persepsi harga terhadap keputusan pembelian dengan menggunakan teknik analisis statistik yang sudah di

Muncul no pemesanan dengan proses pengiriman penukaran pada menu Pengaturan Pengiriman status

Dari 36 peserta yang mendaftar dirumuskan dan diputuskan bahwa semua peserta calon bakal caleg lolos menjadi bakal caleg yang nantinya akan didaftarkan oleh DPC PPP di KPU

Untuk mengetahui penyakit yang ditimbulakan oleh bakteri Salmonella typhi.. Untuk mengetahui cara pemeriksaan laboratorium atas bakteri

FACR secara parsial mempunyai pengaruh positif yang tidak signifikan terhadap ROA pada Bank Umum Swasta Nasional go public periode Triwulan I tahun 2009 sampai

Semakin tinggi posisi piston valve, maka semakin tinggi jarum skep terangkat, karena bentuk jarum yang tirus, maka semakin besar celah antara main jet dengan jarum skep,

yang dilakukan oleh Rosydah (2011) dengan meningkatnya jumlah kitosan, mikropartikel yang terbentuk lebih sferis dengan permukaan yang halus, sedangkan pada penelitian

Selanjutnya, pada halaman sumber yang sama, Field (2004: 63 — 64) mengemukakan bahwa di antara pandangan tentang akuisisi yang dapat dicirikan sebagai “ kognitif ” adalah