0 penilaian0% menganggap dokumen ini bermanfaat (0 suara)
32 tayangan72 halaman
Dokumen tersebut membahas tentang pengantar rekayasa perangkat lunak, yang mencakup definisi, karakteristik, aplikasi, lingkup, metode pengembangan, dan tujuan dari rekayasa perangkat lunak.
Dokumen tersebut membahas tentang pengantar rekayasa perangkat lunak, yang mencakup definisi, karakteristik, aplikasi, lingkup, metode pengembangan, dan tujuan dari rekayasa perangkat lunak.
Dokumen tersebut membahas tentang pengantar rekayasa perangkat lunak, yang mencakup definisi, karakteristik, aplikasi, lingkup, metode pengembangan, dan tujuan dari rekayasa perangkat lunak.
Pendahuluan • Proses membangun sebuah gedung Pendahuluan • Bagaimana cara membangun perangkat lunak? Definisi Perangkat Lunak • Menurut IEEE • Software is computer programs, procedures, and possibility associated documentation and data pertaining to the operation of a computer system. • Perangkat lunak adalah program komputer, prosedur, dan kemungkinan dokumentasi dan data terkait yang berkaitan dengan pengoperasian sistem komputer. Definisi Perangkat Lunak • Menurut Roger S (2002) • Sekelompok item atau objek yang membentuk konfigurasi dimana didalamnya termasuk program, dokumen, dan data. Definisi Perangkat Lunak • Menurut Melwin (2007) • Suatu program yang berfungsi sebagai pengatur aktivitas kerja komputer dan semua instruksi yang mengarah pada system komputer Karakteristik Perangkat Lunak • Perangkat lunak dibangun dan dikembangkan, tidak dibuat dalam bentuk yang klasik. Meskipun terdapat kesamaan antara pembuatan perangkat keras dan pengembangan perangkat lunak, yaitu kualitas yang tinggi bisa dicapai melalui perancangan yang baik, tetapi di dalam fase pembuatan perangkat keras selalu saja ditemukan masalah kualitas yang tidak mudah disesuaikan dengan perangkat lunak. Karakteristik Perangkat Lunak • Perangkat lunak tidak pernah usang. Gambar disebelah adalah Kurva Kegagalan Perangkat Keras yang menggambarkan laju kegagalan sebagai fungsi waktu untuk perangkat keras, disebut ‘kurva bathtub”, menunjukkan bahwa perangkat keras mengalami laju kegagalan yang sangat tinggi pada awal hidupnya, yang disebabkan kematian segera usang Waktu Tingkat Kegagalan Rekayasa Perangkat Lunak 2 oleh perancangan atau cacat pembuatannya Karakteristik Perangkat Lunak • Perangkat lunak tidak pernah usang. Gambar disebelah adalah Kurva Kegagalan Perangkat Lunak yang menggambarkan tingkat kegagalan perangkat lunak. Kesalahan-kesalahan yang tidak ditemukan akan menyebabkan tingkat kegagalan tinggi pada awal hidup program, tetapi itu dapat diperbaiki sehingga kurvanya menjadi datar Karakteristik Perangkat Lunak • Sebagian besar perangkat lunak dibuat secara custom-built, serta tidak dapat dirakit dari komponen yang sudah ada Evolusi Perangkat Lunak Aplikasi Perangkat Lunak • Perangkat lunak sistem. Sekumpulan program untuk melayani program–program lain, misalnya sistem operasi, kompiler, editor, utilitas pengatur file, driver, prosesor telekomunikasi. • Perangkat lunak real-time. Program-program untuk mengontrol/menganalisis/ memonitor kejadian dunia nyata pada saat terjadinya. Misalnya program untuk mengontrol mesin industri. Aplikasi Perangkat Lunak • 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. • 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. Aplikasi Perangkat Lunak • 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). • Perangkat lunak komputer personal. Program–program yang bisa dijalankan pada komputer personal. Contoh : pengolah kata, multimedia, hiburan, manajemen database, aplikasi keuangan bisnis, dll Aplikasi Perangkat Lunak • 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). Rekayasa Perangkat Lunak • Menurut Fritz Bauer 1969 • “The establishment and use of sound engineering principles in order to obtain economically software that is reliable and work efficiently on real machines.” • Pembentukan dan penggunaan prinsip-prinsip rekayasa untuk mendapatkan perangkat lunak ekonomis yang dapat diandalkan dan bekerja secara efisien pada mesin nyata. Rekayasa Perangkat Lunak • Menurut Richard Fairly 1985 • “The technological and managerial dicipline concernment with systematic production and maintenance of software products that are developed and modified on time and within cost estimates.” • Perhatian disiplin teknologi dan manajerial dengan produksi dan pemeliharaan sistematis produk perangkat lunak yang dikembangkan dan dimodifikasi tepat waktu dan dalam perkiraan biaya Lingkup Rekayasa Perangkat Lunak Paradigma Rekayasa Perangkat Lunak • Perkembangan perangkat lunak bisa dianggap sebagai lingkaran pemecahan masalah dimana terdapat empat keadaan berbeda, yaitu status quo, definisi masalah, perkembangan teknis pemecahan masalah, dan integrasi pemecahan menyampaikan hasil (dokumen, program, data, fungsi bisnis baru, produk baru) kepada yang membutuhkan hasil/produk tersebut Paradigma Rekayasa Perangkat Lunak • Perkembangan perangkat lunak bisa dianggap sebagai lingkaran pemecahan masalah dimana terdapat empat keadaan berbeda, yaitu status quo, definisi masalah, perkembangan teknis pemecahan masalah, dan integrasi pemecahan menyampaikan hasil (dokumen, program, data, fungsi bisnis baru, produk baru) kepada yang membutuhkan hasil/produk tersebut Paradigma Rekayasa Perangkat Lunak • Lingkaran pemecahan masalah tersebut digunakan pada tingkat makro ketika bagian dalam aplikasi dipakai; pada tingkat tengah ketika komponen program direkayasa; dan pada tingkat mikro ketika baris-baris kode ditulis. • Masing-masing keadaan di dalam pemecahan masalah tersebut berisi lingkaran yang identik. Tujuan Rekayasa Perangkat Lunak • Rekayasa Perangkat Lunak digunakan untuk mendapatkan biaya produksi yang rendah dengan performa yang maksimal. • Rekayasa Perangkat Lunak digunakan untuk menghasilkan perangkat lunak yang kinerjanya tinggi, andal dan tepat waktu. Tujuan Rekayasa Perangkat Lunak • Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform. • Menghasilkan perangkat lunak yang biaya maintenance atau perawatannya rendah. Elemen Kunci Rekayasa Perangkat Lunak • Metode : “how to” yang bersifat teknis. Meliputi bidang-bidang perencanaan proyek, estimasi, analisis persyaratan, perancangan, coding, pengujian dan pemeliharaan. Elemen Kunci Rekayasa Perangkat Lunak • Tools : memberikan dukungan automasi bagi metode dikenal dengan CASE. Elemen Kunci Rekayasa Perangkat Lunak • Prosedur : mengintegrasikan metode dan tool untuk mendefinisikan kapan suatu metode akan digunakan, hasil yang diharapkan, pengendalian untuk menjamin kualitas hasil, dan milestone yang dapat digunakan untuk mengevaluasi kemajuan Ruang Lingkup Rekayasa Perangkat Lunak Ruang Lingkup Rekayasa Perangkat Lunak • Software Requirment merupakan kegiatan yang dilakukan untuk mengidentifikasi dan menganalisis kebutuhan perangkat lunak. Hasil akhir tahapan ini adalah spesifikasi dan model perangkat lunak. • Software Design adalah tahapan perancangan arsitektur, komponen, antar muka, dan karakteristik lain dari perangkat lunak. Ruang Lingkup Rekayasa 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. Ruang Lingkup Rekayasa 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. Ruang Lingkup Rekayasa Perangkat Lunak • 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. Ruang Lingkup Rekayasa Perangkat Lunak • 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. Metode Pengembangan Rekayasa Perangkat Lunak • Siklus Klasik (Model Air terjun). • Berdasarkan siklus konvensional dalam bidang rekayasa lainnya pendekatan sekuensial yang sistematis. Metode Pengembangan Rekayasa Perangkat Lunak • Tahapan-tahapan • Analisis dan Rekayasa Sistem : Perangkat lunak merupakan bagian dari sebuah sistem untuk mendapatkan bgambaran yang meluas pada aras system. • Analisis Persyaratan : Fokus lebih terarah ke perangkat lunak, berusaha mengetahui aspek „what‟ melibatkan pemakaian dan pengembangan. Metode Pengembangan Rekayasa Perangkat Lunak • Tahapan-tahapan • Perancangan : Menerjemahkan persyaratan menjadi suatu bentuk representasi yang dapat dievaluasi kualitasnya sebelumnya coding dilakukan. • Coding (Penulisan Program) : Penerjemahan rancangan ke dalam bentuk yang dapat dimengerti komputer. Metode Pengembangan Rekayasa Perangkat Lunak • Tahapan-tahapan • Pengujian. Berfokus pada rincian logikal dari perangkat lunak, bertujuan mengungkapkan dan menghilangkan kesalahankesalahan yang ada sehingga perangkat lunak bekerja sesuai dengan yang diharapkan. • Pemeliharaan. Meliputi kegiatan- kegiatan koreksi kesalahan dan penyesuaian perangkat lunak terhadap perubahan lingkungannya. Metode Pengembangan Rekayasa Perangkat Lunak • Masalah • Proyek-proyek pengembangan perangkat lunak jarang yang mengikuti alur sekuensial secara ketat banyak melibatkan proses iterasi. • Sulit bagi pemberi pekerjaan untuk menyatakan semua keinginannya secara eksplisit di awal tahap pengembangan. • Hasil baru akan diketahui lama setelah proyek pengembangan dimulai. Metode Pengembangan Rekayasa Perangkat Lunak • Prototyping • Bila pemakaian belum siap dengan persyaratan perangkat lunak secara lengkap (rinci). • Prototype bukan perangkat lunak yang sesungguhnya. Metode Pengembangan Rekayasa Perangkat Lunak • Prototyping • Model Perangkat Lunak : 1) Model „kertas. Hanya agar pemakai mengerti interaksi antara dia dengan perangkat lunak. 2) Model kerja. Mengimplementasikan beberapa fungsi perangkat lunak 3) Program. Sebagian atau semua fungsi telah diimplementasikan, dan akan dikembangkan dalam proses pengembangan Metode Pengembangan Rekayasa Perangkat Lunak • Prototyping • Melibatkan suatu proses iterasi yang berfokus pada penyempurnaan prototype yang didasarkan pada persyaratan yang diminta oleh pemakai pemakai terlibat intensif selama proses pengembangan. Metode Pengembangan Rekayasa Perangkat Lunak • Prototyping • Masalah Ketidaksadaran bahwa prototype bukan hasil yang diharapkan • Pemakai : tidak sabar untuk menunggu perangkat lunak yang sebenarnya. • Pengembang : Pemakai teknik dan tools yang tidak optimal pada prototype yang akhirnya tetap digunakan pada perangkat lunak yang sesungguhnya. Metode Pengembangan Rekayasa Perangkat Lunak • Spiral • Menggabungkan keuntungan- keuntungan model air terjun dan prototyping, dan memasukkan aktivitas analisis resiko (risk analysis). • Melibatkan proses iterasi, tiap iterasi bekerja pada satu „level produk‟ (dari level prototype awal sampai pada level perangkat lunak yang diinginkan). Tiap perpindahan level didahului oleh analisis resiko. Metode Pengembangan Rekayasa Perangkat Lunak • Spiral • 4 aktivitas utama 1) Perencanaan : Penentuan sasaran, alternatif solusi dan hambatan. 2) Analisis resiko : Analisis alternatif solusi dan identifikasi resiko 3) Perekayasaan : Pengembangan produk pada „level berikutnya‟ 4 4) Evaluasi oleh pemakai : Diterapkan pada hasil proses perekayasaan. Metode Pengembangan Rekayasa Perangkat Lunak • Spiral • Masalah Menuntut keahlian dalam bidang analisis resiko. Metode Pengembangan Rekayasa Perangkat Lunak • RAD (Rapid Aplication Development) • RAD adalah merupakan model proses pengembangan perangkat lunak adaptasi kecepatan tinggi dari model sekuensial linier yang menekankan siklus perkembangan yang sangat pendek. Metode Pengembangan Rekayasa Perangkat Lunak • RAD (Rapid Aplication Development) • Perjalanan pengembangannya sangat cepat dengan menggunakan pendekatan konstruksi berbasis komponen, yang memungkinkan tim pengembang bisa menciptakan sistem fungsional secara utuh dalam waktu 60 s.d. 90 hari. Pada umumnya digunakan pada aplikasi sistem konstruksi. Metode Pengembangan Rekayasa Perangkat Lunak • RAD (Rapid Aplication Development) • Businnes modelling. Pemodelan dari aliran informasi diantara fungsi-fungsi bisnis. • Data modelling. Mengidentifikasi serangkaian objek data yang dibutuhkan dan karakteristik masing-masing objek tersebut, serta mendefinisikan hubungan antara objek-objek tersebut. Metode Pengembangan Rekayasa Perangkat Lunak • RAD (Rapid Aplication Development) • Proses modelling. Mentransformasikan hasil data modelling untuk mencapai aliran informasi yang perlu bagi implementasi fungsi-fungsi prosesnya. Gambaran proses dibuat untuk menambah, memodifikasi, menghapus, atau mendapatkan kembali sebuah objek data. Metode Pengembangan Rekayasa Perangkat Lunak • RAD (Rapid Aplication Development) • Aplication generation. RAD mengasumsikan pemakaian teknik generasi keempat (4GL), lebih banyak memakai komponen program yang sudah ada, juga menciptakan komponen yang bisa dipakai lagi. Metode Pengembangan Rekayasa Perangkat Lunak • RAD (Rapid Aplication Development) • Testing and turnover. Karena proses RAD menekankan pada pemakaian kembali, maka setiap komponen baru harus diuji untuk mengurangi keseluruhan waktu pengujian. Metode Pengembangan Rekayasa Perangkat Lunak • Kelemahan RAD (Rapid Aplication Development) 1) Bagi proyek yang besar tetapi berskala, RAD memerlukan sumber daya manusi yang memadai untuk menciptakan jumlah tim RAD yang baik. 2) RAD menuntut pengembang dan pelanggan memiliki komitmen tinggi di dalam aktivitas pengembangan Metode Pengembangan Rekayasa Perangkat Lunak • Agile Development • Agile Development adalah metode pengembangan perangkat lunak secara cepat dengan kondisi perubahan kebutuhan yang terjadi dalam waktu relatif singkat. • Agile adalah sekumpulan metode pengembangan software yang dilakukan secara bertahap dan berulang (iterasi). Metode Pengembangan Rekayasa Perangkat Lunak • Agile Development • Konsep utama Agile Development ialah pengerjaan aplikasi dan kerjasama tim. Fokus pengerjaan aplikasi dengan meminimalisir dokumentasi. • Kerjasama tim berupa 2 orang programmer atau lebih yang bekerja dalam satu fitur serta komunikasi intensif programmer-klien Metode Pengembangan Rekayasa Perangkat Lunak • Agile Development • Agile merupakan alternatif dari metode Waterfall yang linear dan tak bisa diubah di tengah proses pengembangan. • Masalahnya, kebutuhan pasar mulai berubah dengan cepat. Efeknya, banyak software dengan metode waterfall yang tak lagi dibutuhkan di pasar saat dirilis. Metode Pengembangan Rekayasa Perangkat Lunak • Agile Manifesto • Mengedepankan individu dan interaksinya, dibanding proses dan tools. • Mengedepankan software yang berfungsi, dibanding membuat dokumentasi lengkap. • Mengedepankan kerjasama dengan konsumen, dibanding negosiasi kontrak. • Mengedepankan menanggapi perubahan, dibanding sekedar mengikuti rencana Metode Pengembangan Rekayasa Perangkat Lunak • 12 prinsip Agile yang menjadi dasar dari pelaksanaan metodologi Agile • Memberikan Prioritas utama pada kepuasan konsumen melalui software yang dirilis dengan cepat dan rutin — Konsumen tentu akan lebih puas karena bisa langsung menikmati software dan perbaikannya dengan cepat pada setiap iterasi. Alih-alih harus menunggu berbulan-bulan atau bertahun-tahun hingga project selesai dulu. Metode Pengembangan Rekayasa Perangkat Lunak • 12 prinsip Agile yang menjadi dasar dari pelaksanaan metodologi Agile • Memiliki keterbukaan dengan perubahan kebutuhan, bahkan di akhir pengembangan sekalipun. Agile mendukung perubahan ini untuk kebaikan konsumen — Perubahan apapun bisa langsung diterapkan kapanpun tanpa melewati proses yang rumit. Alasannya, lebih baik menerapkan perubahan daripada merilis software yang tidak sesuai kebutuhan konsumen. Metode Pengembangan Rekayasa Perangkat Lunak • 12 prinsip Agile yang menjadi dasar dari pelaksanaan metodologi Agile • Merilis software dengan rutin, mulai dari beberapa minggu, hingga beberapa bulan sekali. Akan tetapi, lebih cepat lebih baik — Merilis software dengan rutin dan cepat memastikan bahwa software selalu sesuai kebutuhan pasar. Metode Pengembangan Rekayasa Perangkat Lunak • 12 prinsip Agile yang menjadi dasar dari pelaksanaan metodologi Agile • Tim Developer dan bagian bisnis harus bekerjasama setiap hari selama project berjalan — Keputusan yang diambil akan lebih baik hasilnya kalau kedua pihak saling memberikan kritik dan saran. Metode Pengembangan Rekayasa Perangkat Lunak • 12 prinsip Agile yang menjadi dasar dari pelaksanaan metodologi Agile • Menghasilkan project dengan individu yang penuh motivasi. Berikan mereka lingkungan dan support yang dibutuhkan. Lalu, percayalah mereka akan menyelesaikan pekerjaannya — Tim yang penuh motivasi kemungkinan besar akan sukses, dibanding tim yang kurang semangat. Salah satu caranya adalah dengan memberikan kebebasan pada mereka. Metode Pengembangan Rekayasa Perangkat Lunak • 12 prinsip Agile yang menjadi dasar dari pelaksanaan metodologi Agile • Metode paling efisien dan efektif untuk menyampaikan informasi di tim adalah secara empat mata — Komunikasi secara langsung bisa membangun rasa percaya antar individu dengan lebih cepat. Metode Pengembangan Rekayasa Perangkat Lunak • 12 prinsip Agile yang menjadi dasar dari pelaksanaan metodologi Agile • Software yang berfungsi dengan baik merupakan tolok ukur kesuksesan project — Tujuan mengembangkan software adalah untuk menghasilkan software. Maka dari itu, software yang berfungsi adalah tolok ukur terbaik. Metode Pengembangan Rekayasa Perangkat Lunak • 12 prinsip Agile yang menjadi dasar dari pelaksanaan metodologi Agile • Agile mendukung pengembangan yang berkelanjutan. Sehingga semua pihak harus menjaga pace yang sama — Tim harus menjalankan iterasi dengan rutin hingga project selesai . Jadi, tidak boleh ada anggota tim yang menghambat iterasi. Metode Pengembangan Rekayasa Perangkat Lunak • 12 prinsip Agile yang menjadi dasar dari pelaksanaan metodologi Agile • Aspek teknis dan desain yang bagus bisa meningkatkan kelincahan (agility) — Anggota tim sebaiknya mempunyai kemampuan yang baik, sehingga mampu terus menciptakan software berkualitas di tengah perubahan sekalipun. Metode Pengembangan Rekayasa Perangkat Lunak • 12 prinsip Agile yang menjadi dasar dari pelaksanaan metodologi Agile • Pentingnya kesederhanaan untuk meminimalisir pekerjaan yang tidak perlu — Tim sebaiknya menghindari mempersulit diri sendiri atau melakukan pekerjaan yang tidak sesuai dengan kebutuhan konsumen. Metode Pengembangan Rekayasa Perangkat Lunak • 12 prinsip Agile yang menjadi dasar dari pelaksanaan metodologi Agile • Tim yang mandiri akan menghasilkan arsitektur, kebutuhan, dan desain terbaik — Tim yang mandiri akan bangga dengan karyanya. Sehingga mereka akan menghasilkan karya yang lebih baik daripada saat dikekang. Metode Pengembangan Rekayasa Perangkat Lunak • 12 prinsip Agile yang menjadi dasar dari pelaksanaan metodologi Agile • Sesering mungkin, tim harus memikirkan cara untuk menjadi lebih efektif, lalu menerapkannya dengan baik — Pengembangan diri bagi anggota tim juga penting. Sebab, bisa meningkatkan efisiensi dan kualitas software. Metode Pengembangan Rekayasa Perangkat Lunak • Tujuan Agile • High-value and working App system — Software yang diciptakan berfungsi baik, nilai jualnya tinggi, dan biaya pembuatannya rendah. • Iterative, incremental, evolutionary — Pengembangan software terbuka dengan perubahan di mana tim mampu bekerja dengan singkat dalam menambah fitur sesuai kebutuhan konsumen. Metode Pengembangan Rekayasa Perangkat Lunak • Tujuan Agile • Cost control & value-driven development — Software dikembangkan dengan sesuai kebutuhan pengguna dengan waktu dan biaya pengembangan yang dikontrol. • High-quality production — Kualitas software bisa terjaga dengan melakukan tes menyeluruh di setiap iterasinya. Metode Pengembangan Rekayasa Perangkat Lunak • Tujuan Agile • Flexible & risk management — Proses pengembangan software disiapkan untuk menghadapi perubahan berbekal kemampuan adaptasi yang baik. Jadi, dapat meminimalisir kegagalan. • Collaboration — Kolaborasi tim lebih maksimal karena rutin bertemu untuk membahas perkembangan project. Metode Pengembangan Rekayasa Perangkat Lunak • Tujuan Agile • Self-organizing, self-managing teams — Tim bisa mengatur dirinya sendiri dengan support dari pimpinan sehingga tercipta tim yang solid. Metode Pengembangan Rekayasa Perangkat Lunak • Jenis-Jenis Agile Development • Adaptive Software Development Atau ASD • Agile Modelling (AM) • Crystal • Dynamic System Development Method (DSDM) • Extreme Programming (XP) • Scrum Methodology • Rational Unified Process
Pendekatan sederhana untuk SEO: Bagaimana memahami dasar-dasar optimasi mesin pencari dengan cara yang sederhana dan praktis melalui jalur penemuan non-spesialis untuk semua orang