Konsep Rekayasa Agenda
Perangkat Lunak
Lingkup rekayasa perangkat lunak
Pengembangan perangkat lunak berbasis
objek.
Proses rekaya perangkat lunak
Model siklus hidup perangkat lunak
Penjaminan kualitas perangkat lunak
Penerapan rekayasa perangkat lunak
Permasalahan
dalam pengembangan perangkat lunak.
6 (enam) praktek
terbaik dalam pengembangan perangkat lunak.
Penggunaaan
Rational Unified Process (RUP) dalam praktek pengembangan perangkat lunak.
Tujuan dan Sasaran
Memberi
pengertian tentang rekayasa perangkat
lunak sebagai software yang bebas kesalahan, diproduksi tepat waktu, tepat
anggaran, dan memenuhi kebutuhan pengguna.
Memberikan pengertian tentang populer rekayasa perangkat lunak.
Rekayasa
Perangkat Lunak
Istilah Rekayasa Perangkat Lunak
(RPL) secara umum disepakati sebagai terjemahan dari istilah Software
Engineering. Istilah Software Engineering mulai dipopulerkan tahun 1968 pada
Software Engineering Conference yang diselenggarakan oleh NATO. Sebagian orang
mengartikan RPL hanya sebatas pada bagaimana membuat program komputer. Padahal
ada perbedaan yang mendasar antara perangkat lunak (software) dan program
komputer.
Perangkat lunak adalah seluruh
perintah yang digunakan untuk memproses informasi. Perangkat lunak dapat berupa
program atau prosedur.
Program adalah kumpulan perintah yang
dimengerti oleh komputer sedangkan prosedur adalah perintah yang dibutuhkan
oleh pengguna dalam memproses informasi (O’Brien, 1999).
Tujuan RPL
Memperoleh biaya produksi perangkat
lunak yang rendah.
Menghasilkan perangkat lunak yang
kinerjanya tinggi, andal dan tepat waktu.
Menghasilkan perangkat lunak yang
dapat bekerja pada berbagai jenis platform.
Menghasilkan perangkat lunak yang
biaya perawatannya rendah.
Perbandingan Tahap RPL
Ruang
Lingkup
Perkembangan
RPL
Batch orientation
Custom software
Hasil yang
Diperoleh :
software
bebas kesalahan,
diproduksi
tepat waktu,
tepat
anggaran,
dan
memenuhi kebutuhan pengguna.
METODE
REKAYASA PERANGKAT LUNAK
Dalam rekayasa perangkat lunak,
diperlukan tahapan-tahapan kerja yang harus dilalui.
Rekayasa perangkat lunak yang sukses
tidak hanya membutuhkan kemampuan komputasi seperti algoritma, pemrograman, dan
basis data yang kuat, namun juga perlu penentuan tujuan yang baik, identifikasi
cara penyelesaian, metode pengembangan, urutan aktifitas, identifikasi
kebutuhan sumberdaya, dan faktor-faktor lain.
Hal-hal seperti ini disebut dengan metode
rekayasa perangkat
Model RPL
Pada Rekayasa Perangkat Lunak, banyak
model yang telah dikembangkan untuk membantu proses pengembangan perangkat
lunak. Model-model ini pada umumnya mengacu pada model proses pengembangan
sistem yang disebut System Development Life Cycle (SDLC)
Model RPL
(cont..)
Terdapat barbagai model RPL, setiap
model yang dikembangkan mempunyai karakteristik sendiri-sendiri.
Secara umum ada persamaan dari
model-model ini, yaitu:
Kebutuhan terhadap definisi masalah
yang jelas.
Tahapan-tahapan pengembangan yang teratur,
mengikuti pola umum : analisis – design – coding – testing - maintenance
Stakeholder berperan sangat penting
dalam keseluruhan tahapan
pengembangan.
pengembangan.
Dokumentasi
Keluaran dari proses pengembangan
perangkat lunak harus bernilai
ekonomis.
ekonomis.
KENAPA
MENGUNAKAN METODA RPL ?
Riset
membuktikan:
30% dari
proyek s/w dibatalkan sebelum selesai.
50% dari
proyek memiliki kenaikan dana 180%.
Model –
Model
Rekayasa Perangkat Lunak
Rekayasa Perangkat Lunak
Waterfall
Model
Model siklus hidup (life cycle model)
adalah model utama dan dasar dari banyak model. Salah satu model yang cukup
dikenal dalam dunia rekayasa perangkat lunak adalah The Waterfall Model.
Disebut waterfall (berarti air
terjun) karena memang diagram tahapan prosesnya mirip dengan air terjun yang
bertingkat.
Waterfall Model
Tahapan-tahapan dalam The Waterfall
Model secara ringkas adalah sbb :
TAHAP INVESTIGASI
dilakukan untuk menentukan apakah terjadi suatu masalah atau adakah peluang suatu sistem informasi dikembangkan. Pada tahapan ini studi kelayakan perlu dilakukan untuk menentukan apakah sistem informasi yang akan dikembangkan merupakan solusi yang layak
dilakukan untuk menentukan apakah terjadi suatu masalah atau adakah peluang suatu sistem informasi dikembangkan. Pada tahapan ini studi kelayakan perlu dilakukan untuk menentukan apakah sistem informasi yang akan dikembangkan merupakan solusi yang layak
TAHAP ANALISIS
bertujuan untuk mencari kebutuhan pengguna dan organisasi serta menganalisa kondisi yang ada (sebelum diterapkan sistem informasi yang baru).
bertujuan untuk mencari kebutuhan pengguna dan organisasi serta menganalisa kondisi yang ada (sebelum diterapkan sistem informasi yang baru).
TAHAP DESAIN
bertujuan menentukan spesifikasi detil dari komponenkomponen sistem informasi (manusia, hardware, software, network dan data) dan produk-produk informasi yang sesuai dengan hasil tahap analisis.
bertujuan menentukan spesifikasi detil dari komponenkomponen sistem informasi (manusia, hardware, software, network dan data) dan produk-produk informasi yang sesuai dengan hasil tahap analisis.
TAHAP IMPLEMENTASI
merupakan tahapan untuk mendapatkan atau mengembangkan hardware dan software (pengkodean program), melakuan pengujian, pelatihan dan perpindahan ke sistem baru.
merupakan tahapan untuk mendapatkan atau mengembangkan hardware dan software (pengkodean program), melakuan pengujian, pelatihan dan perpindahan ke sistem baru.
TAHAP PERAWATAN (MAINTENANCE)
dilakukan ketika sistem informasi sudah dioperasikan. Pada tahapan ini dilakukan monitoring proses, evaluasi dan perubahan (perbaikan) bila diperlukan.
dilakukan ketika sistem informasi sudah dioperasikan. Pada tahapan ini dilakukan monitoring proses, evaluasi dan perubahan (perbaikan) bila diperlukan.
Klasifikasi
Prototyping
Prototyping
adalah salah satu pendekatan dalam rekayasa perangkat lunak yang secara
langsung mendemonstrasikan bagaimana sebuah perangkat lunak atau
komponen-komponen perangkat lunak akan bekerja dalam lingkungannya sebelum
tahapan konstruksi aktual dilakukan (Howard, 1997).
Prototyping
Reusable prototype :
Prototype yang akan ditransformasikan menjadi produk final.
Prototype yang akan ditransformasikan menjadi produk final.
Throwaway prototype :
Prototype yang akan dibuang begitu selesai menjalankan maksudnya.
Prototype yang akan dibuang begitu selesai menjalankan maksudnya.
Input/output prototype :
Prototype yang terbatas pada antar muka pengguna (user interface).
Prototype yang terbatas pada antar muka pengguna (user interface).
Processing prototype :
Prototype yang meliputi perawatan file dasar dan proses-proses transaksi.
Prototype yang meliputi perawatan file dasar dan proses-proses transaksi.
System prototype :
Prototype yang berupa model lengkap dari perangkat lunak.
Prototype yang berupa model lengkap dari perangkat lunak.
Tahapan
Prototyping
Tahapan
Prototyping
Identifikasi kandidat prototyping.
Kandidat dalam kasus ini meliputi user interface (menu, dialog, input dan
output), file-file transaksi utama, dan fungsi-fungsi pemrosesan sederhana.
Rancang bangun prototype dengan
bantuan software seperti word processor, spreadsheet, database, pengolah
grafik, dan software CASE (Computer-Aided System Engineering).
Uji prototype untuk memastikan
prototype dapat dengan mudah dijalankan untuk tujuan demonstrasi.
Siapkan prototype USD (User’s System
Diagram) untuk mengidentifikasi bagian-bagian dari perangkat lunak yang
di-prototype-kan.
Evaluasi dengan pengguna untuk
mengevaluasi prototype dan melakukan perubahan jika diperlukan.
Transformasikan prototype menjadi perangkat
lunak yang beroperasi penuh dengan melakukan penghilangan kode-kode yang tidak
dibutuhkan, penambahan program-program yang memang dibutuhkan dan perbaikan dan
pengujian perangkat lunak secara berulang.
PROTOTYPING
Teknik prototyping merupakan model pengembangan yang tidak
memperhatikan struktur internal.
Penggunaan teknik prototyping adalah menentukan kebutuhan nyata
klien, dan membangun model secara cepat untuk mempersingkat proses pengembangan
software.
Unified
Process Model
Unified
Process
Unified Process (UP) atau kadang
disebut sebagai Unified Software Development Process (USDP) adalah kerangka
proses pengembangan yang bersifat use-case-driven, berpusat pada arsitektur
perangkat lunak, interatif dan tumbuh-kembang (Alhir, 2005). Kerangka
pengembangan ini termasuk baru dalam metodologi pengembangan perangkat lunak.
UP dapat diaplikasikan pada berbagai skala proyek, mulai dari skala kecil
sampai dengan skala besar.
Bagan biasa disebut sebagai “hump
chart”. Terlihat ada empat tahap pengembangan yaitu inception, elaboration,
construction dan transition. Selain itu tampak pula sejumlah aktivitas
(disciplines) yang harus dilakukan sepanjang pengembangan perangkat lunak,
yaitu, business modeling, requirements, analysis and design, implementation,
test. Tahap dan aktivitas tersebut akan dilakukan secara iteratif (Ambler,
2005).
Tahapan UP
INCEPTION.
Tahapan ini merupakan tahapan paling awal dimana aktivitas penilaian terhadap sebuah proyek perangkat lunak dilakukan. Tujuannya adalah untuk mendapatkan kesepakatan dari stakeholder sehubungan dengan tujuan dan dana proyek.
Tahapan ini merupakan tahapan paling awal dimana aktivitas penilaian terhadap sebuah proyek perangkat lunak dilakukan. Tujuannya adalah untuk mendapatkan kesepakatan dari stakeholder sehubungan dengan tujuan dan dana proyek.
ELABORATION.
Tujuan dari tahap ini adalah untuk mendapatkan gambaran umum kebutuhan, persyaratan dan fungsi-fungsi utama perangkat lunak. Hal ini penting untuk mengetahui secara lebih baik resiko-resiko proyek, baik meliputi resiko arsitektur perangkat lunak, perencanaan, maupun implementasi. Pada tahap ini telah dimulai rancang bangun perangkat lunak secara iterative melalui aktivitas-aktivitas seperti business modeling, requirements, analysis dan design meskipun baru pada tahap awal.
Tujuan dari tahap ini adalah untuk mendapatkan gambaran umum kebutuhan, persyaratan dan fungsi-fungsi utama perangkat lunak. Hal ini penting untuk mengetahui secara lebih baik resiko-resiko proyek, baik meliputi resiko arsitektur perangkat lunak, perencanaan, maupun implementasi. Pada tahap ini telah dimulai rancang bangun perangkat lunak secara iterative melalui aktivitas-aktivitas seperti business modeling, requirements, analysis dan design meskipun baru pada tahap awal.
Tahapan UP
CONSTRUCTION
Tujuan dari tahapan ini adalah membangun perangkat lunak sampai dengan saat perangkat lunak tersebut siap digunakan. Titik berat tahapan ini adalah pada penentuan tingkat prioritas kebutuhan / persyaratan, melengkapi spesifikasinya, analisis lebih dalam, disain solusi yang memenuhi kebutuhan dan persyaratan, pengkodean dan pengujian perangkat lunak. Jika dimungkinkan versi awal dari perangkat lunak diuji cobakan untuk mendapatkan masukan dari pengguna.
Tujuan dari tahapan ini adalah membangun perangkat lunak sampai dengan saat perangkat lunak tersebut siap digunakan. Titik berat tahapan ini adalah pada penentuan tingkat prioritas kebutuhan / persyaratan, melengkapi spesifikasinya, analisis lebih dalam, disain solusi yang memenuhi kebutuhan dan persyaratan, pengkodean dan pengujian perangkat lunak. Jika dimungkinkan versi awal dari perangkat lunak diuji cobakan untuk mendapatkan masukan dari pengguna.
TRANSITION. Tahap ini difokuskan pada bagaimana
menyampaikan perangkat lunak yang sudah jadi pada pengguna. Perangkat lunak
akan secara resmi diuji oleh baik oleh penguji (tester) yang kompeten maupun
oleh pengguna. Beberapa aktivitas seperti pemindahan pusat data dan pelatihan
pengguna dan staf pendukung harus dilakukan pada tahap ini.
Tahapan UP
Insepsi (Inception):
mendefinisikan lingkup dari proyek.
mendefinisikan lingkup dari proyek.
Elaborasi (Elaboration):
perencanaan proyek, spesifikasi fitur, arsitektur dasar.
perencanaan proyek, spesifikasi fitur, arsitektur dasar.
Konstruksi (Construction):
membangun produk.
membangun produk.
Transisi (Transition):
transisi produk ke komunitas
pengguna akhir.
transisi produk ke komunitas
pengguna akhir.
Tugas 1
Sebutkan pengertian dari perangkat lunak dan rekayasa perangkat lunak.
Apakah perbedaan antara program komputer dan prosedur ?
Bahasa
Pemrograman apa yang mendukung multi platform ?
Sebutkan permasalahan2 dalam pengembangan software !
Jawaban
Tugas 1
pengertian dari
perangkat lunak dan rekayasa perangkat lunak
Perangkat lunak adalah seluruh
perintah yang digunakan untuk memproses informasi
RPL adalah suatu disiplin ilmu yang
membahas semua aspek produksi perangkat lunak, mulai dari tahap awal yaitu
analisa kebutuhan pengguna, menentukan spesifikasi dari kebutuhan pengguna,
disain, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan.
2. perbedaan
antara program komputer dan prosedur?
Program adalah kumpulan perintah yang
dimengerti oleh Komputer
Prosedur adalah perintah yang
dibutuhkan oleh pengguna dalam memproses informasi
3. Bahasa
mendukung Multi Platform = JAVA
Permasalahan Pengembangan Software
Kebutuhan
pengguna dan atau bisnis tidak terpenuhi.
Modul-modul
tidak terintegrasi.
Sulit untuk
dikelola dan dipelihara.
Sulit
menemukan kesalahan.
Kinerja
rendah dibawah beban tinggi.
Kurangnya
koordinasi tim.
Isu-isu
pengembangan dan release.
UML
Dalam pengembangan perangkat lunak
dengan menggunakan UP, maka tidak lepas dari penggunaan notasi-notasi yang
biasa disebut sebagai UML (Unified Modeling Language).
UML adalah sebuah bahasa pemrograman
visual standard untuk pengembangan sebuah software. UML tidak hanya dapat
terhubung secara langsung dengan berbagai bahasa pemrograman seperti Java, C++
dan lainnya, tetapi juga dapat terhubungan dalam Object-Oriented Database.
UML
UML merupakan bahasa standar untuk mendapatkan blueprint software.
UML digunakan untuk memvisualisasikan, spesifikasi, konstruksi, dan
dokumentasi sebuah sistem. Jadi, merupakan bagian dari software development.
UML bisa untuk memodelkan sistem informasi bahkan untuk memodelkan
bisnis !
UML
Untuk
memahami UML, dibentuk model konseptual mengenai basic building blocks
Basic
building blocks terdiri dari :
Things
Relationship
Diagram
Things
merupakan abstraksi yang dihubungkan melalui relationship sehingga membentuk
sebuah diagram.
UML Diagram
Diagram
adalah representasi grafis dari himpunan elemen.
UML memiliki
9 diagram, yaitu :
Class diagram
Object
diagram
Use case
diagram
Sequence
diagram
Collaboration
diagram
Statechart
diagram
Activity
diagram
Component
diagram
Deployment
diagram
UML Diagram
Pemodelan
secara Visual
Mengapa perlu
pemodelan visual?
Mengakomodasi
struktur dan behavior.
Menunjukkan
bagaimana elemen-elemen sistem saling bersesuaian.
Menjaga
desain dan implementasi tetap konsisten.
Menyembunyikan
atau memunculkan detil bila perlu.
Meningkatkan
komunikasi.
Jawabannya : UML
Pemodelan Visual dengan UML
Pemodelan Visual dengan UML
Use Case Diagram
NOTASI
Contoh Use Case Diagram
SKENARIO RESTORAN CEPAT SAJI :
PEMBELI
Pesan &
bayar
KASIR
Siapkan
burger
Sipkan
kentang
Siapkan minum
PELAYAN
Sajikan
Contoh Use Case Diagram
SEQUENCE DIGRAM
Sequence diagram mendokumentasikan
komunikasi/interaksi antar kelas-kelas.
Diagram ini menunjukkan sejumlah obyek dan message (pesan) – yang
diletakkan diantara obyek-obyek didalam use case. Perlu diingat bahwa di
dalam diagram ini, kelas-kelas dan aktor-aktor diletakkan dibagian atas diagram
dengan urutan dari kiri ke kanan dengan garis lifeline yang diletakkan
secara vertikal terhadap kelas dan aktor.
SEQUENCE DIAGRAM
NOTASI
CONTOH SEQUENCE DIAGRAM
PERMASALAHAN
YG TIMBUL
Masalah
selalu ada…
Kemajuan
perangkat keras melebihi kemampuan membuat software
Kemampuan
membangun program
baru tidak dapat memenuhi permintaan program-program baru, begitu juga
kecepatan membangun program tidak dapat
mengikuti
kebutuhan bisnis dan pasar
Penyebaran
penggunaan computer telah
membuat kebergantungan masyarakat thdp komputer
Tantangan untuk
membangun software dengan reliability & quality yang
tinggi
Kemampuan men-support dan meningkatkan program terancam oleh design yang buruk dan
keterbatasan sumberdaya
Problem
Solving…
TUGAS :
Buatlah Paper yang membahas macam2
metode / model perancangan dan design Software ? Jelaskan Tahapan Iterasi yg
diterapkan di model2 tersebut.
BUAT RANGKUMAN : Mana yang anda
anggap paling tepat untuk digunakan ? Jelaskan Alasannya !
No comments:
Post a Comment