Pertemuan 1 Pengenalan Rekayasa Perangkat Lunak

59 downloads 1370 Views 162KB Size Report
Konsep dasar rekayasa perangkat lunak mempunyai dua hal pokok yaitu perangkat ... Rekayasa perangkat lunak dapat didefinisikan sebagai disiplin ilmu yang ...
Pertemuan 1 Pengenalan Rekayasa Perangkat Lunak

TIK : Menjelaskan tentang konsep dasar rekayasa perangkat lunak

1. Konsep Dasar Rekayasa Perangkat Lunak Konsep dasar rekayasa perangkat lunak mempunyai dua hal pokok yaitu perangkat lunak (software) dan komponen perekayasa. Menurut IEEE definisi perangkat lunak (software) merupakan program komputer, prosedur, data dan semua dokumentasi yang berhubungan operasi pada sistem komputer. jadi bisa disimpulkan bahwa software merupakan kumpulan dari object membentuk konfigurasi yang didalamnya termasuk program, dokumen, dan data. Sedangkan Perekayasa software bertugas mengembangkan produk perangkat lunak, yang secara produk dapat dikategorikan menjadi 2 tipe yaitu : a. Produk generik Sistem stand-alone, produk shrink-wrapped b. Produk pesanan Produk custemisasi, terdapat proses interaksi antara pemesan dan pembuat. Rekayasa perangkat lunak dapat didefinisikan sebagai disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai tahap awal spesifikasi sistem sampai pemeliharaan sistem setelah digunakan. Rekayasa perangkat lunak tidak hanya berhubungan dengan proses teknis dari pengembangan perangkat lunak tetapi juga mencakup kegiatan manajemen proyek perangkat lunak dan pengembangan alat bantu, metode dan teori untuk mendukung produksi perangkat lunak. Secara umum rekayasa perangkat lunak memakai pendekatan yang sistematis dan terorganisir dengan menggunakan metode tertentu. 2. Proses dan Metode Perangkat Lunak Proses perangkat lunak merupakan serangkaian kegiatan dan hasil hasil relevannya yang menghasilkan perangkat lunak. Kegiatan ini sebagian besar dilakukan oleh perekayasa perangkat lunak. Terdapat empat kegiatan proses dasar, meliputi : 1. Spesifikasi perangkat lunak. Fungsionalitas perangkat lunak dan batasan kemampuan operasinya harus didefinisikan. 2. Pengembangan perangkat lunak. Pengembangan terhadap produk perangkat lunak yang memenuhi spesifikasi perangkat lunak. 3. Validasi perangkat lunak. Perangkat lunak harus divalidasi untuk menjamin bahwa perangkau lunak melakukan apa yang diinginkan oleh user. 4. Evolusi rangkat lunak. Perangkat lunak harus berkembang untuk memenuhi kebutuhan pelanggan yang berubah ubah. Metode rekayasa perangkat lunak merupakan pendekatan terstruktur terhadap pengembangan perangkat lunak yang bertujuan memfasilitasi produksi perangkat lunak kualitas tinggi dengan cara yang efektif dalam hal biaya. Terdapat beberapa metode yang bisa digunaka seperti metode berorientasi fungsi, metode berorientasi objek dan metode pendekatan gabungan yang sekarang lebih dikenal dengan istilah UML (unified modeling language). 3. Evolusi Pe rkembangan Software

Gambar 1. Evolusi Software Era Pertama ( 1950 – 1960) : 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 Software yang dikembangkan berdaasarkan perusahaan-perusahaan tertentu. Era Kedua (1960 – 1970) : 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 mentransfo rmasikan 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 (1980 – 1990) : 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. Era Keempat (1990 – 2000) : 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. 4. Karakteristik dan Atribut Perangkat Lunak Karakteristik perangkat lunak : a. Software merupakan elemen sistem logik dan bukan elemen sistem fisik seperti hardware. b. Elemen itu tidak aus, tetapi bisa rusak. c. Elemen software itu direkayasa atau dikembangkan dan bukan dibuat di pabrik sepert i hardware d. Software itu tidak bisa dirakit. Atribut perangkat lunak : a. Dapat dipelihara : Perangkat lunak dapat ditulis sedemikian rupa sehingga perangkat lunak dapat berubah seiring dengan perubahan kebutuhan pelanggan. b. Dapat diandalkan : Perangkat lunak mempunyai serangkaian karakteristik, termasuk keandalan, keamanan dan keselamatan. c. Efisien : Perangkat lunak tidak boleh menggunakan sumber daya sistem seperti siklus memori dan prosesor. d. Kemampupakaian : Perangkat lunak harus dapat dipakai, memiliki interface user yang bagus dan dokumentasi yang mencukupi. 5. Tanggung Jawab Profesional dan Etika Rekayasa perangkat lunak jelas dibatasi oleh hukum lokal, nasional dan internasional. Perekayasa perangkat lunak harus memiliki tanggung jawab etis dan moral jika ingin dihormati sebagai profesional. Terdapat beberapa standar dan kode etik yang harus dipertimbangkan, yaitu: a. Konfidensialitas Harus menghormati konfidensialitas atasan dan kliennya walaupun tidak ada persetujuan yang ditanda tangani secara formal. b. Kompetensi Tidak boleh menyalahi tingkat kompetensinya (melebihi atau menyimpang) c. Hak Properti Intelektual Menyadari terhadap hukum yang mengatur penggunaan properti intelektual, seperti paten, hak cipta dan lain sebagainya. d. Penyalahgunaan Komputer Tidak boleh dengan sengaja menyalah gunakan komputer yang nantinya berakibat merugikan orang lain, seperti penyebaran virus, penyadapan dan lain sebagainya. 6. Model Proses Perangkat Lunak Model proses perangkat lunak merupakan deskripsi yang disederhanakan dari proses perangkat lunak yang di presentasikan dengan sudut pandang tertentu. Model, sesuai sifatnya merupakan penyederhanaan, sehingga model proses perangkat lunak merupakan abstraksi dari proses sebenarnya yang dideskripsikan. Model proses juga bisa mencakup kegiata n yang merupakan bagian dari proses perangkat lunak, produk perangkat lunak dan peran orang yang

terlibat pada rekayasa perangkat lunak. Ada beberapa contoh jenis model proses perangkat lunak, antara lain: a. Model aliran kerja (work flow) Model ini memandang proses dari urutan dan prosedur kerja (input, output dan ketergantungannya). b. Model aliran data (data flow) Model ini merepresentasikan proses sebagai satu set kegiatan yang masing masing melakukan transformasi data. c. Model peran/aksi Model ini merepresentasikan peran orang yang terlibat pada proses perangkat lunak dan kegiatan yang menjadi tanggung jawabnya dalam penyelesaian sebuah sistem. Life Cycle Life-cycle sebuah perangkat lunak mencakup semua kegiatan yang yang perlu dilakukan untuk mendefinisikan, mengembangkan, menguji, mengantarkan, mengoperasikan, dan memelihara produk perangkat lunak. Beberapa model yang akan dibahas adalah : model fase (phased model), model biaya (cost model), model prototipe (prototype model), dan model berurutan (successive model). a. Model Fase Model ini membagi life cycle ke dalam sederetan kegiatan (fase). Setiap fase membutuhkan informasi masukan, proses, dan produk yang terdefinisi dengan baik. Deretan fase tersebut adalah : analisa, perancangan, implementasi, pengujian, dan pemeliharaan. Berikut ini model fase dasar yang dinyatakan sebagai waterfall chart : Analisis

Perancangan

Implementasi

Pengujian

Pemeliharaan

-perencanaan -penetapan persyaratan arsitektur rinci verifikasi coding, debugging, dan uji code verifikasi - uji integrasi - uji penerimaan verifikasi verifikasi

- peningkatan - adaptasi - perbaikan

Life cycle mode fase dari sebuah perangkat lunak

Subfase perencanaan menghasilkan dua produk : System Definition dan Poject Plan. Format kedua produk adalah sebagai berikut :

Format System Definition Bab 1 : Pendefinisian masalah Bab 2 : Justifikasi sistem Bab 3 : Sasaran sistem dan proyek Bab 4 : Batasan sistem dan proyek Bab 5 : Fungsi yang harus disiapkan (H/W, S/W, personal) Bab 6 : Karakteristik pengguna Bab 7 : Lingkungan pengembangan/ operasi/pemeliharaan Bab 8 : Strategi solusi Bab 9 : Prioritas gambaran sistem Bab 10: Kriteria penerimaan sistem Bab 11: Sumber informasi Bab 12: Daftar istilah

Format Project Plan Bab 1 : Model life cycle : terminologi, tonggak penting, produk kerja Bab 2 : Struktur organisasi : struktur manajemen/ struktur team, gambaran kerja Bab 3 : Perkiraan personal & persyaratan sumber daya Bab 4 : Jadwal awal pengembangan Bab 5 : Perkiraan awal biaya Bab 6 : Pengawasan proyek dan mekanisme kontrol Bab 7 : Alat bantu dan teknik yang digunakan Bab 8 : Bahasa pemrograman Bab 9 : Persyaratan pengujian Bab 10: Dokumen pendukung yang diperlukan Bab 11: Cara demonstrasi Bab 12: Jadwal dan materi pelatihan Bab 13: Rencana pemasangan (instalasi) Bab 14: Pokok perhatian dalam pemeliharaan Bab 15: Metoda dan waktu pengantaran Bab 16: Metoda dan waktu pembayaran Bab 17: Sumber informasi

Subfase penetapan persyaratan menghasilkan sebuah produk : Software Requirements Specifications. Format produk ini adalah sbb : Format Software Requirements Specifications Bab 1 : Gambaran dan penjelasan ringkasan produk Bab 2 : Lingkungan pengembangan, pengoperasian, dan pemeliharaan Bab 3 : Pengantarmukaan eksternal dan aliran data : format tampilan, user command, DFD, kamus data Bab 4 : Persyaratan fungsional : fungsi-fungsi yang diinginkan Bab 5 : Persyaratan kinerja : tanggapan, waktu proses Bab 6 : Penanganan kesalahan : aksi dan pesan yang harus dilakukan sebagai tanggapan atas input atau situasia yang tidak dikehendaki produk Bab 7 : Subset permulaan dan prioritas implementasi : „versi‟ awal produk Bab 8 : Perkiraan modifikasi dan peningkatan Bab 9 : Kriteria penerimaan Bab 10 : Petunjuk dan panduan perancangan Bab 11 : Index acuan Bab 12 : Daftar istilah

Fase perancangan melakukan identifikasi terhadap komponen perangkat lunak (fungsi, arus data, penyimpanan data), hubungan antar komponen, struktur perangkat lunak (dekomposisi menjadi modul- modul dan pengatarmukaannya). Fase ini menghasilkan arsitektur rinci, terutama dalam bentuk algoritma-algoritma. Fase implementasi adalah terjemahan langsung arsitektur rinci ke dalam bahasa pemrograman tertentu. Subfase uji integrasi melakukan pengujian terhadap semua modul dan pengantarmukaan sehingga pada level sistem dapat beroperasi dengan benar Subfase uji penerimaan melakukan baerbagi pengujian mengacu kepada berbagai persyaratan yang telah ditentukan. Kegiatan yang meliputi fase pemeliharaan adalah : peningkatan kemampuan, adaptasi terhadap lingkungan pemrosesan, dan melakukan berbagai koreksi atas kesalahan yang terjadi

Penilaian kemajuan proyek akan lebih mudah jika pada model fase tersebut ditetapkan beberapa tonggak penting (milestone) yang pada setiap fase atau antar setiap dua fase yang berurutan. Berikut ini Life cycle mode fase dari sebuah perangkat lunak yang dilengkapi dengan kegiatan review dan tonggak penting : Analisis Perancangan -perencanaan -penetapan persyaratan arsitektur rinci verifikasi

Implementasi

Pengujian

Pemeliharaan

coding, debugging, dan uji code verifikasi - uji integrasi - uji penerimaan verifikasi verifikasi

PFR SRR

- peningkatan - adaptasi - perbaikan PDR CDR

Review PFR (Product Feasibility Review)

SRR (Software Requirements Review) PDR (Preliminary Design Review) CDR (Critical Design Review) SCR (Source Code Review) ATR (Acceptance Test Review) PRR (Product Release Review) PPM (Project Post-Mortem)

SCRs

ATR

PRR PPM

Produk Kerja yang direview System Definition Project Plan Spsesifikasi persyaratan perangkat lunak User’s Manual awal Rencana awal verifikasi Dokumen disain arsitektur Spesifikasi disain rinci Penelusuran dan Pemeriksaan source code Rencana uji penerimaan Semua produk kerja sebelumnya Catatan umum pelaksanaan proyek

b. Model Biaya Model biaya adalah cara pandang lain model fase sebuah perangkat lunak dengan cara memperhatikan biaya berbagai kegiatan dalam proyek perangkat lunak. Biaya proyek adalah jumlah biaya dari setiap fase proyek. Biaya setiap fase mencakup biaya kegiatan dan penyiapan produk pada fase tersebut ditambah dengan biaya verifikasi konsistensi produk suatu fase terhadap semua fase sebelumnya. Plan Verify SD

SD : System Definition, Project Plan

S/W requirements analysis Verify SRS

Fix SD

Verify

Verify

SRS : Software Requirement Spesification, preliminary User‟s Manual

Design Verify DD

Modify SD

Modify SD/SRS Verify

Fix SD/SRS Verify

DD : Software Design Spesification, Software Verification Plan

Build Verify

Modify SD/SRS/DD Verify

Fix SD/SRS/DD Verify

SC

SC : Source Code, Acceptance Test Plan

System test

Modify SD/SRS/DD/SC

Verify

Verify

SS

SS : Source Code, User‟s Manual, Principles of Operation

Operate and Maintain Verify

Fix SD/SRS/DD/SC Verify

Modify SS Verify

Adapt SS Verify

Fix SS Verify

Ada 2 sisi penting dari model biaya : Karena modl biaya hanyalah cara pandang lain dari model fase maka semua dokumen yang dihasilkan tepat sama dengan yang dihasilkan pada model fase. Biaya verifikasi, apalagi perbaikan, atas suatu produk akan makin besar jika produk tersebut dihasilkan oleh suatu fase yang jauh di belakang fase saat verifikasi dilakukan.

c. Model Prototipe Marketing Requirements

Business Plans Authorize Feasibilty

Customer Request

Internal Request

Study Preliminary Requirements Analysis

Preliminary Requirements Spesification

Autorize Prorotype

Formal Equirements Spesification

Preliminary Design Spesification

Prototype Implementation Design Code Test Demo

Implementation Plan

Preliminary Test Plan

Final Test Spesification

Maintenance Spesification

Authorize Project Final Design Spesification

Product Implementation Detailed design Coding Checkout Integration Document Demo Final Validation

Quality Assurance

Evaluation Report

Product Release

Beberap catatan tentang model prototipe : Sebuah prototipe adalah model dari sebuah produk perangkat lunak tetapi dengan beberapa keterbatasan, misalnya : keterbatasan kemampuan, keandalan yang rendah, dan kinerja yang tidak efisien. Alasan penggunaan model prorotipe adalah : 1. untuk menggambarkan format data masukan, pesan-pesan, laporan, dan dialog interaktif 2. untuk mengeksplorasi isu-isu teknis dalam produk yang diusulkan 3. model fase „analisis perancangan implementasi‟ tidak dapat digunakan d. Model Succesive Planning & analysis

Planning & analysis Design

Design Versi I

Versi I I = 1..N

Build Version I

Build Version I

Assess Version I

Assess Version I No

Good ?

No I=N?

Maintenance Maintenance

Perancangan dan implementasi model berurutan

Analisa dan perancangan yang diikuti implementasi dari model berurutan

Daftar Pustaka 1. Presman, Rouger S, Software Enigineering, 4th Edition, Mc. Graw Hill,1997. 2. Sommerville,Ian, Software Engineering, 7th Edition, Addison Wesley, 2004. 3. Kendall & Kendall, Systems Analysis and Design, 6th Edition, Prentice Hall,2006. 4. Jacobsan Ivar, Process and The UML, Rational Software Corporation,1997.