Perancangan Perangkat Lunak

dokumen-dokumen yang mirip
Tujuan Perkuliahan. PENGANTAR RPL (Pert. 2 chapter 1 Pressman) Agenda. Definisi Software (Perangkat Lunak) Lunak) 23/09/2010

Jenis Metode Pengembangan Perangkat Lunak

BAB III LANDASAN TEORI

Nama : Rendi Setiawan Nim :

BAB II LANDASAN TEORI

Chapter 2 What is Software Quality?

III. METODE KONVENS IONAL 11. REKAYASA SISTEM BERBASIS KOMPUTER

BAB II LANDASAN TEORI

2. BAB II LANDASAN TEORI. lanjut sehingga terbentuk suatu aplikasi yang sesuai dengan tujuan awal.

BAB II LANDASAN TEORI

BAB 1 ASUMSI PERANAN PENGANALISIS SISTEM

SIKLUS REKAYASA PERANGKAT LUNAK (SDLC)

Disusun Oleh : Dr. Lily Wulandari

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Pertemuan 2 SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)

BAB II LANDASAN TEORI. Sistem adalah suatu jaringan kerja dari prosedur-prosedur yang saling

1 BAB I PENDAHULUAN. 1.1 Latar Belakang

KENDALI MANAJEMEN MUTU

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB II LANDASAN TEORI. data diolah lebih berdaya guna secara optimal.

BAB III LANDASAN TEORI

Pertemuan 3 Metodologi Pengembangan Sistem Informasi

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

REKAYASA PERANGKAT LUNAK. 3 sks Sri Rezeki Candra Nursari reezeki2011.wordpress.com

PEMROGRAMAN TERSTRUKTUR

Rekayasa Perangkat Lunak (Software Engineering)

Systems Development Life Cycle (SDLC)

REKAYASA PERANGKAT LUNAK

BAB II LANDASAN TEORI. beberapa ahli, definisi sistem adalah sebagai berikut.

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. hal proses pengolahan data, baik itu data siswa, guru, administrasi sekolah maupun data

Analisis dan Perancangan Sistem Hanif Al Fatta M.kom

Pengembangan Sistem Informasi

BAB III LANDASAN TEORI

BAB I PENDAHULUAN. dapat dengan mudah memperoleh data yang up to date dengan cepat. Pemanfaatan

BAB II LANDASAN TEORI. data diolah lebih berdaya guna secara optimal.

Hanif Fakhrurroja, MT

BAB II LANDASAN TEORI

6 BAB I PENDAHULUAN. 1.1 Latar Belakang

Meskipun jumlah tahapan dalam SDLC dalam berbagai litertur berbeda-beda, namun pada prinsipnya secara keseluruhan semua proses yang dilakukan sama

BAB III OBJEK DAN METODE PENELITIAN. Penulis melakukan penelitian pada Toko Nada Bandung yang beralamat di

1 PENDAHULUAN. 1.1 Latar Belakang

PENGUKURAN PERANGKAT LUNAK

PERTEMUAN 13 STRATEGI PENGUJIAN PERANGKAT LUNAK

SOFTWARE ENGINEERING (REKAYASA PERANGKAT LUNAK)

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1. Latar Belakang

TESTING DAN IMPLEMENTASI SISTEM. WAHYU PRATAMA, S.Kom., MMSI.

Perspektif Alur-kerja (workflow) - barisan kegiatan Perspektif Alur Data (Data flow) alur informasi Perspektif Peran/Aksi siapa melakukan apa.

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB II LANDASAN TEORI. terstruktur untuk membantu sebuah proses (Chaffey, 1996).

PERTEMUAN 2 METODE PENGEMBANGAN SISTEM

STANDAR PENGEMBANGAN APLIKASI

PENGEMBANGAN PERANGKAT LUNAK. Karmilasari

pada masalah pengumpulan kebutuhan pengguna pada tingkatan sistem (system requirements) dengan mendefinisikan konsep sistem beserta interface yang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

1 BAB 1 PENDAHULUAN 1.1 Latar Belakang

BAB 3 METODOLOGI PENELITIAN

PERTEMUAN 2 METODE PENGEMBANGAN SISTEM

BAB II TINJAUAN PUSTAKA. intrakurikuler yang memadukan pelaksanaan Tri Dharma Perguruan Tinggi dengan

BAB II LANDASAN TEORI

Rekayasa Perangkat Lunak (Software Engineering)

Ratna Wardani. Department of Electronic Engineering Yogyakarta State University

Perancangan Database

Information System Analysis and Design

ANALISIS SISTEM. Gentisya Tri Mardiani, S.Kom., M.Kom ADSI-2015

Testing dan Implementasi

BAB I PENDAHULUAN Latar Belakang Masalah

Metodologi pengembangan sistem METODOLOGI PENGEMBANGAN SISTEM INFORMASI DIAN PALUPI RINI, M.KOM 1

PROSES PERANCANGAN DATABASE

BAB I PENDAHULUAN I-1

Yang menjadi rumusan masalah dalam pengerjaan proyek akhir ini adalah sebagai berikut :

A Layered Technology

Paktikum : 4-7 Judul Praktikum : System Development Life Cycle (SDLC)

PENDAHULUAN PENGEMBANGAN SISTEM INFORMASI

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB II LANDASAN TEORI. Dalam penyelesaian Tugas Akhir ini digunakan landasan teori yang

BAB I PENDAHULUAN. Penggajian pegawai merupakan sebuah kegiatan rutin di kantor Camat

BAB 2 LANDASAN TEORI. Data adalah fakta atau bagian dari fakta yang digambarkan dengan simbol-simbol,

Metodologi Pengembangan Sistem Informasi

Pertemuan 2 SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC) POKOK BAHASAN

136 Pemeliharaan Perangkat Lunak

PENGEMBANGAN PERANGKAT LUNAK

Hanif Fakhrurroja, MT

BAB I PENDAHULUAN 1.1 Latar Belakang

SISTEM INFORMASI MANAJEMEN

BAB I PENDAHULUAN.

BAB I PENDAHULUAN BAB I PENDAHULUAN

REKAYASA PERANGKAT LUNAK

BAB III ANALISIS SISTEM

LOGO Manajemen Proyek Teknologi Informasi

BAB III LANDASAN TEORI

Pertemuan 1 PENGENALAN REKAYASA PERANGKAT LUNAK

Pengembangan Sistem Informasi

STMIK AMIKOM YOGYAKARTA

Tugas Rekayasa Perangkat Lunak

PROSES DESAIN. 1. Metodologi Pengembangan Sistem

1 BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Transkripsi:

Perancangan Perangkat Lunak I. Pendahuluan II. Siklus Pengembangan Perangkat Lunak Dr. Ahmad Sabri Universitas Gunadarma

Software tidak hanya mengacu kepada program komputer Software mencakup 3 hal Dokumentasi: mencakup spesifikasi kebutuhan fungsional, spesifikasi kebutuhan sistem, dokumen disain, dan dokumen pengujian Manual prosedur operasi standar mencakup manual instalasi software, manual operasi software, dan manual administrator sistem File-file konfigurasi software agar software dapat beroperasi dengan benar.

Berdasarkan peruntukannya, terdapat 3 jenis software: 1. Software generik: adalah produk standalone yang dikembangkan oleh perusahaan software seperti Microsoft, Oracle, IBM, dll, untuk dijual di pasaran. Software ini umumnya dapat beroperasi pada berbagai sistem operasi. Contoh: MS Office. 2. Software kustomisasi: diproduksi oleh perusahaan pengembang software berdasarkan kebutuhan spesifik klien mereka. Contoh: software ticketing untuk PT KAI, aplikasi m-banking untuk Bank XYZ, software kependudukan untuk Pemprov, dll. 3. Software tertanam (embedded): software yang sudah built-in pada perangkat elektronik sehingga dapat berjalan secara otomatis, seperti mesin cuci, oven microwave, dll.

Software besar Membutuhan lebih banyak waktu, usaha, dan dana untuk mendisain dan mengembangkannya Membutuhkan sumber daya manusia yang banyak Membutuhkan kode-kode program yang banyak Artinya: pengembangan software membutuhkan SDM, proses, dan teknologi, serta membutuhkan serangkaian tahapan aktivitas. Sehingga: Software Development adalah sebuah proyek.

Berdasarkan perkembangan saat ini, software tidak hanya terdiri dari OS dan aplikasi Kategori yang sedang berkembang saat ini: open world computing open source software NoSQL software Multitenant software

Semakin besar ukuran software (>100.000 baris coding), maka pengembangannya melibatkan banyak orang. Oleh karena itu harus mengikuti tahapan-tahapan rekayasa yang sistematis. Selama program ditangani secara manual dan tanpa tahapan yang benar, maka persentasi error sangat tinggi. Programmer jenius saja tidak cukup. Mereka harus mengikuti metodologi software engineering untuk menghasilkan software berkualitas.

Krisis Software Studi di AS pada 1979 mengungkap: Tidak ada standar dalam pemrograman menyebabkan sulitnya melakukan debugging atas error yang terjadi. Tidak adanya standar dalam pemrograman komputer menyebabkan kenaikan biaya software sebesar 45%, karena software tidak sepenuhnya memenuhi kebutuhan user. Studi oleh IBM tahun 1994 mengungkap: 55% dari proyek software melebihi biaya yang ditetapkan 68% melampaui jadwal yang telah ditetapkan 88% memerlukan modifikasi setelah penyerahan kepada user. Hal ini akibat kebutuhan user tidak dipahami secara utuh oleh developer

Setelah berkembangnya aplikasi berbasis Web, masalah ini semakin berlipat ganda. Sekitar 63% aplikasi web melampaui budget Sekitar 73% melampaui jadwal Sekitar 53% tidak memberikan fungsi yang diinginkan Sekitar 84% tidak memberikan keuntungan (Cutter Consortium, 2000)

Para profesional dan peneliti menyadari bahwa problem ini dapat teratasi dengan menggunaan metodologi ilmiah dalam pengembangan software. Metodologi ini menerapkan metode, tools, dan prosedur yang terdefinisi dengan baik dan diterapkan secara terorganisir dan disiplin Penerapan metodologi ini dalam pengembangan software disebut software engineering

Software Engineering (SE) terdiri dari: Metode: mecakup aturan, langkah-langkah, dan teknik dalam menyelesaikan siklus pengembangan software (software development life cycle) Tools: digunakan untuk mengotomasi metode. Tools ini berguna untuk membuat model dari disain software Prosedur: merupakan variasi urutan dari metode (waterfall, spiral, iteratif, dll)

Singkatnya: Software Engineering menerapkan prinsip-prinsip rekayasa, manajemen, metode, tools, dan prosedur untuk menghasilkan software berkualitas tinggi dalam periode dan batasan-batasan yang telah ditentukan.

Sasaran dari software engineer adalah menghasilkan software berkualitas tinggi Beberapa contoh produk software: Accounts receivable processing Order processing Inventory monitoring and maintenance Decision support for overnight funds investment Collateralized mortgage obligatien cost determination Insurance reimbursement processing Funds transfer processing Early warning system for problems with critical success factors

Produk SE yang berkualitas adalah yang... tepat waktu terjangkau budget fungsional (sesuai dengan apa yang diinginkan) ramah pengguna bebas kesalahan fleksibel mudah diadaptasikan

Siklus Pengembangan Perangkat Lunak/SPPL (Software Development Life Cycle /SDLC) SPPL adalah serangkaian tahapan yang dilalui dalam mengembangkan perangkat lunak

Tahapan SPPL 1. Analisa kelayakan Feasibility: apakah proyek ini dapat dilakukan? Analisa pasar: apakah ada potensi pasar untuk proyek ini? 2. Kebutuhan fungsional dan non-fungsional menghimpun kebutuhan yang diinginkan pelanggan 3. Perencanaan analisa biaya: berapa perkiraan biayanya? work-breakdown: membagi kegiatan menjadi sub-subkegiatan yang lebih kecil penjadwalan: membuat jadwal untuk tahapan pengembangan Pendefinisian software quality assurance: memastikan bahwa setiap tahap dilalui dengan standar yang ditetapkan.

4. Disain disain arsitektural: struktur dari sistem disain interface antar sistem disain algoritma untuk setiap bagian 5. Implementasi: proses coding 6. Pengujian/testing uji unit: pengujian setiap unit software oleh masing-masing developer uji integrasi: pengujian terhadap penggabungan unit-unit software uji sistem: pengujian software pada lingkungan yang sesuai dengan lingkungan operasinya uji alpha: pengujian oleh pelanggan di tempat developer uji beta: pengujian oleh pelanggan di tempat pelanggan uji akseptasi: pengujian apakah s/w ini dapat diterima oleh pelanggan uji regresi

7. Delivery instalasi di lokasi pengguna pelatihan bagi pengguna layanan help desk 8. Maintenance memperbaharui dan meningkatkan kemampuan software untuk memastikan pemanfaatan yang berkelanjutan.

1. Code and Fix Biasanya digunakan untuk software kecil, atau dengan deadline yang sangat singkat. Developer menulis kode dan memperbaiki error yang muncul. Tidak ada analisa kebutuhan dan disain Beberapa model SPPL

2. Waterfall

3. V-model

4. Iteratif

Aplikasi Aplikasi adalah kumpulan dari program yang mengotomasi suatu tugas

Aspek-aspek dalam Aplikasi Karakteristik Ketanggapan (responsiveness) Jenis

Aspek Karakteristik Karakteristik adalah aspek umum yang ada pada semua aplikasi, yaitu: 1. Data 2. Proses 3. Batasan 4. Antarmuka (interface)

1. Data Semua aplikasi: Bekerja atas data dan membutuhkan input, output, penyimpanan dan penarikan data. memuat perintah-perintah (proses) yang mentransformasikan data menjadi informasi berdasarkan batasan-batasan yang ditetapkan memiliki beberapa antarmuka manusia dan antarmuka komputer

Entitas adalah objek yang dinyatakan dalam sebuah deskripsi Data adalah deskripsi spesifik atas entitas Kumpulan deskripsi sejenis membentuk atribut Contoh entitas: pelanggan, mahasiswa Contoh atribut: alamat, tanggal lahir

Data Input Output relasional hirarkis Penyimpanan dan penarikan logikal fisik jaringan berorientasi objek

Contoh hubungan Entitas - Atribut

Contoh relasi antar-entitas

Contoh detail relasi antarentitas

Pemodelan data secara hirarki antar entitas

Pemodelan data secara networked

Pemodelan data secara object oriented

2. Proses Proses adalah barisan instruksi ataupun sekumpulan kejadian yang dioperasikan pada data

3. Batasan Batasan didefinisikan dalam 5 kategori: 1. Prerequisites: kondisi yang harus terpenuhi agar proses dijalankan 2. Postrequisites: kondisi yang harus dipenuhi agar proses dinyatakan lengkap 3. Waktu 4. Struktur 5. Kontrol 6. Inferensi

Contoh batasan prerequisites

Contoh batasan berdasar waktu

Contoh batasan berdasar struktur

Jenis: 1. Manusia 2. Komputer/terotomasi 4. Antarmuka

Antarmuka manusia adalah cara aplikasi berkomunikasi dengan manusia sebagai pengguna. Paling sulit dirancang dan sangat rentan terhadap perubahan teknologi

rancangan yang buruk rancangan yang baik

Antarmuka komputer/terotomasi adalah cara komputer berinteraksi dengan komputer/perangkat lain Antarmuka komputer cenderung berbeda-beda untuk pabrikan yang berbeda. Untuk mengatasinya, diperlukan standarisasi Contoh: standar untuk antarmuka LAN didefinisikan oleh IEEE standar untuk open system interface (OSI) didefinisikan oleh ISO Tidak terstandarkan: GUI

Aspek ketanggapan Ketanggapan aplikasi (application responsiveness) berkaitan dengan berapa lama waktu yang dibutuhkan sistem untuk bereaksi dan memberi respon atas tindakan dari pengguna.

3 jenis desain ketanggapan aplikasi: 1. berorientasi batch 2. on-line 3. real-time

Aplikasi batch Aplikasi berdasar batch memproses transaksi secara berkelompok (batch). Transaksi yang masuk ditampung dalam periode waktu tertentu, setelah itu diproses pada jadwal yang telah ditentukan.

Alur pemrosesan aplikasi berdasar batch

Aplikasi on-line Pengertian on-line dalam konteks ini berbeda dengan pengertian on-line dalam konteks jaringan Pemrosesan secara on-line berarti: program tetap berada dalam memori, sehingga dapat langsung merespon transaksi tanpa loading kembali

Alur pemrosesan aplikasi dengan pendekatan on-line

Batch vs on-line Aplikasi berdasar batch: passing data antar modul dilakukan dengan menggunakan file tidak ada syntax controlling pada entri transaksi Aplikasi on-line: passing data antar modul dilakukan secara langsung ada syntax controlling pada entri transaksi

Aplikasi real-time Aplikasi real-time adalah aplikasi on-line di mana perubahan data direspon langsung oleh sistem, sehingga aplikasi memberikan informasi berdasarkan kondisi terkini dari data. Contoh: mesin ATM, mesin barcode, reservasi tiket pesawat, dll.