RENCANA PROGRAM KEGIATAN PEMBELAJARAN SEMESTER (RPKPS)
REKAYASA PERANGKAT LUNAK
Disusun oleh: Andy Prasetyo Utomo, S.Kom, MT
PROGRAM STUDI SISTEM INFORMASI FAKULTAS TEKNIK UNIVERSITAS MURIA KUDUS TAHUN AJARAN 2012/2013
LEMBAR PENGESAHAN
Judul RPKPS : Rekayasa Perangkat Lunak
Nama Dosen Pengampu : Andy Prasetyo Utomo, S.Kom, MT
Kudus, 28 Juli 2012 Penyusun,
(Andy Prasetyo Utomo, S.Kom, MT)
Mengetahui dan Menyetujui: Ketua Program Studi:
(Arief Setiawan, S.Kom, M.Cs)
Rencana Program dan Kegiatan Pembelajaran Semester (RPKPS)
A. Latar Belakang
: Merupakan mata kuliah yang digunakan untuk mengajarkan berbagai macam tahapan dan proses yang harus
dilalui
dalam
melakukan
rekayasa
atau
pengembangan perangkat lunak dan disertai berbagai konsep dan teknologi terbaru yang berhubungan dengan rekayasa atau pengembangan perangkat lunak.
B. Perencanaan Pembelajaran 1. Nama Mata Kuliah
: Rekayasa Perangkat Lunak
2. Kode Mata Kuliah
: SSI-406
3. Bobot SKS
:3
4. Semester
: Ganjil
5. Dosen
: Andy Prasetyo Utomo, S.Kom, MT
6. Kompetensi
: Analist System
7. Rancangan Pembelajaran
:
RANCANGAN PEMBELAJARAN Nama Mata Kuliah
:
Rekayasa Perangkat Lunak
Program Studi
:
Sistem Informasi
Fakultas
:
Teknik
SKS
:
3
KOMPETENSI MATA KULIAH : Mampu menguasai beberapa metode untuk menyelesaikan permasalahan dalam membangun perangkat lunak yang sesuai dengan kondisi yang dihadapi serta mampu memodelkan sistem perangkat lunak ke dalam beberapa diagram pemodelan.
Matriks Pembelajaran: Pertemuan 1 1
2
Kemampuan akhir yang diharapkan 2 Termotivasi untuk menguasai kompetensi akhir yang diharapkan
Pemahaman mengenai metode dan permasalahan yang ada pada Rekayasa Sistem
Materi/Pokok Bahasan 3 Rancangan Pembelajaran, kontrak kuliah,metode perkuliahan, serta prosentase perkuliahan Teori-teori belajar: Mengenal permasalahan yang ada pada Rekayasa Sistem Mengetahui beberapa
Strategi Pembelajaran 4 Pembelajaran oleh dosen mengenai proses pembelajaran yang akan dilakukan Presentasi / ceramah Tanya Jawab Studi kasus
Latihan yang dilakukan 5 Menuliskan harapan yang akan dicapai
Menyelesaikan permasalahan dalam rekayasa sistem yang diberikan dalam bentuk studi kasus dengan metode tertentu.
Kriteria Penilaian (Indikator) 6
Knowledge skill Analisis skill
Bobot 7
8%
3-4
Pemahaman mengenai Proses yang ada pada perangkat lunak secara detail
5-6
Pemahaman mengenai Pemodelan Proses Perangkat
7
Pemahaman mengenai Kualitas Perangkat
alternatif metode yang dapat digunakan dalam rekasaya sistem Memahami langkah – langkah yang ada pada metode rekayasa sistem Teori-teori belajar: Mengenal proses – proses yang ada pada rekayasa sistem. Mengetahui dengan lebih detail tahapan – tahapan yang ada di setiap proses perangkat lunak Teori-teori belajar: Pemahaman model perangkat lunak Penggunaan model dalam beberapa kasus Teori-teori belajar: Pengetahuan mengenai kualitas perangkat lunak Pengetahuan mengenai jaminan kualitas
Presentasi Tanya Jawab/Diskusi Latihan Soal/Studi Kasus
Mengerjakan latihan – latihan soal yang berhubungan dengan materi proses perangkat lunak .
Knowledge skill Analisis skill
Presentasi Tanya Jawab/Diskusi Latihan Soal/Studi Kasus
Membuat pemodelan proses perangkat lunak dalam studi kasus tertentu .
Knowledge skill Analisis skill
11%
Presentasi Tanya Jawab/Diskusi Latihan Soal/Studi Kasus
Mengerjakan latihan – latihan soal yang berhubungan dengan materi kualitas perangkat lunak
Knowledge skill Analisis skill
5
11%
8-9
Pemahaman mengenai metode Extreme Programing
10
Pemahaman mengenai Software as a Service dalam Cloud Computing
11 - 12
Pemahaman perbedaan penggunaan metode Object Oriented VS Terstuktur
dalam perangkat lunak Teori – teori belajar Pengetahuan mengenai metode Extreme Programing Pemahaman mengenai penggunaan Extreme Programming Teori – teori belajar Pengetahuan dasar mengenai SaaS Pemahaman mengenai penggunaan SaaS dalam kondisi tertentu.
Teori – teori belajar Pengetahuan dasar mengenai metode OOD dan Struktural Pemahaman mengenai perbedaan diantara keduanya
Presentasi Tanya Jawab/Diskusi Latihan Soal/Studi Kasus
Mengerjakan latihan – latihan soal yang berhubungan dengan materi kualitas perangkat lunak
Knowledge skill Analisis skill
10%
Presentasi Tanya Jawab/Diskusi Latihan Soal/Studi Kasus
Mengerjakan latihan – latihan soal yang berhubungan dengan materi SaaS
Knowledge skill Analisis skill
5%
Presentasi Tanya Jawab/Diskusi Latihan Soal/Studi Kasus
Mengerjakan latihan – latihan soal yang berhubungan dengan perbedaan antara OOD dan struktural
Knowledge skill Analisis skill
10%
FORMAT RANCANGAN TUGAS
Nama Mata Kuliah Program Studi Fakultas
:
Rekayasa Perangkat Lunak
: :
Sistem Informasi Teknik
Sks
:
3
A. TUJUAN TUGAS: Mengembangkan dan membuat perangkat lunak dengan kriteria dan ketentuan yang sudah ditetapkan B. URAIAN TUGAS: a. Obyek Garapan: teori dan konsep penggunan, analisis b. Batasan yang harus dikerjakan: 1. Pembuatan dokumen SKPL 2. Desain rancangan dengan UML 3. Perangkat lunak jadi yang siap digunakan c. Metode/Cara Pengerjaan (acuan cara pengerjaan): 1. Tutorial (Dosen menjelaskan) 2. Diskusi kelas/Tanya Jawab 3. Latihan soal dengan contoh kasus (case study) 4. Tugas mandiri (small project) d. Deskripsi luaran tugas yang dihasilkan: 1. Mahasiswa mampu membuat dokumen SKPL dengan aturan dan format yang sesuai dengan standart pembuatan SKPL 2. Mahasiswa mampu membuat rancangan atau desain perangkat lunak yang sesuai dengan SKPL yang telah dibuat 3. Mahasiswa mampu membuat aplikasi jadi berdasarkan rancangan dan dokumen SKPL yang terlebih dulu dibuat
C. KRITERIA PENILAIAN (30 %) a. Ketepatan penjelasan b. Daya tarik komunikasi c. Knowledge skill d. Analisis skill
GRADING SCHEME KRITERIA 1: Ketepatan Penjelasan DIMENSI
Kelengkapan Konsep
Kebenaran Konsep
Sangat Memuaskan
Memuaskan
Batas
Kurang Memuaskan
Di bawah standard
Lengkap , sistematis dan Integratif
Lengkap, sistematis
Pemahaman secara umum belum lengkap
Hanya menunjuk ke beberapa bagian saja
Diungkapkan dengan tepat, sesuai dengan konsep (..baca algortima)
Diungkap dengan tepat, namun deskriptif
Sebagian besar topik tealh dijelaskan namun masih ada yang terlewatkan
Kurang dapat menerapkan konsep (..baca algoritma)
Batas
Kurang Memuaskan
Di bawah standard
Pembaca masih harus menambah lagi informasi dari beberapa sumber
Informasi yang disampaikan tidak menambah wawasan bagi pendengarnya
Informasi yang disampaikan menyesatkan atau salah
Batas
Kurang Memuaskan
Di bawah standard
Pemaha man secara umum belum lengkap
Hanya menunjuk ke beberapa bagian saja
Tidak memahami bentuk struktur memprogram dengan baik
Tidak menggunaka n konsep (...baca algoritma) Tidak menggunaka n konsep (...baca algoritma)
KRITERIA 2: Daya Tarik Komunikasi; Lisan DIMENSI
Isi
Sangat Memuaskan Memberi inspirasi pendengar untuk mencari lebih dalam
Memuaskan
Menambah wawasan
KRITERIA 3: Knowledge skill DIMENSI
Sangat Memuaskan
Penguasaan struktur dasar program (penggunaan judul program, deklarasi identifier, main program (input,output,pros es))
Lengkap , sistematis dan Integratif (dapat mengimplementas ikan)
Memuaskan
Lengkap, sistematis
KRITERIA 4: Analisis skill DIMENSI
Sangat Memuaskan
Memuaska n
Batas
Kurang Memuas kan
Di bawah standard
Penguasaan struktur dasar program (penggunaan judul program, deklarasi identifier, main program (input,output,pro ses))
Brancmarking/mengelom pokkan permodulmodul/bagian program lengkap dengan variablevaribalenya
Pengelompo kan modul ke dalam sub modul jelas
Pemaha man alur logika secara umum belum lengkap
Hanya menunjuk ke beberapa bagian saja
Tidak dapat memahami/m embrancmark program kedalam su program
LAMPIRAN : Handout RPL
09/09/2012
Pendahuluan Perangkat Lunak ??? Program komputer dan dokumentasi yang terkait Tipe dasar produk perangkat lunak : 1. Produk Umum – Perangkat lunak yang berdiri sendiri yang dijual secara masal dan umum. 2. Produk Pesanan – Perangkat lunak yang dikembangkan berdasarkan kebutuhan pelanggan tertentu.
Pendahuluan Jenis – jenis perangkat lunak : 1. 2. 3. 4. 5. 6. 7. 8. 9.
Perangkat lunak antivirus Perangkat lunak perkantoran Perangkat lunak desain grafis Perangkat lunak kompresi data Perangkat lunak multimedia Perangkat lunak statistika Perangkat lunak compiler Perangkat lunak jaringan Dst......
1
09/09/2012
Pendahuluan Rekayasa Perangkat Lunak ??? Rekayasa perangkat lunak adalah sebuah disiplin rekayasa yang berkaitan dengan semua aspek produksi perangkat lunak Rekayasa Perangkat Lunak VS Rekayasa Sistem RPL merupakan bagian dari Rekayasa sistem. Rekayasa sistem berkaitan dengan semua aspek pengembangan dan evolusi sistem yang kompleks yang terdiri dari pengembangan perangkat keras, kebijakan dan perangkat lunak.
Pendahuluan Alasan perlunya Rekayasa Perangkat Lunak : 1. Perkembangan perangkat keras yang lebih cepat 2. Kemampuan untuk membangun yang dituntut untuk memenuhi kebutuhan secara cepat 3. Peningkatan ketergantungan pada perangkat lunak 4. Pembangunan perangkat lunak berkualitas tinggi dan dapat dipercaya 5. Desain yang kurang dan minimnya sumber daya
2
09/09/2012
Pendahuluan Karakteristik Perangkat Lunak : 1. Perangkat lunak dibangun dan dikembangkan, tidak dibuat dalam bentuk klasik 2. Perangkat lunak tidak pernah usang 3. Sebagian besar perangkat lunak dibuat secara custom – built, serta tidak dirakit dari komponen yang sudah ada
Pendahuluan Proses Perangkat Lunak ??? Serangkaian kegiatan dan hasil terkait yang menghasilkan produk perangkat lunak. Aktifitas dasar proses perangkat lunak : 1. 2. 3. 4.
Spesifikasi Perangkat Lunak Pengembangan Perangkat Lunak Validasi Perangkat Lunak Evolusi Perangkat Lunak
3
09/09/2012
Pendahuluan Model Proses Perangkat Lunak ??? Gambaran yang disederhanakan dari proses perangkat lunak yang menyajikan sebuah tampilan dari proses tersebut. Beberapa contoh dari jenis model proses perangkat lunak yang mungkin dihasilkan: 1. Workflow model 2. Dataflow / activity model 3. Role/action model
Pendahuluan Kebanyakan model proses perangkat lunak didasarkan pada salah satu dari tiga model atau paradigma umum pengembangan perangkat lunak berikut ini : 1. Pendekatan Waterfall 2. Pengembangan Iteratif 3. Component‐based software engineering (CBSE)
4
09/09/2012
Pendahuluan
Distribusi Biaya Aktifitas Perangkat Lunak
Pendahuluan Metode rekayasa perangkat lunak ??? Pendekatan terstruktur untuk pengembangan perangkat lunak yang bertujuan untuk memfasilitasi produksi perangkat lunak berkualitas tinggi dengan biaya yang efektif Jenis metode rekayasa perangkat lunak : 1. Structured Analysis 2. Object Oriented
5
09/09/2012
Pendahuluan Atribut dari kualitas perangkat lunak yang baik : 1. Maintainability ‐ Perangkat lunak harus berkembang untuk memenuhi perubahan kebutuhan 2. Dependability ‐ Perangkat lunak harus dapat dipercaya 3. Efficiency – Perangkat lunak seharusnya tidak menggunakan sumber daya sistem dengan boros 4. Usability ‐ Perangkat lunak harus dapat digunakan oleh pengguna.
Pendahuluan Masalah tanggung jawab profesional : 1. Kerahasiaan – Engineers harus menghormati kerahasiaan klien terlepas dari ada atau tidakkah perjanjian mengenai hal itu. 2. Kompetensi – Engineers seharusnya tidak sengaja menerima pekerjaan yang tidak sesuai dengan kompetensi mereka. 3. Hak kekayaan intelektual – Engineers harus menyadari hukum lokal yang mengatur penggunaan properti intelektual seperti hak paten serta harus berhati‐hati untuk memastikan bahwa properti intelektual klien dilindungi. 4. Penyalahgunaan komputer ‐ Engineers seharusnya tidak menggunakan keterampilan teknis mereka untuk penyalahgunaan komputer orang lain, misal menyisipkan virus / trojan di aplikasi yang dibangun.
6
09/09/2012
Penilaian
Komponen Penilaian : 1.Absensi (10%) 2.Tugas (30%) 3.UTS (30%) 4.UAS (30%) 5.KUIS
7
17/09/2012
Proses Software Serangkaian kegiatan dan hasil terkait yang menghasilkan produk perangkat lunak. Aktifitas dasar proses perangkat lunak : 1. 2. 3. 4.
Spesifikasi Perangkat Lunak Pengembangan Perangkat Lunak Validasi Perangkat Lunak Evolusi Perangkat Lunak
Proses Software Spesifikasi Perangkat Lunak Proses memahami dan mendefinisikan layanan apa yang diperlukan dari sistem dan mengidentifikasi kendala yang mungkin terjadi pada saat mengoperasikan dan mengembangkan sistem Fase Utama Spesifikasi Perangkat Lunak : 1. 2. 3. 4.
Studi Kelayakan Pengumpulan dan Analisa Kebutuhan Spesifikasi Kebutuhan Validasi Kebutuhan
1
17/09/2012
Proses Software Pengembangan (Desain & Implementasi) Perangkat Lunak Pendeskripsian struktur perangkat lunak yang meliputi data, antarmuka dan algoritma yang digunakan, dan kemudian mentranformasikannya ke sistem executable Fase Utama Pengembangan Perangkat Lunak : 1. 2. 3. 4.
Desain Arsitektur Abstrak Spesifikasi Desain Antarmuka Desain Komponen
5. Desain Struktur Data 6. Desain Algoritma
Proses Software Validasi dan Verifikasi Perangkat Lunak Proses untuk memastikan dan menunjukkan bahwa sistem sesuai dengan spesifikasinya dan memenuhi harapan pelanggan yang membeli sistem. Fase Utama Validasi Perangkat Lunak : 1. Pengujian Unit / Komponen 2. Pengujian Sistem 3. Pengujian Penerimaan
2
17/09/2012
Proses Software Evolusi Perangkat Lunak Merujuk pada proses pengembangan perangkat lunak mulai dari awal dan kemudian berulang dengan tujuan untuk melakukan pembaharuan dan perbaikan.
Dokumen SKPL Dokumen Spesifikasi Kebutuhan Perangkat Lunak (SKPL) Dokumen yang berisi spesifikasi dari suatu produk/program yang melakukan suatu fungsi tertentu pada lingkungan tertentu. SKPL dapat dibuat oleh wakil dari pengembang atau wakil dari pelanggan. Sebaiknya SKPL dibuat bersama‐sama oleh pengembang dan pelanggan.
3
17/09/2012
Dokumen SKPL Hal – hal yang perlu diperhatikan dalam penulisan SKPL : 1. 2. 3. 4. 5.
Fungsionalitas Antar muka eksternal (External Interface) Performansi Atribut Batasan perancangan
Dokumen SKPL SKPL pada akhirnya akan menjadi dasar bagi kontrak antara pengembang dan pelanggan, maka suatu dokumen SKPL harus memenui syarat‐syarat berikut: 1. Mendefinisikan kebutuhan perangkat lunak dengan benar. Kebutuhan perangkat lunak muncul karena ada pekerjaan yang harus diselesaikan atau karena ada karakteristik khusus dari proyek. 2. Tidak menjelaskan rancangan atau implementasi dengan rinci. Penjelasan tersebut tidak diperlukan karena bagi pengguna hal tersebut lebih teknis dan tidak perlu. 3. Tidak memaksakan penambahan suatu batasan dari perangkat lunak.
4
17/09/2012
Dokumen SKPL Karakterisitk SKPL yang baik : 1. Benar 2. Tidak ambigu 3. Lengkap 4. Konsisten 5. Terurut berdasarkan kepentingannya atau kestabilannya 6. Dapat diverifikasi 7. Dapat dimodifikasi 8. Dapat ditelusuri (traceable)
Dokumen SKPL Kebutuhan projek menyatakan persetujuan antara pelanggan dan pengembang tentang masalah kontrak yang berhubungan dengan produksi perangkat lunak dan sebaiknya tidak diikut sertakan dalam SKPL. Hal‐hal yang menyangkut kebutuhan projek antara lain: 1. 2. 3. 4. 5. 6. 7.
Biaya Jadwal penyerahan Aturan pelaporan Metode Pengembangan Perangkat Lunak Jaminan Kualitas Kriteria Validasi dan Verifikasi Aturan penerimaan (acceptance procedure).
5
17/09/2012
Dokumen SKPL Bagian – bagian SKPL : 1. Pendahuluan a. Tujuan b. Lingkup c. Definisi dan Singkatan (Akronim) d. Referensi e. Deskripsi Umum Dokumen 2. Deskripsi Umum Perangkat Lunak a. Deskripsi Umum Sistem b. Fungsi Produk c. Karakteristik Pengguna d. Batasan‐batasan e. Lingkungan Operasi 3. Deskripsi Rinci Kebutuhan
Dokumen SKPL TUGAS 1. Buat Kelompok yang terdiri maksimal 5 orang 2. Pilih sebuah tema perangkat lunak 3. Buat dokumen SKPL sesuai dengan tema perangkat lunak tersebut
PENGINGAT...!!! Pilih tema perangkat lunak dan buat SKPL sesuai dengan kemampuan kelompok, karena dokumen SKPL tersebut nantinya akan dilanjutkan ke pembuatan aplikasi
6
23/09/2012
Model Proses PL Model / Paradigma Proses Perangkat Lunak Representasi Abstrak dari Proses Perangkat Lunak, yang dapat digunakan untuk menjelaskan perbedaan pendekatan dalam melakukan pengembangan perangkat lunak.
Model Proses PL Kebanyakan model proses perangkat lunak didasarkan pada salah satu dari tiga model atau paradigma umum pengembangan perangkat lunak berikut ini : 1. Model Waterfall 2. Pengembangan Evolutionary/Iteratif 3. Component‐based software engineering (CBSE)
1
23/09/2012
Model Proses PL Model Waterfall Sebuah pendekatan yang memiliki pandangan bahwa sebuah proses hidup perangkat lunak memiliki sebuah proses yang linear dan sekuensial. Prinsip Model Waterfall Tiap tahapan tidak akan bisa dilaksanakan jika tahapan sebelumnya belum dilakukan.
Model Proses PL Tahapan dalam Model Waterfall Definisi Kebutuhan
Desain Sistem dan Perangkat Lunak
Implementasi dan Testing Unit
Integrasi dan Testing Sistem
Operasional dan Pemeliharaan
Sumber : Sommerville, Software Engineering 8, 2007
2
23/09/2012
Model Proses PL Beberapa hal berkaitan dengan Model Waterfall : Sangat cocok diterapkan pada sistem yang telah mengetahui kebutuhannya dengan sangat jelas Kegagalan dalam Model Waterfall seringkali disebabkan karena pengguna sulit dalam mendefinisikan kebutuhan dalam satu waktu (terutama saat tahap definisi kebutuhan) Kelebihan dari Model Waterfall adalah dokumentasi yang lengkap dari setiap aktifitas proses perangkat lunak yang dihasilkan di setiap tahapnya Kelemahannya sangat sulit merespon adanya perubahan kebutuhan saat kegiatan pengembangan perangkat lunak sedang berjalan
Model Proses PL Pengembangan Evolutionary Didasarkan pada ide pengembangan dari implementasi awal, memperlihatkannya untuk mengetahui pendapat pengguna dan memperbaikinya melalui banyak versi sampai sistem aplikasi dirasa cukup dari sisi pandang pengguna.
3
23/09/2012
Model Proses PL Tipe dasar dari Pengembangan Evolutionary : 1. Exploratory development – Bertujuan untuk bekerja sama dengan pelanggan untuk
mengeksplorasi kebutuhan mereka dan memberikan sistem akhir. – Pengembangan dimulai dengan bagian‐bagian dari sistem yang dipahami. – Sistem ini berkembang dengan menambahkan fitur baru yang diusulkan oleh pelanggan.
2. Throwaway prototyping – Bertujuan untuk memahami kebutuhan pelanggan dan
karenanya mengembangkan definisi persyaratan yang lebih baik untuk sistem. – Pembuatan prototipe dilakukan dengan eksperimen dengan berdasar pada persyaratan pelanggan yang kurang dipahami.
Model Proses PL Tahapan dalam Pengembangan Evolutionary Aktifitas yang berjalan bersamaaan
Deskripsi Kebutuhan
Spesifikasi
Versi Awal
Pengembangan
Versi Intermediate
Validasi
Versi Akhir
Sumber : Sommerville, Software Engineering 8, 2007
4
23/09/2012
Model Proses PL Beberapa hal berkaitan dengan Pengembangan Evolutionary : Sering lebih efektif dari pendekatan Waterfall dalam menghasilkan sistem yang sesuai dengan kebutuhan pengguna saat ini. Kelebihan dari pengembangan Evolutionary adalah dimana spesifikasi kebutuhan bisa dikembangkan secara bertahap. Kekurangan dari pengembangan Evolutionary adalah Sulit dalam melakukan proses dokumentasi yang dikarenakan sering terjadinya perubahan kebutuhan aplikasi. Sistem aplikasi yang dihasilkan kurang terstruktur
Cocok untuk pengembangan sistem aplikasi dengan ukuran kecil – sedang.
Model Proses PL Component‐based software engineering (CBSE) Suatu pendekatan yang di dasarkan pada penggunaan kembali komponen perangkat lunak, pada pembuatan sistem yang mirip, yang kemudian melakukan modifikasi yang diperlukan dan memasukkannya ke dalam sistem yang baru.
5
23/09/2012
Model Proses PL Tahap dalam Component‐based software engineering
Spesifikasi Kebutuhan
Analisa Komponen
Modifikasi Kebutuhan
Desain sistem dengan “reuse”
Pengembangan dan Integrasi
Validasi Sistem
Sumber : Sommerville, Software Engineering 8, 2007
Model Proses PL Beberapa hal berkaitan dengan Component‐ based software engineering : Memiliki keuntungan yang jelas untuk mengurangi jumlah perangkat lunak yang akan dikembangkan sehingga juga mengurangi biaya dan risiko. Biasanya juga mengarah pada penyelesaian pembuatan perangkat lunak dengan lebih cepat. Namun, kompromi kebutuhan sistem yang dilakukan dapat menyebabkan sistem yang tidak memenuhi kebutuhan nyata pengguna.
6
05/11/2012
Kualitas Software Kualitas Software ?? Penyesuaian kebutuhan fungsional dan performa yang ditetapkan secara eksplisit, standar pengembangan yang terdokumentasi secara eksplisit, dan karakteristik implisit yang diharapkan dari seluruh software yang dikembangkan secara professional.
Kualitas Software Tiga hal penting dalam kualitas software : 1. Kebutuhan software merupakan pondasi/dasar dari kualitas yang akan diukur. Sedikitnya kesesuaian terhadap kebutuhan, maka semakin tidak berkualitas. 2. Standar yang dispesifikasikan, mendefinisikan sekumpulan kriteria pengembangan yang memandu pengembangan software. Jika kriteria tidak disertakan, maka dapat dipastikan hasil akhir akan berkualitas rendah. 3. Terdapat kebutuhan implisit (implicit requirements) yang terkadang tidak disebutkan (misalkan, keinginan untuk kemampuan pemeliharaan yang mudah). Jika software menyesuaikan kepada kebutuhan eksplisit, tetapi tidak kepada kebutuhan implisit, maka kualitas software akan dipertanyakan.
1
05/11/2012
Kualitas Software Dua kategori faktor yang dapat mempengaruhi kualitas software : 1. Faktor‐faktor yang dapat diukur secara langsung (misalkan : error, Kilobytes Lines of Code (KLOC)) 2. Faktor‐faktor yang dapat diukur secara tidak langsung (misalkan : usability, maintainability)
Kualitas Software Faktor – Faktor Kualitas Software : Maintainability Flexibility Testability
Portability Reusability Interoperability
Correctness, Reliability, Efficiency, Integrity, Usability
McCall`s Software Quality Factors
2
05/11/2012
Kualitas Software Tiga aspek penting dari suatu produk software yaitu : 1. Karakteristik Operasional (Product Operation) meliputi faktor Correctness, Reliability, Efficiency, Integrity, Usability 2. Kemampuan perubahan ketika software sudah berjalan (Product Revision) meliputi faktor Maintainability, Flexibility, Testability 3. Kemampuan beradaptasi terhadap lingkungan baru (Product Transition) meliputi faktor Portability, Reusability, Interoperability
Kualitas Software Faktor – faktor kualitas software (1) : 1. Correctness (kebenaran), tingkat pemenuhan program terhadap kebutuhan yang dispesifikasikan dan memenuhi tujuan/misi pengguna. 2. Reliability (Keandalan), tingkat kemampuan program yang diharapkan dapat menampilkan fungsi yang dimaksud dengan presisi yang ditetapkan. 3. Efficiency (efisiensi), jumlah sumberdaya yang diproses dan kode yang diperlukan oleh program untuk melaksanakan fungsinya. 4. Integrity (Integritas), tingkat kemampuan pengawasan akses terhadap data atau software oleh orang‐orang tertentu. 5. Usability (Kegunaan), usaha yang diperlukan untuk mempelajari, mengoperasikan, menyiapkan masukan dan mengartikan keluaran program.
3
05/11/2012
Kualitas Software Faktor – faktor kualitas software (2) : 6. Maintainability, usaha yang diperlukan untuk menetapkan dan memperbaiki kesalahan dalam program. 7. Flexibility, usaha yang diperlukan untuk memodifikasi program operasional. 8. Testability, usaha yang diperlukan untuk menguji program untuk memastikan bahwa program melaksanakan fungsi yang telah ditetapkan. 9. Portability, usaha yang diperlukan untuk memindahkan program dari hardware/lingkungan sistem software tertentu ke yang lainnya. 10. Reusability, tingkat kemampuan program/bagian dari program yang dapat dipakai ulang dalam aplikasi lainnya, berkaitan dengan paket dan lingkup dari fungsi yang dilakukan oleh program. 11. Interoperability, usaha yang diperlukan untuk menggabungkan satu sistem dengan sistem lainnya.
Kualitas Software Jaminan Kualitas Software (Software Quality Assurance ‐ SQA) ?? Merupakan kegiatan yg terpola secara sistematis dan terencana, yg dibutuhkan utk menjamin kualitas suatu perangkat lunak
4
05/11/2012
Kualitas Software Tujuh aktifitas utama SQA (1): 1. Application of technical methods ‐ SQA dimulai dgn sekumpulan alat & metode teknis yg membantu analis utk mendapatkan spesifikasi yg berkualitas tinggi & bagi perancang utk merancang dg kualitas tinggi 2. Conduct of formal technical reviews ‐ Setelah spesifikasi & desain dibuat, ditetapkan kualitasnya dg melakukan review teknis formal. 3. Software testing ‐ Pengujian software mengkombinasikan langkah2 strategi dg metode rancangan test‐case yg dpt menjamin pendeteksian kesalahan secara efektif. 4. Enforcement of standards ‐ Jika terdapat standar yg formal, berarti harus dapat dijamin bahwa standar tsb diikuti.
Kualitas Software Tujuh aktifitas utama SQA (2): 5. Control of change ‐ Pengontrolan perubahan dilakukan selama pembuatan software & pada tahap pemeliharaan. Setiap perubahan dpt menyebabkan kesalahan & efek lain yg akan bisa menyebabkan kesalahan juga. 6. Measurement ‐ Pengukuran terhadap software mencakup pengukuran secara manajemen & teknis 7. Record keeping and reporting ‐ Penyimpanan hasil dari review, audit, pengontrolan perubahan, pengujian sebagai bagian dari record historis utk suatu proyek dan didesiminasikan kpd para staf pengembangan sbg ‘dasar utk mereka ketahui’
5
12/11/2012
http://materi.si.umk.ac.id
Cloud Computing Cloud Computing Gaya komputasi di mana sumber daya komputasi mudah untuk didapat dan diakses, mudah digunakan, murah, dan langsung dapat dijalankan. Dari sisi teknis secara umum diturunkan dari teknologi Virtualisasi dan WEB Service Dari sisi manajemen menganut konsep Outsourcing
http://materi.si.umk.ac.id
Cloud Computing Karakteristik Cloud Computing 1. 2. 3. 4. 5. 6.
Scalable ‐ Kemampuan dalam meningkatkan kapasitas sumberdaya sebesar apapun yang diinginkan dengan cepat. Elastic ‐ Kemampuan dalam menyesuaikan jumlah sumberdaya yang sesuai dengan kebutuhan secara cepat. Self‐Service ‐ Kemampuan cloud computing dalam melayani dirinya sendiri. Ubiquitous Access ‐ Kemampuan untuk dapat diakses dimana – mana. Complete Virtualization ‐ Kemampuan untuk menggabungkan banyak sumber daya menjadi seolah – olah hanya sebuah server tunggal. Relative Consistency ‐ Kemampuan untuk selalu konsisten dalam menghasilkan layanan, karena cloud computing dibangun dari bermacam – macam komponen sehingga tidak tergantung hanya dengan satu komponen atau brand merk tertentu.
1
12/11/2012
http://materi.si.umk.ac.id
Cloud Computing Model Penyebaran Cloud Computing 1.
2.
3.
Cloud Publik ‐ Infrastruktur cloud yang disediakan untuk umum dan dimiliki oleh sebuah organisasi yang menjual jasa cloud (Provider Cloud Computing seperti Amazon, Google, Salesforce dan Microsoft). Cloud Privat ‐ Infrastruktur cloud yang dioperasikan hanya bagi suatu organisasi dan bisa dikelola sendiri oleh organisasi atau dikelola oleh pihak ketiga. Cloud Hibrid ‐ Infrastruktur cloud yang terdiri dari cloud privat dan publik yang masih merupakan entitas unik namun terikat bersama‐ sama oleh teknologi standar atau kepemilikan yang memungkinkan data dan portabilitas aplikasi. Sederhananya, cloud hibrid adalah kombinasi dari 2 model penyebaran cloud sebelumnya.
http://materi.si.umk.ac.id
Cloud Computing Layer Layanan dalam Cloud Computing 1.
2.
3.
Infrastruktur as a Service (IaaS) ‐ Adalah layer yang berisi semua sumber daya fisik dan virtual yang digunakan untuk membangun cloud, dan hampir sama dengan apa yang ada dalam operasional TI tradisional. Platform as a Service (AaaS) ‐ Adalah layer yang bertanggung jawab untuk mengelola dan mengoperasikan semua sumber daya yang ada di Iaas seperti komputer, media penyimpanan dan jaringan. Software as a Service (SaaS) ‐ Adalah layer yang paling atas yang menyediakan layanan berupa aplikasi yang digunakan dalam memberikan layanan kepada pelanggan.
2
12/11/2012
http://materi.si.umk.ac.id
Cloud Computing Software as a Service (SaaS) ‐ 1 Suatu model penyampaian aplikasi perangkat lunak dalam bentuk web oleh suatu vendor perangkat lunak yang untuk digunakan oleh pelanggannya melalui Internet. Pelanggan tidak mengeluarkan uang untuk memiliki perangkat lunak tersebut melainkan hanya untuk menggunakan. Produk aplikasi tak lagi dipindahtangankan. Sebagai gantinya proses atau jasa produklah yang dijual. Produk tetap berada di tangan produsen akan tetapi konsumen tetap bisa memperoleh valuenya.
http://materi.si.umk.ac.id
Cloud Computing Software as a Service (SaaS) ‐ 2 Keuntungan Bagi Produsen Karena produk berada di dalam domain produsen, proses pelayanan konsumen pun bisa lebih termonitor. Performa bisa “digenjot” lebih tinggi, dengan relatif cepat dan mudah karena produsenlah yang memegang kontrol produk. Produk bisa segera diupdate atau ditambahkan fitur yang akan langsung berefek pada semua pemakai produk. Resource komputasi dan storage pun bisa mencapi efektifitas dan efisiensi yang lebih tinggi, karena ada sharing resource.
3
12/11/2012
http://materi.si.umk.ac.id
Cloud Computing Software as a Service (SaaS) ‐ 3 Keuntungan Bagi Konsumen Harga produk, atau tepatnya subscription, akan menjadi relatif lebih murah. Karena adanya efisiensi di sisi produsen Model penawarannya bisa lebih menguntungkan konsumen, misalnya dengan tarif progresif sesuai jumlah data atau resource komputasi yang dipakai. Model langganan seperti ini bisa ditemukan pada layanan Amazon EC2. Dengan SaaS, konsumen tak perlu repot dengan membawa atau menginstall produk. Produk bisa diakses secara instan. Tidak perlu lagi memikirkan bagaimana cara memelihara produk supaya awet dan tidak bermasalah. “Less issue to think, more value to get”.
http://materi.si.umk.ac.id
Cloud Computing Software as a Service (SaaS) ‐ 4 Kekhawatiran dalam SaaS Kepemilikan data, privasi, dan keamanan adalah beberapa concern utama dalam SaaS. Data biasanya akan disimpan di tempat produsen. Kadangkala hal ini menimbulkan kekhawatiran apakah data tidak akan disalahgunakan???, apakah data akan tetap menjadi hak milik eksklusif pembeli produk???. Bagi yang sangat peduli dengan harga data, akan banyak muncul ketakutan akankah data tersebut akan terlindung dari akses pihak lain, apalagi sampai bisa dicuri.
4
12/11/2012
http://materi.si.umk.ac.id
Cloud Computing Contoh Wujud Nyata (SaaS) ‐1 Google Document & Google Application Engine
https://docs.google.com http://www.google.com/apps
http://materi.si.umk.ac.id
Cloud Computing Contoh Wujud Nyata (SaaS) ‐2
Aplikasi Database Foxpro dalam SaaS
http://www.foxincloud.com
5
19/11/2012
OO Vs Struktural Pemrograman Terstruktur Suatu aktifitas pemrograman dengan memperhatikan urutan langkah‐langkah perintah secara sistematis, logis, dan tersusun berdasarkan algoritma yang sederhana dan mudah dipahami.
OO Vs Struktural Pendekatan Pemrograman Terstruktur Pembuatan program dengan menganut konsep "top‐ down". Program dimulai dengan gambaran global, yang dinyatakan dengan nama‐prosedur (sub‐rutin) Selanjutnya prosedur sendiri bisa dipecah‐pecah lagi menjadi prosedur yang lain. Cara pandang program adalah suatu urutan instruksi. Programer harus me‐break down suatu problem menjadi sub problem yang lebih simple. Fungsi dan prosedur menjadi fokus utama dan digunakan untuk memanipulasi data.
1
19/11/2012
OO Vs Struktural Pemrograman Berorientasi Objek Merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas‐kelas atau objek‐objek
OO Vs Struktural Pendekatan Pemrograman Berorientasi Objek Fungsi dan data bukan menjadi dua hal yang terpisah melainkan menjadi satu kesatuan yang disebut sebagai obyek aktif. Cara pandang program adalah serangkaian obyek yang bekerjasama untuk menyelesaikan suatu problem. Prosedur, fungsi & variabel dibungkus / dikelompokkan di dalam sebuah kelas, konsep pembungkusan ini disebut enkapsulasi.
2
19/11/2012
OO Vs Struktural OO Vs Struktural OOP dalam melakukan pemecahan masalah tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek‐objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh, misal ada seorang manager ingin memperoleh data dari bag administrasi, maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Intinya pada kasus diatas seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi hanya perlu mengetahui objek apa yang bisa digunakan untuk mengambil data tersebut.
OO Vs Struktural OO Vs Struktural Untuk program yang lebih rumit dan kompleks, pemrograman berorientasi objek lebih praktis dibandingkan dengan pemrograman terstruktur Akan tetapi, untuk program yang relatif masih sederhana, pemrograman terstruktur lebih bagus digunakan karena lebih simple dan mudah.
3
26/11/2012
Extreme Programming Extreme Programming (XP) Sebuah pendekatan pengembangan perangkat lunak yang mencoba meningkatkan efisiensi dan fleksibilitas dari sebuah proyek pengembangan perangkat lunak dengan mengkombinasikan berbagai ide sederhana.
Extreme Programming Extreme Programming (XP) Kemunculannya di dorong karena permasalahan mengenai perubahan requirement yang begitu cepat Mencoba menyederhanakan berbagai tahapan dalam proses pengembangan tersebut sehingga menjadi lebih adaptif dan fleksibel. Bukan hanya berfokus pada coding tetapi meliputi seluruh area pengembangan perangkat lunak. XP tidak selalu cocok untuk setiap proyek pengembangan perangkat lunak. Kelebihan XP adalah sesuai untuk digunakan pada proyek yang memiliki dynamic requirements.
1
26/11/2012
Extreme Programming Nilai‐nilai Dasar Extreme Programming (XP) 1. 2.
3.
4.
5.
Communication ‐ mengfokuskan pada hubungan komunikasi yang baik antar anggota tim. Courage ‐ Para anggota tim dan penanggungjawab pengembangan perangkat lunak harus selalu memiliki keyakinan dan integritas dalam melakukan tugasnya. Simplicity ‐ Lakukan semua dengan sederhana, gunakan method yang pendek dan simpel, jangan terlalu rumit dalam membuat desain, hilangkan fitur yang tidak ada gunanya, dan berbagai proses penyederhanaan lain. Feedback ‐ Berikan selalu feedback kepada sesama anggota tim maupun pihak‐pihak lain yang terlibat dalam pengembangan perangkat lunak. Quality Work ‐ Dengan proses yang berkualitas maka implikasinya akan muncul pula perangkat lunak yang berkualitas sebagai hasil akhirnya.
Extreme Programming Aspek Dasar Extreme Programming (XP) ‐ 1 1.
2.
3.
4.
The Planning Game ‐ Proses pendek dan cepat, mengutamakan aspek teknik, memisahkan unsur bisnis dengan unsur teknis dan pertemuan intensif antara klien dengan developer. Small Releases ‐ Setiap release dilakukan dalam lingkup sekecil mungkin. Setiap developer yang menyelesaikan sebuah unit atau bagian dari perangkat lunak maka hasil tersebut harus segera dipresentasikan dan didiskusikan dengan klien Metaphor ‐ Merupakan panduan (guidance) dalam melakukan pengembangan secara keseluruhan. Requirements yang diperoleh melalui proses summarize stories berperan sebagai metaphor. Simple Design ‐ Desain dibuat dalam lingkup kecil dan sederhana agar tidak perlu melakukan antisipasi terhadap berbagai perubahan di kemudian hari.
2
26/11/2012
Extreme Programming Aspek Dasar Extreme Programming (XP)‐ 2 5.
6.
7.
8.
Refactoring ‐ Melakukan perubahan pada kode program dari perangkat lunak dengan tujuan meningkatkan kualitas dari struktur program tersebut tanpa mengubah cara program tersebut bekerja. Testing ‐ Tes yang hendak dijalani dibuat terlebih dahulu. Saat proses coding selesai dilakukan maka perangkat lunak diuji dengan model tes yang telah dibuat tersebut. Pengetesan pada setiap unit perangkat lunak dalam lingkup sekecil mungkin daripada menunggu sampai seluruh perangkat lunak selesai. Pair Programming ‐ melakukan proses menulis program dengan berpasangan. Dua orang programer saling bekerjasama di komputer yang sama untuk menyelesaikan sebuah unit/bagian. Collective Ownership ‐ Tidak ada satupun baris kode program yang hanya dipahami oleh satu orang programer. XP menuntut para programer untuk berbagi pengetahuan untuk tiap baris program bahkan beserta hak untuk mengubahnya
Extreme Programming Aspek Dasar Extreme Programming (XP)‐ 3 9.
Coding Standards ‐ Dengan adanya coding standards yang telah disepakati terlebih dahulu maka pemahaman terhadap program akan menjadi mudah untuk semua programer dalam tim. 10. Continous Integration ‐ Pada XP, disarankan untuk melakukan build sesering mungkin misalnya setiap 4 jam atau bahkan lebih cepat lagi. 11. 40‐hours Week – XP berpendapat bekerja 8 jam sehari dan 5 hari seminggu adalah maksimal untuk tiap programer. Lebih dari itu programer akan cenderung membuat berbagai error pada baris‐ baris kode programnya karena kelelahan. 12. On‐Site Customer ‐ XP menganjurkan bahwa ada anggota dari klien yang terlibat pada proses pengembangan perangkat lunak. Sehingga apabila ada kesalahan dalam pengembangan, diharapkan klien dapat segera memberikan masukan untuk koreksinya.
3
26/11/2012
Serba – Serbi Pemrograman WinAPI (Windows Application Programming Interface) Sekumpulan fungsi – fungsi eksternal yang terdapat dalam file – file library windows (*.dll) yang dapat digunakan oleh bahasa semua bahasa pemrogaman visual berbasis desktop yang berjalan di platform Windows. WinAPI dapat menangani berbagai hal yang berhubungan dengan Windows seperti:
Pengaksesan Disk Grafik Windows Kotak Dialog Penangan File Pengaksesan System Registry Dll....
Serba – Serbi Pemrograman Contoh Deklarasi dan Penggunaan Fungsi WinAPI di berbagai Bahasa pemrograman Visual Basic Public Declare Function SetCursorPos Lib (ByVal x As Long, ByVal y As Long) As Long
“user32.dll”
Call SetCursorPos(0,0)
Visual Foxpro Declare Long SetCursorPos IN WIN32API Long, Long SetCursorPos(20,20)
Delphi SetCursorPos(20,20);
SetCursorPos Mengatur Posisi Kursor di Desktop Windows
4
26/11/2012
Serba – Serbi Pemrograman
WinAPI di Java?
Serba – Serbi Pemrograman Active X Control Sebuah framework untuk mendefinisikan komponen perangkat lunak yang dapat digunakan kembali dalam berbagai bahasa pemrograman. • Active X Control dapat dibuat diantaranya menggunakan bahasa pemrograman Visual Basic atau Delphi. • Active X Control adalah salah satu cara untuk membuat komponen atau fungsi yang dapat langsung digunakan di berbagai bahasa pemrograman.
5
26/11/2012
Serba – Serbi Pemrograman Bahasa Pemrograman Terpopuler 2012
TUGAS TUGAS II 1. 2. 3.
4.
Lanjutkan dokumen SKPL yang telah dipresentasikan, ke dalam Dokumen Perancangan dan Pembuatan Aplikasi Anggota kelompok harus sama seperti di Tugas I Tugas dikumpulkan di sunan.umk.ac.id paling lambat 8 Desember 2012 dalam bentuk file yang terdiri dari : a) File Presentasi (*.ppt / *.pptx) b) File Makalah (*.pdf) c) File Project Aplikasi (*.rar / * zip) Presentasi dimulai Minggu Depan ( 3 / 4 Desember 2012)
PENGINGAT...!!! Desain dan perangkat lunak yang dibuat harus sesuai dengan SKPL yang kemarin telah dipresentasikan di TUGAS 1
6
26/11/2012
TUGAS Struktur Dokumen Makalah 1.
2.
3.
Perancangan Aplikasi dalam bentuk : a) UseCase b) Class Diagram c) Sequence d) Activity Perancangan BasisData dalam bentuk : a) Struktur Table b) Relasi Table Perancangan AntarMuka dalam bentuk a) Desain Input output b) Desain Laporan
7