RENCANA PROGRAM KEGIATAN PEMBELAJARAN SEMESTER … SI/RPKPS - RPL... · rencana program kegiatan...

49
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

Transcript of RENCANA PROGRAM KEGIATAN PEMBELAJARAN SEMESTER … SI/RPKPS - RPL... · rencana program kegiatan...

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

26/11/2012

7

Struktur Dokumen Makalah1. Perancangan Aplikasi dalam bentuk :

a) UseCaseb) Class Diagramc) Sequenced) Activity

2. Perancangan BasisData dalam bentuk :a) Struktur Tableb) Relasi Table

3. Perancangan AntarMuka dalam bentuka) Desain Input outputb) Desain Laporan

TUGAS