320 likes | 756 Views
PENGENALAN REKAYASA PERANGKAT LUNAK (SOFTWARE ENGINEERING). By: Ridwan Andi Kambau. Definisi Perangkat Lunak. PL adalah sekelompok item atau objek Yang membentuk “konfigurasi” dimana di dalamnya termasuk : • instruksi/program • dokumen • struktur data.
E N D
PENGENALAN REKAYASA PERANGKAT LUNAK(SOFTWARE ENGINEERING) By: RidwanAndiKambau
Definisi Perangkat Lunak PL adalah sekelompok item atau objek Yang membentuk “konfigurasi” dimana di dalamnya termasuk : • instruksi/program • dokumen • struktur data ... PL adalah Program-program komputer beserta dokumentasinya, seperti requirement, model desain dan user manual.
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.
Arti Rekayasa Perangkat Lunak Arti Software Engineering : • Ilmu yang mempelajariteknikpembuatan software yang baikdenganpendekatanteknis (Engineering approach) • Suatudisiplinrekayasa yang berkonsentrasiterhadapseluruhaspekproduksiperangkatlunak. • Mengadopsipendekatan yang sistematisdanterorganisirdalamaktivitasnyadanmenggunakan tool danteknik yang sesuai yang ditentukanberdasarkanmasalah yang akandipecahkan, kendalapengembangandansumberdaya yang tersedia
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 Software yang dikembangkan berdasarkan keinginan perusahaan-perusahaan tertentu.
Era Kedua • Multi user Suatusistemdimanasatukomputerdigunakanolehbeberapa user padasaat yang sama. • Real Time Suatusistem yang dapatmengumpulkan, menganalisadanmentransformasikan data dariberbagaisumber, mengontrol proses dan menghasilkan output dalam mili second. • Database Perkembangan yang pesatdarialatpenyimpan data yang OnLinemenyebabkanmunculgenerasipertama DBMS (DataBase Management System). • Product Software Adalah software yang dikembangkanuntukdijualkepadamasyarakatluas.
Era Ketiga • Distributed system Suatusistem yang tidakhanyadipusatkanpadakomputerinduk (Host computer), daerahataubidanglainnya yang jugamemilikikomputer yang ukurannyalebihkecildarikomputerinduk. Lawandari distributed system adalah Centralized System. • Embedded Intelegence Suatu product yang diberitambahan “Intellegence” danbiasanyaditambahkanmikroprocessor yang mutakhir. Contohnyaadalahautomobil, robot, peralatan diagnostic serum darah. • Low Cost Hardware Harga hardware yang semakinrendah, inidimungkinkankarenamunculnya Personal Computer. • Consumer Impact Adanyaperkembangankomputer yang murahmenyebabkanbanyaknya software yang dikembangkan, software inimemberidampak yang besarterhadapmasyarakat.
Era Keempat • Expert system Suatupenerapan A.I. (Artificial Intellegence) padabidang-bidangtertentu, misalnyabidangkedokteran, komunikasi, dll. • AI Machine Suatumesin yang dapatmenirukerjadarisebagianotakmanusia. Misalnyamesin robot, komputercatur. • Parallel Architecture Arsitekturkomputer yang memungkinkanproseskerja LAN paralel, yang dimungkinkanadanyaprosesorberbedadalamsatukomputer
Sifat & Karakteristik Software • Software merupakan elemen sistem logik dan bukan elemen sistem fisik seperti hardware • Elemen itu tidak aus, tetapi bisa rusak. • Elemen software itu direkayasa atau dikembangkan dan bukan dibuat di pabrik seperti hardware • Software itu tidak bisa dirakit/disusun.
Produk Perangkat Lunak • Produk perangkat lunak dibuat untuk pelanggan tertentu ataupun untuk pasar umum Produk perangkat lunak ada dua jenis : • Generik – dibuat untuk dijual ke suatu kumpulan pengguna yang berbeda atau pasar umum. • Bespoke (custom) – dibuat untuk suatu pengguna tunggal sesuai dengan spesifikasi yang diinginkan pengguna.
Aplikasi Perangkat Lunak • System Software • Real Time Software • Business Software • Engineering and sciencetific software • Embendded software • PC software (Personal Computer) • Artificial Intelegence software
System Software • Adalah sekumpulan program yang ditulis untuk melayani atau menunjang program lainnya. • Beberapa sistem software seperti compiler, editor, komponen-komponen sistem operasi, driver dan prosesor telekomunikasi.
Real Time Software Software yang mengukur, menganalisisdanmengontrolkejadian yang sesungguhnyaterjadididunia. Elemen-elemen real time software terdiridari: A. Komponenpengumpul data Yang mengumpulkandanmenyusuninformasidarilingkungan external. B. Komponenanalisis Yang mentransformasikaninformasi yang diperlukanolehaplikasi C. Komponenkontrol Yang memberikan respon kepada lingkungan external D. Komponen monitor Yang mengkoordinasisemuakomponen-komponenlainnya, sehinggarespons real time yang berkisar 1 milisecond sampai 1 menit dapat dipertahankan. Perludicatatbahwaistilah real time berbedadariistilah interactive atau time sharing. Sistem real time harusmemberikanresponspadawaktu yang ditentukan, sedangkanpadasistem interactive atau time sharing respons time biasanyamelebihibataswaktu yang ditentukantanpamerusakhasil.
Business Software • Software yang paling banyak digunakan dalam bidang aplikasi software. Software ini digunakan oleh manajemen untuk mengambil keputusan ( Decision Making ) dalam bidang bisnis. Contoh : • DAC EASY ACCOUNTING • FINANCE MANAGER
Engineering and Sciencetific Software • Software yang dicirikan dengan algoritma numerik, aplikasinya berkisar dari astronomi sampai vulkanologi, dari analis ketegangan otomotif sampai dinamika orbit ruang angkasa. • Software ini banyak digunakan dalam bidang engineering dan science. • Contoh • CAD / CAM ( Computer Aided Design / Computer Aided Manufacture - Simulasi sistem )
Embedded Software • Suatu software disimpan dalam memori tetap - ROM - Read Only Memory, dan digunakan untuk mengontrol product dan sistem software ini dijalankan dengan berbagai fungsi terbatas.
PC software (Personal Computer) Software yang banyak digunakan di komputer pribadi (PC). Contoh : • Word Processing : WS, WP • Spreadsheet : Lotus, Supercalc • Computer Graphics : Printshop, PrintMagic • Games : Paoman, Load Runner • DBMS : Dbase III+, Foxbase, Clipper • Network : LAN, Novell
Artificial Intelegence Software • Software yang banyakmenggunakanalgoritma non numerikdalammemecahkanmasalahkompleks yang tidakdapatdianalisisdengananalisiskomputasibiasa. Saatinibidang AI yang paling aktifadalah expert system atau knowledge base system. • Bidangaplikasi lain dari software AI adalahpengenalancitradansuara ( image and voice pattern recognition ), teoremapembuktiandanpermainan / games.
Komponen Perangkat Lunak • Bentuk Bahasa • Bentuk Translator • Bentuk Mesin
Bentuk Bahasa Terbagi 3, yaitu • High Level, contoh JAVA, BASIC, PASCAL, COBOL, FORTRAN. • Middle Level, contoh C • Low Level, contohBahasa Assembly
Bentuk Translator Terbagi 3 , yaitu : • Interpreter Menerjemahkandaribahasatingkattinggikebahasatingkatrendahsecarasatupersatu (statemendemistatemen) • Compiler Menerjemahkansecarakeseluruhan, proseslebihcepatdari interpreter • Assembler Menerjemahkan dari bahasa rakitan ke bahasa mesin
Krisis Perangkat Lunak Adalahsekumpulanmasalah yang ditemukandalampengembangan software computer. Masalahnyatidakhanyaterbataspada software yang tidakberfungsisebagaimanamestinya, tetapikrisis software initerdiridarimasalah yang berhubungandengan : • Bagaimanamengembangkan software • Bagaimanamemelihara software yang ada, yang berkembangdalamjumlahbesar • Bagaimana mengimbangi permintaan software yang makin besar.
Masalah Perangkat Lunak • Estimasi jadwal dan biaya yang seringkali tidak tepat • Produktivitas orang-orang software(programmer) yang tidak dapat mengimbangi permintaan kebutuhan software • Kualitas software yang kurang baik.
Penyebab Masalah Perangkat Lunak • 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. • Kegagalan mereka yang bertanggung jawab dalam pengembangan software.
Mitos Perangkat Lunak • Mitos Manajemen • Mitos Pelanggan • Mitos Praktisi
Mitos Manajemen • Kita tidakperlumengubahpendekatanterhadappengembangan software, karenajenispemrograman yang kita lakukan sekarang ini sudah kita lakukan 10 tahun yang lalu. Realitasnya : Walauhasil program sama, produktivitasdankualitas software harusditingkatkandenganmenggunakanpendekatan software developments • Kita sudahmempunyaibuku yang berisistandarisasidanproseduruntukpembentukan software. Realitasnya : Memangbukutersebutada, tetapiapakahbukutersebutsudahdibacaataubukutersebutsudahketinggalanjaman ( out of date ). • Jika kita tertinggal dari jadwal yang ditetapkan, kita menambah beberapa programmer saja. Konsep ini seringdisebutMongolian harde concept.
Mitos Pelanggan • Pernyataantujuanumumsudahcukupuntukmemulaipenulisan program. Penjelasan yang lebihrinciakanmenyusulkemudian. Realitasnya : Definisiawal yang burukadalahpenyebabutamakegagalanterhadapusaha-usahapembentukkan software. Penjelasan yang formal danterincitentanginformasifungsi performance interface, hambatandesaindankriteriavalidasiadalahpenting. Karakteristikdiatasdapatditentukanhanyasetelahadanyakomunikasiantara customer dan developer.
Kebutuhanproyek yang terusmenerusberubahdapatdenganmudahdiatasikarena software itubersifatfleksibel. Kenyataannyamemangbenarbahwakebutuhan software berubah, tetapidampakdariperubahanberbeda dari waktu ke waktu.
Mitos Praktisi • Tidakadametodeuntukanalisisdisaindan testing terhadapsuatupekerjaan, cukupmenujukedepan terminal danmulai coding. Realitasnya : Metodeuntukanalisisdesaindan testing diperlukandalampengembangan software. • Segerasetelah software digunakan, pemeliharaandapatdiminimalisasikandandiatasidengancara “CATCH AS CATCH CAM”. Realitasnya : Diperlukan budget yang besardalam maintenance software. Pemeliharaan software harusdiorganisir, direncanakan dan dikontrol seolah-olah sebagai suatu proyek besar dalam sebuah organisasi.
Next…. Proses Perangkat Lunak Minggu Depan