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 SKS : 3
Program Studi : Sistem Informasi
Fakultas : Teknik
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 Kemampuan akhir yang diharapkan
Materi/Pokok Bahasan
Strategi Pembelajaran
Latihan yang dilakukan Kriteria Penilaian (Indikator)
Bobot
1 2 3 4 5 6 7 1
Termotivasi untuk menguasai kompetensi akhir yang diharapkan
Rancangan Pembelajaran, kontrak kuliah,metode perkuliahan, serta prosentase perkuliahan
Pembelajaran oleh dosen mengenai proses pembelajaran yang akan dilakukan
Menuliskan harapan yang akan dicapai
2 Pemahaman mengenai metode dan permasalahan yang ada pada Rekayasa Sistem
Teori-teori belajar: Mengenal
permasalahan yang ada pada Rekayasa Sistem
Mengetahui beberapa
Presentasi / ceramah
Tanya Jawab Studi kasus
Menyelesaikan permasalahan dalam rekayasa sistem yang diberikan dalam bentuk studi kasus dengan metode tertentu.
Knowledge skill Analisis skill
8 %
alternatif metode yang dapat digunakan dalam rekasaya sistem
Memahami langkah – langkah yang ada pada metode rekayasa sistem
3 - 4
Pemahaman mengenai Proses yang ada pada perangkat lunak secara detail
Teori-teori belajar: Mengenal proses
– proses yang ada pada rekayasa sistem.
Mengetahui dengan lebih detail tahapan – tahapan yang ada di setiap proses perangkat lunak
Presentasi Tanya
Jawab/Diskusi Latihan
Soal/Studi Kasus
Mengerjakan latihan – latihan soal yang berhubungan dengan materi proses perangkat lunak .
Knowledge skill Analisis skill
11%
5 - 6 Pemahaman mengenai Pemodelan Proses Perangkat
Teori-teori belajar: Pemahaman
model perangkat lunak
Penggunaan model dalam beberapa kasus
Presentasi Tanya
Jawab/Diskusi Latihan
Soal/Studi Kasus
Membuat pemodelan proses perangkat lunak dalam studi kasus tertentu .
Knowledge skill Analisis skill
11%
7 Pemahaman mengenai Kualitas Perangkat
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 kualitas perangkat lunak
Knowledge skill Analisis skill
5
dalam perangkat lunak
8 - 9 Pemahaman mengenai metode Extreme Programing
Teori – teori belajar Pengetahuan
mengenai metode Extreme Programing
Pemahaman mengenai penggunaan Extreme Programming
Presentasi Tanya
Jawab/Diskusi Latihan
Soal/Studi Kasus
Mengerjakan latihan – latihan soal yang berhubungan dengan materi kualitas perangkat lunak
Knowledge skill Analisis skill
10%
10 Pemahaman mengenai Software as a Service dalam Cloud Computing
Teori – teori belajar Pengetahuan
dasar mengenai SaaS
Pemahaman mengenai penggunaan SaaS dalam kondisi tertentu.
Presentasi Tanya
Jawab/Diskusi Latihan
Soal/Studi Kasus
Mengerjakan latihan – latihan soal yang berhubungan dengan materi SaaS
Knowledge skill Analisis skill
5%
11 - 12 Pemahaman perbedaan penggunaan metode Object Oriented VS Terstuktur
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 perbedaan antara OOD dan struktural
Knowledge skill Analisis skill
10%
FORMAT RANCANGAN TUGAS
Nama Mata Kuliah
: Rekayasa Perangkat Lunak Sks : 3
Program Studi : Sistem Informasi Fakultas : Teknik
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 Sangat Memuaskan
Memuaskan
Batas
Kurang Memuaskan
Di bawah standard
Kelengkapan Konsep
Lengkap , sistematis dan Integratif
Lengkap, sistematis
Pemahaman secara umum belum lengkap
Hanya menunjuk ke beberapa bagian saja
Tidak menggunakan konsep (...baca algoritma)
Kebenaran Konsep
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)
Tidak menggunakan konsep (...baca algoritma)
KRITERIA 2: Daya Tarik Komunikasi; Lisan
DIMENSI Sangat Memuaskan
Memuaskan
Batas
Kurang Memuaskan
Di bawah standard
Isi Memberi
inspirasi pendengar untuk mencari lebih dalam
Menambah wawasan
Pembaca masih harus menambah lagi informasi dari beberapa sumber
Informasi yang disampaikan tidak menambah wawasan bagi pendengarnya
Informasi yang disampaikan menyesatkan atau salah
KRITERIA 3: Knowledge skill
DIMENSI Sangat Memuaskan
Memuaskan
Batas
Kurang Memuaskan
Di bawah standard
Penguasaan struktur dasar program (penggunaan judul program, deklarasi identifier, main program (input,output,proses))
Lengkap , sistematis dan Integratif (dapat mengimplementasikan)
Lengkap, sistematis
Pemahaman secara umum belum lengkap
Hanya menunjuk ke beberapa bagian saja
Tidak memahami bentuk struktur memprogram dengan baik
KRITERIA 4: Analisis skill
DIMENSI Sangat Memuaskan
Memuaskan
Batas
Kurang Memuas
kan
Di bawah standard
Penguasaan struktur dasar program (penggunaan judul program, deklarasi identifier, main program (input,output,proses))
Brancmarking/mengelompokkan permodul-modul/bagian program lengkap dengan variable-varibalenya
Pengelompokan modul ke dalam sub modul jelas
Pemahaman alur logika secara umum belum lengkap
Hanya menunjuk ke beberapa bagian saja
Tidak dapat memahami/mem-brancmark program kedalam su program
LAMPIRAN : Handout RPL
09/09/2012
1
1. Produk Umum – Perangkat lunak yang berdiri sendiriyang dijual secara masal dan umum.
2. Produk Pesanan – Perangkat lunak yangdikembangkan berdasarkan kebutuhan pelanggantertentu.
Pendahuluan
Program komputer dan dokumentasi yang terkait
Perangkat Lunak ???
Tipe dasar produk perangkat lunak :
1. Perangkat lunak antivirus
2. Perangkat lunak perkantoran
3. Perangkat lunak desain grafis
4. Perangkat lunak kompresi data
5. Perangkat lunak multimedia
6. Perangkat lunak statistika
7. Perangkat lunak compiler
8. Perangkat lunak jaringan
9. Dst......
Pendahuluan
Jenis – jenis perangkat lunak :
09/09/2012
2
Rekayasa perangkat lunak adalah sebuah disiplin rekayasa yang berkaitan dengan semua aspek produksi perangkat lunak
Rekayasa Perangkat Lunak ???
Rekayasa Perangkat Lunak VS Rekayasa Sistem
RPL merupakan bagian dari Rekayasa sistem.Rekayasa sistem berkaitan dengan semua aspekpengembangan dan evolusi sistem yang kompleks yangterdiri dari pengembangan perangkat keras, kebijakandan perangkat lunak.
Pendahuluan
1. Perkembangan perangkat keras yang lebih cepat
2. Kemampuan untuk membangun yang dituntutuntuk memenuhi kebutuhan secara cepat
3. Peningkatan ketergantungan pada perangkat lunak
4. Pembangunan perangkat lunak berkualitas tinggidan dapat dipercaya
5. Desain yang kurang dan minimnya sumber daya
Pendahuluan
Alasan perlunya Rekayasa Perangkat Lunak :
09/09/2012
3
1. Perangkat lunak dibangun dan dikembangkan, tidakdibuat dalam bentuk klasik
2. Perangkat lunak tidak pernah usang
3. Sebagian besar perangkat lunak dibuat secaracustom – built, serta tidak dirakit dari komponenyang sudah ada
Pendahuluan
Karakteristik Perangkat Lunak :
1. Spesifikasi Perangkat Lunak
2. Pengembangan Perangkat Lunak
3. Validasi Perangkat Lunak
4. Evolusi Perangkat Lunak
Serangkaian kegiatan dan hasil terkait yang menghasilkan produk perangkat lunak.
Proses Perangkat Lunak ???
Aktifitas dasar proses perangkat lunak :
Pendahuluan
09/09/2012
4
1. Workflow model
2. Dataflow / activity model
3. Role/action model
Gambaran yang disederhanakan dari prosesperangkat lunak yang menyajikan sebuahtampilan dari proses tersebut.
Model Proses Perangkat Lunak ???
Beberapa contoh dari jenis model prosesperangkat lunak yang mungkin dihasilkan:
Pendahuluan
1. Pendekatan Waterfall
2. Pengembangan Iteratif
3. Component‐based software engineering (CBSE)
Kebanyakan model proses perangkat lunakdidasarkan pada salah satu dari tiga model atauparadigma umum pengembangan perangkatlunak berikut ini :
Pendahuluan
09/09/2012
5
Distribusi Biaya Aktifitas Perangkat Lunak
Pendahuluan
1. Structured Analysis
2. Object Oriented
Metode rekayasa perangkat lunak ???
Pendahuluan
Pendekatan terstruktur untuk pengembanganperangkat lunak yang bertujuan untukmemfasilitasi produksi perangkat lunakberkualitas tinggi dengan biaya yang efektif
Jenis metode rekayasa perangkat lunak :
09/09/2012
6
1. Maintainability ‐ Perangkat lunak harus berkembanguntuk memenuhi perubahan kebutuhan
2. Dependability ‐ Perangkat lunak harus dapat dipercaya
3. Efficiency – Perangkat lunak seharusnya tidakmenggunakan sumber daya sistem dengan boros
4. Usability ‐ Perangkat lunak harus dapat digunakan olehpengguna.
Atribut dari kualitas perangkat lunak yang baik :
Pendahuluan
1. Kerahasiaan – Engineers harus menghormati kerahasiaanklien terlepas dari ada atau tidakkah perjanjian mengenaihal itu.
2. Kompetensi – Engineers seharusnya tidak sengajamenerima pekerjaan yang tidak sesuai dengan kompetensimereka.
3. Hak kekayaan intelektual – Engineers harus menyadarihukum lokal yang mengatur penggunaan propertiintelektual seperti hak paten serta harus berhati‐hati untukmemastikan bahwa properti intelektual klien dilindungi.
4. Penyalahgunaan komputer ‐ Engineers seharusnya tidakmenggunakan keterampilan teknis mereka untukpenyalahgunaan komputer orang lain, misal menyisipkanvirus / trojan di aplikasi yang dibangun.
Masalah tanggung jawab profesional :
Pendahuluan
09/09/2012
7
1.Absensi (10%)
2.Tugas (30%)
3.UTS (30%)
4.UAS (30%)
5.KUIS
Komponen Penilaian :
Penilaian
17/09/2012
1
1. Spesifikasi Perangkat Lunak
2. Pengembangan Perangkat Lunak
3. Validasi Perangkat Lunak
4. Evolusi Perangkat Lunak
Serangkaian kegiatan dan hasil terkait yang menghasilkan produk perangkat lunak.
Aktifitas dasar proses perangkat lunak :
Proses Software
1. Studi Kelayakan
2. Pengumpulan dan Analisa Kebutuhan
3. Spesifikasi Kebutuhan
4. Validasi Kebutuhan
Proses memahami dan mendefinisikan layanan apayang diperlukan dari sistem dan mengidentifikasikendala yang mungkin terjadi pada saatmengoperasikan dan mengembangkan sistem
Fase Utama Spesifikasi Perangkat Lunak :
Proses Software
Spesifikasi Perangkat Lunak
17/09/2012
2
Pendeskripsian struktur perangkat lunak yangmeliputi data, antarmuka dan algoritma yangdigunakan, dan kemudian mentranformasikannyake sistem executable
Proses Software
Pengembangan (Desain & Implementasi) Perangkat Lunak
1. Desain Arsitektur
2. Abstrak Spesifikasi
3. Desain Antarmuka
4. Desain Komponen
5. Desain Struktur Data
6. Desain Algoritma
Fase Utama Pengembangan Perangkat Lunak :
Proses untuk memastikan dan menunjukkan bahwasistem sesuai dengan spesifikasinya dan memenuhiharapan pelanggan yang membeli sistem.
Proses Software
Validasi dan Verifikasi Perangkat Lunak
1. Pengujian Unit / Komponen
2. Pengujian Sistem
3. Pengujian Penerimaan
Fase Utama Validasi Perangkat Lunak :
17/09/2012
3
Merujuk pada proses pengembangan perangkatlunak mulai dari awal dan kemudian berulangdengan tujuan untuk melakukan pembaharuan danperbaikan.
Proses Software
Evolusi Perangkat Lunak
Dokumen yang berisi spesifikasi dari suatuproduk/program yang melakukan suatu fungsitertentu pada lingkungan tertentu.
Dokumen SKPL
Dokumen Spesifikasi Kebutuhan Perangkat Lunak (SKPL)
SKPL dapat dibuat oleh wakil dari pengembang atauwakil dari pelanggan.
Sebaiknya SKPL dibuat bersama‐sama olehpengembang dan pelanggan.
17/09/2012
4
Dokumen SKPL
Hal – hal yang perlu diperhatikan dalam penulisan SKPL :
1. Fungsionalitas2. Antar muka eksternal (External Interface)3. Performansi4. Atribut5. Batasan perancangan
Dokumen SKPL
SKPL pada akhirnya akan menjadi dasar bagi kontrak antarapengembang dan pelanggan, maka suatu dokumen SKPLharus memenui syarat‐syarat berikut:
1. Mendefinisikan kebutuhan perangkat lunak denganbenar. Kebutuhan perangkat lunak muncul karena adapekerjaan yang harus diselesaikan atau karena adakarakteristik khusus dari proyek.
2. Tidak menjelaskan rancangan atau implementasidengan rinci. Penjelasan tersebut tidak diperlukankarena bagi pengguna hal tersebut lebih teknis dantidak perlu.
3. Tidak memaksakan penambahan suatu batasan dariperangkat lunak.
17/09/2012
5
Dokumen SKPL
Karakterisitk SKPL yang baik :1. Benar2. Tidak ambigu3. Lengkap4. Konsisten5. Terurut berdasarkan kepentingannya atau kestabilannya6. Dapat diverifikasi7. Dapat dimodifikasi8. Dapat ditelusuri (traceable)
Dokumen SKPL
Kebutuhan projek menyatakan persetujuan antarapelanggan dan pengembang tentang masalah kontrak yangberhubungan dengan produksi perangkat lunak dansebaiknya tidak diikut sertakan dalam SKPL. Hal‐hal yangmenyangkut kebutuhan projek antara lain:
1. Biaya2. Jadwal penyerahan3. Aturan pelaporan4. Metode Pengembangan Perangkat Lunak5. Jaminan Kualitas6. Kriteria Validasi dan Verifikasi7. Aturan penerimaan (acceptance
procedure).
17/09/2012
6
Dokumen SKPL
Bagian – bagian SKPL :1. Pendahuluan
a. Tujuanb. Lingkupc. Definisi dan Singkatan (Akronim)d. Referensie. Deskripsi Umum Dokumen
2. Deskripsi Umum Perangkat Lunaka. Deskripsi Umum Sistemb. Fungsi Produkc. Karakteristik Penggunad. Batasan‐batasane. Lingkungan Operasi
3. Deskripsi Rinci Kebutuhan
TUGAS
1. Buat Kelompok yang terdiri maksimal 5 orang2. Pilih sebuah tema perangkat lunak3. Buat dokumen SKPL sesuai dengan tema
perangkat lunak tersebut
Dokumen SKPL
PENGINGAT...!!!Pilih tema perangkat lunak dan buat SKPLsesuai dengan kemampuan kelompok,karena dokumen SKPL tersebut nantinyaakan dilanjutkan ke pembuatan aplikasi
23/09/2012
1
Model Proses PL
Representasi Abstrak dari Proses Perangkat Lunak,yang dapat digunakan untuk menjelaskanperbedaan pendekatan dalam melakukanpengembangan perangkat lunak.
Model / Paradigma Proses Perangkat Lunak
1. Model Waterfall
2. Pengembangan Evolutionary/Iteratif
3. Component‐based software engineering (CBSE)
Kebanyakan model proses perangkat lunakdidasarkan pada salah satu dari tiga model atauparadigma umum pengembangan perangkatlunak berikut ini :
Model Proses PL
23/09/2012
2
Model Proses PL
Sebuah pendekatan yang memiliki pandanganbahwa sebuah proses hidup perangkat lunakmemiliki sebuah proses yang linear dan sekuensial.
Model Waterfall
Prinsip Model Waterfall
Tiap tahapan tidak akan bisa dilaksanakan jikatahapan sebelumnya belum dilakukan.
Model Proses PL
Tahapan dalam Model Waterfall
Sumber : Sommerville, Software Engineering 8, 2007
Definisi Kebutuhan
Desain Sistem dan Perangkat Lunak
Implementasi dan Testing Unit
Integrasi dan Testing Sistem
Operasional dan Pemeliharaan
23/09/2012
3
Sangat cocok diterapkan pada sistem yang telahmengetahui kebutuhannya dengan sangat jelas
Kegagalan dalam Model Waterfall seringkalidisebabkan karena pengguna sulit dalammendefinisikan kebutuhan dalam satu waktu(terutama saat tahap definisi kebutuhan)
Kelebihan dari Model Waterfall adalah dokumentasiyang lengkap dari setiap aktifitas proses perangkatlunak yang dihasilkan di setiap tahapnya
Kelemahannya sangat sulit merespon adanyaperubahan kebutuhan saat kegiatan pengembanganperangkat lunak sedang berjalan
Beberapa hal berkaitan dengan ModelWaterfall :
Model Proses PL
Model Proses PL
Didasarkan pada ide pengembangan dariimplementasi awal, memperlihatkannya untukmengetahui pendapat pengguna danmemperbaikinya melalui banyak versi sampaisistem aplikasi dirasa cukup dari sisi pandangpengguna.
Pengembangan Evolutionary
23/09/2012
4
Model Proses PL
Tipe dasar dari Pengembangan Evolutionary :
1. Exploratory development– Bertujuan untuk bekerja sama dengan pelanggan untuk
mengeksplorasi kebutuhan mereka dan memberikansistem akhir.
– Pengembangan dimulai dengan bagian‐bagian dari sistemyang dipahami.
– Sistem ini berkembang dengan menambahkan fitur baruyang diusulkan oleh pelanggan.
2. Throwaway prototyping– Bertujuan untuk memahami kebutuhan pelanggan dan
karenanya mengembangkan definisi persyaratan yanglebih baik untuk sistem.
– Pembuatan prototipe dilakukan dengan eksperimendengan berdasar pada persyaratan pelanggan yangkurang dipahami.
Model Proses PL
Tahapan dalam Pengembangan Evolutionary
Sumber : Sommerville, Software Engineering 8, 2007
Deskripsi Kebutuhan
Aktifitas yang berjalan bersamaaan
Spesifikasi
Pengembangan
Validasi
Versi Awal
Versi Intermediate
Versi Akhir
23/09/2012
5
Sering lebih efektif dari pendekatan Waterfall dalammenghasilkan sistem yang sesuai dengan kebutuhanpengguna saat ini.
Kelebihan dari pengembangan Evolutionary adalahdimana spesifikasi kebutuhan bisa dikembangkansecara 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 denganukuran kecil – sedang.
Beberapa hal berkaitan dengan PengembanganEvolutionary :
Model Proses PL
Model Proses PL
Suatu pendekatan yang di dasarkan padapenggunaan kembali komponen perangkat lunak,pada pembuatan sistem yang mirip, yangkemudian melakukan modifikasi yang diperlukandan memasukkannya ke dalam sistem yang baru.
Component‐based software engineering (CBSE)
23/09/2012
6
Model Proses PL
Tahap dalam Component‐based software engineering
Sumber : Sommerville, Software Engineering 8, 2007
Spesifikasi Kebutuhan
Analisa Komponen
ModifikasiKebutuhan
Desain sistem dengan “reuse”
Pengembangan dan Integrasi
Validasi Sistem
Memiliki keuntungan yang jelas untuk mengurangijumlah perangkat lunak yang akan dikembangkansehingga juga mengurangi biaya dan risiko.
Biasanya juga mengarah pada penyelesaianpembuatan perangkat lunak dengan lebih cepat.
Namun, kompromi kebutuhan sistem yang dilakukandapat menyebabkan sistem yang tidak memenuhikebutuhan nyata pengguna.
Beberapa hal berkaitan dengan Component‐based software engineering :
Model Proses PL
05/11/2012
1
Kualitas Software
Penyesuaian kebutuhan fungsional dan performayang ditetapkan secara eksplisit, standarpengembangan yang terdokumentasi secaraeksplisit, dan karakteristik implisit yang diharapkandari seluruh software yang dikembangkan secaraprofessional.
Kualitas Software ??
Kualitas Software
Tiga hal penting dalam kualitas software :
1. Kebutuhan software merupakan pondasi/dasar dari kualitasyang akan diukur. Sedikitnya kesesuaian terhadapkebutuhan, maka semakin tidak berkualitas.
2. Standar yang dispesifikasikan, mendefinisikan sekumpulankriteria pengembangan yang memandu pengembangansoftware. Jika kriteria tidak disertakan, maka dapatdipastikan hasil akhir akan berkualitas rendah.
3. Terdapat kebutuhan implisit (implicit requirements) yangterkadang tidak disebutkan (misalkan, keinginan untukkemampuan pemeliharaan yang mudah). Jika softwaremenyesuaikan kepada kebutuhan eksplisit, tetapi tidakkepada kebutuhan implisit, maka kualitas software akandipertanyakan.
05/11/2012
2
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 :
MaintainabilityFlexibilityTestability
PortabilityReusability
Interoperability
Correctness, Reliability, Efficiency, Integrity, Usability
McCall`s Software Quality Factors
05/11/2012
3
Kualitas Software
Tiga aspek penting dari suatu produk software yaitu :
1. Karakteristik Operasional (Product Operation) meliputifaktor 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 programterhadap kebutuhan yang dispesifikasikan dan memenuhitujuan/misi pengguna.
2. Reliability (Keandalan), tingkat kemampuan program yangdiharapkan dapat menampilkan fungsi yang dimaksuddengan presisi yang ditetapkan.
3. Efficiency (efisiensi), jumlah sumberdaya yang diproses dankode yang diperlukan oleh program untuk melaksanakanfungsinya.
4. Integrity (Integritas), tingkat kemampuan pengawasan aksesterhadap data atau software oleh orang‐orang tertentu.
5. Usability (Kegunaan), usaha yang diperlukan untukmempelajari, mengoperasikan, menyiapkan masukan danmengartikan keluaran program.
05/11/2012
4
Kualitas Software
Faktor – faktor kualitas software (2) :
6. Maintainability, usaha yang diperlukan untuk menetapkandan memperbaiki kesalahan dalam program.
7. Flexibility, usaha yang diperlukan untuk memodifikasiprogram operasional.
8. Testability, usaha yang diperlukan untuk menguji programuntuk memastikan bahwa program melaksanakan fungsiyang telah ditetapkan.
9. Portability, usaha yang diperlukan untuk memindahkanprogram dari hardware/lingkungan sistem software tertentuke yang lainnya.
10. Reusability, tingkat kemampuan program/bagian dariprogram yang dapat dipakai ulang dalam aplikasi lainnya,berkaitan dengan paket dan lingkup dari fungsi yangdilakukan oleh program.
11. Interoperability, usaha yang diperlukan untukmenggabungkan satu sistem dengan sistem lainnya.
Kualitas Software
Jaminan Kualitas Software (Software Quality Assurance ‐ SQA) ??
Merupakan kegiatan yg terpola secara sistematisdan terencana, yg dibutuhkan utk menjaminkualitas suatu perangkat lunak
05/11/2012
5
Kualitas Software
Tujuh aktifitas utama SQA (1):
1. Application of technical methods ‐ SQA dimulai dgnsekumpulan alat & metode teknis yg membantu analis utkmendapatkan spesifikasi yg berkualitas tinggi & bagiperancang utk merancang dg kualitas tinggi
2. Conduct of formal technical reviews ‐ Setelah spesifikasi &desain dibuat, ditetapkan kualitasnya dg melakukan reviewteknis formal.
3. Software testing ‐ Pengujian software mengkombinasikanlangkah2 strategi dg metode rancangan test‐case yg dptmenjamin 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 dilakukanselama pembuatan software & pada tahappemeliharaan. Setiap perubahan dpt menyebabkankesalahan & efek lain yg akan bisa menyebabkankesalahan juga.
6. Measurement ‐ Pengukuran terhadap softwaremencakup pengukuran secara manajemen & teknis
7. Record keeping and reporting ‐ Penyimpanan hasil darireview, audit, pengontrolan perubahan, pengujiansebagai bagian dari record historis utk suatu proyek dandidesiminasikan kpd para staf pengembangan sbg‘dasar utk mereka ketahui’
12/11/2012
1
Cloud Computing
Gaya komputasi di mana sumber daya komputasimudah untuk didapat dan diakses, mudahdigunakan, murah, dan langsung dapatdijalankan.
Cloud Computing
Dari sisi teknis secara umum diturunkan dari teknologiVirtualisasi danWEB Service
Dari sisi manajemen menganut konsep Outsourcing
http://materi.si.umk.ac.id
Cloud Computing
Karakteristik Cloud Computing1. Scalable ‐ Kemampuan dalam meningkatkan kapasitas sumberdaya
sebesar apapun yang diinginkan dengan cepat.2. Elastic ‐ Kemampuan dalam menyesuaikan jumlah sumberdaya
yang sesuai dengan kebutuhan secara cepat.3. Self‐Service ‐ Kemampuan cloud computing dalam melayani
dirinya sendiri.4. Ubiquitous Access ‐ Kemampuan untuk dapat diakses dimana –
mana.5. Complete Virtualization ‐ Kemampuan untuk menggabungkan
banyak sumber daya menjadi seolah – olah hanya sebuah servertunggal.
6. Relative Consistency ‐ Kemampuan untuk selalu konsisten dalammenghasilkan layanan, karena cloud computing dibangun daribermacam – macam komponen sehingga tidak tergantung hanyadengan satu komponen atau brand merk tertentu.
http://materi.si.umk.ac.id
12/11/2012
2
Cloud Computing
Model Penyebaran Cloud Computing
1. Cloud Publik ‐ Infrastruktur cloud yang disediakan untuk umumdan dimiliki oleh sebuah organisasi yang menjual jasa cloud(Provider Cloud Computing seperti Amazon, Google, Salesforce danMicrosoft).
2. Cloud Privat ‐ Infrastruktur cloud yang dioperasikan hanya bagisuatu organisasi dan bisa dikelola sendiri oleh organisasi ataudikelola oleh pihak ketiga.
3. Cloud Hibrid ‐ Infrastruktur cloud yang terdiri dari cloud privat danpublik yang masih merupakan entitas unik namun terikat bersama‐sama oleh teknologi standar atau kepemilikan yang memungkinkandata dan portabilitas aplikasi. Sederhananya, cloud hibrid adalahkombinasi dari 2 model penyebaran cloud sebelumnya.
http://materi.si.umk.ac.id
Cloud Computing
Layer Layanan dalam Cloud Computing
1. Infrastruktur as a Service (IaaS) ‐ Adalah layer yang berisi semuasumber daya fisik dan virtual yang digunakan untuk membanguncloud, dan hampir sama dengan apa yang ada dalam operasional TItradisional.
2. Platform as a Service (AaaS) ‐ Adalah layer yang bertanggungjawab untuk mengelola dan mengoperasikan semua sumber dayayang ada di Iaas seperti komputer, media penyimpanan danjaringan.
3. Software as a Service (SaaS) ‐ Adalah layer yang paling atas yangmenyediakan layanan berupa aplikasi yang digunakan dalammemberikan layanan kepada pelanggan.
http://materi.si.umk.ac.id
12/11/2012
3
Cloud Computing
Software as a Service (SaaS) ‐ 1
Suatu model penyampaian aplikasi perangkat lunak dalam bentukweb oleh suatu vendor perangkat lunak yang untuk digunakan olehpelanggannya melalui Internet.
Pelanggan tidak mengeluarkan uang untuk memiliki perangkatlunak tersebut melainkan hanya untuk menggunakan.
Produk aplikasi tak lagi dipindahtangankan. Sebagai gantinyaproses atau jasa produklah yang dijual. Produk tetap berada ditangan produsen akan tetapi konsumen tetap bisa memperolehvaluenya.
http://materi.si.umk.ac.id
Cloud Computing
Software as a Service (SaaS) ‐ 2
Karena produk berada di dalam domain produsen, prosespelayanan konsumen pun bisa lebih termonitor.
Performa bisa “digenjot” lebih tinggi, dengan relatif cepat danmudah karena produsenlah yang memegang kontrol produk.
Produk bisa segera diupdate atau ditambahkan fitur yang akanlangsung berefek pada semua pemakai produk.
Resource komputasi dan storage pun bisa mencapi efektifitas danefisiensi yang lebih tinggi, karena ada sharing resource.
Keuntungan Bagi Produsen
http://materi.si.umk.ac.id
12/11/2012
4
Cloud Computing
Software as a Service (SaaS) ‐ 3
Harga produk, atau tepatnya subscription, akan menjadi relatiflebih murah. Karena adanya efisiensi di sisi produsen
Model penawarannya bisa lebih menguntungkan konsumen,misalnya dengan tarif progresif sesuai jumlah data atau resourcekomputasi yang dipakai. Model langganan seperti ini bisaditemukan 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”.
Keuntungan Bagi Konsumen
http://materi.si.umk.ac.id
Cloud Computing
Software as a Service (SaaS) ‐ 4
Kepemilikan data, privasi, dan keamanan adalah beberapa concernutama dalam SaaS.
Data biasanya akan disimpan di tempat produsen. Kadangkala halini menimbulkan kekhawatiran apakah data tidak akandisalahgunakan???, apakah data akan tetap menjadi hak milikeksklusif pembeli produk???.
Bagi yang sangat peduli dengan harga data, akan banyak munculketakutan akankah data tersebut akan terlindung dari akses pihaklain, apalagi sampai bisa dicuri.
Kekhawatiran dalam SaaS
http://materi.si.umk.ac.id
12/11/2012
5
Cloud Computing
Contoh Wujud Nyata (SaaS) ‐1
https://docs.google.comhttp://www.google.com/apps
Google Document & GoogleApplication Engine
http://materi.si.umk.ac.id
Cloud Computing
Contoh Wujud Nyata (SaaS) ‐2
http://www.foxincloud.com
Aplikasi DatabaseFoxpro dalam SaaS
http://materi.si.umk.ac.id
19/11/2012
1
OO Vs Struktural
Pemrograman Terstruktur
Suatu aktifitas pemrograman dengan memperhatikanurutan langkah‐langkah perintah secara sistematis, logis,dan tersusun berdasarkan algoritma yang sederhana danmudah 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 lagimenjadi 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.
19/11/2012
2
OO Vs Struktural
Pemrograman Berorientasi Objek
Merupakan paradigma pemrograman yangberorientasikan kepada objek. Semua data dan fungsi didalam paradigma ini dibungkus dalam kelas‐kelas atauobjek‐objek
OO Vs Struktural
Pendekatan Pemrograman Berorientasi Objek
Fungsi dan data bukan menjadi dua hal yang terpisahmelainkan menjadi satu kesatuan yang disebutsebagai obyek aktif.
Cara pandang program adalah serangkaian obyek yangbekerjasama untuk menyelesaikan suatu problem.
Prosedur, fungsi & variabel dibungkus /dikelompokkan di dalam sebuah kelas, konseppembungkusan ini disebut enkapsulasi.
19/11/2012
3
OO Vs Struktural
OO Vs Struktural OOP dalam melakukan pemecahan masalah tidak
melihat bagaimana cara menyelesaikan suatu masalahtersebut (terstruktur) tetapi objek‐objek apa yangdapat melakukan pemecahan masalah tersebut. Sebagai contoh, misal ada seorang manager ingin
memperoleh data dari bag administrasi, makamanager tersebut tidak harus mengambilnyalangsung tetapi dapat menyuruh petugas bagadministrasi untuk mengambilnya.
Intinya pada kasus diatas seorang manager tidakharus mengetahui bagaimana cara mengambil datatersebut tetapi hanya perlu mengetahui objek apayang bisa digunakan untuk mengambil data tersebut.
OO Vs Struktural
OO Vs Struktural
Untuk program yang lebih rumit dan kompleks,pemrograman berorientasi objek lebih praktisdibandingkan dengan pemrograman terstruktur
Akan tetapi, untuk program yang relatif masihsederhana, pemrograman terstruktur lebih bagusdigunakan karena lebih simple dan mudah.
26/11/2012
1
Extreme Programming
Sebuah pendekatan pengembangan perangkatlunak yang mencoba meningkatkan efisiensi danfleksibilitas dari sebuah proyek pengembanganperangkat lunak dengan mengkombinasikanberbagai ide sederhana.
Extreme Programming (XP)
Extreme Programming
Extreme Programming (XP)
Kemunculannya di dorong karena permasalahanmengenai perubahan requirement yang begitucepat
Mencoba menyederhanakan berbagai tahapandalam proses pengembangan tersebut sehinggamenjadi lebih adaptif dan fleksibel.
Bukan hanya berfokus pada coding tetapi meliputiseluruh area pengembangan perangkat lunak.
XP tidak selalu cocok untuk setiap proyekpengembangan perangkat lunak. Kelebihan XPadalah sesuai untuk digunakan pada proyek yangmemiliki dynamic requirements.
26/11/2012
2
Extreme Programming
Nilai‐nilai Dasar Extreme Programming (XP)1. Communication ‐ mengfokuskan pada hubungan komunikasi
yang baik antar anggota tim.
2. Courage ‐ Para anggota tim dan penanggungjawabpengembangan perangkat lunak harus selalu memiliki keyakinandan integritas dalam melakukan tugasnya.
3. Simplicity ‐ Lakukan semua dengan sederhana, gunakan methodyang pendek dan simpel, jangan terlalu rumit dalam membuatdesain, hilangkan fitur yang tidak ada gunanya, dan berbagaiproses penyederhanaan lain.
4. Feedback ‐ Berikan selalu feedback kepada sesama anggota timmaupun pihak‐pihak lain yang terlibat dalam pengembanganperangkat lunak.
5. Quality Work ‐ Dengan proses yang berkualitas makaimplikasinya akan muncul pula perangkat lunak yang berkualitassebagai hasil akhirnya.
Extreme Programming
Aspek Dasar Extreme Programming (XP) ‐ 11. The Planning Game ‐ Proses pendek dan cepat, mengutamakan
aspek teknik, memisahkan unsur bisnis dengan unsur teknis danpertemuan intensif antara klien dengan developer.
2. Small Releases ‐ Setiap release dilakukan dalam lingkup sekecilmungkin. Setiap developer yang menyelesaikan sebuah unit ataubagian dari perangkat lunak maka hasil tersebut harus segeradipresentasikan dan didiskusikan dengan klien
3. Metaphor ‐ Merupakan panduan (guidance) dalam melakukanpengembangan secara keseluruhan. Requirements yangdiperoleh melalui proses summarize stories berperan sebagaimetaphor.
4. Simple Design ‐ Desain dibuat dalam lingkup kecil dan sederhanaagar tidak perlu melakukan antisipasi terhadap berbagaiperubahan di kemudian hari.
26/11/2012
3
Extreme Programming
Aspek Dasar Extreme Programming (XP)‐ 25. Refactoring ‐ Melakukan perubahan pada kode program dari
perangkat lunak dengan tujuan meningkatkan kualitas daristruktur program tersebut tanpa mengubah cara programtersebut bekerja.
6. Testing ‐ Tes yang hendak dijalani dibuat terlebih dahulu. Saatproses coding selesai dilakukan maka perangkat lunak diujidengan model tes yang telah dibuat tersebut. Pengetesan padasetiap unit perangkat lunak dalam lingkup sekecil mungkindaripada menunggu sampai seluruh perangkat lunak selesai.
7. Pair Programming ‐ melakukan proses menulis program denganberpasangan. Dua orang programer saling bekerjasama dikomputer yang sama untuk menyelesaikan sebuah unit/bagian.
8. Collective Ownership ‐ Tidak ada satupun baris kode programyang hanya dipahami oleh satu orang programer. XP menuntutpara programer untuk berbagi pengetahuan untuk tiap barisprogram bahkan beserta hak untuk mengubahnya
Extreme Programming
Aspek Dasar Extreme Programming (XP)‐ 39. Coding Standards ‐ Dengan adanya coding standards yang telah
disepakati terlebih dahulu maka pemahaman terhadap programakan menjadi mudah untuk semua programer dalam tim.
10. Continous Integration ‐ Pada XP, disarankan untuk melakukanbuild sesering mungkin misalnya setiap 4 jam atau bahkan lebihcepat lagi.
11. 40‐hours Week – XP berpendapat bekerja 8 jam sehari dan 5 hariseminggu adalah maksimal untuk tiap programer. Lebih dari ituprogramer akan cenderung membuat berbagai error pada baris‐baris kode programnya karena kelelahan.
12. On‐Site Customer ‐ XP menganjurkan bahwa ada anggota dariklien yang terlibat pada proses pengembangan perangkat lunak.Sehingga apabila ada kesalahan dalam pengembangan,diharapkan klien dapat segera memberikan masukan untukkoreksinya.
26/11/2012
4
Serba – Serbi Pemrograman
WinAPI (Windows Application Programming Interface)
Sekumpulan fungsi – fungsi eksternal yang terdapatdalam file – file library windows (*.dll) yang dapatdigunakan oleh bahasa semua bahasa pemrogamanvisual berbasis desktop yang berjalan di platformWindows.
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 BasicPublic Declare Function SetCursorPos Lib “user32.dll”(ByVal x As Long, ByVal y As Long) As Long
Call SetCursorPos(0,0)
Visual FoxproDeclare Long SetCursorPos IN WIN32API Long, Long
SetCursorPos(20,20)
DelphiSetCursorPos(20,20);
SetCursorPos Mengatur Posisi Kursor di Desktop Windows
26/11/2012
5
Serba – Serbi Pemrograman
WinAPI di
Java?
Serba – Serbi Pemrograman
Active X Control
Sebuah framework untuk mendefinisikan komponen perangkatlunak yang dapat digunakan kembali dalam berbagai bahasapemrograman.
• Active X Control dapat dibuat diantaranya menggunakan bahasapemrograman Visual Basic atau Delphi.
• Active X Control adalah salah satu cara untuk membuatkomponen atau fungsi yang dapat langsung digunakan diberbagai bahasa pemrograman.
26/11/2012
6
Serba – Serbi Pemrograman
Bahasa Pemrograman Terpopuler 2012
TUGAS II1. Lanjutkan dokumen SKPL yang telah dipresentasikan, ke
dalam Dokumen Perancangan dan Pembuatan Aplikasi2. Anggota kelompok harus sama seperti di Tugas I3. 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)
4. Presentasi dimulai Minggu Depan ( 3 / 4 Desember 2012)
TUGAS
PENGINGAT...!!!Desain dan perangkat lunak yang dibuat harus sesuaidengan SKPL yang kemarin telah dipresentasikan di TUGAS 1